From acd5c0665a7dcd2595ada62e4d4e799de447cf23 Mon Sep 17 00:00:00 2001 From: r00t Date: Tue, 15 Nov 2016 00:24:25 -0500 Subject: [PATCH] porting in updated changes from bash branch (master) --- docs/README | 54 ++++++-- .../apacman-2.3-1-any.FIXED.pkg.tar.xz | Bin 0 -> 45152 bytes extra/mirrorlist | 10 +- extra/packages.both | 47 ++++--- extra/pre-build.d/32/etc/pacman.conf | 95 ++++++++++++++ extra/pre-build.d/64/etc/pacman.conf | 104 +++++++++++++++ extra/pre-build.d/etc/apacman.conf | 37 +++--- extra/pre-build.d/etc/customizepkg.d/autopsy | 4 + .../pre-build.d/etc/customizepkg.d/etc-update | 3 + extra/pre-build.d/etc/customizepkg.d/fang | 3 + extra/pre-build.d/etc/customizepkg.d/libnfc | 3 + extra/pre-build.d/etc/customizepkg.d/ms-sys | 4 + extra/pre-build.d/etc/mkinitcpio.conf | 2 +- extra/pre-build.d/etc/pacman.d/mirrorlist | 13 +- src/ipxe_local/patches/ipxe-0002-banner.patch | 33 +++-- src/ipxe_local/patches/ipxe-0004-eiso.patch | 120 ++++++++++++++++++ 16 files changed, 463 insertions(+), 69 deletions(-) create mode 100644 extra/bootstrap/apacman-2.3-1-any.FIXED.pkg.tar.xz create mode 100644 extra/pre-build.d/32/etc/pacman.conf create mode 100644 extra/pre-build.d/64/etc/pacman.conf create mode 100755 extra/pre-build.d/etc/customizepkg.d/autopsy create mode 100755 extra/pre-build.d/etc/customizepkg.d/etc-update create mode 100755 extra/pre-build.d/etc/customizepkg.d/fang create mode 100755 extra/pre-build.d/etc/customizepkg.d/libnfc create mode 100755 extra/pre-build.d/etc/customizepkg.d/ms-sys create mode 100644 src/ipxe_local/patches/ipxe-0004-eiso.patch diff --git a/docs/README b/docs/README index 35ec9dc..20d9a77 100644 --- a/docs/README +++ b/docs/README @@ -16,6 +16,9 @@ It should be fine over ethernet, since hardware switches are much faster and eff Future versions, once this project has a dumping ground, will fetch highly compressed snapshotted chroot filesystems instead of dynamically building the entire install chroots (both x86_64 and i686) instead (with the option of building fresh locally, disabled by default). + +Maybe. + Till then, sorry for the inconvenience. !!!!!!!!!!!!!!!!!!!!!! @@ -56,11 +59,6 @@ All commands below should be issued in the root working directory of this git re but also disk space for working, the finished ISO(s), etc.) -The following packages installed on the build host: -(NOTE: future versions will have dependencies checked automatically and installed if necessary, -depending on distro your host build machine is. the OS detection and package installation component of that isn't -done yet though. 2014.10.31) -(NOTE2: Make sure all the packages you specify are valid package names. A mistyped package name will cause the chroot creation to -break and everything else will break as a result.) curl dosfstools @@ -72,9 +70,24 @@ squashfs-tools xorriso (in RPMForge repo for CentOS 7) xz -and *probably* a few others. The scripts run with set -e for the most part, so if something's missed, you'll know. +and maybe a few others. The scripts run with set -e for the most part, so if something's missed, you'll know. Oh, you will know. +If these packages are missing, they will be automatically installed. Currently, the following distros as host build systems +are supported (assumes most recent release): + +Antergos +Arch +CentOS +Debian +Fedora +Gentoo +Mageia +Manjaro +openSUSE +RHEL +SUSE +Ubuntu ## Configuration ## See extra/build.conf.sample. Copy to /build.conf if you wish to modify any of the values, otherwise the defaults @@ -105,6 +118,18 @@ Also note the following files/paths: --/mirror.lst.sh: Builds a fresh mirror list. Note that it is US based. +-docs: + Documentation for BDisk. +--/COPYING: + See LICENSE. +--/README: + This file. +--/LICENSE: + The license file. +--/FAQ: + Several quick questions you might have. +--/TODO: + Some features, bug fixes, etc. I have planned. -examples: Included recommendation for how to lay things out, etc. --/HTTP: @@ -112,7 +137,7 @@ Also note the following files/paths: -extra: Supporting files for the base building system (mirrorlist, etc.). --/${UXNAME}.png: - A 640x480 8-bit RGBA colour PNG which will be used as the background for the bootsplash (if booting via BIOS and not UEFI) +L A 640x480 8-bit RGBA colour PNG which will be used as the background for the bootsplash (if booting via BIOS and not UEFI) --/bootstrap/apacman-*.tar.xz: An AUR-enabled package manager. Necessary for AUR support. --/build.conf.sample: @@ -130,6 +155,8 @@ Also note the following files/paths: --/pre-build.d: Contains files injected into the system. Both 64-bit and 32-bit environments. Note: be sure to place them in hierarchical order (e.g. if you wish to have a file at /usr/foo/bar, you will need to place it in /extra/pre-build.d/usr/foo/bar) + (NOTE: Make sure all the packages you specify are valid package names. A mistyped or nonexistent package name will cause the chroot + creation to break and everything else will break as a result.) --/pre-build.d/32: Same as above, but only for 32-bit environments. --/pre-build.d/64: @@ -143,8 +170,6 @@ Also note the following files/paths: Here you can find full output of the runs. They are prefixed with run's PID number, and named after the function they occur in. -overlay: These files are applied AFTER the initial setup of the chroots. Same hierarchy rules as extra/pre-build.d. --README: - This file. -src: Supporting source code/source code from other projects. --ipxe/: @@ -153,14 +178,12 @@ Also note the following files/paths: Various patches and supporting configs to tweak the iPXE build. -tftpboot: Files to be served via TFTP for PXE booting. This directory is wiped out during any bin/clean.sh operation. --TODO: - This is just what I'm using to track stuff I want to add. You may notice other files come and go; they're mostly there for extra goodies/used to determine other things. ## (Re)Building ## -Building must be done as root, and on an Arch x86_64 system (future versions will allow for non-Arch distros). +Building must be done as root, and on a supported distro (see Prerequisites for a list). # bin/build.sh @@ -168,3 +191,10 @@ Yeah. It's that easy. The finished product is in iso/. If you want more verbosity, check out the logs/ directory. + + +## Submitting Patches ## +If you have a fix or feature you'd like added, please follow the same pull request process for the kernel +(https://www.kernel.org/doc/Documentation/SubmittingPatches) and email to bts@square-r00t.net + +Alternatively, file a bug at https://bugs.square-r00t.net/index.php?project=2 with a patch attached. diff --git a/extra/bootstrap/apacman-2.3-1-any.FIXED.pkg.tar.xz b/extra/bootstrap/apacman-2.3-1-any.FIXED.pkg.tar.xz new file mode 100644 index 0000000000000000000000000000000000000000..4705468ea28d7efab3b816453e6f6abc831b6e82 GIT binary patch literal 45152 zcmexsUKJ6=z`*kC+7>q^21Q0O1_p)_{ill`E&snkK9)gTgf*om#`*J}L+jbJJ9fW$ zdTO?1*o9fzYn4v82>QDj6d2{6dJwtwT{?sKcY*Z(SN!TsO>}OQ%=tbw#nI>3%wLPH zo?FYCWm5TL-flyVl`KmhsC@|tva;t*HLWzE7P_IxCqExAPbC{56Yx$NQM$ zG|v*3)>PLVaYs?s9E&pH_w%FHzdF+-`K4#+-n+R=#5U!)aUJ0646B^$ASZA8;MTWA zCo|^n7Jf9vTzhR$jQ0A=7mH77tE~RzUy+e5pE60frgq~r&$)X0Sl6umbEM^~pNe0! zr`uv5tLgWvZe97>FI@EE{IZsc(0_I-zrT;0`hKGB4rF?HSciUve6Ha@V{1%yh({GZrd*H*SzOXZ*rydG4K4<2CsMmODpG(@wmML@Q zC%hM&vtF2ChK1ESx4xw%DyMp^6rPDSGH7lMIDYEYbnTyO`{wYMO|+sG;j`-u3CRpPEW~g~FdmJo~biecDR- z#tSohHr{z^s+Y;+o_F5ki>>?4OUslTe1l)lciLe*4{n{^(RK5|=XutC$+$K%?$ z%Y`9bDL0kP3Y7F>>|Ia9u9;bPYLfCw$tb?By%ifmcsEVEwB%b+&^a%yxn57U$^D+8 zuH|8pd@5t5%r&zE(?T3CMouVZc=~~VV|VXz7Pa^5=Grjcko6V%=fL%Br^G`Ax!|Xd z4895;dc8_y(f&a93+L0SCro}RVqm=7>3!VR)+9cM#ZPVYC9QGTs|B4>g*vswF%GIB)USqdeuK0^u=IvSA?PGRXn_bHi5^_B`NhVAF=y_j* z4*{DmTmAZO)G3x=)0Zo*o>j+PpW`$6HZMzJuf~P*^6Hua=HVOnTQ}>)-VtX$`Hihf zIi=>C`UjuMyu1rP)^ktEt-d1{^fmM0+=XfB)yLz~mb{&O^;&jn?9SVQJnes-_uMNo zzJKryL$!FFsSiiX;$O$Fnx1BQ8SQj6e%G24cRQ{+deklwSiJWBb^XuMN9`>*lwZlt zI%8#eHhZFs+7sE2KSC<=sxM4Epxzm#w#L|IU69{~I8Gi#yY_Pv`1#+Ty0c2KZTei_ znqM4;GgBUKI(uO1f`8L~c{e`Ze4~Hk@}LL5leL&{^=#<+p=ROEv2gzyLDAIZwYN`P z%beA@|JrNclf0Y$*YUVKJ#&2Gselc>RrWXB?Toz5Kb7>&44EHebDV2>4CmZ7r^zV+ zL5HRWXY%b`#_uz)r$_OY>y0VBS0>!;e7#QKBvbC0cR@|hqPmM3q9pAPF=SYEWk*#q z9MW=7RNrQ~FyxzGcGW-b#ZQiPy+5`>v(e_nn{XqQ2XgB~mbCY>t-il^_GW3da#7vY z%BPycyTzmXqW?_aJm*A5@rIQt%N64d>bn0N`{`HBt2JZO?VzpphbPZEa_mvn0khi| z1Lr-uu>G2E{vr>ZrMvPYT=RnOFEZtgT)KS$Q^$l~&dO_pTsB8!ojPf?OmnTV`emc@ zuQmqmTnKOQ#C!vy3=ok(~|w7Z|p_%-tXY@Tk}uu{h6ZM zyQaBs^l@}Ob$7|Mc?=rSN4u1M1T?lxwv2D#j9Tj9RJMECsa1zRoR9v+vS=+cOIv2B zM31G>niJF0ckP|JtE+5*rkP&Q2En-ER(9r%waGCV-`Ck$6Zy#d}sbqtClsT0lEgbSEr~hq-(wav< z#CKOZq!_4g@YVQi(e~JOsnsEM#k+n^ovzu{8xE*SC>;KjR1#I}`c}AlzIpABSrM8O znhz}tnBDcNV)gNyAA1ZhZEQGs*5J$U=-$+y{({0;4~3t%+T49#a`jAyMdgZrA9n0_ zo|MI0#@;HZ6S11z^lqQ?p(Tbp`17v099U(!{yUdlZaI6=7vX!x+$U~|txS5-k@SM8 zuw&8b$1h&b6L@XJer>J&hy0fRF76gH#GDpbx7>+iwfhvZ;dtxm&R84MX$7+9)|Os1 zUc1@g@~gVCCnjPirIdKyXdYUsYUrH$^xHXch9_Q1ZRN}=J7eSE*-mk6(oS9y4N9&WFjIK92$XZN>|s7HdHuGe=n0p+^yqW3Df{-!g%*c=e-uj~lFcueM36|C@S8_|?p- zvbQ}iXx-S^CLaCze%lV8+lK5e3%qPzI^EkdjrGOfkLxu*IowVy57G@t@v_^tCo0E# zr?qFny4d^AavN$DIfPaC)a^V)Yqb7dh-tnpt#)&V`kxQ;JR`LtYaLDg-aYd$!q>xK zXMlEkk9?R4_i3fp3)}UWSGCRwP5!#hI&jOkhu4xff7q9H^1D?EOImMaU*^=8LLUE~ zgjg|MF)86?_429@eEt1VclpFitwt}8Ji5I(PCZ;`?ca`zuMz|gzCN&x(54e{UN8KKU=r6>(a>uR|q&SAb{9jHyn)eFL`qP%^lf?dX0g=gZ;~ zu^)KsC!ad9V~_F{ae=!Jqc;Z@@;2O_op-?Quim#}k(;lo_P;wL>gySKuH{d{p)8Bc zV|Qz|U+TEIkN*X<-S;ct3~;PgrC&IsTVwVcYVCn(*3wwg~d6^O2El8wllkS z>ujsSCV{if_sXoTUuoVwZ78G>Xjf1rb7HBf`|V9_K5Z&F5$_IeX!buf|JA1EOWt{# zr4Rjl-nH=Cy4BG&yX#)tEZeizXTg!WfJiPw<<##fbEc))XUJbpxGOnp(wcPliSyb1 z{0#ZDzjxZ)gOyFc5**W%9^A_?n^`+CV)G@x@P~d^IosGhgHA}i;4(kC;IYHnY7K|P z+WQx|UaH($`tyPbm)Y!fPCKk}?KYOO>g;ZkoaC|dlJ5Qm-B+iW?r!_8p1aMUO#4Nt zv+z257VZBBPvuv|Hf8np~@$uG3}K2|FTZ`cv;4XK!{y7vDzi8Q>TBcIyX!x= z$TRtC_4VX$vG;_Wbg`T2w(THPVta2ak4(vdVHQtV;{razb^CE7cG2v zH^Rf~hT+TbsI#0?dRQi(xZEHvEHrK1)Y5AoB~PqL-|$fMnv0s?tmVsZJ1L5qRWS(kA_;MNa zN@j6xmVReixybYH1K;x<#kLcY!XGruvJ;yi)B7vQY2W-Cm-44iIP08J(*Ne^&L`;& zUKO1e3|2U|*vns<_vgcD&cp<>FeR_z{SzX^a}zZdEGZOvu#op(8<*5AiJrqbzlv6M z-cI9Ok^Z$OGGBAM-fhGF*&m&k#w{qk8vpWi-rn|8Lf>PmA2_;19Tn=1b(k-+(X8+Z z1M7@tCzJh?_WHI7&%UA%S77wLfq7lDR-E9J-t$=^hqd1HeGy=3o2+!fe>IQY!#JZ| z((B7-9x3DBs(JkLky)uH#by|&uF38GvHgjLBdzeQ8${driGb+z$HZIGFXZ&1qCS3NVHS_yJIZUHFx$A+v~hrlbrIVN6hrRp6_q+<@@Fej>9J3d8#z?&!p9w@R>H)3tU{#lgZ%l;w_o|L6IdeC*&8CIyGeYnb@>s##;)(;W#_*- z%oClRJNcS>g7~BKJMQ<_z2Mz+du8E@skcp*7Jn^xJE!?nT!ZdXNtyUFefnEWeLp*V z|5u@>C^2DS5WgDr{d+>C;7UF2otl^8 zcXqMmc7`bzz*B_9{WN3J> zcizf+;~DJU$Bo`T-~8&-Jac<7sSk~(H1t1T_giT*YmP!;R`-(aH-D->cAGCX=l@p^ z4~L6Iw}d zJbjO??!NVOuJ%O5-9OrlOaoR;nfofGBE>gTlWw)(s||M0(T<>F1(a`GpIb{2fw zILYe4oPfV!2BwEKGD|#5g!7-jeIDR{&0XmLL!GUo>6ica=ZYNkF@E6pk*Bh5D)S+g zpU3Q7j@-KtATqa7%P?_M|BHVI>`QHbc`|))Vmv8RaQs2|>6k4!8cb>FGt@IfZolgL z867Ma_=IDo5Z8fiN7o(+@fSIIVm24)0x6;kPY?w>%7q zJ93S?SUDv#?Azf>_2wPrzw9ckCc6K5KYz3P8P~m@YAzms??}G1S(2#2YE`VY>*xQD z|EZS@Zy$OlF~@pK)7huO^$WI44q^OU!FhYqzl`9FNh?-q)&KCEJ*oTJ52g(z{u%MR z|1S{Qw0`0|leb*q1vb}nFD9*c)Ntv?Ir{Az2$#j11Rt*w`r9!PTj=V98(SAOSq zV*5Hj?=F^x!*ba>Uc4=pXJ!7^`PWmLrB!WS$hK=QBOH-yNTeMjvrYG#YtyUYt~(o{^u|?t84G10G-lf z%PrIcbk8dDzTCw7WnFv1X2!c2SM-i^dveeGAj|*rbcc>_;NtI7v{t`ln5%RC<~m*d zM3WhdeE8XZ2J0INGTx1_dXpV}onP*oz~9C!Y38uQ(S7&NZQZ~7=*=rzo&`+xIkjWf zd>?PAH80fnUYk6}ztk$Iz#^lWg-Pwh^_eVOikC0i3O9>BkiK14IWh5I@?)|8@Ayyt z7Dzp}H_uSc>x9OKr#YX#xqNag4c@iMf8&#P0gZMaHw#~Gp895Df_)0BvTetk3$M~l z=2vGI%swS;a(U*!{?m+{72hE_on9v#xOW4`Q)GDFg8zLxK|_h@3cvGVqLCH zJ2L4KuIny%Hc(1Kb?!TjlR2xo5bZrcun~|+op*xc; zYg2Y-sWk$dmlo2MLa*oHC8tG*z0T&?F& zxLNF@lH*rqygL`1$FM{3=7eaziEDrMw|?Bf_Bql?xhF#PPxYFwb+5K+v=?<2dadqm zldd*zk~zP#T0=#BQjDxn>HR}*X54cAEwSUpz3mHo*X1oJtXwRyX8HX^arNeN-&J0B zl}OlMvNHbK!%ZUjyL&^eG+(vznLV5MNIHu?tX{bea4w~pW+vkJ^6mjHYecwsemtQ`s*AfUH^Z8t&wYHO=D5n z>ANC-H;V_GCd_{+lx7$%WFFua?eOWwy=Co{>x|OUmo2;Mo|)np_(DndFB|*x7`4?` zAB#;%>AuAi>!ZwbnEAmS@tLNRvUrY63Vmb{-MV1T>Sxa#ze{da*}v%KK1a!af{#@- zZzm?b+denF`9t-=riBM=<5+fI|E*}SQ~l#lCC+ub`{b44PFy@&(|F*t`HYimW(w?x znlCv8?T8i@rGBUgWh*bnUGFLPrcmHoVUHzV6!wWyi~Y zb^DiomjAKrukWTi?-Dwz_TF_af0pid=k1w>rzxH~IuBVb6qd4Bu$FHywLW9r6LXt) zy0V5^Xn2Z4$vln&5A9bPF&y~sCHz>`R`1@tSxL!9m^a?M8#%e|Y|)Y`WmH+{SKc1p^@^>fprmaUo_HRVF!x_q(jN`uW^+EtCdm3q&f zJUM%HWmL=(Q~u+#rt3-l_sMnJIInr1PyG7JQjaQc^*#N;wY${1&+x|+XB~yZW{orQ z8RXv|Q?C^3X>t5ALrt|MZn@dVm0w$L^oegyS-Mp3)9&9hjNdUda)IP4}rgl8<(+?Vq*o7T?DsI>LdMvXrIQ{K)?nP$AGcx5OnoSmcDsihujlj6`cq zdd)v1u*}X?i;N83Z0$9>&+>>Fn`nST(#DfwSqJ#~zQrm3z8YFra(3dis&JE!JKl!f z%-lZf;zjX`<(v20X)rJHXv%E4dNJphM)c{>+`J|HB_jN0t5@>P%h;!4dm^Oo;A+v# zIeyJcC%?=;7M^Bz*-+hZD(8htv7_D$JHOX>9{4_kZNUR=&ws8GZwiG?@4XbrG}PkY zii>-&^7qF1^m&%!Ewjl)73&xr3mnJiY})4_lC zrT(!-;n&)B;vK7B-dYyBMmhfALgin(t|vCE`8465!x@q1k6mxOch7QJBrbdY@DhWQ zd;JsI{~hXBAbxMDy4Nb%GgC?>+v{B|ew@E|H{DQV%b&mZ*O~NIT^AQBXJcE`VzPGY zmqw+;^{!kT`^5^l9BixO4jt?l%4$Av^6|IT{>u+_{*+iR`+sh=!e5bTO+vM-taRkAK#Wgv*WNx$iznmyT4_upYp|mzomHPiFC%jpL6ZEt~(s=rp~pYZ1MAT zyL+!(`B1xBdQa;YC$om9tJ@VC5BOO#t`xRf>C0JlkhN&_r+ZJXJj*h%$=c#SU4iX- z1#frqPu@Pax#rK_KbNR8(^??1eQw{2b8B}9eER)QiRZZJ&6XpMtF9#|U=@fA6_4>D=M}e^}~WXP+sEZMYVd_TA<5mrk|t zzE@Uz_Ds&$ad9hGUsr+0%H>9(^X!-VtBZXPwYzk2QVVAx$FeWaEv)}CB<9NAiMn>} zijnI&NnyR6PX!EDuw4aZ}LOc+ESG>+hx7pXCy; zH)@|y+Pm58sPVCvs=`4V{&U|#`%AUTDZfp%?bllJM#roei&R&lARjE&= zdSyyySIqKUmG@UEJaKW;o~aB*e?y&r2Kc>w@$Z#=Pk8>!HyKywJF(ANefOHYjI&$2 z;l?>1)fE@<$o>?vDRr)6oxjS9@$GGy*HunoKhNr(S!(jC%qfxgYX)cPrVMqfX(1i8 zE#{@#K_WLVCko!sWO&#XT)kU+vqHAn-4~K4uHTqzv*TTLm9%ZiS%=A84%7E@**tqQ z?Me3R18(#BjifRwKG@diY&MEExzA`GJXLzevdH;yr~mUwvnlXrl%C$TqC!j2XOgjQ z8}|Wky?=8SemE8OiODQ|f?CmEtJ1wsEmA8y(yQmZ2=ro@(PGrK&s}X}W8v(ogM9}D zU+(2N@V-l9&V$Iyuh%+$Uz%oylaBI)~xr`_8oMo1GhO z=Ipo5D0=pOdsx#1+10LJZ_U)L-e+c#>m=`=?qC0c_13hZfNCuU0MX?#C_-@v-(aCmL+zwR09 z41LzhTs|cG`kLL7&8(}}nyNON=YE~3t{LSeW!~8LN!|Chi*3+m>5al6EqBC^JFO22 zTyFR`*_wxK?(Rnwem_qhY&;OWpTR<}_4k(B$(hSyTMFGXuUwrSVykl|_(uMZ!%U|p z9u|3S!2L^<`#=BpEhe)3zO#NftXioa|G)LN>zv#BtWO9eAAa_#Fm{%7TF%vzT|ZZ3 z*NCyDN#5ZJSmAvwWI^((kSCp&AMGssd)- zeuKpK_TU(;lZppA*=iam&6ePtmZqz@eaGqbb2Rr_O|0L2G0|v$iQNDC&0-Db))}1C z@VnD-<@Hhxe%Foj^Wt3E{>JY6vA4-xA^-3^MMnPUr41t1T6_u0Gu^wzPAC6+ws=FS zLg}0ZL9c9Q-M+(<{JHlBY!v)bpV8!E;mhUZ*v zpQj$bY@vqJrDAd3tzUa*+th{}Zm3h6;k#fJN6e~qZ~pFCFFHTq>ACZ^x-yp&wr2aR zVRMdrZhp<6kYSFZ-<$Y-``J3V#4Iv*ai03Isy~up&uh+8A*WXz(^o0=Xt<-|(%ErO zr*nqz`LpwO-b_-K3tcjK;#OI$mr=2$$u_gozB&g4wjKyb;^BYY|7NvTMPbGDi8=Dw zy&4)R$qRqazNGeL>B%70h1({tKlib_l=V=$T3YnU#{ybH%j;IV&z|L7c}{ln&jai8 z5)0?ty8L3YgZQ*}!OV@{aOC=D4hu_q&77eLZpQ)9Z-)ve(Yoxm2h>a{Dkp zy1nxK2Pv1;Ws{Su8O5|>EcaA=VYkfHnzN?oZA`SLN7jO#-Er>{{1@}-F1Y+_Ma-g? zs*-Xy*2?9m_AC~ku&E{UUS+A|^#q4+92|4s);|wW6ZAjmJah4>+LH{Dndu7y=FRsC z<49{WlanIJ794$e{r+U_ zF9JW0m$&|6kGH-o?)}cw$j|=zjprLZBo-Ug*z8$jIVrc=Pjiv$j}073Z+B1M>9EyCWV(Iy3G?|2 zEc~|~zkHspTK#RyvUMe43)U@^wXF>~o!;=CLWQ8|FYlVDmj9VSX9V0VU5>JDxos-@?7&rZ zxruTeuL{~8r2aSmFgtVi2LPkFh1PH~yY*1Q8{ zUBa*4M;aeY>3^Gl**NjD_1(9OWp=w{nVvkZb+KjIAE_tVJs1@lQavd>?Cx_sI>-pmx8$$AUg429NxoOb@)fBq)rXMVia2X5|}!)L&yy`%4d zc5Y`b_tnY-a|e@ciqqy_n6Xr*`gPRh<)th4#$D@TvvWSA*DPAH?fGTrHOIc5|FJ%2 zd)}3wEe8*u$o1pAy<=ZaeZa+vlM3ff^@o}qxx3eVvi$N78s3&no3nc6#?)?THL~1S z{UjvVXrwGDq3BJf{%H2_fRE4mxmc6b~)_XMSPL%!P;Bw>$CayFHNfQcqgl!^vA$y~EjI z^^dkvooknF$oNi?t5*iwsFO>B8kGNKbvnpn&f%?;gyYBkNnzT@bxkK`^PsveOtjkv&kf7 z?;o{q?yI_Gxeg>qCp(l0?K3~c_>tdgM|SxXZk=q8pu_K8M+*It+3D6DGPURbq?C}u z$E5e~y5|@$OWNd}GXFv=k10Q|dpxw>7C3QtNcUIeXG>mmayT%}et5K}C-C_7@Z_f2 zcsbYir;>X1mn2@_cW=f(EVTbF14Iz-&(SFFeI_2ZP|R=?$McP+pjB0tV(h@G;?xz zYZ#9t_i-*IyM*h@qMWDC7oB5pJXO?o<)_1CR}Rc`U$t3H=}Wu2*A#QvBZ{vxE@nIY z+5J~iQ@7ym&Bgat=F2ECnpOuy3W#i(8{ajX2!>*bJZtrF!aFYG0y(#v{iYQwu&^fb8*p^%J-jS<`|p)5);U{{chvjsfvE~2evKx;x(sR zLMcnYg}usJ&0lyIFlg-BXdyvvV1)GAz-nNc(1_FRG^VY_+|k z+wl~^sk?U@c&9H~cFz80BRflRv3!;E3a`$Chw4H)I1*3XX*kYUZRUHwpG)B7=Ka>y ze6uZh{NxwzJ$S5O)5Mb&%l`YUz5n&p=WRDF?yGHEWPQ5iV!=)cFM+MAZF4`mWWMh) zdsj8NeAbnIjv;QxYRuJYnYo9uO z4XddC`RA;Wr$TNv2C*#CU-ECgizt7T#lOPaKR@q36!)g6_}tGTv19&BV*S6Aq7OGd zPU^`PYe=s-t?WDsycC39LQ*+#pBaL&tuU%48bB?NphCynA8vOMz%gV zDY~3jukPBT-pIUX3l6ds>&_F~Am zD5jVYroY+S(fHMq@Of6^Cle3+o~d7|*XZIInz47b@|Q`ao8p3sbmiZ@R6H&6bV2Vy>%jLMLR-K5IMkySq%iNwK~ER`&3R=)9P;h2 zD|>hj>ApE*`||rg?p}^b8x7k;y4~X3*e7?!+%4sgvYu4(q`2lyt>m`d>;9Q?-tFE0 zV9llrmF3D2JD*GZd$=R~bGBCe;$BTRe(`O_=arHQ`&64LCG>`R>>l7>R*crV)B0bgM)<*F?8-95k z+`S&5^Fq+-75|q>XI3rG2=lAEAuE0(VQ+ov=1MiD$xN}o+|7R-&A*>|x=Q|~%ES#1 zckR-RFLTwFcdEU=y>-v_^~o7`!WDLh_Q=0rJ#n~yhHdsrtEqon1z6+XtXuwo`^Dj- z6L*w;tJ|>kK~wFSgGK!HcB{H&r#nf=A38tr;m`FuC#imN#Q9V-g zo*HQIUM~H8V5aSio(VgIG^V#C|BUTkDY)W}@Pe?_s#AN;Zr$V9r*=p+teXA)mv1NH zScAVVXrEPN;Zw`9e4n~aS90Dmn}gy(t1iqx^ZI(#WP!yRAuqb`?BhBcJL#o#rTf?Z z**~qPi@ZMNx9IpOg9R=@i(}_!#w$23ds+V3S59x!I^E{Fswn4`Q4juD@;vdHstynJ4Ev^8)5-uavz@cRascU6}Cp z^wmF6F{@8MDf>3lOh{Crev1f){K>#;bssAyY>IGgpV@hfoBQFM;+Um8S9dlZW3d0e zKypW(N6Hn}b8F7Zg={kuU*Gb*Ve_@EqWZ;u?(ysG%saF)=4j`=o5y%&#s4#~POm#w z@8zlF>}pYbYx0&tqjj6gCHS9}xhd~G`R&2=aM6+z6Q*YU_}8~?-R`40Hw1Op&wBcI zt!|?4WYYystdfV5vhsHqYj)MBY@GQu`?t~=-pTt|ejPtxEVRVZMW|OMHdW(icSOh8 z7qjX=uI9Y6OX`AqZlv&nwj(C#=j%DcUB%5?IS`3I)68)JXHqJ1f5SiHxT3R7GI}`jrJ~L@PYHfn#+_s$ zu<*w=zx;bf8)KgH32a(7sp`D-thC3%293+RH=nuS?xJwNv*Y>N)*m6tuUT&i6QA+-{+8!Srdv{;K;OyCQvECp+A5P0C?Tuh9K1SURO)r>rmY zlimJHkNS%F$?rapyyIEtvChYaIX4vUJY0mn__BizIK1RPpk8$6pCkC;pv|?a=j+oCeen7jU?=&v zf7AVDoxFXE;v5!v=-msdNh^mCFfNuwO2;V{JtLTFUSY|{IaoSA@kYav*wF03S(P8Z&uUAm8MrbS9|=N z)bRI>nb|=z>r0-YTW))DxJLhL4rq|lV$FPg>*Hemd;PheO4wA|;?HE}Y>KW*2s=|e z*MWsKt1hX*uP(Qw{b2sNd1pOuKGZudxny-5LuQ-oO`no-)9H~`kCpSS7#HWQ3)&y~ zrnZ}VV#eEwq!@kqlTF@}bta$Y+kC@{<)V_(y;fc2Wm+pv3AC$LRKDq#lXctw#{48p z*v>Uq_dXJzQ=Q(MNfa9kxVR_VNvk-|1_1*345-%yM%q{xRVfjy}#j4 z`3>v71&=S?-S}E`n?}ulch2=&Bhz@bwyl|QTMRgM!)vpW7m`(pUR!up#Z(s59gI~QrK9W135Yu*O-X3#NUqk)RyD#za zMH+uRxo|O;?4G+{SYJBqD-rwU=lkXhu4VzGqD zk^UE|oR%k>cLn9y7WTC6vbYiR_issI_T7wW`;NTq;rjcP;};A6*AuCxYa+L+ZS+=n zS$#9nHk`{jHo(4ghTi?YcU_5xSb6PMM}2k^y5zP@I#Gz}f?0PN&z4zRlqTeNXM76c zt@4YB`MW(?WYQHy?m~MBhZ%n?G@jOcJ3g`Mx{yeqS+`qAoMG;z`L>rW7OeZm8?$}Qb7jvvMUtyNyE=b~+_gtq;LX0leGu)TM2$9xeh!B)n+&iXl5(82BQ$NJS-TBp}W zubuSGT&Cqh{plx1n~e^zG*Uh)!)1Q%d>G)m2=B<`{Uklr=HdHk_|J(EN)ROk#b4zc1*NT1db-r!-*ClF& z>o;#?QSmYj;rDx6^!3+%zIk8PJD<8_G}*r5jGd^tL8N6~hJ}mVzM1MR()ld=l%<*! zX2``a`cxHGF8bB5l3zG2`l!gyGkcFphuBs&lu9SstCb zYDG_^AltgvdL?K4U6>|L^)XUwIw^fID1Pyy>2}+G{oeid#?)ii^19nE-Y6+qJMr_W z8yjzQm;YFKt=!_9-e$FJzfK55OZRgKF+ATeL-cobRrJ225>-|kUc8#v;&ic-)8Ng? zfK3JKB6e_WHUGl0;N(nA&ONCuh0`Ma|FR^AJ4bsMH@lttHTy8jrPr4~e3+5+(A-x~ zNb0LCU#I@tDe^^a_h#fR{dBL+^2EE|?J;3*-Y0nf)!Yy(aj||$#GBckdq~zG`Rt-Hj6;?!E83Ba;8}t7U=u7uVK!@;>^ueER#CHO58fzjSYZD0@(K zkGF({ukIA{=9q)6n+zsNZS}R^r_<21{qe_^$;-EX{BW>quGCtafHQC8ZS)S#d1&%( zLdn($V~524>IX0L6d60*td8#z;xk*hq4B#tWBZ>wHmk*agMKL;(3Wuv*qVRvM_0y= zPH*EKt72^GCz{)RWZStp`|t{$OH+I^0zG!kWP0=DySL&VCWT!bmo}%aQ1#jNW7mvg zFJ0S;;@#!{Zpxl-=Xr7<=lzL$Q%|%$|9tb%_JacX9|JetG7&nZy2|`|$$SPS( zn~l?HRdvJj)sOSmd@1cbcQ$$Rk7d;h_d7nyb?DVtahkv0`D4$QZ7<^k)&+e(-t03g z*v!1{+x4$Sjn%btH}LM1JJtUA#$$+7Z=OSzuM2JMX-dh7Oon(}&Ayi+~QL~dhgL$3P)X8U~8koKt{VP7H zrG4Dz?ZF+^PmN5oRt9A0p3m7o;TS`eT6u?{tI#@)|EY)7f99BbCv0SPR6Mei7?CG}-gfr;Ce#h>mNJg*T8dY!V*qiNaspZ;gR zKKttZU-zf_2H9zu+0*zpzW%>jD1P&i4F^3ovAv4DxwX8$U*gD*xX(_uwcisP^QN77 z`R8a4W9W(}+zXS$Py4H!c&qI^XOqfgHxs6lK6Z!8{=Jm`^Z09|+nF~H3$88c3yn)z z`cJz1Vq_Ud=G()(h4JhBcy6~UnO85Jck<56SBuoMlyh7rUgQ6DP$PitAXA)K1y|yy z+4HV;?r>lbHeA!mbE%?^-+A|eE^GG#8@rb`8vSJvJzR0*ufVj$?3um_>zn=x>}Hx^ zDweX$Q~hA{W2eVK8-M8~KPj6!!DCX9kmhF>R5k7@YdzAfM4uD;Ihl~UL0 zY~D?8`+l(df2HF58`r)BvOO^`n!|Y1bnD5JpO-Z3F*IZk*t~vX;==uFzpa~luspTK zRrYkhgk3Tf2W}-?o_C!|#6TEqc+bc6XCp$_|P7 zGn99~>X;dwnxMLP(I0h>S>c;fs!#ux$jmX}a1D{+Qfav6%W&(-8Ozl_)R`ZAxb-i} zK=RNfdt0t(5pFQZI;->%%e(w*o8C2D^vQeo z&bjOKjK@6T2Ei|q1#LqXx%WKz@#P|`dO{NW8i5?;r46?uHpRMh8645d>Mw{2`tnP9 zhDYi|x29)0kNKz1ayj$YF7{kS!EV9Cygw1Cr=MlOi`Q7wc)L!b}m~%ukVw28G)x07pk7uuw5i|bD58Rdv6yioq5fS-=k`qo8t|Gxh_eZ=?fJ*vs* zHS z9bQ(FUghRwaAjl3`?TY~uRY)AD%!2veL-NBQk~dyU1pw#2VJ=5*K$TgZ2#KE9>=>V zeV*k#kF`sT?L;r;Hb(#J6+5s@;h(LZ$!Fo_IAxW|CRb*;ep|)AL&f>?^OqCU_Fdbb z%o}^`ZQ;3~Yr?rAlT$n8-zDAE9ogDZ0 z_5`>F8>|)UNt?jf_F`jG>5Cm73?(a=19)rd*A}HY@$-4hJL}0Y%=~)htMd0{AC#Bg z-Ya#={Qtekz<25Q&T`0jPs-Z3`Ks4h?zBC-lHYi3D-ag>6~puLmB&fn5{C2DzL#?5 zrcU^MbZJ^n{(mz?rmC|~gI~7Y*+Fsu^_g(Pe z^W(>&z6v(ROg)ReW+zQsyHEV!q}yJ9E3+9FmfehdT6z8aZrf6i4XTH(%`J{r^k#5t zeVpBFG~GbWb+XNiPVFDaQ4^!(*@qmG&1-oFxlRWs+}qBpl^9yR+BS^ewBja{v(3seu!j2628 zvP0eNz|VDDb62VL?AY{SrJMVbu--Wv92$Z$qg#LWxy)}=NGw)g5t{$Nr`g@}`IQ)l zE1nugnmsy2;l+ho>pF0 zZc~+We!E%suPLZdJzv1bwRDnAgw;WYzJ4*zH*TVvjLvv@stfd z$y1FDPr5IfGk4Cl+-bj_J}G??Cb?th;yrH0Kk_Vk^aWjgw%va+^;raC!@MX*G09hN zE_i4}zq9}KzFgU>(Dcw}ucpLa=?!nLTv(_SlfVDh-7>8O9!0x)cYIWy@W@oIsBdZf z#qTm_ziGR+&3i64<#pYeyR%R3nB6M1uCnF4Ze$F{N1@b-XSXg{e^-WG@AR5B=1*(2 z^G~mkI(_?4!237d*L#?9V-xo6&tPU06O2ffo42kxzHt4)ch}>0GaPhYZ_@R(X{+&) zbiap&2~*BW)tKr>OYm%&@~-=4O8?|j&dfVjE?t$u?8K5MVfp9=dqG*5rlB8Mo%-=F5Ex<=}bqeA|-R zc+u0oYRx}_FWpL$&6LPpKW&4;))(PI>+Fhit!wl=rp$GUjPv^M9yoEo(}(GY=c*W< zUhtc(d{N%6NP$28&W4FGN#A_u=krC~_L~*dP)&ewh7itUk47j7<0Re7-T#%hV~ zDAlb_>#}s2GVL8*9D}2bJ_U2{%&ZbYar z2z&U#?x?O(N7GUshR>g^;+vQ8RL{3K#pd;VPxjI!FMSJ?SN;l;KRIDtNW%Iw;pOr1 zJ0|ycO?6qYcxkG~@}%`le`;j-=T<*SREUz}?faglWKwiP^8VI^OZV*gb$|W&=1C8K zCNA(OW(+fzb>+M-ools5eQ^yN!-R`oK?gP+6&8>5e|L3)@VCp!+uwX&$F1~Zvx|Jw zYMmr@G3#rqHqTtQHoZqETIj>$Uneyfr~OepyC&<&-|fA^NycpRTwKL(UO({j3-9UE zH@`bqzP467rR8;Ssq^LQ;a3g?e0XM>o`2qZ%{mhs^`|?R+-~`s6m#&fu9#}P`%$|R@u}V_yRu-qV#liY5zDz!A-z>APe0jX#s*AVzvp?oPADz8a zbV4`nYU##n$G*KR)qU*m{`{a#y7-Q7CJC~_FMW;Hcu(VS+*##%`SMH73EO11*y>Ea z9@ZuO;^9P%b1BoGvGuZr=!tnq27og3%seG}a1VvrV6ZC-ofY3yOcvubN!-3|&$^}Aen zIp)CW|FHvF_AaA;t2O?C$ZK zPW^P>e6Uh#(;C}%D<^%g%X-6DIG^Xjq0Q?IZ1W~$HVeDIE?MrmwfuRpYE_Pl!BfcxalIO$h0OdPR zH|tCgYP{%g>Am5IT$8{QF$L*}?v2Y|)oRNxbiDS!sO*&m(_~?*CAZd22>Rna%X-6Y z!Swq|+y83wh;Lu-sD91QRN(jLQw3UEgRO;IR+(H-O8y;wTEHzfr0D*ZWn3{=b4%Ht z=;b)6Zd!eP*XhVvp~)@1B5UourabZLFZWt}r*G?%%SMVHo+dn8!_wau=zi3*BEom$ zON}KG-@bp7s>uCreP*W3(T{iEXYCeN>t1)xK6sl#`_!u%3%~nBzQ2@Od6K=Y&r2!s z-YQwiyT2}Lsh2ByNch%j#6(1#=JLutz4F{;nTpAqA1d|QL?1GL^Jmub{zr4pyFFS^ z`|u&#(oIu#$asqL&+*#0ZRXFRsS%z37$GJZ+?? zn7SqOqOjwuyP;YPt5*boAss1Y~SRJo;klazBqBc?9H#f zOnaCS8)qpx3&n7@B{`oxS))u&WzKGvMPDP+vy{Y5lDc1y>;sez%>EuIE8tZn$t{bbK) zu~q9uYD@L6aG3vU+WARE%hsj(Y-DNX{ouvZ>OywhHjLq6YqDqWP^mZF@0c`s%M@RQ z^QH$`j$XC8cCYrGX!UB1PZqP^*6YT*=XGsnb~I0YnC!VpyHZ4bdzE{0_ym?EnTf2D zx2{fbS-s_(g5W93__W0-S9AJ=zB03ZKK!cF)cy2Luh=Ht45^#jIpkB%pYva}X5xu> z%}oVMCgha#&ghgEE^65x>29i0uYP~Wq?!9BbbZ|$@g-Vb_D!^j6&-oG_^YKVkT-h6+7&%ri3YXb@xZk!EJezlduGxDIUQ}dr0H}uv`R+fnQ zpIk9(Wnz4e(&g{=+ONcpbMq6uW>&16^shyi{jo) zx__^rOprU`#5xt#(-*rAotS#oZl1k@m;BTldvhbgzW16gv54~FRGob3w!Iy9>&AUA zo6=0KL~hR6{&Mo7z5IvvN~9HRXwGZ5_+jj>yjRyg!J}zWtY&SsYo&qYs+x1pc{Y8z z_TX0Iz8|mMen$oTI&@*_WxFZsB9iAlGhHI+{dA?G4vXL8{P|hiZ*3I+SK&LE`M^1O zXZ5dhf8MhCG*?7A%DCA~p(~Sh@gn1ib0_i7YJXlk=kL1Ic^Wi*oq6r$v(w|4?!WH7nE&AMLMdI3HzvPM|C`)@NBqEigEi3~cK*)4rTWRQ z==nai-X6cHv-zy*`SK@b&Pn~`zU=_h@lSJ2L>$ehRkKctIUcrYm5jO8lC3Y_U0Z$i ze9i8a;#XH1nq2vO)TciEk+9D0a~A#68Jd)jzO9Pe6)MlR%Vl>{%pzU$En2fq)b~s6 zelMlya{t1e!;KZ6_0+P|R>X_GSS^&Pw#5F2XZG_c5Vwd}VFR)ulJ~Ti;cTo_)#GZP64q<=J0eIv@UbHc(FK z>Ar^LG95ua9vrWi?|u>#9M;L0kv2u(m(R|k&(pPDr;J~OHN z^=NbVt$jyc^$H(ccf|GnuZJ0Ox0zmR+&;D>boDen+tdSAkG5@`?{+~(J=W>nmo58@ zO!$|tUOQ)LOWUUx5*lopa$>PpR(agp>ppK<=6k6&qjtmBb(@WQ&OKeM(_FoTwexjt z`#RMb3zAAR#AY9?<4b)$)8VmEt>%Tfu6}i2yWL8KGb>}h=l@LA=;HXEJMY&Wc}FYF zcPBqCE@&%!G_6R7h51}Zkdegqf6U7RT95pFY@J|td+9X}UdI)6E&D#O=Wl!C+4t~m zfZJ)^F7BTj&F=nKR(A0298FE-Wj|-~t~Yne4}I>jZ&7o~C#UdF3wp)AX_~mHKlrOL z+2F%OJ)1=~dU7TI*iVIr?JHTeRF!4r+Xr9o_gLgkd+rd-5aMz8Ky~Mac8;>RKy~Ye z@W~ZsXBTa3KehMS3%;*hzCXLvSLbJ(-DdWDS4u!i!_o~Fdkp5h{WXj0Z1?Q;Zu5^G zk%lz}(u*x7h}>8-d4G<3;If{a8BK>5Xs%enVJTib-RaMMKXu>nJYv4{VU+2)#=Z}X9wGc;CObM$hARKsy8DsM z)$59#)4%?jp4}y=aA1A;E$`#U&p+RF((IVVnwlcn!b}G1VhV{p!bU zQ!j-Die>hm5T9{ScE+W>(Fu~4iVL??N%WQM>61BG`|5s=(D}xeTMCSgo3q%LIXo-9 zm=Y!@I3ZYQDa)Fqt51D$?VewJx>D*Bn|cC^*X54y-ydC!h_$(qZYjinN^)$$f8i3Z^q^UR-!))0daC zs!pbF6P9ZAaEU{T8)yk!`0SLs)uOknXnJnu`m${$2j$G-p-p@*B;(;R~eh z*6SUNJn}Ity7Jsk8M}#7e^sz;XK;(-{Kw$ta{tG=?+fpgeNIufT(SL3v%Q%8_ zb`D!^&nG8#-c-)PjhYdoVc9OtoMGN(RZ$GXa8F7zk4Ke`=MUjiv~M4&xziB zuu#CV?FqY=+>3^~oG%3*S6^+3{<_L=($PiY^LaY9z3WI|A2rqO&LZaC+c#}?F{@PHdmnLz%X&%BiBnSj%Xp41Z?QN$ zVOPnHwf~EI1Fxiixa#oNB*}{VW^z~|_x2?&B}Ghc9$TG|Y%^nuciD7W?8Fwvw{2}4 zuhqW@nKM1H-E+Lz`0tq%?Tw5*jo#s27gA@oP4A08k}BM2yzzC<(z^zZtF=@2 z-aK(7%)^_%rfB;Xa!G*YmQ!`e@CNp*_9J+Jiguuy1fByT;dnq9L zPV2$XcsVWY&NX3bolm9)h_laTXh}Nb-|hDK?N%*s;YYkapHkMiMgG0B;O1K=$;(eq zY?-YroqhJuMDDh$XGGFEXGearFZ5(E>0DKiXqzuqG+~8xxN@{b^MVKZZ#P(obHqAH z9senD^~2tZXa9LOM2lp~e$3hKf1%8h+1Tc(G9&jo)AM~QiqrZ;?n&n9?>+InP2fc; z&%>tE$~lKuO*(zG;oWb;O}$mm-z-?H>&0?x*P4dSVqu~I&!3!W^(dMq{cL^yi?}3D zU9S+uX0eP96C9d4+l;TU}1-mUysqAvEE9>|D@+xT&?>yIbUa99vjpKY!*#7vTb(DY7XGcMY7OcyZSdam~Mh46hE6*XDn=Y`sKU(ViqGCO8Id+xr8eitt9Fzx2*6)i0RAu?*58@GSwIl{7w z3)G1rY|nOs~@_(XWf})%U>@mx_MB4aVwkIytSP3XRR#bQLYQmlJUQ;^d$Y}?bWY( z-(3G`Ed0t$P}*v;7^CET``0&rGd86$&36+BEsni#?bUIyAOB)Gg8%IG{kDMT{h8!| z8>f5@Jls0}m9gHR%l~<-6|Dn9-ejr@Xx9ok7=ONZ`vohv*@FxJzrEhAZQ-|>O>FCm zWojb&9o|P6Ef{Vr3gr^nGFc*OqK$y|m9mbNv-i&2f96zvq@CB8{&F+h!jB)uON?MQi(4CfV6>>o?9EWM{)ofBs)vyT4Sl!ybW!8aT|BeX1kXBsievadL z&EoCv>N)Pp-)+nCyM0pBa#L!m)V}$74m*HV4DCohiAz@0YIb zTszlFsd|6>qoi>m^KhHY{o(^(UM)M_TE8{hP2!c4-tApJo`LW8%#jN? zr@QkjSI(^~(jrk^f7`?|a%(*Qbe+9C(|uM~!MYwNzFj9=s!HeY+8?#QEa%HxL+KUw zS{59;A&}YK;+ptFhgW4&d$6v(=y&0J&1V#>S!#0M26Vn`3-;77d(dp!suh_B??wSheykJ&593(JDRm8{P`udso<90KB7ED^O zc3Q*^#ZN*EHOadYQ=_N+V%uIR=oE4HjNb~|*~c{tjJAjvNwOVNmY3By`s}g2lcB(> zl()T8t5P{GN@tq|={I|Z*51@=oo2z-oYSo0+M%BIo#FKh&CF=uTOWnbGAX|KpYe3k z>VNb6WM{TA8~up5f5uCN`Sq#eEFn*e?VJPIC#*8ydZ*;cxa^zs-fdbnLQ58MdVSgZ zZ-rDb|GM8IO0(4eh_sd7|1BH7FiE{)XVRN>lg?~1_vPGX;daUDQe9R{*wrt!PIDK2 zz8Pj6Yg9T@NMgcDy{|JEtOZKDo4jUhlseodt+#PqhL_KD*5=dFg?nZ{G|)8r8Fyo? z!@nhdH$U_5$hya(C40oWQ1M}~iuBCa*^LKnK3-d{^KlBmbq>S+f3g z^W~9tnxtiyuRPtjo8v|j=kmn+l~zf|{e)&ZE#*A5GN7>Jlb&|#gtP~%vQjx%vjVvD zJ-kxNSA7u(I3KH&T+BBi&EZQ!;VRSLM;=dS6Mx!~zp?5U+clQ7-T*m?H(y>_4fpEX>fvdm9E-VBWyj%6L})&)$onFEm!)+?8;!N&1TSuA_Uh;=9kyd#UzAM1gaPQTeWS zHHtp^&h)!{^~W~>dtSHf6XFVnJ3TZ z?0WKL`iqjiX?z;mQ|BIDrowWa!N|-{v*av$iBe>CZ|QT1gV%EObyf3EYMpDEC9EYj z|JRS4;@T^@Yqf%pI!DfwU)h%6H}BgEfzF@tVGCYyt`l$D6e2i_q3N8F!?J{<$MtGc zYA;PSXiBnXWLk9PL4ca=R#xdhOy{TSr!9ResUx%RnajL=<~+YA9Jl>Gx8~7gsmyON z^8;tJw{fJJf6Sf1wU~9%-mf!XZhNC}xz^j%Z(>-W(VPPgj^5J?CfS~qdf#!dF2PzT zZ)c#_Y|-MxCnwh1rX+UU__NQ__uiwp;Q-82RqMoJeKtfZ0{o(!lb*|K2ZIjxZSrrys(cD!f#KDViV<2+kG@AaM%#JeZR-MBG& z?Yjg21vtv8)J0#@`i; z9~x#fJmWQg)U}c8NV!z(LYCb#+OB`{oE0(sQ`N>Tn%+0M?&{BBl$>|-+*Q#{esLM9 zdx~!bt4|7+=zB5w@N}2J6MMJ#R%M=UF4(H6>7a3)`|WqtIr}ZOFPN!@1x_ij<24n0 z_+`QGn}u23ns3al?@U>qp~S{{*zEcAef{DEZ)IN^{XL-}z>(uS`QfL_wAziZ_n_1W)+?Bl>J(-v#+1``j?)JUMJ;V z|1z+8Db)CWqi5L`aaozAlOl{2ntyjcR%h-z`QiStgrajN!soXi4%vU$^wqZu{L*u^ zBsx~d8-C8aFmt)i?YniSGdDh4Rwo)Z`x^J}mG2Xt?-n;WWHM{l^7wa0b6%B1WbOI7 zj_q~W^3I@3GM49qnIg(WA3l8W`%BLHJgS-g08Uei*b&{Ten+RUt)Zb@e-?IZBt_ zG)+CSvYO}cn*($HJXKMdlf2d8t_$N-p0~QfpZ-r=b3ROZdPGXG+SPq(b2r@m$8)|> zYu2uWQ~fV(IqL45T*e%6bL#%txp%f#t%=(3=g(p;NljschfT##xi;?RXAb(cyq)j< zuD5ENUU2%qkC9GJzjfe`dCg?;4e9+K|K%(&d@{GP!ETStpYsLE$_E!87VKJFeRRvi z+pX&Pg?6*5Tk@~mD0S8p4Dt_QUw>JfS216?JTketVZM~WzKGW%HWA?m6GF46B~MmJ zzjw>!R(0s&1;1l^w@Tc<%+4*W-ot(|W1(WX+Przw<{0G%&+?JgJa^u2=X>velU4=q zRC|0lE+Su2pSQ~~?%<9t7Osb%mYb+QZo7B%y#53kazKz4*87f zQ>ro?&M4gfd-a&m)WRHr^?8p?e`NT*Ol=Lz-aGl}Q{KA7haPDs+}FLDm+@}q2E7#_ zPU#aK|C0Rhc2CjL-X!t#%-t+ESNzcFeZ0rJ&R_gOkJIX^qucTxxn*kX+u#^B=CYHoCCzXT@t9 zA&Hf5MVV5@MBPO3e5{2D$Y;y+qg}~ z|Ffy+@5X(s-AfMU{IgpUUAFNYvq`4e1)r{;Yj-~tkNy|HExmI_fBy8>Q-zkadVXuq zkDc$gh^UO{A?N%~BNj{}LgG2wJ7qf-F7UTQy6H@!%y|a0) zJg<6llkt@MMm{?ivv^JxRiCryo$Rle_@mFW=TCpN-r~~@=YMA>Iv$+zo5lU_nF9hF z8ALj44*WK(DOb6`WPYWH;dj90mtXuRyg&Q$$B$L42{V4IRO=7_eEf5&$k83eS40{! z!^|{7n7uB2U$s2>rTmLM+rLZ;eK~n)mDQmWv3q$LX8FCjc<=w))j?70(ZYB!L+r!{5$@f zIdcPD3b7Tzf zjohEJn64dEDUSANZ94k=>aSU=kMJZt{3z)jl|1o_qU7nn9Y=2p2P|D5xW)8m-^I25 zDRwOt1-mt_7X7%sVd977_n+=D$xnTB@6_MtdyZ)Qx^{I{iK%0Q(m68$38B)2m@0{u zl5eKjGMwyHFH&Rjyl=LiVV%`7GqLY=MwEb(@|{nLIbUD*9{XY*p!?#XbXNi!tFSNE z>_b1U@g&Or625gscD3u%OS2dJSdr_t?uyc;3A@4_@BERwvq^Zvlt*HMoQ8~tyHA|V zwy^oLJ63SV0p}TiU7l@ko8tF5;NRc=>vG4nT6?8dD&Kk|w8w+DNlMaJxL@JpCo7*R z!dYj1t%bYeS}s2MeQ~8D>!PbYJXhxCOEKK7tpxb ze$%VoQ$pP4?oT>`PT!d4P_MnnEHij*ad*>QR+STT&mIV8GE>q&TF1#;zd<`v{hZ1MhIv*(2L-U~ajp^WuUV!WR?luZy?w?Fo% z@Y`tXS3jqlcJ`UhGyS;4jWZ;x)jvS8>g>&RTwi4w_DtCF?zM8&k%w~qTLeAIEwov_ zwViQfEStZ!fRS;V@lV&bdFfr2IS=bqUoKhLKSRqRtN!Pj7p{h7C#SD)Tr6nzTPC-; z@~=DZOV13u!aUyZOFk@r=OBAAZf_9l;RClL>WlckD4%eQE@--%n{6<+>Gt+;yE8AJ z=k~EpoqeaRY?1V~opa8|X)f6$bXPihn!L4{$p+E77b5q%%@*xEbKu}K^Igt&6qFkc zcX4dJ^7?h*spLr!|4wgPW$>iyUtsRhJ@0>}Y3+LIws5Y>;SKMfuR3E~IicGoQ9&&HmPg+|4q|OMR~KuHSi< zZ{4oB%Qjr*=dJl!QhcIuPR}bxnGE%SO`Gg^7rjV}|8ZSsiI3{s$+{Cvw;s=V_?NN% z{msSe4o+$ji&;=M?Sxn6qf*b0$0OY5E?b(vNWqQknYxN>)1#Y{4Ca-z^Rm9QsV^W?Xr8!*Yj1datvt}CAudh-?Q>$fa#64qa| zIQIVFrR=!i-2aBo_g*dNQmFgS_qOiVdv^wP-R;S97^_VtE)SYgm>}-`n|r78*EcMa z|6ZM@C-tQBzr>RLI}@xQ_04;p^tE!E{np(FeB-SyzyG;1+i6?ev-gW%lyLY>Tlgwh zCoC@Jz0*9sK-Dwm_nyvidvne%eZpB^v)z^pV~TDXh=fO|D6G91yI@y}_VIZq@9mM? z=-<2`y}Re5_S(t5{|_J5%o94NBWm_xTh)R7<6mnFr#Q{mK6UeXEQ4zL2b&4o?{z+q zdF~itWzsh->>ith(AumQe2v#m-hLst@dJ<0jqB5V4(&fy48IQF+F%BoEf9$9_1j|IVMInW~<+vh~zG7OTCQ#&$m|0@i!) z*)3m_w>D^xm+#+gf^w24ob~Gvm^L=Mz`N`O$v)nrS@Z`nDOI9q>=G6amtkwN})0y2jPuF;EVST!Q_h#F~ zg~tuj;^Kswe%&nF^2}*&h-z75eeQ*+m#+Vd++H<*-b?j`r$qF=95FR-sL?)YsbqW8 z=D^9%Qg;^WZEyc!6Ew3RC_=U2z|yH(<@D+UrdyOp?)5HGs1ViYJ{0DcyVrPve9!#p zADO*8Z_Wv@{m!j^pz>)|9QSrp~_VSf$61!Sgbi)o*uyo$2>nzq=U-J0Q^^=}&<37$+Qgr1Dm#lpk|At$ky)-L}bHaMY1q+{C z`*I~{zqMO&fJM`?vQ6u=!?iXP)+m|gO?FpQer@(nt8d?t^(@@yT0Bm3O`Y~<;prK! zdg7M%f2u4j?Yhvw-mLK4J)_ZXvS~z?cK_R_LQ}%$SDyX-%|_nj=SgcT4~5|7Jry}~ zR9)U!@0~M6N3D;2dD->0Q-7;vo78d~(uIXz>m_{?b8pumR(7Bd&BFv)UMr{ao6Wei3^=8(QsyNyszH&{|jv|>hoXzw#xH-Y_@lr z;QxEBv(|PjYzPwRymrDfjHQ9${qs!E^C_Xm%=d&A#CBy2(!)PTYOX=e2sz zZHps?d|cklp-t5+D!V!k?7r?_VSQm;)=fM6zTzEwHlNTAzw+6&XXeR&7Y;ly`QUXz zYVFNE^8&g9c ziT%;^g0*p$dX3KBKN!w+*KGeA{^D(=W!SumOTY7;mrYn8E}Zk;`~cg67cX6Y?U?*P zK0hwxaOW$&D|;5~$%qRJ|773Q`Ed9Dri@))Y0oT7b_$DbRGcf{r?P}2`sAx^DJt{i zF0?bVt$iFc^S|rgy2EdjFPsc?-rWEAl~`q`^hdSAf8|CNuTz)Xaq>-^aq@V~iGm8Z zz$?2-qxSA{aDK77vUJIW)|>ioc@*9%1Yevy>2_((o!Fm0WR^v}?471xD&}#}>FBQ- z`682>@mF;&YcH6!p6huxZ+6$&Su0KJ4&+jC-Dzq7L?Jd618xbk)%P`eKGeUS38H@9>1Innv1S} zD7qNEcE{2=994W9u3y@CVgp;+jC=NNtDf!PKi{*?%(l+$N%!5!lJA61{pAbavLx8% z+2t9MpIHt^u97z{TUz<7PBp7ezSP+H#=03VG<^e_m&M%Oc5}zvolQX#f4B4Z1Wfp& zvTxP53c0I>TWVIGSUk7r^TOLgN7FKN1Fk&Natv0Ix%KVK-SgWQC+&4^^6{8)y^^th zLC1%H)AvtXU(A=kr>@qry;{+GeTCKh;N5Mu@i{EMGOv~$;hEI(iqv{9NV|ByXA6hJ1F#$ zw`psf7*h(@2YZV>GI>gw-eD8x9iIC@=-B-(hOm8WKQbC<#x6R+cDm`0-^=FJ7M$x- z*C_81WMX{Bwj$$Pz%ib*?T_AMJ$C*2m~XwrQC5!cIqG+MUB2wdobm21+o!qWv2$)+ zIi%=0_qNhvU+>P4?6A+jjdnbL-x^`I&ha$kqfdt)=jwgA(BR?mpxh*%XH7yet*bOPjWB=RyUs_%82{r|lFC!}*uC^4)u) zYpU46bYJx4x!#<~T*oZ$uPXHV86%jb!L!F`eSyJEF8!Og_ijBBUL?06pFO-VpH0dA zY}xzF(o1TReEg@gJ*=l{++_|=HTI3u-tsQqw8+n4QRttLDF@vr6?a&@=x%eY<#38z zTDUKy<@mkxXU-q@>1g*la$uLqI}zFCw=y?>`Kzxp)4AzrgsfkVwT1HYhZnEBa9aQF znq*0k5@-F>6)hH#Vu`Fj!q(>Qd6#0tdSzBnu@+;x$&bJP?}$7&_VIS?)zwl@g!L_a z#6@m>J}%=Hlo@XD&wsyd`;@=4eLMC}DH8a;qe^Av)+v=apW@Ef2p@m6Flla!75^dC zBGV1B#h$sMqJsZy^c(a~*DMxhX};_hzIj*vql2rNp5`qnNoY4c;G3?pCn^a&V#1tzF-E z@9h!1z33l%^vp{g`@V;|>KTeL72Z~iIJJF|R|sF{-ut!lm>jl0$#T0`HYaEIE%{Bo zG5MS?1Qvghm|ATp$8VUo&GVG8#%)iR8_`b93l>h+Dbngadu3U@qRHNtmqn*iPXA8d z!S8-E_53P1pO19~74z*Z#a!=+-@canfmKoe@VPy?!FH=x`Fz>^Q#>$D{V5;+sWYc$ zxrO9T6ZyR$t3xlny;SI>EBBn`E~QH>mY@H5uW0K>gMj!aX0EzU8|RBUZ_O%On0IK> z!m^z@)7CWby}llC&ceTA>yk|$r60eUoqOooyU6mU2HkC2S>G+EL^$6sx~ z`aAj0x!mrleQ!i6;#QZd*6E!)d9j}N)rZfXiCi7{(JtYmfBIaa$YhJvmsq$Ig?|*N;1n4lle-OGN zo~MWPj98DA-(7G=;JDl!tN*9F{)-7;_`m+a;<=7lZXG(yw(ehFw^r&z zrNQe`=~r(rPmZpe@8Y{i!SsIm>=R%A%`!^;wype2gZOOrLmxG)lYFKdKDqeppw|4I zJ+%QB&-8FD*~t)N9jdKk>MgRXtVNT{asPtf`BSS-3ElcX)%fJA1ZEYL$Q>V&J_Hoc zy{)%UEHLtOc^!Lz_MHdMs)Xp07n z_iy;?R84i+4+(cyXa0FF_FrYcvND&gmuR_R{%8M5r9K9ATe(bw`J$B{-Jh&psn0Jp>&f!Z z0mrU(9oTM`K1pz!VO>FjQp*|L*2~Y+tAb+<_=8ty8yDPo9vSGEvS#YSR}rG0H=R!T zW^QdY@7U=x7gRrli(I(AX@QSm=$nNLwlp1duDEhK;+D>GXZ7lAraGU)XU@oreYY(P zo^aRX=(%^1GUhz2(yA2_bG>g)Y!FIR|DE#p%!eNBMn0*8kc8={G$Q|IEIhcYS3ODY zeN^Cr`WaduG$j8iYsG)tkekfUZTIR;;=Y9`>3n7nqZHWtl>dJEH>)xBlBNHwV6iQi zHq|ysPMc)zeQ}omHm%5`ChxCkw|{(8XFk(DxBtxbM~U3aYF_9UOMO;$E|f?r6fjec zTlmgGOK`?Qu{%t$w=dj~KkmMk|D(&Bj+*?Uc@N(#TXNO-{>cZEzA(-LD1LtEP9fn>`v>fhWsPju$jojA6}NM-TKoELk`)S340o?92S{21HOzt0_aTzFsk z)m-J}y80;bEeo>dSox(|NlskK6Fi0e5BH4dY0G=E)pbl4-Ol*sd*1wzb4K#JW~bRM zv!C4LdoQi->+{OtLw8iBbk(~xAEoPm=iLl`Uhwzte}mFvzvdr(AR@bX?P`RaeKK{)u0)nUOQ-&GxV`k)r#OS$h@*{*7Vd(~;`%8AMJGqaiF`u1bXY}jqpEnt$ z%@SU5qcHm1aoPM7nMK0UhL-2PuYUcnG-B7w-clZm$jR%&kH(t0#T{yVaz}To-3(r;emeA3YT}>5 zvo^JD68cN;uy2~vwZQt#-WLAWGT#%cKki+1?q$yDx6ewy|NHQeSEYVedbw8I!xN>A zj}=6h{bhaa7hlz{RX>!! zZLTr6dD;J9C%ew7?n@mTvu4kqw{DxsI>7}+cQzL^Z;Wq#7e2So@aLYtYPOb_em(jX z^7Meo$?CtnYbS-SUo$6tQ}vU$w=1Q0UiP(WP)&K@25)8&fHZXug`PRUstW|>KgM=V%%sGy^#tnYJBa&sPg zf|#WE`~F=X|Laz7(iWGUCmz^#%$VbXP;TqRu2qgjhpjYjO?7D&*rFe`RMBJKM}_*u zLi-&9bWEq)Gc=0|x1QrQ?%r_B_`>gqy72nVUzw%lB@>?tyuPJaT6)_5?Btr<$-(DVIS%oBpKN-I|w|%QgA zGMP@S3t!YJe5iZIv5q%&PD?(zrL%nDsIN>v_NC*D*3zl-Pf4oGpL^I(JbB6y@z>nB zE@$4(w=9|aZqepLR+1}ZZwg0m;z+SM@@7lr{3<+bZxkMACTVrNlv&7XzI^tru9f#u_N%|cezc;(3@GT&P3 z3$_^rpD{@L9%u6KVU7Bke`h00HGi^RKKX>{gv|zx2+{9PYI3`)JB0o&5~_vmY^pCS^|%GUEB;qWLtQW%&b_1{tOMlZ*CQGvAsP z@`z`>j^nfZz0)R4TVBMSV>a{NyOn1<8vMd@lMcG*+t#*2GgwYvot%4vkkbR0jD{d}ACBv$(uEscBD%? zu`gaPxAePc;pd6o?OD7E|5nc4-Jx%N>@IIaQP%Y6^;Hi~KKk>PQT+M#gwmPsIV-%b zgz2Y8-u9YpIQ#uGRx6qK{yE}ezcLz+a6b*%dnkI{>OTc_XFC7BJEXq<*JIybZ|2>} zTEO&e@wsP5tqosqN_SOVUs0L#X88)Uic7^3xqTeEJHDLiUi4jnmyv0^qu@i1RrL&k zC+_ZvvkMWvGAYktO2mG~H$qo7y7SL^v}~J8{kfn`9*gg8(oqa5iMTD2)!^H?XtQy) zWcZ~!??2vHR>eGLE!*P&)&1}G@aX+od}pTTmowF0`rMUg%4^-8V{B}6qTrtE)sAVG zBtyba9eOK%Wd3{a|9LO&@ttL>PUAFsJ3&zSTice{uKPP@pXf?wv0c6B*k;%3c_%Jk zmJUq5a^*&qf~R}KHicilZcVzoHKaCsh91+{obL2pzBW^PtJKXu0yi18QwCUR}RvRx=kP<8YuW&NPrG1sHW8>kiezg&20sFr0HYe&XaKCYLVm5OG`+xB9U4_GSK^ zK85dh{E88lspVmNm%d%8~v*OKj?Kh5s0YyLOk z>599@)=5szlMz%+EL!-w|Q+s@2ftX%30uXF6qH(#sJv}p9=*m8oyr8(X{a` zf3~fv{N+bGb*)}UzK1`gefk#o>1wu$99iIZb5hXRUQ?6rHAzOYJmLBu&wP{9zcl~l zji0BN=FS!1JRY(`_U*z4jQ_&eFGd(=DqV2!R_>L2v!(l>$RVE=S&qGL9p~zVOt{pv z*fpJJmffFIT~Z4rcZZu<1+VzEYKuqz#Xon{-Y>hCELL)=AUyE0h+)4s!-Hr0cPx2P zdc$Q)Z^P`;Tm2e44lX(Wem?6uC!O1#&t8d!rc5t7_dBhisi0;9m--uh{@5fN>)$rvs_^`^rwJ2No&JoDS}D z(zh-aue}~tc=<`<1!wof`9IE1n&N(W+nKk*D=gkk*?<2!6rLWW!`q@0{ySTU6unTNTPbzi(d;X>3@_%tm+b1yS z_61&6sP?INw|>LyHxo|>9j!U%%)_*r?`X-stS5ml65skxIumkCbq3po^J#i(vkKS> zgqo*!utn|lnfRSgjjd%-bEv%A>1v%*R++oL+g_fhvSjA8#$7&PHQB2s-ZRdu?2DeA zsAimC%~yD3B!t% z1aq@a`ngd{Tl&u=?u2I{dOJ_X8uv5=%-J2G`AaZH(e%nOo#|!TdsnYeoe|}ssQQb& zM_~TH+VJH0H@hv8>v?vpKWC?~^WVWQ`W};B<}og-UhiA5>Sy5WeLEXYl^v}6t{A!Z z&7nOLt62YiSG;wHQ%Y!^`EK)X&EMYXe3;+C+p@TElgRn6hn{w=3tedLwKVc|b(+Lo z@o34w?~kt0#5Z1A< zbC$}x{dDf@MO7;@WX{>ta4?qiu59eS5oW{qTJuSz?-9lwn{=kL&$oHQ+f*zmCv<>q zPdUR9k-FB`V$F}+$}hg#cmH$0eEh?--iZoF{Mn0Ga^mD?lz3EVyN510zv5KIHL1?* z{aSizYLz?9MSI%5#5kY&5~A^>{6m|?htm7K*L98Sl>7@{UEw<~J=f1lt4kv<+(C-< z|EHLq4@XZP&Qz{=_0_Gy>^|K2zPPMeF|6Oa@y6&A<{)e|g<=g%F+^U{% zGW(hT`|u){C)9I(na)eQN&IdN?-aDTy$-QGs^q>E$-cP%qbmLXP z`Xj3!d|S1pR-&9?<2s%AUN)U}uI;%MT(2El_AkngZ}ToYai?a{#~=o--6kgwEs^lk z+-O&syVjpsKGJr&?jBa}r+=Q^nprw$>Xer0KNc#@`TFnZ)-5bE-acFOByP*!@W!*R z-u${@ySPP+0>if2{gRxR(R z-`ANGFl&9vwUO(#{+!C|fA_NM{}{`c?irzt?Kux*4}R^szU5Z)3-*~J%zjq?GGG0( zS`=$vckWr2BI~1$5C?gQpME`$Lpsjz9v6$?-}2dLhuRFD-ajr6TBfe6yLGI`riW3g zKiehL`qy_k={dzwFI@kmT(zJ2f5AEKotyl{6nD(7V^h3w_=15{u;kcMDdw#Ksy~)R?fiXumDD-GpZYTmcjhqW%(QvZ z_f0aV=ds!Jo&&aLmh%3ZE?POA|F4V9)tCoeZ-VNcEi!s&&ggezzLNN6lMMCe{-2CR zk{o(=Jd9tjzaV&*)3gasZ)9vz+8=p!V$+NE4ELiG^YnB6o^!b}IsI18LgtrpNmu9V z1xlWNY3W#~7I8#s#*~a0_Wz!C^$L%q_!&!9@G2~vGUqP?ujS$!OIl6)w)31wmoNXm ztzeOoio;G{!>8K%!goHrJF6f5`u)aPJ53@U=cq3C2r>I_sw!aig=y1Wf!a;otzKM@ z4@pn_c=Ey~iBC_N<=r>7E{zfSY_ieXqvO!pE7wC7W^3N)DO|R=+0JcFYNuXB;KDv} zjoU{q>Bg{&1~M^nbWDkT)-y|_`?yZGi|LbiogeSkZ{b)PG2?NLb7)-fi{w&dm(i~aM){#J;G!GcBhj$i(SWgY#@tFqh0qOfFF$e$O^rI#u*|q_yq67zVhx26K{hllh?ocFPY23ns=31nd@7W-IVKAhx51uJAZzz>=W;PdV*mV z!;;Wdev%7Jh`nP?)r5)R zI}T-ToAdc6e|Og2%Fwshm)9)TePq)0?v07S7mm66K19qG5IKKwnbEm`t=x>yb!P4o zuUcOAxIX*KtxwU}CO~39NSv%FAe+hm#ovke)3-*diRpZ}+Q@9KY(RF0NB zIxh9G^vxHwHWp5q_TLkJ@@J$b^+YUW3(mGmw9YzmYu*0m2S2{oKlt;Et)43r$7fT` z3^fj8!4=UP-@DAq-u>*1%{LOe>?R(LnKz}>;{S^`Jf8Z2zdB}q^XQ(oV~1>{ z<&2LHbC15?Xc4lrP_rpC{Z;XfAeOr)Ef}+od@}XBH`({eqwDN@c>}*$vTl7k;gmB^ z;q00l(?y@nWIT9G`qcM3l(`p;$M_uW@pI6x(xO*+L z^d3k4FN-Ocoe$n(y?Hj`LExen^RGYr&bDh~cg|K3uPMFP74*)PXg*7sY@%kWeOdlY z(8698@fWM^ayy<3vzr(1m1(p{;a!%KtIf%dn}7c6O)*i+$oe^_=*fvZ=C$Fct8X4k zoN!;_;565Av5=`c{MWZ>yK_eIJK?f5(c{N|eVD_&uI#W|F3Y*;>4mE* zNf&m%@t9`mS!ONklOXbFzV;R7NfR=k@_wHy@JQfD+@-?Eu=Z~C=b6XbR#xgsq%%En z6rU@zZMpR+A>j`3a#pcwRp&`d!x@*va%!{)-T%}2?!1|YUbF{cCOFI}Nt34?UK#zV77oC2ZV%(~q>YS^nGkStIy8 zPlt)|0nsT37TvFDXZ23gmlyKOZq1)4pt_Y$(IczW`K7sx&y;4d`YzrT4*Rbi6v^fk zO!jzb^>-ut`gb>Ud7@Kx9oQS*v$yNlN$wdp3iLOfdUB}Eb@IVh--jnJUg_iew5smi z)Z}CdXQ3?b0QS1*j@x-vbwZ*oejnOV+xd_Sn|cXJtc)jpepy#Yqj;=Es^Oc?Da&GSur=yGo=Q^4YL?i1f; z-Q>zIwe#LtTBgP!;xp?7QdWF=6dJs!kzY#7v}%F>@($N z_i5v8Ti5xA-!Iv^iFdOSTSkY-zuCsmZ|~kd@4V=>9go5@JAN?#|M`E`#yz{IiB>)9 zO>hlW;XfhUn)*6FBKCQ*P8G}lg3f033x91argnT0eX(T`gW=!09@FLTcK#DNJ^S$C zhK+vVlcQ?mRFB@c-roN#VsY-IyJeccl?qe$dn}K;v{F3h;?wvC8uPPz`IaScL@`>l zeBaseNK%Nuu~=yJCr6`CdlbJoK!t9>ResIMw>+ZE)wNG8^R;q9p z@f7b$a9^PQu4h5?+N=$4p6Y+yBGMyYcsu)A+2qgL_ct>9{1l+`>PY^tPl1cRzd7=7 z>&)vsXCD1+&iC$-NjIvTzPq?ZOZnmT*uvj#GerD$TC<(}VszNaS6J+&$&q^YqX~uk zS-!|j{h-1SW+G@+Hjhd7+F_gW`g2XXn;oWnT4KhfrNyv?&EP!q<{IrM(cACmsJDh5 z<$L=1?3G~Nz+BH&-TykK>=aI}Z#cRkUvsbfldEya z(kzhSh~B!hv9dSyLbS`$xeX>VeBl$E-Mfjeo^N6J@A>t*JPe<@W&Z5>!*YRt!|bRl zucc*gWEZ}@*3UO-ANQRQnLkOI7q;F@R9n8_l|_fr4!$}1?*vXxh+2MgXU0^!yJ6eD zw7$!C-MdwAdPw7FMSOlwS*e_nP#!1zq;fo`@7yEa#*#Xb1EHt+YMmZ0ssdU?-m z&%-Xe>`$uy&&D@ugs*YYFC%~yOnU& ztV&w5N`$}vSpC7|HR5+Ti%Y-Tx4PZ9A+hqON86wDuCV$urxryVW)wZJqq;-n!2H=c z5-*lYEpGf{pW=1u`OdTJTNd=+Zuv1|&D;a~CPz&REJ|b5QCVKAV(dEUhEV;wd6yjA zth*NeR1p)^n*6b7*;<_!)f?WO$YgPMe*S!#&7SiA3YWG&{->a{k$dbqk&4 z6O1n%*^{H?v~8A*m~igJ*E$*d0$+01n7l7Fi*jDK{gXiYN7LIb*V>ED>lAz}s|xBp z5iM}9Xl3T&6A?e2ubX(eUPSs^)lo<0gQ0Orm4BXu1n-{z&X|=&EZ^2a^1zXZGV>qa zCCk2*-mS05St+RKxJ=u0@k^%56Hj0L$@MX_Fm;XWyZXdckH34QSm$2<$K4b8?R*yGm|Bd)7d;*?YntbZ&q4 z*E=(8OVQcz_X{!%XKPG5_ilQRZyB+JEx6MnL``gs~v`qT3xV#n0YmSCswO+8LJ&@-{dM4eg4IwoO|0RE5)zA_wm?Q?X_%D-oK7{=7||+R8L;M zD!cAZ-EqU&&J(WO)6F~nZJ9TFXy=`MCC;l4^Q`%LHD1a=tm{(P#oOI+tHK&~c$Z(h z{rBsUnnbqGYeS8Bll89spBGmYuVQ$cH>$locmr>7q-kKtmRP+55($kd)^6*z-#QQ; z5h|P$vFCdyljWhUljF_*UEJwCee3Uc_hOvCJLp#Ljh9q=5#;2qC@J1AwQ?Qjlk)n$ zswvmkxcv#vFnOaVw0HLN-!HrD-)d+$tUqSsye?x_{P!jg&9>S_uNXhi+O_G0i|0bu zq|XX-Ltte(%Y{g z%;Z>Rw(Gly@}d(e(x)Bo|294#A^6DnuyRcKakFrTSB!esQ-bp}TRzJL88X=DEctMf zljZWIomO*drKKe6l2wh4gzbAP+_=G-&PU?$`;51@d0t$oTC;0Lga4cQGrTQ) zNO(&ds*MZL(T^5 z2Rzrl6;jTdsrfkl=EfU0Jj9oXI8XZYGt0BaV8Z)^xJNHme0gza`Wue2-z|6U=$?=7 zvsnA;_=?iCkqhrwhh1rnUa_mD;@tCCFaBu;D|jmkX1s0opC#N-`X}x5k8=}v7Q7br zJG_9`D6MqsUH0y#P~oR56Qt(LXy4AU%6q*`ygX*w9*GUEKYZ+bM2rJxPGL^Y40yh> z!RqMFySGZiJdRgH$h-I0mc)MXef*?aJ+FL) zoLjcY#?)Eoy-}m3oTZgN(IQibsUUG7h>(iU1#U(YGk)@h( zOyYsZtW#5Ns0ieFKK>jjl)Abp@7X=w4z?K|Lt})_+fEd%{=7!&`t*01YPox6ne0El zvPJXmMDERU_r#=KIrgsnVA^y2_$ziTiRg-Vi636^r7k)4bav^L{{4CcbEMmKhhtoIf0dFhE=ahU5q+<1rfGcto$GF|;%#)@ zcNiX=bbNj6G)~w5O6y`SO=C9iKKUZ&bW&351+o92%I??l3J%u49w_ksT42P|VoT{&x5^@l zT$ybHMK5@?Uz_8-mF@Z0F#ChCnJYX@{{^#bz4h2nkyZX?r^xfS9@h2m)35C>%4S;a zAhW?{Vfd3^oy$(_Gp?>^TQ}pi*@dje0LiWE`2-7DBeV8x+p2iz<^P<}kYGJKleasj zczkd4xE=Dn^84x|pRRwJ*TU*}W%D89eUHCiRdbVF5aIAccul&lmc@*Xl6(5L=v|w3 z`{xOXMB#OZVl`tt-I5dwI(G<4e}Z7i`@1 zFiD*0;j^mATxvz~C289i?td949ckzO$?)v2h$FvvGn7o*4Ou&muV`&~{BA+lw4)qh z%@vdO&MDn${Uz8@ZDw8nnd|5N2fukEF^fg_Fn2Z!S7p9}fKa++Q=d{7$AwUP!0#oJM|c+_&+p$xE8wd+~L9)fXi#P2e*|^VakbmWLio02l`M%T7zuD^;-&g8Rj&C-VD7zo= z_`=q3(;IFaR~S|?bSgw~JZ^gN?}G5Od;I2-{8N=>0`6{jbc;Xm;hK4~V&~>O?f>|} zZei;2rT^vMa~z$Nv!Utm1_^JYcdA!Chs-&$?Xl{hPg zwiRm!r!HMzeknk;&qndwyLCKnzn%&_yyfwj<9i^V zrFue^cdoz6jJy6~s~1?$eto_&`9ob=-u8tI3zW`Fg2W=~O!-Lhz&`4ukH_a4PY8@4gG#Jt%Y+j!)zz!v@`#i>?TH5E$Ic-z-h9+~ud zqr=xVGxmwyl)4e^DY0-P=lZ6fR>JzS2I?#Bys}Auzh7I<&&5x1j*7lkVA$;)|5wR9 zn)U9^<>KCpy7x8nnSoi)#HcXPXvb*Lu_r>uE{Te64PFuf!z47Jt2Q!v;{F|S6;p`Sh%~ZQzma`SE zKb!PaqpG(x$x~lEsB`Ufo*#AcOdGt+-Dd09eNpc>H&;qXWHo>7bEo(8&Py*t{uS^% z@PE1WHpBPgUHXFg8Fw^GBNez@v|lJA_1`FE{r9d^Oc)o*;F#sBCPUY}ws z&G?^Dy=2~x-orXNOOx79>4|e_3&nUAf%8w5H?X>3J*6Ax9y5EJb3~~&YoL-n% z{O0S;!-kctzl0pVUQH7ev;URFTJ!GJv3cz4A9T#T_IB@Fe~Bi`3kOb~ySvKZ!frk$ z%}Ob$_qD&x$~5=nXT_Xe$hsl2#>;u@BsE?sqt#-|?p-YRytR4P!d|($w`Vp!W-y$h zy*hl6=7CkBar+AvNxI%pQP{7L>UvLTS%UJSuey@WVOthVa#%IRs4t#Rl4oiB{y!2n z-<1?YPPhGYyI;Os&}v=h?!@_4l{x{f!6_RKWOzNkYT}fz>y{he@89h2W-c`g@mJow z=-{ky(Pc6ZuepeB4Lx~nozW8!lbnm+E&C2P+a)_0{NKoADtU`{FRSkgWfT2-g{_Nk zTPZI8Jl|&dq&5RXw)h2;qCco#%H`M>%$}BPJ2SxNM6UCOki4!<^_^I31((@O)2g%7S1!FSFgGz|hH}Cglc_$3x@&g1D6V8U z?mTz>?5WewG%)gc8Q4llaxK4?Y+IC*+`LUsP;=$CI~)N#hMf(WW!5n=<`K_w{%9=T zw@)ZC(JZbm|8bRM_1p>BFIaMx#=M&O?Z@FI^K}G#nLa0eV~DW0DlhMMv~+EiOYug- zMuruqGQP~+?ltYzys5ihshmi$RS!x#9_?ao_GIgp{WIIIOU^Y+J5e(Ie!au2wR*Mr z@_H4)i&ie)u2g!|`>TbgL(LYB$a`(Pr&Qx_y1(plX^;A0t#H`$(AHJ^>ZgA#t}$Ko zbgpRlq+s?Vhd1!@Fet`enDMT9irC6P`(>wvf2ZsF@$ByOuu!g(Q1ErkS?;Q+xAVVI z$zScv-)Y)gWXnD{&1Vt0@ZZsTkJ7isv**^6KAdYtCfH>*8o>MP@HS&_vx1>V{c zeAB0zMSjk0ebxGZ>g$j_a+6-Dzg3MsuXSHLwnn)vLjCZMyu&lJE@ih&|IqW*Il13_ z;m%_D7m@2dmPcRV;mg{vvwPbG2l3NPDbf3<&#yY=8-8%Xy@T&X&i?Z8eev2xdheV? zg^G2vey)1u?=nUC!jlVguVyH#+CFCy`#qIMZpGK5%b5I1qV{c{=l&sKqp@fNYjJ=>N|-hR8(Q^2+2UGw)B?8Rpm^RJ_GQ}5B3jK*7zKf^s9mX}zs?9E(wuwjvOo%ds*ggV*f zchtNdsa$B;**t+eO8r{f=9G5l|5KD-)t0;KUt17gJ@fhBfSYHZt4f~_o}$?|Kcc_F z$8g%~6|b-Sy&mZn$RS=Q)A@4m2Y<2JBhuV$YB!qK+aKSdx9Zl-lcozUg%y|fJPALw z>C^^;zS!fQ%V!Fl%$q&Q>Cq&EuUZ$yZ|OgA`MXreQ-03bzaVzc`?=p1 zyQkE?_uY4JdsfBXO;fqlvmR(hw74Hi?D%wgbNJ!bc&0s%5)R7RZ2Pt@*4g0oyf@O< zd0X#13^y_4-E;F0=iZxYdpG|3=uoNJqa(dd<;ik^9gmMzy_M?=4w_KYwP*i|$~up} zEZsvpcOOt%JVVIBnkP%|_eu_(w1+-SHGj{pKI!T)v8wYz&7HmeR^OfqpRHRVw`+@$ z)C;C`&OHk(y1z`@_vg6jWQ`Xx+}kG9o_#7CS|%V+7ppQW@XZ$eS+RcM>HSO6Hcx1a zH#&N?HInn=&&|6oOi(<0@tWtg&Ym6jdRbET)z2<^J*V+KP#cmnAu^y(u;*bTa-7xJtJ}RlW~mPGqDR? z7mFr^FKqLD(Rm`PvMzL2)78?f^?hrvr%azU!A{&I%l*o>tLtytOy2qKqSMq%XPWN& zFZVrDExhnX@0-Wh)nBha|Ln!rRn_Y=ruHnn_4V*uhqe z0Xy=nq_xtho8ryG1wwt_gsSh|-cSxL1VY%J<$+u^`3=lW@ zqkUEL&0~Q~g;(#tzj!dyI$ZUfe)Kc8b1bpaI~M6|u)jKiC!itW+M>-%cL+Bh|G$E- z-{(ra?>6fNl(4cmT_*;j7M+uAAL;rpPqZTf}!$<2y?8o|H6yWAC9~~E_mbb zw9J#Uj()kgtY7-bmkqzRPR`63IOhf}MQOr`hUOCUMcT{{?YBTp_>K`nvx8=TEg~ z3f_Cas-RePa*5Na$2~DWuijtzb!FJ6cQ3;x^QY*G zRc%)PQSm^+_n~5;+`p{qjNM%3e!@#%E86RDZavi{9y@RUMi!j}<|`J(#!7oPwb%bH zTJ5ktbJHJfbN7q-T|$`}J4$XHt@`HG!prmTK%?jN=^Jj?ot16&mcEfH{rSPqUJq|Q zyGl-0t+m~=Tx(hsHW}U#yt?S~n&85=RkG3h<_YZUddhsZfP2qRk(YUw^YmY`NySC2 z>q$A2b;Fn8mg1bP?``I-R*0-xxXAEGXJ^08Ljeg#f04cy$D5j`@=d=HP%ql^@L*@# z`?n3z7h@I*{##_dh4pRg<~LP8H!N;_aiRZH)Sry=Mn9~%&m3&1e^ZgiWpu^+lFI%s z3#YU%epYyM!G$>c(=$%2{#@kbT;g`HwfI!i&Q&XBh4@V`dOGLpqVmkW7d~iTJUwZv zTBK`7c9`e-iQkm+{DfXuMg4m#+v%=7iGQK8NkotS3_FMD*Ynh?ff(x+ZG+ zj>aXehf7XJ+-?MVg-+(C*ep{NeEWV)#pNqEWuCsdwC=BF z{~VhY!Mo32G~k{4rRd07zVyxO{QXiU*f(8|NHq$w(NU6?m5^Y&5^k;a>C=yCc^sBZ zUmtL6n;f{{h(v3y^&**b&PJvB-{YSuJ$_stnl}IP%l4<@lg$)=3c0L0G(*(%>pa(U z@6IOlCBIq}+$x|FS?Dm0?N{OgC(SAABKTDKl{Od~Y~ORs;$6q2FB3oLKJfVWp<}jX z{Myb9^WWUHkYZT1vo$R=*5Bzs*y@WWdeco@+v*hE!wUV}_pIrtwtjRqR9~d3_g3kX zvO=?mE!~RU?><C+n9(u!~m|AfVF zI)C0a(-ZDCQop>>h2h@m=ca$duQq?)^DAm!C6APByEV_dM&ZYQ(kxUOuYG)$ZeY8@ zO^Z)utMY5*n>W3AbaZ5&#_OJINf2VH{NDNNz-ylWMS<4pU!RCXu4g!Cx~%^CeUXMW zD{l7ZMwy!3RGqXUqk2y+o7QU1#ahc4FV0O1I~lrlW`L*KO}X<=N{>A|u;#ae_EA%dJ`|0mz zvK7sLRUareUs`7IddIH4?A>hPJMOc7da}6d`h;sL35L6k|6lUAkX!I{(&ocDx(`Zf zRPQr-nfhryKgBouDc|PlTJz3#KFdqaj=!ULER7|r>PJoPa_iG(=X$s7(AgHnx6o4c zlC7E3DsMkuv#Bdr95@}2aBp{^^*>j0L6H`V#;Nhu0WY5UEOFIPkzky~^vdS0v8=m` zf~l@p`L>w249Rao0Sz_(l1{k4NM_%bDp7Y#GJB8zhtOBW-?z!}-TKkv@z#lVmUc(` z-qfXSS&t9ch7_Iob?LeFi3uBe?4P|my(r~`=G>^6yQFwqe}8+ku>8VBo|n9(*+opw zRf;v}Li)lvTmAS2XyXlXSLYJ*s}L{~H_QTbmxfO-Grs-q$&`Oz7Xa zB9r&>0W1FMf3D?SB1M(6yXrRy%{MLW6R?}PHcTUD{bA|&HF{I2aqBJrp=)fpJA(>-?)aMGeell%-Bl~kRV_(*^Y|IBYX5u% z`Nq}m2d2s0^geRsk6>=nnP*HA9}A6FA61(^?MBb3LMczKmfg(rpU&^FNHMkZbbG`# zano+m15uK<0-rKRKGu%qydu1M+e6jRocD)5F3bNE>v7ER@PsF8RaxgJiCQJDoW+n6^Y+_m``P#Gmmcf=z#}+;=lSm%QMRAO=__vv z&1h9TBrIU%Va0B4?d*3jsWXvdOZ~>vQ*@N#XXa-yJDj`~d2mJfe1|v5F@KHu+ZH?B z&1jr@%Y2pd-bUw13vWv-P`S(QI4Lx{p!1AEQRmfZv(}|HxqjJsYr%$Zr>b72+}rz9 za(cu5Z?8EIaz8EBUBc1+hTB*A^!j6mHfwpNd<|8QJX54G#cq$o0{N%mhEmU+{zkRl zyvQjiSHo1x@iFylJcrhy-aDtm&7z_*?_{6Uy}|tQ=HXYH{>d2KO-`>{Bb^{{V#y5e zkc}&nQxilD?w_{5^T2*rd~~aYW#bGkU#HY?wki8PCQK`^u}zbmCF{<%-F@nt-KQI? z@)tdxAXI<#Uenr32CHtdnyFM2P4q~(E%(=SUCNp6Wn0!4*sxT1zMaCbPhnEs3rUSX ztk%D?ckHCP#Dv4E*&I_bw&D)HXhBcG3>NukM|ZQlGboKZZ1U)%|M||zmM2?}eeEz4>#J4#7LnsA zyuod@cUgAj|J6Zj-7EWJ7f5{AqEsKgc`Z+9#+w)6s?p7p{!F;F=lR%`@NJOf`^Bd^&W9{m@#6CNV*aNeHSKsC6z9~Y zalJnhAvv{PWKV<}gHB!7p^a{@7}jpSzvD!fj^K5p)7drKti6uTSoX2CIY4vg{AGo& zmIuUV&$RB@v#GyX|EYGRQQ3689il(_=O0XcETvT`5_BrAd!1_2gAa?74Y$1Azdqyi zcF7Mp_qxMdyUpeMChqL|pK-VO^TI2l#wk0VD#>n5lgZc+RQ~E;L&d6yLyIp(fBRS7 zq_b!Ju|v)JKX&_c-ptVa@-}dik3rJ`Yt4?Xb(=PPteaaD?p4C)@I)q{?tHnOAG^(Q z*U$45Kr}Iyk zPj9@r#a^Mw`rbkbuFO-N_J!SdT6kW+SI(5{TYCIX)ml5YRka5D+MiCp5f>)GWEgO~ z=W5NfJ0Gmy{5{^EW4`+0;l+G8>n~h+DZ!+BBqR1{fQtLFT*WGlzxTJkJQ>@&BzoUF ziEXztm0teKov<^(^6*)pt$37sdGBBB#| zW)W4_@ujDDuWIfN>-Q-Arn0zw$@zn+ApE)^#@+fov%CHuO7TB6JN+R#cURn zLB{lzN4X|Wwcc{{R>(JF_P14LE7aOw+MTx!pINDJ_g~^aoBZ8PVFxV!vF~SiKiO7& zv;FU7#=5Wh^S2w_{K%BDt8BKWqm$$O((<#m%*sJJ4CbF|MEmy{z722QqZhz=RsXi= zzt-D6ryQ6pqtCy*Vs+c%`{qpHXVPrJf_vW!X9ewJDDiqZq42_)_UG=r%xOPd6+hM{ zdOXriQeDmPOJya)|EYIBtUD=MVE6a3pWDf=-B0!Al}rn}RVn;?ipRoe>{EA@l#UhT=u?*{2BUDlf<@uj^OX- zx6hy7zIikEcGg+p(nn5&HQ9cf_Fbr_X=_kI#^eL3~0ef>n2O&L=YYc*MAu7_W`_Ggc)_T!}zZ-s*v*U1+i?p*V({NTp^ zb#V%jQFZ0||IF4jlsA%rh620i~WXI|sSH5sgy!Cv3 zbClG_kX}o#NlUK2aCi4o;_A8}*k`SwWQKnAKO%UFBZup7=KVzS@!rq!#`oC!v7UN%Gs_>`Z2xk!3u+SnU7EU`u=F& zZZ?0N?e3q4_wC8v>=}}~{E%O+y6(o>j=Q{3wKuKV;=8PlE}z2AQRt-2a3e8B!cY9r zoX{%$&5zm+`U*9+mU%0ke0evdDntKapjq&wmnX!$Z+mW9qP@_UQ?yR2a3#~O8A1yC zI>VLk6f&+9KEQrlYfsGnFLB)Ggw|Y~WNq;L)AdXnyN#Ek%p_0UTk>d=ef&wbK$eDS ztQw&m`cHGd6+Sm&J{Uh~)`JDN4HUg4RJ$hTnE!e`>BE}SFMQ)tu80N-cE-9}?21{W zE>sgZXX~GqrE5>duQ8tUaL?4<+6l?eC&t`5baU&O1KZdl9rh?qeh{1)7%6%x_;r-n zzP~@u&O9ErNk>b0O|bH+SyQe*UiR*f%nt2;u_=-{n-?vUe_+IG$QnH3_NLF>f^|WM z7jyKjysf}}XY2R)9glL2Ty5O{w=b|}j-$)~#hLv-}M>}kKu0^caaGUj~e@A(^JSa#@GlD6wnM$v|6!f9UqeVHDO zzrTi>9iCKuf7%|I%Znx-cXRr}u(xXuk5t2z-A~qsyPV**Qm#;+!eAF1Wwr<}1oP7-4B6s@~7LSoq%Cn~-Rq*Ee=8{dS(A(Q}#_ z*NLs24^FJRz^QvG_I|!-%TdqgKa7MNq#d^e*P3s5{i>nwaGM{S|NRa(n?)Bj&pj*) zt+)`-qSmFiV;`?P-*Y80 zEB?jCR?FjNn*0tIx{uo!ZrSiqIckGx_WX`(oBlrJ4rb`;bX=F7c!_Ue$wTSiNB;<= zoVwT)`Tsyd;I_+67lb+=Cq1g~pZ$QhCPOM~(<(KQ %o +#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u +#CleanMethod = KeepInstalled +#UseDelta = 0.7 +Architecture = i686 + +# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup +#IgnorePkg = +#IgnoreGroup = + +#NoUpgrade = +#NoExtract = + +# Misc options +UseSyslog +Color +TotalDownload +CheckSpace +VerbosePkgLists + +# By default, pacman accepts packages signed by keys that its local keyring +# trusts (see pacman-key and its man page), as well as unsigned packages. +#SigLevel = Required DatabaseOptional #RE-ENABLE ME WHEN A NEW SNAPSHOT IS RELEASED WITH FIXED GPG +SigLevel = Never +LocalFileSigLevel = Optional +#RemoteFileSigLevel = Required + +# NOTE: You must run `pacman-key --init` before first using pacman; the local +# keyring can then be populated with the keys of all official Arch Linux +# packagers with `pacman-key --populate archlinux`. + +# +# REPOSITORIES +# - can be defined here or included from another file +# - pacman will search repositories in the order defined here +# - local/custom mirrors can be added here or in separate files +# - repositories listed first will take precedence when packages +# have identical names, regardless of version number +# - URLs will have $repo replaced by the name of the current repo +# - URLs will have $arch replaced by the name of the architecture +# +# Repository entries are of the format: +# [repo-name] +# Server = ServerName +# Include = IncludePath +# +# The header [repo-name] is crucial - it must be present and +# uncommented to enable the repo. +# + +# The testing repositories are disabled by default. To enable, uncomment the +# repo name header and Include lines. You can add preferred servers immediately +# after the header, and they will be used before the default mirrors. + +#[testing] +#Include = /etc/pacman.d/mirrorlist + +[core] +Include = /etc/pacman.d/mirrorlist + +[extra] +Include = /etc/pacman.d/mirrorlist + +#[community-testing] +#Include = /etc/pacman.d/mirrorlist + +[community] +Include = /etc/pacman.d/mirrorlist + +# An example of a custom package repository. See the pacman manpage for +# tips on creating your own repositories. +#[custom] +#SigLevel = Optional TrustAll +#Server = file:///home/custompkgs + +#[archlinuxfr] +#SigLevel = Never +#Server = http://repo.archlinux.fr/$arch diff --git a/extra/pre-build.d/64/etc/pacman.conf b/extra/pre-build.d/64/etc/pacman.conf new file mode 100644 index 0000000..6cfaeb0 --- /dev/null +++ b/extra/pre-build.d/64/etc/pacman.conf @@ -0,0 +1,104 @@ +# +# /etc/pacman.conf +# +# See the pacman.conf(5) manpage for option and repository directives + +# +# GENERAL OPTIONS +# +[options] +# The following paths are commented out with their default values listed. +# If you wish to use different paths, uncomment and update the paths. +#RootDir = / +#DBPath = /var/lib/pacman/ +#CacheDir = /var/cache/pacman/pkg/ +#LogFile = /var/log/pacman.log +#GPGDir = /etc/pacman.d/gnupg/ +HoldPkg = pacman glibc +#XferCommand = /usr/bin/curl -C - -f %u > %o +#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u +#CleanMethod = KeepInstalled +#UseDelta = 0.7 +Architecture = x86_64 + +# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup +#IgnorePkg = +#IgnoreGroup = + +#NoUpgrade = +#NoExtract = + +# Misc options +UseSyslog +Color +TotalDownload +CheckSpace +VerbosePkgLists + +# By default, pacman accepts packages signed by keys that its local keyring +# trusts (see pacman-key and its man page), as well as unsigned packages. +#SigLevel = Required DatabaseOptional #RE-ENABLE ME WHEN A NEW SNAPSHOT IS RELEASED WITH FIXED GPG +SigLevel = Never +LocalFileSigLevel = Optional +#RemoteFileSigLevel = Required + +# NOTE: You must run `pacman-key --init` before first using pacman; the local +# keyring can then be populated with the keys of all official Arch Linux +# packagers with `pacman-key --populate archlinux`. + +# +# REPOSITORIES +# - can be defined here or included from another file +# - pacman will search repositories in the order defined here +# - local/custom mirrors can be added here or in separate files +# - repositories listed first will take precedence when packages +# have identical names, regardless of version number +# - URLs will have $repo replaced by the name of the current repo +# - URLs will have $arch replaced by the name of the architecture +# +# Repository entries are of the format: +# [repo-name] +# Server = ServerName +# Include = IncludePath +# +# The header [repo-name] is crucial - it must be present and +# uncommented to enable the repo. +# + +# The testing repositories are disabled by default. To enable, uncomment the +# repo name header and Include lines. You can add preferred servers immediately +# after the header, and they will be used before the default mirrors. + +#[testing] +#Include = /etc/pacman.d/mirrorlist + +[core] +Include = /etc/pacman.d/mirrorlist + +[extra] +Include = /etc/pacman.d/mirrorlist + +#[community-testing] +#Include = /etc/pacman.d/mirrorlist + +[community] +Include = /etc/pacman.d/mirrorlist + +# If you want to run 32 bit applications on your x86_64 system, +# enable the multilib repositories as required here. + +#[multilib-testing] +#Include = /etc/pacman.d/mirrorlist + +[multilib] +Include = /etc/pacman.d/mirrorlist + +# An example of a custom package repository. See the pacman manpage for +# tips on creating your own repositories. +#[custom] +#SigLevel = Optional TrustAll +#Server = file:///home/custompkgs + +#[archlinuxfr] +#SigLevel = Never +#Server = http://repo.archlinux.fr/$arch diff --git a/extra/pre-build.d/etc/apacman.conf b/extra/pre-build.d/etc/apacman.conf index 3723234..f9e124a 100644 --- a/extra/pre-build.d/etc/apacman.conf +++ b/extra/pre-build.d/etc/apacman.conf @@ -11,27 +11,26 @@ #buildonly=1 #cachevcs=1 #ignorearch=1 -#needed=1 +#keepkeys=1 +needed=1 +#noaur=1 noconfirm=1 noedit=1 -#noaur=1 -#noconfirm=1 -#noedit=1 -#nofail=1 +nofail=1 #preview=1 -#purgebuild=1 +progress=1 +purgebuild=1 #quiet=1 -#skipcache=1 -skipinteg=1 +skipcache=1 +#skipinteg=1 #skiptest=1 #warn=1 -#tmpdir=/var/tmp/apacman -#TMPDIR=/var/tmp/apacman # # CONFIGURATION # +#builddir="/tmp/pkgbuild-$UID" #tmpdir="/tmp/apacmantmp-$UID" #makepkgconf="/etc/makepkg.conf" #usermakepkgconf="$HOME/.makepkg.conf" @@ -39,19 +38,21 @@ skipinteg=1 #downdir="/var/cache/pacman/pkg" #savedir="/var/cache/apacman/pkg" #editor="nano -w" -editor="vim" +#pager="less -R" #RPCURL="https://aur.archlinux.org/rpc.php?type" #PKGURL="https://aur.archlinux.org" +#WEBURL="https://www.archlinux.org" #ABSURL="rsync.archlinux.org" # # COLORIZATION # -COLOR1='\e[1;39m' -COLOR2='\e[1;32m' -COLOR3='\e[1;35m' -COLOR4='\e[1;36m' -COLOR5='\e[1;34m' -COLOR6='\e[1;33m' -COLOR7='\e[1;31m' +#COLOR1='\e[1;39m' +#COLOR2='\e[1;32m' +#COLOR3='\e[1;35m' +#COLOR4='\e[1;36m' +#COLOR5='\e[1;34m' +#COLOR6='\e[1;33m' +#COLOR7='\e[1;31m' + diff --git a/extra/pre-build.d/etc/customizepkg.d/autopsy b/extra/pre-build.d/etc/customizepkg.d/autopsy new file mode 100755 index 0000000..024dbcf --- /dev/null +++ b/extra/pre-build.d/etc/customizepkg.d/autopsy @@ -0,0 +1,4 @@ +#!/bin/bash + +# original URL at sourceforge chokes out +sed -re 's@^(source=\(").*$@\1ftp://ftp.gnome.org/mirror/temp/sf2015/a/au/autopsy/autopsy/2.24/autopsy-2.24.tar.gz")@g' ${1} diff --git a/extra/pre-build.d/etc/customizepkg.d/etc-update b/extra/pre-build.d/etc/customizepkg.d/etc-update new file mode 100755 index 0000000..a762691 --- /dev/null +++ b/extra/pre-build.d/etc/customizepkg.d/etc-update @@ -0,0 +1,3 @@ +#!/bin/bash + +sed -i -re 's/^(url=)\((.*)\)$/\1\2/g' ${1} diff --git a/extra/pre-build.d/etc/customizepkg.d/fang b/extra/pre-build.d/etc/customizepkg.d/fang new file mode 100755 index 0000000..a762691 --- /dev/null +++ b/extra/pre-build.d/etc/customizepkg.d/fang @@ -0,0 +1,3 @@ +#!/bin/bash + +sed -i -re 's/^(url=)\((.*)\)$/\1\2/g' ${1} diff --git a/extra/pre-build.d/etc/customizepkg.d/libnfc b/extra/pre-build.d/etc/customizepkg.d/libnfc new file mode 100755 index 0000000..a762691 --- /dev/null +++ b/extra/pre-build.d/etc/customizepkg.d/libnfc @@ -0,0 +1,3 @@ +#!/bin/bash + +sed -i -re 's/^(url=)\((.*)\)$/\1\2/g' ${1} diff --git a/extra/pre-build.d/etc/customizepkg.d/ms-sys b/extra/pre-build.d/etc/customizepkg.d/ms-sys new file mode 100755 index 0000000..4addea7 --- /dev/null +++ b/extra/pre-build.d/etc/customizepkg.d/ms-sys @@ -0,0 +1,4 @@ +#!/bin/bash + +# original URL at sourceforge chokes out +sed -re 's@^(source=\(").*$@\1http://fossies.org/linux/privat/${pkgname}-${pkgver}.tar.gz")@g' ${1} diff --git a/extra/pre-build.d/etc/mkinitcpio.conf b/extra/pre-build.d/etc/mkinitcpio.conf index f151ea1..22c7305 100644 --- a/extra/pre-build.d/etc/mkinitcpio.conf +++ b/extra/pre-build.d/etc/mkinitcpio.conf @@ -64,4 +64,4 @@ COMPRESSION="xz" # COMPRESSION_OPTIONS # Additional options for the compressor -#COMPRESSION_OPTIONS="" +COMPRESSION_OPTIONS="-9" diff --git a/extra/pre-build.d/etc/pacman.d/mirrorlist b/extra/pre-build.d/etc/pacman.d/mirrorlist index 6fefe45..0d60fc3 100644 --- a/extra/pre-build.d/etc/pacman.d/mirrorlist +++ b/extra/pre-build.d/etc/pacman.d/mirrorlist @@ -1,7 +1,6 @@ -# Server list generated by rankmirrors on 2014-11-10 -Server = http://mirror.rit.edu/archlinux/$repo/os/$arch -Server = http://mirror.cc.columbia.edu/pub/linux/archlinux/$repo/os/$arch -Server = http://mirrors.acm.wpi.edu/archlinux/$repo/os/$arch -Server = http://mirror.jmu.edu/pub/archlinux/$repo/os/$arch -Server = http://mirror.cs.pitt.edu/archlinux/$repo/os/$arch -Server = http://mirror.vtti.vt.edu/archlinux/$repo/os/$arch +Server = http://mirrors.advancedhosters.com/archlinux/$repo/os/$arch +Server = http://mirrors.gigenet.com/archlinux/$repo/os/$arch +Server = http://il.mirrors.linaxe.net/archlinux/$repo/os/$arch +Server = http://mirror.grig.io/archlinux/$repo/os/$arch +Server = http://arch.mirrors.ionfish.org/$repo/os/$arch +Server = http://cosmos.cites.illinois.edu/pub/archlinux/$repo/os/$arch diff --git a/src/ipxe_local/patches/ipxe-0002-banner.patch b/src/ipxe_local/patches/ipxe-0002-banner.patch index 6db1e86..aaead6d 100644 --- a/src/ipxe_local/patches/ipxe-0002-banner.patch +++ b/src/ipxe_local/patches/ipxe-0002-banner.patch @@ -1,6 +1,8 @@ ---- a/src/usr/autoboot.c 2015-06-29 04:18:17.055394598 -0400 -+++ b/src/usr/autoboot.c 2015-06-29 22:04:28.692916217 -0400 -@@ -71,6 +71,7 @@ +diff --git a/src/usr/autoboot.c b/src/usr/autoboot.c +index e93b015..758e187 100644 +--- a/src/usr/autoboot.c ++++ b/src/usr/autoboot.c +@@ -71,6 +71,7 @@ static int ( * is_autoboot_device ) ( struct net_device *netdev ); #define NORMAL "\033[0m" #define BOLD "\033[1m" #define CYAN "\033[36m" @@ -8,16 +10,27 @@ /** The "scriptlet" setting */ const struct setting scriptlet_setting __setting ( SETTING_MISC, scriptlet ) = { -@@ -560,9 +561,9 @@ +@@ -521,7 +522,6 @@ static int shell_banner ( void ) { + * @ret rc Return status code + */ + int ipxe ( struct net_device *netdev ) { +- struct feature *feature; + struct image *image; + char *scriptlet; + int rc; +@@ -538,11 +538,11 @@ int ipxe ( struct net_device *netdev ) { * do so. * */ - printf ( NORMAL "\n\n" PRODUCT_NAME "\n" BOLD PRODUCT_SHORT_NAME " %s" -- NORMAL " -- " PRODUCT_TAG_LINE " -- " ++ printf ( NORMAL "\n\n" PRODUCT_NAME "\n" BOLD PRODUCT_SHORT_NAME + NORMAL " -- " PRODUCT_TAG_LINE " -- " - CYAN PRODUCT_URI NORMAL "\nFeatures:", product_version ); -+ printf ( NORMAL "\n\n" PRODUCT_NAME "\n" BOLD PRODUCT_SHORT_NAME -+ CYAN PRODUCT_URI NORMAL "\n" -+ BOLD BLUE "http://bdisk.square-r00t.net/" NORMAL "\n" ); - for_each_table_entry ( feature, FEATURES ) - printf ( " %s", feature->name ); +- for_each_table_entry ( feature, FEATURES ) +- printf ( " %s", feature->name ); ++ CYAN PRODUCT_URI NORMAL "\n" ++ BOLD "BDisk" BLUE "LiveDistro" NORMAL " -- Welp, Yer Boned!(TM) -- " ++ BOLD BLUE "https://bdisk.square-r00t.net/" NORMAL "\n" ); printf ( "\n" ); + + /* Boot system */ diff --git a/src/ipxe_local/patches/ipxe-0004-eiso.patch b/src/ipxe_local/patches/ipxe-0004-eiso.patch new file mode 100644 index 0000000..2105776 --- /dev/null +++ b/src/ipxe_local/patches/ipxe-0004-eiso.patch @@ -0,0 +1,120 @@ +From 189652b03032305a2db860e76fb58e81e3420c4d Mon Sep 17 00:00:00 2001 +From: Christian Hesse +Date: Wed, 24 Feb 2016 09:16:51 +0100 +Subject: [PATCH] allow to build ISO image with EFI support (ipxe.eiso) + +--- + src/arch/x86/Makefile.pcbios | 6 +++++ + src/util/geniso | 52 ++++++++++++++++++++++++++++++++++---------- + 2 files changed, 46 insertions(+), 12 deletions(-) + +diff --git a/src/arch/x86/Makefile.pcbios b/src/arch/x86/Makefile.pcbios +index f8c2253..1e01636 100644 +--- a/src/arch/x86/Makefile.pcbios ++++ b/src/arch/x86/Makefile.pcbios +@@ -86,6 +86,12 @@ NON_AUTO_MEDIA += iso + $(Q)ISOLINUX_BIN=$(ISOLINUX_BIN) LDLINUX_C32=$(LDLINUX_C32) \ + VERSION="$(VERSION)" bash util/geniso -o $@ $< + ++# rule to make a non-emulation ISO boot image with EFI support ++NON_AUTO_MEDIA += eiso ++%eiso: %lkrn bin-i386-efi/ipxe.efi bin-x86_64-efi/ipxe.efi util/geniso ++ $(QM)$(ECHO) " [GENISO] $@" ++ $(Q)ISOLINUX_BIN=$(ISOLINUX_BIN) VERSION="$(VERSION)" bash util/geniso -e -o $@ $< ++ + # rule to make a floppy emulation ISO boot image + NON_AUTO_MEDIA += liso + %liso: %lkrn util/geniso +diff --git a/src/util/geniso b/src/util/geniso +index ff090d4..7694036 100755 +--- a/src/util/geniso ++++ b/src/util/geniso +@@ -6,16 +6,21 @@ function help() { + echo "usage: ${0} [OPTIONS] foo.lkrn [bar.lkrn,...]" + echo + echo "where OPTIONS are:" ++ echo " -e build image with EFI support" + echo " -h show this help" + echo " -l build legacy image with floppy emulation" + echo " -o FILE save iso image to file" + } + ++EFI=0 + LEGACY=0 + FIRST="" + +-while getopts "hlo:" opt; do ++while getopts "ehlo:" opt; do + case ${opt} in ++ e) ++ EFI=1 ++ ;; + h) + help + exit 0 +@@ -37,17 +42,25 @@ if [ -z "${OUT}" ]; then + exit 1 + fi + +-# There should either be mkisofs or the compatible genisoimage program +-for command in genisoimage mkisofs; do +- if ${command} --version >/dev/null 2>/dev/null; then +- mkisofs=(${command}) +- break +- fi +-done +- +-if [ -z "${mkisofs}" ]; then +- echo "${0}: mkisofs or genisoimage not found, please install or set PATH" >&2 ++# We need xorriso (from libisoburn) for EFI support, so try that first. ++if xorriso --version >/dev/null 2>/dev/null; then ++ mkisofs=(xorriso -as mkisofs) ++elif [ ${EFI} -eq 1 ]; then ++ echo "${0}: xorriso not found, but required for EFI support. Please install." >&2 + exit 1 ++else ++ # fall back to mkisofs or the compatible genisoimage program ++ for command in genisoimage mkisofs; do ++ if ${command} --version >/dev/null 2>/dev/null; then ++ mkisofs=(${command}) ++ break ++ fi ++ done ++ ++ if [ -z "${mkisofs}" ]; then ++ echo "${0}: mkisofs or genisoimage not found, please install or set PATH" >&2 ++ exit 1 ++ fi + fi + + dir=$(mktemp -d bin/iso.dir.XXXXXX) +@@ -122,13 +135,28 @@ case "${LEGACY}" in + # copy isolinux bootloader + cp ${ISOLINUX_BIN} ${dir} + ++ mkisofs+=(-b isolinux.bin -no-emul-boot -boot-load-size 4 -boot-info-table) ++ ++ if [ "${EFI}" -eq 1 ]; then ++ # generate EFI image ++ img=${dir}/efiboot.img ++ ++ mformat -f 2880 -C -i ${img} :: ++ mmd -i ${img} "::/EFI" ++ mmd -i ${img} "::/EFI/BOOT" ++ mcopy -m -i ${img} bin-x86_64-efi/ipxe.efi "::EFI/BOOT/BOOTX64.EFI" ++ mcopy -m -i ${img} bin-i386-efi/ipxe.efi "::EFI/BOOT/BOOTIA32.EFI" ++ ++ mkisofs+=(-eltorito-alt-boot -e efiboot.img -isohybrid-gpt-basdat -no-emul-boot) ++ fi ++ + # syslinux 6.x needs a file called ldlinux.c32 + if [ -n "${LDLINUX_C32}" -a -s "${LDLINUX_C32}" ]; then + cp ${LDLINUX_C32} ${dir} + fi + + # generate the iso image +- "${mkisofs[@]}" -b isolinux.bin -no-emul-boot -boot-load-size 4 -boot-info-table -output ${OUT} ${dir} ++ "${mkisofs[@]}" -output ${OUT} ${dir} + + # isohybrid will be used if available + if isohybrid --version >/dev/null 2>/dev/null; then