From 49fad9a7b2b8f99f0081b105e7fd4f5851238ac5 Mon Sep 17 00:00:00 2001 From: Emil Ernerfeldt Date: Sat, 21 Mar 2026 22:47:15 +0100 Subject: [PATCH] Roll out new egui icon and logo (#7995) For the first time _ever_, egui has a logo! egui-logo Made by [Studio Gruhl](https://www.studiogruhl.com/) and paid for by [Rerun.io](https://rerun.io/). --- README.md | 10 ++-- crates/eframe/data/icon.png | Bin 17166 -> 12052 bytes crates/egui_demo_app/src/wrap_app.rs | 2 + .../egui_demo_app/tests/snapshots/clock.png | 4 +- .../tests/snapshots/custom3d.png | 4 +- .../tests/snapshots/easymarkeditor.png | 4 +- .../tests/snapshots/imageviewer.png | 4 +- crates/egui_demo_lib/data/egui-logo.svg | 21 ++++++++ crates/egui_demo_lib/data/icon.png | Bin 2642 -> 1720 bytes crates/egui_demo_lib/data/icon.svg | 5 ++ crates/egui_demo_lib/data/peace.svg | 11 ---- crates/egui_demo_lib/src/demo/about.rs | 36 ++++++++----- .../src/demo/demo_app_windows.rs | 49 ++++++++++-------- .../egui_demo_lib/src/demo/tests/svg_test.rs | 2 +- .../egui_demo_lib/src/demo/widget_gallery.rs | 7 +-- .../tests/snapshots/demos/Clipboard Test.png | 4 +- .../tests/snapshots/demos/SVG Test.png | 4 +- .../tests/snapshots/demos/Scene.png | 4 +- .../snapshots/widget_gallery_dark_x1.png | 4 +- .../snapshots/widget_gallery_dark_x2.png | 4 +- .../snapshots/widget_gallery_light_x1.png | 4 +- .../snapshots/widget_gallery_light_x2.png | 4 +- .../tests/snapshots/menu/closed_hovered.png | 4 +- .../tests/snapshots/menu/opened.png | 4 +- .../tests/snapshots/menu/submenu.png | 4 +- .../tests/snapshots/menu/subsubmenu.png | 4 +- .../snapshots/should_wait_for_images.png | 4 +- .../tests/snapshots/layout/atoms_image.png | 4 +- .../tests/snapshots/layout/button_image.png | 4 +- .../layout/button_image_shortcut.png | 4 +- .../tests/snapshots/visuals/button_image.png | 4 +- .../visuals/button_image_shortcut.png | 4 +- .../button_image_shortcut_selected.png | 4 +- web_demo/favicon.ico | Bin 15406 -> 2932 bytes 34 files changed, 129 insertions(+), 102 deletions(-) create mode 100644 crates/egui_demo_lib/data/egui-logo.svg create mode 100644 crates/egui_demo_lib/data/icon.svg delete mode 100644 crates/egui_demo_lib/data/peace.svg mode change 100755 => 100644 web_demo/favicon.ico diff --git a/README.md b/README.md index f4a094465..7eebd0423 100644 --- a/README.md +++ b/README.md @@ -10,16 +10,14 @@ [![Discord](https://img.shields.io/discord/900275882684477440?label=egui%20discord)](https://discord.gg/JFcEma9bJq) +
- + -egui development is sponsored by [Rerun](https://www.rerun.io/), a startup building
-an SDK for visualizing streams of multimodal data. -
- ---- +
👉 [Click to run the web demo](https://www.egui.rs/#demo) 👈 + egui (pronounced "e-gooey") is a simple, fast, and highly portable immediate mode GUI library for Rust. egui runs on the web, natively, and [in your favorite game engine](#integrations). diff --git a/crates/eframe/data/icon.png b/crates/eframe/data/icon.png index cf1e6c3ebdb52209943a9affac3b463b2c85e717..4ce7cc588ecd1b3a0bf81a79dc04677c21e9bf98 100644 GIT binary patch literal 12052 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 literal 17166 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 + + + + + + + + + + + + + + + + + + + + diff --git a/crates/egui_demo_lib/data/icon.png b/crates/egui_demo_lib/data/icon.png index 87f15e746e42df190f84317c76a22f036c50a234..27a6c9534b32f4704020966693d11135c3938aff 100644 GIT binary patch delta 1654 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 Y0RIURdCI7FJ(2-d=62X>Q}6hH1N + + + + \ No newline at end of file diff --git a/crates/egui_demo_lib/data/peace.svg b/crates/egui_demo_lib/data/peace.svg deleted file mode 100644 index 4bf3e33a9..000000000 --- a/crates/egui_demo_lib/data/peace.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - diff --git a/crates/egui_demo_lib/src/demo/about.rs b/crates/egui_demo_lib/src/demo/about.rs index 56e2f1eaa..853ebf490 100644 --- a/crates/egui_demo_lib/src/demo/about.rs +++ b/crates/egui_demo_lib/src/demo/about.rs @@ -27,20 +27,30 @@ impl crate::View for About { fn ui(&mut self, ui: &mut egui::Ui) { use egui::special_emojis::{OS_APPLE, OS_LINUX, OS_WINDOWS}; - ui.heading("egui"); + ui.vertical_centered(|ui| { + ui.add_space(4.0); + let egui_icon = egui::include_image!("../../data/egui-logo.svg"); + ui.add( + egui::Image::new(egui_icon.clone()) + .max_height(30.0) + .tint(ui.visuals().strong_text_color()), + ); + ui.add_space(4.0); + }); + ui.label(format!( - "egui is an immediate mode GUI library written in Rust. egui runs both on the web and natively on {}{}{}. \ - On the web it is compiled to WebAssembly and rendered with WebGL.{}", + "egui is an immediate mode GUI library written in Rust. egui runs natively on {}{}{}, and \ + on the web it is compiled to WebAssembly and rendered with WebGL or WebGPU.{}", OS_APPLE, OS_LINUX, OS_WINDOWS, if cfg!(target_arch = "wasm32") { " Everything you see is rendered as textured triangles. There is no DOM, HTML, JS or CSS. Just Rust." } else {""} )); - ui.label("egui is designed to be easy to use, portable, and fast."); ui.add_space(12.0); + ui.label("egui is easy to use, portable, and fast."); - ui.heading("Immediate mode"); + ui.add_space(12.0); about_immediate_mode(ui); ui.add_space(12.0); @@ -52,12 +62,12 @@ impl crate::View for About { ui.horizontal_wrapped(|ui| { ui.spacing_mut().item_spacing.x = 0.0; - ui.label("egui development is sponsored by "); + ui.weak("egui development is sponsored by "); ui.hyperlink_to("Rerun.io", "https://www.rerun.io/"); - ui.label(", a startup building an SDK for visualizing streams of multimodal data. "); - ui.label("For an example of a real-world egui app, see "); + ui.weak(", a startup building a data platform for robotics. "); + ui.weak("For an example of a professional egui app, run "); ui.hyperlink_to("rerun.io/viewer", "https://www.rerun.io/viewer"); - ui.label(" (runs in your browser)."); + ui.weak(" (in your browser!)."); }); ui.add_space(12.0); @@ -72,11 +82,9 @@ fn about_immediate_mode(ui: &mut egui::Ui) { ui.style_mut().spacing.interact_size.y = 0.0; // hack to make `horizontal_wrapped` work better with text. ui.horizontal_wrapped(|ui| { - ui.spacing_mut().item_spacing.x = 0.0; - ui.label("Immediate mode is a GUI paradigm that lets you create a GUI with less code and simpler control flow. For example, this is how you create a "); - let _ = ui.small_button("button"); - ui.label(" in egui:"); - }); + ui.spacing_mut().item_spacing.x = 0.0; + ui.label("This is how you create a button in egui:"); + }); ui.add_space(8.0); crate::rust_view_ui( diff --git a/crates/egui_demo_lib/src/demo/demo_app_windows.rs b/crates/egui_demo_lib/src/demo/demo_app_windows.rs index d2cc17448..1c7831016 100644 --- a/crates/egui_demo_lib/src/demo/demo_app_windows.rs +++ b/crates/egui_demo_lib/src/demo/demo_app_windows.rs @@ -119,21 +119,30 @@ impl Default for DemoGroups { } impl DemoGroups { + pub fn about_egui_checkbox(&mut self, ui: &mut Ui, open: &mut BTreeSet) { + let Self { about, .. } = self; + let mut is_open = open.contains(about.name()); + ui.toggle_value(&mut is_open, about.name()); + set_open(open, about.name(), is_open); + } + pub fn checkboxes(&mut self, ui: &mut Ui, open: &mut BTreeSet) { let Self { - about, + about: _, demos, tests, } = self; - { - let mut is_open = open.contains(about.name()); - ui.toggle_value(&mut is_open, about.name()); - set_open(open, about.name(), is_open); - } - ui.separator(); + ui.vertical_centered(|ui| { + ui.strong("Demos"); + }); demos.checkboxes(ui, open); + ui.separator(); + + ui.vertical_centered(|ui| { + ui.strong("Tests"); + }); tests.checkboxes(ui, open); } @@ -267,22 +276,20 @@ impl DemoWindows { .default_size(160.0) .min_size(160.0) .show_inside(ui, |ui| { - ui.add_space(4.0); - ui.vertical_centered(|ui| { - ui.heading("✒ egui demos"); + ui.vertical_centered_justified(|ui| { + ui.add_space(4.0); + ui.add( + egui::Image::new(egui::include_image!("../../data/egui-logo.svg")) + .max_height(32.0) + .tint(ui.visuals().strong_text_color()), + ); + + ui.add_space(4.0); + + self.groups.about_egui_checkbox(ui, &mut self.open); }); - ui.separator(); - - use egui::special_emojis::GITHUB; - ui.hyperlink_to( - format!("{GITHUB} egui on GitHub"), - "https://github.com/emilk/egui", - ); - ui.hyperlink_to( - "@ernerfeldt.bsky.social", - "https://bsky.app/profile/ernerfeldt.bsky.social", - ); + ui.add_space(4.0); ui.separator(); diff --git a/crates/egui_demo_lib/src/demo/tests/svg_test.rs b/crates/egui_demo_lib/src/demo/tests/svg_test.rs index cd73f9150..9c188df74 100644 --- a/crates/egui_demo_lib/src/demo/tests/svg_test.rs +++ b/crates/egui_demo_lib/src/demo/tests/svg_test.rs @@ -30,7 +30,7 @@ impl crate::View for SvgTest { fn ui(&mut self, ui: &mut egui::Ui) { let Self { color } = self; ui.color_edit_button_srgba(color); - let img_src = egui::include_image!("../../../data/peace.svg"); + let img_src = egui::include_image!("../../../data/icon.svg"); // First paint a small version, sized the same as the source… ui.add( diff --git a/crates/egui_demo_lib/src/demo/widget_gallery.rs b/crates/egui_demo_lib/src/demo/widget_gallery.rs index fe783af1c..6e23fca92 100644 --- a/crates/egui_demo_lib/src/demo/widget_gallery.rs +++ b/crates/egui_demo_lib/src/demo/widget_gallery.rs @@ -229,7 +229,7 @@ impl WidgetGallery { ui.end_row(); ui.add(doc_link_label("Image", "Image")); - let egui_icon = egui::include_image!("../../data/icon.png"); + let egui_icon = egui::include_image!("../../data/icon.svg"); ui.add(egui::Image::new(egui_icon.clone())); ui.end_row(); @@ -237,10 +237,7 @@ impl WidgetGallery { "Button with image", "Button::image_and_text", )); - if ui - .add(egui::Button::image_and_text(egui_icon, "Click me!")) - .clicked() - { + if ui.button((egui_icon, "Click me!")).clicked() { *boolean = !*boolean; } ui.end_row(); diff --git a/crates/egui_demo_lib/tests/snapshots/demos/Clipboard Test.png b/crates/egui_demo_lib/tests/snapshots/demos/Clipboard Test.png index 47ad5bc7a..f987b948d 100644 --- a/crates/egui_demo_lib/tests/snapshots/demos/Clipboard Test.png +++ b/crates/egui_demo_lib/tests/snapshots/demos/Clipboard Test.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:dfccdafb7e96db488bb5bb8c0a7d25f70e63d900d6b1c2280d218aac0e70e4c4 -size 26977 +oid sha256:24f4a9745c60c0353ece5f8fc48200671dcb185f4f0b964bbe66bf4a2fe71d7a +size 27067 diff --git a/crates/egui_demo_lib/tests/snapshots/demos/SVG Test.png b/crates/egui_demo_lib/tests/snapshots/demos/SVG Test.png index 8aa13dbfa..4b560e20a 100644 --- a/crates/egui_demo_lib/tests/snapshots/demos/SVG Test.png +++ b/crates/egui_demo_lib/tests/snapshots/demos/SVG Test.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:888ed4281c2c779b08bc1719302b9923f542026811cff8ae91e44ea1faa25783 -size 25804 +oid sha256:fadea24444c402695db6cbc9e03aef8a0ed3c5db487a324fb255d38c14f73dce +size 19804 diff --git a/crates/egui_demo_lib/tests/snapshots/demos/Scene.png b/crates/egui_demo_lib/tests/snapshots/demos/Scene.png index 277f7ab2c..2d57b2074 100644 --- a/crates/egui_demo_lib/tests/snapshots/demos/Scene.png +++ b/crates/egui_demo_lib/tests/snapshots/demos/Scene.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:4d10b78f4d80d61a3352d7f2b0ed9b2d93af5f184f2487f6f2afff02a38f4608 -size 33475 +oid sha256:f6105c95470d1342f9003ab03e71243b5e18a6f225261aee94b15f8f0501572c +size 33542 diff --git a/crates/egui_demo_lib/tests/snapshots/widget_gallery_dark_x1.png b/crates/egui_demo_lib/tests/snapshots/widget_gallery_dark_x1.png index e4d385fce..4495bf173 100644 --- a/crates/egui_demo_lib/tests/snapshots/widget_gallery_dark_x1.png +++ b/crates/egui_demo_lib/tests/snapshots/widget_gallery_dark_x1.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c5a45307147f19f2d69a3de1f53e0a73ba4c3368eb25a66b4098fb54cb83822f -size 64203 +oid sha256:ef245aae271ccae628bb4171f7e601194c77fd18888ef2ea829bea75bd38b0e5 +size 64965 diff --git a/crates/egui_demo_lib/tests/snapshots/widget_gallery_dark_x2.png b/crates/egui_demo_lib/tests/snapshots/widget_gallery_dark_x2.png index 102cb3650..7c47f522d 100644 --- a/crates/egui_demo_lib/tests/snapshots/widget_gallery_dark_x2.png +++ b/crates/egui_demo_lib/tests/snapshots/widget_gallery_dark_x2.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:0102aa84db99a6da1db1de3abf67f13c3b571de00e79e7c55805dc0504658d50 -size 150111 +oid sha256:e621561567539ff24b4d22b53b65fac6cddae71d92fccd7800a90972a6de3e0e +size 151100 diff --git a/crates/egui_demo_lib/tests/snapshots/widget_gallery_light_x1.png b/crates/egui_demo_lib/tests/snapshots/widget_gallery_light_x1.png index 091948af6..520895ff5 100644 --- a/crates/egui_demo_lib/tests/snapshots/widget_gallery_light_x1.png +++ b/crates/egui_demo_lib/tests/snapshots/widget_gallery_light_x1.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:3991cb1f922e0c6712d045b3cd8a1d98165c0fbef7e31b15d587f244e53ec04a -size 59343 +oid sha256:e6c2d538be7971169bbc4473945e6815eac8c5dd6372bc1f1897a032b6bca12b +size 59962 diff --git a/crates/egui_demo_lib/tests/snapshots/widget_gallery_light_x2.png b/crates/egui_demo_lib/tests/snapshots/widget_gallery_light_x2.png index 881f1b0d5..90311fddc 100644 --- a/crates/egui_demo_lib/tests/snapshots/widget_gallery_light_x2.png +++ b/crates/egui_demo_lib/tests/snapshots/widget_gallery_light_x2.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:355d8f08d08011635bf812aea1edeabd69e1ac3c724b521ed243f2b52e9b444b -size 145257 +oid sha256:d705af99624cd2824cd1f520fa05481ac67b8913feebae836db7b99ac60cb466 +size 145841 diff --git a/crates/egui_kittest/tests/snapshots/menu/closed_hovered.png b/crates/egui_kittest/tests/snapshots/menu/closed_hovered.png index a82442e1e..2a4621b0e 100644 --- a/crates/egui_kittest/tests/snapshots/menu/closed_hovered.png +++ b/crates/egui_kittest/tests/snapshots/menu/closed_hovered.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:5f4a038f9acbb12880ba6b681ef7d3ae566045c4474aa31e7c6d746c39a649fc -size 11108 +oid sha256:38ee4acc23d9c66f127d377ac8a0dd3b683a1465ca319fba092f6d3cdff8c266 +size 11166 diff --git a/crates/egui_kittest/tests/snapshots/menu/opened.png b/crates/egui_kittest/tests/snapshots/menu/opened.png index eb55bd894..c698cdb4b 100644 --- a/crates/egui_kittest/tests/snapshots/menu/opened.png +++ b/crates/egui_kittest/tests/snapshots/menu/opened.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:2965482e0161b4ea99aa5b4ece32261dbe246f86fe43054a754fbd556c7a5896 -size 21666 +oid sha256:ac1941f5eab71bfad020132eae47e1995efa17410b7861aa9f260032e5b0472c +size 21785 diff --git a/crates/egui_kittest/tests/snapshots/menu/submenu.png b/crates/egui_kittest/tests/snapshots/menu/submenu.png index 0a78e4e6c..f277511c1 100644 --- a/crates/egui_kittest/tests/snapshots/menu/submenu.png +++ b/crates/egui_kittest/tests/snapshots/menu/submenu.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:7592ca6213497f686d105a2e686d0c5de364388ddd174cbe8abb425d27ddcab0 -size 28505 +oid sha256:b1f1a4dd9de1d8405c527c7f8f04b42ed9d403d0ec507bb3ff650a6896f28df0 +size 28628 diff --git a/crates/egui_kittest/tests/snapshots/menu/subsubmenu.png b/crates/egui_kittest/tests/snapshots/menu/subsubmenu.png index 84e6ba152..dfc2b707c 100644 --- a/crates/egui_kittest/tests/snapshots/menu/subsubmenu.png +++ b/crates/egui_kittest/tests/snapshots/menu/subsubmenu.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:3a1adf0903f0fc50323c2d77bbc491c950ab0dae6593c004770ea7961c2c6273 -size 33270 +oid sha256:af05a9b66340e0c128d823d3935a23bcf17cfeac02a822e7277234a9c8eb26e0 +size 33393 diff --git a/crates/egui_kittest/tests/snapshots/should_wait_for_images.png b/crates/egui_kittest/tests/snapshots/should_wait_for_images.png index 9709e159e..6ceffde99 100644 --- a/crates/egui_kittest/tests/snapshots/should_wait_for_images.png +++ b/crates/egui_kittest/tests/snapshots/should_wait_for_images.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ad75a0e568e04c20d0e3b823c7e4906c39dcd0a69a086d8e30714a9e4530d031 -size 2128 +oid sha256:cfc03625c268f0ae067d2f4521a8668b47e4bc8525350d77a480840a09cd5083 +size 2046 diff --git a/tests/egui_tests/tests/snapshots/layout/atoms_image.png b/tests/egui_tests/tests/snapshots/layout/atoms_image.png index acfdb810c..765e63f05 100644 --- a/tests/egui_tests/tests/snapshots/layout/atoms_image.png +++ b/tests/egui_tests/tests/snapshots/layout/atoms_image.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:0f65b7221ac74991c526b68ad2469f42801f6083c9acead5bc923fd856a6311d -size 368614 +oid sha256:24c85a987b0b80961b656f386f529b7538ddee59a030d02a0946d0f714ce7004 +size 368329 diff --git a/tests/egui_tests/tests/snapshots/layout/button_image.png b/tests/egui_tests/tests/snapshots/layout/button_image.png index 79cda64a2..6c63fb759 100644 --- a/tests/egui_tests/tests/snapshots/layout/button_image.png +++ b/tests/egui_tests/tests/snapshots/layout/button_image.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:f89cc5b17821c9f30f7a086bb37668e4e7913705d42c0678fb0f42c527abb868 -size 334498 +oid sha256:8f14f770785d01b1673d1c8ca780bfff72e51992794dc7233cf5ec4ea99cb3e9 +size 350648 diff --git a/tests/egui_tests/tests/snapshots/layout/button_image_shortcut.png b/tests/egui_tests/tests/snapshots/layout/button_image_shortcut.png index b244a86dc..9c74cd8be 100644 --- a/tests/egui_tests/tests/snapshots/layout/button_image_shortcut.png +++ b/tests/egui_tests/tests/snapshots/layout/button_image_shortcut.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b7f87fb417453a98e7059535cb68b12549d65f8da7cedf7a48e7154686931e16 -size 419858 +oid sha256:231ceab75a602eedcd11f4f4ed34f38fb9d072f5cb54e135a7e02d33d257f86b +size 433973 diff --git a/tests/egui_tests/tests/snapshots/visuals/button_image.png b/tests/egui_tests/tests/snapshots/visuals/button_image.png index eca582ec0..6cb7241bf 100644 --- a/tests/egui_tests/tests/snapshots/visuals/button_image.png +++ b/tests/egui_tests/tests/snapshots/visuals/button_image.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a2a017c2b93d1920ae85792c13eafa2fd43f93b2e3bbaa5981ed3a43050c0995 -size 11808 +oid sha256:d53f67fb3a3717f7bc5ce99b93bc21d1d6580899dfe8e1371ff22bb416af0786 +size 12114 diff --git a/tests/egui_tests/tests/snapshots/visuals/button_image_shortcut.png b/tests/egui_tests/tests/snapshots/visuals/button_image_shortcut.png index 4848b0781..b278f6c25 100644 --- a/tests/egui_tests/tests/snapshots/visuals/button_image_shortcut.png +++ b/tests/egui_tests/tests/snapshots/visuals/button_image_shortcut.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:42cbc8f8740f56ce45c356262d9b872e3973844ce552c6c09e3c07425c3f86b6 -size 14835 +oid sha256:e298d89e6fb434e5010d96661fca40bf119118b6b31fdd9fc13201bcd74c8ffd +size 15149 diff --git a/tests/egui_tests/tests/snapshots/visuals/button_image_shortcut_selected.png b/tests/egui_tests/tests/snapshots/visuals/button_image_shortcut_selected.png index 8c30d3145..9a1e15c20 100644 --- a/tests/egui_tests/tests/snapshots/visuals/button_image_shortcut_selected.png +++ b/tests/egui_tests/tests/snapshots/visuals/button_image_shortcut_selected.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:11fdd4bde01102e7998defcaa80c1105ec9418152314c74ee028b692b26c6be8 -size 14407 +oid sha256:a0581d601f1e536298cb52bfc8a167aa37aebdf065fc910973a752c9c159223d +size 14733 diff --git a/web_demo/favicon.ico b/web_demo/favicon.ico old mode 100755 new mode 100644 index 61ad031aa5b8aadf968a2b864649c3bb84b91735..59a822c613e6befe20332395bd91fd4eed421d0f GIT binary patch literal 2932 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 literal 15406 zcmeHOTS%2z6#ku=ri~V2rUhCUy zul?_}*Iq}Ge57xsMT;aZO;YxElJv7ANhZ^$``{lX=}&$Z8anqrNRqmKlB8g+!%euw zr{`RJ@nCr{}7`SYslo9iGvJe)p!_&^sfT%aRIj?AMq zYu4E185R~M+PAj0((T)~1wjYkxnaWwyX}ExaBz^$oH?V^J$(2uO-xKsU|^u~%p9}j zb#`_(O-@cyd3iYhqMwiQ$ zE&J%GjJY|up!xg7kAjAW_|BM^Vwily6<>V$_YLFyjr%*v^q-@BR@)9T=42Hz93RM5 z+g9&-jN@0PDZTls`}gms?(S}}?qTh-B&=tfHf=Hl!_lKh>D{|`ip*E9UQv5{JGHd52uzUu z{{4Fj4Gq;@er#+kO;1k?+2iBml#`S5*}9FjG$|=bciFJ9YuBy`+324ZpGyz>39vPGDmw)&*y-Oimm75SF) z&Dy=5b{H8MsmO0=Xb`p!`?sX4SFbAdfLTi)?bUt${JG$L@7_JDe9xXeE9zj5z+bn= zQ_K6x%1Xg|c6OGwZQJ%4?-eUnP)|>fr~@0(!dp#UjKS;IuLXbXBerbWqR7Dhp{lA% zyn{WImX<2-)bLhY=g^@;V*dsi(8K-v_o=?VUhG3;JH*InNhwf%9l9=?Zr_Uxh4r%zK^Ss4`+6i`e|jNx(}#p`Y789tq}#|irn-v7-w zTdpjRnnS5-=NhE)N z|3yoeE=_0Mb+HcrVKRKYwAuqOF}}aK>}I?NeSLiqZkGJ~{C?o)mB6i)r>p8S){l(& zcl2S&k|hUl?g$^~YO1NWoTQ68>t$9?E#@)*0Z)EBTbx!qi~#A)r`ld)UtllQsT zC-mCD*KGqh_r%#HVw;F3AZCR!E-sFuqoc)M+8xga*RNkM_T1O6U#G6FE*c#jrJ0!- z5tG3A^2?VmskgV6nwpvj@xs*9R9d-mrCaRJ_wLeVj84t*eIhj|I?u!n(x0ouHIvr92)8K)aJZYXwx^QVf63b)Ohu_R*Hy-aQe6* z=g1sC>>p==ju5`Hdg@jUFRWSS_!n|rTwLsQ{P11OG2=Vh-`}r_%;!CLAV)xr&h)Ia zapT5$_(w)Y2+!87TW6Q<+_^Kat(IItz50MP)ZA}?&#+_14!e59cekyrO~H?KPtP-9 zE&W5jrEEj+lW}fk&!5286Mq;$bJ3c;M1RlnU8z={$+8unb4^I9u!Z~d=3Hs>9G@A!LdKpz{x`5mACYW^>myXc>>|HXaq z*z;?~-@*73nLO?c8<;uge%6kDFuC2CJTL(pW9&rE T$>PO}zeoOz_vh8XLNxF{TPS{(