From b6a1e159747a0cfa7913dc7bfe74496e5ec36677 Mon Sep 17 00:00:00 2001 From: matmoul Date: Wed, 4 Oct 2017 01:50:19 +0200 Subject: [PATCH] Large Change --- src/_locales/en/messages.json | 13 ++- src/_locales/fr/messages.json | 13 ++- src/html/settings.html | 164 +++++++++++++++++++++------------- src/js/background.js | 2 + src/js/dial.js | 36 +++++--- src/js/settings.js | 66 +++++++++++--- src/src.zip | Bin 0 -> 22199 bytes 7 files changed, 194 insertions(+), 100 deletions(-) create mode 100644 src/src.zip diff --git a/src/_locales/en/messages.json b/src/_locales/en/messages.json index e6ea937..c112f83 100644 --- a/src/_locales/en/messages.json +++ b/src/_locales/en/messages.json @@ -9,8 +9,13 @@ "description": "Text of add bookmark menu item." }, - "menuAddBookmark": { - "message": "Add Bookmark", + "menuNew": { + "message": "New", + "description": "Text of new menu item." + }, + + "menuNewBookmark": { + "message": "Bookmark", "description": "Text of add bookmark menu item." }, @@ -19,8 +24,8 @@ "description": "Text of the add bookmark prompt." }, - "menuAddFolder": { - "message": "Add Folder", + "menuNewFolder": { + "message": "Folder", "description": "Text of add folder menu item." }, diff --git a/src/_locales/fr/messages.json b/src/_locales/fr/messages.json index b66e9cd..c701c87 100644 --- a/src/_locales/fr/messages.json +++ b/src/_locales/fr/messages.json @@ -9,8 +9,13 @@ "description": "Text of add bookmark menu item." }, - "menuAddBookmark": { - "message": "Ajouter un marque-page", + "menuNew": { + "message": "Nouveau", + "description": "Text of new menu item." + }, + + "menuNewBookmark": { + "message": "Marque-page", "description": "Text of add bookmark menu item." }, @@ -19,8 +24,8 @@ "description": "Text of the add bookmark prompt." }, - "menuAddFolder": { - "message": "Ajouter un dossier", + "menuNewFolder": { + "message": "Dossier", "description": "Text of add folder menu item." }, diff --git a/src/html/settings.html b/src/html/settings.html index a07f18e..0055d8e 100644 --- a/src/html/settings.html +++ b/src/html/settings.html @@ -6,75 +6,111 @@ Quick Dial Settings -

Page :

- - - - - - - - - -
Background Color :
Background Image : - - -
-

Grid :

- - - - - - - - - -
Rows x Columns : - - -
Margins :
-

Grid Cells:

- - - - - - - - - - - - - - - - - +
+
Default :Hover :
Margins :
Border Radius:
+ + + + + + +
PageGridCells
+
+
+ + + + + + + + + + + + + +
Background Color :
Background Image : + + +
Preview :
+
+ + +
+ - - Border Color: - - - - - - Title Color: - - - - - - - -
+
diff --git a/src/js/background.js b/src/js/background.js index 003401b..64db6a8 100644 --- a/src/js/background.js +++ b/src/js/background.js @@ -21,11 +21,13 @@ core.Settings.load = function(callback){ // Load settings columns: 5, cells: { margin: 4, + marginHover: 4, ratioX: 4, ratioY: 3, borderColor: '#333333', borderColorHover: '#a9a9a9', borderRadius: 4, + borderRadiusHover: 4, title: true, titleHeight: 16, titleFontSize: 10, diff --git a/src/js/dial.js b/src/js/dial.js index 980aa17..1118236 100644 --- a/src/js/dial.js +++ b/src/js/dial.js @@ -15,10 +15,6 @@ window.onload = function(){ switch(request.command){ case 'SettingsChanged': if(app.settings){ - /* - dial.styles.body.backgroundColor = app.settings.backgroundColor; - dial.styles.body.backgroundImage = app.settings.backgroundImage; - */ dial.Head.removeChild(dial.Style); dial.Body.removeChild(dial.Grid); dial.initStyles(); @@ -98,8 +94,9 @@ dial.initStyles = function(){ dial.styles.grid = {}; dial.styles.grid.grid = dial.Style.sheet.cssRules[dial.Style.sheet.insertRule('.Grid { border-collapse: collapse; margin: auto; }')].style; dial.styles.grid.cell = dial.Style.sheet.cssRules[dial.Style.sheet.insertRule('.Grid td { margin: 0px; padding: 0px; }')].style; - dial.styles.grid.link = dial.Style.sheet.cssRules[dial.Style.sheet.insertRule('.Grid td>a { display: block; outline: none; text-decoration: none; margin: ' + app.settings.grid.cells.margin + 'px; border: 1px solid ' + app.settings.grid.cells.borderColor + '; border-radius: ' + app.settings.grid.cells.borderRadius + 'px; }')].style; - dial.styles.grid.linkHover = dial.Style.sheet.cssRules[dial.Style.sheet.insertRule('.Grid td>a:hover { border-color: ' + app.settings.grid.cells.borderColorHover + '; }')].style; + dial.styles.grid.link = dial.Style.sheet.cssRules[dial.Style.sheet.insertRule('.Grid td>a { display: block; outline: none; overflow: hidden; text-decoration: none; margin: ' + app.settings.grid.cells.margin + 'px; border: 1px solid ' + app.settings.grid.cells.borderColor + '; border-radius: ' + app.settings.grid.cells.borderRadius + 'px; }')].style; + //dial.styles.grid.linkHover = dial.Style.sheet.cssRules[dial.Style.sheet.insertRule('.Grid td>a:hover { border-color: ' + app.settings.grid.cells.borderColorHover + '; border-radius: ' + app.settings.grid.cells.borderRadiusHover + 'px; }')].style; + dial.styles.grid.linkHover = dial.Style.sheet.cssRules[dial.Style.sheet.insertRule('.Grid td>a:hover { border-color: ' + app.settings.grid.cells.borderColorHover + '; margin: ' + app.settings.grid.cells.marginHover + 'px; border-radius: ' + app.settings.grid.cells.borderRadiusHover + 'px; }')].style; dial.styles.grid.linkPanel = dial.Style.sheet.cssRules[dial.Style.sheet.insertRule('.Grid td>a>div:first-child { background-repeat: no-repeat; }')].style; dial.styles.grid.linkTitle = dial.Style.sheet.cssRules[dial.Style.sheet.insertRule('.Grid td>a>div:last-child { height: ' + app.settings.grid.cells.titleHeight + 'px; font-size: ' + app.settings.grid.cells.titleFontSize + 'pt; font-family: ' + app.settings.grid.cells.titleFont + 'pt; text-align: center; overflow: hidden; color: ' + app.settings.grid.cells.titleColor + '; border-top: 1px solid ' + app.settings.grid.cells.borderColor + '; }')].style; dial.styles.grid.linkTitleHover = dial.Style.sheet.cssRules[dial.Style.sheet.insertRule('.Grid td>a:hover>div:last-child { color: ' + app.settings.grid.cells.titleColorHover + '; border-top-color: ' + app.settings.grid.cells.borderColorHover + ' }')].style; @@ -114,18 +111,21 @@ dial.initMenus = function(){ dial.PageMenu = document.createElement('menu'); dial.PageMenu.type = 'context'; dial.PageMenu.id = 'page' + dial.PageMenuNew = document.createElement('menu'); + dial.PageMenuNew.label = browser.i18n.getMessage("menuNew"); dial.PageMenuCreateBookmark = document.createElement('menuitem'); - dial.PageMenuCreateBookmark.label = 'Add bookmark'; + dial.PageMenuCreateBookmark.label = browser.i18n.getMessage("menuNewBookmark"); dial.PageMenuCreateBookmark.onclick = dial.createBookmark; dial.PageMenuCreateFolder = document.createElement('menuitem'); - dial.PageMenuCreateFolder.label = 'Add folder'; + dial.PageMenuCreateFolder.label = browser.i18n.getMessage("menuNewFolder"); dial.PageMenuCreateFolder.onclick = dial.createFolder; dial.PageMenuSettings = document.createElement('menuitem'); dial.PageMenuSettings.label = browser.i18n.getMessage("menuSettings"); dial.PageMenuSettings.onclick = dial.editSettings; - dial.PageMenu.appendChild(dial.PageMenuCreateBookmark); - dial.PageMenu.appendChild(dial.PageMenuCreateFolder); + dial.PageMenu.appendChild(dial.PageMenuNew); + dial.PageMenuNew.appendChild(dial.PageMenuCreateBookmark); + dial.PageMenuNew.appendChild(dial.PageMenuCreateFolder); dial.PageMenu.appendChild(document.createElement('hr')); dial.PageMenu.appendChild(dial.PageMenuSettings); dial.Body.appendChild(dial.PageMenu); @@ -133,11 +133,15 @@ dial.initMenus = function(){ dial.ItemMenu = document.createElement('menu'); dial.ItemMenu.type = 'context'; dial.ItemMenu.id = 'item' + + dial.ItemMenuNew = document.createElement('menu'); + dial.ItemMenuNew.label = browser.i18n.getMessage("menuNew"); + dial.ItemMenuCreateBookmark = document.createElement('menuitem'); - dial.ItemMenuCreateBookmark.label = browser.i18n.getMessage("menuAddBookmark"); + dial.ItemMenuCreateBookmark.label = browser.i18n.getMessage("menuNewBookmark"); dial.ItemMenuCreateBookmark.onclick = dial.createBookmark; dial.ItemMenuCreateFolder = document.createElement('menuitem'); - dial.ItemMenuCreateFolder.label = browser.i18n.getMessage("menuAddFolder"); + dial.ItemMenuCreateFolder.label = browser.i18n.getMessage("menuNewFolder"); dial.ItemMenuCreateFolder.onclick = dial.createFolder; /* dial.ItemMenuEdit = document.createElement('menuitem'); @@ -160,8 +164,9 @@ dial.initMenus = function(){ dial.ItemMenuSettings.label = browser.i18n.getMessage("menuSettings"); dial.ItemMenuSettings.onclick = dial.editSettings; - dial.ItemMenu.appendChild(dial.ItemMenuCreateBookmark); - dial.ItemMenu.appendChild(dial.ItemMenuCreateFolder); + dial.ItemMenu.appendChild(dial.ItemMenuNew); + dial.ItemMenuNew.appendChild(dial.ItemMenuCreateBookmark); + dial.ItemMenuNew.appendChild(dial.ItemMenuCreateFolder); dial.ItemMenu.appendChild(document.createElement('hr')); //dial.ItemMenu.appendChild(dial.ItemMenuEdit); dial.ItemMenu.appendChild(dial.ItemMenuRefresh); @@ -232,10 +237,13 @@ dial.updateGridLayout = function(grid, settings, styles){ var linkHeight = fullHeight / settings.rows; if(linkWidth <= linkHeight * settings.cells.ratioX / settings.cells.ratioY) linkHeight = linkWidth / settings.cells.ratioX * settings.cells.ratioY; else linkWidth = linkHeight / settings.cells.ratioY * settings.cells.ratioX; + styles.cell.width = linkWidth.toString() + 'px'; styles.cell.height = linkHeight.toString() + 'px'; + linkWidth = linkWidth - 2 * (settings.cells.margin + 1); linkHeight = linkHeight - 2 * (settings.cells.margin + 1); + styles.link.width = linkWidth.toString() + 'px'; styles.link.height = linkHeight.toString() + 'px'; if(settings.cells.title) styles.linkPanel.height = (linkHeight - settings.cells.titleHeight - 1).toString() + 'px'; diff --git a/src/js/settings.js b/src/js/settings.js index 6507f88..9b120ec 100644 --- a/src/js/settings.js +++ b/src/js/settings.js @@ -5,31 +5,26 @@ window.onload = function(){ app = page.app; BackgroundColor.value = app.settings.backgroundColor; BackgroundImage = app.settings.backgroundImage; + BackgroundPreview.style.backgroundColor = app.settings.backgroundColor; + BackgroundPreview.style.backgroundImage = app.settings.backgroundImage; + BackgroundPreview.style.backgroundRepeat = 'no-repeat'; + BackgroundPreview.style.backgroundSize = '100% 100%'; GridRows.value = app.settings.grid.rows; GridMargins.value = app.settings.grid.margin; GridColumns.value = app.settings.grid.columns; GridCellsMargins.value = app.settings.grid.cells.margin; + GridCellsMarginsHover.value = app.settings.grid.cells.marginHover; GridCellsBorderRadius.value = app.settings.grid.cells.borderRadius; + GridCellsBorderRadiusHover.value = app.settings.grid.cells.borderRadiusHover; GridCellsBorderColor.value = app.settings.grid.cells.borderColor; GridCellsBorderColorHover.value = app.settings.grid.cells.borderColorHover; + GridCellsTitle.checked = app.settings.grid.cells.title; + GridCellsTitleHeight.value = app.settings.grid.cells.titleHeight; + GridCellsTitleFontSize.value = app.settings.grid.cells.titleFontSize; GridCellsTitleColor.value = app.settings.grid.cells.titleColor; GridCellsTitleColorHover.value = app.settings.grid.cells.titleColorHover; }); - BackgroundImageClear.onclick = function(){ - BackgroundImage = null; - } - BackgroundImageFile.onclick = function(){ - this.value = null; - } - BackgroundImageFile.onchange = function(){ - var fileReader = new FileReader(); - fileReader.onload = function(e){ - BackgroundImage = 'url(' + e.target.result + ')'; - } - fileReader.readAsDataURL(BackgroundImageFile.files[0]); - } - BtnOk.onclick = function(){ BtnApply.onclick(); window.frameElement.popup.close(); @@ -41,9 +36,15 @@ window.onload = function(){ app.settings.grid.margin = +(GridMargins.value); app.settings.grid.columns = +(GridColumns.value); app.settings.grid.cells.margin = +(GridCellsMargins.value); + //app.settings.grid.cells.marginHover = +(GridCellsMarginsHover.value); + app.settings.grid.cells.marginHover = +(GridCellsMargins.value); app.settings.grid.cells.borderRadius = +(GridCellsBorderRadius.value); + app.settings.grid.cells.borderRadiusHover = +(GridCellsBorderRadiusHover.value); app.settings.grid.cells.borderColor = GridCellsBorderColor.value; app.settings.grid.cells.borderColorHover = GridCellsBorderColorHover.value; + app.settings.grid.cells.title = GridCellsTitle.checked; + app.settings.grid.cells.titleHeight = GridCellsTitleHeight.value; + app.settings.grid.cells.titleFontSize = GridCellsTitleFontSize.value; app.settings.grid.cells.titleColor = GridCellsTitleColor.value; app.settings.grid.cells.titleColorHover = GridCellsTitleColorHover.value; app.saveSettings(); @@ -51,4 +52,41 @@ window.onload = function(){ BtnCancel.onclick = function(){ window.frameElement.popup.close(); } + + var tabButtons = Tabs.children[0].children[0].children[0]; + for(var i=0; i+b34`6vE}$&7tZ-Ww}#WbU>1 z$vh|4l9&1gj12J4gSARX>OWrm*8$@1sAp|wWMFOLL?{1mVbK2*W@7u_NN@o9zc;j7 z^qmp_1OWH}1^~eL7o?4elaqm&i4(1*lbvmGa-Zw~J-qPETcpY$!=J$>G+-F&B&MBv-)OBsP)qq`jVAs8!Li>QelB4fsEIt(O#X z5kZy)>FRy3I#qLVY5ZqsYs+N?zq_(%H=~EmbyAr+D&>$W2iA1Hq+8FhSRtPbY*?Z8 zyK?v`P9pt8sFoM<><<+Ej5=Yp0Y1Ln5GTjugwsiy#nEk!4}pttWeh}lj%td`-A4-0 zf`t0Ec(^AIR9NNP1~)Ws#0Q6T$*S?wy#0`xTDDv#>z$rK{y!Nqb^I5GmL_H)9RD&T z0P-&k{YCx@Lo$CELJof67*YxzEKxSxfT5%jzl6L3k^Y>|80LEgBlxo&Lh^DtRC`cX zG(?cFD)Ri`%|tZP0gXT67S&HracmAbmHd?Z2JGrPbK}SyS~*8|7#EA8mByqP!~ezt zKi_2lqF71Qc;JmJH;a_sSqxbZ+#$e@IMT*fk7uF*gJ>&xCb^u(FOiYfEpDbTu!rRP z>71vAi<}m$=$_&@5wR_}3(zo%bh}}CDp!xRYo?2%8-n;9V{3q>>1dL4%Vogg%kOgL z46-! z;CxF)&5|({#FiGTt1d=q>Pd7#zUZ@LDy&iJfDq!Bl;H!D436}N_ie%RRD^p|Cbtl+ zZ#qq?G}*M1jikzC9^F%TvWOgmEIV#I0TgY;o(Wn5SO!OAW`Jf+lXRIBLJMBzb#FqC zlOa4s5= z@_61&H(oDy9K0hn)usy_cx-s$5Wl5m_vxYc6C0w#tp&RTwkGkb+36EgCe>k)*7Y|`$Ou|NeY7%Y^BW2n&WOazx;J_lpUO4?73Q=uO48OcWuuROlcH?h5- zu*JT`I|FvRjkm$glw%XI)T|g?bqnRyU3adTK!XaI>WQ0Kl*YVLXdw%65YsKoV^;P8 zsa%?mqNCF+3;FxrgOxrT5;z7P#oya34d94H25jm9XD#X2&Px)RQjx;gA$_fu2=tMC zkgpFc^PTKkAYS^mT4}TB&dG@CyG6Q|;8M8X16hC9Z*^?gzeDS`g+lEB@m#JB^PX;8 zKzB1Lg`4d?*Edanta&b3j~6%6q1lpsq0DFy^$pm_>0OYpX(j#G_>I2Kle%$m_1M{L z!jQF4BgI_7!5a&>U=K;Kf$J_Bad6tX;nC!%x_P;Se!%7i5|t}F+Rb8Fz#R*`UU^@n zt0P`c?~!0KQb4Yp#*j<4g10!9#sp;0m@|IVFEl=L(_Uz{=fn!7?j)BdORa!7Y(7U5 zjfC8U_~C9Y;O=dFqy77G{`=zqU}0nS-_;BNAXz0SMNArTLh*NI`X?a&3&F@tYj0~7 zAulTi1Bv<1MHmTjVa2~A`ab~<`uDi&#`F4jxRnqVPbHG@$Sl`|quojuTPUm$JQm_o-)r zkhD=h!8HAsDtchA3<2H&O#A%uK%m*F^#L?{*)0LrPoandh*$0n};-&3XXjeN>tAIR<}eS2a$?5 zc<4jT6RYeVUp0+48`->j8h^wGe0-i9O|QRcyaDso`g6X}CM{QwhTpwkR6=?}=}dBS z6F=9ldQ##&~U@og`v98nNHMtW)Dgnuuq=d$7hsK7UniPaq z%Ye0F^lk0T-iwYNup6Rs>C}4r{Y)Fn&MWoO`_K?^u{^xFnv1NXp}{BB;Vo6S3K7Z% z%G5LMsAFlV{x()>|K-7J0Lt?W!@xAKELQq?Q9R;X$a&9{mh{DSV@wu1&Rj1*K_kvqXz8cYiCf0Hg}3}s;S zw`Ha+E$Jx*nZVo^=6S1|{MdCds`%b(($N zw*4)BkI?HeATZh~vkKbVa!5dIHtbj5-^;T9(Pl5ebdAM$WS|^YgtyPw>ibw;e`O{k;NVFRtMP004#bPXGdBWc@P}fH_OZh=6TDL!vO^1CMv1 z0ssKA{4*b@4|J^xzy{Gn3(wUJeZgs~$gt@MGuN3xmvl4-&II|3L(Akc45#&ErUUx( zA!PDxV|?Vl2Wng{?@~5%Hhc$9mf&?!HDj@D`%GOvhPe#}b`+o*8&l~}qzw^fV;h@r zWg{CKrpLlk){BdQtf3c51^uC32oWF|K5y=ejGm(jvXq|t0;ynB1p^pyPIi=Dn(B8` zDLDn$MK|)Mtc$coU2d)ho|**gTr8~4@&u@*B68;Cf98C*{H3a?@NU~!9%LAg<<2~q z?o%c?b4?{OPM+PC-ta{(X_kv$$*k0VzZ&^GM465Ko%opYMu23JJnvObxJ7Zqc0-*( zA>{<6+OC*lCa1uxsGEVuINxx85ABX-qoX`p)NtRd60OqclO5Vt(o!RAGMCcSeEM|^ zg~_+6^*!nV{x_%pW>Qf`Ic^#t002lM1OR~ji~5IAQ#)&86UTozUD6EW%G^PVW2P)# zT9rg-5}TtGiJVpRTKuEq6_-(^&hn?&)uv7?X0?dCyR55RrjaEOyvgck`x~R@uuU%K zh5IGv#fkSND{00j_oXmp_(AJX`Vb%fG^KvN0SzBs0-GKq=!&Dg%*+4w|Q)k!f7^U?2#<2~Llh|#p@Nq^7g2rm{m z_%_rSFSgL`M61$_ebxwW`WCd4xZwYE*lHmv5}Gj=Nn#$Bf`QRo+iMcT!}YO!9grtYRq<_<)Bg?OK@dRD?MB2cQ;m~>@34IXk`LSjlrgHPP^eE=CSkgF#xLCWo_|x`v0htFFF7gP& z)V88$jX^PkxLjJ^2>GDPJF2`iliX}mRB!Ul@{J?3&D3w)hQ#_6CjC7`tzQ%9#C|Hu z>hF`WVdZp!O7ewzw_ICfnNW5*jRsH$K0Vj7nKfKLvLq%wcYZd9!oAp;Elt|7_PX|_ ze2}Di<+`}go0kW(66W)T@ylkAr60nNdMxgXeuy5f99jw%sH>Dlu^BnCTCr)L{UjY& zIgHrJf5wOry)nk7MjfB9a({TY?Di&FoY7))?-e@@bmKg3H?m>>wmUc>fPJt5qsKRpGb(}+DC6z%rh3A|M?Y(9J( z2Tm7neIcL7k+*v@&3=wZRgKRs$tR65Tw#Ve(p0a7bm;GQ-5e_&6Vp4YyIf+IW#2Ec zYWYaKVcPr>rYk)=qq->=e~A=Jsxz%Y5A@O&Q?cM3ihj*4MM&X}(sW@#quqd%5i{(Z ziN)Le>Y6({_q~{l3P+S%M6~!*pC2y6wId(invkUws;wa!kuZS~wPmsA_*nmT#0BZ( zGPc8}&n89%Xf_8uz}MPCLt{Xu{*5IIu+;^SPMyH^hEEzs3I{&`P~+7yB|B*N*&AythL9=-wBlt97X}QA4_~IYdC0-lEr5j3`&I3Zif z+gAzLt$=Eilzjh;P$P9dyP2g290gVkgFFBh?+l+TI?~FY)Pi#h~Ut{Ijy{Sk{d7kK_ zp~5}TF@pteitMfSMNTQIQ*f1j?e4?4aM5XL$nbW_rF(qnjc=YxWB+E!7KQnJ#K*X^ zJ&Y|7E|c*~)UJPKR9|1|9HQX0sDV}IUgB<8X^sawx4uxazhQ5kIo@!#qP0I!fF-*7 z4+B&F7*cL!oYka^q+n5M5{yOB0$Qdv{1ELp)cWCsx~*ww)E1O>6XspZ^Ip&CYn2tX zekHA{w8U$sy7q}n{JA^13st3=x8;?ONJUGa*2I|CNN9hNmQ90RNh+*gm>7?%{$7}m zT6qJWt72SY|9fWnpJ(-XDGmB`P+;&Y(3dy< z1VsU1IAkGNMz-~UsSTX21Lj;$R;pLP$B~$M@!rr$)$nKyCr5GGbG3dx$iD3>)Nj0aqk? z$NiCJ^5_zcP6{&85gk?WK~iSAeKV(_%2WY-q&kF@1y;CyT z-J(m{kHwby+z@k+KV$+1ufeBRCQ0=#tX za=Cek=TH)osg)n3WKBEuzHKi6;l`KeiSBvI9+S`nr0ZXU0}Z;Kq3Syju;bvpZuw)8 zE4@x)h58@xx=8=TO-$*afoj&iA?tF-KB$Q2L6SK2$o+ ze_y_Zp8J%@J6=dLRMt2#1P|8F#`DSKhD0Y;vpu;6e7DApE5+lcDP>O(aC3lpkGQR; zu|EM7GB{Lu#;*3ZrHz2_n**}#YgbU@x8H@31V%f{>r==Lgz9NPsU?hbh_}PN>HAa3 zap1)Y(nIvz2irpD;`?n{am82|L4SR&SUE2XZ@KwH3>!1@*A*EHxDX(VI4`Akg<_oE9i`Lx8tu|?Z651XfRw( zAV1wWOpFJdDowu_zuhiANe=uNtAwspsw5zJpUEd1!-c1=&Js*v55Rf@sB@FR-a^Z* zmsrOY1tUu9-&-xz=-sU`0mBEbh7UuKK0x2^RI)!HdPMCQ&1>-W0&C&AY|=utTi;PCwkn`GPxno81&f11t%4M4c|llA)89?-EF~6i8t4 zW9~E3HYd`jpXFm<&Bj7dHvHQKZa7n3*^$i>2k7Yz+1@-w)^qSPTsaEWw(Kc#GvcA| zjS%j|+lmr8or=9N@L0fCKoti1!+v2=;CpJ1_B$>mhuAoQIN!h&y+2c(cx1X9>g2Uo z4Of4RW)P+(p8fBcwnfu|l zM1V$FUpB~=c!8$!~@6YZTNQ)vEuY$eFOr0feB-|pe*@`8a zn8S=sFU@HCuvTekc^JH*ecFP3QlECGQIFiR(Gi&TXvK?uvvz2!d7F7fuHM5>2YM?@ z#JAmCR8+(B6=z+-kwzXbP%N|W3Z}v#T0l$_B06YGg zXF@RYWLMZG#sO!SYHG_-&Xy;f>{NcPAu;_(XrFPa{&oSGu6qaOg&Y0bC)nQS$n0XY zpifB*(8LAsMl>ZG>5#h=LXe8;UujKI=X|L#T^9gfiGcwGQC`_Nv0pbt2`Iw6eH2B6 zI(OI20IJMc%xT=w*olL1zdFCDJp-7bnpxk<5TNP0A2-j7^SY{)gP}wFcDzf>&B65% zNddhKhJ`+^KM#zl8y{@%Xw#H&C27;psK6IhX|9>O@Q?Dt0Gc=fwGkC ziLYR>0Hznx@A8uBIekZKGXRQQN@^aYb3hi60zv?t^^ct&25f_sm06&3F}`L+;zBz8 zK(~8=0d-yDks`{zBN_@ zev*(q_N0r$N5mk5LkmQ>Y$gGg17PJtfe9FBRm_sZL(uUjdSQddR^F3@C<0zf4CehD zje~%N3HrtYfvw)1$R9AzGUsnx5cu-euWH&X^>Jf+Bk#Ov&drp1Iali>C4!&HW<421wHZ?Wnt-LaBX{kq0!crw; zA-Y5?C4tBR?|qUr|GqRZ05 z&BUs=N}dB1l*o}2Z!$}hS{m%e zzq++l>gVldpY{FzBednO!1O-~>Vf_p^UpHtNto>*9LuB|9&dDszNrUz(fd9_@~~huyXz z`Rh%~K>OY? zv-!Fnhw?bCi&_;r_-#e41eN^1bwz$y35J9?KFb|OMS^$rjX{K=#Uqk{k_ z{3-jlQEaqHtw#QP>8!S42|Jl6;*LBKd+!=sYi)}fk@2(47^Ua2|L2#Yn~#CP-bhkX zlI(M>sO(WwU)7(3Uf9LN5Be20T+xb+!{(+ygF-kfJBm~cQo8HClxS!eES}Vk!lmC* z?k4~VC_dCmv3;#&R+g%WOVT>*zen;fvzo0o=2)J+b9Ixpm6qu;vB8EBre%QmSa?{L zZm(7c1z28@9J+e?8!_Z-Y97=N&0y^jnww&hs@2IhSUkvsDF$*3uE#*qnMg!J5kMB+qz#IfQyoK$I2xv7SrhFV9waN8HDeDQVBEkMyfR9)JbZU_wFCG z_ImC6iZZCDRTLit%B#+fE>YfD)u)&`}NJ~ z0|=~WSw>ymxVnWERG8np7ZzXPBm!#^?iu#!FrX|eWo5VshfaXa*ei{Pi;Y&JPs!u# z%YJZ(&O9|Qt*<5(+noD@o9P!%3YEmp5Y%F6h>ii2S#4A|?5_cnQlltO=E6^5)&_#g zd3G$uo23}pp7?WWTi-nl-_p8V8VN^Ie!TR>&JfiiBcr&`GJVMA=jSoGsammt`y08# z+U(7!j5TP=g8ClHtL}nC=(r5}1}8n1e-xR;^_n-VMx3ByuDdOW-1$^UH|~=$t0*Gg zQmWv0P)X!9tNS?v?m8pPv07i-9$Hi>i~7{5=?K`54+-ndEeNWqL;VOlIhkqXXrmYU zZt|Os^Q4ga*oeRE6T|Y$oW^^hea^$?-2POSkxNQT7x6J%nttiz&|F2goJZ^xzbTLHu09Q#t8Gsa zNNC*~mRYa<0TSa)J}&A+B%uX;iAO7@12$t|WBYuJZ`bS`SA2EW&*(bXovesLFr%V~ zLaRZ%=TD>}RMZ+6!UosW zNrfDY1(*=#g#vWQBi)zzzs>5_&KmhiP^j!p8Ex**7eZpWbS)jq>P(C-8d+#i zobaTz#q{>Hi`=baB%7W67UQpJbkl#*o(Q~CZaCz%exkB5oN_ARoSLBYNLZ3>u1{GJ z@(f^=Y8zxB?Vman6c%f9%__JJS zD6Cw+-$$yBa{8wbQKl1S2s5>yO0vxf>8KRbB&;*&V$_7zA3`tK;#w|*G@PFt5eb{5 zuu2*`ugBsjgetBmlOF#hNq$svvuxV)nUjr)3mP)}R>vLvoXa7Sr`M)vDr?~*_+A^RK|gvE2okpgk*i@OnSoTcv)ylDU%kzrRcXuE(o@%jYnUnDr%IQGt*PzriQjI-vKfVpmYvu;Xva5BL}O3}$aA)CDCd5ENy!FlJY z{~Gr^-uEE6R@z$aMn~JxKP$Tr$&Ihc6ALNzaijH-^k-X>mEH#HNu{-q8M}P7bN8bl zpQNQiZD4WY#KacR-D&-@bDvP@lUC;V7Z4U@o>%v{^m4Og*mK0Tiz55|4EfmlNr_Dm zbWmgDXd_F>b*GJco!A*teiJ=??nQHBRb(LXT>5y3%T7aw3VS1pYU=)>ak|NNycNf* z2WzP!mUR6~z2A^9dJMDI(-uq2xi#tUd5^`2MNk~(@+J+wJBwesuDZHBKVPjS;?B1{ zt6DxxVKU_lHlS_(S=M1ukm8ZaLzNn+REpm@Dm}CM3mxVZPC1?wvYd5D-`z-V!#$|C zL*eHQ7UW`xoDe@C@^y{WJ&(ZqrUjuiQI*tn(O9lm+vU`x4J$ihjLnq@FJtBHWl5HJy9dn;1)5zz1B|J zF#_B~`b0gib7CzBlcZl;E$E$t?3)&iNVZ6$nl?O+yWi>^0!~r_9XW47A-^pEZ_i)w z?P9`FrfK6z^L^^tetvl(;|SYbN>|Vu92<@Roh3#br6Um>ROgU4Ta+a6>_h-A=BB6# z1kaA8naWuRezJYby^K$yd$ey(cIWJ=zp^>MAX}j|pkEVs9(qeXQ6?(Av+&&|qNU(o z+*FRY6wix4KJ4smph6<_t7QgLfSj-=!JSS)J+%9n$|u~oKcWq6RB@vt<~3Or`LlGN zZETjcxQq!lJJeYe4r##rhMO)gI92(a7!4Cg)cdd-;W7#RT|kjjrefOfUaAqKG}Gz- z1U5YJ=$hH4+Lh#TTtCSPEZH3%K3o!AJomnz`4(qkxB%bpg!kvzBeOY6>TSlmgBdj0 zH9P0r;twPT?Fq=^>%<+qVjFuRq8~i6gV$$EGFJ6GUFst6Ikpf)3QVgc(j?8#P{v<_~V1&4C8vd8YJjUO`xk|JFaJ> z-Ia&*pN*D&L^1kYjX{6lGJ+Fs*yB`9lp`2y+w+$sJZVe|jnRq;S4DQ1aN6H83hZpG z(fXoIS_WcLUys|;Daw=ZEu+Jfk8X75;?>vv36&GOW`|Q^3QdQ`s#@qA!lgd0yYg~W zV03%O{>g*^Ld1W<&G4)%M0RhW?K5L!0LL&AV{e#z@YUTJ+!-57uhE(DH^~s#o{Aw7 zw)xL<58W6wIM4U_Y zQZXz#x7*gGnlI}b5U30U=!>j0?7M+6IJjNRC^y;s#`7meaD7a!Q5thcRu~)lG#!0w z>W0VK^yw^D>Kkcp;%`#E`fSj%qJ>hH4>!B}J(yZP*N-iC;kpV=Um8#)Xm}fZ;CbF} zBsd3uWj6{1FUHn1%AC_Z3@FwlwiOYvGsYg2_*8RQ3qA;zxWA(=j8|d1e52C8vosx5tpz zSX&2yoN;A%4au(jT92hB3@6M`U?8zy-=gjkfsOt$&#DvR#sXfS!E@vN6igg2#*cAq zHYs!a_@gM5a~t-LXv z&k?&&4mRmwZ|oL&BJ?R3YiJrox>iA)oZd&BZ#+hjoxAt4M{yx_5xuyxAXrM$p0Yq$ z8j7%_Oa^ts?c z$W;RvEBq7LhTa>T(+wTTwR>K^$=lyMQn=QQ4I>VmrbwfPaEkZTj zsmIt38D;!uxo6~;HmeM_{W3{R$N-<8)ikf~nL4MnCTT{xPhcPcO*b6hQtkBstEwA{ z`>yU3u+^rbTH1DzY7ap6(E&rB=~B~`9~{f5oz{pvUTt|T+5$MyvD9(bP51AGmC^;R z#{-Rk-bdS{V0zmKv3en8lfN5uMn;9iOA6hH27+yT*M4TqAmb{x+>-dR)4(-8k1tpX zZ&Vm-UP@y^afG1cml448!fBJz?9GF6#wYPL4exg?-_eFSxs}-+&irCel5uB;j~w*c zGPYbBPtp$gx@rb2H4Ej7T5P!B-npIuS1%sT*V*h@VmUy7n5P%D)n26&&;c~9s4eWA zTx-xuU!saDMVDn|YHa#$PN85==r;>uN*SSgQ19BvevNi7b#=a6w^%%kuMzB9U^CN> z#^p@=eQ2m(C$tkk7C%D~6Kb9(ofbf8kS&tWkaW-!J-Y#I^3UjHKYyj+jL(2+3w{0&PJ5a z2D|oZu#|kpJmGfg-C;3#ee0;E^IDJs7A_$nL^!~L*10%q^qTMZ)zruc-{*|4e*6JIc63_KGfH6KPBXBkXOz(lZDJ2 zyq<)fBd&!0A>LDMc1;+*wiRfN>RpcdMes|CbN2nY7^n+-0*~i}hN|^bCnXz2KFM9&F7(2PR%|v$ z%VE(W+t`dLE;LFu1B^}Fj~YtHq8e#ROCto^=s{x#mTe1^*#=4cmLYvdNbx1UtJEXT zlQe&QCX6xLMiFpIFkcF}YlBCvvhz2=`n7E9mMy;@9q>90aD$d6C9EOaui2eZS0?|< z<6rMwdvIitTZXvaDA}yS8(UB<8vzY6;KnV;leVT5eBoQz{C-4X97v5 zt2QTn%5xe*jaxDH9og&~qyd+vfooGVzrpIXN^Z!>>bEZOJ3>fFT8TgBgzGYAf~pFf z;O1Og`mbEU-m#E(wCOvJieK?v8vv3x>$jruJBt0kWnT-!4O_Cn)I?6OD_x!XuSAU- ze8pKi9vJ2j(x#H-8`5!!Gw%StViKp&1=gbP4#P-be~9Jl(_1Aca+0|Zt%rf8Oqc&# z!uJ2V5`O)yIm`d!NBB>dL2jLgH~U}lQ9J*C7Uf^SKcX@-M>`i=`o(B)cye z9tflw$Y8LoD+vHQN7UcEQ5FcOEoaRBECYfElLoZX2K8d+2OcSRy1xUM@&rgVo_#Tn zZlK0o`z1*UWqkLL#q&TeoPhXrGw>styvY{*d-uh%WP zeN*A)aTNjKe?PE$aY7~Gxks8hAdm4pq?U{t$+Kg9 zz|kLgm;Nl5!I;kFPM4kH{_`V~JU?iH3?^5CQ8sNh;ep3Dpu(v}-arj#knO>-%b$1W zZ^Dl6onV#(0WcL{5xiEGJt^PYQ@!@c;{mHE33RGj8-dkm)_5FGXKsmu46XWFcHyR9 zK_89VYr3o+@r|P1LcZaFpfl%L$v!Zr^9=J)9Pck>KI)zA*jz-PI$UF+0HA6Q)@Roi ztypWRSL4?iKF<;3v)@kb$-;QK)E{7PXgrItX!{v-FdRcrL~CjfeI9VjG|@o9AmwIK zmL-X498rc|k|ZpmL3FgJW16uLUYIe$gSuzgWBhKJ% z-i3qjiE)*;fyAI04;I(K4sZ=i>p(wUV#UA9cRZFE?v!C<--`bo_^?#F+ao%t-0%WR=Yv@~4e6s49j zItBa|{zR5tCx`zLCn@O9>M?Y!Skht#FOnu4g#gYA95PWFWXSqOVtb0YET)mWYti0g zE!YB=e9SIYwffc#pIQe|y@jT%=lqD~HH+{9(3fDi)}y$PBWZFC2EP3%JO&x~B_MDnvgsKN{r;ZE zTQ6=J$I%714Kk46{hFsEEEeV~ddYSwd!(^IUTQ>d18mP7o*hb)l|B2hr5)FKVv>Y)%q47mlR!j$rW>G?K5S#^JA7Tn5lz{Msc~9tW=IwZ zn?uXLqoVpu;+WY7MmI#(7R93%kl69A7{Z98qnS}8Fu4cm-En2sp^BBpoj}9569$b} zwNF|@_Mw}p1tM!v$r`wSV-REVDE2NdG^+cz*pAlpAZDDT9cXcguXs|IC6i@|}Wpm||x?4Lme*H$M~x8)iZW(zqioFDwF;S{ohG@)>93J-A?l)ATCh4qpz zP$sPTt<8b0;#}IsIDB}={Y6wT8OOANtWU8{?SAFv%w@=AsG8k(JK{m=}7eXL~aSBvMABTR(CnniF5ABevk;I1DpK>RYmEn!@WbLLM=n;&Epfo;df z1S9w+?w<(siz4QZ>un-Z^qE1yEf;C&`J;W=$nCx&*6ETHLJ}OSYvCxuBRhhbiE5!O zxP+2p{rq%5#AdDRIi`t{?28wW`ojTQ@M&1xYkGh`@w?>puLi}cQqqNwl>OWjwu@hjBBi2jw1o7aTZZ-jw$ zrT+B+0xBFN@QQppP-@CPU1((iAdsXIKGa;ZLgdSv3oIrVQ2$+F#W7Rf+8!URd?hL| z)o_9k=gaLwl9Arb0#+>JT~UxUdWI6Gv(~M0T^>`j)~6!va!}4Hj3fIyCUxIDU1{wG zXxV;1vV(^-Oe`p%l@>tkPl#XL$gI1c^ z*Y^vuNA`?wInO%Z0tDU>1216;@UsqS4KkMgr^9aMD`y@CJB`*fMRfz5vYWiBrL7qF zHk-!M8HsD-lE78h^MsNr4cr}GYIk%TQC!0tMM%4qin~;!|CL6NRvmj`k*%6k2FtWD zSwFjin&yEEcB~sLCxHsTL(Uh=-dLS0o zcYPf06p78bvUhU6QVRdN+>jhaAE;Qr{70Dh10(joX1H$?V701?g5)t4RZ@#+&dS1x zFyX(#bc+)z{8X}&>C^!uvS4G%q5xTWhTIWRKE)E4D^BmQAIuCW40Cp>%jjE&i>D1( zizZNda4;eZOoGKa3G!t<8rpBHO0tv-xC7MMW0+2@WDeS~PGohp0}F7UsXXh^)?Lf; zH5RC;2|LQzk0ZQh2t2%3A2EctHXC#($hxdsREsS~CpJ%js zW2#sR!^Uo*UEZ={tu`ntIX@UcFqj#Rcd8wUlVJeASca!vEsnS1-o^m8RIq6wB=)j-sgORq!#`Bl9NRg=H@_J zp?&2clhJVE0}JMnV0#B0)V_Gt&KSnJAtO{HMBml;USaYrS|L365n0xPDX>;|L5Gwy zgK-Kos)D1yZVmZ(w8BgKi}>!6=j?hzl1->8!ZS`wifrR|h-cD!v=!S0yirr300m*U z8h(??+yY_2$cH?o}dVw}>&r^|&? z5Ff|AWXb6P5#;HO1C$W0<}_Ab%l(R)ZbCb>7GNs<`XcXyA>d`?{R1sGMftK?qd)~= z)Ci}{Kz(f?NZpe-4-pccQA-Wus>;2tG2Ck^w{^y(e?@>sE~k_RSeAkq6gru9 z65YXaYJ0BlE*RaerLSSD3ne^;=E=utd#=~b!mvU`h+N-Nfnk%g_z1!d2I_iN-jL)Q z@BCfoPcxtEp7da0@}Uxj(- zoqih?yz|k#tJA@$bhy5J2(_90aKXV_ed}+dFAGGAQJQ596mK2$a~*9iJId`RGqx;O%J!>rW^29YMdm6FTEmq_a;mpI%p6|)@Vh_$w;%C8 zSDDj>RMcjFSDBi^|LI5kyUH}SFtGl+zU;!XvfB{7Z+N77R%T8%Ot1H%v9I07#w2S) z7k3oM+Wsr<>C@DfkS0$QtNtv@|M6w|*r(MiFn&^8WNmxcPG1{=wlfzs&q#E-uRYu8 z6@s4!&lT@UefS7JGNWg_eo<`KH#@4 zf1JHJ14A4p_yJJgx4GezvUN&%TjM<5i+qC`)|*{>5lN{$;17KB9^20+2*n1mq|1r| z!z+4r8umb^bL5y$iaebwcMp4i9sO#V*c0!jbduY5qn-g#h3|xMnl?;9sbqTIVVQVK zJEVqHC-w6)_Q)7)ODtcRuoL3dvQ+m=sZ?c#eKfZdbrS8QBDo$)9EL)5H?u@``J({# zBa@TC7eeYN`*}g!`ce}!Mw>`J#_y6T?%}>3GJ6C$IV&v=jTW3EtDRwo4)YmZm5Ak9 z2VJO7zO748su1x7b*KgSC58%WBA&%1K!}$T29F)gqW{YMcw5Tms-oW8!N8D3BY667 z0j$+HeGxF{cvC%l&9S+d!{xxB(zmlx89E z<%4Mc@e7+5hAQ%vp;L7o+#)udt**`1lN!j+3-}6=X9Xx%5SM|TU3iSlb>s;eUm*8D zea%p!J(k?e&~tK-Wd6HM4kF$q3o!U!^cBmf&RFu)#yaYd+fH0tjbsbRuQo(>BH02u(G%V9Y6!Lyq~4i1Kj zh)AMQuNh*crrvUDZD_pgBqb|_HNW}brlC!Eu|H-_iacbcC% zGQK0`a;6t3Q5>cTY6t^-dYgKJ$2$G3qgWyt|ErPn4rjA#12{_U*&z0=+N!A3re@6A zyK2>l+OxGOHCmgN)<_jWh?=z$MNwPrt<)}RwTds^zUqBl{l4ovxpF1{{BqxUa-MUZ z=bSsg`9&>Xum#c*|+?5jQ(zV*-)w^b&7i9;hk+D>9nB+pI!M-Sg99@#b&1B}}PXHZo$Pr`m!MC&nI^aX&=~m%7SWz8|kc zsY~8(L2)#l-8+3~z?MVWbh~eEJXy_53Vbn1EyO9|I$|`FjRd7iFB_F^ z4cF&tln&c#fLgycO$S#+2UR`9jh7*FAn~Zc37Xt=>2*+%sR?t(Fm@3fv%LB2s_(T_ zavFlGtd-+4o)kEbx8yA1{puJNLwe0qMj#gK^~@>_&CmUqHGAKCsUAMoo`J}@zH!%* z6z*!%bYSN?@;!#UDtTX1z2_2Mr6e}y)3I5i11c9Ag`w~0el^14tmHp?Pu~V!G|hbq2mQ8ceh%>Z$#&wN>j2yYt`@* zEgl#>&-}7ntN9%VYqso?wy-yW(OX!udR7sk$vBet^K>XOa9oBAtb%m*(mO!)0V{=5 z)i~P54ur;`Whv=5$AYtmy6Yz#uyF-(yz#FfbgnsswQ31t2mxARQX?42pX{>Nf=H_C z6@gA{BV1}`6OyR6aWZyh><3wyhW>a~e0|7AIPr+o%aMlcz=v{=)6@!OIHJTlw-$*A zACs&piS`&aOn`ym<6Q{^Kv&$@Bvm=PZ4q-Web(iWyoZ@(M?YoeysnsHTB(uJawUIh zY~rHGZuMElvih^(p@nsS`vV*C1TLwCu;*jp{62>RuRsjhmx z2^n}*Lvk#|^9`V;i}!k-_cJY=LH=7Rsgs!UxBBLHzJ4g2uZ1DOySRGXLUfo?P~J_P!_uC+MbhH2HRJ z7hXiKd5#xpjJ3jj5?!sV&7an)D7!`F(2SXuzIbw)sr%ZW?73@_Ct04i-h^%yXJsFt z#1#~KwfCoGH2P|Ss0+KW+jiGInu)YNu?JhLRwyK?FRjP63$kmf7*UADKcX{Qs-$Ky z0fhy6ZhvO3+fsb`US&=X(QWi>qIE-7W3dX37;DDbd4Ms~Nw!u)esIvZyh|Wd`vKH- zFw7Af8fjygVK8~ka4jz*pyPf<56gatkvZy{OVGOx66u#)LMX$?vx3OPlxC;`S=s|rI zu|jIRi5i0Qlu92%uUghTDyiiJS^H#*W%)YX_zkO2Cc9F2yQ> zoUfKx6wUHFB8(;}OmzNKlN3Vwy%khxLD$I;BIUUs4y5zq+;{=x0+_q89_@N&rRXTcDrsO^v#Q;MAk*UY6VgdLLB0HNl~hPev&WXxl7ZAfT5ak z&jM>HTs3?bwE%>B9&eL6p->@XznqfnTXNKL|26=j&RsBub@L$~3omxrohYf8kiBwu zx&d>%Fr{dR&w=zMEr-)e{KFwD&|nS8qiNY|eF#gKleY8B6#KgF{^jVZ<6;FZvVC7S zoH7Q12sR_cwki;8!onrbr(t9|4(cdC0_-)F2)?N&gE>t(3L+OXJ+1)FJYiRFYSYk? zN2e)!;#}xC37{01`S$54`(3`NifIkPw z>R32E`odUq#=j-4J~XKSmX|onLzd$5OyI_~ZkKMy(e#O4o;=#Lx5kBe6>$B?W4zbA zVFLmhoO)4+{;5MGOnYi-t$diy->#eFlP29=a5`&Kn*kqM=o1AA02=2WrPXSgBlsj)mAV~YTbUd}b-@Wy9 z=~-d2e>sdz9G_H4CQsfsV}c}HpcL1f@y5=cawgF(53PbvR;we9U9_${y*`k~@6B~# zxAi-tZX~4x+r15#G!FO+_S(`646})rMYmv{p@l0rxV}X&5=*V?S4zL?4zra$?ibeO zDG5EH79r*{)c988EGpm`B7U?C1%kX43w>M~2EWj$K~kps>rn5ecPt5 z>ZL8d3s7_lYNAk0isgaP;Ro&>_~|56_IyYQmBepys20bpvsG{T8llH&#+&GayTwin zuHIiu$v=vqAdMQ`=ISYfULi~I8S>Nl7Nxc;sxDF&O}pw_u7m!o(mTf?mcdeVy_1T! zxpL=f{wP?NYCziR@NTu<&;VcOz2N&pio5oSd%HPPx;G3;3A&q|KCQ_G7d$XyUQ!jN zCT)efCbY0T5WYjjmo|Pp7*^B}vXTn($MqEANLOfxN&_fHeZ#z?QF!PRD?Im8LO-^| z3ZaTci=?pb4zwy^mL$D=^{NNd*QX5&PAPHE z-PQS)imx~`^}g%)?9M{)<3~2@S&MkicOgreMOoJh#fh^bEwFsLm|sCf1B>%@`sI#A z4e%+&a#8&b`X%8-0o7|qo5nvKg%TdYjbiBPzoe@Pw>Q;F{xY5Rmpwsz1G4E{HI2y}@xAprct`|s}hW{Fu)13c-(`J@5_ zjf}k_8Z$Ct+Iystq~seb$}}sVdjabdGLXH^o;;w3B5d{x(eQ1?wz*7RJzb=NQllz< z&Wo3CgJA+iMSwY?Rk)CgX+UZ)Gs;6q?^YtOHe|P)=AOo;V{;V9XFjn-MKkOGk{|tQ zTW9M8^L!`%RIT=$CsZ95y%W!XmNT4+7tpt(zg15T?#W5ur(=SE@Zn7!1Y4i7{(gRR zu$L`&g@eMl-luRCek7`lt?jZNwsDbhRYPe=m|~Pg5?M8l`KkRm1SqfN#Pk+nB!q6rOh3EAd7DZ0eKG94 z?5b%m;`Z|+@TPk#Tc$ftjqYc)nzHa2;Q|@QtJ_c3%;HxaRY}EG>{osCc*iXljyc>i zIJ~T4cL?=BS9Df#^o9M3J^~Vd?Bv}iZt~srNgnKoa2zd*)uqX2=t}clo8EuV*ztb! zDf2qz0r0^#(Fsl=G08ga0R18*)WkkW5Kh0o67Q*AiXZX7sWX^+Eh?#eN7(6!LVhaM zF!@rrE1ughf}t-=M?Nl5A>nEM>?a+n z@=E01f<1`pUCCs|H{8G+^vn1_;On+rvb^#5X(!NbghDX&!pb!*=T2zzNMYUelbQ-2+UeF1g`v@UsWuyS z#mv+uN5IwByi{Zswbk2GzdbT|7$#_s3_O2$NCxeY(M6vCr&b$?rL(=Qjl0KREVesDs4koOf#?vzkgCsa_!x{Xt}bo`1B%f*tQh1U?3=!sJp-D$7=T%%DYOnZZ z9_3+%XwnEs2Q9RhAAPO{<|Z(8J7kScw8}8Ft{KKZra6eySXzllXsj{Vsh8uzGEW32 zP+8l#tB)o~?x~O}>%6SM8zU)9(%0n7%cAdS5_ul@DoAqBrbV%P!Pfth()IkNAzbc(Z~C*b|QQF@()Mkf5%Q;KWFVkmJ|KxDKzw-Wf0`2Io^E-jRl!*UM;Gz`qJb`Z)$p1TmQ)S;-JCV&m*RlL9@cVb< ziweIpq%yei4Ea6EpMJpq`p&1P_*pxVbwtb2eo5BOBK}#kc1BbN$No+HlCGUc`m;^! zoSQ=H2TvpYa*JK$E()p6xdF6t^pyLpr#eS}rFzjGb&gu1U2v!9nM>-N{FUrQOVK%b z1Kl%D$#ZAXMfPIJ+d0e1|BL-+0o*zL=i;R^`b0KG@b6Nlv)|*-#Y|^FWpLFm;9sRp z=i&amNPSK-NdFb??