From 92d11d3aaf9a50d88c8e5565cb0a2c1efee91514 Mon Sep 17 00:00:00 2001
From: Nico Chatzi aud
io terminal tools
- +
🧱 `Requires`: [Rust](https://www.rust-lang.org/tools/install) and [Just](https://github.com/casey/just) @@ -20,7 +20,7 @@ scriptableaud
io terminal tools
After installing, you can generate and install terminal auto-completions scripts.
-![aud](./res/out/aud.gif)
+![aud](./vhs/out/aud.gif)
commands
midimon
Scriptable MIDI Monitor
-![midimon](../res/out/midimon.gif) +![midimon](../vhs/out/midimon.gif) ## Usage diff --git a/lua/api/sysexio/docs.lua b/lua/api/sysexio/docs.lua index b9e32dd..9b99b38 100644 --- a/lua/api/sysexio/docs.lua +++ b/lua/api/sysexio/docs.lua @@ -19,4 +19,3 @@ function resume() end -- Request to stop the application function stop() end - diff --git a/lua/aud/log.lua b/lua/aud/log.lua index 4e5cc4c..f8c6631 100644 --- a/lua/aud/log.lua +++ b/lua/aud/log.lua @@ -1,28 +1,28 @@ local M = {} function M.print_table_or_user_data(t, indent) - indent = indent or 0 - local t_type = type(t) + indent = indent or 0 + local t_type = type(t) - if t_type == "table" then - for k, v in pairs(t) do - if type(v) == "table" or type(v) == "userdata" then - print(string.rep(" ", indent) .. k .. ":") - M.print_table_or_user_data(v, indent + 1) - else - print(string.rep(" ", indent) .. k .. ": " .. tostring(v)) - end - end - elseif t_type == "userdata" then - local meta = getmetatable(t) - if meta and meta.__tostring then - print(string.rep(" ", indent) .. tostring(t)) - else - print(string.rep(" ", indent) .. "userdata") - end - else - print(string.rep(" ", indent) .. tostring(t)) - end + if t_type == "table" then + for k, v in pairs(t) do + if type(v) == "table" or type(v) == "userdata" then + print(string.rep(" ", indent) .. k .. ":") + M.print_table_or_user_data(v, indent + 1) + else + print(string.rep(" ", indent) .. k .. ": " .. tostring(v)) + end + end + elseif t_type == "userdata" then + local meta = getmetatable(t) + if meta and meta.__tostring then + print(string.rep(" ", indent) .. tostring(t)) + else + print(string.rep(" ", indent) .. "userdata") + end + else + print(string.rep(" ", indent) .. tostring(t)) + end end return M diff --git a/lua/aud/midi.lua b/lua/aud/midi.lua index c48c056..cf9ca18 100644 --- a/lua/aud/midi.lua +++ b/lua/aud/midi.lua @@ -1,25 +1,25 @@ local M = {} M.headers = { - sysex_start = 0xF0, - sysex_end = 0xF7, - note_on = 0x90, - note_off = 0x80, - poly_pressure = 0xA0, - controller = 0xB0, - program_change = 0xC0, - channel_pressure = 0xD0, - pitch_bend = 0xE0, + sysex_start = 0xF0, + sysex_end = 0xF7, + note_on = 0x90, + note_off = 0x80, + poly_pressure = 0xA0, + controller = 0xB0, + program_change = 0xC0, + channel_pressure = 0xD0, + pitch_bend = 0xE0, } function M.parse_header(bytes) - for header in M.headers do - if bytes[0] & header ~= 0 then - return header - end - end + for header in M.headers do + if bytes[0] & header ~= 0 then + return header + end + end - return nil + return nil end return M diff --git a/lua/aud/sysex.lua b/lua/aud/sysex.lua index e1451e7..189f82e 100644 --- a/lua/aud/sysex.lua +++ b/lua/aud/sysex.lua @@ -1,109 +1,109 @@ local single_byte_manufacturer_names = { - [0x01] = "Sequential", - [0x02] = "IDP", - [0x03] = "Octave-Plateau / Voyetra", - [0x04] = "Moog Music", - [0x05] = "Passport Designs", - [0x06] = "Lexicon", - [0x07] = "Kurzweil", - [0x0F] = "Ensoniq", - [0x10] = "Oberheim", - [0x11] = "Apple Computer", - [0x13] = "Digidesign", - [0x15] = "JL Cooper", - [0x18] = "E-mu", - [0x1C] = "Eventide", - [0x22] = "Synthaxe", - [0x27] = "Jellinghaus", - [0x29] = "PPG", - [0x2D] = "Hinton Instruments", - [0x2F] = "Elka", - [0x31] = "Viscount", - [0x33] = "Clavia", - [0x38] = "Simmons", - [0x3A] = "Steinberg", - [0x3E] = "Waldorf", - [0x3F] = "Quasimidi", - [0x40] = "Kawai", - [0x41] = "Roland", - [0x42] = "Korg", - [0x43] = "Yamaha", - [0x44] = "Casio", - [0x47] = "Akai", - [0x4C] = "Sony", - [0x52] = "Zoom", + [0x01] = "Sequential", + [0x02] = "IDP", + [0x03] = "Octave-Plateau / Voyetra", + [0x04] = "Moog Music", + [0x05] = "Passport Designs", + [0x06] = "Lexicon", + [0x07] = "Kurzweil", + [0x0F] = "Ensoniq", + [0x10] = "Oberheim", + [0x11] = "Apple Computer", + [0x13] = "Digidesign", + [0x15] = "JL Cooper", + [0x18] = "E-mu", + [0x1C] = "Eventide", + [0x22] = "Synthaxe", + [0x27] = "Jellinghaus", + [0x29] = "PPG", + [0x2D] = "Hinton Instruments", + [0x2F] = "Elka", + [0x31] = "Viscount", + [0x33] = "Clavia", + [0x38] = "Simmons", + [0x3A] = "Steinberg", + [0x3E] = "Waldorf", + [0x3F] = "Quasimidi", + [0x40] = "Kawai", + [0x41] = "Roland", + [0x42] = "Korg", + [0x43] = "Yamaha", + [0x44] = "Casio", + [0x47] = "Akai", + [0x4C] = "Sony", + [0x52] = "Zoom", } local triple_byte_manufacturer_names = { - [0x000009] = "New England Digital", - [0x000016] = "Opcode", - [0x00001B] = "Peavey", - [0x00001C] = "360 Systems", - [0x00001F] = "Zeta", - [0x00002F] = "Encore Electronics", - [0x00003B] = "MOTU", - [0x000041] = "Microsoft", - [0x00004D] = "Studio Electronics", - [0x000105] = "M-Audio", - [0x000121] = "Cakewalk", - [0x000137] = "Roger Linn Design", - [0x00013F] = "Numark / Alesis", - [0x00014D] = "Open Labs", - [0x000172] = "Kilpatrick Audio", - [0x000177] = "Nektar", - [0x000214] = "Intellijel", - [0x00021F] = "Madrona Labs", - [0x000226] = "Electro-Harmonix", - [0x002013] = "Kenton", - [0x00201A] = "Fatar / Studiologic", - [0x00201F] = "TC Electronic", - [0x002029] = "Novation", - [0x002032] = "Behringer", - [0x002033] = "Access Music", - [0x00203A] = "Propellorhead", - [0x00203B] = "Red Sound", - [0x00204D] = "Vermona", - [0x002050] = "Hartmann", - [0x002052] = "Analogue Systems", - [0x00205F] = "Sequentix", - [0x002069] = "Elby Designs", - [0x00206B] = "Arturia", - [0x002076] = "Teenage Engineering", - [0x002102] = "Mutable Instruments", - [0x002107] = "Modal Electronics", - [0x002109] = "Native Instruments", - [0x002110] = "ROLI", - [0x00211A] = "IK Multimedia", - [0x002127] = "Expert Sleepers", - [0x002135] = "Dreadbox", - [0x002141] = "Marienberg", + [0x000009] = "New England Digital", + [0x000016] = "Opcode", + [0x00001B] = "Peavey", + [0x00001C] = "360 Systems", + [0x00001F] = "Zeta", + [0x00002F] = "Encore Electronics", + [0x00003B] = "MOTU", + [0x000041] = "Microsoft", + [0x00004D] = "Studio Electronics", + [0x000105] = "M-Audio", + [0x000121] = "Cakewalk", + [0x000137] = "Roger Linn Design", + [0x00013F] = "Numark / Alesis", + [0x00014D] = "Open Labs", + [0x000172] = "Kilpatrick Audio", + [0x000177] = "Nektar", + [0x000214] = "Intellijel", + [0x00021F] = "Madrona Labs", + [0x000226] = "Electro-Harmonix", + [0x002013] = "Kenton", + [0x00201A] = "Fatar / Studiologic", + [0x00201F] = "TC Electronic", + [0x002029] = "Novation", + [0x002032] = "Behringer", + [0x002033] = "Access Music", + [0x00203A] = "Propellorhead", + [0x00203B] = "Red Sound", + [0x00204D] = "Vermona", + [0x002050] = "Hartmann", + [0x002052] = "Analogue Systems", + [0x00205F] = "Sequentix", + [0x002069] = "Elby Designs", + [0x00206B] = "Arturia", + [0x002076] = "Teenage Engineering", + [0x002102] = "Mutable Instruments", + [0x002107] = "Modal Electronics", + [0x002109] = "Native Instruments", + [0x002110] = "ROLI", + [0x00211A] = "IK Multimedia", + [0x002127] = "Expert Sleepers", + [0x002135] = "Dreadbox", + [0x002141] = "Marienberg", } local function for_all_manufacturers(func) - for list in { single_byte_manufacturer_names, triple_byte_manufacturer_names } do - for id, manufacturer in pairs(list) do - func(id, manufacturer) - end - end + for list in { single_byte_manufacturer_names, triple_byte_manufacturer_names } do + for id, manufacturer in pairs(list) do + func(id, manufacturer) + end + end - return nil + return nil end local M = {} function M.find_manufacturer_name_from_id(id) - return for_all_manufacturers(function(manufacturer_id, manufacturer) - if manufacturer_id == id then return manufacturer end - end - ) + return for_all_manufacturers(function(manufacturer_id, manufacturer) + if manufacturer_id == id then return manufacturer end + end + ) end function M.find_manufacturer_id_from_name(name) - return for_all_manufacturers(function(id, manufacturer) - if manufacturer == name then return id end - end - ) + return for_all_manufacturers(function(id, manufacturer) + if manufacturer == name then return id end + end + ) end return M diff --git a/lua/examples/auscope/file.lua b/lua/examples/auscope/file.lua index 0d431cb..3f3e1d0 100644 --- a/lua/examples/auscope/file.lua +++ b/lua/examples/auscope/file.lua @@ -1,32 +1,32 @@ local file = nil -local filepath = 'out/midimon.mid' +local filepath = 'out/auscope.pcm' function on_start() - if file then io.close(file) end + if file then io.close(file) end - file = io.open(filepath, 'wb') - io.output(file) + file = io.open(filepath, 'wb') + io.output(file) - alert("opening file : " .. filepath) + alert("opening file : " .. filepath) end function on_audio(device_name, buffer) - if file then - for _, channel in ipairs(buffer) do - for _, sample in ipairs(buffer) do - file:write(sample) - end - end - end + if file then + for _, channel in ipairs(buffer) do + for _, sample in ipairs(buffer) do + file:write(sample) + end + end + end - return true + return true end function on_stop() - if file then - file:close() - alert("wrote file : " .. filepath) - end + if file then + file:close() + alert("wrote file : " .. filepath) + end - file = nil + file = nil end diff --git a/lua/examples/midimon/cc.lua b/lua/examples/midimon/cc.lua index f3021c1..041ce0f 100644 --- a/lua/examples/midimon/cc.lua +++ b/lua/examples/midimon/cc.lua @@ -1,8 +1,8 @@ function on_midi(_, bytes) - if bytes == nil or #bytes < 1 then - return true - end + if bytes == nil or #bytes < 1 then + return true + end - local controller = 0xB0 - return (bytes[1] & 0xF0) == controller + local controller = 0xB0 + return (bytes[1] & 0xF0) == controller end diff --git a/lua/examples/midimon/file.lua b/lua/examples/midimon/file.lua index bc7a812..0709db2 100644 --- a/lua/examples/midimon/file.lua +++ b/lua/examples/midimon/file.lua @@ -2,29 +2,29 @@ local file = nil local filepath = 'out/midimon.mid' function on_start() - if file then io.close(file) end + if file then io.close(file) end - file = io.open(filepath, 'wb') - io.output(file) + file = io.open(filepath, 'wb') + io.output(file) - alert("opening file : " .. filepath) + alert("opening file : " .. filepath) end function on_midi(device_name, bytes) - if file then - for _, byte in ipairs(bytes) do - file:write(string.char(byte)) - end - end + if file then + for _, byte in ipairs(bytes) do + file:write(string.char(byte)) + end + end - return true + return true end function on_stop() - if file then - file:close() - alert("wrote file : " .. filepath) - end + if file then + file:close() + alert("wrote file : " .. filepath) + end - file = nil + file = nil end diff --git a/lua/examples/midimon/log.lua b/lua/examples/midimon/log.lua index c77c9b0..e0fa142 100644 --- a/lua/examples/midimon/log.lua +++ b/lua/examples/midimon/log.lua @@ -1,21 +1,20 @@ function on_start() - log("on_start") + log("on_start") end function on_discover(device_names) - log("on_discover : [ " .. table.concat(device_names, ", ") .. " ]") + log("on_discover : [ " .. table.concat(device_names, ", ") .. " ]") end function on_connect(device_name) - log("on_connect : " .. device_name) + log("on_connect : " .. device_name) end function on_midi(device_name, bytes) - log("on_midi : " .. device_name .. " : " ..#bytes .. " bytes") - return true + log("on_midi : " .. device_name .. " : " .. #bytes .. " bytes") + return true end function on_stop() - log("on_stop") + log("on_stop") end - diff --git a/lua/examples/midimon/notes.lua b/lua/examples/midimon/notes.lua index 80959d6..77c79ef 100644 --- a/lua/examples/midimon/notes.lua +++ b/lua/examples/midimon/notes.lua @@ -1,14 +1,14 @@ function on_midi(_, bytes) - if bytes == nil or #bytes < 1 then - return true - end + if bytes == nil or #bytes < 1 then + return true + end - local note_on = 0x90 - local note_off = 0x80 + local note_on = 0x90 + local note_off = 0x80 - for _, header in pairs({ note_on, note_off }) do - if (bytes[1] & 0xF0) == header then return true end - end + for _, header in pairs({ note_on, note_off }) do + if (bytes[1] & 0xF0) == header then return true end + end - return false + return false end diff --git a/res/out/auscope.gif b/res/out/auscope.gif deleted file mode 100644 index 5afd88fc59e18c0742e969c25ada50d03db84aec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 734428 zcmeFYWmH@3yRRE82@oJS!JVMR3GQw|ix(?Uptu)WB)Cg)2~wa?2^0xZiWRpOr_f?W zTZ*;C+HBtcTI=j}_C9-!v&Z>(_VpzhV}6-qJoi24^SiHSYU^qtWSwR}dj!96VgOb) zfT$=yT?2r_;c;={@$up5>ftjo;|mMpOG^{d(h@2t5UQvWB9TNyKrlT67zQIICLz9i zml%g5At5DUW+6cuLm*@jC;(z_fBQp5MnOhHLk5G9v2&1=?Je{S zv@m>H7%lDfH60Bl-7O3hbWHg4v@m))CVDy+`hS4YGcYjF(=u?fF$f7W`1-===o!h# z7^x^3X=oT}X&D(AnQq}AVA|VfW?^Oy3Sy3qVWFjE;Rdku^|4Azv(YfHbFg!2YI250 zaNVM)#FdxF&CAOz1mI3gJ;n7MC +SC9>+2gB%NyNdLu72pXB-t} z{Mg%gWCVH3T}4w }>6vwH$0e-LoCIckiByFN2$# zySul6r>BRPmzVb~KKCBp5&`q^_xBA)_(n1MJ%$B@+zpIn2nh)Z3kwSm508k|dGzGo z<6B~5pJedF-I8J(A0MBPkdRa$oOVmDb7qBTR#sL{PG)|7enDwa0ouNx4pCB4QdU-0 zc}tT@RaMoq#`xM>UimfL(y9IWmiCBdY{r`bqt@2e_TI;xot<417Tw)l@7}%Z9gXiF z=pUT78X6iJxn(+k^p=l_V@rYKx2!r$PfyRRq6Y(4 zpLgm%?-zdgj{0&Ow7tE(|1S;>4vzl?00-c}ks4{5o2jcJHN{0l3Ge^_0LLXE5h36Y zK ~kO<|{E7fVL zdY{T5;ki1}R6U%@uAaiI+gvl63pZ=98*P3zULfi+R;v4^cCrK!c(6M9rf#}IC60te zuciJ&wN9>p{aDNM**avkUYTBN!+fLF8_%_|*2cxxjsqzy`fV?k-+0V6*pIip{M7EZ zHCCqI{%Wl&?CfA|y#4i;chLl-tOi)j#y}Fapu+^VX=^x(OTXNpqxtK2p@i4xiH RJg{n>i6Mu*AH*26`N%XqnASKIeb*ucZjlU?mUzVybCvKe(_Pqs#K1@BFD zcbx6cRO?q5z3u#Yxb(*B%hcPh-#^v|QgLj?J>8dQd$W!ArhDFA|32OtuP}bs^XK~F z?C{I `?CZzLNj{)=6ug5~9_txW}TJQ}Njitv%JcC>PMgnul-bNyO0(>)x zJKtk78D3kznIhD-x0xzB1m8-NT=3XRN9@#ZWhngG+sae{@^5Ep&^_4B*5Q4=ons)q zznzQJ;{TdwZu#KrQ!BUUU-Ruk_P-W5Ch+eRy5>LFDe|a&zEkYow!c&2H^jeN8np0W zw=8Vu`EGgSul?PMXrRCz8b#;1SDD1yuve8PeXv)Zr6sUmlV|C<|E$ohVZXLC fUz6{7@VvgZ;h^C~+rdF2W(X&6_@ZUO^YA5hr{VBb_pgJ)*S$c&Z Gi#J$*u8w+iJ++_xAM!!6WQ;zSmL5UTx!1=eM@Qqpss2 z!5`h{3tm6oUhFjf=(+iI_~RV_By`+MNbh~z2j)|FN+HMKgzATCcQ;TdK~6A(4DL72 zp=#_gC=%wokxiOB(MYvXxW|jrv0#!7P5$&!4ipJlrb0GE1{$j;+MSf6O{|C!I-l_* zX(Hm+$=wtiQA=XZhPWdnrj>5KRZlB)!zm>{*oFS#8BUkX3F2~?u#?bGq*0wzx~x%8 zmpa?7rV!!@d-!|JDhC|{bt=H+NK!Eec1x+Vhc!sS=va znItlKALmRfB+s#2pH7@zU?|1wp)n*n>@Vd W4~2AQ4+ z{aABDiJ&BVpq!!Po#^{SDKYEG-@iB2dju3}^#n)#K=G_TUk=4AJn{4FOc$Y8DC$C8 zG^3#Vuk~>(J10K*1+Vns{VBW{YBlu;QKG;-btdB_00|O`XJz-0lD!uVaSy8`lkWHJ z@FJZ3ybGl&c3~UAs?6XbFnDfA d6MaBhse#0h0$;f>^!jNjWh8cs=A2}Ny`b1p!m4vXV^W|UeRSJ8 zQjd?fm?qW}m4*t2wd4YnRH16zJp7}nIz}`DXrQ>GNuvBJKAm^gDwnqI7~xMxf6c5u zper
X?c 0>33BI^(DZr@KD`eqHs@6gll59M zV;?di&a2tUp6h7qeatC7uYnsr*SkCRF~9TtnP~cR19!dI;+6AS#N>0M(6QO_tMfV) zvIb 1W4K_a;tR@>Q+sEc#Mf_}ZBx|%9)>~*U z{`tbgu+e65Y@x05=S#ozM!Q|T#m<$Vufir99e$53_FVmZ9ZmMa5v0G=&-e?IWcb3F zetc<2?pIS*`U_V+{pB&6U(JP+FWh9tm!~3ry+M<`^w8E{`B?m`rQYzR=iTv@h0b5C znDm$4?)slra4Wysu#+!+LdQRSzWUYPOZLhyQGa!l@i%tF@Kr#;`09?_?~a-DS3!09 zYX>&JJC`P3g|v^a9Yy@^S|@uQHmv{owD@=Tp5g0=#qrO-I)A@CPJbP_tN-O{<#*4; z 3S4Xa)wwXRtwHd(qD@g-MW^*dTv& zF~CmVl%#F2NmX(&2sdg CswpFMVvF_qVpxT|IV;g% zo0I8sM8~K(r(j~6SN?JonbDkAXYf_P_HxW>syV-X;;YD`%W+5YH-*CnJK`mm6COry ziWet#q`NM0lYSX*N_P!* J!o^yq39P2O6sZFpc>ay3_P)Y@=&^1!m|Y95o(`oi7t z(B{+C0(PqPRp{iQ!}Zl-FL@g#(eRry)AiDbQCoAt *bk@ww5}>@1C~TD@#*t zZS9laeI8wZS|@ME4jUc?lw7aw8MSvVP9BAHU9TNyw0G|s{)qT={rO_5z32DjkH^>7 zUjP)?UXamoEYr<8*cjVSKXsfSf3pG2#18Tqout^_Y%)w^hh(NsG9KM*u~T%6Xd9j8 zl-z8?amF2Ecc)JCyKcUUW_C=t8=Vz@y4gWYcT9y&ot0nT?5a?7&LkS0S26wB(=qP+ zSTJ>7EB|L7nb|p4XY{kd_RoRUbmv0*)X!Is{v0||bS(`V{c0}x^UcG!Yh`ijS6kPg z?|zwGtGh 7HNh(|?X0 z;jY&y-r+8WjsKpO;BNMe-(4+E|NYg4`*WQ6?q=5*cl8PP_hS0p-`~@?zt^|>0ETFM zL^PpQG%ze0To_G)jfN~mlV3zb8DgjqF*H^&bYU?Jg)xlS80MuI){7W+hFDHSEVorG zZ&)n6FjfE?E3_0VauF-a5GRg^leCJH4vRw+#>rvh6qe$YF5*-eP-+O2h80RH45d?u z(!-(*mQY3)C?rF?DI(t7D&8_I-l{O(1{-g;6z^~m@5qqgj7V^`N^lEH@F-01#3pzz zCHPz<_%S2~AQFSD5<|ig!wM54u!)gNiH|Q5qZyK75lJYkq=c}fq{5^WY*N}%QU>lK zDT^UF2a%j-m7E`zTv(V~j7=_GN-n=hMl+;TAyR6rQfk9e>I+jEuqiK=QeIu8U>H)H z5veU!scm7Y*uvCKY-;yXYR^S#FGE^CB5lwrZ73{lq%ds^n>MkOHg%CU!;t fl+D ZqHC9QL%!*db1qFlL-T!rOa zrOR9uSe}|}o`!XvR(PIHQJ!8$p22dS(PbVI_S97Nsk!x2%kZaGMNe%yp4u%xb+~-$ z2+Mbt&3CoVcMH$=D9ZQj$oF2(_qojXgB1kG76e%rgoGD_6%|Bu6htl;JiaW5h84!j z7NV>R6T%CViV9OY3e%PgGcF6WU`08yMS0dm`Qb%{MMcFOMWxF{<(EZhSaFqXagB9x zZFq5gQE@{@@r&i+SC_>YSV^;NNsDz!TX+e!sHC%_q 2O#A}Se*D;Ya0nO7=VuPWIYt2pJVxNWL IyTmduZpiw`Li9*^( zF9>A=Tn9=JWS<$va(0X}REd8T1{i#LMfN0(RkO%^o$SuWl}X%6ZjCY8;`QTM?R0#d z=b|Rja1-Q^O`O<5{>A!z@8x=}hkALGNwb`>;s<^ygqn4|RN)3>ahe{fGR ^)q%Z)*UVKrwBTil|{`~d59;a3I3aN+y0*S{PlDNYd=fa*~^j%((qD-dNV9p0W&@TI(S$J3x4;;Ulf)R@>IVR%8!cF`)6!6L+Bdfp_i|udPF)DxKsX0RJi?~04 z+9q>BVBDbSdzV!Me}Zr&J+po?TqHE<5nB}xCAi*kc!Gw06`-#~SvfOMG^epk45l&Y zgM{>d<#8>v^{6)X9YDsdDLg^@74kh2r-sP%MPb*>1&MMPmH!+Emhe3$ry&r%JRX26 z&(+LkN*x=**-YWyF?!`Ay`~^rz0qD>(K*q$6#Clr`^~%#Hm1P?AUF-j0Pp}dH(;Z= z3g~}HpNGst< |ZAdxcbRlW@W)s|Z8&W>`5^E9?{`+|7w(=5gD^K*_EAL 6xzc@qhv^DnTmZA2ne%%FofzOetZ8qcT(F9@bgZS}Zjz9`2W@?x=WL4e zFs}w)l?E{s9uU$h(By9O66ZR|?kZ4t$As2b=<6lzrXEdb_1IFsH>>jFKj)K7(q9vn zi#&$OJ2ukp^#sqofX%lzYN(GU9M+P{w+&WB-n{4tf8=4O6yU@Od3N1YHC-Y0_hQo` zQ7w&uJWSVN8vr{fOVH%i@?7rAlM7zOG(Ej@uXab%!V>rNl`OEtadqMOJ@+uGi&`Vf z%%^=jB}&r*YoWrCPrEH?2KI7|C9 pyJIe0nvar;;xg{WuiHSqQ@DMn-Yms<36m{vGR0KWS}L%fUy~3J(9DI zN~E``I^Jas5U-x~b2d|UL}5rba5`R_L0`rrWPq$3!bK+DwrY|njG3$aWFcgF&Sc8l zW`VjdHsaR@%$HrHG3I =F~V@i?ME%zNZGvmQZ9YSK@18;=`b#@-GN|80DDTOT#I^`Z1X z*N5GR9|zd@YDc$J$AnYaiXP%Aw1lbFMp1BCGKY(84dt?#$)ONA+(Wr=i!sP@v$Jj? z)BPz|>%dLJQebdH&GPJ~KAJiHF}KY*-^VyTMe* RXs^DX0_A~x|ODYzs3E^^^- z&7|P3y?Cdaj}NmsFobuaaH|**4uN|;;S2TFC83H`U=$CXKW cr-k=YbISP~B={r7jFdq1YbYmdYa$dq>O2F) 2Obdk_3K^?5Ep5cbNo2S5TB-btK|T{Li(5FTuB~y-q}F z2PII8ovfY~X5tQtgLfruTB8sL9vlgb4jyAMi}C7Y;
%fQC$AdhR&_j&i8@v-C>x zroKQNcXJ<9{M<2J=?g0R8(mj)GVe=D$pK@8;#^9V(qy#XfU+13CAsp#NN=)^Es3 zU!C5Y`0V l53 zTI0<>C2W-@y-$Q+%Jf#bPF>Y-jRD_vCTGV>8OP{}-s|VIQx!9C8WWvD4nRao&;2CT z6wxXpB2H`s`mSZ8cJok~$Y?c6(3>HXwbBjOKQT6Bm1s*!ac}6|RSJ6d9M$EW8m~5i z`;YFbnJ{%?E$+qe$lNV-?=jsxvj3a6TR~6cc^5zX)eNZWyn6Q#^X_w|Fb(?X>A^ZM zc0#oK_mTXM5si<5cd>%p0}Ug5uOqQ|c>lfeX8sos=A?d`e?6E>3w+n|nSc^>b|WYE z1`?_HEW7KQwzD!wl@n+lP*#to!D$=pVE#4Z1xzmDK{{{T^luyQh;Vt9ccxU%o$gQg zIU4y)GF_S$KF2j(PE%y`k|g+ ^m^YC> z)?zWrjo5aQnpoh3$-JOSZ)hEc+8$o$F0_;1r5xr9{aNDf<)Hld>Xhhukw9cTRh;l~ z^!q#adi=iF9lo(pTL;=*!KdETrdKIh(HrQubT}nJWDW%)NVeXaod)}eekNzhfRezf z-~pdbHx53g%0xutMrc+n2w~!!F9IGO3}o$JnrrTT*urm43>OJ=k30z=wy2~u{RD+? zpHL{*V?&vg&sHf3)Y#BeD{NQ7JG5pzOF7fZ3&f~?77*_RtH{lZfuT5Dq@$isjCqoU zB{x}ir4n=1I!Dq~5_Vm|eFRX+|I!5eC0=aGYAc;XKxb1<@h_q>)k@bQR#1{vd_7S& zW5kgK-Y~+M_hn7=JsEo#RWY1qMmq+6xg8dhf0-13_kf8ow hXx`LcjN!tDRp#RB z %nHr zirg2JzmMLTp4_~hS?Pu*CH$n(!c38!j+$ikTf_8w2A2uPx4%eu;)I7FT&E-4sgMa8 z#hXAs3x0?7({a&v-Kt~%xpKeXRxZbXY-Y(|Iv7V)nES%le>SrN;g|I>P!G(e3W|iy zGY#>fN;8dAN^V={!&V=PLsOjl!AEwTr)1V`+!s{58p%BF3n>1;ovbo}M+X`Y&fK&s zl#^Fz ?GvGsX;Q?c+`gJvlReH}kfj+ k%hvlXV%XU!Z z>6VL8C||kWPTa4~t0zG^5kWShLlBqSi92~9L`dw0x>i%s+pq6-;;y@^@t;?78nk;W z6mOLxm=J*b&pU(v cav+b_Mc9Vo1LEFEPUc(7b%eOD>+ zdhcj9$!Yf28uFL Q%bY!#d;v6c 88$MEWCQXrx_OINM^S@xzbA&*~&y}NS^ z*T>(Bxpq{~@23N+LV1esH}7+lg}N1eu{RgD-0|hkA6YMt8q>5ce^QpnrXRrDz*y<_ zce%z|o(i~LEnxbK30++4T8-XMK7Wu*o-bGVEao)+LE3{>J(>h;6Yk*Pg +(jFO 6*I2|Q_ns#SQNU$bgT$JlPU_z2Y zGH_DzOPa)l+>eQXX{8EC& z9S%>@A1*nw>4z+L?Bq@ldA@nuwsK_^hra>=QGq!^zLd#)4qc@DK(Izy&3>_tqHs`y zL^Cl%|NHx031ACQ0dW!h6Z!uwc)k1o?j_ZPbmq`A|Am)K)*K+e)cb$%k|KIdn&1B? zFKN5UQ~W=8$um1|^Z&b-6x=pIKBS<5N7Vo0B_F29xPJLJFL}qBVve6HAuUg_9Lg#A z6?nWm^Wb;kt80$nKF#hh{?qf$VW#ymdE7V3o`~~*yreR}9s3YNlQ!M+v&8h FV6yfavfp2HY9Wpu z r%JsQQm^qx|YjV%Vj0z=iTW1v sF0x}(S1qNSp;{10R>xISVIL8-z-CS}?t9bN|ofh98IZU4Q>7P%mG7Qf~`xaQd! zo@TLwce767!_Q7mEIlMxB8~yK9CxiI@~))HB7-U+HO18!56&((D&5!gCq=_?umACq zkrsMeG;?XWBeh>1g41OO0J89~Wi9h9witu#`xN3ADWY-IUgojz!wYB8p7J%nA>Q|# zyPCWlXElf1$I|y5`bm7}2HN~sPu)gI-ZB%93Q3%66p%kTcP*WZ$n)!8(M2^(GoN$_ z7Ii&l`a#pB)eodWVkk$sQ_myS84_7HiD=BslLEWL{Q^XWJ?dUcTVF|!-H}brTjv0a zMgGB~A)r^-%UPkt;l(xz#sctri7NqW#GPyG2r!!l6ptiOfJU9z3?-&Xd@^sR2C+q* z4CX-I1Nw8{ek`LTDX)1mKIFx8AvUQRq3SjzQdTOC-T3O@ueMIR!S)pN#ELLXD)IN= z@vLHuo0gQo>ugB4cg`pq@<#PEY@xbaNYj{`N_Sc
zl_b&dL+Xn2lNO5N5#HQ6yw>(laXK%?z9uB8rjaGeEt1Xs6d_QXwohF#V-@#rTe$U- z40d{-ct4^a|MB7inG%WDe@L^%R>BA+3L)j}DK0wdj1w3lCID}o9At~3DvL?&G%(E( z-k2}|c820IH;7rt1%OYEH6?TqX$C?+*rrZUVrW$|xAlH9lzdV{SPbNW3IVKZgi;Gx zC%16_Sd5jx`lYLO(oNG~h>wO23%=^G+`>snv(vy+FlCY)!WW4w+zP<&OQ3yr2VxSS z&Pl$JaKIA_rCp_F0%s>F5KeN=ln}m(fF>P^Z3COfHCXWx*=138GDt6%FH{im3dkI& zPa*z*PbgX*x(SUucL{cI8&*-F@&i355NbaL*-=qF?NcD+nwESeIveCSeay zDqXkCn@df>jpI&M4u@i)Blon 8&%35jFg(Yd|XjkL%6WGQA0Lx_*r zxQwvk0Y+376TG#F+(UAg9bGddSA!S7D5O??!#ynL-4qi)*h}+;9i)6c%BHSHNz$|A zu6+HR%#fpouzX}sZnGo9-;ayRx)cn%8)_uk }t2;*Z%1Ho8)6C5;|v36uo zq~E0BQ9gif8=NS{OG#`M=E6Le#7+_-mf?GY=Lkn=JU8cPX9R9_4y-50I-cN-5^XYV z90Ttlnn*lRam@7qQ{r<8a@Rp(x>bfmsVTowROcM6L#(gdizf4wiMh1KKjT5Jer8V< z`0M04GAex%DP?XrD4+?)^9LlF!FUbiK4`(o89iQ^xjy4iKXMC-V9*`Jyq)D4-2>S6 ze1HkUVP5P|t^aAVJoku`zvNe!X^nDWz~ueqxNUA>SCL(-S^H2&0w#R_dK2-V6cm34 zCh@zn#3&cZyz2+%kvm#Qht`)2s`J^^*4Yo7^A$QMZ;w-cT%NAF#OYSqpM)7Ot^eaC z$#m;-^m=!d*g%?2j_U80U^}er>OH|r(d(8?Y;Q-|AqyTqsFjeh6zD4R@+EU(Iun5- zRzgB7J4og)fIDdvKvbZYSVv7o;E=V&RE}5$t*WF4>1>7CqJgr-V(}Ewjs#V3S^<^g z+hd$n=Cw;I#E;WSymZvlS`61jqybDzSzw~5|H@1HkIRO2UTag {WHP_)%0 M6YB_*Xc}*r<-8b?ywp_Y#t@$+1e_@P;cz8urF?MfO47 zQsz4%!kZL+xcQ_s+EYS7;|u+q_h8$SYQG?2g-}rC3iam*-o)S6Y-K{?G|My3K2TA- zOupDk8Ig$RCtVnuiWJ6QOv~n6b+St}WV|otyc4_FmnmEqQR0h }8m08sG-1mt%+53=0^bRPS}4= cZ*GUWS*hdy{_jao?% k~+~2fFO_u9Q>Q5@~Qdy*8K;==4QOk%=CfkcSW?-Ed23_ z#E}+0zd+@*+EO2p>`eimP%3oI-~=MR)R}v$fnd|EXw5gA4p}jTN$d&lMXYiI(y8>^ zsYTR&Qy62SJVFR+cCCJYU^lvZzr2N0_?NYNv(m_%pJAX4Pk=QpTBrmG(!^MAesJRe z@i}3L{CQPBHxp?sagbG^{`b6OjFk=!qe|~W){9JehJcj#5zIM~U*kETLMUC^Q@UpC zku5~w)m-r22N=3&D@#yo2x&_aK6b`VHWojI-CL{0&;bzH0*{=^A|GIn5Nsy08e$PU zw%>3h=|;qS%p&idu@|c+(`+WK6*YJwp;fNJeci-%xK6^O64C{Q)c)6AvLkaU5%x zIF5IpJUPJK(SoijnhVc8F~_O|?F;e;QT&IOBo8;xS9gUh1e(m=GuQEV4l_iegsgKB zl{JwfSg CBM)c)jOjz2-CmG71*kq$EH=OPXX$`k-mOQsgff96ka_1sEQl#zU5p zAro1|fUU59_ma5qQ1lSV=m=C33LdNTo5dq??*%#>`+IHkyxo@k_HSPDc?D>L$Q$ZG z8j>K`pY@eWm!QRBf7aPNUxYCcDM8F?aX(iKp(tw|hxm}|vFoPqt_ZfF6xQYq$pZy8 zS4jOP{85Bb9 ukuoweR8wLVw1+$4Gwiv(pbh^K}3_yR#(NI5p9cn3q;AWJmWTMS<>{*o15To68o zCVPd0)_-&)pO~?TV|-q5Ued=`Iull|9asALIoTY#J}HH?!J4qD7qY;fu?;92@T-HK z+>48Kw?1LSI+l|@FCWKe6@vmjT^+r*Lu5|e@br|ZHG<{$MEGYdL`KnK`{+cqT*`=C zniT@MjI>zVn9m>9`Jgbg@#bUVS!{ z{0o$rtT~GDkuKbkw8|0`eoVF{>iu*qjf8_>fIl6#9ziJ)F$yCu&1zzlCsHL4Tf@;x zXS0)hbZkP+U?{}Qn)-Z+^lAHb8Y!~N-FrD7Xk>HtMfVg_%M+=26@hU6=+AlRQIcG) z3$zsRO9_uk1y}<3X>6AyQQ{`>Q>Vl@qZ0pEu;~c*s(HLetHrE8`bePZxELxc_xipy zwfiW0{(Mal5s`2IYx(7>pk;WFbW7SN?C$_f=`t&^zgUPI>)~J>^WdHRbyC{aW_L_V zeQ4U2C^3@?%g~2r`5^Btc9I5m&rpCP+O?TDrg`5Ff-=J|fkLqBhGKr8&no0q$WDTt z2ySsA%`+PwC|)VByN{pp)dAMhq@}O~s?*p)#48SV6YrCI#jho3;q?@N6HK^=Fm!B_ z3ISK%K~&y*gndNCDhqEDMEG+zOVM#+pkje@4SL82l7X^%1ib#c%@VU)0wPPV9E#e( zP3^>e)mtk{6M?UvOZr+gwsvmBI}!&uGqv9xulYs#mi4A@53eIgpo8yg5y|)+$hZP- z9kRU+K}O@t_~E6pH)jk*ZuOGtS0Q`=kbz!e)GT{u1Z2dKd<4yxYxV#Mh$QcIKj9#_ zJ$|)<1kw8uz}X2VFyt#3cxElxHd6G20N=Zpbby_tBo@D@mu%%2!~|evLV~_Hl2@Ud zrvx7Yfc*v>Z(EC7h63KgH(KOc-#WDsbp?P$8H#z~dL17K#BjZFB!fVr0~Ko5Ui-!# z+OeMWW}@IMSCL%#g=$}F7l}nKXF?LU)d7ji@j!)O;ZJutejYM+iuX2)v3%33_TVKz z`biMA$di1_Js(qW@&oZC=vmjJ(a$YGUEolt?1`-k!47c6#%ah?MFu*m<{_EtHM~?h z*~8IK?A6ivD}|ntpdD)0)eA(rIMmf~&7K&20g$?j62 $xiN*yf0GB z?j^33fv_^<*5@`%qRoRbw%bt1FrHY?v8On<{;(tYA$0hC2>AIJBs`iuJQ~t{-}Hl} z*2)b{SY*q=gSTBNZ&%EDqSGjuEkST9P7eH-?p0+HTt5$4glj5PztBLaS!@)+|I*Qm z62h;@hUK#b%(_Ph;rKcCT@+1Pi8L`pTK7k(V&3`8xA{DhI0}%kH;q?a)X|*L`|8~L z2gVr_A`yQ4@smHaD-sG}z7rd1o*W&=aPkqrXyJ5RF0X|qCPZlSN*%gLSyf9_Zc90Y z!egLri_9O>)|P7fCb=V_d5`+Pe0xL1LE!C3_I!+N!Lg}X24WD4AMO~jg(h2IZzf)Q z^ghJ9`#o8(qv-aD5uI1lI+4T1`w65dG~mpZr1J@0DZ7yOF~gf2g^>L+8DOGA3H&aUUC>*v)yh-nZ3qJv~6%eCHW3Rh87T z+c&(U#PV|XO49b1Gwq3r(SF|BRd(M^5&NpUpKa!ABj+1~c#)et*;%02C=rmQ$X5Tn zL<7@m&KDyXF#@YB*VzkOzEAmp! j-)G&pH@X7p;?-@T5lEbb-|HzzGI}fm#l5_Q jy zJhzHQyI*|ChnrxbYA>}Xx2@{)U@! q-o=Q;hNs9Tb!v)BTk7Zo&>`GROR~XHFbX)`@ ;QW95==kA{`Jq}JAN8^3 zmy?!U)qRt%M52++P2w9*puizYH?v-#0M*fwV&iNo^vTh#S=NyN Q4pV=)~S| zzdMmSqZqoL8aUH6dC3CxV14r#dKXuC X-XK=cJR#nRO0%CX|uv1+J&(xij(q8 zO`WCiZPnQ|p*G986xAshPg>!16Syf#+V`hoD6l+E&s6y*GKo_T$DthsL`F68omNo9 z>fME((tP>l<4eCa1^fEf@b!GPjmJYIVexZ9wq y^8C A|9*C;ams+TWp--Cjg?HD8~c0(gRx{Mf=D@Ku9TdA32m?YC#HH*#n zO=}JLt9suzpawZ(rr3juEe +Mu32LF-KOo~T2DOF-Is=?a!)?5 z!Gb(YI->skC1R#;FmJFNl~!c7I&mIKXHiaIwmx+odn$a-Qb&f*p*tek8OUNIX; a7Q) z>Biy_4eP<3Nudh^WJD!;Suuk-qLE1*z+4ifHb)|Nvkq6LhBybcgc>CeO!{J-0E#)l zL%|1f`^Y?on%pSqts}(8m~B&3X?%vn+)~A;J2~`ZstNms;$8jDv|mT~1;&Y;1O-l_ zoUJrU{EM9ij9 i>EZ7*1Bmxy4l3MNMgEvA4LE=)f|5}B^-oaDWz z-(TDBJ(=7*=QP$|QK5DGIZ6=Ea8L+Z&{=uw$l%x!9;=n(d{MpexPHISC_Ca0t>s-M zWIdtU1)lWR$ol6l4P e_pNj+;XvPLmRh^luE(6)P9o?d z`-IK4y#&sKByJpaBQZaIjV|tMr`PLuKzZ+E{J%bTwnP4S5SU+m0J+;z-7jQ|qI)2d zpwMFNUTWB5w~udiwZX@xwxYS8VDZsfyZAvF4|heIS$ pA+D1m? zsj6%#s|YyZVbp~a(Vns*hdawdD=Ga1Q8i$~{(h+g_#iD}i8IT97f*>=?Wontdn;30 zDg3KE_b1gi73DP<8nX_z6_HmTYHvSe^(i@0c1hxx;zzPa8qugE1)jx6Bvlfgx5k4} znoB!;)YTGRU&g4M;SN 9w +&O)D$qD!ldrq~!54Ko8H$d57uMjgei@r2xtu17NTSkykVkFJFI{3H z$!kYQ0FBbE1=eKdt_1bTXbAS*;n1-KjYX>BQSvr%@ZR+PrE*c%9CdV8o?E|c#;U(r zH{$5*0{@^pkzY4d3mdd`VE&5GmRk^$pR7)*ivYy?PjE2=UqqKmS4mG;-+?l%e_pLU zC6rlpV#g K zd1!mQHaQ`Qt1SDJG$kHQ Nm`R)~med6o;`$g9k}N zaO&~=N4-i3$FIrDqvQGU@#0T)2i-ER?UW7r5~gLd5_TJ&sno8s&<5wwZl0^*NthYN zMx)8AR5an2`B10<2ecOXo?EiLmbFxsy(lP-FHg3IkC)87JE@mVX;eVHW3Qy~Sc5eM z&HR~+8|bt|D44%&07aV8HWm&_E; uMGJzZG;`blM4yLyEXdLrZH%&WwKnbaS+ zX!`LQ!x^?Hc;KqWY-&1(8{YJkI^1iB4)VjOqlj)ynOZ-7YEY?>&l$rIY$hRAf_ =Hf2vm%^otmq>660l5R3=qbDEq5Qs!ik&+ zNB6%9um$m54D}2YS+E@*6VU|B#qoK>#g2f1d$)rw(HGANZB7Lpxx^Nef~Ne>7_^lW zn%cq(^Vzrv@c23pEFK#;=ZPKni+;YcwxWr-BaQ|VJ#!+RKZs)@Hp@Zwo2=DFZ0N)N zfJDzLN$AE5nUbG1Y6ho5=6ARZU%geoH(5;K1;zJZQ_=ji5JTd4z{OJhzCsYIr%Hdc zN$k2!Vu*8^O)(dw&MsVL32Tswq@C}lAM#6(O3SO()5z4s0AKj!Q@Am6Mw;FSb6kpL z+za0V247exv9@6jDH+^*z=stE;c~qj225t~ly5zFh&)XZwpw;(a09MxDx^%H9U*U} ze9Ezy>J6Y5^Qu%jKran#Oi+KV>V0Z|kvKXgTvnTV%GNWU%37T^Jb9r#T#GTMr@Qo@ zT%zTh?2~q^6k;oa*OC0_?GHj$vu${2DPt*}86T_ASUoQFr~fFZ^$B*rFDn<)(kBf{ zVQ}9N9Z}YcCXx9Bd*peg4S{^`KdiiD0>(Ihl3Y+*D+ju~t8&b|7R&Vh<3jL6;zeEP zOE-5_y8E0*pi+|w8X}28PBI?CR3CPy4PjeO^{`M|&Yw9?r)4tY%Q}$srQA~-Mcz@+**Z{mg>FJZ z^qg%ohq;0FG{&MZgAwDWDPi+49c-~p@Cy4|;q;;6x%ia-pAij06+b-qMF^`c`wnE( zi45fM8pf@z%6?Op=@&WRkC1o|n&KIl{jkXNcVT$_FCM;I;VW1J7)Z*M;h0c*me=Fq zt{l7ZX^u!{o9oB0H~lG|SXUO4(r+2`KFN SNIv;8yI)iq*LwB<(Wtrb{f=;T zCgr<)VCN`5FO qe FiBaDa=fqYPKmTeUj{44r?~?? ZKH&F} zkrG*?aKLa3QP>{S)B=ch^~HwaSyrErADZs<3owhT6wAUrGL*BVuWv3Q-OvD}g^*el zB|)hu3l#5N(XBPGveQIkh@_tPPw*@@iX0}|TXC5uiIiq1ux7D$Y=ArqW8?8^{Q%<7 zk)B9LqRuhG=ea=G9&Ob)$QW8>pTumzP#Hb|bG-nNBt_qNG8tL5H=HrkQ^iM;G8-QQ zNf?XpHs3K7qJ}BurHk {CFb+Fpsca`Cc{QZak f+9!HIaQKR9SGH)yEvmTyTB z*pay_#+h?M=!sTv1t=!6*F44~q?xoRg!RmVQ)&D9qo^C91FRg3ELK*a#pPJ4`naIx zc<>$`O`&`#9uUt4EJ$3FfCb#^Wp>m-xd_BEz+?HB$}rgIat>LMYuU{laejGJSrPh( zveWc*K+Y 7Q@AeD_;FEQxDRllLjd#31j zjw|?7RnhkAl9S8wkJ%H2N3@|H+CDmWUg@>L_+u2ZI_ XAtc)q~BF<8L(dmsIdfFu(_BU^{BO zJ#QRaGv1M>@9r1(cjIm1@mpE{Xr`t3;SaD>E6s;{G0<_42~;`iqK~hb<#0TWbx$Fb zw2|)^|1TFl;{eP8idO9JcS5q%tPt9aCq8-uw5yLZF9qLRDf`-CIb8&d{U}qe1t+cL z;`}-6F9CMjSQHviZwJCjHEHLm0&8Up62F0HBw-TOKvzegYji^HcvlL7?@*S|3M%Vb z7(1RalJi`r^npRzAj}F=7P#?_pFOrUj@A=iKxU=$Z6A+hPyMk@;>*?O@g~;bRe4K= zbW%TH?_~mKQtRWTcC$V;hpZd}QI;Re<+ xm8H+(ibhD-wDdv2;Zun<(=WG~ zKRoIq(jR M8Ru2`_FV(Tzbvvp9E{dj@k*IGP8XkIAc=nRtvO%E5!>!GQN8 z+gNoZImcTcTY+%TX2A>JwBkpeO*1C?gF&7ulL3{JB&Iab-bwlfW_A5hl-20^i{VE? zQwXyLuD9sirt&;p7^Z59;YOl{IF4@#{|GWkbuoqM(xLvASTUNWV`6M+t_4dX^hiN{ zC^8Pf7#EHj9^;vNA=1gBfq=D9CKpBmO&B2&9?|#m=NRGA@ELG$Ws$YqO=Kl)p <)Bf<+N`td{}MZwdl8yMFMVUwHV{vc~U&V-ldAYSEu(F@R^0>=@q*jAFHCLn=_3 zl;%<#<6B_0mAw*_5lTGqv;(e%w*{N%I&qy{X47Ii%B>;(l9}JB!jWddiP&t7WHPy4 zdx}~Xw>bc_ZnBh_1Oe=XOyIHO<|-|tvlGj+O7n)Fw^LPVjnt*4G&K7)r6hbYz=vpS zuR?1R LQJ=FI3V`Bi%jS1;jSifg3n*yJmZ$X8zPv!Z)umHs}hTbPCTkjMqh9_hJM1vIR{ zTEt`SRn ^+Fn6gVf$a58Fe@yYDsQ&nzZ3EGo4Tq0y}Bx^GJaFT}7(Pm`E zXIJ{1pb-c_MnQI8Mq1F{YTp{?v;w>A66j(v^&~~k2_s4SoaH*=>dSXZ<6 OK*T#tjE!qyhK>shdF za^}wI=P$XKvfha=;YmUK$psx!^PS$`qzP4TbLrkqVP`gZ=sei~1xBAw3;;GyX)K~< z!sWE-l(OHBTFW5x&Wy|-3YSMl$>YrIf^4xJh&O|yT2_*?B11^3JC{*{Ap1Bq*#BCj z2=OtFU&t=*vNz&*J36^StD~@a6w=0Dc%_JsuiKq5UsmRfTt-xY98nyOJ83~YbH*iu z+jna3^!syKjb74)a5DUN0>F>oRMfPu8J>ICpyV4)TF%5uI7pvREPhAJaCLZ`&NWX_ zB{+oB-+6cWLR6_%+2S6gUcrdk;{l@`f~?L#YsM~Zr?TG+#X(9Ls1G3*&QD?J-Gsxw z!bPr#r>sD?4?$`#;81Q}wWVnAiUZ$@p_h`@GKcmd0C|IJl*1yWI8T;~j*<;qEv<#}LfS)?Ag2Hx7j+?s#B81r{qE-(y5G_Q@F%uYx)t#p z?j9U2WZH-2qm_g09+Qqd^q&w|yQ&(XVI&b= k(_R7 z)ybePSq0&Yg9QkMRykptWRIR@FAfi@JD7&qZV{UGJS2p1@@nO}jasE0nGuc8w8zkf zi=q6hCT^+tqM=GMgYTf}9axoq0#JXRl4
w9idAr4SgH1Siu+fECw$AYclKUPfp9*T6xPAh3#CZO_4F{tT}GWD8kcR zf@lF>JG%rd 3CV}sphr=4mT3eJNHSew_pxlId>ffZf>vAj=OziLp{0qzP*$@ z0Nq6i@6w$ku8<@8Yl5kKD?l&Ei! yf?=Wv`J zR2sYd?_Myb{8$l?jEW>r((obMO^-!9Y9HL2t+@H~i#(?giG%7I(xvIc`Kw+zdyS^_ zx>=v1I|+@WFFbzq_(Q;2rWy=fAOeLk&UpY|@>xLV4Z4FzB1gdDi!v%6&p8LcKohRY z(#ouT+dSVnuIp_(o)32rUw6X)?(n@n@Yy)Huee*N8yk9QJE4#8C1yjX4f`*W3vlGp1J32Ik zK !9xQu|9AHTn4+VMBjuhCAke(=wOPSa_zR-93~ zG}DT!#z2=aGB~gzB9f5F^|9>oU1)VdhbkT#S_E}EyvpX|IJ*O_$bz0Cf2&>2pq-_K z5~=nThq> IsXXM%+ `ZGI*ca((9z z`HoWiUXo4a=>gpC1*&LYd`19HC;fe`^EdJQ)yulz%^tw>ntnxcIy-#ouE(p3+Vg(_ zRo|*8r1`9ijn)^Z?>?IP5Ac;&bUNvh|HoClZn{*@c23^k7TlM4WFc}sEp5K?^egx* z^2(}Y>RQ%CV{Yv74>d!-?6Q-8bF40|`ybs4DAYHO;dH>)hr+es?8~4FsXZ}3^J1zP z{1!?VHIStm(On9d>|gm01J&_HH|&Be^EI^p1PFY1N5f#;A4GiIlO3y2b7Fb9N(C1a z&gzdwEUZB%=q5os+s`#n*TpQZX+&=AE6y}H-*s;NpKYtf>tWpItpnxxHvi$Ps^Q;N z-gJh&eh~TTyXq;_W13c-QhGtRv6Aoi9g|IKr+Qg4j#IFQp-8rfS-@M8I3_GWMCX_! ztui@wc8I2IS--u%7o4TuaPaBu=iq=>_FAW(wmgcnt ^Jm)SntT7GiD=lkFA-|ty{V-L@Ljf#&Cjl@22FTW@dJYMrCwj}!N zKf^zVdmGdDquECP{*=|ct`YUQA9M)_bxrL3n1oI990VYY|9E^OrjaWxucx%N3*%@a zVLiAkiIhWJHZGS-@bbh82i6yKX2Y2({RrcSOhB1fNhm+lJ!QY~wDd+nuurmd5fP>* zQ*17JUgqj 7R8{)C`ddnX-ZBBol52x8A9Y&DriV&g|2xHRr>D_vyeE;b$ zoA-^4RU!7+0{{JxE6U7Y${m(dZ}_i}qu!`=&3au>?Ox~;Y-u7bo42&{;>0#O-&EzX zI#kRrg!gVd`mOe4cl5OC!+xQ~um>2`lV82A?f!Osq}+Pi^DbL772n6LY!LiZ&2tw& zfPB3F`Ke-`NMkAaF9hwF1Dq`zHhIq@66_Kxw|AOQ_GCAZt#YuFA$Dej;2l;5&7Wjs z2|mHUGW`AL#6 4J^j)ZdCKGOfsi3( z;+~76cjT;)?`4E}d4ynlqGj~W&kD!id320Sw>>u;90_{6O&X8+EUvkdDRxPBHB0Ns zRel>3g#tui$N&HYugWjRTDAS+E^FqG(3*>xB5}7-)a)froaF#1(NBHT*X*y*$lUT8 zjLFiRvzzjDQP^4i^=SqhU@P(D`jKbj{%P=wG1-XKUtchTMZ-EP71Am(IvKzM?OXXe zAK!sE{>`y+u3t9#^|4v<^@OUTUpnOGK9fuOq5(f+imjsew09=ZmLpAm% %$ zvDEG3<63il5AH^h^`$C! -y2kbQ|s>DuKJcUwnPSVt*nn%|Iqb zd`iIt=?{Pd3;WUU1V#|^1O%)qjrzEkN9TxWaZ!(3qPI?aj6QrOtI?k0u)VMf*~3F* znDAgaSZI^Ld4h}smUn ^@W=W@0R*cWxLZ{wkvHq0;0)@dd$Hl4B zhl9C3r}NfVKtwh|(6&PvWv!`j)Jt_UHo;A!NTX4je^KDs<@{HwHmOqhbj2}04dq;R z8%RKOB1_qg2s%;<33577 bzmzBpED;TmLT_j6!kTn3Ar;9V9ry|J{ZRTXCLH02Cva z7(y#pPL(Z Kjc2{fE!OW^?78p&T<|$?~_z85tNpd^Twk?gXrLs5INj~iU zXoWi 5GSYjvV7%hu)xYsE{9{v+8e)Fb&hSMyPNC zFTYUJyopR=Y`#x+S|SDr!;yjcWQIR~StLyEsd|14cFpDE5ndWvc{)nFCip#wLuH;c zckUlh=++>I(i6txW7)T!oF)w7X}~=57P^A^e3}BOi^p{d*SM FA47stbt(;5$2 zEsQj-mcU!SbJxYHZc-%1$XOhCD%`LKAlP;kNCI$c^H @lb5tPwQd;}T_%~% zj5M&%asNlnWqnwoT+!y#v1_jsvkH)y(1rFq=i_ya5Y1k}(6ktlypbwWuTBGos*g+X zlI@uI7N23AG{4ZJoFW!45%@sZAv`irD*78=TxRwdN%q{6wPWm_)YYa8UI4i=fB+B~ zVPx
EeTvRi5Du`_^^Ya(wVO zR-f27BQJGW0DQ`-U*sj-;y~e35feKh#%vp$x^vH)Y9(FpBX|(sv{7KtVD^d=&Z(K~ z2am?$`8RrrCnBQZ?vQ@56@{}w3j_z!YMNmC#$CS #$n0^|W0LtBd&>Vo^!|Oj&;E b`WP)*;W{QGWHUD6^?11>rWvQhBi3Fs4 zGDvCWhStsv0-d2&)UQ)vV(|y8 Go kB&6%%`(buNW13(+T`(5Nr#IinG2_JDa#L>`lrg`oKxN3_B{cE{r4+9! zRM#nDz|+=OZO}KKn1lGJ4Ap8>L@fZ 1$Ri*DiG86~&{5veD} zYMcR1_Xio~6ap4?Q#s#~+YZEG4zip%WmO24&*u#PNS4YU*5gRuruv_#18e9CdTI!1 zb-tlur623w4mu+j99-{uC<(BU22qY8i!;)IyQ+ifzrPG{2lXQ^67Y5Dnxt!n zxgfq>v@6KeGEo%PLriU7Zx-+8((~f(os+4yT&Z2$R$bN42fwSO9HaH)sx9N|z)DL+ zc7Pzc5r)6BDPIrMX=~%|XWUm^S-s@6OCOk0GuftA{Rh> P;M5en~&{viBvxnT3=$MSZWdKq`qLR$@{$08?fW55C{m33ecGn*9{hc zXlFr$9HnARBou;9T1dWkbv!WeMZbk`?SIf&V#W^?ky_`#o~C0N%!u>-uV*I_)j-!T zX@wL3o+O{JyRMs@mLWvdtOF;-c`1aNZpsuXqHmFl {0epeS>t~|d2}9ycH@Cc(5bnQ+goShbb 3{<+VZD2WInOG_}8uJH 19Oyl zH}8oy>>qB8KZCS~g`EOA^Wno!=!R#BMoOy5eMh_I+z8oseWP;Vhl&4`*VH_s|GofL zU- paTu zgRzGyZa7ss3=ed#NsWr(?FNMGfF>8WtGDPQAbuEE^Nn$VT6;%a<0kz {ipWoh@oy z>!qQ4C8??j`H>xo1DpiqH&X9jON1@@D=$TTTGDn~rhPiYitPQO`si1rDM(HI0a2od zC;{IA$aAe;y|SvW2G(f {dD-va2 ~HSBY%!V?tNt84b;2(=0#v5 z(0YqwfFc84g(k-qi4 turdx )n~F z{c;)Vb8h7_z6`0(Wyv}-xI*T90XSa!%6@A ^|kh5jY(DUwX-ZpY9uSO#eK^X3>GpgbaWybXwMW5SwTT>qx4*Evz_iO1@? zy0vg0QJ`IG@Vi`T!Tt=v#~C+fkLkpiY#lR69)BzP_MFjab_wRnu)qvcVu>o&pjnls z9lKY`m9r=`BIN&eEnR=#)~?0sEfbwV#a=bVt3c(xR|(g#RK3y4MP#e# x+YVF;Q_cZO2vdPM39(vwqZJN(560FnpSbN&-NI zAXo{+Kqx{_;`&DSUQX_5FT}Y$JW`3?w8fd8Ft|Ca|F#l`($qA?-2or>xEgy2+#U*+ z>GC0b#{n$)f8?hh)#G=!2v{`#o{cH4GW~dGzF+e)p|D@os{MiHcUuGPycp1Qg04() zzY@J?Kcw3z>kRKfwRQ|x?;_YHwm+`Pj9Uh@i(?-@k?MOQf*FizmIY54 a@^Av98Sj&&RZiM$%<0GvXUa3YxO8S@7**Xw z@6^f-DUQkEDSoB4o40#~)RM0eo}FFnTGr7`mmj$kGQ*TEPUpUut`4c%S4o?#Oy~Yt zJ&m}Ua6Ro}6j1Yzr_@Bxn~P$abtn2-JN_m2{qR#!iU^sZ_3K0GwPr&&`ARAOJe!gp zH@uIQiTDLsUc3@{`XR!!#Jya2$As@wimom@y?dqTjgfl4XZr5briA9c?i*C?7O-02 zStR^=rdZvBdqOHLU>#kZzRVbS4|A&66jA`zTsrw^KfX02Zq?$^&1i$+q(3ywskIme zS3XcWqF88w3Ry?y;#4?~w+xA8ejm%e>c)x7D0p+8C_@J+$@E!6K)8lky>_A;Jx$5Z zWVhwI*jV @VC$>$?al!*4$ju-(Uz^9@j%09&wX-a?xPikXQC1mSBTyqmF$ugBt*G z6(Hs8KAgd&jF=>^r%#688GYF>N~JvEXEDGs6kt3P;{t@s5P-T=flcHK_pY!@nXuFI zNo9cjHPZHwniHXgY8A1~+iGQX`C$0o+3M*Z7lsh2mv2{>oT|l?M|i_y*tQ1j+>rkc zOgVmSSo}o}{MaxaNOAjT3?&RG@U8h0(>aktgm%;*B15O@j+h&WV~}41^}S(phisnD z6@)k2-KE2Gk&53(6dvGAt{wLqD%C3qw!aSjA2;>?A2)S*i`L%{!fK1>$hkf$4Lx<& zvDTtYzbwqP*}Xk@_E8x--2J}qkyZC(d4y-j*~xm>PiV-!oa1E*?P(@V4wP(#2URh> zpo;(r_ 2 z#Q^i!k(eAJ5fe;K5tr!t@4+d@d# dz})LMv`eyOt(!I$AfBd#bu>-@Q9a!sS|c>9Sp zxC<%6rZcKzyHwm|(p)5RX3`ROCv05*YoPQi!xN)Zj_XpN_g|R!>GL@e3{_`mPC41T zx^l{QeY3DV7%T3vxAvKx<0Z=Okw5}ZXJ7kL5pMH-vteCRwn59gZN@o~+Dz}~OJ(hv zHLY`R!rNbdcMtG27kc4&KCoLIZ4~2rdOk&A1#B0ZA%t@}-+Hig{$uOww- IN;=nZbs9uwFE8z}0_)DF$uJ7?grn37U01cm=hd~toM>?naq_L)al4iUB67;pNa zgUi7KXSSZ0iJk~}&=A>~C3a@$^@r=R<02LpEBj8&MVCqB+BQeU^b0teIqlI-n(fMz zDC*|nkkMn@^8Dw@O#Rw!7ykoWp9e3d3EX=wx0qLD{b?n~z9 6 zNZs=K$zPe1%jv9|Zg 89k+aqDsX!)O?8%YT*1@e?k#_P~vCsFIY~i aM>H z591@+C6q*#*ep2-51I;7=;g3AB)t5@38y#X&}cNoqt7$wH#CoOYxiIw+IN1qEZ4xZ z(^vG7(wMm f&AjAjtE3{a>J`iz!Vu-Ebh>^>fcOfFrrooG@TmBt^Jyn@J&-?L z-(!us#2V6hHc8|PLuwx>{Qgw|yN ;}faStr|*W2IN`n 9 z3}mB9t}pNN3*@Ytt%ShHCtYA4MrsjZ`TYWD7Ka{f(%k(H5=KhyGtNbopw6!#FY7M; zyg@fYN8pf26ceq#nQ8KEE4&ehoKik%BdSX)$cSVUTNM8-)tOq}Q-DcZyO2T`A-iit z?oH!)(umJK{l k#X7$VdbIT3*na}74Us~g;o`fAel)FbK)lAu9kRq$O0m%X z;|CL-8ZmwnlV#w6zGcm<(Hi1|M`rX3yiu_teC5`?5ZuXm7H`A$vNBAEbl&(mCU1ul zan%u@sowl3YxE!I*p7Nw#h^jG{roSrYjS4LQw{x+`oE_0hZt>Cu6|Q3v!a?CM5s vnMd)jnAm vvM=3M9BFQ#lV;#~Ek>6G*< z (jzq*s3O_8E0G4+Ha9>-vdzo+WR~5k=6+t75gk$#3iUKGZ_=JF~w3 zdd)PtVb)yk`|Y-?+s@s{;EdZMYb5hy_|Hvt4Is8)Jz+@5G}2l@_coP*H9O|UBt$|g zj=LK}aZ6ZOOB{F^xty`xfPn zc;oQWe6|upA6%T$DuHXI27-xC%-egdmM-y3&EJyOcjUrcSvxx-ZlPb{1UgleE(TPy zIw!NbBZlo4AB)KzOsm~bUg6!M2$JPL-ja?oWB#xsijFWv%%CX{q!2Gopa>^EMjXPL zz2D1y|J{a!g&y_qh5m#o2C7N4)P7*w5Cr#!5O@$r@F%gDTHYl(@7qv`f%Uxnqo^CE zkZ7*J+()q` 6NS0Ys0e6b@)y<=V8oRK@DrzSbm6|nNb&h+3CqYq6$t1tKM4b>JnXo5 zgC7if3mG7firxCs3Ctt0KzjtSv6Y`yJ8+p@Aq7^x5sR0`#0XKbBnm3+tne2TpBQ3% zCnto&oEFV~EgF(&wOdOdgS#oB8Zls$oL{Lw;~4@sp(w6hTMt>S>0vAq&>6VCKm_ z1iH}k6-+J*8U?_xr+^~=fRG~Uc`1hT5D`rxGe(GlQmlM!EQ;ob;bI!Qd^#Kh3aPP> zPin=wxY;x!`|uUJYUl9AE)?nyCKD59ny>^pP#R7Gi^AD$&b(3Nt)+i%p*}d40dBOr ze}>2Ea3deDVHQO}a8XhJ$QT=vq640z_6o008+RpByo!i}_`?!cFm^=QC^AnWQIzb* z@vIo6flGW;IBdZOG3djHhWxoVi5^=K6RNEj^2c;<%4DW}k|N05Qj~6dpwzmj)UKi2 z6{p<$K>6vOGE+lkFiz$91C^J1Dw9{0m8W 1Ie7QKXD+L5>|4=OS+XBd?p)lIK|{1AgJn;{y6uQM^ 5& z`*8wBWLN`EB4Rs{+;WV^KlsZej-Dkp1{74IV@X)l6TfoQ>N&V`AdQ g0^e8-H>ANzBr|{fef; z`+a+@G4VH7x<)4^RW>e7#5CknMZH%nIlf_yDELnkc)n9y$Jgry@)6so625$exA>(* z9fwD>8zM?Y4NuADuguipFfKR&kRNP}gJVBiY!85c)UkEuo1_UIWQUXJ!NEs^aAp}g z2y5cw0)|GDRmpLFN&=q?F0owT)eSPAOsDmEzZ#g6XyYWN<%9&=#SiQpc2evX&YV+} z0u m!Xc2GrM z5i#*DOJ>xn?H?pRK{KYLsg;;E+S|`x#uaZSnak176r}-$3|3H22){E*5C%Zus!|7) zj`I;}cvk^lVQTWwmC|vo0g4uXQCV_E{3nN4@j0ACSfa$O!sDA!XPu~LFLs}$em|S3 z9g>q6QqUbz{5_;hJG3$}w5B_>_Iv0Z?Xbqgu-5Ld_U~a`+Tl4uf)y)57;XE(Ij2Ah zDq +x}$i;8-#^!dL)aNY#N5n_&xJVM>7KzRC4a?iHzhqk}df?>Fd6V~( z0(8^484S@pc${oEKZcW_eHNpy2ppXIM{;%jL<#dsh<10{_%3xP?m&^!!7ym1MkGqO z=tu;g)w*7UDD+DtAosKHdNvAp1+et*c6mLG4OA7_r@a)b0vcu9;>@L(HR2Y^TXR84 zK5OULZv^kYEfZhu;@(KG1MHu tCQJTA7kR?a)snlXn~R{}WJ>z{ zY#(r_gOaL%i}MAd{u&A_yZK=EIGvfqKuz@(6!Je@&|SU+*QA7RACP@QuR;Vw$SV M7qmYc9b$wUjv%8zbN>KMy_}KRPjCtVO zGzVWjs_%4#!GL?r+*J#7gGi?XWqcEqon!j$wW*}rrNIauGh%;~ZL--|ib%E?VfF_Z z7YM8f%sZ%+s$GUx{O(*SSlh>Jf0YBh6ktn{18nqYezze~J=8|M>mM`Y_T#I<)1uO) zv){$we;);3=*IB)!|GYBuq!!!t56lK+~zfKLvq~69Zlga-UwXc%&3dw$Gq54ghxWY zu}&FrHQ)57tj$CBX`=pQlD`oP{3ZO{!3MWYEEpbjWg3{2aLtR2`9>mxZ3JNRSY$FT z(GCaaHh- p1xZX4VxH$kTe{9+&$|Q=u(y1b zdAb$|EemDuQtrjlt{1FLstsqcW2N{rDlBs_P68zw3v>}Fq{g+w;-Bl>8UjY27cgmR z#obsGi1?N_m`6?!W55~hQljP4k@FnWhyb}yR>Z$PG JA^CzsUjH-idR#eL`KhyLl9a`RNOm {|iJ;gBT8-dSPq?zU=zC|3BsT?qs%KI7=1EzK;^E8B z{(rz~KQY-1e>&N)xK@h%7nAno8TU7_f2qUlSaCBq*)MA1G(Udrl`rHhg>Ma1Gu)6Y zRHy+cTD6eG78UPNOx2Szc+>dTTV+YEE<}lO{{Gs%5c0~RyWi&?rjYl_A~)`?=I0q2 zj{hG+NM%~o;Xw`G$y $M{hgnY{daS}7pAAlTYikht;Nq*O|VniKPF$Qrrf9mN6vXIXt zgo QKDSqpe6%Kh^qRBQd$WJ)eGLVXhll}qBs*#6=?0VpkAhwv)y@NoviKdGN^-uTI z-+A7 f!E3a@*IW#kLWCkZ$gAh7HW@NG_q-8cF# zr^!sbKLf3uC3yd(coEJgXI#isK6*%yZg`E8czr|lL>#;5gXj!nixQmPAuU85^7D YJ4K5r-2xvA;)SBgq8vYXCxaW$?65@`B;-(s1s8Iioj;6U*@5d># zO1B+OXlrDY&uhIB%DpEm7u) d)=r&ziVr@<@DowUZC Z z_~l4U`uiWkAo=UDGhBwnu+uJWEv-%}S3iu|FXU#>H*)x-QJNv+k1ixZ3q+ghh0Z%o z2N%3)Bd8~j>Q3iZ-K{6`rT8b_5Pe{$Q}m;!m|J5b)D)q4FInBkJc?yfp!M-{AKT)B zQ5lO{>t%H@mbAbDej6}sM_qE!=;6B&B>GQ1Uu)B;!&c&^lT5$VSVO}*$)*OKL4;0^ ze}Ssb2!k$ !Ie%0ddyhO;Mbt%IG1nT5I*^L*g6#=)sdZHFi5h@ z-Q3;FqTI?rgXQfmZTKXY6j_eo5nkW|B}drs2FXU<{0M;_EKIwO@#Thu`xS5mIZAs< z7rU$fags?Huh<)?RiMvfQ>J#Dht1H-_)Mj#1_gv#0y=awk3B+3BWRHD*19VdRyCC$ zmse>GF3%~s#rNcFBHD+JiFrqK;9f*@j2rPpc1}6iMurWD2(P-xDkQNL!r2MGUp+Lq z*c{ONfyVVoC}BpOBhmO{g(}H#K-5CQYpALeex~IJ+$&IcKB1#})Hz@U&N5L>^OZbm zt~;>ILU|zJ@BvMQi-Q~m==6&x8}v0`y8?%Px?e`;-~YjYRz1>anD>vCy+DmAI)-zP2kh` zw*FPX+nCR^ci}BXVi2vej<{gB?0sL1gc&QFv42;P^!BOZ$(Fa5*ob6S8q%RB{PnSi zv)wOT7t`Syc0RLL6w^N+u5+E_)$1@eGAdoa8yWR8>_$@Ix6pzs-fZ143r?8phiB?F zDeaDuOK(0Zog6=Zv4Y3kTLS#pFIRhw1YUjoc=*W7KPox+V{hCTd2xTrkv+R|@A{zX z!JFt;h7X!g&g!?fC0$wEPP DaB_LR=gy;rXyzU{xea{1q{uhEgQ+2MD3 zCU&DKkb!qUGOlXw`rV;4s{68RC_LxpmBg2dX!5*$40sqy>-!>|)0nFd_4Z{-&Wjsd zj@f mn zyrX)#lIZ$?zhXe;gDALBRaW#|<#fNSWBh{r8MVo47BZltpYJ7|i^#PQQK0qTPkXb3 zZ^|rjd0=L*WpLBE8g(-{XWi%H$x^Q>(Nwvcb)jZqLX*`atMZQBA01~(PgG~X8r-0w zW3Kh5ZonfI*h|k1g7o8Woxi iJvHI!W`Z6T(rq+w#oN>i92;vu zxp!238dt+sJc? zdL? htb6MoLwpdFm6dQu~{IYOxe?avM z*OinZbJ3*U``p{~x(07aQK3vTED^U&MW#-y9ou2|42gN5mKI&QQQK{n$D?fdUTv8? zJ{mm>i%}-QxWJDW%CZbgnPB@z^$+|Nh7D7QAY6nwm-c3K;wNRKeKz*V8!@$WlJFJ( z&ssM81#Ou=Yu bmOSb6zENXpy+Q0=xC`^8G3q%wTqo6FhO^Hm3Ktb^d>q>rw)^7Y4n1 zPKP{&Y$&Gt%!i!f1o1Vj84x3*7HhDI;}+mL|3YR^Rrl@&i|5n%SG|>Zr(dHRgllsB zu>2^vp-Nx)6aXxRX9^yY3X(^pg@i+P*)B1pG{KOvj?>&AZVh`70u7STQByUyB7jid z05C6ug8at}^$=h}W#||f>Ein75&&1%_*Ssqr!-VH7UI4+WY}P!<#^U>y8c5Bf C0fXY0V|6+dT9S>Tut z3`i>Fa0syi5*?}HS`1_=ycOSwx~j=Z0c7HCk+Z$frb09_k$3&CPRfr9yZIXuaU7m2 zL$;UHl>?X0afWZAVcr>#clD@yZHN??09fdi1SgVMUdqVYvFCJPp0qo}zh~{(k2cPe zDY1plJj9mwPqQw5J|ajhPe#~nCv~@p7v4Nx6aKk;QhPfV;Wv~1z56SKhrE3Lw&dec zgB2z^n_0O2u3utw9)!#$rP<7^J;QENwLDq0a{y!5efiw^JaxqS>q}xe9&K9GB5)`6 z@*&~E&JK@d4EvIX97HN6=~I0Y5es@wMzV@{4hWR*JG`xUaGQ`}uFiSM`RJcCLu-z- zk{{6(!ZH3pEkASsN232M%gHMi_-&SVw+-RmW`AnMvmNENjYr4{AwSbEoWOD}#_(Et zq)!vTdR*bk_^|y6-pL|(V5WaN<4Dp1o(E*^0eCwPf_F$ W=Q#zbmCQRDgNXjlTiQlyT%*d4 L }y+A?+%!VC0j9l=PAfl0=F?Gb`=|n-2m&O zI3 zuZ0OTA&yRxHi^5Vj zhB&`akh3UGO%^DXQSctcsf2~dp?EG-!20ANdU(Vxomb#TmJu*G+KtDF4D#QBUrmGo zhrpo|h`k9!Dj9U#{b<8Wjky@#ox`h3 PP}%$m~kWLScMEg;ATmCWW@p7E{o8@k(QmF`4eP z1C5U1jH8tA0AP|Rh!F!cNI-reamf-ucPZ3Tma=*5Wd#a2FdO+I=Cs@dC6fR=lDA+` z99tA*Co3!A`&DLR0G}0d8N~swDx%BshPF{(HRi%HYfgoE&+6gKtnUcb*NBvzSLi&C zGlNL7vOiBC9s#(1j0m2s7bKEEG;H~fXUy&T@&_NlxT2eHM>5I=Ip5QxcCoy(JMjA` z&XBCk*D=UfF+iIz5S^>`PSWM2v-X-;XkQUxlYZ0^;r%?p`*o)_-V#&_K<-cQ+#4!T zq80g;U)gwnKI=U4MH`S<#LgmdHN4n?cPW*1Qh?9&>S`JS`LdA(kL)pRXY54-NnW~> zm3N+xlH9fwJepd@y6!j*);wLWamny{K)+hb2$7u?3>&>6!>Zo{+$FLy_7@^lIIjJA ze)HpO;q3{8LL&J9z?*>rQ9~PEQGgbdtbEbhE22{NIf!QY;_@cmT~;l=_VgkOxs2za zV9WlCx$dTi_D?z^<4Vr{*wj`9BPJsuRu?#-b&p`xPxPz*G=ZyhTh6emU!}La+IsL} zpv54z=6JaGBurdf+sqec(%_E#g5?&YxcN+;&wlO6`c=QH7Z8^l&|~hb&j8KFAd^S! ztA#+JZCtnMJZI+F1>2j2hm?lg(ffs471|Uqs}8I%!L!r_&jD~zcAz288*|mGTTx!6 zc%B~ H6vWFyl_K+=9GiETh zEXht|--T4#$G)T*Qla!6QXzyCm71U5zxUqf{&AmkpL5Q8-p~8q6M5FEhit0@q@^)~ zzoY~C$?=vZJq4=Q_nBR`Dxkrn`zc3_$|W9v*Ez?lRRvzyGEe9~xTV|i%BADvvLh@B z81q^9%`RB${KX77Q-rJ7$&I_S5iGiee2wvujw{n81EY<36qq1WCP?WAa)O*=oLIce z {Y)g=ZN?i2?jY O|mx7=5gyE}fjvj3F5V|$CE zp`$+M>d3%QH7=!MR5bgLU514){j6;H#-pI~FyuO#? $n dPI8t*fW; zsK;mD)sDh-07F6)*LODa6;%jaSF^PWYVLLS_7?YU$?GvWW~%ysXCbo`)BkuZXCL^E zO{dMChy|B#aR;eza*j>Rp=b2ME$d5;Ua+fo~XV(n3FaH;3Z}CI@OZ-3EUyps$7kvLlSXlXh9;hb>+d&>k zK{d3%r{f$r?3n4 @jL?l1Hxe1abqc1kbmPJOM z`P4R-4{rJg4l`tvNnet#Z79*c%w7BM2Hd>lboM1_BK?3cvGU%zhMZ@%uKJ}y?d|49 zq _wCwv{bt1ity+G9SMm3UChPO&(OV*`-=O~mZhUyeZ2dNK zapS%HwnXoS@JsuYYZ8Ah2a_W$o`i_6KKV+hAs=Xjef#&V`^}|5w{I`epx@%#@~6&Y z|J!<3wBxDZW^Tgc$jCXf*rAyBT=nHvu-o}WdinzXzP6^BVBYpgj>FXhd& xe^owb`nv39Q)h<%xs4?-xve zI#J3KI1@5rWo1`s9Jkqy89I-qTIH0Y`-vF^CFW^r!b{f`EgFb)wD#Ccs51jx=Y7NW z$Li_aBVKbv;G1=i-jLUwf$!dIoau{>`@gA_Ya;W|R2ruI_S-oo1 `%p1LaVbKEe;Sl{oo9h)~S`h&X9Uhy(0xD67QnPijLBa;*0z(JoyT~`i z30X(l-tApr_owkGdV9&9eV8S;_9^WBuZt^Fi{jEPUCYPs=QO~tg bK<5(R%uwfg~*v$N5eJrpoYeVw_e-B@$i{w ztgIV*uqw%K3afh4&L+J&aar5KJde&|izd%r%8-g*!==MN&B)f$yw;*Kr0_(ee1r&q zl2N7G6abg>TgKw((!Z3x*y+8ZDT?zq&L3_R_IAIY!h?lfIs|X0*bEZ{U1J^Te!Uvq z>+XJfM k OUl45oId?s8vd23gQWv+fB!8_@zdN)gG&vVNA${(JoDO#sse24hos%9rDuGSSQ zTy#eXf%Qv1EqgOO*vKW;M*qjnhRRQa`Fb&9EJl`C@eOO)aGrssIh{v~=6{v=zexMQ z-6jG8u9j=gbqXo?rRxo47E1?OG`m6Y`IQZ(B>ecumrxU_^U&W(*Xpn2M=kD+jjUtQU4hM(K5?u}{=)Oe> cGf;=_Pt(4t)ejMk**CqW>J>ccC#=^8 zk}Rj{+e8n1)T)ZTWoJlOrsS;jr@gugIAF+HXIe`IFJ8Z(B3RhiREW^2V`hgh6PnOM zMy?bZ!n+_t%3RhbajtW8CqMG%yM$vKJ;tVgF8}^Inz=!J-{|P{hf`MZw}nRLxle}~ zF{63>0IASX|6-nHbZ$&INkG@fhe#)bjO9Oyvzb voF&UUJ`00i+@_6NSfYB{<~SR+*o<>STjEav5JYoosx8Ao zP(L`A-^M0Kk3E93oQ9e|(9TZmszYPRg8a4Cd`ZDX$cd?bXefa%vC IvH?R}~(a#jw z0s6ilG<(}O;KUGsh>j5?cl)eWzZLMr1=}HX69 wGl9#X=o9W+4(#a6#Gque8`bY13!Y+wQO 2p zs@!m$I0G=OyHYSc20V#*hFw!>>OX;N&VU@Y1K+dvoepf)71P6i*3X~0=Iu}`Lc9%E zvdMRGpJSF=&SbgYn7iiZ01|o@3^%JKIO7hmr5g@xCocxKp4&k1rrp@YQWUS#UmuA* zcPp+PWix#pOYlHG+|-B*VkXwx%?14`{W`&MGRW qUQ3y2aWCm!(X#mQWRI$9 zu?Tnl`$o9FF;&T(qc5?3BsDn`aqb7&h&N@60y{*A;g!TQ3>H(Zj+L93QtDfjAET+o zq9R{}LTez_l3H3>Hx&jTCyf0~8wn_fQ&g$VOiSJzeLwS}L`TJI(QRjWK8hGF58rCM zQyZj~FMj*e$mX-?`A9NF)xl5XPV=yugKeJ6`VBv2K@hKk07L)-lHM_bLW@&VcY};c z7AykdLCTCbtpDbZU~5C#Hqv%$5h>dRygizocb>sSRN9Xit%iRIdy(}{22FL#G|O%_ z`3aVMg;$>(9v47Rr8jNj0<&`%G6DWo$Cv=@-7@Yg<$yC09n0$97O%+!alLN68%_$l z98+{g?+pi47B_J=vhEB=?kyy&-a2GSYVWLr;B0<|S-NuGU4@D ;RQ3FwS^)fE }9;Ynv+UGzw$&oID30+PR6>2+o z< q9Mn%Vnq|pWBWhP}ychAOpefpJy&N+*)Qb|spy7FB6FBn>cA2plzCB8lF ze HY*!p;d6{*tr-WN=QL3_2H2+^C1C>G=}89*p_P2oGysJ?vFPJA0!Z% zGzYw4C21mxDdt;`P !ou5pT*Yyd@?C5A6DdhFbO zH3{y3X>M7eD34V~qT!d6V8Tq|540+{E#1*(#4#Ugvz}%={q&vAU Ju?fCxj6=OT@#7r7{QeV;e09fGzUA!nDO#Z`j1lLhA}+Z z0nYfXBFIWhW)=T%E;(GRByFh(Ye8c10`W!}7s+tFEU1WkmSmSov;#a*>y%!Mv@GFB z#9A?@J;U1vlSGt*1j3Wi;+Fu>`_6e4NQES3-(CP++Y6Rrl;Pxs f-2#Q_)J73V;4E}a$TFgC{K$upNa`SslS2%)L zS91%DpeuiBE+=(-3zuotqR6np4h+b`aUE?s==S$A$u2h%z9-C1QZ9<38Z1ug1IcU+ zsUlv=0i;gt4h>|!RdoPCe1Rj5ZLtqQg7_@yWy3o `Sls+m74U05$AnRM;qtoy6VWVD9ZHN$iP>9g>Mtn-l}Rzw@C8)o^>nD z^++>v<4<-fdpt+w1iQUTa+Az<+oO~U?*pFaH`1r-G8v6C zdjzytz|(LN(HK^GJOC3mWK}8UHK30u7p4cOdzHTSkof4q)$8 $9*vV`C(buFgsSi((sR2D1AxwZ=pH~*S+5+R`=R-l)-6?VP-rTTd zpM1Z0c6y1^aNpFz`X jZ9n$tooscEo^u^v9Uxm#HxoSVvE6qoq_(jM1_2w`375J%(jH>YZ>ulas z)9^Q0Uc!hhX(}wWh2N6?fm{_P_)U39OdZDYOYNs+Yg_prd-Lc4p8s|?`&c|l-+)`w zO+qW4WW;$QC7}dF<0)oW5HqeX(X0Gu08sq_-SkSfxkiA4NQEwMAlNjZ%Vt?A-aooB zONP~@nnMt`0sAJVJ8uEOAp)}4>IvhjsY?anN$G(~ke2Rc8oF8xk^A3%fRp# XaD%ym^nf^2}HRG%+WUSS#shfdtZ8Q)kaq6Uto zyYB;ictV~%&(-z_6_E#e%%%@NgT*PsBrv7dBUf)+5f=C AIz V75?;+=uL7&ExsyYPUrmxomytZNq%WTPV+iy zkSuJ3_@r^V)@XCy;IkP0SZsfn|A&YPqwtZ=Z;`0w7&|=Y&NtzU;Z@}Du7dF7ZXn8* z=3)aqo)4DT%A5Qr27XIZW>Z#&DTl$FC-GZybe&fsNMiua5J2Ni0Dt++FHj1?_iZ@> zXu1f>;~&7o>v}#ELktv>V10{4smrJA=?HBjD7s2CFdSmIBHy|~(c9W`!_g)3sYes3 z2+dSd{gy5OBK{Vlc+Mv{JJo`*4Kd86uqb?a(JH5)_)^eu5rj8n`zRn9zXc){P)&nx zXqP~AU!uJawv5K0vB%Sl5~=#9z)A_I-=8lK;d#Rvu|nU!RdN7ZxA>!yrnbGu2p0&V zfoSmji)=-UIxjkCZc9w26zDNVaGQX607e){afWlrAh#i^0~VLrlDLxYY$Fv=4oj>^ zyGtyLRHDTX6n&Lz!yEv`XIp;^W+b9BJokYYTZbCg($HF ?abG5OR@?RQdd?;Q+1i242t*8sgDE_-POrpX3!7bPUIpm*D?!;YsdtK17` z#fJm5jg%>e)X5&>>D^X%Al?N8hSyqWM2- KvIz3GbPMd}mo%Pj3}aIp5*cpO zz0Zz-1n7tDFB!?DDoq-y+FdGfHfc(;sg4dACvqg^4#xruaxx#{`REd5pX>=}_TEax zZUJ30L;B`zl1gFbiK&L}=^<@UXZ7)3jvPYiVn%X4V| zXzU7Pvb$Pimh0Z>2S>wNzEIb!`Y`Z)6uxo%;CBcwQGF%*B{2g!l?*8 zgK~LS@z=cPRQL(0Xx!4E^}WQM>V@roMb9A@jikg?NTK_q`1>lyr)Rj(1y`-|WKXun zD!*#9uPTlT UPWTd25{N+fMJNsXVIjYI8k7FKbV>#jC%&8#%rtzgutpR-iU@ zA+aq%^S>uoI3QlNS+)Obw5I9;E2xG36X5RguZcb9#Nx`k3ka8P&lf2Grs_(NRHTH$ z{!A;BKK!)SJ#&^0YJID!ZA^o3#>FixCF6H#nPUVnNwegR4MKaGL_-K-suwFp9LA=& z2R5q&sY@d{Vz;f&hU|Y7e;l9UzK`HUXn*CRJEd?HjJw+;A{O)1As%0!iLs;F{^^ zr=Ks6ThSbzo4x8| @b^W>R_Vd&KT_%gi z4I(ki*z~)Om9l6h8T2-Y@8uYkSEj;`>r_jJTkxRpJJzdQoS(%a2!=^P4<5gn)|iRl z8P~GZ7^mx0 `WY7LLNlqbK)GXv$874o!cg*Si?`7vwfbpiMGmsS zsmjmkM)NbxLCM>bx`()G<&0mTsJH(2_qSgj`#P-XXRkcsUX}`qXsjtavVj>fcOktz zy5dupqtU|Yqm(v1kZS31BNX|JH8&X46LBl;S(R4^7)Ma-)Qs)fF!|+Dw9#91-3bMA zy1SbBOD`V_lB_&6@3uMq*;cRZHegt3-0R|VgSYhWFOL2v@&l-}J*%4y)5+(ymsIKc z A&9)rzM<_(%Qu0aLyFZm5 a7 z@R=?Sl??SdtG|rCxBdR37!F;DwsYtkJYw&;Pe6uuGEgZPwDh-G*Q0D85{ Bp3NXV!If9QRt46mBG-|wV21gFz!dT;P1i04w< x+I=gU6TL`q7pq{dLo9=@X17#sp>1k$51-Z^-kWi7*HNO6ab}yEkG$(Dv z+cYYnupL8zpJrI7(;Ran^;)Hi9Du?dbnCiia@7zLH24THa$_HROu398elwvy=cFcN zC{^xfui>ak(o0BPz$ I+dSn0Yn935zdJugXQRJ zQ(V5LSN$ox;!DIq;qRqCyMgFlC5TKwzI1IifJ+Yzv|V?Q!@JMO%=q36J=A1RvHOWt zg 1@27u8HQ8fUUPg$H@A__Tm&!!BixpfbeO4%iu69xst}ArVt~Fdp=PMrEb#UA zkSa eyK> zh{S=9#MOrYDS~r-`Vbby_JM2rEa$WJe=2#)fq1Qo(+he*;G*Xkvrc|#+>j5q_^VCA z2K`|=pe8m+C?Ya>{i6)n XkE+wkT1s z&af>C*?l59M;3m@{1bA?f%kk?KUB7lsGsAnB6EO6#{2`0Rr7yQI$*;i&WxCS@I|1s zzQCU`MxEz=fx|79g*6aB7=C*^aF(sKb01`|G@NnN8V9#xM&AENrHHjFN|%63uGj#w zlJwRjzZAZ6T^58V9Bjbx0zjD|93K;j>sjjBMOmQJJXm0vUWe_BhnUnyi7H1f72oF1 z+(inG8N-il^$U6KTyqA@Ll gJYq}zSG<{E!Nm<4Y10dRniUhq6( zNLF|m*VPiFl@&rx5nrN@8dvk@hFE~nru$5_-|utV8vMj9%15# |M%yhgxFiQM{e#-VD96>t)_g zf8cpBsm6gM15>INhBy>A%soWWi6!X^rIvp3c3lB*4-qs>Nrt9_%3GAf1ZN5Y$P+uD zBSg|hki=^j#Z*W*2APBI!wWqc&~X{$*C4460r^~9UCx5d)ku=1f}&4SqjEfq&h{&} zFN&ptR+q_=8YBZ3lD5NusK8(`>n7TwUvH9*p$nv{L)Eqk8dARUsRMk=_!J01u6jUD z)>m@~$TMX9_HU{VnaEXIQ4b}YsKSZ2)@W5OYSMw+E)omF1ntUKx hEE&|r-<(3xybna zRXDm?{^$-9ns4uv0)R5`{Ca8pDR`pvG9ePc3lP%w0&vYNb2mSCn#Fq@2_P1e9Urhu zQ$C(f4Rn{a O`Aypvp3F)ch#2M>0xS*5bHtnjf8o7n z1C_agoKl?mx&VADxJZWp8IZkEH{k60f8sZ$=MPAH Cn(J6i`hWX zodvKq!eyf9OQgMj^uYNPn1{g#7mlYXWvS_x L$gWwtX?a?sJeZbeDg2>5_|iA1!l01y){vKa${c6Y)$)PW zAR(CQY(+T#fY?gKRnOHkej$}R!~TEM(v$qTn5n0Kuhz(hR`;$tJqoEc31!Wk@k0|a z%d6R&%4F$@x(CqowKRr6R?`ToJanzOFw{q_)k!b3rFG5SZuPHANW;(4oX)lOyJ^kS zYaL6W?v z?G*7v$w@|gy{Hvoy*!|BccRp9#`KkOc?yGmWD*upkQ+rz2NZUDD zSY&S7gWswx)oqUTU!T5EdHAIDVUWs0W%$|h5TEc>8okt(EMC71NMl%X$g$Q5^$7Y- z+VP0?f*-2=S?e{h^<${@vBK8=-`MugZ|?jo `u{OH%vZoF(I_^8F8 zaJ#VQE>q;uVc-Z*LNY?!V!mtzFWyHGH)_gDQ=4##C@x+fck8HYRWtSu&3W>*VB>@= zoobRpjE=B;64b2S0gxesO-xU>RUQ^Hfz5lVW*DNwmD))2G@VGiI)iEi=rm$bwV2YE zY9nGb@_2^&^%*41S^uETPftvW|Jg;n@!ZVvj>z)fY>kXK6CcrirK8|AZ$S|x^1a;X z=Z#1q;zg;9_d^kT>_LN^YiYKTL(};%1bA;T|AY{A6r-_L9m$~%QF`g}%Wjq%-sn$H zzI@jCRv5JTM^E#MRjAzkwF%j9j*y4%2Rt7_WVJlPZI>)9-5I 5v{r%fnZ zD*qZwh6I5hUx5Fm^4JV8a|cup&S{5V`17+NZ)H*ZWaqZVY4rYBB GT^mTW}Xn? zoXMNxfG&Q7mWE13M6K+BOXO}$*9CLUXYo;$@trZLTVeOtL&is8Ip &JN*V`!mE5HQMF%rc8POn7aB#Ifm;9+? zp95Cwhg{dTgp9hy c}rD&t(7UVdBL7^$~;0UIeYS$-`Tkr>UA>%7$xC z$(@KHe({l4jjeU+Y4D5*^VK=7e4QidL){V1H&dgg?q7FH!E4M6t_8l7JqP7W?AK?K z_7>( rA zB AAo4d8{6xaZ;;ifu#yx!h`Lef|!Ht=KAn)>y82A7o(9Z~r~wXXLMK