From 9c02fba9689ca9ff052c740afea6bfde41f6a3db Mon Sep 17 00:00:00 2001 From: Marrub Date: Mon, 18 Mar 2019 08:21:30 -0400 Subject: [PATCH 01/29] gui state test --- source/tycho/data/tycho.css | 5 ++ source/tycho/data/tycho.xml | 147 ++++++++++++++++++++++++++------ source/tycho/data/tycho_res.xml | 1 + source/tycho/hiddenprotocol.rs | 13 ++- source/tycho/main.rs | 69 +++++++++++++-- 5 files changed, 191 insertions(+), 44 deletions(-) create mode 100644 source/tycho/data/tycho.css diff --git a/source/tycho/data/tycho.css b/source/tycho/data/tycho.css new file mode 100644 index 0000000..4b94238 --- /dev/null +++ b/source/tycho/data/tycho.css @@ -0,0 +1,5 @@ +.first-start-window { + background-color: #000000; + color: #AAAAAA; + font: 16px "FixedSys", "Monospace"; +} diff --git a/source/tycho/data/tycho.xml b/source/tycho/data/tycho.xml index 0a0a75c..6e17d50 100644 --- a/source/tycho/data/tycho.xml +++ b/source/tycho/data/tycho.xml @@ -98,6 +98,7 @@ Author: Alison Sanderson True False + The name of the map. Unicode symbols that are supported by the Mac OS Roman encoding are converted automatically when saved. 0 none @@ -109,7 +110,6 @@ Author: Alison Sanderson True True - The name of the map. Unicode symbols that are supported by the Mac OS Roman encoding are converted automatically when saved. @@ -144,6 +144,7 @@ Author: Alison Sanderson True False + The texture collection to use for the map. This is one of five bitmap collections stored in the Shapes file. 0 none @@ -158,7 +159,6 @@ Author: Alison Sanderson True False - The texture collection to use for the map. This is one of five bitmap collections stored in the Shapes file. 0 Water @@ -189,6 +189,7 @@ Author: Alison Sanderson True False + The sky to display on sides which are marked as "Landscape." This is the sole bitmap of one of four collections in the Shapes file. 0 none @@ -203,7 +204,6 @@ Author: Alison Sanderson True False - The sky to display on sides which are marked as "Landscape." This is the sole bitmap of one of four collections in the Shapes file. 0 Lh'owon Day @@ -627,41 +627,96 @@ Author: Alison Sanderson vertical 5 - + True False - 0 - none - + True False - 0 - 0 - 0 - 0 - 12 + 0 + none - + True - True - This field is unused and must be either 0 or 1. It used to be used to give different physics to the map editor and low gravity before it was made into an environment flag. - 0 - True - adj-phys-id - True - True - True + False + 0 + 0 + 0 + 0 + 12 + + + True + True + This field is unused and must be either 0 or 1. It used to be used to give different physics to the map editor and low gravity before it was made into an environment flag. + 0 + True + adj-phys-id + True + True + True + + + + + + + True + False + Physics ID + + True + True + 0 + - - + + True False - Physics ID + This field overrides the Landscape value, since Marathon 1 used that field for the music number. + 0 + none + + + True + False + 0 + 0 + 0 + 0 + 12 + + + True + True + 0 + True + adj-phys-id + True + True + True + + + + + + + True + False + Song ID + + + + True + True + 1 + @@ -679,7 +734,6 @@ Author: Alison Sanderson True False - These flags were added by Aleph One but are hidden and probably not meant to be used. 0 in @@ -745,7 +799,7 @@ Author: Alison Sanderson True False - Hidden Mission Flags + Aleph Mission Flags @@ -759,7 +813,6 @@ Author: Alison Sanderson True False - These flags were added by Aleph One but are hidden and probably not meant to be used. 0 in @@ -885,7 +938,7 @@ Author: Alison Sanderson True False - Hidden Environment Flags + Aleph Environment Flags @@ -1079,6 +1132,44 @@ Author: Alison Sanderson + + False + First Startup + False + + + True + False + 10 + 10 + 10 + 10 + + + True + False + II. A word from the Programmer: + + This entire program was written in Vim. Emacs users beware, +IDEs beware, all beware! For I have the power of Vim! Hahahaha +hahahahahaha! Anyway, hopefully you enjoy the program. It's +my first serious effort at writing a GUI program. This toolset +is made to encourage people to try out Marathon and hopefully +start making stuff. Modding should be a fun journey for +every one just as it has helped me to further my abilities at +many things, including programming. + + Also, 3 space tabs win. --- Alison Sanderson + Programmer of Maraiah + 4 + + + + + + False Tycho diff --git a/source/tycho/data/tycho_res.xml b/source/tycho/data/tycho_res.xml index b0892a8..1fdc56d 100644 --- a/source/tycho/data/tycho_res.xml +++ b/source/tycho/data/tycho_res.xml @@ -7,5 +7,6 @@ data/lines.png data/points.png data/tycho.xml + data/tycho.css diff --git a/source/tycho/hiddenprotocol.rs b/source/tycho/hiddenprotocol.rs index 85b9bf7..622d0f7 100644 --- a/source/tycho/hiddenprotocol.rs +++ b/source/tycho/hiddenprotocol.rs @@ -17,23 +17,22 @@ pub fn draw_map_none(d: &D, im: &I) d.text((4, d.h() - 4), "CAS.qterm//CyberAcme Systems Inc.", CR_RED); } -pub fn new_map() -> MapState +pub fn new_map() -> MapEditorState { let info = Default::default(); - let ed = EditorState{}; - let ma = MapState{ed, info}; + let ed = MapEditorState{info}; - ma + ed } -pub struct EditorState +impl Drop for MapEditorState { + fn drop(&mut self) {eprintln!("dropping MapEditorState");} } -pub struct MapState +pub struct MapEditorState { - ed: EditorState, info: map::Minf, } diff --git a/source/tycho/main.rs b/source/tycho/main.rs index efaea64..24e4902 100644 --- a/source/tycho/main.rs +++ b/source/tycho/main.rs @@ -5,6 +5,9 @@ use crate::{hiddenprotocol::*, noroom::*}; use gio::prelude::*; use gtk::prelude::*; use maraiah::durandal::err::*; +use std::{os::raw::c_char, rc::Rc}; + +const DATA_NAME: *const c_char = b"tycho data\0".as_ptr() as *const c_char; fn hide_on_delete(win: >k::Window, _: &gdk::Event) -> Inhibit { @@ -43,9 +46,20 @@ fn run_app(app: >k::Application) { let b = >k::Builder::new_from_resource("/net/greyserv/maraiah/tycho/ui"); - let app_ = app.clone(); + let prv = gtk::CssProvider::new(); + prv.load_from_resource("/net/greyserv/maraiah/tycho/css"); + + let scr = gdk::Screen::get_default().expect("no screen found"); + let pri = gtk::STYLE_PROVIDER_PRIORITY_APPLICATION; + gtk::StyleContext::add_provider_for_screen(&scr, &prv, pri); + + let app_ = app.downgrade(); let btn: gtk::MenuItem = get_obj(b, "btn-quit"); - btn.connect_activate(move |_| app_.quit()); + btn.connect_activate(move |_| { + if let Some(app) = app_.upgrade() { + app.quit(); + } + }); let btn: gtk::MenuItem = get_obj(b, "btn-about"); let win: gtk::AboutDialog = get_obj(b, "win-about"); @@ -74,6 +88,9 @@ fn run_app(app: >k::Application) win.set_website(env!("CARGO_PKG_HOMEPAGE")); win.set_logo(&load_img("/net/greyserv/maraiah/tycho/tycho2")); + let win: gtk::Window = get_obj(b, "win-first-start"); + win.show_all(); + let win: gtk::Window = get_obj(b, "win-main"); win.set_application(app); win.show_all(); @@ -95,6 +112,7 @@ fn main() -> ResultS<()> // get jacked, punk. opaque data structures are for nerds. const RESOURCE_DATA: &[u8] = include_bytes!("data/tycho.res"); + // first we create the static resource header, which is really simple let mut static_resource = gio_sys::GStaticResource{data: RESOURCE_DATA.as_ptr(), data_len: RESOURCE_DATA.len(), @@ -102,21 +120,54 @@ fn main() -> ResultS<()> next: std::ptr::null_mut(), padding: std::ptr::null_mut()}; + // init it, now we can use it throughout the entire app without copying! unsafe { gio_sys::g_static_resource_init(&mut static_resource); } - let app = gtk::Application::new("net.greyserv.maraiah.tycho", - gio::ApplicationFlags::empty())?; + let ret = { + // create the application first + let app = gtk::Application::new("net.greyserv.maraiah.tycho", + gio::ApplicationFlags::empty())?; - app.connect_activate(run_app); + app.connect_activate(run_app); - let ret = if app.run(&[]) == 0 { - Ok(()) - } else { - Err(err_msg("bad return")) + // then we can attach the editor state to the app's hashtable + let app_ptr = app.clone().upcast::().as_ptr(); + + let dat = Rc::new(None::); + + unsafe { + // this ref will be dropped after the app is run + let ptr = Rc::into_raw(dat.clone()) as glib_sys::gpointer; + + gobject_sys::g_object_set_data(app_ptr, DATA_NAME, ptr); + } + + // run the application and save the return + let ret = if app.run(&[]) == 0 { + Ok(()) + } else { + Err(err_msg("bad return")) + }; + + // unref the editor state so it will go away + unsafe { + let ptr = gobject_sys::g_object_get_data(app_ptr, DATA_NAME); + let ptr = Rc::from_raw(ptr); + + std::mem::drop(ptr); + } + + // destroy the editor state first, and make sure there are no dangling + // references to the application. + std::mem::drop(dat); + assert_eq!(app.ref_count(), 1); + + ret }; + // finally, deinit the "static" data, and everything will be done unsafe { gio_sys::g_static_resource_fini(&mut static_resource); } From aa0f6cf5379cf039c07de563cb48ffb227f7765d Mon Sep 17 00:00:00 2001 From: Marrub Date: Thu, 21 Mar 2019 21:17:30 -0400 Subject: [PATCH 02/29] output resources to the correct directory and handle errors --- .gitignore | 2 +- source/tycho/build.rs | 20 ++- .../data/{tycho_res.xml => resources.xml} | 4 +- source/tycho/data/{tycho.css => styles.css} | 0 source/tycho/data/{tycho.xml => ui.xml} | 147 ++++-------------- source/tycho/main.rs | 3 +- 6 files changed, 48 insertions(+), 128 deletions(-) rename source/tycho/data/{tycho_res.xml => resources.xml} (85%) rename source/tycho/data/{tycho.css => styles.css} (100%) rename source/tycho/data/{tycho.xml => ui.xml} (90%) diff --git a/.gitignore b/.gitignore index c445795..79ee3fb 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,6 @@ /target /out -*.res **/*.rs.bk Cargo.lock perf.data* +*.bat diff --git a/source/tycho/build.rs b/source/tycho/build.rs index e0c9e2f..43d44fe 100644 --- a/source/tycho/build.rs +++ b/source/tycho/build.rs @@ -1,13 +1,23 @@ use std::process::Command; -fn main() +fn main() -> std::io::Result<()> { + let out_file = std::env::var("OUT_DIR").unwrap(); + let out_file = format!("--target={}/resources", out_file); + println!("cargo:rerun-if-changed=data"); - Command::new("glib-compile-resources").arg("data/tycho_res.xml") - .arg("--target=data/tycho.res") - .status() - .unwrap(); + let o = Command::new("glib-compile-resources").arg("data/resources.xml") + .arg(out_file) + .output() + .unwrap(); + + if !o.status.success() { + dbg!(o); + Err(std::io::Error::new(std::io::ErrorKind::Other, "failed to compile resources")) + } else { + Ok(()) + } } // EOF diff --git a/source/tycho/data/tycho_res.xml b/source/tycho/data/resources.xml similarity index 85% rename from source/tycho/data/tycho_res.xml rename to source/tycho/data/resources.xml index 1fdc56d..c001e59 100644 --- a/source/tycho/data/tycho_res.xml +++ b/source/tycho/data/resources.xml @@ -6,7 +6,7 @@ data/polys.png data/lines.png data/points.png - data/tycho.xml - data/tycho.css + data/styles.css + data/ui.xml diff --git a/source/tycho/data/tycho.css b/source/tycho/data/styles.css similarity index 100% rename from source/tycho/data/tycho.css rename to source/tycho/data/styles.css diff --git a/source/tycho/data/tycho.xml b/source/tycho/data/ui.xml similarity index 90% rename from source/tycho/data/tycho.xml rename to source/tycho/data/ui.xml index 6e17d50..0a0a75c 100644 --- a/source/tycho/data/tycho.xml +++ b/source/tycho/data/ui.xml @@ -98,7 +98,6 @@ Author: Alison Sanderson True False - The name of the map. Unicode symbols that are supported by the Mac OS Roman encoding are converted automatically when saved. 0 none @@ -110,6 +109,7 @@ Author: Alison Sanderson True True + The name of the map. Unicode symbols that are supported by the Mac OS Roman encoding are converted automatically when saved. @@ -144,7 +144,6 @@ Author: Alison Sanderson True False - The texture collection to use for the map. This is one of five bitmap collections stored in the Shapes file. 0 none @@ -159,6 +158,7 @@ Author: Alison Sanderson True False + The texture collection to use for the map. This is one of five bitmap collections stored in the Shapes file. 0 Water @@ -189,7 +189,6 @@ Author: Alison Sanderson True False - The sky to display on sides which are marked as "Landscape." This is the sole bitmap of one of four collections in the Shapes file. 0 none @@ -204,6 +203,7 @@ Author: Alison Sanderson True False + The sky to display on sides which are marked as "Landscape." This is the sole bitmap of one of four collections in the Shapes file. 0 Lh'owon Day @@ -627,96 +627,41 @@ Author: Alison Sanderson vertical 5 - + True False + 0 + none - + True False - 0 - none + 0 + 0 + 0 + 0 + 12 - + True - False - 0 - 0 - 0 - 0 - 12 - - - True - True - This field is unused and must be either 0 or 1. It used to be used to give different physics to the map editor and low gravity before it was made into an environment flag. - 0 - True - adj-phys-id - True - True - True - - - - - - - True - False - Physics ID + True + This field is unused and must be either 0 or 1. It used to be used to give different physics to the map editor and low gravity before it was made into an environment flag. + 0 + True + adj-phys-id + True + True + True - - True - True - 0 - - - + + True False - This field overrides the Landscape value, since Marathon 1 used that field for the music number. - 0 - none - - - True - False - 0 - 0 - 0 - 0 - 12 - - - True - True - 0 - True - adj-phys-id - True - True - True - - - - - - - True - False - Song ID - - + Physics ID - - True - True - 1 - @@ -734,6 +679,7 @@ Author: Alison Sanderson True False + These flags were added by Aleph One but are hidden and probably not meant to be used. 0 in @@ -799,7 +745,7 @@ Author: Alison Sanderson True False - Aleph Mission Flags + Hidden Mission Flags @@ -813,6 +759,7 @@ Author: Alison Sanderson True False + These flags were added by Aleph One but are hidden and probably not meant to be used. 0 in @@ -938,7 +885,7 @@ Author: Alison Sanderson True False - Aleph Environment Flags + Hidden Environment Flags @@ -1132,44 +1079,6 @@ Author: Alison Sanderson - - False - First Startup - False - - - True - False - 10 - 10 - 10 - 10 - - - True - False - II. A word from the Programmer: - - This entire program was written in Vim. Emacs users beware, -IDEs beware, all beware! For I have the power of Vim! Hahahaha -hahahahahaha! Anyway, hopefully you enjoy the program. It's -my first serious effort at writing a GUI program. This toolset -is made to encourage people to try out Marathon and hopefully -start making stuff. Modding should be a fun journey for -every one just as it has helped me to further my abilities at -many things, including programming. - - Also, 3 space tabs win. --- Alison Sanderson - Programmer of Maraiah - 4 - - - - - - False Tycho diff --git a/source/tycho/main.rs b/source/tycho/main.rs index 24e4902..0b3c339 100644 --- a/source/tycho/main.rs +++ b/source/tycho/main.rs @@ -110,7 +110,8 @@ fn get_obj(b: >k::Builder, name: &str) -> T fn main() -> ResultS<()> { // get jacked, punk. opaque data structures are for nerds. - const RESOURCE_DATA: &[u8] = include_bytes!("data/tycho.res"); + const RESOURCE_DATA: &[u8] = + include_bytes!(concat!(env!("OUT_DIR"), "/resources")); // first we create the static resource header, which is really simple let mut static_resource = From 7e92521e2e4941b0979ed7567e8df962e4800ea2 Mon Sep 17 00:00:00 2001 From: Marrub Date: Fri, 22 Mar 2019 01:34:21 -0400 Subject: [PATCH 03/29] crap --- LICENSE | 2 +- source/tycho/data/color/lines.png | Bin 0 -> 2266 bytes source/tycho/data/color/map.png | Bin 0 -> 3732 bytes source/tycho/data/color/points.png | Bin 0 -> 2234 bytes source/tycho/data/color/polygons.png | Bin 0 -> 2884 bytes source/tycho/data/hc/lines.png | Bin 0 -> 1971 bytes source/tycho/data/hc/map.png | Bin 0 -> 2460 bytes source/tycho/data/hc/points.png | Bin 0 -> 1864 bytes source/tycho/data/hc/polygons.png | Bin 0 -> 2293 bytes source/tycho/data/icon_index.theme | 15 +++ source/tycho/data/icons.psd | Bin 33974 -> 4358698 bytes source/tycho/data/lines.png | Bin 226 -> 0 bytes source/tycho/data/{ => misc}/tycho1.png | Bin source/tycho/data/{ => misc}/tycho2.png | Bin source/tycho/data/points.png | Bin 205 -> 0 bytes source/tycho/data/polys.png | Bin 538 -> 0 bytes source/tycho/data/resources.xml | 17 ++- source/tycho/data/sources/icons.psd | Bin 0 -> 5387602 bytes source/tycho/data/styles.css | 6 +- source/tycho/data/ui.xml | 139 +++++++++++++++++++++++- source/tycho/main.rs | 12 +- 21 files changed, 168 insertions(+), 23 deletions(-) create mode 100644 source/tycho/data/color/lines.png create mode 100644 source/tycho/data/color/map.png create mode 100644 source/tycho/data/color/points.png create mode 100644 source/tycho/data/color/polygons.png create mode 100644 source/tycho/data/hc/lines.png create mode 100644 source/tycho/data/hc/map.png create mode 100644 source/tycho/data/hc/points.png create mode 100644 source/tycho/data/hc/polygons.png create mode 100644 source/tycho/data/icon_index.theme delete mode 100644 source/tycho/data/lines.png rename source/tycho/data/{ => misc}/tycho1.png (100%) rename source/tycho/data/{ => misc}/tycho2.png (100%) delete mode 100644 source/tycho/data/points.png delete mode 100644 source/tycho/data/polys.png create mode 100644 source/tycho/data/sources/icons.psd diff --git a/LICENSE b/LICENSE index b60e7d7..e0d67b9 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ Some of the data contained in tests/data and benches/data is Copyright © Bungie Software. I do not own them, but am permitted to -redistribute them. Everything else is: +redistribute them. Everything else is public domain, as stated: To the extent possible under law, I, Alison Sanderson, have waived all copyright and related or neighboring rights to this Document as described by diff --git a/source/tycho/data/color/lines.png b/source/tycho/data/color/lines.png new file mode 100644 index 0000000000000000000000000000000000000000..980fa1046fb7cd84365916066839bef6ef80949b GIT binary patch literal 2266 zcmbVO32+lt7~Vq55pD|wI*7{_8F1L_k$Z=pNlRl%TT7uFa%^@t%|en*cekXifdIt7aMV?}t zKrw<_O|ycXQy00t01ZLo5{tYvGnbQLJD1OU;*p2dwFu0!@kpM|hTFVm&dH~jh}^`I z%v`2qE@NVm!~}R;5d{d`oJ_+-ZkI=*isF$LUJ9(0Z47~1AoARJBv~;CPqAggWMcmzn)EYDK3R-@M$G+NY7a4bsLwK~*9usEt=Xu`-c zB+U?xcAn1kanfQ=OTo=rv(7*esiqXd2)-Jvj!e^8bfmsr*XogE+QV?|ws~M%XQH)6 zEkmOmLEBL~snwt+&PbpnO|wQ^;~;4x+oDgIMUIvQF;@^=?VXz4o(b4&RyxxNkIv&g ztl*QzbkN}}w9LgLKyE^D4N8)^I8K2diKDm{ELx#9f#n^=okB@UNB#v0jtxu8^nZd` zhH?m^n+6@kyXkxm^Lp|TI9wpgEVu*_7zW;HI__J|=4?@L@Gc;ba>l2?)>N~eFzNLu zsV0;|(ppmsC-U<+Hcb@Va7&j{d?y*^45W@R8Fi>mOB+x|qa{%qH#k5*2Bk`R0;f5o zO`rY0-GPOjO6Mg|rQ)_(Fp(>0Te)~(0~{ubW|VUc0;7TNieY85Gsj=7HCpw3P7YB1 zt;8Mc)(VpZhwP(8E;%0@ffwqcRz1c^d-6FjYB5BK6jO#$YiL+&DV|5&BI_`~+Tma- zD$DRV1`pwZ&UpZ}2*!24(+jI0sLNujB{|nwcYjS*R&?@^@-thvm!DACR`>^GUHhUjBB1Ko{rhuxljCVh;9&Ls z>l-#)+Olrk?;o!g zGHxGD+Ez(Lmcf$-936RcU(>~Xjg8Mf8@=G8!4$6>~&8Bw_~K zXP2q!z0HArP1mBaP@hM!-;`~Wqo@h9A`*icgAYG@V_MfL+pdKr_4!GCe+x{ms9ss_ ze`i_K^2cu_-o6nrrgRfr`yeCXV`zSGKxD(}OT#wJn#m-U@AU7CYc}ku*$Q|cr(}l~ zZL3)vaNafdT{1J_Ye*9u5tSZV^>)*=hTw?E^=C@2*VT+noH*UdLXXp$bt z$3DSc>;7q!*Z+K+4;*y3RH7~n*N8yV?QcyAJ)`N%dV8!Z~qBa<}Eh> literal 0 HcmV?d00001 diff --git a/source/tycho/data/color/map.png b/source/tycho/data/color/map.png new file mode 100644 index 0000000000000000000000000000000000000000..22f44f661a735de91205b3ceee90a148ac6354dc GIT binary patch literal 3732 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 ux4!GXzirzycw?;_e{kv~P#d&=N*lA%Ra7?AoRP literal 0 HcmV?d00001 diff --git a/source/tycho/data/color/points.png b/source/tycho/data/color/points.png new file mode 100644 index 0000000000000000000000000000000000000000..a22b950d850ef69a05658600985768ec795c29b2 GIT binary patch literal 2234 zcmbVO32YQq7+#JdEdg7orW^^wfIy+MbL{LfBTJ9nZo7dkWm{&|p~;hWI!-o4;6ultil@D&}-oT?fOeFo@vH^b_>1cM>!S1~tV z%lAxVc{ya{1i26xOG9CZHW{Ur za^_^^@^gxKMnIFtBjZY0s2~J14k--ykw*|lKXh74# zERL6ylo(4)Mp^OWB*QQ`LE#jIK?J6jNg7v*N$T(p4Njo)iWt^JSweJ;T%kN$v!l?{ zwh%&Lk0+v7Qri;+Q-+svVVpD)cqpXD)rwX%FL>@omuNM&EDUfjQ03VQ4ny zwA>!U3y{-`fuu#~F!ldV?yw{95nOn-5^PPAz~dkYLQtOyVzeY_XFR5jG7Mbjti}U8UP;N1?qOn2}2pCyNn=ytI2+YKDq)p%{ zjwgK`db;8hCMGS7Ff+8nY$eHb#zs0^X%>pIS}cUi!Vn!?x1?&E#DfmoBD8I_ac0IR zkQflGCX6xDG{!L&0s|CH&?a9YT}U#meAb}=PLq{fSq^q|YIa8^5QjtWOdB#fPm~0? zL{03(0ZvW>b`;7Pj4)vol}ivTyeJYQXt-#DdSpTLm30X>|U!N||}aX2#4kXT^9EO<^2i^}&Fwq>VILNP+`sJ74&} z-GN7($`n;trLy)}kOOA5uYw}90S^<)@%p)jfpO4x-LSsdmE$kg8g2ZN0Dvn0R^rZe zYlEq>Pb=XRkm`p=;Dx%VjmHN#$q(SD#Zf&{Tpvnpq2X<%cpi1DtkVGNfWxV%FC*g^ zenbX3kf3S>j_bg_!~G40?mo9OH8*ham+DCqa=G{;E$?ccnmsi&nGN0Ws)VW&%XWS9 zVcpTh^(#M^74Jp2ceMxRHi9zUS4eR&TX@=1}c&`pLrq z_L_oqi?&S(XvIsE%G=ik-YY#ja_CM`&#zy*@M`IZQGZOji+?0uKaW0`w0C3C@Y9Jy zHdpmcA9--d*y?aj%DpDz_Vdk;qi&o$opbF}60>=1!)SBL!L+(2DduSOt*ZswhU7ne zFc;sf1{R*$s5V~0D`#F_Rdo_X5QhAi^|WfssH3`$liF#diDUlcIc;9 z2TC!SJ@;vS;~x$xZoZ6PTjRZVB;jzK@BE$mV}yIdn$0WxyAqKK8@A57p@I&AyV%~S zx0=pntX=nQwaVc9rBe;Vf_bPI|lT}?XBfceLZE7rW@8ybT hqozcPJ+GkcH?%q)P=D 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 I)H7WFPX`TKI{*Lx literal 0 HcmV?d00001 diff --git a/source/tycho/data/hc/lines.png b/source/tycho/data/hc/lines.png new file mode 100644 index 0000000000000000000000000000000000000000..a3964e67578bf523ca807936b38c8f0cbdd7f42b GIT binary patch literal 1971 zcmbVNZEO@p7``i7prt|uqmoEBOIu51Z)ZR5W0zjP?vD19qqUT@O>ALqckXWO-R`lw z?Ojn~0gV*V#6N^+B^pCQVuU{;qS%(wkQjcDNC*;>#%c_r!L~_bt1;^AebJbz#LMl? z?9B7L&%7V=-f-K_=CYEFB{rL_EZE|2$0M+wRmJ$Xv*_1X@vu7C(rwsmrR%N7ZhLFw zF`Mnd-;|Cnvn#Yil(d8c%32sX(upKS+ibP<=_Hi;kV%A5R8hU;%x7aHp~zmc(-{Jx zqz}cEmi;=~wSQ-aw7*XhWU{`Fs7;I5KmwVNNGIZ|A*Q`##;%Cx)-p{J8Hm~EB^xb4 zqAS!!_%t06PKS$<7@j5Ef`f4Zf#tUnEMVL;aMKJ&0Y(HakrRmAhs0{S91+|7+jCm@ z%}d5iGbz$^DwT4iIESW3X+{tP8n86WQW!xQgQ^MBlxl3wTks=8(v_sCXewb@gki1U z^pg0bSr-z?P^e&7HFAN%A*0hUNiz;WClZ!l8MI-xqkG3#7HxD4CK26^46R?65QcBQ zM-B{N<(v=qK@JQc)hy6)=>MIZ*O8?HF4?cgGhvb?8pTlp+cU6FOu?aKOfxkjru~EI z!geMQmH>{H*s3eIXkgs0N&S||px;a49fz#QBIG%j)6MZzm_ahdgn1_=FfyPx2{Im8 zVxh!D@^+Tv0~h0S3T_wgbGjKOAP9|s-`>PD&_rGm?+X;*D3E`j1}BSRDZCs>xmh^8kX zt{^1=qliwbQIaSmNc3rOO~=CcbllSQpwHK)YY`=mH;ne?CL$Q{xfsFaqF4uGU6O20 z{YX~^ki1>j5=5rTMP-=?BRA`m1do$)^3Y959M4h^xUC4g84ts`7yuEOiX~fzchf+1vL7{f!;5sk^tXs)rgjT-o>Wa}|xJ4*XfRFd4W$+I-{3!^cKWR}!H4 z#MLNQxqjm3g*{+o&B=8WFWmnAg6+|7iU|1jz}=aJ^QFZ6*-v^_c0aInRM~iGxZ!fe zrp3yjzvt$ct30*ut)4meQRC#==f`WN77o0LZmoDpx%p&xyt3|^v1Mvt{P@B8YtxD1 znoD1o{4o8Ur}xwyH9P<$cCqSQ{$DRH6>N) zckJ7W|In!3&LQUF8$+Awj*=gyZ`j{o1Z&Ps?=J4T^g#*n`|!cm^42Qx#qQ%*=K5At z&&|h+#;S)7*WbB9m$f`Q`%KZhvuBIvXJ4+a4SY2*_ONaEc5!lU+vN2-^P`V6eT(c* zoUD8L$l`^eVD0OrHF%tvj&tJ`<+Fyp^?DWA`^!V~2Od4Y=%ui=uIg%Rd g?ingwTxsuY|LNL^t+k)KtiRP@V5k2~)80dW0YY1rCjbBd literal 0 HcmV?d00001 diff --git a/source/tycho/data/hc/map.png b/source/tycho/data/hc/map.png new file mode 100644 index 0000000000000000000000000000000000000000..55b6ace761ff2dfe5ebc1a7fa2d1b686749a571b GIT binary patch literal 2460 zcmbVO3s4m29bY`81|(5IrI9r2i59GT`?$S3cI6bf1A+07kW+{yz~1g2w{mxT*;}{+ z!H|&ph?zzTnyF%PzGfsqjBR6l5vVZ{qiGRe4C4b8tJKC;z)_^F{f?KWLldVrx3}N! z_xt~T|JV1Q+mMmIBsBQNU`@|qihLc;u40JOC> z0)i$!63p3hwrMHNiVhXSi56bvb+`Z;g5nl?T?|{u%dmwn5S)7D-;XpaVS&>tvot2m ze2N_Yq&7wVM> zenB|flmQz=iH9{REyCg?0qZCguEi*VTmTaou0t^$imMR}r!g(9rr?o}5~xX>mCiIK zk7$7>z0xMjE*eEW9*@eSR*6ypic=JYVgyPM2tXk25~s{~5vP03D1(uAvy$MF1Tv8B&Q&DYhtkBcC~xN-fX@wL!p8z~ z*+f}%+r7M0!K5XTC35iNyLKl9D-X& z4MO1@hNxKvkL6f`VR7py&v^D2snw8Lj35mf9gZhav82vO=`ae{X^k2kkvM9b>U7JD zljTRX1)xo`IK~nrg%Cg&v1mvO!T>6Sq;wWFj$2r(g&MM_4HD1DqGT3D`)H?TjAjBh z82p_X3rA-OPEPc=W1h0%jf~9em0+JjFf~FDW(=djmjEqHg2gb@ByxhaWLzjtt99Rl zf@8xmGV`Ngj-{=ltL$MUKA`{{foJNXVLR5wI16|%YEh*>Qq(_`hC@S# zOYtP?p}nUD*eD!KMgMYa9D|3kfzCStwFJiXU$@`tgdjyqsxiTAyYk)E{e>$NB2Vlo zt~|t(@|NeFxQ#edV1kSW{_%}A7 zYha9$TNn=Q&tAHRm!|92welMDG zeZf%RNq1S<(P_{&--(*8f#wso4^Al*$I=>J?E2}hjMaZ=y>@6mbY%{wf})S@eZ4gY zde0#%e2_0>{@H+toYTnkuDY~WK5L4qcs?$W*j}{|KdE^Cpe+nfp3re-W%hpP`n`j) zi+Gec>(_#ITa@aX^@9dfU(=@g;7+m%`ps_xEB+GGU@M9H*-<)9@$&KAnK9?@{jzaJ z??730Mq;0n&#AcQJstkf-lHc^&GvQd988?`FeNg+CGFGezWlRNWA}uJ5>J!q^6SvR z=FCql``7P#XI16O#uYUwQQ_q~Ld&9@qWHp|vx2qOS@GJ}l@-tB=H^O+Z@pm2?_G7l zM$QO|t=-}2|8PMT77?ZRcYgn`w2{@PZl+xNdGe*a(pztr^=s!Z3~Bq_7wLui)_D!f zuSIgf70YX;^>1!>99X$N=plBeu}f`DVSX{msXg?F&Npt)1il|CE}PZu}%M|Ly+(S+|BX literal 0 HcmV?d00001 diff --git a/source/tycho/data/hc/points.png b/source/tycho/data/hc/points.png new file mode 100644 index 0000000000000000000000000000000000000000..120dbdf10b3ece793c5db2b3edc4b69c6ec0f36b GIT binary patch literal 1864 zcmbVNZD<>19M9&QwPm^?bVCr%+XtuYa__m^ZP`e3X&W$GmS(m^5ue;WNsi`Tyt_7O zQSb#FRp=C?(=m$(IzNaXtaNM+TSTFs+@vt@g&|D0G8CCsSPO#x%Ugp~Er#6PbIP+tGP{XDAffk?L2o@MMCkV>{djx2~Rm$K6ib z2^SAc9LZ@DBbuy}hYt}4s|qMEv5$zVS++c-8Y63Z6<7z`G)dGT{z#0B2L_3ubcRUS zE+)iqgwj}nBP2P@Mi`kB_7fb#N;D(UEKf14!bB8aCK^8ythstY$*R2#TksYmOTO}jsy_=ar}fku?KNBtNHp4LM! zopidT*zy{Qf|Su!qJ%k&;=Rp?D3kQC;JZ#ul1-HsUjp zWK?8DRY-^u%O>TxAjrMFOk7RGB_Yc6Hn}Ow^O2?Drfmak^SXv4491Yg=@hRE5|!sQ zh7zL%o{0!~35!yVuOwWIeA~_0cDdQ9nPw)4L?Y15@D)MoR1i4Hx zJjHQ2hEd?pNfaZ%q7F^lx=|S45Xvb)Ylp(I(UFh-6Rc}W!FEjq9b}lOh-t?vl0>UO zO2RJNE*J*y`1bu&B9U?Jf>8#6m+k8zQprSwl_L>~3$wu?sn=A+t}%x7Ue`8>T9+%v z1{uZ@Cu(w3q(lKpl*S7jg&3&-0ZD9>@bYoRE zzy=&91!=*#hQJW`9vBWbH*$P)tx@M!N*GlBt;FqhtHV6I;8&1~<3%_Eo9d!EPb(p- zh+)*yWDqGG45fN#biEYoQP*T`1FQ*$sTeF<;}~9A107qS+J$j_>B`(q81*YDHJ&S7 z{pHGh=ZnnF?atXR;&g`+PGV&G+-obVPG;albh_1z`1H_5c6? literal 0 HcmV?d00001 diff --git a/source/tycho/data/hc/polygons.png b/source/tycho/data/hc/polygons.png new file mode 100644 index 0000000000000000000000000000000000000000..f61ab0ae7a0abc2e0765c2d3da918ea479e657ab GIT binary patch literal 2293 zcmbVO3v3f*9KWs=#$#kMaPt+)qG(T-)oex3wDt zD?)e#L`6{tI3N)WlZOKGP+3)mI-^lhHkcxA8gT?=(?}*m{BDmz%v562>wS0M@AvyZ zzkj-B&g>a!BkvlCAV`|4z*z|IqdRD>Ph;Tt^1VKh+sFwz*+meMKxBVd& zl_(|dSu8IF^_(DifIb!sLo|Y9PmhH;z5*zy2l&L04g2M-Mhq1N8@9mcCf#8N@QVet zGMHC8yNIu?;H?5S{UJ0v#zKK0P&hOe41^+V%!c*pvT&`wCNQ)QqEy(hT-6|2;+}&# zBpIMay$Rt<99;pc_TnrCICJZV#L4=pZup&w!R8{0WQk7!E zpr`#I1jBB3QaBVDNEA#N5#z!Hr6-ACP>rh(9Z?Fw4L62FM~Z5~fG7kJsY>Pngip9Z z&Z~x&2V%Gda$YqEDM>m^{lAk3?Ff7l7p{^6eQ6SS0t7%1>P28oR5GBjUs9xqU-}2> zoR0A+u?8CAMn}!QGCB90PbUAGp+|di7z;cYiWHcKX+(Q8Yr#y@iw^9O$8+eYg z2t3X4ly^{PC_ZVV?N-KOWgJE`MdexTPJ3Q1Wz1u8?H1CWZy)5kLJ@@v@nF!l2yL4w z59c)*c$^U!3TKQAgIg?C4)+Q`um~2K@z9n&KI@PHr$};>V8h_P6(G;s>9461$YM1R@?|NA_H{Wc4v}GCrj5MSV#JLMXU2I0L*pE2_QKfBl!Y>wD3Sx% z0AKjO-9aRsDi9;EN;LzsU>>L(SOr9A10E)p$bPYxMJ@egGx^ zR^prM)(?wFUM0%OAlCLFmcZ0V33Vv-heq_5;zrbcdp8ZRK{%X> z>M}Ww;X`tugAkOK;keHBot};$DcfDn+#>(EOJ^D%Ys*36U87pJj_&OIymb6?O%+cb zGC8!}oy8T}=54P{Zti^L-R9PHWfLy%jbB9$ZLfLaf`(OAzt@uI8`qL{+SN6=Y53u~ zUsgS%Jg!5}b&q>6F=oH^%WlV#oYY?3@sxU`V-F(qcE)tx#BG-~e)H}7*F9ca+kW}- z(+3V1+AZZB-({w2>oo^P#C=^mMQlaMr`2z*54J5TFPEdy!()C!mTL2JqHXcaju!X( zWY(BfE4U9mua^w3)AHxDF1-D~Hl_F2(ZAtf+lo!^wS{uPwXp z+bb{4-Zi#zk$Lf*^`LZ5SJO{dkL%W5)CDG%|CzDUx8sh)>GmI{WoLY|JHF?GQTMOj zQIL{fjFh#nOh2-Bs>Zw<33l02Yu_pF;&~=|eB9){alu;-FLo&3YhXgr!)s zNE3T`SK4{YQ@RsV;u-O_wuM3DeR6F>YjtU2399uUDm$C*dbZ%iGtCvsFfwcOLCtdX z>G-JeiOe{fdQcN++Z2Ckn+a literal 0 HcmV?d00001 diff --git a/source/tycho/data/icon_index.theme b/source/tycho/data/icon_index.theme new file mode 100644 index 0000000..488015b --- /dev/null +++ b/source/tycho/data/icon_index.theme @@ -0,0 +1,15 @@ +[Icon Theme] +Name=hicolor +Inherits=HighContrast +DisplayDepth=32 +Directories=48x48/actions,48x48/apps + +[48x48/actions] +Size=48 +Context=Actions +Type=Fixed + +[48x48/apps] +Size=48 +Context=Applications +Type=Fixed diff --git a/source/tycho/data/icons.psd b/source/tycho/data/icons.psd index cb007c9d9f06ca94bc053d039c7ed55d509dc357..65188fcef4df1962d617489bdb14e29fe3a03170 100644 GIT binary patch literal 4358698 zcmeF)31AfE-T3j@gc}60R_ldp(AKIU$>xq6A>mX4DM3Ul)y?i~vSqWo?rtDpRca4= z+gj_@zOP!fwO(zl){1@A)>i+m)_N;a#S;ZQtB4|y|L=KbW_Nb8S%P9M`d!$}%=64V z^UP|&STgqGF&1PqK){2DLwqovrz=|b-`e4bF$s;EAH1u@EyUdi|+tU?^CL4Mt zmH30PcC$hHRd88}SC5ifGO1*$itsLKY4tY85~jC$LQQF)qRQv3t)Ea)Q(o_@I?C%S zuc$36uPv*nEG@5SD6eU#toPcVlF1{aZ(<@CYM4K5hCMqOnpD!6O2r$>%9br#Hep%i zgjk}ZtfIcYzO39==JS=x7^TVO(UiZZG@2Z5CE}zr%}fRo;dm+>i+WYM{`OdRYEnsw zno;^=FIQJQJ)>xHf?mc6fml~rk3U{kF`>LH-$cPcdYX85BBHYv43wD>v&)R8k}_RI z-syz2r6oOS-r03^<()E_n!Z$)z!u3nWpcstxLG#eOvbts0dx9N$;tS9nU8nIQn6%b zte@phM_Ws;e;mtfqGZ3JIbr%!vBZK{EHc^p-CLdXyv@z(cdqjuetb9@j4exkeqvef zB$;0zlbSirpE4)Ql=Y?MzEWTHg7Vsis`>_1RH_@w%Uy|BW9FpMBBe3tPx)P`RF?XD z3(Cu7;)be<((L(2!0N@h$~8o@wAD3<8*rzZR3@klt}SH-VvX*6gT zsx<7xvdpNi>2={~m>o@~{Lz3pd)j0Pm=F#J8+`TERaMos<)!|hEKPlFRc&cqWlec$ zO>MbpR@4ORD=RBBQcH__@;*sViv_w>`LvS`O49zS%9`rh%Bs@#3Nu(*(Oy+uT3-8Jt*_6`ILbdP;k; zaNi$rV9HkduF3nK$Ffc{T4;r_lG0=KpGYzmN-gsz%&8qxCI+%DTd8JGmYe*=7^gBA4we@)1&3kGF9`d~jpwXdO~ z#;LbHx}PCaiUXbgXone`T;?p96R_~ooMF}qH5s`9>d=*0Ba zsi8R*i6vTML348D#Ik(BnUdq0%BlIM%C<{Y(8=r?Kv&RB{*LTWRZQ*rV&^s&`6?M} zfwSk~UVwgcXiey9GwMuQq0%Ci#&B7>HQXov>FR%1_GE;2WvV%8F_RpS!h>)X_Q{Eb zD+i?TAY6rga$@1i0VzBPS7D!=Sh#XP3J=0n*e53zt{jlUgK!o0$%%z42c+;IT!npd zV&TdGDLe>QVV|5>xN<-W55iU0CnpxJ9FW3;a258+iG?c%r0^hIg?(~j;mQFiJP21| zpPX2@azF|X!d2KOCl;<8kivs-752%Ag)0Z7@E}};eR5*q$^j`n2v=dBoLIPWKnf4S zRoEvd7OotS!h>)X_Q{EbD+i?TAY6rga$@1i0VzBPS7D!=Sh#XP3J(_K8j-ob)Qrka zrOV{*QS08+27Pbp3-WhQ`C9k8j*KV5(bT-|RJ=PSfrHg3t;tkdyWCEw$Cw>WnP#-R zOGT)D)oqR>)bJQRZCkiUjnNcNscBTSm8O}P>+dobOkcD>f~=WY6SO8`u~3_t>W<@8w$JdHRmjq{Q#5#%zwKqRv9dLbfN;1M@qQE$M;gM6@|G z5KUzU=CntW>6p14sio0Oa&=>c)fB;6EP(qThbO2+(|P0f-Uee?1Bpw}CWb+n>3pP7khpRlG#-|?Cf!3D=fQ!~cTkEq`^{b`B>z4^lDCnG5x-r5ssoSz8flSbIg#HOwMc<#Nv5p+ZKpe;jM{4;|VGS{n;~+ zh{cbW`|4U%2@OX(9KO*iV!q_5DV9pbx+1Y?hds$CCq`w#6~2cPK0n;i>5drbL`dG! z5p~H=5DFa;qeM zTE~o&zk3)9q_q2usF9R1?w5X3`UA#t`wsGIJ?2>XE5)I=R}UFR&|{@@kRH}|qU(JA zTMv&=W2%px#vbXhPSiQxFFia?PxYoA9Hb+pStuki z5&1jBinT*7yXfL{h)-fX#)cEyoPopV%_nqpdm4R!?UwpnBJyRx9(n+H1_a!r(!eB zsF_fA4oiTc?mD(d9$}5FLR8G`t`4tsKJ4W$md6xiZ5%azc1TOIBYOin#2-m5@ONa5 zH9BBMA`8r()a>M}1ub)&Dted`oHg?B&RAl_)JV9)*@BL-7Jil!EK5E#XomdVdXq7H zshLRS8GWG>oIU!;_6~ioq6>Gdm44IAbc9S|%#B5r_3%_IE=`Z5>8_JUM5OZW6FRD0 zSN46vN6OFMnLD~(7Y|o6lD35u=P9r2eyavmHLDajyFT4p52*s3)KlrzbL3lU4Edg7 zeLY^oQ0v9W$EBw5^giDEiZMz*YT@MO7Ne;5Rb#XsGJ-2*Bv0=eIn3vf!Yr^F~4>nR@V>3vex+#$Vx@l26i4z_AD$*}qq8=j&; zgNF_PH7muox$g#zP4%w?>@YFB(KUH$- zSA9eF{?TQ>Z5n^*r|18vy|OBC)&tE$4?DN*^=IA)B&+xN`3+zD?6e;*2u}a=<*Ax| zA3W|^^WVSw`kfDTKlkR0&z*P0H*WmNUmkw`tt)T(>mx60S{PdT&GUcp`@0@p_jc{f z<2#m}eZenpzWcEkH;*-niX^v#be@I|8Co2A&%x(1S?GPj7*(w2 zIo6nBY+7*c?882P=()3xnSJQF^Us}q=y_M1d&22w{`$F8By`I^Hr?>*`OiLk-g;z1*)L0eadPvTu7y?g=a--LSk;Eds{ge7;4f_0Z}kcHb;j@6xL^CYSC72@ zx9?uJ|CYMcKR3N{=4=1j^yKNY*FT!N@4|a0z53frFSzBt=aTomxFxcs`uJP79u}wv6l6}|K7r9zq##~pIdUW|F^H~TXXRj#xE_VDHLC3imlKwI=z|6KFMo9F-i@wcaJ+yAaDH{HMD z@>T!0{M|>kO#b?J!h`D9{H&(oo&*2Z@n$r6`qlGh4&8MAia*?b^_Hu=-yVMd`auis zU;g#!`)@k*+`n(!cIE*;f3Etz*mW1AZr=CPzc?sx_JmV=jiJ-eeCB%T^cwrEfAri7 z)L54X3XOHcP3ul?zUoD@qi*P^+kSigq}QHZwejGKpE~`(V>-6Hef#EDS1fM6s>AH4 zzfJ)Mp4xuo^}jjeyUX7?_4Ai(e4^J_d&|aOZnr<8ECqS=suoEXpLE*}CdG%dR!gIqjY6SKYlwZ1N8d ztK4?l$?t8RwBo6SlTKLlcHmzRmE-wjr|!A#mMfE!j@+V{<8N$S%{N9_vj_pP55W`|5W~B(TvX=cF_rQ%DcwT zeD1kFp83^YW8RtX%v*PL)BLgf9N)Cp&%WM%&`-~}?evqcnQ-s2RnIMsK9N}6cI_2^ zIKBMt2R1Bv@|knwBpPY*B>-z?hv#7(8Lo@jXZnP#!J3%$(k?!d+m}F z_rJfmapjPe#x*Cm?DNBoM=tr<+MhpLeefg89{lpRLa!c>c>WvV(yuhXGQ8}w>knSE z>XKtNd?xwR?h7Z}a?{Dv|5#}*bJ#cnl^|ei|N8sJCmyT1<;|CT=U;#KD;Hj}eq*mO>Gr4oc)^D4)we8~vgp)P_wV}shNTN0 z+G9fU>eEhKd*#jR&n)%V?(^LP|Nh1sUp)Pvqfhg z%I6!gdD!==e7-R^oZhkF(~oRQUVXy%&)x5|in8u`*F8OP;=*k|xbEJiZ{NP`fhTU6 z_r|hElLuXN$@ee1VCkHTTgI2X_{6mDF57a(tuHUT_1z=Cy=?BP^BXp<2w%PGPsx`{ zF28Y)lX{K7zj}?>zZaf8J34*sqSvEW9r)vK2TtyK=&cjiJ^tv;Z{2#-mXrVRaNYAA zWB)v3!{$R1)8aq6?9ASWUcT+NCoh=y$mXNR-MKir>gs=gH+AYS?p{%L%9#&_HXe1& z!)vyWeE6h;Z@O-ePS2%{#f`?7E_-Z6&xXYZR}TH!kB)u(&ZnQ9GNadcdCI^3c=1pF zapUp+15R3Z*1C5NzAyInNtfMQQ~J~~O;e|mt z2tVl?JW;=LJ`v@#9rLIN_#OM?ZP|1D#7R>A35S)5e~0L+usMcmLqZ_1o{?{QOh* zeC>>X{O13D-Ceuli%)LYa@y*bpZeO8FP<^|mbRBFy*EAbSoGIV{C(qH7i=kdV*CG$ z+4|PK=MB1PA9F?Y1@o%A&bTb`llz~1Y06(8?|5b0rTfp0Zn*SELth&A;0r%_uwmKs z4U^ip9+0x*J}b_h4w-n*Z4{F`YhJx>&29H@nNoMe|4rDOI^(MQu6X-^H78%Q_@)Ij-d^?C$OE>%arMn-R`nW} zwSOfsZP>_z@0|X|J)Q&G@BaSwAN=6#<9m&LdluLJ;)NFvyjz!gept_WtEbKS!pY|xdTDg>yzkVOjeBtV z((1n?RzLie6E9wK;$0Wi-8timpKMq>b3^Rd`wsr)&u^XAzV57nNNH@cHQEmuO5BPBP;*(|B|uWUR?0@qt8Az^x(k7&#&I}!Xpp+ zPTD&1l_md}{`>Dlle6{?Ji7F@OCEUdOLrgcoA#r!xj#R#^^sqlKjaG+T>gd9x|vt~ z`oS%WpIlb5VRiVf=!8cresW{OvgmJK-L&l1^`AcWl`(%SGq10@=_gPA`1JFB|E1@q zu6d>FzPGkLb@^k*Z7)0G)>l?Py84{Z(MNTkc0gd<-@f_7S8luc|B^4ibb9!r{cc+Q zwXWc^=A(ap`jGp6bI$B*H=nU0e%BG>E}8PXtKWI{`++~a^5*H6T=DR)AE|qH$alYd z!_^mWTzlMotIykS*0Nt!J$R37;On2dWc}?AT>f0EZ^bY6nOynpo?9;X!{asIKkv3% zPrliIbMnb|fAz+eWyf`|?y9SO^u<%m1;szT=jA1**VKIOUoRa$`MPI1&bfBcql>@Y zUH#khhc?``&$pL8dHat%=R7hz{`zZweQ%%dopIH%XP=!s;`Mh=?p>|h|A*-2@M8HZ zdkAuf)0k=m<-laS9HjBeVaiVFPsul_`{V$I95^gIhSzA8e_q39lp7UBol4l+4=Ise z!{cjdF^-U)Va8C;UeXL#(K2Jt{`yd?%0j#6fOP+tJ%`)l$S%64Lhq=nbP^t)?pJ#= z=bataJLqcKtK|EzF=FdV!;qspc6Wyli8Iub-x|s*8+<;m^UOBcMYz;s&08I1y0j=g zk5eu!&h*Rt)MtpN*v_XMy~r$!rzEp1o+I4LQsi;c@c4={XH|R}B@Z-!>}Gg6q|XdOX$<9m9})L^Z{ZzoRFX&G9cc6JCAf z!8)EE>5hgaZLfSs8xxH(V~!lnTP_79Az>Z*h_*V4Jz33L9@vhYFNH{cu90g%sm`Q{)ffStkn5vjm(i>(er#f5||_T zDL%BKI@n$w3I$3leDxKj6=qdHo-kf~<#+e^W$pJj)#KXKqR2TSJi4{>vt-m97Do+3G z=@Ss@{Dv*2a*;k^krS?tV5ZN9*m7!obtE%S_>k^-iJ+OVk5j5S4q2KVqRL@gO#R-2 z-b%*iOp{U6XzC|aKc#%^1F-rS)$Cw2WgomdOg0_WvLR}hjYvrT1>}f&h2b;m<*({9 zWsO&1^+v7q`=qZ%{?$rfNH#gOGL;H9<*)h-iAVeaGnh`hQl_nty2~%)n=(bI%t!U9 zv}>eWB{3?@lx|S^swKTT>8q3&Q@VbcUgb)ET07=Cr)1PJjY!E)7HRc&m`NK(FKM%! z!f_1`4<+PWVOz>{P6=jns49H8oP$({Z(|Oyn%l^r8I5(xb1u`tMT;bOSg>2hlxIa| z9aVO4cQ&;VI&;l(INUi*sdG0qnjTg^pgy8(FOr&ru^r{+C(yXR+$Eff!@+#_LG=e$i@Sc;1nI!?;-2j~DAjyjZ33L0TAt z=g3MTC!JI}b{kHuz=NgzrrH;#H14f9r_I*4g)v7>``_Qf*qFbCQD0MESE(PnT3y>- zDi0eD%Hbn_u(ZmotF8`|*9Cn(>$I)Ag>lSE^+Onqx~`M%@p`cD@br~BqR|=O9=67I zZR$S$^@A;?mOQJ4VaurStop$vmDR$qrDgOFwS`eH+xmLhu2;$yJt$jv)vlj>!3fpJ+YJ1^s;bgpeW=D?QCVG8?W+?MkNs8Uy{J(!$tSl3 z(Pwz!9oBfx`1Y_4bnjGu>{}Z466=n;rQr_GYH2iQVzOEqneY#_rJ;@)sAC6}(gIK| z4AlmxlYX`356PClNPtD z_RBP??NXagyI$HX>Zpinm7$vOtJK!rbu7cHMv%{d&z2Oo_~Wh? zhPryO*l3ZuEWX2I7{}}uEsJjq%ippHR@c|o)rCT(<&{5ci7=8t*$++2R>0P3r9vRxw~Fyv?Wz| zR?EUAmDRGarDgOFwPm4>7pQX}b@ETO14?Dvu38%E{Ds=OtK$gjOonPDsJ20+#Drvg zbwoq87usd&3JFo4+?GYHj1iDjY9$qQenhoUs%5xdr&DjIt=ci_{D^f1CM4t4%XsSi zNI=5X`1(W3qQ91fU9$AH+Fnm}zg>a~hTEmj8fT@3*8Q1MxucfFhdcLAV9VkosX^qI zA7IO3rd3K*QAxKfTwx!5%OYo!r81iJ8Nd}U>Q^vK!g+5FGNvWkIwk2bDt$BRZ+Gqs92!rUa#LdZHq=q_O3h`n zqtn9vNKD^6sPoq%H&i+o5Hv-iEh?3kNJ`pE`o7kjQ)~Hd#Z+TDALmv~XIOQc>{~J2 zVe{ev`;q~<$I)sB>geu{Ncz4;BjWFf=<5omMmrk6l$m^5G8Ii@=Datx|5RG}Pr9s#>nP&u~=k0o!2-n{Ab_(JF7dWeLmNMQb=EOc(yF61H%qT0Z@8moO(xb+bxX zNhT(%gmrk+5ucjAWNn6(Sb9u-vo-5>cfqcia!4W^$E(!>O6vVNT8D4$G>U zrmj>o)1R4#S1j5(gL6MA6_PwWA#T^o zvI&@-#u=TAMZ&=u;Yg&wCa*0vLtSb*L`}78Dx|rIE>%j=4jPE}wM4a)qS} zmMbi)U}Y+#u^kD2Ff5zt9W3(9#0-_eJ=83B%_7fA1a;}{Cu6c;{-C`+4>xAYHcjmn zhGmaUU302GGZR6zHmWm7hHFbWQsSLE`n|HJ7m+FLM-s>sGn}r>9$u(FzyWdK5$;6mwFoQJfsVl=^b&09hS~(sCT^`xbq#YS-uWLo2Ui-cXr!yQ*Pn={oCL zPHR=Qfn|hZHCBJMg==k4qh+O@y*BJzYF7I`H?Oisklr=8W5!B7NA<^DuB3ihpu*-v z6JFJwzci6~7|pa)XXcSJQzIRj=iFrNqP5?lrqrK#p=2t1LEP6Fsz!XiO}A=_=LsJf z_orlsFRCj2tVG=rGTY&5*1M* zC`!r=AFWc+r{tfyCGAebFwMNEO zmw2nwo@#pi$@=Xx+i1fnAZn*!aJG_!uRtSe3jvOA|{HbZvzvr|za5+M(-$^7PO zj_w_KHJpD(Uf+>mKbUGpTS_$+WRsfIn^-BS>Bg(fMaQ+t_DqeF?*M?)8tSjCsG~_% zsg^qjR3i3AlKgO*<-=q0^{32Dnv4}3lD@i4jrTW!0&i=Iwr+=d+d4P_Jn;lIw zsqTP|=gjd(f|@`bNp#)0luUHYPt&;S`~G&^B_q?EOiD(QRz|#D)%}>PD5L%Ia5;Y@ z>`%^&#FCi?Q(Gu=&{Zw2{TbGsH0AhV+;r;Y5fY%DzSNya2N}(sxtlr_A}NegsqFlE zly8&el-z+;)pqW6XP_n5IV`NJ#o5uNy8WmJvNn^mGieXx@S=N-%qn(z4Y1N`iFfSw zb+A51q8m7#@5xdP)mK||>HUhKYAFR$1qG#kkfBQXTDLu`xE}dh`>kq7K5ERa?ugg0 z&rPQT!|us%(ZPm({+``yb<&f2)IB}+M+L@YYaoN_2J|9BXG=v|58AWlnp6iMrKWI) zg{`U7Z93LX)@q`xG1Mh3Mz1WQd$M+OsjA85%C|`8QO!`kDkEw(>0G9#l6d=5v~s0B zz2v0lgxgccLSYF}2dL9`dK<=9^+)m`!A`$5zJ1qEokZ*>&24r5qC*<->IVOWz6U5J z{j=<*yjO1DSB-e<7*A5V*7>i@{l@wZ@14IJNZ;|TcK7t%+i`zVSFcLpKYlOrH>T=k za_-HNJY{`!o|Z3FZ3R^<&&rBa0|Ph<`576_Q*KXrxGEU~`F@D^-5+X6f5i9Qf8&gT z^5V6Z{T(OW0pEA;{mafuXWe%n>hZ~wEv&;)?hBqcx4WZryKRj&e5R$Q1F|-ai!&p+ z&%8CdPMNq*vADytHkq#R``hPnHsU%HACo2<=XUKfHlTe0cL}qn)19mmrZ%1SC#!^Y zc%9&W_o_dRC5&^sGserqFw(!h^kfx_0aQGk+m#CeK4Ir}<#gDLoC8StPUFgc!2pl( z=G*agj!|aqgu0GpyzkSvL#3hLEl2Uy^S!#PqW=L--{zcBlHGLKaoDNTw~HG~R$AG} zoM!aP!-nmTbFit=ynREX9p*kABy(J@g7cid)nmI)F=Zc!dmnk7wX(y`LME?mXTH4B z4ov6u#NHR2@dlRH{HMdDA@d18b*I*$?5itV8y#7LQ+M_?ik!OJ6{qe-=?5UqSXAHw zrF^IIRB?2l%2UGwKb6;GRl^tqixpDEbM zb9v6$v~Eez>DQ^N#H@39&M|rkR)L($QwquVcP>xuC-!|taOND{T$T3DpQHN^KNI+y z@*ot+C(i^n44w&`b3f%+ReNMz3i@F_6WDs9U#(m!s-B;t?q{#ked>}@b#Hx@eAS)w zA^EDi>(vu{)P<;(GOnq^>*Q~h$}`W=QOCxL6oeeN;+eqeA!s~RT(?Hu*XCtCFC%l! z-j1J_A(#Wa+x>7=2CYx}Zg*GMM}N1wTy>y6jdoXh)xB2gseL>3OyHfr`XTF?z+C+x z-~+u%Flz^bs~@QL1t{-ptW~)4d0!>Wb)t`}A1p~{chzytIhmK|$qVkI*v{1M zFz#&U>IW%J&YfNEqLHt-aA&)<>T&f$`sVcye)YpCr;J%?*J#d$qA_^;#zs4=$+_|8 zSKzUyouKr6o$iKE)_$)`cxImG zCUNzHuCV37HSc3*#NE1d7g?@;Q00@WAF}GV{;pEz>IbfVi0Dd)8<}^u4pwKRBV7HU zZ#}lI)cCKvlUZH;(D(g?nX4b>?H*S@ypaFu2i{j`{wLmuY~5<18@*Z2`afo+4pV=! zp7lRH6P|VM@?-G6LiIi%^+o{ow!%vNKrQu-WcA1`^*$l>Mgev8gSzHHy_ZnESx7yA zt3t=A>4I_%gnC1={_w2-{;qzoOO}2Jrd|4UKkqBtJ>RMRQPd!^iVg7UhvrOumA?AH z7533z{a~*SAM|~N-g~WjXW(xU>hr!ru7D6i=SYyPsXNZ0e0NyZksz*s;0g$?fKacO zun+m|o=;EY3J9)%kTT2_5SfQsHtzV@{<6vB`49cP0B7f)|Iq0jdWYT4aGD~GC!D!% zr5)xpMH&~Lx!wsI*i{8q0=xA253YQr^LlLW^LADluUr8!&?_KZ=ODQP zg6BV|=GQKIbUV*~Fy_l!Pa#Z?gB{c--QAk1K8Ri#;7TUuXd`btAJRn?__UsY9Uus&4duc)l9 zs`jY|+N)Juebu?RqDI9cpGN1@()5-2hZo*qg*)Th!#dFY0C4>Va|sRPd)yVcI>ney$_>S-3R^_rSHb<@(81z;$HfNfoH%PwfC)71|`kmT+p8;X&YYwX9 zngmm>Pq1G7RVV%G#b6=1CZS3~OXWHSpY&BpUr?@EP~m>LTA@2FRZyQH@rXZQ z2JL<4!z5lkVM4`L%GbK$!6zv=FBq%ReRYzSnq#TH=AlZ)S1%tkCFMHlQ`b!B4_86- zcNK)a>Dt_Z1QLx>_*YUQhKn?sPKi?_SYZbZRIRj+zS+{%A5JZ|1O%P!8)e)vlkr zt}n7~NTmjm)nS*{Ad==luY#~vNA)*z6+|ZNqrVD5ZCd2hID4h;%AX4Rd$M#-w%#=| zNY#;s=Ok4>%3pc7isvL%i>epT^y;nCuqri%d=4MTdq&haV_N)i@8R?0#e3@A@xjmQ z)p~T!b^e;_(yF>DU#Y*^7b^8vgxdZ7kgv)gQ16gbnEn=1W;8|kJ$jf>K~y2lxI zx=w7)aAvbdT_HqSb%jebtF@5{|4>^S>gA!T{m`!41J<*k{L-3GZ49-&S6hG8+EA?q z)m~7o4C@I|e(9<6U}Ks*+U#BHgC#eVY{H&Lm zR>_dM;<8evuBWxJJZ{=A>DKFG?h~h+bxv*j-TlrwSSWl)<4AftXl=OX=0skY9>v_xBHRx4bGNJQ4VgVm_+2ezx>{10r;_g)U?`O5>ll~|Haf1I-c=>X|z z+R=-)bOX?u!g&yo9?E*r)|WC#x?h9TsG1n|C+jsx_AZo)%DR)#HGY3jBzF$6>STG* zmOQFb%A8<~Rv^2}D^Ig7<#k<9;gm4FGG&#pg)7za>5sdFIbo`sRl-U#F{gG|04YgO9b7jCSQ{+7Lk{g& zpLA^yzI|Pz9hRvLraXOz9X7Bl8?Cn2F1-pfda1|BS30kzcZ8F#bY4Tf>+P%#@R?Z} z%-E%QjXmvTVZc{|49wMPIq%ZEerT?`Ex&7BKeY17mALt@#MQ+(Yk#c$j&#xHN?fkQ zRXYv4=t^8ey=N_Zla}wzYif?}O}rY;zlqnU@1x!Nb(b^RQmWx?%#J4i3*Wq^a^`%T zjhi#9y3WSU752WbydAjTf5CwecjGJ1v&Zu7ZZy_sl-#=;?#FAr-`x#mr`~hWmR(GD z&)Wdq&mME_ZWug!O#R9{dyHp~sd69(Yy8nv*dGb|lQSc+WKtb>*5PfTR5Z^S3EsRW zI$3+rvo)9gGmyiJ?z+fbfj2J5q|*}b_&C(T`kcs4K7GvET{Vmz(Qx`Tj7m(sd(9&U z7}6gV_+RwyH78%`y!Pr%suipP|LdMUc9i7pQ^p)QV3UwTHm2c~>u?iB*oev@9j`H8 zLOSHd>gs?_qR&+_hpQ#p`S-E~)L|Tbp@^D3?oY}&Gdu0%fB2nkKaz_hB@dyVMBL7k z%1Zj9;v&nJ%987%cvd<>dWJ;re)G+{qeGA0Aq;V+uM8p&@L-f{q4Ft z(|`B7nf`ZN{cpO*iDt%$4!z$QcwlIHUiTlM@({b{t+(!psXTb(5}v&OHW~T<{fDL) zW{faK%6GW#jxu)cUuMb?#;|9MqH(v5+ipB-3>o)i?^ELp<2l1K?#b=FMbiJg^ggw< z*Yni47gXPtUgOW}tRByE<6pG;ik=&9ykvL|me}HF#~a3atKakN`0d7qbpJMEW4eE< z@p8KVJ>wPWU%RE(^K8i$9U+lpo3&|KG;j(*LxY_K-J>&FTKvjd#-huNm*!{ZAkAs{_qLde@5aTJQ5Ro_Fnb z)%%=GKFGVacdhqXNwnzT+r7^i{gq|I}JN zte=0@`tFQ5%AR_RF>;eJ*mL3I=gk}QiYnut3%B(Sdhf2YCJolb+;ibOy~S_d7(4PU zRnR>bzS?y|-Ey`ze{=fYQeiyuDc*il(v3@ZwRDe^?nN?(bU~cw-Kfp7{13;_q2WI^{*w`m4@B7H`A@Xlr*1tpkB^MrT>oxA& zF6*Q*`khye@5%d9G9hE$={3&ZH6g|4%aPB2Pc!Ci>n(n0+O*He{3LZ1TDqavIB};2 zji&cPo^kHUjVs^l^&FcwWU$O)c;z*+l!13EjVUtwe^yrRm7c&jUslEQWi6UGXiJGv zCeinl$Q2JxdYR~PvKodzaKwmhV?Be4wv06nmJH`6clfqx#-2(dPn=}YnE2lrcgTB{ zy}G1WlEy^o-nji< zJNfs(b-RoGWA=|fU^}w^mf+6E?AqFM=jY%56#vyZWB-`_;{mV5{g?5bkNK}&D+Vl* z*;4k`xAQXnPa$UPALr~nvwz%YH}Rv~cV_?iBi{4g>HXs&cFi?J>K0Y+S$~U+O!#m) zTCRph%W*a9-)I?f;?*?i{)fi9|2;8&`^;^2$ma1|W|vF z8M<$)bhq36yC&2)#X6?W?xg!<(a9Ry`km zDcZa0?dUc;)QE0f^|TCa&l<-{;jyUk)$P&M(ZS!m=9*+Qx+Yqjyylv3Zi_x4;qS@# z??m5OwN<9y5;azBmLWs;ZI$kJyMNb&y65tcWaGV6y>@O@KCPv4mia@rb^WFfNg4Zu zm0Q;_5Ow81t3Rc#bkJ8AM50T4Mq{rWJeSX&#$O}h8PlY1=%K;t`r5j>P^h%LvdUj- z`l>2Q+uK8xrIr3rtv?uSZ?CTi$%w=32bfHdhnOVgVGELIYm=IZN>5!(A!m@RYbtbr z5$%qstGHC?ut2OUK06wUWna{3k5MFJ4AEmuQ;!}{R~ksj=vX4$5svyJ&1%|ojLfu6 z>M83}ES)m_9cHM0`AplYvNXuLY-isCJtrE)2OKst-IXcT#Cn{=^aOj}y?EajQa436 zt+}oKygSw}*Uy0&bf}7JNKTy66ZZ#}m?>|&DVdp6^4hJpmw3a$NhQZux0JWUo6XMf ztQ85fZN=OLffY*v^}&)UlSfSKY3S*ScbO@_x2G!-O*ZsQD)9$n?Pi1YtKhN{uO20} zWKzjg72#df(&}xFB}{MigqqSoMU~H6TR)+qro7%)b(GgvUQt_CURzdCSz2DvP+rqe zS?{$!C6h-;-^4^P)G&YA410DmG^wOBm5Mi%l`UJgY{Ih239&>+Sw($)eObA$%;zhW zF-numqbYw+X*4t)TELUHKX*$UaqcqdPdRY1ig$C zM0D1Ifig2Ien?*WPHBN$2()GSh6$L&vK`ut)Kjy1sctAQcO_ztnUh9~l*XVx<#(l0S?a4;P*K-V?rW&@m6lhfQ^^`P zH=S5899ll0R5D|_(g+3`)T71xsmcC$JQ5E0Rq-oZ8V%ZoDh)faEHkQWdR;ggJ+Pn#?O6T;zOLv>|!$X`*{URvQdYfG!!tIX2&+CaJVl~>nP2kR=ULUkIcrNupY zpQNY70^O>7+DQi`X@6B^O?7Q$RcU*L87!@6mnSOLR|LyTD+4maV8G`ORD_(QU6c1o zdY)a;xyDhs-`QE@Nv6-NW`&bd{+7GSrIb!xd$gISW`{Zvk+7}>;{HU^R4d7(5@#(* zR~zYCK~1Aqwg$gEk1-aV98d+`3{EV|3e99IJ*7QaxbF`*Fl8%!*W~@rV_ByeEwsW| zN$IirPb3)&rR3q0=F|=;69ZY7tyHro%T0b_nW}Fi;Sb@5Nc!dJm>=Y4s0`Gbp`euR zin^LQscNc1rS)c2d1<_E5U#>LIk9l%fD|5ttFTW_EL=Gtg$Lm(?2{7)<$x3(gsZSmPAptG zAcY6vD(sUJ3s(+E;X$|x`{cyJl><_Euprln%>AWiRBkF=CU=io_og=JdsAPKzxpZV zdT3-^z3g{hcPiekZt5MZ0$Y=*w)AUyXGc?}X}^s}^{Wx&HFfIkJY)2?wIRyLwWs zVT_2U$Ce?TOj9HkwR1G8y*nI9g`+x2i65@VZf-f@SZj%oR!J0<%Ad><@8w$JdHRl2 z^_=#7)tJrkRMc4rS;+Q8dSHG>vL!vxoQO7O2BN9Vz?}9-=0y{8J5o#2qfPIMOiK@l zV<#aTbSq1Y-*O==$nt{2fbeXrt$ajZn~yKaDjf)#r%lAVOuSt`ZPs?-hAQd zH($5*L>lK?8flSbIg$S%I}=nE{MhR z&Nk~kWhbZ<^k>gNA{IYh?yJ+UqYg(q9KO*iV!q_5DV9pby6iX0t7%3#F)9nL@I9RH z`QeUEcf?31Lh_a#U){%D{EC$aW0rJ1^3U$-d%QoZnH- zNNwp=e}-6sgT|?0>lGY&F8iy&VpUUECTh@m0)ScxTjU)PVq>MF<1&AA+V-IJ%z#Xs z?sJdeM5!Ov4tGDSK<$ablV1>vl8uSguPCY!mO{H$# zEi7Z~;qOkxW|~nmq3+aGlepfKIl>xQg{YX>T^(NO4Ed0kzgQj%khL+=&yvUvX-Rfu zZ?J~=BdG=cj;ygp2h2!hf!ULqot(9xWsXxN4s(LDMjqZ7ORSh033oVKtTEQY&vJrg z$%h8bkiT13(ZiRTiBz7^7dpY&qmOLw(Dw$qaK~EdH_c2($Rx(xSX5aLPsQT0sZW~j zI&efpD$72hquO=l+9!OZ{Op~%qwDqPa5W=&4~DFY&O6(5_*fn8ti^llAyuG{)v<@@ z;l=V-uM%U7sYXy50`2xITRNpbCEui>`qXN;?+(WB8qM<0Yxse)+gVpZ*Kc=p##AC-r8&jIQFFMAHR$B{b8Q=uR8q0&ise7avP&3R{s z^$Mz{y-L0h8zZ)^Gz_V~?d}dA%3!D`Ei{x@Hux&M&NC9E=DE~k&09UWvW}e-7 zDQn37J4ioWMGc6P{gF2jr2CxEBK1o|<(Uk<#%CmQ-&T7JDLX2K9e;~k{Be~=TdX-I z)2af|w>s7H9oVas?fL7@K;Gb}=DoBlxkShxmx-+B!??E_?gUjS>;E%Id>kS7SVhKp zpZ=S1^XW7Cbgh`}bEfJTcelv++esH1DkQgS#i-O&jJvBgE14X)b5dmd?6s>5&)P5a z=~^)=6*Y#tTV&jE)-5_Dw`;|y)KrYSo1Fuvj3|pDBQE2f)jpz6*NRbdS7W%lMaH%R zj@BW$T`NYVrefUP>>OCXruADC8OLopz<6-P^L@Hj%%()Uj&XO3jP2g*4Hc5xwPI9i zD#qQ-&Vk<0+l9fJ&y|1smY$EhYsEbA{9km8yIW**T(#OzA-P>EMx~-++}-RP=pDdx z4hD&{%582}Y7B{a`NFgMbgdGiV$^Tr?piS_H5KFTX6L}YHp%nmWLbRj&Fxw-9S=uz zjJqpUn|vfBw`*82lA4Zjb!B|_x-isUe$^>5rpek^yrHH~*NQnpmPd`@?po`q3Q=pa zyKBX$)KrYSo1Fu9y-{R*{#!>H%jKKfwPLp1QlVqq-6CU-7^{%nt`(zFQ!(ytb`H{e zBicZXtJa&`u9celJyndmYn3+@qRN}QYsIM4RE)cuodem6N`I_cOnIqV%-ywOl(C9& zcV(TsyhDfNcC8qdii&Y}vvV*qJ%3dWRQhVY$?f)E!xkA^W%*StncKBuRB9^5-ObK{ zYE3zxBICiDWjeLot`+mQiotpecUP8FZ4)FWw`;|yyr~#>SMPf*jdjR2ZuAv0bG5SM z-^PwzVlH7^_>PbM6ZuO)e zecU5+9AdBZC~ckoxY^Vc>&cqWuF_L@jB$ROqTR6El>IQhtXVeAv(n+&HVe|>SvE7i<%H+ADgGGQOpZItn!Qd{ zX4(WX$m8MOP^OtB8W>V+Cmxyh_M*>&;sKiD)zew)F&pG~8)MAFT&Dfvx0 zCVQP)nGVk?HohBo6?I?I$@ zZfaW7;aN6EHKxO}Y-XnSQS;jj+YN18%bK-L^|uZ0uP)BiL-}on?}j$6cCOo|-*sx{ zDf!FIj@GFWA0L~>{+;*|s9ijAH?(PVeheed6H3|s+U#1^?6_C zP40Jeu9P6daJtqq=6{pBigQ1!eQGqSj+qaWV;TAYSY1<1)r=N(EL(rXE`1c=r^ir7 zWcgw+;4<)FFaPoj*y|V_1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ 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 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL 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 z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk 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 z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs 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 iUp*>Y8U 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 Ckcw>p diff --git a/source/tycho/data/lines.png b/source/tycho/data/lines.png deleted file mode 100644 index a61134535094f6985a6a1675adab7abffe4fc8a7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 226 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjD?MEtLp(b7UfeBsSV6!wuqt3n zsfTI4q+0VCJy+Ejb~%a8gJScy-s9msXnWAA{5V7Rb|(G=&-!TxxZc!!^XU+s@Yv9; zuY+~M<5gW9GJ^Kpa~_?u3^6@go-mtH@3FCYMpr-6*^hz=uRFgp-Tf$+pmC3j=Xi9( z${(Tzvj16U9NEv9_E9Q9N}us_1!qNr0FzRZkbWa;h3XNdxZRF!I*&{h6z?h3G5y*Je1r5`FWp``g{-gAe>G7*!)4PkEbjLj>qP22WQ%mvv4F FO#ll#Qwsn9 diff --git a/source/tycho/data/polys.png b/source/tycho/data/polys.png deleted file mode 100644 index 285871e0db3f027d4350795759c003c8a26f3fa4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 538 zcmV+#0_FXQP)QM;F{IA27Ul< zcNOddKY<%1CP_lS-zQ0us_3Td+pjA)0Db{?N*E4@^m;u+WSQM=m%(6A72TC{2b%<6 zfP0;Y;~3xfSHSD(`#y0TS4H>0*M|fKa0L)W5uWF51h1#(c|=j9l0PMHMQ{kPSS+>z zujgX1P|2YRjDH&Gh=|PRb7>Nl`HmJU@I^$X(`h3?W!_&tELU_6;5bgB6*-QhD>|>9 z!7HEuFio?Oz%)%26u@g;(FYMR#^bRRMbT(QMN!CTG*Ygw#YYj5$z;+9t}&ay zDleW(u>67}5s`Mg{Val3tEJ_Uh=>560P;M?w(UlTY}+<@p6fw>R>2-{3XrBLhGFak zHw=R`O%;9$?5RM2m%s%;7=}9u!Z1|$Mah$@K!EqaEkFWmuNA5pG!)S(YjMWS#Yx;018Tc5znD)xMM80hcx5mu3IM cck=&^zqj+_LuR{_EdT%j07*qoM6N<$g8GT@Y5)KL diff --git a/source/tycho/data/resources.xml b/source/tycho/data/resources.xml index c001e59..1e4c785 100644 --- a/source/tycho/data/resources.xml +++ b/source/tycho/data/resources.xml @@ -1,12 +1,19 @@ + - data/tycho1.png - data/tycho2.png - data/polys.png - data/lines.png - data/points.png + data/misc/tycho1.png + data/misc/tycho2.png data/styles.css data/ui.xml + + + data/color/polygons.png + data/color/lines.png + data/color/points.png + + + data/color/map.png + diff --git a/source/tycho/data/sources/icons.psd b/source/tycho/data/sources/icons.psd new file mode 100644 index 0000000000000000000000000000000000000000..cca92ce299880766a5acc8bad862f876bfbe9851 GIT binary patch literal 5387602 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 z-qwYCPTreJU{bjJn{^;TAFR+;n=5G_vtZKyT#a^u}a#P_ z=C7tBB|v}x0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N 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 zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U 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 zm5Udivo3y@oj!tH`CI&sv_||!)|0^>JO+MT@He@@_%UWdfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ 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 D%!4*m literal 0 HcmV?d00001 diff --git a/source/tycho/data/styles.css b/source/tycho/data/styles.css index 4b94238..6a974a7 100644 --- a/source/tycho/data/styles.css +++ b/source/tycho/data/styles.css @@ -1,5 +1 @@ -.first-start-window { - background-color: #000000; - color: #AAAAAA; - font: 16px "FixedSys", "Monospace"; -} +/* EOF */ diff --git a/source/tycho/data/ui.xml b/source/tycho/data/ui.xml index 0a0a75c..13ec04b 100644 --- a/source/tycho/data/ui.xml +++ b/source/tycho/data/ui.xml @@ -926,17 +926,20 @@ Author: Alison Sanderson True False - /net/greyserv/maraiah/tycho/lines + 24 + tycho-lines True False - /net/greyserv/maraiah/tycho/points + 24 + tycho-points True False - /net/greyserv/maraiah/tycho/polys + 24 + tycho-polys False @@ -1042,11 +1045,137 @@ Author: Alison Sanderson True dialog Tycho Map Editor - Copyright © 2018-2019 Alison Sanderson + By Alison Sanderson. Public domain. greetigs i am tico the of superior ai to durdumbal go shoot my soldiers because its funny or ill put you in space Home Page + To the extent possible under law, I, Alison Sanderson, have waived all +copyright and related or neighboring rights to this Document as described by +the Creative Commons Zero license as follows: + +Creative Commons Legal Code + +CC0 1.0 Universal + + CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE + LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN + ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS + INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES + REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS + PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM + THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED + HEREUNDER. + +Statement of Purpose + +The laws of most jurisdictions throughout the world automatically confer +exclusive Copyright and Related Rights (defined below) upon the creator +and subsequent owner(s) (each and all, an "owner") of an original work of +authorship and/or a database (each, a "Work"). + +Certain owners wish to permanently relinquish those rights to a Work for +the purpose of contributing to a commons of creative, cultural and +scientific works ("Commons") that the public can reliably and without fear +of later claims of infringement build upon, modify, incorporate in other +works, reuse and redistribute as freely as possible in any form whatsoever +and for any purposes, including without limitation commercial purposes. +These owners may contribute to the Commons to promote the ideal of a free +culture and the further production of creative, cultural and scientific +works, or to gain reputation or greater distribution for their Work in +part through the use and efforts of others. + +For these and/or other purposes and motivations, and without any +expectation of additional consideration or compensation, the person +associating CC0 with a Work (the "Affirmer"), to the extent that he or she +is an owner of Copyright and Related Rights in the Work, voluntarily +elects to apply CC0 to the Work and publicly distribute the Work under its +terms, with knowledge of his or her Copyright and Related Rights in the +Work and the meaning and intended legal effect of CC0 on those rights. + +1. Copyright and Related Rights. A Work made available under CC0 may be +protected by copyright and related or neighboring rights ("Copyright and +Related Rights"). Copyright and Related Rights include, but are not +limited to, the following: + + i. the right to reproduce, adapt, distribute, perform, display, + communicate, and translate a Work; + ii. moral rights retained by the original author(s) and/or performer(s); +iii. publicity and privacy rights pertaining to a person's image or + likeness depicted in a Work; + iv. rights protecting against unfair competition in regards to a Work, + subject to the limitations in paragraph 4(a), below; + v. rights protecting the extraction, dissemination, use and reuse of data + in a Work; + vi. database rights (such as those arising under Directive 96/9/EC of the + European Parliament and of the Council of 11 March 1996 on the legal + protection of databases, and under any national implementation + thereof, including any amended or successor version of such + directive); and +vii. other similar, equivalent or corresponding rights throughout the + world based on applicable law or treaty, and any national + implementations thereof. + +2. Waiver. To the greatest extent permitted by, but not in contravention +of, applicable law, Affirmer hereby overtly, fully, permanently, +irrevocably and unconditionally waives, abandons, and surrenders all of +Affirmer's Copyright and Related Rights and associated claims and causes +of action, whether now known or unknown (including existing as well as +future claims and causes of action), in the Work (i) in all territories +worldwide, (ii) for the maximum duration provided by applicable law or +treaty (including future time extensions), (iii) in any current or future +medium and for any number of copies, and (iv) for any purpose whatsoever, +including without limitation commercial, advertising or promotional +purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each +member of the public at large and to the detriment of Affirmer's heirs and +successors, fully intending that such Waiver shall not be subject to +revocation, rescission, cancellation, termination, or any other legal or +equitable action to disrupt the quiet enjoyment of the Work by the public +as contemplated by Affirmer's express Statement of Purpose. + +3. Public License Fallback. Should any part of the Waiver for any reason +be judged legally invalid or ineffective under applicable law, then the +Waiver shall be preserved to the maximum extent permitted taking into +account Affirmer's express Statement of Purpose. In addition, to the +extent the Waiver is so judged Affirmer hereby grants to each affected +person a royalty-free, non transferable, non sublicensable, non exclusive, +irrevocable and unconditional license to exercise Affirmer's Copyright and +Related Rights in the Work (i) in all territories worldwide, (ii) for the +maximum duration provided by applicable law or treaty (including future +time extensions), (iii) in any current or future medium and for any number +of copies, and (iv) for any purpose whatsoever, including without +limitation commercial, advertising or promotional purposes (the +"License"). The License shall be deemed effective as of the date CC0 was +applied by Affirmer to the Work. Should any part of the License for any +reason be judged legally invalid or ineffective under applicable law, such +partial invalidity or ineffectiveness shall not invalidate the remainder +of the License, and in such case Affirmer hereby affirms that he or she +will not (i) exercise any of his or her remaining Copyright and Related +Rights in the Work or (ii) assert any associated claims and causes of +action with respect to the Work, in either case contrary to Affirmer's +express Statement of Purpose. + +4. Limitations and Disclaimers. + + a. No trademark or patent rights held by Affirmer are waived, abandoned, + surrendered, licensed or otherwise affected by this document. + b. Affirmer offers the Work as-is and makes no representations or + warranties of any kind concerning the Work, express, implied, + statutory or otherwise, including without limitation warranties of + title, merchantability, fitness for a particular purpose, non + infringement, or the absence of latent or other defects, accuracy, or + the present or absence of errors, whether or not discoverable, all to + the greatest extent permissible under applicable law. + c. Affirmer disclaims responsibility for clearing rights of other persons + that may apply to the Work or any use thereof, including without + limitation any person's Copyright and Related Rights in the Work. + Further, Affirmer disclaims responsibility for obtaining any necessary + consents, permissions or other rights required for any use of the + Work. + d. Affirmer understands and acknowledges that Creative Commons is not a + party to this document and has no duty or obligation with respect to + this CC0 or use of the Work. + image-loading - mit-x11 + custom diff --git a/source/tycho/main.rs b/source/tycho/main.rs index 0b3c339..5196792 100644 --- a/source/tycho/main.rs +++ b/source/tycho/main.rs @@ -22,7 +22,7 @@ fn mk_draw_area(b: >k::Builder) let ax: gtk::Adjustment = get_obj(b, "adj-map-horz"); let ay: gtk::Adjustment = get_obj(b, "adj-map-vert"); - let im = CairoPixbuf(load_img("/net/greyserv/maraiah/tycho/tycho1")); + let im = CairoPixbuf(load_img("/net/greyserv/maraiah/tycho/tycho1.png")); area.connect_draw(move |area, cr| { let w = f64::from(area.get_allocated_width()); @@ -44,8 +44,6 @@ fn mk_draw_area(b: >k::Builder) fn run_app(app: >k::Application) { - let b = >k::Builder::new_from_resource("/net/greyserv/maraiah/tycho/ui"); - let prv = gtk::CssProvider::new(); prv.load_from_resource("/net/greyserv/maraiah/tycho/css"); @@ -53,6 +51,9 @@ fn run_app(app: >k::Application) let pri = gtk::STYLE_PROVIDER_PRIORITY_APPLICATION; gtk::StyleContext::add_provider_for_screen(&scr, &prv, pri); + let b = >k::Builder::new_from_resource("/net/greyserv/maraiah/tycho/ui"); + + // TODO: signal quit instead of quitting directly to not add a ref here let app_ = app.downgrade(); let btn: gtk::MenuItem = get_obj(b, "btn-quit"); btn.connect_activate(move |_| { @@ -86,10 +87,7 @@ fn run_app(app: >k::Application) win.set_authors(&env!("CARGO_PKG_AUTHORS").split(';').collect::>()); win.set_version(env!("CARGO_PKG_VERSION")); win.set_website(env!("CARGO_PKG_HOMEPAGE")); - win.set_logo(&load_img("/net/greyserv/maraiah/tycho/tycho2")); - - let win: gtk::Window = get_obj(b, "win-first-start"); - win.show_all(); + win.set_logo(&load_img("/net/greyserv/maraiah/tycho/tycho2.png")); let win: gtk::Window = get_obj(b, "win-main"); win.set_application(app); From 8c2b8edded9dca54ae04f2c906dafea44595a918 Mon Sep 17 00:00:00 2001 From: Marrub Date: Fri, 22 Mar 2019 21:54:39 -0400 Subject: [PATCH 04/29] add ffi module --- source/durandal/ffi.rs | 61 ++++++++++++++++++++++++++++++++++++++++++ source/durandal/mod.rs | 2 ++ 2 files changed, 63 insertions(+) create mode 100644 source/durandal/ffi.rs diff --git a/source/durandal/ffi.rs b/source/durandal/ffi.rs new file mode 100644 index 0000000..5d61932 --- /dev/null +++ b/source/durandal/ffi.rs @@ -0,0 +1,61 @@ +//! Foreign function interface utilities. + +use crate::durandal::err::*; +pub use std::{ffi::*, os::raw::*, ptr::{null, null_mut}}; + +/// Creates a C string from a literal. +#[macro_export] +macro_rules! c_str { + ($s:expr) => {concat!($s, "\0").as_ptr() as *const c_char}; +} + +impl CStringVec +{ + /// Creates a new empty CStringVec. + pub fn new() -> Self + { + Self::default() + } + + /// Creates a new `CStringVec` from an iterator. + pub fn new_from_iter<'a, I: Iterator>(it: I) + -> ResultS + { + let mut v = Self::new(); + + for st in it { + v.push(CString::new(st)?); + } + + Ok(v) + } + + /// Pushes a new `CString`. + pub fn push(&mut self, st: CString) + { + self.cv.push(st.as_c_str().as_ptr()); + self.sv.push(st); + } + + /// Returns the FFI pointer. + pub fn as_ptr(&self) -> *const *const c_char + { + self.cv.as_ptr() + } + + /// Returns the FFI pointer mutably. + pub fn as_mut_ptr(&mut self) -> *mut *const c_char + { + self.cv.as_mut_ptr() + } +} + +/// An owned FFI-compatible string vector. +#[derive(Default)] +pub struct CStringVec +{ + sv: Vec, + cv: Vec<*const c_char>, +} + +// EOF diff --git a/source/durandal/mod.rs b/source/durandal/mod.rs index 8a3b530..a2b8adf 100644 --- a/source/durandal/mod.rs +++ b/source/durandal/mod.rs @@ -1,5 +1,7 @@ //! Library for utilities. +#[macro_use] +pub mod ffi; #[macro_use] pub mod err; #[macro_use] From 135e9c688af2cd21bbaeb34d973499a84d15216a Mon Sep 17 00:00:00 2001 From: Marrub Date: Fri, 22 Mar 2019 21:55:13 -0400 Subject: [PATCH 05/29] clippy saves the day part 5 --- source/durandal/cksum.rs | 2 +- source/marathon/defl.rs | 2 +- source/marathon/pict.rs | 44 +++++++++++++++--------------- source/marathon/ppm.rs | 10 +++---- source/tycho/data/icon_index.theme | 15 ---------- 5 files changed, 29 insertions(+), 44 deletions(-) delete mode 100644 source/tycho/data/icon_index.theme diff --git a/source/durandal/cksum.rs b/source/durandal/cksum.rs index 7441ae7..f1322cb 100644 --- a/source/durandal/cksum.rs +++ b/source/durandal/cksum.rs @@ -58,6 +58,6 @@ pub fn crc32(b: &[u8], s: u32) -> u32 } const ISO_3309_POLYNOMIAL: u32 = 0xEDB8_8320; -const ADLER32_MODULO: u32 = 65521; +const ADLER32_MODULO: u32 = 0xFFF1; // EOF diff --git a/source/marathon/defl.rs b/source/marathon/defl.rs index 2580240..faabbc2 100644 --- a/source/marathon/defl.rs +++ b/source/marathon/defl.rs @@ -389,7 +389,7 @@ impl HuffmanTable p += 1; // check our symbol table for this one (quick tree check) - let count = u16::from(self.nums[i]); + let count = self.nums[i]; if i32::from(code) - i32::from(count) < i32::from(first) { return Ok((i, self.syms[usize::from(index + code - first)])); diff --git a/source/marathon/pict.rs b/source/marathon/pict.rs index 4dc88e3..6092be9 100644 --- a/source/marathon/pict.rs +++ b/source/marathon/pict.rs @@ -47,8 +47,8 @@ fn read_pm_header<'a>(b: &'a [u8], } let rle = pack_t == PackType::Default || - pack_t == PackType::Rle16 && depth == Depth::Bits16 || - pack_t == PackType::Rle32 && depth == Depth::Bits32; + pack_t == PackType::Rle16 && depth == Depth::_16 || + pack_t == PackType::Rle32 && depth == Depth::_32; let pitch = usize::from(pt_fl & 0x3FFF); @@ -61,7 +61,7 @@ fn read_pm_ind(mut im: Image8, b: &[u8], hdr: Header) -> ResultS let clut = ok!(hdr.clut, "no CLUT in indexed mode")?; let mut p = 0; - if hdr.pitch < 8 && hdr.depth == Depth::Bits8 { + if hdr.pitch < 8 && hdr.depth == Depth::_8 { // uncompressed 8-bit colormap indices for _ in 0..im.h() { for _ in 0..im.w() { @@ -79,7 +79,7 @@ fn read_pm_ind(mut im: Image8, b: &[u8], hdr: Header) -> ResultS for _ in 0..im.h() { let (d, pp) = read_rle::(&b[p..], hdr.pitch)?; - let d = if hdr.depth < Depth::Bits8 { + let d = if hdr.depth < Depth::_8 { expand_data(d, hdr.depth)? } else { d @@ -195,12 +195,12 @@ fn read_pm_area(im: Image8, b: &[u8], pack: bool, clip: bool) let (b, hdr) = read_pm_header(&b[p..], pack, clip, &im)?; match hdr.depth { - Depth::Bits1 | - Depth::Bits2 | - Depth::Bits4 | - Depth::Bits8 => read_pm_ind(im, b, hdr), - Depth::Bits16 => read_pm_16(im, b, hdr), - Depth::Bits32 => read_pm_32(im, b, hdr), + Depth::_1 | + Depth::_2 | + Depth::_4 | + Depth::_8 => read_pm_ind(im, b, hdr), + Depth::_16 => read_pm_16(im, b, hdr), + Depth::_32 => read_pm_32(im, b, hdr), } } @@ -442,25 +442,25 @@ impl ReadRleData for u8 fn expand_data(b: Vec, depth: Depth) -> ResultS> { let mut o = Vec::with_capacity(match depth { - Depth::Bits4 => b.len() * 2, - Depth::Bits2 => b.len() * 4, - Depth::Bits1 => b.len() * 8, + Depth::_4 => b.len() * 2, + Depth::_2 => b.len() * 4, + Depth::_1 => b.len() * 8, _ => bail!("invalid bit depth"), }); for ch in b { match depth { - Depth::Bits4 => { + Depth::_4 => { for i in (0..=1).rev() { o.push(ch >> (i * 4) & 0xF_u8); } } - Depth::Bits2 => { + Depth::_2 => { for i in (0..=3).rev() { o.push(ch >> (i * 2) & 0x3_u8); } } - Depth::Bits1 => { + Depth::_1 => { for i in (0..=7).rev() { o.push(ch >> i & 0x1_u8); } @@ -484,12 +484,12 @@ struct Header c_enum! { enum Depth: u16 { - Bits1 = 1, - Bits2 = 2, - Bits4 = 4, - Bits8 = 8, - Bits16 = 16, - Bits32 = 32, + _1 = 1, + _2 = 2, + _4 = 4, + _8 = 8, + _16 = 16, + _32 = 32, } } diff --git a/source/marathon/ppm.rs b/source/marathon/ppm.rs index 48448f3..ca7458a 100644 --- a/source/marathon/ppm.rs +++ b/source/marathon/ppm.rs @@ -1,4 +1,4 @@ -//! Portable PixMap format images. +//! Portable Pixel Map format images. use crate::durandal::{err::*, fixed::FixedLong, image::*}; use std::io; @@ -40,7 +40,7 @@ pub fn read_ppm(inp: &[u8]) -> ResultS st => break st } }; - let st = unsafe {std::str::from_utf8_unchecked(&st)}; + let st = unsafe {std::str::from_utf8_unchecked(st)}; let nu = u16::from_str_radix(st, 10)?; Ok(nu) }; @@ -56,9 +56,9 @@ pub fn read_ppm(inp: &[u8]) -> ResultS let g = FixedLong::from_int(get_num()?.into()); let b = FixedLong::from_int(get_num()?.into()); - let r = (r / depth * 65535).integ() as u16; - let g = (g / depth * 65535).integ() as u16; - let b = (b / depth * 65535).integ() as u16; + let r = (r / depth * 0xFFFF).integ() as u16; + let g = (g / depth * 0xFFFF).integ() as u16; + let b = (b / depth * 0xFFFF).integ() as u16; im.cr.push(Color16::new(r, g, b)); } diff --git a/source/tycho/data/icon_index.theme b/source/tycho/data/icon_index.theme deleted file mode 100644 index 488015b..0000000 --- a/source/tycho/data/icon_index.theme +++ /dev/null @@ -1,15 +0,0 @@ -[Icon Theme] -Name=hicolor -Inherits=HighContrast -DisplayDepth=32 -Directories=48x48/actions,48x48/apps - -[48x48/actions] -Size=48 -Context=Actions -Type=Fixed - -[48x48/apps] -Size=48 -Context=Applications -Type=Fixed From 74fdfcaa43b3d0e9f20307417d492ae60a828762 Mon Sep 17 00:00:00 2001 From: Marrub Date: Fri, 22 Mar 2019 23:05:38 -0400 Subject: [PATCH 06/29] make CStringVec null terminated --- source/durandal/ffi.rs | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/source/durandal/ffi.rs b/source/durandal/ffi.rs index 5d61932..7140912 100644 --- a/source/durandal/ffi.rs +++ b/source/durandal/ffi.rs @@ -6,7 +6,7 @@ pub use std::{ffi::*, os::raw::*, ptr::{null, null_mut}}; /// Creates a C string from a literal. #[macro_export] macro_rules! c_str { - ($s:expr) => {concat!($s, "\0").as_ptr() as *const c_char}; + ($s:expr) => {concat!($s, "\0").as_ptr() as $crate::durandal::ffi::NT}; } impl CStringVec @@ -14,7 +14,7 @@ impl CStringVec /// Creates a new empty CStringVec. pub fn new() -> Self { - Self::default() + Self{sv: Vec::new(), cv: vec![null()]} } /// Creates a new `CStringVec` from an iterator. @@ -33,29 +33,32 @@ impl CStringVec /// Pushes a new `CString`. pub fn push(&mut self, st: CString) { - self.cv.push(st.as_c_str().as_ptr()); + self.cv.insert(self.cv.len() - 1, st.as_c_str().as_ptr()); self.sv.push(st); } /// Returns the FFI pointer. - pub fn as_ptr(&self) -> *const *const c_char + pub fn as_ptr(&self) -> *const NT { self.cv.as_ptr() } /// Returns the FFI pointer mutably. - pub fn as_mut_ptr(&mut self) -> *mut *const c_char + pub fn as_mut_ptr(&mut self) -> *mut NT { self.cv.as_mut_ptr() } } -/// An owned FFI-compatible string vector. -#[derive(Default)] +/// An owned null-terminated string vector. +#[derive(Debug)] pub struct CStringVec { sv: Vec, - cv: Vec<*const c_char>, + cv: Vec, } +/// A null-terminated byte string pointer. +pub type NT = *const c_char; + // EOF From 4f99016b8bcfc492260d7814cf749bd5723c7c0b Mon Sep 17 00:00:00 2001 From: Marrub Date: Sat, 23 Mar 2019 00:18:10 -0400 Subject: [PATCH 07/29] make tycho's images free --- source/tycho/data/color/lines.png | Bin 2266 -> 805 bytes source/tycho/data/color/map.png | Bin 3732 -> 2152 bytes source/tycho/data/color/points.png | Bin 2234 -> 761 bytes source/tycho/data/color/polygons.png | Bin 2884 -> 1292 bytes source/tycho/data/hc/lines.png | Bin 1971 -> 343 bytes source/tycho/data/hc/map.png | Bin 2460 -> 972 bytes source/tycho/data/hc/points.png | Bin 1864 -> 306 bytes source/tycho/data/hc/polygons.png | Bin 2293 -> 673 bytes source/tycho/data/icons.psd | Bin 4358698 -> 0 bytes source/tycho/data/misc/tycho1.png | Bin 6155 -> 6287 bytes source/tycho/data/misc/tycho2.png | Bin 23953 -> 22880 bytes source/tycho/data/sources/icons.psd | Bin 5387602 -> 4358698 bytes source/tycho/data/sources/tycho1.psd | Bin 0 -> 122959 bytes source/tycho/data/sources/tycho2.psd | Bin 0 -> 206328 bytes 14 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 source/tycho/data/icons.psd create mode 100644 source/tycho/data/sources/tycho1.psd create mode 100644 source/tycho/data/sources/tycho2.psd diff --git a/source/tycho/data/color/lines.png b/source/tycho/data/color/lines.png index 980fa1046fb7cd84365916066839bef6ef80949b..23fca960bf0b2613a62636fb8f5f2b12743c03d8 100644 GIT binary patch literal 805 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA3?vioaBgK_VAKro32_B-|Ns9FB!>Y=s16gA z7R+dgFP~OaHZ|Wqz_xB)Wo}nW*|dDeAp6AXFf~IZk7!#yLGIdl75X-M2DZ9lGJ^Ux zI_g02C|jQd2ZtbgUO{e$09$bxA%{RaF&QD>1V=q7 zA#D@S$M2*4rp#MjOX0!W`;7P4%N6BVxCJy`iyK!cKNND4vM7zaYjq}A!ZkbWkcK(^TQjo%ezaIm?{z=+&K}+Dmzb}7vZJ(y)oOW>dJ^jd=p5>O4 zxJ~~5?hLXBJM+w^QQ^k^vOf`(dhcJ}IPmLU!J0>Yk9qg>fBRDY*lWrDkG1nX|FP@7 z{4H3any^RegB;`gPKWnD&Ns@-H9nHBuY6g}GAEq*p7H}*!54-1`46$PerVVIzo5eO zfi2T5VaKkI95wY!^3CDR4)!eaA_uP5$Tx;FU0dy#HRn5r#CkT__@_2aQ&+ofetUU| zdqT?N>!nA78)IU3?_R&u`$LJsnLEFZU49lOIq&v^7Z=~o{h((f98q>m_u2PPqPHG< zIk|DI+x~thYlTsUxTNmt)CVsY#NO~bxAEal1r?o4ukP>h7M+>tuB+LZK*`+G)z4*} HQ$iB}&2;{N literal 2266 zcmbVO32+lt7~Vq55pD|wI*7{_8F1L_k$Z=pNlRl%TT7uFa%^@t%|en*cekXifdIt7aMV?}t zKrw<_O|ycXQy00t01ZLo5{tYvGnbQLJD1OU;*p2dwFu0!@kpM|hTFVm&dH~jh}^`I z%v`2qE@NVm!~}R;5d{d`oJ_+-ZkI=*isF$LUJ9(0Z47~1AoARJBv~;CPqAggWMcmzn)EYDK3R-@M$G+NY7a4bsLwK~*9usEt=Xu`-c zB+U?xcAn1kanfQ=OTo=rv(7*esiqXd2)-Jvj!e^8bfmsr*XogE+QV?|ws~M%XQH)6 zEkmOmLEBL~snwt+&PbpnO|wQ^;~;4x+oDgIMUIvQF;@^=?VXz4o(b4&RyxxNkIv&g ztl*QzbkN}}w9LgLKyE^D4N8)^I8K2diKDm{ELx#9f#n^=okB@UNB#v0jtxu8^nZd` zhH?m^n+6@kyXkxm^Lp|TI9wpgEVu*_7zW;HI__J|=4?@L@Gc;ba>l2?)>N~eFzNLu zsV0;|(ppmsC-U<+Hcb@Va7&j{d?y*^45W@R8Fi>mOB+x|qa{%qH#k5*2Bk`R0;f5o zO`rY0-GPOjO6Mg|rQ)_(Fp(>0Te)~(0~{ubW|VUc0;7TNieY85Gsj=7HCpw3P7YB1 zt;8Mc)(VpZhwP(8E;%0@ffwqcRz1c^d-6FjYB5BK6jO#$YiL+&DV|5&BI_`~+Tma- zD$DRV1`pwZ&UpZ}2*!24(+jI0sLNujB{|nwcYjS*R&?@^@-thvm!DACR`>^GUHhUjBB1Ko{rhuxljCVh;9&Ls z>l-#)+Olrk?;o!g zGHxGD+Ez(Lmcf$-936RcU(>~Xjg8Mf8@=G8!4$6>~&8Bw_~K zXP2q!z0HArP1mBaP@hM!-;`~Wqo@h9A`*icgAYG@V_MfL+pdKr_4!GCe+x{ms9ss_ ze`i_K^2cu_-o6nrrgRfr`yeCXV`zSGKxD(}OT#wJn#m-U@AU7CYc}ku*$Q|cr(}l~ zZL3)vaNafdT{1J_Ye*9u5tSZV^>)*=hTw?E^=C@2*VT+noH*UdLXXp$bt z$3DSc>;7q!*Z+K+4;*y3RH7~n*N8yV?QcyAJ)`N%dV8!Z~qBa<}Eh> diff --git a/source/tycho/data/color/map.png b/source/tycho/data/color/map.png index 22f44f661a735de91205b3ceee90a148ac6354dc..56ccc3a60872bfe31605981b4cb4e387a951f018 100644 GIT binary patch delta 2140 zcmV-i2&4Cu9q15{BYy}lNklhNMv|s~gw2*-bLL zJDJ(p`FP)+^Ej7zyLoSCCc6vf2R~kBa^Jn@H}~9g&ONIIL4Sa|85;h7F-WXnBhC}w zPYj4YKTULp0`WiSjPDaaFAKDJXV5fL!;xo>AaDazE>=+fL)ie3Bf3O~=yfYVr^$v6 ze)1sV;9EXcf4_?QmHMDsAVS=s2pzY>lpoU~Hu-7x;%Y|DKpZqfgQkT;GQgzb5HW@lze77<$l1uN`FB)+Oj?iy(%TfE5!7BlPw7fP zPS!Dry1B#ADkTdvB#ImtfA!Hjikb0@5`feoPmO-!JBd}|pZIBFXQ7J-gLsI}%+Jk! z^Nze6TD?mcFa-oNbGl<7INgAO)#=%*4u>AV+?QRqR zzT-nTb^e6#v+EP(X%}LD9Y_v|^J@fGy zOrD$!jkn4cE`IGI*5}sMdM1l7)q&%~G5EkB6!@es{$x=lryP36Rp0hc-MVn=8FSEl zgvEOeFErj-wtfKMzgyKxUen85dFjd*EX@jctA9RM$J*c47692EguS9g ze3Q7!hBMd@b^*e5;yiJP=n?%GAzAW*wp$q*WNeLC7TQXHK6c+2rcO?^S1+~H4h%?A z>J@(5IDyzB-}jS`e}h78Y|3Q+FTB0b&I2tEX)}Fj;g<_vr!(+90B2P(r!klRzD#oL z4Sy~q$T9CwfJ^jv2b^0D&&mF*1lYXt{?q$o;};8HM$er-rXyWU!&5QZTr0WO^pEWEgYIB01NgZB?&_+7(W?XKI60A1J%0-;BI4gtPNA#()4 zu{%8dLR_&U zrK(H_Xot2cRg7M$QFP1$$@p}7B>faekuVCaxt!cS3t&+yRW}-mA_7uKhT1X1#O@+s z_RsWV==e}*{Iwrn102`@nnH)DDWl}caFGNV-+2diUz{hq;K*k!!T?=hw*_dzq<_dJ zXFx=>p~XeMzM;N&0g}4mRNHfSb&q{^w|Y+*5uw(1MSvd>;3(<&@jQlShGAE2%p3FZ z0;-p)sJ>Z+f>e^*ZINjS<1#|!^IF{5(V$`Sp-C{x|0<()wZ_RUR=`&%WW6A9x){0j z`_jeXEds);+g5j5Hi{}vRk@DKyM5y014h;WgF6f6fC;zmjsTdDx$`pa!F{Lp zO{i0&8#*$3Gh%$Z|CF7|V&d_M(d)msKFT6hLU5&Nl~`C!pP9zg6H|x-*MB!$?_Bum z1=MD1K+wLJ9DL#+j(+SY|9as?r1ZxUW}lyhUA8xjE8Jh;P|L|u@=Y@M-Gv`6fbftB z!J(%QVGD4jy5+>Y@W{JILPntsihizDYS1Rucoo6F&V9z~!601=*y0zLu zXz0s=JoU=WzIghhb!lP|Vug8cMI1!la3yeSt5&qX=p&^xi*}koOs4epBby zjBZu`vHmlAAKi;MaKc-=yoS~DtN#S>#-_{qiSftA@5vv{huOaLT7LJHF4%kInG<0O`TBhQ43gl3I}IT4tiL9D zLZ7(LUbR^O?^L)r;SzCHjS~@%EuLM>gQ41zj~>9i&)y3K-ocx{yNPQ*x&{SPUj8oe z!-&V1iT^;*`2rb9gnt%OL^zx8X(Fyb{1)2y6!DhWWRlqa#dC|_NgqigTCd%B`39Vd z^CEy>5q%{f7=7<(TwjRWAT0pv=pMFY)^+)J3!5RrI73f;VhW{KOZ?}l6LL#4WQQ8J zb?$tqu3Vtz5CL1lCE7jI__i2QB{sJbpj>6>#1Kf#Q~aZ`i+_17?~CECCnHdH>FA79 z510C=3)Q6wjprW-#{fSV-v;SsixWSG(IyCQdPX5a5f^wmJt11_T|7bHBqn zj%sY7gNQV{FTyPu~GR;1p=;Dl%QxGp11?td`&{*Y6GpM7P#9S z*ujSS>BcKJINS0?C;SmT+iQ2;e4u>342BY;I^7DIhnXAx` Ss6Rdc0000%De{71xPBYN(5elA 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 ux4!GXzirzycw?;_e{kv~P#d&=N*lA%Ra7?AoRP diff --git a/source/tycho/data/color/points.png b/source/tycho/data/color/points.png index a22b950d850ef69a05658600985768ec795c29b2..bab249ffbab3effa20b0d70d242a1a6147b7451e 100644 GIT binary patch literal 761 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA3?vioaBgK_U~~`g332`Z|36Ssa6C?UqqZ6e5L zDyL)VCE(~6$rGeAU%Jk|VDiyF$suN5Yk-7Geoa_9c?wAf#B ze{umMj#0tW#WAEJ?(O8QMa+gG49Zq126JaNo#9C~SUN_;nw=TX8wzkz&J|XZ#=>Bx}{O@;z5+j}%E@2m* zJ8%E~a83F1UV=QCjRLE`{yjeVk++rBM~?+82E}F{_*cj8*1DMD!MWqi&ja=OCdZqm zttgnn;A>z0`=9IU#5;yQvVlxC*Y!fH{<;4xR!f=8u#ELHcWcqcTNzjVKYQyiUYZ`h zZe9MY?d3nO8l0YJ;TjWt-(#uS_HE@c)4ZJ{m9y^frf*I(Klf=3)1##;q)MC=)mLn) zk!i3{5o)XmZ)dP&|p~;hWI!-o4;6ultil@D&}-oT?fOeFo@vH^b_>1cM>!S1~tV z%lAxVc{ya{1i26xOG9CZHW{Ur za^_^^@^gxKMnIFtBjZY0s2~J14k--ykw*|lKXh74# zERL6ylo(4)Mp^OWB*QQ`LE#jIK?J6jNg7v*N$T(p4Njo)iWt^JSweJ;T%kN$v!l?{ zwh%&Lk0+v7Qri;+Q-+svVVpD)cqpXD)rwX%FL>@omuNM&EDUfjQ03VQ4ny zwA>!U3y{-`fuu#~F!ldV?yw{95nOn-5^PPAz~dkYLQtOyVzeY_XFR5jG7Mbjti}U8UP;N1?qOn2}2pCyNn=ytI2+YKDq)p%{ zjwgK`db;8hCMGS7Ff+8nY$eHb#zs0^X%>pIS}cUi!Vn!?x1?&E#DfmoBD8I_ac0IR zkQflGCX6xDG{!L&0s|CH&?a9YT}U#meAb}=PLq{fSq^q|YIa8^5QjtWOdB#fPm~0? zL{03(0ZvW>b`;7Pj4)vol}ivTyeJYQXt-#DdSpTLm30X>|U!N||}aX2#4kXT^9EO<^2i^}&Fwq>VILNP+`sJ74&} z-GN7($`n;trLy)}kOOA5uYw}90S^<)@%p)jfpO4x-LSsdmE$kg8g2ZN0Dvn0R^rZe zYlEq>Pb=XRkm`p=;Dx%VjmHN#$q(SD#Zf&{Tpvnpq2X<%cpi1DtkVGNfWxV%FC*g^ zenbX3kf3S>j_bg_!~G40?mo9OH8*ham+DCqa=G{;E$?ccnmsi&nGN0Ws)VW&%XWS9 zVcpTh^(#M^74Jp2ceMxRHi9zUS4eR&TX@=1}c&`pLrq z_L_oqi?&S(XvIsE%G=ik-YY#ja_CM`&#zy*@M`IZQGZOji+?0uKaW0`w0C3C@Y9Jy zHdpmcA9--d*y?aj%DpDz_Vdk;qi&o$opbF}60>=1!)SBL!L+(2DduSOt*ZswhU7ne zFc;sf1{R*$s5V~0D`#F_Rdo_X5QhAi^|WfssH3`$liF#diDUlcIc;9 z2TC!SJ@;vS;~x$xZoZ6PTjRZVB;jzK@BE$mV}yIdn$0WxyAqKK8@A57p@I&AyV%~S zx0=pntX=nQwaVc9rBe;Vf_bPI|lT}?XBfceLZE7rW@8ybT hqozcPJCb-kL9 z3sQFU)0sPk^?f?$UY~QVAPDIH{8Qku0dqVyV4gIfD3)b$n12-ud;%_lufa8N6Es1< z7|wuR{Q0F*mp*#?!kKqh&RkwTvG4^ERlv94L+}R310`l3+QY}FCIfo$7fPoueQO1a_|JXn6n3?1T zl8g5_l0@K540-fxy*kf%%5j24xlH7m=u0Z_ziNwd&^!K_s9MQ+OHn_yz zBcd=EZX)tTU+;9Y3670k48XAR`8p#(-JzVHsIeDo*yn zD#(Qyh?kKvFFw9b!NBrg``{eNFtZxCg5Ji6c#cRmotVp0E}h~{{A_4|(HpS9>+dW- zV?capmVZy9lQ4nbE0HXu4r<`~#$LskcwY1WgQt&8_Q6Xc-j0@$u7uX^miM`fqftb zvf)0^8}Pu5&2r6{cwayUrtX7j1_Cj#wo_~H3~NOE&~>TY8PI0A$(pu-J&OS!Y+2W`*HfGhi8a_Q6?JAdSQK6#H;d_&%Qk@5)u=?zF@x7+HD_{Qw> zJ3rI+_basD>r-nurlI4K>-z@8AN*=DEd#|<;4N?wtfrMZ%~v0Md%y!Y&#*iO@+5^o z7SX>deij1?(Bizq(OUzv*H)d>r+k>l##p?}3NsEa*m=p1bBr}<4k0Rv2 zGI(AnaZAiyCE}#F>5OI*W)BykFM#CSoBtVo7-BH{vkLeVHWxWX3z1a600000NkvXXu0mjf*-BVa literal 2884 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 I)H7WFPX`TKI{*Lx diff --git a/source/tycho/data/hc/lines.png b/source/tycho/data/hc/lines.png index a3964e67578bf523ca807936b38c8f0cbdd7f42b..769a58cc29234556f99d901c7b2584c2c02b0620 100644 GIT binary patch literal 343 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA3?vioaBc-s$pJnguK&peTefWB;o;%q;{%$s zb?eq`+qP}rzJ14z9o*d9n>KCY;^Nx8c{49BFDEBw{955epdz7?AirP+Ie7&|CFR}w z4<5RE@BV{_j~>qyWSt6>o#^S}7*Y}U_L4c@VFLk|z`%=+CqsDrzS}RoesmgB8pj0D z<#qdKKglUvW;AF2?OO$P>0H6LYi}(%@Yn2Y&>e~YwYS_){xE+P{B^JW|Al`~&(FUi zz9OFa2jkb7zs}8<&#eFPdF?Nmuiee@8TXUy_#gCF@;op;Q@%xB=1ALqckXWO-R`lw z?Ojn~0gV*V#6N^+B^pCQVuU{;qS%(wkQjcDNC*;>#%c_r!L~_bt1;^AebJbz#LMl? z?9B7L&%7V=-f-K_=CYEFB{rL_EZE|2$0M+wRmJ$Xv*_1X@vu7C(rwsmrR%N7ZhLFw zF`Mnd-;|Cnvn#Yil(d8c%32sX(upKS+ibP<=_Hi;kV%A5R8hU;%x7aHp~zmc(-{Jx zqz}cEmi;=~wSQ-aw7*XhWU{`Fs7;I5KmwVNNGIZ|A*Q`##;%Cx)-p{J8Hm~EB^xb4 zqAS!!_%t06PKS$<7@j5Ef`f4Zf#tUnEMVL;aMKJ&0Y(HakrRmAhs0{S91+|7+jCm@ z%}d5iGbz$^DwT4iIESW3X+{tP8n86WQW!xQgQ^MBlxl3wTks=8(v_sCXewb@gki1U z^pg0bSr-z?P^e&7HFAN%A*0hUNiz;WClZ!l8MI-xqkG3#7HxD4CK26^46R?65QcBQ zM-B{N<(v=qK@JQc)hy6)=>MIZ*O8?HF4?cgGhvb?8pTlp+cU6FOu?aKOfxkjru~EI z!geMQmH>{H*s3eIXkgs0N&S||px;a49fz#QBIG%j)6MZzm_ahdgn1_=FfyPx2{Im8 zVxh!D@^+Tv0~h0S3T_wgbGjKOAP9|s-`>PD&_rGm?+X;*D3E`j1}BSRDZCs>xmh^8kX zt{^1=qliwbQIaSmNc3rOO~=CcbllSQpwHK)YY`=mH;ne?CL$Q{xfsFaqF4uGU6O20 z{YX~^ki1>j5=5rTMP-=?BRA`m1do$)^3Y959M4h^xUC4g84ts`7yuEOiX~fzchf+1vL7{f!;5sk^tXs)rgjT-o>Wa}|xJ4*XfRFd4W$+I-{3!^cKWR}!H4 z#MLNQxqjm3g*{+o&B=8WFWmnAg6+|7iU|1jz}=aJ^QFZ6*-v^_c0aInRM~iGxZ!fe zrp3yjzvt$ct30*ut)4meQRC#==f`WN77o0LZmoDpx%p&xyt3|^v1Mvt{P@B8YtxD1 znoD1o{4o8Ur}xwyH9P<$cCqSQ{$DRH6>N) zckJ7W|In!3&LQUF8$+Awj*=gyZ`j{o1Z&Ps?=J4T^g#*n`|!cm^42Qx#qQ%*=K5At z&&|h+#;S)7*WbB9m$f`Q`%KZhvuBIvXJ4+a4SY2*_ONaEc5!lU+vN2-^P`V6eT(c* zoUD8L$l`^eVD0OrHF%tvj&tJ`<+Fyp^?DWA`^!V~2Od4Y=%ui=uIg%Rd g?ingwTxsuY|LNL^t+k)KtiRP@V5k2~)80dW0YY1rCjbBd diff --git a/source/tycho/data/hc/map.png b/source/tycho/data/hc/map.png index 55b6ace761ff2dfe5ebc1a7fa2d1b686749a571b..54ae882cbd92cd9ced7da6f790d13db46a1dfed3 100644 GIT binary patch literal 972 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA3?vioaBgK_V9W^c332^D)Bw=^TefWZ`0?ZW z_wOG*d>9oK)zZ>3Yu2pH%*=%g7cw(5%gf8}*|R4mCg#kUGa(@%7cXA4x3`atjg^p) zXm4+~w6t8cYSq@QTd!WdT2fLH78Yh;V9?pwdGO%DBS((7y1LGtJC}=#%h=d>$&w|x zxw#1m3CE5dJ9X;Rlqpj-Zrmsp;EhHplYHE7u(4o@OQeIx(`uchs8yj6+-RaY( zFI%>3;>3v)CQMkdV#TFPm+sxWw_(GESFc`86#nWAbh=eZkY6wZ|1@u zF?Z9`#WAEJ?&y`&>9-t2jwjyOw3IhG>ws7I>vzBQbFO>+F0OR?`uo=9n|NDV=dAn} z_vDO$%>mBuDqp5^HCtcfnB@L#mn_Gg>r49nHhkVDX>mT3mDyocJ&T;1v^Do{SwHv1 z&T9{N{+PXdIz!)fws@_twlmcinNQu;Fzfe+><3xPMLsusE_%Cl*6pIcgUe?%G*96B z!LZLiZ}B>rw+wnGo`2qKS8!D7$P1~wsJ!hP_H@LZ-leVJ{e(G&olD!|itxp`hi-7s z=~r=fRA}2PcUiAshpxwRQ4jB#XRmLG<6)3#-fPx*Z#!#kY|QzcdUp+s91~Pd#jcTO zW;((nHY3iWR>xb^Y)B8@oYwH7zTxWCzXv9(M2L6MN+6%`@|qihLc;u40JOC> z0)i$!63p3hwrMHNiVhXSi56bvb+`Z;g5nl?T?|{u%dmwn5S)7D-;XpaVS&>tvot2m ze2N_Yq&7wVM> zenB|flmQz=iH9{REyCg?0qZCguEi*VTmTaou0t^$imMR}r!g(9rr?o}5~xX>mCiIK zk7$7>z0xMjE*eEW9*@eSR*6ypic=JYVgyPM2tXk25~s{~5vP03D1(uAvy$MF1Tv8B&Q&DYhtkBcC~xN-fX@wL!p8z~ z*+f}%+r7M0!K5XTC35iNyLKl9D-X& z4MO1@hNxKvkL6f`VR7py&v^D2snw8Lj35mf9gZhav82vO=`ae{X^k2kkvM9b>U7JD zljTRX1)xo`IK~nrg%Cg&v1mvO!T>6Sq;wWFj$2r(g&MM_4HD1DqGT3D`)H?TjAjBh z82p_X3rA-OPEPc=W1h0%jf~9em0+JjFf~FDW(=djmjEqHg2gb@ByxhaWLzjtt99Rl zf@8xmGV`Ngj-{=ltL$MUKA`{{foJNXVLR5wI16|%YEh*>Qq(_`hC@S# zOYtP?p}nUD*eD!KMgMYa9D|3kfzCStwFJiXU$@`tgdjyqsxiTAyYk)E{e>$NB2Vlo zt~|t(@|NeFxQ#edV1kSW{_%}A7 zYha9$TNn=Q&tAHRm!|92welMDG zeZf%RNq1S<(P_{&--(*8f#wso4^Al*$I=>J?E2}hjMaZ=y>@6mbY%{wf})S@eZ4gY zde0#%e2_0>{@H+toYTnkuDY~WK5L4qcs?$W*j}{|KdE^Cpe+nfp3re-W%hpP`n`j) zi+Gec>(_#ITa@aX^@9dfU(=@g;7+m%`ps_xEB+GGU@M9H*-<)9@$&KAnK9?@{jzaJ z??730Mq;0n&#AcQJstkf-lHc^&GvQd988?`FeNg+CGFGezWlRNWA}uJ5>J!q^6SvR z=FCql``7P#XI16O#uYUwQQ_q~Ld&9@qWHp|vx2qOS@GJ}l@-tB=H^O+Z@pm2?_G7l zM$QO|t=-}2|8PMT77?ZRcYgn`w2{@PZl+xNdGe*a(pztr^=s!Z3~Bq_7wLui)_D!f zuSIgf70YX;^>1!>99X$N=plBeu}f`DVSX{msXg?F&Npt)1il|CE}PZu}%M|Ly+(S+|BX diff --git a/source/tycho/data/hc/points.png b/source/tycho/data/hc/points.png index 120dbdf10b3ece793c5db2b3edc4b69c6ec0f36b..ce116a030f2dcb4b652d943f9d8f9027a4e80d04 100644 GIT binary patch literal 306 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA3?vioaBc-s;Q>A&uK!5~$BrH2<>ftk^k`^k zXh=v14-ZdRSQyYeK|w)wc6JU9jw45o9Avrq5GW*2666=maGWjgy!7V_?72Trf62f2 zBS9}|1yHWa)5S5QBJS-)PoX9Up4NwQ>?~it9$0ek|D32Vta93BKfl#$tz5C2Q?ci& zVn+6j1J-lqs6V%U66STfqmzs6N%DVdEjFzSH@;nF^JV4VQ~lxK>!<*M6H}x3rFKqo zed}JIxKhFONowr$uJm2scDxWhdFHW6@8&>rVW&R~q6aw?tJP)x16{%3>FVdQ&MBb@ E0OH$}N&o-= literal 1864 zcmbVNZD<>19M9&QwPm^?bVCr%+XtuYa__m^ZP`e3X&W$GmS(m^5ue;WNsi`Tyt_7O zQSb#FRp=C?(=m$(IzNaXtaNM+TSTFs+@vt@g&|D0G8CCsSPO#x%Ugp~Er#6PbIP+tGP{XDAffk?L2o@MMCkV>{djx2~Rm$K6ib z2^SAc9LZ@DBbuy}hYt}4s|qMEv5$zVS++c-8Y63Z6<7z`G)dGT{z#0B2L_3ubcRUS zE+)iqgwj}nBP2P@Mi`kB_7fb#N;D(UEKf14!bB8aCK^8ythstY$*R2#TksYmOTO}jsy_=ar}fku?KNBtNHp4LM! zopidT*zy{Qf|Su!qJ%k&;=Rp?D3kQC;JZ#ul1-HsUjp zWK?8DRY-^u%O>TxAjrMFOk7RGB_Yc6Hn}Ow^O2?Drfmak^SXv4491Yg=@hRE5|!sQ zh7zL%o{0!~35!yVuOwWIeA~_0cDdQ9nPw)4L?Y15@D)MoR1i4Hx zJjHQ2hEd?pNfaZ%q7F^lx=|S45Xvb)Ylp(I(UFh-6Rc}W!FEjq9b}lOh-t?vl0>UO zO2RJNE*J*y`1bu&B9U?Jf>8#6m+k8zQprSwl_L>~3$wu?sn=A+t}%x7Ue`8>T9+%v z1{uZ@Cu(w3q(lKpl*S7jg&3&-0ZD9>@bYoRE zzy=&91!=*#hQJW`9vBWbH*$P)tx@M!N*GlBt;FqhtHV6I;8&1~<3%_Eo9d!EPb(p- zh+)*yWDqGG45fN#biEYoQP*T`1FQ*$sTeF<;}~9A107qS+J$j_>B`(q81*YDHJ&S7 z{pHGh=ZnnF?atXR;&g`+PGV&G+-obVPG;albh_1z`1H_5c6? diff --git a/source/tycho/data/hc/polygons.png b/source/tycho/data/hc/polygons.png index f61ab0ae7a0abc2e0765c2d3da918ea479e657ab..62f1d27c4511ec7c044a6ff8f1e5ea2fb43cfb0f 100644 GIT binary patch literal 673 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA3?vioaBc-s4+DHcT>lRo06M|M#3U^(ZPlt( z&!0c%=jYec(+ds`R#a3hE-tR9sAz3%oj!f~j2SbuwY9fw*|L56_CtpbUAc1Q>eZ`` zj*fr+{9$2X*}QpkNlA&4l2T=5<>AAJ_4W1J+S)=wLReW@|Ni~!;NVccEPe^lCXJFH zzhDMNRyH1f0ZDBgTRSgr|A5&1f~MyFDN|?6T)1eR1~g6FfcH> zd%8G=RK&f#d@|^egGlQ`wu22FE(S_M0-h5t&z$l6WM$QV_D#FCoZ2P2cj5OrU%y|! zTf)8da8UU6>FJTO{0!y2r#!3T|9|{s5I!+`{_}62j5VMBe)cue_1xA>mEZGS^Dl4h ziV8EF{Gk5(3wFf@zi0XJ!FFc(TO2;h?+>-xC#a*VZ@VQzKAyw*^l64=)27?Kii+cV zaG~LAmi80R3vT|KW-st*(rT-@(C*tL^zNrZlXu+jLUHST5sMuBOg@}sPY&@YXf%}1 zxuD?4=xujnq4&SaTdqgMi>I96l&-atSmf1Yw5;ZW^K2H&HIeqW7pa|);Ss9oVk`X- z6*q%p%N_%PPj=g+E282eDlUC`B+@-``9s%b%nCez7@ubbZi!;pFzbu*tC^B%cLOgL z?YSvzopr E04hOkz5oCK literal 2293 zcmbVO3v3f*9KWs=#$#kMaPt+)qG(T-)oex3wDt zD?)e#L`6{tI3N)WlZOKGP+3)mI-^lhHkcxA8gT?=(?}*m{BDmz%v562>wS0M@AvyZ zzkj-B&g>a!BkvlCAV`|4z*z|IqdRD>Ph;Tt^1VKh+sFwz*+meMKxBVd& zl_(|dSu8IF^_(DifIb!sLo|Y9PmhH;z5*zy2l&L04g2M-Mhq1N8@9mcCf#8N@QVet zGMHC8yNIu?;H?5S{UJ0v#zKK0P&hOe41^+V%!c*pvT&`wCNQ)QqEy(hT-6|2;+}&# zBpIMay$Rt<99;pc_TnrCICJZV#L4=pZup&w!R8{0WQk7!E zpr`#I1jBB3QaBVDNEA#N5#z!Hr6-ACP>rh(9Z?Fw4L62FM~Z5~fG7kJsY>Pngip9Z z&Z~x&2V%Gda$YqEDM>m^{lAk3?Ff7l7p{^6eQ6SS0t7%1>P28oR5GBjUs9xqU-}2> zoR0A+u?8CAMn}!QGCB90PbUAGp+|di7z;cYiWHcKX+(Q8Yr#y@iw^9O$8+eYg z2t3X4ly^{PC_ZVV?N-KOWgJE`MdexTPJ3Q1Wz1u8?H1CWZy)5kLJ@@v@nF!l2yL4w z59c)*c$^U!3TKQAgIg?C4)+Q`um~2K@z9n&KI@PHr$};>V8h_P6(G;s>9461$YM1R@?|NA_H{Wc4v}GCrj5MSV#JLMXU2I0L*pE2_QKfBl!Y>wD3Sx% z0AKjO-9aRsDi9;EN;LzsU>>L(SOr9A10E)p$bPYxMJ@egGx^ zR^prM)(?wFUM0%OAlCLFmcZ0V33Vv-heq_5;zrbcdp8ZRK{%X> z>M}Ww;X`tugAkOK;keHBot};$DcfDn+#>(EOJ^D%Ys*36U87pJj_&OIymb6?O%+cb zGC8!}oy8T}=54P{Zti^L-R9PHWfLy%jbB9$ZLfLaf`(OAzt@uI8`qL{+SN6=Y53u~ zUsgS%Jg!5}b&q>6F=oH^%WlV#oYY?3@sxU`V-F(qcE)tx#BG-~e)H}7*F9ca+kW}- z(+3V1+AZZB-({w2>oo^P#C=^mMQlaMr`2z*54J5TFPEdy!()C!mTL2JqHXcaju!X( zWY(BfE4U9mua^w3)AHxDF1-D~Hl_F2(ZAtf+lo!^wS{uPwXp z+bb{4-Zi#zk$Lf*^`LZ5SJO{dkL%W5)CDG%|CzDUx8sh)>GmI{WoLY|JHF?GQTMOj zQIL{fjFh#nOh2-Bs>Zw<33l02Yu_pF;&~=|eB9){alu;-FLo&3YhXgr!)s zNE3T`SK4{YQ@RsV;u-O_wuM3DeR6F>YjtU2399uUDm$C*dbZ%iGtCvsFfwcOLCtdX z>G-JeiOe{fdQcN++Z2Ckn+a diff --git a/source/tycho/data/icons.psd b/source/tycho/data/icons.psd deleted file mode 100644 index 65188fcef4df1962d617489bdb14e29fe3a03170..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4358698 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 z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ 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 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL zKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{ z1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009IL 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 z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk 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 z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs 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 iUp*>Y8U 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 FV1h@s82tbM literal 6155 zcmbVQ2Ut_twoZ_ah=}wSgCGJS389AGi-0t#%8-x%5lCVZ2t|=13P?vV!k{8WibSLd zB29{bQHqMfP?aW#bU_7t!EwCv-goD{`@MWQIs5GW?^XW2);fD9-p zT9`O6??udu#L3S59XeKO%e-+BE!@Zez=8I?3z(^RKpX&Ix5hcSQe17Uk=}$rWfX>h z#wv#d5}9ZKKu14>i1PNwQb1^|FAlE@UTSCtgK!vKu#1`v%!X);^}|_&k+6MFR6_AFOGF%;|rJ||?Qh~uWpfC+6907sBkuY^6LJRcs17>O?VSJDdCT2f% zF`sn7eiRB3358OrRAnkcnLzS|!nL%tpfDAviVB2@fRID+6jTTVPnP*hf(e%FO~Mf= zI07EDClQ4v1W|OsOiTZCA&~e>ES~(6CMIFf5EKy#SBCAm^aF_T{)Hn3kpg}w$9O}r z0oXt+oS`6b1Evf-&Am9|9>5#q=2$i1NikiFjWy=ogbnV?qFd#8k|*4)OPXOJid@ z62S)-z#Jeum>YpCO^wyzTI%W$6=nDjb8T#pmUuD+h4;oH;>S%W5_t{a>QwPwixa4~2>%VGVtm-2Eqk2>nO< z3HV?v>2DqoQ6vC4p2=CU#8sPBY_o3de$?`L*v2RBZ)oaX|4kAjQ=t`iod=Y|(I7ug5T@1r+F zJ!t(lzqrBTA4LI@!#Z+mPOvtyW>t(D46<&q01=}RF2FkeG4jJw6cga+)TMEnw-nkC>aN?2T1()XN1{&>G(r4>0q?t8 zH!1^JGp~#%)Wx7>?$jDD1boFFqU@%V4@H6pFV@6uc%-9n8&|HZN=6GgOQBX%(Ay@j_G+1sgw2j*Hj;^bkv;_eP>>C$c@3?0-3`1qtTVIuRr#% zdF(fo4YL9^9h}f_Eo{CpB<6EJNB&)TjEM}-g1{xCOA6_QRoZqLcjCBmES_XnEN7Wp z7>U?fx}I*?ZpxH9EfYc$%bBg+Wsz?)1QMruy0E+Gj_Ivy*`Pu%{et=utC{TV=uvVTQU`nHT$`zcXU82fognS|*gll672<(~V)C6FWVJ z1iNO23bhly9~RjsZ#yF1?zLYMCItA6pZa=KQx1XVY`*uSAf+w?BTzrmsjM!2|M?F)O7B{lAqc*$?2JVzNsF65ILv{!7JUBE7oOSm~vNr1guID z?0pw`sVvQA(+h@aY$V8S;pDW2j8ZL@EU5hjiAhfB-J7qaVMKG<0ylKuRiy>ykXTPLo$&VK$6pMjS zE}r|NJ>2dj#cf%bcE$o8?CXCa6p-IMTVk1{<-8l9nSFT_9}9kO(bmYqyKDr%9XGbl z#t?Y_3_Rm3ROu7`w6V0{NgF&_>6}2fX~D;4yOXH`I*M!8MepI%x10|siUD8pv_`pI z9+)Hv!+z^~`Et%Iq=I&8ed=(UlAsLm?39(HU=XHFL9wD@;l&e$vU6`6IqurYM+s$= zS0e7MR??1jrP{oLo6Q?Mj?;XQ_HBdRJkA+^?CP7j-_y1jI=J#2{*ieem5QheWH1!x{MZ0kS_3qM|SVC#CiwXC!#%{9`%$HH-|) zU;32jI>=RDrR3FgQ=#Whjn`5;O$R^Rs#R*}rFds7LA;7zL$0#VHGq-B24j2e7%ryE zDcTfX#FA?A`eP7qZN%0hnGJCipj)P%lb7$jC|~6h%l?NLtuxfLroNQNt_GO48+=Fk zBz>Q2i%yBDhVdc$uFSF=hf8Xv56|*C235li1Ww;g&=u$^h+03-*Cq_!agyPCz3S!bZqM-KAvRWL8Sry-Jco!Z>8c{=vg;zk{! zqaNx5*2|R5=!$n!#|H9AEoMcl_fg-_NZn z$?6qzftVT4XUcn;a$EBRZumx62Twh9usXckkbN^J4`#wYmpqr(Z=Dw|Pg>;MXL$I! zW@+}4tnc)5g~YK0FBfMSYxg9X^g{9dt0|J*>BmA6F)irB>98*^_|Du(yHc8JlD5P{ zgC@gIC8}k_evWkQ+VM#^)4OYnXNj|PQdKLhoCiKghwbqKK7gkuL=$Hdb7qAeTy7Gl zs|>uVMMzcp_{}ACN`E?>aFkzVJ;d6H?wq%5spG@u;+$knTM!Z?z6aE$QC7EFG;yq| z$pPK$(@v~j8FPj%SORz5DW{?P;N*-VLWNqq5y#U4IUaw9Bi$7WBz4VW3lrMJ>;^bM zUF4LB6+oolqr0z_r~Z>so9JP3#kE@kPY;w@<;b0uuI=uXz|aGj0sJw*{NU=(qQj*&6>P0EtJ57JZRn3Om-Yz?!A`nL zv3&K+xL#N$ZJ8DPXtGghJbRYTd2X8iEXpc00?;@o>~M2ZlEc4owBVuKJ=>zO)f->i zJ(aq2^=llfQQdcAuid$!o;ZkWYjJ42kQz@GH)F>8_}LfLB|_Pkvf@gQM_1ibwe3hN ztPHylwp!BR7{(&{S8eDT9Hx*o^8MMGOo-rMS2{KjHU@uudQSh}fO&E12K#Bys6gM^&U zWIPWsNM5h|#>TiGG}~y~{wzbRS~w`Vd#CpT=Y zOyvG^H=X$vVZ;3L-2SE;Z$4&TeH}lQ7dHibHb%RQiViQxG|#v5HZv>FC_f_c==_t< zeT1D!U00c7MIHgKf*UfeBip}5`d+}yE*JW`ED zZ@WG_%`fksxI1zqG3yj}Zb_ib4LqqB{;ah)?9JT!fI(MJPPI_7}%iMs+h4kh4& zSD*f##BsGE!p}|8ZGvZKXVqutUGpIt)yt`_zConSLH=cJu)up>x_Y`^u6@dfxgA@E zlvVYG6a30K(g&qH8(OJuE$8#2(V3@uUHg|=qjZOjmg59@bI(9i^LMJlx6)dsc0q&J z8`Ds~`R!AzzQ>;c4>>6&H>Zop^Y%S@2+dcS?>F~4T&s9&O%%T&~8spnXzHYMk_>SCKI?N$ljHeoXU0Z)C zO5e86E{%U)JOZsuZx*68ZoT9}H&71U8WWO_O8?zlK>9lm@XJC}e6_nlN!u+r=3Z_stgb+(Tzj7 zPNe7L4H1r*uiLdPb&;V3)Ey~fH;;xRWvu;sw_e4TckNTwm?k#<7OE`nBOQZREiuXlLv zgi}5n9*9}mJmmG_cOC8%SJHEXCd=jSTL=@TzP?&G=hgi{aYgANU8>T^SlmZyW(;2S z;O@f5mIv|K0FF(N6rf03vubU!M7T=#SiIijY0rm1ujIP~wz(*QYicGY(xm^(-^ zSqk9~50`>bd{iabe6lH%cN<7e26Y*3D(|xLS4Qn!#;OkV>K!!?AHT|J$@0AK{0t2+ zeuP3#lXhhc*LSXfwo*>_I-b$G7$qe?Fug^~$fuwGT&2G%Dcu;sEfP>DrNw?%>U~X0 z?!le}c)9<*$a-T%iz4-D>+t%EWs0*9uOk~N(GA9l3w75A(JN}T* zw0&al3WvZzztwnVW;0kyC*6j9I0+nA;3Y)dZCwhXsN@Q+xeqRN!K(ryJ0w#`EIhOW zm*K4N+pQWL{x<>3sq5`D z1pRB;+D!MF8{;6XJzA3B-TC}YphD-lb^e<5ZGoC%RZH`NEK8LkrgJA z@n}u23pa5x^nGeq%NhONM!sg-Omrn(*Go_QuD+y9V^1bR{z-esMOC~F`-LdWmK!!G z%`bt%mbU7wmxsKS(pnq_t!9CrMrWm9w|K8aTz6UXx|Jdc1htD|53McxKkZ5=jRFoR6lW07pn8QS~t> z^S3czI&>;bY#Fls87xFIeShX(P2^ln6-eApbzRwQN?iq?r1SKOc^+&AE`1Ly=)HBC zXWKqmX|}$F_PV}}$%>=zAFnz-3EWGw2YkBPO})-$&L>YOt#w^*Kom8i{0r>*5`x9+ zE6V&LR(#F_8nu_o5si9=5rVma`s~-x;3mWC4J<<$vz_yZ+5?ONlOx?1Or6(#_?{oh z)4$2&SJz6#eKmctfVwD4l}?~23H1FQb1LgwnXz=#pq;vR@M1{-X(i$fInAzwUEW6GS^WIezXEed$cad*Wh2&7Z4Z z!^=(i88R^dOjdZS=FWz4hW#u>-%N|t!=*39$w}xOkC^WZ-XnPna%C}vFgIEJ7sJUe zNUCjCUT9h<|Aj#8InwXTqnIbQ9nJqedp!ioQNOwIUCPYf$}xs`*<1MhDd-v=)(pWq#qA3& zZ%TD?%|gElSM7(A$DOdWIEun3w|pg^gRo1R=t~i+iYCd>4NL&VQ+QQ)(XeI?(ImG# zi;%F`t=4NId`mS;OJ>yZ*VuFSPb;OR>cp$5I?@rH{YP$GSnqQKmE*@SM+2e(Luvd7nB17*ocNcdu@Q@+!I9=N#HtBHnw)YZGh zHKW3|4jkG(#K~!oP43l<91AED!RRz48?TIYy0IBAUpYS zOu0?$(!0Vm;*cYV>nUD!-`D@KiS8x4;DHhPY;B54IXi(17SayWxMwz_-VPs7ss7{a zQ@#X&NT;ZGq8VXmU@M^pcX^j^FXBEJb(UCjndzE8b4<yW|p$@>#^DwXysDrBU$992dLymhVEV#RGXFzg6%unEh|yNGN%g}%<}(o#nuJJ-`& zbr9^vbVb?q#a?;VhZ-+O<5azu#O><}ja1R~&u4jUu3>&5agv4VG%sIDiSK$u&Ckt{ zi~W7|cz5deVuuA|+mS~=5q&{a=|-^o2>H zAU(o)74%QKgg*`#>{@b0d0q?(Kk34Rd&WP+nvQK%j5Zt}cft=WUPoQ=F#5C~>JBh8 zq5qYG*b{mV?E%;g7wzYg;bE9lb3Uhq;%md!vglh*F%TVOWitjZKb`mUamsg_bAsFPOi{3AOO@`{> z4Ehx>Htqr^<)W^y7*TGqIj_+quG6k_{3Mfbm}Vcet`AeF-BsYTako7V&EnhhY!q5^ z!rFd8=AYrOr+9dJncBHypW&O;OAKTYu^NgAbPPP)`Dlp0AGko%!y-Ajh@254?A}wy zKa^$e%OuOKLLspr!P74?O}#b8PU&jSv18>28mauSW>Uh$@3|4Gnm3oc|Dy)nzmlz; zHc#1e2y^{8k`dRIjxC3R)+=rCw)N<2wk7NtKCSwsTP`CFJATq-f=%_R+04}?FD`|c z%Dj0?l$4A)Ks2ICIc*fC_rW!HSM`51b@4FZ31}5@KnlJ&0N~xh z1n)w@Fe7P>1)!CQ`^7g)?&0ZEtP4|*|C|L6h}2=I|M&jcZIsd+m)@jB6h=8%kjvGiz0Sz8(P4wMm@!XlP>ZR z=duJO|3Ar>WNXWo@oDi@kar*d15o-$fK|!uLaL@(%f!;#b5` za5l^f=sLu7BvP5HS=UXoB_dY0$~~KkZ`>`NUlf{A8~fuKPCnm4loqRjnQ}TIB!n#w zeh$3paf>pnns*0yvVKeFFKR|vAusYXak+W#45FoWX#d?EUWWP|Pgukq&n=nW*jSf{ z6EZDco$g3&EBUNXBOs77DSDO?fN?mkeQu>JDxhdnqu9+5C4(jTRXf8o(Eb(3jPEI$ zUl9QTi$yu&npoewS7)acn3))x4a3-8CLR9RoR1{Js&7`gCUw$!#+AU)gxn(GG9=EW5Xn_WyO%2Z9H&)p zEjw0oU!Up&IzXN^?+$fL$wHusUa{<9k3`$VkgpTtKWf>UwD{1$4dbwcJAU#LbQKsz zz>q9gr7jrqAZ*iG-Ez677D{T|eeI0@q&rRoO8~)Q_#>m=K9q|G+CDSHRQnD~LnjRu-j^?-?%F>uX zx07E3(Lk3e3s-&Ago1fC%+>-V(?7^{dh^|)g!1X|6R}NXSn%6$)d1CLO29u3V_2~D zO!DO_Kik3jcjBP|u`_PmSJ zz8``Ok$&>+cSlF*Zj&TWnB5`xNX*o?wLj7;f_NJDm&WhmUMLfOZMJ^qf22vb6)vz$ zU}dPrYg(8Oz6#VVWuLL>V_}BFYGt{#W+i>fp`>%ep;w0~$7{Jr=~+Q%jn)3{>1sBy zy>XS03(5H(6F=)6kt%eGn$M)e-z8`(#ohiubfSWitjK#IoL5Mk8)>mCVnuA|#BGMW z=@4@jdCtZv@v%YgJ=vsDz0oHnQ(mX11^FaY`=7jq;*oi)wD{25PWV%5K2p+w=jm zPj0$L#J`QhS&6gMjMyx@qOb_-Eb20vXofs_2`+@~Z{D{830?*9OHn@}ASk~_$@-g1 z)3VA}XNdR)k-=PZPvD^+ zXtSBLLvzb$)qE&>F1}XAQO`DScwMuK-K=l3YVGcQQzVj85;;sCZC7>zF5)|luQtjC zEq=8m)@1h)=BIZM!OP4w2P!+yx{Pew%~3W!dB_>BN+EAMWE_{;2rUCu5pIRSj1wWM zVhZfslXjU=i!0S+M$DG=QLaYz%CgeSxzz!yqT~B5Wdl{3NT*>``#$B-S%dB%T3M|{ zG&$0tS`hXoloWB3x6#6g6m<1hN(8U)NB6d`r>(86!%Nj91;MALBJpG2-+L-sG>iI= zxfv+#huv#N)@`Y~EWSzMIJ<&sLZS-S#O$!GCU3Pq_L6w%IIqI`Rs`X$3<0R?1j zN|Vt|Z}b%tb+e0NXBliOY*EFQG^?9$PH&8j73Y?!ndv;mrj>yHF1oXL(te@!@nfFN zGlNSmKmGe(o|;T4Z1J%n#US4ak|``ht_ISOYO!ffMB#Sguhirfmne*M~cvLUUh1Unuv^8+e@$i4|u ze+sw@8e9A-YEETwh2D+MGCG%~F zNKiTOe7d~+?b|LBuDHMXDXYj}`lTZA_>#+#iqT8U0<04%Y#p%Q!26pPGDHbx7~yk# z5MyicycdQgz$=YNy)`b=4Reh=rDXLZ7$T~o*-4`WTQo_kNKg)iaAfhux^;jxUoRwf zMLGOE-j0aiP4+_T^6zlZE0DpM-Mx+cjZ%8bP4crH< zq}Fqj-UN`sJJ^tMa+QMM?a%uUjW@CB*my1jip11-^gl+^xC*-c8Kj;Ym=1lx`WP&3 z2E~kirMN$AYnulF-U)-$%p~`7aE%unF+_zrR93hwX@rf!PZJ|!{j{8a1JjRfUzQ4N zh5Z=2d(9lmaVK$C|BRn|9JR=9TeJG{SnP!`&x-{Hk-FmTjD;4WfKXDm*juo-_#PWI zz935?DuI*FBqM1EApsUT?GXksjA2FBz`J)`nmOP8wXTvv+BJ>5G-563CfL-o=&&X` zJ2QKEqFp*JO=~Yd6GIo3k)hyjghkbkJWf#CaRBjC>^20HQAt9mHa-002Eg1C z?>Jz41)4@p)$mm!AC(nO%WSN`W`$tlAx~D>n-+$-l6M>tf&C!wDX8<33kIabPu*aV zJu?fl_DNS@u6px0NlX5Ma>)%~EhmV!M;RzQ9LHGj&JA9d&jm}SS#V`g%l*8|rc|6KvziS8PbXsv*k5|sh`}|-t z05HLX{1bDHU*|F-(%J;Y( zcN4}GrTI?>%G%o*7AI$L=5&ACOKz*Nn&484_$%t@!bq%{q5N7mg1;*mE`lM9j?x12 zHS*%JS_YGc0dG}OG&FXxjFw!ay{U0hR7@rTm?>)FHL)Xy?f$T`yjML5mhDSQm_yy+ zy7ezU@sfz-P9lp0R)Fs~9nzL`mlxhsUeiT+_WpK1We*Ft9OgbHe8_=owXPz|_U$)S ztEb^I#DCOQMpyWDP@JW+MTR0hFC3GvYxm`sjdZo#+?13=+QLIKw+>ZvwWxRP<5{mv4jgs!95M+>TVSDcDY3$C&tG)W}pHb(<4 zkZZohI_(~iw9R9tdk4CFioCoURgg_eV``9pyB_v1oE1`*BriQ=PXbzZ0m;75OD|4a zQ?*qQ@}Wr zehYqXYm*~`Y44cFiL`)_oXmUlbS%17xoJj!P7v0LU{r56K+7DD@$c-Qpy(yP?26~4 zr>LugQ&wk;Y#qhqi5Upz#mFzY^prBS$KX0n(NHP~L{ar-Tp6CcAZ=&3eQ7Y5WH5|` zceBK$J}s2a!miX{NhpTQp2}!;>;@fSkg4M7&TDC1<8g)7ILRPMGVATz+c7!q!h7}gPg3wrgY!u5wCRU2 z@S=;x4UL({Hdj)Np|y$5+rUU+8D&X3(0fI@pC~RZ8*YNJbZJpVaPZq0YaQuBMJKj) z@en{V6ucVLAN7^bbMMk9i|Y9Am$;7$`=sA^cupIW8)?I;f+(~2*c^>YPYIg!1hpS1 zG}V+u`JFfmloEKG*|qYS;(F4hyMaM5kU^jBTSkDotmJ`+qB-NjEx9sC zB-tx*L;CD2FZ&jwC9(*9;DJeAogGqEKX~Dg(DWTtax8YCCn=YuOgiAFs5l&W{$%d~ ztfRfK|JWf3nL%N{)1=t06bAb4If{znfU*)Qy?|$&N`7o@nT#{ zEw=$n;E`~PVe2@$IS^)&64@ok{^>XbgD}6=f?nV^BcGC1w^&UY@kC&0t|sX1vcj&5 z8GGrfpCWo03&7GRCoLki)^2)Z1IHA_Xo`Jp=~vzl-IAAu+$IG|@}OkcS2@Wlk@CpH z16DEiRa3C}J7a$hnHc+~kljiFfsT^BBjG^l;(14#`k!GK##It5J55o{6HnT#WR$h* z{qw|F>UkW-U)WHsuH}8XaMQQ)H)u@K?e-K+k5#n2W}d0?*5gzd=SPz82L9GON|ZCP z)~x#BOrl+#+sr3%EAlNLe9zziRIWdCE35tO#Xt4$jDNfqTx@pNw;-dB6y%BQO@*sd z5Pmnok1x>uUi}dHSS#Wnn#7rd$JSLbktGO%6_JBM3OV1uy12kvEoen3UCG^)XmTgv zlu$B)s&@exaJMCK?r<-fc~Dt)Nuu`o@%1NodjzE~uMsE|r+PSowJ;%h;U8_60b zI@QC8>BF~OYoR^8G`o-dao|& z(N+I7jc@bTg?r7p?AHf)gE^I&zC_aGFjxR4xWtnT`C2@n@<6K=XBlXj7n zd=rEmySkVT@ue8xfohNwZq%rzzxK&4g!Qhl(^8vXB%%F^Ai<9|v* zUJ(Sp)(%nMDSnvi=bhg%`z%buCP76dTw^QvV&pa<#+7t+8=JixZ55!=uc|$SJ2GZv8_5CgS*hfZ_AZt|S;y5YW}3<0`Xo;y&R+{EUmOqZLr`N6V|vCs zy+zq4xk0zG9vhz*tSiHBE!Rf5g>r)TtieZyil4z-KYS~2tCsUldm)tM`U%vbPNmpbyr%GHxhh$6P?oL0$BuW;&3RWsZuV`oV>%INo zbT!~^(!*~d$=hpBU3uZnDvwcISYjCO1Z7Ab%-jkK89&~(Dt4=8qVo4!5+hfD)o%>lQ^j&W6fq%#ro#SS*&{5?oHAhc8*98j z$xg%Y+CZ4%*FSR~lT_k={r|EzEGTrw<}+=1dQEOpzsGjk`^GZn9V+rfWi>tdhWpec z#)|GtwJ3#Nlj??5KiH}o>o=CFk=#1&_t3*3F_Tmd_B|C%O^BKzrhiLF>kRP@_wd7E zX$}|{U~sa|R@xTxqdxnI2T0RpCOXsfe&a6t6-TV}QwC)(1T+CvB|SY_bR-~>O>SGTtPUb4;TC6sZATY+Sam)FU;mCCn0ZeB zBs~q~Q3>UJ^->jx0G<-cgMY^p$D7r}YQW5D97QkxJWBouQCJ;pTy2lSnw8-`n-X<2 zQxQRw0NCk-X&O0{PeIC0bFVomnAYtx6kg|5iMnYG<1>@rp{WC>h&d6nj-qm)!W??W zQ)P<|j6NV?g*SWVd5D_Fg=2?t$cmw(e5_lc3=yoicif1mE)s%FOR)zQ^Z03@{kI=S zg`i+Q%aY$axgVPTB~(}LL{+S^l+RO2&mQ5tB6%Sz0?gAl>HhFET&pp{a}2=Nog6Kz z)AxDK8Z$f23#T# zcgqq>YRc!p?JmEKk+x*#Z-Hh$Trp8|uZK!4S=~o4g`9jUvt!INxY9sk#fP?n{9h8D z+@QdmJ07)?>xr1T$rSAeXw%hI(Hsi=)%(}l@g4s)wTd{natY%0-qghQpe?f=ezR%> z%()A5?!^-iL~@HEb*1AN$@12hxymLgy#bb#-%?G#f5;F}$X?uz-=tXh0jpndBT=_k z{3~!X`QT1O6cE#~JkQxu0&%O?yNF-d_tx|)%8us&Qj1MDP#S#xkvli?p8Qsi3oIHH zJfX#1+ETRhi2{l%rK4pz9|2VvRArx3!VZXNG~~q_+ZDUDwNKgQ8GK*#c0Y;y8wW}c zu>C24HndU^KgP*wPOcS}M|sNulHqpy!mXK4(rxTUo!I(`9W-e7gGZBVpqV#U9f>y; z=NU7JG4Ki=Y6SJ#UKz&tiK?yf-PiBq1t{cMkhv9mtt1I@GD=swz}y?^dUy>i$^R0i z&>RpC04?f{1BFQvcoPBaWWHq(VwT!PVh@YCXq5C|CDoCf~bn~TDjhLsvOaTesLMF|04a3DcK<9KB4wU1zFbN#|7`CYF^ z<4XN~w`8ny2P?k)t4;PrkvvB{xsZnpYT9y^vl+7Didnn@B_NgIO9dUhi*C1Qtrig) zi5BT9Y49ioMNzs^yibCd9)xn!OdS*13d(KBP2#o9vvFYGv)*vVkze_)>-|bNd(0{- z{Wv!%cdA-MoD$U|OWAbdm8J3WynVD5ebokC^DIAR+9+Sf@r~3vY>h>|Rd>`Hp2q|) ze^)QHCD4wFyQfpoMUSZx8vZK7oi!cmKy(+7I~qZfHI0aw2_-d{O z?VHALfDFfko=@Lp24UUKwvv|jq!OKErkjX(h~oYSTiX-I8DmH}UYcf>9W#_#ycYax zh4aZ5iOq76b#0=_@Wa92ot5q~yK&)+Da`hxW6TES6zuz74XM89gwad!--R7a7Jt9}7u-vJNv6s_g z=>dq%5&4?u26H~O!JDrci6vd{V|OJX@U~#DJy{=#O}KG1joi}*yJ6Sc%t$0{cu;QJ9tpiMDb``tL(SbIZNxLIQ;94}Ve7dcy_w zJ5F>ds=>AzUFm2hGxlFb!P9Izb%SW4X1|o~@f$j2b)MLkX3l#Z%_H}$i2}=F6LSVg zn5dN%JC;+m7zX_TZ~G*^FGL>SD#FGti|HZqbrW_2HL;;NUmVCLjt`9DpimOg?9cL~ zUH+?kYW#72kEt6bwjN>JA(gG^7r-Bo##*>Tld5`oD=_9D7DvtnK*)CQj&uhCt9awLHTG3Sm!F7h3;yf*%K<~_AD ze1)Z;iI0@qb2i8%MQ$Yq(bU^xjQrgv${C$#9mXPREb?9vSATQueHSqQm4U z9(O2KXhNXJi7=?xJlc7D3|69tOsa~@4?5x_+pm^8KDM)mzifiQ64&7Be#-d|q7BpU zrN{LQT31ixL=X8M#I=Uh@?(a3P?XlZWL&XkE(oxB(f`plLbEnV5Hl`-&&Z+(*BY?= zFNwThm{yYjm#Bn22ASs_d648YI*J|r|NdjMV4oLfpt!r{rdhTJI*V6VuEL-6f;OL< z>Utje&Yw7wOb|Oylv=uH*)dC1sN*`MN>j88tk2P^G(_#BFRq19QuUbXc?ZIXL!T-cC-xgytY@4gOWr##oLj6BbSZvMQ!InPPlI*RI!9^#@V2(i>?7n4$0a`~M!P|R~tNe^MLANU(*gj9}}xG+wmh@+_a z9-S!X+kKq1ahuY;(3Yf=R#dS!T#lkuA{_{##L&obKZ^5Snom!5Sb2>&E!CEDQ)&Z; z(M}N#quKdlp~&sEgE18%7Lo-8u2?$-@ySo6(v0@mSzm^SB5PK0?BiS17paBw*s{3# z{k9Wjq^O*i?J?g_i*?$y(h^ptQ@^xyGV5>H00tfWa8bWxd2Ne*F6u{?uIYp8D29nr z(R0?-@QW=#GDg0b)ioNIMl4YC>Vm8tn%~((boo}V>LaQ2(REsDWbMY7$M|V&$x&m(L?>y|_J^aI zxcS?Mg5x@FNwKd+b@_;$pm$$(UW#+MXti)+k8@*>2T}feddJ41P$r_qn6|2I{);r& z?^=enbl%TVsBlkB&JQgEQJ~|44g0bsdhKM#dj5v+vaOF_ z-#W5epWXxTN5QQ)HCui%?YEqYu(|WQ#!^fho)op5uWy@~KXn`YA((c-YNurb7{|LkKN<=5!E7HX(nem6o}}>mF0zM7m4>lT97-6R(xE z{N<1Ev}cHYo9!Y@P^748skJ`dPX-Y_*`+8a;rl3CEs|WP4w-8fn@InKTwp zcb+V4gI1C$J$}1?;-1bXHOO9y3Hh)8EX$e}osOIyHdc;AM`zU6!T-Lj9=^bLW37V?6^555d4cIZ<_z5XK9bs4F+xsz--d8i_%?nMQ? zoBuPYJ+@neWjzELd813B1({dxUY*+fauoMNW7lt$sHtu)(QNx|JZ49 zBL4jwjz4>iP_iw<^P@9Jc3vgAa`zPBf4!y}A1|$^(+ZpKw4NBj^1%t^N+L}keQfE(=tq^GDLr?VdW!eD3Z_dzMn*^A36W3+VY$HEKyP2JTQOVH$q17 z&d|vPEcfos(u??^4zXbWuPpN`qEUPW#Ihb`}e^s-Vzb9I)p%TRWwtYC0BNxzt;YV;iI<>O}TmF*gD z(*XKKzOcd5h&#^|0U_8?f?jvQkrmC%O!p$2)&rNY#%VpG*&D$WgQZ=dq!dx8bD<|n zQsQ5pNEGL!hLn4$LAwlCSUUOfP*_NK2Dn7Lu_4(KPPLa3u>bS-4ZQhi$QG@1gzZ?G zWiA}Q2bp;6p&Oq)&eD=wOufre4{!qyg>Jp5aV)Q8{Evk5q??QphpM>n(~n z7M6T?M;6ktx@c#d*lu<-8p*{9sJc*%e{2$Q7VWMIjcifW3M=?#g#<6iRLI<*PMM3Z zi1kK9p_O0t(wP-D7QlO$M^QGy_VuMp=W2LxW*&1&(|I0;M0p-Ey$*^mdl_xe%&F)y z6V_xf(F*oCPa=nIJEw+VNd+mY6Y6BmNxLd#xh>>U-`kmLLv_sHbiez5kwHS)<2;tGvhl19?ri zvY-b|#d;HNlcgf%5eN2h@~Wz@8?mA=+6!+dUQ#tW3&$t!8RL#$fhJ-0Xj}n~c|mrB zy;8B*1`|Y6YEiBwQ}q{)do&|{@kU5sF8`_?;Ee<$OAUl~(wNOLv&Ihr3oDPPOYLV% z$g_9oTO`@?Xmw`};iY!s+Zp8n;vsSz4ZB=yIdR(iMlU%(yR7puW${mbfD& zKmvmmYKo(~SmL^4F|6Dq{3j(XGYH@NmUPZ!aP%nB5gK+rUaJlVAc~N}F`7J_ak8>5 zBQ1p0tYz@k(K?w|2 z|Da4;tGB6wsPG($_Sn2y(xgL!VP=e7wTS2!sV2vlw2W1$FD?deMPnPx;b5O#Y3quKe=#av%e9+x>_HZ80PaJAHF6=T z9K7}A7@rBNBjIN5PzrsUvc~2+$D*E|$cdS{(Yp~>J!@vkrY`rRP)+8XL6z(=?+9V4 z@Cy2Kl7SrJOrMC77*T8Fy#&m3pIud`x`@99C}&P4&>0vM{rtH)s~1qj5N+Xd6Fn03 z#G&wqB;W9e{9ame)yPlTAy1G1uII}X@+!+t0UhDU#4v1MBVK9oG9;Or%GF5}a;@|Q zvcD!fs?l}H0FE-$rpq?o->EAOkDB6>9MZ}nr+^TLEoJXBpvszb5Ljgn= zVJ7CVl}y@W(UIHm2a|QXy1%#om0HlNU)}7V=)3tFe-e?HNuY=Qhe0FZ!pjwFA+uMY z-%STO*4=L=%g(?ajc941vGmvZ;7p=#8dTt8Ui!0a_ovQ$4iEijnu{i~zN!Su4$Pp} zTq7@PR=<@wX@bPLr>cY#X0dd@{>kKZJoXEkjAQ|Gjb)0F)~}F$P1bSr-8gHp1DamcAiQR$8w9WUx%jbI+(b9R*)t| zP$ldv^XLDIfAn=uH5|{K#7gPL*Vk!dR@TfT4tgCQ|L7n}A}0zC%0}ab^vMPfNxu~p z$n)SKaP-NJKnZ!fl>wpw|gR@DEQ_ z&RkqsE1QaK;a~jyrDDiQUF2a~>%gSouV-g{grm3bAO857Ux`1j_wzhHO!}PumZmAg zcETr5n|J9!mi@<4#ek8~vsdEsSH-x?fW}XMHRxA}6aH%6ogM5Y%#{{~C$RmKkr_81 zz$YU-CUGa&i~*%cWNo^mZnB%dUidBUNYi`p!ibU&trIVqiM&)Yd)5=P=)l{Om_U)d z?eDup&&Rg&%#5?wkwj#@)6Q6WD*aq+ z6ZFv@x^d7>h(WLhHK)_}NG=E>N5@p-ZCNYKFqoSQA7NE7X4x>OodJ*B2dSU2b3uEB z^O$q%Et+-SAwZu_JuikL?RuS zkmLR%-r*BUn%SX)AIpl!`H&#nF4D?FoZQf1_n9rJ+j58VG#d&vPhr28Az{ijic+9n zkxRwHnM;5McRGU~Z>i`T@#j_}r{BS3ffl4xAHLt($g5yUCUG*I8emwL5B1IX>5#>6 zQm(V*lSmVKV~mh}dHXD8(&Nbk96}K3aUlybct&VK#-dguol=uO3;!!S#2ck$9fMR>=pmLQQyzw&V;J#2mSyz4 zWd^jo%YiprszyO=p6qyeXj!i{$XES{rj8i5(uJw>M(c>Dm>_i%QliQkxQ4`j?_S)Q z&OX%23$7lziOsl|0cmSxi2RS7~`dBCd!vuUm@Ej1n*A<5Y>f)951x(fvIyY%C`IPsqBib*#Hi21i&rY@JRi&VJZ!E) zKf%W^pkYsHg3|CbMe*Q|0?s8-3~id?8EU#eE=?0S7scH$3{oySwA11YTed~C1ip%z-UxU5q<`=C> z4{5PhVfl_z6(*(qb*BGL?roI9o~rWIN4>o72csDX4wBPtGEK=3q?h(TK1O$bvZ;x?ArbOx zlno1C%9fp&-BUnrQ1dD0xe?=K|W!wrNNTkDI+~V@-g&CrNUynl8zy z9xIt9D}L2LOY}VPNCaDp%qFrm((#8O6IOaV9^s+RL>vDeSD@%Nj0ZpF=i;}{jbJy0 z!SK9+&S49WSkE&zEyOI&ns8$@-l>bDxD95{7V%E3-B;HRVOs8vCHU$XY}JwVen{aw zJsx|p7gov>2ZaX+5E5Vrxg=w>SM1acJ$xHMNI0fI;XguueK|h%6=vUo-^eAQkKQ@D zM?zITuiEGiuI>mNN*#L3;J$ZF%AHiid6O9!5MsRA%1xO9k%5~K@65cUQRu2%TY&26 z3M(l;cKRv(+WY$@bS*!sjCe?nDDq=a_5^kEq-4IAP__OI&DMudT#4$43*@-=Gbv%s z2!V&3D3Y_5?SApq_~^(4b#mS-ZXf}WQX;UXa0`cs;1nehW2dKH0!O)i|9cn>lpfUO zj|{EZwWev}9RN)>PnKQ{9b^7dvKOM0vS1aR}Q{+WkLZ7*gu}W&}2XtZcRoF`x1~xI*Ngbu(^TB9CPb#aZsN~=-hbu z)XQUB>hJ;`6RqNs5C!W0kp4v!HN}~oT3WDVD)7>86DBh=8So{oAnc{_ z?4R)wCAx)evMI(O+Ga*VW3}pJ%Yll7r-mvm<^lDpE|#5^s9LoFhGWF5QYy~eGr%bH z@UDfFopuege_^mzZX64^<2(L2Z-d{(l_Y`FZwdF`xp@cJ8Yr_;Gbq9BC|w6cO$dc)LaGD%mP>}L{>SXl#IgS2zsDuB+c)T0#Ek~Hy^zg4eV#zFst zL6OTa^8jQoo8utWC5Mc#<_{ur0;qL~6H~d&$KKMUA^yGVrVm|ND&<@yj4EG!`lg?@ zA+y+@Rr}jZp6@Pufxi)Gq}pyYQJ%CwHkk@-jC}izp`m1oU7$KASzKjz#;EUodYDMU zn~A;Zc@_Ry#|9NYHH63yrm%%)5mo+VYR+Q-`*@UsE@t!V z>C3>EkXH`b>wWq+GH_btgq7BT=U+J2<{Mu_gW#!=huIFHn^%?=OIvT*@~61JkzIk? zB?}vt3itxtl^AfY|MiN~m2J6qw%0f{B%O7UC)mC6xg|%b7B947-Arf_*&dr?^A~@nRUBV(Nz||&@Wc^>&qm~ zF}em9`BXOi_5nocPid!_Hu!Vw#a2a^6-nYd`NO>>v^DbW_5$68+GlhB7JV%gYWZR`lIs=)I2k zt*>{N9(JoH%M*=To zqaTGjrt+WyM$W2(&6_>rzz_95HHnMfCfG6WrM;J7d>v$bS$tfUOzIs)a^MNS%(~Pi z6+G3_M>uAkv?d3P6mN02!FN_@wV8zTU6E2#3#^$4(;!}r7_;u0>grz5k4M(T{F3_t z7&Z0Gk*;d?taa_DUmt;-fP!33*1Qt5?)sACX%EEB*mXVL3}-VO#l5?5gl+ zM&)4f)~)d7D7?LYDTtcSbp$=`P@s+Q+J}qXmKI-V-ZyK>{}NR)RQ~fT z2!OqCNEC2D+D2pYu?m^dKm`&=)BiV>Nj#ZYm|()h#P&n`0WHAJWTsUXFL4q_Ty}`y z=~hYRe z-5p9Kebujmb#c1s733%^@K%mmg@IflDpxS`+}9puC;#_c z_-pROlJFNxfVs&4b0^vY=C;IU)&rU=uhKQ?LD@zb88h_`9uW>}An0+L-^;bymb&`- zZu=k}+5lV$$OJGsSLeH3WT;g?=odFVq=4}c$F|y}3-ym|;o|c;n?#29g2uN?>^V3d z?0vda=eS)0Oj(R;dviker&n)1cng zVFZesxCtmp`Mb(HpHgyY1y(fZn9Sbhh~R-K!;{J8+64rBW^=4u!FSbNgZx*eSd>H=~aivm6m zkD}N9^Br5+X)JGj85aBrg)IXJ6 zH1%keJy)iW25f5jzcnEajOdd>eGodv1Omp|+1F5XyIduvBox?QB`Ol+tBFh)X=N^? zDDpqBH-LOWlwd9!1hvm8nmXjgia(!FZ%O3qsz*uzjzE(ZTJsISt2dlh135;Y*umzU z>|ysR$aOxMpS{z(G8#GUl=g|bx??N@!X*qN4a3Nl?Yq9dHV?8ohIEUo0TGUo9D8B}Z!67zkI4>o+D{ zb|1{+6lWAVM-4VUYCh+cAfweDAC5OU^2`D39DtD{vGdrmpYAY(VsQ!)#s=Q#b?rqLPpZf#h9RHNH zjgzJO)2`L(@VXC;I{f2}@d#=OJGnL|vS7)i&7M(R4C_VL^=eKm?~qJhW*idI>>zGp z^2Fr0oG$lX>Ck!RI^f@p$KKjn(+r{+vK)#0y6HRaY# z>)G0J<4nnwd7Z~9VdrI=SBxv)#lsv!u04SL;>__mxordoc~~tIkkGud>#W@|LtZU7 z>8O#w7KQD&$Kam(IY(5PlV^P>%&fol{2U5IBBd}6>ecGlUK@%BIN$i*5U&qC+77hS z<78N~LX7Fa^gCbF?7>C^V~kxN;&CL&MfG|7JAiXV0R|hgJfC~|oivo~H^Uyg%&>&c zRK)CT1Q1ZLWdN(HKJGLPSRb?v%=NTbusSk7>Uqpa4Atc}Z}@&*K_-N4-FcTD&hVwVYA<}3h*hqVjkuF0Y_5+*TyT#ujFavAXgtto?86L2M zR*wR)$0-~3gjm;-?YMNH(5g1wie4;3WI|oFqcy2-4LAfz77Is@i38+9tk5LxjZ=P> zJEBu2T?ffW8W{C()3cf#rPVQ22*WewNge(Ia3if?<7&|=b>ee?|AeyLK09-P2DR6s z;=Ci`>G{B=vLww3p3>)qv;vIkB-!4WEM>_b*Dp9_!eU7jLIlIZWN({nB6@rpi5jgr z7#jh02`sV(Q|(?HQut%3qO9nNGk}g%4i(J5_X8U$QCxf(a@~C-K2%xmJ2DekwzM>G z=>t=2z2h{brvTZ@k!_fVijM*;tpcMY%dW4YWP>?Z@5%Pon1rLQhs(s{EN%Z!JC(_A zbpS^f=A@dmzt+Z}8bt43%T`1ND^9u8RZ$kEB>t=`#)37B$-~m(U2SHP6 z>EX;+_6S$=ht3{$&|hrrPai(2XA2>=B>>@`GLcesdyjP;&qv##ZUS#d0?>pqJaqFV zMFBT9`fX3YN=+>BdauWI7bol)L~yuv(ENtL{irj9)Asa_2!i&R)IMY|-<~|63KuOy zcKzSciZajM1M|e@XBHR&f!rKYq`qiF=GQ&h-r~{lfBS-hN%#(`n0E0`z0E~VGUl3? z-$h0?%u*Wy=_A3m?Pxx7T%amB4$^l~jL_rDAU%@}NsVGmnRfKEkaEcommQkb_Kq+e z(;EOb-)z@?LH$eo{a>x>(>LZR+h)0|yk8XRL3eEzDERf7V@Vm9{fZ*4$0>Mt%wDqI{bEW9wmQ?o{A0pP z`yXQvavY}M;Go%?EBH%You@p^mD__)vEp+3o_&&YHvk(>kJ+z^;3H=I_ENdQloSr8 zmkB)ZDyCykAbe`p9DkXVyaQ0SfVyvCV?mFRs(0(Q+&gv;mQ|%9s40e&jUGWHgbVgv2ubm*Fa zba!Q6z?EFbN^^0>%k-3#IpiQw^2FX5*K* z`OQE?!Dx9Ed&&&F7(z+81+~CPTXJnK&?f%IXnVV?X}}7oFo`;5#4WO$j!qVtmXS^9 zBmCO_9|4Zv>>1%o?d6I?_}GFwv($WPkID0y-fxZ1@iCn=2u2p6y#1T5XMxeyU};%k{Vc@-uG zwH(>~kNtTWJ@tVa%JZUfEvv*ci{*0MS~3V1Y}zS(mJv_Vvb-X_HD)FC{>|b_a%fTG zUASli?}RY+bNTKgHP~HKQbqrNj+M7g{2&j+qL9i*jLL2@4b-yq&$y9~@y{!?o>)7+ zEafL8^kn$_)-8*?{pQ`p)i`pfKJ$6Sy(43uy>K}0*xSV+Jnc^*3$BW4@;nEQ9Pb0E z1GP)F#dl+~W_em>!)uv zA5>|;Cdeeg#k04V(o8AQA2kcr=;>K-^`UX|V+u}Wk}(gTabd%`!+7N91O$ML$s_VG zO(`J|?nQJ^YTiyx2(z0{MAnlLR;a!gP~uF*G#zFjQbF~4UKl%qY?e#e+Ol{c+DD8h z)}$!eE&+>A@9Un@{A>$Tvd=_9UrCA@qDY+=6Qst7mB%C8<|n>S<1cT%%aP_#%%#bk z;d;GO8y}BP?;B+YUKi{KiqN%gL&}@VFu(4zB^=#n9QD!kIc@gInIgb^-2QwZeE_hD zIe{(n3#j#O{dz)IoimN^$!zO^QqDej<_-#b?c8K3JP#A=%iVyM(PE7U^V%#g3Enql zyp>8Z1B7tLGg*Idz2!DLcI0Qaa9`1TBM4=%Sudq7(T`Z)Za0t*`JT?41T zOgikqo4eU|7-mlB5#hk&1}c0%yFYtnjTRWj1i>+mt{iC&r&(`3h}UI03U;^x+T<;tg91_6p5`gp(_+H z8yz{lRFUenvNw~8S4%ocY3#DQIox`;PyaEY{D`Sk5)U#sW{Jo%N|I$FEl$qICq1!G zkET6Nlgk3a%!n`P?xfl&q9ODKs0vET@|tk5;(6G`mhrlRipQ#|iWQRi7@ekiK{@PH zK-UrM_$a)>o+V<2rlVE;2}TZ|N)hvsT2V%3x>jvNG-?E2QkZuIu8#X8p|YA@pJyaB zY+lZIuc30!$7H}<|Git4MN7Cdppg=?BVRrsHT(tBWHfidYF@R7B?7FZLXR4MyM&7a zZn{W6-H|UE_fm=+h(xXA@J)s(N?F9vIgL*J)Yf^;v+=9g3HoSh4G;Xvl5a~1R1MAPz7JPZ9@Bop%`)gr%6tNI zH}yz(25k0cG-geOG>xZ%RwtD(?>9=bcY9WjkKw$K7M_*!W+D@>Xcp6lpIFvySe0_W z4=ZtI;L+ERepX6454*Kevy`;~F@9^7$+~io9pCekQy}eTS(NA*m~C73)!x}*>2Tks zZvo~qI~a3a>@f_Vm59mL&rPyEI4ZSn^SZZLrsretuBh04HnzWi%xx`_e1sZ0KlO3G zFC#`A=04AZ{P@_FEnxY$H$sw=HBm)Rf97fDuXL*K2;tLSqk*rJA6y)?gt}5xAaJI> zewUw>#is`0$b^5K=B9Ub=G#tY_=?mnjq*rC^TZAz{%Aq!r^9K3N_s?U@W`~I=uqpT3rMTqm#yi#=tXA~xQU!(s4&GET zw1{9z$5z|9HUG-7F8d^nz8YcJPg#V}Sl$Q00@SK&k7WZa6v7s|uPe*wui0#+YGSTX zImJ}U!{hvWuwVKs=}Y45=6_5j#w^&^#=h zI-wm2&06(5uYHZ|Z2jP;kE=PWw3NI0qjPzxesa8pipsJ(OzO;aBVN)uhKnpJ@FtdP zelw#%8FKSwg{2-c4(oqGqn*ArT^jPD9%L1jUx?pae7Zz+L&%@86FHny|57?3+VyQl zxBei^%lGHtQl$YTT>~^-$QPhSE-B{7vGfC8EYP!t=u6|zgMgY%cK98 z2#p|WH1(%l0@Iv?X0pG4TwTB}8`;i%w@>`t{Xt!O8tS}fes5f!aWgA@#9aalQz>ooZM@J_1)D)Oe&<#6XGkt_2Llv{Wk5}e(L_lRBVjLg+4M#wDB zTF7kNmp=+`+~tR&>>!02hCXj~)~>R9vPB{p90SY+nNNP04t&kaY8I?`AYSMIG5gum zJvP02(Ilvt{0d~?z2JWO$N1oQyKO1pPWJmMx1scVLs&ns>}l#N*jbDBaPPbD7zKj_ z*9oTla2FIKrg&CpR+}<_%apAD^w?eb9+TPE1biw_EfJ4Kbwn=x?s7TyVAL2A__i#G zY>iMX@hae+zy^!XjcvruWQ{2Cc+?ins9%Z$Cr83@>2ti^C`EB|eFx%zN78b)Wlzyx zrCcsfa80{=6M}nD%&O%PnSen!z^7f5N;Yy~i>iL`Vs3|n0QzFdv7la!_9}7PkXm#? z@-Qw>2@?3btkc8NWA)0Vo3!Z}BoHk=y6)JEk=y^Xc8d5ie`DH&GfU>puzSeH4(@X%rxdO+=k+(AQ~rCpPH6qj4){v` z_XMy=UbmX>|F`|lb&BwR|NPtD{C~ZIx&iV{DEQd@I z;ebCu#Yy4C{$-o1-^8WU!8e1R&^G_o;D;XUWS-{D;HdK*H3@%Tvf z!nP{=23b_+hOZfSY=p{`t}TVwo_Oz7!Dr_^(PR$#KmV$Mf?``qekZc#vDN&U3ymYk zs-C0IS<>&{m!Dm)SQ;%7_gY4b&I?Vx^g_i4H zHEG&=(Ir2%X4t_1x|2Gp68Cnp?wyGnnCiI-=hYNm_+NjIo*)l`@)jroWSJF9VAa5} z1M1GLqZ%?iIZ>Awc3d$CdN^3 za`J*kE~+;Dw3R@wP^z|ZYd>`@x$)oW^jqQ3WehRGEH>_=R(BnD#NX_8FS-M|} z-v66k26OzyLeSSBMx<{+kek2 z?rjyEaxO9T0Q@AEj(X^{sVPcWpYkpG4iW9({D_Ju9sqEcGRy&1(S$*z=Zu8_r|9dP z@H!@jg==p~aAuI?wi{(FFVFnZkitVxF)`s+=kN8KLNA|wzhZ(r$0fblQv#@AuyI2* zVj7eYt^~^7%--e|$unMnjSdH7a(RDa(k_!mG2N;2>Y-jH`9l*0-z&n~VzFC{{m z0EXJ~Sl6QV20P#`b{7s{w%^*q6D8Lafg&|p+Dlz3HPQKLPtg~;N8Vg%(%yNQl6@Gr#UEapLc^^ILn3c%h3ANV!rBYQP3h`ku=cMCZp|wyyB*4`G#B2w75x zO%`gN6n^MY5lPHX8*7s|Hd<9vV1ytay@3P}hcUwl;0z?<_ngq3H4 zsp$EQD<)N8BeD4;C`xL|A=1=n#e8SY+`JOBb^kO2&sfMO_HrynQzM5tpYKXXEJ24@ zT~zYioWI0P;Mlz~HBOIHUD`*7MK#)zP!&u?w>vBq|M!>HuL*6dR4=H<*dSEV(7Qle d_Ai(6@4eSvayOGg0p{cznyPv#6-v*8{tq^5{W_xav?*Z1E0t(&!yoHMg$@8AB-9y>E9Mq5)E4~H5D002By6-8YD08!pw|H8t! z|F!pUz`p;(_E0hM0s#D>zh6)~7d{ODV89*q4ZRID;1bsEuDq5u?pC(Eey$$((f}a! z$j`&l+S%5d!OGU&(M_7^qN|UI!O=#V>8Y>=Ov6LL*1=IFz|&SQKvUm3z}Z^dhUt+E zgOs1dy#iNTZ%YP0R~I)g2|sD3fAmV+U;j5y!_p~E&X`hyqNz>gQBgM zwWp(px1+lo!(WY-R_;FD(oFYA|K)y3wmf~T#ex4WmlySvMORh0IB zL1s`;_**ez4D3%G-E7=_y*U0`8Cyk5Z(C`mzxg~cQ62$d{rg(u7ncwa;eiQBz+nFp z)o{0QwDbRus5lQy;2%*T2_bO_VSXN%@c$CMj~W|GZ_EErVH;}+J9kf4%X^<4T`lcx z`8?e0nHc`Vq=bUIi@WE&;d^v~|2@ zFdjisVNqd08$n?!F@e94|4%SUs5pAvSF``W+mfE`vwvT?I5PYbKN6PKf7^vLll9+# zu(e_Oce3OEhL8Uv%l|I#>tK7Y^#3JF{$<_E-Ok(B($iMX{+_%4lR)JAAMv}pJ-7Az zZytD9dRpH1NVc9{(oA-q?yd~~3K}a{4+d}df8YF#p#M>$m*w;ScRv2l;^SYA{)dnM zsVV&bx ze})KKw|mu|_X9xuG|4jnFgQ_Fl+*WHKMT@GI$ifMV@cU%Q@=19W~F_X+L(+ftqr!q zvtf&z!g_7(Kujq_hz27BiJ(*kF1Z18zhfeM`c(x@si~otquI}r3sHYi5Bjh6cR!l- z1UyK6GF4;sw6MRw=dGKskFbCH^l!t!`UM!Yvi)N$SA%n%AJN}`EZDPQvZrWS|0MqR z8!+7T-#O>4GJi(;C_nl{10+vPyTW6CWy`n%JV&-o^vX z!J{|=g)dX?cw3S|{GYTMf4yDkdl1TM-tt#@8@3_9{-(L|+k@X{jqxFWE_Vjop{Bn- z^!-REei2Zg#gy%L#)KLod+NbLlC?U)w#{AaM->PT6+Nj-+4YFkVmvgM{GoM#K*I30PdrZ_^wuOq;e6jjhz4y zD|<^C$_k$B%1|D&kr|7V`F(q(Jh+wjd&pJz?U$x+q2=9_i>8~pco2p(_*{;vvSCo9 zGGn)~#$N_5m~?j*o*sl77hit0N{kz|eeGYu0}R$X1j=rG5o%X52dElF(j*ZiOW&DL zQlI7rTp4xZQa@l6e~X&W?>G8|Gxo}tY3>Y9XzTaKm4kqIGYd_U`U;y`4_UUjPd!+$ zBz=>eXr-8EZ7_Ff7f5*DEH+NL{^rmXU+|T4Db9ydDfr0uwj3zZ&Qz=K0VRszsGJ5F zxlq|&$c&#bEixsz9o>*^P#ti1Wscv%}R6#E#A>#fiF+_&&DMRnjSP2cA> znI@jvckw4jK9FpEoRfBfsu>TSc)b-Vfe2>Q`?xn3d)HJvck3js(=)+eYo8fOE)85; zm6uD2z3klNIOaS&?E7;~@aPfgw?EYHN=Sj<2jd5VD2A{(In@H089KU;0)WVcbWp6U z2lKj&yW%F2opW761GkM5l6et);cTSl#>Ut7O48oE$~U%?9mNaU>IZbjM}! z!Z#5iz}Z^KU> zgNrp+2jxJzVmaAilKo(JHa8}-&K#x`D>agx&o&`U8WVfls2*Xx4sFG+^pzdVu+vu6 zbS)iinhq=QN@iigwg7n2xA!v?LD*lEE)f>DgavIa=oOJ9L117aq&yt4O*gq##$@~Q zDn^{aiSe={89s{u>(3icaHbVwN%f)h7Va}X@Q`L68PEG>4-zJ_jiNOhsr`s8fYM7| zYOYWC&jm%N!sZE(5%PQZLHG7B!tJPD=TGC(92d*Fq7DVB5XWK!ANrmGLTiEpD~A?* zZ2L(EXrRU70>jJ$d!$ShUy7Jro29nsZ7z995&NV^M_OD$0w{;rR)eZDgT(_o5Amw^ z13j{lT|NfZpxNzUhm#x-hR#$R>Cw%j!iC25>IErJMUv3n^f?@Ibs^8tCSP-!;ikSH z_2NI5NwF>L9aHOLh0Jn*J{J9Ooqad9nm^Ya%hSg z>C2u)j*!`%2`qYw*=sL*aAud>`_0q*6{soURD5H|0gWKagEBZrwt{%BYL=m-K1AZz z-p5HICW^b$W&W6(AGV}=Vnon$bfy_9L;({eT`F4E;oYl&{A%#rB(qQ6#}Q+(DJkvo zvP(>ucC5HAMvrJSeW&JSe z;uAFvt6@gVcQ`jM#te7-92+=>N;&AGiD*TiAiF-kb|pgyuyv}^A^Rb2xv8L$F99ae zuTY_KiuxK13vnv?SO^SdAI&Z$rLyM6hF332Vpa7jlLN5vNinkE*I2TVH`+U`Z+aGw zbYf9Nh80m8>LF4BdEnW)uxnC@aKcOytY^1jFcYI5DNY2#Q*_qyz{+7M?s(|otQAqz zmuU$X0k(wKccS!Y<5ADb^)tuwjA_+nKP4{5pSKNU=gn+2!5`C#n6jVlO~;UesU}+h zgf1pRyLCy`3_a@>iaZj9YlzOh`2EqFBlDc#yci6p1~T(xM<5hS1)tl6)D{EPg>%@q zNwozQjN@FHN>iiYJy$26g^S1SFk-`??{vYL$*{$y`J8LiFwQ$7A>IwXj$~G@b50F9 zSys4J#w3m47>CkhY5V;}v6O@_j$%&&aT&gzufExwWzAlRy0HQsbug$aXlLnWlRv1b94-&`UX&cY0h zuE43R4^l+=`-*=fPTuxWWXOViOb}T3$?-(~H33(th5@f46%b|5F;9}bguhiz0H{@A zKnm1P$Aa zE=J@Jom*@%Z&M2pMlOhFf)E8AFtS8pf#4w+D2KStSo9CIiUR410ss`9a#OGxh!4dD zFz%o}v^=CyD5ZlON{7{`yG_K`22Do&ufpj%n(E{#X)d1wJ<0~biexDVb(dWuO;dSH z?mdiQ*s8*)mP6`Fzko00(9LjKPy@*K$EjA=sKIyPOt6WVX*<0=S20$2hgJ*{jL$ah^0b00p{)+1W8y>bK24wz-wzdro``&M)X!PpOI{)vcr< z7xF&gLgH#(j8MID;V|>#JIXpsUtePel599@0)41|K2VmHT6KDtgU#VX?HZEBn|x+* z%C%8RRVG~!Y0=A2g;Muu-PW`#FTY)!uVn^6XrUiXfA z1LlQxKi80oi|xK}-}732y67#3wTaH!Zt|s*cPpj=N`L$qeqO_2D*%A>a?^46Ioxpx zB!Nf@N%i$WxtEihfy-DWIwa?AHEtd!iUsN3#SQ3U7dVKl?=RnHiSv^w5hS?Kqi5vw zz9B<7mg%*j!K5{;cVE`B{ZP}=R~yA>vV<$&7{fp4|EyO)taJ;GG<~QIJBQ#jBCZ1f z$Tq)`CK3&TySmA_1KX&BUrdpFU)?a06>P^FtE%xD5=QQu#d@6R;>HOTjpj%&%}Sj* za1afweqPMhEwE!`IxZXQy85=+O@utp;hBhEZ!xc_1oSNUpGaESS3mFW;+l`+U{l4U zr`zT&@1R)?8@r3S9)fCXA#FZ>y7q~IjulibO$jTREDiX@fHnNl$D@5~ulicMvF(4o zCEu5~uts?Eq71K^@4XrqU=Z#!h<@k&!)>@LC$1m~A=q^Uy8Sr#Jx~N6C9AuDDqlSM z$@eIifDN7Uxv*@j^|n<=q5&6aN7WFf*K6q51evvrG%N>*;R8=*yDrDOsc5Fvz9>a` zy)Nf5R+OY|^N5Ny8k}9kBMZdM@!aRt9m6iFjPAz?(;n;_8HDm`wQS>z6BwMWHcJI) zux8WmkHpx(cQYkZxTS`DBur)BUK zdtNkPlIK$YsVN5`zGgz zKL&lkpe9?Va&@%mi`=?uV9JtL@dBb*kd9^1E2XH6pnHoV3-p}YT9S&lm3^T zn&?6JcLDF-fnY1#R?k7%niyGjv11I2WnO|w_yXkP8Qwfjqt2=(<1XsCdP4`G_?`k4 zwD3Y_ApD{+f7+tTD0DW@*!eUF<8YaEVjxoImYBE#$79vaEVJgN8@q?IgZY{Z9*T`6gF^v_{Ua*>J@ zTDiu$p1q%x+wcY)kbp=Ab|#EC#=tCWB)uIAjxL)?4-O34Ch9m_y1kgl6FO_r2`VZ3 z^VZyWzy)$a+o0+S5~FWol!zuBc_6$-Mo@h88yfGnC=xeiHs-th60-L@EfL&A-LMs&a}J2fc?%qZ%^rT?=pXF4Gu1mNJTN|T#jZp>OIdUq&HwaHBG?*V!mSq-?jRq^88jCni|e+J{F$!j;yV5?j_VhvZx;IErQ!A(Q?{{+2RFIvwiTP6 zyfIVEE`78f{kL@c$1Wh`4(;zY&gaSR?y~8NlNkZUFzAz?%Uc8!Jihl?qM_d0Cq z6$vj}9X&b~UEDv4OR_d!k*c%JIhGl{;ly_Be<%X$5|ZYGbad5huQYc8$`!_QIYEo9 z9E^{+dy}FS1!EFjw*W-4W>jmiQERWq{OZKoiY;P&J-DH5{0Se&7sNC?O`y6-RGtu$ zdI08y3dkX|b?IOBhD*uDd@U&O;ZFKBqjrr3W43)SJEB|3CnFVtEG&TqH>x-4vFKn$ zt(Skg=$4vB50McO;wsChqaN0FoOmnJmf-NXbXgGOtf-tZ)ryE@Y?vZTbgx598c zk=AEcfGE^&uhT~8d+Z8o_RR{^5GUuSJsvgv>XIg*Q022JGFfgXs`MYH9;Ed-E8rhp zZKX}QHfIVLl&ytlJ4+=EACM^n39~+6$|oFx9zW`nD(!*6fLf>k25;R|EEBIf=XC5h zFzou*wK(HrbBPZ*Kgsl(8Gg2DZp<&xy{7FY@BcD=r1nW*?wsQ=3JXCk`~=h+6TECn zxe62o0y-b7z+gDxH_tQl8~i{bgEsCj5m=9Nap_T)!UsK5K=`3Jc#DQ{lRPPDn7B0B(!f9kFisTXzhH-Y~C9S*Gl)2Z&Xf~ z&=wgos?S8(mH0e}QW1yEY4YJ2oZ{H#wMLL7u7Q?Sa;9Gq(cvb~VXoh*X5C4ufL8Aa1c~!-u$5Vp?$xbcdTjpwB;oI1$fVzr+iHVaP$2VWh`eMgeg%B=1tm^s+)_abwMi*T_1xVsJ~?qcv$GInWV)D#SXG zk+a(T3JsH%JP`QaclxIk6KpWlcBry+xkt2dd0qpxPqo|&EQHXP?JyXHC>a9U4Zv{1 zp67GB=ATeoytswl?2p^v!1U1W`y^*O}vYyatka`fvpT{S}4|5T)reBKz$s2oO-{jj;>g(X7q;7qYnWF9Z?`(FOW#~fbA z2^Ulqpoe=xz9LMZIDGAHx@(UYvtaM_DXgcyjgM<}rSa8<--?}ac3Lz0z2wcKKOYIg z0En8%Lh}rWG7+I06;f(erDON?$g(X;!~&ERHt?B;;K}i%T?Fu0uk14#>+sL)Huy(1 zK@>cGH!prfO=m=pDW_Zv$QsC%%82kro++qNw~57aFnld1EH3e@{nndWrdn?vb)I@m z{JGbP&LZyP^8Ji^wZR813-<)ZemZUElxFY2yNyB<=@NG!$(_%V{5++86b>`idwAy>W=6Z@zGH1HJ znC%^$r7oQMv%;Amp;S{M2oM&cM8(9wH=mNO3zTSBGi67Sr^Fc$r*bZ&nv7jDT!CRd zX}g@L?N=NSAWfGJf{4~falKrBtbg#b{&Z3?HbM$7{->GAy98`ysu??rm25%I0-$=p-(( zIGT--Q|{sVnRXP%r`8n@orMge{bX~@;SG7emn{yA6u8gXyN!q|(aj|qtGymLLH$(l zt{&qNNqrw*DU->2WunOvsHLeS+n|TCP80uSnoMi^#o%L8#^?-}@T)lsta@b&P@Pc%ft1Jupe4Lo zyb@?(q6~!}&(;WnGV|!Yf$;oJLUX75sN%|tJ*>$7Ax+1mtpNgoW8ANwe7^YD2)~ns zm&}c4@0&>MITN^%uSV0OJS@|XJ_DpbW3Dg@DN>*zu8#?#MVAszoC@dY;oX^FC)nCKeg(6!Mc66JrR*Y_)LGb;5Uv-6KIQ%_ zg{$J(v;*D<3GK!GeBovm+x1ENyP;h}(fte(P9iWx)SUQ|Q8Ut^tz1k^y-=?LTWWtT zx0(`K6#6;qmr)F@B9@rcyAS<83QECHi?4*$u=Ig8HJIPz;Ruyr)7_5QTh0oVl@t$c z#FjG0c{7hRKZqu6FKXpI+0^$%cyFGk_LmX|)Xa|1< zlH#Dy;?J+N-jO?`iwR`eA5CT!PPM4I0tgABJq*~S6cLEhg*w9uH8PQZWFQhI=)uo; zsBgn44_2&uWNJz{ylvmku)BH|pcAJ?^zzh?3K5H5L@7e*-6b3AZG-IZRScLw4(Q^} zat=&B!9u8ks3v!I))6zplF>oRNNn#koE)7UjwRE5t1HDhBNq78`iSg_A^M;XVKQ^p z`|KV$ec|W!tjQC@<<0n%OM&@e*I@~-#4Nj<4w}T;>_byjIHRtTJ79t&->d~J8iNOo zV-0Wf*&;4>9!~^DU}rENIDQ!q7Fkgo*gf@i&8wP7X&zIo;|5QrtN3Ewv=znBQnpcH zPzERSqvz?l%8|Xlgn?Qq5vK=X#0?Vk+`FiVC*(9MQD=pkAwS?zS(Uak*_?JtsJu?< zQ-@?M%h#S+vlCmN0lQP)av7Zl3yh#1JP-!8Qx9*L8(0M$$5NmI5xKnUuBz5%eF+huY$3Z0WXr=Zz{d~^2>|+q! zogm$ZTbnDnlGdE4XDKp;y*J_Z>phOLscECw9(*2CYgfTZSL|T8EOP}zTudr}QT8wn zgAxH1gK52t((E7pt^a`51+C&+;bH511A(#tJnJ3%TLVcVGFvcB=7Y|Ccs-?EWPku9 zV_*pv(9^xkG21!$_X-HKO|Yn|M0m+^kd&fncG(gh!54!yt^9y_56Eo*D7 zW-OBKWCp$cPGnZ~f)k%nozc~ibW+fh+&`(5Y2n5*sP5IRX^WQ`Cpbak3Q{#5*Ns=< z(kQEWX4klm+(57}ZBACft|`wcp#AH9zROqU+## z+AJsTS+&%3_?N)3(y~hh)@xq;6pLK0%ZeO3Oq~WL(E$ubx6LN}R(eRC+O={6uRZ`q z_d&rUJ`v2i-n#-pi+JJs%PRprr8e{(g~hJ}@w0w&+S2SRJ?WHD5dcO7f`-5Tb&3Uh z3Qtq(+$P-WxBGqe;Meu#?$xfT`XOEFQ#OWyI+HlKcCMpskxrXQd-6#P(H;|XO6t!_ zPz(=*BHHqGEoeWIyF|4-*UPaoTuz>uB7sw$drt<{`Rz9?m?7z=)%jVOvAVnuY^D`I zmGT;CJ@&j#nWgZ&?~H~P3;kKGL?!xGbRz#Ilz|(r0T@A5amX$bNJst8~NmhxOdkXjv24 zElw0F-o+o!83@u3uzebXUX6jY#ryak2$)96XJRp+fI&L7#V1$P!t+W{P&`?rQKo~t zxi%V^eP~lfwHEXG8||NOwY_65%V~}x?ly(?jK^imYmV%PIL%wWAO_#OZeVW4aK55vs0*G?FTK+hgRg0r z%aL3}NP7^E-rQ!B*9HBGpd+vPE{sb~S+FfWG=C=xTImW7hj61W)wyAFn;vRb;f|38 z<(uf)0}aYXu4o*@04oKiMjGy3P?k6(jt9>xV=>3R8h&=lm~g+*7Os(|p2AN8y3q7v zH4tkfOC3I?O~7|p*q@$MIhwueA<^DAEO=$ls)+_)ZNA=<3Xm04uwS7lKuw4Q3x9rj z_0TMbnVNQ5?JcZzRp%vUW~fP}LY;}p1pAO<=XE|w$8wq=OT{-_W$G3z?-e+OO5Cn< zN{OgOebf$oq#Jw$15ZqNe*(nvK<-RZz0so3V$>huirGm9?nc;^^ntnAD1x{nAq-k18cj-ZNLJ& zArA_p=J`S&19%MzRb#=KOjH^dUz{Ja=Xx$*472}wWza8Eg5@V=ZG8k;P1bB&_Sw(4 zd36p8^fHJq4dZ>wXQ>nD_?m)FfYI=+P=29f)|e5IdCDOh$xon|U(kAjsd|itnzVfkK21 zTm{EJKng|V`5i6RLOA+bZ%`xt7q zEe>Dzth_K*)hS<&wJSV4@(ML6U(& z=sDV}^rJXp$uDNkROf^$P;0Za>N_L{ninvANML;!1F7%DQ9Kw zP>CK6tkdY*OZ{xL{LU!{;vAEWOjFT#WkY^FlXuQQsWtky=|Nv-^bNS-${9{zyDt-E z*)VlKG7&f{5JLP3lgL;y%|MlZz=E|`ewUf-{T!HY%|#2c8%=|zpbu;qWoUc*2-_Y} zj9>u_)iB8?Peq3ctB-n~5i^|*>tbsxS=_I|9rGrP?8m?JWWoV9-8vE3GulU0^@A}h z07YwBw%G|@OXOJ4t@a8UtUV(~{+ZCe#zf0p5RD2AX4H$ZLXv$KINETKY!uPORKS7~ zJmp;Z%&ugCTZ?^LTNAYdf?rH>tgTcCiC7R9pVK1y50C|%xM6&tcr|Vqin9HZd$OaA zi(H=b;m2c0~A3VgIN(A$4aJWkP=!NBo$U7#7*q7lE3ziKF9H>^V>TJx}(yzN$ zl554QxP=qJ*HRdQ8oze`G=7FEF|5HRqX@mq+*%5?zA&)_=3Q8_ zo)i9YS@O+=^bdcmhl^;F9Ekgp@rx;iAm?@kD1}`{)n9QZ4=W74vh|xWAC%9DE99ao zqBPd@T#r4B+Tfx1k1d1m2c+0Uwqt^E)xXR2ter(B!UMi>9sb&;_Y5Bp(|SW-7%sYD z)Xxi^EHA!#Sd0Q7X|Lg(YHxO$?hlcmZVnYh!AXOzRJP>3-+e^?91L*3x`NT2Eg9G; z3B~rVt}C8^y!w5uM_GxKy6i3gEL7J33lhSa(v!WUa8K2c98`Nhp^EY?S+!;Z*|Xf7 zjR72(RGlFP>%<+d+~e$hC~TyoS)sY|T3F?|Dq7avn>qyy`(*hsGzS6Qu5i|Of-{9l zamu|wdd;HCQ=@VjPGPD_oJZ<(Z^ z)$k8*MBvjY=d1(-GezfN3t)v58a+=g@?}x*g?r|L_BpKhQBApjX8OK|7dcY@$<^4x zQ$c81Zd);w>gK(_h5L!9LT3#hWU;l*?Bz7=x$-uH0SY^|le#&BBnMNkww8Kw<1Ts! zKLU?GYDkc5Nk)a2928c6xVbnGgsrOM@yR~05*sw>eaQoYUMr(zLCAvmlSOK~*en{g zH3okt?LiX|_93FkP%C-ecSL0<5)k;Psk+tSqTqeQ-;g2fl5Br8v^x>5fgo}5) z*qN3vd*MoBdV0-YzjtPW1-?cEP<5bYma2&Qd|8haTbShA9;z(ymB~4KY4<27IA9?> z8T;Ep8=#3g@Xt9&N=y~qV=}2xvBU@!vD%L#`v9;0~DSpNYA>e%^ z+eW$O{`v*p6c-*Y-Ghrze9!`+N5~b z=KZk%y)sMv>*N+? z$r*Mh9Xgsf)~}zO3Y}PQxwGxAx`o8fcMsTg5%Rq3WHr$^TM@F)@Z&MDE0cFLI*7*s zwsVoR4(v}N;W59BBkALBpZ$M#}N><3VliogO zq-6t6CF{iHr`*xX-j#t}-cTN49laj2f^pDO^gs4&(wj+poNN9B7I;E5NPx=UJ5GG$j8>(=(?T?`w)xy zA_0IO`)S*Q<^)ckB)y~p?UO-bI}}E&_#f2Iwsac4NtW2Qr2c?8)UQ2Uf(-R)1g=#U#=u1;^?z6BL3U6UI5T$;W$m5)8_o~uGi`ndB2uG@tNAW<@7yIrl z|JB(BUb?NX6PCh*iIlPaZ@2rp#gUe=ew-0A1B^CpH0#KKuitxg;*6+~Hb}=|?Ya`v z6-bs*%PuyoXf95kZhcLndMXzO5WFSUy8%!FY5RF4pEiFFa)%@FSI0nVGD*{oI*7|qCph|dt6ULK|1~Z=-7wChlbRBV@aIk6q0 zzGm!uM>)}Wy)(pZHCE&qmK^J9H=)Y!u`V`RaO_i}q$S8)8*O)VG@7YfDK2P((Fp;U{oiQF;q-l2L*=)w= z5UDr(mpu7YVP1bjMFk%J>G9^F=o#KI@ z??eoTLYKYNaoP(F;Hzcf(1w^|s1CI%!?gpqpVYW}WUuY)F~_ISw!tNJ7GKiM~? zQ5vazC^aEIeU46<6kDju)j|H;nLTGGT}`^eLjs*1nO-J^nF!SGhodmGLAD_TR8heo z#B7Zjgpyft?|yfT>XC!Q94=8wZ-l1iR1S4 zwg55Z*L}<>J{UL2>{&sN6-&Pds&Jp`o)y;LFQNjbH_=e+;cs3&x8#uFOHZC@M`dF= z379*jqnkqgmoXjcT}^v0O}#f;Fp5vLRY<6tw#(!{6LElL8y?>D>C$2wZd!Ifvv}cm zz4kivpp}&1I%)$Fe;|b2q_{!dm>Xx=hH|n+?#JvbGN!w}ro{fC7Io}%EB!p=bbG+O z#XC!Hg`}El;HW=q(!4&J8UN0h{zhf*&y!|rUMH=UZ=*+}&ukxVPaB}}YUt?^?I(I- zq?fUIpPGRn^IzHDKH7x_#8+mfO31I79~`e!2zu$3jZ~}3{zyP?B=SG>cnD#GKxOx^ zXj$Kv=G3_f5)<0vl9s7Sxue%E3M1#vb2KWSCO+J|U+U9^lo9?xvq-9UD7ab73kHWWZIF`wq3;am{%1Rt zOw50k-z&Cm^Wczn{;)~c+x*yXsZ3)~s?Irk;{pSQoiFAbCcfE?R;gBcx;20@*ugrn z5rxTZInzfeJe7RbmJ8}imX~EA1A@2&t)P+FKV_;ZhxW>3Wjs&O>b@&j24b?YzV>)Ky{B4Th>Iqz7^)In8#*Kmmv zMG386kV$`_OK8Xi=B|7w$zbv?4Dbho@oB=!i8uu1_s#^k=l-foHq?S<=;}B%3Y7KI zIK~8Ce3dzRs?3AF`QrHMA+9GD4mZ0)Px@j%Gu>v*>I(wKD{Z!9IiI+Y1@Z@MisFa8 zjO+X!me})7$G3huDt%U{H|gUv;H*i@j7AV#W#l6wL{w_`vWW~)NxCjv4^2vh(_(*KTt2r6$PKAjamkadMvve4j zJL{XyNp%$}Q;{DHG(Od+%MItcjzbhXzk58WMVW{XY<`z)XD@H+>UcBa>ekw5FUMn5 z{LxuHuew}6&OUuTqSH!c%NLs#mNlk0!7bTC*ltWyccu8|4fT+}j&>lXe`HHscZA^B ziVh8Rz4Dz`W7HO}O8>OCKswEXbL(da*%izzD5(G3K(WVfBwo6(IXxvs{typ+%AMaY zv?K`&BQaMUAI+H{q{{U@CM{N{AbfNB$m$!HXW?X&I5%pwnMO|?L|{`bEvE#kcnIj3 ztG;MYQsU;`BQz$4e*s2TJE6QTqp50i_`4*N#R4Au`+P6U?UHj!7y+pF^EbymE;{dN zz$1<(CB=k%6(+?IP#PK0-)<`>1wQXIaTuQMP%mF?0fvtN+qV%)ogd|tQMCNHS1hicl9JcHd9XC^Z+`14dTbR1(>UH<8*w&0bbIe!$$%EnZ0f*rY=3zJe z^W6a8tHIdw751{o)<@_5Ji00G#4r&~a~NvqhJ-%cAov?VyN+y-+bOHxe=vOzooU;7 zVg2U~VN8QholmB28zIWiCo53&F+MIVf)u@@>81c+E#;3(#PMCq$MtjB(A7+vQr|yg zywiX36(Z)K5gFrrEwP{DiD@Ih@ZB)k5INdj{?vIoZBXra1zoqoZJ4FmMDmaK8k7>-CJ~=|CyDwwJD%9{SzK zX#xDnC)DD+TD8wHtX9_RC&)fy*wM^sP7j~ts`_)^&l@1(SOuFS+Z_8j2%osm;hQP0 z4v^sumeBL-_#6%8qs5LE-BXclx@~ds)A9QK&)nJB(qgElEnO1I*e+k5V=9z3>DQae zM;v;s_LvgmAHrj}@xH=#n^o<#%EKSWWR3x=G48P@8*m)zh- z*DZNP;^9-BZf7eZu_4fd6wVGKDL*=l;y@BV?OX`yg)IB7mD3)aFlt0SGJQ!>2l6hU z3=L+?jv<$%SL&knR^v#6nKEmwgXzP@lA_S>e9EiuqA)4b z{T+Dg2D@4AC;X;VOA@C zKg}Zc$vmWxM-+8hw@(4MZ{%RvP1|f}BG3ZBsC5OV?%qp41D9xn98%X77*#`00U%9m zNR({Hjbh9u2sI893LF$D%PL#`9QG1}HHExf^K)jK^QuVJBgwuhu9&_t# zq>~nzR1g2$J>na=kypFo%O+zj!o`8<4Q>iCVtl^Sv-2l2SonNsnZN!_SG=vvtHkM(JQ?9 zPM1h>u>!wbW%kdo7jh6YM_qY0n$G;-$<)#W?gCBnjgvjeC*8~rwzm&`R^PG1=~d^F zE{H@rD^xU!o^%N*b)&%m2mvC#Wq{-+Ch@5XBLxs1GT4Z{k^`zRz8{Oj0TYK_M~;%+ zb&^jEi|3SsBg$?FS`j7AAxGecPw zxyohJzh!=>D=t>4??Ix8hD}BtM63xhl*c?5Dq(o@zHO!Gt7Pqd5Pal`&Prlj&(FXj zNiwS?e6DHqAX#i}I_(|XUm36H2&6f+#g_j3OlLk^D-+s6pPc(D>61-NeI@Ae+MjAB z_?v?+p84(Z()2Y3CCN>sKaDISnS~1h0*a;Us0TqzQrnU5W(AwfZ+vHty2!WdwkW2Nhac1<)+J`)3nv_0a6<0EEeZNFpUYr8GqvhckTEii;@n>%-x@A<{ zpr7))n1aNIs_(Tc_P(J{!THgE>o-OEl%8AhAqpsET2YqVBi_mNgH)>ngG6xhWTPfb zVpb=BQjuxtm0CRr%Jd-lQmWRNG*CI$*mKwA{v{~`Hr+yrohfvqGHG&+p5bTdzG+PS zxosIVx9ekIHj~%=FHek9puSegiT*gxmC-0?u*ab|k*MobA@RJ2+fVW@d01!^@C42W&#K8x|JaVJD9hCNThq^D^#&bmM> zUlb5XLQEfLaNpOBi)tA3a0!9aIHum6m8hFQi1IkeHW^Ka!0r#i2!JR}07?@mEZSwU zsW;=?P!7JP+y)NLTv$AX8m8rJ6zC}KMq_;gO9Va^VAnO6hJ@mUC=!!3JQe>e(4LR~ zt)In?4+RiN)0;1P!0?glP~W)aieyaX&EhbUhyPb2XZaV!8@2ISTIrCM?p$Jtb!nCc zWkG3Nkx)7%7nVj!LJ*KnK`H4TLd#jM4+_i4+yUpD21Z5J?KA9ttz@VEKtP8RpB+^$~gRv#Wvbw|*d~yG!{?j<) zxJvi?jB3n{a1v>LB%2jbUaT&)7)d_Q0aCC5F6h;k+|l5 zkeZ*n=&i5AkQXdBr5fm^QBdZs#G$no`%PmNc)*vFe)p91l$+3$LVCKAdmRyF+o^{l zx(#~HUM-L{mkyc{++1U_P=M@S@Br{wu$Xc0rqkhnn9p4A-@i9_e{?IrW-?o5fTK{tD5c~~U2H`%E;K9oEs z7WYDL&mE>b5)pT~b^YKKna8PAX~l;ok@W&BuAjA&79S#a0l7)2wQ|%rRP$G{3i~Sx zzFu9AF%e02ULOk*)DF}6+VI)(Gxq{V(y1$5ws`of3632Go+HcRZ`x@5K-!k*FwcX? z5M)6gh!z|-S9TpY33gk@vv#=$-Er7b#T0!bL&XAF6+cRN4$lk>e#=yp&8N2b-qv}} zde8}vNBddt77lLhqrNWeF=}7}Rn2DTZ-@{a+zbQ>UiO@b0~9ahxnOo26k3wzeaNQZ zw(7iu1)W4K9&o;qWK!{C)s7a>SBYvvN$x3I88tn3M$&eN@Cr{L?4;`L0u`iq+m(FX zrXR+U0&3og)OJK!9aHEStfR0D%wu0weX;lLfLOSep-pX>k!~Bk#_3EGvty@n$zuBH zvyegj6vW*^=Re`tz)zr+Qpyd#j84-5{k$CF30uJ+0S`*_N_!XcrA&{Tu8GoC=9EQC zeg#|%^o1N92SXCmeyV?Rf~kx#O^8SwaEy~l)I8qcg+Xk7JPW^D%J=c0zo}b3m4}j? z_QMl{&_1@j+OH9tB!KzxsK9#k6Q+_^7g}U+C5*@GM|GdcbsH|C|NgcpiuzdZUL@~p zju#CuN40o<@7UK8%bir;()ddvK^;npgMEtqdv&gH%d6lk^~KDyt|basIQ*f`r1?pK zyp1h9Q)pKXxoM^<(4oOSUR>_Y3sR5^(-qf=X-WFqDC+741ogneapE^;S;{mq;IdSs zdg+%;EWiIc!EC%e6(y8I-NmN7l@P>AT+ddhz=sE|#o?AbUvDc#2bg+38o29W_xjqk zhJEO(->7iJCKJz@1bCBr1P7CKOdS@fWiGoN^wrCJUqUNEzKwp++&Plw`1)#01>@K{ zP5d#1BzsJl+Is%Jmq)(QBE4^`e%eCoYU*>LnF+%0HeOeTysxV1f9YS>!kGCL)O%ui zUw5gk?KSB1eb{^&^V_!ZtVi+h&?$>LoS#IYwX#`J9R7C0htoJFmGcx;{@Kdz$Ielk zNk!g^nZHd5r_t+Qq6S~il4P0o3#o(k0v_XvlytXcVfVsG<;PNNc+(Vpi5iH}Id=#Q zR_c7avV|oW9L;7LzKPliYgV)}A$vk9#yq(0DT{oGe7IaJ z5Tx8L;>Yd-o}SLIJ{F+lSSEPdo{AdkqOLiT=fcbw4jz0kvRcmr`EZQu2gmIe863tZ zup+|;!vfQ>6m++OL#|ADNUinbun&C-Z^?L!$g;S*6CP?Peyd($l{G6w+OLdE-#OBH z;W;Pn%hweq3W64p3%X!=Ch{C5svUW$gho@STTL#L2Qf=2{9Yhi#&*GstHpUEh4uCi zZ33oK10VR*9lPI%eOEzDb2>Eh%KCMwQJJl0wT@&7>G->#0SsS-GWm0S9VCYP1(QWk zF~7XkL75Z{!}cnWjy;!Z{dvdl71fyjI#YZZVd}S?zbWr~jP$w(FIkO#|KvKad(QAc zqcblDm6_VmusY?#LGyRbPaL}(iDRcTNXd0kEn~M2ex6(J^OP-alvEq+^tYCFF{UyV zUk$W(IJg*n!dW%`Q0qYpV&f`jD@+Gl&xWA_*^5T-?TwdFHByg4Ji=C@jKl~j7+!18 zWlU$xWidjOd}soK$lUQ6OI-K;_&c}1gjYT)UR}IWx!5EIw~cp)36|(KbDaMo!-=sF z7e=dRcgf|t>1icHsBynNuUXJbmnkYd;8Ony`BPLF6k8ulT+vG*HaW5%Gr9wT>crLs z>TOP$J5QjL3UfeGuCeaRuhVebgbW+O6*}uWs`UK4kX>UDZ@9%y znfI7*Zn&0&TxXjvZGYSrNkKZlY!^di=K;+V0aq8s&o_rWt%I^0jP^sw$Wkbc7KY=$ z1TVgbnqm@HYJ^oBO@?B=G6>rgAvvXx@5uznpwCbthgLNc3)LX;Q`QL{x$?2nR)0}| z=*8d!EpgTX39Z4J?`H(|5&tJ27pQB~cjDvsv)(&T7(XA6HWga{i7>7d4q*^sPc-R) z-lwXiusZ2}B$zt<(NJ?eP~Yx$s9c3ZbKrJ^Ia7F9Z*8=d#Pdapewhpjyt1)#)Fz4&$Z3#dwzoTELoYPfwhl4*LENa~~UonZ>- zx1@f8Mj0@S0DXFtTYAGiySpr{Dr2UGMEsSCv>WeVfWKX)Yj)ZHxFpA>BU`4qd%G2XI6S*k~^lrTm5 zW>UMdm#YzB7%}rqLrfhc#1tPNH5C&AtkJezJ}+eHXqEw}W(a9dS#_#sJbZ4Mabr4eNB1~#03{xCVx7>&fTpQ7SL@O1A@8O)5g*_!BHq4xPtspTSTGra19q4lW zym$XYDvu6f3YGp4NgVISay+Au3hdgL2*&X|njt%TJL(4otu<8m(+R4bD??6#RoIm; zMrs|e*LdT#p2nMgG4<)5kp4X-$YktlSWDZ* z40iHV<5M0T!JNWJ!r+PnWT%He510F5sr&i}3|fk(rhlltGJ|MsiJ8B_@Y%^V|Ms+_ z1+rZ6hMyAg3S~IRwF$)vm%rqxcq2*+4>tNyvLvl=Ko@O3A3@!C3*EdUMLePh#Kcma z%rn(mpbtjJ^Rh2IxQqwQEO^zF9#>eD(;y;9BWB)wfFjeQM6Oy-Zaxw%Z)tN*WfL1`hXAu1!9u!t>*MV&NA`=vV zT~@bHbW8cX@4w^D_jbLwYs$J#>|JB0-&lkQ7!A`jmFnhEjQ)dW3m6uo1Bu!4kSPiT zUKQ2iHa1zDA`WR;yR$i_AKKc-a(KK_nVJgvkP_-{OBG80ES&=;?p(sG`!Vq&4m-Qr{Jk?Cx%8v|@ZB z1;aaU`s^4-WtP51(y>;m{B}}Xrj%!&{L&nFz4Jl^C*0R1(DaZzKO_#S@`;ydu8Z_W zBB!M$*@LNO*4R;LVJnuCkBgJe@*@OA4R=hMWo}89MR1s2O2k55Rg4{4aTfR^q+;z8 zqAT&^SGqX`mRm)8bs7G3V!ApLv zfgGfGfK3=3tQu7o`622zzgE#2o7VkGY@%T7P%4gJexRFFo()Jh{Gj?k;mYfLKd|Lj z5>mp_Wwp4byzs_?PpSH4*!hw5g=NRF(D4IN5~o*y0g|+|Y#+DYeWCzpN2T0sipG#* zL)Td;(uV>zhK}cGcILAgYj-|y_2FMYt>le%`A&ddsw9%~Vs>2ko{KRvT)Kf~khKMH zMkQ1_^eOJafX@&EY&OGNk!zO{ngv^loH))1Cl`V+3bS(UOeY~^!BP}68>ccVRzoL5 zw2n<C_!~#f@?PHVJxTsnGa=YP?YM-iqQZ+>1{o)!o{sO4%24NKCJBIVyQ`lb&mY zB)B%9pQ;B!%gsEO9Cyd3bhI;Cwhprtqd zcrk50^?0S31j;3({PPW%mX-EgFzK_GS*NkVACm^JF$No5i`p}TZxIH_ z6ZBI$roil7y97*EZD4>}NtT-lxs+VTAAh^TUNUW=w0b2s(zThP6UAz^D#2~5OZP?J zv$`*7PSrWFN9Cd1RhpM%!6T|M5XW8XJj3^MSV=)i&1(44WrDDy$m<(rwA0im7C36!sd*90E}*Tx)f86$Qdq39iIg z;>)+DgIRCH123F5_BNk24r1tmLtI3L9M4wW_FpV|H5gvy2HtJ0u={1pDqPsXRzK>l z;L_1-)Lwq(gRDt?vdHuG=|Djb&nmt zmvR0dOil$^UM!J)x@uIjv^r;BN(rZCTCBCwd5&1T+tBb}q#m-i@xdkFi~wB&MPw>$ z821oB7mOa2Eqslz=NpfPdOj%y<|TZ|JPBS@tV|w#Ky$_RCK*Wo&{%;)2dyEvVeKLy zRuM7eE(BV`w=xxWUgFxvbtIlisc4mQc)Ob z_W$hiniP2GVSj4e&`r6ul&>-TqqwTylCO35GzTiQ^GeF7E4d7q_MmV~GL8Ou8o!nyEG#-cKxkd7og-J})inOyT2e{NwMg&C|dvNt}eRQdm z8rOBJFNru_#9j%sQ^>taPq-2ryWXaRMtfST*O0(zTAX@imnn6*B4ZVOMd}wt8=n^5 zeO%m*cZA)7aas=8mRUhEX2$8N{1dx>Fo1;$&zF_C&S4v~z&~bC zW$nG5C6i222n#v}0Dn?}iI2~QVv*S1YhjQpEgXqgQ{WFy_fGoGfB(patl{ey=j3P&hxJ|p7YHjz2reCay<VA6WL z(56lGvE~Y3Fr3Gwd51Hd7OmcG*r~V=U440f*_)UdzfWkD=rM4O5obMupsPe71|rA& z(Rdwa9-;-6Z6v{7UfW!cZ!bUL{?_z>D?uL+U>#_J@!!^&qd0UWlB9EQU5#UOeJfs@kw< zpOy)Ef|cSs0UT?J$wj>-SD3ExDx}tfPJMwTe%6Xd^{9? zuA|SDaN%uK5A`FtqZrY)hRd+rog=JaMFeZ#rI9l8R5NuCvve9F%$k5?h1amWvpiR& zZ3+5Bvx7hQu03(FFYb9S2=aX-RI3Ufy%DE>>9boz^P=GQ5Hdp6vB0b(35CtMewdJS zv&IdZ1^e>Ti{Cx*6+zAcBgW zZB9SQf_L)7P@KgE2w)??zL!TeLAoe+60%Yn{j5|<{&RUA0 z5(d8^!|t{a&F$ls+_9$sH2S8G*!%+z{(QLS?K9;-PA5-Cp0 zL!iHWm&w~9GJSsDW+86t1I~f$$_>YoE$+MgVe1%o+x+pMt*jJ>l` zcKjOo{Nwr(dZpIV>Yrby=| z0^XGN2)Ok=K~%6vmbVJatDJAZCr_T{hGn{Gnr&>HOq(#I&uTq%N?NvdmP^u@Yqw9! z?J8I*^c2s=weo8f!2neV zd%j^^Pr#p-0yU(h%+MgI{UL@UGl;>#a<)BI+aPj|Ip&~7SdPQY8t=ck=OCH8EWaZV z?vvV;wnvim!|5Q`?mjt9!clnZN>B<}x$o41c`^+(qJ!ObPU$9uVuE+d{(o7Xk(y8k zaJsILbP>CZ8qzMkQ@K9pI6;70|E&~ZqhsyW6^zv_d%O&xn5-GA?yd79e!ChNB(v^4 zuhAk`gZ~`sN~F#6J`QbZcyy5NW^uGN3G-uhyJmp|VU)F(k}Z+R#5+CS!&~pZhCVed z0wM?bD|(e~*CbYd{g)SyhgRRS>Nmei957EcrL4>p4!JI6?)OWT>v(-SQVoI{_}4~n zUd=rrh?1JluH?6CFF!T5_CjJ6zkb}vKcHw%%)6M}y z*j~v&pq#rBr^fL8JE>Iei+?;;dCROgt*zI*jJNilR(OTCKE-2N32=_sdR7X&L>o`! z+4#TU6$wNvgkvT#43mIhAR@TaqJl$(sH(j7Mnx zdjtkd(zn%ci%xD**-HQK9W`fYJ}P)4k@q8k$G@!G-cXsu9ci^qzBBoE`J8E)$Yo6Z z0nsZwA{J<{k|lJMB#$3(!J}aRfl>co1lg7NEyH)$)TG+vjOj+SdH55WT1uUqvHHnG^6$8PwBq7EaV~Acmv6qMq zl~{rrV~HIV6%mQ32q+@L(w5!(o!MmpV<3Ld^F81Df8OWs&0*%woZp?9Gv)mDWbV{m zq3!?jTiOo}#CJtopBe?L>9EFmdHKM9942`_(8#y{*Ss_m=(8EDo_322!ia;M!jb+52tqrr zC14B@L%KQ`TNh3XJgjD^+l&w*K&B~$ut#VnWOW}Fx`vpki^u&q+2wwIfyb={TiCl3 z!pxmFOc?Do%Q5`fvoqqQ6p9wNMOW_+5*nGt2N`evGTCO+;^LgCzj$2FJoPLw{n5O# zu?Kekn&Wl3q%NWU`<9Na;7$|LRl57s2(~oDlhsx!~n zv|zo*$>UQ)Z}E!K^0&>{_(~S(+Wb1(U1qbgbpPRmbB*VPVL?F`;)k%c=j5N?*c5P} za$@n(Kdu+<%^SGa&$4V! z%n+BD8R7doawYluB%0GpOOF=c{$#=8yvJ8xJ$k@7*;K(c~Ra7fxB=JpGT3>B!oRo8Gz}$TWpJW7U&1l`k zi*K*o*u3byI4qXI(VXdZCZ&>${S#LGXpznITo7IGm#=S}?E8Z23tP@+ zmOMHc-I#el!)8PNstx4A(HqA&4u1J4WMyW@;?u7)Pq(|R$c#F*&gWIur~6Nx&v-p} zhxnNOWD2D`rqJwnak(SYLn{;Brth`RTahw#*4^fb)er9%HJ^6xnELBI!Sm@xzlYVe zI?W52vu2x^y8F7gxPpu>Z5?iVAu;{b{&y?q&)t1F%X6Cej_8&9FZasjy7wmA9WT)T zg!nm7Ef7uF_8@CfU7{UZbNQOchZp{;3J9anYjMEiGaEPEI2NB|HMx3Ob(`JI*)5Z| zUFR{Lj0)Q6QzP`g5;ZSs-oVYMXw~&5Dj+A?_$yP*7(xcj+5FZwuqwqd$vIEnA#->iY@D-wddTFZpC){`5k+q|{6D{2BRKAc`}`?KZ9baCC!Ycy+Y@4Q%h z$0swi&M&#sI%8wWnyAoekLx0Xt*ehVMBfp~%C~d`#G2JLBpj-1No-9VvthxDnb|gB z6}&eE<;Ax<0tBwVd9==7y!YnL7OV29za$fv#0&`_w3`c^d6REfmmJ&pXr|SPXUEHP_UD&gv!+mi zApIDbKdQuol~Pu9+~?MV@As5?70zjF+_z)T^Z1t8cR8Dvl+SQK(lqAgj@qo^{1#JN zjg-bymo&!AoJOloS$BRFS$yii!rF>DetU#P@Z+!I*6A<$`KG43U`C|InT298bx#uf z`@84^HtgX$C8IB$Hhqxf|FS$(Qgko9Jo-TOy3*pSvf=JW&t{t)bZr;Rf3CIYr?QZU z*r}_Xeops~{+91)dna@u_m6pH_r938v3%ksQg9(`=i0i&@VeQNH|_RpKOLQ1y)0ak z*u3#@qMY$|#?`a~ramWZe$VwSK4}*sK6zqxW>IVA>sYDZ%77=w?)#i+Ev@{eXu+fn z}7Y7;HZdY5y zI$Q6HAALEyAaVHq0l$&I9sO=MDO82ePh$VN#G6dm!58dfVtjHW(SN7?pbdUSYwa0ui z(+|IqWS*`yiL5vH(=+WL=lI%+yqup-OnEk`{&m`)E5{1mhrkK=hF=q$IF(_O07z}|NCDKHxI8Kd7yQ1)|^YOw)p{t``fBk zrTkjol#{>n-l0-KyT;1Tj_%+1s&f3zvY#v>GWT)rT$@WF?u^9@oVC7d)N5 z`ar_{#1#v;N7iZjTryp;u;T0*Vs)wZoVN`ZrKaC4-W!>lo8kJleJWK}$cY(9=&;7#Vx2tZ8k@qHu`vXG6|?i^rkOf1xv9xs zB2fy1$?|40m}#68aNB7t29L*Qi3EHvep(v8uyWixBAki1C>13mFC>B|1u+m4v5+_X z#kn-ZQIvTjKIB->ZK@8L;O6iMzhcqKqSG#0$ma4CM$CIOFYGwk`!fW zppgnWE}#XFV?!HhkS0M((1*gnPwa`py@%t}3hO4BD+l!o24&{R^A@mEQ@t2WEvIB5bdH^obk%3^T~M$&lkK+QaQ9L0;Jt z+`a%bxX=S-pIFdyE{w?}9Bbi61iHxztMDL)^%>BH2>Omkl>}eK7zVuKwsE^$&`*VT zCZufTs9L5usF`qqxu}Co0&zohiUMv^mG`93zHoG^y<)sy3h^Y0(^AIcTQQa((ig# z6e_<}c&^o)Ah)tu=0tGbn%SaoJV|)6*f4x-PHX@HSl03K{C1{eUFAFnrT0=%;D9>b=@24q8x2=wuq#zsvB zG!u!ixkLF-k^(3`pzyB5)5L{$Zw1b~>sxp-@vcF!p!JFkTTXDWyet zFmk-BlonB*DwrGK9GpF%jrjmRN$|Oqf_RFT1cbq@V;EbhO@`JXtyO%PdC#=255ld(L=i3j}Cd*jxZBz zAuXhhbh?XmkzSXw0n(Kqbz=R)pP~)wQ41o7^)iYsy|m0vy%DwI*EUM6>DX+yX4Hn? znkcpEZHX3bs2#t(q15iJj@0W!9r&$|B3kuiNDBE4H57`Jp-!BANr};F8Is|AHHGfU zkQ`^9Q^-P&D4cypp+q^NA!0)ng|;hdpHiq=j?jimislY}rVP?KkgkRF7^E?fHmM`R zu(OgP{DBNyf^-?A%OSl4sXwHh1~jDJR7oLm3^0ykkXZ}q97xL`b%S&RG*SJOA~q0^ z*5un){q%O>OwC6*VHdhX1n5oihB|g6fgFLCo5+4TPlV zybW=WDB`k-7&=M05Rv4WVZ_v;Jwu848vi@l|Fx4nUrP{3J%$yI8R^BDpN54%PSfdQ zNL23mx)C5jAi*FZAfX^(AmJbpAR|FWfkc9g1{nhq1riMsL!PgT-9#RCFjgm5_!{XA z{g{&ycaz+D)5t9Mp05#zF~~rWK_Dg|rXaY^9K-^|62uC`8pH;~7Q_z3zUZE>gUJCe z6eH~(^T+%cAfFB=2J6|wKj;bki@rx1_!0|^hCqG@9C~VsQZ&*W$9+T9)LCpFu7E5K zG#a6$$l^Cez}JiA#pDT?0*LUk`3ydjlg98);d2>$Z#EC&!0e>7WUsD(@5iVr0>0#5 zVMglR?cjiK0jFqVwvjVIQuf9}H8m7JVn*YzudNle54x&u27h$ELKM|8oS-Ob9~?sJ zW@M5p%Q|mEprN{ASY*i;gcT`%>Y&&4KKrSIonqedDP=xFM(}Hku9xQ;a(LhnG(?RUjA%xLnh`-& zAUaYjtPhDM#Lb=8uTQp~H1A#gEJ5?J;%m0kkl9x`Srjt2IGfOn!1r%Bq**PsI>w3rKjjw%zk9167UpcsZ$JXjC#U}z~4UZ3X8b3E4TQdJv z<5!ZiyMsTi<0U3gNOO&umaOb_&MF9R{kEWj-I&)>V}I&8plk&uIUHB%9ytop<(+m*X#Z z$XudNojTW0TfSy>c0g@$i_?$!)a_>hm&``XHb~Cyy;EXRG5wL-+m*Qo7E&nga`Ew- zhrpxQRIt;dqr`PLEE6t2oA|}UoX^BJB_0%Fex5Z-IC5}u)$_FH@hewOI#~QtBYqP7 zg(8droX(qvgO-4iH&^gRSGrT zdFS-wScx$5#ke2G(x|eca~?q^ME636$c?4`ke}6HiF7R}^2s+wpQ<6X=S4f066tE{ zX45wB`HP%&%gDy?oW_x~f~(ux&xIN+9aOu^DKBb`H974oVgMP&9( zqfhGpkLJnj8i%Zpielwj)H;9+25|&&0&xZz0^$NP6l55PD~KD2I|u{B1H===i?pa^ z9(MBnh}cqYeJvA&1;Pg5fN(*0Abb!3h&PB2$Z!x}5I+!qkN}WCvc7giJ~{bS?5YVi z$Oa7sV#`uQI`}|l$Dmj=4#mTh0MF$2o(T{tnt+68q~eJI%>;Ol1Kl_@9*u>X7{HH2 zBTx{z>{aaaUZ2Om_wnbWKnZ_-0z7~J{3Q7NM5tAMJ{CTYwLa?eIOg;JviHB&L+>q+ z1#$xO3`KUx77S&B1|vtsF9>(!j$ENh9D-6k5T`?)Xb>_%rpOGL1C|R$9gh5vKMF#j z@C2hk4uB zH#cr5o&Wi7Ei(BF(%(vGZTgNfl27+Pbo9ufor}V(btAsJ-6@mTl3M{{)kK*p>kc0* zIIw@udXd1`eA3n`P^c#>nq#fR&6H&?g?)Q>@7kH4JKjxa*v!KXGWlDIs3oM18V-6P z$Nv14Uhk-8r=D9Sp=|z+*}g4*>!x+{!>qMx+oiI1yw zx-+EIkp2OyzVZ(IqrARdE(Zv+HP+RmlXCeN$ami)85Nh-w#qPOWfw-|`@SW+&6D@z z535&w_w9;>S{rV?XzIk6bGAZPPZ>2-?wtFc^*_MmX4|IzS@~9qL4j?t3=bLQA)6l8 zd&WM*d@T-SUwHJoT~3i(+G0JRArIN!p@;B-Q%>?fK)zg>rgidOO^b}8$WCYogF2t9 z?dlh^eA!&Rl{cO>bpmK&dl#sQy{Nx-mM>e9=^TIgNkfMcWJMmd7aDuvK1$|<_tQZD zinGF8&OdzBCa0vNSx2lpM#)=`*zCc(1h06-%3Z56c<$F)h19Y72z^bbHX z$ujSL`UaRq={}ZcAJnzVrFY4d(%50RfAY2q#`%2?2!rOt>4%&usg}q($#a8+j$TsA zt)sy-w=WwgAn^kNcK>?wc~fU6YA2Hf#6VuVBh3b#25e{3*tkB-*9G<8vhU&2d#TR4ev#V`oW4=n&?f63&1JEJ z86A|X^zD$0{@U7p;MBFpuOw1=JNcw*Wb!lJL9dZT1nmG=|NEBTPGm{5YF=UDotbN#H=M>ebWy>P7&m6x$@|fHa_?v z#+q*KowP7pyc93h4;#QI**0e(V^}+7Ad}SG|GjYibRPpP+rYHBneuD{SP1b0{5N;^ zrxVoesaVF4cFIBC-thGH??s0X>|HU@Q&Z15Oq4z+J+8O5lw3r`dOEdHcG8ymr}wY_ zQGBxS&@Vf(qaA5R!+i96eYbvLQh)>Wg!Q()~2_w zYo0xMc<1`Xv!{MNdH%*@JQuBNON5@5?}imywWnj~#fc{Ax|A{*fwz`5ISx-Yl<^^kxAR z@mi@TEUBz-m4RLz)^k65``J4MH?WUjn5eh`Mbs&kBQM+|?`sMT#R{I_kT_+^bkzbonY45j5pE<^6=?|CRDA)r=BqmOtG-*N%&sImp9+WVR=}sZX zuKudiY^q~sGy2rY!V!ZszpGPlif-7%2@?|H$3-v#&D48H1vII^{`u>G`gFBq!!A@j-MIXSJQI=ht z!dF{3Ovx$wQjH$%rQ#GnXbatxoT5+Vs4+pbZcb67E$reH{pgPg)$isMfjTNq(H~%R zxNQ%o*aQ$Ir|1_FIg-=EDOz=eZWtr7SIxCz(iHZ`c8!US8Z%~eL)>I)MQ;;7;jI(ot`PGLG3FT*||;bFXPPVuRpP{k<{ z`o)BY`Dv;+#bp(!i5=KqJK!dYL)=%N!t`so{BLW72M(}^$jg_usL0i7_E zPjE?y|IpSWBf>E#B#7TlC#nDi?wSE~A_g{9-Z`^AgeCspdQnEE4)7%fb=kjZw-Zx zUChC+*XH>LL^pGIY$#MQhao-N?Vk|c%)!%0=ng!<1DJzB#Hi8A4cZTaB3BsoFb5q= zub|NIk)!$sVCL}5NT~SHq+|{>eOpdoP)HbFmC8v}47-cWVCLXstY8jQj zAR9sLU$_GqI;em0Ktlch4S6U6@{sY75dkZI7h{#z?-dcSj){$lisaert2}+LhybpO zhC_Yys9=VLmddC1iU@Qoz@a}fB5b(xKzfh!?js`bJ_gRNkl;X;t=_*y1pWpy#JHfK z5rN)XA4CNHrmE5m@G=(mfyQ{0bcdv*5ufKLU zY?j9WmG=hFdl3QqemV$1riWFx3-5{uU>B}0ALRlEY4>_m8Jy4KVvv`YOScQ}6%h!= zhi~5)&tV!W7v3u(z~~?2;cB3A;k_aP7X7y4!5C)J?ZSIS1hn9wS8m1b71TW-PXO7g zt6X@mh`{iFfv8;gd%xw4ZkzRIoJ528CFpp7E}S|-jcE>F%k zS1mo|O!ab*y&?j-U4C81%*Bf(XAi-T!y*A zvgy^Cej)-I1}42V|4SkQ?4pZ9g)8WyEAYSN+bH!d19UWKL^DFhaHr>*jj6r{R2V_U zPOE{s>bPPcRNQ7dndrPlns5ndZLBekcnZa!Q{Z85tVIJI6VSOE=xMFr2zPbhc94ej z%GW{KG~xwW!VsE^-{I0WN~5_b!&8k$)FNaG=#ybAm#FaOP&6LURf}f}jGC}s6Q%KT zXOa!*)hqPWPDgUX;nqxsNi(i~L#f}-i#DVYZ&kHCT)W6df@|w2daJ1ho%XJ~a%3GP zCYB7v*OuVM5q*-OHl5bgT^k9|TrR%E1b2|=+iZ=s=~9G(q|*s|Gq}}sI+8aUG*Os4u6d|-xs*C}ZH6i%66Wmy$#|$&mq2ZfMSY;CYlvgLKJ%r|l z`2G`IW1_EQ+YF#XJ*n?0bTU%hgsP&{&klDo)_^NU1R3Zlv@%lMih4?^zZv0bszt-a zpFyz?Gz{0B=prvmJvAt#?}sM79uG}GN9|32h8sfS)F$Ayey+F!k3e-3&)$HJ@n@hl z11P1fucWlE`#KNQAP`yaDRef(h4E0>8s=uEO+$#Z_YyinDNW4^u1;yqXIbmP9SJg4 zRjPL#O7{vJ4B@^uE*(U!^AZ{u0f45n8mb=pyA0AK5S={cB^->439Tq7mPIqnb!brh z0*Vbg5lzEXQb}npW83J{q11$_ET!xJR!JEg_Ze)Y0i~f#p)(i*zMKQ4F9L^}Xc2UG z@^hxpRt&|2rf(&saXQq)LWibymqNZ$L{m4ceM)Jbn-I>l(o@5QAyBBMcc6;WI-eXD z<^`p6D2;?tn)b|Rl=k_Q$ua(}Flo3r28sy{*XNYZ`IN-5AuM}CO`1BC3p)^vZctWD z>EiNGj^iL(9Xg=_HDjShO>g5%%1BYebu!hZ6G($}VF~R_p^m0Cv4%44U5ChtETO$w z2T~(6Y})FSO@%6fazuX55;|G7BX#DtD&!`Q<|gpH0F zH~GuMkKzA6DTd$Grw($dQqh)1*ETe>adP$I`36OdiH%EHedgu4$S7f4LR?G;M`4^cQlBFnY%4()1n6n$84NVDc5q>^eF8(n z!~9u}*nq8A$C6Cv2(>KVArpe8M%U2RGaO`YGkB;6)63O<5Gb`Mlx)6O{9CHTnlUtijwg%TUr&)igTYB&VVM7M8cj2= zBOrn{uc#@<;75kzB7rC@f~k$*PkRLX&_HG>gl3CS1_ZTL3SEMRsfee=A6cU9ziVB3 zR_2FCT@34NijSv+7I*kPuH^g>;r?|6Tasn9v-q6mkt5-|SJf75vaWm3nG@n606djXTSFp70DmSvwnEBBj(|apxD%3K8tl6n{~MG?(dH(ePZ|t6B3rE-qV? zne&iD*~yX@^Tf|`9e);Hja>L~IuXaZw(!eF(b&cqzln#JXv!vNA3eRZx}r3HOJl~! z56+YXxO}f$w%Uw{sgC&V&eNZ!ORp5KAd#qHQ^Ou_8-7V*e8v`?i$2Du_UXS6S6u(} znQcPVfs$K|-j(^szuXri`NY~fr=X?a#fdMb|Nh-#wW#2moz=lR#KL(b^2=B%)ZN-x2JevV$91cS0&dfn%x%#@0j{;#@I802c?|_-fj&J zKR4)w9GY99vA)9mPD9z(ve^x}V;;6I$q?tCF}F(mwv&6lC>6F01|R3;D9zQfscgmG;IDOE1~$Xm9-J#lBd{+9kO&8g`_lelqh$cy(0cay>nh zA5xBq7g?3&SGO%a8P$`}zWYl0>}Tm|)p<^Ni~AYLbtyNhm*gaP#@c zUwv@$)C{Tmk(Z3#^cvB#NKmy8BqI^|2-^-6>}+xEhM34oabkJleU?|rcB9ky56>@ zV&QN3^OrW1Z5Vq->hHbb!TR=%i+AtMugDGf-MVMj&iUC7&kZ}w>oIn+ir4t9q)Tt&H*ejML{sBmXQ7J)Zc{=0$PbQCE*!>&UNYgyg+)Jv zHrUA$8ck#~ua`A`SLj}HVoS=AszcTHE-d@qCbUi^`rzZHE%(eS_WqPJuYKORqn|#$ zANMpxyq7<{xprTh+r-V{acgKPU31EWv+Os#Qx5$dNlP5mB`As?ZRE9*z_dl@G`%K}oj&-v3-00@EH-Gzrg7s-`oNZeJyycqtkBgslnZveqOdNgW;(>G1e@w`*uH5pg z_+K|8+Ltxd`kVSKIeqHaM(auv8A)$0tT(@XhY@I8@ad=fD|g@cZQuTt(Tx^9=>g)H zhIrPkj?~A}bN4sLSk{#_=CV4y?sHCx>o~gCE|)zTjY?8X&+hP#tGR!=B!B*QFK5e+ zgh=j{pWok58l!Ew&P&>~WMXC(YyN@`;mL@7GZPZVI^MciR#{RJKj%;#Z%v5b?0NMv zo3k$#u5$=8Y-?~ls1p}EE6r>L-?04S6`zS^9tW%MFLXb#V|RMZ%M`Qtv4@v7>NZE` zlx>?@cDrYLN8GdU*o24P55v=%cvfYVkD4b|H~1|{ta*K`ta?x8mmMjmuS6G|ne9{+m-O8S7oGALWVotvQfS5t6R(J4r?cWUEeD8$=~c;IePOG?}w6z z@v^8b;;nPe9dr5aWNG`1mpjLNzHUWcgjz;b~E}6MMpE2@iQpz&{v0-P)TT(CDZkOc*MK@}Vbc|({-H4ZnH z3+XJXayHc%E+A8TJ1)eX3Qd7@0rlX9J5TsppM2IgA!ftbqtUWOd&DnX`l0)F^VOsmG(l zhd5qbENbL=5XMt41W_y_yzKA-P&~;nR(zC1jko|pDKM6JJcZOa?O&{L7>9D12JfN?;ub*1IvjH%)5Qc`G2bD zSqppKH_of$rqY7*zMf|UzqIzE!i)?zYK4RuQU=223X{3QR4*2noy22tcsw>32tNrM zNIF+2NE0S|vkUKMf`MRb6T*<<-&D#3xYTsvf#pyG%!Uv)5SSDQVSP4CE!I~|OEL^N zo0=|9C;=~ZoWqBS!UmE~Vey2gKxx?QlHlzLF&0&lH`n3ldUk2jSCjqV3Q9E z!`qv%(07}!qK9j!?XK{v?Jvx5{&>%SaG%3H#@k9d)n~k%y`jI!5W{;W?lIm+@n{IB zzI#zU_X4dn7zez&dLmxoj23F2)3l=c)AaeQc#V&7Ku4DZ|Nl-aT%-3$7Y3jIlj z{-jdj z;`q?Q+aq3S*k#uJhK-RrDgUQ-p?`dXE2On|Ql>w}f-;Tdq@)yfnkSpZ z7jlHGWC72MCG<@80)~^6gt<;C$BSR+-3gl;J}L0VgSQn-Fz{J~&k<~%m~7wyRtzql z1O?&22qg)^OB&7=*xZH%W7Z%9JYMYhtiddS2XSoj*f8*hDF7ti{%}cnf^hlRobZ;3 z+mHl?VM8lyluV?ywkgw#U~6+yvC%}j@aTc)Ag#Vf8$y~$18ESeZD=N92tZT|;bi5b z(+kr@nyrZG`Rwd`w+7UPXr9e7l2LbHrg;-;$FVMwQL%M`_G{FEV{If;aw%8H>_DA3 z+DtNDotihY8+GAW14*yho(#!w zu!cnWG9<^rrzGtaLykxsenKLl9Egl(^J5a_QrXocx+F*F*&~u6!TzALRU|ze-t*zT z1>SD(t^o2vtF0nwW%X?~U)%Vv zZTxjVDB^HwE7S#(@=sCUW%}q=#@vt~2&*~#osUDp=+6;$gw%)jp@9p4T#!2T84AH* z)uPR#X-5Mr$o&vg!9QC25lMFMr;#MNA3i5l_7jOKxRxftkfjQu{G$pYw({(ZiES$l zh7q@I4YgGii5G1RKcOl@Q)bUuoROV18$d333&u3Rom#j+^f`?-q3DIZp*Ky(Wj_Nk zK^cF>x)5wf!w=|;uA)CVc3BJ+l{>0Lb4#EIof~bI~f~bM0gJ^(gf@pzggXnq zXrabk3C3fEa=pff$3BfS7^|0~rot24W6k0b&Va1!4_i17cfL zIC=#8I9nfG@2mFjxU$v_6WW2;gE)XVf;fSU1aSr#1>yqY3gQOB0&xfN0AYi0h+#tR zDTlw~Us~5FK#(y+qfoSu*q=jFflmI? z*U7*0<-YFa69W)K5F-#{5EBqnkYOOhLCiqRK`cNlL99TmL2N*5iI-1C>>)P#h&IGJ z16RcycQo=xKFAmOp~+|(ibioL79p8~~WEv!9c@&D=8zw(9FJ0NE?62uu< zBP&YmkUfxjPuMYC&?pFTVepg>{vco>BY2FF2{J{)s1F1Id=3a1^t>l*WZkfD|)Obm=w=?9`)W7a-A+@jT zCuR8=4~yILv_~d?PRyDkvNU;3>R;ENefo64iM#~1)~Jm9W|{m?;#0^Hw~{7`tWzgX z96x$c9Ow$Xe>GpQUqt0G?@~VwA??)XwdgSn- zZ+B(|nCSv_g<4;cw0Z?Jr1-Z71>d)w*Ep(SZ)aw;X6u!vcG7wP)C6M>eskdKeY-cz z;Obc>UYE+`t%UVlkwsDmX*)o(PjT;_U0;2fx0Dm#+9{O*ZN^opj?fM|bM1TPOM8Zm z%DS3P((Zl8oy3mqY39$HI;8S;V#{2SNqQG)KZx=d+r?^Uo;G#L+6UHjMp4u9U%N?% z!N7Uj*V-&7f8HvU5d}daXIBa7G`RY<^&;Vw>ZWeFoS6K9$b}^(-G%^c+4zBG$-Vjx z8A%cc0pi|6vW9|e-jt)g`R23M9>7RG5V?8CNcW*J8&*5UUwPat0Z`ODkqcW+di)L0 zXKTY;etg*2B`1kvy(r5hSc-VPQ7eaGnbUhM^y>&R`z7Q`;`XSQduK+M;F- zHX;;ijd+piqU%pvq!?yF)Mbhcxft7#=W+B63wdKOd!ehAc?SMm^|D(+jLH(ZVVu0H zLhGQ?0^gbgB`kMEv_aXu`p#}*E#NqE(p~z>N!)9>*>#J{s(3gx7C zPitzV!rBKz{VUrd7511;LYNJ$1emPzTZeD)9x*6t`Fx(|Prtutze{|PEgFSeDetaf z?i>=fB;C%awBpZJ;$^nTo-HF;(iX3*q3T*P$651};#<#Kh}-i;=9~)vleH}l9HNC7 zm3#R6n}0MbU}pd(?>uX^`>(6NZ{%0z{A)QzOAhN?C>FbagZ(7+qFo#ZGs(AjojhM4Qdq3C9VWeByNA$PEb!Lu8vEG6PW*|D3nl}S5WU)Dc+{ILAS<%{Rfo;rTy z(>Qm7Rr?PsyD1@#fU12LX)TvYyE|H&8|!MS@87xpb6Ig={;?y6kDa-s7>{nE1r%-C zNprcZN7B{)x~ZY|Y1O@3*M2H3{=VdL1x$aByo=y35xJSSkS0)?q_eH%W&QIfzgOJ4 zdFSDCoZm?-SR(Q)ikc(}e2ddCrKxHO_WhiOne~CNpVN5y*lP80nu2LcPUDq0b7p)b z*GyH(X&yq>G>X&Utb~La@$u0?ql^Y{8m2T$ZMH){r%}n8=ikq1`cQFku`$t;ee86U zoQ4og7g^dR8vnKCiJqK~{lb5v(LVDh5- zGK-O{-%DQJgPc4m(o0ERo=z8;h$-^&Ugb#>gP48frLU$likf=K%OK#$arz4KLZVXX zm-HupGNtErPU6NE>dei|%AA`*WJZhh6|82kaw5muD_PCA(IQs`s~Hp!5iaOsHQmul zRx>zcLbym($!a2Fl&oebOn9)dlGPjrkb>0=2^t^jtYkH`SdlA6S$Zm099}!rvY=*r z@}x-);Dp`%KVs#IO3LQIK!D@8l zl&nT89-G9VpwJ-KURE=`RYTB6$zON zF5^9ef?+N*>OHeO044I(Q*fE>0PE#4M$vf7cx!D8M2+#Y?By~|Gbrjrahb_O!UDYw z6P`VD7?cBT=Q@A3!{`=24G4q zGk!>nlFKZaDYEb7GTfo+f#XxbWqz62$7RfiXd89pQe4I~QRLRkWz;7Qu;I7+(|1f0 zS&0;vaRn|D5ZPz-gCOL@l|+imr~#L;@Cq6?ULHPTeAr+JlCYRX)uP}sOaljjC^&SS za(#~#iN;W)+}A41WflPB4KAZ<>^wSfY!J4HcOc}%&$B2lV=$1*Xbg89?LS5?()()# zGGbWLJGl&9+rmTW>*o!V-rt-aVlHUEhs!YaEDZ-LONnAo{+nDzHTiFHnTeqIAK@|t za2c~AiTiToomq>37l$g%R@flys)wNi!r!z_(V?nLa0tn{vIqIjMnx0selzqeuG)1>Rn6 zN;=c;q~Z3i(m_yOY}L1%G?t3BJs675G5D*KMk4|n#GoJ^*XBJ=8qttYPp&KNEhml3 zP!)P|xh(Z}J84XYXe&TD?nZArX;j85Es!#-H|D^L&%-db`-r!lG{RoHeLu>>!T(;Y_YNnG zXBj^HBA`S^Acf#$<@LQRnYpoiu9x z1Fc!PlJGoH{pmZil};K=Y&`w@?f?CVH=Hyku6%Ey54B?qg7}M*hM{BW#^v$721E2Y zX>|LXG%9-5ZfuU6Ys_K4-4Af9zspIZW@zima(92L+w%81Y3S-kcFv<*onX@Y21!1s zlZK&bq&-mi|6V6e5jbf|nA)$9n&-1~3*G5-+Ec=Pg=o0A1<`nLXH50agUQwmI_)_^ z23@4ew-!cPDzr9)jASJ9Hpjt4^EK9koXWgO`gGc#kOPqu?zV>NbWk$^wemm@OPyA% z)<&vIep%zEPN%(qEYLgS>pEPE0eYsOS2^CxRu8VK@!v+ZF141$m%Y9KszL z8QK<%rh#J3s%(J)++yRw)ijl7`*}<{t(8(^TnOif!p*BiCUC2b2Y1z&-)gHfaXX+4 z$n?UQ%dOy!8?U*RRC#W0puwcI_vMB`?rLYa^TuobBZFjyTN|j;`*Xt~cO4%t!SUdV z8*{Upxi%9ngNdZGX|}@@rB48jP5y8s6>Fuwjj7N z$AcSj8tr3UOf}#_Kd~=IWTywW=Xh{8PJIE#QXBpc0C6WrPKH{4z0HCL1B_xzoV)o6%$6f{>yDm3lP4}j)} zb3k)vpgXh)F50R0M7Rytq$6U+N|A*wT#%!kt0L9Jo>n?cM66pWa?pV^`eH~cz#Nn~ zzf$Cg)fjw8stIs5QKu2jD@FE@MrY{MSCOjG?q-^F!Y)^lM%OwHX&ZUgx=dmkr0Ibk zT_Xe1ei-dwsH#G&&xKAyB2CQ|5}U@jn5wH1C6K5Kmjju4535L(G`6|68qw67#?anX zMe6K=RiaMVt`a%wfgW8w9@1|3IvQ!Ri0P|D)?ztg&{VCYk4WYVk?Sz+auWH%j&(P~iIdg-*s8J_S;lI>j|Gg&)s~jqr0d*U^IHC`dM-YyRsQsYj*zvn=)1)CmKz z$i^75XljB#Nd4X%D}6Nv5h51Z8cU%D{n}bmXJAgQSma;|ISlP1b)@cq92z1nh(-2h zQpBWdj5%4~&{r2O5w67$Jy58n6sglx4ebQ!dw=U_Cbb3@ASZlRi|lM9NQ zDt`6Jhwx9nZz#!#HK1fCLArEx0~Q>rcOh#UovEs!t#3Ts%FfxHH+oFSgh^AQW2T1tDHP$KsX)=D9huYU3>7s^ z9Rm|HYX=v$m#-)!bga-7CV)ZfB1+a^S2Z$$(p1#7bPY|-Z5>_N9Cs&koZm@wtr2nm E7Zkdh5&!@I diff --git a/source/tycho/data/sources/tycho1.psd b/source/tycho/data/sources/tycho1.psd new file mode 100644 index 0000000000000000000000000000000000000000..1456eaf81a9cbd27ac96d5ce62936546186a2acc GIT binary patch literal 122959 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 uQN?>RCW-pst6eLLgg-9Ho&NO|ZXM3};_ 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 literal 0 HcmV?d00001 From d818e579f9ce1359e4a0f4cca9db968c4b779f0b Mon Sep 17 00:00:00 2001 From: Marrub Date: Sat, 23 Mar 2019 08:33:04 -0400 Subject: [PATCH 08/29] get rid of gtk-rs high level bindings --- source/durandal/ffi.rs | 2 +- source/tycho/Cargo.toml | 24 +- source/tycho/data/ui.xml | 498 ++++++++++++++++++++------------------- source/tycho/main.rs | 401 ++++++++++++++++++------------- source/tycho/noroom.rs | 79 ++++--- 5 files changed, 554 insertions(+), 450 deletions(-) diff --git a/source/durandal/ffi.rs b/source/durandal/ffi.rs index 7140912..37ee01c 100644 --- a/source/durandal/ffi.rs +++ b/source/durandal/ffi.rs @@ -33,7 +33,7 @@ impl CStringVec /// Pushes a new `CString`. pub fn push(&mut self, st: CString) { - self.cv.insert(self.cv.len() - 1, st.as_c_str().as_ptr()); + self.cv.insert(self.cv.len() - 1, st.as_ptr()); self.sv.push(st); } diff --git a/source/tycho/Cargo.toml b/source/tycho/Cargo.toml index 3903586..7dabec6 100644 --- a/source/tycho/Cargo.toml +++ b/source/tycho/Cargo.toml @@ -10,21 +10,15 @@ build = "build.rs" [dependencies] maraiah = {path = "../.."} -# note: these have to be updated all at once, check the gtk crate for versions -atk = "0.6" -cairo-rs = "0.6" -cairo-sys-rs = "0.8" -gdk = "0.10" -gdk-pixbuf = "0.6" -gio = "0.6" -gio-sys = "0.8" -glib = "0.7" -glib-sys = "0.8" -gobject-sys = "0.8" -gtk = {version = "0.6", features = ["v3_16"]} -gtk-sys = "0.8" -pango = "0.6" -pango-sys = "0.8" +atk-sys = "0.8" +cairo-sys-rs = "0.8" +gdk-pixbuf-sys = "0.8" +gdk-sys = "0.8" +gio-sys = "0.8" +glib-sys = "0.8" +gobject-sys = "0.8" +gtk-sys = {version = "0.8", features = ["v3_16"]} +pango-sys = "0.8" [[bin]] name = "tycho" diff --git a/source/tycho/data/ui.xml b/source/tycho/data/ui.xml index 13ec04b..15be70a 100644 --- a/source/tycho/data/ui.xml +++ b/source/tycho/data/ui.xml @@ -411,7 +411,18 @@ Author: Alison Sanderson True False vertical - True + + + True + False + Vanilla + + + False + True + 0 + + Extermination @@ -424,7 +435,7 @@ Author: Alison Sanderson False True - 0 + 1 @@ -439,7 +450,7 @@ Author: Alison Sanderson False True - 1 + 2 @@ -454,7 +465,7 @@ Author: Alison Sanderson False True - 2 + 3 @@ -469,7 +480,7 @@ Author: Alison Sanderson False True - 3 + 4 @@ -484,7 +495,64 @@ Author: Alison Sanderson False True - 4 + 5 + + + + + True + False + Aleph One + + + False + True + 6 + + + + + M1 Exploration + True + True + False + The same as Exploration, but you only need to look at each marked polygon, not actually walk in them. + True + + + False + True + 7 + + + + + M1 Rescue + True + True + False + The same as Rescue, but uses the Marathon 1 class numbers. + True + + + False + True + 8 + + + + + M1 Repair + True + True + False + The same as Repair, except it only requires that the last switch (by side index) be switched to succeed. + True + + + False + True + 9 @@ -522,6 +590,18 @@ Author: Alison Sanderson True False vertical + + + True + False + Vanilla + + + False + True + 0 + + Vacuum @@ -534,7 +614,7 @@ Author: Alison Sanderson False True - 0 + 1 @@ -549,7 +629,7 @@ Author: Alison Sanderson False True - 1 + 2 @@ -564,7 +644,7 @@ Author: Alison Sanderson False True - 2 + 3 @@ -579,7 +659,124 @@ Author: Alison Sanderson False True - 3 + 4 + + + + + True + False + Aleph One + + + False + True + 5 + + + + + Marathon 1 Glue + True + True + False + Glue handles like Marathon 1. + True + + + False + True + 6 + + + + + Lava Floor + True + True + False + The floor damages you. + True + + + False + True + 7 + + + + + Rebellion (No strip) + True + True + False + The same as Rebellion, but your items and health aren't stripped. + True + + + False + True + 8 + + + + + Music + True + True + False + The map has Marathon 1-style music. + True + + + False + True + 9 + + + + + Terminals Stop Time + True + True + False + Terminals will pause the game in Solo. + True + + + False + True + 10 + + + + + M1 Monster Limits + True + True + False + Sets the monster activation limits to Marathon 1's. + True + + + False + True + 11 + + + + + M1 Weapon Differences + True + True + False + Doubles weapon pickups on Total Carnage and makes grenades low-gravity. + True + + + False + True + 12 @@ -624,12 +821,57 @@ Author: Alison Sanderson True False - vertical 5 + True True False + This field is unused and must be either 0 or 1. It used to be used to give different physics to the map editor and low gravity before it was made into an environment flag. + 0 + none + + + True + False + 0 + 0 + 0 + 0 + 12 + + + True + True + 0 + True + adj-phys-id + True + True + True + + + + + + + True + False + Physics ID + + + + + False + True + 0 + + + + + True + False + This field overrides the Landscape field, and is used for Marathon 1 maps which have music. 0 none @@ -660,242 +902,10 @@ Author: Alison Sanderson True False - Physics ID + Song ID - - False - True - 0 - - - - - True - False - 10 - - - True - False - These flags were added by Aleph One but are hidden and probably not meant to be used. - 0 - in - - - True - False - 12 - - - True - False - vertical - - - M1 Exploration - True - True - False - The same as Exploration, but you only need to look at each marked polygon, not actually walk in them. - True - - - False - True - 0 - - - - - M1 Rescue - True - True - False - The same as Rescue, but uses the Marathon 1 class numbers. - True - - - False - True - 1 - - - - - M1 Repair - True - True - False - The same as Repair, except it only requires that the last switch (by side index) be switched to succeed. - True - - - False - True - 2 - - - - - - - - - True - False - Hidden Mission Flags - - - - - True - True - 0 - - - - - True - False - These flags were added by Aleph One but are hidden and probably not meant to be used. - 0 - in - - - True - False - 12 - - - True - False - vertical - - - Marathon 1 Glue - True - True - False - Glue handles like Marathon 1. - True - - - False - True - 0 - - - - - Lava Floor - True - True - False - The floor damages you. - True - - - False - True - 1 - - - - - Rebellion (No strip) - True - True - False - The same as Rebellion, but your items and health aren't stripped. - True - - - False - True - 2 - - - - - Music - True - True - False - The map has Marathon 1-style music. - True - - - False - True - 3 - - - - - Terminals Stop Time - True - True - False - Terminals will pause the game in Solo. - True - - - False - True - 4 - - - - - M1 Monster Limits - True - True - False - Sets the monster activation limits to Marathon 1's. - True - - - False - True - 5 - - - - - M1 Weapon Differences - True - True - False - Doubles weapon pickups on Total Carnage and makes grenades low-gravity. - True - - - False - True - 6 - - - - - - - - - True - False - Hidden Environment Flags - - - - - True - True - 1 - - - False True diff --git a/source/tycho/main.rs b/source/tycho/main.rs index 5196792..75e942c 100644 --- a/source/tycho/main.rs +++ b/source/tycho/main.rs @@ -2,176 +2,259 @@ mod hiddenprotocol; mod noroom; use crate::{hiddenprotocol::*, noroom::*}; -use gio::prelude::*; -use gtk::prelude::*; -use maraiah::durandal::err::*; -use std::{os::raw::c_char, rc::Rc}; +use cairo_sys::*; +use gdk_pixbuf_sys::*; +use gdk_sys::*; +use gio_sys::*; +use glib_sys::*; +use gobject_sys::*; +use gtk_sys::*; +use maraiah::{c_str, durandal::ffi}; -const DATA_NAME: *const c_char = b"tycho data\0".as_ptr() as *const c_char; - -fn hide_on_delete(win: >k::Window, _: &gdk::Event) -> Inhibit +unsafe extern "C" fn app_activate(app: *mut GtkApplication, dat: gpointer) { - win.hide(); - Inhibit(true) + let dat = dat as *mut Option; + let dat = &mut *dat; + let _ = dat; + + setup_css(); + + let path = c_str!("/net/greyserv/maraiah/tycho/ui"); + let b = gtk_builder_new_from_resource(path); + + setup_draw_area(b); + setup_win_map_view(b); + setup_win_map_tools(b); + setup_win_map_prop(b); + setup_about_dlg(b); + setup_win_main(b, app); + + g_object_unref(b as _); } -fn mk_draw_area(b: >k::Builder) +unsafe fn setup_draw_area(b: *mut GtkBuilder) { - let area: gtk::DrawingArea = get_obj(b, "draw-area"); - - let ax: gtk::Adjustment = get_obj(b, "adj-map-horz"); - let ay: gtk::Adjustment = get_obj(b, "adj-map-vert"); - - let im = CairoPixbuf(load_img("/net/greyserv/maraiah/tycho/tycho1.png")); - - area.connect_draw(move |area, cr| { - let w = f64::from(area.get_allocated_width()); - let h = f64::from(area.get_allocated_height()); - - ax.set_lower(0.0); - ax.set_upper(w); - - ay.set_lower(0.0); - ay.set_upper(h); - - let d = CairoDrawArea::new(cr.clone(), w, h); - - draw_map_none(&d, &im); - - Inhibit(true) - }); -} - -fn run_app(app: >k::Application) -{ - let prv = gtk::CssProvider::new(); - prv.load_from_resource("/net/greyserv/maraiah/tycho/css"); - - let scr = gdk::Screen::get_default().expect("no screen found"); - let pri = gtk::STYLE_PROVIDER_PRIORITY_APPLICATION; - gtk::StyleContext::add_provider_for_screen(&scr, &prv, pri); - - let b = >k::Builder::new_from_resource("/net/greyserv/maraiah/tycho/ui"); - - // TODO: signal quit instead of quitting directly to not add a ref here - let app_ = app.downgrade(); - let btn: gtk::MenuItem = get_obj(b, "btn-quit"); - btn.connect_activate(move |_| { - if let Some(app) = app_.upgrade() { - app.quit(); - } - }); - - let btn: gtk::MenuItem = get_obj(b, "btn-about"); - let win: gtk::AboutDialog = get_obj(b, "win-about"); - btn.connect_activate(move |_| {win.run(); win.hide();}); - - let btn: gtk::MenuItem = get_obj(b, "btn-show-map-view"); - let win: gtk::Window = get_obj(b, "win-map-view"); - win.connect_delete_event(hide_on_delete); - btn.connect_activate(move |_| win.show_all()); - - let btn: gtk::MenuItem = get_obj(b, "btn-show-map-tools"); - let win: gtk::Window = get_obj(b, "win-map-tools"); - win.connect_delete_event(hide_on_delete); - btn.connect_activate(move |_| win.show_all()); - - let btn: gtk::MenuItem = get_obj(b, "btn-show-map-prop"); - let win: gtk::Window = get_obj(b, "win-map-prop"); - win.connect_delete_event(hide_on_delete); - btn.connect_activate(move |_| win.show_all()); - - mk_draw_area(b); - - let win: gtk::AboutDialog = get_obj(b, "win-about"); - win.set_authors(&env!("CARGO_PKG_AUTHORS").split(';').collect::>()); - win.set_version(env!("CARGO_PKG_VERSION")); - win.set_website(env!("CARGO_PKG_HOMEPAGE")); - win.set_logo(&load_img("/net/greyserv/maraiah/tycho/tycho2.png")); - - let win: gtk::Window = get_obj(b, "win-main"); - win.set_application(app); - win.show_all(); -} - -fn load_img(path: &'static str) -> gdk_pixbuf::Pixbuf -{ - gdk_pixbuf::Pixbuf::new_from_resource(path).unwrap() -} - -fn get_obj(b: >k::Builder, name: &str) -> T - where T: glib::object::IsA -{ - b.get_object(name).unwrap() -} - -fn main() -> ResultS<()> -{ - // get jacked, punk. opaque data structures are for nerds. - const RESOURCE_DATA: &[u8] = - include_bytes!(concat!(env!("OUT_DIR"), "/resources")); - - // first we create the static resource header, which is really simple - let mut static_resource = - gio_sys::GStaticResource{data: RESOURCE_DATA.as_ptr(), - data_len: RESOURCE_DATA.len(), - resource: std::ptr::null_mut(), - next: std::ptr::null_mut(), - padding: std::ptr::null_mut()}; - - // init it, now we can use it throughout the entire app without copying! - unsafe { - gio_sys::g_static_resource_init(&mut static_resource); + struct RenderState + { + im_nomap: *mut GdkPixbuf, + ax: *mut GtkAdjustment, + ay: *mut GtkAdjustment, } - let ret = { - // create the application first - let app = gtk::Application::new("net.greyserv.maraiah.tycho", - gio::ApplicationFlags::empty())?; + unsafe extern "C" fn c_done(_: *mut GtkWidget, dat: gpointer) + { + let dat = Box::from_raw(dat as *mut RenderState); - app.connect_activate(run_app); + // unref everything + g_object_unref(dat.im_nomap as _); + g_object_unref(dat.ax as _); + g_object_unref(dat.ay as _); - // then we can attach the editor state to the app's hashtable - let app_ptr = app.clone().upcast::().as_ptr(); - - let dat = Rc::new(None::); - - unsafe { - // this ref will be dropped after the app is run - let ptr = Rc::into_raw(dat.clone()) as glib_sys::gpointer; - - gobject_sys::g_object_set_data(app_ptr, DATA_NAME, ptr); - } - - // run the application and save the return - let ret = if app.run(&[]) == 0 { - Ok(()) - } else { - Err(err_msg("bad return")) - }; - - // unref the editor state so it will go away - unsafe { - let ptr = gobject_sys::g_object_get_data(app_ptr, DATA_NAME); - let ptr = Rc::from_raw(ptr); - - std::mem::drop(ptr); - } - - // destroy the editor state first, and make sure there are no dangling - // references to the application. - std::mem::drop(dat); - assert_eq!(app.ref_count(), 1); - - ret - }; - - // finally, deinit the "static" data, and everything will be done - unsafe { - gio_sys::g_static_resource_fini(&mut static_resource); + // data is dropped and freed here } - ret + unsafe extern "C" fn c_draw(wid: *mut GtkWidget, + ctx: *mut cairo_t, + dat: gpointer) + -> gboolean + { + let dat = dat as *mut RenderState; + let dat = &mut *dat; + + let w = f64::from(gtk_widget_get_allocated_width(wid)); + let h = f64::from(gtk_widget_get_allocated_height(wid)); + + gtk_adjustment_set_lower(dat.ax, 0.0); + gtk_adjustment_set_upper(dat.ax, w); + + gtk_adjustment_set_lower(dat.ay, 0.0); + gtk_adjustment_set_upper(dat.ay, h); + + let im = CrImage(dat.im_nomap); + let dr = CrDrawArea::new(ctx, w, h); + + draw_map_none(&dr, &im); + + 1 + } + + let wid: *mut GtkDrawingArea = get_obj(b, c_str!("draw-area")); + + let ax: *mut GtkAdjustment = get_obj(b, c_str!("adj-map-horz")); + let ay: *mut GtkAdjustment = get_obj(b, c_str!("adj-map-vert")); + + g_object_ref(ax as _); + g_object_ref(ay as _); + + let im_nomap = load_img(c_str!("/net/greyserv/maraiah/tycho/tycho1.png")); + + let dat = RenderState{im_nomap, ax, ay}; + let dat = Box::into_raw(Box::new(dat)); + + connect(wid as _, c_str!("destroy"), c_done as _, dat as _); + connect(wid as _, c_str!("draw"), c_draw as _, dat as _); +} + +unsafe fn setup_win_map_view(b: *mut GtkBuilder) +{ + let win: *mut GtkWindow = get_obj(b, c_str!("win-map-view")); + let btn: *mut GtkMenuItem = get_obj(b, c_str!("btn-show-map-view")); + + connect_hide(win as _); + connect_show(btn as _, win as _); +} + +unsafe fn setup_win_map_tools(b: *mut GtkBuilder) +{ + let win: *mut GtkWindow = get_obj(b, c_str!("win-map-tools")); + let btn: *mut GtkMenuItem = get_obj(b, c_str!("btn-show-map-tools")); + + connect_hide(win as _); + connect_show(btn as _, win as _); +} + +unsafe fn setup_win_map_prop(b: *mut GtkBuilder) +{ + let win: *mut GtkWindow = get_obj(b, c_str!("win-map-prop")); + let btn: *mut GtkMenuItem = get_obj(b, c_str!("btn-show-map-prop")); + + connect_hide(win as _); + connect_show(btn as _, win as _); +} + +unsafe fn setup_about_dlg(b: *mut GtkBuilder) +{ + unsafe extern "C" fn c_show(_: *mut GtkWidget, dlg: gpointer) + { + gtk_dialog_run(dlg as _); + gtk_widget_hide(dlg as _); + } + + let dlg: *mut GtkAboutDialog = get_obj(b, c_str!("win-about")); + let btn: *mut GtkMenuItem = get_obj(b, c_str!("btn-about")); + + let it = env!("CARGO_PKG_AUTHORS").split(';'); + let mut v = ffi::CStringVec::new_from_iter(it).unwrap(); + let img = load_img(c_str!("/net/greyserv/maraiah/tycho/tycho2.png")); + + gtk_about_dialog_set_authors(dlg, v.as_mut_ptr()); + gtk_about_dialog_set_version(dlg, c_str!(env!("CARGO_PKG_VERSION"))); + gtk_about_dialog_set_website(dlg, c_str!(env!("CARGO_PKG_HOMEPAGE"))); + gtk_about_dialog_set_logo(dlg, img); + + connect_hide(dlg as _); + connect(btn as _, c_str!("activate"), c_show as _, dlg as _); + + g_object_unref(img as _); +} + +unsafe fn setup_win_main(b: *mut GtkBuilder, app: *mut GtkApplication) +{ + unsafe extern "C" fn c_quit(_: *mut GtkWidget, win: gpointer) + { + gtk_window_close(win as _); + } + + let win: *mut GtkWindow = get_obj(b, c_str!("win-main")); + let btn: *mut GtkMenuItem = get_obj(b, c_str!("btn-quit")); + + gtk_window_set_application(win, app); + gtk_widget_show_all(win as _); + + connect(btn as _, c_str!("activate"), c_quit as _, win as _); +} + +unsafe fn setup_css() +{ + let path = c_str!("/net/greyserv/maraiah/tycho/css"); + let css = gtk_css_provider_new(); + gtk_css_provider_load_from_resource(css, path); + + let scr = gdk_screen_get_default(); + let pri = GTK_STYLE_PROVIDER_PRIORITY_APPLICATION as u32; + gtk_style_context_add_provider_for_screen(scr, css as _, pri); + + g_object_unref(css as _); +} + +unsafe fn connect_hide(wid: *mut GtkWidget) +{ + unsafe extern "C" fn c_hide(wid: *mut GtkWidget, + _: *mut GdkEvent, + _: gpointer) + { + gtk_widget_hide(wid); + } + + connect(wid as _, c_str!("delete-event"), c_hide as _, ffi::null_mut()); +} + +unsafe fn connect_show(btn: *mut GtkWidget, wid: *mut GtkWidget) +{ + unsafe extern "C" fn c_show(_: *mut GtkWidget, wid: gpointer) + { + gtk_widget_show_all(wid as _); + } + + connect(btn as _, c_str!("activate"), c_show as _, wid as _); +} + +/// Gets an object from a `GtkBuilder`. +unsafe fn get_obj(b: *mut GtkBuilder, name: ffi::NT) -> *mut T +{ + let obj = gtk_builder_get_object(b, name); + obj as _ +} + +/// Connects a signal handler. +unsafe fn connect(obj: *mut GObject, name: ffi::NT, cb: gpointer, d: gpointer) +{ + let cb = std::mem::transmute(cb); + g_signal_connect_data(obj, name, cb, d, None, 0); +} + +unsafe fn load_img(path: ffi::NT) -> *mut GdkPixbuf +{ + gdk_pixbuf_new_from_resource(path, ffi::null_mut()) +} + +/// Entry point. +fn main() +{ + unsafe { + // get jacked, punk. opaque data structures are for nerds. + const RESOURCE_DATA: &[u8] = + include_bytes!(concat!(env!("OUT_DIR"), "/resources")); + + // first we create the static resource header, which is really simple + let mut resource = GStaticResource{data: RESOURCE_DATA.as_ptr(), + data_len: RESOURCE_DATA.len(), + resource: ffi::null_mut(), + next: ffi::null_mut(), + padding: ffi::null_mut()}; + + // init it, now we can use it throughout the entire app without copying! + g_static_resource_init(&mut resource); + + // create a container for the editor state + let dat = Box::into_raw(Box::new(None::)); + + // create and run the app + let name = c_str!("net.greyserv.maraiah.tycho"); + let app = gtk_application_new(name, 0); + + connect(app as _, c_str!("activate"), app_activate as _, dat as _); + + g_application_run(app as _, 0, ffi::null_mut()); + + // ok, clean up all this crap now + g_object_unref(app as _); + + drop(Box::from_raw(dat)); + + // deinit the "static" data, and everything will be done + g_static_resource_fini(&mut resource); + } } // EOF diff --git a/source/tycho/noroom.rs b/source/tycho/noroom.rs index a2390d5..83bc00c 100644 --- a/source/tycho/noroom.rs +++ b/source/tycho/noroom.rs @@ -1,4 +1,7 @@ -use maraiah::{durandal::image::*, rozinante::draw::*}; +use cairo_sys::*; +use gdk_pixbuf_sys::*; +use gdk_sys::*; +use maraiah::{c_str, durandal::{ffi::*, image::*}, rozinante::draw::*}; fn flt_color(cr: impl Color) -> (f64, f64, f64) { @@ -7,75 +10,89 @@ fn flt_color(cr: impl Color) -> (f64, f64, f64) (flt_color(cr.r()), flt_color(cr.g()), flt_color(cr.b())) } -impl CacheImage for CairoPixbuf +impl CacheImage for CrImage { - fn w(&self) -> Coord {self.0.get_width() as Coord} - fn h(&self) -> Coord {self.0.get_height() as Coord} + fn w(&self) -> Coord {unsafe {gdk_pixbuf_get_width(self.0) as Coord}} + fn h(&self) -> Coord {unsafe {gdk_pixbuf_get_height(self.0) as Coord}} } -impl CairoDrawArea +impl CrDrawArea { - pub const fn new(ctx: cairo::Context, w: f64, h: f64) -> Self + pub const fn new(ctx: *mut cairo_t, w: f64, h: f64) -> Self { - CairoDrawArea{ctx, w: w as Coord, h: h as Coord} + CrDrawArea{ctx, w: w as Coord, h: h as Coord} } } -impl DrawArea for CairoDrawArea +impl DrawArea for CrDrawArea { - type NativeImage = CairoPixbuf; + type NativeImage = CrImage; fn w(&self) -> Coord {self.w} fn h(&self) -> Coord {self.h} fn clear(&self, cr: impl Color) { - use cairo::{FontSlant, FontWeight}; - self.rect(Rect{x: 0, y: 0, w: self.w(), h: self.h()}, cr); - self.ctx - .select_font_face("Sans", FontSlant::Normal, FontWeight::Normal); - self.ctx.set_font_size(14.0); + let sl = FONT_SLANT_NORMAL; + let wt = FONT_WEIGHT_NORMAL; + + unsafe { + cairo_select_font_face(self.ctx, c_str!("Monospace"), sl, wt); + cairo_set_font_size(self.ctx, 14.0); + } } fn rect(&self, rect: Rect, cr: impl Color) { - let x1 = f64::from(rect.x); - let y1 = f64::from(rect.y); - let x2 = f64::from(rect.w) + x1; - let y2 = f64::from(rect.h) + y1; + let px = f64::from(rect.x); + let py = f64::from(rect.y); + let sx = f64::from(rect.w); + let sy = f64::from(rect.h); let (r, g, b) = flt_color(cr); - self.ctx.set_source_rgb(r, g, b); - self.ctx.rectangle(x1, y1, x2, y2); - self.ctx.fill(); + unsafe { + cairo_set_source_rgb(self.ctx, r, g, b); + cairo_rectangle(self.ctx, px, py, sx, sy); + cairo_fill(self.ctx); + } } fn text(&self, pos: Point, text: &str, cr: impl Color) { let (r, g, b) = flt_color(cr); - self.ctx.set_source_rgb(r, g, b); - self.ctx.move_to(f64::from(pos.0), f64::from(pos.1)); - self.ctx.show_text(text); + let x = f64::from(pos.0); + let y = f64::from(pos.1); + + let text = CString::new(text).unwrap(); + + unsafe { + cairo_set_source_rgb(self.ctx, r, g, b); + cairo_move_to(self.ctx, x, y); + cairo_show_text(self.ctx, text.as_ptr()); + } } fn image(&self, pos: Point, im: &Self::NativeImage) { - use gdk::prelude::*; - self.ctx - .set_source_pixbuf(&im.0, f64::from(pos.0), f64::from(pos.1)); - self.ctx.paint(); + let x = f64::from(pos.0); + let y = f64::from(pos.1); + + unsafe { + gdk_cairo_set_source_pixbuf(self.ctx, im.0, x, y); + cairo_paint(self.ctx); + } } } -pub struct CairoPixbuf(pub gdk_pixbuf::Pixbuf); +pub struct CrImage(pub *const GdkPixbuf); -pub struct CairoDrawArea +pub struct CrDrawArea { - ctx: cairo::Context, + ctx: *mut cairo_t, w: Coord, h: Coord, } From faf1f5ee5d5b6bb8604a653a923c1c38608be5c4 Mon Sep 17 00:00:00 2001 From: Marrub Date: Sun, 24 Mar 2019 20:04:30 -0400 Subject: [PATCH 09/29] adjust kerni ng --- source/tycho/data/misc/tycho2.png | Bin 22880 -> 23306 bytes source/tycho/data/sources/tycho2.psd | Bin 206328 -> 173453 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/source/tycho/data/misc/tycho2.png b/source/tycho/data/misc/tycho2.png index 4af15d21826506f188bb1ff7afc264a315ff8c84..850eb6997f2690626b3723803c3f91489d23e186 100644 GIT binary patch literal 23306 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 Z{0Ru>HNN3#)EWQ)002ovPDHLkV1g}IK^Xu5 literal 22880 zcmXtfWmwbi8!yd3YIMhFq&t-u-7pXkknR}LozgW@x?yyKAP9^`=?-b7L|P<0`~A;3 zFZSkp?Yf`4pU)jnoQ{?z6UXx|Jdc1htD|53McxKkZ5=jRFoR6lW07pn8QS~t> z^S3czI&>;bY#Fls87xFIeShX(P2^ln6-eApbzRwQN?iq?r1SKOc^+&AE`1Ly=)HBC zXWKqmX|}$F_PV}}$%>=zAFnz-3EWGw2YkBPO})-$&L>YOt#w^*Kom8i{0r>*5`x9+ zE6V&LR(#F_8nu_o5si9=5rVma`s~-x;3mWC4J<<$vz_yZ+5?ONlOx?1Or6(#_?{oh z)4$2&SJz6#eKmctfVwD4l}?~23H1FQb1LgwnXz=#pq;vR@M1{-X(i$fInAzwUEW6GS^WIezXEed$cad*Wh2&7Z4Z z!^=(i88R^dOjdZS=FWz4hW#u>-%N|t!=*39$w}xOkC^WZ-XnPna%C}vFgIEJ7sJUe zNUCjCUT9h<|Aj#8InwXTqnIbQ9nJqedp!ioQNOwIUCPYf$}xs`*<1MhDd-v=)(pWq#qA3& zZ%TD?%|gElSM7(A$DOdWIEun3w|pg^gRo1R=t~i+iYCd>4NL&VQ+QQ)(XeI?(ImG# zi;%F`t=4NId`mS;OJ>yZ*VuFSPb;OR>cp$5I?@rH{YP$GSnqQKmE*@SM+2e(Luvd7nB17*ocNcdu@Q@+!I9=N#HtBHnw)YZGh zHKW3|4jkG(#K~!oP43l<91AED!RRz48?TIYy0IBAUpYS zOu0?$(!0Vm;*cYV>nUD!-`D@KiS8x4;DHhPY;B54IXi(17SayWxMwz_-VPs7ss7{a zQ@#X&NT;ZGq8VXmU@M^pcX^j^FXBEJb(UCjndzE8b4<yW|p$@>#^DwXysDrBU$992dLymhVEV#RGXFzg6%unEh|yNGN%g}%<}(o#nuJJ-`& zbr9^vbVb?q#a?;VhZ-+O<5azu#O><}ja1R~&u4jUu3>&5agv4VG%sIDiSK$u&Ckt{ zi~W7|cz5deVuuA|+mS~=5q&{a=|-^o2>H zAU(o)74%QKgg*`#>{@b0d0q?(Kk34Rd&WP+nvQK%j5Zt}cft=WUPoQ=F#5C~>JBh8 zq5qYG*b{mV?E%;g7wzYg;bE9lb3Uhq;%md!vglh*F%TVOWitjZKb`mUamsg_bAsFPOi{3AOO@`{> z4Ehx>Htqr^<)W^y7*TGqIj_+quG6k_{3Mfbm}Vcet`AeF-BsYTako7V&EnhhY!q5^ z!rFd8=AYrOr+9dJncBHypW&O;OAKTYu^NgAbPPP)`Dlp0AGko%!y-Ajh@254?A}wy zKa^$e%OuOKLLspr!P74?O}#b8PU&jSv18>28mauSW>Uh$@3|4Gnm3oc|Dy)nzmlz; zHc#1e2y^{8k`dRIjxC3R)+=rCw)N<2wk7NtKCSwsTP`CFJATq-f=%_R+04}?FD`|c z%Dj0?l$4A)Ks2ICIc*fC_rW!HSM`51b@4FZ31}5@KnlJ&0N~xh z1n)w@Fe7P>1)!CQ`^7g)?&0ZEtP4|*|C|L6h}2=I|M&jcZIsd+m)@jB6h=8%kjvGiz0Sz8(P4wMm@!XlP>ZR z=duJO|3Ar>WNXWo@oDi@kar*d15o-$fK|!uLaL@(%f!;#b5` za5l^f=sLu7BvP5HS=UXoB_dY0$~~KkZ`>`NUlf{A8~fuKPCnm4loqRjnQ}TIB!n#w zeh$3paf>pnns*0yvVKeFFKR|vAusYXak+W#45FoWX#d?EUWWP|Pgukq&n=nW*jSf{ z6EZDco$g3&EBUNXBOs77DSDO?fN?mkeQu>JDxhdnqu9+5C4(jTRXf8o(Eb(3jPEI$ zUl9QTi$yu&npoewS7)acn3))x4a3-8CLR9RoR1{Js&7`gCUw$!#+AU)gxn(GG9=EW5Xn_WyO%2Z9H&)p zEjw0oU!Up&IzXN^?+$fL$wHusUa{<9k3`$VkgpTtKWf>UwD{1$4dbwcJAU#LbQKsz zz>q9gr7jrqAZ*iG-Ez677D{T|eeI0@q&rRoO8~)Q_#>m=K9q|G+CDSHRQnD~LnjRu-j^?-?%F>uX zx07E3(Lk3e3s-&Ago1fC%+>-V(?7^{dh^|)g!1X|6R}NXSn%6$)d1CLO29u3V_2~D zO!DO_Kik3jcjBP|u`_PmSJ zz8``Ok$&>+cSlF*Zj&TWnB5`xNX*o?wLj7;f_NJDm&WhmUMLfOZMJ^qf22vb6)vz$ zU}dPrYg(8Oz6#VVWuLL>V_}BFYGt{#W+i>fp`>%ep;w0~$7{Jr=~+Q%jn)3{>1sBy zy>XS03(5H(6F=)6kt%eGn$M)e-z8`(#ohiubfSWitjK#IoL5Mk8)>mCVnuA|#BGMW z=@4@jdCtZv@v%YgJ=vsDz0oHnQ(mX11^FaY`=7jq;*oi)wD{25PWV%5K2p+w=jm zPj0$L#J`QhS&6gMjMyx@qOb_-Eb20vXofs_2`+@~Z{D{830?*9OHn@}ASk~_$@-g1 z)3VA}XNdR)k-=PZPvD^+ zXtSBLLvzb$)qE&>F1}XAQO`DScwMuK-K=l3YVGcQQzVj85;;sCZC7>zF5)|luQtjC zEq=8m)@1h)=BIZM!OP4w2P!+yx{Pew%~3W!dB_>BN+EAMWE_{;2rUCu5pIRSj1wWM zVhZfslXjU=i!0S+M$DG=QLaYz%CgeSxzz!yqT~B5Wdl{3NT*>``#$B-S%dB%T3M|{ zG&$0tS`hXoloWB3x6#6g6m<1hN(8U)NB6d`r>(86!%Nj91;MALBJpG2-+L-sG>iI= zxfv+#huv#N)@`Y~EWSzMIJ<&sLZS-S#O$!GCU3Pq_L6w%IIqI`Rs`X$3<0R?1j zN|Vt|Z}b%tb+e0NXBliOY*EFQG^?9$PH&8j73Y?!ndv;mrj>yHF1oXL(te@!@nfFN zGlNSmKmGe(o|;T4Z1J%n#US4ak|``ht_ISOYO!ffMB#Sguhirfmne*M~cvLUUh1Unuv^8+e@$i4|u ze+sw@8e9A-YEETwh2D+MGCG%~F zNKiTOe7d~+?b|LBuDHMXDXYj}`lTZA_>#+#iqT8U0<04%Y#p%Q!26pPGDHbx7~yk# z5MyicycdQgz$=YNy)`b=4Reh=rDXLZ7$T~o*-4`WTQo_kNKg)iaAfhux^;jxUoRwf zMLGOE-j0aiP4+_T^6zlZE0DpM-Mx+cjZ%8bP4crH< zq}Fqj-UN`sJJ^tMa+QMM?a%uUjW@CB*my1jip11-^gl+^xC*-c8Kj;Ym=1lx`WP&3 z2E~kirMN$AYnulF-U)-$%p~`7aE%unF+_zrR93hwX@rf!PZJ|!{j{8a1JjRfUzQ4N zh5Z=2d(9lmaVK$C|BRn|9JR=9TeJG{SnP!`&x-{Hk-FmTjD;4WfKXDm*juo-_#PWI zz935?DuI*FBqM1EApsUT?GXksjA2FBz`J)`nmOP8wXTvv+BJ>5G-563CfL-o=&&X` zJ2QKEqFp*JO=~Yd6GIo3k)hyjghkbkJWf#CaRBjC>^20HQAt9mHa-002Eg1C z?>Jz41)4@p)$mm!AC(nO%WSN`W`$tlAx~D>n-+$-l6M>tf&C!wDX8<33kIabPu*aV zJu?fl_DNS@u6px0NlX5Ma>)%~EhmV!M;RzQ9LHGj&JA9d&jm}SS#V`g%l*8|rc|6KvziS8PbXsv*k5|sh`}|-t z05HLX{1bDHU*|F-(%J;Y( zcN4}GrTI?>%G%o*7AI$L=5&ACOKz*Nn&484_$%t@!bq%{q5N7mg1;*mE`lM9j?x12 zHS*%JS_YGc0dG}OG&FXxjFw!ay{U0hR7@rTm?>)FHL)Xy?f$T`yjML5mhDSQm_yy+ zy7ezU@sfz-P9lp0R)Fs~9nzL`mlxhsUeiT+_WpK1We*Ft9OgbHe8_=owXPz|_U$)S ztEb^I#DCOQMpyWDP@JW+MTR0hFC3GvYxm`sjdZo#+?13=+QLIKw+>ZvwWxRP<5{mv4jgs!95M+>TVSDcDY3$C&tG)W}pHb(<4 zkZZohI_(~iw9R9tdk4CFioCoURgg_eV``9pyB_v1oE1`*BriQ=PXbzZ0m;75OD|4a zQ?*qQ@}Wr zehYqXYm*~`Y44cFiL`)_oXmUlbS%17xoJj!P7v0LU{r56K+7DD@$c-Qpy(yP?26~4 zr>LugQ&wk;Y#qhqi5Upz#mFzY^prBS$KX0n(NHP~L{ar-Tp6CcAZ=&3eQ7Y5WH5|` zceBK$J}s2a!miX{NhpTQp2}!;>;@fSkg4M7&TDC1<8g)7ILRPMGVATz+c7!q!h7}gPg3wrgY!u5wCRU2 z@S=;x4UL({Hdj)Np|y$5+rUU+8D&X3(0fI@pC~RZ8*YNJbZJpVaPZq0YaQuBMJKj) z@en{V6ucVLAN7^bbMMk9i|Y9Am$;7$`=sA^cupIW8)?I;f+(~2*c^>YPYIg!1hpS1 zG}V+u`JFfmloEKG*|qYS;(F4hyMaM5kU^jBTSkDotmJ`+qB-NjEx9sC zB-tx*L;CD2FZ&jwC9(*9;DJeAogGqEKX~Dg(DWTtax8YCCn=YuOgiAFs5l&W{$%d~ ztfRfK|JWf3nL%N{)1=t06bAb4If{znfU*)Qy?|$&N`7o@nT#{ zEw=$n;E`~PVe2@$IS^)&64@ok{^>XbgD}6=f?nV^BcGC1w^&UY@kC&0t|sX1vcj&5 z8GGrfpCWo03&7GRCoLki)^2)Z1IHA_Xo`Jp=~vzl-IAAu+$IG|@}OkcS2@Wlk@CpH z16DEiRa3C}J7a$hnHc+~kljiFfsT^BBjG^l;(14#`k!GK##It5J55o{6HnT#WR$h* z{qw|F>UkW-U)WHsuH}8XaMQQ)H)u@K?e-K+k5#n2W}d0?*5gzd=SPz82L9GON|ZCP z)~x#BOrl+#+sr3%EAlNLe9zziRIWdCE35tO#Xt4$jDNfqTx@pNw;-dB6y%BQO@*sd z5Pmnok1x>uUi}dHSS#Wnn#7rd$JSLbktGO%6_JBM3OV1uy12kvEoen3UCG^)XmTgv zlu$B)s&@exaJMCK?r<-fc~Dt)Nuu`o@%1NodjzE~uMsE|r+PSowJ;%h;U8_60b zI@QC8>BF~OYoR^8G`o-dao|& z(N+I7jc@bTg?r7p?AHf)gE^I&zC_aGFjxR4xWtnT`C2@n@<6K=XBlXj7n zd=rEmySkVT@ue8xfohNwZq%rzzxK&4g!Qhl(^8vXB%%F^Ai<9|v* zUJ(Sp)(%nMDSnvi=bhg%`z%buCP76dTw^QvV&pa<#+7t+8=JixZ55!=uc|$SJ2GZv8_5CgS*hfZ_AZt|S;y5YW}3<0`Xo;y&R+{EUmOqZLr`N6V|vCs zy+zq4xk0zG9vhz*tSiHBE!Rf5g>r)TtieZyil4z-KYS~2tCsUldm)tM`U%vbPNmpbyr%GHxhh$6P?oL0$BuW;&3RWsZuV`oV>%INo zbT!~^(!*~d$=hpBU3uZnDvwcISYjCO1Z7Ab%-jkK89&~(Dt4=8qVo4!5+hfD)o%>lQ^j&W6fq%#ro#SS*&{5?oHAhc8*98j z$xg%Y+CZ4%*FSR~lT_k={r|EzEGTrw<}+=1dQEOpzsGjk`^GZn9V+rfWi>tdhWpec z#)|GtwJ3#Nlj??5KiH}o>o=CFk=#1&_t3*3F_Tmd_B|C%O^BKzrhiLF>kRP@_wd7E zX$}|{U~sa|R@xTxqdxnI2T0RpCOXsfe&a6t6-TV}QwC)(1T+CvB|SY_bR-~>O>SGTtPUb4;TC6sZATY+Sam)FU;mCCn0ZeB zBs~q~Q3>UJ^->jx0G<-cgMY^p$D7r}YQW5D97QkxJWBouQCJ;pTy2lSnw8-`n-X<2 zQxQRw0NCk-X&O0{PeIC0bFVomnAYtx6kg|5iMnYG<1>@rp{WC>h&d6nj-qm)!W??W zQ)P<|j6NV?g*SWVd5D_Fg=2?t$cmw(e5_lc3=yoicif1mE)s%FOR)zQ^Z03@{kI=S zg`i+Q%aY$axgVPTB~(}LL{+S^l+RO2&mQ5tB6%Sz0?gAl>HhFET&pp{a}2=Nog6Kz z)AxDK8Z$f23#T# zcgqq>YRc!p?JmEKk+x*#Z-Hh$Trp8|uZK!4S=~o4g`9jUvt!INxY9sk#fP?n{9h8D z+@QdmJ07)?>xr1T$rSAeXw%hI(Hsi=)%(}l@g4s)wTd{natY%0-qghQpe?f=ezR%> z%()A5?!^-iL~@HEb*1AN$@12hxymLgy#bb#-%?G#f5;F}$X?uz-=tXh0jpndBT=_k z{3~!X`QT1O6cE#~JkQxu0&%O?yNF-d_tx|)%8us&Qj1MDP#S#xkvli?p8Qsi3oIHH zJfX#1+ETRhi2{l%rK4pz9|2VvRArx3!VZXNG~~q_+ZDUDwNKgQ8GK*#c0Y;y8wW}c zu>C24HndU^KgP*wPOcS}M|sNulHqpy!mXK4(rxTUo!I(`9W-e7gGZBVpqV#U9f>y; z=NU7JG4Ki=Y6SJ#UKz&tiK?yf-PiBq1t{cMkhv9mtt1I@GD=swz}y?^dUy>i$^R0i z&>RpC04?f{1BFQvcoPBaWWHq(VwT!PVh@YCXq5C|CDoCf~bn~TDjhLsvOaTesLMF|04a3DcK<9KB4wU1zFbN#|7`CYF^ z<4XN~w`8ny2P?k)t4;PrkvvB{xsZnpYT9y^vl+7Didnn@B_NgIO9dUhi*C1Qtrig) zi5BT9Y49ioMNzs^yibCd9)xn!OdS*13d(KBP2#o9vvFYGv)*vVkze_)>-|bNd(0{- z{Wv!%cdA-MoD$U|OWAbdm8J3WynVD5ebokC^DIAR+9+Sf@r~3vY>h>|Rd>`Hp2q|) ze^)QHCD4wFyQfpoMUSZx8vZK7oi!cmKy(+7I~qZfHI0aw2_-d{O z?VHALfDFfko=@Lp24UUKwvv|jq!OKErkjX(h~oYSTiX-I8DmH}UYcf>9W#_#ycYax zh4aZ5iOq76b#0=_@Wa92ot5q~yK&)+Da`hxW6TES6zuz74XM89gwad!--R7a7Jt9}7u-vJNv6s_g z=>dq%5&4?u26H~O!JDrci6vd{V|OJX@U~#DJy{=#O}KG1joi}*yJ6Sc%t$0{cu;QJ9tpiMDb``tL(SbIZNxLIQ;94}Ve7dcy_w zJ5F>ds=>AzUFm2hGxlFb!P9Izb%SW4X1|o~@f$j2b)MLkX3l#Z%_H}$i2}=F6LSVg zn5dN%JC;+m7zX_TZ~G*^FGL>SD#FGti|HZqbrW_2HL;;NUmVCLjt`9DpimOg?9cL~ zUH+?kYW#72kEt6bwjN>JA(gG^7r-Bo##*>Tld5`oD=_9D7DvtnK*)CQj&uhCt9awLHTG3Sm!F7h3;yf*%K<~_AD ze1)Z;iI0@qb2i8%MQ$Yq(bU^xjQrgv${C$#9mXPREb?9vSATQueHSqQm4U z9(O2KXhNXJi7=?xJlc7D3|69tOsa~@4?5x_+pm^8KDM)mzifiQ64&7Be#-d|q7BpU zrN{LQT31ixL=X8M#I=Uh@?(a3P?XlZWL&XkE(oxB(f`plLbEnV5Hl`-&&Z+(*BY?= zFNwThm{yYjm#Bn22ASs_d648YI*J|r|NdjMV4oLfpt!r{rdhTJI*V6VuEL-6f;OL< z>Utje&Yw7wOb|Oylv=uH*)dC1sN*`MN>j88tk2P^G(_#BFRq19QuUbXc?ZIXL!T-cC-xgytY@4gOWr##oLj6BbSZvMQ!InPPlI*RI!9^#@V2(i>?7n4$0a`~M!P|R~tNe^MLANU(*gj9}}xG+wmh@+_a z9-S!X+kKq1ahuY;(3Yf=R#dS!T#lkuA{_{##L&obKZ^5Snom!5Sb2>&E!CEDQ)&Z; z(M}N#quKdlp~&sEgE18%7Lo-8u2?$-@ySo6(v0@mSzm^SB5PK0?BiS17paBw*s{3# z{k9Wjq^O*i?J?g_i*?$y(h^ptQ@^xyGV5>H00tfWa8bWxd2Ne*F6u{?uIYp8D29nr z(R0?-@QW=#GDg0b)ioNIMl4YC>Vm8tn%~((boo}V>LaQ2(REsDWbMY7$M|V&$x&m(L?>y|_J^aI zxcS?Mg5x@FNwKd+b@_;$pm$$(UW#+MXti)+k8@*>2T}feddJ41P$r_qn6|2I{);r& z?^=enbl%TVsBlkB&JQgEQJ~|44g0bsdhKM#dj5v+vaOF_ z-#W5epWXxTN5QQ)HCui%?YEqYu(|WQ#!^fho)op5uWy@~KXn`YA((c-YNurb7{|LkKN<=5!E7HX(nem6o}}>mF0zM7m4>lT97-6R(xE z{N<1Ev}cHYo9!Y@P^748skJ`dPX-Y_*`+8a;rl3CEs|WP4w-8fn@InKTwp zcb+V4gI1C$J$}1?;-1bXHOO9y3Hh)8EX$e}osOIyHdc;AM`zU6!T-Lj9=^bLW37V?6^555d4cIZ<_z5XK9bs4F+xsz--d8i_%?nMQ? zoBuPYJ+@neWjzELd813B1({dxUY*+fauoMNW7lt$sHtu)(QNx|JZ49 zBL4jwjz4>iP_iw<^P@9Jc3vgAa`zPBf4!y}A1|$^(+ZpKw4NBj^1%t^N+L}keQfE(=tq^GDLr?VdW!eD3Z_dzMn*^A36W3+VY$HEKyP2JTQOVH$q17 z&d|vPEcfos(u??^4zXbWuPpN`qEUPW#Ihb`}e^s-Vzb9I)p%TRWwtYC0BNxzt;YV;iI<>O}TmF*gD z(*XKKzOcd5h&#^|0U_8?f?jvQkrmC%O!p$2)&rNY#%VpG*&D$WgQZ=dq!dx8bD<|n zQsQ5pNEGL!hLn4$LAwlCSUUOfP*_NK2Dn7Lu_4(KPPLa3u>bS-4ZQhi$QG@1gzZ?G zWiA}Q2bp;6p&Oq)&eD=wOufre4{!qyg>Jp5aV)Q8{Evk5q??QphpM>n(~n z7M6T?M;6ktx@c#d*lu<-8p*{9sJc*%e{2$Q7VWMIjcifW3M=?#g#<6iRLI<*PMM3Z zi1kK9p_O0t(wP-D7QlO$M^QGy_VuMp=W2LxW*&1&(|I0;M0p-Ey$*^mdl_xe%&F)y z6V_xf(F*oCPa=nIJEw+VNd+mY6Y6BmNxLd#xh>>U-`kmLLv_sHbiez5kwHS)<2;tGvhl19?ri zvY-b|#d;HNlcgf%5eN2h@~Wz@8?mA=+6!+dUQ#tW3&$t!8RL#$fhJ-0Xj}n~c|mrB zy;8B*1`|Y6YEiBwQ}q{)do&|{@kU5sF8`_?;Ee<$OAUl~(wNOLv&Ihr3oDPPOYLV% z$g_9oTO`@?Xmw`};iY!s+Zp8n;vsSz4ZB=yIdR(iMlU%(yR7puW${mbfD& zKmvmmYKo(~SmL^4F|6Dq{3j(XGYH@NmUPZ!aP%nB5gK+rUaJlVAc~N}F`7J_ak8>5 zBQ1p0tYz@k(K?w|2 z|Da4;tGB6wsPG($_Sn2y(xgL!VP=e7wTS2!sV2vlw2W1$FD?deMPnPx;b5O#Y3quKe=#av%e9+x>_HZ80PaJAHF6=T z9K7}A7@rBNBjIN5PzrsUvc~2+$D*E|$cdS{(Yp~>J!@vkrY`rRP)+8XL6z(=?+9V4 z@Cy2Kl7SrJOrMC77*T8Fy#&m3pIud`x`@99C}&P4&>0vM{rtH)s~1qj5N+Xd6Fn03 z#G&wqB;W9e{9ame)yPlTAy1G1uII}X@+!+t0UhDU#4v1MBVK9oG9;Or%GF5}a;@|Q zvcD!fs?l}H0FE-$rpq?o->EAOkDB6>9MZ}nr+^TLEoJXBpvszb5Ljgn= zVJ7CVl}y@W(UIHm2a|QXy1%#om0HlNU)}7V=)3tFe-e?HNuY=Qhe0FZ!pjwFA+uMY z-%STO*4=L=%g(?ajc941vGmvZ;7p=#8dTt8Ui!0a_ovQ$4iEijnu{i~zN!Su4$Pp} zTq7@PR=<@wX@bPLr>cY#X0dd@{>kKZJoXEkjAQ|Gjb)0F)~}F$P1bSr-8gHp1DamcAiQR$8w9WUx%jbI+(b9R*)t| zP$ldv^XLDIfAn=uH5|{K#7gPL*Vk!dR@TfT4tgCQ|L7n}A}0zC%0}ab^vMPfNxu~p z$n)SKaP-NJKnZ!fl>wpw|gR@DEQ_ z&RkqsE1QaK;a~jyrDDiQUF2a~>%gSouV-g{grm3bAO857Ux`1j_wzhHO!}PumZmAg zcETr5n|J9!mi@<4#ek8~vsdEsSH-x?fW}XMHRxA}6aH%6ogM5Y%#{{~C$RmKkr_81 zz$YU-CUGa&i~*%cWNo^mZnB%dUidBUNYi`p!ibU&trIVqiM&)Yd)5=P=)l{Om_U)d z?eDup&&Rg&%#5?wkwj#@)6Q6WD*aq+ z6ZFv@x^d7>h(WLhHK)_}NG=E>N5@p-ZCNYKFqoSQA7NE7X4x>OodJ*B2dSU2b3uEB z^O$q%Et+-SAwZu_JuikL?RuS zkmLR%-r*BUn%SX)AIpl!`H&#nF4D?FoZQf1_n9rJ+j58VG#d&vPhr28Az{ijic+9n zkxRwHnM;5McRGU~Z>i`T@#j_}r{BS3ffl4xAHLt($g5yUCUG*I8emwL5B1IX>5#>6 zQm(V*lSmVKV~mh}dHXD8(&Nbk96}K3aUlybct&VK#-dguol=uO3;!!S#2ck$9fMR>=pmLQQyzw&V;J#2mSyz4 zWd^jo%YiprszyO=p6qyeXj!i{$XES{rj8i5(uJw>M(c>Dm>_i%QliQkxQ4`j?_S)Q z&OX%23$7lziOsl|0cmSxi2RS7~`dBCd!vuUm@Ej1n*A<5Y>f)951x(fvIyY%C`IPsqBib*#Hi21i&rY@JRi&VJZ!E) zKf%W^pkYsHg3|CbMe*Q|0?s8-3~id?8EU#eE=?0S7scH$3{oySwA11YTed~C1ip%z-UxU5q<`=C> z4{5PhVfl_z6(*(qb*BGL?roI9o~rWIN4>o72csDX4wBPtGEK=3q?h(TK1O$bvZ;x?ArbOx zlno1C%9fp&-BUnrQ1dD0xe?=K|W!wrNNTkDI+~V@-g&CrNUynl8zy z9xIt9D}L2LOY}VPNCaDp%qFrm((#8O6IOaV9^s+RL>vDeSD@%Nj0ZpF=i;}{jbJy0 z!SK9+&S49WSkE&zEyOI&ns8$@-l>bDxD95{7V%E3-B;HRVOs8vCHU$XY}JwVen{aw zJsx|p7gov>2ZaX+5E5Vrxg=w>SM1acJ$xHMNI0fI;XguueK|h%6=vUo-^eAQkKQ@D zM?zITuiEGiuI>mNN*#L3;J$ZF%AHiid6O9!5MsRA%1xO9k%5~K@65cUQRu2%TY&26 z3M(l;cKRv(+WY$@bS*!sjCe?nDDq=a_5^kEq-4IAP__OI&DMudT#4$43*@-=Gbv%s z2!V&3D3Y_5?SApq_~^(4b#mS-ZXf}WQX;UXa0`cs;1nehW2dKH0!O)i|9cn>lpfUO zj|{EZwWev}9RN)>PnKQ{9b^7dvKOM0vS1aR}Q{+WkLZ7*gu}W&}2XtZcRoF`x1~xI*Ngbu(^TB9CPb#aZsN~=-hbu z)XQUB>hJ;`6RqNs5C!W0kp4v!HN}~oT3WDVD)7>86DBh=8So{oAnc{_ z?4R)wCAx)evMI(O+Ga*VW3}pJ%Yll7r-mvm<^lDpE|#5^s9LoFhGWF5QYy~eGr%bH z@UDfFopuege_^mzZX64^<2(L2Z-d{(l_Y`FZwdF`xp@cJ8Yr_;Gbq9BC|w6cO$dc)LaGD%mP>}L{>SXl#IgS2zsDuB+c)T0#Ek~Hy^zg4eV#zFst zL6OTa^8jQoo8utWC5Mc#<_{ur0;qL~6H~d&$KKMUA^yGVrVm|ND&<@yj4EG!`lg?@ zA+y+@Rr}jZp6@Pufxi)Gq}pyYQJ%CwHkk@-jC}izp`m1oU7$KASzKjz#;EUodYDMU zn~A;Zc@_Ry#|9NYHH63yrm%%)5mo+VYR+Q-`*@UsE@t!V z>C3>EkXH`b>wWq+GH_btgq7BT=U+J2<{Mu_gW#!=huIFHn^%?=OIvT*@~61JkzIk? zB?}vt3itxtl^AfY|MiN~m2J6qw%0f{B%O7UC)mC6xg|%b7B947-Arf_*&dr?^A~@nRUBV(Nz||&@Wc^>&qm~ zF}em9`BXOi_5nocPid!_Hu!Vw#a2a^6-nYd`NO>>v^DbW_5$68+GlhB7JV%gYWZR`lIs=)I2k zt*>{N9(JoH%M*=To zqaTGjrt+WyM$W2(&6_>rzz_95HHnMfCfG6WrM;J7d>v$bS$tfUOzIs)a^MNS%(~Pi z6+G3_M>uAkv?d3P6mN02!FN_@wV8zTU6E2#3#^$4(;!}r7_;u0>grz5k4M(T{F3_t z7&Z0Gk*;d?taa_DUmt;-fP!33*1Qt5?)sACX%EEB*mXVL3}-VO#l5?5gl+ zM&)4f)~)d7D7?LYDTtcSbp$=`P@s+Q+J}qXmKI-V-ZyK>{}NR)RQ~fT z2!OqCNEC2D+D2pYu?m^dKm`&=)BiV>Nj#ZYm|()h#P&n`0WHAJWTsUXFL4q_Ty}`y z=~hYRe z-5p9Kebujmb#c1s733%^@K%mmg@IflDpxS`+}9puC;#_c z_-pROlJFNxfVs&4b0^vY=C;IU)&rU=uhKQ?LD@zb88h_`9uW>}An0+L-^;bymb&`- zZu=k}+5lV$$OJGsSLeH3WT;g?=odFVq=4}c$F|y}3-ym|;o|c;n?#29g2uN?>^V3d z?0vda=eS)0Oj(R;dviker&n)1cng zVFZesxCtmp`Mb(HpHgyY1y(fZn9Sbhh~R-K!;{J8+64rBW^=4u!FSbNgZx*eSd>H=~aivm6m zkD}N9^Br5+X)JGj85aBrg)IXJ6 zH1%keJy)iW25f5jzcnEajOdd>eGodv1Omp|+1F5XyIduvBox?QB`Ol+tBFh)X=N^? zDDpqBH-LOWlwd9!1hvm8nmXjgia(!FZ%O3qsz*uzjzE(ZTJsISt2dlh135;Y*umzU z>|ysR$aOxMpS{z(G8#GUl=g|bx??N@!X*qN4a3Nl?Yq9dHV?8ohIEUo0TGUo9D8B}Z!67zkI4>o+D{ zb|1{+6lWAVM-4VUYCh+cAfweDAC5OU^2`D39DtD{vGdrmpYAY(VsQ!)#s=Q#b?rqLPpZf#h9RHNH zjgzJO)2`L(@VXC;I{f2}@d#=OJGnL|vS7)i&7M(R4C_VL^=eKm?~qJhW*idI>>zGp z^2Fr0oG$lX>Ck!RI^f@p$KKjn(+r{+vK)#0y6HRaY# z>)G0J<4nnwd7Z~9VdrI=SBxv)#lsv!u04SL;>__mxordoc~~tIkkGud>#W@|LtZU7 z>8O#w7KQD&$Kam(IY(5PlV^P>%&fol{2U5IBBd}6>ecGlUK@%BIN$i*5U&qC+77hS z<78N~LX7Fa^gCbF?7>C^V~kxN;&CL&MfG|7JAiXV0R|hgJfC~|oivo~H^Uyg%&>&c zRK)CT1Q1ZLWdN(HKJGLPSRb?v%=NTbusSk7>Uqpa4Atc}Z}@&*K_-N4-FcTD&hVwVYA<}3h*hqVjkuF0Y_5+*TyT#ujFavAXgtto?86L2M zR*wR)$0-~3gjm;-?YMNH(5g1wie4;3WI|oFqcy2-4LAfz77Is@i38+9tk5LxjZ=P> zJEBu2T?ffW8W{C()3cf#rPVQ22*WewNge(Ia3if?<7&|=b>ee?|AeyLK09-P2DR6s z;=Ci`>G{B=vLww3p3>)qv;vIkB-!4WEM>_b*Dp9_!eU7jLIlIZWN({nB6@rpi5jgr z7#jh02`sV(Q|(?HQut%3qO9nNGk}g%4i(J5_X8U$QCxf(a@~C-K2%xmJ2DekwzM>G z=>t=2z2h{brvTZ@k!_fVijM*;tpcMY%dW4YWP>?Z@5%Pon1rLQhs(s{EN%Z!JC(_A zbpS^f=A@dmzt+Z}8bt43%T`1ND^9u8RZ$kEB>t=`#)37B$-~m(U2SHP6 z>EX;+_6S$=ht3{$&|hrrPai(2XA2>=B>>@`GLcesdyjP;&qv##ZUS#d0?>pqJaqFV zMFBT9`fX3YN=+>BdauWI7bol)L~yuv(ENtL{irj9)Asa_2!i&R)IMY|-<~|63KuOy zcKzSciZajM1M|e@XBHR&f!rKYq`qiF=GQ&h-r~{lfBS-hN%#(`n0E0`z0E~VGUl3? z-$h0?%u*Wy=_A3m?Pxx7T%amB4$^l~jL_rDAU%@}NsVGmnRfKEkaEcommQkb_Kq+e z(;EOb-)z@?LH$eo{a>x>(>LZR+h)0|yk8XRL3eEzDERf7V@Vm9{fZ*4$0>Mt%wDqI{bEW9wmQ?o{A0pP z`yXQvavY}M;Go%?EBH%You@p^mD__)vEp+3o_&&YHvk(>kJ+z^;3H=I_ENdQloSr8 zmkB)ZDyCykAbe`p9DkXVyaQ0SfVyvCV?mFRs(0(Q+&gv;mQ|%9s40e&jUGWHgbVgv2ubm*Fa zba!Q6z?EFbN^^0>%k-3#IpiQw^2FX5*K* z`OQE?!Dx9Ed&&&F7(z+81+~CPTXJnK&?f%IXnVV?X}}7oFo`;5#4WO$j!qVtmXS^9 zBmCO_9|4Zv>>1%o?d6I?_}GFwv($WPkID0y-fxZ1@iCn=2u2p6y#1T5XMxeyU};%k{Vc@-uG zwH(>~kNtTWJ@tVa%JZUfEvv*ci{*0MS~3V1Y}zS(mJv_Vvb-X_HD)FC{>|b_a%fTG zUASli?}RY+bNTKgHP~HKQbqrNj+M7g{2&j+qL9i*jLL2@4b-yq&$y9~@y{!?o>)7+ zEafL8^kn$_)-8*?{pQ`p)i`pfKJ$6Sy(43uy>K}0*xSV+Jnc^*3$BW4@;nEQ9Pb0E z1GP)F#dl+~W_em>!)uv zA5>|;Cdeeg#k04V(o8AQA2kcr=;>K-^`UX|V+u}Wk}(gTabd%`!+7N91O$ML$s_VG zO(`J|?nQJ^YTiyx2(z0{MAnlLR;a!gP~uF*G#zFjQbF~4UKl%qY?e#e+Ol{c+DD8h z)}$!eE&+>A@9Un@{A>$Tvd=_9UrCA@qDY+=6Qst7mB%C8<|n>S<1cT%%aP_#%%#bk z;d;GO8y}BP?;B+YUKi{KiqN%gL&}@VFu(4zB^=#n9QD!kIc@gInIgb^-2QwZeE_hD zIe{(n3#j#O{dz)IoimN^$!zO^QqDej<_-#b?c8K3JP#A=%iVyM(PE7U^V%#g3Enql zyp>8Z1B7tLGg*Idz2!DLcI0Qaa9`1TBM4=%Sudq7(T`Z)Za0t*`JT?41T zOgikqo4eU|7-mlB5#hk&1}c0%yFYtnjTRWj1i>+mt{iC&r&(`3h}UI03U;^x+T<;tg91_6p5`gp(_+H z8yz{lRFUenvNw~8S4%ocY3#DQIox`;PyaEY{D`Sk5)U#sW{Jo%N|I$FEl$qICq1!G zkET6Nlgk3a%!n`P?xfl&q9ODKs0vET@|tk5;(6G`mhrlRipQ#|iWQRi7@ekiK{@PH zK-UrM_$a)>o+V<2rlVE;2}TZ|N)hvsT2V%3x>jvNG-?E2QkZuIu8#X8p|YA@pJyaB zY+lZIuc30!$7H}<|Git4MN7Cdppg=?BVRrsHT(tBWHfidYF@R7B?7FZLXR4MyM&7a zZn{W6-H|UE_fm=+h(xXA@J)s(N?F9vIgL*J)Yf^;v+=9g3HoSh4G;Xvl5a~1R1MAPz7JPZ9@Bop%`)gr%6tNI zH}yz(25k0cG-geOG>xZ%RwtD(?>9=bcY9WjkKw$K7M_*!W+D@>Xcp6lpIFvySe0_W z4=ZtI;L+ERepX6454*Kevy`;~F@9^7$+~io9pCekQy}eTS(NA*m~C73)!x}*>2Tks zZvo~qI~a3a>@f_Vm59mL&rPyEI4ZSn^SZZLrsretuBh04HnzWi%xx`_e1sZ0KlO3G zFC#`A=04AZ{P@_FEnxY$H$sw=HBm)Rf97fDuXL*K2;tLSqk*rJA6y)?gt}5xAaJI> zewUw>#is`0$b^5K=B9Ub=G#tY_=?mnjq*rC^TZAz{%Aq!r^9K3N_s?U@W`~I=uqpT3rMTqm#yi#=tXA~xQU!(s4&GET zw1{9z$5z|9HUG-7F8d^nz8YcJPg#V}Sl$Q00@SK&k7WZa6v7s|uPe*wui0#+YGSTX zImJ}U!{hvWuwVKs=}Y45=6_5j#w^&^#=h zI-wm2&06(5uYHZ|Z2jP;kE=PWw3NI0qjPzxesa8pipsJ(OzO;aBVN)uhKnpJ@FtdP zelw#%8FKSwg{2-c4(oqGqn*ArT^jPD9%L1jUx?pae7Zz+L&%@86FHny|57?3+VyQl zxBei^%lGHtQl$YTT>~^-$QPhSE-B{7vGfC8EYP!t=u6|zgMgY%cK98 z2#p|WH1(%l0@Iv?X0pG4TwTB}8`;i%w@>`t{Xt!O8tS}fes5f!aWgA@#9aalQz>ooZM@J_1)D)Oe&<#6XGkt_2Llv{Wk5}e(L_lRBVjLg+4M#wDB zTF7kNmp=+`+~tR&>>!02hCXj~)~>R9vPB{p90SY+nNNP04t&kaY8I?`AYSMIG5gum zJvP02(Ilvt{0d~?z2JWO$N1oQyKO1pPWJmMx1scVLs&ns>}l#N*jbDBaPPbD7zKj_ z*9oTla2FIKrg&CpR+}<_%apAD^w?eb9+TPE1biw_EfJ4Kbwn=x?s7TyVAL2A__i#G zY>iMX@hae+zy^!XjcvruWQ{2Cc+?ins9%Z$Cr83@>2ti^C`EB|eFx%zN78b)Wlzyx zrCcsfa80{=6M}nD%&O%PnSen!z^7f5N;Yy~i>iL`Vs3|n0QzFdv7la!_9}7PkXm#? z@-Qw>2@?3btkc8NWA)0Vo3!Z}BoHk=y6)JEk=y^Xc8d5ie`DH&GfU>puzSeH4(@X%rxdO+=k+(AQ~rCpPH6qj4){v` z_XMy=UbmX>|F`|lb&BwR|NPtD{C~ZIx&iV{DEQd@I z;ebCu#Yy4C{$-o1-^8WU!8e1R&^G_o;D;XUWS-{D;HdK*H3@%Tvf z!nP{=23b_+hOZfSY=p{`t}TVwo_Oz7!Dr_^(PR$#KmV$Mf?``qekZc#vDN&U3ymYk zs-C0IS<>&{m!Dm)SQ;%7_gY4b&I?Vx^g_i4H zHEG&=(Ir2%X4t_1x|2Gp68Cnp?wyGnnCiI-=hYNm_+NjIo*)l`@)jroWSJF9VAa5} z1M1GLqZ%?iIZ>Awc3d$CdN^3 za`J*kE~+;Dw3R@wP^z|ZYd>`@x$)oW^jqQ3WehRGEH>_=R(BnD#NX_8FS-M|} z-v66k26OzyLeSSBMx<{+kek2 z?rjyEaxO9T0Q@AEj(X^{sVPcWpYkpG4iW9({D_Ju9sqEcGRy&1(S$*z=Zu8_r|9dP z@H!@jg==p~aAuI?wi{(FFVFnZkitVxF)`s+=kN8KLNA|wzhZ(r$0fblQv#@AuyI2* zVj7eYt^~^7%--e|$unMnjSdH7a(RDa(k_!mG2N;2>Y-jH`9l*0-z&n~VzFC{{m z0EXJ~Sl6QV20P#`b{7s{w%^*q6D8Lafg&|p+Dlz3HPQKLPtg~;N8Vg%(%yNQl6@Gr#UEapLc^^ILn3c%h3ANV!rBYQP3h`ku=cMCZp|wyyB*4`G#B2w75x zO%`gN6n^MY5lPHX8*7s|Hd<9vV1ytay@3P}hcUwl;0z?<_ngq3H4 zsp$EQD<)N8BeD4;C`xL|A=1=n#e8SY+`JOBb^kO2&sfMO_HrynQzM5tpYKXXEJ24@ zT~zYioWI0P;Mlz~HBOIHUD`*7MK#)zP!&u?w>vBq|M!>HuL*6dR4=H<*dSEV(7Qle d_Ai(6@4eSvayOGg0p{cznyPv#6-v*8{tq^@%47Qc1H&syUlr?MBxlD&S7jn zhv{Ly>|ky<%a0on#OtsB?NYKnD~Quyf3&5$iF=qcH!x`MOaa$>riTxEW-!~9qwip^ z+Hbnu^w6+SZn!UNdT0nwXg9sTzAuOG$F+kv1{>?MD3b8t{`vzjf;Gn7i{;E0a9Nf{ zR)%a-3p19rt&ypfiLIGMAC{SkskO0*wXvzWp^2%TiIttXElYCf+p9vXpMc|UH)5cR zPH-+;_SmPuPWKBIPrX zD`X3T!oq|2JQn8b>&K4>@2{_qFC;r8^$HD>U5F<%qUvbG=7$0{QoYYS=jo zxW3_hfe)V_VoxiOmsC0|XJ@Q1Hmn|_gLoW%l(1(%;~%rsH)TCH?m*vgu076aXku+> zX6XZZW@>9^W@Tt%VP|3@$AqT*frmSv6XZWb%EQ*s#N5!#!pF=6vf5c%%JYz;{E-KA z4UTWP?{9IDr_tjxHkHe5^S+g4N)xx33} z|B3ZLK05+;Ghj`RNE|*J*w@U^hAG-F$v znwrwO02h*D_S1zt1wk-i`i98S;JR?&VjMQtmJ*4HpRa|XrKyFjp$*&I#L(Q@(%RCT zV{YkZV4s zm5qfmPB;%W06-&PWwK}E&d25SGj0H_FP1E)BwNtW&G~yGp!v&X|Kn>!1#)@+s`JvU zD5^hZBINsrNBIi40|G!perH^vxi-x9Bl~{Fw7~xz4Z-I{as`cP3TSX&n1Hzgp}oI= zAIb^}^$p+}`-O(F!ugU!7%xEDvU1e_!CDD@BmbUqS@@Z7{kdjbLu-z|siBRvg_WVL zi51(B%{B4o+WOgAb1a~L{RQQMQQeH187%B9Z0#&f4NWYmnc;s*wkN5+75E!mKrT|v&r2VQwSOg z_uX*IZ!Ej#m*$a~f&Z3BeX;*7>}jS=7ipAmo5a;5u0~0qQN&H!)g-P)NuW{0P1@BY zu0~0qQN&H!)g-P)NuW{0P1@BYu0~0qQN&H!)g-P)NuW{0P1@BYu0~0qQN&H!)g-P) zNuW{0P1@BYu0~0qQN&H!)g-P)NuW{0P1@BYu0~0qQN&H!)g-P)NuW{0P1@BYu0~0q zQN&H!)g-P)NuW{0P1@BYu0~0qQN&H!)g-P)NuW{0P1@BYu0~0qQN&H!)g-P)NuW{0 zP1@BYu0~0qQN;gJyHxAnqUZA9)%hrRN1lEI-;R0%KL^e&;77m3-#knZ#0&R~2oH-0 z2cRM*@e+o6`@y@;6onfvoXh1!gkl7axDDAo^l-26$nY@9)hGj|lVho5}{H8uCH{#D_nB#6sSPi^5R^3d5|BYM6`~QWP7f zkZ_))L~4E!K_THmJc=dYRVZp__pw9i8u!I47>01FuW?Jc8hcXj-3tNV7E?Nhh4ZA9 zfJ*uaWQh?0LU&ohS-^9yPw>L)6T|#MgffgrKzO7qF(@=-pezA$tY_`S4i1nAf|e43 z7nz-*G}M*~BRDJ;hachR$bXMZNFA;M-cK;6ke}(C1RS4{yl|H;BSLW7$_}Rx4(nI& z5yFsg3hp&M#Bq#_Ts4x*hBtoUHF4ORK%y010bW9>R^T`$h7cDU4deRLY<{?`4?pae zm-S|c&~PsS+i@)BKpidE0)E(Nc+u7iYiJNJKq@{Bj2HoBa^i=F^Fu@UyZ}iSH7N!c zK@P4ig^vgd2$V-Omm;8SGJ3ot1+$1Q1DXOM0e_N^+O47+h0~zU)X8BEy~hRfE0t7N z^AY&+gz(-Fm&cw#Yhr5((+SS%$Op9D7x9n~blex>T!^#L49PwjmK3EHoIxE(l1d@O zA!t4wsWi2}235}QR9Y2N;zPniT}IW3DslUUX=W*vR-w*tqIq}6eFSNHg|{a`uz!idSC#CzQP;rVc9jiY}+W^z*()9I69FrrEAtVLDXlmi6(h_D7ACHk!~=?Fi_8*`^OCIBAlz7gSkS1yk$z?%X90O1V< zB*dyTF@|7_TWA0af`51YnXs)&gK3TuenW`6FreX7sN@?G?&BNKfJ%eS4GHn#P7ikz z4)$>$CLL^>Nx=<>RRZ~fnFB(C0;F@HCSCc#QZUq9nZxz>ji3g975wV{FUUtp!41iq z`vp)Na>xl+i{|g-DnmdP9qH-WgCz-I)^(F*-w$WsfD zi~GsN!$AXq7CH07W>9Uy>cQ^Gf-O&MScADyA>8nALoe8+$ydOEJ(NPje0eZ)(RIeT zP|Ke-VxhqF>0ct{=>Am{w=In?9Zt0w(I&MXR-dyT#@`KNGt6Vm)%7sHc!UxcBGm3x zJ{fy$0QC6H16aYXKVM)-QNO>9^L=`PH|TFr(% zav}sQuq@bImf?>|{FgJz6-%xhec+vBF1BE}tWlt4V1Pk$^Eg4&PE|p?23zgOarleb zx_QW7!7%_qvOH3gG2p$nZ%p&F!%Zatb7Gf81h&V-D zB(4+ph&19Q@qx%Az7sVJCPR(UiqVnLjbY5NVGLjlW%w{AG6ERW7&93Q7^@hY8M_%r z8Rr?-84noG8SfbdjB+MoHfOeBc4itfZJ5qXPv$tLKU2V*&0NOZ$lT35&P-yaFrPBt zGYgs33Q7vv3M>Ufg}w@d6-Fws6{ac7R#>61Md6^rd4*dFPZd5W6f1}o)fIIWdn?*0 zx+#uP3{Z?xT%@>Balhg@#oLO{6>}6Tl$4a(D0Nq|RvN4{R%xnIw9*Qt?Mf$a=h|U}s?0X1UF3Ra&TYRk2g?RN<)1P>EC7tCFPhSS3fLR#i*2yJ~+`AJwU#pPd2~X{6q6kN|G-qmV)I6j4 zShKK&N{enSoLl&|nB8J)i;FEXTa;^QYnf_!YK3a8&^oMjPwPud<(A!A4rR78st%_T>Y;DncRO{)jx3<30 z`h6Q_n{I8~+Jv-;Yje6yMw^y1jHq=tk@A(M{DY z@7SrMYsavT@f~k=EbP>#lVhi;oz{1{+9^*@ThCrENN>GfvR*!`HERGXgteJh%rZD)@T#jySDUVZ zT{m@2=~~&Xd$-Zu7I#bR_N9Bf?rz;@c0bbnbr1C(4n3yz*xlnJ?_ouZPh!d_x9dteH8oH_Tlx}-6zvf&2WHWq~Q_64@PZ_h8fK>N;LXv zY+yXjc#Uz2vDn1YB*bK|NtS6#(;=qwOp{E%oAokdn{73FX0C4TVjgRL!Mwzxw*}W? zhs6s^ZA*8{#g;cLMOM~U0;}UzdDaHjQ>?dHXWF!~@v>QAbJteU*2y;3_OflYot0g< z-D$gTeGU5t_dVSAOTX^@xc&C_%kHn=-?#s+{_pKs_EYS4+P`<`?BMIL+u@^Q7e|ic ze#hJaJqJu3aCE>|Cle=u(>bR~XFKN@=W7F*16>C$8~A8Y%RwUtZ5i~|Mc*aB<%mnM ztEFqS>$Sm(gNF`YGdR<&qZ`}pkX!K(>me~iZVgo%>OFMJ(2v7<4HFDYa%Z>?abM^D z+M}xn&m++jdAfP7^L*pg-D{fHrQu4$y@qcc{&|Gyh*=|2ytTb2dmr|$@Nx2q^T`_7 zV`Rk08>2KwO&E1(RORS_qt}jpKgM`W%$Nsbb;bsby)aIB+^BK;$CZyCG=9VQoC%f_ z7EQ>Q*nQ&kiT5VyObVHFWwPdE-^pjDC{7tY;jG> zXFVs6+n>9Zo9o}-f35$Qfc^pN0`dYK0yhR01~~_92`ZU7cxuAb%3#mn1Hoj-=#Uek z%|fSyUgWjp1@mt4JMpLU)53a(Eed--&2HL;X~lw}g8f25I8k^ZycHNzsS!OQ7DjxC zw2#~xSrs)Z>dbVl>AdNwGkVQfIwNGzb=Udb-F9!>qqHY-&*#0P_NMH!*>`Ba&i>{5 zMF)5X-X9!s@YW&gLx&FQ9*#T0I1+Ir@92c1PmT>dcHy|;@m(j{oLGJmos2k{e`?C9 zjMGC;-#BA)=J?sJXSbcxKDX>Vael`6;>5tj_ZP-qNV_=X;*F%fN#`yZT{>{N^X08q zT3?B~s(N+7RWf;Ia{0BeYlYVXu4mtvd?V}Tn48aT4Zrp1_R!mR@3`E#nKB?H`ELKa zm+#r#yLjK`e&PeG2j^2QQ_nrLe0c7W)uZ!|tsh@_V*4a1tzX*JbcgioPX|7|^UUqp zgXbR4(=tY8yvUr8`Thmx#g~^MFH2rUzN*cd^IGxsvNtW>Y<#QxcK5rU?@qk8dVl4^ zzz?Y(y+3AUv$G362|v~4EcmScd1J0#?x8PcUoPjlWimCLHyR~@XjsZOaGU6WfIRi|9H zS=3XMBpxb$O@@*rb+6HivIej*phcyz1&!L`H4to1?1bNDh`vVzUWjS?6177F`GPD$ zYSg}vlbzim{S|3YDa4rrLs=9#R0>8we_dXHB)M}X4fgFE(WbfT=z4#5X?(+R_?miyZA#1TWHy4_v!iF z2Cnnr47#x=+^TK*$dBCbXBOOi8j)S<(tZ8jg=aV1diJSo-?`h*bIM2gM=sj9|NNbd z&lT3LqXVKAZ#s~el9^kng%}JdtpZghWhF&RstBD;TPi>ars-=dn$2C)3YXyeh_qsJ z1HTV~d25}$TeF20C0&(p0hGI0-bjZ+>}ksxG}0=Z`%zYeKQ2M{`XZ38kQ$S^rWSHQ zo&wqxwo;l#=6-PpJ%7PQQvsMG&$G4ZRd>GI|nM3 zw0lKt#upMDXK|ErW|?}#_Hpazk=98NJ#xeIt7poL))+o|z~<>yY){ymxKwY~5n2Ho#z zzb@oWZRQ&iwMpV1-aOI!sjX;q=W5$cnlW+q8T0ja-rjd9Xn!(4Z}P<01E+)}8g9SO zy8X)32ORtU#~ik3rt|9nc+)|A_KM0e^}yhP#Li~7I)0ipFSXh{*>KA~~(M zNV#rmc;U%j`Q@UuZ`I2g`3J-;j|ogkR2&(5v)i=gdk%bh(eLPrfhBr^?mNX{QM#Iu zYung+*pDBvBZ;8uuDAUhcH>|dK zK%7xv`@4=>?6Uo?m0d^_S*tm^rl34(?^o_i{n{*Zmwsc4T^62T)%aWz+rQeR3~gQ! zap_3jNb}ZLj;0sbigM%5j3!a&rxSKD8^_mWFQ4;1i243{(QtQz?GIvIxODcyT?A(-aEEm z)uwFf#L!XvbbsL3?k7ofWm$PfZKrmRJofHDqFiH-n#JY4to(CMp6{O;yl8jq4F_@i zcbnf8tC47dk9e18sP)D8c*6=tr+d2MqDRW5v0wYgmgnT3eLAuAvVs;F2VATV)x^Ft z{rupXhK=6vrv{6~>*Bb_c!i4haNc@(|kOM zV)?nJtfrmX{~=-1!=n59z7PFeEWSKhJ-h(V+T1U%`xN%8>9B5Lv{}!nHlyBua7c<2 zwTN@Xz#qJEXI>Mc}e7yJE?-M6r#X!yylApQFLboo;@9lbKDTuMdOoJ5_3yY%@DaN;xZ)m-!7(d#-bFj)POFhhnYCpW5!BoJ5HSW{f(O#k;IFGfu(o9s6~< zgI!Y0_}G(2MPu@_kCqJ!Nq0Rw{&aEQagVvlWmk&CPM?xflm@NHdtt$>vA$ZM>#+Wg z)%n=8tG5l}_NPp)-G5vy_QVPUd#CA(YmI&OkjS!B*M85s#T#E=j!H^AcfGKWf$iSF zl+ktj6YI(g-+9|#Vn^hUU%7VtGU8nQ>|9SH`_6&OWH! z!Bs!H&g*698;3r2%XKqN&J_tgG8y*EUwjrdZ(p0=BbAv~vq;PvH)4+M0LJ8Qo^QH~ zb82k6e!4)SY~eA}mE3396UHIqKGC{g^xWQVUv)y5yk^{`(N!PL#`b-hA5|V2?T~-) zl-pO=l)|7+p2i;9V%^xU3GQxTF~)UMhbL@x>74iZOw5X-R}z&MeT#hfRpao9-Iq=d zK&v!WZa5a+Ue~H*b+=ySI!j~IW+Wd^9@)E~%6^|Z^I-P;FBkHzT)w1}GP{68*ZbDB zPA(-s86Kzk#y?Og?@4HV9FRt{>@18knUxr}f+-GC5 zn)f#5dAp>v)NOzI)z%v0$Zxs5%dRdi4Zc5R#%#UUSM=&e`bM7?EO~$aWb9$0KK*j`nuf5fIJGQGh5ifH`90-q1>=2gtB@;Fl#Ianif?%cPZm80YH zjIGaaTM=?}#jw?Bk>(=nMX7^xH+=1Vr-nr0o_2}i_6}#k;7W#dDtou)<)-9PwMUncYQ#JUa34;fSyyi0yKA^%qCD%qS?jHRG;7AC zToS)csf^8NJ6ddNXP$K6d6u4c)WiibVQKfKX!tuTi-N=_L_yOt2S2*RJm|e)!1Cbe zNsrYF`^GzDiutv{Up%&N_Z)t0kKKGr&Zw*oqFsGGzi-*zallf)$6@!>N(%NSCu`PL z*>|3&zi8=ZmgfqkqbuI!DZg*)yk=r}x!SA4f!v6kw|6W8nd8}8G7@W!O{fScn_sL~ zaO0Tf4v)u{uA6Q|@6r~Z5#^P`_(`IBUB$@-MWalLPo!QvH{wQRznji}Zr|5bC+{Fp z>WH&*B4+O&UJx_o7T+{5s(NK~<|PYf$Kn=Y@$%_Sb6CB*vmnf2jgOfB?PXcf z#M2wKSiza29kx8sU8iezN9#lK+wvhWf!ezDnSG!*u7T zsHEhYuea}(dzPG4IJ3`pK)T_5^AgcyT^I)McbnF6RCdl8&*99;SB!_n=GrD?GxMkA zZQ8MK?u03mz6r;hy03C@Qcg>``0ios?!>amUou;tNPrP^?fCwq3t}hdUr$Ya5Pc}h z!n`bEP2XM5eKKk;#eUd6H3c_s#X*BXc{?Lcx%eTD{s^5hMQLFwtm&J-LGDR6#YSNw zjky!|I-ltFxOAx@iFTcup*YNFdhiT8&7~EIrLi-jGY8ymx4n0#IV{ta{MS|_QmE@P zB3dc&7I(}Cy|-&NRm~^SBnR?o`N-^;SQ53`4l|!x!rkYE%Nr=DM!=_|_3O#IxVLBjLvm^F_^Cd5UAzOHC6l;Q=mtXih@ z*tTWvt>7|lo3CMA4wttG?_#YVTasT{t0*XP{#^0%^WQx@yjSi0G|sK`^@3N2 zIZVYz*^ztev~4bM^&b~TUog4zg*YUv;SYY0-+tJg{iky;ElLfvU-$OC$NiVp1y5!U zt~pRX>DbHahCMP`*;Z%&=rJ>v zE?xIRBY(ig#jU4CPJO(((oA;(hrOibcGZv2qrY}~aEL@J$G=b9H$}-}n!np?xL>&O z%=Q>xeCv4M!!e-+BA+&&{m0b2*>zBB;YW<#>6Gu19d@j|+cl#_-$u0j7~b8JKrz?$!mtr#K!E;LcApQO@b0mFu_tP3 z*O3U$YY~Z#l1MP!p}^twy!RcAk6cKeT41yO*8E_%D)X{OpqffoUTq9Hv_kZR@!g?h z+Tw!pG~Z6Ig1gOn3&TpAF;`+dm(1i}6o|X@PVG{=Mla;bzvfDTGFk{*howXVXpO0ygh!tA|9eQBbrzQFK^Q+orTE~o@c&^A? zLF?15E}5FFFLy>h5DqMAKeTY_)4G)Eceh91WN#I|{=m2=oOR1Gq1@f&j`<3e;;52Q zrycf`#r10&TXe@M@KwlDOM9OvOA?tTc-)NSZXc3VVD&at`Rc~GMz1?gDq1Nbk>||4 z9}5avjhwjZTRg)2zO~VN~1C@kLst??exVnh?)w=I9Xdt3m$9ZMkd` z4Rd%|7w1*Jb*D;2HNR!c2#xk7e36$6iOwd!=+WPK(JWU;>7~V<^b)nJKCPL1CU%;# zXU(Wt6G`OLA}OwPk0@GUg66(}+waN;XdaC1E51tD%*wsDX!6%U5=B>?E&E=ly##(s zOY6J~a;pxUyEfj__`3a$$@5}nk*GCGZB=Zmwy4Is>d1{{rv-OwJk*r$!FbZ0ow>^> zpl@y7CUBcj^41zX<9V(8H zXt&l(>$>Ep4lsz$b<+E;EPfta=41>t-&7M&7hBxR`1@w@%2M&C+P{a^smQ;uyN z+@;3B723dvL|H2qj&57iqpEM!k+FJdH4b8}DDi7fH}%u8Mn|h1w&nCAQF(`R<;qaW z?j&liSCf=^*tkp0f$gK+3);sx6;B-1P5W5%_#-RqF9gRP%}IJ(a%hTSgot%IzSEwU zt2@0MD_(G)Q`hdgTv+nu``F~~2fX0U_@Z8Q zNrACmjj#Cer1_{nJlrhCssH5i;$|0Ei?7CR zsCF8i&Eb4%!_Fv}pzo}c+tKyA_TtB7ew%7HPug*!_VXfaICV$Z>N!8{>Y?(~C0Q#z z&wukZtBMy*qA$m`d6tAeKR!P=YfN#VFuCoP_48Wx*Zh>e$$VblPjOZD$u+v39S>~! zK%zAR_a7L`4i2pBx5#?cgh-8d_b07cD(+p9rL3Que2b^97vT=83GSi3G0tD69}m85 zXdI+qvy`>!Lj_+j{ie~`cH9zO=bV;n@(!p?T(xf1YhJ=2!xlPEl&`7pnlLP5k%i@D zg0S0uHj7`%Fr7^^L)6c$6nh_vuIMxM*fdK{wgdN^ z&DfFiODDV;y_-bKzpmT*^wjCuFCNBSee50hOkL;ArR2U}4#S`td%No1-7^k*`d_FV zH}rT)m`MB0z39l=!_n)wi(E{*xDB*2ndRKd+&^XA^Z9+2e$*jRkIRa~`Wy&q;qtX# z&bWK*MS25I#&I`~vOIA6;nk0DGw^ikk&!!&^}V}Pd0|%g2o`QAMHbT;#7m}$O`^XAwMbqPg=aYr0{>=t>% z*v1T)mvk^Jx`$4_=F?Loa?Pqf>SFVK@ErrMI3I5AjA336*0xv3T|aBi%a6y~ZVNNK ze?JJ1T=#B|Jfd^Q?&tx{v`Lj2H}~(~RpV~IscO{mxFa#%1yxr(dw8#Ukaxbo@bI>YBJL<@C+6E5@$kE%wj8&eT&} zyyIGz2bu!=wf!IGYv|SHD(fA%bSU8YqV%Y%mnL0PSeyTViMp|}9>nWe zK8qP$b0yQdU~ zfPHmwsY73GI&V?VJiYi6}$IaDjS^#bJA}Yu<6a zl2sEOs*?7dFW;74u{fjmvHjEEeC@5VV|nK3PQCm)9PI8?I~c`sqT!YzfARA>WfL62 zlM4Djp7!KoN*Q=1LKE>yK3*NyL<0~9 zT$TO6ZIcCV2Z0a|ho6v&g#ks|KcQeDXZT}*Yk>*4CfQ)d^p*4>iU>1zchn0a&5$zD zl5zsZ{-=o0p`5dE5&Vb_viMY@hlGX!G^UipALb)~)fa$(F9SmB7YD&YKfVk?2jTY& zY3zpp{5>V%pMKK{!H24B?M%$=%q-w*SM*1wz@26%QD45D4Cyrp-JMKXoc2ToCp-e2 z52!LI$=8L@udfTyOTI1)LdL_4A>$1k=mWgIsQO64Yf!JNWn`TcEejP$>_LkqfzMb1 z;Q5Kq_~{N0K3zq^BOG9by`%8agZ8<_x&HM}qo46G-x*v1i}GNkJ?ujwc;JDBSn$(8 z{g5#l2L8P>Kv4t$3xG49@@u!p*M<+(34l%^1bpVG^o$@5PQ$MSl@_wG7Zy%4>2#RC zBu!~c2s;GlZw5c=z%;_ZP|Smp2~M*kgp?;2z%1a`0)AKmkPCkn4}beh0#OOURq+W5 zk?=ooY(-;nC zkhIciT#|Z8cbcm%#9~L;R@}LUI}79TgPL4wU+KYI4Ar-8&FI4i@DOj+#NgbfQHA1>S+cLla+_%k%Yb&rkIEuBjS_^jK`~I@O24MUTz(rQbrqt=}Su2fosOs$p)lhEeY{{9n;9O8FaT*r++O7LeC484w~3 zG)zwO8fchLeUASo4MUy+*N}#KiXkA3e^76{*#aIGudBe9Be|9ea)r6m7tF38>RlPh zoaQRvU`jF5h7mIqq>LgCl2aJl+*BO`% z>kAlsbv!Ho=GZCML+fW6{(H=TI;3N#Je{1^J-!O~S0gl1D4@zaj2+ICdw~MEbHb!) zv%g)|adVL36slPDWexB-GI%Eq`|D+8P+jStEi3qQ(Z!N0>y&0v*k3Pe3yQ0JSup@+ z38_x}Fw*1s0|>Bni~eZV`~6n?BW{?x^r+|d>#{Z|g~uFeHsl%-N_h%^}Zy47R;XyEe>it8wEFj_x~j|i<+ERzsx~Z<8Mq@KMYQdpRlBo z#NqE6`~PDTRtO6*uhAuzmeo-XCevOy*zc9~*8}VS^dunndNlg8NdRuCWcOCrT;|Y1 zg0p=6LC+{#b{J29 zP!xnAfTHRrXMR)oA@kO+rAye5R-05^u!8a$i?p_vf!0OJe8 zj`Tj$6!rflo+YDT;kO&{;l|;GOYT#m<*8>EHv7{KxGK@rU1b( zKUjj~0xgbN1Jn}m7637WoK}!mvf|UAwZ~keu7*!imB0hIVpyQBko$vderS97yIq`L zdJl`^(!&K-NE&j%5WvD4?ti6~y~AgONG%>0?{I4BaN`N7I{?s4nKcAgp>WF5xX;Q#TA;Kfi|KF~SgF)&>h!IuPTyyp@O3zqaxM z147)T*OD$zN>vPS&JBlye`;?O;Or@#bmS~|B;-W>R2u2D0Jz^M4X&y5kSe@1jYB8N z(y}}ZIRCOVevz;rfMoL>9LIU23J+;n8#%$d`55QM6FA{ey2y%$=7x)`a!X*td_y>t z2=L;oJ*K1&p&(#{Of+()b%Q%Wxt;_C87M6z6hw%*xbavl9OAp#h7I`t<=U!-FYG|$ z8xrIzbPeGP>rEtY|N3=mTwTf0EJDbICD$;nbX-;i0N&UkLLdVn=fEGQIt&30YM4vo z`_ZqaEUD)H-cT(mJr(?}=1N!6DNS?ZMN$?cm1r=C*WVlep*qU1$U1smlNF|c+EG1# zM!AOt{Qs|7)N>`u!XZ{bwUlw19ZIbyDdTE_Br%8s0|cbZ;fJ@hppSS6q;U#@DMKUR zRtG%AWCsQY$!GVHpztm|4Gvj$Z~&AY7|4g|008)*Gy^r4qUh~-=<*5iqU|>Np&))N zNL`f9)tkyCE9XzS#zGb4fqvXbJd}A**>D+gR`_9-_%gCm%5ni-axmu1p&kiJ`AOlD z+0ocs3cC)M}`W6fpk59skJ?NsfHr^@zm@`fLt2y z8^n-HOQQ@l@3bol)3*C5WT45to}x_tou5JmQtfsIZCuLyDP*92Uo27WY_p$220A%~ zk3JoA{wZXjd)G}+z@f;WLi}90zSLBAmK6J6l{z@f98Gh{LqCSFd)D~%h;7{(c^2PB zQ-r=~VD3^hY13Yii_v#63VhS`r;vdLdncoLI$=MB3^e3T2-;h2^ixR7ZTHG_N^bHY z1I^C9h30&|@l%Kw;Oc8C-%bp)`oL`D^>p!1Ap^xP9gn)kDg6{Okm;-=h;erCPa(~D zRy(>Q$cGHnch4j=IOyh2Ap=Dcxs<$q45{7_$qxYiq_$wfErjnlBrPS`{0XPDg1IvW z!iF@0pfK3OZCH>nT=KZ`hX)&S`$cI(7Hal_;T+~Xa1-Ei@I;2$X#kGii^+}0;ZB!6 zh-f&)|1Dk(_m7f3TF2sRe7P8uoFrZut$>9x+<)`o{(1&1(&4*p8ei{up@Byib_iw8 zD&YE30~ybMIz$!VN2P;#!Po~umJSjAhdnc9kE6;V^UN6Gh>M1<^`HWL@`NAUF%!6q zS830Tjx2~H1xKtSa0Y=YIO5vXduDW#=7;cK`@Tr=ias;gfglUa=O6RTn3_ zjSxqBtu*^<6i8-1JKDEZb(|wljU*87^HK?zbqrX`sZ|;JG=Q zB^51dV5RBHzzv_9H+g0>*s!z7Gee>$zja$GuVMB2)#RBWlZABMRDNZx$upzz54z;# zC!1;b?`3k9F4V}=$v-@SD>iv%{A#P>aZR2Xv=M@zBh-86V8v>%DAMGaA?<6@Ax)ZY zct7zgS4#O#Da|bp`-7G3|4z>gtpISQ3j#;sKXFO_wPNSlechwcNlCi^)@+ENc)=9Xq2XZn4y00_Kv*p zrMcx{e_(PpIa7pU8B1L|q>rSVoGE_!##)mz1*}U?$4`KzN0T!JNTR_Y?j{w@AN%&m zFQWd}I8#v1p+cIxDJb^``pMY;HgAe%w?KFQjyHw8UqXF1z>X=y?r>0-8E=0IX^g5~ z5`~cu8EE8|?Fd7D3~5ZuL;EOWd`M#quGdl+`H(?z!4S+1hso!(sE|On#vMf6mR6y=zVlJ9_QfdG z7QU}BD-%la=+aVTddiWK8!jW3EDjmyOUp%6Od94*-bSSfl)s<=S=j`jf_dr4vTr|B zIAFw)QxzIaBU zvi)|*=Cma$DU3jU9g@&Dv*D=!L;PgDATO0_A6#nOPSOy&$o`S9$wg>?cB?$}W5}Q& z<1T3Z6f)4we)kZ@NW)tzbf`3eZeP+y<7^M2JNJcXY=2Xf^71Jf6&b1oH* ztb9v_KIb`rNy&JHyyK3dJJ;@^5eu}??ZX$)@ad6IpIdWEk=OTw=%#ar1|b72>1|6v zq~W4Bx2QCM7G7vW|Dd1%=3&uFg7I^>p%b#%dq zc4+X1Cum8}i48(%1;aiRL>i_jJfYGAx<5RG%KcCqzNrS>9zQFkxDzPN@-o6##33#L z4##ep3njob6VB)&oM*D*E{ccmqi#?F%oo=KUq?QK?`=Xp>>z^=dTgcRbWIl?bEIS- zAJUk)6O|~8G@P}f7WmA9>r97l+Qe>KfP~N*(vTiUF$9ma@*#~0HtI%Uy9z< zA^oL8sodx#OR3xzH-Cc;9q)#u;e3ltRGL7s*`LtC01k@L>4NsXe2Zp!`Jp|-#zG5B zFPMvVnqQ^DZL0&QaC2cIU@*;wd!|&LbzQqqJXXVK0~!x}&S<+R$&NkZ5-m( z$04m%I5*Z1%nfS{=1yxBz9QBpTml^8646?PONsN~Qe(};wV<^M*A!nzJ_PAd`@7H* zk(UmPE?17Bo#~&^od?AzA%l-nUadttURJ?%@aVGr##JiZwnmoC2mYfhDVLDXKV77VoT&_=Xt zxCeDT`4CzG%7h`(@K&4vr?J12#H$Q@-6_KBpEIbhLh&X3NRqvM;Oki&iniXvjQW1$ z|9%g%)eSt%9KGgHdf@0utHV#{-`r)1MK88DV(%ZdLH_>mrB{|K{!AoXmXfCbbRj~z zb&^v2?DzN=yuGL`b{Z}L{c6)4Y=_A|48!SPzt!@qhhfsCkKbGClT?oiq-%ZhFzF)? zd02zn#DVn~spAa=Y2exg`yfe=2KS6us**!~X8=d+MJYKNIOfaI|IwRO(pLqj?Egnz z3~6%hk|={z!>Buz1{x;!#*w^+Nwo-v4Kz&7sjz{D`PAq5Z_==)O?U7MwBgYBlo9fK zW2gMGymai8he^jydD!ngE~b@G{;_7mS>rF1wQ18GaNMBh4|%y_N&injE~Zh=%i1|r0E~J%Rl#=t;x0PU+p&Z&%1Ut?ZopZTgNr+#3Q%sj%>!2gZYN6la08_IPVBfpv156bwwpe`_RdF?pD@tn#qmE9?KQ0o`$; zqpVrw>;L;(t2J;2mGh04-(TyW^$cy=I0~9fx{r?h;*+c;A<|&+Np4Z|$h^lK6FmX&lBO$wu)gErFB zQTh;HwwVbYs_=oC;eDeBc#lqYU|`d}QCJGXM(!IW@eIJ5V5p%%AX9(1_h7>v2#dNe zp}qk`wO_qgfF@2i-YbCmLJ&5m37kL7R|wC=CC|wJ<9pKFYTz+&?T4=g(e;hQ8%bg{ zoQKOv9RyMWDQUo;COiYsLM`E}386N8MynmtK^@>vm-=;tu%j%cOW|}Iz%Z7k$8ekr z=fQt0)P?%%Or7yY-}=;FXTY$K9{hEN9}9JYpFaFByfZRHMyMyiXq+CzFb&4gIiztq zPbbKUuVMhduJFSt{KHqn*QL|+8Pnhr;IK3N;gYun??Cz|J-352{%Zr0ke+dxmI$sX zmX9uAwPA~O{HG@Q(~!kzI6h+;({k3JDRw9OFd~p@YAn&Lyfb?p_(4LlFP7>*w^C7to zF&TpoSCzqc^pNg60Bk^v&htKeCy9K6EZ8sVAb>U_rtBcE!*hGL!vNlb z7^drrzLCsoCxl)h=0edS)1v_2ju=`YsYN7F=Pd@fBJ&(6KHu*+V0I!VF>r4MeAGNh zgkB;-^A!~Qy4y)W?M94FF|YGTG_wx9Kt#`C5y^Pu!#D$|eQ^1a=jz~dy&Gy#CL%n< zbtL13ui`nt9Y74jRe7Ir^=nZELbGc~#)lBqL_i%z3{C$#pGe}OQVpO8;&?U5$eW>Y z5pc(#AodAm*(7mSwHm&?MW{am2^BAFa|w_q5JM;G#Rrmj*18J5^F|nat0WoaYdT#4 z+-byA^gLPjo+Pq$E74O#46dsn8Pz+wB?Iy-H0hGuw;;Nn6(}8c5G^AaAd~BWN<<8` zDK}n|M7ec2pa|k%Dain-+yvZ3#ITJo%_52Ffn_KS5vq?%NaBXuZ9rW{j5gDrza$CK z_)_!)5v=@TN-TE)myDRqAxCR6L73msV?+$7`$mc7KH#n+MwfXx&*59iCFl`C{34J_ zsA?);Zh?Y~zbbx4qK(DqAwoL~DWN<9)E&ey-%y-R5{H=>MKrrtK*{6@;O-$t%aF7u zBymOQ8%l)@)4t?WGD!zqDyY!FgH?|~n3`YF14Q(#&ZA`V43LkYU1xuIND^7Ci_m?9 z{BtRpWB@7+w`-Cp6=bPb2vAElu+IQ5;Rw5=Ih%eAs+t)DvPGP zr=;=$P;a4Gz0TF$gikZ)qT2|qen&|q8&L0|QCH?&C(+{1fFTsFzNLhc1E_3hRQ8=@ zlGsXo2Eh`o-@l=Rk_)&T#IQ>!y$ZdMnS*X3!le8)C6heBeSubu%)AW3RQZH%AYzO- zixNr!;0mBsp@(0>{WBZd5iNU338e^dMO1IUh-LW^Pz3WrCKk#!Ko!&d{sKwl8hk+4 z5YZwlgObX3Kz>IItN7ycSeWlYZHPYKpHo6916(;Z9GnGdI=+K#&WI798dz5<09Qqi z4QHSyd%Q(g5Sp7#iKPl~H3$zAr$Cs#`LGRnIiLyRbQ&d_8o-O_G2;XbT=|G;NvVSkq46}7b$4Im+4=Efa$<2%^bO{mNiXT&w5>q57{V49-`OpnTFj(wi zRwHo19#Z#+WJ1@XNv0peVuttY*Vd85ap>(A5sC)25}!x?3g9w?p7;bw+*Zv)ghpvC zNt{=$1rmZd@&HD~8*W8NjL^-KSmIw03auuIYwC6A0(8XmR2W$qk47?zF-Z{A_O0$0 z$oQg)B<^X6pjQ)J3Lld6aP%E$h*mWqt$c%AgzPIw;z?UEI**8fP+B}Lg{qc;T+msN zcCp201p6YN^Dp|q(_NT7y+ss@2y-|j>h7(OBNu!KZ;$P@@V=BJV0Dbdzp zg2C`b=oLWF>l;aYwE?_+bvg;di|DYa81RHb-bE6f1cLc6u8^gUP==6n@+--NVGCw2 zvkUtdAPribD32_jhZK^XcdJsnU0#(mqK$~|gBB4pe z5gx0-9Y!R>Oy`0lPjEV_zYRjR5Qwz#c3Du@fr@Xh@~&FED;D z#uFVyP&#oh(CpkIvXUe=Gk~J?$CsD_{8OtCx&|D!6d+_!2+cz5Wdh#3{1wLAQFwnS zUq!1z_~>aN36t${r9^}#yu#wERlx*A%WB{-3kX&gLbDNxFlV8aSwMguiBTm&r+`7W zLJ>lj3&~QLCDlP8nU`K;f-MxmXlUS3fX^<3R@JD@f01%-@7g*1iNoxAwpE0YO8d>yu^3e#lmM)4zQH!H z1>|#5MaFtU79vK9-;tm&Ef|(0-sD{^6pc`WR z?N(PJpI73g?@3haTl&C=@j>7Lt1FfXc$0#%#iWdr4a|*i<%mU)z7o0l^ zqlp$(kUfh51P{Jq_FOOyR3GPI0;gI8<6GWSQAkwg?57JrlJ*O52etz!7ONYuL$Fk^fU*UNP&cE+IHY&biRj+PV zgFvTN0*4$0;4p|HSO``?-|BBbfKsb5-uxWsKh$*BcbuPl7i6Hq6vb@FZvzxV#bqQIHoFxcg7ILvBnx*p)SDtP0Fpyc*EMBi z8c8fB9>auaxAJ`+?y#jW6G8902c@iO4{Vg~m6K0l91DE{Gq}_GoX75SdhD&^2HYQntNr-lJz^6b3h^)&iq0ItsAg220qcAX)lPJFu zm=GG3K;j4_^Q*}hFx9mH%Ux^osme@Da;_2#5Of46PC~gC){rm38dQFbn5{U8HP0}` z9E!pNCMb~skj$+mUy;Nb1{hH7gRj)3VUi)3gitC1E^Fa}LXn6B!&e;f4lz50-4H#( zG_5OP>PGRvrc@1Rd@97`8)*3n9}rVN>c02^465iIwn31?Sx_k`RFIei%li93FuHoq zdX$0*j$i_U@e#OWF+e{4V)7jrK&D`O8O_VMg-OCIVDdxDfQKg#go{bA++VW3&@Fu( zQ#eu-CP0x46!XL+82%~RV6#9=f4GVV|2nk_Fxk*^An6TNUM(g+lEi7%Lb{zV0SS6m zjwzynVhd305W^5lY+-(-oB0B!NWc_?z8K0{(F&x0R7`#%(d=)~$nHD8p2H+Tl2oxzmks~JaNa9VmO1hN~VTyGW#YCVu1r()X zGM^+;+f^f`4m9$9OfeZ#5bEWiwxyk*i!elF0q$nCbR+MM`${SBAQTH=J{H-6SPVrl z{wvmnBBS{k@t9yqDFPd1BiJgNLG=AZFa$HJmMqEIh>_kDvR@KObHPYMx!=L8M~g3$=rSmszXW=kf*M`{`E~!_ zpsDjEP*(~%9qtQWHUsb)30ND0!4$nlB4^Oa1PrbvQC1210Olv$VC)4IIw^r3prAoF zz(#5d;3pEW0E5BEgd3GW(3N5dxL*l+4|e4(lDNYF>K1jt8jPkoRSG^1Zh2~rf!vse zqqJfmCz^l11EUWpf~N$$tr*q-&~CVS`ltqAz69(~fd{9+%m=NxS^_o0P_Pm2fr^0q zPhv2baTN;1a5IJ0!JS)aCxAbp;pomc47R-wJrcxQEP<}ZP%s5k!BkcN>K3&W7c~AG zdIP2eOuQmnAUBqPyHVg?FkNj1v3p`Dn3ms&Z|F4`d@#y?(E>Q1hNGmf7##78RIGWt zJ;Y88q`X>!T8L3##lEADRMS||bGNeOQFSGZ9`*WQteCD-F7^-;)#N=Q&T6w3b- zsaTk_bW~R&9cqG6@RCe7m6D(aVHDAoJWEg$D~qEsMO7ToV%Ecuf)qyNV5u4jiKVkRNR1ydsdP2Num%& za3JDSi3@aMHI=}tWPmwICEV%66DrY;PQaSh0+Im@o{v_*Wh!y%s3c`frJ^J$Pb%dk zN%1Smg>dtzAxW;rNf;(+HYY2|B_y*rInGrAcv4BOBo%WL7y5L86(;IZ#g*h*+?dfr z+m!=kC0x9M+)OIgKHW3Tu|+WrGOi%ElZurOHV0U%;QM-@@~j|tlZwC_wCXbr;#ZId zF!u$(9j`+G)#?iJsDyhK4LMmso|baQ>n1?-q=HP8a!;c{#TDdbDR;ckvkHn;PF|OC zPoY7^<>Va+cf2eGM4shf9ZSl7nFjI8!Q7FQ9j~MT)#`GvI3#61O@mIBlUY*k$7s-# za+qIf$sC{|#pN)INx1I@P#l!13}y-m_w6*uxD3W+3HQx3$g>R01c_wU(I9>q4A3<9 zl{92^8L33lV#kZ6z#PoF=?oh-eWhn(7Ih=GM|c*p5&;vEQUB{YEsk>Ox(zKdbq zJU0xhiY`IWcvvWt%QnCF|d3IW4 zeEJVcg%?wT(Rk#W>wViAAje=X5>n{eBBV@h%hBX(e{ffLE!wWMA;WWRKm$t`WRKF7 z#mG8A-k5x$l3L-F)bdW`vg^IdT{o2J*Gc`*;QZTNCCxyRyTK+EgMq$~NB1`u+N#Nu z{=^8G*o!Q>uhaC4a`X$NW$9YLF(grVhSYQc+OuEty#o1xe_^GX_0+)cyKG02=?AyF zQfi9S9hW;tDnbGUr&Dx^eg**p?yeT3rZz0a$H}*CVjGg_cYI<+0%`+qBhp2}0-D*0 z_a9u6{3S!OK33%`x&x3Kt{~NAq{U@w1Rz-XktFNw6r$}l0N`w#SLrsbNblj~Svbi< zNP!lx?|ljXs1+P|81HrQUKOqU?RKp+M;?p%gt-}@SsfaHjA5glr_jzbIO74d^VaR! z=?0Q7;(k5U6eFGDbMVP%^_NjLE63L?`i~jLHgA2 zJ9u&LVyNbZ5;9!N}fFKi-i8{HF(dxCLKF#cN!hS^<#4T>n= zZ<&!V0AL0fV6k*S{KhiLXarBs)puu7Bi(RsCw}fTH3w(jvX*Z`ep*GGDsxJo zF=r5`df#XOA;Ly(JctW680OVa6qRXs+s!d<|ps^bLe1XUP7Spe_4K9667=ErR_Sh@O76r;vu>4@VIJ z`$YyFKHZ=->qHzm@Q4v0O_MBD#$GGY@+C{qFAAPyOv6)Bz87IYzDq|GOZhpF$7G*! z_QJDL&yA;OuI0IzB^bQ4fsuGLGs4*m(oX8Sm-G~3!IAw_am+dUIVX0cAbey?A(g%! zzvj@91B-`#5O5LCR)qvq9kg)&;X~^j^&(63vo>R;N1XqE;L{Hf)O`Iu1v_EYlytZ0=`_4VeI;3ZV zDgi6;o!0C4`luCar1xI`j{KJzQYUDM;vJ?wU<7}_l`KH3eq<#I{rt`8Gpn% z(qCR{*|g~^FExMt#ecr>MvE7#RC)dN7n{A@^0gP6yS&d5x1NVbcfi zKPx^G*^lV&kKsKC|BZj*IDVl`E5xb)`6))@cm18lq*|?R?a*)-k*s&{GHx*fiMbE* z-CiF>LT(iPKY@KA~sV~N#wFujgCgI8@*g$ZRG#^_Hu9lWb3$g8EJg69hYvXZt zEZUre?Jq?C@%U{P&Y6cR7xA;{?^66S3$HoSTpU@1Z}eJ$HfQ5EI-A}X;C~{{nveg9 z_&lF~pUuxo#9hn=bqV-87r!K-)g+uX73a{s#ey3Xz@foF{1EW1FF4p+>d9rKEx6hV zpL$Azz{kPh>;UY_FcZB_!TTVo4U&mz1aJ3xobT-W1V)#3_@&*0>F*!$?a$aD_)+ZK z`y`T)#a_XGz_-di$cXYo#>+@xrZnr<@b^t5UB3-!tSWsdy$_sxfY&GZOs@}+gk2rT z5id%M{>YP-T}`S9ng0^6I?@+XU0|sJa73?$czuiSU!j)uS9pDcGYDy4<8M8w9WeF- z&iWA=p&gLc8h=~x_trSl5}(_H8!ho_h4*GsV_@@psR=$c$LD4^-kkp@tkU`PjgB?r z=QIZ9TJbB|i`V2;dj&;@11~^p1?#O{5lAdH0xhRMij6hcBqa5CI}S*AG8!9y0je-oFs{Fwa(ps zX!aBD^htbs1HXtKMc@BKi!V!mlb(SleUj@*(w0JFig%JH+F$)?{C`G&{guBzi#^?6 z*4ujr{k{WgUgIg>@A%2 z7G7_{#uAjj4Su{2om@lu4Cj3f9nuDRV=U&-M9j*g@wpjhfA51j2D_v8PA z+b4nbcj)_SNmv1_FF#~Ol!zB*%eRWN2nL`?&IznO-=PX*c@BFPIg^k6* z7|oKuH=)d78QQXm>X4#?rzIw>*?Ts<(8X?OQfU%SnWzQ0&n$^{Ijmz_fAz|@szZ*R z5|l7+_3krig)TKkvt8VjtunR*r%u)^8QZ3mIqU-(zW$GY)Evtkmgva|f%8`GOinE* zQ?F}*YxQ<>#-x_RoJ-8>u=hlc&$Muh?Fo$*i zS*N0|!ZnGSrC@(znZr7?>4#OSxL=lE>!UiXanoim-D*94J=dvT(X6U7@7zTEI{Rd) zqOQS3v(e6lWw_;lUs`|hBKy1Y52=^xu*FWBwRFo->(!i6H@3pHs$~UfyA_9R#*tzm zVm+>#t68#k#G|u8jjO);s`489r_@7r*m2$BO-HT-WaGNanvE$XSyxuL9JXl(3UT2^ zT$qHtnNKb#a|DcTRr{aH>+B8orqm4>ikUid(Z)lUvn(ZUc2TpbuELwAXO}r_Q+DOM zRJIvcF4QbHHcmvB{p-E*kAJY2SQX`EslDn5ikX_YaQ(rHnZ>fgu-TnjmUsPdywhQu zxHSitZpEcbG)vLJSzza|#_y{yFmazPfyLbF<9NcA|}ykg(lTLBilB@2UFb{N{g99ieDq{^~u1MU{3SV@gr_nI(WopN=D` zkrmg`$Zj;UMzgq*7l8$1ntk@-i|XImKNPTmy)1pBI>Lazd8-6eHEga578azQnhDsn zuij=DFujPtwHK|d!@}kkFw)YmUKRE{@k2pN>?QeAz&M1OAru3a3>&#}b{>fbW}1Bb zaf=~nhXZau+S#aCN{(QRtUooYR;7x|#22~7PiSevr0H{3>^MmPSFvj>xSMljcN}xr z$9`L@c5O}*$KgS=wT0Bi>KG8!{@a&b9tIPKj?N=!Z5y=B-f3uT(D(1SUr;gL2B)}C1aqM{eho6AXeT(oZ=GF=G3#BO)zChb z8}}f{?kC6|Lu)&sqRuP^WPfh<>2vIFuIHJTWmSOs5TJg^=A&F#6xvjd0ldkx!Lp8@ zd{V6%t1dU_j0OdgPoTlw$Vu1=)n*;g@C|`vRcD?8P|0uTZ7$w)_zDS<3p@AHFr*yC zFj(4t`6c^`)wML~{wuH{Fn$V+?t@l5HWyS5Z&sa42YXr7`AA|Wzu6U(3Mspk1tBZL zj=?t7nR8_ihD09Uh}C6Zvu`Yod;H?T{%JIO5Ce04Ep)1-?^iFl|Hg3hF3wN(l2S!} z`A2Fr9`bhp@~1E-8nx5dT-+25l{om*PuXWmO-tR5UST+kMh`<(?Sn237}V&kXW4TK znpIy=^kI^#v?8hUNG2ZIIYMJpeCynD40s<_gP~Pc)AB`!5gzF{k5-S7E+h4A8Qba$ zQe~tgd^y{cS|)kj%jLBMl!(!qimR4VK}J zKUTmC_BVx#q(Q&@^4HWd$@Z?(Hw#>95rzcgmV0$SjoYu^DK**Wtd?3^_6pQhw0j2H zlFuN0>pt(Qpk2$$HAa)PPfD1pOM4+2#@Ll+UD^_ZmWO?=@|NATwJ+q>UinHvG6^`g>$96+K)c zl`H0@HeYaoyImje^+z9Z)8{PP#wWRaZ9nxOy zya;vvlKT#<(%$5~#7vvHc;n&Aq*!vXO{R?od^-v2$OhjDMzKchd-j9Y*wUg8&4XeN z%SKPAYEp8DrqQ98M!71Wp)W6I+8a`5+)qsW%tadxUdn{omP0*3gfq^s!uj)(U$vOWVaUaN{H} zAh+j(uRtlYuiX%HOTA7W5idk9s4M{!7cd*s^wZ}c;3^*^mq(G9)iegFsoN0@6}4vX zxpbHmnV5b^+^-#+1h{o-sPl|9W=-5pSu@t$(xS&G@QKf)#pn$MjJVwlIQ)ZwW4|#_ z4d~9MKyL}lAw%0ikjTEgopiwHADC&BSQFM%X=Z8OeI%qvn1W7ph!iTAa`)66_c?Gy_EtP z+{TxC*H+QjorX=W4m&#-8V+VQ*)!?1Q!I?Dv@;8V!am*+BgL%Lw=`(e$D<$I=nFZ3 z+-1Nt^#(`ZZ;hS&(GYYecAhLkneK#11L(qX`O1x7qKd_e=s!f+?Y((mi%)jz3s99vd} z9ET8HPmsA)gB5lR@<=OC9RO;R^%q>G` zGIr||gMzt-HB!FUey}v{1tY}*W7`62I~_|0GCSag4gTe`#C(@WaM|D03M>HjCVPt< znGjvSl8J>n5Zl}i>%ufR!A#rCv6p^k5wJH%$gUWFhVf@@l^aoXn67r=4(Vza*>KK@7}5DR$+MuXlRZvBukU~G8-Lb{wN^lg+;@x{Ubiq& zvOt7IEtv zV6Owk14LqQab}|tvL7klva=GiOZ<7X*<1bjCs);Y;zru@>x|hd@0yQc%)*1&i`LVB8 zZ~%nRZbTCX5Rfd1Yiok(%>{T!gSo?=VNugxRb2U(CXcmo0RS^gVlD`9S+n?u4kO zE#^Qj4w3SwsK6Wms}F0WfdU2M#n8XoBVJ-6AOVy6kv$wwK~-1+7I)D}GSHvrDu=>X z>>nzoe+A-gjwP|Th!fho(jbh@v`r^c3l)Z}{B$7Y=TB?Y5N@;lIRXK;=)E*WgDUQ$ zP6fDow{>&LCXK@|NURHCh;>(cXg#!^tQYIe`mnz8Pvda)ysMcoO<|%iXXaFJsy3O; zqgy$(_HV4T2?rjASVpXO0})skv!wdF5<1WD^CdQUbLL3$oU zY)Cuw>yI48gd5gR>(5~sGjH7y5QYT@C4V!BZH!ti{J4D*%sHU8^Ah*is8nwTc`-GBn9KN7zN`N%N`FN`rJgr;xX*x5&6;xc=jL7r8GoA2C1G_)W5Av1OLtz#E+bb+DcFJ52Y5gvhDqhd zg~EqP=wX^b+57Sbje+dwofmV;$nZJEp~M49T5a})R!6F%d?_~>4#JYiJcfV5BYX%C z$RqjqXuAGkJ(Qjrw2#zBgZ^RtSbsKvVKu})YbC@+0c8Pd2{+8D{>`Hw6|Nusfuy{} z-sYk||72RRn=Hd^Aghg=14)Dx-8JQUFjuYf$YSP1iAa((*zJcSvdbi{h7?jmeVHRL zdfwW@DTQt#$zz%c3#1|(k?xj$0F&bOU&(dBS&-QxkW*KMBGRfV?@8}#@3Rlo59OM; zTPwGpxfhpz;{>7(QWtWX3@p)XhPi|frvhEn3)D%i*V23T4FyTwJ)W+^6QXN)9`Bbhm$nA)joH&2! z+O2yICttjgS?Fd6?C~JQM2uhe=3Ydxwi@J4YVY=F2WdEHi(kC$OlBzqr(|_g3Zi4p zUe`sPy-oMeaQ_T<&pwntY7dI09KM#XkT*l}SzE0ow;5jQusFtarkIQNjr`q^Tt@`_ z?u9Ei?l^G#+_m&vCoRSxkRf7Qwr1g_@EU`gsurwZ2B`n(wxN4wE z+I-a^H5T|`uc`V%6$5_U?|>K3fafwx$-Rfb*+x;6zeO=7d%1m0g%st$>yEIPDTzs( zL#I_01se(88Ryqv;D(dM=GE0S+bYIn)&u55^z2ppuc9Ur7Gip^d38J9Zej(_g!dg*3J1S#p!^dqxVcp6r`0&n6!7KdL-rB zp(0RVP`Zi}2LmlN@E+^r7s_8DRL?$FYem%ly8idgTet7hv+tl`qsC6ifKPaf3>@%A zb>-in@Q9_auxAzMA&t){T1Qpa)>>CI?FgEvZo0us4 z(L>mkKN$*M%{zhF9*=#oEBG?BR;}9K;@T-rel3^@3z5~+pr09+sqiMvTes`ftykZH zLx+zZ`zsa`=bgEpQ;Kz6PZ$NWnF&pXULq{9A<{TdI(6~(bD2)YDOKU88I;Q3@MRe@ zsL1xvs!Gkk%hGtpHf8VUt zkHC*@?%vaBg~~NOj7O%_*!CXFfY7FP_F8vxk6&;};_}^>pn`~}?)hFy(KWQa8F*x} z$ZueA&$>7nI)cc|!XT<53U7yzURh*eYIzOYZ-90N)%xi%D&ZPvykDfvVo z1^zCq115)h@yMEL%~WprsV!;Rw@1%eeGtOWiBn9(S-yFNOM)4X zWMQS4p#y4Fs|Me}AW&+-K6itUB5bdGMX_PV`KW!z4a%8osL!h;Hdu;9v``+}#tTYC zhorkJR0!f_^Vc6sEkc9`>{BRGqC--y@4+L@h@{PkEyC!PzkINt^otYHalMrCG%_W_pUMAte+WZty*@w(AjZX>+oDE4=fNFOMt5Wu9 zOLm;gDl1Q;@e(b@{?=r-)r8gLkh}yVV}Hk%W3eRQ>UC0)ZuSeZ(@NLjPP|^ zp!G=yuEMF~reHP&AlrQEWun}q0xXgQ(dgNxa&3H0NDHN2NL}5C6%Y=k<{C#LYbA}s znbVf;JfB_W2G8J4Z7ktTD{%z$eD}2q1X&EX<-^aQH-w7^&MEmjLE9MfWZ0@=LDm|m z4Y_ViSh){&H_w(4`5f~2uB@ZNO<_#ZFtps=Sr0g04*P^z{9Gc?<}OOzK7X>C3^)v} z>OfM~IJtKVQZmA0@YRnBrVaKP^n$}0PmUi--l@em5G10ZGbG2-q5d79NZ}Ndk_5$E zcs9b$7~7wF5n{F$Fl58!5#T9gXAK$gM01E*nt6WDnuT*_CQ_7xldV-a=@|B^{2>;& zgl{NDp6qUD4TE60RRwbnL6U+B6e6)t;P#hFnM6tv&q|So8-N5307=$e>p`XvL}nwY zElw$O<)4J|lWoh1ix;k}8&+(vTAG`B?%4j_+m{=(`P$SX^g{R)p%3}v zCIGka9m%~b&D>z3uZ`Qs@)7FDjVV(8zAZ@9RV5`r87VUZI(wp7ZrE(Bm)si$nk`}J zF37(^6e8^*KQr~}rSsbj3N=4J#5;2fN0E$LQVmw_OO|O?rsQ9p>h`cv?x;Iw#xk2w zks88T9G7GW2`x#PQAQfhgu!f}ZbA-4MbTmGCpX+Bd-QDX>yon@#8g*lVSaAbA%jxs z72jnCriZfFdy4KswMJjD+{xtJ%-G{46Xm2aZL=@k+?F(KAX4zi$!LcAvrS$~TJoeG z3fm0%we%AKICmFIm#*Be0wBo{ikY{TVmq{bu$`%H#pNWopNowO?}dUV>=lJ4zZpOz zhf03m<8%@qUHR9My5WIiGq=frB#rLonHF+W1T}P3$y2x}JqW!GRy{Evr7fpw;sWjm zD=5n@tC%Nr^<#2l3>_r+MI)^sz}*3Z%l%F#5+F-6ljCryVc@pa*<~yvvIYb|vKZtp zzfc~e@ZpZr?OfYP%3~nKQpsb$+5(TI%6)0tgCmTIlKBy*@qo5jEh@U%=mj6#Oqf=} z5#{hJOkMA#Q0hoVqnii14Wm)xaUQL;)Yt6@jGZnbgvf15-#x?a2$(QrpbkB4C}~9Y zlQtY>z#%5wD|Y#^Pcn@nxm|_`ds!%d(gh6UE-LA6XAWUO=bxobo!eke>V?eVxM{PN zZKoK-X#`Sk?xdvMA)PS4C|xkWbR!Mu#{7cepR?)!%yd7}ZU;2o$*K>gaetNUo8n7e zqU2^30!`|Te2h4rG;=lu$la4Kl0$-`^>`S;U+A6sXeI@?xJG9CU?4*L`$bew}abow?5>au!*_$z zya!HmnXg=E&~ao68fL5Tqy(XEOmG-Un1B9+PGx=+eSL#Qer5&xJX*^kjVkEQ*%6_mk?t=B8(3mMR=B?a*{2HxP+(2de5}v6%0Oq?rPB_kfl=>pk@Rx->NVBe{+x1d6jPvv(a7+D2 zl{-VT=JtjnL15fjZFQ+SAG!3k*hZ9P9&%8dt+;9wqEw0{4&G-MfMBGd0+QmMl} zW>EJ|orFE;g(mCmHbsQxfmj~2$IM+rKC~aLe2oWY6@^$0Xc}{}o5$vaJtdJ6;_j&* zwU$ob^GR7jyk6s8v)qzPIcdm^2QS>hxIbd8iWsAUSz6Pb zXC0n2_PYPPyXy93t<+ZaF?8hbhjLv$XDL)=22>?d z8#DLLMksz%pLV{92*PL4y70x3?wSB8O+Zr?Z8?oKETDMiPF#=~aBYwctC zb4a1^Tm7kQMavqjj_?cQACPn$8WW#DO7k+71Xaq2+?`nJu#V`_vWaQQUE$t}!dEEx z${-|5?L@0yHnHke>WfpiX_7RLKN+ZuM>r`qD}T`ybaJ27k51vO(vl4=|Fgz&ho8Cb zOqjP~`|+!!JBx(91C{jaPyIWK$hQdWD4c;}6<+JB^b@OKganvD!prufR`T%fPB^8! zSjtlpKC9|G{BjpiX##4`UqNr|)EV=I3RMuM){P;{uOkM!IEi-xt2A62&PHf>S{69a z7t8#pHdYqQ`oIiUk~R4=*jd7R^&=RwE05#~OG)acYy8!_l2a%NgX~aYAN?|@d#jdM z8ooVdxtEQlM_Mm5JZ(Q(-KM3_@`&XNuuVy6@ikE9%UVk-BjQK7t`cc|u2lD&hEkoVEXqnEBXw9U*jGz$v z(5=rEVl{+)Cf7owDTpt#`VwquTUQ6LR!^>vh3NaDCr_WVbkiYN&XmEaTUKNGb`VSV zh6$)~|AP`p6>hM)^?-*^8=&7r!(X`#Uxv~! z267`z4G~jdMQ=I6wXSYkjp@}^&z2K$bg?w7=u4n(Q@|AoK}d3>z!ui{PNvc7lCPNn z!sMDily$XqYf_7Jnx$HuW^{vci?6&uwtew+^N!sxV`_cmelR(LV&^VdcPd|1&8BuI zQo+GLwCUWl?|^{=hrweHkC_5ByzLmQ>^zuTMGosPgL)WAEk5Q}g=l857@;Z1W+Yp2 zity_FZb170IblEkQsS`u(t_t@bQ+J(<6G%y*1oi~=sqgj5iljWG|lT5*t#}p(y`CT zBFt&fyeoH{xORR2!sr}Fz)wBQX3U*Is{pcWBzNa$AiA96D)!}Vz?*Nq)v|z=ys_F- zh=)OIf6N08YIV8Q&|7#`HT9a8BFm56M&~;M;}S3r9N0YPmP4MdNK08 zlQ!%*eEi7%txMw-Jb1}Pp2BUn$C|qfR6|#}8(+Q?4!a*EmhaxLh3?{=8zejlVfnOL zU3{DFqkhFZwdUb;|9Y4kvfrsl) zlqSnNXCkM3L??a8pJExtGO{r7H0Vb%@n{*@6Nb^(?Z|QWC$s&B-=O`OSja|v%JO*) zB$ViZYHkxrozY#)qTRX4(s582yV0OfaRf|Syc26e(%gK9yyQe-vb-slmJi8bqsfor zq-1w0y4|UHh*G#)B#qDrQV=ot9ox@kIhj9cqu%<$MB2yiBY><&ra87K?N6R}I9pH_ zO~E@pxCqZr-+ZzdgdzR^*MZ2DmSeW$CCdkB-LMyh_vn!c%2XHWZZrY9`RW7Hy-lsB z+EeaD{)X_;i_Bn0r{9_B`lxC>gD&M`deBFXUYDuUv_Q~gTi|d^*>b87Bth^0(ywE~ zhOl7d*j+ivGOcD>+BM^ryqmk@OxMLC<&nUZo7;oNqZmpDktnF}L^Lsz%DqSwr!L)rWj9#srV#`! z2x)j&WTHj;M5_j!;gII1`4R)<6L;D*Z1_FyP}&As_Y;^}{w5)$N3~vDoePf|n`3)D z>QXNmwLbHVRKOQ?>NLlV#vHDYjDQ|(+Q6)q;!BdP2Uadvw!0)*0@DHpb?feNJ&b{3 z1B5d04is7S0V79^;)XpO=ad5X?MSNaC5hFc7>=|MvVO{q1?sYj_yfY)VgX%R=}fkq zS{4oYTyPRv3yRn>;$I_;jbzx;3gb3WtTEq?vQOS8kc(A5gl%9@OS?*wExTt&W4&a7 zA91D0s6)U9FrZzdMk8?UZhT$na!B*=ehA;ks=o;*sh5VeC|qnu<|lc@w89sJkhq*Z_=jq3h33lH>?@m z87?qG45AeSrWgvL_GehI(>eF01g8fT2b0lRdE%60c`slksI&BFi$xY`628p`Q9t(w ze0ZDFaD#pI8R$-+qmgB!pp$3wb!LAOCz(mC=_RoaR~w7UlI2rVa0-^R$}v#|*j52- z9zr|eq#zAu;B2@uLK+FTm-H*v$Y^=lk5qXI`tq=| zn$KvrMIXz6zC)NKVkhE@KNMNAd~&X0klLW&8iEo|7uu~?J zNQO2-iN?(7?rG`S3%ZItUP>PICv!R;LiLbYaXz zS1|m%gicBT)G8npl|2kPd$vP7$3th2uHErXrxSja$v|QQ4L4C3NMvyXo}<|q>1XX{ z2{X8D`m$X}FwOUsB+KjturNJbt@Am_4=2|0b-=#-<@l6;u1M=G_> z*&c1_Dgy!CI}`l|0tWQt39v>uu_CClk=iI(XmYWN=}+&xWeI4}ko{^OG{85(-0EHw z5WO=OCE<`i4CLfx5btq~JoL6}*b1i^^!gxH?u>^&jBHs-7ZYJc-zgc^2VZr=(z8FQ zNvjr{NUia)7qFkwQkI9cG4ob|sPd$qB0H)JmJAKhHg01gwQUO%Xfc)Xr!UHzqXuHt zzH(oRfRcL)OWvQ>g=^tMc-Z zET1>%Zzgx?HgfXHk-GxqcB@yX60LDdcbu33AAXAN4)7%HUTxZXsO!^_ zW>JH>-rak7sgnnL;)LF%4iUo;8kPOb#f>FFRf;Vbh7ZDSqlCFNGnX@XVD92iGPgCMeUbGZN=5UuB{aYhE5IJ2x|f zvVCj%X0WuUT0!*E3rPj06@Q3~a>9`l_^*&Tji>JEj0^>t=TcJ6>{-8T@gny^>*A%W zw{17k+51OqC!%w+Ul#(T0na|YXk-jJhl&UdtrAnB4CB!?h0pZ{GTC_cE6w?|$W4i@ z{|c>%^U0p{(z@$HdS>dGL%X(Zb#Jk5-Fe{TF%zvlTAEaSJF}|q(Zyt=SO)acmk-^Z zMI$!Y?71nhQsmK;ae*vX$}+wKsZcP{v9X{+U|`NN*zE?vz`(8xnT7ecu3bE*oUxw0 zaP{UT6TL{)^zgRB55Be^X;PiHu>I}?Q%WP?Ih`W)HRtv~1*!4VU;^u;CaqcIOX|h! z(z4?GoGe#nKz3eXs)^DrKm6dKv}+486ATn|`jNgFDCjAkLUr?i89k=v8!#h`NDj9V2EajFDPEL$waY@Q|zMROPMB8d$z{r z5IU*7IuJq)QhRoziNF~DfqeeC6Ij`3%b0OQC)T_v0rt*x&R)L!-=ec)1EkgIbauR> zxyQXIbCl1kO<6B@Z+Rrq2*;it>AW+I^VhEVw`lCz1WUF$jon(2YijVab2}{67`(Lf z>B3`Il#fl}Tw`iC*5DMxnB`ySq4@;&m_trkp>_Fd)QSS?_c_&=5p%%_a{YlZgOJu)JojgPi^nvD}{_rLZBJubg z&%qY+yRbaVAAcB576yGvvTlgjMy+bYxF02QHicQ3w7tv`QycM0s?!t7>t#t0j#s9UEl zrt$749uF`_b-ZhFE~JW{tdef=QC zqa|648q4Bn&C*Dqy}NYwY}3X=XYYC`6>9=UVv#sCSpfK|S!yhpr-r_9LZeh|Nz!hvA!H{)`z_&J*{?BbzK? zB}I-+vht@+?=GF@C_Y?4zXyJ9#h!>uF7j2%A# z4-ern)Bt*B_3lzQq<3!*3x^FPm1qp}h@VDy;V6$CB)4;1;Tr9q<~6ur6S-l)2D_^2`C#^*b<=zzGX3pWMOg5cdH@AfG44OVw= zhpn5ui$7XdYxjObMvlvK1jocpil3H{IDh5t0Bp#_?k;&g-18G;inSQN%wR6Z-nrQ} z?5B}q#{HV_s1zLw`lcr&&YClS;gZ$ck6TjmUFmmKPRuAAKFEy1kt0TWX+#bU511S7 zv=%KpqVpUNM8{2>Jazhv#MyI`7A{?}di~}d`%hl6VDr+uOJ(o2-oR>~PPbKwmcjiz z8MoGZ+6bSx)v=InV%i}?9 z;e#o+#?VBgM#5w;WXbl+xL8R?-TRN6Jah3%N?Ha2w#B7oAd_K_ zkksEtC{}-VU0j3(s;%ZIb?Tt%)Y(f{Z=_}Ba0+Sf zW!fV9cX2WR1fD={=A2_DHg;*;*uzHO*mQ@sl!3ujQUPeISZFR?OHI$r$uBH%mJw~V zJNfUWZ6~d+8LOnR=2euw9lU|R{@sXc#!&a~gM?c_qZ2~&mpchfeo=|jMMUOQK;%v| zlK@i?M%?Y82nO!lVj?nn6}}jvGqkS>k3)R$IA*Ltq}%cIZwm|dm&UwPo{@Xd%2d!e z6*SJjowyKvF4#;|Q4+IgG<_H=&sehM@VRR=Rd`TO zC0+bDwDrUqT(biAhx{8kp3wa764bZ7zFvfZGK3QIzn7HonXC6-NYAH9fN*`Z0xC}K z!|BsN#SWxcP5T{0bTdN4CL*RL(m3k;2%5PbyG>!wbZjf=#|7)6t*0(Q>ZSc4U=gw( z|6LAv;%uhQr_W#N?Ht>ak)cb4l6?4&o=;y{j`J2G@$$qh>yI zLojPOL0Z3iPC!Y81f02!Bp+n(5(V>-xoA*8WGx3!4^V2zlI^SU71@onpS2wA!DFe> z_vEQiNj#Ymqi0E2OG2(EGume3<}2vihW(sUZ_?`Y{E}pO17X+bn_##Ysgx(<(Ay;1 zVQ?L~K16hu?|Moi{YD9&I8mNU=%GweyxZp9zUQ=zZD@7}GLw%kjd2(qZ^p&5aq-GB zq{bgZpF7ZJT)932rp{kRxfCZrx|FsJH%`C`10KUvPnSmYy7HvKfj|TQpm$U_4+*TwVqc?e~Srbp1hEzwijo$)h ztlmlaZY%Me$tK*QC3-2cgeg_pK5^k@$}cY0Yas46v$!yo_FYXnmC3u^a&!qASq66R zU%O)CaWr-m43uZi$FGL|pFDG(r`MV5_9L}Qo_eY@*?MfliZusB>bMO{H`oAikG~)V zq06jNXZFR}=ySoTEYat2m=ki`apb_0`j44oo(JQTuAGdNlI0_St7S45eB+*`E!$-3=Eyk^B2PVu z=L0ZJ+GEASNx68BPTO_9;B$%3ZFfP~MY9^?G*3qpP@0x#$X#dHVV_nh+)*$x4=112>aqub>&p zxUGb>;FI8W#wKDbR&4iNuDdYN9qr0{e%CbQ9?#sDFZw%^ zng)54ryjwx6d>3do3LPm+5Ssdj~rmpp?&81YP>kXp_rw zU51M;HS8^wc6M(9q-_44Li7odJe!`CLKWJk?8{4**5bCKr_Nrn3;ND`o4&o?$V$Vb zCUW!!JUO%%S<8VF6Bli!JwU0Bp1)$J%?7nVYy*dG=SQOoNW$8~CFq!>BO^cS!W_td z%-T~$kOZh*+oZ%rn~t5VxbHyRacXYPwbkHQ($ONMk*|$Gjl$UJ^H%S_l;c#5?$dC2 zyc3Gs77H-}g3v#zES}r9avJp6v~{F&NK!~RPtr4E(>CL=2g}iwac)R+!n`&6FJ40v zan9wWJp*R1KQIGn^~)t_jG(y)Y8Dn{oLhp+;#MBPWhXad1cR`d|FRv)X+_E|&I4>x z9$$dFS-hQZA{V5V6{ep*xOvV*V_M}xREqtp4@2XH#LZu~W8c2LTUX5jhk~fK-_A2> z*@?8}tTlT6`h&|0u;l`6Nmf*bttgk``GAnR`Yi7q&Hayq!9P~~Ul)H3rVQdZ_^@~s7bpZ1V_fp5U zNeea}IWxV`5jL4G%DEwjN7u*W#ArOAEb3gTRDQ7lJ25#k*Gw!yrO7FCR?`}&3mq!O z+1F3+-@G!3G&S!~z@9eiy>M{djC@A~c9BTLlcA^~s*YK62TW7`Q<4JBj28+EMctt$wJYTby;z}I%$HYxdn7we#&J)*Aw9A!$?cmY`G!zy; zea8GX`!A$iJ-#Y2-Zkm|`00sBYq850_RUmEvacTBv1$fxH#|CS^7NVWS8TzC4cI_t z2PY>8iZOZDn#D=;+;fBGB`w={@KUxD8!2LQv9jWv)QcxP#_s*PNP<(DSB~#ow{-6G zNpWh-BXN_aO;4P?V8y2WXYgn}Y5^3dpV_^ZHyAN5Y4Pfvr&6F+K0?pn0<4P!7*rcF23Qs<+F#juV216Y3^(`>ybI=cIC$1$1bJQ zBlQ}#g}-rn|F#Y5(4w@q(%KDM_no?)TU2oC!r>ho=|^pCAb!JE0oc_<3#TpN(k>p` zy>aD|q zNNzial%P=6o&n|g8Q0Dn*|T-Snw86!uR!c&`@Uo6Z)6uytxXMW<)vLdbNs0LaKw@0 zr!U>iEp?R@W?Vgc0>1?5zfi%9$1zMr**DG~-?x3^+Epu-FGo~t>z*TLu4NS9MycRw zo)$=K%DHv(hC9W6<0dc9n}=Pclw@D3+}fkqP_85|BjwVWeOxEPe^pe_<}|QB`pkWTjp{d*bl^y?gfTKLqkqGV)4b z!*2mOxtfiEC8fo#LMs9{Zlr9Pwqg_fp<>0F+X_<(eVfSj6akWwy zPH`Xngfbm&-keQ*cWMuz17}fgW?IU%E0-@{y?!$zr=Y~;M!6JT=8b`Dw}!A53O;x@ zffGGDwaS9Jg8bavynJ*)k)>jAOH~zj0PYwh&==7{A)W4aIg1PP^Kx_Z3j_rl(9ePL zZ5Lx$gOR+axD<+Iq@yllC~b|WxOi-Xt*!X7W2nMhVSD!ulpDT(fhFWOFNBA195Y5V z*B9aJkT&ksC=K-v&JOh$o%p!?3UQG*RyfMD%7nK?`Ht z*o???P+d(2>7i&`X`h_5ky4C3N8My0Gl8%CXt@sC`Bn-!W6nzVA#@O^1js}*>e_~owLLG)fRWb!UB{+#+)~ccBrC)sfYAq0cz3ZImOuN0S6Q3E!`+KhB~Mp z4Z;?W=eEp?pFD}hMNZ@a^4as3tlfU(;w`B31NvFPv^(Xott%GJo6F`z%$=9CaLLN` z+Yg?;mWAy(_VbfYX+iFitjouCZCba6tqxzacEjfFdykyCnw|$;wogCh5f~U*Dd$ff zJ#_Hkp~FXyC!f1~BO|XE)4*PS#z|O%unn@(Zltj5At_L_w2A*d7ktaRUm0G7MX6E2jSl&icMm8{`sy)v6pIS3z1gq6 z`_Z1yltpP#A@45sukW5S`NNW^(5P1v{p-7{TU!0GEJ}J%jS6`o#=pM%wK1=iMOhw- ztfWRsPX~`R*LTlJ0wYl0y=>99kGrC*kKPw%3sm{p4ya9?PVUAiBrd3SR8g6?0HMcG~$ zOJ&ump!*^)VQ=TZ;Hn2B?1eU|vKkfi+Qf3T-1oljjIup5Bn4OLwcOLA-xZ9=w@LQ_ zaxYCNSH*qR(=1AQREe_vxz|NpNJb^9xGU?LJOQ5H7shM_b}14ddUl+tcss9Rc46Y< z48!sWu6?rIDR1@m3&UUHObO1hO8{8t(<92)Z11H;Ssu9WVO;unvxDB6?M3syB-TWR zX4xd5F6RL#gcFL@tkW!qdOj^UlxdR*hape)DPN#{|C<>2 zNGthOi)+x44@se`B#n<~n zVjoa~M2*Ht|H*h`B7*e~UYU}mUKxJ2u999_(2#D#G){pmr zk^#a33vBru&LN+~1I~wiORFDz2Mtsz3l93qB}yUNDoi zk$!1X|(Nj!(>)%00L}suLK=l&h2RrL(=87#( zh{*@A-ZuIb3SaO?p#0$wH8_V*?!~BH9XvCpDj(k9OVkL#{OyT8HNfq>3ewMy5zJX| zW{4%UvR7N`g}=$Z;7U42+zmDJ5|xq$=S zV^gf0BN3p33yfc}?L~hETOSEc3sFPmNKm3{P`$b~j3L3*ba6LaYWiUk5K==mw4sGj zUFuiP*GvMM39Ne6Y+*S;1Ks4U$RQ**k3(+C702#Ke9aCn@`0;f51X4<&_aRM6wVf1 za(*Se`W zINu8ii5$*WKIQA>r$5B_KU^vJs<$~9LQ6J#3QS+dq-SkOJB+HDC>5D`A&yUkMZxJh zv@I|My!E6fxM>O~mWG02^Ql^)S?&prO)=z~m;Vl>44Y&M2UT8*`Orjz^X642K z6^FK{muSF)a=^Y^A#Sh3eDcM#BN`o)UGIg`qNq#^<5Z(9|$jxOAWNpvT-W3Mzk% z?KHw}|J9ziW3!(bN+;e!&DAhxynIv1>|}(VAq0+Ls*C$PS%YOBE8n}RcH<=I2HWG z#WabL+u^NfJOxJ|QaHWR-vf4g>lq(-3(ZERgcOCkby?CaWutI$Q(RezWLyoDLUpTe zyQeg9H5`p}1#y?+Z<|eJiPyuB40tp=6bvp7cZFLb?)Od-di~*rxb|TuIGha|1a9Hi z+#bA+s4Gg2p25gJ8mtDYLDKy!${zL1I&*>H=``*S-3ToT1DC^j(~mbLLt8H*eDir6 z4?SnSWs}0t@`vV1!J}}fa;e=?ISQz^J+<6iC3pZ0UV3nTNHN(gN>re*dW>Sg9dK!6 z26*hUOMxsZ=&@*1!QZ!VFrp+-t_&B~_Q!eVV!sX1?EM)bd7*_Q8UXP>yaj#N;j%|) zYH0j7#@rgyn}9g|i6x{)chGH{MFT8L!~N zFb2k^+ocE)^VAx>+U{t0uayG>i-X8pvOPZ8XcMJ&H~x(n9+4HA7gijmgi8PUrM%~!0WCw?r2Hy%P4RM9i;MiN4OT>PL zizCQzgirb)=xm^ufxU>|AI=9WRk&1uiM2_Zsrc(W7;%umkn~VzXjvEykbRh`%BurM zA1cJHX9sc^{b9Xc!*xCmJU~V{%yQmpJ({VE%B`b8>O;=3TjB2TVxTYZ@dQ(S)(eD* z;8fccJCr9usRMFscm>u0I1rg1R2C$MVs5d1NwbwvceN!Akt;MkOocL`fe3uXr^4#D zxVF+Q>pA#CP$ahJ_ZoFnNr@v6Qyl07B4~E`l%_1bdg`%iXf~1sr-mpYrJ+#gQGs8W zN~PxZ$Hfo3Li591eqc++qy$b!f1#B+j}dYD&10G^;Iggrv(xf)_3$GrzOCO8=m;X zrBRlsNA81D8uDOnRK(M-epI(v*P#;&2^1&;QX zG3|a89J&s4kq);`*Nc{3!aY0!3|A_K&VpeZ&EqEck#`yY7lp@$#66=kbot}A-HCR(bT9;Suk4lt(#ePga5S{v;>aq~%uZZf>g zemxMeINVEHqgv=re0eA+C>ZQ>inA&?gY!bdLwT3?@h%^E6alIR=K7$!U#31YprtV+ zXfLR%xfWAMT1M zjNqEJp}8=oPgj|w3JKyhjUt$1(M@Ha`?(dI1;uWEY?isy$gSw((NGi2vN3m3Ben+SVviJTmF{<8R>7UntlHFE-*J=Z0)Ow% z!UVu6d}+V8n&XGycBE-k)WD0dF-W)A+M7!^QczZkEW;!N9S1sX1I^_chnDagDT$IF z2+FgknoSp8mobLM)TDNDgVTh-3^LbW6oK0a7FI|`A@DcVr{d!5jvu+nLjcFrDEFiC z1Cc3#xiAC4v=2R16|X*zGhl7%Dj+g5B-1P}XDPZ+l6hg;6JYK`;h1HLg}wCm3M(b{ zHoCiIPk}b&kmlBoD2O-=hadIyRVg3SFp)i*i;YqBkix+a=7(d_$I#h7tFX@D5Tlx$|Xjx+km#J$jji9r)-~fZ-LC9Gqr!qCunG3L-rr%p*}$@bVjqaW9d% zu-QxkqgM_Tq36h=h|&m+#PZ1*<*NlI8J$SBi}oC$pP%FQk|+r{$J0rK5_Bb43z5S} zIXCbr{+CEr+ zP$Jxw_-ymDscxR9@hkT9KmxU}mPBE^Jx1G5!<_fjdeFC1y+!cUgMTsXgN#; z;5^M2Vhmuk(jC0&Df4#8(?di$Eo$&CUK+_Kt5C5m^`u5{IzI8v7PByD{a<$9X5=Wg#h{WubBy8C8?GQ6&mjdAd+A z8aKtv@F#BTP`xkjZA9MW5)t}jJ990vfUD7;JtpqL6?P4dq#l8I-duCc(?uQzBQMx% z>G59N#V?@-R;e z!Fcg!Z|$xEu3O(iFAv=pnjdl{R1H;m$ig;=hb%;?BTpw9M&lY>a?-He!13(_rp^Cr z@4MrpsgP@C(1od++yoZ~j3uv)5j0@3r>YYp=cLyLpnuocy}q zqg(K=H^FYZr6=+xhvXla$b?$D4>`p6YQZ0*4}Gv0&CxKtnG+`G#RHz{0@dn@sD%_a@bqZ@8O<2gw7A8e%~U z{0`-_Q(j%1g(k4RC_v}g9)AvqWoWCgxNi4U@mh-wjqrP)JBDxj=bEF9(F|Fd=p_uHY-^AzY?Qp3vQn8RJUJIdC0RXY8_^?J-B(9 z)7*ES^u*ELd1G7!xGS^gK}Uu58Y!ZhgVUAg=^`%|-1Iq0kOoB>Bd8Q>*r_a1q8C^F@a@BSMsxN%a0WA5h*(lN9WDZc|-{chxEwz znL^JwRZsmU^?b>xY5CFod-|3+jghXXsOadZC|4w|=|V4{^HS=Zl;21B#E`dh(W=MU z2WK-EZj+1#oKfii@ozJ5v4>aV&m#P(8o5#8Rq14r)h?c@>QL$wTouu(DAaBVVFl1d zp{-U*V`P5LANZ9XcS3*hW?R8S%HB}0{{P@5&A%biO3Kh}mme`!YJ`QUocw8bLWC8Pe;3d6{BD1LU zbgxheQl{9I&(`l;ZHIRuwiVGDEKXNcg*1+!8tCM_%`GJ}+ACkJxi%A;KUafn;E4qn z)(x$fNcu1S4yy&5bHs*JPj^Bn)oyq!3Uy#CG=*4%SmSiM8|nk$@EIJ7!@fW--#{s zLd>c-bM$7Z1RTYYedzMCPKSHzm&+8a(HNe?`05;#toK zIk_Q8v!JqJhEHRLF;?6<5zUgAY z1p7(rDV#WYEZ152w2ODts(CS(9&~-xM04g>Fo|$ycPVu za$(ZxFvo3cr1H%cAOH78G{PTo6Vwd;kgUzTyXy(yh5(-QR$~IF?BIWz_){2or}8Nl zAO9tfd-sg$DeT|Y=T*G? z#g9J26^X0>f4lPvfJA%Ddmlf1l>`tR@t4;Kd@|T9@HDasIL=y6;IPY6Z}RP!^i+mV zgipU5IH7qBrDk}vW-KCqf`Z6qC^DmDK z;On)gdNOqWbPaCb{8oYh%T)z=bLx$YaK>^RB2Y9sUird_ZyG*dx4x)3C=WvV9@Ef&oK9%db&{H3;^sRJiI%U82=^`)VCe8dM%sh?(6f@0R^|SXOj|PVCji26KIL*i1 z1n%^V$C@Sc->!L!KjZPq^+|A9l7PA02%iOax3+AD+73WBVS zSV1YQpwPjO#c9gNH?AealFx4Uli{kTH-7NSpfm@iAM!JYVwgjj6opSyzN*oH4A^}; z;7LEv7WMI$cl#uPLh8S%;Z5gLrq?T!GD5JJy!MLn81rE%U-mD4`6#_Z(6AJ97tQiY zv2^VN{!;iqmvO+$xJh&z}?$UpI1zEm{CP(&+TBrp-=A%MpO)`jl^IxciQH7EOaxvMp=3vRXH?C(6 z8r>g!@shm^)=+L!HHQS+fAfQagzn$)6nwDpt?Lk=Q8Tb9%%B=(kmq1dy;CkyyC(ll z?_3A}#*9F@O*yW>2ny_CkP{NnC93zKh(>1Mx+G}K2>iC_Vi-ZKm1<%2PPzE)2F^hv zMxb<%_9_@biA@Y63FMl%8z(`NtiTN`IOk9Yg*#Da{35@sm7wx(gch1)2X(N6i?mhZ zI@k9q!;N5%1G>lSH6E{*!w7I?LuUrL`tEBl~Cy);ls0yM?scMkldjK~=0>2q(?7)&|J7veOpddi5 zAK3qm5THpm@E7jEG`66SW~drbJ+6fFzY!uR=fKYuD+1%7i?$1PjUyzic?5pM7r96Y z*ncBrP+CH;tr1Howx4%sf%&I)cL>geku7#Cu*^SRZ2lMo7}6`6#ee!!AfE#ZG&>K~o-htwA{b z8zE1VY^2;?<)`1~6oRg-3^*e0!=5~nk|+sMB?`ObUqUlT9? zMhMmS{14m*BVCuJ?P!Ls$o`&obEfZz1D@9u^@#H!4x2`3eoKeEO#VQiqit~auSgw#4 zLG1la2f9~^DE{E+T2FxWXr2QIi&j^x`he$ zg={Q@>ObUwI;IzXO(prO;Ag&Q6wF>J$Zooh#N9iYi)x^(f%<7qOi06mc=Ib#$pGkH zT==#}1naX6g4ip$?^!0v&Z|v^c*jxSG8$p-u?#QsSC)7U*)Y34c)gb|;3oGT!4Kql zy#}Co7Ar`tJZiv=X`y5@k+i2PNDpYN^QKQ7t1&OlO&O^c{?uO@&x_K3tJLo6RY&_dvM{) z5GOU#@m`J+LOp((MRh&`D(bwGOF4XS!O5l%{kl-*uj){rZeZJm=83KOEzANUkirq5Y)&wbRRAN3AL`-2!lSE=&2$IisVIs;Py|So16*!d0A`f$G-lNUtXa#RTuG6 zC}bCh`-9JWxp~0nA+8X4k+a*p;|@|6R2b!Um6OsIyzA*+yc?kN9#)U9|7{_us65*3 z66BID?VWyz^Ikq)#Cc326(Q2NHt&MA&-1wxlRx&ZUh!UF&C5JAk8k*McRL!rRF$TE z-4AQt+r1BKeh~G48U16W?>S7!5UxD@CC>P4iKkQXKA_C|7;HcEAdNyQt<&}J2buSB z@PW*KGZ0e}iE2&GW8X1?`-(#GADpN<>Ae-cz5W3p%=_5vID#eXsS?!v!yjSZ%SM4P zzh(gGuMlh`fO#N#UE<41J>#RVmV0^@9{{$z%tiY+Vaq>E@<>IG`XTk8<-L5A(DIuG zqxvZ_s#xL#XnCv@ArhsBQ5fMMAj|tAs|SGaE;G|T&T-}Y5Vr!}*5G=+9<02Voj>72O@EO`RZvs``s~@o*M_|goNz)>gsp@a5hbZr5D8UMQ5#?v0 zzDyO#t=R)8pF!PFO)8)lXA+wHR?ob2Ao&AiKU6lX?dcCB zzhnYXv?963@B+!F^T{R$31px<788m*{kn=56{}z0@cSV6B>snCo{S;?5NhK*mBxmf zuL6+oSmM-X)&r1#q_<~l^8v_DLrHO@t2RnS)zQXyf*>UH_qE1Zsm$$rrB|L9bLUm|6`zPKKCyq>V*-@G+9r)HYriH5-A39E!}J^tYF z?@aGf;S5clKHnca{>{HpPu3^A=<)B|J{=!~JW(G${;Qe2DxB6%S^vI%`1rXVi8}E) z0gjFbKK|W@CZu-ja?`-fS?~OZ`0<}SHFZ#O*RCmJ|MALy2S46he&t!L|KsrEmwP5r zlJI{Be*7wbss1nG$JcYW{|E8o>v6uJ`0@4nZYq9!Ju(UFoABrZUr;cH7b5HV8?$RCxJZB89>|HA3FXx|Bm8n+Kf0lg(Tu$ zCM*LP#lVQ_w2#!oji)+k7sY>CsglYI>+U8g>4zccP}g1hC8_tzy4&bW3S1EP++H6q zo?xx$OYqa*bQN6ut@Ld%z6I%B_2J_AmlT@-@_FP{aPj=xQch~*BJFUst&ouxP?;@c1RgYz5PRz)dG;QWH3l=X40L2G@;sZeO@D2f>_|-sk4gkdm zfZ_u{@e%-c04Sav#k&&$pm_N)jQ~)504RRTp3_D2N}dn^iVpzA2Y}+`_do(b@c>Ad zUR(+Q#Rq`m%eUg1IRF$N0E!O)#j659@d2QCJiiwJia%Lga{`Y+*OcWQ2mr+gfZ}K2 z-YozWKNo>g04N>^LII$7xjIe=0LAlqr~puW04P2H6z_W>Cjb;50E!O_0L9ahemIr|1x?a^Z>N{RnYPQp!fh#{2%Noc%psm z|7D8)2y(+fM|s!z&lgG2O4XOc^(@bBsC|O^*p$mBttnGq0Ly zPv0MmrW?_8sUX^K`}qvh@4IbkdRo_(A)-;OI)YxcmWVdrU18cwPd3wvs&CPBIYyMS zxa>4D9J?cX{NQe_LQN`->MxSO9@X<$71I{K9F4Z$q3suf=zRF#NoG8IPxgc%$#GDe zpgM@AhTxddrIk!u@pe3#Zb8#kf?7LzRqY98DtK^O#?bEZq{{<>PNg=6#{HwNf@!Ni z>Zntzeni{VFyH6TA7kc{$EHmj-jlQ|3j1kb=H`iW%b2$Ai=Jq@6;0O)q9yl-Bg}H; z*__OqB~=T;J{pwDQSHGa`dO_?tzw|IO)y&D^N{2$-!d_`)-47Qt&CjH+ z-_UfUAU3;i-yvplFUZXr*|$CEzE0RfBMXWdQB)*r><={E3}p{rUVVTW$pZSp0Q6!l zno1+PqYgojq_XX3{JkKydiv}>tQs%5}f%(QI=Orc8*Swgk2lMl^x(}7DK zrR_!AUj;FE=B}O0bb#AJYzR!@im(H1^+7Si3NCuIwjXW(zzR(JtZD}{9lHz0a1)F{ zqpCtc#GE} ziiBUJu?@&O>e1XKv^^t;y%v{lW~QAprjASN(vmEqQ21HU($KQ1j(GHzkGAJw?XwPS zf<@dhHGNRG*ibm;0<_gZZ(*$;b0797t`LncN;|?vW;(-7B92TV9~LML?vq0v#TBFR zWxh{rkSt=T8W87+Yw;&Rq-tL+-Za*s>i=!(FJLItMCY_i|>!#xQn3XYLJ31y$=h z>`0$OU2tWar4<}^Z{2n#!kvonr+ESsRH{e7OST#E3?+i_W-ZgKkHpUJ7QW>Z(L8bf zHYT_=+_PQ;l_<7$uVkhp*f3=CDG^lm(i*1wz6JSiVUsi=?Z4ZG{a`w$5nq5<|M;1s_4`J3X@qL8H1jT|%JXD1y@gVz# zPe{zD;_a-)V+h3{Q;UX#8fdnJn-?|}jjBixQY)DHKnJT%5I4$Ga#!6B1`(vyTuOv0 zUC?G2P{qH!(L|vjd|b}Nqg|{j9SF%fnkT%mgJH|N^kj2vdF7-yjpeSd;apypb{m8k zg@P)ivW%(DbQfV)M2B6f-G-g4++!z|po5?>73*Mv2t4Gtqd*YuLAY~4og&fEv?L$e z#jw9gmU4yYR655O>!f{13PcK^&+Wxbn?D4bl8Tf-E*|>?K9jcF8bpVp+A?`PGk(Lj zBnnLO1)+Tr)3M@_cD))wf#mFOtJy;*__~#}_tt?9azGVljvFX#Pau4@2pZOw zPjGNbOpK{n!kj%UpXsHISRg``*1lu|vL^QoPi_?ggU*MXhl>z1YOAI>@Hd$mZE|b& zGHhLW6pUi^h-&l5^-Q;RU>dTO8S0R~^ z`%#KkrBxHsD!1kUkvx{tF5IjJiD*h$&$MT|$Jn(Pi_oHgA^LL9mPq&<#Lqs!E;F4w zcW|dj3rHYX$bPVSBr(iD^L=XpgZ;ivVKf#rAN-1gM3I*{q%$ZG(Q9naf?!9ND659_ zx~u@!rddF-GPwY3gk5$WB8p!!1|@}?#A@ir)VU6WcTa8|q9@xE^9oo6(|poQrooOl z;No9I^Kp7A1VP9E8w&mnY`*U3w5Va_3Hh*1&6nYD8sCu}VDp$-b(lz=9@8f-SVvA! zW1WT3Um4meNJlFwC!duu%?5H9@MwJNfATOHKwa*LksY@k zC8F;$($KLeRKa9|UR%dBPqt}h6hR`M$%pCNYcK!x+qzHYK7H@BQGMD)=v3ImX^-i5 z?if)o8rLr|)Sv=Om1g1BOmm=1v`qtIQ(Zng#cZXgc74Bc(Mylqo{`oy){YRCHl5ha zs^dia=;&UU1p&0eg4IlOTYRX2wuIJ~*VRi`nVw7WjyKEVo@;mXvT zlUvv{0*-FNh_9IDdzgs^lwB{gKbZC$4rw9|IG9aKc;fq<;;+mhWJ;Xk`LCF^W(3rs zDiehMoaB#Yv}$nb5w*6+q+d=FlMNFFw!<TaNVFws_IsO>HY1Sr21sTLs zWKGzHPM;#0x5lN!hw4?FM*Mjd{8ZnT4xOq3M3QVD_h=Jt(VUd_-U&E26fo`mqk6?U zv~J>~{^d)idATj-pGd+vpSRLFyKErgTX5V1DETO4y0Wa{-7wLdNCP76ar~)8{3xmn zdHFO8&kmyoCukOM4p_*k_D&q!(P_rc1Xh|~S2E4r37B$Dw2l+qJG@(zRehZ1!RqYr z10^AKtHuw2Kq^k8C8D1@xvUzeN1C`Ep@*RgX%^y=8Y@gX`Nk=C6N z7p#YTDqSk4D$E$v0akYuRM?Nll%6MVdFRL;EgjlA5>NZ<7dZYUIn8Q_r*WJsAXbM- z6ocxhof%TrMJplFkmwb8<)RWg5pOt*JBcVD}x zs~)c$DrgEJH+cSq zGeoy;!T|E6UOL$?R>9*XmciSb%U{f$JQm3;%5xk;ZP^(&_i2wELyZH6I`r1{)%%F101yEeU#vnZKQp zJz-d{wviND<_YSEyEfPECc-&m`?iLIl?mZexUZDy4l|2;`ShvdhxSNx+7Qd)6dHZ+ z4~W!}4Z4H-*eYpe;K3@nvxF0*nK{DDHH)TCNgtdXAC3t8lAw-#_;>dpux0mam^55`@DHHV&gOwur8GQ{ad#<` zonYpp_vB=bOi5}%`YYor;^cRT@^p2#aAzyiEn}J~6b05vQl4byop(%|DCtjw-JCCo zO+l#aXOYIEr<<7_mkvay>xOw=$06sX699-zMgHM zKFUq0^&{UeSWARUB)=*XE|ndkOm~)9>XwlDx+jF==tChrt%%hi)IL6%9BPF$F-w^- zzZXS@0uH)m>>M*!y+I52rq<0Zl)F<~C#@*|5+Sp$X4(h}wPd=_n1OpiiR?TJDtQ*# z8`u@=mJY78999t3G0B1YsJIhUab|hUe(6!H+Wwun@~{+YmJ!XS2?N`QQ{clrAUIw8 zYU#U^T{tb5u?x(4;(lnZUq`IiXsm%xiDH4|Gi8bonfg+ep-maP$jtlhoHlVp-wx49 z5B*s85t?cr!mb>oEtmTKfQgqAJ5oc#x*Vu=*zE1@B{)&&DkgKkC^uWeR4?|VR+@^* ze_wcD5w+MaIY3{FpN5ch!i9I~+pouSH|P7dY(g1sQ1HzgV^iWo^f>79!J+5!Y0@{^ ze{fG#=KJDr^u-mXD03)P*KKQq-g3zcntkWMqcHn~6j!o>VL z-&HnRJT8?EExtzCFQCzzId3T%X&)Qi8>f?EkFet8iKV|Wb!BeWYu;A1OeY^je9baP z|A=Pir>4KCY<5ICfB2eZ-24ifozA=&F_1h$^!5$b0QN~=v++a!PR%9^dR*D;?Qtm- zEclwG54x3_jqCrYqM7yq9*P!uN02`77HT!7-#@*r>X@#4@^A_U6wLP4DUBuru%c^ zU^*exr^}xBA*bsd*F4mj*tK`R)Y|@<)IK-0PnGGGkMB>X6hFEmCg%P26aLK_y@(6j zJ1*2>YZl!qz9vzV5Z59CVHXLjeUTp(3Y0?x)y(Oy;opp5??|+*f(<&8EhwZqR2^)$ zv?Ef6IR0-Vdtd?8r@b@#MbM5PG*6}t(jlVN>8kZ=omP_|)867cCk&`CZL8D`j@JRo1{V8aCIJzrS_%Y*pNaQrh^^mNW z(j?bIB4hh~pf+F7rM=1VPic({DwJ1ZGi|6Kf=-I!(| z+pAhBJ#sxXcWU@PeX*%*o?)u|NgAFRxgMHr85*7!xgMHj<25`jay>N9k5N-b^g>gI z^KT})XN*u&gm67H=OztRQzE3vG|%CV;LygG#}8CfQnblrFXJL^@7HfXd`nLD#1XyJ zI6SDDO#3C@neUlB#ADYHm|8u^EL~sJNwJhm+s1)mOXh=#`rNK zhYudmH@SU`h%2ck_p*>Vt50nC@Y&mQr%j!lnUOwb#IQmA`}XM8v2A=zM6ihTXp_5I z!dhSs7d<{BXWG=P%n9R0j~JSk+NXP$q&BTvMmd{>I4lO0Mm*p6`1E|Q(LMJgZkCGH zKC02+u>T2*^UUxR>U7l2=(Klomkx<>F|LSa!49k0pvTo9UFcnVCAR;mjEU>aZOho_ zEZ%SCM-3k`Fr`;==k|%MVqD>2*jr5o9bGpfk$JZ9UJ=~%ZuJdb8H5a4WN@z++7&1}?bsmlVtE+@gW<@!7ur0nw`x-3Vm^*xJkf`T;2=F{!GPs%aq za;ATm4^fv0`nIsxxih9u#Jw1$`DiG;zVa=bNG%Bq(t&VysIHc?(HR;D9rh4#x zg)}Li;Cmlp-9z6OvEZl2_U{rOP3yut=~Q{*l_a&ptLS9sLydIu@GXBYV%8^zC&x9n z(Gs8;-r+~zesUob{%C~!f$SMY%<#luB=vC};NnbOD$jeL}eQFn35H;S41-1wB2G1-MUet`0g zTV{cB-q0zad<;DOD7DD$J0o@-CqZ$csyeU$|6Gs=U(d$mh_#FNfbhPC2*bl3<%D-0 zWvbnrM*Zr<(UqtUnU;p5m`X7=U3zMKv!L*APk_;YG_?O3mQcsUBTHW@V(K|#(smz1 znhfC(ZcFNsg<69%PcU`*fX>H{G1V)uMbIsno&&lUhxb_wx~<~}(7{3_|}EZCh5pD=+JBqJbnoY64ohx@b6p)%-#_>!6f_uSBBHaH!{X=VF~d*OCy(yiHr%ZF ziHnHK_&i)AtQnWWFQ^Qn&eFVfw*jvlyv(>U7;x*|W#uJiET+=FK8fMM`{;3RP1(f3 z-4>KEa}nh+%{o*M&Mrr*Z;(VB&@sxUQ_0<{j4vRIe|joEJJMa0))E%msqe7o*HjfU zu5dj{8e_Y?Tv)(Nf8LwJYXWVS2Z)Jw^@Oy}iHAy=uPMT$Q3^~)7Ze|mP-aLQL!gO$b<9MvXyz=+)U;2*g@=?*!r+xTU5CCrxh+4O8A z6j4=ZFa$q#q>>p~+1D_r_N_7xS1?D>m)T<}$s*#uI;KNOOA83NSgWKQhX3HJ2yLHXmSj!6NRe5 zEt2|bVY_J|Tnz#Ye znSz|HI$#^>B*}uCM^k7_QlBAXZhK?H?h~huZ(sB3?YY^LCyX4JoQPz#2IXGO6MGHi zec3WI#trY&&Kc4ywp-e0>b)I48P=Pu2#H{gG04@X`@oS|&#v5d?BvP4-_Cy^ciNPR zV}|rjilJ&Zs%I_6C7|BnYTG?^(9ogoVaB0D()xCZqsyKOy0_F@f+KE)Z{WhY1uO3} zp=-+EQR6ZuO?FQS&jP~{X}vneHm7{JfclNdHp%@44MAVRQ2Wq9somQ}In35(ab5bR z(T8lP9-krYuE%A!l`as&TXpP}Hezf>W|n)36;X2fs39p`6C#6f5AeM-duZi|h;5V9 zxwebGQ-_2WVaSA+;@VE5vrP8LRwpDtT3c9jV&|TzgNBV5HEJZn(3I{STSo?)k#NU! zs15e;mWfH7YP;AvC$))OE@;IZ9N9XldrI2Sn@5fsg?Kx) zXXnJ|Fe`>g^}b?G7_c$s+-?%FgN9(iho2wZO(?P0Fi#H6mtJ$v>* zK%CIh8DiztZlKqh9brUoi;QR%WYMcdQEQSu(aWFUdLcs8=&d2nmI)oYB=_jqGr21S zcZJ!F2naSqkV4$-Vj2vlYKsN|u^Jg4Ty1(}pc`7cVhsw5aJ6u^G`4Vsha$p92}ZSt zuEt`eNE#mrxMJiTX{EobP(}~tW=CkaD>|lS%N9`)VL?`-R*m{AUJ$7g#cDM}RFCQ+ zAI~ZwSdz$Ub2#iabWTxvIp#(bYt(9t63pojiMEuQtF?NQ#b$RnY*vZ)H{kHQve$Bf zsfD(|P7&#_r9${K;4U%P|r5sWmS zV|V@`XZ%1aJW+g#J@&x#tPwp?!y+m^#*TO7!Kvf=^AbD7=h!@tJb?=Et})oWw|hIk zH=mhy-vfW%JuVEzqP{PBVozIn3x1o?GXd2>sy}54QEkPk(o(Y#I}6?AQg!w=`8%~} z?)-f@vmRaXuiWg+F=^6;?H}^DE)*NYk9}$N*K60UTfKb2Q!{e1Cr=zZG^KN^X7Fmi z%dL!5$RCW-pst6eLLgg-9Ho&NO|ZXM3};_ zC8~p%N|5-ii+5m<9$?@wY{@_f{t*RhPr>Ttej543=2FuwTPH;xxW-F8L*cA2&U1B7 zj|s6HZZu!U3g<@(M7`R6Je%B>CE)dHJH#=F9Te-sj}in-l<-3*28VGcMsrtgsC4wzILbvjz%lX`)ERnP4rFwo@{p`S|js zT!|o7CJ>8Qm@g+>94G75wk=LbeW=P66RS>0B<)U>u{&2BV>5vhYh&A;ZBtz&9#vc}`u@P+&szDOp8c(&EXi;WV?#L_7750X@)f0!`TNl=hF?P~KI6H{%{Qd#eK z5P?dh)y9;DCC2h?2J)riI0={EJ06PCuDa4oWdr$|+W84qK(47Ekbh4ohMSLs&yk5G zVPdh+U8z9*Y3ZYHg|gVQt?iv1ogM9Y_Kx8$c63>)Ve?&50Rk!X zB#Bkzk1HjVKVBF5ceRY_KHWH6+!Wopxa;EcdfMnfHQCZ=mXbj5eRckv2)>K{<1`YY z_@Y1S`jo6Fsvk3viX&tR90}hm5;WvzdSxY7-Dp+WSKmDTor(~P;`x%AR0VV^&_T#> zpA;bx$FKx3oJhV+cuXuyCRPPvMUiyPYEl0;mP*Qr|7XhO5YFaD@a_24&b$a)YZqq+ zCu>)>6W5x{XGic|!(E+u4$!{-hH}A}Xh)5!4sH&vZjQFrY)5Kb{m&^ERwHHV+$fGH zlFxIup-V;s{u^tK$Cn6dQg>SV#ido5rKOjkidZlI(hN{aK#SXdW10W4wz{xgZS8mw z5ir)kXb`~$ZRI%f?5w%r4z^CV4jgBDhX}e(wR+O3Mbu~l-4$wEaCUCkC{$X3wc4s2 z#{O~5{hUpr6!+h*Ic?kfe?iSDM?+n^gtm3Qw_|9dP1&#b;Smd)HPF)k!Z?Ob5uUo- zw4|;!B!6;ns1jYLxv98=>G*HhlFF=VF{>^u@jo>um8n$2Mw1#{555|4)7GQ1+O*~s zD1;IUvlcL6Vxyihq2s8{!2gmPO}76_*ejXVCQ>8e){3iETs4wFjfiWtt5#e!l0c1! zYqhIZTs4wFjfiWtt5#e!l0c1!YqhIZTs4wFjfiWtt5#e!l0c1!YqhIZTs4wFjfiWt zt5#e!l0c1!YqhIZTs4wFjfiWtt5#e!l0c1!YqhIZTs4wFjfiWtt5#e!l0c1!YqhIZ zTs4wFjfiWtt5#e!l0c1!YqhIZTs4wFjfiWtt5#e!l0c1!YqhIZTs4wFjfiWtt5#e! zl0c1!YqhIZTs4wFjfnqLyNoq!5b#B?@IV5rFrZw&z>QkJAREs0;HO*zp>C{1Ad-c| z$ztPV0My4M{iU+daQIT3q6iep_!4pF4{qLiw_|*pTpXTtJ$j{z!tv@E3ttC=~IL48@^X%nBLDs;MDF zvGEqlM5-K_gvSYlGJ%L<33wxl+9zmOUuB7VU=|E(IB7~;U#r9+)T#wiz&F8^KCv

2Ye(VA5B0c(**j33#DpIaHK3=9q1h+^i>ByjvCh9+~`P^Ae2%< z@EN!dxN=KD6zRHB=yqq{U~35d$Gl-eQ?d93vEqB2`gLXbjGR z7TlDE4-`a3X(Q^=2*{h79{|Szg1!j$xZ(&d& zyo?KibzW2l1!GeIJpv9YjB}6kkL6-QL6r2W-h<%@?BJ)WDO{TfY3iam4l=PEloG%} zdVLw{p5m*#)12u#z_cxu^cp0-(;`qKR2jlyQJfI>y0~}-u=0wCC#}+(aAmfDqq2#c zpjyuXSf!mHZ*_aZ%igJ8`NBY%}52nGoE=c*>{iv}JI^6G|CgD^E{T;k6d|en-m7HpAop3^64}dy*6jAreUeBBY z2LLLdpFkvLfcnS47>d_R89Hn@%kVC!zY(-LP;?Gg8XFYqhm8&dYpJmCqAE&G)EOGn z*ED65dSo5YpT*L`{miWeH&z0JDbXK@?Rl{B5!}y$dtrhs7Q=C_8-_>Ydj@WD4JD94 zxNnN@BbE2vC>rIxC%)&!h(N&^IM1=X7#_aA3ios4hInwy$+|w#gW2`S) z%U}uk-0oPQ>fC zyplu@U-ZHHF-HwiGt?TjL!H2Gu|v+N2l7O{Q6CfnHrg;W8mzJ?6ayAo0-B7bquFQy zT7p)hb!ZdXj`pB~=qNgg&Y?@_I=Y4Kqg3=9Wuk0UfQrypQ~^eXAz?~1Aes@DM0=tu zVMn+S?nG~*A2E;^MvNsQ2@w%TOeSU$3y5XJI${g4hd4r-hzG<|;x&;+d?v~n zOoj=gA)^(e1H*>l!ti4BWrQ(CF(Mh`850?^7>gKd7+V?p87CN*7`GUyj7&xWqlAf= zb(xKsZJ5?f7p4z0ggKlU!IUtkGUqc_F}E@gGS4tmn2(s5%=gSPJp;W4dMrI_y&if2 zdV}=1dgJw`>Mhh;r?*@0gx*!XM|!XIiu4rvrur@QyXw2?2kH;ikJL}lpRK=2f2aO& z{cHNE`q}zl4Gat#8+0^qHV7~nW-!iRlEFfQjRuDdE*d;A$TBD~G&F2x*wwI?VTd8e zP-ZyWaIN8f!(_vUhS`SS>eQ`cS;wx9U!CD~M0IA=Syg9moeOmy)_GT_!l<56dm}fa z5F?&ZqS0cb?M7#e?ipnpRTx_scQo#09A-Suc)IZ#lxMSP|v3xr{2_h z>+7AamtL>LqJf32MTkX=#X^g{7B?(%>l@bZP``J5Uj141x7EK=KdS+=LAwS%4Y&J70^o1JX-vbkRK zF3krtPiX#I^J~rDw`ka+M+Ehn|y*7A1Cl2)x-`L~K~wYJrj zR_|LkZtdB6TT_9ce&S< z(bcJ|pzFr254!1hbL}STwzXTjwTZQtb-eXH>(|{IckkDIM)#B5KiF8=47XWolVYP_ zJFpi`c+mGfBV4bJH<4PE-XEOhz9Ro~UyHOcjyYnhvqo6PN~+s7W(J)(Q; z?UCEFV^4n1?LD)4we7{}wWU|4JIj5n`)2n{k2W40kF6eWJllElJa>A&^Xlw1&TGHd z2XD5w#QV5+sgIk_6rYQ}OkaQB`M!61*Y7>3_qyJ%{M!0O`t9>8@^|!~GjQ=j8 zSH!Z2+{j*$%OmrmJfc=by%+ch)(Jk13mCU)TxoPj^sZ=9I7E0TrcTV*nA4*AqG-`o zacl7e@q^f|v9n_{$GeSRIlf5JSF%$|NJmLe$r^$&bvv$8+%Ivjy&l?%BGZ~kig>zZH5MG=ecE_Pb{+Y*B%q9tidJ(liXX0dGIvaIDn%TKIe zt(d=}c;%RtH&!{U+O*nub=>OAHT~9{T5Gj-$=b?wQR`CId#^vVq2-2o8%j6wHa`5# z^S6VWT5VdeseH3w^OG(9TTX24uyxfogKhEKa<&iNp0dMb$DW=BZ()9-QuT`tq3`XO5rkes*~| zE|AF+lS?kfUVMKk@>162F_)iT8G7aM)d5%UUh8}9kL!NducUaTB>&Otk8?NNZk)d9 za`WUZr&}j(JKjEi$MMebyH0mc+;hHn>b~p!GY@(`xbV>9;iX5ukFGxse0(c4IQ2o= zptL9HBhxdV@Sfy86+Zp+EdE)=^Jy>iU(A15@8zmjEnjWT=$vsV(<$@(Yv0$m--Nz- zp2f{7cq@HdnLR7VG-uU2%XfQn?Q+lM`Q_cuACaG35L;03es-Zn;f4>LJ{5l27F4glngL4!sO8Z@;qp$^qW z8K`&AEnVDHbd@^gOjAHRK49JVfq7Gz!Gm~hG7#0N6f*@bQ^S?29 zmGFRE>f`ASf;O6%h+ydH8yMCxGOh~~UAjmDF_<*69wPJzCPR;*Z)i|QpJ`$bNDHQ3 zoBFo;UIRD{+K!)YXV7rzmLuNntQrlx6mIVzneo8Ku>G>oqSv3eQpd(ykIwAiyF857 z`|>uKQRl&O(%+R@AO-_+t4HO@&_Lgj%0e64`g)Lq@ogLE+f85E5a;01zz0S4R^hKD zGnV;;HsVShKD9T%88GbNc=;h@Vp|hl??Fy7{u^}`ew>4jnks_aRJ(o2w=~C96pt5tWPX~)gw214GneKG&SkACK5qs(qW>C_yjGgbM zj^nJ&?Rxb@o151!t~m8J$=_13f3>_I@4SEII9~S9@e>=fqUSxcK3lwa^%Qiov-@)4 z%Zl`uBx-y{ym!s0&_}NFA#KWBSDQ~+?4CB$a`UwvX9YWx#d%{!CG9#QCD8!)9nQ^u zy?u-4-s^zJI`fC(N&sH*P#imNbigz!+Lzc|=W46BlV{v6vt69}W-glisQIT&A1&{b zXy=*Me!X3ed9*DR?%cV0=oc%;ZF#*OlpUyi>%08f`_5<9=f^zmbs}}F8Gm7$JFz`o z4~dW82^}3>vYxq59(=b~$mZeY6Gfrf-wNl1-3s~EF)O)v^u~jKjgun8X>#p)cyyJ~}9o(*}+Ys`8N!aQpC1)$SL+;xZ<`utjEpwc$ zSe4bN?=x%8ftBJDB--&ovFKd-0r`{yIak{KkJv5GCR)o|4XD_;ZgHMRaogw1`&HD9 zT--gX*&m)3+~S@7rR_)*UtvC^yr3ju`v?BhwiVCq{dx{9^84iwt32$i!u{E5L#Xqw zacB4C4YF@^e*eP)SNXfezYif%%-ch5Q&x?r%vvxlQ^3r;R5&2WYU7>6q{c&2T23AM z$@0~Wd=gz(gnT-GokaZ$riAQ%A-Z+`>yrtSUW|VIHa)p4xjcR6o^k!wT73@Q!P-;n&BO>p^~k}ggW*@sW`x*a`xYtm&8 zMYD`G8AT=}niZzlBJb;bdhJ^4uZ-3=S}F?f8h%Oo&?~7VJO9|DQH|yo)Jxmt=e(yp zDZ@7B)GR%0i)(w_Y;*@Fk>i@RgBC=c-m%K|MZF<& zr^J>YT3(X0r*Yp+eY3xn7LC4?lTlPGZ$YBM><{~#4;A+eKK*FZFUt!%z6{#jci-VD zbw`jWN&N1J)A%DhUvFA{r|{;E&wX=>6z9g6=6MWtI~i~`?b07px_k8HJjnQT+@(1* zwu814Exkz8{7GryuKkblddytz**>|&_(cV4Ni?j&`^&-KAKI1s#hps*_mm$zhbWFK zH$RY)Hz;~aNf)+9T0_sJCw?=V_328-yLxB)O-_C7QSmPKMYs1o%Udk}Ws+UzgvNt2 zUwfR1mp4gj(`xdUM`uz7e)HY}6S;b6+G(WJX`SyBI^V@AnA|ISoxVU-j33d+KA8pwBO3uslEE0XV6MfUW z#PUGWNc)Lf?&TI<-Ofpu?uj`lJ>NgyvhvH+1uagO$W4>IVpFy_1)8xMuPMq7RAt{Cf~Fi$IwA<=@N9tBTZG=CIy=Wq|v;gJsQ z%7#zPI-lF{%9L-yrk|#MtoQm2iS*0;n>61)uJ@q1%;j$;5B5l3w0mM?>bZSG3r~(V z=;c47mH5a9f#t?g?gx^e44%3_ZhYFr4o-r0sn$;?v^o%ZG^2dT=39=RFe%lsd456K@5G4M#gUf;4!PapZ}y#q+Ju56LzfE!nCiAMK$ zIpSI7*T(f*K6K#jQ-qFCO#CX|vuV_kGbPs7Z&)ANe{9n0Fd`x3mf6-6$JABl4+@@S`ahV|GGhzZV@mI4)24Xz&yC35 z(TTaD|LPmdO9M%Cdg`LU#O@y7UKI4>4vTY1Z#=E;t=1`Sh7S{VareFW_;&EYRE0~7 z<=x`)jq(wr@0IWEHgM9?PZiBOF2D6?7K!FqR_uB-aHM5lQ0NtrIS=MeOx&Nr?P?Qq z>Gj!{zfYREcVF(o_w_v6&Ac4Dq=zlwR$V_0tDA*4D9YE*>kCw$8Y7WKnr^ZuUhIEfnv` z>awe3f8(iZXGpt5Ez3EU6gZYdeM6Hr!a1aJctn6=N%@JyekDV9$~@Z0A5|p3T%Ns- zMEiHmR2*F@dUWjS;yI=5cddRczuD2#DfY{kSh2{@`q0jt+-?W%MrV~KoXm4BGye*G z*SwPSJ#iaWkBw{Wbou73=PMo@xjM%{cw(nw!OOE{H{~{4DxZB`(|XLDQX78~H5xkl z{f4bB*845m|#GflCa$XN8R7za$?nPFuXM)rcJ#kKInfb&jx(cQ+$^oL(e=yd9SU~xC(Fm~jgsEw4_P&)@z9qHE5hijNlNIrn(J!a2;m ze0a)P#jBLkq_ieO6t-^mXLhANw+u}fHET-jgBxSbB76+x0>vS@U_yGp-LuTyp)0)> zL{A!h&-8tdwI1mTaYb})@WzcH11@fJo9W0K{Je#HOOKGx>o&IXniqaA_J+x)g6+x4 z<`v)E+staaYTlaZ9w>F`S~;uIu>A9xy3zb$r{f0SPaCpQI`qM2)0jok!#(z<-pfe} z@E{cDx;#-N_86IV?n3=pA?5cDVEP5&Il zBof*7c|fF=uk}ArGSlMRwJjMrjvq(Ae_+bI=>6ux&MAE(LriY}fijv~TvYT9ElW<0 zd~`hi=1|}1henN5M0b<)i!EsCKbu68Qag{S%(gmGz9}tZ-^*^R_z{O+JT;iV^EqL; zE-Ic!>2Au44FQsHM*fwW7t-TsIV)3dwy?jll7M}-uVna^S zLi0T-J4a7kr9Xc9r1N)#*PLABbu9f`ze{pd%+Gj`v~A?z3rUL=fx?n82jofn4DIc$ zKkRsM|K5W%-w$&Jg^tKCB+=}+eU|d1^k0? zZOiq3pW(M5+~bwpvS{S=1xq~L*Ur3pvGQPl*0Ck8^`g8Aza5;tq*rUhcik!{bK+wb zC78DLxTANPSoZBu@sPJ~PffW{pC?JkeJJYnp?+GAtF1lqH=K8_95qFF`O4*lKKUn4 zHZ7m_ritA0A&Ghn{(7tH(}d&<#afA3Tq93*$D4sc%M72s@_cK4vw>fD9fw=XUmsrO zdiCv@mVU{817i3Lw?(l%7oH{2m#kF=LGkWij_-J8>R*xeczL{++wwT*G&gL1wwG5& z@3*?gJ7%uEcBOOUOP4-mUTLw#VvqEUIPliJn-PxPUUI()zcxSpA+}?Tu(Bk#m(`Te z@@RtS+ z+=&3Y`)>{e-wFKOI>%?hi*_wNSL6<9Qo4ggv0r5nJ4O_dSJU;Jbn`HwX z+xJ~|ZFbuUyMH~E+y`vFeD9ILv+^=o=BFCYfp&QC?KF=9#oMB!w4~FGjvXq29!HWy zojol}Hhl;<)%98OhvHlF+1ZRAl`%OJW2b22KGxOF{fBbjRd}qNc<9?@ z5?xK||7{S7HtiWbXr;U*i6TGmJ(qH?$)rrMPK1g`#mwh0p!A%0uW#0NQhM|Qhx&z8Bt7FMaQ=h8jg$E>+W5bo|d zr>58}@EtXw=Ysc!Z?l8HOz4#j25ZI+H%WiK*b$mhBxIZYl#qOe~c zCvCJWc+zgH1k9}D{3U1Rd`T|IY%u5UINi^X(-PEk9Clf3>~Brbuz8Wa1nP zvttwIRPdgXXzD1t*Y8=qTdQft_I_2^~6X;Gs~sjlJBMDo?J$v<7>}tzkf}! zFr#qlz(pj=DHkj1dz67O$ZS$>pLD#ePnBv?A~u)}3szDf{<`oTIl|n#_uxyJ%g{*&&r%z$}{mkwo_v4O>H^ zN9JFX+NJ&Gv+jLm3j5ZmmC|(+mI%j>yOW|=lk|I8>wP8b54r~rxovg#^(G6b-N$1p z`pRc@`*<4^V)FtL36c)a$xXSlB&o;xicLq%3?C+4%P0vL<=tycNl~3stU2zJNz`RX z7LWI~F*mJXBx}j_(vJS^91{N<2`7~zH6W1oa6zyW8D)x##mPbd|&A0TqCLP^b zFe#wT)j+)j^WP^ezuqiv^A(%9Z!9~lSRCXM{$92rK1){KIci$kGxg%7iteX@2=F%$H4sAL&@FY>(2lrF5edUW&JM?I_qx7}w z+J0jnpJKbNI+9$nzT4>7TP=eUn||ze^km)6hb8IGFH#HF2&J~;qG#26z&dDO(DB;^ zr&pC9X6M|mFp4|1$a3p=x79;VmTk(Hn}0j@{>j3*E2fUUR`hCOQ*JlcIr+QNPp-cl zcKPOsv)<0*ukTJfawjEkutniXi$cK{e(6Wc;w9sLPu=a_)~m7!|GwftYRSxeKkE_l zZs#J0MYMm=W8`T0`=rW7XQ$+wjJL~bC3yT!nqv6!Xsfa9NB8V$-fq-~EvFYYT5lk7 zemY&i5ZTtns1{@A5121bZtD&tJS=K35vDF0K4ziO+6+ zAO zX5Z0ozJ7>4Q8+bY=dY2eX2(A6`zG3ZBDr1tiuXrngpZhTD0gV?%e;y19}9L(3O$`0 z|6t*lCoYL&?ff6vq(y%=v#fZ>*xxZSJAHn}&iukjsD9sl+=I~`C-VxuBlB$iUXA?2 zveBa{!^+R6?JIb)HqpU2I;Fdti_5ai5zpT&E?J-N6yJEz+9}PCOl@@6CcfM3GrL-i z%IjyFIyJxbZTXR1yIU=DZ+C0axUsiehR*U_Q|62N{?EUU*dLw0IqUeb^bybceK@kM zI6WzS%*Rn4-_GngQL_JKVaCvdC)Q>qoZ8=KqRps3CLCBJ+P<-FA&Zc&s(5j}MgE-B z>%}8I61$(dCw-A9UHovoJmamShe^kjls5e=EpkqezhyS2q5N`y^W;JP3m%W2emw0? z)B73I1_rk0Ul|x^wQR+*K&xG3dP&&*o(;A`sPEkihvf<7m;8s{zI<_tOL4fzLs5R| z>6GY^?@nKPK6Uly&`4Vg{`%F~MM#tK$yV+%iZWcWeEYIh)9ME=>l5B}e=}3`ZCXS1e5%#5fspkTV7lVj zx0`#ccIEH5G=*C}XVc2mqxR)feMXEP@yn{gUq#lF4bDcNoYExb#koMM+Z!4cJpKKK z{M`%1uan~*UKmrfXql#_f19@ws1D;)+96#wK^n(d29^UK{GiYwKum0zo z0as?6Z#24Y;-PbsHa&EKC#(Y%mV1|t>9T#pMS0k=vO!iWe&Pa|eX8_UY6I^A5E_Nw z2;fD>vFJ^`z%6Gpp~>H72Au}cax+tXuk>gI zXFdX)7$8vs{JONtLbTPCh3KMP76zf_VaHJO1`f&tyvMLqkn&1cdm@54fvi+vH5Wa~ z=N4oG2ZM?M9;EmlzahjGjWj9-^Ppsc!`wJ2=7A3f_|=0SmKnst+YsWt)>IH9 zA>L~&Oc2Az-sxWH?Z-{-Y|Wt3iI^b4N?q?F_JoDQ6T6?nfxUd;f@PTsY?~rV(oMia z4J!L6P6y6_H8_fMqLFl)v6upmpO&;?f3YwzQY^xJLd8B}h)d-NuFBHTPP0@9zGh(Q zxUyF7fIk`{X95Q})DHNaqgF>uqd>@;cEDG`aN5F%3E(H)9Q*I#LnBQ(ed?W~j{p1E zz4+J%)MhapDQunOH#9UsAmc{SKBDG4@O}@Cg6+f-g23TZP^~jA@|A=}0S|MWEMLS4 zr+w!QV ze4=AC-!xz!X4MfcjFVJHA1s#gm2e5Tc4`hUk<5!0A_|j;LUlDJG%6OnEh*hb!7(hB z%7NDq+Oq(>`}vfgKgG>Q63qtp1u8X+`U>KIi-u9kucKjur>Sc|Tf@{q zxY5xtEzQ%>urN)G|4SN%LL~k|T|LDR5XQf#H=$gK2#eQW!r`gXGD7|^c5=Y%5>Q{) zsKzvZ2@g~1V``mN>I0*!lrqXi>mtA%Pt8gV9OKpk}7sZFQly^m8##Ds&S5-Pv_xH6H}hZrb`7fXlj z{&8N1Peb}+scdQT8X2}PV6zhT_w&l2n$o|USMUo{W=kutW9!hczn@n;u)_$cC087V zQG(WqDm^_OKY##Rx9CTs-p|+CkGNs(^r7KaeO`5P5j>5KhWv#IVRSq2?j6<}Bl=6c zDT_wC<5Nd~8=a1?g9h`XjxRKd7yN%^$c4@$R%Lg9krSvEj+s;}6!826LgAknb)jNE z{IFnvWBn^buCY)c;&UY4amo(#@0)g>!fA*(7P1A0x*4^X{5ozL1=3aWZb}$F`%C<) z3=bFr2gHh>hA5A}J#6?QE9%b%`NAL*0mDrk62c%- zb?C7{e()HFKl7v?=tM9ug#pYP;&4&44!l>j)GTUnVpSW1D#kw;u&Q)UH6O5ON#g6z z8vFmT0ZYh2%!|q#(|PsOf~mDv3-)t)t-fRZPY(iGA5^2i8U)~xO8sng(QlekNO0CJ zKj;}{%k~pVSeRg7yhQWGyRR%t^If}_FjDg|z0Nak_(dF(Izl3(GF=;_zevUc6a%C2 zQ&4py1AdmN23|LoBZDVq5$;BHm}(<{tr6z^?{qHoQ?btY=|2r8Kpp*M5|K_;5QYGX zDxa1O>a6Ze@LC9butxDJ2vV34>JOcS4F2$(5dLP|24-t;cOpO&;VJ?Q2f7{lInx&P zsus^uQ?T$?lK2SZiDath)b_{`_;cXT9;O(%@FkQra)OCQ7wD+0f!-D%7#0pwkbI!U zcg_HH1iS-4>>#ES#8u7s=+ySmi&Sd(M5_eu!1ZIJI8uHU*;J`}?WbKFpMHkL_w?Zh zGbFlPFa)s1n4;#j94bo`(iV?jsEisq0!32l2>^6cZ4E&x6fP9{OPo@5b0)!(m_HqQ zLMO6RD<8mu3(Ecjv-;WRgm6z}x*5}Jx?NAV!F%}AD3E3#*1(L!@NqD;{)KujBk;Q? zGz&28Q-?jk=5ei{~Gm_UEM%02HD+`!zJ82KFoU6rz-8t^Epe_<{Y3 zB83T|bh8Qc52cz!sDw*BFz~~}b^Bw4A;7FL7A)OF@x8W{hr`udc~OzVAUZ92dXiQ# z!1?HQ2mjV;D!@5}9(1%UcO>N{e3u(~SODBl{*i zYSCz!);dpuS}h4O;!9@|G9txX0!1tqzT&4@-3t64Ik#%Yfi-J5LIFqWFBD5PCQ@jG zW}X@sS9R2hlk#E8HI`5J%fgYt3=wcWSfD*ryW}v!s9OW`U%KS<3r0oXfOF{fvkV;e;t1A^tozL%L4TB01Vxanv8hHgNmy z%0OefJVNQ>>)%}&$hgDrXw^LCcUK1Lnd^uurrLdXWuU`j#pvyBpYN^=bmI~mMed3J z?uy?lYjRCBXH~ZUEZ5P`?a_F@JXG}x>urr#fw<0%P)N}=G*-$%zVGIt(W|$ET)KZ& zps1Jazq>L}Kxi_W(LDCMD+Bd;DMZ^#x_@_7%5Cef4=K56Um0j>)>Sku=kj+~JOQUE zsdhav(2`wKQU6DCzPmEe+Ib^T`^5&|T^Y!B@;<~k7VzCw$$4^9Wkb-uGEk3gqfvn1 z%6C@=iYMMt@~V2JT0^`z67-W=$_dvHe&SHolxh(v9I}Y!C;Gy|HWEQBtoqhZAeE_J zS5|qkp|$Q*1BgP6UeKMxm$UiFgr8ADc5ug6!G{I=ob;XL;OGDrMnIl{c0VH zujctudN8QGG8zI4LwNoc!}E0_Ow!?}ZAy+pjpv0K?p?S-%AD21<)u0@QN#qe)q@`u zjuu5@9|Uz+DE;sD%os=IL+zO{&=Y43UF<|%@Coay*5&2jm}&`t#^c9JKa?h z)rLDIL!EcmTowhxCmlAL=nhkeuU5K{ONa zo??&8iz?Vpjw#ezG;PnYf1Fp*W`fR_IuYuK#8FYW@ieR$Hz(TiB6VmJT&=V)3F}SNvcAkiZhVz2FNt?8?Fd z?>8lcN?FH61%E%sMXvB?r*cto24@uxxT08tg_q5_Mo*Se_ugEm0>5B%JFPi>o3JqT+JV$}_7I<2eLMTKs0 z^kV=Wu3~dk^G%et@afpvupc}`)Vip|U>Va6GxUr8S{IdSzXPmwQGquN6NGfDglnyf z3J5``6A#o#N9Vu7XX zc}K%Nhc3Jg#~+^2!5`o#0;5~!9c|cze%Q&AdJqqrAfvx{Hh>RX62Uyji(KHt1n)89 zFA?x~u&s#7=T8TQiBww)!Pla&!Jx`{5#M7R{ssVFvD+Ap^Aag>UZPMurd7A?lL`h{ zYFb0RCmr-@7l)k145>rCCmn|KTi&4Ic;hRjMQWnTK?%LZ z6Lbt1Z3K{3lb0Se52TY9j;9)~lb6A<7iolUUT7#XqV|>2_O$?%ac@y1eCvhx@RRZI zA`Yx0#>PE+8XMWD5CX2u*a!mv0z1EmC2&UtjchPKRwo6lCZ(=f)6Rf)cgNKIIT8*` zRK`XPj1y_%sP?h}7)}!4DrQ>rp;3H3q^Us}*{EVsF8CCh#ij@#7A$%I`&SA0QYAo{ zHB}ze7aK3$I9R|U2IfqabTpZb*93u-HG*Z^oy}sy4_`;ASPvZr2n@tOC6FqavV2B1 zPzEoFgpeYTO?T{+c{8%{6G)^o*z$^xooC?d2*@Li z3YBprvhTsYMZE8Up?Du5Z+?VW!q;Je!Cn#Y&5SnG3-(qZS)e6)^bVX_^6Li#H2*uIR;M%8uDlIUw!KLoU zhY5E`%eK3^3@Q+wm86x?$R>b;TT>(}0+vls3kSZUXL~1>g{+!FFt| zMy0Ijyd$$B6`iI;gV%->Fes?5O~> zlt5!CeZ!)s4x7OoVH}_Cz`DEGJKDLjy4%`1yV~K4i@G_e6sI~-{(OyN-B;E)9=8KU z5n=!+^JYUqq#+`Ww%UZk3Nje11;Rl}wze+H#!SUii_lIBs4hRFP@jiuNVq6?Qu<)hoA}YlLCW!!uIZ~EANXTZ8lO*tmfgOZAac3*`DPS~-NN<^iKHn?b2hEXG%AEX4u(xgSJ8LeeD zK4NjSK-B@NmDi?!lvpN)b%kP~ocK^vVl?+-nV%p1N1{B9VAxHcG};-kf=T29bv z@V2`!$i+}R*;)fW-OU3>T_Rgms%ovGvRsA8uDYzzQlJ|feO1A!6sdcB!at~gDQxP; z<@;(GTdL6kw!^0CQYkANymK~Xa(%yATwiKIAt{*G(eS-_05x0A!{(TgO|Y1<32;O< z!Df&qq#3({Y)-ZyElGl12|If=W3?iU*p0|u=O1@_ImaP*aW2w8rd0^ zx|@Q!q3*~H^=QLvV}!Pn`Ybk`Coo8Gj#y1uEy+6UhGY+N1iKE~m~Fx~W7k6?JE0M1 z5}8fvp=~4!?PAv_naY@b`TSTaVk1_2C4?S!Rpo;OyI}++p~i5adQuxTLj4q@dF-fS;#a8vwcvw6$oLHw z{s^0e2EytO-Z=3eKFm~klu>n#RqTINH~%B+-=;d-AD-l@TK+cG+5JkOuGLRjziR8A z9N?Xyi8c{Ybwnm`t)E2I-%HRSJCvJkbSg2*I zDPe&!_-uo#Hg6!Zwjr#xYiVhzpB8Ok4{E_gu%w}BaXI*DLG|!vgLj*Tr`f7t7<{?W z*j83)c(vxUjjr)b*#JT?T0)})5t>I}s(e12SSig5mlvB0n3RSM!WI_=&{*@(dL)8q zKCD$Cj*E=aE_6RZBnN+SsW#bgGu8mLSkUQcEHmX3qfMAJ4u)>}i2{;>)dcVi0^YtG z&r7JDj$tKG)#HFl5W!+^37-?Kof{o%R&D&~JQ`>$WNg1^TgjC9L7ODF#Nudp)D%+l zIvSJgZ!yF9!sf76H=*QD0kwog5#k99Ey`h<8c{yp*ua}>TtSqrtkEBzD418`!XT%S zuu4(^0@#{3I4&j}Y-eq8_2o#T;L{_eEe-W1;J_zLpo7paDTQ98{ZY;12WA%@IeFA_ zJ{*|!!d<&i*{Q>8V)!gdsa=!;Y93c?LK8)@C_bb}p{un@Gz$R-g1bXJjLA}JxgT(S z_%r@g$$y4_5X{iwl|k^zcX%BUF}Oht1gD2cRaqqeN-BMU??f2r#8eti@a5&7r9xG+ zMpjfisje)_PB9Lq`IO(DQ4f&a9bKqrt56Lb>QlKhHOvF4aN*U)P(i<^2SY#z9fvXj zXO(g8E9OGW70GBL9iEV=PL=NEf7D6WTIeJ^SkzkRwH7+OA^5&A{OBp9)+S{0gA0`w9%)IJl~ z3Bw5AQ_tEe7ZD8ruyrt21+8{C~>O&KHxnMkMgO~tU6(W!~fr} zI+0YSv+9Ir|7le5JwvpmpmqO~JFm2Pp^DRqURC0+t|q-BBA`}T{xIVc3z1c;Pr$lk zt?#RNY4nO-K!o~iN9Qwvzg&HS+IB<7|EJoGIPfwd+FxtnaP=$QRrhfo?YR4Mp6aUN zQ5V`%T^mMws%yh^oE&{M7FAP>ivLZ%;b|4AZbwbSw&MNyVV=m2p~ADPZpHP?J|4h|? zW&qXwGp8io0OB-I{r%OQ1x0I)45p*$r~rPIh|y_g*Ll=EiS$gk*DHhPQXzfUO2eZHm<^#hNT1p7a5+hW|M-Gm05A_RtmbA{!umz2`bSuM3_HQki@0HLx9?b7_Fzg z$Rp9j3iK2aor~lo<8Bz^D4=#i`h$*F=8|Y-IeLPKU_~X#c*4;?2DsgbVZA6X2N%B_ zr6V*IO8#1Cd;(CgRg`(e^|vH(+Movg5|0~|qEtj!eJmvzB}-eM1KjV3sULEz+3|b8F4}Jm_(~SqPqxf zeoqPI4xmyH!+vGaLz39b#3-W9jRHz0_W*YjG3pB++$V|i1|QHJ*cU4|pOVP~z}*2I z^4UCXWDl59)R5>pLXzywQ7f3!#X2luS|q^$^$V8ToCHr6o=Q zt;?Zgk`B1XP_Ii1Z<0ijbv~d7gR4-Hmjj;yDjn)I^7bEClzHd|BARApQ8IY}xM#Rt zw|`9mSqA5#KM>(m`i2t9D?ozgHlO(78c8Tdyo17`v6+-qG69tV)!P4f}1|P^rJ>T_Vw(Y`_qD7hX|9c?+nwP^sMO$t1C!$Ogd@jWS}DLaSXp(O{uL>Ca6{*V$&Dc~v) z?kJ9cFgf|K+jKFY3F7DjN;YMHS13D;L(p^OBc>y{koXGPOqi$Lr$kf%Bur$tyzl^t z=I0^3{Uo`DQHstXqC?R=N>Fm3Akf48xM}A@Ba}l|v5ol+okc{S%DbcNJBU$)Nd!>PS1ofP-ji=6al@h#8Z^=F{cRF@Dd>ql z0}auz90Zkb^$sETuOxB5i5#6ogm2{?vVsz5F^B{m13?!#17WDTW`%{b>#&>X#Oi%#1b&dKI+oE(u)_bWh)ags5A55^7{%HbNrksIxl(1z~*q z9$7+3wj9Y3+IkXtg|`UZfu1DK_81~s<=-cv$AONj65|6-k!T^{yL==;t6YG+b3z;Ad+ zLYJR|v97><85GjC5D!dcVURzAlt&nS2+#!a5@LTe0YObKgprJ>90df;vmaxENuXG0 z7Q~MM^!-ARFQE_s+NCTNqkCg?7tr$O45;u{?@6d~MI1-3euR&c;!T>)%rSpc;{Y-a-AzT_#!yHWTE$luq7?-3eRK!PS5G&qUS$fsC( z6-JnVs9y#gCIi8*1yE_kNn;@R^%)SLy9)FTp(DT`ORo^2a|I-f%$H0-*_daaV}f-Q z!4Rn4!GO;yfJ!y1$bXV@eEYI#;!*wFIycdWj;O)Q7nqofi3#IRkXp(ID5kuCd`p^s zd42!Ff%WqyM1=X+vdmz-u`YRuscjUf6roMP+T|l`<*4$4s0tO%i=6#g2F_RQlMm|&3{IvunGqQl^% zLhpbf-~4GNMh~UXPN3oiMzF$uH!AusFzk0OdX4c`a#VuQbBN9dbUg~qPsdil8&F_W zSc%co0sRQL=M><~^-crBfWn@pupLj3$P*$Tp|Dmk{1XSWaO4@4s2HK!5cx2mWd-D2 zPzA$OFb^KR#rR+fFM+(ttv-W(V*->7!@1SRY>aP;@kDbuFj)2(xW0Lh39f;R{VQ|G z&m?+N0i7{A4-7t;0E5L8e#ZmQN(y~|LUSQ|F@UwFu)n~tPwak&V<%uVQSTc>f6f4c zTZNcCAI5&;d%2jvy8;3DAjA)WE0;p|zK6|*JWv!uZcgDt0iO)nGs^vd<6FT{?^Tfx z1n5aQ#3u|tLIR2|z#;Af38T8);0~A&6v38q7-`T3V6YAdP4Yhi9%aF>z6on0ilNZn zFw%T&2+?CG^tD^qlz5NvP8d%xvLXIth_9DggyZjk@x5hkAy)OWI^_te?N{KCtp^-> zQv|=jDBq*(0}!CwWf*UN9P}SDvgH$w&;J9=3JSZb41q>I0rn}7PW^YENw8Q>n}YGu zeR>*2!J#OoLVOpX=&SfbJ|Ky$`e4Ekj&q;m=7zdbBvwGO2a;O)g#?Re4sj30LbqQt zb8&{8C^-n3V#FCy>ni zMm~k1t{#|67GsW-reTufrC@uYeL!&-()*>1dD1u>tl3M}E z^l}nx)}@SBh}kUqeC2&i(g%|e28F<78Qe(amE=p@LxX+QI`*>s4yFO48amIlz~+ky z(1d-JlVCEJjeL!mZ4+)PZbGMuGQMIOk7J-xa23eO43hZln}ryiC*Qq}3HD(Eg7F5p zJZC_@BjhC5uLwHv`M@It2xM{+Ec&OcTxCsP#1x(s1sf=mfntW7 zd_xi`4ZvK1ntpvAcm9dio8Tl!Xv{`V{D{BJ)Z#*^tc35Oah8^K=GR# zx>#Zz^MkUQPhyHqn1X1lfV_Tf2-4p#hc%qg)Q?cfL7P7u!z6+d1op>uU@{p9&dSMm zBvHWyqYl^c5lrDgQ3%0)$k7KKzab}cNus#l7pUZ+`%4buvFw`xrXd9z*>WQIid)&+_l$E>{({w5Z3mEM@L83U|Qm+yZ-dpwMh}jOR zcoU4v#3u$t(ii%g|Hs}}09J9O`=6NzQe*e6blF`t?`^xId~@ck zH|qS!4Gro$L17GQ97dXZPb&IQeBz*w^_oD->u$(@A9oK{e$0j0RAFK&g9$Qghrwn8 z^>4Z%g1xdPPP`mKg^fhvn>%3u{Q{*QQ7PjtD*7W8Da!R-25W(Z|H^HQf|17VrNE+R z6LuTWyPzoZ?j~{f^*zAvUvRshd3!_(yT#bKyWWq=3j3rDm zZ@-xg4~1sDG2ZHj5lhR$q~J<=85bYOo?b(b5yTj-u{cY{SPSf*+5wX zx(m}XQAuQ1Vemmo-Twvd2g>_wX9C^s|DEBJb9!F)H=YNEW|&3es0c>h4~9?1x1k-X z_#(=IhzfPbK1-mO$G%v@Cwc$$R`NR#5L_(ff6IYeu@U*6jTUd1phqvDxaK zLMG_yOuDh%>ivwom6UGmv3jQ%&vby5W*o43KO%2cNHdO_z3-EE8l=HGHeuf-Zw02o z+%aLNAR4-wkp_#ygngsDwIR*8V)ed8-a3;8{VFlDOx{UKgBCM;Ux-^X097h9h1q+! zyj39;a@p)XRNiWk3NyjPj7#1MOof1!y-$&MW~5quQ)%CN5uBr5 z81+IN{)+!C#y~L!iZSqi5d*~w!~)hb=9d-3{B)%Av8cP)j>Vl? z*z~OR|KlAb=m^-BIAAQkcZ?F3it+Nl0teVo^sD8cTEL24V`{^QShwMoxIUmvmR$jv zI{sNv_%pxbnU{aBp!F$H$d)tt*v-8C8U_WecSo@Rq`CyeB5gV`s7#Kt4^h=3qa*+^ zJu$)XbYU>HRzxiFHiD2lz?#Qq!YBZg^+>Nt#EPIk@dk)G09;`Afs$Id zDhiA!^bqCgA>B{{kP+}xx&Sj{r}(G!ktqrNr*^`yEI+LeAR3yvK8TttN8Tx4W zqx#avR% zCAobB;N#z1I(WPp@_l}sz4<@XM=y&StyOp$IFiY2i}-0huvqdae_|gIfFr>27Jl4J z$bD8~5fZYAGmoSC_@%|eSY;9kBR{2+Bs`%(;RysCg!l4eW`jQb@T^k=LL62fdHnYL zlM$f-tG4*YV=>baUpbA)k=;!Y8d3}a2)EGfAoqqS4L~WyE9?*eo*OHZm~MDQ_~q(l zJ=*(a7Ssy{7Yl*#6Z)aBo&X2W;55Wzgi+J2&Vi-r8U>(mBPuU6nGD72u@HnzX7v$| zzy(fus0AXY(9U{4JkVT=qCr9V+apLJC$IR?ul05(czz(_q3k3g-7uoq>2x5afDQui zO!VofC=ubXAVAJHo>mkPAnb+6k2yOFi+FmqOd=v^cxc5c!lOJ92>s!CF&2SiC~SmS zO>jQ|Edo3(@RUzbyl5dpcx*c6D{yEv!9%K1m_n2%CWuG3YQ-WlSxW>1G2Cf%o2Ly> zjYq9w%XnJhNvtx{@mOpv5q!kM+NaCpZH5xR(Q@v4T z08y^d=uy+tC^_x#36=Oqb_ytUNN2${rmbroFg48k% z#Z^F=OuNoOY#Lehi+{_tF!4abpqBZY(x6V`U^gg|$Fqc(Y<%m?jenC^at!U|dCHSmoLO$LRJ2NnA%);6Pi7Cz@??zk zD29}br!Vv=LhP?vOg$1A!l9rH-f*ES7v&otX-p*#mY=kA~GW;^Og96KSP-&tl2ju~f)RgiZ* za5`%lz*%9nGGkz#35WNivL@9fE{lL}ZLUn>om{<&(UV}6hCi)ioPvDO`6x@gFY zYviWGVtf?iqbN=;P$76b^l|X|+g8 zfh>oDN0hcr(Y2D$m-g5ZlUN#TseZ4i#+yPJnYU)K*sUstRwG8o9+=TQfV)G`mpRt9R7&1J7PR(1JISU zQ6Iv}C5x3{k!2qH^#QEu3^BG<=COP4!+ORMLnzN*c8|pi>)BK0v8C^@L}7WS+wDAd z_$}D;DWcr!GZ|OXg1?TrC&Bh6Pe8&+R}{4&9A?B&q$UHiq-z;{_}}q;0`rk^lXUTY z3bZE!B#+GR_!t=&vAz>xWN;)gMg~TbVq{PxIYtIVQetE*BrQgUK{8^BBOoH~^4}8y zDTfG1IS~PQX1~D8kumF%FGt zjgANi%2QAVO;AomK~0>~?fVj#qS9I_8m{uWcIU zo@us+js>PN^3ZAhJ$Ja^&rhl$l>6qW+`y$%=cdP|}?JnAH#2 zMIL(%5fE5PX&5stR~>mr+Kh;RpbpuKo<1yl5)lxT-4WwS>xHhQjfx0JIkH#@7Fp)8 zUl9R88I5g~dF)<9Kwt$wKzaT$L_mb~>?!lu(ujZv%Nr38b3Bh7jtB^BUn;lC5CJhQ zctk*8@23dcSi(tHA_4*&W|R{V5I~9uNI5eC^1tF65s-3b1Vnrz0wTU+fPWbYi7#hH zK+Nxia%KdioEZTrXGTEEnGq1YRfp0|(#n|;kaEQlkm3kPam0ikr~jXh92G}EiX$MF zbyXYzu`pp-14T!S9#^Z_Un}<4p0&SLOk>3~R!n1LN0F@lIk=(l=s^BGgU4xrpW4@x z#x|ZTPEs5JDUN{1NJeo4q^O9^e_I5E<@%4_{N1okzkYZ+W+MK^qENw~7xNb1)$zax zeJZeqcsF_n))#;M@Go7r!LNR}?!$VDJN5AH^ggT$8-nkiC~3pGvrll{6Ll)Gw{Y@b z{&GLNh9By%SE_bs)26b2yXvo3t5Ku<>lG_jul{=5N*$`c-nM$hs_m!P z*g$|Bi0d}MN<-ENC~uq>#Vu(Jj3rU+Ts^T$e>XvBNh@rX3Utbbl?!W#@j7Gde)#Jv ze)YnknzZCy0pZ6$Vh?;b0*w7w6~I*0?8o1)Lgj+zEs5sId##+e*D3{J^J#mnl(*N) zKS!?>^Y&UG4@g*>Vl}%7{1JTzLWt4oc9VCXqMy1Ta7h~^KKrw$>bHnlKd#?qSo1>R zEnxsuccisesHTmBRilRpJ4@@G|AWcjn2=cf>Vk`1a9$_Dj;Wat~m z!a(-nsv^lid{;8RE1Ta{{0bCSh0*E9;386Xfr2K87W%OExd+1mye;IvD zJO45M28{>%MW`XBVa<$uTjo_~UWx_^eh=I{2`{qc50 z!^bFPJa4>clr?^D{K2;|1bT2Wq29h zMoGiZ_?OY#xMQIPfWGSY7hDMh5vbHPuB#NRD4q;ajexL@tRK3u1P@k&Fj4?6XwI5B zvqI*TXEMLSG%$%Ln1X{&C3(qzNj(;?B`ga<#Q%qD_0wdE6d4xbSxVKj@+30)2(8^6 zPi}t>TcI{cshTNbDwFJ}SgAZTWhK9kZMygEK)hl8sN&bJPk-E~>gP`ts`*uh`Z1_Ah&k$^aEpwEM4Y_g~rWzp~wb<*G0rDpUsGH1o>U#g&+O zWlSAn!-lv@MJlTzre4LeW6BFrU!h7BQ6~DTQVoV~g(^S-{uMn{spqkW@ zt!hJ7RrW^)aHB3gdUfy6uuT`I{R{Js%qi-G;I#e(Wsp5qRVtJp-(FIer+w}29eTF! z(1(;)g{svoDzWii)mqxBHrlJ%h^i(gS4|+QT4hN~)vEYaAp}>mD6JZ%1GcDE-TW4a zswPlgT`XYrihfl_-dNo9s5V=xwGOY=0*Z(<*;PB*PJB(H;H1=zxr z6;hf&SX4s~f?psiP;85e%GIa?NDH%OH9v4rg^EN4JsQsXqkA=R z&srz?#yyA>3|7fz_ez59AWGy2kR&t>u{f2$mp!|5$E8g%m1O2l0WfAUe=BM2GAYvV$&diDb)oAP)Rl}kRl!}7S#p7FQHmc@ zU`lP_kJfobaW@fu>44}?2Y3Q9CfFW96ADaF1d(`{VugJXplF1@!H83J5OJzb!WgqW z^e5~03)TxC>bISc5FPOTlkT|F8COM(Vu_k38|4!ijst(hD3&+>WTWJtizmn=@mJK0 zED!(5#>zjVrx{Dwa-fAL8>=?fzPniEenqZ{hyVx*6E>XeTu{0E`P6|0+c>des7`oI zOHtk;cgPRqCxQnIQ6qbDRPusdQY}wODZ9i!cZpw%zuQGsa~CnM!b<#^U6L1swRQ=@ zZ#EYSOG~Kn$}kULYQcGjRe&@1Qc_Xi9hLMDEH#4iyO z@Ov4*s*tPb_dCZF1mfr>Rm|H26$@x0bPr*2wbg{}!mpx65#HF-HGvf@*3Yk;HHw&( z9Hp!c7-nU!E}2wff=}Lr3^w6D7c`fe_9$;SMgivKC{K=LSX+gUQt-OKC3@N>uy&pr zGAM|rZ(|X_(~y}(0Z&0^6>SoDa!kX-e){=XMDR4Q{Rk?6Y5(+V`XlH7u7QbzC+7n= z5>Ma8rh}&#$EE{Mo5zVL_%ium^R)4Z0;gDm=Tii(3ubJ%N9H(BPH*H}J*_k#=S#LJ z2nU78T#F9;Z8`0a*0$(__a^)Ff8G+8{!nzD@*>x_U=alO@2TfT+A8nd2%ANTZJ5fk z&C@6pYki+W29eA9)Ua9W`!ui>u)dGQfwjH`jl&S-~E%M(V+qrEMYdIbhQY+)^~x z3Lj8t11tonEDOtHU^a%Y(@t#Jl0j+pn!BD|+ff6^tSN&u)H6cQG=dyNn9N0muyXf@ z<+mbTf)Xmp@R}W(Ls+(Y`5M)#lUzf5hScd(IMU^7RIXa7reAsFa@4FuUp1t&D4{I? zW;q85qJ;*5K8jYE2&4dE!}mlejewWc=w=-tS;Rj@EZJG|dG3n1%va?TG$t3fT8;8G zYSu(hm{z$8{PD^){RPjyWk!UXGf!4wxw}P%TN14b$&hqOutCX)< zsUqT;)StC*o=Me3PpC$PjxjKvB!4yLaso8wJX-BUcO?biU?pktHb&;1Co`T5K`RIu11kYa~UyvG08&z5fy+j zi98_!inn0I&QtLgj3=UPGYfH3)#5D}JG7q*G5=j#Ffh#|y9ymbAdtwTuj1VgAckl( zS48*ec0U;91lIYqZ#N_xK2K?kX3}9Lq&>dK{)7FR{f7OP{SKe9`1>RKGy5kpP%5%2 ztSYM^-UUs$DD>v%I)9eU8-JVdYav_7HljQn^;h639OWC>au&hXvCSx3&bF{fwiY$E zvR!Dg7XR+Tz0K?}n~(9PqW4AUJq+y^0iv1swLtW?3jM4`{f(%-0iUhnd$qW?R`k9V zJ#S^Z@$VYc+YD&vo5om)TGVeUaRo$0x|Ph zz`=Mn61WOtBM>1T4BQO_76V})4ni{GFx;Pnl0bZiVz#R=*Kpvo8#0EhBiRf7{-api za;Wu3@hOMH=Kq9*qyNMq^1oxh$M09M@~`094_Cj;MHyxDP(~$2Z{Mzp550Z+P2?)Q zh4+Bh#=FDmZQ<{VcZJu+^}BducwO-hZ+fFQy~q1Ke29+d^D*N3pW)MxH9*|{3)T#D zM4#sPe2MGN5ySr+pD$2@D6KL6Z33!l#{%%(1Cjo2ptMf-x4ro80t)PezaGF>7f@k0 z&|ha<)2AbTQF&*P)JTbq^3zSwE0uLd9cniY?YpApa3rS=LITuajME?39{}7B1QkzY zQ$RP<@o|AtT`WY<%~Vh@Q7_$_1=^hpN}7$UZ$RBH^D`Y+^qD5^yHFxazd;+Ky;*3r zfGqCs#fte9(eKB834D18wh*Bns{Ar?$g-<~lzsLGZ znsHKwA1L8Z#gtJ@8G<%`EM-W2La(p*8$Pc=v;0&1OTXmR>-hCLepA-tYxqSq=$EWP zcjz8n(=UG^bE-q`)WBbLNS_+^rzWl|o1aRo67&~ckrsOoGU^RzG`dT&OO{kd3H_>q zPfbX!x5eij)TRDq-_)lZgZ`zf8sd*emG|GkuWEq!pP1t-;23&^2YpD6TCeB$Gv@wx z_7D8gJgm9Bj#d@W+nbP{wICHqM!pMK`iA|fi817-hU1VBE#k#A+{`>bHCZ^};RCS!;#bdY3bh}DMUcPksW?Y)Q zJ;6|u4$tE*-BoI3^oi)0>yOf9FOv;bi&?9=xU1B{y?gf`zj!ApOD8a<80!7Kv$I`> ztMuGWo3|f06C0nQ2>_=XYUZh>8LsDCp(|H!+dw&%L5SIG$-KB-!@TD3Y8beB43{xaW9 z2fn+VoUPw5O6l3_U9NRkv)%e8G?;IwH+Reeu)~|z&HpPsQmN^BTM+>kAs18NO)Eu9MdusTpp5#qiN{Qtw_^ zlI`-Ddnh?a=X=m{wV~eL6^bE;HK|;o0{787*BNTsiN!$YnAWxQ*SMT#2hd`0*uquYk6i`m^`$+yy7&!LMITaOSe>c#~^TiX4L>p&ud zdrqKEHr+%ghtWx-q2|P_0SYF!{pj`A_42%e1~l+W>T) zfcM{TKMMT_f;)zOb{T5MDXfwA*tT^lR?KnWMX5IyJ$*BK{?bhc&J%&_#(BbSLhRvL z+~qsv%TMdq7cdDrJb}LUlGxZf6F_zUvQmzXV8W168{AxqXn!9_KTCI0Ujog$z{f%S zGvjlm3npk%=PC5I57Or7Jajg)<(ux;bgZ|9DZvz_1XG;70iMu|a{}KFzF&_u8&sFq zGd@&W_a~A)MkIR%y&Z&zy0{i3`*qt7|IYuB^H1(USw&ENX;A&TJ*Ne;XvSIe2jY!c z0+jXq;Db7KcwMDgFLWp=`5ZbtY^V>SAlkf#H?JWnSvQfVfvA)kW}jK)Zpk8vhQRehaC1W*MLy*S42q%}*vb$TAwtb1dimVe2c@UPUSy{K=&MAy)F4CLWCs0MXh z>-RO_g8xGkENQ{7RBB8;6K@~7a5p7KPs5U6-4d@Kqjj6{mG&|Jgnz2nS3C@L9sOQ} zv=ka-NTYw|6wt3)soo^w_Sq53Om0s_$5^|}M_2dGM9*VB(M8Yh`bGn#lZU@jadROz1KlGeLU>bmGo!iEZJ5n-cQC?L z61h?@b#5RSuCOuQ8HO=t&0o4G28o4C zK1fPz*jH8l@)!Qsg7H*k5Dfq|y7vr8j3jWHSlP4li5ouw^4;}$1KyAXk=nYihbtdo zh?|huLfuVh_5Q28kTHx(q&%HsB*{2xE;6(=>);u}{khtr?^K&Z<1oZ+L%mCS5#rq6 zT?DF(nqrih^A@e$6@85aOQLba@Sz3YPs}=@*;f)#yajK`TN$m@_Jc_eN*xxDk?uj@ zpCmOp8fsLC0$Td~d}h>Oy)d7dVT;!6JaIJ+W?KS{1Qvey!xqdZh<{}?)vzS?NbLqq zwplq5BR!N>BpBtJj-S5rivFqw)am&|g;9}t1khy?K=BZ+p5-54E{z6}X@I%aF9h=m zO_+>f9to=y6B^#M3V$^RWAMM}LL51z9G0gY@gOA9Hfc{jG7bqExP2ZppmZ0DuR$pD z#%{2=+9c3s@l=eGC`??C+2l4K{v8aii$%(@1&LEkW0BgpU8NwRB9C6W50fGe>WA3< z#);V=x4`Bm&UkAc;BLd)@^)(b{u6;Gp-Iy*TC!<3gB&VwVC*pq)r@8~7jjEl4iAk3 zL=y4W_LB^l)QUS+i3jjDT3fYUzX{+XX$odxz%*fwV|rs+y!l`M#sAD-$#GD+Q(I!W zEMc};3bO|^9Cw2*wqbT7>I+8Fz(~B2CPb#%q%-lXRK__NEfbU>YY_anTKq~{lS)R4y?Rf{@(dcA!R(p;31{@&OImg&;%NJ3n zw5iAcqJuK!T56^}LrTbLa~U<1w@DO+&Re=6N{GT#!}p%+facb@W<(LaCf+zX$3sMh z0ECv5w=)2U(NXO&e7XiBUKqZBftyZ_I<)aW_5ak1Tw7j|9EZ}ToFu;?)hMyW<=UAB zchL>|j*RPTWLztgzI3jz8@T69jb>`VfUh-|w~#iB-^Ji;DOCBm7H@M5oP&kd!JiuV zlSA}aSdjKFuMFjF3eZ!+X2L6n6Cu>RH^#$b(P?Io6+d(Yo?(yt^{|Ys>O@NFeBsP`ic(hI%{&a8vBU9Wuo( z-l>}viWOaPmplt&ws`;FC78lz$t?n57m;Do%~K#lrHim*C7Vkk zAeCUWP+RsMPk{m{(h?*9htbUtqQJ)zf)LfhB@?cHGL~^6h^_;8!+RkCu~U#@>|v0i z*OZoD<{<=&J-yoYo!|mTN;#JdD7^H{Tcju7_^Z$oM1|65wa9^2mX4kDYC#T`wJE|3 z8pn%oZ_=3cKY~N!6%m_~&2%6{5av!GWL!Io9(ZTNqzB%E_cQ`|FWy_}Gn9?9MPVud z#IqAtVrtDy>L3y&`<(n8Qp!4vRPt5HJBP3O71oCANK?||mAu=*Al+-f_x?}_g?U#~ zlxzVGoX_vc`3!0e9iu_V7&crQ;NpT#)gA-j3z|MnI!OvG^(fY8*yBh<`M~L9B2i8(H`4z_5=05RtU^>1UdVri7sdMJrx6Wel(jZmdj)hI;*pz~fCH;^hlI@Af=s1K z=YP*Jtrbh@YVeI%5GjZGq#Vda#jA@?5v}sK`8xy%o9p$x1cWG-TrZ`kFj@?lN1Dky zZpcpF-oPG)4(T}z($fqZWD_VnJ8>PlY$ZijQN*IZ!RlL@L&SIR>TSLZ#MY&5U2;j; zV6f2a@8JD%Vq$o0M`8VYP4CeWOj{7O@IJh+*3YZ|ps@s#G~qM^_EdLjG(Z|nmQGRh zqQebsgP2?hg^z?b!JEnB0MPW0-{bG|50p9s;K;jXolDAcBRb>p`PewU5R&0NSWh>I z+32PA86^zMjTG0=0TmYQ{%kDT`$b3>-5=&d0|IH$+TGIG21q0q0`-6KH~Cv?Zx_Ut zPsr&+0TP*;55C_3LLUAFj54Q$A?o3+jQ~Bs5GIr|Xi|>LS6GDxLBn&BHlg1DE*Oiv zGBTn_%y~jClG)jt+*R_MC0mbOc?69YFJ%pD$!lrv8nu-`L^XY89#2FO34e+TECpc= z<}D0Bpn<(O#&_H7B^3cNm@<^?;V=rS!V*y3Y3Ip6|ECZ+6u#mWa6ka!UzW(>B9O-4 zAWRrPfd*`2>LgpWvgUq5+lgQNuypgSxl{XOqO? zSR~$?Xo&aI`y2g@0em1I#0T>s%GjxBz5IF{OjDRBJS#37n5s`^GYOv@p$f=D)&+Dj zP^MScYOofBi`_BzGxRuv9YLesZqO00!|Q@9T;7K)c(M|%9|Z%eGr9@hA_GYi3Q`Il zcMr8kPXI_FkpN_4(C_NgQ2L1Fs9G{)n%eQtV1Ck>Il^j^%rCdIp~HD zHHHbYoVk4aDFB8I2Q7II)@sP#&G3(m$`V;yT1$u4q5vQ?X=gwc9(^-KBe}R0&Dy{J zz6Rnk>KgSJ2%EJBR9naaBtsKnm$L}FumPk`wT=cPB;kg4(|{Y+(=f?L>w_4C%Xikw zooDZ*>p74@>9MrZ6+K>s2F}-nyQT@NPXlmD<$5qBcK`4wi*%PBhBd1zsK}%go5Sm^!5UjIcuVTdJa%{cKi}dv+3VJ zJ$aQEucSFF4K^IOS#;)3sv87cx0V<+DLd#UxB!wvFY`v8`3lo{cP!aThu zwrwNCpIdk#Wc(Q>mZa6eCIdV3*B`tbpG~fimT~~S54VX(E|V^d3r#GOl*6Pzc`fDL z)}ZX*gI5x=$?*A3kdg=}8TEMsqakakeWnDA17Iu3JcfTFB76uBC=qNdd>9|ju^ZyMcr(~W17u!$hA_73c4zyU8-# z2e3N31tH0>qWfc|3CvaRa|4Dci$d8dU*e8bU!JxwHBbZY5b-qp5~+` zUekC(d3yp#YQu#G89IQ{v1`XZCV8aPX_f;9@@oE3y?WY*O2d(E*Nbx&u2{b<>PU3V zmD_QtZjSh#h*gAQ8T+;K5Ek!Zfc;o^w=E>tIDiOGKMmfs`yAA#HItVhz*B9xPZ%G>#n=l zK&fj|q4<>^A8RBuN8EHhKXdNFl>$u{ zbe&@#QAENbv54cydh^I_(!83b*!sh?2wt+~*!5%$_%W_ugPbwV5MDkq{v0YK`#i>m;@FdaS@IlvU~ z(*jr=KwxvhWG@7?>(ni<@4z7=Mvt2`Wd?Q^ zmtVY@kco|6JFWut<{&CdP!UP-QEVz;4PU$eQd}0OUD1gXO<3X93RLDMEwV<8w^>`D zGvw&C#B81cNbjK4I9`V}^FXS$q5w3nZ#3W#sI)OeT%f_J_5G@8%eEc6f{J{W9ldZb zRl8vZ_Q<%J(%rTdi01TO9(zyeKMhS5ZajPyLdj6vs~n&Xmae{&_{fM+YGAw1duYtD^>!lcSS(ks$_^6ufln2?zlIr#XOAhg2+(D9JSdCehGm4w~g)J4xl4AVsfF>(puL z0TEXFCvIR;hVr$~DPGJ4CXKIzk+~?6M!inVgY8*F5S7uLJ(Q`Lbm{H`VS*UiiXCU} zq#^2~XmHW3wN{1+J!ugo=}D4ogc@lIE1yI9ct?H@fg->Jvw3xF*bro3k*3u;y7X4ZQl)t?Qsnr4eU_1I(XSB)VaI+hpd3s_njv(A1{Z{xqEPS0uvg_fZ{2}QkFxW^ zs1AM&TZbOUO!GuMJ_9Pg*?T!Y3u~@qUnZ01Z6{U2D27@iJCcaf_)r5;YJgg){{@lR z%AMz+Kd%BlGjgd;X$y=S!u+Pd2yds6?@#=)XcM>;&RQOg>f)PS!(K0z8v|>nXf(L)R7wavJD0e@Y@tDxEttUYi zd4NR72CFJnZGM8(>S6Z@j@yx|u;a2Qd=Lph2Yl|JNY;r~H19?MVTb6^=%{o;sK95| znyByNvM!t4gZPryq`^aMdgLRGAjtDkM32T;WgIOx+2wcB5xiA$qS8(JPlx4SS*Sdx z-XRtzI{`?AH|V|kyZh-nVAV4&0@fLyJCLdZsRgk(ZAbyBBrNBwI{@`Xc_e23gfdd7 z9*e=XK1N@oAKXEg@0`_pF9835P`luPkbS5ZNRIG<+oS*4$FIZL6DDFj1tvQ;_N=+` zRRPpUJVfi~6E0-(CCM+8lEM185knwKWbF(=i@YNvH+0_mgFnP)BX9tJIKxC8zT4{s z^0HiYwf0B0?+4^*$p-=4WT#SWT`(^j&GhC%Kt^o-76!RUqmhXo%Je?GrzUJP;6np}piwKvEcl};rPtfgMZ zCW76xXL4*;!87n8ie%($HnFx$FwnL|=WxuG+amR$g;DLW}oDmzJL z)(r1u2ff^|sK6LeX7F=^f*0I`B=E4mDdm*?}5b@ zu4)#tCo|(>W_dbL+M1}d_8@sPB1P4U-YrS{toY*|7}Yinv8)BrA{&Sl!|lFL(fC?a0H)Plbqe zxk}AJChsmJ)n>Ra1L-&RQbO(Yal`xdH7U_;Z3qk{nKOIU9&*F;1NoVB7>cGt=_fFR zcT8s&Eayi2++t?6Ym36@aGcv!dd~bM>yQOb3AopgH4(dOPL|7i`oyurhg(xc;s(uSGLc_vQHf~NbI;ss^nx__S1;f;R(VGKLR&AJ1^tF#1wII@^yGsX$nj4 zOiFS$97_f*=QCS)yxDmqSPM7wktPgbl8XFuwNdM_62N5}qfWI@lMgfoX@l7i>G3MV;THJL zk}i2ZXw}c(d{fIMDJ^eY1C(3@Dh$(WV12Rf^H0I)%>%H~)%FZ23Tp`8N9hP&e=a0^ z;mR!s&m&soMp}zk#`z61Y1zk*bcD0{NG-^K_hXEKB`wJm#<=v#GvO@cp)&A(9-rKr zfVFo-POVax_S~ccoRfzH+InQB#In+CfP{5brE{bTrkq+sU``y=Rqn@2VwKw&dN&z4RC*FWNjE(!FFw^iHO#;aX>+XrrAY)! z;Q{3nvWDoCj#NYfGWv zHEbUk!ev)F2vI;nb=Qf@53mgqZ>aIdmSYu|z|!@QtPdesk!=}w zbP4tZCJyeFJ2yhQN=9$7U(?T!)JxiH?wY+9u7C}Px8a69+%GEr)Fw^BdzJG@RM>2pW{3K0mnutA1 zaGoAW`*A*UKQ1#j1tXd=<(+@oX1oQOMG<5QOF2fNVx>VJ5QFfZ^MI=gznS)wC_jO> zR(gCb#BId#P5aMYCvlr5?I_5v8Dod_lCgLhW6}gVWtxC7L>nr%>4-L9UP*61572Ix z(%R&-$B{2(?@~6E^qvuKaT?@GH-PG(-vKiKbV&Gu6;kMG2%VcImO5knh#UcDQ8diP z8RPhPV}gh|np=ALK*z4Dz3t(Y8BQuDMpQn64JSS6JYXZXFCxs+{$hPiO|kV*%q>b7 zAyZdcUDHPP>(~L?*o70b@cOY$N_(4@=br~+4H;2pB3NOBEOw0BkaQE9wg?3~v8=YX zf{~P*%Sc%WDSYGtq%b|B;^n?346i9e11YnR7R1VJ$xY5ujVQg~D}wXHhIc+-fgGWc zr9*1THW{Urlq}5`-cb1r94!6nJP@-kx^Sy#XNw0Q<NHxq=&iK@gT4bh-4`d$m-&a zjK*X~l?wTmHh__Oqp--2|8PH*9;fok{$3boupVV5j8r0q4Kz1_ z_Qd(g8`DAAf*)yDF%RfDE>=hGyh3eocT-F?>-6RoDxt?Q*H8)9y0U5vMUYY?oj@#CTwB18HkZWg)$thP(dD; z;UiFdp=~uNmE3eqA$DmDS$;1vMS22k;g$1TxK`STy)y&rp|pTHd2ucb^}VNrh|V}q zwuRT!;a$w6KN_QXTuq9>VQ=#MJ=zk>YrP>Dpp1s-L#jxVu300L z?oCNjt96?9(6B3`1h({$xOan=J$jGOMk{0BN0$tlzj(!gt8VSG$2WqR4{2Shec+%$ zqsNUOKMBI`g_(09vG<*U9iIdPE)|Md$MPN4J;kN=eBTU# zs2>JSx$iQZ&U%kwNq7jA9(_E%XK9*C4O_Axi*~PJ$V+pwC>mu02w=(qflnkt3Hc!k zn~y~siyZA~DK776Z@%>wzLja_?w`_n!d;iL>8Q1?4_#ghSFf6n?T(duqTMlGXAi6m zg}xl$QHJ}unOad0{keN1HKdQym*Q(?>>wX7>ip$+yhHt})@K-SLDmtr09Rks!LFBm z)l}{)Gdv3EwP0i9ffQ`3EAw_+0K(x4TNxR7zt6dyYiwLKuh-mjrO3cJ8-Z;7upMU; zVqj)&u!WC4KhuiWpm-WWOT*h7MCu`Kdl;&QExP624JyQU58*&J2a%0~h=bwFF; zE4W2efSb}=Cih4WQNpM6A0$`;`}HYW0iZ=5Tm#U0J6E=ua}QK$4SSV!18fVT0l4n~QQ1T52nfB0b?Vd^+bK$D^g|FI)C6sY~0? zDZ(y=!c^yTXf(FtZa$E_1~hLDa9P;B809RXt51i=LPP@C7$`J?bn#OQfa%QD7}z)_ zOR6nCa;&0PK*NTCH0GWB;0*8F8Fn>`%!u)hj$9H6DaSS#>D+@>YsFA80;{cb>g*Yq4kVDi3UkaU)lN?MaJ)w2jUx2*NH{4t5Mu zZX-m@MtoBe)Ynf2AfLc-;uqixl^gB_!FTS~{e2GjzNqD7*`{@n5X;VH#wbUYpi*Rh z2-Sft0svqr09%VC0Dx%Fi8i+=`%OOiR1lf5fd)3=5WDb2W-Phr`C#*1yz|_hN7sWr z8&v8S@8$wd=A>ZcJ=kQ<1zUEE8oeW0CM=j04mSE_%pAorlG>6Uwq6QW~4v-1sh%U6ry%tw1 zX?cg!qSF;RQHGhCtSC~XmF5#+|1S}{?*&47FD3b?6Vi{JkhW=v&;cQlg`o~ih};Nu z$0&QC{!M6ycY)Lsm5GT51Ufe8k#hoYDgV+6BpG>(0zOU~&nCbLC+UoBLfU)J2X6^r z_Fh{0omrqJi><%Rv-&WD*n#XAb{6JS$gI2&>mW$Y0(fBafmXTEhG7TK?$jg$%Jz~; zVSdRXd&;Ll5PtIH9ad4i7$4qP2Owb7^8W;AY2^*s7GKy1&7VHV6g-? z7tCWKcTh`cR*8M19XXL!uS(w{tOd)bHHJ`{2=))7DE+n&U~^KV9l*Bw)R79Jw*4HF zwSk=-5oQ5n0c*st9oZIQM|30kB?ucEz_5}nV6n03FunK)%UPAC7a92=*hw6Rw;5lv zZ-~V<970}ha$XiINraH@&U`=%Y*9k1Pg*&yazi|SDQUr6tft10Zf4jXHc>pnqF>#G zR5S267mUj6BW1=FZzTC|%1ZF)aag_tg+|=8wF5yj(1QgE9MQg}3%LTL&1L>el zZEXWxC=DyU@feMjYfLG2G8&p&sgt8^ru-HLuRG0={Gc{@|0@UdEk3kK81RNH-%Mt1 zE_m5l*mAwGWonUeYr?CjVzhUXF*aJnvn=^7UW~51XwvZj9td1OP`w)c_vioc0YnVN> z|42Lcg#m5kTyy~4>XSlP4@jQ1ZZCX~JV+*eHnd%P8)zpb2RbPk=VUnoMs738C0#Qo z4=R(0`D9LTQo+op8`>oY%wOh`ZLOL?+}MbowPF8;d@z$n>)ND=4f8;cfK%JFB?W1& zA@ax`L&rJ}<^+zBCQO_9g~F>}_H?Q?^`rum`X?z&*xh(wA1Z}qk%kR14QEofYM18C zZBU1_Av%ym+!4;V4XQezdw~HhK2S3ipL-ZGorU{Bd;Eoi>Ie*~0SyqOmDuor>OE`Y z!P9f#;?7=R6#~k>ox9jj2K5wHEE#9mVjkwHrHr!Uo1Tpv8Df#rmw(Nt@Tq(nnb&5b z@DqaC+M_gbgL-~zs!N@@V37w3wO0om$YqIMhr;O9+aY=p3bc)e!pW7>iM8;FeZ!^4 z{$zM<)0$MONo5?-EsG3%XKg$bb7}Le49K*3OO|>nAr~7DRa>IWL$F3$iZohXseL+u zU}dJb<_I*)2n22Q!*ek`c;pZ#7RFzm=rC|;3AEW^As#?W&DwbQ;#y1gi}*hKuL;Ct&&B-%Ttd?PL* zgPJfJEVAX(InHtgH6Q_i5{jP=oIdD* z2UP6P6&@-!dgsy=BLQj+e)UWz$?o}cqM|J}u_w@x`g@6^f_OY)4(PGMdaMah(RA#!VF26DpV zX&F$@4kz=`f_l-$a1Yea0pV8@GPBYW;~w01-}AozFd_MZqjI-at!yG0+MaBEDTceU zex6!*d`ra4+#=*h&lBbj`4I^*JSs)m0Z3qeGN9)!bPC!{T@jSczrnGWB1?c=q$h(teED+6K#RAM zVlye+hY&6{qd1-v{Sci3lA#M^yH#Wf0)8O7B2uFGJ6u7p`2y1^*Lr`6rMyDV|h{ty0 zpNRh!ZQJ1(;z2{~hsI)-31gA&gQ)*fx!+Nd4g$tGR3dk+Wc zDnlTBi=taTS`~;jp9y|ezzzxww1FM#AzhqKKqiJsx_HV`6Xv*3JG@M z6cm}>{OF08?dd7EcSjH9j_htrT|+!*XhG~fa?qf`=01XE=e=qUqbO&hOlVmuo+y4+ zz&b_lpvQ^aywGV&#*R$)2D?+%w`WryD;wfE-O}igj?tqR17YurI};j;jF>g5US^>+sLkU?UH z7Yd?ReKI`@qs&?DEgoZjR`;jb4;uHHjOj+=}JCoD9&FnxoYFQCrq9){Tn=FhR2(|=vnAz1?h-EgKU&e96_;lskX)v zvsmP+OqrZlvLdPp$;u&FjoDtIvqF#?sLour&5J?@&k9y&9B)*hO{!|Y{!VKk$n!LT zXZyi>+{DRKrzg9NV6R!>t9N_R&g!!Qvk)pZatHMLcN2DiwRdLp@$NTt)P$)?u2M5+ z%?_Ivv2exa!(KQUj6W+db735sE!&z%>sVA0a$tJZGVylq$1!Ed9_UijhK%{vbsC8lO7ntt!6l0yj*L(Dw921%l; z4rw@<5<=Z|%uiaD?vF&Ry*7s1(3hFmGMGap!(qLUL+GRyM&%r|ka>Fh*KyOD7{+ zE2|FZ;Rts2^@QsO(_@RWRu&lRm7*9cIV~eAhagS(c_7_lL+ae&8#%;5siSO4RUxM= zNZqbiAJ0xWF&zr*=RoP9%{HLUebZb!AQp{g+9?08(6D(6goY}de{Mekd>gR`Fn`BR zYwozp72F0{9^7QZ=iH0N<0&@F59>(sADYVp-yh~ISh{)xbW(u~LvM8{j2Kfzw|f9d z==MT`?gSS=mtw|Bc@|j*gL~n<8m9CdJHU*)d*J$Q*s=|~4wCN4!ylLOgH%eSOz8&C z2**&-lpzNTd%2VF^C8Ovlrt3~Xvk0-s3{Y%k!{MyU`AWhrkeld{B?VyFWn#|WAg&N zwI~mwY^XA6tUZ`2L%HbWVNfpqwYkI|KQv+^arCcGTtxQFJ_YO2eN9y88k*Wc5*nuZYLyzG$@}+X8NX-nL zW3T$$)i~G}wGV)HK}1MFraak#V?<8Gcg7Nk|6r+1B-hPxYxFXdlQyzpUloE4Pu;2hA# z_TXU_jOVp@$1&m&JPRRG`hyoa)zrLIc#oDf;?~1p4p0Z4<3Qf7k9b%q`$&G4Hu0+) zIHD{0W>hc@hNpTk7(GgIj0k)W`oPT8(522ifdw1)TBCV~Z#{aBaJv>YX=)*hMJTcG z;c(I$PEowFg@%j7qbFjxozWK|yv2htYzKHZe5ErNc2Oh}q2=r_-nTJ$4v8JXYT&N# z9GMYb)Ofz)n9hwDP+1a zE-xndjy;mXzeLD_HBofRY2o8)hOaoib{&lyx&sd>$#Kud-oOkoZUTrA5kl|a@a0>{ z-n7|x=Sj!NC$8MUH1R|hs-MO4Y9;0_-F%deU@Uy(9E^Z<`T4gW-MhGux;sFRlDTn?S;UHM#}5@ee2MU_ zC$GmnxV!@5Jra-V?EttXL*^~pa`Z}kmTrxIAC1l9gngEYbo*>N=`17u`kDR9==FaK zHk!|GkPCP>De=~s2;gMNflNG~xCc)z_|BTQbmPGb7d-uVE!%YxoP{%r0d~oSIB_E} z>F)WZ0+W#T2bSPOBzh<6zVGhhoeB~VoG%%cf;3Y|GUOj;8Kv;H)A$?b4{e?g7%b!p zgC;d2{@RK8gqgKF+(*yl12?( zDXOnUbviL>&F)h-kXCd^ECbH4-G|ZV$Rj{Aan2u((Ytf;*zPsqc=@h1ywu-0I8^u8 zig$KBZ}53Zg$xP4s&NZK0nd7;YOIHB-|V;jPgT`vaD3X7nJ zz^}%or=ychS1Fh1CFbgpx#_N#LL$WOj$2EQyK-`8L~t@rZv}{jjFUroY+`e&oQ$!eb{~vS1@v_Aupg2zFbYG2*T01`^!}S7s zn744n#y#{fyT%UyEdUEI6N@<%xpu{J_p*}9SFDXZ6mu^P$CH<&qXHjXzi`r#2J|Zl zm7(XPJ-m8)f8^RF^Fl*H_{^7Q%?X>oVDXCeI}V?x*COkVK3|l5-g)%k%JH4+S7MZx zm#7=jNSMSnM7>Q6-IL9!_5#_LrguepO zN%v!8P9EO7BXaYmjhhgEi#l@Z;*GczoJs){c{+U2>@X)g^+D{#v*r+2?j&F~y733@ z&PsWBo#?d*?wyDh7Fk<3;rB z?>!7)YuMl6etP1Ao0ntGoIG~)$kAgb&m!mYVRD9sgE^g@v0E?QlD+BF;^AF;g!q(9 zjcZ0(TBziQx2|3|YxZ>J!j+p3k`Q0SJ0|WJ>2!XgmYtD?r=)yS(=xJ=y!Rk?Hk=8S zX8ZniaX*90 zg75Iofpjum&r8_4xJvCKN zDUq5c1=&GSbOwqCk`rRk;QPd#Q3j;i9_;hj0FrGWv z>(#QqUyz!L*K~-Rqw&r)W#-#@*%A})-+M@J$Dpd?aMseUHs#!9OZK~b>GDlFPLgg< zFx1#_6?s{`Y^fF}PejL%Eg^cDY-NRbkUkG|BzGG z`***1-sc6qtn#0uOWH3b#LGXn^|_2t*g905W2onc{v*4r?{8iz;p6k%?|50Y+>nS8 z;_dV}O7AAjmkEF9a7uIY4X7QCllA7+!`LsEc~19LO8=IZ_4-5a`OAFG_xs&|9hBLu z?C+cI&vxsZ&>#YO`#|^q$}X$?`bEuGDft_{tXD_8y47dDcmp3!=yYe@smaTFf4UWl zZwp#1#5=X8)x;3LEmJDTNAU#)yj#!<^1Q_x@?zn>XC)o^3+}$R20A_xO_pG~n_K)b zr>u(UX8N#S>1BNyz>(N{+8bQq=Jbw+?38;8usS|(ETlKi??9_%hI(;idBWpMB{O`f zk#F5_Snj7{y@*-x$^@8Gk75Vrl=Z0`nt(>T&}b!Is=oMBLclMcOY>#_0jhax&Z0HD zPF{PY;$@^)FcQw>zVLZ=S)bRYJOm%?L8CQ5!qHx@pw+Km^iB0)ztqc?tQv|Jc;e{S zbVcKI4nE$_aI|_>S)ad-x`kF`3a!Jrb-`~*L?rvLUx4KNzgf6yyLjs-wJ z?Flp`XDt%%D_`*$p{C4pk9-)Y?)g6j!N`~IJT~wWcKN1^Mj(M-lq~ZbH2(dUL?;xh z*>0#O2fQjV6z8K59hNRPm`)0cp_dAC<2#9?V>PkxFO@9$(r-ZApAgL)L+f2Qj&M#b zfvVD3n6Xj{gjxFcJ?1anbU?fmT{q}V@63eQ$iHIFzbnm4DxwELLMPC}UJ&A*4&{Ke zU%qe;?Lnudh)(x`OtWA}%9FO^F3$tb*stBCM01mvPNDriL%lw^qQG0pyOL^4eI;J& zNUt;33~>xLj*}k(j{TKZQhDJ&h^%H2S)D=igODC;8vULqxXg36(H_)Tx;~uOJ@O@t znsJswNvU^ZnxcbW=9E;P|0Oz*Bz6uR95&RmgCS%`qM+uS|JUAI z2gp%n|Ke5EUF|kL($+%w5c z#$8(Kea^kr-PI#u@?Chp_j|AZ*bUQlkKA+4J@;Ix`Y3yu0Z)HF01TWpX3l^|8=Vn+ zqew;1536zO5?mJfltDBiv@QKvXdfk*-5TX5Fu+&Qw`Y(AZGN-IBH5xtk@q{8e2=`f z^J?TRG0uJ*y+EK_dOn3f{|Zjl35dmhrnSkC4*VWeUuFH$P@@-OU6S8|F2p2S3(H4 zF28MEZ{4}-zMRcZl; zKseID)Ne=<|Di0I;Iw#HFEAJ^Y%p*{?s8ZP#wd#fzWBO2Cd$AB0~y;1uQh`;<7-S+VPSb1Yz`rZJfZ6DN1~9&wHUsT!p#TB058{nGGICkxsS-vg>JLVnj|hFM8p%O`o%rT%vqSJb>YL zIe5fWnX4?KgLv@pJO>`fkye(oT=XATR{Jn%T9NZ;S6rkUe%F&`#F z*8XSxjvtOu(l1hW6M$3x(YKo;$`dR;b0I}}C`Jpwv`pb40M)p5iK-sQZR1n0n}elb}cZMhlQ((NzY0wWFe#eG&74ja{i`;oqsO~JOA@| zu!_#LR@t~hJg?IA6MO-amtvIJ%b9if_*tlhkpI!WoGz>cA>?=UAb%BFO01GS207Ni zXLs-e2=vcXuTd#+3LW(G7@omL5>-2ZgumSFzPSwLtrzne16F#kHM4seMIsAlJ)81X z2>7A!e}dC|BE$}b(1uTfAn(U8>FKYaZ|VBLkQWb6vx%_WoTG-eghC*M>He6Prhpn| zJHL_2B#S!ARLJ&aUblWuHj3&HWcw}Xa%{2nyiKH`A|&fsaXZ*RVd2G=rI9uO(Bm|Sk6$idQp7yYC(ls9|v}hW4ymK!?0l&gi~Kf z=@d2O*rUWzg;W2wHyAo=%_l8>Vo6H?{jhgXfvVu?Pts67&RNnhyo4280eEykm$*e2 z)v`kmgQ*IS{$V_s%Moq*ER22*T5Y3Y&Z@`W;54B-K6Xh7gI^Tr?Jjr4P zW8J`CIo3J%&vWFT_$q6*t=29?330)4BLHeX9nYO*+@dtlTA)@7p_X5Zr%~`6GOW~R zuNJlZ4sw&%a>`n5lWfk|V47F)$(il^y5IHrvS?;i+)`e}aTM~x7GP}iv7i;Zey>F# zpG6KkX|AyNEux*O8$O6syzvvr9D+F;_60FbVzlfCp^86;r|}-9uh2=i3p1PQw(t6Z zt?RU<-0D@wl3FPTz{3}V(n(|7XB4bz)yEen1cN&gPhGVpwxnqPi3S>cI|@l%lHCde zSJ-Rqk|QQGNvIg$?|?R;8Wt`<4T5FibXE_Z!fXfF-~I4>lG$hUnS>a>+u&}yO$+k< z0{K1ujJ4bbE87|Cl*LqNt3cjoFTr!`L4B?)*uZ(H7One!Jc_O|NYQRYz1(WE7ODF# za$b(P#8N>ui^px`RZjqr`|luiorjHU4T90{HYGoy0p0G0hmK047>y;a-24qK;PyPQ zjX7^AwwBS*KoEBhfog99St3m>)kgB0VRjHQdmlY1H_`Mdr@cg}ONGk*0gG`V>b$MQ zUT*h0#Fzv$m=Qw5KHnXLHa`rTV-Orrrqvb|@%jO*UZai13KOlCS6fVUWL#QjTqB%@*^B3nub{Zkyn|M zip&L;GR$WJQiA+I2$~urQ%o`x!eFDFRBFUji}5TcXK|jq3R{Jq z$CX&}t%z56){y*?24Z>;2pxqmWtowUE&anPhV-j=fLhpZ_L~J4GV3zhl|breD~847 z^AcNuz1m*mAWaM%HSo~)f;8?pc+wO7umJq?mH63NYC?26!0+Y&%ra`;ABU22%B=ae z8e6qphz7sW8gS=*ly{70^v7huf=(yD8Gvx^jNi?*h8m;SC^{062(JNFGAT)Q@Mly9 z+pEmEmMTlFm7HU^lD`VhVVcK+*g=IO)}(RJbFK=-d<4HIl)#ieEU6GC`bFn3O9cR! z-#`(E5opP=R$FUqfQqs3 zcmS%#SKD&!UV8<0Ss&H0+ESkH7KIgAd-ndLB3=);gFd1mK0=flH-CyDi%;*h?J(N;~5NAsFFVCtycEj99AXcOv7SSY;Gl@rNKg+6MZ!KqqsDdIP-ztG zaB$idyn#dDzF(0leiIEPA-Ot5fNG+}RB5(ZY<7p!6&({B7oU)n>y}4rVSV?FgRtlv zn_@>FFuRy$gaCY}f>Y|*G$9rL#+4aP!L<~o*93rizr-K$CX*RzKw=t66ztXJVvF6% zL`E@@iAmV1nyUrp-PMg`o=3ihTfotDa|nocidN=HWG}LSoc?71a(6GDC!m*MGP6;a z>#gV|GK_q+7F>4&D`xHaHXrp5As|1heosRL(vGHkEcH@2-xWa3&Bfy+xC*H?*gIQ= z@dTTMTVy+(#bgTW(K#$8 z$u#ncFp%3DVYs*=%t>V^)F5V12-S9?wl`I97Iuy-D5~_&1i@?PLXguO?k+E?@=`0a z%;Q>++Mg#vR7{Dz)=}nQId&d@k^H|Fz3`5kFxMLv<*XweIMJN zVxp}Sbu+vJlgQ7o%TWYm8YbqP;XF^onE@2oqAo}wj&RrHVPQn0-Oz_$^*E}oa{f)@ zGQQGQg-V2i*3d2l?;0k?1LvUZptx@Jc@W0+7D$TG`UWX9$5Lcv(K03sto3$^f@*uE zqujyf)DaEWf=K7HUd@HRNAB!Ts4?avgqK8C8i0!*v?8)90@o zfWs4(zi6o(g%!ssV-Y3*7;b0~()0vX(a=7a3LJTsJngtSpoYQo$d*#P9Wzb^ub?_L z091OXhLQD*;WSN}=sT}~I2h?FG(oHe<=IOxIg{?MvLO_}9HmX-xDq=`0l3gGwgHq; zs@ekC*>Xxgt*MF_mgu2&w1QUCx9y0@V-~Dnl@X2{ioIkp+EQk%;1$j>h?# zMwH!SI&M}hqK%UG+%V+Lm#N;1Dz~BBA!$A8VQqe-m33A=rY*2kM9ukdccAC?6DAZu zRCKCCDuAE40(@f2t(B~fGfdXvW`3d(VLcBYRq;S)1r~?K`~j=gkc=wxX^ZGe!hzSI z7g%w_P%!u0-3N`L%k5Qm(Sh2{@OLfpWtb2@+;hf6%Vl0-skoNQG(sF@vU^-~vE5_$IoMvoOf3$iR*vno@idjTREzNH3O7l;J2Y|}Rpb>^@Ya^g!T=p> zcHGd83o39Zjv6PMx^Lwr90zdJ3bGzU0I*qzRaSIgRr}a}5*y7nta7XwSubkQ7%M-x zwk@P2#=6eiYHfaAygjagU(|B36v8(sh^aR{f)I<^7WN!EIAMaiJj?*U0;q~*n=Wrf zf}$Pgu=ZosTN_@zar8Vb7i%fJldmnT2zF4@Lb98Y)I=8+t=4`|gux;fzm?g7QpS~ZHJSeN|_ z@>;c%7FUM(yjW?VOQ#GcDN`f%)$)ok|Fn|q*;r;_+*qfqeOU`enES%?RCFjI+TpRD zvH5AIgo?POTIfM7A7?3?gz}d%HLI}d3Cf3$X!zKYGs6J|&pbCJg^9A)SWa7OtfGy| zxPP-Uj-$kB1;tdtOK17y(}Go41hS`X;W*1ikTvaEEfS#a#1mtad5>ysC+&!BK7(JP zMf}sUNy>whip`-KtBxGWVIe2c7;65{F#NtlkBr0;HX+7Y4JUb=7(}Qo3?q3VSEolv z`8a1jsita~*I9%Vr&YzCYi64T*7TJCcnU%9{r=#kBq+*WW<7}nSHp|B%d`M{K{gN+ zRRtgAX$!4-f{IZg@PX9vp%8LjDa+XXAS*t~T4FhF^;vyv8%4f{ZKH5RF^woO$>@cf zPGXmU(l)EK>dHcm#rA)!y&emLyhGCNi4aGsvzNkA9ykitOL?AEb#)|RZg!TyO?hUz zW}ttA_LvCyEvO1oo--eNk(lGGL!JpkspEN@lH&5=CuDCp zlkYp#m1Hk4voSm2xtHJ4Aj<`EHAW4WodUSA?~u z?UKC^BMD=69u1@rCS1)&EO#Rb~o1v$w>7?iY%VB1r5<)E~pxyY7s zbvTq;D1GO`LsbssJ6e6;tHEdss*4WASHeZvunl&o+wD@(*MbemMaAkk`UlNB zoKlFjTyze+SmgBZa_?a*6a!ddT4BpZlWlRD8C8mmg)JKVD@7TN)wtmiotWbmH)@J9 z(G^?lHVvSIrR`ZGlCkfG6feY`gKf*PEz4H&End}NglQ$+No8sRBqc!-Z3f|AB(7?c z=twy07H@eAk6B%I-mQD|nHvXIxW(ku+B7jW#excO0tkz3_IYIN z7Ff5`^)L2tVP_$giCoUx6)=JNXp4m|FbOF+T!DlNSU8_7OhL6w3v#8gus#bQS9gO9 zb5+Aabyx&q9V(=prEZ4F)Ilbu4k4L6a#lfL9tosidX|-$9O+0SPtN*i@6p}Kp$(02 ztCBDbdm%ZyzOWdp6z-3OynJyAs)tjFM7a zPr4Lsf%!>vEfei?*TT*@b}a5_hw*YPq?D%1hAe`V+K>Cy4ZAg9cj^n4@?nCj)5H`v zVi|D^=_r?YWMc+MRd>9cUg&U+bbw*xm8@9h06cY60A$p3jS68&63aeRE+iU!>!?u6 zq^ml_SOe`S%O^yWGl&X*VZ-#K{WN?4Q{bGCK3CSD9sq<|cL6Wl*Gc;+tnFE`+m#o)^>i`9EdYBu(Hdh(-J1v> zC{U*+V4fIT&{L4C^;Fb3$7yG+OL4LC`aTUDlSUmAxe9Ph=h7i1V4k`G9MlIVE3IC5 zjqbXHg^ohw8B=aBl0z!l!c=l)+fQKQfo-X(C!!ozr=CUtTbixW$Yu&` z&mc@AF%82S_ltu%HR?6o>am@$i*~BRdh^rN##Hi_KdMzpTM8kdwJP;{VY(JEslJi?RUc|JsuM<*Fpb{%=!SY4r6SS9+d@XVKrH1UmMUF1 zl7><@X%Ug?E2Y$K*D4imrci7nmilk_^yYd>Q9i~j7_^fn6)AP1DHqY?af(h<1o9*7 z=!nC|G@z4bN8>u#sG?xQpLE*v#Vz%8qKxdcXnYq+kKs8nKhz`?KH-}D zvaHN4^?ixX!UAav^FhccnzUFaY6=iFRZg1I1FMimqbAHlP6zcaAgo#6j8N1V`V;KX z(hikw-GsHTYL3-tn=hnO<580bM`1liHRV&AcL$+`E@&OtBcRMb*HTHX293EthZcG{ z>z>*>_3HpF^oU09CMuNA6++=_pmj?SKB%c0Eqk$lNFxh0sskVNZ;eXY5Q?=o8bW0V zp&}RC@ffa!2WqNHcfK|-q>>FP)rSYtoE}O|jHVJqQ#oJrWNPt$E~pj8P5V(3H6~d8 z?%;6U>f`@x(lp0WLNKbdGn<9>ECNx1yI$7Ae53VFc5=?~Q2t1+)a;OY;C)zPdDj?c#$%^D9e zD!SESBt%s@&N%a3xSI;qI`YH$rWx(7H*je*z(>mZP@|emM$^LdXu8>0kV!VGM*{o= zR|SHs#3{y*URZ*KfOs^#cqNCMy_(;o6&tlBOGA1Q5RaCkiJ?_sJ%o#4Vk~K--mz?& zrB;3LOsHoKTB@!_jYn0Ojmi;K6%H{08p*5KT8-n9Xgb%RiB@l2dyxt?7EEkW6m(it zErKb>rMQi5^=@a=^vT-({6*^1Sf&bJ4!CL%M1@W%$_xDSwqZc1`J|o#g5SQ3ZksXP3wY2K6@VU!_o(eKfUP zofz^WhKl$d3-!kAU!{=ChI31G(XB0L5I~h|i(Y6Q1`YG)Yt*C&!fxMDdp`H!rD5tC3d=7#~i`~?~{DTJcVAT6@({5!%hT>gB0nixbr1QD*0V*w{Tqs40Z z^A*z08yDEHIg8a2B}K7a7#_=Cpik36r~n~U9YwqO;)pQBmA^nEZ3s2Kp3HHaa^hu5 zD6}{XR^`uEsEILj2*=KPM^sEau84_uYXMaLe3i6Oq@6m#Gj-H?N3K)viit}|!UgE$ z=e1BNe}PWgNMf5UY)_YOUy=o05Smp(c+J~64>Ep-lqMEMJJ(!|mQ?39n?nT|YH z;+9+Vo3=Cz0p-uvN*hqx{n7B!$aTu5x4WX_pp+$j;H(=TT2~kJcviE&lvs6||n z6HDCAOGeDU_0a}_PW}S@nigXf&T5xFisHW19hcH&^x|btH4bp{7iihEs4H>sv03VN zr}da{`vZDJr++H}t7*n|>yGYpRFveq^M)a1X=)yQ^S%I=+9?bc6P z?a|(A3fr!}z@q9$7&o zhr<8f@np{1gPLj&7aECG$rVj!k!+jQ=T2|Jh|b9V!+H;w(l~~}cs4BSS z+VaMx!R2+&Ruf~r1g84I~SHhit0BfRA$;_@E5Ufde9C6a=_&>B!U(Zk>g|sK3E<3&w zr0#*l#n4GE8$eQve#1jnk6yl^QAm@9G^)A+v~&#!{u9%l3NfnZzMTzg6$~#N(s6yB z(;lnXS2YM}(vT|EPg9rJeJy%PEO6pi*E)^p5e%cC9?xqJQB14r;+Zs{f>QG%yPAbB zBVMfdU_J2SiCIg=>_k+7mQbS(XkGINrQ3$U~&)HC6{R` zWo`Xjy{`yK$t?WvA7K|CmIA&+b+B&XrjOY%X%*dY3{XHxL*H=tl7>Vx_>#%wJ$`vt zm$mKdNiacbMVcS~Bg2VHwFjTe0A3OhocaD2EC|%LNLPm0;m{@ZMRMqpZ|O@5sd_+GAeFpIS3gt9Jdk=v9iWo>QUgFGPj;bO{;8!*EH2#= zP{~}9TLiiIvd;~GDS1KD)vS z2chK6%(T$7%PJ;@P%_qo?YNW_Z>pGr&%K&vs{kck=-V-RF!|x;61Vx406b*brEOXl? z(p#$>on&>FLVRcLiU!b0?!rYWQ^tY@&`I9Deq1PwY-|SP=p@ffD{(v0Ww%K6r}WAs-T_WqSr3$iJ*L77pEFInramSK zdrm7JlwoL4ACm<8M%5__-uSY#xrsh_TnCWk1C$3N9>Lqq^#DmGW9A-kWrKhu-;S$r zJ2EEU&?q3uJ9lKx$K30@WlaQ-Bmzhh0VKf}7$Sfq5kQg%AV~y}Bmzhh0LzI0l0*PW zB7h`>(-HwBi2#z|6Iu~Kk_aFPAQXVh76Bw-03r!Op%Flm&=-O623gpr$_0A_kR&YvND=`gsrzXU+`^9ll4wDM zkT)WLBzVaIFEePtSR#NV5kL~Wg8~SWFu08nXaioOjsTL7g(83?;qSPqACHOvl0*PW zfZh`N@^76l5=Hz) zAW7ge9}z&32B2FafF!us6#VvA6AaW?rV9VKbOey3p=qy9Hje<3;M+_1*h1KhS0|1l zfFxueP0?K^h9ZC@e-uFxK#~hZPy~=9n5Y9^3a$@u8381@aF&jW0Fv-56age*c!+h2 z>c&2D9zNGc07;r?rwAa4`tjf<+A9J`!V#xcw9^0K=!^i8G`LKT0FngIeIkG)>R5&6#*oP0Fp!iNg{wG5kL~ZTbCIDB>DMV zh0m)*07)W%Bm}P#0VIh4l5ljB2p~ylc@+U9`Rt=D@4vVCz4y0l|7_O}zaP&nsq*?i z0~TndV)A>d%L;R|PoMUmQcfGPa|_Gx0%pFV^ZRNdfFvKoMx~16_xWnQicj#L4ZruS z;#))jN&dG0ef<9gR3!pP5&gLu}tw_W3yR|diLW=L5LS`-|th5s}d69@Hu{onq~<)-S|z&t)^#N zr?*axwep|u6QtJnXZsbOV*a3ek8bUo#aK9(2L+vZ(HDNN;#bUH4jVG4XNKEplt_;? zg4FZb;u=L!EWb}1KWbp-=Fw(7)9?{Nin;k`pgJihGN(@*)}vJ%m^}=V#|51<`t9m+ z#d7}oxzk4VZWC|Si)--UNkM9{@?@zZl$vi}ICD&&wh1;_JR=A(Z{guHg3dVqV_%6P zR<1HFnmx8(MxsrYP7Ctn=QAWx+<+#}3R2f63h+$}&zeQX+2aSaciRopDZwb->wBk{ zUMFrsn{|Q|_4hpmiq7}+;yH#1120K-7^IVeSu$-?{M&~cbkcih^`f8?hre2xr|4c? zJa?izsAG!LAf15GjLAp+ihkD=qh9&|?Oqn7w7ZYwD*BB}=1m@~@098?O2-AgWONQJ z1>)zv`DVSe1?^si@-w!0a}@crCG#f_>7s8IWzvbq1z9rK6R(0@<-=Fo;l}M~`??@? z{8#Q-#qiB#^QR8$+FTcnrpE+X)SF|PKUJ&9r*DZy(;aB~mLNH=+I>bb{&v-ZX~Vm> zh>^@X@d&uewxo8S)hKe_@_1PiKS9%X(W5~xmY-Hk$F5m8ePoYTu@+G;9wH5#seO-C zD{{%2G_?H;Z8r##`;G%A6?68D3ulb#)f$cy!~RguQEW9?i)N4Gt`>yfsAqO}hfm5B*}sE)^)=dV z6QsV+mK|0so`)APr^BIs;aA?X-iJ#R{cdvCw`jUUkm7It?Vw`uuU$NM!oUvXd!O(N z^(?CS_~K&KW8b6cr*QVzcWd`6W{QAI5dcQXi>AD1*Wk-3s>^;vYH{ zV#y7LgIFc}NZqrce)XPj6blQ8{_T?NvQ&4=_v&J<-0#qEMHz0jEG|4Yu>k^IY$GY%R}2Ug4FNDvQHJu z-pdzE9p0@4MMROXTac-1bE}U8{8oUr=Me3;@BbJPam|8hBYL!qMPe>QTLb(S*XAz& z;eg|c(D*!`5q2n+Gb|)pQ%Dpb0(s|NKNxUa2^#0Kd15<{h|xTO=L=u4-X(YXZolfd zGBhpXGsiZ?QnEA?IXyiA2_g@}fIOEr@XYV3=PJ;)M38ztTf9Y$2R`c03p=TE(Jf|G z{uc0CHQJW5+2sQS#6uYMJRow>7EVUzZpQ#q2VE^1SMeF=eZ}HKNFeD`NaP4#Q0J_P z887@C@SGQoYuGHb84>X!M*g48f=c-LUB!ZlVam|1EE|*wVjCZ3q<7#hq_R)>2yT6o??**KI+c)5 za|A^Y#ifv?#tdbKQbBmatLV2SW9Ih@pD;rtWIVe^5&U|VSZ4^*lC@u$rJm5T%3FXp#=HkC;K4Pb~RS@dN^)1Y|nN)Yb#fma_1| zq@ov#1z~WdqTAomZV;p$s!6W%{iHwzo{7tdP&7n+iU6uy9jqpb1mU#`MLOEeE*d~c z(UH*h@t+h-d3nndFy&Q{yAP}xDn+}u5J*gBeV26xKF|S#v`SM=tP5S!&W{I@j|2!{`|2- zkqbs)QWD7tl;SZ@;5R z-HQ+xa_!YLCP2a_gWrB5l8>9kB70!KiN?57+ZDNdZ2JVWlqU$QiWGt(zcD~!jA}M2 z|92u;+XdqUv$3RiJh4sDKiMhCs>_F7`-&)x{L83X<)bF1)ndXk zZHk=TySYI$3RLuZM-~Wv>XvHPlV9I1M6~JGQmsrW025)ieFur+>zN}u zC0e9f_{Y-KhtB)wwTUrO>`6I=*ih2H9u;$$%J&{uW|B?CiGb z5an$P5S#icNlV$(1){P8@Jal0n2wP7}?gXO9t!=citp5o;0!WW-h< zZB+F8yQMkwAh!4llv9eM?9{%`H$MN+(yM0<@7~ghI+kXhmb0sm6Ya7|{a^|Kw8D<{ zivFtfSQE_)ZSs|06`LpT;5SU{LP-)&!=yCDF7=;K3Kdh$f^of?IrM@c3Zvgu^q(VC z^dRh>uY9k_XR%O|u*iW$ZHXB#F@i(0M^QKt!RmJv*)tv<5z7T(2&4Euo(2vUK9cN6 z?)3FZ60v>8uuCu!Kp}qdj-r31Bci+le+*?5TQX9kOwuU|C(J{qPZ7n_QwOET8bwe@ zJKsT?8rZ^R5Gz5#)q1T@yF{D*B%gX`VA)Wp$hS=F*U}~X1yT3q+lqcod)S=_5}Ayr zhj&eJfPl@vt#9?8K~gc4&mG$X1_p^9B=T|mA)|DZL{m-ybv|nhJw8F5#}Z&2qxp5# z$j)vnCM8k-)mw`G`nE7LBiYJGZW`Mo)vh~Ey|=qN?#w1Jo2L(jG9pN1BH7&~#jb~D z#(N5sJs6w|$eI#XP?TQ#9Xm@Tk4zbu9%BfQ$o`qFqm9r^Gz?}mMKecqM5rAF4JP5q zW#=eGUOS;r3zzI8DQ{xM*U4?wK{37SY$1s`OiGxK{!bCQ{OeUP>iw&;mpNmM&^UQY#xeacN{L>rKR z^^V6Nhvh8D(L4UZNbVbt#HVM=K3W{*VRRY%SFj(whzpzhnm6_%4)#&zs-~>eJinMk zaSt6(?Qo4Zp9s&*8AAi!D_A5`YJdSMAs7jnnZs*+}!EtC@sukbVoYC&gmC8u}k zGvLx&HUx4T9C69bTcC#}gC?WZ$XzVryy803_B zShlOi_Jk?6M@hNzqhk1V2}@1;h*h6|9c5(ere2DWMB&QFkWE;oV;!}*A1haWQjA|; zK8sCwzaV}0y#EL#Z21nB9&3YCEX`3|7^CNwD|;2w*30Hk8brzZcl_Az;S=XEHyEnt zkL!sP5G0emEZNZru}mvhu=Mr4v4mDS&5)iBVvREN$?S7PcmO#PX+kAL9I~7TI?*t( zT=_+@)IPmr{?y^v=P>IIW8F6L+1xWkw{^x)%9KGmHS?jbx^d;mXf3>Z(cDQxyS1dfH0%^vroC2j40Q5M6Z;}- z)^NMLrN}2)609MYlqQnlo{5m*!L>oDy{Q+3PC~W2QBf^4zHsBH^%1sM76M ztOu{poIQR}r!=ZY&Ir1wMekJ|Ai8}#e}?FGcSSl>=?*B?Jy$K9Ic`7)%m_NHD0Hz` zY^(i^=r-~E6{J&hVl7wnpkn>x@`W?T^lP6?#bb`3OSUn<2{AnY5 zr6;1q&J%Pk@A%HY2W5*PZ_XIXsVd>?YKBzljw;rwhvC8DJzB@3f+!HAc6a^w4Uv7% z(`t}R&5~X&58F~DD;Lk53=hV^gGGYWY31*`i0;j4L)xK;Qt4h(6QxRaT(Rcd&K%f+ zR$!%UKpfr)I{98!NmcRgfs7?emF$FKJ$mD!*%JnJYDWGmXCva|XDH(gzROsORq0+; z^z*6ALuRLVIjLCpUXwYC`%jPgnhl7Li7uO$R3SQ6>#2076zk3_7S0^ozkLc7;uw}R zAhr|TS3I=_>C}o3lPL*2tynjc`}($n`)Kn?XPod-;T9r%nP*j%@D(*7s&v_k&G$07 zuXo!-tZk@frxEc!2<5vcQ9iBYhIvIX7xbgjPY_7nS;boYI1SvMZ4zv>Ij6JFSzoaU zHL<~yIiAWWm9AJ3d><$#mI*oOIVGwz3mzQS9b=bPr!*wi6Xh|UL_?IvLCKP#$b{x7 z&b(z9y+gV(C&pf})B85jeLQ1WheRrJ*eHj@Eubs?>APL`kJIVLlqyVMNF_dAvr&=mw~Q}W&MVf#*JjQdKd@t3r`x{ty^7}YZJ3#(*SzVnLdcUoeOx%Wr^%UDJjD(A6W8EX2#8Z>=w0V$%p<+^qIpQl#8^TZfz zCEYu(bfY5fyPBE_MbA;252v#v7;2L>{lg84aBI1;f*wCUWl(yI5sO{5-_okdH{Q&sUBa@G_pSR-f zzL6)Q;B)sBE{fZG?(;p5skgsNmr7ZAVUNNF`%K`q) zDu-Idkc$kGV%KR~bV^IvqiOLCPZru19a9pPXF5gpwz?LF@W#mK8z z1}F{aK`oM8F`ounU>^l*Cn~bSnk3pC*X>e7{|N*f>oVG%=7T%f&IneCR!j5p-HQ0p z`Mf*#z$vm-N zdP-XR{-dW%_srDKm^yyw-&NutW{srvOvA(v%>AuIv4OaCLTpO=UW0}XAMPI^4<9zT zZZ)7y9G;O{7RxFn-x%1q8hevqwp z3hVbCBX0^45(|CJN^V6-;OPFH3fKuHbx@by+vXm`<@*6bJ1-fadna@^W7f+~e5?wsuHojMM z@r3G@(M1!g8%KE;XPcFZP$u&=(8W{!BJ(2S;wd-DEE(g7O06#VbSI%uq)=@vV4>|J zGT&3Wc*<+_tYA5RaUxeKV!<3e+g`eO$~`mnY?JBYDc_#1XM0T-PkH}j9qldWUR*a< z;~L=Q<8@RfT|DL4Iiq#7?{txr_u>5I;EpxZhv{g;`67we;HdN051+Z?vPBDLjqj(! z>P@^z4v%3yvS;JtH!ohaaQ@s`)2ECb)JaNl$T=5hxM!3&U-s8;J#^jT%!Tvj%$z=X z!q|~R2lndFT*3k1Me*@k-X!i!&F@n>};dny`N9XqG&6A=f>_=ZD z!*gs*@zE~3)nvrUES;w|Wr$BYT&_sFY!k|r zca-!nw@e&6YS^HDy}EYDXw^I=F)rF^vzQEY=8J9R>_6g-DzINWY#WMCOfOe9E9v!J zHK=coE|;`z*(^CRHj1&-k9H7rnwVhqZ~G~(Ljvp ztiB11pFl-?UAeMDNx!iB99FYYCccGDt z!E%YX{Ttk{5con#cwo+?;R9$$)p5)j^7LBobD|5F1@jJFgi z0(PuVg!8vGHAfa>3B^XoI8+XWfZ&3f^bB>ZR&#QLP~89S4rp zC(Ko(qAz}iGIJ;1d_i)ZEsK$ViMIC-QrD)Se*ZEol%@ZSUege@H6UCv^{YJ&>0@3* z-}mBwFg}RiTl6UY8^_D_^$wEa%<~yedL%%$Y3_1d-noq(b7;D%GQlkXy}e7p2@-e1 zQNGah0lVw1hoI=j=@URo3x6}a5T{xxL@Jr$))49F!62noCrH;USyZg(HcT3}@0emZ z#7aW3A-Omha5nqmq@r6fs?W}2ins>bI3Ry;{w$EMA3x|Nkbi*FCv1h(C->p3!5rTQ zCyu%mBYQoDE*CCY$>{H!F`nqh_WK*ILam?$tzmb_!K&&$I>m9MUg^R0E^GpguSF+5 zoO?H8kTr1#uIsHI+o$8<6IgH0XBAX^7C5QG30|vJ9$Y3{F``?>TCi9%b17r7YD{0o zqIdg;!Qy4U#nKQ9oaW+q@?K9i`Ls*xk+ta0wgpqLT?R|69N80LvVLsO^wzsi;U;G0 zw83;TTAz}J=-#snrwqO-#L2LJY>(ziY0u(z==+(|hjqf`3c6Vt z9vro}9E&6FW?e>pmZQ+7QgTdU##hkqlSQ*e_rwH(4l=!r>&JF)78~FC?X!yM>m_r> z^=TDtlmh(PL+|U@SyK%ia+#x>bsqF|3HC3+Fv;mk>AX8fF?_OQ?!*D@1`tc#b;G;= zP@n%({K=99(}s0T!e5VaUyVaxOX+J6gPT&g`$G3!andFlWB-L+7*pYfg@|$NN>vJ0QD?Bn zx9mJ%)XcTJiWM76CpsK;w&`{KjuOS;*?P?)+Qe=dYq5a1N--;px_!&cQx%GH=MuI) z(djL*t-6n0@4;@v&YKs{!$}ui(`EN;s|1tmYChnf?`+z<+54Vp&6T)_*$Z3jWw_-m zTcT4kx(^zSeFi6!Ea9$jeCr;={;{c`Qi;o6f9K)_Gsh3^3h8=7h>3$UX_cJT^VYXF z5ZjnFSK(%EUxa~3cO6=G8+`S~)0K)ndu!H`g|j9OrA>IfxD#f8I=E!lzWjiAPPZ*!qUIg@jhuYtW7~<7^Wzu) z2~M-8j2_Ur1?~|^bbq-DHZeL=+V>tja`YJgSo4_CBM0|xPnUg5Ff=6D?2J!CqKs3u z!|AvsCarzX!J{Wmn>A;ie|{n=>!}k)4(yihcHtmL&@vOoI5{_$)t->veb9)2grR*q zrr|<{U$7&nqmt9R4H`Ld+Du|+pEqaLw27lG?U9iZjlO=)%}2qR)Uti&Zr<*uZk^k= zOrkTKA|ywgCp)JHCn>+s76x@DG;iO%-;j}G#!r|y0cHB&zFjlYV(mD*fk{G)94aH( zV2f{_(Me_9${mGX_=FTuXSBzqWpwR3c!bJm~>-L?y_v+KPPp|Hsuq_woz_mYb7!x7InZmh9 zL=l%12V)VT%i`+!`U8xSOnYhtuVB*s)Lmw+hzYqtoe7 zR^cjGkhn~3Zc&?CS@Vw|;=8c!P&ScpD?l&nsn*UB_R|l6za?>NJ&JvJailJn|95}G z>Oc)sZUbCMA9dfCxct7D&1U?^Uj$(#W<)j-iTtNu1z|K^&_LNl8`HtxR^zu1a4L#p z75>|AbRP?}58;SB+OU_|9=}ODF>x0zW+hATN8OkB@k4&J9sE&GKdz)>NQ)Hu@hi;L zTNX?jKwAsJU*)fI731;6vqyKwDaB6#QSw)qAU!J=OlCJPG(YDlX3tBDW{&KZhMPi~ z-!Zv*URpe7T;DdaX6eTun};wDmOf4Qq1hZAe4w9-d2i3nI6TG0XIzy2L8ZVgqMewU zet!j%0nSJ9mV>lMeWcUb`h8uYI0`>~c1h;kX`=^pOru-ufyX9Pj2W{ZTfYgDjPuFc zu;DOg`uL%}GLl`$0pF`UOt=%9)^*6l8M8fe?AVW(G-ha@jx7`Di26I$h$ah$1 From 8ccfdd79ef666a2c0147c002dbfffe143ecaa9bf Mon Sep 17 00:00:00 2001 From: Marrub Date: Sun, 24 Mar 2019 20:04:49 -0400 Subject: [PATCH 10/29] file dance --- source/rozinante/draw.rs | 8 +++- source/tycho/editor.rs | 51 +++++++++++++++++++++++ source/tycho/hiddenprotocol.rs | 39 ----------------- source/tycho/{noroom.rs => interfaces.rs} | 33 +++++++++++++++ source/tycho/main.rs | 28 +++++++++---- 5 files changed, 112 insertions(+), 47 deletions(-) create mode 100644 source/tycho/editor.rs delete mode 100644 source/tycho/hiddenprotocol.rs rename source/tycho/{noroom.rs => interfaces.rs} (74%) diff --git a/source/rozinante/draw.rs b/source/rozinante/draw.rs index 0ff3ab6..6d70a8a 100644 --- a/source/rozinante/draw.rs +++ b/source/rozinante/draw.rs @@ -24,9 +24,15 @@ pub trait DrawArea /// The height of the entire area. fn h(&self) -> Coord; - /// Fills the entire screen with `cr`. + /// Fills the entire screen with `cr`. Will also default all settings. fn clear(&self, cr: impl Color); + /// Changes the width for lines. The default is `1`. + fn line_width(&self, width: u8); + + /// Draws a line from `p1` to `p2` with color `cr`. + fn line(&self, p1: Point, p2: Point, cr: impl Color); + /// Draws a rectangle `rect` of color `cr`. fn rect(&self, rect: Rect, cr: impl Color); diff --git a/source/tycho/editor.rs b/source/tycho/editor.rs new file mode 100644 index 0000000..d84f40b --- /dev/null +++ b/source/tycho/editor.rs @@ -0,0 +1,51 @@ +//! Main map editor module. +//! +//! The entry point is responsible for maintaining the lifetime of the editor +//! state and human interactions with it, but is otherwise not permitted to +//! directly edit it. + +use maraiah::{durandal::image::*, + marathon::map, + rozinante::{color::*, draw::*}}; + +impl MapEditorState +{ + /// Creates a new empty map. + pub fn new() -> MapEditorState + { + let info = Default::default(); + + let ed = MapEditorState{info}; + + ed + } + + /// Draws the "no map" screen. + pub fn draw_none(d: &D, im: &I) + where D: DrawArea, + I: CacheImage + { + d.clear(Color16::new(0, 0, 0)); + + d.image((d.w() / 2 - im.w() / 2, d.h() / 2 - im.h() / 2), im); + + d.rect(Rect{x: 0, y: 0, w: d.w(), h: 18}, CR_DARK_RED); + d.text((4, 14), "Map Required To Proceed", CR_RED); + + d.rect(Rect{x: 0, y: d.h() - 18, w: d.w(), h: 18}, CR_DARK_RED); + d.text((4, d.h() - 4), "CAS.qterm//CyberAcme Systems Inc.", CR_RED); + } +} + +impl Drop for MapEditorState +{ + fn drop(&mut self) {eprintln!("dropping MapEditorState");} +} + +/// The state of a single opened map. +pub struct MapEditorState +{ + info: map::Minf, +} + +// EOF diff --git a/source/tycho/hiddenprotocol.rs b/source/tycho/hiddenprotocol.rs deleted file mode 100644 index 622d0f7..0000000 --- a/source/tycho/hiddenprotocol.rs +++ /dev/null @@ -1,39 +0,0 @@ -use maraiah::{durandal::image::*, - marathon::*, - rozinante::{color::*, draw::*}}; - -pub fn draw_map_none(d: &D, im: &I) - where D: DrawArea, - I: CacheImage -{ - d.clear(Color16::new(0, 0, 0)); - - d.image((d.w() / 2 - im.w() / 2, d.h() / 2 - im.h() / 2), im); - - d.rect(Rect{x: 0, y: 0, w: d.w(), h: 18}, CR_DARK_RED); - d.text((4, 14), "Map Required To Proceed", CR_RED); - - d.rect(Rect{x: 0, y: d.h() - 18, w: d.w(), h: 18}, CR_DARK_RED); - d.text((4, d.h() - 4), "CAS.qterm//CyberAcme Systems Inc.", CR_RED); -} - -pub fn new_map() -> MapEditorState -{ - let info = Default::default(); - - let ed = MapEditorState{info}; - - ed -} - -impl Drop for MapEditorState -{ - fn drop(&mut self) {eprintln!("dropping MapEditorState");} -} - -pub struct MapEditorState -{ - info: map::Minf, -} - -// EOF diff --git a/source/tycho/noroom.rs b/source/tycho/interfaces.rs similarity index 74% rename from source/tycho/noroom.rs rename to source/tycho/interfaces.rs index 83bc00c..d69ff5d 100644 --- a/source/tycho/noroom.rs +++ b/source/tycho/interfaces.rs @@ -1,8 +1,11 @@ +//! Implemented interfaces for Rozinante. + use cairo_sys::*; use gdk_pixbuf_sys::*; use gdk_sys::*; use maraiah::{c_str, durandal::{ffi::*, image::*}, rozinante::draw::*}; +/// Converts a `Color` to a `f64` triple. fn flt_color(cr: impl Color) -> (f64, f64, f64) { fn flt_color(n: u16) -> f64 {f64::from(n) / f64::from(u16::max_value())} @@ -41,6 +44,34 @@ impl DrawArea for CrDrawArea unsafe { cairo_select_font_face(self.ctx, c_str!("Monospace"), sl, wt); cairo_set_font_size(self.ctx, 14.0); + cairo_set_line_width(self.ctx, 1.0); + } + } + + fn line_width(&self, width: u8) + { + let width = f64::from(width); + + unsafe { + cairo_set_line_width(self.ctx, width); + } + } + + fn line(&self, p1: Point, p2: Point, cr: impl Color) + { + let (r, g, b) = flt_color(cr); + + let x1 = f64::from(p1.0); + let y1 = f64::from(p1.1); + + let x2 = f64::from(p2.0); + let y2 = f64::from(p2.1); + + unsafe { + cairo_set_source_rgb(self.ctx, r, g, b); + cairo_move_to(self.ctx, x1, y1); + cairo_line_to(self.ctx, x2, y2); + cairo_stroke(self.ctx); } } @@ -88,8 +119,10 @@ impl DrawArea for CrDrawArea } } +/// An image for a `CrDrawArea`. pub struct CrImage(pub *const GdkPixbuf); +/// A `DrawArea` for a Cairo surface. pub struct CrDrawArea { ctx: *mut cairo_t, diff --git a/source/tycho/main.rs b/source/tycho/main.rs index 75e942c..c65107e 100644 --- a/source/tycho/main.rs +++ b/source/tycho/main.rs @@ -1,8 +1,8 @@ -mod hiddenprotocol; -mod noroom; +mod editor; +mod interfaces; -use crate::{hiddenprotocol::*, noroom::*}; -use cairo_sys::*; +use crate::{editor::MapEditorState, + interfaces::*}; use gdk_pixbuf_sys::*; use gdk_sys::*; use gio_sys::*; @@ -11,6 +11,7 @@ use gobject_sys::*; use gtk_sys::*; use maraiah::{c_str, durandal::ffi}; +/// Called whne the application activates in order to set everything up. unsafe extern "C" fn app_activate(app: *mut GtkApplication, dat: gpointer) { let dat = dat as *mut Option; @@ -32,6 +33,7 @@ unsafe extern "C" fn app_activate(app: *mut GtkApplication, dat: gpointer) g_object_unref(b as _); } +/// Sets up the map view window's drawing area. unsafe fn setup_draw_area(b: *mut GtkBuilder) { struct RenderState @@ -45,7 +47,6 @@ unsafe fn setup_draw_area(b: *mut GtkBuilder) { let dat = Box::from_raw(dat as *mut RenderState); - // unref everything g_object_unref(dat.im_nomap as _); g_object_unref(dat.ax as _); g_object_unref(dat.ay as _); @@ -54,7 +55,7 @@ unsafe fn setup_draw_area(b: *mut GtkBuilder) } unsafe extern "C" fn c_draw(wid: *mut GtkWidget, - ctx: *mut cairo_t, + ctx: *mut cairo_sys::cairo_t, dat: gpointer) -> gboolean { @@ -73,7 +74,7 @@ unsafe fn setup_draw_area(b: *mut GtkBuilder) let im = CrImage(dat.im_nomap); let dr = CrDrawArea::new(ctx, w, h); - draw_map_none(&dr, &im); + MapEditorState::draw_none(&dr, &im); 1 } @@ -95,6 +96,7 @@ unsafe fn setup_draw_area(b: *mut GtkBuilder) connect(wid as _, c_str!("draw"), c_draw as _, dat as _); } +/// Sets up the map view window. unsafe fn setup_win_map_view(b: *mut GtkBuilder) { let win: *mut GtkWindow = get_obj(b, c_str!("win-map-view")); @@ -104,6 +106,7 @@ unsafe fn setup_win_map_view(b: *mut GtkBuilder) connect_show(btn as _, win as _); } +/// Sets up the map tools window. unsafe fn setup_win_map_tools(b: *mut GtkBuilder) { let win: *mut GtkWindow = get_obj(b, c_str!("win-map-tools")); @@ -113,6 +116,7 @@ unsafe fn setup_win_map_tools(b: *mut GtkBuilder) connect_show(btn as _, win as _); } +/// Sets up the map properties window. unsafe fn setup_win_map_prop(b: *mut GtkBuilder) { let win: *mut GtkWindow = get_obj(b, c_str!("win-map-prop")); @@ -122,8 +126,11 @@ unsafe fn setup_win_map_prop(b: *mut GtkBuilder) connect_show(btn as _, win as _); } +/// Sets up the about dialogue. unsafe fn setup_about_dlg(b: *mut GtkBuilder) { + /// Callback to show the dialogue when the "About" button is pressed, and + /// hide it when the "Close" button is pressed on it. unsafe extern "C" fn c_show(_: *mut GtkWidget, dlg: gpointer) { gtk_dialog_run(dlg as _); @@ -148,8 +155,10 @@ unsafe fn setup_about_dlg(b: *mut GtkBuilder) g_object_unref(img as _); } +/// Sets up the main menu window. unsafe fn setup_win_main(b: *mut GtkBuilder, app: *mut GtkApplication) { + /// Callback to close the window when the "Quit" button is pressed. unsafe extern "C" fn c_quit(_: *mut GtkWidget, win: gpointer) { gtk_window_close(win as _); @@ -164,6 +173,7 @@ unsafe fn setup_win_main(b: *mut GtkBuilder, app: *mut GtkApplication) connect(btn as _, c_str!("activate"), c_quit as _, win as _); } +/// Sets up the CSS styling providers. unsafe fn setup_css() { let path = c_str!("/net/greyserv/maraiah/tycho/css"); @@ -177,8 +187,10 @@ unsafe fn setup_css() g_object_unref(css as _); } +/// Connects a handler that shows a widget when activated. unsafe fn connect_hide(wid: *mut GtkWidget) { + /// Callback to hide a widget. unsafe extern "C" fn c_hide(wid: *mut GtkWidget, _: *mut GdkEvent, _: gpointer) @@ -189,6 +201,7 @@ unsafe fn connect_hide(wid: *mut GtkWidget) connect(wid as _, c_str!("delete-event"), c_hide as _, ffi::null_mut()); } +/// Connects a handler that shows a widget when activated. unsafe fn connect_show(btn: *mut GtkWidget, wid: *mut GtkWidget) { unsafe extern "C" fn c_show(_: *mut GtkWidget, wid: gpointer) @@ -213,6 +226,7 @@ unsafe fn connect(obj: *mut GObject, name: ffi::NT, cb: gpointer, d: gpointer) g_signal_connect_data(obj, name, cb, d, None, 0); } +/// Loads a `Pixbuf` from a resource. unsafe fn load_img(path: ffi::NT) -> *mut GdkPixbuf { gdk_pixbuf_new_from_resource(path, ffi::null_mut()) From cbf87ff1560cdfbc75fb3045117a8d36060cd4eb Mon Sep 17 00:00:00 2001 From: Marrub Date: Mon, 25 Mar 2019 19:25:06 -0400 Subject: [PATCH 11/29] update tycho1 design --- source/tycho/data/misc/tycho1.png | Bin 6287 -> 17826 bytes source/tycho/data/sources/tycho1.psd | Bin 122959 -> 125913 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/source/tycho/data/misc/tycho1.png b/source/tycho/data/misc/tycho1.png index ec2043e4d99671c6056fe04b8c46aef5eda96f36..dba3f61d82fe0e525f3918767678506230153f9e 100644 GIT binary patch literal 17826 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 Y0SV-Fz~x-UCjbBd07*qoM6N<$f?cDPPXGV_ literal 6287 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 FV1h@s82tbM diff --git a/source/tycho/data/sources/tycho1.psd b/source/tycho/data/sources/tycho1.psd index 1456eaf81a9cbd27ac96d5ce62936546186a2acc..2f48325ccfff5ecb4a8afa313b3b639aea8546cc 100644 GIT binary patch delta 27080 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 G{Qm(^ng135 delta 25726 zcmeHvXINBM_wPOf3`GG^EQ2r@V@Wjjf*KVyiHeCqV;L0{OB5CCH5fR?#F)f5Mu`$* zl*HZ<5wN^KOp(`u*aoDD*npuULm8NJ?r-fgYTo<5AMSmg_kPnU=bW|IUVW{-&tg28 z8TM(v+yBr`wRl)e`|oU=`b_NEb5PHLgL)5)h_@O1kIUFbo4Yn01`h1gw|DP({ksk5 z|LL4=K0W)+={CDx-+|qF&;GR6+)sNB=-InZuh{4It(v^~e}Nfs*|C3wi;G&VFpcnV zNsHKEua14sJ-csHTW3c9Z1K^?4)gPK>)3L@2*0tmO$q8Y2wws|EAbhN)9H*YI0?8m z_VhFll^B#h^uo4Vp&wYr)Ga@`c>l34=bgUub3pxr+VJwazB`0YnUwB(fUUYYf|7kmF-4`g;aZ-x{%&vWQEd1Fu8{c*DQlxL1> z4>qjyE;k3J4KY2sE3?+d^66KWEd9i|yP!wM^vs=m=V$B^zjZn9ecLeO{gUe4a~GzZ z2u|F$vDAF?!|(&E#+dCtT)uQ_>WR`B6NV-R9*Ijmof7w8pUmzU-ji8rS6~04(1g%y zeYz%X=>PbuVORS7J<#U4Yvf(ar>(-K6t!8}-Tc_JyZma4(h1AQ*Tv=0#+3BnnCH3XLD@eP=o0gOy0#|vNMfE}RI25G^!Bp9G!r6pubN_IC+B2DbxU}$2%+~7ND-X;L+q&|J`iCL;KgM6lj?c%nBlg4rf#&c z$8R+rE0*_IIo+5uWaOYDWh+HvOp2I1Z%MFajLe>!+ZiVR783JqrK8^S%Ygd1-Fxf` z%ug!_-|DwgW}hU*x}Kcjm5^okSzXHQ)PoCMRRIfTXFbdKA?;2d>4JaJke0XJ_V~2f z=y$ie@9^ueslyJxx8+-=i97r{zWtehUA8f5f${#{PC;#*j(qy*)?0VyB_Eg@BJR)_ zC-@h=1xZ)*?=g9%tLbjXNXv5L;YXd*TkaUXp=)rjVwaA|`*YGW%-2O)yp#DwD_zcA=%Pdv@E?h{c+%r8U5nUZwX%4a&zAy`Ij%BJe!=F z9X`3VAuO;i?N0cf^XA;Gf$8Dfzcr;D`ZjZX^zrdibIiY7F0V1KS?_y!rX}jOl(xMw z<@oMs$LEW+Zo7Qubm}zpbk(}WH&+IqOe|ZkDJsc}d2%VcD0aq!g5;nJyS;D7>iU${)+xnLNUHHUlYy73m1tza|H*GqYcDyusRJysJd6#*uuXJwD;p><8I=Vz2 z_4)IU0dwCDk4P|0&kjsa+Oa5NeU-7*-oMs|oxJpUK#=%sN^N+Ac)}=N8FxzjzE%3r zgw?~Y#O%D7wRZ4|>2Ig3%t}AE#N?Azn{-9|s(S6Iz@uL6fAPsQB^-B+U3K&46wAKr zO-7$hasBY#fw@z%!{P^_BGg28xwaDx~`q}sW#`~@OLE*KjDdw5m?uJHH1{ngsH2rq|@8~v`N!yN9 z&E6UxlN5a@KwA+0UHaq{(WmB`C8}u1_Rnigp&2^UW_8ILo1*!*3jAg}FEJO_gk;am z4x4e(93FW%=_~(~xHZ8m=bC;AOw14LamcU3j`dUVHAa+gn?xR->w@b3_;ay$fO%8+ z_GRbJ*0dV^`LwLsDFq2@V|Kg9Y?Il$GCb-+^Z=Q)4Rg$B+C5?B#sf8j&#II5?n$(7 zUAj^ec(T@D_OH0mGJMCu%&mjtf}S3l+SNbsK%jT|&;^$K-%R&{*Dde2p^0bz0dWtG z2Jb1)E?R%0T4qzkYNND#W}!G`P^2My#-6*~`bEUW->P5Tzu&33dy91|kBMhf0t!nk zzD2$tEPcM``QC@v;aMF_(@b?!VRLlww`^+aGVC}{0+Vn|5 z$Cf@1-*!l5Gt9zgL3Kxqx?eZ?n6`)`jXj4S-aNo>V5@#fiCe{l!pX&9GRqH64KlYh zF8XM$fBz_-b}PmWp5AVx@y8v0o#XDIwjPo1D0S7oM~k*T9yuQ!|NDOJxwBchfBszR z>9)hqf3qdnyysrh>7eqqRTmdudF#fiKW#%Ah6Wv;BC~Vi!`4ewp2)6`LRAYt33GU zr+=8zDnGolA}9Oe2RDmqCa>)u={kA$-mE3v{(YjMwY06V<)S_=sW(2q^=s!(H~P0O zUoQ4|y7i%S=uFh9FpnnZ&igJ~-tqE{clRb_ie}$WjtsgUZ+Ul!ZPJBZvBhgA4%*`N z!eGIO8eel9a( zg-h73=7D41yL;5{!BnF-I{Q+txkqgG=dD|`b@lq`{?6XtbrIVJA3x)fzU@ie(Qnp{ z{CI&-7~6j6+`C)0NTJ$@JC%b*eSF|>e%}OduS)^vuYcQlWl2ol-g)r@)2BAZE${H- z){eBuDz)tHy_-hg>6!PIFHd@~{FHH^W@}1H-}JDbmR`ITmfmYm+n+PWZ`D1Q*>Ba) zlQM#i)vQ{7F)!Uk+|_eX+O&i&Nm1eNCf(jNsb6IO-?PIy2VOjE*_{@Yd9wD2IVw18 zr+Hmnb<&}r;(*?1>DnF3OAoI0D!1&)?(*4Dhu<#D?N*w2>14GfcmXnJsYxtI^xPR# zeDr$ta=r2T2XUV2xYMTGd)Tv0T)cFBQp%)OI-^hcjI}!d=lk~d&r3ag`(E+G8y%Z` zN^py3dzKxDJKHo$9 z`P$LrH$0<8e*HsH_7C^9kwtyi#+g2qw%iVzi99=g!fW^i-#Bx#q{|JThE^Dh*Je&n z8~aDz`1k^_d5dNwj67Xlz-?QW5 z!|zr5AJY{k`i{JKJk`?ee#W?O29@X6bm={O(_j09qkYuA8Oi>sg*7t!J>;%wli}&P z+ZnEtk2G<*9@}-^BYd{=F!??2 zHU7!fHIK~U*CvJSe(%@n??(((9TJr|rxy--q}TNCueDLSFEwD4Zp3X3uupj~mr&?|jp6(}oKN4qejh++mZq zerD~4fF-rM0Ix}F25xKcJ)Dvqc+4CawxEsg^9vbIF9Xk>}e9C9(M?C^;pT?00MubCt+ zy}D8qN673(wdLL3iPF!pQTO_IHTXwAe)?o`PSe8=AFrxkc&z4L<<||}4y7FtvqG*W z+>OqNt`>u?N}>M}W9QG0JrdggQtzy7hP3Sdo?j0-f3-n(V(sbdZu720olVG$D?d`& zqlh*d+b6kR44jf2wB7Wz^8uTT6wCSGi0ywiacLv2$?-p1vh+yMF>^{$)oGN+^FPk- zyYZ@K*rW}sO3gmr^)kEJ-+W|Z5A)@{#q(D;o!&j_<01O+H-Z-hFRm^h*yB`cT>XGc z$L9quSS;rEKHlJydE(y}dYr7!>{0xt$Ae>Q{rwH)zm_Si{JLwiKuvp6pt zZ%~b|jtFqeuPU$VZOjcg`tHG1Lz8!}zQ3;g?3a<7^p9>msm zm&^{Ej+w%$rHJ6-)*q!__g)aBOFo=G*DyEw_{M8nz6r)XPffP(fw+_F6UR0bOG}KF zCW}n1d;=STN@ng`<}9AIbN|`ny`=jqgy@=;y#l`r>pwJY?vOE>pabR)hjcBnG{0*$ z)O>C6zo7}}c7EdRWP%FYo2M zhHO&+ti&ICDgE5CJek*Aq&?A*0Or0a@Z-A$tr25Lp?Jy!7I%u3u#_v*1&|f z9~H{NqqiGaBNIFyKa+*Wo{h}H1c$UIz;UqPoc;JnWbxTti38e`x+si@day zxA{M8*rT4C_bSYLbx!ib zpJXThmt}?SaGfgh{s`e@!p8T6z3ND>F~Z46uaAV&|Jzx@%CW-69-9GCBAdh}uuqr{uTO9_8OJGXJcmvKWC~sr zIfO7rg95=m226PorLmwjhJDEV*n4l`VlO&((&CJugz@6zjk)dEn~1PBOao|h(5IJjr0iDZXIA*wGM&z#V@!{ij*dEs z+5Y(T)qhJlKuVFDn|_UP#280lzyw+Yb2Ko$!GJOuRqz04S7ntUai?TxNfA#k;OPt^ z0~XWi4SLjNgIWh7y~@n_z`riPVT=)orJhijUeA6_tSGFJ>S_vqf3}Z{p|dbMgHAtx zd*frwNR{oX=4=D^1}5umbnQ-+nPl6vKiu^O&;}FK(CmaKK)fjnQFEXIloAQ7>T_DE zl$+H?F4P%_9k}WA`na-Zz`X_dc)gwmNNBx2>$Yrra}Ne3 zW)F?^2AeIBBZ5MxECrDa z*`aPJ%t{df7w@W&~h&Za4{)!~qKAgrwQPSBkon3wfrzKo~U)0*Ic$Qs1QN3`FcE1|AZN+8soMZnyaRMNO?{q=2{aG#7@3jV5vt?wkSkkuspW2f(a1?`fh2coRHI^%X+a7hp-6^NfFP)W^hau_%Ou%m0?r$m9gnz^ z3PHOmBqcPp14U-o3#>}aY$O;gZVQ4GbSh+$MXx5RI{gV~d4^741k!=&KPO^2vVAsg zY6!>!LuWwv*og%|(ZMw;gAPI7l(6=+E$PJVxItbV#n^!cZ7YPf5W)sm|xryaxs0V7q9y@6`!fp@P zP%1i*$>H>U{m(4;z zR?v{FLx2K`YUt8v;$-QL11k-@O0!|p>ypf}UK9e@pO|8-1?WINNXY|`CkTw{W~N~x zN=N#7q|kLc0X3C0B8S0V$0WJULr6qHLJp+BBGLKUg`#XgfD(m=C=u5%fOKLaiK<(t zkhI-Mz9j1?MO{RoEVhONso%(KKoI$5p`AX894QTC`XMn!@OHv$Orbxe({Yd#G53JeG%awTwnL!oPP0APzAcV^^G zJ!+ml2T4B;tf46_tW9{_5L<}JvjQ%I;3!Hh%;{uq(vjRqacuZqq3f^?=y)@vI<_nr zoB}JH*NeDD(t{2669&lq0vQ=`ts`FvDNsd%_y~1)S+`c9=!|kjbBHF65_8tEjB;6) z9&pXD3Bnr8?E`@!ykwxIhV{3|j$=3&EcKFTP(w9b$0$_Y`;wHP41Q#LvM<|+D)4Ly znU8FObsyhMS4ZCf32%~@VsobvG!vN)`wx^o z1P!^6%L$Y7Bum7a7(fxGmvl`a4}>B*dX1Ip4zd_Vi745R$m`OKOkbUeR5VBLD+u9Ypxs;g7<)lI8isjH#OkadC9!z9&3}A$G1+PWv z7TI+oDZ@R@?FRu63OlU=&p|l>1a8GQ?FER0!4vx%5Ay-U5?qFB5TI(v_qL23cxaJX zcq0;m#<2gTOu<%A@1_vdXvysu<06v-_+E<{-b6KOTDzAUlq&*zI*^_QCM>E2Q6rZG zVT$sg=s>%Ard8;=^d^7N8@wP6mUJC+7flvfxN;bkS}`E<6>-lV0PIjZ3o=lRv*?|P zo-!5Jy{zi{!3_}Jjn`ssQ!cpOW{X8`_R!y6SxGU0>9+e{Xq20$u10MlUy^O`WkCKZ zyKKGwltR?&DQQj%3B;r~CesxqiM~$??dnhL+vxElbM_cs@b9ul*{*iURM^+TS`cBf z4h19E#-NW>h&Bl)2ap#)nwEh^o}3T?`wt=J?=rc?({(@6C>17hB6%D>Mb)B912bAx z#>Uc-RN!HP#a+Up2N5xixa$V&ZmgDVEAPkH80xumNL7kc0o3$VQFKSGlx|6=ys}8Q z3BUm%N#{(;Qq^MV!%yD9mfgv8`~F{f+d+ZEro4tsR1?WfoFRAl9fhQWc?U4b29SzZ z74jGrK_bspK`3FajKT~;9(?^LOOfyt9kgJPCOD(It!^a34`kasK&UY4?0^FF2Ic}p zLPk_zg3e%(TY)pT3K@gqkE=zT8$nDq2>OB61$m96Lyqdbz}_Gd4USCTO1W~3IFD9m9eh>49EcN%%cfpUS?U)Wbh-K2Z`_0Fshq2ngAnNDynzjdR5mL42{PQf~BKZ1046caqfS0gqmTzIiRll_RSTGI$?%ZqTAR4@6i)k$~GwVj_7Np@lUV zY7-I45kxh-f%_#ghMxVd?6`&J+bMVX7J#?`l{?!BrXl_~z;JvGA+fAUfDv4Ars!6X zIksgJJ^Xq7lB5?Y6&f*D*;G+<<4wy5Zg_Oi72~)>g{Ck^Ph02AjmjB9^=Zm|ijZrM zWdUV{-(GSmoF;a?q!4^*!LC=*yYS>9X*dCjKU&HtDurzZqLn49SCe50BXmFf(J7Q8+JrGh)~>~U&Bm9 z-Nd&?`euzpBU4tLhG~$ykXknS%U`*_Z&Dw{(}OeO`vlr@ z+L9h*NlMBWJ4k99m|@`=a z4cD8}SN zsvtxQP@rjC2_O;yE{DXL(E>=rBp^i;4azqUvQ9^NygN`|;70Dv??%W?7q^$xcO%W$283GSw{!rHSmyDdJmr)XLzlEfH038GGwHzZVR4r8=Tpo}m7CQcbL64UhoLm_1wREyZh&*_p@NP% zT&bsS=XKf6JaZcMAH+vd5`_7(f&LG7BSc28(V*WR^868IT$P>6pW<)3N|k`!$PL&h zknt@bgGN*O-p3DtnIgLsoZ16&Bq|ve^79=qv`5YWkaNA3y1#$RYU%O9PoWh>AC#nU z0KzaR-eK*(vw`x5?AUPm$iXR~MG52xqajS3$9#XATG2_eUETTODLq{+vbxDz<32x@ zfx=ZFe-U{mLD-NGuv-XMQ!l$t>1Frr){LoJqnGW!A|gJ!(b~&4@m{uCtyMF0(KSp> zM>P_+Y-(aR2W#280lzyun4*;=O2Y8mrcminTX{aI&8+fvPx7x2_t5siCbYqT1e zNUK(ZNUuY+)?T(DP#~7rT@!5$8~WL)w37O|lC=G62XZmg$SJK_{FB^=p!ulk?=wUjP3vX}i9rl6M%CjGHlMlahNf6ve`Ndt~*^s>=Qb~LYoP`EK*P)4QQAW;@mH~S54 zZA=$Frf&9)elRM?K`U8fM`MF-pqm|O1E`iO#?&ibbhD4!XhqUiqb5#)Xi2)(EfO$^ zD9~G@MY-27VM!gj*#|uUfI#Ff&C70fQd1~xgZVfJerOb^9*@>y`O`QlM99g^q7gB*1dB@Rl=Z5c4GC$UWbI~;rYI(H zC9Mif;b3kt;DFQn(AVXrJ<)}{M7-~dZuV)4Im8&Hz)WlnKi7gP2%(9km=PlTz| zDvg@D*(-ghQuMUHCk&oTQLpTQ;0aiJT!_FB91EN!MoW_crZ$88>Y6q zW9?=yhhG#2FtkV=r9oN^^hZLgB~2@C8nPfs#jQ(ReUxrCA`?i=M$1OL>}I#cu;Lw{ zU!`s~7ZYe6lxn@vC-7;0_0B+7Q-KvBarDwIETvxy7LO>{XM>SiY?gfK#~zU*d)Nq|s9LRE~E zD&1_%Q;Ia^lZ_=!Gg6k!!9y1wpGe(oUeiR519@I`vwK55P$P6~F5w8fK43$s=s+f; zH<-FvNs?6n1E&GVx=N6PmvBvRO^0gbUWdBbum@ZYPAaI&yV;OZD{@h_AlQmZEa^ut z3V9{WU8tL_g(MC{8IEFS6q@#dq#Xb#Q4~v6yqnE~jTFTQ_()_5l9Z&UR8-tW-E55= z_%KmTy1(jXD;86#xJIikMEeFm+9GNo3Xy;eS!vO5hKz&_>Y(F}fUKY)S&aY%6xGnh ztlX0FZZ^u5nr1>=-pwAM6ataVL}W150(2lBq~rm}69h(edq%@Vl#cZEmqOQVqlQw9 z(g-K0lN#z~>mU&Y2|17gi$v$E7b*>jOcZoVH(RSQi@1WQ>KEPYk-&hlsdQ0MSGw6m zon%xa>}_xcV>$v4^a+gVTBVx}{{SF?Ka@~w-Xk%2H=Aq7^#n}_z`NNL3pQMTbhC*q zsiqhMR7nTwW^X1gTx)zmAB|Ik(mCF}KvDLnFh)g!3O51> z^WiPDCz}sLz7ju?ut_(jdDYFDJ`r`D4swJv#eR6C0bOJ zT2yx=bCZsM;fVKsYo})&(1{aL9h(*mQa4*Xufa8v9&9iHX-2UnqvAng#I;&;8QtuY zP(=bqggU&ee%Z|?MwC^Y8TRpN_7-)s@t^zv!pepE4&51ZC0?#v%LiZuSj(G9TGQ)?&YkVKjp=Ptv~VX7edz5*vW2cnnZTVg_@A zPbd_*ys#eYOx^5I?7u(=-E3ZsXc}K;$oA|r>SmL3G?Kar55X>LCVfKceH*nqW$l>vcU@lAUHBBABo?5FP|mf$j6g8+G% z$^eGne~2bRIPS|ZM*DB@MqUHyRX3Z`#40j5fP4oMN;i86_JL$n8bDT&o?2@+8#g_W z1YwHupy)vR`d8g-;ze)pf;d>xvHy0zhCA*nV5p_VKr2sCUs@T*E zJ8jYqd}$fuMCpo>M8mt;Wha(?;L(Y?*Me(I(;K z0P+GzOTa)k8(4Jzp=QD?rJLQ6MyW876UpORUbW~_%k)-{N5jvg0*p@O2ljR0MV?@w zJzzKf+G|^RW|oZ>%|x&uRVhvdP}5LFQNQYDQ~l?+3BUm%N$pIQqN>H(5C1Ar>1M}# zJ%L<6VpCp2CaQ_#CeDz%{AD-09WcoTkcw9o@)#9C9x5~&p@g|I3Nr|K@bw=GlZrS% z3Myx~z!|UGX3`qn?D2q5VN}}z1?cEz1Cfvs6_}vbQa9Ub6>dY)oX8O8Mi7&=g635> zTa6smc;Wt!hc-z}PFF$e*q9Tw^S_zUQBSsyV;Ntw0LCF_Ry6i0s}Y>Z_UeY_BwR4aeqKsH0OZ`YbX+M zo8h+%rwv_93&+^C!( zH2p_68}gu=O@eVMoF;a?q!2*7o2_x-$wks|0u+C=lu^(Lp0B#uBqcz!I?^qXtkhoE z7eNe4&;rb`!)Q(?Ts6Qcg88(U-Rw&G=_R0K0KSUw;K2;Sh8->VTQU^4=hrY3QAanM zLbzGU%Wk$BTMSxR1ug0wZ9SS2A0kO{2#aHNw(=n;WCs{8k_)6LZI8X^X455UhDr$6 zSwyO0z~@^#iUoHf#Hk~OaYmff@EhG^5v>>9?5e>O!b%?SeS#M5wgm#^0i@;KY=G#N zT&+eonrI^NMzqOlvg{li_hazNE5(iX41S`7P#0s?GLICjv zzag2J^Ldee6-wRg4`{2vNt0HD!mAAmb`wQx(u}r+sI^2y+bic~H`{|-iX2b;>E20( z&a~@A-9k4T%t4bV;#&xIL96;;D42T|Dv1ybfy!WLwpn^F_SMF=>KrBNNhV$^$sbpcC+(V z(;k_4Q;?GzP}Ruz7LY+ycUtnYoBefP5`>HbT*%LNz|bB!1HkZ|W!7%C<;p@2@T2I1 zk`xY_5rpv{-R#dtI)D}>kR!|m_W$T+SDugfXE(dS0Ox&?fNr+*x{*z5*y~0%g6VZ5 zJ42?QWmA>nnXCLPdo&dwO19UH?AML#*Ntpi)UcAjZe+i1WMh}Y?>(_Gf8EH&e(ZH4 zTe*Y5KKFGa`*kB52|@Q%{4PuB!MgOuy$jtO(QVl4M)vDQ_UlIW>qhqLM)vDQ_UlGA z^&Ve0vhAsH$~&~U%Y5C)e%;9ae`sV+_?@-1?=khuU*m7*m*LkuWn~Xj&;1fQzN5{3 zR>1yZwoUxE{=1=6wyioJ>LcU;mcneD0%K~P;-|Med>#OBm8rVytjLp9H|IO#!aCuhMm@hPHpxQP=qDJuiQgfVW8}ton@T)QYQYnX9Knyz z3fL_sv^Y(3CJ3cWIIpJ4K|M9pgJY}hU3J@C>6$0@N z{@c>nYFs`UhF@j9dWsc(#cHPqqaOq#uD<1McXp&%weU7R5y-Jjj<2(wWe;0tjhN zK(Ia>3kbUbk|vh|A%h97*|;is0|?e9X5q{UKXVXFUCKBHI|6d}VgHM#XyI%C$#BcQ z9OL&Hn~w2VkhMNpi;2Giu$cxknb5Krs0|(YBzkbwK%9Bw#}0zIdj-c}dx5BT1ExDMATG?v4J4tPER>j5Ah)x~z; zI0lb<9PpeEvQ0S0|3RaNf3YMSJK%aBjpZ^y^;pCe357?3v3wj|pUcAYrqz6yjjFR?K(wmxcriN@A7wt3GVA*fMxMAH zZek)$WgBoY8G|om?1$^k)`^KY-+(dFEds}BxV}tdc}%c*j*EBzUsz>RC1Sz0hL5uD z6|!9={$BRVpve_@Furwkdb!NT;inES{n4}*qk-1Z%@{ob!Y@2I3D@6P$4-{ZcGb=B zTrGMG+f`U74ujFw!Ruu*!%u*PmybRZI$1D$!#ez|Ocp9yf-nW(P7D6jdJq$ySx0M2 z@u){kwmu<^lfiJUbr=t;VbcJ775uK*C9-v}q6Cz?Vf0n*oB)1>b-1jUo-l`DCHK4` z_7}zYZ);`N@q9d)E(f9i&-`T@jED*=LTZsL6c45npgeyKXAV(CcnYU=JiZXmGFfMf zzjwWSC>yFo@7skkJ8wnVi>KV(7(g}Y<%8NpJgE(}r}_5A0)(X%?+a8->CB)qrt;Wa z^%U;6!UG=3s+9R|)y&3a${9Q81<{cC|SO z)NJIGnjjAt`&$99D=*^jTPxrjYs`(bUXM|(1$9L(NZ>hmHI4+yMcyj_7Gq6`3D)bW z%C(>_et;RdvQX+kkQ~OoQvht6l9z&KeI77G1# zL9#$Z0kB=xisMp{4~&PhP~MUtnT(BB0Bkl@EEK#0kARRbvolHo6kP5<1_0IVQA>h| zsH$D6p8)h&7Ha!a6-6N)QU4SWJcqC`fGRI)cYx&?hp>fIt5NW0!(kQ%hf2$73BV#T z75|gW!U`}ch?Wg3F21EjfZ#EQRenW)U|o9SrV$WC(%rXc0lLLRmBSARYYQue%Ojm= z`NEPnBBvA}1a!vWr+{F6blg}|4iKKDSi3<@3*&YC7U;KzO28`czYZeWJ^~C&Y=>X! zoTt7>+7J_IauL2wnM*8 wwKM|UAlp>Mt?W*VdlIvA9Tj>ctpdL^tIml2a`IdFKbHmUi-ZnOg*f&90+w9xIsgCw From 685991c6edecbc02a53a2a24168ca83bba9ed6ab Mon Sep 17 00:00:00 2001 From: Marrub Date: Mon, 25 Mar 2019 20:07:58 -0400 Subject: [PATCH 12/29] rewrite build script to actually pick up on changes properly --- source/tycho/build.rs | 35 ++++++++++++++++++++++++++++++----- 1 file changed, 30 insertions(+), 5 deletions(-) diff --git a/source/tycho/build.rs b/source/tycho/build.rs index 43d44fe..58aab15 100644 --- a/source/tycho/build.rs +++ b/source/tycho/build.rs @@ -1,11 +1,36 @@ -use std::process::Command; +use std::{env, fs, io, path::Path, process::Command}; -fn main() -> std::io::Result<()> +fn io_err(st: &'static str) -> io::Error { - let out_file = std::env::var("OUT_DIR").unwrap(); + io::Error::new(io::ErrorKind::Other, st) +} + +fn traverse_dir(path: &Path) -> io::Result<()> +{ + for ent in fs::read_dir(path)? { + let path = ent?.path(); + + if path.is_dir() { + traverse_dir(&path)?; + } else { + if let Some(path) = path.to_str() { + println!("cargo:rerun-if-changed={}", path); + } else { + return Err(io_err("failed to convert path")); + } + } + } + + Ok(()) +} + +fn main() -> io::Result<()> +{ + let out_file = env::var("OUT_DIR").unwrap(); let out_file = format!("--target={}/resources", out_file); - println!("cargo:rerun-if-changed=data"); + // traverse each file in the data directory, because cargo won't do this + traverse_dir(Path::new("data"))?; let o = Command::new("glib-compile-resources").arg("data/resources.xml") .arg(out_file) @@ -14,7 +39,7 @@ fn main() -> std::io::Result<()> if !o.status.success() { dbg!(o); - Err(std::io::Error::new(std::io::ErrorKind::Other, "failed to compile resources")) + Err(io_err("failed to compile resources")) } else { Ok(()) } From 9c91d8bd01637d3a3e3d963675d87eba9d1966f6 Mon Sep 17 00:00:00 2001 From: Marrub Date: Mon, 25 Mar 2019 20:08:23 -0400 Subject: [PATCH 13/29] fix spacing on map properties window --- source/tycho/data/ui.xml | 917 ++++++++++++++++++++------------------- 1 file changed, 466 insertions(+), 451 deletions(-) diff --git a/source/tycho/data/ui.xml b/source/tycho/data/ui.xml index 15be70a..8650e5d 100644 --- a/source/tycho/data/ui.xml +++ b/source/tycho/data/ui.xml @@ -231,7 +231,7 @@ Author: Alison Sanderson

- False + True True 0 @@ -249,119 +249,151 @@ Author: Alison Sanderson False 12 - + True False - - Co-op + True - True - False - The map can be played in multi-player co-operative. - True + False + vertical + + + Solo + True + True + False + The map can be played in single-player. + True + + + False + True + 0 + + + + + Co-op + True + True + False + The map can be played in multi-player co-operative. + True + + + False + True + 1 + + + + + Carnage + True + True + False + The map can be played in multi-player Carnage. + True + + + False + True + 2 + + + + + KTMWTB + True + True + False + The map can be played in multi-player Kill The Man With The Ball + True + + + False + True + 3 + + - 0 - 1 + True + True + 0 - - Solo + True - True - False - The map can be played in single-player. - True + False + vertical + + + King Of The Hill + True + True + False + The map can be played in multi-player King of the Hill. + True + + + False + True + 0 + + + + + Defense + True + True + False + The map can be played in multi-player Defense. + True + + + False + True + 1 + + + + + Rugby + True + True + False + The map can be played in multi-player Rugby. + True + + + False + True + 2 + + + + + Capture The Flag + True + True + False + The map can be played in multi-player Capture The Flag. + True + + + False + True + 3 + + - 0 - 0 - - - - - Carnage - True - True - False - The map can be played in multi-player Carnage. - True - - - 0 - 2 - - - - - KTMWTB - True - True - False - The map can be played in multi-player Kill The Man With The Ball - True - - - 0 - 3 - - - - - King Of The Hill - True - True - False - The map can be played in multi-player King of the Hill. - True - - - 1 - 0 - - - - - Defense - True - True - False - The map can be played in multi-player Defense. - True - - - 1 - 1 - - - - - Rugby - True - True - False - The map can be played in multi-player Rugby. - True - - - 1 - 2 - - - - - Capture The Flag - True - True - False - The map can be played in multi-player Capture The Flag. - True - - - 1 - 3 + True + True + 1 @@ -402,160 +434,153 @@ Author: Alison Sanderson 0 in - + True False - 12 + vertical - + True False - vertical - - - True - False - Vanilla - - - False - True - 0 - - - - - Extermination - True - True - False - Player must kill all monsters on the map, with an error threshold of 8 aliens maximum. - True - - - False - True - 1 - - - - - Exploration - True - True - False - Player must explore all marked polygons. - True - - - False - True - 2 - - - - - Retrieval - True - True - False - Player must grab all items marked items. - True - - - False - True - 3 - - - - - Repair - True - True - False - Player must flip all marked switches. - True - - - False - True - 4 - - - - - Rescue - True - True - False - Player must keep 50% or more civilians alive. - True - - - False - True - 5 - - - - - True - False - Aleph One - - - False - True - 6 - - - - - M1 Exploration - True - True - False - The same as Exploration, but you only need to look at each marked polygon, not actually walk in them. - True - - - False - True - 7 - - - - - M1 Rescue - True - True - False - The same as Rescue, but uses the Marathon 1 class numbers. - True - - - False - True - 8 - - - - - M1 Repair - True - True - False - The same as Repair, except it only requires that the last switch (by side index) be switched to succeed. - True - - - False - True - 9 - - + Vanilla + + False + True + 0 + + + + + Extermination + True + True + False + Player must kill all monsters on the map, with an error threshold of 8 aliens maximum. + True + + + False + True + 1 + + + + + Exploration + True + True + False + Player must explore all marked polygons. + True + + + False + True + 2 + + + + + Retrieval + True + True + False + Player must grab all items marked items. + True + + + False + True + 3 + + + + + Repair + True + True + False + Player must flip all marked switches. + True + + + False + True + 4 + + + + + Rescue + True + True + False + Player must keep 50% or more civilians alive. + True + + + False + True + 5 + + + + + True + False + Aleph One + + + False + True + 6 + + + + + M1 Exploration + True + True + False + The same as Exploration, but you only need to look at each marked polygon, not actually walk in them. + True + + + False + True + 7 + + + + + M1 Rescue + True + True + False + The same as Rescue, but uses the Marathon 1 class numbers. + True + + + False + True + 8 + + + + + M1 Repair + True + True + False + The same as Repair, except it only requires that the last switch (by side index) be switched to succeed. + True + + + False + True + 9 + @@ -581,205 +606,198 @@ Author: Alison Sanderson 0 in - + True False - 12 + vertical - + True False - vertical - - - True - False - Vanilla - - - False - True - 0 - - - - - Vacuum - True - True - False - Most weapons will not work, and the oxygen bar will deplete. - True - - - False - True - 1 - - - - - Magnetic - True - True - False - The motion sensor will behave erratically. - True - - - False - True - 2 - - - - - Rebellion - True - True - False - Items and health will be stripped, and S'pht enemies will become friendly. - True - - - False - True - 3 - - - - - Low Gravity - True - True - False - Gravity will be halved. - True - - - False - True - 4 - - - - - True - False - Aleph One - - - False - True - 5 - - - - - Marathon 1 Glue - True - True - False - Glue handles like Marathon 1. - True - - - False - True - 6 - - - - - Lava Floor - True - True - False - The floor damages you. - True - - - False - True - 7 - - - - - Rebellion (No strip) - True - True - False - The same as Rebellion, but your items and health aren't stripped. - True - - - False - True - 8 - - - - - Music - True - True - False - The map has Marathon 1-style music. - True - - - False - True - 9 - - - - - Terminals Stop Time - True - True - False - Terminals will pause the game in Solo. - True - - - False - True - 10 - - - - - M1 Monster Limits - True - True - False - Sets the monster activation limits to Marathon 1's. - True - - - False - True - 11 - - - - - M1 Weapon Differences - True - True - False - Doubles weapon pickups on Total Carnage and makes grenades low-gravity. - True - - - False - True - 12 - - + Vanilla + + False + True + 0 + + + + + Vacuum + True + True + False + Most weapons will not work, and the oxygen bar will deplete. + True + + + False + True + 1 + + + + + Magnetic + True + True + False + The motion sensor will behave erratically. + True + + + False + True + 2 + + + + + Rebellion + True + True + False + Items and health will be stripped, and S'pht enemies will become friendly. + True + + + False + True + 3 + + + + + Low Gravity + True + True + False + Gravity will be halved. + True + + + False + True + 4 + + + + + True + False + Aleph One + + + False + True + 5 + + + + + Marathon 1 Glue + True + True + False + Glue handles like Marathon 1. + True + + + False + True + 6 + + + + + Lava Floor + True + True + False + The floor damages you. + True + + + False + True + 7 + + + + + Rebellion (No strip) + True + True + False + The same as Rebellion, but your items and health aren't stripped. + True + + + False + True + 8 + + + + + Music + True + True + False + The map has Marathon 1-style music. + True + + + False + True + 9 + + + + + Terminals Stop Time + True + True + False + Terminals will pause the game in Solo. + True + + + False + True + 10 + + + + + M1 Monster Limits + True + True + False + Sets the monster activation limits to Marathon 1's. + True + + + False + True + 11 + + + + + M1 Weapon Differences + True + True + False + Doubles weapon pickups on Total Carnage and makes grenades low-gravity. + True + + + False + True + 12 + @@ -799,7 +817,7 @@ Author: Alison Sanderson - False + True True 2 @@ -814,14 +832,11 @@ Author: Alison Sanderson True False - 5 - 5 - 5 + 8 True False - 5 True @@ -863,7 +878,7 @@ Author: Alison Sanderson False - True + False 0 @@ -908,7 +923,7 @@ Author: Alison Sanderson False - True + False 1 @@ -925,7 +940,7 @@ Author: Alison Sanderson - False + True True 3 From 3b8e285d932a98b0dd420d6c0bc1564a41a713ed Mon Sep 17 00:00:00 2001 From: Marrub Date: Mon, 25 Mar 2019 20:44:06 -0400 Subject: [PATCH 14/29] reference counted management of the editor state --- source/tycho/main.rs | 106 +++++++++++++++++++++++++++---------------- 1 file changed, 67 insertions(+), 39 deletions(-) diff --git a/source/tycho/main.rs b/source/tycho/main.rs index c65107e..604f12e 100644 --- a/source/tycho/main.rs +++ b/source/tycho/main.rs @@ -10,13 +10,14 @@ use glib_sys::*; use gobject_sys::*; use gtk_sys::*; use maraiah::{c_str, durandal::ffi}; +use std::rc::Rc; /// Called whne the application activates in order to set everything up. -unsafe extern "C" fn app_activate(app: *mut GtkApplication, dat: gpointer) +unsafe extern "C" fn app_activate(app: *mut GtkApplication, edit: gpointer) { - let dat = dat as *mut Option; - let dat = &mut *dat; - let _ = dat; + // this ref will be cloned around a bit, but will ultimately be dropped at + // the end of this function. + let edit = Rc::from_raw(edit as *mut Option); setup_css(); @@ -28,7 +29,7 @@ unsafe extern "C" fn app_activate(app: *mut GtkApplication, dat: gpointer) setup_win_map_tools(b); setup_win_map_prop(b); setup_about_dlg(b); - setup_win_main(b, app); + setup_win_main(b, app, edit.clone()); g_object_unref(b as _); } @@ -43,35 +44,35 @@ unsafe fn setup_draw_area(b: *mut GtkBuilder) ay: *mut GtkAdjustment, } - unsafe extern "C" fn c_done(_: *mut GtkWidget, dat: gpointer) + unsafe extern "C" fn c_done(_: *mut GtkWidget, rend: gpointer) { - let dat = Box::from_raw(dat as *mut RenderState); + let rend = Box::from_raw(rend as *mut RenderState); - g_object_unref(dat.im_nomap as _); - g_object_unref(dat.ax as _); - g_object_unref(dat.ay as _); + g_object_unref(rend.im_nomap as _); + g_object_unref(rend.ax as _); + g_object_unref(rend.ay as _); // data is dropped and freed here } unsafe extern "C" fn c_draw(wid: *mut GtkWidget, ctx: *mut cairo_sys::cairo_t, - dat: gpointer) + rend: gpointer) -> gboolean { - let dat = dat as *mut RenderState; - let dat = &mut *dat; + let rend = rend as *mut RenderState; + let rend = &mut *rend; let w = f64::from(gtk_widget_get_allocated_width(wid)); let h = f64::from(gtk_widget_get_allocated_height(wid)); - gtk_adjustment_set_lower(dat.ax, 0.0); - gtk_adjustment_set_upper(dat.ax, w); + gtk_adjustment_set_lower(rend.ax, 0.0); + gtk_adjustment_set_upper(rend.ax, w); - gtk_adjustment_set_lower(dat.ay, 0.0); - gtk_adjustment_set_upper(dat.ay, h); + gtk_adjustment_set_lower(rend.ay, 0.0); + gtk_adjustment_set_upper(rend.ay, h); - let im = CrImage(dat.im_nomap); + let im = CrImage(rend.im_nomap); let dr = CrDrawArea::new(ctx, w, h); MapEditorState::draw_none(&dr, &im); @@ -89,11 +90,11 @@ unsafe fn setup_draw_area(b: *mut GtkBuilder) let im_nomap = load_img(c_str!("/net/greyserv/maraiah/tycho/tycho1.png")); - let dat = RenderState{im_nomap, ax, ay}; - let dat = Box::into_raw(Box::new(dat)); + let rend = RenderState{im_nomap, ax, ay}; + let rend = Box::into_raw(Box::new(rend)); - connect(wid as _, c_str!("destroy"), c_done as _, dat as _); - connect(wid as _, c_str!("draw"), c_draw as _, dat as _); + connect(wid as _, c_str!("destroy"), c_done as _, rend as _); + connect(wid as _, c_str!("draw"), c_draw as _, rend as _); } /// Sets up the map view window. @@ -131,7 +132,7 @@ unsafe fn setup_about_dlg(b: *mut GtkBuilder) { /// Callback to show the dialogue when the "About" button is pressed, and /// hide it when the "Close" button is pressed on it. - unsafe extern "C" fn c_show(_: *mut GtkWidget, dlg: gpointer) + unsafe extern "C" fn c_show_act(_: *mut GtkWidget, dlg: gpointer) { gtk_dialog_run(dlg as _); gtk_widget_hide(dlg as _); @@ -150,16 +151,18 @@ unsafe fn setup_about_dlg(b: *mut GtkBuilder) gtk_about_dialog_set_logo(dlg, img); connect_hide(dlg as _); - connect(btn as _, c_str!("activate"), c_show as _, dlg as _); + connect(btn as _, c_str!("activate"), c_show_act as _, dlg as _); g_object_unref(img as _); } /// Sets up the main menu window. -unsafe fn setup_win_main(b: *mut GtkBuilder, app: *mut GtkApplication) +unsafe fn setup_win_main(b: *mut GtkBuilder, + app: *mut GtkApplication, + edit: Rc>) { /// Callback to close the window when the "Quit" button is pressed. - unsafe extern "C" fn c_quit(_: *mut GtkWidget, win: gpointer) + unsafe extern "C" fn c_quit_act(_: *mut GtkWidget, win: gpointer) { gtk_window_close(win as _); } @@ -170,7 +173,29 @@ unsafe fn setup_win_main(b: *mut GtkBuilder, app: *mut GtkApplication) gtk_window_set_application(win, app); gtk_widget_show_all(win as _); - connect(btn as _, c_str!("activate"), c_quit as _, win as _); + connect(btn as _, c_str!("activate"), c_quit_act as _, win as _); + + /// Callback to create a new editor state when the "New" button is pressed. + unsafe extern "C" fn c_new_act(_: *mut GtkWidget, edit: gpointer) + { + let edit = edit as *mut Option; + let edit = &mut *edit; + + *edit = Some(MapEditorState::new()); + } + + /// Callback to destroy the editor state reference. + unsafe extern "C" fn c_new_done(_: *mut GtkWidget, edit: gpointer) + { + Rc::from_raw(edit); + } + + let edit = Rc::into_raw(edit); + + let btn: *mut GtkMenuItem = get_obj(b, c_str!("btn-new")); + + connect(btn as _, c_str!("activate"), c_new_act as _, edit as _); + connect(btn as _, c_str!("destroy"), c_new_done as _, edit as _); } /// Sets up the CSS styling providers. @@ -187,29 +212,30 @@ unsafe fn setup_css() g_object_unref(css as _); } -/// Connects a handler that shows a widget when activated. +/// Connects a handler that hides a toplevel widget when deleted. unsafe fn connect_hide(wid: *mut GtkWidget) { - /// Callback to hide a widget. - unsafe extern "C" fn c_hide(wid: *mut GtkWidget, - _: *mut GdkEvent, - _: gpointer) + /// Callback to hide the widget. + unsafe extern "C" fn c_hide_del(wid: *mut GtkWidget, + _: *mut GdkEvent, + _: gpointer) { gtk_widget_hide(wid); } - connect(wid as _, c_str!("delete-event"), c_hide as _, ffi::null_mut()); + connect(wid as _, c_str!("delete-event"), c_hide_del as _, ffi::null_mut()); } /// Connects a handler that shows a widget when activated. unsafe fn connect_show(btn: *mut GtkWidget, wid: *mut GtkWidget) { - unsafe extern "C" fn c_show(_: *mut GtkWidget, wid: gpointer) + /// Callback to show the widget. + unsafe extern "C" fn c_show_act(_: *mut GtkWidget, wid: gpointer) { gtk_widget_show_all(wid as _); } - connect(btn as _, c_str!("activate"), c_show as _, wid as _); + connect(btn as _, c_str!("activate"), c_show_act as _, wid as _); } /// Gets an object from a `GtkBuilder`. @@ -251,20 +277,22 @@ fn main() g_static_resource_init(&mut resource); // create a container for the editor state - let dat = Box::into_raw(Box::new(None::)); + let edit = Rc::new(None::); + let eptr = Rc::into_raw(edit.clone()); // create and run the app let name = c_str!("net.greyserv.maraiah.tycho"); - let app = gtk_application_new(name, 0); + let app = gtk_application_new(name, 0); - connect(app as _, c_str!("activate"), app_activate as _, dat as _); + connect(app as _, c_str!("activate"), app_activate as _, eptr as _); g_application_run(app as _, 0, ffi::null_mut()); // ok, clean up all this crap now g_object_unref(app as _); - drop(Box::from_raw(dat)); + assert!(Rc::strong_count(&edit) == 1); + drop(edit); // deinit the "static" data, and everything will be done g_static_resource_fini(&mut resource); From 46ad94bdf0de254cacd2dd9f501ea7f2a30f41a6 Mon Sep 17 00:00:00 2001 From: Marrub Date: Mon, 25 Mar 2019 22:15:50 -0400 Subject: [PATCH 15/29] confirm dialogue for new project --- source/tycho/main.rs | 44 ++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 42 insertions(+), 2 deletions(-) diff --git a/source/tycho/main.rs b/source/tycho/main.rs index 604f12e..f058550 100644 --- a/source/tycho/main.rs +++ b/source/tycho/main.rs @@ -138,7 +138,7 @@ unsafe fn setup_about_dlg(b: *mut GtkBuilder) gtk_widget_hide(dlg as _); } - let dlg: *mut GtkAboutDialog = get_obj(b, c_str!("win-about")); + let dlg: *mut GtkAboutDialog = get_obj(b, c_str!("dlg-about")); let btn: *mut GtkMenuItem = get_obj(b, c_str!("btn-about")); let it = env!("CARGO_PKG_AUTHORS").split(';'); @@ -181,10 +181,21 @@ unsafe fn setup_win_main(b: *mut GtkBuilder, let edit = edit as *mut Option; let edit = &mut *edit; + if let Some(_) = *edit { + let titl = c_str!("Confirm"); + let text = c_str!("Are you sure you want to create a new project? \ + Data may be lost."); + + match run_ok_cancel_dlg(titl, text) { + true => {}, + false => return, + } + } + *edit = Some(MapEditorState::new()); } - /// Callback to destroy the editor state reference. + /// Callback to finalize the editor state reference. unsafe extern "C" fn c_new_done(_: *mut GtkWidget, edit: gpointer) { Rc::from_raw(edit); @@ -212,6 +223,35 @@ unsafe fn setup_css() g_object_unref(css as _); } +/// Runs a modal OK/Cancel dialogue. +unsafe fn run_ok_cancel_dlg(title: ffi::NT, text: ffi::NT) -> bool +{ + let flags = GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT; + let dlg = gtk_dialog_new_with_buttons(title, + ffi::null_mut(), + flags, + c_str!("_OK"), + GTK_RESPONSE_ACCEPT, + c_str!("_Cancel"), + GTK_RESPONSE_REJECT, + ffi::null_mut::()); + + let area = gtk_dialog_get_content_area(dlg as _); + let labl = gtk_label_new(text); + + gtk_container_add(area as _, labl); + gtk_widget_show_all(area as _); + + let res = gtk_dialog_run(dlg as _); + + gtk_widget_destroy(dlg); + + match res { + GTK_RESPONSE_ACCEPT => true, + _ => false, + } +} + /// Connects a handler that hides a toplevel widget when deleted. unsafe fn connect_hide(wid: *mut GtkWidget) { From 2cd5be77d32be0a0055b48767f4d8e36a098893b Mon Sep 17 00:00:00 2001 From: Marrub Date: Wed, 27 Mar 2019 05:32:25 -0400 Subject: [PATCH 16/29] explicit window finalization etc --- source/leela/main.rs | 2 +- source/marathon/map.rs | 4 +- source/tycho/data/ui.xml | 238 +++++++++++++++++++-------------------- source/tycho/editor.rs | 37 ++++-- source/tycho/main.rs | 113 +++++++++++++++---- 5 files changed, 238 insertions(+), 156 deletions(-) diff --git a/source/leela/main.rs b/source/leela/main.rs index 142e12c..0c326cf 100644 --- a/source/leela/main.rs +++ b/source/leela/main.rs @@ -134,7 +134,7 @@ fn main() -> ResultS<()> use argparse::*; use memmap::Mmap; - let mut opt: Options = Default::default(); + let mut opt = Options::default(); { let mut ap = ArgumentParser::new(); diff --git a/source/marathon/map.rs b/source/marathon/map.rs index 2da456c..461d2af 100644 --- a/source/marathon/map.rs +++ b/source/marathon/map.rs @@ -178,7 +178,7 @@ fn read_poly_inter(b: &[u8]) -> ResultS } Ok(Polygon{tex_flr, tex_cei, hei_flr, hei_cei, lit_flr, lit_cei, xfr_flr, - xfr_cei, ..Default::default()}) + xfr_cei, ..Polygon::default()}) } /// Reads a `POLY` chunk. @@ -707,7 +707,7 @@ pub struct Note /// Static map information. #[cfg_attr(feature = "serde_obj", derive(serde::Serialize))] -#[derive(Debug, Eq, PartialEq)] +#[derive(Clone, Debug, Eq, PartialEq)] pub struct Minf { pub texture_id: u16, diff --git a/source/tycho/data/ui.xml b/source/tycho/data/ui.xml index 8650e5d..be86b96 100644 --- a/source/tycho/data/ui.xml +++ b/source/tycho/data/ui.xml @@ -948,124 +948,7 @@ Author: Alison Sanderson - - True - False - 24 - tycho-lines - - - True - False - 24 - tycho-points - - - True - False - 24 - tycho-polys - - - False - Tool Palette - 250 - True - - - - - - True - False - vertical - - - True - False - Geometry - - - True - False - Points - True - img-points - - - Points Tool - The tool that modifies points in the map. - push-button - - - - - True - - - - - True - False - Lines - True - img-lines - - - Lines Tool - The tool which modifies line segments on the map. - push-button - - - - - True - 1 - - - - - True - False - Polygons - True - img-polys - - - Polygon Tool - The tool which modifies polygon shapes on the map. - push-button - - - - - True - 2 - - - - - Geometry Collection - All of the tools which modify map geometry. - column-header - - - - - True - - - - - - - Tycho Tool Palette - Tycho's tool palette window. - window - - - - + False True dialog @@ -1226,13 +1109,130 @@ express Statement of Purpose. - + About Screen The about screen for Tycho. dialog + + True + False + 24 + tycho-lines + + + True + False + 24 + tycho-points + + + True + False + 24 + tycho-polys + + + False + Tool Palette + 250 + True + + + + + + True + False + vertical + + + True + False + Geometry + + + True + False + Points + True + img-points + + + Points Tool + The tool that modifies points in the map. + push-button + + + + + True + + + + + True + False + Lines + True + img-lines + + + Lines Tool + The tool which modifies line segments on the map. + push-button + + + + + True + 1 + + + + + True + False + Polygons + True + img-polys + + + Polygon Tool + The tool which modifies polygon shapes on the map. + push-button + + + + + True + 2 + + + + + Geometry Collection + All of the tools which modify map geometry. + column-header + + + + + True + + + + + + + Tycho Tool Palette + Tycho's tool palette window. + window + + + False Tycho diff --git a/source/tycho/editor.rs b/source/tycho/editor.rs index d84f40b..b12db60 100644 --- a/source/tycho/editor.rs +++ b/source/tycho/editor.rs @@ -13,11 +13,7 @@ impl MapEditorState /// Creates a new empty map. pub fn new() -> MapEditorState { - let info = Default::default(); - - let ed = MapEditorState{info}; - - ed + MapEditorState::default() } /// Draws the "no map" screen. @@ -35,17 +31,40 @@ impl MapEditorState d.rect(Rect{x: 0, y: d.h() - 18, w: d.w(), h: 18}, CR_DARK_RED); d.text((4, d.h() - 4), "CAS.qterm//CyberAcme Systems Inc.", CR_RED); } + + /// Draws the currently open map. + pub fn draw_some(&self, d: &impl DrawArea) + { + d.clear(Color16::new(0, 0, 0)); + } } -impl Drop for MapEditorState +impl Default for Tool { - fn drop(&mut self) {eprintln!("dropping MapEditorState");} + fn default() -> Tool {Tool::Points} } -/// The state of a single opened map. -pub struct MapEditorState +/// Copyable map state. +#[derive(Clone, Default)] +pub struct MapEditorStateBlock { info: map::Minf, } +/// The state of a map editor. +#[derive(Default)] +pub struct MapEditorState +{ + edit_stack: Vec, + tool: Tool, +} + +/// A tool in the map editor. +pub enum Tool +{ + Points, + Lines, + Polygons, +} + // EOF diff --git a/source/tycho/main.rs b/source/tycho/main.rs index f058550..a0ebaf1 100644 --- a/source/tycho/main.rs +++ b/source/tycho/main.rs @@ -24,7 +24,7 @@ unsafe extern "C" fn app_activate(app: *mut GtkApplication, edit: gpointer) let path = c_str!("/net/greyserv/maraiah/tycho/ui"); let b = gtk_builder_new_from_resource(path); - setup_draw_area(b); + setup_draw_area(b, edit.clone()); setup_win_map_view(b); setup_win_map_tools(b); setup_win_map_prop(b); @@ -35,15 +35,17 @@ unsafe extern "C" fn app_activate(app: *mut GtkApplication, edit: gpointer) } /// Sets up the map view window's drawing area. -unsafe fn setup_draw_area(b: *mut GtkBuilder) +unsafe fn setup_draw_area(b: *mut GtkBuilder, edit: Rc>) { struct RenderState { im_nomap: *mut GdkPixbuf, ax: *mut GtkAdjustment, ay: *mut GtkAdjustment, + edit: Rc>, } + /// Callback to finalize the drawing area. unsafe extern "C" fn c_done(_: *mut GtkWidget, rend: gpointer) { let rend = Box::from_raw(rend as *mut RenderState); @@ -55,6 +57,7 @@ unsafe fn setup_draw_area(b: *mut GtkBuilder) // data is dropped and freed here } + /// Callback to draw on the drawing area. unsafe extern "C" fn c_draw(wid: *mut GtkWidget, ctx: *mut cairo_sys::cairo_t, rend: gpointer) @@ -75,7 +78,10 @@ unsafe fn setup_draw_area(b: *mut GtkBuilder) let im = CrImage(rend.im_nomap); let dr = CrDrawArea::new(ctx, w, h); - MapEditorState::draw_none(&dr, &im); + match &*rend.edit { + Some(edit) => edit.draw_some(&dr), + None => MapEditorState::draw_none(&dr, &im), + } 1 } @@ -90,7 +96,7 @@ unsafe fn setup_draw_area(b: *mut GtkBuilder) let im_nomap = load_img(c_str!("/net/greyserv/maraiah/tycho/tycho1.png")); - let rend = RenderState{im_nomap, ax, ay}; + let rend = RenderState{im_nomap, ax, ay, edit}; let rend = Box::into_raw(Box::new(rend)); connect(wid as _, c_str!("destroy"), c_done as _, rend as _); @@ -156,6 +162,58 @@ unsafe fn setup_about_dlg(b: *mut GtkBuilder) g_object_unref(img as _); } +/// Sets up explicit window finalization for the main window. +unsafe fn setup_explicit_drop(b: *mut GtkBuilder, win: *mut GtkWindow) +{ + /// Callback to explicitly finalize all windows on exit. + unsafe extern "C" fn c_done(_: *mut GtkWidget, exp_del: gpointer) + { + let exp_del = Box::from_raw(exp_del as *mut Vec<*mut GtkWindow>); + + for win in *exp_del { + gtk_widget_destroy(win as _); + } + } + + // we need to explicitly drop other windows on exit, which means we need to + // create a list of them to send to the callback + let mut exp_del = Vec::new(); + + // so, we get all of the objects from the builder, and iterate through them + let head = gtk_builder_get_objects(b); + let mut lst = &*head; + + loop { + let obj = lst.data as *mut GObject; + + // while this is well-defined, it is a weird way of doing it, because + // this exact method of checking types isn't fully documented. we can't + // use the macros for this functionality because we're not using C, so we + // use the underlying function calls. again, get jacked, punk. + if g_type_check_instance_is_a(obj as _, gtk_window_get_type()) != 0 { + let owin = obj as *mut GtkWindow; + + if owin != win { + exp_del.push(owin); + } + } + + let nx = lst.next; + + if nx != ffi::null_mut() { + lst = &*nx; + } else { + break; + } + } + + g_slist_free(head); + + let exp_del = Box::into_raw(Box::new(exp_del)); + + connect(win as _, c_str!("destroy"), c_done as _, exp_del as _); +} + /// Sets up the main menu window. unsafe fn setup_win_main(b: *mut GtkBuilder, app: *mut GtkApplication, @@ -167,14 +225,6 @@ unsafe fn setup_win_main(b: *mut GtkBuilder, gtk_window_close(win as _); } - let win: *mut GtkWindow = get_obj(b, c_str!("win-main")); - let btn: *mut GtkMenuItem = get_obj(b, c_str!("btn-quit")); - - gtk_window_set_application(win, app); - gtk_widget_show_all(win as _); - - connect(btn as _, c_str!("activate"), c_quit_act as _, win as _); - /// Callback to create a new editor state when the "New" button is pressed. unsafe extern "C" fn c_new_act(_: *mut GtkWidget, edit: gpointer) { @@ -187,7 +237,7 @@ unsafe fn setup_win_main(b: *mut GtkBuilder, Data may be lost."); match run_ok_cancel_dlg(titl, text) { - true => {}, + true => {} false => return, } } @@ -201,12 +251,25 @@ unsafe fn setup_win_main(b: *mut GtkBuilder, Rc::from_raw(edit); } - let edit = Rc::into_raw(edit); + // set up main window + let win: *mut GtkWindow = get_obj(b, c_str!("win-main")); + + setup_explicit_drop(b, win); + + gtk_window_set_application(win, app); + gtk_widget_show_all(win as _); + + // set up buttons + let btn: *mut GtkMenuItem = get_obj(b, c_str!("btn-quit")); + + connect(btn as _, c_str!("activate"), c_quit_act as _, win as _); let btn: *mut GtkMenuItem = get_obj(b, c_str!("btn-new")); - connect(btn as _, c_str!("activate"), c_new_act as _, edit as _); - connect(btn as _, c_str!("destroy"), c_new_done as _, edit as _); + let eptr = Rc::into_raw(edit.clone()); + + connect(btn as _, c_str!("activate"), c_new_act as _, eptr as _); + connect(btn as _, c_str!("destroy"), c_new_done as _, eptr as _); } /// Sets up the CSS styling providers. @@ -227,14 +290,14 @@ unsafe fn setup_css() unsafe fn run_ok_cancel_dlg(title: ffi::NT, text: ffi::NT) -> bool { let flags = GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT; - let dlg = gtk_dialog_new_with_buttons(title, - ffi::null_mut(), - flags, - c_str!("_OK"), - GTK_RESPONSE_ACCEPT, - c_str!("_Cancel"), - GTK_RESPONSE_REJECT, - ffi::null_mut::()); + let dlg = gtk_dialog_new_with_buttons(title, + ffi::null_mut(), + flags, + c_str!("_OK"), + GTK_RESPONSE_ACCEPT, + c_str!("_Cancel"), + GTK_RESPONSE_REJECT, + ffi::null_mut::()); let area = gtk_dialog_get_content_area(dlg as _); let labl = gtk_label_new(text); @@ -331,7 +394,7 @@ fn main() // ok, clean up all this crap now g_object_unref(app as _); - assert!(Rc::strong_count(&edit) == 1); + assert_eq!(Rc::strong_count(&edit), 1); drop(edit); // deinit the "static" data, and everything will be done From da542c84e81be98b813e216fa517d10ea8e403a5 Mon Sep 17 00:00:00 2001 From: Marrub Date: Wed, 27 Mar 2019 05:42:22 -0400 Subject: [PATCH 17/29] lint --- source/tycho/main.rs | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/source/tycho/main.rs b/source/tycho/main.rs index a0ebaf1..e4ce339 100644 --- a/source/tycho/main.rs +++ b/source/tycho/main.rs @@ -50,7 +50,7 @@ unsafe fn setup_draw_area(b: *mut GtkBuilder, edit: Rc>) { let rend = Box::from_raw(rend as *mut RenderState); - g_object_unref(rend.im_nomap as _); + g_object_unref(rend.im_nomap as gpointer as _); g_object_unref(rend.ax as _); g_object_unref(rend.ay as _); @@ -159,7 +159,7 @@ unsafe fn setup_about_dlg(b: *mut GtkBuilder) connect_hide(dlg as _); connect(btn as _, c_str!("activate"), c_show_act as _, dlg as _); - g_object_unref(img as _); + g_object_unref(img as gpointer as _); } /// Sets up explicit window finalization for the main window. @@ -231,14 +231,13 @@ unsafe fn setup_win_main(b: *mut GtkBuilder, let edit = edit as *mut Option; let edit = &mut *edit; - if let Some(_) = *edit { + if edit.is_some() { let titl = c_str!("Confirm"); let text = c_str!("Are you sure you want to create a new project? \ Data may be lost."); - match run_ok_cancel_dlg(titl, text) { - true => {} - false => return, + if !run_ok_cancel_dlg(titl, text) { + return; } } From 3f3900d91c7618b8baaf2e37a4618b72a8bfdd79 Mon Sep 17 00:00:00 2001 From: Marrub Date: Wed, 27 Mar 2019 06:13:53 -0400 Subject: [PATCH 18/29] create "closed" and "opened" states for the editor --- source/tycho/editor.rs | 70 ++++++++++++++++++++++++++++++++---------- source/tycho/main.rs | 23 ++++++-------- 2 files changed, 64 insertions(+), 29 deletions(-) diff --git a/source/tycho/editor.rs b/source/tycho/editor.rs index b12db60..d30d2b5 100644 --- a/source/tycho/editor.rs +++ b/source/tycho/editor.rs @@ -8,34 +8,65 @@ use maraiah::{durandal::image::*, marathon::map, rozinante::{color::*, draw::*}}; -impl MapEditorState +impl MapEditor { - /// Creates a new empty map. - pub fn new() -> MapEditorState + /// Creates a closed map editor. + #[inline] + pub const fn new_closed() -> Self { - MapEditorState::default() + MapEditor::Closed } - /// Draws the "no map" screen. - pub fn draw_none(d: &D, im: &I) + /// Creates a new empty map. + #[inline] + pub fn new_opened() -> Self + { + MapEditor::Opened(MapEditorState::default()) + } + + /// Draws the screen for this editor state. + pub fn draw(&self, d: &D, im: &I) where D: DrawArea, I: CacheImage { - d.clear(Color16::new(0, 0, 0)); + match self { + MapEditor::Closed => { + d.clear(Color16::new(0, 0, 0)); - d.image((d.w() / 2 - im.w() / 2, d.h() / 2 - im.h() / 2), im); + d.image((d.w() / 2 - im.w() / 2, d.h() / 2 - im.h() / 2), im); - d.rect(Rect{x: 0, y: 0, w: d.w(), h: 18}, CR_DARK_RED); - d.text((4, 14), "Map Required To Proceed", CR_RED); + let text = "Map Required To Proceed"; + d.rect(Rect{x: 0, y: 0, w: d.w(), h: 18}, CR_DARK_RED); + d.text((4, 14), text, CR_RED); - d.rect(Rect{x: 0, y: d.h() - 18, w: d.w(), h: 18}, CR_DARK_RED); - d.text((4, d.h() - 4), "CAS.qterm//CyberAcme Systems Inc.", CR_RED); + let text = "CAS.qterm//CyberAcme Systems Inc."; + d.rect(Rect{x: 0, y: d.h() - 18, w: d.w(), h: 18}, CR_DARK_RED); + d.text((4, d.h() - 4), text, CR_RED); + } + MapEditor::Opened(_st) => { + d.clear(Color16::new(0, 0, 0)); + } + } } - /// Draws the currently open map. - pub fn draw_some(&self, d: &impl DrawArea) + /// Returns `true` if `self` is closed. + #[inline] + pub fn is_closed(&self) -> bool { - d.clear(Color16::new(0, 0, 0)); + match self { + MapEditor::Closed => true, + MapEditor::Opened(_) => false, + } + } + + /// Returns `true` if `self` is opened. + #[inline] + pub fn is_opened(&self) -> bool + { + match self { + MapEditor::Closed => false, + MapEditor::Opened(_) => true, + } } } @@ -51,7 +82,7 @@ pub struct MapEditorStateBlock info: map::Minf, } -/// The state of a map editor. +/// The state of an opened map editor. #[derive(Default)] pub struct MapEditorState { @@ -59,6 +90,13 @@ pub struct MapEditorState tool: Tool, } +/// An entire map editor, which may be opened or closed. +pub enum MapEditor +{ + Closed, + Opened(MapEditorState), +} + /// A tool in the map editor. pub enum Tool { diff --git a/source/tycho/main.rs b/source/tycho/main.rs index e4ce339..73e2e6a 100644 --- a/source/tycho/main.rs +++ b/source/tycho/main.rs @@ -1,7 +1,7 @@ mod editor; mod interfaces; -use crate::{editor::MapEditorState, +use crate::{editor::MapEditor, interfaces::*}; use gdk_pixbuf_sys::*; use gdk_sys::*; @@ -17,7 +17,7 @@ unsafe extern "C" fn app_activate(app: *mut GtkApplication, edit: gpointer) { // this ref will be cloned around a bit, but will ultimately be dropped at // the end of this function. - let edit = Rc::from_raw(edit as *mut Option); + let edit = Rc::from_raw(edit as *mut MapEditor); setup_css(); @@ -35,14 +35,14 @@ unsafe extern "C" fn app_activate(app: *mut GtkApplication, edit: gpointer) } /// Sets up the map view window's drawing area. -unsafe fn setup_draw_area(b: *mut GtkBuilder, edit: Rc>) +unsafe fn setup_draw_area(b: *mut GtkBuilder, edit: Rc) { struct RenderState { im_nomap: *mut GdkPixbuf, ax: *mut GtkAdjustment, ay: *mut GtkAdjustment, - edit: Rc>, + edit: Rc, } /// Callback to finalize the drawing area. @@ -78,10 +78,7 @@ unsafe fn setup_draw_area(b: *mut GtkBuilder, edit: Rc>) let im = CrImage(rend.im_nomap); let dr = CrDrawArea::new(ctx, w, h); - match &*rend.edit { - Some(edit) => edit.draw_some(&dr), - None => MapEditorState::draw_none(&dr, &im), - } + rend.edit.draw(&dr, &im); 1 } @@ -217,7 +214,7 @@ unsafe fn setup_explicit_drop(b: *mut GtkBuilder, win: *mut GtkWindow) /// Sets up the main menu window. unsafe fn setup_win_main(b: *mut GtkBuilder, app: *mut GtkApplication, - edit: Rc>) + edit: Rc) { /// Callback to close the window when the "Quit" button is pressed. unsafe extern "C" fn c_quit_act(_: *mut GtkWidget, win: gpointer) @@ -228,10 +225,10 @@ unsafe fn setup_win_main(b: *mut GtkBuilder, /// Callback to create a new editor state when the "New" button is pressed. unsafe extern "C" fn c_new_act(_: *mut GtkWidget, edit: gpointer) { - let edit = edit as *mut Option; + let edit = edit as *mut MapEditor; let edit = &mut *edit; - if edit.is_some() { + if edit.is_opened() { let titl = c_str!("Confirm"); let text = c_str!("Are you sure you want to create a new project? \ Data may be lost."); @@ -241,7 +238,7 @@ unsafe fn setup_win_main(b: *mut GtkBuilder, } } - *edit = Some(MapEditorState::new()); + *edit = MapEditor::new_opened(); } /// Callback to finalize the editor state reference. @@ -379,7 +376,7 @@ fn main() g_static_resource_init(&mut resource); // create a container for the editor state - let edit = Rc::new(None::); + let edit = Rc::new(MapEditor::new_closed()); let eptr = Rc::into_raw(edit.clone()); // create and run the app From 9542592027d7d169171328537425eb084a402084 Mon Sep 17 00:00:00 2001 From: Marrub Date: Wed, 27 Mar 2019 07:26:20 -0400 Subject: [PATCH 19/29] dynamic safe borrowing of map editor references --- source/tycho/editor.rs | 28 +++++++++++------- source/tycho/main.rs | 65 ++++++++++++++++++++++++++++++++++-------- 2 files changed, 71 insertions(+), 22 deletions(-) diff --git a/source/tycho/editor.rs b/source/tycho/editor.rs index d30d2b5..a7185cd 100644 --- a/source/tycho/editor.rs +++ b/source/tycho/editor.rs @@ -17,11 +17,11 @@ impl MapEditor MapEditor::Closed } - /// Creates a new empty map. + /// Opens the editor with a new empty map. #[inline] - pub fn new_opened() -> Self + pub fn open_new(&mut self) { - MapEditor::Opened(MapEditorState::default()) + *self = MapEditor::Opened(MapEditorState::default()); } /// Draws the screen for this editor state. @@ -31,17 +31,23 @@ impl MapEditor { match self { MapEditor::Closed => { + let tx_top = "Map Required To Proceed"; + let tx_bot = "CAS.qterm//CyberAcme Systems Inc."; + + let dw = d.w(); + let dh = d.h(); + let iw = im.w(); + let ih = im.h(); + d.clear(Color16::new(0, 0, 0)); - d.image((d.w() / 2 - im.w() / 2, d.h() / 2 - im.h() / 2), im); + d.image((dw / 2 - iw / 2, dh / 2 - ih / 2), im); - let text = "Map Required To Proceed"; - d.rect(Rect{x: 0, y: 0, w: d.w(), h: 18}, CR_DARK_RED); - d.text((4, 14), text, CR_RED); + d.rect(Rect{x: 0, y: 0, w: dw, h: 18}, CR_DARK_RED); + d.text((4, 14), tx_top, CR_RED); - let text = "CAS.qterm//CyberAcme Systems Inc."; - d.rect(Rect{x: 0, y: d.h() - 18, w: d.w(), h: 18}, CR_DARK_RED); - d.text((4, d.h() - 4), text, CR_RED); + d.rect(Rect{x: 0, y: dh - 18, w: dw, h: 18}, CR_DARK_RED); + d.text((4, dh - 4), tx_bot, CR_RED); } MapEditor::Opened(_st) => { d.clear(Color16::new(0, 0, 0)); @@ -50,6 +56,7 @@ impl MapEditor } /// Returns `true` if `self` is closed. + #[allow(dead_code)] #[inline] pub fn is_closed(&self) -> bool { @@ -60,6 +67,7 @@ impl MapEditor } /// Returns `true` if `self` is opened. + #[allow(dead_code)] #[inline] pub fn is_opened(&self) -> bool { diff --git a/source/tycho/main.rs b/source/tycho/main.rs index 73e2e6a..d7cc23a 100644 --- a/source/tycho/main.rs +++ b/source/tycho/main.rs @@ -1,8 +1,7 @@ mod editor; mod interfaces; -use crate::{editor::MapEditor, - interfaces::*}; +use crate::interfaces::*; use gdk_pixbuf_sys::*; use gdk_sys::*; use gio_sys::*; @@ -10,14 +9,14 @@ use glib_sys::*; use gobject_sys::*; use gtk_sys::*; use maraiah::{c_str, durandal::ffi}; -use std::rc::Rc; +use std::{cell::RefCell, rc::Rc}; /// Called whne the application activates in order to set everything up. unsafe extern "C" fn app_activate(app: *mut GtkApplication, edit: gpointer) { // this ref will be cloned around a bit, but will ultimately be dropped at // the end of this function. - let edit = Rc::from_raw(edit as *mut MapEditor); + let edit = Rc::from_raw(edit as *const MapEditorRef); setup_css(); @@ -35,14 +34,14 @@ unsafe extern "C" fn app_activate(app: *mut GtkApplication, edit: gpointer) } /// Sets up the map view window's drawing area. -unsafe fn setup_draw_area(b: *mut GtkBuilder, edit: Rc) +unsafe fn setup_draw_area(b: *mut GtkBuilder, edit: Rc) { struct RenderState { im_nomap: *mut GdkPixbuf, ax: *mut GtkAdjustment, ay: *mut GtkAdjustment, - edit: Rc, + edit: Rc, } /// Callback to finalize the drawing area. @@ -78,13 +77,18 @@ unsafe fn setup_draw_area(b: *mut GtkBuilder, edit: Rc) let im = CrImage(rend.im_nomap); let dr = CrDrawArea::new(ctx, w, h); - rend.edit.draw(&dr, &im); + rend.edit.borrow().draw(&dr, &im); 1 } let wid: *mut GtkDrawingArea = get_obj(b, c_str!("draw-area")); + { + let mut edit = edit.borrow_mut(); + edit.call.push(Box::new(move || gtk_widget_queue_draw(wid as _))); + } + let ax: *mut GtkAdjustment = get_obj(b, c_str!("adj-map-horz")); let ay: *mut GtkAdjustment = get_obj(b, c_str!("adj-map-vert")); @@ -214,7 +218,7 @@ unsafe fn setup_explicit_drop(b: *mut GtkBuilder, win: *mut GtkWindow) /// Sets up the main menu window. unsafe fn setup_win_main(b: *mut GtkBuilder, app: *mut GtkApplication, - edit: Rc) + edit: Rc) { /// Callback to close the window when the "Quit" button is pressed. unsafe extern "C" fn c_quit_act(_: *mut GtkWidget, win: gpointer) @@ -225,8 +229,9 @@ unsafe fn setup_win_main(b: *mut GtkBuilder, /// Callback to create a new editor state when the "New" button is pressed. unsafe extern "C" fn c_new_act(_: *mut GtkWidget, edit: gpointer) { - let edit = edit as *mut MapEditor; - let edit = &mut *edit; + let edit = edit as *const MapEditorRef; + let edit = &*edit; + let mut edit = edit.borrow_mut(); if edit.is_opened() { let titl = c_str!("Confirm"); @@ -238,12 +243,14 @@ unsafe fn setup_win_main(b: *mut GtkBuilder, } } - *edit = MapEditor::new_opened(); + edit.open_new(); + edit.cause_update(); } /// Callback to finalize the editor state reference. unsafe extern "C" fn c_new_done(_: *mut GtkWidget, edit: gpointer) { + let edit = edit as *const MapEditorRef; Rc::from_raw(edit); } @@ -376,7 +383,10 @@ fn main() g_static_resource_init(&mut resource); // create a container for the editor state - let edit = Rc::new(MapEditor::new_closed()); + let edit = MapEditor{edit: editor::MapEditor::new_closed(), + call: Vec::new(), + done: Vec::new()}; + let edit = Rc::new(RefCell::new(edit)); let eptr = Rc::into_raw(edit.clone()); // create and run the app @@ -398,4 +408,35 @@ fn main() } } +impl MapEditor +{ + fn cause_update(&mut self) {for cb in &mut self.call {cb();}} +} + +impl Drop for MapEditor +{ + fn drop(&mut self) {for cb in &mut self.done {cb();}} +} + +impl std::ops::Deref for MapEditor +{ + type Target = editor::MapEditor; + + fn deref(&self) -> &editor::MapEditor {&self.edit} +} + +impl std::ops::DerefMut for MapEditor +{ + fn deref_mut(&mut self) -> &mut editor::MapEditor {&mut self.edit} +} + +struct MapEditor +{ + edit: editor::MapEditor, + call: Vec>, + done: Vec>, +} + +type MapEditorRef = RefCell; + // EOF From 742f0c1c8ea9837ffd9017c32a527e16b75ee436 Mon Sep 17 00:00:00 2001 From: Marrub Date: Wed, 27 Mar 2019 07:55:58 -0400 Subject: [PATCH 20/29] fix mutability of DrawArea --- source/rozinante/draw.rs | 12 ++++++------ source/tycho/interfaces.rs | 12 ++++++------ source/tycho/main.rs | 4 ++-- 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/source/rozinante/draw.rs b/source/rozinante/draw.rs index 6d70a8a..54292a5 100644 --- a/source/rozinante/draw.rs +++ b/source/rozinante/draw.rs @@ -25,22 +25,22 @@ pub trait DrawArea fn h(&self) -> Coord; /// Fills the entire screen with `cr`. Will also default all settings. - fn clear(&self, cr: impl Color); + fn clear(&mut self, cr: impl Color); /// Changes the width for lines. The default is `1`. - fn line_width(&self, width: u8); + fn line_width(&mut self, width: u8); /// Draws a line from `p1` to `p2` with color `cr`. - fn line(&self, p1: Point, p2: Point, cr: impl Color); + fn line(&mut self, p1: Point, p2: Point, cr: impl Color); /// Draws a rectangle `rect` of color `cr`. - fn rect(&self, rect: Rect, cr: impl Color); + fn rect(&mut self, rect: Rect, cr: impl Color); /// Draws the Unicode `text` at `pos` stroked with color `cr`. - fn text(&self, pos: Point, text: &str, cr: impl Color); + fn text(&mut self, pos: Point, text: &str, cr: impl Color); /// Draws `im` at `pos`, starting from the top left column. - fn image(&self, pos: Point, im: &Self::NativeImage); + fn image(&mut self, pos: Point, im: &Self::NativeImage); } /// A type capable of representing any coordinate on any axis. diff --git a/source/tycho/interfaces.rs b/source/tycho/interfaces.rs index d69ff5d..1eb8bbf 100644 --- a/source/tycho/interfaces.rs +++ b/source/tycho/interfaces.rs @@ -34,7 +34,7 @@ impl DrawArea for CrDrawArea fn w(&self) -> Coord {self.w} fn h(&self) -> Coord {self.h} - fn clear(&self, cr: impl Color) + fn clear(&mut self, cr: impl Color) { self.rect(Rect{x: 0, y: 0, w: self.w(), h: self.h()}, cr); @@ -48,7 +48,7 @@ impl DrawArea for CrDrawArea } } - fn line_width(&self, width: u8) + fn line_width(&mut self, width: u8) { let width = f64::from(width); @@ -57,7 +57,7 @@ impl DrawArea for CrDrawArea } } - fn line(&self, p1: Point, p2: Point, cr: impl Color) + fn line(&mut self, p1: Point, p2: Point, cr: impl Color) { let (r, g, b) = flt_color(cr); @@ -75,7 +75,7 @@ impl DrawArea for CrDrawArea } } - fn rect(&self, rect: Rect, cr: impl Color) + fn rect(&mut self, rect: Rect, cr: impl Color) { let px = f64::from(rect.x); let py = f64::from(rect.y); @@ -91,7 +91,7 @@ impl DrawArea for CrDrawArea } } - fn text(&self, pos: Point, text: &str, cr: impl Color) + fn text(&mut self, pos: Point, text: &str, cr: impl Color) { let (r, g, b) = flt_color(cr); @@ -107,7 +107,7 @@ impl DrawArea for CrDrawArea } } - fn image(&self, pos: Point, im: &Self::NativeImage) + fn image(&mut self, pos: Point, im: &Self::NativeImage) { let x = f64::from(pos.0); let y = f64::from(pos.1); diff --git a/source/tycho/main.rs b/source/tycho/main.rs index d7cc23a..a5ec599 100644 --- a/source/tycho/main.rs +++ b/source/tycho/main.rs @@ -75,9 +75,9 @@ unsafe fn setup_draw_area(b: *mut GtkBuilder, edit: Rc) gtk_adjustment_set_upper(rend.ay, h); let im = CrImage(rend.im_nomap); - let dr = CrDrawArea::new(ctx, w, h); + let mut dr = CrDrawArea::new(ctx, w, h); - rend.edit.borrow().draw(&dr, &im); + rend.edit.borrow().draw(&mut dr, &im); 1 } From 8693f7605ac8f29eaea4d43337d5c49aa35f17cc Mon Sep 17 00:00:00 2001 From: Marrub Date: Wed, 27 Mar 2019 07:56:30 -0400 Subject: [PATCH 21/29] extra comments --- source/tycho/editor.rs | 16 +++++++++------- source/tycho/main.rs | 19 +++++++++++++------ 2 files changed, 22 insertions(+), 13 deletions(-) diff --git a/source/tycho/editor.rs b/source/tycho/editor.rs index a7185cd..25745c9 100644 --- a/source/tycho/editor.rs +++ b/source/tycho/editor.rs @@ -25,20 +25,20 @@ impl MapEditor } /// Draws the screen for this editor state. - pub fn draw(&self, d: &D, im: &I) + pub fn draw(&self, d: &mut D, im: &I) where D: DrawArea, I: CacheImage { + let dw = d.w(); + let dh = d.h(); + let iw = im.w(); + let ih = im.h(); + match self { MapEditor::Closed => { let tx_top = "Map Required To Proceed"; let tx_bot = "CAS.qterm//CyberAcme Systems Inc."; - let dw = d.w(); - let dh = d.h(); - let iw = im.w(); - let ih = im.h(); - d.clear(Color16::new(0, 0, 0)); d.image((dw / 2 - iw / 2, dh / 2 - ih / 2), im); @@ -49,8 +49,9 @@ impl MapEditor d.rect(Rect{x: 0, y: dh - 18, w: dw, h: 18}, CR_DARK_RED); d.text((4, dh - 4), tx_bot, CR_RED); } - MapEditor::Opened(_st) => { + MapEditor::Opened(st) => { d.clear(Color16::new(0, 0, 0)); + d.text((dw/2, dh/2), &format!("tool: {:?}", st.tool), CR_RED); } } } @@ -106,6 +107,7 @@ pub enum MapEditor } /// A tool in the map editor. +#[derive(Debug)] pub enum Tool { Points, diff --git a/source/tycho/main.rs b/source/tycho/main.rs index a5ec599..0c00292 100644 --- a/source/tycho/main.rs +++ b/source/tycho/main.rs @@ -36,6 +36,7 @@ unsafe extern "C" fn app_activate(app: *mut GtkApplication, edit: gpointer) /// Sets up the map view window's drawing area. unsafe fn setup_draw_area(b: *mut GtkBuilder, edit: Rc) { + /// All of the state necessary for the drawing area. struct RenderState { im_nomap: *mut GdkPixbuf, @@ -84,11 +85,12 @@ unsafe fn setup_draw_area(b: *mut GtkBuilder, edit: Rc) let wid: *mut GtkDrawingArea = get_obj(b, c_str!("draw-area")); - { - let mut edit = edit.borrow_mut(); - edit.call.push(Box::new(move || gtk_widget_queue_draw(wid as _))); - } + // add a callback to draw the area when updated + edit.borrow_mut().call.push(Box::new(move || { + gtk_widget_queue_draw(wid as _); + })); + // get all of the necessary state and related objects let ax: *mut GtkAdjustment = get_obj(b, c_str!("adj-map-horz")); let ay: *mut GtkAdjustment = get_obj(b, c_str!("adj-map-vert")); @@ -226,7 +228,7 @@ unsafe fn setup_win_main(b: *mut GtkBuilder, gtk_window_close(win as _); } - /// Callback to create a new editor state when the "New" button is pressed. + /// Callback to create a new map when the "New" button is pressed. unsafe extern "C" fn c_new_act(_: *mut GtkWidget, edit: gpointer) { let edit = edit as *const MapEditorRef; @@ -386,7 +388,8 @@ fn main() let edit = MapEditor{edit: editor::MapEditor::new_closed(), call: Vec::new(), done: Vec::new()}; - let edit = Rc::new(RefCell::new(edit)); + let edit = RefCell::new(edit); + let edit = Rc::new(edit); let eptr = Rc::into_raw(edit.clone()); // create and run the app @@ -410,11 +413,13 @@ fn main() impl MapEditor { + /// Causes all update callbacks to be called. fn cause_update(&mut self) {for cb in &mut self.call {cb();}} } impl Drop for MapEditor { + /// Calls all finalization callbacks on drop. fn drop(&mut self) {for cb in &mut self.done {cb();}} } @@ -430,6 +435,7 @@ impl std::ops::DerefMut for MapEditor fn deref_mut(&mut self) -> &mut editor::MapEditor {&mut self.edit} } +/// Specialized map editor which has callbacks for frontend purposes. struct MapEditor { edit: editor::MapEditor, @@ -437,6 +443,7 @@ struct MapEditor done: Vec>, } +/// A runtime reference to the map editor. type MapEditorRef = RefCell; // EOF From b427f4c99daae6d1cecada3880ae1d16aa85ffa9 Mon Sep 17 00:00:00 2001 From: Marrub Date: Wed, 27 Mar 2019 14:07:10 -0400 Subject: [PATCH 22/29] use new module spec --- source/{durandal/mod.rs => durandal.rs} | 0 source/{marathon/mod.rs => marathon.rs} | 0 source/{rozinante/mod.rs => rozinante.rs} | 0 3 files changed, 0 insertions(+), 0 deletions(-) rename source/{durandal/mod.rs => durandal.rs} (100%) rename source/{marathon/mod.rs => marathon.rs} (100%) rename source/{rozinante/mod.rs => rozinante.rs} (100%) diff --git a/source/durandal/mod.rs b/source/durandal.rs similarity index 100% rename from source/durandal/mod.rs rename to source/durandal.rs diff --git a/source/marathon/mod.rs b/source/marathon.rs similarity index 100% rename from source/marathon/mod.rs rename to source/marathon.rs diff --git a/source/rozinante/mod.rs b/source/rozinante.rs similarity index 100% rename from source/rozinante/mod.rs rename to source/rozinante.rs From d56b3db1fe426c2704e41f9ff259dc412e293288 Mon Sep 17 00:00:00 2001 From: Marrub Date: Wed, 27 Mar 2019 14:07:33 -0400 Subject: [PATCH 23/29] move editor to rozinante --- source/durandal/ffi.rs | 5 +++ source/rozinante.rs | 1 + source/rozinante/color.rs | 4 +- source/{tycho => rozinante}/editor.rs | 53 ++++++++------------------- source/rozinante/editor/block.rs | 19 ++++++++++ source/rozinante/editor/state.rs | 48 ++++++++++++++++++++++++ source/tycho/main.rs | 5 +-- 7 files changed, 92 insertions(+), 43 deletions(-) rename source/{tycho => rozinante}/editor.rs (65%) create mode 100644 source/rozinante/editor/block.rs create mode 100644 source/rozinante/editor/state.rs diff --git a/source/durandal/ffi.rs b/source/durandal/ffi.rs index 37ee01c..4931034 100644 --- a/source/durandal/ffi.rs +++ b/source/durandal/ffi.rs @@ -50,6 +50,11 @@ impl CStringVec } } +impl Default for CStringVec +{ + fn default() -> Self {Self::new()} +} + /// An owned null-terminated string vector. #[derive(Debug)] pub struct CStringVec diff --git a/source/rozinante.rs b/source/rozinante.rs index 96e17cb..260c5eb 100644 --- a/source/rozinante.rs +++ b/source/rozinante.rs @@ -2,5 +2,6 @@ pub mod color; pub mod draw; +pub mod editor; // EOF diff --git a/source/rozinante/color.rs b/source/rozinante/color.rs index 939f7d8..790c9ee 100644 --- a/source/rozinante/color.rs +++ b/source/rozinante/color.rs @@ -2,7 +2,7 @@ use crate::durandal::image::Color16; -pub const CR_RED: Color16 = Color16::new(0xFFFF, 0, 0); -pub const CR_DARK_RED: Color16 = Color16::new(0x4700, 0, 0); +pub const RED: Color16 = Color16::new(0xFFFF, 0, 0); +pub const DARK_RED: Color16 = Color16::new(0x4700, 0, 0); // EOF diff --git a/source/tycho/editor.rs b/source/rozinante/editor.rs similarity index 65% rename from source/tycho/editor.rs rename to source/rozinante/editor.rs index 25745c9..3192f0d 100644 --- a/source/tycho/editor.rs +++ b/source/rozinante/editor.rs @@ -4,9 +4,11 @@ //! state and human interactions with it, but is otherwise not permitted to //! directly edit it. -use maraiah::{durandal::image::*, - marathon::map, - rozinante::{color::*, draw::*}}; +pub mod block; +pub mod state; + +use crate::durandal::image::*; +use super::{color, draw::*}; impl MapEditor { @@ -21,7 +23,7 @@ impl MapEditor #[inline] pub fn open_new(&mut self) { - *self = MapEditor::Opened(MapEditorState::default()); + *self = MapEditor::Opened(state::State::default()); } /// Draws the screen for this editor state. @@ -43,21 +45,20 @@ impl MapEditor d.image((dw / 2 - iw / 2, dh / 2 - ih / 2), im); - d.rect(Rect{x: 0, y: 0, w: dw, h: 18}, CR_DARK_RED); - d.text((4, 14), tx_top, CR_RED); + d.rect(Rect{x: 0, y: 0, w: dw, h: 18}, color::DARK_RED); + d.text((4, 14), tx_top, color::RED); - d.rect(Rect{x: 0, y: dh - 18, w: dw, h: 18}, CR_DARK_RED); - d.text((4, dh - 4), tx_bot, CR_RED); + d.rect(Rect{x: 0, y: dh - 18, w: dw, h: 18}, color::DARK_RED); + d.text((4, dh - 4), tx_bot, color::RED); } MapEditor::Opened(st) => { d.clear(Color16::new(0, 0, 0)); - d.text((dw/2, dh/2), &format!("tool: {:?}", st.tool), CR_RED); + d.text((dw/2, dh/2), &format!("tool: {:?}", st.tool), color::RED); } } } /// Returns `true` if `self` is closed. - #[allow(dead_code)] #[inline] pub fn is_closed(&self) -> bool { @@ -68,7 +69,6 @@ impl MapEditor } /// Returns `true` if `self` is opened. - #[allow(dead_code)] #[inline] pub fn is_opened(&self) -> bool { @@ -79,40 +79,17 @@ impl MapEditor } } -impl Default for Tool +impl Default for MapEditor { - fn default() -> Tool {Tool::Points} -} - -/// Copyable map state. -#[derive(Clone, Default)] -pub struct MapEditorStateBlock -{ - info: map::Minf, -} - -/// The state of an opened map editor. -#[derive(Default)] -pub struct MapEditorState -{ - edit_stack: Vec, - tool: Tool, + #[inline] + fn default() -> Self {Self::new_closed()} } /// An entire map editor, which may be opened or closed. pub enum MapEditor { Closed, - Opened(MapEditorState), -} - -/// A tool in the map editor. -#[derive(Debug)] -pub enum Tool -{ - Points, - Lines, - Polygons, + Opened(state::State), } // EOF diff --git a/source/rozinante/editor/block.rs b/source/rozinante/editor/block.rs new file mode 100644 index 0000000..9f03e7b --- /dev/null +++ b/source/rozinante/editor/block.rs @@ -0,0 +1,19 @@ +use crate::marathon::map; + +impl Default for Block +{ + #[inline] + fn default() -> Self + { + Self{info: map::Minf::default()} + } +} + +/// Copyable map state. +#[derive(Clone)] +pub struct Block +{ + info: map::Minf, +} + +// EOF diff --git a/source/rozinante/editor/state.rs b/source/rozinante/editor/state.rs new file mode 100644 index 0000000..61bfe4f --- /dev/null +++ b/source/rozinante/editor/state.rs @@ -0,0 +1,48 @@ +use super::block; + +impl State +{ + fn cur_block(&self) -> &block::Block + { + self.blocks.last().unwrap() + } + + fn cur_block_mut(&mut self) -> &mut block::Block + { + self.blocks.last_mut().unwrap() + } +} + +impl Default for State +{ + #[inline] + fn default() -> Self + { + Self{blocks: vec![block::Block::default()], + tool: Tool::default()} + } +} + +impl Default for Tool +{ + #[inline] + fn default() -> Self {Tool::Points} +} + +/// The state of an opened map editor. +pub struct State +{ + pub(super) blocks: Vec, + pub(super) tool: Tool, +} + +/// A tool in the map editor. +#[derive(Debug)] +pub(super) enum Tool +{ + Points, + Lines, + Polygons, +} + +// EOF diff --git a/source/tycho/main.rs b/source/tycho/main.rs index 0c00292..7e9f2ef 100644 --- a/source/tycho/main.rs +++ b/source/tycho/main.rs @@ -1,4 +1,3 @@ -mod editor; mod interfaces; use crate::interfaces::*; @@ -8,10 +7,10 @@ use gio_sys::*; use glib_sys::*; use gobject_sys::*; use gtk_sys::*; -use maraiah::{c_str, durandal::ffi}; +use maraiah::{c_str, durandal::ffi, rozinante::editor}; use std::{cell::RefCell, rc::Rc}; -/// Called whne the application activates in order to set everything up. +/// Called when the application activates in order to set everything up. unsafe extern "C" fn app_activate(app: *mut GtkApplication, edit: gpointer) { // this ref will be cloned around a bit, but will ultimately be dropped at From 75e354a16bcf2f87f960bb28d43118261f1733f3 Mon Sep 17 00:00:00 2001 From: Marrub Date: Wed, 27 Mar 2019 17:02:15 -0400 Subject: [PATCH 24/29] unnecessary complication --- source/rozinante/editor.rs | 21 ++++------- source/rozinante/editor/block.rs | 2 +- source/rozinante/editor/state.rs | 8 ++-- source/tycho/data/ui.xml | 6 +-- source/tycho/interfaces.rs | 65 +++++++++++++++++++++++++++++++- source/tycho/main.rs | 46 ++-------------------- 6 files changed, 83 insertions(+), 65 deletions(-) diff --git a/source/rozinante/editor.rs b/source/rozinante/editor.rs index 3192f0d..30ec7ee 100644 --- a/source/rozinante/editor.rs +++ b/source/rozinante/editor.rs @@ -1,8 +1,8 @@ //! Main map editor module. //! //! The entry point is responsible for maintaining the lifetime of the editor -//! state and human interactions with it, but is otherwise not permitted to -//! directly edit it. +//! and human interactions with it, but is otherwise not permitted to directly +//! edit it. pub mod block; pub mod state; @@ -12,18 +12,11 @@ use super::{color, draw::*}; impl MapEditor { - /// Creates a closed map editor. - #[inline] - pub const fn new_closed() -> Self - { - MapEditor::Closed - } - /// Opens the editor with a new empty map. #[inline] pub fn open_new(&mut self) { - *self = MapEditor::Opened(state::State::default()); + *self = MapEditor::Opened(state::OpenMap::default()); } /// Draws the screen for this editor state. @@ -52,8 +45,10 @@ impl MapEditor d.text((4, dh - 4), tx_bot, color::RED); } MapEditor::Opened(st) => { + let text = &format!("tool: {:?}", st.tool); + d.clear(Color16::new(0, 0, 0)); - d.text((dw/2, dh/2), &format!("tool: {:?}", st.tool), color::RED); + d.text((dw/2, dh/2), text, color::RED); } } } @@ -82,14 +77,14 @@ impl MapEditor impl Default for MapEditor { #[inline] - fn default() -> Self {Self::new_closed()} + fn default() -> Self {MapEditor::Closed} } /// An entire map editor, which may be opened or closed. pub enum MapEditor { Closed, - Opened(state::State), + Opened(state::OpenMap), } // EOF diff --git a/source/rozinante/editor/block.rs b/source/rozinante/editor/block.rs index 9f03e7b..439b810 100644 --- a/source/rozinante/editor/block.rs +++ b/source/rozinante/editor/block.rs @@ -9,7 +9,7 @@ impl Default for Block } } -/// Copyable map state. +/// Copyable, versioned map state. #[derive(Clone)] pub struct Block { diff --git a/source/rozinante/editor/state.rs b/source/rozinante/editor/state.rs index 61bfe4f..6bdc0bf 100644 --- a/source/rozinante/editor/state.rs +++ b/source/rozinante/editor/state.rs @@ -1,6 +1,8 @@ +//! Map editor state. + use super::block; -impl State +impl OpenMap { fn cur_block(&self) -> &block::Block { @@ -13,7 +15,7 @@ impl State } } -impl Default for State +impl Default for OpenMap { #[inline] fn default() -> Self @@ -30,7 +32,7 @@ impl Default for Tool } /// The state of an opened map editor. -pub struct State +pub struct OpenMap { pub(super) blocks: Vec, pub(super) tool: Tool, diff --git a/source/tycho/data/ui.xml b/source/tycho/data/ui.xml index be86b96..70b0c46 100644 --- a/source/tycho/data/ui.xml +++ b/source/tycho/data/ui.xml @@ -1156,7 +1156,7 @@ express Statement of Purpose. True False - Points + _Points True img-points @@ -1175,7 +1175,7 @@ express Statement of Purpose. True False - Lines + _Lines True img-lines @@ -1195,7 +1195,7 @@ express Statement of Purpose. True False - Polygons + P_olygons True img-polys diff --git a/source/tycho/interfaces.rs b/source/tycho/interfaces.rs index 1eb8bbf..a245b3f 100644 --- a/source/tycho/interfaces.rs +++ b/source/tycho/interfaces.rs @@ -3,7 +3,11 @@ use cairo_sys::*; use gdk_pixbuf_sys::*; use gdk_sys::*; -use maraiah::{c_str, durandal::{ffi::*, image::*}, rozinante::draw::*}; +use gobject_sys::*; +use gtk_sys::*; +use maraiah::{c_str, + durandal::{ffi, image::*}, + rozinante::{draw::*, editor}}; /// Converts a `Color` to a `f64` triple. fn flt_color(cr: impl Color) -> (f64, f64, f64) @@ -98,7 +102,7 @@ impl DrawArea for CrDrawArea let x = f64::from(pos.0); let y = f64::from(pos.1); - let text = CString::new(text).unwrap(); + let text = ffi::CString::new(text).unwrap(); unsafe { cairo_set_source_rgb(self.ctx, r, g, b); @@ -119,6 +123,53 @@ impl DrawArea for CrDrawArea } } +impl MapEditor +{ + /// Propagates updated information to widgets. + pub fn cause_update(&mut self) + { + unsafe {gtk_widget_queue_draw(self.draw);} + } + + /// Sets the drawing area widget. + pub fn set_draw(&mut self, draw: *mut GtkWidget) + { + self.draw = draw; + unsafe {g_object_ref(self.draw as _);} + } +} + +impl Default for MapEditor +{ + fn default() -> Self + { + Self{edit: editor::MapEditor::default(), + draw: ffi::null_mut()} + } +} + +impl Drop for MapEditor +{ + fn drop(&mut self) + { + unsafe {g_object_unref(self.draw as _);} + } +} + +impl std::ops::Deref for MapEditor +{ + type Target = editor::MapEditor; + + #[inline] + fn deref(&self) -> &Self::Target {&self.edit} +} + +impl std::ops::DerefMut for MapEditor +{ + #[inline] + fn deref_mut(&mut self) -> &mut Self::Target {&mut self.edit} +} + /// An image for a `CrDrawArea`. pub struct CrImage(pub *const GdkPixbuf); @@ -130,4 +181,14 @@ pub struct CrDrawArea h: Coord, } +/// Specialized map editor which has callbacks for frontend purposes. +pub struct MapEditor +{ + edit: editor::MapEditor, + draw: *mut GtkWidget, +} + +/// A runtime reference to the map editor. +pub type MapEditorRef = std::cell::RefCell; + // EOF diff --git a/source/tycho/main.rs b/source/tycho/main.rs index 7e9f2ef..b7da4cc 100644 --- a/source/tycho/main.rs +++ b/source/tycho/main.rs @@ -7,7 +7,7 @@ use gio_sys::*; use glib_sys::*; use gobject_sys::*; use gtk_sys::*; -use maraiah::{c_str, durandal::ffi, rozinante::editor}; +use maraiah::{c_str, durandal::ffi}; use std::{cell::RefCell, rc::Rc}; /// Called when the application activates in order to set everything up. @@ -84,10 +84,7 @@ unsafe fn setup_draw_area(b: *mut GtkBuilder, edit: Rc) let wid: *mut GtkDrawingArea = get_obj(b, c_str!("draw-area")); - // add a callback to draw the area when updated - edit.borrow_mut().call.push(Box::new(move || { - gtk_widget_queue_draw(wid as _); - })); + edit.borrow_mut().set_draw(wid as _); // get all of the necessary state and related objects let ax: *mut GtkAdjustment = get_obj(b, c_str!("adj-map-horz")); @@ -384,9 +381,7 @@ fn main() g_static_resource_init(&mut resource); // create a container for the editor state - let edit = MapEditor{edit: editor::MapEditor::new_closed(), - call: Vec::new(), - done: Vec::new()}; + let edit = MapEditor::default(); let edit = RefCell::new(edit); let edit = Rc::new(edit); let eptr = Rc::into_raw(edit.clone()); @@ -410,39 +405,4 @@ fn main() } } -impl MapEditor -{ - /// Causes all update callbacks to be called. - fn cause_update(&mut self) {for cb in &mut self.call {cb();}} -} - -impl Drop for MapEditor -{ - /// Calls all finalization callbacks on drop. - fn drop(&mut self) {for cb in &mut self.done {cb();}} -} - -impl std::ops::Deref for MapEditor -{ - type Target = editor::MapEditor; - - fn deref(&self) -> &editor::MapEditor {&self.edit} -} - -impl std::ops::DerefMut for MapEditor -{ - fn deref_mut(&mut self) -> &mut editor::MapEditor {&mut self.edit} -} - -/// Specialized map editor which has callbacks for frontend purposes. -struct MapEditor -{ - edit: editor::MapEditor, - call: Vec>, - done: Vec>, -} - -/// A runtime reference to the map editor. -type MapEditorRef = RefCell; - // EOF From b8e624fecd067c80777d452b350dd877fa1be9d1 Mon Sep 17 00:00:00 2001 From: Marrub Date: Fri, 29 Mar 2019 13:48:36 -0400 Subject: [PATCH 25/29] use droppable structure for unref things --- source/tycho/main.rs | 120 +++++++++++++++++++++++++------------------ 1 file changed, 69 insertions(+), 51 deletions(-) diff --git a/source/tycho/main.rs b/source/tycho/main.rs index b7da4cc..634f952 100644 --- a/source/tycho/main.rs +++ b/source/tycho/main.rs @@ -8,7 +8,7 @@ use glib_sys::*; use gobject_sys::*; use gtk_sys::*; use maraiah::{c_str, durandal::ffi}; -use std::{cell::RefCell, rc::Rc}; +use std::{cell::RefCell, marker::PhantomData, rc::Rc}; /// Called when the application activates in order to set everything up. unsafe extern "C" fn app_activate(app: *mut GtkApplication, edit: gpointer) @@ -20,40 +20,32 @@ unsafe extern "C" fn app_activate(app: *mut GtkApplication, edit: gpointer) setup_css(); let path = c_str!("/net/greyserv/maraiah/tycho/ui"); - let b = gtk_builder_new_from_resource(path); + let b = Refc::new(gtk_builder_new_from_resource(path)); - setup_draw_area(b, edit.clone()); - setup_win_map_view(b); - setup_win_map_tools(b); - setup_win_map_prop(b); - setup_about_dlg(b); - setup_win_main(b, app, edit.clone()); - - g_object_unref(b as _); + setup_draw_area(&b, edit.clone()); + setup_win_map_view(&b); + setup_win_map_tools(&b); + setup_win_map_prop(&b); + setup_about_dlg(&b); + setup_win_main(&b, app, edit.clone()); } /// Sets up the map view window's drawing area. -unsafe fn setup_draw_area(b: *mut GtkBuilder, edit: Rc) +unsafe fn setup_draw_area(b: &Refc, edit: Rc) { /// All of the state necessary for the drawing area. struct RenderState { - im_nomap: *mut GdkPixbuf, - ax: *mut GtkAdjustment, - ay: *mut GtkAdjustment, + im_nomap: Refc<'static, GdkPixbuf>, + ax: Refc<'static, GtkAdjustment>, + ay: Refc<'static, GtkAdjustment>, edit: Rc, } /// Callback to finalize the drawing area. unsafe extern "C" fn c_done(_: *mut GtkWidget, rend: gpointer) { - let rend = Box::from_raw(rend as *mut RenderState); - - g_object_unref(rend.im_nomap as gpointer as _); - g_object_unref(rend.ax as _); - g_object_unref(rend.ay as _); - - // data is dropped and freed here + Box::from_raw(rend as *mut RenderState); } /// Callback to draw on the drawing area. @@ -68,13 +60,13 @@ unsafe fn setup_draw_area(b: *mut GtkBuilder, edit: Rc) let w = f64::from(gtk_widget_get_allocated_width(wid)); let h = f64::from(gtk_widget_get_allocated_height(wid)); - gtk_adjustment_set_lower(rend.ax, 0.0); - gtk_adjustment_set_upper(rend.ax, w); + gtk_adjustment_set_lower(*rend.ax, 0.0); + gtk_adjustment_set_upper(*rend.ax, w); - gtk_adjustment_set_lower(rend.ay, 0.0); - gtk_adjustment_set_upper(rend.ay, h); + gtk_adjustment_set_lower(*rend.ay, 0.0); + gtk_adjustment_set_upper(*rend.ay, h); - let im = CrImage(rend.im_nomap); + let im = CrImage(*rend.im_nomap); let mut dr = CrDrawArea::new(ctx, w, h); rend.edit.borrow().draw(&mut dr, &im); @@ -87,13 +79,14 @@ unsafe fn setup_draw_area(b: *mut GtkBuilder, edit: Rc) edit.borrow_mut().set_draw(wid as _); // get all of the necessary state and related objects - let ax: *mut GtkAdjustment = get_obj(b, c_str!("adj-map-horz")); - let ay: *mut GtkAdjustment = get_obj(b, c_str!("adj-map-vert")); + let ax = Refc::::new(get_obj(b, c_str!("adj-map-horz"))); + let ay = Refc::::new(get_obj(b, c_str!("adj-map-vert"))); - g_object_ref(ax as _); - g_object_ref(ay as _); + g_object_ref(*ax as _); + g_object_ref(*ay as _); let im_nomap = load_img(c_str!("/net/greyserv/maraiah/tycho/tycho1.png")); + let im_nomap = Refc::new(im_nomap); let rend = RenderState{im_nomap, ax, ay, edit}; let rend = Box::into_raw(Box::new(rend)); @@ -103,7 +96,7 @@ unsafe fn setup_draw_area(b: *mut GtkBuilder, edit: Rc) } /// Sets up the map view window. -unsafe fn setup_win_map_view(b: *mut GtkBuilder) +unsafe fn setup_win_map_view(b: &Refc) { let win: *mut GtkWindow = get_obj(b, c_str!("win-map-view")); let btn: *mut GtkMenuItem = get_obj(b, c_str!("btn-show-map-view")); @@ -113,7 +106,7 @@ unsafe fn setup_win_map_view(b: *mut GtkBuilder) } /// Sets up the map tools window. -unsafe fn setup_win_map_tools(b: *mut GtkBuilder) +unsafe fn setup_win_map_tools(b: &Refc) { let win: *mut GtkWindow = get_obj(b, c_str!("win-map-tools")); let btn: *mut GtkMenuItem = get_obj(b, c_str!("btn-show-map-tools")); @@ -123,7 +116,7 @@ unsafe fn setup_win_map_tools(b: *mut GtkBuilder) } /// Sets up the map properties window. -unsafe fn setup_win_map_prop(b: *mut GtkBuilder) +unsafe fn setup_win_map_prop(b: &Refc) { let win: *mut GtkWindow = get_obj(b, c_str!("win-map-prop")); let btn: *mut GtkMenuItem = get_obj(b, c_str!("btn-show-map-prop")); @@ -133,7 +126,7 @@ unsafe fn setup_win_map_prop(b: *mut GtkBuilder) } /// Sets up the about dialogue. -unsafe fn setup_about_dlg(b: *mut GtkBuilder) +unsafe fn setup_about_dlg(b: &Refc) { /// Callback to show the dialogue when the "About" button is pressed, and /// hide it when the "Close" button is pressed on it. @@ -149,20 +142,19 @@ unsafe fn setup_about_dlg(b: *mut GtkBuilder) let it = env!("CARGO_PKG_AUTHORS").split(';'); let mut v = ffi::CStringVec::new_from_iter(it).unwrap(); let img = load_img(c_str!("/net/greyserv/maraiah/tycho/tycho2.png")); + let img = Refc::new(img); gtk_about_dialog_set_authors(dlg, v.as_mut_ptr()); gtk_about_dialog_set_version(dlg, c_str!(env!("CARGO_PKG_VERSION"))); gtk_about_dialog_set_website(dlg, c_str!(env!("CARGO_PKG_HOMEPAGE"))); - gtk_about_dialog_set_logo(dlg, img); + gtk_about_dialog_set_logo(dlg, *img); connect_hide(dlg as _); connect(btn as _, c_str!("activate"), c_show_act as _, dlg as _); - - g_object_unref(img as gpointer as _); } /// Sets up explicit window finalization for the main window. -unsafe fn setup_explicit_drop(b: *mut GtkBuilder, win: *mut GtkWindow) +unsafe fn setup_explicit_drop(b: &Refc, win: *mut GtkWindow) { /// Callback to explicitly finalize all windows on exit. unsafe extern "C" fn c_done(_: *mut GtkWidget, exp_del: gpointer) @@ -179,7 +171,7 @@ unsafe fn setup_explicit_drop(b: *mut GtkBuilder, win: *mut GtkWindow) let mut exp_del = Vec::new(); // so, we get all of the objects from the builder, and iterate through them - let head = gtk_builder_get_objects(b); + let head = gtk_builder_get_objects(**b); let mut lst = &*head; loop { @@ -214,7 +206,7 @@ unsafe fn setup_explicit_drop(b: *mut GtkBuilder, win: *mut GtkWindow) } /// Sets up the main menu window. -unsafe fn setup_win_main(b: *mut GtkBuilder, +unsafe fn setup_win_main(b: &Refc, app: *mut GtkApplication, edit: Rc) { @@ -277,14 +269,12 @@ unsafe fn setup_win_main(b: *mut GtkBuilder, unsafe fn setup_css() { let path = c_str!("/net/greyserv/maraiah/tycho/css"); - let css = gtk_css_provider_new(); - gtk_css_provider_load_from_resource(css, path); + let css = Refc::new(gtk_css_provider_new()); + gtk_css_provider_load_from_resource(*css, path); let scr = gdk_screen_get_default(); let pri = GTK_STYLE_PROVIDER_PRIORITY_APPLICATION as u32; - gtk_style_context_add_provider_for_screen(scr, css as _, pri); - - g_object_unref(css as _); + gtk_style_context_add_provider_for_screen(scr, *css as _, pri); } /// Runs a modal OK/Cancel dialogue. @@ -343,9 +333,9 @@ unsafe fn connect_show(btn: *mut GtkWidget, wid: *mut GtkWidget) } /// Gets an object from a `GtkBuilder`. -unsafe fn get_obj(b: *mut GtkBuilder, name: ffi::NT) -> *mut T +unsafe fn get_obj(b: &Refc, name: ffi::NT) -> *mut T { - let obj = gtk_builder_get_object(b, name); + let obj = gtk_builder_get_object(**b, name); obj as _ } @@ -388,14 +378,14 @@ fn main() // create and run the app let name = c_str!("net.greyserv.maraiah.tycho"); - let app = gtk_application_new(name, 0); + let app = Refc::new(gtk_application_new(name, 0)); - connect(app as _, c_str!("activate"), app_activate as _, eptr as _); + connect(*app as _, c_str!("activate"), app_activate as _, eptr as _); - g_application_run(app as _, 0, ffi::null_mut()); + g_application_run(*app as _, 0, ffi::null_mut()); // ok, clean up all this crap now - g_object_unref(app as _); + drop(app); assert_eq!(Rc::strong_count(&edit), 1); drop(edit); @@ -405,4 +395,32 @@ fn main() } } +impl std::ops::Deref for Refc<'_, T> +{ + type Target = *mut T; + + fn deref(&self) -> &Self::Target {&self.p} +} + +impl Drop for Refc<'_, T> +{ + fn drop(&mut self) + { + unsafe { + g_object_unref(self.p as _); + } + } +} + +impl Refc<'_, T> +{ + fn new(p: *mut T) -> Self {Self{p, l: PhantomData}} +} + +struct Refc<'a, T> +{ + p: *mut T, + l: PhantomData<&'a *mut T>, +} + // EOF From 1a3145b5b6ca43f04ea43e6e3a3718dd9a78aa5c Mon Sep 17 00:00:00 2001 From: Marrub Date: Fri, 29 Mar 2019 14:32:17 -0400 Subject: [PATCH 26/29] add null_void --- source/durandal/ffi.rs | 18 ++++++++++++++++++ source/leela/main.rs | 4 ++-- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/source/durandal/ffi.rs b/source/durandal/ffi.rs index 4931034..0bf316c 100644 --- a/source/durandal/ffi.rs +++ b/source/durandal/ffi.rs @@ -9,15 +9,29 @@ macro_rules! c_str { ($s:expr) => {concat!($s, "\0").as_ptr() as $crate::durandal::ffi::NT}; } +#[inline] +pub const fn null_void() -> *const c_void +{ + null() +} + +#[inline] +pub const fn null_mut_void() -> *mut c_void +{ + null_mut() +} + impl CStringVec { /// Creates a new empty CStringVec. + #[inline] pub fn new() -> Self { Self{sv: Vec::new(), cv: vec![null()]} } /// Creates a new `CStringVec` from an iterator. + #[inline] pub fn new_from_iter<'a, I: Iterator>(it: I) -> ResultS { @@ -31,6 +45,7 @@ impl CStringVec } /// Pushes a new `CString`. + #[inline] pub fn push(&mut self, st: CString) { self.cv.insert(self.cv.len() - 1, st.as_ptr()); @@ -38,12 +53,14 @@ impl CStringVec } /// Returns the FFI pointer. + #[inline] pub fn as_ptr(&self) -> *const NT { self.cv.as_ptr() } /// Returns the FFI pointer mutably. + #[inline] pub fn as_mut_ptr(&mut self) -> *mut NT { self.cv.as_mut_ptr() @@ -52,6 +69,7 @@ impl CStringVec impl Default for CStringVec { + #[inline] fn default() -> Self {Self::new()} } diff --git a/source/leela/main.rs b/source/leela/main.rs index 0c326cf..3900c56 100644 --- a/source/leela/main.rs +++ b/source/leela/main.rs @@ -1,6 +1,6 @@ use maraiah::{durandal::{err::*, file::*, image::*, sound::*}, marathon::{machdr, ppm, shp, snd, tga, wad, wav}}; -use std::{fs, io}; +use std::{fs, io, slice::from_ref}; fn make_tga(_opt: &Options, fname: &str, im: &impl Image) -> ResultS<()> { @@ -140,7 +140,7 @@ fn main() -> ResultS<()> macro_rules! arg { ($name:expr, $ref:expr, $type:expr, $desc:expr) => { - ap.refer(&mut $ref).add_option(&[$name], $type, $desc); + ap.refer(&mut $ref).add_option(from_ref(&$name), $type, $desc); }; } From 392e20ae6512e79a3b26d312258eb99447732fde Mon Sep 17 00:00:00 2001 From: Marrub Date: Fri, 29 Mar 2019 15:27:16 -0400 Subject: [PATCH 27/29] simplify frontend code --- source/tycho/main.rs | 134 ++++++++++++++++++++++--------------------- 1 file changed, 70 insertions(+), 64 deletions(-) diff --git a/source/tycho/main.rs b/source/tycho/main.rs index 634f952..b99ac49 100644 --- a/source/tycho/main.rs +++ b/source/tycho/main.rs @@ -10,6 +10,16 @@ use gtk_sys::*; use maraiah::{c_str, durandal::ffi}; use std::{cell::RefCell, marker::PhantomData, rc::Rc}; +const ACTIVATE: ffi::NT = c_str!("activate"); +const APP_ID: ffi::NT = c_str!("net.greyserv.maraiah.tycho"); +const DELETE_EVENT: ffi::NT = c_str!("delete-event"); +const DESTROY: ffi::NT = c_str!("destroy"); +const DRAW: ffi::NT = c_str!("draw"); +const IM_ABOUT: ffi::NT = c_str!("/net/greyserv/maraiah/tycho/tycho2.png"); +const IM_NOMAP: ffi::NT = c_str!("/net/greyserv/maraiah/tycho/tycho1.png"); +const PATH_BUILDER: ffi::NT = c_str!("/net/greyserv/maraiah/tycho/ui"); +const PATH_CSS: ffi::NT = c_str!("/net/greyserv/maraiah/tycho/css"); + /// Called when the application activates in order to set everything up. unsafe extern "C" fn app_activate(app: *mut GtkApplication, edit: gpointer) { @@ -19,8 +29,7 @@ unsafe extern "C" fn app_activate(app: *mut GtkApplication, edit: gpointer) setup_css(); - let path = c_str!("/net/greyserv/maraiah/tycho/ui"); - let b = Refc::new(gtk_builder_new_from_resource(path)); + let b = Refc::new(gtk_builder_new_from_resource(PATH_BUILDER)); setup_draw_area(&b, edit.clone()); setup_win_map_view(&b); @@ -54,8 +63,7 @@ unsafe fn setup_draw_area(b: &Refc, edit: Rc) rend: gpointer) -> gboolean { - let rend = rend as *mut RenderState; - let rend = &mut *rend; + let rend = &mut *(rend as *mut RenderState); let w = f64::from(gtk_widget_get_allocated_width(wid)); let h = f64::from(gtk_widget_get_allocated_height(wid)); @@ -66,7 +74,7 @@ unsafe fn setup_draw_area(b: &Refc, edit: Rc) gtk_adjustment_set_lower(*rend.ay, 0.0); gtk_adjustment_set_upper(*rend.ay, h); - let im = CrImage(*rend.im_nomap); + let im = CrImage(*rend.im_nomap); let mut dr = CrDrawArea::new(ctx, w, h); rend.edit.borrow().draw(&mut dr, &im); @@ -74,55 +82,54 @@ unsafe fn setup_draw_area(b: &Refc, edit: Rc) 1 } - let wid: *mut GtkDrawingArea = get_obj(b, c_str!("draw-area")); + let wid = get_obj::(b, c_str!("draw-area")); edit.borrow_mut().set_draw(wid as _); // get all of the necessary state and related objects - let ax = Refc::::new(get_obj(b, c_str!("adj-map-horz"))); - let ay = Refc::::new(get_obj(b, c_str!("adj-map-vert"))); + let ax = Refc::new(get_obj::(b, c_str!("adj-map-horz"))); + let ay = Refc::new(get_obj::(b, c_str!("adj-map-vert"))); g_object_ref(*ax as _); g_object_ref(*ay as _); - let im_nomap = load_img(c_str!("/net/greyserv/maraiah/tycho/tycho1.png")); - let im_nomap = Refc::new(im_nomap); + let im_nomap = Refc::new(load_img(IM_NOMAP)); let rend = RenderState{im_nomap, ax, ay, edit}; let rend = Box::into_raw(Box::new(rend)); - connect(wid as _, c_str!("destroy"), c_done as _, rend as _); - connect(wid as _, c_str!("draw"), c_draw as _, rend as _); + connect(wid, DESTROY, c_done as _, rend); + connect(wid, DRAW, c_draw as _, rend); } /// Sets up the map view window. unsafe fn setup_win_map_view(b: &Refc) { - let win: *mut GtkWindow = get_obj(b, c_str!("win-map-view")); - let btn: *mut GtkMenuItem = get_obj(b, c_str!("btn-show-map-view")); + let win = get_obj::(b, c_str!("win-map-view")); + let btn = get_obj::(b, c_str!("btn-show-map-view")); - connect_hide(win as _); - connect_show(btn as _, win as _); + connect_hide(win); + connect_show(btn, win); } /// Sets up the map tools window. unsafe fn setup_win_map_tools(b: &Refc) { - let win: *mut GtkWindow = get_obj(b, c_str!("win-map-tools")); - let btn: *mut GtkMenuItem = get_obj(b, c_str!("btn-show-map-tools")); + let win = get_obj::(b, c_str!("win-map-tools")); + let btn = get_obj::(b, c_str!("btn-show-map-tools")); - connect_hide(win as _); - connect_show(btn as _, win as _); + connect_hide(win); + connect_show(btn, win); } /// Sets up the map properties window. unsafe fn setup_win_map_prop(b: &Refc) { - let win: *mut GtkWindow = get_obj(b, c_str!("win-map-prop")); - let btn: *mut GtkMenuItem = get_obj(b, c_str!("btn-show-map-prop")); + let win = get_obj::(b, c_str!("win-map-prop")); + let btn = get_obj::(b, c_str!("btn-show-map-prop")); - connect_hide(win as _); - connect_show(btn as _, win as _); + connect_hide(win); + connect_show(btn, win); } /// Sets up the about dialogue. @@ -136,21 +143,20 @@ unsafe fn setup_about_dlg(b: &Refc) gtk_widget_hide(dlg as _); } - let dlg: *mut GtkAboutDialog = get_obj(b, c_str!("dlg-about")); - let btn: *mut GtkMenuItem = get_obj(b, c_str!("btn-about")); + let dlg = get_obj::(b, c_str!("dlg-about")); + let btn = get_obj::(b, c_str!("btn-about")); let it = env!("CARGO_PKG_AUTHORS").split(';'); let mut v = ffi::CStringVec::new_from_iter(it).unwrap(); - let img = load_img(c_str!("/net/greyserv/maraiah/tycho/tycho2.png")); - let img = Refc::new(img); + let img = Refc::new(load_img(IM_ABOUT)); gtk_about_dialog_set_authors(dlg, v.as_mut_ptr()); gtk_about_dialog_set_version(dlg, c_str!(env!("CARGO_PKG_VERSION"))); gtk_about_dialog_set_website(dlg, c_str!(env!("CARGO_PKG_HOMEPAGE"))); gtk_about_dialog_set_logo(dlg, *img); - connect_hide(dlg as _); - connect(btn as _, c_str!("activate"), c_show_act as _, dlg as _); + connect_hide(dlg); + connect(btn, ACTIVATE, c_show_act as _, dlg); } /// Sets up explicit window finalization for the main window. @@ -202,7 +208,7 @@ unsafe fn setup_explicit_drop(b: &Refc, win: *mut GtkWindow) let exp_del = Box::into_raw(Box::new(exp_del)); - connect(win as _, c_str!("destroy"), c_done as _, exp_del as _); + connect(win, DESTROY, c_done as _, exp_del); } /// Sets up the main menu window. @@ -219,8 +225,7 @@ unsafe fn setup_win_main(b: &Refc, /// Callback to create a new map when the "New" button is pressed. unsafe extern "C" fn c_new_act(_: *mut GtkWidget, edit: gpointer) { - let edit = edit as *const MapEditorRef; - let edit = &*edit; + let edit = &*(edit as *const MapEditorRef); let mut edit = edit.borrow_mut(); if edit.is_opened() { @@ -237,15 +242,8 @@ unsafe fn setup_win_main(b: &Refc, edit.cause_update(); } - /// Callback to finalize the editor state reference. - unsafe extern "C" fn c_new_done(_: *mut GtkWidget, edit: gpointer) - { - let edit = edit as *const MapEditorRef; - Rc::from_raw(edit); - } - // set up main window - let win: *mut GtkWindow = get_obj(b, c_str!("win-main")); + let win = get_obj::(b, c_str!("win-main")); setup_explicit_drop(b, win); @@ -253,24 +251,18 @@ unsafe fn setup_win_main(b: &Refc, gtk_widget_show_all(win as _); // set up buttons - let btn: *mut GtkMenuItem = get_obj(b, c_str!("btn-quit")); + let btn = get_obj::(b, c_str!("btn-quit")); + connect(btn, ACTIVATE, c_quit_act as _, win); - connect(btn as _, c_str!("activate"), c_quit_act as _, win as _); - - let btn: *mut GtkMenuItem = get_obj(b, c_str!("btn-new")); - - let eptr = Rc::into_raw(edit.clone()); - - connect(btn as _, c_str!("activate"), c_new_act as _, eptr as _); - connect(btn as _, c_str!("destroy"), c_new_done as _, eptr as _); + let btn = get_obj::(b, c_str!("btn-new")); + connect(btn, ACTIVATE, c_new_act as _, connect_ref(btn, edit.clone())); } /// Sets up the CSS styling providers. unsafe fn setup_css() { - let path = c_str!("/net/greyserv/maraiah/tycho/css"); let css = Refc::new(gtk_css_provider_new()); - gtk_css_provider_load_from_resource(*css, path); + gtk_css_provider_load_from_resource(*css, PATH_CSS); let scr = gdk_screen_get_default(); let pri = GTK_STYLE_PROVIDER_PRIORITY_APPLICATION as u32; @@ -288,7 +280,7 @@ unsafe fn run_ok_cancel_dlg(title: ffi::NT, text: ffi::NT) -> bool GTK_RESPONSE_ACCEPT, c_str!("_Cancel"), GTK_RESPONSE_REJECT, - ffi::null_mut::()); + ffi::null_mut_void()); let area = gtk_dialog_get_content_area(dlg as _); let labl = gtk_label_new(text); @@ -307,7 +299,7 @@ unsafe fn run_ok_cancel_dlg(title: ffi::NT, text: ffi::NT) -> bool } /// Connects a handler that hides a toplevel widget when deleted. -unsafe fn connect_hide(wid: *mut GtkWidget) +unsafe fn connect_hide(wid: *mut T) { /// Callback to hide the widget. unsafe extern "C" fn c_hide_del(wid: *mut GtkWidget, @@ -317,11 +309,11 @@ unsafe fn connect_hide(wid: *mut GtkWidget) gtk_widget_hide(wid); } - connect(wid as _, c_str!("delete-event"), c_hide_del as _, ffi::null_mut()); + connect(wid, DELETE_EVENT, c_hide_del as _, ffi::null_void()); } /// Connects a handler that shows a widget when activated. -unsafe fn connect_show(btn: *mut GtkWidget, wid: *mut GtkWidget) +unsafe fn connect_show(btn: *mut T, wid: *mut U) { /// Callback to show the widget. unsafe extern "C" fn c_show_act(_: *mut GtkWidget, wid: gpointer) @@ -329,21 +321,36 @@ unsafe fn connect_show(btn: *mut GtkWidget, wid: *mut GtkWidget) gtk_widget_show_all(wid as _); } - connect(btn as _, c_str!("activate"), c_show_act as _, wid as _); + connect(btn, ACTIVATE, c_show_act as _, wid); +} + +/// Connects a reference-counted object to a widget. +unsafe fn connect_ref(obj: *mut T, rc: Rc) -> *const U +{ + /// Callback to finalize the reference. + unsafe extern "C" fn c_done(_: *mut GtkWidget, edit: gpointer) + { + Rc::from_raw(edit as *const MapEditorRef); + } + + let ptr = Rc::into_raw(rc); + + connect(obj, DESTROY, c_done as _, ptr); + + ptr } /// Gets an object from a `GtkBuilder`. unsafe fn get_obj(b: &Refc, name: ffi::NT) -> *mut T { - let obj = gtk_builder_get_object(**b, name); - obj as _ + gtk_builder_get_object(**b, name) as _ } /// Connects a signal handler. -unsafe fn connect(obj: *mut GObject, name: ffi::NT, cb: gpointer, d: gpointer) +unsafe fn connect(obj: *mut T, name: ffi::NT, cb: gpointer, d: *const U) { let cb = std::mem::transmute(cb); - g_signal_connect_data(obj, name, cb, d, None, 0); + g_signal_connect_data(obj as _, name, cb, d as _, None, 0); } /// Loads a `Pixbuf` from a resource. @@ -377,10 +384,9 @@ fn main() let eptr = Rc::into_raw(edit.clone()); // create and run the app - let name = c_str!("net.greyserv.maraiah.tycho"); - let app = Refc::new(gtk_application_new(name, 0)); + let app = Refc::new(gtk_application_new(APP_ID, 0)); - connect(*app as _, c_str!("activate"), app_activate as _, eptr as _); + connect(*app, ACTIVATE, app_activate as _, eptr); g_application_run(*app as _, 0, ffi::null_mut()); From 2875da07e13bf7a42defc453f4aecc447a2f8004 Mon Sep 17 00:00:00 2001 From: Marrub Date: Sat, 30 Mar 2019 17:19:10 -0400 Subject: [PATCH 28/29] move text from durandal to marathon --- source/durandal.rs | 1 - source/durandal/bin.rs | 12 ++---------- source/marathon.rs | 1 + source/marathon/map.rs | 4 ++-- source/marathon/shp.rs | 4 ++-- source/{durandal => marathon}/text.rs | 8 ++++---- source/marathon/trm.rs | 2 +- source/marathon/wad.rs | 4 ++-- 8 files changed, 14 insertions(+), 22 deletions(-) rename source/{durandal => marathon}/text.rs (96%) diff --git a/source/durandal.rs b/source/durandal.rs index a2b8adf..c7fc605 100644 --- a/source/durandal.rs +++ b/source/durandal.rs @@ -15,6 +15,5 @@ pub mod file; pub mod fixed; pub mod image; pub mod sound; -pub mod text; // EOF diff --git a/source/durandal/bin.rs b/source/durandal/bin.rs index e5124a5..d8ee0d6 100644 --- a/source/durandal/bin.rs +++ b/source/durandal/bin.rs @@ -1,6 +1,6 @@ //! Binary data conversion utilities. -use crate::durandal::{err::*, text::mac_roman_conv}; +use crate::durandal::err::*; use std::{fmt, num::NonZeroU16}; #[doc(hidden)] @@ -489,14 +489,6 @@ impl fmt::Debug for OptU16 } } -impl fmt::Debug for Ident -{ - fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result - { - write!(f, "\"{}\"", mac_roman_conv(&self.0)) - } -} - impl PartialEq<[u8; 4]> for Ident { #[inline] @@ -528,7 +520,7 @@ impl<'a> PartialEq<&'a [u8; 4]> for Ident /// assert_eq!(&Ident(*b"POLY"), *b"POLY"); /// assert_eq!(&Ident(*b"POLY"), b"POLY"); /// ``` -#[derive(Clone, Copy, Default, Eq, PartialEq)] +#[derive(Clone, Copy, Debug, Default, Eq, PartialEq)] #[cfg_attr(feature = "serde_obj", derive(serde::Serialize, serde::Deserialize))] pub struct Ident(/** The individual bytes of this identifier. */ pub [u8; 4]); diff --git a/source/marathon.rs b/source/marathon.rs index dde7ee7..d01f3c6 100644 --- a/source/marathon.rs +++ b/source/marathon.rs @@ -8,6 +8,7 @@ pub mod pict; pub mod ppm; pub mod shp; pub mod snd; +pub mod text; pub mod tga; pub mod trm; pub mod wad; diff --git a/source/marathon/map.rs b/source/marathon/map.rs index 461d2af..3e65cf1 100644 --- a/source/marathon/map.rs +++ b/source/marathon/map.rs @@ -1,7 +1,7 @@ //! Structures used by Marathon's Map format. -use crate::{durandal::{bin::*, err::*, fixed::*, text::*}, - marathon::xfer::TransferMode}; +use crate::{durandal::{bin::*, err::*, fixed::*}, + marathon::{text::*, xfer::TransferMode}}; use bitflags::bitflags; /// Reads a `LightFunc` object. diff --git a/source/marathon/shp.rs b/source/marathon/shp.rs index a387234..9ecb3cf 100644 --- a/source/marathon/shp.rs +++ b/source/marathon/shp.rs @@ -1,7 +1,7 @@ //! Marathon Shapes format handling. -use crate::{durandal::{bin::*, err::*, fixed::*, image::*, text::*}, - marathon::xfer::TransferMode}; +use crate::{durandal::{bin::*, err::*, fixed::*, image::*}, + marathon::{text::*, xfer::TransferMode}}; use bitflags::bitflags; /// Reads a color from a color table into `clut`. diff --git a/source/durandal/text.rs b/source/marathon/text.rs similarity index 96% rename from source/durandal/text.rs rename to source/marathon/text.rs index 375b193..fc41163 100644 --- a/source/durandal/text.rs +++ b/source/marathon/text.rs @@ -5,7 +5,7 @@ /// # Examples /// /// ``` -/// use maraiah::durandal::text::to_binsize; +/// use maraiah::marathon::text::to_binsize; /// /// assert_eq!(to_binsize(5000), "5kB".to_string()); /// ``` @@ -57,7 +57,7 @@ pub fn fuck_string(s: &[u8]) -> Vec /// # Examples /// /// ``` -/// use maraiah::durandal::text::pascal_str; +/// use maraiah::marathon::text::pascal_str; /// /// assert_eq!(pascal_str(b"\x0bhello world"), b"hello world"[..].into()); /// assert_eq!(pascal_str(b"\x0chello world"), None); @@ -74,7 +74,7 @@ pub fn pascal_str(b: &[u8]) -> Option<&[u8]> /// # Examples /// /// ``` -/// use maraiah::durandal::text::mac_roman_conv; +/// use maraiah::marathon::text::mac_roman_conv; /// /// assert_eq!(mac_roman_conv(b"p\x8cth"), "påth"); /// assert_eq!(mac_roman_conv(b"I\xd5ve"), "I’ve"); @@ -99,7 +99,7 @@ pub fn mac_roman_conv(s: &[u8]) -> String /// # Examples /// /// ``` -/// use maraiah::durandal::text::mac_roman_cstr; +/// use maraiah::marathon::text::mac_roman_cstr; /// /// assert_eq!(mac_roman_cstr(b"I\xd5ve awaken\0ed"), "I’ve awaken"); /// assert_eq!(mac_roman_cstr(b"I\xd5ve awaken\0"), "I’ve awaken"); diff --git a/source/marathon/trm.rs b/source/marathon/trm.rs index 5e7edc4..3181dec 100644 --- a/source/marathon/trm.rs +++ b/source/marathon/trm.rs @@ -1,6 +1,6 @@ //! Structures used by Marathon's Map format's terminal definitions. -use crate::durandal::{bin::*, err::*, text::*}; +use crate::{durandal::{bin::*, err::*}, marathon::text::*}; use bitflags::bitflags; /// Reads an `InterGroup`. diff --git a/source/marathon/wad.rs b/source/marathon/wad.rs index cdd64fe..a45830b 100644 --- a/source/marathon/wad.rs +++ b/source/marathon/wad.rs @@ -1,7 +1,7 @@ //! Marathon Wad format handling. -use crate::{durandal::{bin::*, err::*, image, text::mac_roman_cstr}, - marathon::{map, phy, pict, trm}}; +use crate::{durandal::{bin::*, err::*, image}, + marathon::{map, phy, pict, text::mac_roman_cstr, trm}}; use std::collections::BTreeMap; /// Reads all chunks in an entry. From 0e32e7893a3fbef2e63ebf0e223a6ca80cabfcb1 Mon Sep 17 00:00:00 2001 From: Marrub Date: Sun, 31 Mar 2019 14:58:36 -0400 Subject: [PATCH 29/29] add map opening (sort of) --- source/rozinante/editor.rs | 40 +++++++++---------- source/rozinante/editor/block.rs | 6 +-- source/rozinante/editor/state.rs | 58 +++++++++++++++++++++------ source/tycho/Cargo.toml | 4 +- source/tycho/main.rs | 68 +++++++++++++++++++++++++++++--- 5 files changed, 133 insertions(+), 43 deletions(-) diff --git a/source/rozinante/editor.rs b/source/rozinante/editor.rs index 30ec7ee..54e6162 100644 --- a/source/rozinante/editor.rs +++ b/source/rozinante/editor.rs @@ -4,8 +4,8 @@ //! and human interactions with it, but is otherwise not permitted to directly //! edit it. -pub mod block; -pub mod state; +mod block; +mod state; use crate::durandal::image::*; use super::{color, draw::*}; @@ -16,7 +16,13 @@ impl MapEditor #[inline] pub fn open_new(&mut self) { - *self = MapEditor::Opened(state::OpenMap::default()); + self.map = Some(state::OpenMap::default()); + } + + /// Opens the editor with an existing map. + pub fn open_buf(&mut self, b: &[u8]) + { + self.map = Some(state::OpenMap::open_buf(b)); } /// Draws the screen for this editor state. @@ -29,8 +35,8 @@ impl MapEditor let iw = im.w(); let ih = im.h(); - match self { - MapEditor::Closed => { + match &self.map { + None => { let tx_top = "Map Required To Proceed"; let tx_bot = "CAS.qterm//CyberAcme Systems Inc."; @@ -44,8 +50,8 @@ impl MapEditor d.rect(Rect{x: 0, y: dh - 18, w: dw, h: 18}, color::DARK_RED); d.text((4, dh - 4), tx_bot, color::RED); } - MapEditor::Opened(st) => { - let text = &format!("tool: {:?}", st.tool); + Some(st) => { + let text = &format!("tool: {:?}", st.tool()); d.clear(Color16::new(0, 0, 0)); d.text((dw/2, dh/2), text, color::RED); @@ -57,34 +63,28 @@ impl MapEditor #[inline] pub fn is_closed(&self) -> bool { - match self { - MapEditor::Closed => true, - MapEditor::Opened(_) => false, - } + self.map.is_none() } /// Returns `true` if `self` is opened. #[inline] pub fn is_opened(&self) -> bool { - match self { - MapEditor::Closed => false, - MapEditor::Opened(_) => true, - } + self.map.is_some() } } impl Default for MapEditor { #[inline] - fn default() -> Self {MapEditor::Closed} + fn default() -> Self {Self{map: None}} } -/// An entire map editor, which may be opened or closed. -pub enum MapEditor +/// An entire map editor, which may be opened or closed. Holds state which +/// outlives the opened map state. +pub struct MapEditor { - Closed, - Opened(state::OpenMap), + map: Option, } // EOF diff --git a/source/rozinante/editor/block.rs b/source/rozinante/editor/block.rs index 439b810..54b3532 100644 --- a/source/rozinante/editor/block.rs +++ b/source/rozinante/editor/block.rs @@ -10,10 +10,10 @@ impl Default for Block } /// Copyable, versioned map state. -#[derive(Clone)] -pub struct Block +#[derive(Clone, Debug)] +pub(super) struct Block { - info: map::Minf, + pub(super) info: map::Minf, } // EOF diff --git a/source/rozinante/editor/state.rs b/source/rozinante/editor/state.rs index 6bdc0bf..eaa6c69 100644 --- a/source/rozinante/editor/state.rs +++ b/source/rozinante/editor/state.rs @@ -1,18 +1,56 @@ //! Map editor state. use super::block; +use crate::marathon::{machdr, wad}; impl OpenMap { - fn cur_block(&self) -> &block::Block + pub(super) fn open_buf(b: &[u8]) -> Self + { + // TODO: handle errors gracefully + let b = &b[machdr::try_mac_header(b)..]; + let wad = wad::read_wad(b).unwrap(); + + let ent = wad.entries.iter().nth(0).unwrap().1; + let info = ent.chunks.iter().find_map(|cnk| { + match cnk { + wad::Chunk::Minf(info) => Some(info), + _ => None, + } + }).unwrap().clone(); + + let block = block::Block{info}; + + dbg!(&block); + + Self{blocks: vec![block], + tools: Self::default_tools()} + } + + pub(super) fn cur_block(&self) -> &block::Block { self.blocks.last().unwrap() } - fn cur_block_mut(&mut self) -> &mut block::Block + pub(super) fn cur_block_mut(&mut self) -> &mut block::Block { self.blocks.last_mut().unwrap() } + + pub(super) fn tool(&self) -> &Tool + { + &self.tools.0 + } + + pub(super) fn set_tool(&mut self, t: Tool) -> &Tool + { + self.tools.1 = self.tools.0.clone(); + self.tools.0 = t; + + &self.tools.1 + } + + const fn default_tools() -> (Tool, Tool) {(Tool::Points, Tool::Lines)} } impl Default for OpenMap @@ -21,25 +59,19 @@ impl Default for OpenMap fn default() -> Self { Self{blocks: vec![block::Block::default()], - tool: Tool::default()} + tools: Self::default_tools()} } } -impl Default for Tool -{ - #[inline] - fn default() -> Self {Tool::Points} -} - /// The state of an opened map editor. -pub struct OpenMap +pub(super) struct OpenMap { - pub(super) blocks: Vec, - pub(super) tool: Tool, + blocks: Vec, + tools: (Tool, Tool), } /// A tool in the map editor. -#[derive(Debug)] +#[derive(Clone, Debug)] pub(super) enum Tool { Points, diff --git a/source/tycho/Cargo.toml b/source/tycho/Cargo.toml index 7dabec6..5359d4b 100644 --- a/source/tycho/Cargo.toml +++ b/source/tycho/Cargo.toml @@ -8,8 +8,6 @@ edition = "2018" build = "build.rs" [dependencies] -maraiah = {path = "../.."} - atk-sys = "0.8" cairo-sys-rs = "0.8" gdk-pixbuf-sys = "0.8" @@ -18,6 +16,8 @@ gio-sys = "0.8" glib-sys = "0.8" gobject-sys = "0.8" gtk-sys = {version = "0.8", features = ["v3_16"]} +maraiah = {path = "../.."} +memmap = "0.7" pango-sys = "0.8" [[bin]] diff --git a/source/tycho/main.rs b/source/tycho/main.rs index b99ac49..b14d499 100644 --- a/source/tycho/main.rs +++ b/source/tycho/main.rs @@ -231,7 +231,7 @@ unsafe fn setup_win_main(b: &Refc, if edit.is_opened() { let titl = c_str!("Confirm"); let text = c_str!("Are you sure you want to create a new project? \ - Data may be lost."); + Unsaved data may be lost."); if !run_ok_cancel_dlg(titl, text) { return; @@ -242,6 +242,31 @@ unsafe fn setup_win_main(b: &Refc, edit.cause_update(); } + /// Callback to open an existing map when the "Open" button is pressed. + unsafe extern "C" fn c_open_act(_: *mut GtkWidget, edit: gpointer) + { + let edit = &*(edit as *const MapEditorRef); + let mut edit = edit.borrow_mut(); + + if edit.is_opened() { + let titl = c_str!("Confirm"); + let text = c_str!("Are you sure you want to open this project? \ + Unsaved data may be lost."); + + if !run_ok_cancel_dlg(titl, text) { + return; + } + } + + if let Some(path) = run_file_chooser_open() { + // TODO: handle errors gracefully + let fp = std::fs::File::open(&path).unwrap(); + let mm = memmap::Mmap::map(&fp).unwrap(); + edit.open_buf(&mm); + edit.cause_update(); + } + } + // set up main window let win = get_obj::(b, c_str!("win-main")); @@ -256,6 +281,9 @@ unsafe fn setup_win_main(b: &Refc, let btn = get_obj::(b, c_str!("btn-new")); connect(btn, ACTIVATE, c_new_act as _, connect_ref(btn, edit.clone())); + + let btn = get_obj::(b, c_str!("btn-open")); + connect(btn, ACTIVATE, c_open_act as _, connect_ref(btn, edit.clone())); } /// Sets up the CSS styling providers. @@ -292,10 +320,40 @@ unsafe fn run_ok_cancel_dlg(title: ffi::NT, text: ffi::NT) -> bool gtk_widget_destroy(dlg); - match res { - GTK_RESPONSE_ACCEPT => true, - _ => false, - } + res == GTK_RESPONSE_ACCEPT +} + +/// Runs a modal Open File dialogue. +unsafe fn run_file_chooser_open() -> Option +{ + let action = GTK_FILE_CHOOSER_ACTION_OPEN; + let dlg = gtk_file_chooser_dialog_new(c_str!("Open File"), + ffi::null_mut(), + action, + c_str!("_Cancel"), + GTK_RESPONSE_CANCEL, + c_str!("_Open"), + GTK_RESPONSE_ACCEPT, + ffi::null_mut_void()); + + let res = gtk_dialog_run(dlg as _); + + let ret = if res == GTK_RESPONSE_ACCEPT { + let fna = gtk_file_chooser_get_filename(dlg as _); + + let own = ffi::CStr::from_ptr(fna); + let own = own.to_str().ok()?.to_owned(); + + g_free(fna as _); + + Some(own) + } else { + None + }; + + gtk_widget_destroy(dlg); + + ret } /// Connects a handler that hides a toplevel widget when deleted.