From 672b0fc912d9b33712b07e3259f030fc4efc8d2b Mon Sep 17 00:00:00 2001 From: "Veronica K. B. Olsen" <1619840+vkbo@users.noreply.github.com> Date: Thu, 28 May 2020 17:59:26 +0200 Subject: [PATCH] Removed doc temp files and updated gitignore --- .gitignore | 1 + docs/source/_build/html/.buildinfo | 4 - .../_build/html/.doctrees/environment.pickle | Bin 33991 -> 0 bytes .../_build/html/.doctrees/export.doctree | Bin 19303 -> 0 bytes .../_build/html/.doctrees/index.doctree | Bin 4843 -> 0 bytes .../_build/html/.doctrees/interface.doctree | Bin 59358 -> 0 bytes .../html/.doctrees/introduction.doctree | Bin 9839 -> 0 bytes .../_build/html/.doctrees/notes.doctree | Bin 5994 -> 0 bytes .../_build/html/.doctrees/projects.doctree | Bin 31246 -> 0 bytes .../_build/html/.doctrees/started.doctree | Bin 14533 -> 0 bytes .../_build/html/.doctrees/structure.doctree | Bin 25176 -> 0 bytes .../_build/html/.doctrees/technical.doctree | Bin 13467 -> 0 bytes .../html/_images/python_win_install.png | Bin 98735 -> 0 bytes .../_build/html/_images/screenshot_dark.png | Bin 260894 -> 0 bytes .../html/_images/screenshot_default.png | Bin 261667 -> 0 bytes .../_build/html/_sources/export.rst.txt | 97 - .../source/_build/html/_sources/index.rst.txt | 25 - .../_build/html/_sources/interface.rst.txt | 160 - .../_build/html/_sources/introduction.rst.txt | 55 - .../source/_build/html/_sources/notes.rst.txt | 23 - .../_build/html/_sources/projects.rst.txt | 145 - .../_build/html/_sources/started.rst.txt | 91 - .../_build/html/_sources/structure.rst.txt | 94 - .../_build/html/_sources/technical.rst.txt | 55 - docs/source/_build/html/_static/basic.css | 768 -- docs/source/_build/html/_static/classic.css | 266 - docs/source/_build/html/_static/default.css | 1 - docs/source/_build/html/_static/doctools.js | 315 - .../html/_static/documentation_options.js | 12 - docs/source/_build/html/_static/file.png | Bin 286 -> 0 bytes .../_build/html/_static/jquery-3.5.1.js | 10872 ---------------- docs/source/_build/html/_static/jquery.js | 2 - .../_build/html/_static/language_data.js | 297 - docs/source/_build/html/_static/minus.png | Bin 90 -> 0 bytes docs/source/_build/html/_static/plus.png | Bin 90 -> 0 bytes docs/source/_build/html/_static/pygments.css | 69 - .../source/_build/html/_static/searchtools.js | 515 - docs/source/_build/html/_static/sidebar.js | 159 - .../_build/html/_static/underscore-1.3.1.js | 999 -- docs/source/_build/html/_static/underscore.js | 31 - docs/source/_build/html/export.html | 193 - docs/source/_build/html/genindex.html | 77 - docs/source/_build/html/index.html | 150 - docs/source/_build/html/interface.html | 418 - docs/source/_build/html/introduction.html | 151 - docs/source/_build/html/notes.html | 123 - docs/source/_build/html/objects.inv | 6 - docs/source/_build/html/projects.html | 247 - docs/source/_build/html/search.html | 85 - docs/source/_build/html/searchindex.js | 1 - docs/source/_build/html/started.html | 181 - docs/source/_build/html/structure.html | 197 - docs/source/_build/html/technical.html | 146 - 53 files changed, 1 insertion(+), 17030 deletions(-) delete mode 100644 docs/source/_build/html/.buildinfo delete mode 100644 docs/source/_build/html/.doctrees/environment.pickle delete mode 100644 docs/source/_build/html/.doctrees/export.doctree delete mode 100644 docs/source/_build/html/.doctrees/index.doctree delete mode 100644 docs/source/_build/html/.doctrees/interface.doctree delete mode 100644 docs/source/_build/html/.doctrees/introduction.doctree delete mode 100644 docs/source/_build/html/.doctrees/notes.doctree delete mode 100644 docs/source/_build/html/.doctrees/projects.doctree delete mode 100644 docs/source/_build/html/.doctrees/started.doctree delete mode 100644 docs/source/_build/html/.doctrees/structure.doctree delete mode 100644 docs/source/_build/html/.doctrees/technical.doctree delete mode 100644 docs/source/_build/html/_images/python_win_install.png delete mode 100644 docs/source/_build/html/_images/screenshot_dark.png delete mode 100644 docs/source/_build/html/_images/screenshot_default.png delete mode 100644 docs/source/_build/html/_sources/export.rst.txt delete mode 100644 docs/source/_build/html/_sources/index.rst.txt delete mode 100644 docs/source/_build/html/_sources/interface.rst.txt delete mode 100644 docs/source/_build/html/_sources/introduction.rst.txt delete mode 100644 docs/source/_build/html/_sources/notes.rst.txt delete mode 100644 docs/source/_build/html/_sources/projects.rst.txt delete mode 100644 docs/source/_build/html/_sources/started.rst.txt delete mode 100644 docs/source/_build/html/_sources/structure.rst.txt delete mode 100644 docs/source/_build/html/_sources/technical.rst.txt delete mode 100644 docs/source/_build/html/_static/basic.css delete mode 100644 docs/source/_build/html/_static/classic.css delete mode 100644 docs/source/_build/html/_static/default.css delete mode 100644 docs/source/_build/html/_static/doctools.js delete mode 100644 docs/source/_build/html/_static/documentation_options.js delete mode 100644 docs/source/_build/html/_static/file.png delete mode 100644 docs/source/_build/html/_static/jquery-3.5.1.js delete mode 100644 docs/source/_build/html/_static/jquery.js delete mode 100644 docs/source/_build/html/_static/language_data.js delete mode 100644 docs/source/_build/html/_static/minus.png delete mode 100644 docs/source/_build/html/_static/plus.png delete mode 100644 docs/source/_build/html/_static/pygments.css delete mode 100644 docs/source/_build/html/_static/searchtools.js delete mode 100644 docs/source/_build/html/_static/sidebar.js delete mode 100644 docs/source/_build/html/_static/underscore-1.3.1.js delete mode 100644 docs/source/_build/html/_static/underscore.js delete mode 100644 docs/source/_build/html/export.html delete mode 100644 docs/source/_build/html/genindex.html delete mode 100644 docs/source/_build/html/index.html delete mode 100644 docs/source/_build/html/interface.html delete mode 100644 docs/source/_build/html/introduction.html delete mode 100644 docs/source/_build/html/notes.html delete mode 100644 docs/source/_build/html/objects.inv delete mode 100644 docs/source/_build/html/projects.html delete mode 100644 docs/source/_build/html/search.html delete mode 100644 docs/source/_build/html/searchindex.js delete mode 100644 docs/source/_build/html/started.html delete mode 100644 docs/source/_build/html/structure.html delete mode 100644 docs/source/_build/html/technical.html diff --git a/.gitignore b/.gitignore index 54fe2f2e..2905634a 100644 --- a/.gitignore +++ b/.gitignore @@ -8,6 +8,7 @@ deploy/ # Documentation docs/build/ +docs/source/_* # Python Temp __pycache__ diff --git a/docs/source/_build/html/.buildinfo b/docs/source/_build/html/.buildinfo deleted file mode 100644 index 99fa28d2..00000000 --- a/docs/source/_build/html/.buildinfo +++ /dev/null @@ -1,4 +0,0 @@ -# Sphinx build info version 1 -# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: a159eeb9d1d0258eaa75fb5d3b835726 -tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/docs/source/_build/html/.doctrees/environment.pickle b/docs/source/_build/html/.doctrees/environment.pickle deleted file mode 100644 index ea7590ec3c806c4a4a836e65dd49cd57fc1b3ef1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 33991 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 AHUIzs diff --git a/docs/source/_build/html/.doctrees/index.doctree b/docs/source/_build/html/.doctrees/index.doctree deleted file mode 100644 index 6e05f2929b5d2369ae1c97a38bec06c3aacbff9f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4843 zcmb7I--~2N6`tAIp6;F>J+l)h>h2CZ!3~*oGTjLT3H!Pt>c~9kVh{{B)%R9+)y(Z% z*IRX`doV#GM0TOxa)bCkh@c{Z3hJ}|3jyCn1i@$hPTe1U`)+n;vTP4sr%s(ZbP$`6e?jMN1W-$|t5$>G#_XiBR(fbuDR-?%sC7P_UwAh;G)UIu2>aocD*>jsl6G>h-atih}jKhOd?0A z!NKXEYckL{lx_PV(;7m2Z$)gHf9nKkycmp_f1dC$>7=%8*o3As(G$1DChaKh*tdrQ z2OVCVkJRuXqC2declccw&>^C&hq-S<83lYkNHm#xqLh<>hBh{16lgHv%Akrw;5^~T_< zgEwpT3c+Wnt`2Hy7&KM5I6$(*Js{*Ie7=Iu%lN#4M2J_#YvPXRBYv$i5!n9q9LS<& zxBC5uDl!0u?)P0p5ae}j5*1Bq5fWQo#=_(E{s)zPLxhZJc0KoD|W;6A+4hD61p2`Xp5s0YIuQ~E;7NIX|p>; zkdJ4m#F!@;Yog98Gnm^U%r8LqV!!{*D3Ctahb#&XAF&b6Tf*<8#HRRpfw{e>l^f{$ zMbpEkJA}SZu2L$|w_p11I?m=O4MT3cP@)f&S3td`cWK5$&z{z%?al)Mm|aljePvK>D`g|+qF{hpXS2rq~d?qPlfoj=5sv( zUqZP4{k+ZV2_WTvUZwop1Z?NUqB%=^(G36Dz15YKApL`D=s%s3XEO=Ap0~lwuJ#?R z_+_nB9luLQi`Dl2EGMh$8bQND_c5ked zA>vS*JXy8d^uEAd?#;n%rx_$YkPR7oph@&j(J*-@m++7~i8qr*cqNI)j>Uq4)r0CJ zoJffmay&qYT5JdwR>PLP#pe>SGR&m9RBG8)z(?r>+x4ik(#(#K7)qf)bMrRA(-_MkD- zFmd)%D#BiFci}_1`tI^XW3k<(GiU@#AVeXNJ-Z#UXp*uCN5lh+Z-8&v7ZUEPB=A7a zfDdd#G!ksjSJ4>9B)S-QF)l$l&&0azvD7GUA+k3lK(!sD)7Yzkhrl|4BbpHl$>5HY zAi9yJ^e;rQ=4qh3`II2FOC(csufEcu#5dlB)G~+Yju%KxHWylj^RA^LU;htVj3 z`~?cs6lz|{Pi-&eu}AkjN(pQZ8-vcofGf5pY}-R&OspRahqKvi5MLUhqJc^#!+>85 zp{a+N-KP~~kydzMQHZiZR6CF#zx>8q2um*+`;Bc#ve@Qsxs6c@FL%k!*li=sG{hEN z!$v59fLL?K9-vsJUR7I_`<{*|y-)0m&KntNo)EhRZYf3qfV>HwTn$lpyZSORZ0-p; z5g|T+>CKQ{PIgOA@lx=9m^$A7*uLP#`Opg$7(c>=*Ytre@SyeakjTpl8KeH=VfA?$ z!x{QL!g2MY+(GOikbKcLlU?)UQXAX$G5N%P+`yz5gR;K=%)g^wYpahUy zLZwyee zBJCi`zQO~;Ju=b!+Ybx*#|Xhk*>`|`{N#ap!jCQ*JtyC=s{bYNW+is%+X$#771c{O IWjY%C9}tT|Jpcdz diff --git a/docs/source/_build/html/.doctrees/interface.doctree b/docs/source/_build/html/.doctrees/interface.doctree deleted file mode 100644 index abd88141e750080bf91ad3c6b8f809300817df65..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 59358 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 diff --git a/docs/source/_build/html/.doctrees/introduction.doctree b/docs/source/_build/html/.doctrees/introduction.doctree deleted file mode 100644 index 91fd3e38837d655b3aa4689810d5c5f41f20f4fc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9839 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 diff --git a/docs/source/_build/html/.doctrees/notes.doctree b/docs/source/_build/html/.doctrees/notes.doctree deleted file mode 100644 index 651b21551946c14a6f8894f522b898f92e3a98c1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5994 zcmeHL-D@Pr5!aopk6lT7y1VFd_;k2KFwtEkZ65MqYzPic0^x!J@!6LbGuJ!QyWMDJ zdak=itA#i?4~8=|f#AuT!7m2?GYRA=e@}kZ^R+A6$r%g|#)1{o)!kLq_3`WK`e5Vl z(GSiz1-4-B7MU7A=_ehn*PsnW!Vyn3&a zYktd$*eRWN>*a>rlw0prN0{7j%B5my%HMsvEDCL$%4h61DixL;ooOfRgNpWG%S(^N zB?a3h_Kjh9CH7Ow`9B5r77Rvjr zIOW!Yi0_S@XZ6>1QWpJS!sBxzrnIK?TaM3Ys*)r5vfLqw@}7TfEOjQv7v~c_ehXF{ z=lVjVPmFTHjNcB18^fx0TW~WWtMTH;3=LbOqY%fYnh$~ZWox+rDa75_97J&I#4o}I8Y1&;5*eZrwG9( zaj=@{9LK2l2V1ookZe-Zh-an3VU8J`#xj0R(Sl>7f?JGLt}>oB`jU!*#}aztU!y@S zi6;r;3_fE{ld{<{@q+Hku|iv`CaIvQ5{D2AV<49<#ygI4z>P#LID$4u7cKHf0_ec2s7{6EX`w3u9 zK9E0^_vAyM(?$z(K&fGU9rW;iqb2wOAvt@@XSNB;WlFEao8b0~7gvHX_KkXZP-X}v zjyswE{xu~WAz=Ul7W14*egQ-b84qCBvEmLO7SdC>V}dzCvbyRZ2mZI;*!il?1K%W5IOliEzNAthr7Mr8OLv&R`338?A+on( z^9n|0_b@A^8Z11OKOQ)m^=9zg<19xtSk7lw?wbS9R$^us;7_bAstc+OsLr9fB@vgz9?6A!JHgiW zqV(UbLv>*%4P00(C*q4C`~H`D{%_>@#tURnox_Q!O#@(p&{c_@KY3C62=yI#+lEpO zK!`f6sqm;eC7)nBFqO(R;ye%Kaa(=i3Y#O4#05neU(kvL!p+LgegB7=^*;Cj#{Bcw z_rdKi^})Y>dF58)DN5$WeIoaLgdJx zW;0claC9z0BEroR5#v$A`dSrL|2fjMDaKJjqZY?4NFKyf1KEtU&-1$e?R277LFdBn z-og3^_$yrLzkUSV=_8;AY(JosIU&recw3#-!~ldKE|qEnuxMVQZI!gd>W=N6+b7|f zctSz2%=d1;qN!7k!jcDH6ti9*Fo?ms^{auVdxp!0R83y8a5^{9r2Qx&l;dmHT7!cT7$Fl;1omxypF^l1_ z8I~r+XwT_5qGx@GXuSNPmswQ)))dcXI{MP&qicST-gtSLMVC}MR-lY5x(P*u{0NU- zu)J4O+UIXX6=&2o7a+0O&~zKl{H_ty1Bp@qURpi6?uU}6-EhO-6qgFNa(IE-cF~64 zNW`R^LELE0O%7XOg%LahW#I7I7IdiUxgV*#C|!gXrB1M_@`KV%PhLB*3g3sTlaVk+ zn@Hl0#=Qst;LnToG#8j7+-1H+} zIvw>Se_bWuoRnD+bx{Ya1_HG{Ob*Ben;U@w)8>|Z-;)X}%0x$(8O77SxI{BSM9Vuv zh{P_sP?jF<#4AdarAI#w(rCHWW`lg_cX1et_z#T|EZ=LEMImXaK{YBw5p}l!>9R|d z35RG3Y|o@~g?)WIp3mo}#llIQpK3E3C*op^m3CbD1KL3xX-DKl1}i&QbsO}PSAX_% zm}O+9@f9&d>BStjVw~1!8!F+ZL5y@+3K0XxCy4*V$?DOzzmI6jqAsyI^&?x5dq47b zf;K8gDM>9N1TEPpK@{(x>(~vEb^CQe8g&I}g%%%bzsm1g^ru|(tPIHZ+}{r4dKgjj z32ig7;Qg*CRp%5uM&J`+_jy@B8ES@xhGmoMA0bHah|H&Ob({RRLd&O|tghP^*+eAB z#|30bAso0J#Hr@zk;u48BebGW6H%}6xnCFg1vMu9b`1l_J46v`SG2qkGme{?a6#jn zwwxd;96GeHO+szR_W@KZ)Vfs(GPq5Gl%J0M|R+=gWwt1_ee+(;p nSp9+0jH9a;p%-j{I<>$K0anO69XU8~m=Gv6`AZjNIXV3gg;==` diff --git a/docs/source/_build/html/.doctrees/projects.doctree b/docs/source/_build/html/.doctrees/projects.doctree deleted file mode 100644 index 1de99026e366b77aedbf66524e4ff23d18ac0537..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 31246 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 VBlfls_hg*{Tgx`u5#8#-{{ynOh@Aic diff --git a/docs/source/_build/html/.doctrees/started.doctree b/docs/source/_build/html/.doctrees/started.doctree deleted file mode 100644 index ccdccc654540a64daddcdb9e55e87c1a911b10ab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14533 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 diff --git a/docs/source/_build/html/.doctrees/technical.doctree b/docs/source/_build/html/.doctrees/technical.doctree deleted file mode 100644 index 4585a23bcd2f59f412162c3ec1dff2b92e502971..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13467 zcmeHOPi!4W8F&8Jj-A+vQ%psg&~2+g(&qU=DOG7vMb#3uq_qM`+o)2t-nTpN?b`cx zw>z_b_Ms3|idr#JL0!~KE0B6Z0xldmaYjNyLP)(J(GzD7MO<5p6p1R|EYJS1e7QWMXL4^O z(<1jpsVC6G52HB9MN+<4h7)>P3SUKOQuhxh!>Mrk#qtbZPO3=7qV-BIUKW0sM7|e0 zPbK{{A9_5P2B81J%VL9OzFxOiOI{MDIIgEM4~tM`cr4r(9?(nW8-y+UDYw3P!a6 z*E86OH^{v#Y;)?_%V8v)io1@VCd!Kv=>!6QW9g)QCrn39Yeq+^G#AqGlE4Y^5#xUq z3Mb3cRh*F%c*G; z6UQr5N>Tukh&Sn+*F~GGvzqs>75sY7G!FYZQ#{aq8(h`x9BJMl6c&Uh3n?U0P0H+cG zKoSQcC#C`HB`QPOja4|*PV&imDR4YeP0p2Pp5_5YG6;I4SDlrWWK?ls zDH(07tPnknWg4~egNU$78$t=PKC|njwdHMXN5ehkK+xg>hRv?2BQxPg{m6%6RfKkF zuze<6)UWITHk9=d?~UaEH*0N}k-?A2ym@ikRxMm}d=|xXW5?QT4?e<)aQ$XhLDBrc z>Y|Q5IXpB+@Ci=3mC<5H*76vJv0RVI^Y5SPLlms=;BTBt3CG|!6+l6;OuMXJ2; zRRL=SXM!Zr3T`!IY4#~dkaVJ9mgdS!6q%qkA+i>A@{*t#itL;tVCtY9RG6p5AY_8Q zB8pW9DuKEc7?-B;Iad+ab99liIK2C;Y-s%}Cb<-pQKd?pYC zA~LnnYB;HnwBcy&&};+IW`k^metR<`^y_NYMSb5cz}?KUyJ6L2zo~NW;jmjb1{m{BTOdxUDQ3xsuQpDIDVVZtKl>A&!Y-qwiyNvc8c)eJXi5)39MHD#b zLogZ9Hmk)!9BFoTHptN!MOX?vi9WI(JarasN=_ZdDFRaRSKzo-yRF2p0+R7m*xiY+ z=o~I^x<(!loY3)}bwJ8~DPmtrl|76MXkq@xEDx_(yf~fCqs}GDyPc=l_6d`VTd^c* zl*5b)y>*I?iC>l{PMV3zza_K(jSqbGEj{`nhyb1^YIqtzhed64W@><037KTTHFJ~x zU%dwuZl;$J!|_Z2|KgSBFyIzsKMu$?Cv%I*ADdo)*K)1YOz5d7;hICs3H@TNGTy)X z?zJkzO4ZG})kcWL?V)YNP0x+#Dj3gJW?fICcB81KqPx4)X_S>;eULOnBfjutYcJ>K znyy~^?uKo{;>KODp22pdgS#-&THG;9`(5mUv@I+Zg3KyY2xH^tn;G)%#-hO>aXynX z;@)~1!TL&BAa%$FjICbPhja7^*&pL4B29`a6Ia1tOA~e@DJ((GB}1l+t#+N6Cj;ok z6qBd0cI$}3>-otyM4Vpd>jMFc5fH@@wUaS{QOY@CYDzn_DrEa9wF7HEz+z$IRBDVd zFS*H-Rwt)&A)NI{jF7O|@I_|ma^KkN38ZJhnKVI$pmsrM;;p{3by~07VlG#qjBoUj zF}IeTRkD}>_GS9BW9QQrA-;4ykvI!-hlSxl*X(j9ejsLB#@TkTJxIDqn7 z3vuLhVPuvg_a0^Nl8|YlPR5<3@)Hv<;}BB;;oHSwB#iWKOAzKnl!!u2LZUhWuk$+v zd{8cINlIiARCy=4ptu6^kZh^GL0Zr$hi?gKLLnMuTM`~+ePPOO^@NYQF32W>xQWlM z++x~pnASizFc9v2APAqm9)z!g++{v)3PU)|uHh^B`066jcq&AkOeBQ!2XaEiSa3ac#%iU#5|X?vi7nG=dQ>lZQ6 zp@=6)IZ9|?4ER#Y7CF;A!IcRkG*n5WWUjpuK(reLPH(9NHyjjd$12}6!f7}JYLLeO zVGao-nYOf0n1d_N5=B4Crqxwp+P4h`X*#xPrdB``)<)n*AJJL7fAwvg#`{;_xpf|N zyt_Y-M(A=QblC?Iy3Ux;HSU*QsF2;UQLSueYb@;BFK>{op?t^qg??kda7L z2D4^|DZ5c1O)A6WPmGrZ9fO>rphBCMZ?ZI-noHr+mZ2idSR_$Q-J9hdMBrwkd~PHe zB&w21U1VvL&p7eQ#2HPIh*32om)udFfhna|mD8E!Vm(R=S^I=`2ka*102d=z4&&G?O&>>gyhGZ*6UmOb z`PFg}=&i90P|)?;EySzqwf4egi}+%FgBF)c%#}rCVOsQ?4sCB69kxtyz{Ju#1uo%U z|5iqQuQXn1fv{WCN&!dQN#;Hs) zl~SMD@@5N()#?2c6MEjzZPs8%pB#U&Ww1U*dyrsMSb0dLo{N!DD7=9H#{=A^-;Yc5 z`nDX|hCFahwhz-p0LQYPf_u`(Ho=i7aNz{?qm440((~lwxJ{GZ9|2TzK{3qS8hBtV zH$=c31&&1UD7S#SiKOFinldShAayr}1gT?UBTJ=l+annzzH-+iNx2@PE)aLXPj zfP5Hv`1%oocT8^LKL3UrMuRZMFJO8wP7|Q|h#aEO>%LS#d?iNS#?R)_rMhRu!Bce# z!-y45jP#F-(YR@c#n4wf%qC%RF+KM=kS+7O`kV_R-M_e%R`q5=&qBNSX+gT9)Q9~vrkXhL3=1>;c-8(U4&&AGdk`^vc?Cj? fW0O#9X2M#@j5Qywn;9ds0qMO;MUXizdQ1NWjB*Ed diff --git a/docs/source/_build/html/_images/python_win_install.png b/docs/source/_build/html/_images/python_win_install.png deleted file mode 100644 index 320305d0631c49523d32daff88101e8bef5b00f7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 98735 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≥gYCt&cOFSej4fv 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 L=G$`lFG2qU0Qyc; diff --git a/docs/source/_build/html/_images/screenshot_dark.png b/docs/source/_build/html/_images/screenshot_dark.png deleted file mode 100644 index 77bdb54c4500530c0b04c1a039ff2d217471e0ac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 260894 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�haHY(j+k~~MD`i4PvMqy-2XGz1S%Ntf) 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') - .appendTo($('#searchbox')); - } - }, - - /** - * init the domain index toggle buttons - */ - initIndexTable : function() { - var togglers = $('img.toggler').click(function() { - var src = $(this).attr('src'); - var idnum = $(this).attr('id').substr(7); - $('tr.cg-' + idnum).toggle(); - if (src.substr(-9) === 'minus.png') - $(this).attr('src', src.substr(0, src.length-9) + 'plus.png'); - else - $(this).attr('src', src.substr(0, src.length-8) + 'minus.png'); - }).css('display', ''); - if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) { - togglers.click(); - } - }, - - /** - * helper function to hide the search marks again - */ - hideSearchWords : function() { - $('#searchbox .highlight-link').fadeOut(300); - $('span.highlighted').removeClass('highlighted'); - }, - - /** - * make the url absolute - */ - makeURL : function(relativeURL) { - return DOCUMENTATION_OPTIONS.URL_ROOT + '/' + relativeURL; - }, - - /** - * get the current relative url - */ - getCurrentURL : function() { - var path = document.location.pathname; - var parts = path.split(/\//); - $.each(DOCUMENTATION_OPTIONS.URL_ROOT.split(/\//), function() { - if (this === '..') - parts.pop(); - }); - var url = parts.join('/'); - return path.substring(url.lastIndexOf('/') + 1, path.length - 1); - }, - - initOnKeyListeners: function() { - $(document).keydown(function(event) { - var activeElementType = document.activeElement.tagName; - // don't navigate when in search box or textarea - if (activeElementType !== 'TEXTAREA' && activeElementType !== 'INPUT' && activeElementType !== 'SELECT' - && !event.altKey && !event.ctrlKey && !event.metaKey && !event.shiftKey) { - switch (event.keyCode) { - case 37: // left - var prevHref = $('link[rel="prev"]').prop('href'); - if (prevHref) { - window.location.href = prevHref; - return false; - } - case 39: // right - var nextHref = $('link[rel="next"]').prop('href'); - if (nextHref) { - window.location.href = nextHref; - return false; - } - } - } - }); - } -}; - -// quick alias for translations -_ = Documentation.gettext; - -$(document).ready(function() { - Documentation.init(); -}); diff --git a/docs/source/_build/html/_static/documentation_options.js b/docs/source/_build/html/_static/documentation_options.js deleted file mode 100644 index 1be82db5..00000000 --- a/docs/source/_build/html/_static/documentation_options.js +++ /dev/null @@ -1,12 +0,0 @@ -var DOCUMENTATION_OPTIONS = { - URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'), - VERSION: '0.6.1', - LANGUAGE: 'None', - COLLAPSE_INDEX: false, - BUILDER: 'html', - FILE_SUFFIX: '.html', - LINK_SUFFIX: '.html', - HAS_SOURCE: true, - SOURCELINK_SUFFIX: '.txt', - NAVIGATION_WITH_KEYS: false -}; \ No newline at end of file diff --git a/docs/source/_build/html/_static/file.png b/docs/source/_build/html/_static/file.png deleted file mode 100644 index a858a410e4faa62ce324d814e4b816fff83a6fb3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 286 zcmV+(0pb3MP)s`hMrGg#P~ix$^RISR_I47Y|r1 z_CyJOe}D1){SET-^Amu_i71Lt6eYfZjRyw@I6OQAIXXHDfiX^GbOlHe=Ae4>0m)d(f|Me07*qoM6N<$f}vM^LjV8( diff --git a/docs/source/_build/html/_static/jquery-3.5.1.js b/docs/source/_build/html/_static/jquery-3.5.1.js deleted file mode 100644 index 50937333..00000000 --- a/docs/source/_build/html/_static/jquery-3.5.1.js +++ /dev/null @@ -1,10872 +0,0 @@ -/*! - * jQuery JavaScript Library v3.5.1 - * https://jquery.com/ - * - * Includes Sizzle.js - * https://sizzlejs.com/ - * - * Copyright JS Foundation and other contributors - * Released under the MIT license - * https://jquery.org/license - * - * Date: 2020-05-04T22:49Z - */ -( function( global, factory ) { - - "use strict"; - - if ( typeof module === "object" && typeof module.exports === "object" ) { - - // For CommonJS and CommonJS-like environments where a proper `window` - // is present, execute the factory and get jQuery. - // For environments that do not have a `window` with a `document` - // (such as Node.js), expose a factory as module.exports. - // This accentuates the need for the creation of a real `window`. - // e.g. var jQuery = require("jquery")(window); - // See ticket #14549 for more info. - module.exports = global.document ? - factory( global, true ) : - function( w ) { - if ( !w.document ) { - throw new Error( "jQuery requires a window with a document" ); - } - return factory( w ); - }; - } else { - factory( global ); - } - -// Pass this if window is not defined yet -} )( typeof window !== "undefined" ? window : this, function( window, noGlobal ) { - -// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1 -// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode -// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common -// enough that all such attempts are guarded in a try block. -"use strict"; - -var arr = []; - -var getProto = Object.getPrototypeOf; - -var slice = arr.slice; - -var flat = arr.flat ? function( array ) { - return arr.flat.call( array ); -} : function( array ) { - return arr.concat.apply( [], array ); -}; - - -var push = arr.push; - -var indexOf = arr.indexOf; - -var class2type = {}; - -var toString = class2type.toString; - -var hasOwn = class2type.hasOwnProperty; - -var fnToString = hasOwn.toString; - -var ObjectFunctionString = fnToString.call( Object ); - -var support = {}; - -var isFunction = function isFunction( obj ) { - - // Support: Chrome <=57, Firefox <=52 - // In some browsers, typeof returns "function" for HTML elements - // (i.e., `typeof document.createElement( "object" ) === "function"`). - // We don't want to classify *any* DOM node as a function. - return typeof obj === "function" && typeof obj.nodeType !== "number"; - }; - - -var isWindow = function isWindow( obj ) { - return obj != null && obj === obj.window; - }; - - -var document = window.document; - - - - var preservedScriptAttributes = { - type: true, - src: true, - nonce: true, - noModule: true - }; - - function DOMEval( code, node, doc ) { - doc = doc || document; - - var i, val, - script = doc.createElement( "script" ); - - script.text = code; - if ( node ) { - for ( i in preservedScriptAttributes ) { - - // Support: Firefox 64+, Edge 18+ - // Some browsers don't support the "nonce" property on scripts. - // On the other hand, just using `getAttribute` is not enough as - // the `nonce` attribute is reset to an empty string whenever it - // becomes browsing-context connected. - // See https://github.com/whatwg/html/issues/2369 - // See https://html.spec.whatwg.org/#nonce-attributes - // The `node.getAttribute` check was added for the sake of - // `jQuery.globalEval` so that it can fake a nonce-containing node - // via an object. - val = node[ i ] || node.getAttribute && node.getAttribute( i ); - if ( val ) { - script.setAttribute( i, val ); - } - } - } - doc.head.appendChild( script ).parentNode.removeChild( script ); - } - - -function toType( obj ) { - if ( obj == null ) { - return obj + ""; - } - - // Support: Android <=2.3 only (functionish RegExp) - return typeof obj === "object" || typeof obj === "function" ? - class2type[ toString.call( obj ) ] || "object" : - typeof obj; -} -/* global Symbol */ -// Defining this global in .eslintrc.json would create a danger of using the global -// unguarded in another place, it seems safer to define global only for this module - - - -var - version = "3.5.1", - - // Define a local copy of jQuery - jQuery = function( selector, context ) { - - // The jQuery object is actually just the init constructor 'enhanced' - // Need init if jQuery is called (just allow error to be thrown if not included) - return new jQuery.fn.init( selector, context ); - }; - -jQuery.fn = jQuery.prototype = { - - // The current version of jQuery being used - jquery: version, - - constructor: jQuery, - - // The default length of a jQuery object is 0 - length: 0, - - toArray: function() { - return slice.call( this ); - }, - - // Get the Nth element in the matched element set OR - // Get the whole matched element set as a clean array - get: function( num ) { - - // Return all the elements in a clean array - if ( num == null ) { - return slice.call( this ); - } - - // Return just the one element from the set - return num < 0 ? this[ num + this.length ] : this[ num ]; - }, - - // Take an array of elements and push it onto the stack - // (returning the new matched element set) - pushStack: function( elems ) { - - // Build a new jQuery matched element set - var ret = jQuery.merge( this.constructor(), elems ); - - // Add the old object onto the stack (as a reference) - ret.prevObject = this; - - // Return the newly-formed element set - return ret; - }, - - // Execute a callback for every element in the matched set. - each: function( callback ) { - return jQuery.each( this, callback ); - }, - - map: function( callback ) { - return this.pushStack( jQuery.map( this, function( elem, i ) { - return callback.call( elem, i, elem ); - } ) ); - }, - - slice: function() { - return this.pushStack( slice.apply( this, arguments ) ); - }, - - first: function() { - return this.eq( 0 ); - }, - - last: function() { - return this.eq( -1 ); - }, - - even: function() { - return this.pushStack( jQuery.grep( this, function( _elem, i ) { - return ( i + 1 ) % 2; - } ) ); - }, - - odd: function() { - return this.pushStack( jQuery.grep( this, function( _elem, i ) { - return i % 2; - } ) ); - }, - - eq: function( i ) { - var len = this.length, - j = +i + ( i < 0 ? len : 0 ); - return this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] ); - }, - - end: function() { - return this.prevObject || this.constructor(); - }, - - // For internal use only. - // Behaves like an Array's method, not like a jQuery method. - push: push, - sort: arr.sort, - splice: arr.splice -}; - -jQuery.extend = jQuery.fn.extend = function() { - var options, name, src, copy, copyIsArray, clone, - target = arguments[ 0 ] || {}, - i = 1, - length = arguments.length, - deep = false; - - // Handle a deep copy situation - if ( typeof target === "boolean" ) { - deep = target; - - // Skip the boolean and the target - target = arguments[ i ] || {}; - i++; - } - - // Handle case when target is a string or something (possible in deep copy) - if ( typeof target !== "object" && !isFunction( target ) ) { - target = {}; - } - - // Extend jQuery itself if only one argument is passed - if ( i === length ) { - target = this; - i--; - } - - for ( ; i < length; i++ ) { - - // Only deal with non-null/undefined values - if ( ( options = arguments[ i ] ) != null ) { - - // Extend the base object - for ( name in options ) { - copy = options[ name ]; - - // Prevent Object.prototype pollution - // Prevent never-ending loop - if ( name === "__proto__" || target === copy ) { - continue; - } - - // Recurse if we're merging plain objects or arrays - if ( deep && copy && ( jQuery.isPlainObject( copy ) || - ( copyIsArray = Array.isArray( copy ) ) ) ) { - src = target[ name ]; - - // Ensure proper type for the source value - if ( copyIsArray && !Array.isArray( src ) ) { - clone = []; - } else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) { - clone = {}; - } else { - clone = src; - } - copyIsArray = false; - - // Never move original objects, clone them - target[ name ] = jQuery.extend( deep, clone, copy ); - - // Don't bring in undefined values - } else if ( copy !== undefined ) { - target[ name ] = copy; - } - } - } - } - - // Return the modified object - return target; -}; - -jQuery.extend( { - - // Unique for each copy of jQuery on the page - expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ), - - // Assume jQuery is ready without the ready module - isReady: true, - - error: function( msg ) { - throw new Error( msg ); - }, - - noop: function() {}, - - isPlainObject: function( obj ) { - var proto, Ctor; - - // Detect obvious negatives - // Use toString instead of jQuery.type to catch host objects - if ( !obj || toString.call( obj ) !== "[object Object]" ) { - return false; - } - - proto = getProto( obj ); - - // Objects with no prototype (e.g., `Object.create( null )`) are plain - if ( !proto ) { - return true; - } - - // Objects with prototype are plain iff they were constructed by a global Object function - Ctor = hasOwn.call( proto, "constructor" ) && proto.constructor; - return typeof Ctor === "function" && fnToString.call( Ctor ) === ObjectFunctionString; - }, - - isEmptyObject: function( obj ) { - var name; - - for ( name in obj ) { - return false; - } - return true; - }, - - // Evaluates a script in a provided context; falls back to the global one - // if not specified. - globalEval: function( code, options, doc ) { - DOMEval( code, { nonce: options && options.nonce }, doc ); - }, - - each: function( obj, callback ) { - var length, i = 0; - - if ( isArrayLike( obj ) ) { - length = obj.length; - for ( ; i < length; i++ ) { - if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { - break; - } - } - } else { - for ( i in obj ) { - if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { - break; - } - } - } - - return obj; - }, - - // results is for internal usage only - makeArray: function( arr, results ) { - var ret = results || []; - - if ( arr != null ) { - if ( isArrayLike( Object( arr ) ) ) { - jQuery.merge( ret, - typeof arr === "string" ? - [ arr ] : arr - ); - } else { - push.call( ret, arr ); - } - } - - return ret; - }, - - inArray: function( elem, arr, i ) { - return arr == null ? -1 : indexOf.call( arr, elem, i ); - }, - - // Support: Android <=4.0 only, PhantomJS 1 only - // push.apply(_, arraylike) throws on ancient WebKit - merge: function( first, second ) { - var len = +second.length, - j = 0, - i = first.length; - - for ( ; j < len; j++ ) { - first[ i++ ] = second[ j ]; - } - - first.length = i; - - return first; - }, - - grep: function( elems, callback, invert ) { - var callbackInverse, - matches = [], - i = 0, - length = elems.length, - callbackExpect = !invert; - - // Go through the array, only saving the items - // that pass the validator function - for ( ; i < length; i++ ) { - callbackInverse = !callback( elems[ i ], i ); - if ( callbackInverse !== callbackExpect ) { - matches.push( elems[ i ] ); - } - } - - return matches; - }, - - // arg is for internal usage only - map: function( elems, callback, arg ) { - var length, value, - i = 0, - ret = []; - - // Go through the array, translating each of the items to their new values - if ( isArrayLike( elems ) ) { - length = elems.length; - for ( ; i < length; i++ ) { - value = callback( elems[ i ], i, arg ); - - if ( value != null ) { - ret.push( value ); - } - } - - // Go through every key on the object, - } else { - for ( i in elems ) { - value = callback( elems[ i ], i, arg ); - - if ( value != null ) { - ret.push( value ); - } - } - } - - // Flatten any nested arrays - return flat( ret ); - }, - - // A global GUID counter for objects - guid: 1, - - // jQuery.support is not used in Core but other projects attach their - // properties to it so it needs to exist. - support: support -} ); - -if ( typeof Symbol === "function" ) { - jQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ]; -} - -// Populate the class2type map -jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ), -function( _i, name ) { - class2type[ "[object " + name + "]" ] = name.toLowerCase(); -} ); - -function isArrayLike( obj ) { - - // Support: real iOS 8.2 only (not reproducible in simulator) - // `in` check used to prevent JIT error (gh-2145) - // hasOwn isn't used here due to false negatives - // regarding Nodelist length in IE - var length = !!obj && "length" in obj && obj.length, - type = toType( obj ); - - if ( isFunction( obj ) || isWindow( obj ) ) { - return false; - } - - return type === "array" || length === 0 || - typeof length === "number" && length > 0 && ( length - 1 ) in obj; -} -var Sizzle = -/*! - * Sizzle CSS Selector Engine v2.3.5 - * https://sizzlejs.com/ - * - * Copyright JS Foundation and other contributors - * Released under the MIT license - * https://js.foundation/ - * - * Date: 2020-03-14 - */ -( function( window ) { -var i, - support, - Expr, - getText, - isXML, - tokenize, - compile, - select, - outermostContext, - sortInput, - hasDuplicate, - - // Local document vars - setDocument, - document, - docElem, - documentIsHTML, - rbuggyQSA, - rbuggyMatches, - matches, - contains, - - // Instance-specific data - expando = "sizzle" + 1 * new Date(), - preferredDoc = window.document, - dirruns = 0, - done = 0, - classCache = createCache(), - tokenCache = createCache(), - compilerCache = createCache(), - nonnativeSelectorCache = createCache(), - sortOrder = function( a, b ) { - if ( a === b ) { - hasDuplicate = true; - } - return 0; - }, - - // Instance methods - hasOwn = ( {} ).hasOwnProperty, - arr = [], - pop = arr.pop, - pushNative = arr.push, - push = arr.push, - slice = arr.slice, - - // Use a stripped-down indexOf as it's faster than native - // https://jsperf.com/thor-indexof-vs-for/5 - indexOf = function( list, elem ) { - var i = 0, - len = list.length; - for ( ; i < len; i++ ) { - if ( list[ i ] === elem ) { - return i; - } - } - return -1; - }, - - booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|" + - "ismap|loop|multiple|open|readonly|required|scoped", - - // Regular expressions - - // http://www.w3.org/TR/css3-selectors/#whitespace - whitespace = "[\\x20\\t\\r\\n\\f]", - - // https://www.w3.org/TR/css-syntax-3/#ident-token-diagram - identifier = "(?:\\\\[\\da-fA-F]{1,6}" + whitespace + - "?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+", - - // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors - attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace + - - // Operator (capture 2) - "*([*^$|!~]?=)" + whitespace + - - // "Attribute values must be CSS identifiers [capture 5] - // or strings [capture 3 or capture 4]" - "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + - whitespace + "*\\]", - - pseudos = ":(" + identifier + ")(?:\\((" + - - // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments: - // 1. quoted (capture 3; capture 4 or capture 5) - "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" + - - // 2. simple (capture 6) - "((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" + - - // 3. anything else (capture 2) - ".*" + - ")\\)|)", - - // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter - rwhitespace = new RegExp( whitespace + "+", "g" ), - rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + - whitespace + "+$", "g" ), - - rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), - rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + - "*" ), - rdescend = new RegExp( whitespace + "|>" ), - - rpseudo = new RegExp( pseudos ), - ridentifier = new RegExp( "^" + identifier + "$" ), - - matchExpr = { - "ID": new RegExp( "^#(" + identifier + ")" ), - "CLASS": new RegExp( "^\\.(" + identifier + ")" ), - "TAG": new RegExp( "^(" + identifier + "|[*])" ), - "ATTR": new RegExp( "^" + attributes ), - "PSEUDO": new RegExp( "^" + pseudos ), - "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + - whitespace + "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + - whitespace + "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), - "bool": new RegExp( "^(?:" + booleans + ")$", "i" ), - - // For use in libraries implementing .is() - // We use this for POS matching in `select` - "needsContext": new RegExp( "^" + whitespace + - "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + whitespace + - "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) - }, - - rhtml = /HTML$/i, - rinputs = /^(?:input|select|textarea|button)$/i, - rheader = /^h\d$/i, - - rnative = /^[^{]+\{\s*\[native \w/, - - // Easily-parseable/retrievable ID or TAG or CLASS selectors - rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, - - rsibling = /[+~]/, - - // CSS escapes - // http://www.w3.org/TR/CSS21/syndata.html#escaped-characters - runescape = new RegExp( "\\\\[\\da-fA-F]{1,6}" + whitespace + "?|\\\\([^\\r\\n\\f])", "g" ), - funescape = function( escape, nonHex ) { - var high = "0x" + escape.slice( 1 ) - 0x10000; - - return nonHex ? - - // Strip the backslash prefix from a non-hex escape sequence - nonHex : - - // Replace a hexadecimal escape sequence with the encoded Unicode code point - // Support: IE <=11+ - // For values outside the Basic Multilingual Plane (BMP), manually construct a - // surrogate pair - high < 0 ? - String.fromCharCode( high + 0x10000 ) : - String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 ); - }, - - // CSS string/identifier serialization - // https://drafts.csswg.org/cssom/#common-serializing-idioms - rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g, - fcssescape = function( ch, asCodePoint ) { - if ( asCodePoint ) { - - // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER - if ( ch === "\0" ) { - return "\uFFFD"; - } - - // Control characters and (dependent upon position) numbers get escaped as code points - return ch.slice( 0, -1 ) + "\\" + - ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " "; - } - - // Other potentially-special ASCII characters get backslash-escaped - return "\\" + ch; - }, - - // Used for iframes - // See setDocument() - // Removing the function wrapper causes a "Permission Denied" - // error in IE - unloadHandler = function() { - setDocument(); - }, - - inDisabledFieldset = addCombinator( - function( elem ) { - return elem.disabled === true && elem.nodeName.toLowerCase() === "fieldset"; - }, - { dir: "parentNode", next: "legend" } - ); - -// Optimize for push.apply( _, NodeList ) -try { - push.apply( - ( arr = slice.call( preferredDoc.childNodes ) ), - preferredDoc.childNodes - ); - - // Support: Android<4.0 - // Detect silently failing push.apply - // eslint-disable-next-line no-unused-expressions - arr[ preferredDoc.childNodes.length ].nodeType; -} catch ( e ) { - push = { apply: arr.length ? - - // Leverage slice if possible - function( target, els ) { - pushNative.apply( target, slice.call( els ) ); - } : - - // Support: IE<9 - // Otherwise append directly - function( target, els ) { - var j = target.length, - i = 0; - - // Can't trust NodeList.length - while ( ( target[ j++ ] = els[ i++ ] ) ) {} - target.length = j - 1; - } - }; -} - -function Sizzle( selector, context, results, seed ) { - var m, i, elem, nid, match, groups, newSelector, - newContext = context && context.ownerDocument, - - // nodeType defaults to 9, since context defaults to document - nodeType = context ? context.nodeType : 9; - - results = results || []; - - // Return early from calls with invalid selector or context - if ( typeof selector !== "string" || !selector || - nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) { - - return results; - } - - // Try to shortcut find operations (as opposed to filters) in HTML documents - if ( !seed ) { - setDocument( context ); - context = context || document; - - if ( documentIsHTML ) { - - // If the selector is sufficiently simple, try using a "get*By*" DOM method - // (excepting DocumentFragment context, where the methods don't exist) - if ( nodeType !== 11 && ( match = rquickExpr.exec( selector ) ) ) { - - // ID selector - if ( ( m = match[ 1 ] ) ) { - - // Document context - if ( nodeType === 9 ) { - if ( ( elem = context.getElementById( m ) ) ) { - - // Support: IE, Opera, Webkit - // TODO: identify versions - // getElementById can match elements by name instead of ID - if ( elem.id === m ) { - results.push( elem ); - return results; - } - } else { - return results; - } - - // Element context - } else { - - // Support: IE, Opera, Webkit - // TODO: identify versions - // getElementById can match elements by name instead of ID - if ( newContext && ( elem = newContext.getElementById( m ) ) && - contains( context, elem ) && - elem.id === m ) { - - results.push( elem ); - return results; - } - } - - // Type selector - } else if ( match[ 2 ] ) { - push.apply( results, context.getElementsByTagName( selector ) ); - return results; - - // Class selector - } else if ( ( m = match[ 3 ] ) && support.getElementsByClassName && - context.getElementsByClassName ) { - - push.apply( results, context.getElementsByClassName( m ) ); - return results; - } - } - - // Take advantage of querySelectorAll - if ( support.qsa && - !nonnativeSelectorCache[ selector + " " ] && - ( !rbuggyQSA || !rbuggyQSA.test( selector ) ) && - - // Support: IE 8 only - // Exclude object elements - ( nodeType !== 1 || context.nodeName.toLowerCase() !== "object" ) ) { - - newSelector = selector; - newContext = context; - - // qSA considers elements outside a scoping root when evaluating child or - // descendant combinators, which is not what we want. - // In such cases, we work around the behavior by prefixing every selector in the - // list with an ID selector referencing the scope context. - // The technique has to be used as well when a leading combinator is used - // as such selectors are not recognized by querySelectorAll. - // Thanks to Andrew Dupont for this technique. - if ( nodeType === 1 && - ( rdescend.test( selector ) || rcombinators.test( selector ) ) ) { - - // Expand context for sibling selectors - newContext = rsibling.test( selector ) && testContext( context.parentNode ) || - context; - - // We can use :scope instead of the ID hack if the browser - // supports it & if we're not changing the context. - if ( newContext !== context || !support.scope ) { - - // Capture the context ID, setting it first if necessary - if ( ( nid = context.getAttribute( "id" ) ) ) { - nid = nid.replace( rcssescape, fcssescape ); - } else { - context.setAttribute( "id", ( nid = expando ) ); - } - } - - // Prefix every selector in the list - groups = tokenize( selector ); - i = groups.length; - while ( i-- ) { - groups[ i ] = ( nid ? "#" + nid : ":scope" ) + " " + - toSelector( groups[ i ] ); - } - newSelector = groups.join( "," ); - } - - try { - push.apply( results, - newContext.querySelectorAll( newSelector ) - ); - return results; - } catch ( qsaError ) { - nonnativeSelectorCache( selector, true ); - } finally { - if ( nid === expando ) { - context.removeAttribute( "id" ); - } - } - } - } - } - - // All others - return select( selector.replace( rtrim, "$1" ), context, results, seed ); -} - -/** - * Create key-value caches of limited size - * @returns {function(string, object)} Returns the Object data after storing it on itself with - * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength) - * deleting the oldest entry - */ -function createCache() { - var keys = []; - - function cache( key, value ) { - - // Use (key + " ") to avoid collision with native prototype properties (see Issue #157) - if ( keys.push( key + " " ) > Expr.cacheLength ) { - - // Only keep the most recent entries - delete cache[ keys.shift() ]; - } - return ( cache[ key + " " ] = value ); - } - return cache; -} - -/** - * Mark a function for special use by Sizzle - * @param {Function} fn The function to mark - */ -function markFunction( fn ) { - fn[ expando ] = true; - return fn; -} - -/** - * Support testing using an element - * @param {Function} fn Passed the created element and returns a boolean result - */ -function assert( fn ) { - var el = document.createElement( "fieldset" ); - - try { - return !!fn( el ); - } catch ( e ) { - return false; - } finally { - - // Remove from its parent by default - if ( el.parentNode ) { - el.parentNode.removeChild( el ); - } - - // release memory in IE - el = null; - } -} - -/** - * Adds the same handler for all of the specified attrs - * @param {String} attrs Pipe-separated list of attributes - * @param {Function} handler The method that will be applied - */ -function addHandle( attrs, handler ) { - var arr = attrs.split( "|" ), - i = arr.length; - - while ( i-- ) { - Expr.attrHandle[ arr[ i ] ] = handler; - } -} - -/** - * Checks document order of two siblings - * @param {Element} a - * @param {Element} b - * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b - */ -function siblingCheck( a, b ) { - var cur = b && a, - diff = cur && a.nodeType === 1 && b.nodeType === 1 && - a.sourceIndex - b.sourceIndex; - - // Use IE sourceIndex if available on both nodes - if ( diff ) { - return diff; - } - - // Check if b follows a - if ( cur ) { - while ( ( cur = cur.nextSibling ) ) { - if ( cur === b ) { - return -1; - } - } - } - - return a ? 1 : -1; -} - -/** - * Returns a function to use in pseudos for input types - * @param {String} type - */ -function createInputPseudo( type ) { - return function( elem ) { - var name = elem.nodeName.toLowerCase(); - return name === "input" && elem.type === type; - }; -} - -/** - * Returns a function to use in pseudos for buttons - * @param {String} type - */ -function createButtonPseudo( type ) { - return function( elem ) { - var name = elem.nodeName.toLowerCase(); - return ( name === "input" || name === "button" ) && elem.type === type; - }; -} - -/** - * Returns a function to use in pseudos for :enabled/:disabled - * @param {Boolean} disabled true for :disabled; false for :enabled - */ -function createDisabledPseudo( disabled ) { - - // Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable - return function( elem ) { - - // Only certain elements can match :enabled or :disabled - // https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled - // https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled - if ( "form" in elem ) { - - // Check for inherited disabledness on relevant non-disabled elements: - // * listed form-associated elements in a disabled fieldset - // https://html.spec.whatwg.org/multipage/forms.html#category-listed - // https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled - // * option elements in a disabled optgroup - // https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled - // All such elements have a "form" property. - if ( elem.parentNode && elem.disabled === false ) { - - // Option elements defer to a parent optgroup if present - if ( "label" in elem ) { - if ( "label" in elem.parentNode ) { - return elem.parentNode.disabled === disabled; - } else { - return elem.disabled === disabled; - } - } - - // Support: IE 6 - 11 - // Use the isDisabled shortcut property to check for disabled fieldset ancestors - return elem.isDisabled === disabled || - - // Where there is no isDisabled, check manually - /* jshint -W018 */ - elem.isDisabled !== !disabled && - inDisabledFieldset( elem ) === disabled; - } - - return elem.disabled === disabled; - - // Try to winnow out elements that can't be disabled before trusting the disabled property. - // Some victims get caught in our net (label, legend, menu, track), but it shouldn't - // even exist on them, let alone have a boolean value. - } else if ( "label" in elem ) { - return elem.disabled === disabled; - } - - // Remaining elements are neither :enabled nor :disabled - return false; - }; -} - -/** - * Returns a function to use in pseudos for positionals - * @param {Function} fn - */ -function createPositionalPseudo( fn ) { - return markFunction( function( argument ) { - argument = +argument; - return markFunction( function( seed, matches ) { - var j, - matchIndexes = fn( [], seed.length, argument ), - i = matchIndexes.length; - - // Match elements found at the specified indexes - while ( i-- ) { - if ( seed[ ( j = matchIndexes[ i ] ) ] ) { - seed[ j ] = !( matches[ j ] = seed[ j ] ); - } - } - } ); - } ); -} - -/** - * Checks a node for validity as a Sizzle context - * @param {Element|Object=} context - * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value - */ -function testContext( context ) { - return context && typeof context.getElementsByTagName !== "undefined" && context; -} - -// Expose support vars for convenience -support = Sizzle.support = {}; - -/** - * Detects XML nodes - * @param {Element|Object} elem An element or a document - * @returns {Boolean} True iff elem is a non-HTML XML node - */ -isXML = Sizzle.isXML = function( elem ) { - var namespace = elem.namespaceURI, - docElem = ( elem.ownerDocument || elem ).documentElement; - - // Support: IE <=8 - // Assume HTML when documentElement doesn't yet exist, such as inside loading iframes - // https://bugs.jquery.com/ticket/4833 - return !rhtml.test( namespace || docElem && docElem.nodeName || "HTML" ); -}; - -/** - * Sets document-related variables once based on the current document - * @param {Element|Object} [doc] An element or document object to use to set the document - * @returns {Object} Returns the current document - */ -setDocument = Sizzle.setDocument = function( node ) { - var hasCompare, subWindow, - doc = node ? node.ownerDocument || node : preferredDoc; - - // Return early if doc is invalid or already selected - // Support: IE 11+, Edge 17 - 18+ - // IE/Edge sometimes throw a "Permission denied" error when strict-comparing - // two documents; shallow comparisons work. - // eslint-disable-next-line eqeqeq - if ( doc == document || doc.nodeType !== 9 || !doc.documentElement ) { - return document; - } - - // Update global variables - document = doc; - docElem = document.documentElement; - documentIsHTML = !isXML( document ); - - // Support: IE 9 - 11+, Edge 12 - 18+ - // Accessing iframe documents after unload throws "permission denied" errors (jQuery #13936) - // Support: IE 11+, Edge 17 - 18+ - // IE/Edge sometimes throw a "Permission denied" error when strict-comparing - // two documents; shallow comparisons work. - // eslint-disable-next-line eqeqeq - if ( preferredDoc != document && - ( subWindow = document.defaultView ) && subWindow.top !== subWindow ) { - - // Support: IE 11, Edge - if ( subWindow.addEventListener ) { - subWindow.addEventListener( "unload", unloadHandler, false ); - - // Support: IE 9 - 10 only - } else if ( subWindow.attachEvent ) { - subWindow.attachEvent( "onunload", unloadHandler ); - } - } - - // Support: IE 8 - 11+, Edge 12 - 18+, Chrome <=16 - 25 only, Firefox <=3.6 - 31 only, - // Safari 4 - 5 only, Opera <=11.6 - 12.x only - // IE/Edge & older browsers don't support the :scope pseudo-class. - // Support: Safari 6.0 only - // Safari 6.0 supports :scope but it's an alias of :root there. - support.scope = assert( function( el ) { - docElem.appendChild( el ).appendChild( document.createElement( "div" ) ); - return typeof el.querySelectorAll !== "undefined" && - !el.querySelectorAll( ":scope fieldset div" ).length; - } ); - - /* Attributes - ---------------------------------------------------------------------- */ - - // Support: IE<8 - // Verify that getAttribute really returns attributes and not properties - // (excepting IE8 booleans) - support.attributes = assert( function( el ) { - el.className = "i"; - return !el.getAttribute( "className" ); - } ); - - /* getElement(s)By* - ---------------------------------------------------------------------- */ - - // Check if getElementsByTagName("*") returns only elements - support.getElementsByTagName = assert( function( el ) { - el.appendChild( document.createComment( "" ) ); - return !el.getElementsByTagName( "*" ).length; - } ); - - // Support: IE<9 - support.getElementsByClassName = rnative.test( document.getElementsByClassName ); - - // Support: IE<10 - // Check if getElementById returns elements by name - // The broken getElementById methods don't pick up programmatically-set names, - // so use a roundabout getElementsByName test - support.getById = assert( function( el ) { - docElem.appendChild( el ).id = expando; - return !document.getElementsByName || !document.getElementsByName( expando ).length; - } ); - - // ID filter and find - if ( support.getById ) { - Expr.filter[ "ID" ] = function( id ) { - var attrId = id.replace( runescape, funescape ); - return function( elem ) { - return elem.getAttribute( "id" ) === attrId; - }; - }; - Expr.find[ "ID" ] = function( id, context ) { - if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { - var elem = context.getElementById( id ); - return elem ? [ elem ] : []; - } - }; - } else { - Expr.filter[ "ID" ] = function( id ) { - var attrId = id.replace( runescape, funescape ); - return function( elem ) { - var node = typeof elem.getAttributeNode !== "undefined" && - elem.getAttributeNode( "id" ); - return node && node.value === attrId; - }; - }; - - // Support: IE 6 - 7 only - // getElementById is not reliable as a find shortcut - Expr.find[ "ID" ] = function( id, context ) { - if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { - var node, i, elems, - elem = context.getElementById( id ); - - if ( elem ) { - - // Verify the id attribute - node = elem.getAttributeNode( "id" ); - if ( node && node.value === id ) { - return [ elem ]; - } - - // Fall back on getElementsByName - elems = context.getElementsByName( id ); - i = 0; - while ( ( elem = elems[ i++ ] ) ) { - node = elem.getAttributeNode( "id" ); - if ( node && node.value === id ) { - return [ elem ]; - } - } - } - - return []; - } - }; - } - - // Tag - Expr.find[ "TAG" ] = support.getElementsByTagName ? - function( tag, context ) { - if ( typeof context.getElementsByTagName !== "undefined" ) { - return context.getElementsByTagName( tag ); - - // DocumentFragment nodes don't have gEBTN - } else if ( support.qsa ) { - return context.querySelectorAll( tag ); - } - } : - - function( tag, context ) { - var elem, - tmp = [], - i = 0, - - // By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too - results = context.getElementsByTagName( tag ); - - // Filter out possible comments - if ( tag === "*" ) { - while ( ( elem = results[ i++ ] ) ) { - if ( elem.nodeType === 1 ) { - tmp.push( elem ); - } - } - - return tmp; - } - return results; - }; - - // Class - Expr.find[ "CLASS" ] = support.getElementsByClassName && function( className, context ) { - if ( typeof context.getElementsByClassName !== "undefined" && documentIsHTML ) { - return context.getElementsByClassName( className ); - } - }; - - /* QSA/matchesSelector - ---------------------------------------------------------------------- */ - - // QSA and matchesSelector support - - // matchesSelector(:active) reports false when true (IE9/Opera 11.5) - rbuggyMatches = []; - - // qSa(:focus) reports false when true (Chrome 21) - // We allow this because of a bug in IE8/9 that throws an error - // whenever `document.activeElement` is accessed on an iframe - // So, we allow :focus to pass through QSA all the time to avoid the IE error - // See https://bugs.jquery.com/ticket/13378 - rbuggyQSA = []; - - if ( ( support.qsa = rnative.test( document.querySelectorAll ) ) ) { - - // Build QSA regex - // Regex strategy adopted from Diego Perini - assert( function( el ) { - - var input; - - // Select is set to empty string on purpose - // This is to test IE's treatment of not explicitly - // setting a boolean content attribute, - // since its presence should be enough - // https://bugs.jquery.com/ticket/12359 - docElem.appendChild( el ).innerHTML = "" + - ""; - - // Support: IE8, Opera 11-12.16 - // Nothing should be selected when empty strings follow ^= or $= or *= - // The test attribute must be unknown in Opera but "safe" for WinRT - // https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section - if ( el.querySelectorAll( "[msallowcapture^='']" ).length ) { - rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" ); - } - - // Support: IE8 - // Boolean attributes and "value" are not treated correctly - if ( !el.querySelectorAll( "[selected]" ).length ) { - rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" ); - } - - // Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+ - if ( !el.querySelectorAll( "[id~=" + expando + "-]" ).length ) { - rbuggyQSA.push( "~=" ); - } - - // Support: IE 11+, Edge 15 - 18+ - // IE 11/Edge don't find elements on a `[name='']` query in some cases. - // Adding a temporary attribute to the document before the selection works - // around the issue. - // Interestingly, IE 10 & older don't seem to have the issue. - input = document.createElement( "input" ); - input.setAttribute( "name", "" ); - el.appendChild( input ); - if ( !el.querySelectorAll( "[name='']" ).length ) { - rbuggyQSA.push( "\\[" + whitespace + "*name" + whitespace + "*=" + - whitespace + "*(?:''|\"\")" ); - } - - // Webkit/Opera - :checked should return selected option elements - // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked - // IE8 throws error here and will not see later tests - if ( !el.querySelectorAll( ":checked" ).length ) { - rbuggyQSA.push( ":checked" ); - } - - // Support: Safari 8+, iOS 8+ - // https://bugs.webkit.org/show_bug.cgi?id=136851 - // In-page `selector#id sibling-combinator selector` fails - if ( !el.querySelectorAll( "a#" + expando + "+*" ).length ) { - rbuggyQSA.push( ".#.+[+~]" ); - } - - // Support: Firefox <=3.6 - 5 only - // Old Firefox doesn't throw on a badly-escaped identifier. - el.querySelectorAll( "\\\f" ); - rbuggyQSA.push( "[\\r\\n\\f]" ); - } ); - - assert( function( el ) { - el.innerHTML = "" + - ""; - - // Support: Windows 8 Native Apps - // The type and name attributes are restricted during .innerHTML assignment - var input = document.createElement( "input" ); - input.setAttribute( "type", "hidden" ); - el.appendChild( input ).setAttribute( "name", "D" ); - - // Support: IE8 - // Enforce case-sensitivity of name attribute - if ( el.querySelectorAll( "[name=d]" ).length ) { - rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" ); - } - - // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled) - // IE8 throws error here and will not see later tests - if ( el.querySelectorAll( ":enabled" ).length !== 2 ) { - rbuggyQSA.push( ":enabled", ":disabled" ); - } - - // Support: IE9-11+ - // IE's :disabled selector does not pick up the children of disabled fieldsets - docElem.appendChild( el ).disabled = true; - if ( el.querySelectorAll( ":disabled" ).length !== 2 ) { - rbuggyQSA.push( ":enabled", ":disabled" ); - } - - // Support: Opera 10 - 11 only - // Opera 10-11 does not throw on post-comma invalid pseudos - el.querySelectorAll( "*,:x" ); - rbuggyQSA.push( ",.*:" ); - } ); - } - - if ( ( support.matchesSelector = rnative.test( ( matches = docElem.matches || - docElem.webkitMatchesSelector || - docElem.mozMatchesSelector || - docElem.oMatchesSelector || - docElem.msMatchesSelector ) ) ) ) { - - assert( function( el ) { - - // Check to see if it's possible to do matchesSelector - // on a disconnected node (IE 9) - support.disconnectedMatch = matches.call( el, "*" ); - - // This should fail with an exception - // Gecko does not error, returns false instead - matches.call( el, "[s!='']:x" ); - rbuggyMatches.push( "!=", pseudos ); - } ); - } - - rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join( "|" ) ); - rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join( "|" ) ); - - /* Contains - ---------------------------------------------------------------------- */ - hasCompare = rnative.test( docElem.compareDocumentPosition ); - - // Element contains another - // Purposefully self-exclusive - // As in, an element does not contain itself - contains = hasCompare || rnative.test( docElem.contains ) ? - function( a, b ) { - var adown = a.nodeType === 9 ? a.documentElement : a, - bup = b && b.parentNode; - return a === bup || !!( bup && bup.nodeType === 1 && ( - adown.contains ? - adown.contains( bup ) : - a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16 - ) ); - } : - function( a, b ) { - if ( b ) { - while ( ( b = b.parentNode ) ) { - if ( b === a ) { - return true; - } - } - } - return false; - }; - - /* Sorting - ---------------------------------------------------------------------- */ - - // Document order sorting - sortOrder = hasCompare ? - function( a, b ) { - - // Flag for duplicate removal - if ( a === b ) { - hasDuplicate = true; - return 0; - } - - // Sort on method existence if only one input has compareDocumentPosition - var compare = !a.compareDocumentPosition - !b.compareDocumentPosition; - if ( compare ) { - return compare; - } - - // Calculate position if both inputs belong to the same document - // Support: IE 11+, Edge 17 - 18+ - // IE/Edge sometimes throw a "Permission denied" error when strict-comparing - // two documents; shallow comparisons work. - // eslint-disable-next-line eqeqeq - compare = ( a.ownerDocument || a ) == ( b.ownerDocument || b ) ? - a.compareDocumentPosition( b ) : - - // Otherwise we know they are disconnected - 1; - - // Disconnected nodes - if ( compare & 1 || - ( !support.sortDetached && b.compareDocumentPosition( a ) === compare ) ) { - - // Choose the first element that is related to our preferred document - // Support: IE 11+, Edge 17 - 18+ - // IE/Edge sometimes throw a "Permission denied" error when strict-comparing - // two documents; shallow comparisons work. - // eslint-disable-next-line eqeqeq - if ( a == document || a.ownerDocument == preferredDoc && - contains( preferredDoc, a ) ) { - return -1; - } - - // Support: IE 11+, Edge 17 - 18+ - // IE/Edge sometimes throw a "Permission denied" error when strict-comparing - // two documents; shallow comparisons work. - // eslint-disable-next-line eqeqeq - if ( b == document || b.ownerDocument == preferredDoc && - contains( preferredDoc, b ) ) { - return 1; - } - - // Maintain original order - return sortInput ? - ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : - 0; - } - - return compare & 4 ? -1 : 1; - } : - function( a, b ) { - - // Exit early if the nodes are identical - if ( a === b ) { - hasDuplicate = true; - return 0; - } - - var cur, - i = 0, - aup = a.parentNode, - bup = b.parentNode, - ap = [ a ], - bp = [ b ]; - - // Parentless nodes are either documents or disconnected - if ( !aup || !bup ) { - - // Support: IE 11+, Edge 17 - 18+ - // IE/Edge sometimes throw a "Permission denied" error when strict-comparing - // two documents; shallow comparisons work. - /* eslint-disable eqeqeq */ - return a == document ? -1 : - b == document ? 1 : - /* eslint-enable eqeqeq */ - aup ? -1 : - bup ? 1 : - sortInput ? - ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : - 0; - - // If the nodes are siblings, we can do a quick check - } else if ( aup === bup ) { - return siblingCheck( a, b ); - } - - // Otherwise we need full lists of their ancestors for comparison - cur = a; - while ( ( cur = cur.parentNode ) ) { - ap.unshift( cur ); - } - cur = b; - while ( ( cur = cur.parentNode ) ) { - bp.unshift( cur ); - } - - // Walk down the tree looking for a discrepancy - while ( ap[ i ] === bp[ i ] ) { - i++; - } - - return i ? - - // Do a sibling check if the nodes have a common ancestor - siblingCheck( ap[ i ], bp[ i ] ) : - - // Otherwise nodes in our document sort first - // Support: IE 11+, Edge 17 - 18+ - // IE/Edge sometimes throw a "Permission denied" error when strict-comparing - // two documents; shallow comparisons work. - /* eslint-disable eqeqeq */ - ap[ i ] == preferredDoc ? -1 : - bp[ i ] == preferredDoc ? 1 : - /* eslint-enable eqeqeq */ - 0; - }; - - return document; -}; - -Sizzle.matches = function( expr, elements ) { - return Sizzle( expr, null, null, elements ); -}; - -Sizzle.matchesSelector = function( elem, expr ) { - setDocument( elem ); - - if ( support.matchesSelector && documentIsHTML && - !nonnativeSelectorCache[ expr + " " ] && - ( !rbuggyMatches || !rbuggyMatches.test( expr ) ) && - ( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) { - - try { - var ret = matches.call( elem, expr ); - - // IE 9's matchesSelector returns false on disconnected nodes - if ( ret || support.disconnectedMatch || - - // As well, disconnected nodes are said to be in a document - // fragment in IE 9 - elem.document && elem.document.nodeType !== 11 ) { - return ret; - } - } catch ( e ) { - nonnativeSelectorCache( expr, true ); - } - } - - return Sizzle( expr, document, null, [ elem ] ).length > 0; -}; - -Sizzle.contains = function( context, elem ) { - - // Set document vars if needed - // Support: IE 11+, Edge 17 - 18+ - // IE/Edge sometimes throw a "Permission denied" error when strict-comparing - // two documents; shallow comparisons work. - // eslint-disable-next-line eqeqeq - if ( ( context.ownerDocument || context ) != document ) { - setDocument( context ); - } - return contains( context, elem ); -}; - -Sizzle.attr = function( elem, name ) { - - // Set document vars if needed - // Support: IE 11+, Edge 17 - 18+ - // IE/Edge sometimes throw a "Permission denied" error when strict-comparing - // two documents; shallow comparisons work. - // eslint-disable-next-line eqeqeq - if ( ( elem.ownerDocument || elem ) != document ) { - setDocument( elem ); - } - - var fn = Expr.attrHandle[ name.toLowerCase() ], - - // Don't get fooled by Object.prototype properties (jQuery #13807) - val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ? - fn( elem, name, !documentIsHTML ) : - undefined; - - return val !== undefined ? - val : - support.attributes || !documentIsHTML ? - elem.getAttribute( name ) : - ( val = elem.getAttributeNode( name ) ) && val.specified ? - val.value : - null; -}; - -Sizzle.escape = function( sel ) { - return ( sel + "" ).replace( rcssescape, fcssescape ); -}; - -Sizzle.error = function( msg ) { - throw new Error( "Syntax error, unrecognized expression: " + msg ); -}; - -/** - * Document sorting and removing duplicates - * @param {ArrayLike} results - */ -Sizzle.uniqueSort = function( results ) { - var elem, - duplicates = [], - j = 0, - i = 0; - - // Unless we *know* we can detect duplicates, assume their presence - hasDuplicate = !support.detectDuplicates; - sortInput = !support.sortStable && results.slice( 0 ); - results.sort( sortOrder ); - - if ( hasDuplicate ) { - while ( ( elem = results[ i++ ] ) ) { - if ( elem === results[ i ] ) { - j = duplicates.push( i ); - } - } - while ( j-- ) { - results.splice( duplicates[ j ], 1 ); - } - } - - // Clear input after sorting to release objects - // See https://github.com/jquery/sizzle/pull/225 - sortInput = null; - - return results; -}; - -/** - * Utility function for retrieving the text value of an array of DOM nodes - * @param {Array|Element} elem - */ -getText = Sizzle.getText = function( elem ) { - var node, - ret = "", - i = 0, - nodeType = elem.nodeType; - - if ( !nodeType ) { - - // If no nodeType, this is expected to be an array - while ( ( node = elem[ i++ ] ) ) { - - // Do not traverse comment nodes - ret += getText( node ); - } - } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) { - - // Use textContent for elements - // innerText usage removed for consistency of new lines (jQuery #11153) - if ( typeof elem.textContent === "string" ) { - return elem.textContent; - } else { - - // Traverse its children - for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { - ret += getText( elem ); - } - } - } else if ( nodeType === 3 || nodeType === 4 ) { - return elem.nodeValue; - } - - // Do not include comment or processing instruction nodes - - return ret; -}; - -Expr = Sizzle.selectors = { - - // Can be adjusted by the user - cacheLength: 50, - - createPseudo: markFunction, - - match: matchExpr, - - attrHandle: {}, - - find: {}, - - relative: { - ">": { dir: "parentNode", first: true }, - " ": { dir: "parentNode" }, - "+": { dir: "previousSibling", first: true }, - "~": { dir: "previousSibling" } - }, - - preFilter: { - "ATTR": function( match ) { - match[ 1 ] = match[ 1 ].replace( runescape, funescape ); - - // Move the given value to match[3] whether quoted or unquoted - match[ 3 ] = ( match[ 3 ] || match[ 4 ] || - match[ 5 ] || "" ).replace( runescape, funescape ); - - if ( match[ 2 ] === "~=" ) { - match[ 3 ] = " " + match[ 3 ] + " "; - } - - return match.slice( 0, 4 ); - }, - - "CHILD": function( match ) { - - /* matches from matchExpr["CHILD"] - 1 type (only|nth|...) - 2 what (child|of-type) - 3 argument (even|odd|\d*|\d*n([+-]\d+)?|...) - 4 xn-component of xn+y argument ([+-]?\d*n|) - 5 sign of xn-component - 6 x of xn-component - 7 sign of y-component - 8 y of y-component - */ - match[ 1 ] = match[ 1 ].toLowerCase(); - - if ( match[ 1 ].slice( 0, 3 ) === "nth" ) { - - // nth-* requires argument - if ( !match[ 3 ] ) { - Sizzle.error( match[ 0 ] ); - } - - // numeric x and y parameters for Expr.filter.CHILD - // remember that false/true cast respectively to 0/1 - match[ 4 ] = +( match[ 4 ] ? - match[ 5 ] + ( match[ 6 ] || 1 ) : - 2 * ( match[ 3 ] === "even" || match[ 3 ] === "odd" ) ); - match[ 5 ] = +( ( match[ 7 ] + match[ 8 ] ) || match[ 3 ] === "odd" ); - - // other types prohibit arguments - } else if ( match[ 3 ] ) { - Sizzle.error( match[ 0 ] ); - } - - return match; - }, - - "PSEUDO": function( match ) { - var excess, - unquoted = !match[ 6 ] && match[ 2 ]; - - if ( matchExpr[ "CHILD" ].test( match[ 0 ] ) ) { - return null; - } - - // Accept quoted arguments as-is - if ( match[ 3 ] ) { - match[ 2 ] = match[ 4 ] || match[ 5 ] || ""; - - // Strip excess characters from unquoted arguments - } else if ( unquoted && rpseudo.test( unquoted ) && - - // Get excess from tokenize (recursively) - ( excess = tokenize( unquoted, true ) ) && - - // advance to the next closing parenthesis - ( excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length ) ) { - - // excess is a negative index - match[ 0 ] = match[ 0 ].slice( 0, excess ); - match[ 2 ] = unquoted.slice( 0, excess ); - } - - // Return only captures needed by the pseudo filter method (type and argument) - return match.slice( 0, 3 ); - } - }, - - filter: { - - "TAG": function( nodeNameSelector ) { - var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase(); - return nodeNameSelector === "*" ? - function() { - return true; - } : - function( elem ) { - return elem.nodeName && elem.nodeName.toLowerCase() === nodeName; - }; - }, - - "CLASS": function( className ) { - var pattern = classCache[ className + " " ]; - - return pattern || - ( pattern = new RegExp( "(^|" + whitespace + - ")" + className + "(" + whitespace + "|$)" ) ) && classCache( - className, function( elem ) { - return pattern.test( - typeof elem.className === "string" && elem.className || - typeof elem.getAttribute !== "undefined" && - elem.getAttribute( "class" ) || - "" - ); - } ); - }, - - "ATTR": function( name, operator, check ) { - return function( elem ) { - var result = Sizzle.attr( elem, name ); - - if ( result == null ) { - return operator === "!="; - } - if ( !operator ) { - return true; - } - - result += ""; - - /* eslint-disable max-len */ - - return operator === "=" ? result === check : - operator === "!=" ? result !== check : - operator === "^=" ? check && result.indexOf( check ) === 0 : - operator === "*=" ? check && result.indexOf( check ) > -1 : - operator === "$=" ? check && result.slice( -check.length ) === check : - operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 : - operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" : - false; - /* eslint-enable max-len */ - - }; - }, - - "CHILD": function( type, what, _argument, first, last ) { - var simple = type.slice( 0, 3 ) !== "nth", - forward = type.slice( -4 ) !== "last", - ofType = what === "of-type"; - - return first === 1 && last === 0 ? - - // Shortcut for :nth-*(n) - function( elem ) { - return !!elem.parentNode; - } : - - function( elem, _context, xml ) { - var cache, uniqueCache, outerCache, node, nodeIndex, start, - dir = simple !== forward ? "nextSibling" : "previousSibling", - parent = elem.parentNode, - name = ofType && elem.nodeName.toLowerCase(), - useCache = !xml && !ofType, - diff = false; - - if ( parent ) { - - // :(first|last|only)-(child|of-type) - if ( simple ) { - while ( dir ) { - node = elem; - while ( ( node = node[ dir ] ) ) { - if ( ofType ? - node.nodeName.toLowerCase() === name : - node.nodeType === 1 ) { - - return false; - } - } - - // Reverse direction for :only-* (if we haven't yet done so) - start = dir = type === "only" && !start && "nextSibling"; - } - return true; - } - - start = [ forward ? parent.firstChild : parent.lastChild ]; - - // non-xml :nth-child(...) stores cache data on `parent` - if ( forward && useCache ) { - - // Seek `elem` from a previously-cached index - - // ...in a gzip-friendly way - node = parent; - outerCache = node[ expando ] || ( node[ expando ] = {} ); - - // Support: IE <9 only - // Defend against cloned attroperties (jQuery gh-1709) - uniqueCache = outerCache[ node.uniqueID ] || - ( outerCache[ node.uniqueID ] = {} ); - - cache = uniqueCache[ type ] || []; - nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; - diff = nodeIndex && cache[ 2 ]; - node = nodeIndex && parent.childNodes[ nodeIndex ]; - - while ( ( node = ++nodeIndex && node && node[ dir ] || - - // Fallback to seeking `elem` from the start - ( diff = nodeIndex = 0 ) || start.pop() ) ) { - - // When found, cache indexes on `parent` and break - if ( node.nodeType === 1 && ++diff && node === elem ) { - uniqueCache[ type ] = [ dirruns, nodeIndex, diff ]; - break; - } - } - - } else { - - // Use previously-cached element index if available - if ( useCache ) { - - // ...in a gzip-friendly way - node = elem; - outerCache = node[ expando ] || ( node[ expando ] = {} ); - - // Support: IE <9 only - // Defend against cloned attroperties (jQuery gh-1709) - uniqueCache = outerCache[ node.uniqueID ] || - ( outerCache[ node.uniqueID ] = {} ); - - cache = uniqueCache[ type ] || []; - nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; - diff = nodeIndex; - } - - // xml :nth-child(...) - // or :nth-last-child(...) or :nth(-last)?-of-type(...) - if ( diff === false ) { - - // Use the same loop as above to seek `elem` from the start - while ( ( node = ++nodeIndex && node && node[ dir ] || - ( diff = nodeIndex = 0 ) || start.pop() ) ) { - - if ( ( ofType ? - node.nodeName.toLowerCase() === name : - node.nodeType === 1 ) && - ++diff ) { - - // Cache the index of each encountered element - if ( useCache ) { - outerCache = node[ expando ] || - ( node[ expando ] = {} ); - - // Support: IE <9 only - // Defend against cloned attroperties (jQuery gh-1709) - uniqueCache = outerCache[ node.uniqueID ] || - ( outerCache[ node.uniqueID ] = {} ); - - uniqueCache[ type ] = [ dirruns, diff ]; - } - - if ( node === elem ) { - break; - } - } - } - } - } - - // Incorporate the offset, then check against cycle size - diff -= last; - return diff === first || ( diff % first === 0 && diff / first >= 0 ); - } - }; - }, - - "PSEUDO": function( pseudo, argument ) { - - // pseudo-class names are case-insensitive - // http://www.w3.org/TR/selectors/#pseudo-classes - // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters - // Remember that setFilters inherits from pseudos - var args, - fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] || - Sizzle.error( "unsupported pseudo: " + pseudo ); - - // The user may use createPseudo to indicate that - // arguments are needed to create the filter function - // just as Sizzle does - if ( fn[ expando ] ) { - return fn( argument ); - } - - // But maintain support for old signatures - if ( fn.length > 1 ) { - args = [ pseudo, pseudo, "", argument ]; - return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ? - markFunction( function( seed, matches ) { - var idx, - matched = fn( seed, argument ), - i = matched.length; - while ( i-- ) { - idx = indexOf( seed, matched[ i ] ); - seed[ idx ] = !( matches[ idx ] = matched[ i ] ); - } - } ) : - function( elem ) { - return fn( elem, 0, args ); - }; - } - - return fn; - } - }, - - pseudos: { - - // Potentially complex pseudos - "not": markFunction( function( selector ) { - - // Trim the selector passed to compile - // to avoid treating leading and trailing - // spaces as combinators - var input = [], - results = [], - matcher = compile( selector.replace( rtrim, "$1" ) ); - - return matcher[ expando ] ? - markFunction( function( seed, matches, _context, xml ) { - var elem, - unmatched = matcher( seed, null, xml, [] ), - i = seed.length; - - // Match elements unmatched by `matcher` - while ( i-- ) { - if ( ( elem = unmatched[ i ] ) ) { - seed[ i ] = !( matches[ i ] = elem ); - } - } - } ) : - function( elem, _context, xml ) { - input[ 0 ] = elem; - matcher( input, null, xml, results ); - - // Don't keep the element (issue #299) - input[ 0 ] = null; - return !results.pop(); - }; - } ), - - "has": markFunction( function( selector ) { - return function( elem ) { - return Sizzle( selector, elem ).length > 0; - }; - } ), - - "contains": markFunction( function( text ) { - text = text.replace( runescape, funescape ); - return function( elem ) { - return ( elem.textContent || getText( elem ) ).indexOf( text ) > -1; - }; - } ), - - // "Whether an element is represented by a :lang() selector - // is based solely on the element's language value - // being equal to the identifier C, - // or beginning with the identifier C immediately followed by "-". - // The matching of C against the element's language value is performed case-insensitively. - // The identifier C does not have to be a valid language name." - // http://www.w3.org/TR/selectors/#lang-pseudo - "lang": markFunction( function( lang ) { - - // lang value must be a valid identifier - if ( !ridentifier.test( lang || "" ) ) { - Sizzle.error( "unsupported lang: " + lang ); - } - lang = lang.replace( runescape, funescape ).toLowerCase(); - return function( elem ) { - var elemLang; - do { - if ( ( elemLang = documentIsHTML ? - elem.lang : - elem.getAttribute( "xml:lang" ) || elem.getAttribute( "lang" ) ) ) { - - elemLang = elemLang.toLowerCase(); - return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0; - } - } while ( ( elem = elem.parentNode ) && elem.nodeType === 1 ); - return false; - }; - } ), - - // Miscellaneous - "target": function( elem ) { - var hash = window.location && window.location.hash; - return hash && hash.slice( 1 ) === elem.id; - }, - - "root": function( elem ) { - return elem === docElem; - }, - - "focus": function( elem ) { - return elem === document.activeElement && - ( !document.hasFocus || document.hasFocus() ) && - !!( elem.type || elem.href || ~elem.tabIndex ); - }, - - // Boolean properties - "enabled": createDisabledPseudo( false ), - "disabled": createDisabledPseudo( true ), - - "checked": function( elem ) { - - // In CSS3, :checked should return both checked and selected elements - // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked - var nodeName = elem.nodeName.toLowerCase(); - return ( nodeName === "input" && !!elem.checked ) || - ( nodeName === "option" && !!elem.selected ); - }, - - "selected": function( elem ) { - - // Accessing this property makes selected-by-default - // options in Safari work properly - if ( elem.parentNode ) { - // eslint-disable-next-line no-unused-expressions - elem.parentNode.selectedIndex; - } - - return elem.selected === true; - }, - - // Contents - "empty": function( elem ) { - - // http://www.w3.org/TR/selectors/#empty-pseudo - // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5), - // but not by others (comment: 8; processing instruction: 7; etc.) - // nodeType < 6 works because attributes (2) do not appear as children - for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { - if ( elem.nodeType < 6 ) { - return false; - } - } - return true; - }, - - "parent": function( elem ) { - return !Expr.pseudos[ "empty" ]( elem ); - }, - - // Element/input types - "header": function( elem ) { - return rheader.test( elem.nodeName ); - }, - - "input": function( elem ) { - return rinputs.test( elem.nodeName ); - }, - - "button": function( elem ) { - var name = elem.nodeName.toLowerCase(); - return name === "input" && elem.type === "button" || name === "button"; - }, - - "text": function( elem ) { - var attr; - return elem.nodeName.toLowerCase() === "input" && - elem.type === "text" && - - // Support: IE<8 - // New HTML5 attribute values (e.g., "search") appear with elem.type === "text" - ( ( attr = elem.getAttribute( "type" ) ) == null || - attr.toLowerCase() === "text" ); - }, - - // Position-in-collection - "first": createPositionalPseudo( function() { - return [ 0 ]; - } ), - - "last": createPositionalPseudo( function( _matchIndexes, length ) { - return [ length - 1 ]; - } ), - - "eq": createPositionalPseudo( function( _matchIndexes, length, argument ) { - return [ argument < 0 ? argument + length : argument ]; - } ), - - "even": createPositionalPseudo( function( matchIndexes, length ) { - var i = 0; - for ( ; i < length; i += 2 ) { - matchIndexes.push( i ); - } - return matchIndexes; - } ), - - "odd": createPositionalPseudo( function( matchIndexes, length ) { - var i = 1; - for ( ; i < length; i += 2 ) { - matchIndexes.push( i ); - } - return matchIndexes; - } ), - - "lt": createPositionalPseudo( function( matchIndexes, length, argument ) { - var i = argument < 0 ? - argument + length : - argument > length ? - length : - argument; - for ( ; --i >= 0; ) { - matchIndexes.push( i ); - } - return matchIndexes; - } ), - - "gt": createPositionalPseudo( function( matchIndexes, length, argument ) { - var i = argument < 0 ? argument + length : argument; - for ( ; ++i < length; ) { - matchIndexes.push( i ); - } - return matchIndexes; - } ) - } -}; - -Expr.pseudos[ "nth" ] = Expr.pseudos[ "eq" ]; - -// Add button/input type pseudos -for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) { - Expr.pseudos[ i ] = createInputPseudo( i ); -} -for ( i in { submit: true, reset: true } ) { - Expr.pseudos[ i ] = createButtonPseudo( i ); -} - -// Easy API for creating new setFilters -function setFilters() {} -setFilters.prototype = Expr.filters = Expr.pseudos; -Expr.setFilters = new setFilters(); - -tokenize = Sizzle.tokenize = function( selector, parseOnly ) { - var matched, match, tokens, type, - soFar, groups, preFilters, - cached = tokenCache[ selector + " " ]; - - if ( cached ) { - return parseOnly ? 0 : cached.slice( 0 ); - } - - soFar = selector; - groups = []; - preFilters = Expr.preFilter; - - while ( soFar ) { - - // Comma and first run - if ( !matched || ( match = rcomma.exec( soFar ) ) ) { - if ( match ) { - - // Don't consume trailing commas as valid - soFar = soFar.slice( match[ 0 ].length ) || soFar; - } - groups.push( ( tokens = [] ) ); - } - - matched = false; - - // Combinators - if ( ( match = rcombinators.exec( soFar ) ) ) { - matched = match.shift(); - tokens.push( { - value: matched, - - // Cast descendant combinators to space - type: match[ 0 ].replace( rtrim, " " ) - } ); - soFar = soFar.slice( matched.length ); - } - - // Filters - for ( type in Expr.filter ) { - if ( ( match = matchExpr[ type ].exec( soFar ) ) && ( !preFilters[ type ] || - ( match = preFilters[ type ]( match ) ) ) ) { - matched = match.shift(); - tokens.push( { - value: matched, - type: type, - matches: match - } ); - soFar = soFar.slice( matched.length ); - } - } - - if ( !matched ) { - break; - } - } - - // Return the length of the invalid excess - // if we're just parsing - // Otherwise, throw an error or return tokens - return parseOnly ? - soFar.length : - soFar ? - Sizzle.error( selector ) : - - // Cache the tokens - tokenCache( selector, groups ).slice( 0 ); -}; - -function toSelector( tokens ) { - var i = 0, - len = tokens.length, - selector = ""; - for ( ; i < len; i++ ) { - selector += tokens[ i ].value; - } - return selector; -} - -function addCombinator( matcher, combinator, base ) { - var dir = combinator.dir, - skip = combinator.next, - key = skip || dir, - checkNonElements = base && key === "parentNode", - doneName = done++; - - return combinator.first ? - - // Check against closest ancestor/preceding element - function( elem, context, xml ) { - while ( ( elem = elem[ dir ] ) ) { - if ( elem.nodeType === 1 || checkNonElements ) { - return matcher( elem, context, xml ); - } - } - return false; - } : - - // Check against all ancestor/preceding elements - function( elem, context, xml ) { - var oldCache, uniqueCache, outerCache, - newCache = [ dirruns, doneName ]; - - // We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching - if ( xml ) { - while ( ( elem = elem[ dir ] ) ) { - if ( elem.nodeType === 1 || checkNonElements ) { - if ( matcher( elem, context, xml ) ) { - return true; - } - } - } - } else { - while ( ( elem = elem[ dir ] ) ) { - if ( elem.nodeType === 1 || checkNonElements ) { - outerCache = elem[ expando ] || ( elem[ expando ] = {} ); - - // Support: IE <9 only - // Defend against cloned attroperties (jQuery gh-1709) - uniqueCache = outerCache[ elem.uniqueID ] || - ( outerCache[ elem.uniqueID ] = {} ); - - if ( skip && skip === elem.nodeName.toLowerCase() ) { - elem = elem[ dir ] || elem; - } else if ( ( oldCache = uniqueCache[ key ] ) && - oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) { - - // Assign to newCache so results back-propagate to previous elements - return ( newCache[ 2 ] = oldCache[ 2 ] ); - } else { - - // Reuse newcache so results back-propagate to previous elements - uniqueCache[ key ] = newCache; - - // A match means we're done; a fail means we have to keep checking - if ( ( newCache[ 2 ] = matcher( elem, context, xml ) ) ) { - return true; - } - } - } - } - } - return false; - }; -} - -function elementMatcher( matchers ) { - return matchers.length > 1 ? - function( elem, context, xml ) { - var i = matchers.length; - while ( i-- ) { - if ( !matchers[ i ]( elem, context, xml ) ) { - return false; - } - } - return true; - } : - matchers[ 0 ]; -} - -function multipleContexts( selector, contexts, results ) { - var i = 0, - len = contexts.length; - for ( ; i < len; i++ ) { - Sizzle( selector, contexts[ i ], results ); - } - return results; -} - -function condense( unmatched, map, filter, context, xml ) { - var elem, - newUnmatched = [], - i = 0, - len = unmatched.length, - mapped = map != null; - - for ( ; i < len; i++ ) { - if ( ( elem = unmatched[ i ] ) ) { - if ( !filter || filter( elem, context, xml ) ) { - newUnmatched.push( elem ); - if ( mapped ) { - map.push( i ); - } - } - } - } - - return newUnmatched; -} - -function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) { - if ( postFilter && !postFilter[ expando ] ) { - postFilter = setMatcher( postFilter ); - } - if ( postFinder && !postFinder[ expando ] ) { - postFinder = setMatcher( postFinder, postSelector ); - } - return markFunction( function( seed, results, context, xml ) { - var temp, i, elem, - preMap = [], - postMap = [], - preexisting = results.length, - - // Get initial elements from seed or context - elems = seed || multipleContexts( - selector || "*", - context.nodeType ? [ context ] : context, - [] - ), - - // Prefilter to get matcher input, preserving a map for seed-results synchronization - matcherIn = preFilter && ( seed || !selector ) ? - condense( elems, preMap, preFilter, context, xml ) : - elems, - - matcherOut = matcher ? - - // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results, - postFinder || ( seed ? preFilter : preexisting || postFilter ) ? - - // ...intermediate processing is necessary - [] : - - // ...otherwise use results directly - results : - matcherIn; - - // Find primary matches - if ( matcher ) { - matcher( matcherIn, matcherOut, context, xml ); - } - - // Apply postFilter - if ( postFilter ) { - temp = condense( matcherOut, postMap ); - postFilter( temp, [], context, xml ); - - // Un-match failing elements by moving them back to matcherIn - i = temp.length; - while ( i-- ) { - if ( ( elem = temp[ i ] ) ) { - matcherOut[ postMap[ i ] ] = !( matcherIn[ postMap[ i ] ] = elem ); - } - } - } - - if ( seed ) { - if ( postFinder || preFilter ) { - if ( postFinder ) { - - // Get the final matcherOut by condensing this intermediate into postFinder contexts - temp = []; - i = matcherOut.length; - while ( i-- ) { - if ( ( elem = matcherOut[ i ] ) ) { - - // Restore matcherIn since elem is not yet a final match - temp.push( ( matcherIn[ i ] = elem ) ); - } - } - postFinder( null, ( matcherOut = [] ), temp, xml ); - } - - // Move matched elements from seed to results to keep them synchronized - i = matcherOut.length; - while ( i-- ) { - if ( ( elem = matcherOut[ i ] ) && - ( temp = postFinder ? indexOf( seed, elem ) : preMap[ i ] ) > -1 ) { - - seed[ temp ] = !( results[ temp ] = elem ); - } - } - } - - // Add elements to results, through postFinder if defined - } else { - matcherOut = condense( - matcherOut === results ? - matcherOut.splice( preexisting, matcherOut.length ) : - matcherOut - ); - if ( postFinder ) { - postFinder( null, results, matcherOut, xml ); - } else { - push.apply( results, matcherOut ); - } - } - } ); -} - -function matcherFromTokens( tokens ) { - var checkContext, matcher, j, - len = tokens.length, - leadingRelative = Expr.relative[ tokens[ 0 ].type ], - implicitRelative = leadingRelative || Expr.relative[ " " ], - i = leadingRelative ? 1 : 0, - - // The foundational matcher ensures that elements are reachable from top-level context(s) - matchContext = addCombinator( function( elem ) { - return elem === checkContext; - }, implicitRelative, true ), - matchAnyContext = addCombinator( function( elem ) { - return indexOf( checkContext, elem ) > -1; - }, implicitRelative, true ), - matchers = [ function( elem, context, xml ) { - var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || ( - ( checkContext = context ).nodeType ? - matchContext( elem, context, xml ) : - matchAnyContext( elem, context, xml ) ); - - // Avoid hanging onto element (issue #299) - checkContext = null; - return ret; - } ]; - - for ( ; i < len; i++ ) { - if ( ( matcher = Expr.relative[ tokens[ i ].type ] ) ) { - matchers = [ addCombinator( elementMatcher( matchers ), matcher ) ]; - } else { - matcher = Expr.filter[ tokens[ i ].type ].apply( null, tokens[ i ].matches ); - - // Return special upon seeing a positional matcher - if ( matcher[ expando ] ) { - - // Find the next relative operator (if any) for proper handling - j = ++i; - for ( ; j < len; j++ ) { - if ( Expr.relative[ tokens[ j ].type ] ) { - break; - } - } - return setMatcher( - i > 1 && elementMatcher( matchers ), - i > 1 && toSelector( - - // If the preceding token was a descendant combinator, insert an implicit any-element `*` - tokens - .slice( 0, i - 1 ) - .concat( { value: tokens[ i - 2 ].type === " " ? "*" : "" } ) - ).replace( rtrim, "$1" ), - matcher, - i < j && matcherFromTokens( tokens.slice( i, j ) ), - j < len && matcherFromTokens( ( tokens = tokens.slice( j ) ) ), - j < len && toSelector( tokens ) - ); - } - matchers.push( matcher ); - } - } - - return elementMatcher( matchers ); -} - -function matcherFromGroupMatchers( elementMatchers, setMatchers ) { - var bySet = setMatchers.length > 0, - byElement = elementMatchers.length > 0, - superMatcher = function( seed, context, xml, results, outermost ) { - var elem, j, matcher, - matchedCount = 0, - i = "0", - unmatched = seed && [], - setMatched = [], - contextBackup = outermostContext, - - // We must always have either seed elements or outermost context - elems = seed || byElement && Expr.find[ "TAG" ]( "*", outermost ), - - // Use integer dirruns iff this is the outermost matcher - dirrunsUnique = ( dirruns += contextBackup == null ? 1 : Math.random() || 0.1 ), - len = elems.length; - - if ( outermost ) { - - // Support: IE 11+, Edge 17 - 18+ - // IE/Edge sometimes throw a "Permission denied" error when strict-comparing - // two documents; shallow comparisons work. - // eslint-disable-next-line eqeqeq - outermostContext = context == document || context || outermost; - } - - // Add elements passing elementMatchers directly to results - // Support: IE<9, Safari - // Tolerate NodeList properties (IE: "length"; Safari: ) matching elements by id - for ( ; i !== len && ( elem = elems[ i ] ) != null; i++ ) { - if ( byElement && elem ) { - j = 0; - - // Support: IE 11+, Edge 17 - 18+ - // IE/Edge sometimes throw a "Permission denied" error when strict-comparing - // two documents; shallow comparisons work. - // eslint-disable-next-line eqeqeq - if ( !context && elem.ownerDocument != document ) { - setDocument( elem ); - xml = !documentIsHTML; - } - while ( ( matcher = elementMatchers[ j++ ] ) ) { - if ( matcher( elem, context || document, xml ) ) { - results.push( elem ); - break; - } - } - if ( outermost ) { - dirruns = dirrunsUnique; - } - } - - // Track unmatched elements for set filters - if ( bySet ) { - - // They will have gone through all possible matchers - if ( ( elem = !matcher && elem ) ) { - matchedCount--; - } - - // Lengthen the array for every element, matched or not - if ( seed ) { - unmatched.push( elem ); - } - } - } - - // `i` is now the count of elements visited above, and adding it to `matchedCount` - // makes the latter nonnegative. - matchedCount += i; - - // Apply set filters to unmatched elements - // NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount` - // equals `i`), unless we didn't visit _any_ elements in the above loop because we have - // no element matchers and no seed. - // Incrementing an initially-string "0" `i` allows `i` to remain a string only in that - // case, which will result in a "00" `matchedCount` that differs from `i` but is also - // numerically zero. - if ( bySet && i !== matchedCount ) { - j = 0; - while ( ( matcher = setMatchers[ j++ ] ) ) { - matcher( unmatched, setMatched, context, xml ); - } - - if ( seed ) { - - // Reintegrate element matches to eliminate the need for sorting - if ( matchedCount > 0 ) { - while ( i-- ) { - if ( !( unmatched[ i ] || setMatched[ i ] ) ) { - setMatched[ i ] = pop.call( results ); - } - } - } - - // Discard index placeholder values to get only actual matches - setMatched = condense( setMatched ); - } - - // Add matches to results - push.apply( results, setMatched ); - - // Seedless set matches succeeding multiple successful matchers stipulate sorting - if ( outermost && !seed && setMatched.length > 0 && - ( matchedCount + setMatchers.length ) > 1 ) { - - Sizzle.uniqueSort( results ); - } - } - - // Override manipulation of globals by nested matchers - if ( outermost ) { - dirruns = dirrunsUnique; - outermostContext = contextBackup; - } - - return unmatched; - }; - - return bySet ? - markFunction( superMatcher ) : - superMatcher; -} - -compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) { - var i, - setMatchers = [], - elementMatchers = [], - cached = compilerCache[ selector + " " ]; - - if ( !cached ) { - - // Generate a function of recursive functions that can be used to check each element - if ( !match ) { - match = tokenize( selector ); - } - i = match.length; - while ( i-- ) { - cached = matcherFromTokens( match[ i ] ); - if ( cached[ expando ] ) { - setMatchers.push( cached ); - } else { - elementMatchers.push( cached ); - } - } - - // Cache the compiled function - cached = compilerCache( - selector, - matcherFromGroupMatchers( elementMatchers, setMatchers ) - ); - - // Save selector and tokenization - cached.selector = selector; - } - return cached; -}; - -/** - * A low-level selection function that works with Sizzle's compiled - * selector functions - * @param {String|Function} selector A selector or a pre-compiled - * selector function built with Sizzle.compile - * @param {Element} context - * @param {Array} [results] - * @param {Array} [seed] A set of elements to match against - */ -select = Sizzle.select = function( selector, context, results, seed ) { - var i, tokens, token, type, find, - compiled = typeof selector === "function" && selector, - match = !seed && tokenize( ( selector = compiled.selector || selector ) ); - - results = results || []; - - // Try to minimize operations if there is only one selector in the list and no seed - // (the latter of which guarantees us context) - if ( match.length === 1 ) { - - // Reduce context if the leading compound selector is an ID - tokens = match[ 0 ] = match[ 0 ].slice( 0 ); - if ( tokens.length > 2 && ( token = tokens[ 0 ] ).type === "ID" && - context.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[ 1 ].type ] ) { - - context = ( Expr.find[ "ID" ]( token.matches[ 0 ] - .replace( runescape, funescape ), context ) || [] )[ 0 ]; - if ( !context ) { - return results; - - // Precompiled matchers will still verify ancestry, so step up a level - } else if ( compiled ) { - context = context.parentNode; - } - - selector = selector.slice( tokens.shift().value.length ); - } - - // Fetch a seed set for right-to-left matching - i = matchExpr[ "needsContext" ].test( selector ) ? 0 : tokens.length; - while ( i-- ) { - token = tokens[ i ]; - - // Abort if we hit a combinator - if ( Expr.relative[ ( type = token.type ) ] ) { - break; - } - if ( ( find = Expr.find[ type ] ) ) { - - // Search, expanding context for leading sibling combinators - if ( ( seed = find( - token.matches[ 0 ].replace( runescape, funescape ), - rsibling.test( tokens[ 0 ].type ) && testContext( context.parentNode ) || - context - ) ) ) { - - // If seed is empty or no tokens remain, we can return early - tokens.splice( i, 1 ); - selector = seed.length && toSelector( tokens ); - if ( !selector ) { - push.apply( results, seed ); - return results; - } - - break; - } - } - } - } - - // Compile and execute a filtering function if one is not provided - // Provide `match` to avoid retokenization if we modified the selector above - ( compiled || compile( selector, match ) )( - seed, - context, - !documentIsHTML, - results, - !context || rsibling.test( selector ) && testContext( context.parentNode ) || context - ); - return results; -}; - -// One-time assignments - -// Sort stability -support.sortStable = expando.split( "" ).sort( sortOrder ).join( "" ) === expando; - -// Support: Chrome 14-35+ -// Always assume duplicates if they aren't passed to the comparison function -support.detectDuplicates = !!hasDuplicate; - -// Initialize against the default document -setDocument(); - -// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27) -// Detached nodes confoundingly follow *each other* -support.sortDetached = assert( function( el ) { - - // Should return 1, but returns 4 (following) - return el.compareDocumentPosition( document.createElement( "fieldset" ) ) & 1; -} ); - -// Support: IE<8 -// Prevent attribute/property "interpolation" -// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx -if ( !assert( function( el ) { - el.innerHTML = ""; - return el.firstChild.getAttribute( "href" ) === "#"; -} ) ) { - addHandle( "type|href|height|width", function( elem, name, isXML ) { - if ( !isXML ) { - return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 ); - } - } ); -} - -// Support: IE<9 -// Use defaultValue in place of getAttribute("value") -if ( !support.attributes || !assert( function( el ) { - el.innerHTML = ""; - el.firstChild.setAttribute( "value", "" ); - return el.firstChild.getAttribute( "value" ) === ""; -} ) ) { - addHandle( "value", function( elem, _name, isXML ) { - if ( !isXML && elem.nodeName.toLowerCase() === "input" ) { - return elem.defaultValue; - } - } ); -} - -// Support: IE<9 -// Use getAttributeNode to fetch booleans when getAttribute lies -if ( !assert( function( el ) { - return el.getAttribute( "disabled" ) == null; -} ) ) { - addHandle( booleans, function( elem, name, isXML ) { - var val; - if ( !isXML ) { - return elem[ name ] === true ? name.toLowerCase() : - ( val = elem.getAttributeNode( name ) ) && val.specified ? - val.value : - null; - } - } ); -} - -return Sizzle; - -} )( window ); - - - -jQuery.find = Sizzle; -jQuery.expr = Sizzle.selectors; - -// Deprecated -jQuery.expr[ ":" ] = jQuery.expr.pseudos; -jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort; -jQuery.text = Sizzle.getText; -jQuery.isXMLDoc = Sizzle.isXML; -jQuery.contains = Sizzle.contains; -jQuery.escapeSelector = Sizzle.escape; - - - - -var dir = function( elem, dir, until ) { - var matched = [], - truncate = until !== undefined; - - while ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) { - if ( elem.nodeType === 1 ) { - if ( truncate && jQuery( elem ).is( until ) ) { - break; - } - matched.push( elem ); - } - } - return matched; -}; - - -var siblings = function( n, elem ) { - var matched = []; - - for ( ; n; n = n.nextSibling ) { - if ( n.nodeType === 1 && n !== elem ) { - matched.push( n ); - } - } - - return matched; -}; - - -var rneedsContext = jQuery.expr.match.needsContext; - - - -function nodeName( elem, name ) { - - return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); - -}; -var rsingleTag = ( /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i ); - - - -// Implement the identical functionality for filter and not -function winnow( elements, qualifier, not ) { - if ( isFunction( qualifier ) ) { - return jQuery.grep( elements, function( elem, i ) { - return !!qualifier.call( elem, i, elem ) !== not; - } ); - } - - // Single element - if ( qualifier.nodeType ) { - return jQuery.grep( elements, function( elem ) { - return ( elem === qualifier ) !== not; - } ); - } - - // Arraylike of elements (jQuery, arguments, Array) - if ( typeof qualifier !== "string" ) { - return jQuery.grep( elements, function( elem ) { - return ( indexOf.call( qualifier, elem ) > -1 ) !== not; - } ); - } - - // Filtered directly for both simple and complex selectors - return jQuery.filter( qualifier, elements, not ); -} - -jQuery.filter = function( expr, elems, not ) { - var elem = elems[ 0 ]; - - if ( not ) { - expr = ":not(" + expr + ")"; - } - - if ( elems.length === 1 && elem.nodeType === 1 ) { - return jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : []; - } - - return jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) { - return elem.nodeType === 1; - } ) ); -}; - -jQuery.fn.extend( { - find: function( selector ) { - var i, ret, - len = this.length, - self = this; - - if ( typeof selector !== "string" ) { - return this.pushStack( jQuery( selector ).filter( function() { - for ( i = 0; i < len; i++ ) { - if ( jQuery.contains( self[ i ], this ) ) { - return true; - } - } - } ) ); - } - - ret = this.pushStack( [] ); - - for ( i = 0; i < len; i++ ) { - jQuery.find( selector, self[ i ], ret ); - } - - return len > 1 ? jQuery.uniqueSort( ret ) : ret; - }, - filter: function( selector ) { - return this.pushStack( winnow( this, selector || [], false ) ); - }, - not: function( selector ) { - return this.pushStack( winnow( this, selector || [], true ) ); - }, - is: function( selector ) { - return !!winnow( - this, - - // If this is a positional/relative selector, check membership in the returned set - // so $("p:first").is("p:last") won't return true for a doc with two "p". - typeof selector === "string" && rneedsContext.test( selector ) ? - jQuery( selector ) : - selector || [], - false - ).length; - } -} ); - - -// Initialize a jQuery object - - -// A central reference to the root jQuery(document) -var rootjQuery, - - // A simple way to check for HTML strings - // Prioritize #id over to avoid XSS via location.hash (#9521) - // Strict HTML recognition (#11290: must start with <) - // Shortcut simple #id case for speed - rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/, - - init = jQuery.fn.init = function( selector, context, root ) { - var match, elem; - - // HANDLE: $(""), $(null), $(undefined), $(false) - if ( !selector ) { - return this; - } - - // Method init() accepts an alternate rootjQuery - // so migrate can support jQuery.sub (gh-2101) - root = root || rootjQuery; - - // Handle HTML strings - if ( typeof selector === "string" ) { - if ( selector[ 0 ] === "<" && - selector[ selector.length - 1 ] === ">" && - selector.length >= 3 ) { - - // Assume that strings that start and end with <> are HTML and skip the regex check - match = [ null, selector, null ]; - - } else { - match = rquickExpr.exec( selector ); - } - - // Match html or make sure no context is specified for #id - if ( match && ( match[ 1 ] || !context ) ) { - - // HANDLE: $(html) -> $(array) - if ( match[ 1 ] ) { - context = context instanceof jQuery ? context[ 0 ] : context; - - // Option to run scripts is true for back-compat - // Intentionally let the error be thrown if parseHTML is not present - jQuery.merge( this, jQuery.parseHTML( - match[ 1 ], - context && context.nodeType ? context.ownerDocument || context : document, - true - ) ); - - // HANDLE: $(html, props) - if ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) { - for ( match in context ) { - - // Properties of context are called as methods if possible - if ( isFunction( this[ match ] ) ) { - this[ match ]( context[ match ] ); - - // ...and otherwise set as attributes - } else { - this.attr( match, context[ match ] ); - } - } - } - - return this; - - // HANDLE: $(#id) - } else { - elem = document.getElementById( match[ 2 ] ); - - if ( elem ) { - - // Inject the element directly into the jQuery object - this[ 0 ] = elem; - this.length = 1; - } - return this; - } - - // HANDLE: $(expr, $(...)) - } else if ( !context || context.jquery ) { - return ( context || root ).find( selector ); - - // HANDLE: $(expr, context) - // (which is just equivalent to: $(context).find(expr) - } else { - return this.constructor( context ).find( selector ); - } - - // HANDLE: $(DOMElement) - } else if ( selector.nodeType ) { - this[ 0 ] = selector; - this.length = 1; - return this; - - // HANDLE: $(function) - // Shortcut for document ready - } else if ( isFunction( selector ) ) { - return root.ready !== undefined ? - root.ready( selector ) : - - // Execute immediately if ready is not present - selector( jQuery ); - } - - return jQuery.makeArray( selector, this ); - }; - -// Give the init function the jQuery prototype for later instantiation -init.prototype = jQuery.fn; - -// Initialize central reference -rootjQuery = jQuery( document ); - - -var rparentsprev = /^(?:parents|prev(?:Until|All))/, - - // Methods guaranteed to produce a unique set when starting from a unique set - guaranteedUnique = { - children: true, - contents: true, - next: true, - prev: true - }; - -jQuery.fn.extend( { - has: function( target ) { - var targets = jQuery( target, this ), - l = targets.length; - - return this.filter( function() { - var i = 0; - for ( ; i < l; i++ ) { - if ( jQuery.contains( this, targets[ i ] ) ) { - return true; - } - } - } ); - }, - - closest: function( selectors, context ) { - var cur, - i = 0, - l = this.length, - matched = [], - targets = typeof selectors !== "string" && jQuery( selectors ); - - // Positional selectors never match, since there's no _selection_ context - if ( !rneedsContext.test( selectors ) ) { - for ( ; i < l; i++ ) { - for ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) { - - // Always skip document fragments - if ( cur.nodeType < 11 && ( targets ? - targets.index( cur ) > -1 : - - // Don't pass non-elements to Sizzle - cur.nodeType === 1 && - jQuery.find.matchesSelector( cur, selectors ) ) ) { - - matched.push( cur ); - break; - } - } - } - } - - return this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched ); - }, - - // Determine the position of an element within the set - index: function( elem ) { - - // No argument, return index in parent - if ( !elem ) { - return ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1; - } - - // Index in selector - if ( typeof elem === "string" ) { - return indexOf.call( jQuery( elem ), this[ 0 ] ); - } - - // Locate the position of the desired element - return indexOf.call( this, - - // If it receives a jQuery object, the first element is used - elem.jquery ? elem[ 0 ] : elem - ); - }, - - add: function( selector, context ) { - return this.pushStack( - jQuery.uniqueSort( - jQuery.merge( this.get(), jQuery( selector, context ) ) - ) - ); - }, - - addBack: function( selector ) { - return this.add( selector == null ? - this.prevObject : this.prevObject.filter( selector ) - ); - } -} ); - -function sibling( cur, dir ) { - while ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {} - return cur; -} - -jQuery.each( { - parent: function( elem ) { - var parent = elem.parentNode; - return parent && parent.nodeType !== 11 ? parent : null; - }, - parents: function( elem ) { - return dir( elem, "parentNode" ); - }, - parentsUntil: function( elem, _i, until ) { - return dir( elem, "parentNode", until ); - }, - next: function( elem ) { - return sibling( elem, "nextSibling" ); - }, - prev: function( elem ) { - return sibling( elem, "previousSibling" ); - }, - nextAll: function( elem ) { - return dir( elem, "nextSibling" ); - }, - prevAll: function( elem ) { - return dir( elem, "previousSibling" ); - }, - nextUntil: function( elem, _i, until ) { - return dir( elem, "nextSibling", until ); - }, - prevUntil: function( elem, _i, until ) { - return dir( elem, "previousSibling", until ); - }, - siblings: function( elem ) { - return siblings( ( elem.parentNode || {} ).firstChild, elem ); - }, - children: function( elem ) { - return siblings( elem.firstChild ); - }, - contents: function( elem ) { - if ( elem.contentDocument != null && - - // Support: IE 11+ - // elements with no `data` attribute has an object - // `contentDocument` with a `null` prototype. - getProto( elem.contentDocument ) ) { - - return elem.contentDocument; - } - - // Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only - // Treat the template element as a regular one in browsers that - // don't support it. - if ( nodeName( elem, "template" ) ) { - elem = elem.content || elem; - } - - return jQuery.merge( [], elem.childNodes ); - } -}, function( name, fn ) { - jQuery.fn[ name ] = function( until, selector ) { - var matched = jQuery.map( this, fn, until ); - - if ( name.slice( -5 ) !== "Until" ) { - selector = until; - } - - if ( selector && typeof selector === "string" ) { - matched = jQuery.filter( selector, matched ); - } - - if ( this.length > 1 ) { - - // Remove duplicates - if ( !guaranteedUnique[ name ] ) { - jQuery.uniqueSort( matched ); - } - - // Reverse order for parents* and prev-derivatives - if ( rparentsprev.test( name ) ) { - matched.reverse(); - } - } - - return this.pushStack( matched ); - }; -} ); -var rnothtmlwhite = ( /[^\x20\t\r\n\f]+/g ); - - - -// Convert String-formatted options into Object-formatted ones -function createOptions( options ) { - var object = {}; - jQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) { - object[ flag ] = true; - } ); - return object; -} - -/* - * Create a callback list using the following parameters: - * - * options: an optional list of space-separated options that will change how - * the callback list behaves or a more traditional option object - * - * By default a callback list will act like an event callback list and can be - * "fired" multiple times. - * - * Possible options: - * - * once: will ensure the callback list can only be fired once (like a Deferred) - * - * memory: will keep track of previous values and will call any callback added - * after the list has been fired right away with the latest "memorized" - * values (like a Deferred) - * - * unique: will ensure a callback can only be added once (no duplicate in the list) - * - * stopOnFalse: interrupt callings when a callback returns false - * - */ -jQuery.Callbacks = function( options ) { - - // Convert options from String-formatted to Object-formatted if needed - // (we check in cache first) - options = typeof options === "string" ? - createOptions( options ) : - jQuery.extend( {}, options ); - - var // Flag to know if list is currently firing - firing, - - // Last fire value for non-forgettable lists - memory, - - // Flag to know if list was already fired - fired, - - // Flag to prevent firing - locked, - - // Actual callback list - list = [], - - // Queue of execution data for repeatable lists - queue = [], - - // Index of currently firing callback (modified by add/remove as needed) - firingIndex = -1, - - // Fire callbacks - fire = function() { - - // Enforce single-firing - locked = locked || options.once; - - // Execute callbacks for all pending executions, - // respecting firingIndex overrides and runtime changes - fired = firing = true; - for ( ; queue.length; firingIndex = -1 ) { - memory = queue.shift(); - while ( ++firingIndex < list.length ) { - - // Run callback and check for early termination - if ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false && - options.stopOnFalse ) { - - // Jump to end and forget the data so .add doesn't re-fire - firingIndex = list.length; - memory = false; - } - } - } - - // Forget the data if we're done with it - if ( !options.memory ) { - memory = false; - } - - firing = false; - - // Clean up if we're done firing for good - if ( locked ) { - - // Keep an empty list if we have data for future add calls - if ( memory ) { - list = []; - - // Otherwise, this object is spent - } else { - list = ""; - } - } - }, - - // Actual Callbacks object - self = { - - // Add a callback or a collection of callbacks to the list - add: function() { - if ( list ) { - - // If we have memory from a past run, we should fire after adding - if ( memory && !firing ) { - firingIndex = list.length - 1; - queue.push( memory ); - } - - ( function add( args ) { - jQuery.each( args, function( _, arg ) { - if ( isFunction( arg ) ) { - if ( !options.unique || !self.has( arg ) ) { - list.push( arg ); - } - } else if ( arg && arg.length && toType( arg ) !== "string" ) { - - // Inspect recursively - add( arg ); - } - } ); - } )( arguments ); - - if ( memory && !firing ) { - fire(); - } - } - return this; - }, - - // Remove a callback from the list - remove: function() { - jQuery.each( arguments, function( _, arg ) { - var index; - while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) { - list.splice( index, 1 ); - - // Handle firing indexes - if ( index <= firingIndex ) { - firingIndex--; - } - } - } ); - return this; - }, - - // Check if a given callback is in the list. - // If no argument is given, return whether or not list has callbacks attached. - has: function( fn ) { - return fn ? - jQuery.inArray( fn, list ) > -1 : - list.length > 0; - }, - - // Remove all callbacks from the list - empty: function() { - if ( list ) { - list = []; - } - return this; - }, - - // Disable .fire and .add - // Abort any current/pending executions - // Clear all callbacks and values - disable: function() { - locked = queue = []; - list = memory = ""; - return this; - }, - disabled: function() { - return !list; - }, - - // Disable .fire - // Also disable .add unless we have memory (since it would have no effect) - // Abort any pending executions - lock: function() { - locked = queue = []; - if ( !memory && !firing ) { - list = memory = ""; - } - return this; - }, - locked: function() { - return !!locked; - }, - - // Call all callbacks with the given context and arguments - fireWith: function( context, args ) { - if ( !locked ) { - args = args || []; - args = [ context, args.slice ? args.slice() : args ]; - queue.push( args ); - if ( !firing ) { - fire(); - } - } - return this; - }, - - // Call all the callbacks with the given arguments - fire: function() { - self.fireWith( this, arguments ); - return this; - }, - - // To know if the callbacks have already been called at least once - fired: function() { - return !!fired; - } - }; - - return self; -}; - - -function Identity( v ) { - return v; -} -function Thrower( ex ) { - throw ex; -} - -function adoptValue( value, resolve, reject, noValue ) { - var method; - - try { - - // Check for promise aspect first to privilege synchronous behavior - if ( value && isFunction( ( method = value.promise ) ) ) { - method.call( value ).done( resolve ).fail( reject ); - - // Other thenables - } else if ( value && isFunction( ( method = value.then ) ) ) { - method.call( value, resolve, reject ); - - // Other non-thenables - } else { - - // Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer: - // * false: [ value ].slice( 0 ) => resolve( value ) - // * true: [ value ].slice( 1 ) => resolve() - resolve.apply( undefined, [ value ].slice( noValue ) ); - } - - // For Promises/A+, convert exceptions into rejections - // Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in - // Deferred#then to conditionally suppress rejection. - } catch ( value ) { - - // Support: Android 4.0 only - // Strict mode functions invoked without .call/.apply get global-object context - reject.apply( undefined, [ value ] ); - } -} - -jQuery.extend( { - - Deferred: function( func ) { - var tuples = [ - - // action, add listener, callbacks, - // ... .then handlers, argument index, [final state] - [ "notify", "progress", jQuery.Callbacks( "memory" ), - jQuery.Callbacks( "memory" ), 2 ], - [ "resolve", "done", jQuery.Callbacks( "once memory" ), - jQuery.Callbacks( "once memory" ), 0, "resolved" ], - [ "reject", "fail", jQuery.Callbacks( "once memory" ), - jQuery.Callbacks( "once memory" ), 1, "rejected" ] - ], - state = "pending", - promise = { - state: function() { - return state; - }, - always: function() { - deferred.done( arguments ).fail( arguments ); - return this; - }, - "catch": function( fn ) { - return promise.then( null, fn ); - }, - - // Keep pipe for back-compat - pipe: function( /* fnDone, fnFail, fnProgress */ ) { - var fns = arguments; - - return jQuery.Deferred( function( newDefer ) { - jQuery.each( tuples, function( _i, tuple ) { - - // Map tuples (progress, done, fail) to arguments (done, fail, progress) - var fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ]; - - // deferred.progress(function() { bind to newDefer or newDefer.notify }) - // deferred.done(function() { bind to newDefer or newDefer.resolve }) - // deferred.fail(function() { bind to newDefer or newDefer.reject }) - deferred[ tuple[ 1 ] ]( function() { - var returned = fn && fn.apply( this, arguments ); - if ( returned && isFunction( returned.promise ) ) { - returned.promise() - .progress( newDefer.notify ) - .done( newDefer.resolve ) - .fail( newDefer.reject ); - } else { - newDefer[ tuple[ 0 ] + "With" ]( - this, - fn ? [ returned ] : arguments - ); - } - } ); - } ); - fns = null; - } ).promise(); - }, - then: function( onFulfilled, onRejected, onProgress ) { - var maxDepth = 0; - function resolve( depth, deferred, handler, special ) { - return function() { - var that = this, - args = arguments, - mightThrow = function() { - var returned, then; - - // Support: Promises/A+ section 2.3.3.3.3 - // https://promisesaplus.com/#point-59 - // Ignore double-resolution attempts - if ( depth < maxDepth ) { - return; - } - - returned = handler.apply( that, args ); - - // Support: Promises/A+ section 2.3.1 - // https://promisesaplus.com/#point-48 - if ( returned === deferred.promise() ) { - throw new TypeError( "Thenable self-resolution" ); - } - - // Support: Promises/A+ sections 2.3.3.1, 3.5 - // https://promisesaplus.com/#point-54 - // https://promisesaplus.com/#point-75 - // Retrieve `then` only once - then = returned && - - // Support: Promises/A+ section 2.3.4 - // https://promisesaplus.com/#point-64 - // Only check objects and functions for thenability - ( typeof returned === "object" || - typeof returned === "function" ) && - returned.then; - - // Handle a returned thenable - if ( isFunction( then ) ) { - - // Special processors (notify) just wait for resolution - if ( special ) { - then.call( - returned, - resolve( maxDepth, deferred, Identity, special ), - resolve( maxDepth, deferred, Thrower, special ) - ); - - // Normal processors (resolve) also hook into progress - } else { - - // ...and disregard older resolution values - maxDepth++; - - then.call( - returned, - resolve( maxDepth, deferred, Identity, special ), - resolve( maxDepth, deferred, Thrower, special ), - resolve( maxDepth, deferred, Identity, - deferred.notifyWith ) - ); - } - - // Handle all other returned values - } else { - - // Only substitute handlers pass on context - // and multiple values (non-spec behavior) - if ( handler !== Identity ) { - that = undefined; - args = [ returned ]; - } - - // Process the value(s) - // Default process is resolve - ( special || deferred.resolveWith )( that, args ); - } - }, - - // Only normal processors (resolve) catch and reject exceptions - process = special ? - mightThrow : - function() { - try { - mightThrow(); - } catch ( e ) { - - if ( jQuery.Deferred.exceptionHook ) { - jQuery.Deferred.exceptionHook( e, - process.stackTrace ); - } - - // Support: Promises/A+ section 2.3.3.3.4.1 - // https://promisesaplus.com/#point-61 - // Ignore post-resolution exceptions - if ( depth + 1 >= maxDepth ) { - - // Only substitute handlers pass on context - // and multiple values (non-spec behavior) - if ( handler !== Thrower ) { - that = undefined; - args = [ e ]; - } - - deferred.rejectWith( that, args ); - } - } - }; - - // Support: Promises/A+ section 2.3.3.3.1 - // https://promisesaplus.com/#point-57 - // Re-resolve promises immediately to dodge false rejection from - // subsequent errors - if ( depth ) { - process(); - } else { - - // Call an optional hook to record the stack, in case of exception - // since it's otherwise lost when execution goes async - if ( jQuery.Deferred.getStackHook ) { - process.stackTrace = jQuery.Deferred.getStackHook(); - } - window.setTimeout( process ); - } - }; - } - - return jQuery.Deferred( function( newDefer ) { - - // progress_handlers.add( ... ) - tuples[ 0 ][ 3 ].add( - resolve( - 0, - newDefer, - isFunction( onProgress ) ? - onProgress : - Identity, - newDefer.notifyWith - ) - ); - - // fulfilled_handlers.add( ... ) - tuples[ 1 ][ 3 ].add( - resolve( - 0, - newDefer, - isFunction( onFulfilled ) ? - onFulfilled : - Identity - ) - ); - - // rejected_handlers.add( ... ) - tuples[ 2 ][ 3 ].add( - resolve( - 0, - newDefer, - isFunction( onRejected ) ? - onRejected : - Thrower - ) - ); - } ).promise(); - }, - - // Get a promise for this deferred - // If obj is provided, the promise aspect is added to the object - promise: function( obj ) { - return obj != null ? jQuery.extend( obj, promise ) : promise; - } - }, - deferred = {}; - - // Add list-specific methods - jQuery.each( tuples, function( i, tuple ) { - var list = tuple[ 2 ], - stateString = tuple[ 5 ]; - - // promise.progress = list.add - // promise.done = list.add - // promise.fail = list.add - promise[ tuple[ 1 ] ] = list.add; - - // Handle state - if ( stateString ) { - list.add( - function() { - - // state = "resolved" (i.e., fulfilled) - // state = "rejected" - state = stateString; - }, - - // rejected_callbacks.disable - // fulfilled_callbacks.disable - tuples[ 3 - i ][ 2 ].disable, - - // rejected_handlers.disable - // fulfilled_handlers.disable - tuples[ 3 - i ][ 3 ].disable, - - // progress_callbacks.lock - tuples[ 0 ][ 2 ].lock, - - // progress_handlers.lock - tuples[ 0 ][ 3 ].lock - ); - } - - // progress_handlers.fire - // fulfilled_handlers.fire - // rejected_handlers.fire - list.add( tuple[ 3 ].fire ); - - // deferred.notify = function() { deferred.notifyWith(...) } - // deferred.resolve = function() { deferred.resolveWith(...) } - // deferred.reject = function() { deferred.rejectWith(...) } - deferred[ tuple[ 0 ] ] = function() { - deferred[ tuple[ 0 ] + "With" ]( this === deferred ? undefined : this, arguments ); - return this; - }; - - // deferred.notifyWith = list.fireWith - // deferred.resolveWith = list.fireWith - // deferred.rejectWith = list.fireWith - deferred[ tuple[ 0 ] + "With" ] = list.fireWith; - } ); - - // Make the deferred a promise - promise.promise( deferred ); - - // Call given func if any - if ( func ) { - func.call( deferred, deferred ); - } - - // All done! - return deferred; - }, - - // Deferred helper - when: function( singleValue ) { - var - - // count of uncompleted subordinates - remaining = arguments.length, - - // count of unprocessed arguments - i = remaining, - - // subordinate fulfillment data - resolveContexts = Array( i ), - resolveValues = slice.call( arguments ), - - // the master Deferred - master = jQuery.Deferred(), - - // subordinate callback factory - updateFunc = function( i ) { - return function( value ) { - resolveContexts[ i ] = this; - resolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value; - if ( !( --remaining ) ) { - master.resolveWith( resolveContexts, resolveValues ); - } - }; - }; - - // Single- and empty arguments are adopted like Promise.resolve - if ( remaining <= 1 ) { - adoptValue( singleValue, master.done( updateFunc( i ) ).resolve, master.reject, - !remaining ); - - // Use .then() to unwrap secondary thenables (cf. gh-3000) - if ( master.state() === "pending" || - isFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) { - - return master.then(); - } - } - - // Multiple arguments are aggregated like Promise.all array elements - while ( i-- ) { - adoptValue( resolveValues[ i ], updateFunc( i ), master.reject ); - } - - return master.promise(); - } -} ); - - -// These usually indicate a programmer mistake during development, -// warn about them ASAP rather than swallowing them by default. -var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/; - -jQuery.Deferred.exceptionHook = function( error, stack ) { - - // Support: IE 8 - 9 only - // Console exists when dev tools are open, which can happen at any time - if ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) { - window.console.warn( "jQuery.Deferred exception: " + error.message, error.stack, stack ); - } -}; - - - - -jQuery.readyException = function( error ) { - window.setTimeout( function() { - throw error; - } ); -}; - - - - -// The deferred used on DOM ready -var readyList = jQuery.Deferred(); - -jQuery.fn.ready = function( fn ) { - - readyList - .then( fn ) - - // Wrap jQuery.readyException in a function so that the lookup - // happens at the time of error handling instead of callback - // registration. - .catch( function( error ) { - jQuery.readyException( error ); - } ); - - return this; -}; - -jQuery.extend( { - - // Is the DOM ready to be used? Set to true once it occurs. - isReady: false, - - // A counter to track how many items to wait for before - // the ready event fires. See #6781 - readyWait: 1, - - // Handle when the DOM is ready - ready: function( wait ) { - - // Abort if there are pending holds or we're already ready - if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) { - return; - } - - // Remember that the DOM is ready - jQuery.isReady = true; - - // If a normal DOM Ready event fired, decrement, and wait if need be - if ( wait !== true && --jQuery.readyWait > 0 ) { - return; - } - - // If there are functions bound, to execute - readyList.resolveWith( document, [ jQuery ] ); - } -} ); - -jQuery.ready.then = readyList.then; - -// The ready event handler and self cleanup method -function completed() { - document.removeEventListener( "DOMContentLoaded", completed ); - window.removeEventListener( "load", completed ); - jQuery.ready(); -} - -// Catch cases where $(document).ready() is called -// after the browser event has already occurred. -// Support: IE <=9 - 10 only -// Older IE sometimes signals "interactive" too soon -if ( document.readyState === "complete" || - ( document.readyState !== "loading" && !document.documentElement.doScroll ) ) { - - // Handle it asynchronously to allow scripts the opportunity to delay ready - window.setTimeout( jQuery.ready ); - -} else { - - // Use the handy event callback - document.addEventListener( "DOMContentLoaded", completed ); - - // A fallback to window.onload, that will always work - window.addEventListener( "load", completed ); -} - - - - -// Multifunctional method to get and set values of a collection -// The value/s can optionally be executed if it's a function -var access = function( elems, fn, key, value, chainable, emptyGet, raw ) { - var i = 0, - len = elems.length, - bulk = key == null; - - // Sets many values - if ( toType( key ) === "object" ) { - chainable = true; - for ( i in key ) { - access( elems, fn, i, key[ i ], true, emptyGet, raw ); - } - - // Sets one value - } else if ( value !== undefined ) { - chainable = true; - - if ( !isFunction( value ) ) { - raw = true; - } - - if ( bulk ) { - - // Bulk operations run against the entire set - if ( raw ) { - fn.call( elems, value ); - fn = null; - - // ...except when executing function values - } else { - bulk = fn; - fn = function( elem, _key, value ) { - return bulk.call( jQuery( elem ), value ); - }; - } - } - - if ( fn ) { - for ( ; i < len; i++ ) { - fn( - elems[ i ], key, raw ? - value : - value.call( elems[ i ], i, fn( elems[ i ], key ) ) - ); - } - } - } - - if ( chainable ) { - return elems; - } - - // Gets - if ( bulk ) { - return fn.call( elems ); - } - - return len ? fn( elems[ 0 ], key ) : emptyGet; -}; - - -// Matches dashed string for camelizing -var rmsPrefix = /^-ms-/, - rdashAlpha = /-([a-z])/g; - -// Used by camelCase as callback to replace() -function fcamelCase( _all, letter ) { - return letter.toUpperCase(); -} - -// Convert dashed to camelCase; used by the css and data modules -// Support: IE <=9 - 11, Edge 12 - 15 -// Microsoft forgot to hump their vendor prefix (#9572) -function camelCase( string ) { - return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); -} -var acceptData = function( owner ) { - - // Accepts only: - // - Node - // - Node.ELEMENT_NODE - // - Node.DOCUMENT_NODE - // - Object - // - Any - return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType ); -}; - - - - -function Data() { - this.expando = jQuery.expando + Data.uid++; -} - -Data.uid = 1; - -Data.prototype = { - - cache: function( owner ) { - - // Check if the owner object already has a cache - var value = owner[ this.expando ]; - - // If not, create one - if ( !value ) { - value = {}; - - // We can accept data for non-element nodes in modern browsers, - // but we should not, see #8335. - // Always return an empty object. - if ( acceptData( owner ) ) { - - // If it is a node unlikely to be stringify-ed or looped over - // use plain assignment - if ( owner.nodeType ) { - owner[ this.expando ] = value; - - // Otherwise secure it in a non-enumerable property - // configurable must be true to allow the property to be - // deleted when data is removed - } else { - Object.defineProperty( owner, this.expando, { - value: value, - configurable: true - } ); - } - } - } - - return value; - }, - set: function( owner, data, value ) { - var prop, - cache = this.cache( owner ); - - // Handle: [ owner, key, value ] args - // Always use camelCase key (gh-2257) - if ( typeof data === "string" ) { - cache[ camelCase( data ) ] = value; - - // Handle: [ owner, { properties } ] args - } else { - - // Copy the properties one-by-one to the cache object - for ( prop in data ) { - cache[ camelCase( prop ) ] = data[ prop ]; - } - } - return cache; - }, - get: function( owner, key ) { - return key === undefined ? - this.cache( owner ) : - - // Always use camelCase key (gh-2257) - owner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ]; - }, - access: function( owner, key, value ) { - - // In cases where either: - // - // 1. No key was specified - // 2. A string key was specified, but no value provided - // - // Take the "read" path and allow the get method to determine - // which value to return, respectively either: - // - // 1. The entire cache object - // 2. The data stored at the key - // - if ( key === undefined || - ( ( key && typeof key === "string" ) && value === undefined ) ) { - - return this.get( owner, key ); - } - - // When the key is not a string, or both a key and value - // are specified, set or extend (existing objects) with either: - // - // 1. An object of properties - // 2. A key and value - // - this.set( owner, key, value ); - - // Since the "set" path can have two possible entry points - // return the expected data based on which path was taken[*] - return value !== undefined ? value : key; - }, - remove: function( owner, key ) { - var i, - cache = owner[ this.expando ]; - - if ( cache === undefined ) { - return; - } - - if ( key !== undefined ) { - - // Support array or space separated string of keys - if ( Array.isArray( key ) ) { - - // If key is an array of keys... - // We always set camelCase keys, so remove that. - key = key.map( camelCase ); - } else { - key = camelCase( key ); - - // If a key with the spaces exists, use it. - // Otherwise, create an array by matching non-whitespace - key = key in cache ? - [ key ] : - ( key.match( rnothtmlwhite ) || [] ); - } - - i = key.length; - - while ( i-- ) { - delete cache[ key[ i ] ]; - } - } - - // Remove the expando if there's no more data - if ( key === undefined || jQuery.isEmptyObject( cache ) ) { - - // Support: Chrome <=35 - 45 - // Webkit & Blink performance suffers when deleting properties - // from DOM nodes, so set to undefined instead - // https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted) - if ( owner.nodeType ) { - owner[ this.expando ] = undefined; - } else { - delete owner[ this.expando ]; - } - } - }, - hasData: function( owner ) { - var cache = owner[ this.expando ]; - return cache !== undefined && !jQuery.isEmptyObject( cache ); - } -}; -var dataPriv = new Data(); - -var dataUser = new Data(); - - - -// Implementation Summary -// -// 1. Enforce API surface and semantic compatibility with 1.9.x branch -// 2. Improve the module's maintainability by reducing the storage -// paths to a single mechanism. -// 3. Use the same single mechanism to support "private" and "user" data. -// 4. _Never_ expose "private" data to user code (TODO: Drop _data, _removeData) -// 5. Avoid exposing implementation details on user objects (eg. expando properties) -// 6. Provide a clear path for implementation upgrade to WeakMap in 2014 - -var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, - rmultiDash = /[A-Z]/g; - -function getData( data ) { - if ( data === "true" ) { - return true; - } - - if ( data === "false" ) { - return false; - } - - if ( data === "null" ) { - return null; - } - - // Only convert to a number if it doesn't change the string - if ( data === +data + "" ) { - return +data; - } - - if ( rbrace.test( data ) ) { - return JSON.parse( data ); - } - - return data; -} - -function dataAttr( elem, key, data ) { - var name; - - // If nothing was found internally, try to fetch any - // data from the HTML5 data-* attribute - if ( data === undefined && elem.nodeType === 1 ) { - name = "data-" + key.replace( rmultiDash, "-$&" ).toLowerCase(); - data = elem.getAttribute( name ); - - if ( typeof data === "string" ) { - try { - data = getData( data ); - } catch ( e ) {} - - // Make sure we set the data so it isn't changed later - dataUser.set( elem, key, data ); - } else { - data = undefined; - } - } - return data; -} - -jQuery.extend( { - hasData: function( elem ) { - return dataUser.hasData( elem ) || dataPriv.hasData( elem ); - }, - - data: function( elem, name, data ) { - return dataUser.access( elem, name, data ); - }, - - removeData: function( elem, name ) { - dataUser.remove( elem, name ); - }, - - // TODO: Now that all calls to _data and _removeData have been replaced - // with direct calls to dataPriv methods, these can be deprecated. - _data: function( elem, name, data ) { - return dataPriv.access( elem, name, data ); - }, - - _removeData: function( elem, name ) { - dataPriv.remove( elem, name ); - } -} ); - -jQuery.fn.extend( { - data: function( key, value ) { - var i, name, data, - elem = this[ 0 ], - attrs = elem && elem.attributes; - - // Gets all values - if ( key === undefined ) { - if ( this.length ) { - data = dataUser.get( elem ); - - if ( elem.nodeType === 1 && !dataPriv.get( elem, "hasDataAttrs" ) ) { - i = attrs.length; - while ( i-- ) { - - // Support: IE 11 only - // The attrs elements can be null (#14894) - if ( attrs[ i ] ) { - name = attrs[ i ].name; - if ( name.indexOf( "data-" ) === 0 ) { - name = camelCase( name.slice( 5 ) ); - dataAttr( elem, name, data[ name ] ); - } - } - } - dataPriv.set( elem, "hasDataAttrs", true ); - } - } - - return data; - } - - // Sets multiple values - if ( typeof key === "object" ) { - return this.each( function() { - dataUser.set( this, key ); - } ); - } - - return access( this, function( value ) { - var data; - - // The calling jQuery object (element matches) is not empty - // (and therefore has an element appears at this[ 0 ]) and the - // `value` parameter was not undefined. An empty jQuery object - // will result in `undefined` for elem = this[ 0 ] which will - // throw an exception if an attempt to read a data cache is made. - if ( elem && value === undefined ) { - - // Attempt to get data from the cache - // The key will always be camelCased in Data - data = dataUser.get( elem, key ); - if ( data !== undefined ) { - return data; - } - - // Attempt to "discover" the data in - // HTML5 custom data-* attrs - data = dataAttr( elem, key ); - if ( data !== undefined ) { - return data; - } - - // We tried really hard, but the data doesn't exist. - return; - } - - // Set the data... - this.each( function() { - - // We always store the camelCased key - dataUser.set( this, key, value ); - } ); - }, null, value, arguments.length > 1, null, true ); - }, - - removeData: function( key ) { - return this.each( function() { - dataUser.remove( this, key ); - } ); - } -} ); - - -jQuery.extend( { - queue: function( elem, type, data ) { - var queue; - - if ( elem ) { - type = ( type || "fx" ) + "queue"; - queue = dataPriv.get( elem, type ); - - // Speed up dequeue by getting out quickly if this is just a lookup - if ( data ) { - if ( !queue || Array.isArray( data ) ) { - queue = dataPriv.access( elem, type, jQuery.makeArray( data ) ); - } else { - queue.push( data ); - } - } - return queue || []; - } - }, - - dequeue: function( elem, type ) { - type = type || "fx"; - - var queue = jQuery.queue( elem, type ), - startLength = queue.length, - fn = queue.shift(), - hooks = jQuery._queueHooks( elem, type ), - next = function() { - jQuery.dequeue( elem, type ); - }; - - // If the fx queue is dequeued, always remove the progress sentinel - if ( fn === "inprogress" ) { - fn = queue.shift(); - startLength--; - } - - if ( fn ) { - - // Add a progress sentinel to prevent the fx queue from being - // automatically dequeued - if ( type === "fx" ) { - queue.unshift( "inprogress" ); - } - - // Clear up the last queue stop function - delete hooks.stop; - fn.call( elem, next, hooks ); - } - - if ( !startLength && hooks ) { - hooks.empty.fire(); - } - }, - - // Not public - generate a queueHooks object, or return the current one - _queueHooks: function( elem, type ) { - var key = type + "queueHooks"; - return dataPriv.get( elem, key ) || dataPriv.access( elem, key, { - empty: jQuery.Callbacks( "once memory" ).add( function() { - dataPriv.remove( elem, [ type + "queue", key ] ); - } ) - } ); - } -} ); - -jQuery.fn.extend( { - queue: function( type, data ) { - var setter = 2; - - if ( typeof type !== "string" ) { - data = type; - type = "fx"; - setter--; - } - - if ( arguments.length < setter ) { - return jQuery.queue( this[ 0 ], type ); - } - - return data === undefined ? - this : - this.each( function() { - var queue = jQuery.queue( this, type, data ); - - // Ensure a hooks for this queue - jQuery._queueHooks( this, type ); - - if ( type === "fx" && queue[ 0 ] !== "inprogress" ) { - jQuery.dequeue( this, type ); - } - } ); - }, - dequeue: function( type ) { - return this.each( function() { - jQuery.dequeue( this, type ); - } ); - }, - clearQueue: function( type ) { - return this.queue( type || "fx", [] ); - }, - - // Get a promise resolved when queues of a certain type - // are emptied (fx is the type by default) - promise: function( type, obj ) { - var tmp, - count = 1, - defer = jQuery.Deferred(), - elements = this, - i = this.length, - resolve = function() { - if ( !( --count ) ) { - defer.resolveWith( elements, [ elements ] ); - } - }; - - if ( typeof type !== "string" ) { - obj = type; - type = undefined; - } - type = type || "fx"; - - while ( i-- ) { - tmp = dataPriv.get( elements[ i ], type + "queueHooks" ); - if ( tmp && tmp.empty ) { - count++; - tmp.empty.add( resolve ); - } - } - resolve(); - return defer.promise( obj ); - } -} ); -var pnum = ( /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/ ).source; - -var rcssNum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" ); - - -var cssExpand = [ "Top", "Right", "Bottom", "Left" ]; - -var documentElement = document.documentElement; - - - - var isAttached = function( elem ) { - return jQuery.contains( elem.ownerDocument, elem ); - }, - composed = { composed: true }; - - // Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only - // Check attachment across shadow DOM boundaries when possible (gh-3504) - // Support: iOS 10.0-10.2 only - // Early iOS 10 versions support `attachShadow` but not `getRootNode`, - // leading to errors. We need to check for `getRootNode`. - if ( documentElement.getRootNode ) { - isAttached = function( elem ) { - return jQuery.contains( elem.ownerDocument, elem ) || - elem.getRootNode( composed ) === elem.ownerDocument; - }; - } -var isHiddenWithinTree = function( elem, el ) { - - // isHiddenWithinTree might be called from jQuery#filter function; - // in that case, element will be second argument - elem = el || elem; - - // Inline style trumps all - return elem.style.display === "none" || - elem.style.display === "" && - - // Otherwise, check computed style - // Support: Firefox <=43 - 45 - // Disconnected elements can have computed display: none, so first confirm that elem is - // in the document. - isAttached( elem ) && - - jQuery.css( elem, "display" ) === "none"; - }; - - - -function adjustCSS( elem, prop, valueParts, tween ) { - var adjusted, scale, - maxIterations = 20, - currentValue = tween ? - function() { - return tween.cur(); - } : - function() { - return jQuery.css( elem, prop, "" ); - }, - initial = currentValue(), - unit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ), - - // Starting value computation is required for potential unit mismatches - initialInUnit = elem.nodeType && - ( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) && - rcssNum.exec( jQuery.css( elem, prop ) ); - - if ( initialInUnit && initialInUnit[ 3 ] !== unit ) { - - // Support: Firefox <=54 - // Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144) - initial = initial / 2; - - // Trust units reported by jQuery.css - unit = unit || initialInUnit[ 3 ]; - - // Iteratively approximate from a nonzero starting point - initialInUnit = +initial || 1; - - while ( maxIterations-- ) { - - // Evaluate and update our best guess (doubling guesses that zero out). - // Finish if the scale equals or crosses 1 (making the old*new product non-positive). - jQuery.style( elem, prop, initialInUnit + unit ); - if ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) { - maxIterations = 0; - } - initialInUnit = initialInUnit / scale; - - } - - initialInUnit = initialInUnit * 2; - jQuery.style( elem, prop, initialInUnit + unit ); - - // Make sure we update the tween properties later on - valueParts = valueParts || []; - } - - if ( valueParts ) { - initialInUnit = +initialInUnit || +initial || 0; - - // Apply relative offset (+=/-=) if specified - adjusted = valueParts[ 1 ] ? - initialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] : - +valueParts[ 2 ]; - if ( tween ) { - tween.unit = unit; - tween.start = initialInUnit; - tween.end = adjusted; - } - } - return adjusted; -} - - -var defaultDisplayMap = {}; - -function getDefaultDisplay( elem ) { - var temp, - doc = elem.ownerDocument, - nodeName = elem.nodeName, - display = defaultDisplayMap[ nodeName ]; - - if ( display ) { - return display; - } - - temp = doc.body.appendChild( doc.createElement( nodeName ) ); - display = jQuery.css( temp, "display" ); - - temp.parentNode.removeChild( temp ); - - if ( display === "none" ) { - display = "block"; - } - defaultDisplayMap[ nodeName ] = display; - - return display; -} - -function showHide( elements, show ) { - var display, elem, - values = [], - index = 0, - length = elements.length; - - // Determine new display value for elements that need to change - for ( ; index < length; index++ ) { - elem = elements[ index ]; - if ( !elem.style ) { - continue; - } - - display = elem.style.display; - if ( show ) { - - // Since we force visibility upon cascade-hidden elements, an immediate (and slow) - // check is required in this first loop unless we have a nonempty display value (either - // inline or about-to-be-restored) - if ( display === "none" ) { - values[ index ] = dataPriv.get( elem, "display" ) || null; - if ( !values[ index ] ) { - elem.style.display = ""; - } - } - if ( elem.style.display === "" && isHiddenWithinTree( elem ) ) { - values[ index ] = getDefaultDisplay( elem ); - } - } else { - if ( display !== "none" ) { - values[ index ] = "none"; - - // Remember what we're overwriting - dataPriv.set( elem, "display", display ); - } - } - } - - // Set the display of the elements in a second loop to avoid constant reflow - for ( index = 0; index < length; index++ ) { - if ( values[ index ] != null ) { - elements[ index ].style.display = values[ index ]; - } - } - - return elements; -} - -jQuery.fn.extend( { - show: function() { - return showHide( this, true ); - }, - hide: function() { - return showHide( this ); - }, - toggle: function( state ) { - if ( typeof state === "boolean" ) { - return state ? this.show() : this.hide(); - } - - return this.each( function() { - if ( isHiddenWithinTree( this ) ) { - jQuery( this ).show(); - } else { - jQuery( this ).hide(); - } - } ); - } -} ); -var rcheckableType = ( /^(?:checkbox|radio)$/i ); - -var rtagName = ( /<([a-z][^\/\0>\x20\t\r\n\f]*)/i ); - -var rscriptType = ( /^$|^module$|\/(?:java|ecma)script/i ); - - - -( function() { - var fragment = document.createDocumentFragment(), - div = fragment.appendChild( document.createElement( "div" ) ), - input = document.createElement( "input" ); - - // Support: Android 4.0 - 4.3 only - // Check state lost if the name is set (#11217) - // Support: Windows Web Apps (WWA) - // `name` and `type` must use .setAttribute for WWA (#14901) - input.setAttribute( "type", "radio" ); - input.setAttribute( "checked", "checked" ); - input.setAttribute( "name", "t" ); - - div.appendChild( input ); - - // Support: Android <=4.1 only - // Older WebKit doesn't clone checked state correctly in fragments - support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked; - - // Support: IE <=11 only - // Make sure textarea (and checkbox) defaultValue is properly cloned - div.innerHTML = ""; - support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue; - - // Support: IE <=9 only - // IE <=9 replaces "; - support.option = !!div.lastChild; -} )(); - - -// We have to close these tags to support XHTML (#13200) -var wrapMap = { - - // XHTML parsers do not magically insert elements in the - // same way that tag soup parsers do. So we cannot shorten - // this by omitting or other required elements. - thead: [ 1, "", "
" ], - col: [ 2, "", "
" ], - tr: [ 2, "", "
" ], - td: [ 3, "", "
" ], - - _default: [ 0, "", "" ] -}; - -wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; -wrapMap.th = wrapMap.td; - -// Support: IE <=9 only -if ( !support.option ) { - wrapMap.optgroup = wrapMap.option = [ 1, "" ]; -} - - -function getAll( context, tag ) { - - // Support: IE <=9 - 11 only - // Use typeof to avoid zero-argument method invocation on host objects (#15151) - var ret; - - if ( typeof context.getElementsByTagName !== "undefined" ) { - ret = context.getElementsByTagName( tag || "*" ); - - } else if ( typeof context.querySelectorAll !== "undefined" ) { - ret = context.querySelectorAll( tag || "*" ); - - } else { - ret = []; - } - - if ( tag === undefined || tag && nodeName( context, tag ) ) { - return jQuery.merge( [ context ], ret ); - } - - return ret; -} - - -// Mark scripts as having already been evaluated -function setGlobalEval( elems, refElements ) { - var i = 0, - l = elems.length; - - for ( ; i < l; i++ ) { - dataPriv.set( - elems[ i ], - "globalEval", - !refElements || dataPriv.get( refElements[ i ], "globalEval" ) - ); - } -} - - -var rhtml = /<|&#?\w+;/; - -function buildFragment( elems, context, scripts, selection, ignored ) { - var elem, tmp, tag, wrap, attached, j, - fragment = context.createDocumentFragment(), - nodes = [], - i = 0, - l = elems.length; - - for ( ; i < l; i++ ) { - elem = elems[ i ]; - - if ( elem || elem === 0 ) { - - // Add nodes directly - if ( toType( elem ) === "object" ) { - - // Support: Android <=4.0 only, PhantomJS 1 only - // push.apply(_, arraylike) throws on ancient WebKit - jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem ); - - // Convert non-html into a text node - } else if ( !rhtml.test( elem ) ) { - nodes.push( context.createTextNode( elem ) ); - - // Convert html into DOM nodes - } else { - tmp = tmp || fragment.appendChild( context.createElement( "div" ) ); - - // Deserialize a standard representation - tag = ( rtagName.exec( elem ) || [ "", "" ] )[ 1 ].toLowerCase(); - wrap = wrapMap[ tag ] || wrapMap._default; - tmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ]; - - // Descend through wrappers to the right content - j = wrap[ 0 ]; - while ( j-- ) { - tmp = tmp.lastChild; - } - - // Support: Android <=4.0 only, PhantomJS 1 only - // push.apply(_, arraylike) throws on ancient WebKit - jQuery.merge( nodes, tmp.childNodes ); - - // Remember the top-level container - tmp = fragment.firstChild; - - // Ensure the created nodes are orphaned (#12392) - tmp.textContent = ""; - } - } - } - - // Remove wrapper from fragment - fragment.textContent = ""; - - i = 0; - while ( ( elem = nodes[ i++ ] ) ) { - - // Skip elements already in the context collection (trac-4087) - if ( selection && jQuery.inArray( elem, selection ) > -1 ) { - if ( ignored ) { - ignored.push( elem ); - } - continue; - } - - attached = isAttached( elem ); - - // Append to fragment - tmp = getAll( fragment.appendChild( elem ), "script" ); - - // Preserve script evaluation history - if ( attached ) { - setGlobalEval( tmp ); - } - - // Capture executables - if ( scripts ) { - j = 0; - while ( ( elem = tmp[ j++ ] ) ) { - if ( rscriptType.test( elem.type || "" ) ) { - scripts.push( elem ); - } - } - } - } - - return fragment; -} - - -var - rkeyEvent = /^key/, - rmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/, - rtypenamespace = /^([^.]*)(?:\.(.+)|)/; - -function returnTrue() { - return true; -} - -function returnFalse() { - return false; -} - -// Support: IE <=9 - 11+ -// focus() and blur() are asynchronous, except when they are no-op. -// So expect focus to be synchronous when the element is already active, -// and blur to be synchronous when the element is not already active. -// (focus and blur are always synchronous in other supported browsers, -// this just defines when we can count on it). -function expectSync( elem, type ) { - return ( elem === safeActiveElement() ) === ( type === "focus" ); -} - -// Support: IE <=9 only -// Accessing document.activeElement can throw unexpectedly -// https://bugs.jquery.com/ticket/13393 -function safeActiveElement() { - try { - return document.activeElement; - } catch ( err ) { } -} - -function on( elem, types, selector, data, fn, one ) { - var origFn, type; - - // Types can be a map of types/handlers - if ( typeof types === "object" ) { - - // ( types-Object, selector, data ) - if ( typeof selector !== "string" ) { - - // ( types-Object, data ) - data = data || selector; - selector = undefined; - } - for ( type in types ) { - on( elem, type, selector, data, types[ type ], one ); - } - return elem; - } - - if ( data == null && fn == null ) { - - // ( types, fn ) - fn = selector; - data = selector = undefined; - } else if ( fn == null ) { - if ( typeof selector === "string" ) { - - // ( types, selector, fn ) - fn = data; - data = undefined; - } else { - - // ( types, data, fn ) - fn = data; - data = selector; - selector = undefined; - } - } - if ( fn === false ) { - fn = returnFalse; - } else if ( !fn ) { - return elem; - } - - if ( one === 1 ) { - origFn = fn; - fn = function( event ) { - - // Can use an empty set, since event contains the info - jQuery().off( event ); - return origFn.apply( this, arguments ); - }; - - // Use same guid so caller can remove using origFn - fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ ); - } - return elem.each( function() { - jQuery.event.add( this, types, fn, data, selector ); - } ); -} - -/* - * Helper functions for managing events -- not part of the public interface. - * Props to Dean Edwards' addEvent library for many of the ideas. - */ -jQuery.event = { - - global: {}, - - add: function( elem, types, handler, data, selector ) { - - var handleObjIn, eventHandle, tmp, - events, t, handleObj, - special, handlers, type, namespaces, origType, - elemData = dataPriv.get( elem ); - - // Only attach events to objects that accept data - if ( !acceptData( elem ) ) { - return; - } - - // Caller can pass in an object of custom data in lieu of the handler - if ( handler.handler ) { - handleObjIn = handler; - handler = handleObjIn.handler; - selector = handleObjIn.selector; - } - - // Ensure that invalid selectors throw exceptions at attach time - // Evaluate against documentElement in case elem is a non-element node (e.g., document) - if ( selector ) { - jQuery.find.matchesSelector( documentElement, selector ); - } - - // Make sure that the handler has a unique ID, used to find/remove it later - if ( !handler.guid ) { - handler.guid = jQuery.guid++; - } - - // Init the element's event structure and main handler, if this is the first - if ( !( events = elemData.events ) ) { - events = elemData.events = Object.create( null ); - } - if ( !( eventHandle = elemData.handle ) ) { - eventHandle = elemData.handle = function( e ) { - - // Discard the second event of a jQuery.event.trigger() and - // when an event is called after a page has unloaded - return typeof jQuery !== "undefined" && jQuery.event.triggered !== e.type ? - jQuery.event.dispatch.apply( elem, arguments ) : undefined; - }; - } - - // Handle multiple events separated by a space - types = ( types || "" ).match( rnothtmlwhite ) || [ "" ]; - t = types.length; - while ( t-- ) { - tmp = rtypenamespace.exec( types[ t ] ) || []; - type = origType = tmp[ 1 ]; - namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort(); - - // There *must* be a type, no attaching namespace-only handlers - if ( !type ) { - continue; - } - - // If event changes its type, use the special event handlers for the changed type - special = jQuery.event.special[ type ] || {}; - - // If selector defined, determine special event api type, otherwise given type - type = ( selector ? special.delegateType : special.bindType ) || type; - - // Update special based on newly reset type - special = jQuery.event.special[ type ] || {}; - - // handleObj is passed to all event handlers - handleObj = jQuery.extend( { - type: type, - origType: origType, - data: data, - handler: handler, - guid: handler.guid, - selector: selector, - needsContext: selector && jQuery.expr.match.needsContext.test( selector ), - namespace: namespaces.join( "." ) - }, handleObjIn ); - - // Init the event handler queue if we're the first - if ( !( handlers = events[ type ] ) ) { - handlers = events[ type ] = []; - handlers.delegateCount = 0; - - // Only use addEventListener if the special events handler returns false - if ( !special.setup || - special.setup.call( elem, data, namespaces, eventHandle ) === false ) { - - if ( elem.addEventListener ) { - elem.addEventListener( type, eventHandle ); - } - } - } - - if ( special.add ) { - special.add.call( elem, handleObj ); - - if ( !handleObj.handler.guid ) { - handleObj.handler.guid = handler.guid; - } - } - - // Add to the element's handler list, delegates in front - if ( selector ) { - handlers.splice( handlers.delegateCount++, 0, handleObj ); - } else { - handlers.push( handleObj ); - } - - // Keep track of which events have ever been used, for event optimization - jQuery.event.global[ type ] = true; - } - - }, - - // Detach an event or set of events from an element - remove: function( elem, types, handler, selector, mappedTypes ) { - - var j, origCount, tmp, - events, t, handleObj, - special, handlers, type, namespaces, origType, - elemData = dataPriv.hasData( elem ) && dataPriv.get( elem ); - - if ( !elemData || !( events = elemData.events ) ) { - return; - } - - // Once for each type.namespace in types; type may be omitted - types = ( types || "" ).match( rnothtmlwhite ) || [ "" ]; - t = types.length; - while ( t-- ) { - tmp = rtypenamespace.exec( types[ t ] ) || []; - type = origType = tmp[ 1 ]; - namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort(); - - // Unbind all events (on this namespace, if provided) for the element - if ( !type ) { - for ( type in events ) { - jQuery.event.remove( elem, type + types[ t ], handler, selector, true ); - } - continue; - } - - special = jQuery.event.special[ type ] || {}; - type = ( selector ? special.delegateType : special.bindType ) || type; - handlers = events[ type ] || []; - tmp = tmp[ 2 ] && - new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ); - - // Remove matching events - origCount = j = handlers.length; - while ( j-- ) { - handleObj = handlers[ j ]; - - if ( ( mappedTypes || origType === handleObj.origType ) && - ( !handler || handler.guid === handleObj.guid ) && - ( !tmp || tmp.test( handleObj.namespace ) ) && - ( !selector || selector === handleObj.selector || - selector === "**" && handleObj.selector ) ) { - handlers.splice( j, 1 ); - - if ( handleObj.selector ) { - handlers.delegateCount--; - } - if ( special.remove ) { - special.remove.call( elem, handleObj ); - } - } - } - - // Remove generic event handler if we removed something and no more handlers exist - // (avoids potential for endless recursion during removal of special event handlers) - if ( origCount && !handlers.length ) { - if ( !special.teardown || - special.teardown.call( elem, namespaces, elemData.handle ) === false ) { - - jQuery.removeEvent( elem, type, elemData.handle ); - } - - delete events[ type ]; - } - } - - // Remove data and the expando if it's no longer used - if ( jQuery.isEmptyObject( events ) ) { - dataPriv.remove( elem, "handle events" ); - } - }, - - dispatch: function( nativeEvent ) { - - var i, j, ret, matched, handleObj, handlerQueue, - args = new Array( arguments.length ), - - // Make a writable jQuery.Event from the native event object - event = jQuery.event.fix( nativeEvent ), - - handlers = ( - dataPriv.get( this, "events" ) || Object.create( null ) - )[ event.type ] || [], - special = jQuery.event.special[ event.type ] || {}; - - // Use the fix-ed jQuery.Event rather than the (read-only) native event - args[ 0 ] = event; - - for ( i = 1; i < arguments.length; i++ ) { - args[ i ] = arguments[ i ]; - } - - event.delegateTarget = this; - - // Call the preDispatch hook for the mapped type, and let it bail if desired - if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) { - return; - } - - // Determine handlers - handlerQueue = jQuery.event.handlers.call( this, event, handlers ); - - // Run delegates first; they may want to stop propagation beneath us - i = 0; - while ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) { - event.currentTarget = matched.elem; - - j = 0; - while ( ( handleObj = matched.handlers[ j++ ] ) && - !event.isImmediatePropagationStopped() ) { - - // If the event is namespaced, then each handler is only invoked if it is - // specially universal or its namespaces are a superset of the event's. - if ( !event.rnamespace || handleObj.namespace === false || - event.rnamespace.test( handleObj.namespace ) ) { - - event.handleObj = handleObj; - event.data = handleObj.data; - - ret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle || - handleObj.handler ).apply( matched.elem, args ); - - if ( ret !== undefined ) { - if ( ( event.result = ret ) === false ) { - event.preventDefault(); - event.stopPropagation(); - } - } - } - } - } - - // Call the postDispatch hook for the mapped type - if ( special.postDispatch ) { - special.postDispatch.call( this, event ); - } - - return event.result; - }, - - handlers: function( event, handlers ) { - var i, handleObj, sel, matchedHandlers, matchedSelectors, - handlerQueue = [], - delegateCount = handlers.delegateCount, - cur = event.target; - - // Find delegate handlers - if ( delegateCount && - - // Support: IE <=9 - // Black-hole SVG instance trees (trac-13180) - cur.nodeType && - - // Support: Firefox <=42 - // Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861) - // https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click - // Support: IE 11 only - // ...but not arrow key "clicks" of radio inputs, which can have `button` -1 (gh-2343) - !( event.type === "click" && event.button >= 1 ) ) { - - for ( ; cur !== this; cur = cur.parentNode || this ) { - - // Don't check non-elements (#13208) - // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764) - if ( cur.nodeType === 1 && !( event.type === "click" && cur.disabled === true ) ) { - matchedHandlers = []; - matchedSelectors = {}; - for ( i = 0; i < delegateCount; i++ ) { - handleObj = handlers[ i ]; - - // Don't conflict with Object.prototype properties (#13203) - sel = handleObj.selector + " "; - - if ( matchedSelectors[ sel ] === undefined ) { - matchedSelectors[ sel ] = handleObj.needsContext ? - jQuery( sel, this ).index( cur ) > -1 : - jQuery.find( sel, this, null, [ cur ] ).length; - } - if ( matchedSelectors[ sel ] ) { - matchedHandlers.push( handleObj ); - } - } - if ( matchedHandlers.length ) { - handlerQueue.push( { elem: cur, handlers: matchedHandlers } ); - } - } - } - } - - // Add the remaining (directly-bound) handlers - cur = this; - if ( delegateCount < handlers.length ) { - handlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } ); - } - - return handlerQueue; - }, - - addProp: function( name, hook ) { - Object.defineProperty( jQuery.Event.prototype, name, { - enumerable: true, - configurable: true, - - get: isFunction( hook ) ? - function() { - if ( this.originalEvent ) { - return hook( this.originalEvent ); - } - } : - function() { - if ( this.originalEvent ) { - return this.originalEvent[ name ]; - } - }, - - set: function( value ) { - Object.defineProperty( this, name, { - enumerable: true, - configurable: true, - writable: true, - value: value - } ); - } - } ); - }, - - fix: function( originalEvent ) { - return originalEvent[ jQuery.expando ] ? - originalEvent : - new jQuery.Event( originalEvent ); - }, - - special: { - load: { - - // Prevent triggered image.load events from bubbling to window.load - noBubble: true - }, - click: { - - // Utilize native event to ensure correct state for checkable inputs - setup: function( data ) { - - // For mutual compressibility with _default, replace `this` access with a local var. - // `|| data` is dead code meant only to preserve the variable through minification. - var el = this || data; - - // Claim the first handler - if ( rcheckableType.test( el.type ) && - el.click && nodeName( el, "input" ) ) { - - // dataPriv.set( el, "click", ... ) - leverageNative( el, "click", returnTrue ); - } - - // Return false to allow normal processing in the caller - return false; - }, - trigger: function( data ) { - - // For mutual compressibility with _default, replace `this` access with a local var. - // `|| data` is dead code meant only to preserve the variable through minification. - var el = this || data; - - // Force setup before triggering a click - if ( rcheckableType.test( el.type ) && - el.click && nodeName( el, "input" ) ) { - - leverageNative( el, "click" ); - } - - // Return non-false to allow normal event-path propagation - return true; - }, - - // For cross-browser consistency, suppress native .click() on links - // Also prevent it if we're currently inside a leveraged native-event stack - _default: function( event ) { - var target = event.target; - return rcheckableType.test( target.type ) && - target.click && nodeName( target, "input" ) && - dataPriv.get( target, "click" ) || - nodeName( target, "a" ); - } - }, - - beforeunload: { - postDispatch: function( event ) { - - // Support: Firefox 20+ - // Firefox doesn't alert if the returnValue field is not set. - if ( event.result !== undefined && event.originalEvent ) { - event.originalEvent.returnValue = event.result; - } - } - } - } -}; - -// Ensure the presence of an event listener that handles manually-triggered -// synthetic events by interrupting progress until reinvoked in response to -// *native* events that it fires directly, ensuring that state changes have -// already occurred before other listeners are invoked. -function leverageNative( el, type, expectSync ) { - - // Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add - if ( !expectSync ) { - if ( dataPriv.get( el, type ) === undefined ) { - jQuery.event.add( el, type, returnTrue ); - } - return; - } - - // Register the controller as a special universal handler for all event namespaces - dataPriv.set( el, type, false ); - jQuery.event.add( el, type, { - namespace: false, - handler: function( event ) { - var notAsync, result, - saved = dataPriv.get( this, type ); - - if ( ( event.isTrigger & 1 ) && this[ type ] ) { - - // Interrupt processing of the outer synthetic .trigger()ed event - // Saved data should be false in such cases, but might be a leftover capture object - // from an async native handler (gh-4350) - if ( !saved.length ) { - - // Store arguments for use when handling the inner native event - // There will always be at least one argument (an event object), so this array - // will not be confused with a leftover capture object. - saved = slice.call( arguments ); - dataPriv.set( this, type, saved ); - - // Trigger the native event and capture its result - // Support: IE <=9 - 11+ - // focus() and blur() are asynchronous - notAsync = expectSync( this, type ); - this[ type ](); - result = dataPriv.get( this, type ); - if ( saved !== result || notAsync ) { - dataPriv.set( this, type, false ); - } else { - result = {}; - } - if ( saved !== result ) { - - // Cancel the outer synthetic event - event.stopImmediatePropagation(); - event.preventDefault(); - return result.value; - } - - // If this is an inner synthetic event for an event with a bubbling surrogate - // (focus or blur), assume that the surrogate already propagated from triggering the - // native event and prevent that from happening again here. - // This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the - // bubbling surrogate propagates *after* the non-bubbling base), but that seems - // less bad than duplication. - } else if ( ( jQuery.event.special[ type ] || {} ).delegateType ) { - event.stopPropagation(); - } - - // If this is a native event triggered above, everything is now in order - // Fire an inner synthetic event with the original arguments - } else if ( saved.length ) { - - // ...and capture the result - dataPriv.set( this, type, { - value: jQuery.event.trigger( - - // Support: IE <=9 - 11+ - // Extend with the prototype to reset the above stopImmediatePropagation() - jQuery.extend( saved[ 0 ], jQuery.Event.prototype ), - saved.slice( 1 ), - this - ) - } ); - - // Abort handling of the native event - event.stopImmediatePropagation(); - } - } - } ); -} - -jQuery.removeEvent = function( elem, type, handle ) { - - // This "if" is needed for plain objects - if ( elem.removeEventListener ) { - elem.removeEventListener( type, handle ); - } -}; - -jQuery.Event = function( src, props ) { - - // Allow instantiation without the 'new' keyword - if ( !( this instanceof jQuery.Event ) ) { - return new jQuery.Event( src, props ); - } - - // Event object - if ( src && src.type ) { - this.originalEvent = src; - this.type = src.type; - - // Events bubbling up the document may have been marked as prevented - // by a handler lower down the tree; reflect the correct value. - this.isDefaultPrevented = src.defaultPrevented || - src.defaultPrevented === undefined && - - // Support: Android <=2.3 only - src.returnValue === false ? - returnTrue : - returnFalse; - - // Create target properties - // Support: Safari <=6 - 7 only - // Target should not be a text node (#504, #13143) - this.target = ( src.target && src.target.nodeType === 3 ) ? - src.target.parentNode : - src.target; - - this.currentTarget = src.currentTarget; - this.relatedTarget = src.relatedTarget; - - // Event type - } else { - this.type = src; - } - - // Put explicitly provided properties onto the event object - if ( props ) { - jQuery.extend( this, props ); - } - - // Create a timestamp if incoming event doesn't have one - this.timeStamp = src && src.timeStamp || Date.now(); - - // Mark it as fixed - this[ jQuery.expando ] = true; -}; - -// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding -// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html -jQuery.Event.prototype = { - constructor: jQuery.Event, - isDefaultPrevented: returnFalse, - isPropagationStopped: returnFalse, - isImmediatePropagationStopped: returnFalse, - isSimulated: false, - - preventDefault: function() { - var e = this.originalEvent; - - this.isDefaultPrevented = returnTrue; - - if ( e && !this.isSimulated ) { - e.preventDefault(); - } - }, - stopPropagation: function() { - var e = this.originalEvent; - - this.isPropagationStopped = returnTrue; - - if ( e && !this.isSimulated ) { - e.stopPropagation(); - } - }, - stopImmediatePropagation: function() { - var e = this.originalEvent; - - this.isImmediatePropagationStopped = returnTrue; - - if ( e && !this.isSimulated ) { - e.stopImmediatePropagation(); - } - - this.stopPropagation(); - } -}; - -// Includes all common event props including KeyEvent and MouseEvent specific props -jQuery.each( { - altKey: true, - bubbles: true, - cancelable: true, - changedTouches: true, - ctrlKey: true, - detail: true, - eventPhase: true, - metaKey: true, - pageX: true, - pageY: true, - shiftKey: true, - view: true, - "char": true, - code: true, - charCode: true, - key: true, - keyCode: true, - button: true, - buttons: true, - clientX: true, - clientY: true, - offsetX: true, - offsetY: true, - pointerId: true, - pointerType: true, - screenX: true, - screenY: true, - targetTouches: true, - toElement: true, - touches: true, - - which: function( event ) { - var button = event.button; - - // Add which for key events - if ( event.which == null && rkeyEvent.test( event.type ) ) { - return event.charCode != null ? event.charCode : event.keyCode; - } - - // Add which for click: 1 === left; 2 === middle; 3 === right - if ( !event.which && button !== undefined && rmouseEvent.test( event.type ) ) { - if ( button & 1 ) { - return 1; - } - - if ( button & 2 ) { - return 3; - } - - if ( button & 4 ) { - return 2; - } - - return 0; - } - - return event.which; - } -}, jQuery.event.addProp ); - -jQuery.each( { focus: "focusin", blur: "focusout" }, function( type, delegateType ) { - jQuery.event.special[ type ] = { - - // Utilize native event if possible so blur/focus sequence is correct - setup: function() { - - // Claim the first handler - // dataPriv.set( this, "focus", ... ) - // dataPriv.set( this, "blur", ... ) - leverageNative( this, type, expectSync ); - - // Return false to allow normal processing in the caller - return false; - }, - trigger: function() { - - // Force setup before trigger - leverageNative( this, type ); - - // Return non-false to allow normal event-path propagation - return true; - }, - - delegateType: delegateType - }; -} ); - -// Create mouseenter/leave events using mouseover/out and event-time checks -// so that event delegation works in jQuery. -// Do the same for pointerenter/pointerleave and pointerover/pointerout -// -// Support: Safari 7 only -// Safari sends mouseenter too often; see: -// https://bugs.chromium.org/p/chromium/issues/detail?id=470258 -// for the description of the bug (it existed in older Chrome versions as well). -jQuery.each( { - mouseenter: "mouseover", - mouseleave: "mouseout", - pointerenter: "pointerover", - pointerleave: "pointerout" -}, function( orig, fix ) { - jQuery.event.special[ orig ] = { - delegateType: fix, - bindType: fix, - - handle: function( event ) { - var ret, - target = this, - related = event.relatedTarget, - handleObj = event.handleObj; - - // For mouseenter/leave call the handler if related is outside the target. - // NB: No relatedTarget if the mouse left/entered the browser window - if ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) { - event.type = handleObj.origType; - ret = handleObj.handler.apply( this, arguments ); - event.type = fix; - } - return ret; - } - }; -} ); - -jQuery.fn.extend( { - - on: function( types, selector, data, fn ) { - return on( this, types, selector, data, fn ); - }, - one: function( types, selector, data, fn ) { - return on( this, types, selector, data, fn, 1 ); - }, - off: function( types, selector, fn ) { - var handleObj, type; - if ( types && types.preventDefault && types.handleObj ) { - - // ( event ) dispatched jQuery.Event - handleObj = types.handleObj; - jQuery( types.delegateTarget ).off( - handleObj.namespace ? - handleObj.origType + "." + handleObj.namespace : - handleObj.origType, - handleObj.selector, - handleObj.handler - ); - return this; - } - if ( typeof types === "object" ) { - - // ( types-object [, selector] ) - for ( type in types ) { - this.off( type, selector, types[ type ] ); - } - return this; - } - if ( selector === false || typeof selector === "function" ) { - - // ( types [, fn] ) - fn = selector; - selector = undefined; - } - if ( fn === false ) { - fn = returnFalse; - } - return this.each( function() { - jQuery.event.remove( this, types, fn, selector ); - } ); - } -} ); - - -var - - // Support: IE <=10 - 11, Edge 12 - 13 only - // In IE/Edge using regex groups here causes severe slowdowns. - // See https://connect.microsoft.com/IE/feedback/details/1736512/ - rnoInnerhtml = /\s*$/g; - -// Prefer a tbody over its parent table for containing new rows -function manipulationTarget( elem, content ) { - if ( nodeName( elem, "table" ) && - nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ) { - - return jQuery( elem ).children( "tbody" )[ 0 ] || elem; - } - - return elem; -} - -// Replace/restore the type attribute of script elements for safe DOM manipulation -function disableScript( elem ) { - elem.type = ( elem.getAttribute( "type" ) !== null ) + "/" + elem.type; - return elem; -} -function restoreScript( elem ) { - if ( ( elem.type || "" ).slice( 0, 5 ) === "true/" ) { - elem.type = elem.type.slice( 5 ); - } else { - elem.removeAttribute( "type" ); - } - - return elem; -} - -function cloneCopyEvent( src, dest ) { - var i, l, type, pdataOld, udataOld, udataCur, events; - - if ( dest.nodeType !== 1 ) { - return; - } - - // 1. Copy private data: events, handlers, etc. - if ( dataPriv.hasData( src ) ) { - pdataOld = dataPriv.get( src ); - events = pdataOld.events; - - if ( events ) { - dataPriv.remove( dest, "handle events" ); - - for ( type in events ) { - for ( i = 0, l = events[ type ].length; i < l; i++ ) { - jQuery.event.add( dest, type, events[ type ][ i ] ); - } - } - } - } - - // 2. Copy user data - if ( dataUser.hasData( src ) ) { - udataOld = dataUser.access( src ); - udataCur = jQuery.extend( {}, udataOld ); - - dataUser.set( dest, udataCur ); - } -} - -// Fix IE bugs, see support tests -function fixInput( src, dest ) { - var nodeName = dest.nodeName.toLowerCase(); - - // Fails to persist the checked state of a cloned checkbox or radio button. - if ( nodeName === "input" && rcheckableType.test( src.type ) ) { - dest.checked = src.checked; - - // Fails to return the selected option to the default selected state when cloning options - } else if ( nodeName === "input" || nodeName === "textarea" ) { - dest.defaultValue = src.defaultValue; - } -} - -function domManip( collection, args, callback, ignored ) { - - // Flatten any nested arrays - args = flat( args ); - - var fragment, first, scripts, hasScripts, node, doc, - i = 0, - l = collection.length, - iNoClone = l - 1, - value = args[ 0 ], - valueIsFunction = isFunction( value ); - - // We can't cloneNode fragments that contain checked, in WebKit - if ( valueIsFunction || - ( l > 1 && typeof value === "string" && - !support.checkClone && rchecked.test( value ) ) ) { - return collection.each( function( index ) { - var self = collection.eq( index ); - if ( valueIsFunction ) { - args[ 0 ] = value.call( this, index, self.html() ); - } - domManip( self, args, callback, ignored ); - } ); - } - - if ( l ) { - fragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored ); - first = fragment.firstChild; - - if ( fragment.childNodes.length === 1 ) { - fragment = first; - } - - // Require either new content or an interest in ignored elements to invoke the callback - if ( first || ignored ) { - scripts = jQuery.map( getAll( fragment, "script" ), disableScript ); - hasScripts = scripts.length; - - // Use the original fragment for the last item - // instead of the first because it can end up - // being emptied incorrectly in certain situations (#8070). - for ( ; i < l; i++ ) { - node = fragment; - - if ( i !== iNoClone ) { - node = jQuery.clone( node, true, true ); - - // Keep references to cloned scripts for later restoration - if ( hasScripts ) { - - // Support: Android <=4.0 only, PhantomJS 1 only - // push.apply(_, arraylike) throws on ancient WebKit - jQuery.merge( scripts, getAll( node, "script" ) ); - } - } - - callback.call( collection[ i ], node, i ); - } - - if ( hasScripts ) { - doc = scripts[ scripts.length - 1 ].ownerDocument; - - // Reenable scripts - jQuery.map( scripts, restoreScript ); - - // Evaluate executable scripts on first document insertion - for ( i = 0; i < hasScripts; i++ ) { - node = scripts[ i ]; - if ( rscriptType.test( node.type || "" ) && - !dataPriv.access( node, "globalEval" ) && - jQuery.contains( doc, node ) ) { - - if ( node.src && ( node.type || "" ).toLowerCase() !== "module" ) { - - // Optional AJAX dependency, but won't run scripts if not present - if ( jQuery._evalUrl && !node.noModule ) { - jQuery._evalUrl( node.src, { - nonce: node.nonce || node.getAttribute( "nonce" ) - }, doc ); - } - } else { - DOMEval( node.textContent.replace( rcleanScript, "" ), node, doc ); - } - } - } - } - } - } - - return collection; -} - -function remove( elem, selector, keepData ) { - var node, - nodes = selector ? jQuery.filter( selector, elem ) : elem, - i = 0; - - for ( ; ( node = nodes[ i ] ) != null; i++ ) { - if ( !keepData && node.nodeType === 1 ) { - jQuery.cleanData( getAll( node ) ); - } - - if ( node.parentNode ) { - if ( keepData && isAttached( node ) ) { - setGlobalEval( getAll( node, "script" ) ); - } - node.parentNode.removeChild( node ); - } - } - - return elem; -} - -jQuery.extend( { - htmlPrefilter: function( html ) { - return html; - }, - - clone: function( elem, dataAndEvents, deepDataAndEvents ) { - var i, l, srcElements, destElements, - clone = elem.cloneNode( true ), - inPage = isAttached( elem ); - - // Fix IE cloning issues - if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) && - !jQuery.isXMLDoc( elem ) ) { - - // We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2 - destElements = getAll( clone ); - srcElements = getAll( elem ); - - for ( i = 0, l = srcElements.length; i < l; i++ ) { - fixInput( srcElements[ i ], destElements[ i ] ); - } - } - - // Copy the events from the original to the clone - if ( dataAndEvents ) { - if ( deepDataAndEvents ) { - srcElements = srcElements || getAll( elem ); - destElements = destElements || getAll( clone ); - - for ( i = 0, l = srcElements.length; i < l; i++ ) { - cloneCopyEvent( srcElements[ i ], destElements[ i ] ); - } - } else { - cloneCopyEvent( elem, clone ); - } - } - - // Preserve script evaluation history - destElements = getAll( clone, "script" ); - if ( destElements.length > 0 ) { - setGlobalEval( destElements, !inPage && getAll( elem, "script" ) ); - } - - // Return the cloned set - return clone; - }, - - cleanData: function( elems ) { - var data, elem, type, - special = jQuery.event.special, - i = 0; - - for ( ; ( elem = elems[ i ] ) !== undefined; i++ ) { - if ( acceptData( elem ) ) { - if ( ( data = elem[ dataPriv.expando ] ) ) { - if ( data.events ) { - for ( type in data.events ) { - if ( special[ type ] ) { - jQuery.event.remove( elem, type ); - - // This is a shortcut to avoid jQuery.event.remove's overhead - } else { - jQuery.removeEvent( elem, type, data.handle ); - } - } - } - - // Support: Chrome <=35 - 45+ - // Assign undefined instead of using delete, see Data#remove - elem[ dataPriv.expando ] = undefined; - } - if ( elem[ dataUser.expando ] ) { - - // Support: Chrome <=35 - 45+ - // Assign undefined instead of using delete, see Data#remove - elem[ dataUser.expando ] = undefined; - } - } - } - } -} ); - -jQuery.fn.extend( { - detach: function( selector ) { - return remove( this, selector, true ); - }, - - remove: function( selector ) { - return remove( this, selector ); - }, - - text: function( value ) { - return access( this, function( value ) { - return value === undefined ? - jQuery.text( this ) : - this.empty().each( function() { - if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { - this.textContent = value; - } - } ); - }, null, value, arguments.length ); - }, - - append: function() { - return domManip( this, arguments, function( elem ) { - if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { - var target = manipulationTarget( this, elem ); - target.appendChild( elem ); - } - } ); - }, - - prepend: function() { - return domManip( this, arguments, function( elem ) { - if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { - var target = manipulationTarget( this, elem ); - target.insertBefore( elem, target.firstChild ); - } - } ); - }, - - before: function() { - return domManip( this, arguments, function( elem ) { - if ( this.parentNode ) { - this.parentNode.insertBefore( elem, this ); - } - } ); - }, - - after: function() { - return domManip( this, arguments, function( elem ) { - if ( this.parentNode ) { - this.parentNode.insertBefore( elem, this.nextSibling ); - } - } ); - }, - - empty: function() { - var elem, - i = 0; - - for ( ; ( elem = this[ i ] ) != null; i++ ) { - if ( elem.nodeType === 1 ) { - - // Prevent memory leaks - jQuery.cleanData( getAll( elem, false ) ); - - // Remove any remaining nodes - elem.textContent = ""; - } - } - - return this; - }, - - clone: function( dataAndEvents, deepDataAndEvents ) { - dataAndEvents = dataAndEvents == null ? false : dataAndEvents; - deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents; - - return this.map( function() { - return jQuery.clone( this, dataAndEvents, deepDataAndEvents ); - } ); - }, - - html: function( value ) { - return access( this, function( value ) { - var elem = this[ 0 ] || {}, - i = 0, - l = this.length; - - if ( value === undefined && elem.nodeType === 1 ) { - return elem.innerHTML; - } - - // See if we can take a shortcut and just use innerHTML - if ( typeof value === "string" && !rnoInnerhtml.test( value ) && - !wrapMap[ ( rtagName.exec( value ) || [ "", "" ] )[ 1 ].toLowerCase() ] ) { - - value = jQuery.htmlPrefilter( value ); - - try { - for ( ; i < l; i++ ) { - elem = this[ i ] || {}; - - // Remove element nodes and prevent memory leaks - if ( elem.nodeType === 1 ) { - jQuery.cleanData( getAll( elem, false ) ); - elem.innerHTML = value; - } - } - - elem = 0; - - // If using innerHTML throws an exception, use the fallback method - } catch ( e ) {} - } - - if ( elem ) { - this.empty().append( value ); - } - }, null, value, arguments.length ); - }, - - replaceWith: function() { - var ignored = []; - - // Make the changes, replacing each non-ignored context element with the new content - return domManip( this, arguments, function( elem ) { - var parent = this.parentNode; - - if ( jQuery.inArray( this, ignored ) < 0 ) { - jQuery.cleanData( getAll( this ) ); - if ( parent ) { - parent.replaceChild( elem, this ); - } - } - - // Force callback invocation - }, ignored ); - } -} ); - -jQuery.each( { - appendTo: "append", - prependTo: "prepend", - insertBefore: "before", - insertAfter: "after", - replaceAll: "replaceWith" -}, function( name, original ) { - jQuery.fn[ name ] = function( selector ) { - var elems, - ret = [], - insert = jQuery( selector ), - last = insert.length - 1, - i = 0; - - for ( ; i <= last; i++ ) { - elems = i === last ? this : this.clone( true ); - jQuery( insert[ i ] )[ original ]( elems ); - - // Support: Android <=4.0 only, PhantomJS 1 only - // .get() because push.apply(_, arraylike) throws on ancient WebKit - push.apply( ret, elems.get() ); - } - - return this.pushStack( ret ); - }; -} ); -var rnumnonpx = new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" ); - -var getStyles = function( elem ) { - - // Support: IE <=11 only, Firefox <=30 (#15098, #14150) - // IE throws on elements created in popups - // FF meanwhile throws on frame elements through "defaultView.getComputedStyle" - var view = elem.ownerDocument.defaultView; - - if ( !view || !view.opener ) { - view = window; - } - - return view.getComputedStyle( elem ); - }; - -var swap = function( elem, options, callback ) { - var ret, name, - old = {}; - - // Remember the old values, and insert the new ones - for ( name in options ) { - old[ name ] = elem.style[ name ]; - elem.style[ name ] = options[ name ]; - } - - ret = callback.call( elem ); - - // Revert the old values - for ( name in options ) { - elem.style[ name ] = old[ name ]; - } - - return ret; -}; - - -var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" ); - - - -( function() { - - // Executing both pixelPosition & boxSizingReliable tests require only one layout - // so they're executed at the same time to save the second computation. - function computeStyleTests() { - - // This is a singleton, we need to execute it only once - if ( !div ) { - return; - } - - container.style.cssText = "position:absolute;left:-11111px;width:60px;" + - "margin-top:1px;padding:0;border:0"; - div.style.cssText = - "position:relative;display:block;box-sizing:border-box;overflow:scroll;" + - "margin:auto;border:1px;padding:1px;" + - "width:60%;top:1%"; - documentElement.appendChild( container ).appendChild( div ); - - var divStyle = window.getComputedStyle( div ); - pixelPositionVal = divStyle.top !== "1%"; - - // Support: Android 4.0 - 4.3 only, Firefox <=3 - 44 - reliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12; - - // Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3 - // Some styles come back with percentage values, even though they shouldn't - div.style.right = "60%"; - pixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36; - - // Support: IE 9 - 11 only - // Detect misreporting of content dimensions for box-sizing:border-box elements - boxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36; - - // Support: IE 9 only - // Detect overflow:scroll screwiness (gh-3699) - // Support: Chrome <=64 - // Don't get tricked when zoom affects offsetWidth (gh-4029) - div.style.position = "absolute"; - scrollboxSizeVal = roundPixelMeasures( div.offsetWidth / 3 ) === 12; - - documentElement.removeChild( container ); - - // Nullify the div so it wouldn't be stored in the memory and - // it will also be a sign that checks already performed - div = null; - } - - function roundPixelMeasures( measure ) { - return Math.round( parseFloat( measure ) ); - } - - var pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal, - reliableTrDimensionsVal, reliableMarginLeftVal, - container = document.createElement( "div" ), - div = document.createElement( "div" ); - - // Finish early in limited (non-browser) environments - if ( !div.style ) { - return; - } - - // Support: IE <=9 - 11 only - // Style of cloned element affects source element cloned (#8908) - div.style.backgroundClip = "content-box"; - div.cloneNode( true ).style.backgroundClip = ""; - support.clearCloneStyle = div.style.backgroundClip === "content-box"; - - jQuery.extend( support, { - boxSizingReliable: function() { - computeStyleTests(); - return boxSizingReliableVal; - }, - pixelBoxStyles: function() { - computeStyleTests(); - return pixelBoxStylesVal; - }, - pixelPosition: function() { - computeStyleTests(); - return pixelPositionVal; - }, - reliableMarginLeft: function() { - computeStyleTests(); - return reliableMarginLeftVal; - }, - scrollboxSize: function() { - computeStyleTests(); - return scrollboxSizeVal; - }, - - // Support: IE 9 - 11+, Edge 15 - 18+ - // IE/Edge misreport `getComputedStyle` of table rows with width/height - // set in CSS while `offset*` properties report correct values. - // Behavior in IE 9 is more subtle than in newer versions & it passes - // some versions of this test; make sure not to make it pass there! - reliableTrDimensions: function() { - var table, tr, trChild, trStyle; - if ( reliableTrDimensionsVal == null ) { - table = document.createElement( "table" ); - tr = document.createElement( "tr" ); - trChild = document.createElement( "div" ); - - table.style.cssText = "position:absolute;left:-11111px"; - tr.style.height = "1px"; - trChild.style.height = "9px"; - - documentElement - .appendChild( table ) - .appendChild( tr ) - .appendChild( trChild ); - - trStyle = window.getComputedStyle( tr ); - reliableTrDimensionsVal = parseInt( trStyle.height ) > 3; - - documentElement.removeChild( table ); - } - return reliableTrDimensionsVal; - } - } ); -} )(); - - -function curCSS( elem, name, computed ) { - var width, minWidth, maxWidth, ret, - - // Support: Firefox 51+ - // Retrieving style before computed somehow - // fixes an issue with getting wrong values - // on detached elements - style = elem.style; - - computed = computed || getStyles( elem ); - - // getPropertyValue is needed for: - // .css('filter') (IE 9 only, #12537) - // .css('--customProperty) (#3144) - if ( computed ) { - ret = computed.getPropertyValue( name ) || computed[ name ]; - - if ( ret === "" && !isAttached( elem ) ) { - ret = jQuery.style( elem, name ); - } - - // A tribute to the "awesome hack by Dean Edwards" - // Android Browser returns percentage for some values, - // but width seems to be reliably pixels. - // This is against the CSSOM draft spec: - // https://drafts.csswg.org/cssom/#resolved-values - if ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) { - - // Remember the original values - width = style.width; - minWidth = style.minWidth; - maxWidth = style.maxWidth; - - // Put in the new values to get a computed value out - style.minWidth = style.maxWidth = style.width = ret; - ret = computed.width; - - // Revert the changed values - style.width = width; - style.minWidth = minWidth; - style.maxWidth = maxWidth; - } - } - - return ret !== undefined ? - - // Support: IE <=9 - 11 only - // IE returns zIndex value as an integer. - ret + "" : - ret; -} - - -function addGetHookIf( conditionFn, hookFn ) { - - // Define the hook, we'll check on the first run if it's really needed. - return { - get: function() { - if ( conditionFn() ) { - - // Hook not needed (or it's not possible to use it due - // to missing dependency), remove it. - delete this.get; - return; - } - - // Hook needed; redefine it so that the support test is not executed again. - return ( this.get = hookFn ).apply( this, arguments ); - } - }; -} - - -var cssPrefixes = [ "Webkit", "Moz", "ms" ], - emptyStyle = document.createElement( "div" ).style, - vendorProps = {}; - -// Return a vendor-prefixed property or undefined -function vendorPropName( name ) { - - // Check for vendor prefixed names - var capName = name[ 0 ].toUpperCase() + name.slice( 1 ), - i = cssPrefixes.length; - - while ( i-- ) { - name = cssPrefixes[ i ] + capName; - if ( name in emptyStyle ) { - return name; - } - } -} - -// Return a potentially-mapped jQuery.cssProps or vendor prefixed property -function finalPropName( name ) { - var final = jQuery.cssProps[ name ] || vendorProps[ name ]; - - if ( final ) { - return final; - } - if ( name in emptyStyle ) { - return name; - } - return vendorProps[ name ] = vendorPropName( name ) || name; -} - - -var - - // Swappable if display is none or starts with table - // except "table", "table-cell", or "table-caption" - // See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display - rdisplayswap = /^(none|table(?!-c[ea]).+)/, - rcustomProp = /^--/, - cssShow = { position: "absolute", visibility: "hidden", display: "block" }, - cssNormalTransform = { - letterSpacing: "0", - fontWeight: "400" - }; - -function setPositiveNumber( _elem, value, subtract ) { - - // Any relative (+/-) values have already been - // normalized at this point - var matches = rcssNum.exec( value ); - return matches ? - - // Guard against undefined "subtract", e.g., when used as in cssHooks - Math.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || "px" ) : - value; -} - -function boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) { - var i = dimension === "width" ? 1 : 0, - extra = 0, - delta = 0; - - // Adjustment may not be necessary - if ( box === ( isBorderBox ? "border" : "content" ) ) { - return 0; - } - - for ( ; i < 4; i += 2 ) { - - // Both box models exclude margin - if ( box === "margin" ) { - delta += jQuery.css( elem, box + cssExpand[ i ], true, styles ); - } - - // If we get here with a content-box, we're seeking "padding" or "border" or "margin" - if ( !isBorderBox ) { - - // Add padding - delta += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); - - // For "border" or "margin", add border - if ( box !== "padding" ) { - delta += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); - - // But still keep track of it otherwise - } else { - extra += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); - } - - // If we get here with a border-box (content + padding + border), we're seeking "content" or - // "padding" or "margin" - } else { - - // For "content", subtract padding - if ( box === "content" ) { - delta -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); - } - - // For "content" or "padding", subtract border - if ( box !== "margin" ) { - delta -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); - } - } - } - - // Account for positive content-box scroll gutter when requested by providing computedVal - if ( !isBorderBox && computedVal >= 0 ) { - - // offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border - // Assuming integer scroll gutter, subtract the rest and round down - delta += Math.max( 0, Math.ceil( - elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] - - computedVal - - delta - - extra - - 0.5 - - // If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter - // Use an explicit zero to avoid NaN (gh-3964) - ) ) || 0; - } - - return delta; -} - -function getWidthOrHeight( elem, dimension, extra ) { - - // Start with computed style - var styles = getStyles( elem ), - - // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322). - // Fake content-box until we know it's needed to know the true value. - boxSizingNeeded = !support.boxSizingReliable() || extra, - isBorderBox = boxSizingNeeded && - jQuery.css( elem, "boxSizing", false, styles ) === "border-box", - valueIsBorderBox = isBorderBox, - - val = curCSS( elem, dimension, styles ), - offsetProp = "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ); - - // Support: Firefox <=54 - // Return a confounding non-pixel value or feign ignorance, as appropriate. - if ( rnumnonpx.test( val ) ) { - if ( !extra ) { - return val; - } - val = "auto"; - } - - - // Support: IE 9 - 11 only - // Use offsetWidth/offsetHeight for when box sizing is unreliable. - // In those cases, the computed value can be trusted to be border-box. - if ( ( !support.boxSizingReliable() && isBorderBox || - - // Support: IE 10 - 11+, Edge 15 - 18+ - // IE/Edge misreport `getComputedStyle` of table rows with width/height - // set in CSS while `offset*` properties report correct values. - // Interestingly, in some cases IE 9 doesn't suffer from this issue. - !support.reliableTrDimensions() && nodeName( elem, "tr" ) || - - // Fall back to offsetWidth/offsetHeight when value is "auto" - // This happens for inline elements with no explicit setting (gh-3571) - val === "auto" || - - // Support: Android <=4.1 - 4.3 only - // Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602) - !parseFloat( val ) && jQuery.css( elem, "display", false, styles ) === "inline" ) && - - // Make sure the element is visible & connected - elem.getClientRects().length ) { - - isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box"; - - // Where available, offsetWidth/offsetHeight approximate border box dimensions. - // Where not available (e.g., SVG), assume unreliable box-sizing and interpret the - // retrieved value as a content box dimension. - valueIsBorderBox = offsetProp in elem; - if ( valueIsBorderBox ) { - val = elem[ offsetProp ]; - } - } - - // Normalize "" and auto - val = parseFloat( val ) || 0; - - // Adjust for the element's box model - return ( val + - boxModelAdjustment( - elem, - dimension, - extra || ( isBorderBox ? "border" : "content" ), - valueIsBorderBox, - styles, - - // Provide the current computed size to request scroll gutter calculation (gh-3589) - val - ) - ) + "px"; -} - -jQuery.extend( { - - // Add in style property hooks for overriding the default - // behavior of getting and setting a style property - cssHooks: { - opacity: { - get: function( elem, computed ) { - if ( computed ) { - - // We should always get a number back from opacity - var ret = curCSS( elem, "opacity" ); - return ret === "" ? "1" : ret; - } - } - } - }, - - // Don't automatically add "px" to these possibly-unitless properties - cssNumber: { - "animationIterationCount": true, - "columnCount": true, - "fillOpacity": true, - "flexGrow": true, - "flexShrink": true, - "fontWeight": true, - "gridArea": true, - "gridColumn": true, - "gridColumnEnd": true, - "gridColumnStart": true, - "gridRow": true, - "gridRowEnd": true, - "gridRowStart": true, - "lineHeight": true, - "opacity": true, - "order": true, - "orphans": true, - "widows": true, - "zIndex": true, - "zoom": true - }, - - // Add in properties whose names you wish to fix before - // setting or getting the value - cssProps: {}, - - // Get and set the style property on a DOM Node - style: function( elem, name, value, extra ) { - - // Don't set styles on text and comment nodes - if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) { - return; - } - - // Make sure that we're working with the right name - var ret, type, hooks, - origName = camelCase( name ), - isCustomProp = rcustomProp.test( name ), - style = elem.style; - - // Make sure that we're working with the right name. We don't - // want to query the value if it is a CSS custom property - // since they are user-defined. - if ( !isCustomProp ) { - name = finalPropName( origName ); - } - - // Gets hook for the prefixed version, then unprefixed version - hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; - - // Check if we're setting a value - if ( value !== undefined ) { - type = typeof value; - - // Convert "+=" or "-=" to relative numbers (#7345) - if ( type === "string" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) { - value = adjustCSS( elem, name, ret ); - - // Fixes bug #9237 - type = "number"; - } - - // Make sure that null and NaN values aren't set (#7116) - if ( value == null || value !== value ) { - return; - } - - // If a number was passed in, add the unit (except for certain CSS properties) - // The isCustomProp check can be removed in jQuery 4.0 when we only auto-append - // "px" to a few hardcoded values. - if ( type === "number" && !isCustomProp ) { - value += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? "" : "px" ); - } - - // background-* props affect original clone's values - if ( !support.clearCloneStyle && value === "" && name.indexOf( "background" ) === 0 ) { - style[ name ] = "inherit"; - } - - // If a hook was provided, use that value, otherwise just set the specified value - if ( !hooks || !( "set" in hooks ) || - ( value = hooks.set( elem, value, extra ) ) !== undefined ) { - - if ( isCustomProp ) { - style.setProperty( name, value ); - } else { - style[ name ] = value; - } - } - - } else { - - // If a hook was provided get the non-computed value from there - if ( hooks && "get" in hooks && - ( ret = hooks.get( elem, false, extra ) ) !== undefined ) { - - return ret; - } - - // Otherwise just get the value from the style object - return style[ name ]; - } - }, - - css: function( elem, name, extra, styles ) { - var val, num, hooks, - origName = camelCase( name ), - isCustomProp = rcustomProp.test( name ); - - // Make sure that we're working with the right name. We don't - // want to modify the value if it is a CSS custom property - // since they are user-defined. - if ( !isCustomProp ) { - name = finalPropName( origName ); - } - - // Try prefixed name followed by the unprefixed name - hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; - - // If a hook was provided get the computed value from there - if ( hooks && "get" in hooks ) { - val = hooks.get( elem, true, extra ); - } - - // Otherwise, if a way to get the computed value exists, use that - if ( val === undefined ) { - val = curCSS( elem, name, styles ); - } - - // Convert "normal" to computed value - if ( val === "normal" && name in cssNormalTransform ) { - val = cssNormalTransform[ name ]; - } - - // Make numeric if forced or a qualifier was provided and val looks numeric - if ( extra === "" || extra ) { - num = parseFloat( val ); - return extra === true || isFinite( num ) ? num || 0 : val; - } - - return val; - } -} ); - -jQuery.each( [ "height", "width" ], function( _i, dimension ) { - jQuery.cssHooks[ dimension ] = { - get: function( elem, computed, extra ) { - if ( computed ) { - - // Certain elements can have dimension info if we invisibly show them - // but it must have a current display style that would benefit - return rdisplayswap.test( jQuery.css( elem, "display" ) ) && - - // Support: Safari 8+ - // Table columns in Safari have non-zero offsetWidth & zero - // getBoundingClientRect().width unless display is changed. - // Support: IE <=11 only - // Running getBoundingClientRect on a disconnected node - // in IE throws an error. - ( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ? - swap( elem, cssShow, function() { - return getWidthOrHeight( elem, dimension, extra ); - } ) : - getWidthOrHeight( elem, dimension, extra ); - } - }, - - set: function( elem, value, extra ) { - var matches, - styles = getStyles( elem ), - - // Only read styles.position if the test has a chance to fail - // to avoid forcing a reflow. - scrollboxSizeBuggy = !support.scrollboxSize() && - styles.position === "absolute", - - // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991) - boxSizingNeeded = scrollboxSizeBuggy || extra, - isBorderBox = boxSizingNeeded && - jQuery.css( elem, "boxSizing", false, styles ) === "border-box", - subtract = extra ? - boxModelAdjustment( - elem, - dimension, - extra, - isBorderBox, - styles - ) : - 0; - - // Account for unreliable border-box dimensions by comparing offset* to computed and - // faking a content-box to get border and padding (gh-3699) - if ( isBorderBox && scrollboxSizeBuggy ) { - subtract -= Math.ceil( - elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] - - parseFloat( styles[ dimension ] ) - - boxModelAdjustment( elem, dimension, "border", false, styles ) - - 0.5 - ); - } - - // Convert to pixels if value adjustment is needed - if ( subtract && ( matches = rcssNum.exec( value ) ) && - ( matches[ 3 ] || "px" ) !== "px" ) { - - elem.style[ dimension ] = value; - value = jQuery.css( elem, dimension ); - } - - return setPositiveNumber( elem, value, subtract ); - } - }; -} ); - -jQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft, - function( elem, computed ) { - if ( computed ) { - return ( parseFloat( curCSS( elem, "marginLeft" ) ) || - elem.getBoundingClientRect().left - - swap( elem, { marginLeft: 0 }, function() { - return elem.getBoundingClientRect().left; - } ) - ) + "px"; - } - } -); - -// These hooks are used by animate to expand properties -jQuery.each( { - margin: "", - padding: "", - border: "Width" -}, function( prefix, suffix ) { - jQuery.cssHooks[ prefix + suffix ] = { - expand: function( value ) { - var i = 0, - expanded = {}, - - // Assumes a single number if not a string - parts = typeof value === "string" ? value.split( " " ) : [ value ]; - - for ( ; i < 4; i++ ) { - expanded[ prefix + cssExpand[ i ] + suffix ] = - parts[ i ] || parts[ i - 2 ] || parts[ 0 ]; - } - - return expanded; - } - }; - - if ( prefix !== "margin" ) { - jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber; - } -} ); - -jQuery.fn.extend( { - css: function( name, value ) { - return access( this, function( elem, name, value ) { - var styles, len, - map = {}, - i = 0; - - if ( Array.isArray( name ) ) { - styles = getStyles( elem ); - len = name.length; - - for ( ; i < len; i++ ) { - map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles ); - } - - return map; - } - - return value !== undefined ? - jQuery.style( elem, name, value ) : - jQuery.css( elem, name ); - }, name, value, arguments.length > 1 ); - } -} ); - - -function Tween( elem, options, prop, end, easing ) { - return new Tween.prototype.init( elem, options, prop, end, easing ); -} -jQuery.Tween = Tween; - -Tween.prototype = { - constructor: Tween, - init: function( elem, options, prop, end, easing, unit ) { - this.elem = elem; - this.prop = prop; - this.easing = easing || jQuery.easing._default; - this.options = options; - this.start = this.now = this.cur(); - this.end = end; - this.unit = unit || ( jQuery.cssNumber[ prop ] ? "" : "px" ); - }, - cur: function() { - var hooks = Tween.propHooks[ this.prop ]; - - return hooks && hooks.get ? - hooks.get( this ) : - Tween.propHooks._default.get( this ); - }, - run: function( percent ) { - var eased, - hooks = Tween.propHooks[ this.prop ]; - - if ( this.options.duration ) { - this.pos = eased = jQuery.easing[ this.easing ]( - percent, this.options.duration * percent, 0, 1, this.options.duration - ); - } else { - this.pos = eased = percent; - } - this.now = ( this.end - this.start ) * eased + this.start; - - if ( this.options.step ) { - this.options.step.call( this.elem, this.now, this ); - } - - if ( hooks && hooks.set ) { - hooks.set( this ); - } else { - Tween.propHooks._default.set( this ); - } - return this; - } -}; - -Tween.prototype.init.prototype = Tween.prototype; - -Tween.propHooks = { - _default: { - get: function( tween ) { - var result; - - // Use a property on the element directly when it is not a DOM element, - // or when there is no matching style property that exists. - if ( tween.elem.nodeType !== 1 || - tween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) { - return tween.elem[ tween.prop ]; - } - - // Passing an empty string as a 3rd parameter to .css will automatically - // attempt a parseFloat and fallback to a string if the parse fails. - // Simple values such as "10px" are parsed to Float; - // complex values such as "rotate(1rad)" are returned as-is. - result = jQuery.css( tween.elem, tween.prop, "" ); - - // Empty strings, null, undefined and "auto" are converted to 0. - return !result || result === "auto" ? 0 : result; - }, - set: function( tween ) { - - // Use step hook for back compat. - // Use cssHook if its there. - // Use .style if available and use plain properties where available. - if ( jQuery.fx.step[ tween.prop ] ) { - jQuery.fx.step[ tween.prop ]( tween ); - } else if ( tween.elem.nodeType === 1 && ( - jQuery.cssHooks[ tween.prop ] || - tween.elem.style[ finalPropName( tween.prop ) ] != null ) ) { - jQuery.style( tween.elem, tween.prop, tween.now + tween.unit ); - } else { - tween.elem[ tween.prop ] = tween.now; - } - } - } -}; - -// Support: IE <=9 only -// Panic based approach to setting things on disconnected nodes -Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = { - set: function( tween ) { - if ( tween.elem.nodeType && tween.elem.parentNode ) { - tween.elem[ tween.prop ] = tween.now; - } - } -}; - -jQuery.easing = { - linear: function( p ) { - return p; - }, - swing: function( p ) { - return 0.5 - Math.cos( p * Math.PI ) / 2; - }, - _default: "swing" -}; - -jQuery.fx = Tween.prototype.init; - -// Back compat <1.8 extension point -jQuery.fx.step = {}; - - - - -var - fxNow, inProgress, - rfxtypes = /^(?:toggle|show|hide)$/, - rrun = /queueHooks$/; - -function schedule() { - if ( inProgress ) { - if ( document.hidden === false && window.requestAnimationFrame ) { - window.requestAnimationFrame( schedule ); - } else { - window.setTimeout( schedule, jQuery.fx.interval ); - } - - jQuery.fx.tick(); - } -} - -// Animations created synchronously will run synchronously -function createFxNow() { - window.setTimeout( function() { - fxNow = undefined; - } ); - return ( fxNow = Date.now() ); -} - -// Generate parameters to create a standard animation -function genFx( type, includeWidth ) { - var which, - i = 0, - attrs = { height: type }; - - // If we include width, step value is 1 to do all cssExpand values, - // otherwise step value is 2 to skip over Left and Right - includeWidth = includeWidth ? 1 : 0; - for ( ; i < 4; i += 2 - includeWidth ) { - which = cssExpand[ i ]; - attrs[ "margin" + which ] = attrs[ "padding" + which ] = type; - } - - if ( includeWidth ) { - attrs.opacity = attrs.width = type; - } - - return attrs; -} - -function createTween( value, prop, animation ) { - var tween, - collection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ "*" ] ), - index = 0, - length = collection.length; - for ( ; index < length; index++ ) { - if ( ( tween = collection[ index ].call( animation, prop, value ) ) ) { - - // We're done with this property - return tween; - } - } -} - -function defaultPrefilter( elem, props, opts ) { - var prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display, - isBox = "width" in props || "height" in props, - anim = this, - orig = {}, - style = elem.style, - hidden = elem.nodeType && isHiddenWithinTree( elem ), - dataShow = dataPriv.get( elem, "fxshow" ); - - // Queue-skipping animations hijack the fx hooks - if ( !opts.queue ) { - hooks = jQuery._queueHooks( elem, "fx" ); - if ( hooks.unqueued == null ) { - hooks.unqueued = 0; - oldfire = hooks.empty.fire; - hooks.empty.fire = function() { - if ( !hooks.unqueued ) { - oldfire(); - } - }; - } - hooks.unqueued++; - - anim.always( function() { - - // Ensure the complete handler is called before this completes - anim.always( function() { - hooks.unqueued--; - if ( !jQuery.queue( elem, "fx" ).length ) { - hooks.empty.fire(); - } - } ); - } ); - } - - // Detect show/hide animations - for ( prop in props ) { - value = props[ prop ]; - if ( rfxtypes.test( value ) ) { - delete props[ prop ]; - toggle = toggle || value === "toggle"; - if ( value === ( hidden ? "hide" : "show" ) ) { - - // Pretend to be hidden if this is a "show" and - // there is still data from a stopped show/hide - if ( value === "show" && dataShow && dataShow[ prop ] !== undefined ) { - hidden = true; - - // Ignore all other no-op show/hide data - } else { - continue; - } - } - orig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop ); - } - } - - // Bail out if this is a no-op like .hide().hide() - propTween = !jQuery.isEmptyObject( props ); - if ( !propTween && jQuery.isEmptyObject( orig ) ) { - return; - } - - // Restrict "overflow" and "display" styles during box animations - if ( isBox && elem.nodeType === 1 ) { - - // Support: IE <=9 - 11, Edge 12 - 15 - // Record all 3 overflow attributes because IE does not infer the shorthand - // from identically-valued overflowX and overflowY and Edge just mirrors - // the overflowX value there. - opts.overflow = [ style.overflow, style.overflowX, style.overflowY ]; - - // Identify a display type, preferring old show/hide data over the CSS cascade - restoreDisplay = dataShow && dataShow.display; - if ( restoreDisplay == null ) { - restoreDisplay = dataPriv.get( elem, "display" ); - } - display = jQuery.css( elem, "display" ); - if ( display === "none" ) { - if ( restoreDisplay ) { - display = restoreDisplay; - } else { - - // Get nonempty value(s) by temporarily forcing visibility - showHide( [ elem ], true ); - restoreDisplay = elem.style.display || restoreDisplay; - display = jQuery.css( elem, "display" ); - showHide( [ elem ] ); - } - } - - // Animate inline elements as inline-block - if ( display === "inline" || display === "inline-block" && restoreDisplay != null ) { - if ( jQuery.css( elem, "float" ) === "none" ) { - - // Restore the original display value at the end of pure show/hide animations - if ( !propTween ) { - anim.done( function() { - style.display = restoreDisplay; - } ); - if ( restoreDisplay == null ) { - display = style.display; - restoreDisplay = display === "none" ? "" : display; - } - } - style.display = "inline-block"; - } - } - } - - if ( opts.overflow ) { - style.overflow = "hidden"; - anim.always( function() { - style.overflow = opts.overflow[ 0 ]; - style.overflowX = opts.overflow[ 1 ]; - style.overflowY = opts.overflow[ 2 ]; - } ); - } - - // Implement show/hide animations - propTween = false; - for ( prop in orig ) { - - // General show/hide setup for this element animation - if ( !propTween ) { - if ( dataShow ) { - if ( "hidden" in dataShow ) { - hidden = dataShow.hidden; - } - } else { - dataShow = dataPriv.access( elem, "fxshow", { display: restoreDisplay } ); - } - - // Store hidden/visible for toggle so `.stop().toggle()` "reverses" - if ( toggle ) { - dataShow.hidden = !hidden; - } - - // Show elements before animating them - if ( hidden ) { - showHide( [ elem ], true ); - } - - /* eslint-disable no-loop-func */ - - anim.done( function() { - - /* eslint-enable no-loop-func */ - - // The final step of a "hide" animation is actually hiding the element - if ( !hidden ) { - showHide( [ elem ] ); - } - dataPriv.remove( elem, "fxshow" ); - for ( prop in orig ) { - jQuery.style( elem, prop, orig[ prop ] ); - } - } ); - } - - // Per-property setup - propTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim ); - if ( !( prop in dataShow ) ) { - dataShow[ prop ] = propTween.start; - if ( hidden ) { - propTween.end = propTween.start; - propTween.start = 0; - } - } - } -} - -function propFilter( props, specialEasing ) { - var index, name, easing, value, hooks; - - // camelCase, specialEasing and expand cssHook pass - for ( index in props ) { - name = camelCase( index ); - easing = specialEasing[ name ]; - value = props[ index ]; - if ( Array.isArray( value ) ) { - easing = value[ 1 ]; - value = props[ index ] = value[ 0 ]; - } - - if ( index !== name ) { - props[ name ] = value; - delete props[ index ]; - } - - hooks = jQuery.cssHooks[ name ]; - if ( hooks && "expand" in hooks ) { - value = hooks.expand( value ); - delete props[ name ]; - - // Not quite $.extend, this won't overwrite existing keys. - // Reusing 'index' because we have the correct "name" - for ( index in value ) { - if ( !( index in props ) ) { - props[ index ] = value[ index ]; - specialEasing[ index ] = easing; - } - } - } else { - specialEasing[ name ] = easing; - } - } -} - -function Animation( elem, properties, options ) { - var result, - stopped, - index = 0, - length = Animation.prefilters.length, - deferred = jQuery.Deferred().always( function() { - - // Don't match elem in the :animated selector - delete tick.elem; - } ), - tick = function() { - if ( stopped ) { - return false; - } - var currentTime = fxNow || createFxNow(), - remaining = Math.max( 0, animation.startTime + animation.duration - currentTime ), - - // Support: Android 2.3 only - // Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497) - temp = remaining / animation.duration || 0, - percent = 1 - temp, - index = 0, - length = animation.tweens.length; - - for ( ; index < length; index++ ) { - animation.tweens[ index ].run( percent ); - } - - deferred.notifyWith( elem, [ animation, percent, remaining ] ); - - // If there's more to do, yield - if ( percent < 1 && length ) { - return remaining; - } - - // If this was an empty animation, synthesize a final progress notification - if ( !length ) { - deferred.notifyWith( elem, [ animation, 1, 0 ] ); - } - - // Resolve the animation and report its conclusion - deferred.resolveWith( elem, [ animation ] ); - return false; - }, - animation = deferred.promise( { - elem: elem, - props: jQuery.extend( {}, properties ), - opts: jQuery.extend( true, { - specialEasing: {}, - easing: jQuery.easing._default - }, options ), - originalProperties: properties, - originalOptions: options, - startTime: fxNow || createFxNow(), - duration: options.duration, - tweens: [], - createTween: function( prop, end ) { - var tween = jQuery.Tween( elem, animation.opts, prop, end, - animation.opts.specialEasing[ prop ] || animation.opts.easing ); - animation.tweens.push( tween ); - return tween; - }, - stop: function( gotoEnd ) { - var index = 0, - - // If we are going to the end, we want to run all the tweens - // otherwise we skip this part - length = gotoEnd ? animation.tweens.length : 0; - if ( stopped ) { - return this; - } - stopped = true; - for ( ; index < length; index++ ) { - animation.tweens[ index ].run( 1 ); - } - - // Resolve when we played the last frame; otherwise, reject - if ( gotoEnd ) { - deferred.notifyWith( elem, [ animation, 1, 0 ] ); - deferred.resolveWith( elem, [ animation, gotoEnd ] ); - } else { - deferred.rejectWith( elem, [ animation, gotoEnd ] ); - } - return this; - } - } ), - props = animation.props; - - propFilter( props, animation.opts.specialEasing ); - - for ( ; index < length; index++ ) { - result = Animation.prefilters[ index ].call( animation, elem, props, animation.opts ); - if ( result ) { - if ( isFunction( result.stop ) ) { - jQuery._queueHooks( animation.elem, animation.opts.queue ).stop = - result.stop.bind( result ); - } - return result; - } - } - - jQuery.map( props, createTween, animation ); - - if ( isFunction( animation.opts.start ) ) { - animation.opts.start.call( elem, animation ); - } - - // Attach callbacks from options - animation - .progress( animation.opts.progress ) - .done( animation.opts.done, animation.opts.complete ) - .fail( animation.opts.fail ) - .always( animation.opts.always ); - - jQuery.fx.timer( - jQuery.extend( tick, { - elem: elem, - anim: animation, - queue: animation.opts.queue - } ) - ); - - return animation; -} - -jQuery.Animation = jQuery.extend( Animation, { - - tweeners: { - "*": [ function( prop, value ) { - var tween = this.createTween( prop, value ); - adjustCSS( tween.elem, prop, rcssNum.exec( value ), tween ); - return tween; - } ] - }, - - tweener: function( props, callback ) { - if ( isFunction( props ) ) { - callback = props; - props = [ "*" ]; - } else { - props = props.match( rnothtmlwhite ); - } - - var prop, - index = 0, - length = props.length; - - for ( ; index < length; index++ ) { - prop = props[ index ]; - Animation.tweeners[ prop ] = Animation.tweeners[ prop ] || []; - Animation.tweeners[ prop ].unshift( callback ); - } - }, - - prefilters: [ defaultPrefilter ], - - prefilter: function( callback, prepend ) { - if ( prepend ) { - Animation.prefilters.unshift( callback ); - } else { - Animation.prefilters.push( callback ); - } - } -} ); - -jQuery.speed = function( speed, easing, fn ) { - var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : { - complete: fn || !fn && easing || - isFunction( speed ) && speed, - duration: speed, - easing: fn && easing || easing && !isFunction( easing ) && easing - }; - - // Go to the end state if fx are off - if ( jQuery.fx.off ) { - opt.duration = 0; - - } else { - if ( typeof opt.duration !== "number" ) { - if ( opt.duration in jQuery.fx.speeds ) { - opt.duration = jQuery.fx.speeds[ opt.duration ]; - - } else { - opt.duration = jQuery.fx.speeds._default; - } - } - } - - // Normalize opt.queue - true/undefined/null -> "fx" - if ( opt.queue == null || opt.queue === true ) { - opt.queue = "fx"; - } - - // Queueing - opt.old = opt.complete; - - opt.complete = function() { - if ( isFunction( opt.old ) ) { - opt.old.call( this ); - } - - if ( opt.queue ) { - jQuery.dequeue( this, opt.queue ); - } - }; - - return opt; -}; - -jQuery.fn.extend( { - fadeTo: function( speed, to, easing, callback ) { - - // Show any hidden elements after setting opacity to 0 - return this.filter( isHiddenWithinTree ).css( "opacity", 0 ).show() - - // Animate to the value specified - .end().animate( { opacity: to }, speed, easing, callback ); - }, - animate: function( prop, speed, easing, callback ) { - var empty = jQuery.isEmptyObject( prop ), - optall = jQuery.speed( speed, easing, callback ), - doAnimation = function() { - - // Operate on a copy of prop so per-property easing won't be lost - var anim = Animation( this, jQuery.extend( {}, prop ), optall ); - - // Empty animations, or finishing resolves immediately - if ( empty || dataPriv.get( this, "finish" ) ) { - anim.stop( true ); - } - }; - doAnimation.finish = doAnimation; - - return empty || optall.queue === false ? - this.each( doAnimation ) : - this.queue( optall.queue, doAnimation ); - }, - stop: function( type, clearQueue, gotoEnd ) { - var stopQueue = function( hooks ) { - var stop = hooks.stop; - delete hooks.stop; - stop( gotoEnd ); - }; - - if ( typeof type !== "string" ) { - gotoEnd = clearQueue; - clearQueue = type; - type = undefined; - } - if ( clearQueue ) { - this.queue( type || "fx", [] ); - } - - return this.each( function() { - var dequeue = true, - index = type != null && type + "queueHooks", - timers = jQuery.timers, - data = dataPriv.get( this ); - - if ( index ) { - if ( data[ index ] && data[ index ].stop ) { - stopQueue( data[ index ] ); - } - } else { - for ( index in data ) { - if ( data[ index ] && data[ index ].stop && rrun.test( index ) ) { - stopQueue( data[ index ] ); - } - } - } - - for ( index = timers.length; index--; ) { - if ( timers[ index ].elem === this && - ( type == null || timers[ index ].queue === type ) ) { - - timers[ index ].anim.stop( gotoEnd ); - dequeue = false; - timers.splice( index, 1 ); - } - } - - // Start the next in the queue if the last step wasn't forced. - // Timers currently will call their complete callbacks, which - // will dequeue but only if they were gotoEnd. - if ( dequeue || !gotoEnd ) { - jQuery.dequeue( this, type ); - } - } ); - }, - finish: function( type ) { - if ( type !== false ) { - type = type || "fx"; - } - return this.each( function() { - var index, - data = dataPriv.get( this ), - queue = data[ type + "queue" ], - hooks = data[ type + "queueHooks" ], - timers = jQuery.timers, - length = queue ? queue.length : 0; - - // Enable finishing flag on private data - data.finish = true; - - // Empty the queue first - jQuery.queue( this, type, [] ); - - if ( hooks && hooks.stop ) { - hooks.stop.call( this, true ); - } - - // Look for any active animations, and finish them - for ( index = timers.length; index--; ) { - if ( timers[ index ].elem === this && timers[ index ].queue === type ) { - timers[ index ].anim.stop( true ); - timers.splice( index, 1 ); - } - } - - // Look for any animations in the old queue and finish them - for ( index = 0; index < length; index++ ) { - if ( queue[ index ] && queue[ index ].finish ) { - queue[ index ].finish.call( this ); - } - } - - // Turn off finishing flag - delete data.finish; - } ); - } -} ); - -jQuery.each( [ "toggle", "show", "hide" ], function( _i, name ) { - var cssFn = jQuery.fn[ name ]; - jQuery.fn[ name ] = function( speed, easing, callback ) { - return speed == null || typeof speed === "boolean" ? - cssFn.apply( this, arguments ) : - this.animate( genFx( name, true ), speed, easing, callback ); - }; -} ); - -// Generate shortcuts for custom animations -jQuery.each( { - slideDown: genFx( "show" ), - slideUp: genFx( "hide" ), - slideToggle: genFx( "toggle" ), - fadeIn: { opacity: "show" }, - fadeOut: { opacity: "hide" }, - fadeToggle: { opacity: "toggle" } -}, function( name, props ) { - jQuery.fn[ name ] = function( speed, easing, callback ) { - return this.animate( props, speed, easing, callback ); - }; -} ); - -jQuery.timers = []; -jQuery.fx.tick = function() { - var timer, - i = 0, - timers = jQuery.timers; - - fxNow = Date.now(); - - for ( ; i < timers.length; i++ ) { - timer = timers[ i ]; - - // Run the timer and safely remove it when done (allowing for external removal) - if ( !timer() && timers[ i ] === timer ) { - timers.splice( i--, 1 ); - } - } - - if ( !timers.length ) { - jQuery.fx.stop(); - } - fxNow = undefined; -}; - -jQuery.fx.timer = function( timer ) { - jQuery.timers.push( timer ); - jQuery.fx.start(); -}; - -jQuery.fx.interval = 13; -jQuery.fx.start = function() { - if ( inProgress ) { - return; - } - - inProgress = true; - schedule(); -}; - -jQuery.fx.stop = function() { - inProgress = null; -}; - -jQuery.fx.speeds = { - slow: 600, - fast: 200, - - // Default speed - _default: 400 -}; - - -// Based off of the plugin by Clint Helfers, with permission. -// https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/ -jQuery.fn.delay = function( time, type ) { - time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time; - type = type || "fx"; - - return this.queue( type, function( next, hooks ) { - var timeout = window.setTimeout( next, time ); - hooks.stop = function() { - window.clearTimeout( timeout ); - }; - } ); -}; - - -( function() { - var input = document.createElement( "input" ), - select = document.createElement( "select" ), - opt = select.appendChild( document.createElement( "option" ) ); - - input.type = "checkbox"; - - // Support: Android <=4.3 only - // Default value for a checkbox should be "on" - support.checkOn = input.value !== ""; - - // Support: IE <=11 only - // Must access selectedIndex to make default options select - support.optSelected = opt.selected; - - // Support: IE <=11 only - // An input loses its value after becoming a radio - input = document.createElement( "input" ); - input.value = "t"; - input.type = "radio"; - support.radioValue = input.value === "t"; -} )(); - - -var boolHook, - attrHandle = jQuery.expr.attrHandle; - -jQuery.fn.extend( { - attr: function( name, value ) { - return access( this, jQuery.attr, name, value, arguments.length > 1 ); - }, - - removeAttr: function( name ) { - return this.each( function() { - jQuery.removeAttr( this, name ); - } ); - } -} ); - -jQuery.extend( { - attr: function( elem, name, value ) { - var ret, hooks, - nType = elem.nodeType; - - // Don't get/set attributes on text, comment and attribute nodes - if ( nType === 3 || nType === 8 || nType === 2 ) { - return; - } - - // Fallback to prop when attributes are not supported - if ( typeof elem.getAttribute === "undefined" ) { - return jQuery.prop( elem, name, value ); - } - - // Attribute hooks are determined by the lowercase version - // Grab necessary hook if one is defined - if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { - hooks = jQuery.attrHooks[ name.toLowerCase() ] || - ( jQuery.expr.match.bool.test( name ) ? boolHook : undefined ); - } - - if ( value !== undefined ) { - if ( value === null ) { - jQuery.removeAttr( elem, name ); - return; - } - - if ( hooks && "set" in hooks && - ( ret = hooks.set( elem, value, name ) ) !== undefined ) { - return ret; - } - - elem.setAttribute( name, value + "" ); - return value; - } - - if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) { - return ret; - } - - ret = jQuery.find.attr( elem, name ); - - // Non-existent attributes return null, we normalize to undefined - return ret == null ? undefined : ret; - }, - - attrHooks: { - type: { - set: function( elem, value ) { - if ( !support.radioValue && value === "radio" && - nodeName( elem, "input" ) ) { - var val = elem.value; - elem.setAttribute( "type", value ); - if ( val ) { - elem.value = val; - } - return value; - } - } - } - }, - - removeAttr: function( elem, value ) { - var name, - i = 0, - - // Attribute names can contain non-HTML whitespace characters - // https://html.spec.whatwg.org/multipage/syntax.html#attributes-2 - attrNames = value && value.match( rnothtmlwhite ); - - if ( attrNames && elem.nodeType === 1 ) { - while ( ( name = attrNames[ i++ ] ) ) { - elem.removeAttribute( name ); - } - } - } -} ); - -// Hooks for boolean attributes -boolHook = { - set: function( elem, value, name ) { - if ( value === false ) { - - // Remove boolean attributes when set to false - jQuery.removeAttr( elem, name ); - } else { - elem.setAttribute( name, name ); - } - return name; - } -}; - -jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( _i, name ) { - var getter = attrHandle[ name ] || jQuery.find.attr; - - attrHandle[ name ] = function( elem, name, isXML ) { - var ret, handle, - lowercaseName = name.toLowerCase(); - - if ( !isXML ) { - - // Avoid an infinite loop by temporarily removing this function from the getter - handle = attrHandle[ lowercaseName ]; - attrHandle[ lowercaseName ] = ret; - ret = getter( elem, name, isXML ) != null ? - lowercaseName : - null; - attrHandle[ lowercaseName ] = handle; - } - return ret; - }; -} ); - - - - -var rfocusable = /^(?:input|select|textarea|button)$/i, - rclickable = /^(?:a|area)$/i; - -jQuery.fn.extend( { - prop: function( name, value ) { - return access( this, jQuery.prop, name, value, arguments.length > 1 ); - }, - - removeProp: function( name ) { - return this.each( function() { - delete this[ jQuery.propFix[ name ] || name ]; - } ); - } -} ); - -jQuery.extend( { - prop: function( elem, name, value ) { - var ret, hooks, - nType = elem.nodeType; - - // Don't get/set properties on text, comment and attribute nodes - if ( nType === 3 || nType === 8 || nType === 2 ) { - return; - } - - if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { - - // Fix name and attach hooks - name = jQuery.propFix[ name ] || name; - hooks = jQuery.propHooks[ name ]; - } - - if ( value !== undefined ) { - if ( hooks && "set" in hooks && - ( ret = hooks.set( elem, value, name ) ) !== undefined ) { - return ret; - } - - return ( elem[ name ] = value ); - } - - if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) { - return ret; - } - - return elem[ name ]; - }, - - propHooks: { - tabIndex: { - get: function( elem ) { - - // Support: IE <=9 - 11 only - // elem.tabIndex doesn't always return the - // correct value when it hasn't been explicitly set - // https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/ - // Use proper attribute retrieval(#12072) - var tabindex = jQuery.find.attr( elem, "tabindex" ); - - if ( tabindex ) { - return parseInt( tabindex, 10 ); - } - - if ( - rfocusable.test( elem.nodeName ) || - rclickable.test( elem.nodeName ) && - elem.href - ) { - return 0; - } - - return -1; - } - } - }, - - propFix: { - "for": "htmlFor", - "class": "className" - } -} ); - -// Support: IE <=11 only -// Accessing the selectedIndex property -// forces the browser to respect setting selected -// on the option -// The getter ensures a default option is selected -// when in an optgroup -// eslint rule "no-unused-expressions" is disabled for this code -// since it considers such accessions noop -if ( !support.optSelected ) { - jQuery.propHooks.selected = { - get: function( elem ) { - - /* eslint no-unused-expressions: "off" */ - - var parent = elem.parentNode; - if ( parent && parent.parentNode ) { - parent.parentNode.selectedIndex; - } - return null; - }, - set: function( elem ) { - - /* eslint no-unused-expressions: "off" */ - - var parent = elem.parentNode; - if ( parent ) { - parent.selectedIndex; - - if ( parent.parentNode ) { - parent.parentNode.selectedIndex; - } - } - } - }; -} - -jQuery.each( [ - "tabIndex", - "readOnly", - "maxLength", - "cellSpacing", - "cellPadding", - "rowSpan", - "colSpan", - "useMap", - "frameBorder", - "contentEditable" -], function() { - jQuery.propFix[ this.toLowerCase() ] = this; -} ); - - - - - // Strip and collapse whitespace according to HTML spec - // https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace - function stripAndCollapse( value ) { - var tokens = value.match( rnothtmlwhite ) || []; - return tokens.join( " " ); - } - - -function getClass( elem ) { - return elem.getAttribute && elem.getAttribute( "class" ) || ""; -} - -function classesToArray( value ) { - if ( Array.isArray( value ) ) { - return value; - } - if ( typeof value === "string" ) { - return value.match( rnothtmlwhite ) || []; - } - return []; -} - -jQuery.fn.extend( { - addClass: function( value ) { - var classes, elem, cur, curValue, clazz, j, finalValue, - i = 0; - - if ( isFunction( value ) ) { - return this.each( function( j ) { - jQuery( this ).addClass( value.call( this, j, getClass( this ) ) ); - } ); - } - - classes = classesToArray( value ); - - if ( classes.length ) { - while ( ( elem = this[ i++ ] ) ) { - curValue = getClass( elem ); - cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " ); - - if ( cur ) { - j = 0; - while ( ( clazz = classes[ j++ ] ) ) { - if ( cur.indexOf( " " + clazz + " " ) < 0 ) { - cur += clazz + " "; - } - } - - // Only assign if different to avoid unneeded rendering. - finalValue = stripAndCollapse( cur ); - if ( curValue !== finalValue ) { - elem.setAttribute( "class", finalValue ); - } - } - } - } - - return this; - }, - - removeClass: function( value ) { - var classes, elem, cur, curValue, clazz, j, finalValue, - i = 0; - - if ( isFunction( value ) ) { - return this.each( function( j ) { - jQuery( this ).removeClass( value.call( this, j, getClass( this ) ) ); - } ); - } - - if ( !arguments.length ) { - return this.attr( "class", "" ); - } - - classes = classesToArray( value ); - - if ( classes.length ) { - while ( ( elem = this[ i++ ] ) ) { - curValue = getClass( elem ); - - // This expression is here for better compressibility (see addClass) - cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " ); - - if ( cur ) { - j = 0; - while ( ( clazz = classes[ j++ ] ) ) { - - // Remove *all* instances - while ( cur.indexOf( " " + clazz + " " ) > -1 ) { - cur = cur.replace( " " + clazz + " ", " " ); - } - } - - // Only assign if different to avoid unneeded rendering. - finalValue = stripAndCollapse( cur ); - if ( curValue !== finalValue ) { - elem.setAttribute( "class", finalValue ); - } - } - } - } - - return this; - }, - - toggleClass: function( value, stateVal ) { - var type = typeof value, - isValidValue = type === "string" || Array.isArray( value ); - - if ( typeof stateVal === "boolean" && isValidValue ) { - return stateVal ? this.addClass( value ) : this.removeClass( value ); - } - - if ( isFunction( value ) ) { - return this.each( function( i ) { - jQuery( this ).toggleClass( - value.call( this, i, getClass( this ), stateVal ), - stateVal - ); - } ); - } - - return this.each( function() { - var className, i, self, classNames; - - if ( isValidValue ) { - - // Toggle individual class names - i = 0; - self = jQuery( this ); - classNames = classesToArray( value ); - - while ( ( className = classNames[ i++ ] ) ) { - - // Check each className given, space separated list - if ( self.hasClass( className ) ) { - self.removeClass( className ); - } else { - self.addClass( className ); - } - } - - // Toggle whole class name - } else if ( value === undefined || type === "boolean" ) { - className = getClass( this ); - if ( className ) { - - // Store className if set - dataPriv.set( this, "__className__", className ); - } - - // If the element has a class name or if we're passed `false`, - // then remove the whole classname (if there was one, the above saved it). - // Otherwise bring back whatever was previously saved (if anything), - // falling back to the empty string if nothing was stored. - if ( this.setAttribute ) { - this.setAttribute( "class", - className || value === false ? - "" : - dataPriv.get( this, "__className__" ) || "" - ); - } - } - } ); - }, - - hasClass: function( selector ) { - var className, elem, - i = 0; - - className = " " + selector + " "; - while ( ( elem = this[ i++ ] ) ) { - if ( elem.nodeType === 1 && - ( " " + stripAndCollapse( getClass( elem ) ) + " " ).indexOf( className ) > -1 ) { - return true; - } - } - - return false; - } -} ); - - - - -var rreturn = /\r/g; - -jQuery.fn.extend( { - val: function( value ) { - var hooks, ret, valueIsFunction, - elem = this[ 0 ]; - - if ( !arguments.length ) { - if ( elem ) { - hooks = jQuery.valHooks[ elem.type ] || - jQuery.valHooks[ elem.nodeName.toLowerCase() ]; - - if ( hooks && - "get" in hooks && - ( ret = hooks.get( elem, "value" ) ) !== undefined - ) { - return ret; - } - - ret = elem.value; - - // Handle most common string cases - if ( typeof ret === "string" ) { - return ret.replace( rreturn, "" ); - } - - // Handle cases where value is null/undef or number - return ret == null ? "" : ret; - } - - return; - } - - valueIsFunction = isFunction( value ); - - return this.each( function( i ) { - var val; - - if ( this.nodeType !== 1 ) { - return; - } - - if ( valueIsFunction ) { - val = value.call( this, i, jQuery( this ).val() ); - } else { - val = value; - } - - // Treat null/undefined as ""; convert numbers to string - if ( val == null ) { - val = ""; - - } else if ( typeof val === "number" ) { - val += ""; - - } else if ( Array.isArray( val ) ) { - val = jQuery.map( val, function( value ) { - return value == null ? "" : value + ""; - } ); - } - - hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ]; - - // If set returns undefined, fall back to normal setting - if ( !hooks || !( "set" in hooks ) || hooks.set( this, val, "value" ) === undefined ) { - this.value = val; - } - } ); - } -} ); - -jQuery.extend( { - valHooks: { - option: { - get: function( elem ) { - - var val = jQuery.find.attr( elem, "value" ); - return val != null ? - val : - - // Support: IE <=10 - 11 only - // option.text throws exceptions (#14686, #14858) - // Strip and collapse whitespace - // https://html.spec.whatwg.org/#strip-and-collapse-whitespace - stripAndCollapse( jQuery.text( elem ) ); - } - }, - select: { - get: function( elem ) { - var value, option, i, - options = elem.options, - index = elem.selectedIndex, - one = elem.type === "select-one", - values = one ? null : [], - max = one ? index + 1 : options.length; - - if ( index < 0 ) { - i = max; - - } else { - i = one ? index : 0; - } - - // Loop through all the selected options - for ( ; i < max; i++ ) { - option = options[ i ]; - - // Support: IE <=9 only - // IE8-9 doesn't update selected after form reset (#2551) - if ( ( option.selected || i === index ) && - - // Don't return options that are disabled or in a disabled optgroup - !option.disabled && - ( !option.parentNode.disabled || - !nodeName( option.parentNode, "optgroup" ) ) ) { - - // Get the specific value for the option - value = jQuery( option ).val(); - - // We don't need an array for one selects - if ( one ) { - return value; - } - - // Multi-Selects return an array - values.push( value ); - } - } - - return values; - }, - - set: function( elem, value ) { - var optionSet, option, - options = elem.options, - values = jQuery.makeArray( value ), - i = options.length; - - while ( i-- ) { - option = options[ i ]; - - /* eslint-disable no-cond-assign */ - - if ( option.selected = - jQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1 - ) { - optionSet = true; - } - - /* eslint-enable no-cond-assign */ - } - - // Force browsers to behave consistently when non-matching value is set - if ( !optionSet ) { - elem.selectedIndex = -1; - } - return values; - } - } - } -} ); - -// Radios and checkboxes getter/setter -jQuery.each( [ "radio", "checkbox" ], function() { - jQuery.valHooks[ this ] = { - set: function( elem, value ) { - if ( Array.isArray( value ) ) { - return ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 ); - } - } - }; - if ( !support.checkOn ) { - jQuery.valHooks[ this ].get = function( elem ) { - return elem.getAttribute( "value" ) === null ? "on" : elem.value; - }; - } -} ); - - - - -// Return jQuery for attributes-only inclusion - - -support.focusin = "onfocusin" in window; - - -var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/, - stopPropagationCallback = function( e ) { - e.stopPropagation(); - }; - -jQuery.extend( jQuery.event, { - - trigger: function( event, data, elem, onlyHandlers ) { - - var i, cur, tmp, bubbleType, ontype, handle, special, lastElement, - eventPath = [ elem || document ], - type = hasOwn.call( event, "type" ) ? event.type : event, - namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split( "." ) : []; - - cur = lastElement = tmp = elem = elem || document; - - // Don't do events on text and comment nodes - if ( elem.nodeType === 3 || elem.nodeType === 8 ) { - return; - } - - // focus/blur morphs to focusin/out; ensure we're not firing them right now - if ( rfocusMorph.test( type + jQuery.event.triggered ) ) { - return; - } - - if ( type.indexOf( "." ) > -1 ) { - - // Namespaced trigger; create a regexp to match event type in handle() - namespaces = type.split( "." ); - type = namespaces.shift(); - namespaces.sort(); - } - ontype = type.indexOf( ":" ) < 0 && "on" + type; - - // Caller can pass in a jQuery.Event object, Object, or just an event type string - event = event[ jQuery.expando ] ? - event : - new jQuery.Event( type, typeof event === "object" && event ); - - // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true) - event.isTrigger = onlyHandlers ? 2 : 3; - event.namespace = namespaces.join( "." ); - event.rnamespace = event.namespace ? - new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ) : - null; - - // Clean up the event in case it is being reused - event.result = undefined; - if ( !event.target ) { - event.target = elem; - } - - // Clone any incoming data and prepend the event, creating the handler arg list - data = data == null ? - [ event ] : - jQuery.makeArray( data, [ event ] ); - - // Allow special events to draw outside the lines - special = jQuery.event.special[ type ] || {}; - if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) { - return; - } - - // Determine event propagation path in advance, per W3C events spec (#9951) - // Bubble up to document, then to window; watch for a global ownerDocument var (#9724) - if ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) { - - bubbleType = special.delegateType || type; - if ( !rfocusMorph.test( bubbleType + type ) ) { - cur = cur.parentNode; - } - for ( ; cur; cur = cur.parentNode ) { - eventPath.push( cur ); - tmp = cur; - } - - // Only add window if we got to document (e.g., not plain obj or detached DOM) - if ( tmp === ( elem.ownerDocument || document ) ) { - eventPath.push( tmp.defaultView || tmp.parentWindow || window ); - } - } - - // Fire handlers on the event path - i = 0; - while ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) { - lastElement = cur; - event.type = i > 1 ? - bubbleType : - special.bindType || type; - - // jQuery handler - handle = ( - dataPriv.get( cur, "events" ) || Object.create( null ) - )[ event.type ] && - dataPriv.get( cur, "handle" ); - if ( handle ) { - handle.apply( cur, data ); - } - - // Native handler - handle = ontype && cur[ ontype ]; - if ( handle && handle.apply && acceptData( cur ) ) { - event.result = handle.apply( cur, data ); - if ( event.result === false ) { - event.preventDefault(); - } - } - } - event.type = type; - - // If nobody prevented the default action, do it now - if ( !onlyHandlers && !event.isDefaultPrevented() ) { - - if ( ( !special._default || - special._default.apply( eventPath.pop(), data ) === false ) && - acceptData( elem ) ) { - - // Call a native DOM method on the target with the same name as the event. - // Don't do default actions on window, that's where global variables be (#6170) - if ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) { - - // Don't re-trigger an onFOO event when we call its FOO() method - tmp = elem[ ontype ]; - - if ( tmp ) { - elem[ ontype ] = null; - } - - // Prevent re-triggering of the same event, since we already bubbled it above - jQuery.event.triggered = type; - - if ( event.isPropagationStopped() ) { - lastElement.addEventListener( type, stopPropagationCallback ); - } - - elem[ type ](); - - if ( event.isPropagationStopped() ) { - lastElement.removeEventListener( type, stopPropagationCallback ); - } - - jQuery.event.triggered = undefined; - - if ( tmp ) { - elem[ ontype ] = tmp; - } - } - } - } - - return event.result; - }, - - // Piggyback on a donor event to simulate a different one - // Used only for `focus(in | out)` events - simulate: function( type, elem, event ) { - var e = jQuery.extend( - new jQuery.Event(), - event, - { - type: type, - isSimulated: true - } - ); - - jQuery.event.trigger( e, null, elem ); - } - -} ); - -jQuery.fn.extend( { - - trigger: function( type, data ) { - return this.each( function() { - jQuery.event.trigger( type, data, this ); - } ); - }, - triggerHandler: function( type, data ) { - var elem = this[ 0 ]; - if ( elem ) { - return jQuery.event.trigger( type, data, elem, true ); - } - } -} ); - - -// Support: Firefox <=44 -// Firefox doesn't have focus(in | out) events -// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787 -// -// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1 -// focus(in | out) events fire after focus & blur events, -// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order -// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857 -if ( !support.focusin ) { - jQuery.each( { focus: "focusin", blur: "focusout" }, function( orig, fix ) { - - // Attach a single capturing handler on the document while someone wants focusin/focusout - var handler = function( event ) { - jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) ); - }; - - jQuery.event.special[ fix ] = { - setup: function() { - - // Handle: regular nodes (via `this.ownerDocument`), window - // (via `this.document`) & document (via `this`). - var doc = this.ownerDocument || this.document || this, - attaches = dataPriv.access( doc, fix ); - - if ( !attaches ) { - doc.addEventListener( orig, handler, true ); - } - dataPriv.access( doc, fix, ( attaches || 0 ) + 1 ); - }, - teardown: function() { - var doc = this.ownerDocument || this.document || this, - attaches = dataPriv.access( doc, fix ) - 1; - - if ( !attaches ) { - doc.removeEventListener( orig, handler, true ); - dataPriv.remove( doc, fix ); - - } else { - dataPriv.access( doc, fix, attaches ); - } - } - }; - } ); -} -var location = window.location; - -var nonce = { guid: Date.now() }; - -var rquery = ( /\?/ ); - - - -// Cross-browser xml parsing -jQuery.parseXML = function( data ) { - var xml; - if ( !data || typeof data !== "string" ) { - return null; - } - - // Support: IE 9 - 11 only - // IE throws on parseFromString with invalid input. - try { - xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" ); - } catch ( e ) { - xml = undefined; - } - - if ( !xml || xml.getElementsByTagName( "parsererror" ).length ) { - jQuery.error( "Invalid XML: " + data ); - } - return xml; -}; - - -var - rbracket = /\[\]$/, - rCRLF = /\r?\n/g, - rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i, - rsubmittable = /^(?:input|select|textarea|keygen)/i; - -function buildParams( prefix, obj, traditional, add ) { - var name; - - if ( Array.isArray( obj ) ) { - - // Serialize array item. - jQuery.each( obj, function( i, v ) { - if ( traditional || rbracket.test( prefix ) ) { - - // Treat each array item as a scalar. - add( prefix, v ); - - } else { - - // Item is non-scalar (array or object), encode its numeric index. - buildParams( - prefix + "[" + ( typeof v === "object" && v != null ? i : "" ) + "]", - v, - traditional, - add - ); - } - } ); - - } else if ( !traditional && toType( obj ) === "object" ) { - - // Serialize object item. - for ( name in obj ) { - buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add ); - } - - } else { - - // Serialize scalar item. - add( prefix, obj ); - } -} - -// Serialize an array of form elements or a set of -// key/values into a query string -jQuery.param = function( a, traditional ) { - var prefix, - s = [], - add = function( key, valueOrFunction ) { - - // If value is a function, invoke it and use its return value - var value = isFunction( valueOrFunction ) ? - valueOrFunction() : - valueOrFunction; - - s[ s.length ] = encodeURIComponent( key ) + "=" + - encodeURIComponent( value == null ? "" : value ); - }; - - if ( a == null ) { - return ""; - } - - // If an array was passed in, assume that it is an array of form elements. - if ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) { - - // Serialize the form elements - jQuery.each( a, function() { - add( this.name, this.value ); - } ); - - } else { - - // If traditional, encode the "old" way (the way 1.3.2 or older - // did it), otherwise encode params recursively. - for ( prefix in a ) { - buildParams( prefix, a[ prefix ], traditional, add ); - } - } - - // Return the resulting serialization - return s.join( "&" ); -}; - -jQuery.fn.extend( { - serialize: function() { - return jQuery.param( this.serializeArray() ); - }, - serializeArray: function() { - return this.map( function() { - - // Can add propHook for "elements" to filter or add form elements - var elements = jQuery.prop( this, "elements" ); - return elements ? jQuery.makeArray( elements ) : this; - } ) - .filter( function() { - var type = this.type; - - // Use .is( ":disabled" ) so that fieldset[disabled] works - return this.name && !jQuery( this ).is( ":disabled" ) && - rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) && - ( this.checked || !rcheckableType.test( type ) ); - } ) - .map( function( _i, elem ) { - var val = jQuery( this ).val(); - - if ( val == null ) { - return null; - } - - if ( Array.isArray( val ) ) { - return jQuery.map( val, function( val ) { - return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; - } ); - } - - return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; - } ).get(); - } -} ); - - -var - r20 = /%20/g, - rhash = /#.*$/, - rantiCache = /([?&])_=[^&]*/, - rheaders = /^(.*?):[ \t]*([^\r\n]*)$/mg, - - // #7653, #8125, #8152: local protocol detection - rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/, - rnoContent = /^(?:GET|HEAD)$/, - rprotocol = /^\/\//, - - /* Prefilters - * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example) - * 2) These are called: - * - BEFORE asking for a transport - * - AFTER param serialization (s.data is a string if s.processData is true) - * 3) key is the dataType - * 4) the catchall symbol "*" can be used - * 5) execution will start with transport dataType and THEN continue down to "*" if needed - */ - prefilters = {}, - - /* Transports bindings - * 1) key is the dataType - * 2) the catchall symbol "*" can be used - * 3) selection will start with transport dataType and THEN go to "*" if needed - */ - transports = {}, - - // Avoid comment-prolog char sequence (#10098); must appease lint and evade compression - allTypes = "*/".concat( "*" ), - - // Anchor tag for parsing the document origin - originAnchor = document.createElement( "a" ); - originAnchor.href = location.href; - -// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport -function addToPrefiltersOrTransports( structure ) { - - // dataTypeExpression is optional and defaults to "*" - return function( dataTypeExpression, func ) { - - if ( typeof dataTypeExpression !== "string" ) { - func = dataTypeExpression; - dataTypeExpression = "*"; - } - - var dataType, - i = 0, - dataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || []; - - if ( isFunction( func ) ) { - - // For each dataType in the dataTypeExpression - while ( ( dataType = dataTypes[ i++ ] ) ) { - - // Prepend if requested - if ( dataType[ 0 ] === "+" ) { - dataType = dataType.slice( 1 ) || "*"; - ( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func ); - - // Otherwise append - } else { - ( structure[ dataType ] = structure[ dataType ] || [] ).push( func ); - } - } - } - }; -} - -// Base inspection function for prefilters and transports -function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) { - - var inspected = {}, - seekingTransport = ( structure === transports ); - - function inspect( dataType ) { - var selected; - inspected[ dataType ] = true; - jQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) { - var dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR ); - if ( typeof dataTypeOrTransport === "string" && - !seekingTransport && !inspected[ dataTypeOrTransport ] ) { - - options.dataTypes.unshift( dataTypeOrTransport ); - inspect( dataTypeOrTransport ); - return false; - } else if ( seekingTransport ) { - return !( selected = dataTypeOrTransport ); - } - } ); - return selected; - } - - return inspect( options.dataTypes[ 0 ] ) || !inspected[ "*" ] && inspect( "*" ); -} - -// A special extend for ajax options -// that takes "flat" options (not to be deep extended) -// Fixes #9887 -function ajaxExtend( target, src ) { - var key, deep, - flatOptions = jQuery.ajaxSettings.flatOptions || {}; - - for ( key in src ) { - if ( src[ key ] !== undefined ) { - ( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ]; - } - } - if ( deep ) { - jQuery.extend( true, target, deep ); - } - - return target; -} - -/* Handles responses to an ajax request: - * - finds the right dataType (mediates between content-type and expected dataType) - * - returns the corresponding response - */ -function ajaxHandleResponses( s, jqXHR, responses ) { - - var ct, type, finalDataType, firstDataType, - contents = s.contents, - dataTypes = s.dataTypes; - - // Remove auto dataType and get content-type in the process - while ( dataTypes[ 0 ] === "*" ) { - dataTypes.shift(); - if ( ct === undefined ) { - ct = s.mimeType || jqXHR.getResponseHeader( "Content-Type" ); - } - } - - // Check if we're dealing with a known content-type - if ( ct ) { - for ( type in contents ) { - if ( contents[ type ] && contents[ type ].test( ct ) ) { - dataTypes.unshift( type ); - break; - } - } - } - - // Check to see if we have a response for the expected dataType - if ( dataTypes[ 0 ] in responses ) { - finalDataType = dataTypes[ 0 ]; - } else { - - // Try convertible dataTypes - for ( type in responses ) { - if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[ 0 ] ] ) { - finalDataType = type; - break; - } - if ( !firstDataType ) { - firstDataType = type; - } - } - - // Or just use first one - finalDataType = finalDataType || firstDataType; - } - - // If we found a dataType - // We add the dataType to the list if needed - // and return the corresponding response - if ( finalDataType ) { - if ( finalDataType !== dataTypes[ 0 ] ) { - dataTypes.unshift( finalDataType ); - } - return responses[ finalDataType ]; - } -} - -/* Chain conversions given the request and the original response - * Also sets the responseXXX fields on the jqXHR instance - */ -function ajaxConvert( s, response, jqXHR, isSuccess ) { - var conv2, current, conv, tmp, prev, - converters = {}, - - // Work with a copy of dataTypes in case we need to modify it for conversion - dataTypes = s.dataTypes.slice(); - - // Create converters map with lowercased keys - if ( dataTypes[ 1 ] ) { - for ( conv in s.converters ) { - converters[ conv.toLowerCase() ] = s.converters[ conv ]; - } - } - - current = dataTypes.shift(); - - // Convert to each sequential dataType - while ( current ) { - - if ( s.responseFields[ current ] ) { - jqXHR[ s.responseFields[ current ] ] = response; - } - - // Apply the dataFilter if provided - if ( !prev && isSuccess && s.dataFilter ) { - response = s.dataFilter( response, s.dataType ); - } - - prev = current; - current = dataTypes.shift(); - - if ( current ) { - - // There's only work to do if current dataType is non-auto - if ( current === "*" ) { - - current = prev; - - // Convert response if prev dataType is non-auto and differs from current - } else if ( prev !== "*" && prev !== current ) { - - // Seek a direct converter - conv = converters[ prev + " " + current ] || converters[ "* " + current ]; - - // If none found, seek a pair - if ( !conv ) { - for ( conv2 in converters ) { - - // If conv2 outputs current - tmp = conv2.split( " " ); - if ( tmp[ 1 ] === current ) { - - // If prev can be converted to accepted input - conv = converters[ prev + " " + tmp[ 0 ] ] || - converters[ "* " + tmp[ 0 ] ]; - if ( conv ) { - - // Condense equivalence converters - if ( conv === true ) { - conv = converters[ conv2 ]; - - // Otherwise, insert the intermediate dataType - } else if ( converters[ conv2 ] !== true ) { - current = tmp[ 0 ]; - dataTypes.unshift( tmp[ 1 ] ); - } - break; - } - } - } - } - - // Apply converter (if not an equivalence) - if ( conv !== true ) { - - // Unless errors are allowed to bubble, catch and return them - if ( conv && s.throws ) { - response = conv( response ); - } else { - try { - response = conv( response ); - } catch ( e ) { - return { - state: "parsererror", - error: conv ? e : "No conversion from " + prev + " to " + current - }; - } - } - } - } - } - } - - return { state: "success", data: response }; -} - -jQuery.extend( { - - // Counter for holding the number of active queries - active: 0, - - // Last-Modified header cache for next request - lastModified: {}, - etag: {}, - - ajaxSettings: { - url: location.href, - type: "GET", - isLocal: rlocalProtocol.test( location.protocol ), - global: true, - processData: true, - async: true, - contentType: "application/x-www-form-urlencoded; charset=UTF-8", - - /* - timeout: 0, - data: null, - dataType: null, - username: null, - password: null, - cache: null, - throws: false, - traditional: false, - headers: {}, - */ - - accepts: { - "*": allTypes, - text: "text/plain", - html: "text/html", - xml: "application/xml, text/xml", - json: "application/json, text/javascript" - }, - - contents: { - xml: /\bxml\b/, - html: /\bhtml/, - json: /\bjson\b/ - }, - - responseFields: { - xml: "responseXML", - text: "responseText", - json: "responseJSON" - }, - - // Data converters - // Keys separate source (or catchall "*") and destination types with a single space - converters: { - - // Convert anything to text - "* text": String, - - // Text to html (true = no transformation) - "text html": true, - - // Evaluate text as a json expression - "text json": JSON.parse, - - // Parse text as xml - "text xml": jQuery.parseXML - }, - - // For options that shouldn't be deep extended: - // you can add your own custom options here if - // and when you create one that shouldn't be - // deep extended (see ajaxExtend) - flatOptions: { - url: true, - context: true - } - }, - - // Creates a full fledged settings object into target - // with both ajaxSettings and settings fields. - // If target is omitted, writes into ajaxSettings. - ajaxSetup: function( target, settings ) { - return settings ? - - // Building a settings object - ajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) : - - // Extending ajaxSettings - ajaxExtend( jQuery.ajaxSettings, target ); - }, - - ajaxPrefilter: addToPrefiltersOrTransports( prefilters ), - ajaxTransport: addToPrefiltersOrTransports( transports ), - - // Main method - ajax: function( url, options ) { - - // If url is an object, simulate pre-1.5 signature - if ( typeof url === "object" ) { - options = url; - url = undefined; - } - - // Force options to be an object - options = options || {}; - - var transport, - - // URL without anti-cache param - cacheURL, - - // Response headers - responseHeadersString, - responseHeaders, - - // timeout handle - timeoutTimer, - - // Url cleanup var - urlAnchor, - - // Request state (becomes false upon send and true upon completion) - completed, - - // To know if global events are to be dispatched - fireGlobals, - - // Loop variable - i, - - // uncached part of the url - uncached, - - // Create the final options object - s = jQuery.ajaxSetup( {}, options ), - - // Callbacks context - callbackContext = s.context || s, - - // Context for global events is callbackContext if it is a DOM node or jQuery collection - globalEventContext = s.context && - ( callbackContext.nodeType || callbackContext.jquery ) ? - jQuery( callbackContext ) : - jQuery.event, - - // Deferreds - deferred = jQuery.Deferred(), - completeDeferred = jQuery.Callbacks( "once memory" ), - - // Status-dependent callbacks - statusCode = s.statusCode || {}, - - // Headers (they are sent all at once) - requestHeaders = {}, - requestHeadersNames = {}, - - // Default abort message - strAbort = "canceled", - - // Fake xhr - jqXHR = { - readyState: 0, - - // Builds headers hashtable if needed - getResponseHeader: function( key ) { - var match; - if ( completed ) { - if ( !responseHeaders ) { - responseHeaders = {}; - while ( ( match = rheaders.exec( responseHeadersString ) ) ) { - responseHeaders[ match[ 1 ].toLowerCase() + " " ] = - ( responseHeaders[ match[ 1 ].toLowerCase() + " " ] || [] ) - .concat( match[ 2 ] ); - } - } - match = responseHeaders[ key.toLowerCase() + " " ]; - } - return match == null ? null : match.join( ", " ); - }, - - // Raw string - getAllResponseHeaders: function() { - return completed ? responseHeadersString : null; - }, - - // Caches the header - setRequestHeader: function( name, value ) { - if ( completed == null ) { - name = requestHeadersNames[ name.toLowerCase() ] = - requestHeadersNames[ name.toLowerCase() ] || name; - requestHeaders[ name ] = value; - } - return this; - }, - - // Overrides response content-type header - overrideMimeType: function( type ) { - if ( completed == null ) { - s.mimeType = type; - } - return this; - }, - - // Status-dependent callbacks - statusCode: function( map ) { - var code; - if ( map ) { - if ( completed ) { - - // Execute the appropriate callbacks - jqXHR.always( map[ jqXHR.status ] ); - } else { - - // Lazy-add the new callbacks in a way that preserves old ones - for ( code in map ) { - statusCode[ code ] = [ statusCode[ code ], map[ code ] ]; - } - } - } - return this; - }, - - // Cancel the request - abort: function( statusText ) { - var finalText = statusText || strAbort; - if ( transport ) { - transport.abort( finalText ); - } - done( 0, finalText ); - return this; - } - }; - - // Attach deferreds - deferred.promise( jqXHR ); - - // Add protocol if not provided (prefilters might expect it) - // Handle falsy url in the settings object (#10093: consistency with old signature) - // We also use the url parameter if available - s.url = ( ( url || s.url || location.href ) + "" ) - .replace( rprotocol, location.protocol + "//" ); - - // Alias method option to type as per ticket #12004 - s.type = options.method || options.type || s.method || s.type; - - // Extract dataTypes list - s.dataTypes = ( s.dataType || "*" ).toLowerCase().match( rnothtmlwhite ) || [ "" ]; - - // A cross-domain request is in order when the origin doesn't match the current origin. - if ( s.crossDomain == null ) { - urlAnchor = document.createElement( "a" ); - - // Support: IE <=8 - 11, Edge 12 - 15 - // IE throws exception on accessing the href property if url is malformed, - // e.g. http://example.com:80x/ - try { - urlAnchor.href = s.url; - - // Support: IE <=8 - 11 only - // Anchor's host property isn't correctly set when s.url is relative - urlAnchor.href = urlAnchor.href; - s.crossDomain = originAnchor.protocol + "//" + originAnchor.host !== - urlAnchor.protocol + "//" + urlAnchor.host; - } catch ( e ) { - - // If there is an error parsing the URL, assume it is crossDomain, - // it can be rejected by the transport if it is invalid - s.crossDomain = true; - } - } - - // Convert data if not already a string - if ( s.data && s.processData && typeof s.data !== "string" ) { - s.data = jQuery.param( s.data, s.traditional ); - } - - // Apply prefilters - inspectPrefiltersOrTransports( prefilters, s, options, jqXHR ); - - // If request was aborted inside a prefilter, stop there - if ( completed ) { - return jqXHR; - } - - // We can fire global events as of now if asked to - // Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118) - fireGlobals = jQuery.event && s.global; - - // Watch for a new set of requests - if ( fireGlobals && jQuery.active++ === 0 ) { - jQuery.event.trigger( "ajaxStart" ); - } - - // Uppercase the type - s.type = s.type.toUpperCase(); - - // Determine if request has content - s.hasContent = !rnoContent.test( s.type ); - - // Save the URL in case we're toying with the If-Modified-Since - // and/or If-None-Match header later on - // Remove hash to simplify url manipulation - cacheURL = s.url.replace( rhash, "" ); - - // More options handling for requests with no content - if ( !s.hasContent ) { - - // Remember the hash so we can put it back - uncached = s.url.slice( cacheURL.length ); - - // If data is available and should be processed, append data to url - if ( s.data && ( s.processData || typeof s.data === "string" ) ) { - cacheURL += ( rquery.test( cacheURL ) ? "&" : "?" ) + s.data; - - // #9682: remove data so that it's not used in an eventual retry - delete s.data; - } - - // Add or update anti-cache param if needed - if ( s.cache === false ) { - cacheURL = cacheURL.replace( rantiCache, "$1" ); - uncached = ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + ( nonce.guid++ ) + - uncached; - } - - // Put hash and anti-cache on the URL that will be requested (gh-1732) - s.url = cacheURL + uncached; - - // Change '%20' to '+' if this is encoded form body content (gh-2658) - } else if ( s.data && s.processData && - ( s.contentType || "" ).indexOf( "application/x-www-form-urlencoded" ) === 0 ) { - s.data = s.data.replace( r20, "+" ); - } - - // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. - if ( s.ifModified ) { - if ( jQuery.lastModified[ cacheURL ] ) { - jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ cacheURL ] ); - } - if ( jQuery.etag[ cacheURL ] ) { - jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ cacheURL ] ); - } - } - - // Set the correct header, if data is being sent - if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) { - jqXHR.setRequestHeader( "Content-Type", s.contentType ); - } - - // Set the Accepts header for the server, depending on the dataType - jqXHR.setRequestHeader( - "Accept", - s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ? - s.accepts[ s.dataTypes[ 0 ] ] + - ( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) : - s.accepts[ "*" ] - ); - - // Check for headers option - for ( i in s.headers ) { - jqXHR.setRequestHeader( i, s.headers[ i ] ); - } - - // Allow custom headers/mimetypes and early abort - if ( s.beforeSend && - ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) { - - // Abort if not done already and return - return jqXHR.abort(); - } - - // Aborting is no longer a cancellation - strAbort = "abort"; - - // Install callbacks on deferreds - completeDeferred.add( s.complete ); - jqXHR.done( s.success ); - jqXHR.fail( s.error ); - - // Get transport - transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR ); - - // If no transport, we auto-abort - if ( !transport ) { - done( -1, "No Transport" ); - } else { - jqXHR.readyState = 1; - - // Send global event - if ( fireGlobals ) { - globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] ); - } - - // If request was aborted inside ajaxSend, stop there - if ( completed ) { - return jqXHR; - } - - // Timeout - if ( s.async && s.timeout > 0 ) { - timeoutTimer = window.setTimeout( function() { - jqXHR.abort( "timeout" ); - }, s.timeout ); - } - - try { - completed = false; - transport.send( requestHeaders, done ); - } catch ( e ) { - - // Rethrow post-completion exceptions - if ( completed ) { - throw e; - } - - // Propagate others as results - done( -1, e ); - } - } - - // Callback for when everything is done - function done( status, nativeStatusText, responses, headers ) { - var isSuccess, success, error, response, modified, - statusText = nativeStatusText; - - // Ignore repeat invocations - if ( completed ) { - return; - } - - completed = true; - - // Clear timeout if it exists - if ( timeoutTimer ) { - window.clearTimeout( timeoutTimer ); - } - - // Dereference transport for early garbage collection - // (no matter how long the jqXHR object will be used) - transport = undefined; - - // Cache response headers - responseHeadersString = headers || ""; - - // Set readyState - jqXHR.readyState = status > 0 ? 4 : 0; - - // Determine if successful - isSuccess = status >= 200 && status < 300 || status === 304; - - // Get response data - if ( responses ) { - response = ajaxHandleResponses( s, jqXHR, responses ); - } - - // Use a noop converter for missing script - if ( !isSuccess && jQuery.inArray( "script", s.dataTypes ) > -1 ) { - s.converters[ "text script" ] = function() {}; - } - - // Convert no matter what (that way responseXXX fields are always set) - response = ajaxConvert( s, response, jqXHR, isSuccess ); - - // If successful, handle type chaining - if ( isSuccess ) { - - // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. - if ( s.ifModified ) { - modified = jqXHR.getResponseHeader( "Last-Modified" ); - if ( modified ) { - jQuery.lastModified[ cacheURL ] = modified; - } - modified = jqXHR.getResponseHeader( "etag" ); - if ( modified ) { - jQuery.etag[ cacheURL ] = modified; - } - } - - // if no content - if ( status === 204 || s.type === "HEAD" ) { - statusText = "nocontent"; - - // if not modified - } else if ( status === 304 ) { - statusText = "notmodified"; - - // If we have data, let's convert it - } else { - statusText = response.state; - success = response.data; - error = response.error; - isSuccess = !error; - } - } else { - - // Extract error from statusText and normalize for non-aborts - error = statusText; - if ( status || !statusText ) { - statusText = "error"; - if ( status < 0 ) { - status = 0; - } - } - } - - // Set data for the fake xhr object - jqXHR.status = status; - jqXHR.statusText = ( nativeStatusText || statusText ) + ""; - - // Success/Error - if ( isSuccess ) { - deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] ); - } else { - deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] ); - } - - // Status-dependent callbacks - jqXHR.statusCode( statusCode ); - statusCode = undefined; - - if ( fireGlobals ) { - globalEventContext.trigger( isSuccess ? "ajaxSuccess" : "ajaxError", - [ jqXHR, s, isSuccess ? success : error ] ); - } - - // Complete - completeDeferred.fireWith( callbackContext, [ jqXHR, statusText ] ); - - if ( fireGlobals ) { - globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] ); - - // Handle the global AJAX counter - if ( !( --jQuery.active ) ) { - jQuery.event.trigger( "ajaxStop" ); - } - } - } - - return jqXHR; - }, - - getJSON: function( url, data, callback ) { - return jQuery.get( url, data, callback, "json" ); - }, - - getScript: function( url, callback ) { - return jQuery.get( url, undefined, callback, "script" ); - } -} ); - -jQuery.each( [ "get", "post" ], function( _i, method ) { - jQuery[ method ] = function( url, data, callback, type ) { - - // Shift arguments if data argument was omitted - if ( isFunction( data ) ) { - type = type || callback; - callback = data; - data = undefined; - } - - // The url can be an options object (which then must have .url) - return jQuery.ajax( jQuery.extend( { - url: url, - type: method, - dataType: type, - data: data, - success: callback - }, jQuery.isPlainObject( url ) && url ) ); - }; -} ); - -jQuery.ajaxPrefilter( function( s ) { - var i; - for ( i in s.headers ) { - if ( i.toLowerCase() === "content-type" ) { - s.contentType = s.headers[ i ] || ""; - } - } -} ); - - -jQuery._evalUrl = function( url, options, doc ) { - return jQuery.ajax( { - url: url, - - // Make this explicit, since user can override this through ajaxSetup (#11264) - type: "GET", - dataType: "script", - cache: true, - async: false, - global: false, - - // Only evaluate the response if it is successful (gh-4126) - // dataFilter is not invoked for failure responses, so using it instead - // of the default converter is kludgy but it works. - converters: { - "text script": function() {} - }, - dataFilter: function( response ) { - jQuery.globalEval( response, options, doc ); - } - } ); -}; - - -jQuery.fn.extend( { - wrapAll: function( html ) { - var wrap; - - if ( this[ 0 ] ) { - if ( isFunction( html ) ) { - html = html.call( this[ 0 ] ); - } - - // The elements to wrap the target around - wrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true ); - - if ( this[ 0 ].parentNode ) { - wrap.insertBefore( this[ 0 ] ); - } - - wrap.map( function() { - var elem = this; - - while ( elem.firstElementChild ) { - elem = elem.firstElementChild; - } - - return elem; - } ).append( this ); - } - - return this; - }, - - wrapInner: function( html ) { - if ( isFunction( html ) ) { - return this.each( function( i ) { - jQuery( this ).wrapInner( html.call( this, i ) ); - } ); - } - - return this.each( function() { - var self = jQuery( this ), - contents = self.contents(); - - if ( contents.length ) { - contents.wrapAll( html ); - - } else { - self.append( html ); - } - } ); - }, - - wrap: function( html ) { - var htmlIsFunction = isFunction( html ); - - return this.each( function( i ) { - jQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html ); - } ); - }, - - unwrap: function( selector ) { - this.parent( selector ).not( "body" ).each( function() { - jQuery( this ).replaceWith( this.childNodes ); - } ); - return this; - } -} ); - - -jQuery.expr.pseudos.hidden = function( elem ) { - return !jQuery.expr.pseudos.visible( elem ); -}; -jQuery.expr.pseudos.visible = function( elem ) { - return !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length ); -}; - - - - -jQuery.ajaxSettings.xhr = function() { - try { - return new window.XMLHttpRequest(); - } catch ( e ) {} -}; - -var xhrSuccessStatus = { - - // File protocol always yields status code 0, assume 200 - 0: 200, - - // Support: IE <=9 only - // #1450: sometimes IE returns 1223 when it should be 204 - 1223: 204 - }, - xhrSupported = jQuery.ajaxSettings.xhr(); - -support.cors = !!xhrSupported && ( "withCredentials" in xhrSupported ); -support.ajax = xhrSupported = !!xhrSupported; - -jQuery.ajaxTransport( function( options ) { - var callback, errorCallback; - - // Cross domain only allowed if supported through XMLHttpRequest - if ( support.cors || xhrSupported && !options.crossDomain ) { - return { - send: function( headers, complete ) { - var i, - xhr = options.xhr(); - - xhr.open( - options.type, - options.url, - options.async, - options.username, - options.password - ); - - // Apply custom fields if provided - if ( options.xhrFields ) { - for ( i in options.xhrFields ) { - xhr[ i ] = options.xhrFields[ i ]; - } - } - - // Override mime type if needed - if ( options.mimeType && xhr.overrideMimeType ) { - xhr.overrideMimeType( options.mimeType ); - } - - // X-Requested-With header - // For cross-domain requests, seeing as conditions for a preflight are - // akin to a jigsaw puzzle, we simply never set it to be sure. - // (it can always be set on a per-request basis or even using ajaxSetup) - // For same-domain requests, won't change header if already provided. - if ( !options.crossDomain && !headers[ "X-Requested-With" ] ) { - headers[ "X-Requested-With" ] = "XMLHttpRequest"; - } - - // Set headers - for ( i in headers ) { - xhr.setRequestHeader( i, headers[ i ] ); - } - - // Callback - callback = function( type ) { - return function() { - if ( callback ) { - callback = errorCallback = xhr.onload = - xhr.onerror = xhr.onabort = xhr.ontimeout = - xhr.onreadystatechange = null; - - if ( type === "abort" ) { - xhr.abort(); - } else if ( type === "error" ) { - - // Support: IE <=9 only - // On a manual native abort, IE9 throws - // errors on any property access that is not readyState - if ( typeof xhr.status !== "number" ) { - complete( 0, "error" ); - } else { - complete( - - // File: protocol always yields status 0; see #8605, #14207 - xhr.status, - xhr.statusText - ); - } - } else { - complete( - xhrSuccessStatus[ xhr.status ] || xhr.status, - xhr.statusText, - - // Support: IE <=9 only - // IE9 has no XHR2 but throws on binary (trac-11426) - // For XHR2 non-text, let the caller handle it (gh-2498) - ( xhr.responseType || "text" ) !== "text" || - typeof xhr.responseText !== "string" ? - { binary: xhr.response } : - { text: xhr.responseText }, - xhr.getAllResponseHeaders() - ); - } - } - }; - }; - - // Listen to events - xhr.onload = callback(); - errorCallback = xhr.onerror = xhr.ontimeout = callback( "error" ); - - // Support: IE 9 only - // Use onreadystatechange to replace onabort - // to handle uncaught aborts - if ( xhr.onabort !== undefined ) { - xhr.onabort = errorCallback; - } else { - xhr.onreadystatechange = function() { - - // Check readyState before timeout as it changes - if ( xhr.readyState === 4 ) { - - // Allow onerror to be called first, - // but that will not handle a native abort - // Also, save errorCallback to a variable - // as xhr.onerror cannot be accessed - window.setTimeout( function() { - if ( callback ) { - errorCallback(); - } - } ); - } - }; - } - - // Create the abort callback - callback = callback( "abort" ); - - try { - - // Do send the request (this may raise an exception) - xhr.send( options.hasContent && options.data || null ); - } catch ( e ) { - - // #14683: Only rethrow if this hasn't been notified as an error yet - if ( callback ) { - throw e; - } - } - }, - - abort: function() { - if ( callback ) { - callback(); - } - } - }; - } -} ); - - - - -// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432) -jQuery.ajaxPrefilter( function( s ) { - if ( s.crossDomain ) { - s.contents.script = false; - } -} ); - -// Install script dataType -jQuery.ajaxSetup( { - accepts: { - script: "text/javascript, application/javascript, " + - "application/ecmascript, application/x-ecmascript" - }, - contents: { - script: /\b(?:java|ecma)script\b/ - }, - converters: { - "text script": function( text ) { - jQuery.globalEval( text ); - return text; - } - } -} ); - -// Handle cache's special case and crossDomain -jQuery.ajaxPrefilter( "script", function( s ) { - if ( s.cache === undefined ) { - s.cache = false; - } - if ( s.crossDomain ) { - s.type = "GET"; - } -} ); - -// Bind script tag hack transport -jQuery.ajaxTransport( "script", function( s ) { - - // This transport only deals with cross domain or forced-by-attrs requests - if ( s.crossDomain || s.scriptAttrs ) { - var script, callback; - return { - send: function( _, complete ) { - script = jQuery( " - - - - - - - - - - - - -
-
-
-
- -
-

Exporting Projects

-

The novelWriter project can be exported in various formats using the build tool available from Project ‣ Build Project or by pressing F5.

-
-

Header Formatting

-

The titles for the four levels of story structure can be formatted collectively in the export tool. -This is done through a series of keyword–replace steps.

-

The keyword %title% will always be replaced by the text you put after the # characters in your document.

-

The keywords %ch% and %chw% is replaced by a number, or a number word, respectively. -The number is incremented by one each time the build tool sees a new heading of level two in a file with layout “Chapter”. -If the file has layout “Unnumbered”, the counter is not incremented. -The latter is useful for for instance Prologue and Epilogue chapters.

-

Likewise, the keywords %sc% and %sca% are number counters for scene files. -These are incremented each time a heading of level three is encountered. -The former keyword is reset to one for each new chapter, while the latter is not reset but counts from first scene encountered in the project.

-

If you want to insert a line break in your title format, add two backslashes \\.

-
-

Note

-

Header formatting only applies to novel files. -Headings in note files will will be left as-is, but heading levels 1 through 4 are converted to the correct heading level in the respective output formats.

-
-
-
-

Scene Separators

-

If you don’t want any titles for your scenes (and for your sections if you have them), you can leave the boxes empty, and an empty paragraph will be inserted between the scenes or sections instead. -Alternatively, if you want a separator between them, like the common “***”, you can also enter that in the box. -In fact, if the format is a piece of static text, it will always be treated as a separator.

-
-
-

File Selection

-

Which files are selected for export can be controlled from the options on the left side of the dialog window. -The switch for “Include novel files” will select any file that isn’t classified as a note. -That is, files with layout “Book”, “Page”, “Partition”, “Chapet”, “Unnumbered”, or “Scene”. -The switch for “Include note files” will select any file that is a note. -That is, files with layout “Note”. -This is allows for exporting just the novel, just your notes, or both, as you see fit.

-

In addition, you can select to export the synopsis comments, regular comments, keywords, and even exclude the body text itself. -If you for instance want to export a document with an outline of the novel, you can enable keywords and synopsis export and disable body text, thus getting a document with each heading followed by the tags and references and the synopsis.

-

If you need to exclude specific files from your exports, like draft files or files you want to take out of your build, but don’t want to delete, you can uncheck the “Include when building project” option for each file in the project tree. -An included file has a checkmark after the status icon in the “Flags” column. -The “Build Novel Project” tool has a switch to ignore this flag if you need to collectively override these settings.

-
-
-

Export Formats

-

Currently, six formats are supported for exporting.

-
-

OpenDocument Format

-

This is produces an open document .odt file. -The document produced has very little formatting, and may require further editing afterwards. -For a better formatted office document, you may get a better result with exporting to HTML and the import that HTML document in your office word processor.

-
-
-

PDF Format

-

The PDF export is just a shortcut for print to file.

-
-
-

novelWriter HTML

-

The HTML export format writes a single .htm file with minimal style formatting. -The exported HTML file is suitable for further processing by document conversion tools like Pandoc, for importing in word processors, or for printing from browser.

-
-
-

novelWriter Markdown

-

This is simply a concatenation of the files selected by the filters. -The files in the project are stacked together in the order they appear in the tree view, with comments, tags, etc. included if they are selected. -This is a useful format for exporting the project for later import back into novelWriter.

-
-
-

Standard Markdown

-

If you have Qt 5.14 or higher, the option to export to plain Markdown is available. -This feature uses Qt’s own Markdown export feature.

-
-
-

Plain Text

-

The plain text export format writes a simple .txt file without any formatting at all.

-
-
-
- - -
-
-
- -
-
- - - - \ No newline at end of file diff --git a/docs/source/_build/html/genindex.html b/docs/source/_build/html/genindex.html deleted file mode 100644 index 257c7363..00000000 --- a/docs/source/_build/html/genindex.html +++ /dev/null @@ -1,77 +0,0 @@ - - - - - - - - Index — novelWriter 0.6.1 documentation - - - - - - - - - - - - - - -
-
-
-
- - -

Index

- -
- -
- - -
-
-
- -
-
- - - - \ No newline at end of file diff --git a/docs/source/_build/html/index.html b/docs/source/_build/html/index.html deleted file mode 100644 index 04dca25c..00000000 --- a/docs/source/_build/html/index.html +++ /dev/null @@ -1,150 +0,0 @@ - - - - - - - Welcome to novelWriter Documentation — novelWriter 0.6.1 documentation - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/docs/source/_build/html/interface.html b/docs/source/_build/html/interface.html deleted file mode 100644 index ce3f93c9..00000000 --- a/docs/source/_build/html/interface.html +++ /dev/null @@ -1,418 +0,0 @@ - - - - - - - User Interface — novelWriter 0.6.1 documentation - - - - - - - - - - - - - - - - -
-
-
-
- -
-

User Interface

-

The user interface is kept as simple as possible to avoid distractions when writing. -The main window contains a tree view pane with the entire structure of the project, and a small details panel below it to display additional information about the currently selected item.

-

Editing a document can be done by either double-clicking on it, or hitting the return key when a file is selected. -This will open the document editor, which uses a simplified markdown format, described in the section below.

-

The document currently being edited can also be viewed in parallel in a right hand side view pane. -To view a document, simply press Ctrl-R, or select a file and go to Document ‣ View Document in the menu. -The document viewed does not need to be the same document currently being edited. -If you are viewing the same document as the one you’re editing, pressing Ctrl-R again will update the document with your last changes.

-

References to tags can be opened in the view pane from the document editor by moving the cursor to a reference to a tag and hitting Ctrl-Enter. -In the view panel, the references become clickable links, and the “Referenced By” panel at the bottom will show links to all documents referring back to it.

-
-

Note

-

The “Referenced By” panel relies on an up-to-date index of the project. -If anything is missing, or seems wrong, the index can always be rebuilt from Tools ‣ Rebuild Index or by pressing F9.

-
-
-

Markdown Format

-

The document editor uses a simplified markdown format. -That is, it supports basic formatting like bold, italics and underline, as well as four levels of headings. -The formats are listed below.

-

In addition to these standard markdown features, the editor also allows for comments, that is text that is ignored by the word counter and not exported or, optionally, hidden in the document viewer. -The editor also has a minimal set of keywords used for setting tags and references between files.

- - ---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Formatting Syntax

Format

Description

# Title

Heading level one. The space after the # is mandatory.

## Title

Heading level two. The space after the # is mandatory.

### Title

Heading level three. The space after the # is mandatory.

#### Title

Heading level four. The space after the # is mandatory.

**text**

The text is rendered as bold text.

_text_

The text is rendered as italicized text.

__text__

The text is rendered as underlined text.

% text...

A comment. The text is not exported, seen in viewer, or counted towards word counts.

@keyword: value

A keyword argument followed by a value, or a comma separated list of values.

-

The editor and viewer also supports markdown standard hard line breaks, and preserves non-breaking spaces. -A hard line break is achieved by leaving two or more spaces at the end of the line. -Alternatively, the user can press Shift-Enter to insert this. -A non-breaking space is inserted with Shift-Space.

-

Both hard line breaks and non-breaking spaces are highlighted by the syntax highlighter as an alternate coloured background, depending on the selected theme.

-
-
-

Project Outline View

-

The Project Outline View is available as the second tab on the right hand side of the main window marked “Outline”. -The Outline View provides an overview of the novel structure, displaying a tree hierarchy of the elements of the novel, that is, the level 1 to 4 headings.

-

Various meta data and information extracted from tags can be displayed in columns in the Outline View. -To turn on or off specific columns, right click the header and select the columns you want to show. -The order of the columns can be rearranged by dragging them to a different position.

-
-

Note

-

The “Title” columns cannot be disabled or moved.

-
-

The information viewed in teh Outline View is based on the Project Index. -While novelWriter does its best to keep the index up-to-date when content changes, you can always rebuild it manually by pressing F9.

-

The Outline View itself can be regenerated by pressing F10. -You can also enable automatic updating in the Tools menu, which will trigger an update whenever the index is updated. -You may want to disable this feature if your project is very large,

-
-
-

Synopsis Feature

-

The “Synopsis” column of the Outline View takes its information from a specially formatted comment. -In order to flag a comment as a Synopsis, add the word “Synopsis:” as the first word of the comment. -The “;” is required, and “synopsis” is not case sensitive. -If it is correctly formatted, the syntax highlighter will indicate this by altering the colour of the word.

-
-

Note

-

Only one comment can be flagged as a synopsis comment for each heading. -If multiple comments are flagged as a synopsis, the last one will be used.

-
-
-
-

Keyboard Shortcuts

-

Most features are available as keyboard shortcuts. -These are as following:

- - ---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Keyboard Shortcuts

Shortcut

Description

Alt-1

Switch focus to tree view pane.

Alt-2

Switch focus to document editor pane.

Alt-3

Switch focus to document viewer pane.

Ctrl-.

Correct word under cursor.

Ctrl-/

Change block format to comment.

Ctrl-0

Remove block formatting for block under cursor.

Ctrl-1

Change block format to header level 1.

Ctrl-2

Change block format to header level 2.

Ctrl-3

Change block format to header level 3.

Ctrl-4

Change block format to header level 4.

Ctrl-A

Select all text in document.

Ctrl-B

Format selected text, or word under cursor, as bold.

Ctrl-C

Copy selected text to clipboard.

Ctrl-D

Wrap selected text, or word under cursor, in double quotes.

Ctrl-E

If in tree view, edit a document or folder settings. (Same as F2)

Ctrl-F

Open the search bar and search for selected word, if any is selected.

Ctrl-G

Find next occurrence of word in current document. (Same as F3)

Ctrl-H

Open the search and replace bar and search for selected word, if any is selected. (On Mac, this is Cmd+=)

Ctrl-I

Format selected text, or word under cursor, as italic.

Ctrl-N

Create new document.

Ctrl-O

Open selected document.

Ctrl-Q

Exit novelWriter.

Ctrl-R

If in tree view, open a document for viewing. If in editor pane, open current document for viewing.

Ctrl-S

Save the current document in the editor.

Ctrl-T

Show project timeline.

Ctrl-U

Format selected text, or word under cursor, as underline.

Ctrl-V

Paste text from clipboard to cursor position.

Ctrl-W

Close the current document in the editor.

Ctrl-X

Cut selected text to clipboard.

Ctrl-Y

Redo latest undo.

Ctrl-Z

Undo latest changes.

Ctrl-F7

Toggle spell checking.

Ctrl-F10

Toggle automatic updating of project outline.

Ctrl-Del

If in tree view, move a document to trash, or delete a folder.

Ctrl-Enter

Open the tag or reference under the cursor in the view panel.

Ctrl-Shift-,

Change project settings.

Ctrl-Shift-/

Remove block formatting for block under cursor.

Ctrl-Shift-1

Replace occurrence of word in current document, and search for next occurrence.

Ctrl-Shift-A

Select all text in current paragraph.

Ctrl-Shift-D

Wrap selected text, or word under cursor, in single quotes.

Ctrl-Shift+G

Find previous occurrence of word in current document. (Same as Shift-F3

Ctrl-Shift-I

Import text to the current document from a text file.

Ctrl-Shift-N

Create new folder.

Ctrl-Shift-O

Open a project.

Ctrl-Shift-R

Close the document view pane.

Ctrl-Shift-S

Save the current project.

Ctrl-Shift-W

Close the current project.

Ctrl-Shift-Up

Move item one step up in the tree view.

Ctrl-Shift-Down

Move item one step down in the tree view.

F1

Open documentation.

F2

If in tree view, edit a document or folder settings. (Same as Ctrl-E)

F3

Find next occurrence of word in current document. (Same as Ctrl-G)

F5

Export project dialog.

F7

Re-run spell checker.

F8

Activate Zen Mode, hiding project tree and view panel.

F9

Re-build project indices.

F10

Re-build project outline.

F11

Activate full screen mode.

Shift-Enter

Insert a hard line break at the cursor position.

Shift-F3

Find previous occurrence of word in current document. (Same as Ctrl-Shift-G

Shift-Space

Insert a non-breaking space at the cursor position.

Enter

If in tree view, open a document for editing.

-
-

Note

-

On macOS, replace Ctrl with Cmd.

-
-
-
- - -
-
-
- -
-
- - - - \ No newline at end of file diff --git a/docs/source/_build/html/introduction.html b/docs/source/_build/html/introduction.html deleted file mode 100644 index 33ee2814..00000000 --- a/docs/source/_build/html/introduction.html +++ /dev/null @@ -1,151 +0,0 @@ - - - - - - - Introduction — novelWriter 0.6.1 documentation - - - - - - - - - - - - - - - - -
-
-
-
- -
-

Introduction

-

novelWriter is a simple, multi-document plain text editor using a modified markdown syntax to apply simple formatting. -Additional features that are not standard markdown are available through special meta data keywords. -These keywords make it possible to inter-link documents, and generate an overview of the entire novel project and how the various files are interconnected.

-
-

Design Philosophy

-

The user interface is intended to be as minimalistic as practically possible, while at the same time provide a complete set of features needed for writing a novel.

-
-

Note

-

novelWriter is not intended to be a full office type word processor. -It doesn’t support images, links, tables, and its formatting is limited to headers, and bold, italicised and underlined text.

-
-

Most features are accessible through the menu and through keyboard shortcuts. -The colour scheme of the user interface can be modified with various themes, and new themes are fairly straight forward to add.

-

The project itself is laid out in a tree view on the left hand side of the main window. -It has various sections, called root folders, for the various types of supporting files that the user may want to add to the project. -The novel itself lives under its own root folder.

-
-
-

Project Layout

-

The layout of the novel itself is managed through the four supported heading levels, H1 through H4. -H1 is used for the book title, and for partitions. -H2 is used for chapter tiles. -H3 is reserved for scene titles. -H4 is for section titles within scenes, if such granularity is necessary.

-

For the files designated as project notes, the usage of headers imply no structural meaning, and the user is free to do whatever they want.

-
-
-

Project Export

-

The project can at any time be exported to a range of different formats. -Natively, novelWriter supports export to plain text file, HTML document, novelWriter flavoured markdown, standard markdown (requires Qt 5.14), and to a basic Open Document. -In addition, printing and printing to PDF is also possible. -The best supported export format is HTML, which can be imported or converted by a number of other tools like Pandoc, or simply imported into Libre Office and similar.

-
-
-

Screenshot

-

novelWriter with default system theme:

-_images/screenshot_default.png -

novelWriter with dark theme:

-_images/screenshot_dark.png -
-
- - -
-
-
- -
-
- - - - \ No newline at end of file diff --git a/docs/source/_build/html/notes.html b/docs/source/_build/html/notes.html deleted file mode 100644 index 05bdbbb3..00000000 --- a/docs/source/_build/html/notes.html +++ /dev/null @@ -1,123 +0,0 @@ - - - - - - - Supporting Files (Notes) — novelWriter 0.6.1 documentation - - - - - - - - - - - - - - - - -
-
-
-
- -
-

Supporting Files (Notes)

-

Supporting files, or notes, are any files stored in root folders that are not the Novel root folder. -These files are intended for summaries and outlines of the various plot elements, characters, locations, and so on, of the novel. -These are not required, but making at least minimal files for each such element, and add a tag to them, makes it possible to use the Outline View feature to see how each element intersects with each section of the novel itself, and add clickable cross-references between document in the editor and viewer.

-
-

File Tags

-

Each note file can have a tag associated with it, -The format of a tag is @tag: tagname, where tagname is a unique identifier. -Tags can then be referenced in the novel files and will show up in the Outline View.

-

The syntax highlighter will alert the user that the keyword is correctly used and that the tag is allowed, that is, the tag is unique. -Duplicate tags should be detected as long as the index is up to date.

-

The tag is the only part of these files that the application uses. -The rest of the file is there for the writer to use in whatever way they wish.

-

A note file can also reference other note files in the same way novel files do. -When the note file is opened in the view pane, these become clickable links, making it easier to follow connections in the plot.

-
-
- - -
-
-
- -
-
- - - - \ No newline at end of file diff --git a/docs/source/_build/html/objects.inv b/docs/source/_build/html/objects.inv deleted file mode 100644 index 879a5bdd..00000000 --- a/docs/source/_build/html/objects.inv +++ /dev/null @@ -1,6 +0,0 @@ -# Sphinx inventory version 2 -# Project: novelWriter -# Version: 0.6.1 -# The remainder of this file is compressed using zlib. -xڅMO0 9aH\wC=0UhxkPWOR'mEuDO"kTb(`&= V.@zoEf9';y&N ~7yLFt2nTӺ3 \ No newline at end of file diff --git a/docs/source/_build/html/projects.html b/docs/source/_build/html/projects.html deleted file mode 100644 index 1713c872..00000000 --- a/docs/source/_build/html/projects.html +++ /dev/null @@ -1,247 +0,0 @@ - - - - - - - Novel Projects — novelWriter 0.6.1 documentation - - - - - - - - - - - - - - - - -
-
-
-
- -
-

Novel Projects

-

A novelWriter project requires a dedicated folder for storing its files on the local file system. -See the Technical Information section for further details.

-

A new project can be created from the Project menu by selecting Project ‣ New Project. -A list of recently opened projects is maintained, and displayed in the “Open Project” dialog.

-

The project specific settings are available in Project ‣ Project Settings. -See further details below.

-
-

Project Structure

-

Projects are structured into a set of root folders, visible in the left side tree view panel.

-

The core novel files go into a root folder of type “Novel”. -Other supporting files go into root folders of types “Plot”, “Characters”, “Locations”, “Timeline”, “Objects”, “Entities” or “Custom”. -These other root folder types are intended for your notes on the various elements of your story. -Using these is of course entirely optional. -A new project will not have all of the root folders present, but you can add the ones you want from Project ‣ Create Root Folder.

-

The root folders are intended for the following use, but aside from the Novel folder, no restrictions apply. -You can use them however you want. -The root folders correspond to the categories of tags that can be used. -See the “Project Structure” section for further details.

-
    -
  • Novel: The root folder of all text that goes into the final novel. -This class of files have other rules and features than other files in the project. -See the Novel Structure section for more details.

  • -
  • Plot: This is the root folder where main plots can be outlined. -It is optional, but adding at least dummy files can be useful in order to tag plot elements for the Outline View.

  • -
  • Characters: Character files go in this root folder. -These are especially important if one wants to use the Outline View to see which character appears where, and which part of the story is told from a specific character’s point-of-view.

  • -
  • Locations: Location is for various scene locations that one wants to track.

  • -
  • Timeline: If the story jumps in time within the same plot, this class of files can be used to track this.

  • -
  • Objects: Important objects in the story can be tracked here.

  • -
  • Entities: Entities, like organisations or companies, that are part of the plot, can be organised here.

  • -
  • Custom: The custom root folder can be used for tracking anything else not covered by the above options.

  • -
-

Deleted files will be moved into a special “Trash” root folder. -Files in the Trash folder can be deleted permanently.

-
-

Orphaned Documents

-

In the event the editor crashes or otherwise exits without saving the project state, files that have been added to the project tree and are saved to disk will appear in a special “Orphaned Items” root folder next time the application is started. -These orphaned files will not have any meta data associated with them, although novelWriter will try to restore the file label it had in the project tree. Other information will have to be set again, and the files moved back to the correct location in the project.

-
-
-

Project Lockfile

-

To prevent orphaned files caused by file conflicts when novelWriter projects are synced with file synchronisation tools, a project lockfile is written to the project folder. -If you try to open a project which has such a file, you will be presented with a warning, and some information about where the project is potentially open. -You will be give the option to ignore this warning, and continue opening the project. -However, if multiple instances are in fact editing the same project, you are likely to cause inconsistencies and create diverging project files.

-
-

Note

-

If, for some reason, novelWriter crashes, the lock file may remain. If so, it is safe to ignore the lock file warning when re-opening the project.

-
-
-
-

Using Folders in the Project Tree

-

Folders, aside from root folders, have no structural significance to the project. -They are there purely as a way for the user to organise the files in meaningful sections and to be able to close them in the tree view. -When processing the files in the novel, like for instance during export, the folders are ignored.

-
-
-
-

Project Settings

-

The project settings can be accessed from the Project ‣ Project Settings menu entry. -This will open a dialog box, with a set of tabs.

-
-

Settings Tab

-

The Settings tab holds the project title and author settings. -Working Title can be set to a different title than the Book Title. -The difference between them is simply that the Working Title is used for the GUI (main window title) and for generating the backup files. -The intention is that the working title should remain unchanged, while changing the final title has no effect on features relying on the project name. -The Book Title is currently not ues for anything, so setting it is just for the benefit of the author.

-

The Book Authors text box takes one author per line.

-
-
-

Status Tab

-

Each file of type “Novel” can be given a status level, signified by a coloured icon. -These are purely there for the user’s convenience, and you are not required to use them for any other feature to work. -The intention is to use this list to set what stage of writing you are on, although you can in principle make them whatever you want.

-
-

Note

-

The status levels currently in use by a file cannot be deleted.

-
-
-
-

Importance Tab

-

Each file of types “Plot”, “Character”, “World”, “Timeline”, “Object”, “Entity”, or “Custom”, can be given an importance level, signified by a coloured icon like for status level. -These are also purely there for the user’s convenience, and you are not required to use them for any other feature to work. -The intention is to use this list to set how important the character, plot element, or otherwise, is for the story. -Again, these can in principle be used for whatever you want.

-
-

Note

-

The importance levels currently in use by a file cannot be deleted.

-
-
-
-

Auto-Replace Tab

-

A set of automatically replaced keywords can be added in this tab. -The keywords in the left column wile be replaced by the text in the right column when documents are opened in the viewer. -This will also be applied to exports when the feature is added.

-

Note that a keyword cannot contain any spaces. -The angle brackets are added by default, and when used in the text are a part of the keyword to be replaced. -This is to ensure that parts of the text isn’t unintentionally replaced by the content of the list.

-
-
-
-

Writing Files

-

New document files can be created from the Document menu, or by pressing Ctrl-N while in the tree view pane. -This will create a new, empty file, and open the item settings dialog where the filename and various other settings can be set. -This dialog can also be opened again later from either the menu, Project -> Edit item, or by pressing Ctrl-E or F2 with the item selected.

-

The layout of the file is also defined here. -For Novel files, the full list of layout options are available. -For non-Novel files, only “Note” is available.

-

See the Project Structure section for more details.

-
-
-

Backup

-

An automatic backup system is built into novelWriter. -In order to use it, a backup path to where the backups are to be stored needs to be provided in Tools ‣ Preferences. -Backups can be run automatically when a project is closed, which also implies it is run when the application is closed. -Backups are date stamped zip files of the entire project folder, and are stored in a subfolder of the backup path with the same name as the project working title set in Project Settings.

-

The backup feature, when configured, can also be run manually from the Tools menu. -It is also possible to dissable automated backup for a given project in Project Settings.

-
-

Note

-

For the backup to be able to run, the Working Title must be set in Project Settings. -This value is used to generate the folder name for the zip files.

-
-
-
- - -
-
-
- -
-
- - - - \ No newline at end of file diff --git a/docs/source/_build/html/search.html b/docs/source/_build/html/search.html deleted file mode 100644 index 3172274f..00000000 --- a/docs/source/_build/html/search.html +++ /dev/null @@ -1,85 +0,0 @@ - - - - - - - Search — novelWriter 0.6.1 documentation - - - - - - - - - - - - - - - - - - - -
-
-
-
- -

Search

-
- -

- Please activate JavaScript to enable the search - functionality. -

-
-

- Searching for multiple words only shows matches that contain - all words. -

-
- - - -
- -
- -
- -
-
-
- -
-
- - - - \ No newline at end of file diff --git a/docs/source/_build/html/searchindex.js b/docs/source/_build/html/searchindex.js deleted file mode 100644 index d0f1fd65..00000000 --- a/docs/source/_build/html/searchindex.js +++ /dev/null @@ -1 +0,0 @@ -Search.setIndex({docnames:["export","index","interface","introduction","notes","projects","started","structure","technical"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":2,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":2,"sphinx.domains.rst":2,"sphinx.domains.std":1,sphinx:56},filenames:["export.rst","index.rst","interface.rst","introduction.rst","notes.rst","projects.rst","started.rst","structure.rst","technical.rst"],objects:{},objnames:{},objtypes:{},terms:{"break":[0,2,7],"case":[2,7],"char":7,"class":5,"default":[3,5],"export":[1,2,5,6,7],"final":5,"import":[0,1,2,3,8],"long":4,"new":[0,2,3,5,7,8],"return":2,"static":0,"switch":[0,2,6],"try":[5,6],"while":[0,2,3,5,7],For:[0,3,5,7],That:[0,2,8],The:[0,2,3,4,5,6,7],There:[6,7],These:[0,2,3,4,5,7],Use:7,__text__:2,_text_:2,abl:5,about:[2,5],abov:5,access:[3,5],achiev:2,activ:2,adapt:8,add:[0,2,3,4,5,6,8],added:[5,8],adding:5,addit:[0,2,3],advantag:[],after:[0,2],afterward:0,again:[2,5],alert:[4,7],all:[0,2,5,6,7,8],allow:[0,2,4,7],alreadi:6,also:[0,2,3,4,5,6,7,8],alt:2,alter:2,altern:[0,2],although:[5,8],alwai:[0,2,8],angl:5,ani:[0,2,3,4,5,8],anyth:[2,5],appear:[0,5],appli:[0,3,5,7],applic:[4,5],archiv:6,argument:2,asid:5,assist:6,associ:[4,5],author:5,auto:8,autom:5,automat:[2,5,6,7,8],avail:[0,2,3,5,6],avoid:[2,8],back:[0,2,5,8],background:2,backslash:0,backup:[1,8],bak:8,bar:2,base:2,basic:[2,3],becom:[2,4,8],been:[5,8],being:2,below:[2,5,7],benefit:5,best:[2,3],better:0,between:[0,2,4,5],block:2,bodi:0,bold:[2,3],book:[0,3,5,7],both:[0,2],bottom:2,box:[0,5],bracket:5,browser:0,build:[0,1,2],built:[5,6,8],call:3,can:[0,2,3,4,5,6,7,8],cannot:[2,5],categori:5,caus:5,chang:[2,5,8],chapet:0,chapter:[0,3,7],charact:[0,4,5,7,8],chatract:8,check:[2,6],checker:2,checkmark:0,choic:6,chw:0,classifi:0,click:2,clickabl:[2,4,7],clipboard:2,close:[2,5],cmd:2,code:6,collect:0,colour:[2,3,5],column:[0,2,5],com:6,comma:2,command:6,comment:[0,2],common:0,compani:5,complet:3,concaten:0,concern:7,configur:5,conflict:5,connect:[4,7],consequ:8,contain:[2,5,7,8],content:[1,2,5,7,8],continu:5,control:[0,7,8],conveni:5,convent:8,convers:0,convert:[0,3,8],copi:2,core:5,correct:[0,2,5,7],correctli:[2,4],correspond:[5,7],corrupt:8,count:[0,2],counter:[0,2],cours:5,cover:[5,7],crash:5,creat:[2,5,8],cross:4,cryptic:8,ctrl:[2,5],current:[0,2,5,6,7],cursor:2,custom:[5,7],cut:2,dark:3,data:[1,2,3,5],data_:8,date:[2,4,5,7],debug:6,dedic:[5,8],defin:[5,7],del:2,delet:[0,2,5,8],depend:[1,2,8],deriv:8,describ:2,descript:2,design:1,desir:8,desktop:6,detail:[2,5,8],detect:4,dialog:[0,2,5],dictat:7,dif:8,diff:8,differ:[2,3,5,7,8],disabl:[0,2],disk:5,displai:[2,5],dissabl:5,dist:6,distract:2,diverg:5,document:[0,2,3,4],doe:[2,6,8],doesn:3,don:[0,6],done:[0,2],doubl:2,down:2,download:6,draft:0,drag:2,dummi:5,duplic:4,dure:5,each:[0,2,4,5,7,8],easi:7,easier:[4,7],easiest:6,easili:8,edit:[0,2,5,8],editor:[2,3,4,5,8],effect:5,either:[2,5,6,7,8],element:[2,4,5],els:5,empti:[0,5],enabl:[0,2,7,8],encod:8,encount:[0,6],end:[2,8],ensur:[5,8],enter:[0,2],entir:[2,3,5,7],entiti:[5,7],entri:[5,8],epilogu:0,epub:[],error:6,especi:5,etc:[0,7],even:0,event:5,except:8,exclud:[0,8],execut:1,exist:7,exit:[2,5],extens:8,extern:8,extract:[2,6],f10:2,f11:2,fact:[0,5],fairli:3,featur:[0,1,3,4,5,6,7],few:6,file:[1,2,3,6],filenam:[5,8],filter:0,find:[2,6,8],fine:6,first:[0,2,8],fit:0,five:[],flag:[0,2,7],flavour:3,focu:2,folder:[2,3,4,6,7,8],follow:[0,2,4,5,6],format:[1,3,4,7,8],former:0,forward:3,four:[0,2,3,7],free:3,from:[0,2,5,6,7,8],full:[2,3,5],fulli:[],further:[0,5,7],gather:7,gener:[3,5,7],get:[0,1],git:8,github:6,gitignor:8,give:5,given:5,goe:5,granular:[3,7],graphic:6,gui:[5,6],had:5,hand:[2,3],handl:8,hard:2,has:[0,2,3,5,8],hash:[7,8],have:[0,4,5,6,7,8],head:[0,1,2,3],header1:7,header2:7,header3:7,header4:7,header:[1,2,3,7],help:[6,8],here:5,hidden:2,hide:2,hierarchi:2,higher:[0,6],highlight:[2,4,7],hit:2,hold:5,how:[1,3,4,5,7],howev:5,htm:0,html5:[],html:3,http:6,icon:[0,5,6],ideal:6,identifi:4,ignor:[0,2,5,7],imag:3,impact:7,impli:[3,5],includ:[0,7,8],inconsist:5,increment:0,index:[1,2,4,7],indic:[1,2,7],inform:[1,2,5],input:[],insert:[0,2],instal:1,instanc:[0,5],instead:[0,6,7],intend:[3,4,5],intent:5,inter:3,interconnect:3,interfac:[1,3],intern:7,interpret:7,intersect:4,introduct:1,isn:[0,5],issu:8,ital:2,italic:2,italicis:3,item:[2,5],its:[2,3,5,8],itself:[0,2,3,4,7,8],json:8,jump:5,just:[0,5,7,8],keep:[2,8],kei:2,kept:2,keyboard:[1,3],keyword:[0,2,3,4,5,7],kind:7,known:6,label:[5,8],laid:3,larg:2,last:[2,8],later:[0,5],latest:[2,6],latex:[],latter:0,layout:[0,1,5],least:[4,5,6],leav:[0,2],left:[0,3,5],level:[0,2,3,5,7],libr:3,librari:6,like:[0,2,3,5,8],likewis:0,limit:3,line:[0,2,5,6,7,8],link:[2,3,4],linux:6,list:[2,5,6,7],littl:0,live:3,local:5,locat:[4,5,6,7,8],lock:5,look:8,lost:8,lxml:6,mac:2,maco:2,mai:[0,2,3,5,8],main:[2,3,5],mainli:8,maintain:5,make:[3,4,5,6,7,8],manag:3,mandatori:2,mangl:8,mani:[],manual:[2,5],mark:2,markdown:[1,3,6,7],mean:3,meaning:5,menu:[2,3,5,7,8],met:6,meta:[2,3,5,8],minim:[0,2,4],minimalist:3,minimum:6,miss:2,mode:2,modifi:3,modul:1,more:[2,5],most:[2,3],mostli:6,move:[2,5],multi:3,multipl:[2,5,7],must:[5,6,7],name:[5,7,8],nativ:3,navig:7,nearli:6,necessari:[3,7],need:[0,2,3,5,6,7],next:[2,5],non:[2,5],normal:7,note:[0,1,3,5,6,7],novel:[0,1,2,3,4],novelwrit:[2,3,5,8],number:[0,3,7],nwproject:8,nwx:8,object:[5,7],occurr:2,odt:0,off:2,offic:[0,3],old:8,onc:6,one:[0,2,5,6,7],ones:5,onli:[0,2,4,5,7,8],open:[0,2,3,4,5,6,8],oper:[6,8],option:[0,2,5,6,7],order:[0,2,5],org:6,organis:5,origin:6,other:[3,4,5,7],otherwis:[5,8],out:[0,3,7],outlin:[0,1,4,5,7],output:0,overal:7,overrid:0,overview:[2,3,7],own:[0,3,8],packag:6,page:[0,1,7],pandoc:[0,3],pane:[2,4,5],panel:[2,5,7],paragraph:[0,2],parallel:2,part:[4,5,7],partit:[0,3,7],past:2,path:[5,6],pdf:3,per:[5,7],perman:5,philosophi:1,physic:8,piec:0,pip:6,place:7,plain:[3,7,8],pleas:6,plot:[4,5,7],point:[5,7],posit:2,possibl:[2,3,4,5],potenti:5,pov:7,practic:3,preced:7,prefer:5,present:[5,7],preserv:2,press:[0,2,5,7],prevent:5,previou:[2,8],previous:8,principl:[5,7,8],print:[0,3],process:[0,5],processor:[0,3],produc:0,project:[1,6],prologu:0,prompt:6,provid:[2,3,5,6],pure:5,put:0,pyenchant:6,pyinstal:6,pyqt5:6,pyqt:6,python3:6,python:[6,8],quot:2,rang:3,rearrang:2,reason:[5,8],rebuild:[2,7],rebuilt:2,receiv:7,recent:5,recommend:6,redo:2,refer:[0,1,2,4],referenc:[2,4,7],regener:[2,7],region:7,regular:0,releas:6,reli:[2,5],remain:[5,8],remov:2,renam:8,render:2,replac:[0,2,8],requir:[0,2,3,4,5,6,8],reserv:3,reset:0,respect:0,rest:[4,8],restor:[5,8],restrict:[5,7,8],result:0,right:[2,5],root:[3,4,5,7],rule:5,run:[1,2,5],safe:5,same:[2,3,4,5,7,8],save:[2,5,7],sca:0,scene:[1,3,5,7],scheme:3,screen:2,screenshot:1,script:6,search:[1,2],second:2,section:[0,2,3,4,5,7,8],see:[0,4,5,7],seem:2,seen:2,select:[1,2,5,6,7,8],sensit:2,separ:[1,2,6],seri:0,set:[0,1,2,3,6,7,8],sha256:8,shift:2,shortcut:[0,1,3],should:[4,5,6,7],shouldn:7,show:[2,4,7,8],side:[0,2,3,5],signifi:[5,7],signific:5,similar:3,simpl:[0,2,3],simpli:[0,2,3,5],simplifi:2,sinc:8,singl:[0,2,7],six:0,small:2,solut:8,some:[5,6,7,8],sometim:6,sourc:6,space:[2,5],special:[2,3,5],specif:[0,2,5,7,8],spell:[2,6],split:7,stack:0,stage:5,stamp:5,standalon:1,standard:[2,3],start:[1,5,7,8],state:5,statu:0,step:[0,2],store:[1,4,5],stori:[0,5],straight:3,structur:[0,1,2,3,8],style:0,sub:7,subfold:[5,7],success:[6,8],successfulli:8,suitabl:[0,8],summari:4,support:[0,1,2,3,5,6,7],sure:[6,8],svg:6,sync:5,synchronis:5,synopsi:[0,1],syntax:[3,4,7],system:[3,5,6,8],tab:2,tabl:[1,3],tag:[0,1,2,5],tagnam:4,take:[0,2,5,7],taken:8,tar:6,target:7,technic:[1,5],teh:2,temporari:8,term:7,text:[2,3,5,7,8],than:5,thei:[0,3,4,5,7,8],them:[0,2,4,5],theme:[2,3],thi:[0,1,2,5,6,7,8],three:[0,2,7],through:[0,3,8],thu:0,tile:3,time:[0,3,5,7,8],timelin:[2,5,7],timesetamp:8,titl:[0,2,3,5,7],togeth:0,toggl:2,told:5,tool:[0,2,3,5,6,7,8],top:7,touch:7,toward:2,track:[5,7],trash:[2,5],treat:[0,7],tree:[0,2,3,7,8],trigger:2,turn:2,two:[0,2,7],txt:[0,6],type:[3,5,6,7],ues:5,unchang:5,uncheck:0,under:[2,3,7],underlin:[2,3],undo:2,unicod:8,unintention:5,uniqu:4,unix:8,unnumb:[0,7],updat:2,usag:3,use:[4,5,6,7],used:[2,3,4,5,7],useful:[0,5],user:[1,3,4,5,7,8],uses:[0,2,4],using:[0,3,6],utf:8,valid:7,valu:[2,5,7],value1:7,value2:7,valuen:7,variou:[0,2,3,4,5],veri:[0,2],version:[6,8],view:[0,1,3,4,5,7,8],viewer:[2,4,5],visibl:5,vkbo:6,wai:[4,5,6],want:[0,2,3,5,6,8],warn:5,websit:6,well:2,what:[5,7,8],whatev:[3,4,5],when:[0,2,4,5,7,8],whenev:2,where:[4,5,6,7],which:[0,2,3,5],wile:5,window:[0,2,3,5,8],wish:[4,8],within:[3,5],without:[0,5,8],word:[0,2,3],work:[5,6],world:5,wrap:2,write:[0,1,2,3,6,7],writer:4,written:[5,6,8],wrong:2,www:6,x86:6,xml:8,you:[0,2,5,6,7,8],your:[0,2,5,6,8],yourself:[],zen:2,zip:[5,6]},titles:["Exporting Projects","Welcome to novelWriter Documentation","User Interface","Introduction","Supporting Files (Notes)","Novel Projects","Getting Started","Project Structure","Technical Information"],titleterms:{"export":[0,3],"import":[5,7],The:8,Using:5,addit:6,auto:5,backup:5,build:6,data:8,depend:6,design:3,document:[1,5,8],execut:6,featur:2,file:[0,4,5,7,8],folder:5,format:[0,2],get:6,head:7,header:0,how:8,html:0,inform:8,instal:6,instruct:6,interfac:2,introduct:3,keyboard:2,layout:[3,7],lockfil:5,main:8,markdown:[0,2],note:4,novel:[5,7],novelwrit:[0,1,6],opendocu:0,orphan:5,outlin:2,pdf:0,philosophi:3,plain:0,process:8,project:[0,2,3,5,7,8],refer:7,replac:5,run:6,save:8,scene:0,screenshot:3,select:0,separ:0,set:5,shortcut:2,standalon:6,standard:0,start:6,statu:5,store:8,structur:[5,7],support:4,synopsi:2,syntax:2,tab:5,tag:[4,7],technic:8,text:0,tree:5,user:2,view:2,welcom:1,window:6,write:5}}) \ No newline at end of file diff --git a/docs/source/_build/html/started.html b/docs/source/_build/html/started.html deleted file mode 100644 index f9674fc2..00000000 --- a/docs/source/_build/html/started.html +++ /dev/null @@ -1,181 +0,0 @@ - - - - - - - Getting Started — novelWriter 0.6.1 documentation - - - - - - - - - - - - - - - - -
-
-
-
- -
-

Getting Started

-

You can download novelWriter from https://github.com/vkbo/novelWriter/releases

-

Latest version is 0.6.1:

- -

Extract the archive to a location of your choice.

-
-

Installing Dependencies

-

If you already have Python installed, all you need to do is install the dependencies. -To do this, your need to open your command line tool, find the folder where you extracted novelWriter, and run:

-
python -m pip install -r requirements.txt
-
-
-

On some operating systems you need to use python3 instead of python.

-

The following Python packages are required to run novelWriter:

-
    -
  • pyqt5 for the GUI

  • -
  • lxml for writing project files

  • -
-
-

Note

-

Sometimes the SVG graphics package for pyqt5 must be installed separately.

-
-

The following are optional, but recommended:

-
    -
  • pyenchant for spell checking

  • -
-

PyQt/Qt should be at least 5.2.1, but ideally 5.10 or higher for nearly all features to work. -Exporting to markdown requires PyQt/Qt 5.14. -There are no known minimum for lxml, but the code was originally written with 4.2. -The optional spell check library must be at least 3.0.0 to work with Windows. -On Linux, 2.0.0 also works fine.

-
-
-

Running novelWriter

-

If all the required dependencies are met, you can run novelWriter from the command line in one of the following ways:

-
python novelWriter.py
-python3 novelWriter.py
-./novelWriter.py
-
-
-

A few switches are supported from the command line, mostly to assist in debugging if an error is encountered. -To list all options, run:

-
python novelWriter.py --help
-
-
-
-
-

Building a Standalone Executable

-

A standalone executable can be built with pyinstaller, using the provided python script “install.py” in the source folder. -This script will automatically try to install all dependencies and build the standalone executable of novelWriter. -You can run the script by typing the following into your command prompt:

-
python install.py
-
-
-

If successful, the executable will be in the “dist” folder.

-
-

Additional Instructions for Windows

-

If you don’t have Python installed, you can download it from the python.org website. -The installers for Windows are available at https://www.python.org/downloads/windows/

-

novelWriter should work with Python 3.5 or higher, and the executable installer is the easiest to install. -Please note that the pyenchant package for spell checking does not currently work with the x86-64 version, so if you want spell checking, you must install the x86 version.

-

Also, make sure you select the “Add Python to PATH” option.

-_images/python_win_install.png -

Once Python is set up and running, you can either run novelWriter from the folder where you extracted it, or you can build an executable and run that from a desktop icon instead.

-
-
-
- - -
-
-
- -
-
- - - - \ No newline at end of file diff --git a/docs/source/_build/html/structure.html b/docs/source/_build/html/structure.html deleted file mode 100644 index 5c4ac5a0..00000000 --- a/docs/source/_build/html/structure.html +++ /dev/null @@ -1,197 +0,0 @@ - - - - - - - Project Structure — novelWriter 0.6.1 documentation - - - - - - - - - - - - - - - - -
-
-
-
- -
-

Project Structure

-

This section covers the structure of a novel project.

-
-

Note

-

This section concerns files under the Novel type root folder only. -There are some restrictions and features that only applies to these type of files.

-
-
-

Importance of Headings

-

Subfolders under root folders have no impact on the structure of the novel itself. -The structure is instead dictated by the heading level. -Four levels of headings are supported, signified by the number of hashes preceding the title. -See the Markdown section.

-

The header levels are not only important when generating the exported novel file, but they are also used by the indexer and Outline View. -Each heading starts a new region where new references to tags can be set.

-

The different header levels are interpreted as specific section types of the novel.

-
    -
  • # Header1: Header level 1 signifies that the text refers to either the novel title or the name of a top level partition.

  • -
  • ## Header2: Header level 2 signifies a chapter level partition.

  • -
  • ### Header3: Header level 3 signifies a scene level partition.

  • -
  • #### Header4: Header level 4 signifies a sub-scene level partition (section).

  • -
-
-
-

Tag References

-

Each partition, indicated by a heading, can contain references to tags set in the supporting files of the project.

-

The references are gathered by the indexer and used to generate the Outline View of how the different parts of the novel are connected. -References and tags are also clickable in the view panel, and makes it easy to navigate reference notes while writing. -For setting the targets of references, see the “Supporting Files” section.

-

References are set as keyword and a list of corresponding tags. -The valid keywords are listed below. The format of such a line is @keyword: value1, [value2] ... [valueN]. -All keywords allow multiple values.

-
    -
  • @pov: The point-of-view character for the current section. -The target must be a note tag in the character root folder.

  • -
  • @char: Other characters in the current section. -The target must be a note tag in the character root folder. -This should not include the point-of-view character.

  • -
  • @plot: The plot timelines touched by the current section. -The target must be a note tag in the plot root folder.

  • -
  • @time: The timelines touched by the current section. -The target must be a note tag in the timeline root folder.

  • -
  • @location: The location the current section takes place in. -The target must be a note tag in the locations root folder.

  • -
  • @object: Objects present in the current section. -The target must be a note tag in the object root folder.

  • -
  • @entity: Entities present in the current section. -The target must be a note tag in the entities root folder.

  • -
  • @custom: Custom references in the current section. -The target must be a note tag in the custom root folder.

  • -
-

The syntax highlighter will alert the user that only the correct keywords are used, and that the tags referenced exist. -If the index of defined tags is out of date, press F9 to regenerate it, or select Tools ‣ Rebuild Index from the menu. -In general, the index for a file is regenerated when a file is saved, so this shouldn’t normally be necessary.

-
-
-

Novel File Layout

-

Files that exist under the Novel type root folder can have a number of layouts set. -See overview below. -These layouts are important when the project is exported, as they indicate how to treat the content in terms of formatting, headings and page breaks. -the layout selected also shows up as flags in the tree view, making it easier to track what kind of files they are.

-
    -
  • Title Page: The title page layout. -The title should be formatted as a heading level one.

  • -
  • Book: In principle, the entire novel can be contained in a single file. -In that case, use the Book layout on this file. -The internal structure is then controlled by the heading levels.

  • -
  • Plain Page: A plain page is just that, -It is not included into content and the heading levels are ignored.

  • -
  • Partition: A partition can be used to split a the novel into parts. -Use a level one heading for this.

  • -
  • Chapter: Signifies the start of a new chapter. -If the text itself is contained in scene files, these files should only contain the title and tag references for characters, plot, etc. -The heading for chapters should be level two.

  • -
  • Unnumbered: Same as Chapter, but when exporting the files and automatic chapter numbering is enabled, this file will not receive a number.

  • -
  • Scene: A scene file. -This file should have a header of level three. -Further sections can have headers of level four. -These will not impact the overall structure, but will allow for setting new characters and plot references in parts of a scene if such granularity is needed.

  • -
  • Note: A generic file that is optionally ignored when the novel is exported.

  • -
-
-

Note

-

The layout granularity is entirely optional. -In principle, you can write the entire novel in a single file with layout “Book”. -You can also have a single file per chapter.

-
-
-
- - -
-
-
- -
-
- - - - \ No newline at end of file diff --git a/docs/source/_build/html/technical.html b/docs/source/_build/html/technical.html deleted file mode 100644 index 009a901b..00000000 --- a/docs/source/_build/html/technical.html +++ /dev/null @@ -1,146 +0,0 @@ - - - - - - - Technical Information — novelWriter 0.6.1 documentation - - - - - - - - - - - - - - - -
-
-
-
- -
-

Technical Information

-

This section contains details of how novelWriter stores and handles the project data.

-
-

How Data is Stored

-

All novelWriter files are written with utf-8 encoding. -Since Python automatically converts Unix line endings to Windows line endings on Windows systems, novelWriter does not make any adaptations to the formatting on Windows systems.

-
-

Main Project File

-

The project itself requires a dedicated folder for storing its files. -The main project file is stored as an XML file with the name nwProject.nwx. -This file contains all the meta data required for the project. -That includes project-specific settings.

-

If this file is lost or corrupted, the structure of the project is lost. -It is important to keep this file backed up, either through the built-in backup tool, or your own backup solution.

-
-

Note

-

The novelWriter project folder is structured so that it can easily be added to a version control system like git. -If so, you may want to add a .gitignore file to exclude files with the extensions .bak and .json.

-
-

The project XML file is suitable for diff tools and version control, although a timesetamp is set in the meta section on line 2 each time the file is saved.

-
-
-

Project Documents

-

The project documents are saved in folders starting with data_. -Each document has a file handle taken from the first 13 characters of a SHA256 hash of the system time when the file was first created. -The documents are saved with a folder and filename derived from this hash. -If you wish to find the physical location of a file in the project, you can either look it up in the project XML file, or select Document ‣ Show File Details in the menu when having the document open.

-

The reason for this cryptic file naming is to avoid issues with file naming conventions and restrictions on different operating systems, and also to have a file name that does not depend on what the user names the files, or changes it to. -The file meta data in the tree view, except the file label, is only saved in the project XML file.

-

Each document file contains a plain text version of the text from the editor. -The file can in principle be edited in any text editor, and is suitable for diffing and version control if so desired. -Just make sure the file remains in utf-8 encoding, otherwise unicode chatracters may become mangled.

-

The first line contains some meta data starting with the characters “%%~”. -This line is mainly there to restore some information if it is lost from the project file, and the information may be helpful if you do open the file in an external editor as it contains the file label as the last entry. -The line can be deleted without any consequences to the rest of the content of the file.

-
-
-

The File Saving Process

-

When saving the project file, or any of the documents, the data is first saved to a temporary file. -If successful, the old data file is renamed with a .bak extension, and the temporary file becomes the new file. -This ensures that the previously saved data is only replaced when the new data has been successfully saved. -The .bak file will always contain the previous version of the file, although when auto-save is enabled, they may have the same content.

-
-
-
- - -
-
-
- -
-
- - - - \ No newline at end of file

ERm3!I7&cE$Y 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 z z!4Cxe;P4$^%BGFYtc&OR;*d3TXuBw*EgXwHw7m;G{$l<}TbC}7*qJjpGX=mqk#s%u zA(t2uDu{KoOp`&9I3hd3RKY;|cP5WS`NEm4<7C2M@~gaz)Vz(%Y{}5 z%R>$*u0e)RV)P3Ok5SfD8cs1mqx*+t0l7E)0o>eJz(=Y^*aDw^<(A%3@m`K+PA!1jbe7|87x7bsLc(bqPHC%2W(VWG zRxh}vrS;||+<`c&@ALK()?L^1v_D>9-JJTLsszRSmGDwQfqxn^X4e;7(EC$^6^6S$ zgeqrKCW}umATCt1ffeIWoji7C5`giWV5wZlfj^FC&@EYh5E)cPj}E1%;#3}zd6Dt1 zNE^@$$lY~1E)EJy2n}qPo;|-g6juWC#D}I9UB)%=vqd+-?gTo_fcY+DBRs6=Mr0hy z{mhVo!(tc9o@@{K@F)T({Z6wvq;y-b;77Q4IP>iR@Tubp8szDH=gu9`Mu8{l0rGMn z`SsC0C_|42ms-QqN8e!y*OG4TCFub}n;}_PNZj(`$;dR2sz`?S3Lus{kfyAxdo+Wp z9e~+LE!V-WcXE#&JtPxO@`5RH{|X3js$cuI_MSLe!!gqz_yi#t45bQ+jENKg_|BKZ zoMmKjD>oN+%2pIZjE8m|N@w7T{uRc52j^+$cNFlNQQ()_PO{A%N!lI0`pPc z5lq&d$q|hJgV9~ogII}Ytpqp4_3*AN&UTo#CrYypV z=f~UrKW3PwDWKu*sW@&1EoC|BprH@ zYE^EO&HU&}`Mvzz@mS1>LAVKr|B7KT74;B3Etx5?H4Ns?y#yo#b+%P;LHc3O7+uq- zZY)kpQ&#F_ZZRJpACVdmQL%eqy1HAI>ohUIS`#o`G8uOV0bR@f^BLJ9HNr5^sPkt^0aXVr(wOE$BL@(NKmJ_wUa zGBTO1abvU4X~%xP|M_n99{qVPc#3Fbln0@+-pn^Mqh|Sy+ltxRIDPGvAMsZlP1PzM z!@ez=LQ*^fPDExjX@6=tp>$5?&Qqp-|K0h15u3WtovRXKL`#^fG7Hg1olt*+^ivhRMF`f@|xP2Udc+jrr_q*w3PFY%eMAYjw>*WOya zHFtOwEVRR`z3f1NRc(CoC}b}zPrvY4>;W+0hdcGOR1WslC2tXQirG-9eQ^-z>|Ohj z&cs?Fa1^S4j}nd5&xo$xRMa;g40wLB%V7P6xK}huViilmO)vWIG_x*-t^5mPAgu$FVzC3J zVj8&f`kGc^6U=l%g&u+0RiZKde@PBKa%2stxWp|tU^!}=cdjaH+Ypu@?!enYmGiCN zBj$)r>_^We{6+Tg18^bNgc-Z(>?KgS+>JI|Ix7l0C$+PQbi|<{G6v-B2LlBLww~}s zwB&aWQr1+uDnq;P${8-zCpfq=jvmMulqQeP&wmxfgdPl)5It022s`q&jCFtlVp(IR zAqSiyMnFXK6N`NN5bdUhYDdPtNVno3UFvSCkG zQuBxaWB!8Y^=ytG%I_5>0(_)Dy?v~m@XVnzsJ;=4WmfmGLx(P&{5Y(pT>DANaTGet z5Q^;047a6Uz8pI3)X;I`k_tQ%$QN_aU1Q*SLQt8kvOAJ1gmr7ADkNRI-LMX+hN3iH zCEwC8Zao;JM_KD&W3;Z$`&sp#F8LQ+YYO$XBcrku8$G?fazZ`4AO!cO)_ez9WX$ek z;?eVAShGEz(m8%;QErq(?4SXm;2(`Od2F2Ft4oDxB_&F}G@a7e$7cUXo#&mZb$W2FWuNT?b?M>c!NbPwz8T|XrjK)qNq$Rm>vi$rhH>w- zO!oEss0Ia?UM+h3Iyu5VhMz39xPTh|T3A85O@3VPxKZsyM8snB&h2}S`U94;s6`}_ z7Ufpr(SSv@>1Wl69v36r2cRHaGrX;dS)MgnXZOFioD6|<%ig`+;TkyJKF`VEboM4w zXV$p*Hb>Oiol{e;9Gzc#t3yrUzV~VVA11^sJPtuw7y6f?K}=cf|eo{=%?{mF#*{*m8z@6N?BiOlFCgXqOt z^UJnH{;ehYE#>||KFntYgeND(uZ4-uRyS%O0X&GbChL)zpQYaRTCP_7-9_KQ#8N!K zDNy7#Y|*Ms4*ulK5B(PFEU{1rSC{+(QGrG_Z z>lxYS{iaQZs~DuyKQu7)I=kxew=@MVDa$854*Duy_tv}#9rUd(9y^>6{|D3{g(%bb zQ6&ov6N{^?XDs@b0^B&Y@dxlg$u**dlms%?QS-+frD#pneU!Q%21P`g)i1LTSf5#C zni%~dd4Bx!-*!h{Fk7&|{;186{E}xhluLm~nZLpd%w}3dY-0tQ*OQ|I(%!tRR;^Eg zzwS@i+y=%x7DGZg=ZKixsuXEFIk2j1K~UJU?81uteHx(QD`2slPf39d5VKM{b$i|6 zmtJ9qKPo!kvwn8Z*%w_I3-pbE?@V$ob2wfTfnc2V_N%#}B5v7KdQ+^4Y<~Tm20E%B z=F~iJa+-0uawRWFecls7j9$EWai6h6T5%usDmLT9$6epV>wdg-XB3)l?u{ozsNPRZ z{irN)Ahab3PuFAu9W%RT3;-8K{MuvxjBrEKgtj`9YHuZ4mVpD)=KrPv$%01-`Pol> zr6>u}{_~Q@v^i>SZVr|lp*m<~3OGOIB9-OHGW&?3zGpDfXYB|pR=P(JzW68in3oee z2kiOh>8OOiZ$$p>9kJlM3oso3jx&b&lfYC|i->2zg|+)RRWvmqNFR4mHskNb_O;-AoCq+z3IdHMdqL9r8hsm116})DJ9{Y{JA9$h0$t}-h6WsS z5XlVe0>KmD@^ADgN&JcVcZ&#>{9q7VHrs-8tFw+&?r}7ta+e}RK`h5vjbeCC@dzSf z`_)2D{(74#PXpRV(ah4V_8l_h+lXheiIWUUgOoxOs`KaiAAcnRInY%*@U={8>-p7Y zJ@(kzhuB!BZfKn2;81WUwZag8_bVKyCaK;N_#DfrcdX!aS-#cba_hW(&rC5z?)He@ zMLu5XCWR`_>(Mtd+Q9Ih)SX9+mExawM|H$)C3#J>r<{eri<00b4E*lh3r(J&o{%^{ zcjiPGPd{Y;yHwu(lMj>H%4tptun$0LdntwyV1er2uc^tRpd=(KOLzBa0uBHKpxO45 z=K)D@>(%sg#7l6~OVo*f{8wyo$us4Ym2I$X0=@1!a>$6Wqv!B{%~89Ypg7H!SGvkX z46vT77$njXoq2ul%OtIc^dEGBHh2P4!-DzO*24dKU6sFuVWm)Q$OYI6#ICZ~+?>c$ zXcEGThi#KfMlXf7?a`o7%fE%1B^qGPA#^3Yc7KyViq_FSpVrd%KP`w-g3X%N?@9L& z3y+dH4aCLyVsm55qD3V}ZiEskK$H^EAG=0`1(ZchjmgewK~sj1b|e%$Xd2Z&j&z6^ zvE0&fDO0)g?ytbejP4ueGsWjU6k@y z2diF9Nm8jwUZ{L)p9V^`+!Rl@=jUI|7LS2#`}SSqC)(sk{s4vr;y%ArPpQO8u{h?i z_dMeu)hD&%E?NXk*Z|H4`-9(zDZnfflOo;L+Rb*Zj=$7r@5W^~F&L_RAlVk-n!wbhR&{ed1SjJR&yzJ zg^W&E<>Y|g6A%QhFM60zC^58D|B{Tu%#azPX?cf^5eHsfpn!*$1VWyHz{#O~jv*ma z>6|H~wzZ=_14yzw|0{t8VqYPZq6ATdx!XiI#B@jU&PlR`^ON1Fa?o!Pls0K3sFRn8 zBfPu&ON7Tgom%DXHumzefx0T8NfI1^x(w}IR@p9_h?ugO@;%($7A#9}F3}S&^sG^( zCKnF{)NOsojLEbAxSrKQW9?W~`4-ul6#dvw{6^^}MLQL^1Y401@%kXZZ zit8t!3c}pn#=2I0zi{C~*by68uM#pO)%@_(({g7HtDGJmZ(`AO(8|&h6l6B7Fb_vU z8>tX>Q3q`)nZ)my@@TbD;gvH+O&@KhJ}&7y@M5=9ZJ#j&y+c|qQ-?VM*H2qVf%h|!2wW)mcDjP9|yOb={xsO`-pe70XSOvDwjY0w=eC^;_&;=*Kb?Is`9_S;=Y!@zNTB5bGQ}oSw*c+ z(|8FDWm$Ktd5i1Ht4r-htDyAB#;yZ;z*k`-CsmzNJwb!Jd&E zNNa2BEkjNujd`2$arLwH&2M9AQbCq^i_V=JZ1{*SGl<={Z=Xl5gnznJ<^2V!O33Fm zwypP3#f+@4QDAYCR#3XY6J<`4TWXlBjNbw5Zz6+i3q0Z+?<&$taBuiI00DC0bV0{# zUw`Jc*6lo43PROl@sT{fj@o5aL*4S>3(j8Tgb=45G@(s%s(;R!?4>Uc{ZYkq2^Tn? z&-}HLNnuK>sqB;96FdY>0VVs`zhJhb5tub(0-oNKb&)}*Tq@^kaaLINIj`ySNt2=Z zA0`t%-D`U9L#L!>mvec?``-+d82!tlrm3Tg*cKR=0Xfp<-h~OA$3i({Z@mQilosQI zb^VSfhqVUDqpEuqDxd9`KuAcG#77{dB%SD|eyyOOn=dmfb!S~ipR8UlBI*o|Pj^;? zSwZ}l;;0quwtOEpVMA-_nw)b-|o?d=C(7)l#~-N9Zvq7 z6UHN$->yNng5XO6av-B30g=}$L`Ou)W0by+8j&?RTXQlglL~&Wg9JI_nDP4vcjuy$ z&wDck5$uo(@x=+mX=GEfNS>KvK45>tJO-bR+@1z8k2-~M!Bl29w3%zs^1=)03^F1U zXBri(5w7yDcq%VY?&Mud=lLz7v**kc4GFKQDBi9+EWKsiloI@hCxXCcjEfs25|?g$ zT}J<|F)^9B+L*Jw3TfWJC|pT7NJR#ZwL!C3K5%98q6}FliOc4TY)9kcL^f9@J&5 zLn7nvLLJx-7mz1k!OJ)gHhyeyW3nZQW9AbSM=9Ju+iryue79@Fkdd zt_8w@=y+E@2pCxfYZF4*aGs8}A_Q(QrIN#`_B!u#>V<~969xdNx}Ciz6LN~+`;-YS z4xvDhwIZD?TnV6fIF-w|1>_`Sx0N@-^sr)=V*4R6c*O}0ne3u>m3)Q0edRfZ-WPKd7kWN<9{{cnbWK~a-kduh1bmo3ZCgz4+|6!4Ze4_wDH z2S)f~HWtGWDp5rl@|<4$cS|9nuz^PR4`5G@;_`vWC`^5*%g`3?y<5x4CCr5QgN0O~ zqZs#qI>>|%DJknyvP-+&-|$>7Kl^>H_gf(vH;ZUU5lbBL0S|>E@T)a(;hARU#t|@e zOE)nN0l&|bVm9H;>(`H@2%`+Zi0$T}x2zl4mGT`5ubAaaou8mD*3=ZoqhOC7z0cY<=iBVCHrHO}Wa9b@m$@Ny6(BXnwa zz)7^!YHx%R4ES>XLtSQvgcLc(uhqdtKy>^f+F<3#Dc{r((qyy3p)HjvRk+~U z6dw%P3+8WJ!sq>gEbRyMH3Cc`r{pMHbAMgisw`)~WwG6YObFnhXdljmv&Z_?V1SDO z^{|1v_^|FoVhpf6)3sqRi&02z65TJK5!F4~_t>*p3{0gDU|=et#b97aLx8SgBiidU z=J>CoXP`_72RA}%_rxS z4bS`Q&e>Rf7rq=Fywds-I^&VxXaliQkoo0z-}!Fb*cNUGUGff?T6_2IJ>5iV?;5%i z(Sm4yc+rZdd}7YDM8~@#i;+KA?7i@uOXcrm@4jr{y`05v1Q)ZTCcXERhD6S5-3vlX zbDfTS|I`THgAyMM2e9QMxTRZ(x4boi9b>n)o1)_8>&rL?C5lpkvQhHXBy{Z%V;328 z0{h3(U{Z;SbXxXOlv&fg(epSH7Nf)vkvPYus0$;i>nt+=k{CF-(>^c&J<{J@xl#e)*UDWzt(T#L8oKGmg{E}2hY=LmRcOyMRzHaJex zZ9y9^#EogmELs%_TZ>tw$K}7?h7Uv{Z)qwein`#;hy`Z>*S?n-6GXvj8ah?_^=Vh? z!)6E1WH#vY?s6Z$L`9}pR1cBcE&mIXMt$CbYgib{3>$km%@X>cM6J3em@yRq`$B!N zSwxI!75O25sP3Ny?V&w{Va{v+8bha+^Nxvq9KCCO$7P=$bn-a_M_%HcshxfjQxsyj z_d#uc32GwAW95V@qY%Jq(gNMyFsBw(JV8YxK7W9kHmdilmV)$Klsv9i#43aE4zr=5KZ^n z!#;BVN>d0QEPml-Q!X;F~ z%(+i7QaH4#?*zs!c(aIhgc==MIrG0;EIq*-%2LKt8HmV6Sg8ZMBGpm&@UVO8eJlme zH&&fU`#6;02(y_0;F~i`F1HCSlj7i3%-?4`Jzdoe%IY1%wdP9{pv;=yeFVH)Ojj&H z^bkX(nEEwSd$DiiSXp}6F!u05XIXRQ3JW^Xts~6j1I$MI-9^L6k9XGg~ z43VA|#r^^mVn0&X;n#0;Oy+JZu6xVX22a2;cdTKbcU%&qDP@5tPNaR}Y$FJyQ17x~ z5Q9twN@=@~=Ye%Fwde?tB7ET$D-?#@yB+awD0)=lv&dhEMEtnVo1>Wd<|Pn$7AL@o zL;FjH$ICkAKYsLR-^Vij@%c}tWyF+SpwLhdcPEAx`@B~7cPNOrGv*tNs$ZIZUUT>f z?8Ijh#>CUR=hTViq;d&tovJ8`6>+5V%_zUYNI@w=84TB%#4`5mSl1FX7oB!Saz1ZVUJ0#M8O4AXp22w9q3Zf^5R zpL~XnSpf>x`H{Pe-bA*@hsCnxc4?KyyuxHxJ6ciyc-N1y!|@gp>z(O+yylh1Qby+u ziXCp)isr>gRSUzja&lFr^3e@aBj{L~QU;XMQ{0XEM4XvNQ4YfYZ}WuQhYHjd>btBa z*USqF8k}m|*8vB;wA`nLqehLYDy?l)!**1qakfRqsklyeBUn!_!Bb_B(56#w`;#SX z>^AgJ4s&|v7g{i}y70h5?a2W(Ba3V+=Rz|2grZ!2Z*f^V_sY7ab{c@1SLf>?%vYOO z^Y)MAdD=0QjZ0b5T-*8k%Bm{ELlVZOR)IuFpdNEuF^@`Ht+vcpFsp8fLa!414O2jTscyp;E05~ajPQoE`aGfGFqd%Jd#R}^6`J#gUs-@4 zm0U}HWrwhJ8S50e>-d1YChKLI&D~hV&5PhWt*}t|3FVb9t6FWt0g=%Z!Yr#_c#wLv=Q`w83yB9P%=8JHa7zM{w}n zr=t{Y!;{A(eBf14@J^=*@KYV;IB(@j73yaQ@)iyb<`xr+c8nTUIXRzF*&mXh>ikql z6)~`G~G~JaO<}xZM&Wv*Zhz)K2RC1n;RN_W~_NjRW2ePZHbMCyq=3ju8 zMTrCI(5m3W7`q8u63RXxOxl=9hI&~f8E2L|m05m5s|1rQn{V9syGytW+!-oAl zWXNW0zobZJ5&6Gggv9~OV|ki(b~<#P3X+M9V@O(_ZDH)|GVhe2!7*xyI(<$ebF*Gu z3SNGUkuy7GeyJMOoa{aN%I-W^xxed89&L*F7|FmH(;>d|#M>U9Pn!I@!@W+;#4SS{&!j5@$ZX$BV;7ZP|3gb` zN~GOIGNM9vza_@&^H^z8^H|9e#)D>p&9yVjuE}WPZ&!aJN8Ox zOEWt(@Bu?6v!b|^aW$dGpLfl;W&>|38ZkuL|BlL)xW#cdI>G9FI%_q|E?Ny`G(I1-(IFw+_80 zTSRAa7ABV*@6=L8wcIFTVuFrWDris7Yqt}G3jj(eKq{l2EnAJ{EIfKFqWbQt6HTAu zj*J?)w55Fu&x=|=|9r*XwHPWGnd2*lRuAsCN{1=rKIKX6cE25?Q@DY-_qP7g7h2)XG&#e<0o?WhZSb*@b>Kry~nqZ8NL2Y?R6y zB<}$VyT*_T36M6!S7Xk|{I8WzS#-GWWoP1nig+`00t<2fxipYEIV zVXR|9r`1^+*{vq5ZO|N0bmz^9gP#s44_bV=s43{%>g#1*MZsPNQ;K#wE!NmSOS4-} zkZQQzc9+Ma6c%osedG1Z2jyLVxi;9o!Ar(TQ;s&rFZJuEeTF3|qyYf4q_qvB#FO}5 z(0**AE5jVSQ)_ce;Oae_BPr;dhPIA+aohF9iQ(C& z*F*=}uNV{mq~`C*?_MwK(y8&?>0jP!wizU?61YeQ9#GT1AHJ6t^W`haP;TgdzP5Lh%;4=Mc`O%q+TNgZ ziixuTq31Jxlba~$+z`PPPd6r?LD3V-!VwQ15 z3yU8PEUE;5TrgQ&IDAM)y#o=Ykp6+j*B}j%DdzTcQ3(zo9tJEI=XCF&xY*$L|i)s56zRa{(y)t&beRy(PHOJCx zbedxROEnk0GyRDB-TvPC%QSu`>HP;J?OPC=@87wc zQ2_U?VT^3JEP#gfBw=|mnmXt8VDFI<_~m7VnWLLR#<@xse)1Tf*D3edy2FS?Ur)| z?PRpWixX%NN&=8+k4h>!2`3PP2XP&PfdSCUOynvBvG6dt`z3+Fm)X08gSm6T6;?gh zTh)Y)N=iYdZ@(lrcJ7?iS#b&R;r`N@h>DSa)*B<_QtkXj5)@NB-Uy zM3fS{51ogMpJ4y-XjJOT=soydlp?~NW`Zl?N4(4FVK`((L<@STASS!K;@ns(z5bnO z3Mu4Knx1$&md;k>seSuiyklhc-BD_(vq?#+XX5{LKpZ`mE7wV4(ym?KYhnKIslw;e zMzF`1s7P@3`+wo_v^w<<=VpY=@-h=~tfL45%b|Q5K(!5jbAFqSKW>6r$cSsqZ6JU> zknqICSS-x>@Fm*>0U2jUzGr*!17Pvu7KKaL8+4Svtypo&L=obq(ArTExWmsI^N}d$ z&tG|m)P+#!OVe?N&I@*du$Q@uA0QnOhB6I>6csE8A?i~R-x+~~5w+b+?0h87jQ7fb@i#>%{K>RvwS{rV8D;jp1J9!|8ApZ2I4q=%>oFG)ATmNZ( zeR28a*_AN5`UfLtGu|=osEC|@$-U^v8Z`C z1xqtLHg78J!go=Z?sv$93Bc3Hnitw|mia#`a(hsiWJ6}d z<@`bR*|B2+XP4&xYgczpvT4q=w>mlhb`|Mm5GaR1ML z|L=4C|NpQ5SGvRh{bR{VP8v#5y{-^OBut3oeHHq7nG?9UxHuc@c=zize1TXaVh=Xg z+4!*)AK347G2(YHbLPVlJ`G#0zNfR_3p&x;``v?qF?-=np|9vmx6YLk3q@FRh`0mk z!xirT^~=FSqL72$pu6w_w+3npOR7l`re1&LbTYYksx8uy><8e}$ZjTr$~YTOZ$4kH zH1AMH1L?2m?_}Ok(tP;2R;S6>&iljI?!y;Yrzw7Nq4y$>VmN<@wvSRD=Qz1i;KG+awm0n#mVFO z1;ghiLgnAjfS;Rf=}QoUVAXWj&-YtmCn;5LPr@SgR;1xj4pN9Z{j@!?0Z^d#N!o8W zcPC{PaGzxfv+vup;u|U>qRfwa2Nuk1{$RW}pR6i!Z2jL`o@cin{Lhx>J{?7ZvbJ{9 zhOlbu;qozp5y(vXQc=iINw6?_K`;L*6a?;{qpTL$zt zW$M(^Fie;>KXb5!4F42=;(Hp~v~;=C+kVmCbB zS!nn4U>OrK;c+k^5pgV6F)Y#il7WRv=m7#W>%NwyiCIVd>5uBE4T5Xl2+Akbpi_3XQ z&Q`H=;s8H5?gO6;0_&Z^V+UeSvo`|+Dk#wYSkwe}LQjaIl$PugiL21^Y82NF_L#6W zK#Go^4ne8ds!jX8pjhwL@|p!26n>3>E3_jb=m#Fced7w-k3Gtpky@U41ydy$Y)mhCPS)qSY9FkkV0}Fc-N;3LbQ0e9 zz8QaCgmYbv;*}eL+73sK(F}9>zNt1ggYiFOavDqu6T-eLl;VT2fTy6OI7ab$iP4KB z4^jECvnl&|CQlh7(vU8Nmx8Plf(aYG^zsPrm+b`P;I$%=+D&d8b@|97+u zh;q!TR~8o+*Wre`j`HyoL=xr-5`9IhM;CDONP-gFd8mKCfRytC3nI)I7YW&#BO9@% zyf&yOT-ahqKAw ze}J-b*2$anD;?g16!VGX(xJgG&OpF-70s6ze9_~DGPe?k6l#j*WBKk~%(tBsH__!XW7wLyJ?p?S?Ho~Z{u19#7fcoQ-Ooh#pY)%yL0;uD9pI*o+PZi&4o0wJ-b z;mw06;CYfOhek9-2ByBi+rB4^V}ydnu)weH`T>Q{Fr68>e-^+&k@fqu1y%!h9xr>p z%(dQJonHSjHW;E|NOR{<9yoUFKF}?b*OoI8go#{|!)e-m+=2>(=0<-6rNL&-IA$&k z9O`i4RdS~x$e|CUgj;0QK&L7|2@tRtOG3Kmr!A*7O1oDkV|{eoOo5o)kr2@Z=XJ^$ z2DRZFvLcyQ#sLDG*@=-jp6e1E$;id2Pl;w(Rw|>ErRv&mxWpOV`vF z8H^}?p;Sx6RW2|+t%fT-{AT?lr9A+UZo0O;A!C3w z@GSi9fx*~o`qyGzfecYB{V_UKE3Tu-e7tr1b83gMg4G-;iukE~VAS#mh~6^f?r$Z* z6Fm2DZG{&kQ;4bH;LGKbb#uv@HD|9n%v;pwcubb#>ox3rp}g~{%TRbtXk@ZnDtFY8 zu3pusF4b>3p2e{ydIS!XGP}dcAQfDvYe2}Tfm#nq{TiFX-b@5IzDz7al5g&ZYO5g3 zm9YF(P+d?>^&dHMoA7z&cr|%I=g?p}n^xN)-q4|DRsX`vvS*?6+kMc2*tezl#04!U z=*iC_F$jRsn)la&o zzH3cQFBBUFk#$WzL}e!N+a(Z4NzLARWE036NCgeTSG;Mqv_$#=Gf8^f&fNwQo)JLx z^8#Omg0pTvj$eJ_*+GRD71~Wb0Y+jSSjS7?xKGTo(~(N{QN=_7Mnm?qUsxDDFeIjJ z_#01W7)uu0($HD?vPFBohkYpFd+3vFSQnw0TQ_f(k&mF}z&#=`Ld>+4x*teDK@7Z+ z$Ke##abCx5Tm`!qrg+?<_$tr36sg+PR#a(-b=(bHQw{=$AQQY zA;`q%~Ww`#TenSCLrG%9?9TRF7^?6}!Z+7=uJ=Pc&Z#*qZPBhkAqu~c!in4Kf za$v!|H~KvfMS8qCO696skgl9`v+A5)nJC#Lsp#)Qbgn-cdu>}l(LQ7Zc8UM;q#C79O}ly=%7?~c~0 z(do{y(J{_QK-Yf^AN<4rptX!~ch@a?t5jm-pVIr#%No~@;~c4x^xt|V49=dBAE(Cw zqFbDZeQl0cITiZnNu)2!jiN39$cRmqwrifQ$!u4aW&P~_#It6^ zc-IeQcTnkfpgSi%w->I5)AkM)fa-P^q0rZj-bGA-D2_RdILJf*-Qz%{X+>z`_oEO$ zE?d5QB?Xj)!|!~2Wh;s(Y5GB*Mf%9OGh@k;pCA-Tv@7@OQdSbgME#_J(FU;9~cz01T79e&U^Fvy)dI=$qor*7?tkc{Mls1mPPnWKn! zaa_Io#+mbB1Gf&^ymU~%zMFpUe@$~=`)@Zsc)Rg*pRKdnURm+(!lDriuWNb6*u=zl zii$5ZrPz@ay&VS+&StPe6pd}LrypmWI7Wa8!m5xmD-7c(Z(;ez+~$x;qYzO*4N^W=b62BQ~xRXwRuJfW>z$-3d^$iWL zQf;D3u)d|S&|q@S$qNnEakpai4!_2Ey;+sE-w!KIZ0w)s*F;$H<6-HrN?!Wj3I-8WAvdDZ3Y z6K{8NDH-!$X8I+jF%+|Ws__0Ec&MkBF({Jc6Z&yxJ-^r0t)lUeMi28>C!?Z#2$a3J zp2WP88d3D#t9z;@-r&`l4b#qvOLjk(R+SyhP;DB)LDUVD>vzs9Z$}R=TbIEc$QP-h zN4ZEkbo@HcH9OL3<(Q+#p4-Jg*=6Wl(kka!UF2X29zH2KLQzKTP9{+^4LD`>^p#lq zy?_`Xrk^;>u>-MNHmyA6be#odUUO1pj}^4%yK58)ABxpQY9H@#3K zmTPatNlJWVVXN#;39Z7mOP5-eS{J-$@cQ6na z*tz$^q(khkxa`C(7DKEfbC1jLoIf~5bBNeh=NE_O)i>$uo)X=+v4E8$#5LyS8kyRuZ9*HZPGtoasJ^I$Vh^!}3OZDA7%$I-GICJLH=~gDhCGWIMl`w8m@>nMM2jdAhA-eQ@ojHHR`{ zI>uiwAG<78edzI~yA*!8HYq6W&0G7~97sg|=jonoGvUdvw1%*{WU5V*hb9T_2sKyKwk-C*D zSCoX~!!onXa_h$pF~Yli|Eq{iZCXcfb#)z3pOxvpec2zK6e(a`$={)WTNt@Grh`RBpCFWRALZnM5f(-F!}Su{)qH1;fw_m z2>OdM3tfvxO`0~Xps}og_?HppG0v;X>=2G&{zDT>OWzTH8um2pkHlA8$*Js?1J#OV?(~dBoa_EQ=SHj*CC@9HKoZ=(^jt@4FX%~Ee zzZnJ3UR&elwh9WKMyGtK8UBkzy4{j50||qi?(fK<{p7OieqMl&cD~9mHMLtzUX}cA zzPVZWT=U@rS1vA#c5612?+;oi3NG$GoR?XeC#m6q+cy%RKqPDaPoWvR5gU*){u}f! zefxY{+rM+CyB!;ea1re?T zU59T8!(@gsHD$GKVWl8Ht6pwfH5QYO`M-U%RIpVlfH_y!uS+PDL~9gf@bCAjHosoW zQ1?V1(X?q(3D@NTWa%d>mP@WEeOUFaV|O_`J+*`PH6m477FpMs!{6|4t+&VLTq2P0 z1`Pcr@(M+S1(NA9DAL!BqVtX4OX!?s&O=6tzv5St5r`r-5=_U}*KGMElUn$-9Wa8R%O{x7u=2$e z)R{BGMk&Wlt=STsW-A&=x)3?~fBiLh;4+hgTZ*4?iMjBAoj#h0PL=&3Ll+4%0?fr*0l*5jIHhzngIP zGY<$WAcoXt;zgbmVWQZ#HeUSZY|4ICa&d!FDZV4RMo9>tkL3leJ$M^}ugJ4EHWnKP z65elb9$rz#dPol?%Y{4=%#+@=&hcByDBnRx3%GO}dGLmQILn)59i_i@UPjg=A7zEJ z^BqQ&(6{>6l9{;+KpxM%X5o|kEfo5P2|%F_QGnX;M#Q>>`euak)P)4N+~oi&B432^ z6-&~JH>o|CrSUB?f?uABpbzM z?$yFK1(!U@-acG^ai%}^ZfiomrLS7RPmRQF4&77WhgKA>#`;k9Z{srZctvwH^6g!LWsnD`zOH@4L zBTP_4MINb!Z#87&gjL3zTh-)EZu9^-?f7o1(P4>xOS{lXXNx+%6?oH$RHeYhzxVFl z7RH7Hd|qKfqq-8SiAaP*mnw;PD7%oRy{A)5Lv=^ShOiFUwr6T)B|Usd>eJ7xX|{>v zwBlWUIN;3XzY-D>^#7J#kp2+_I(yF5Dy6Vmyppz)`?@nvU@1N07ZX=N^J-*Ysc-xK6;}vbs`xJ zbmPAvUTaV&-6KUnbgoXxC0O+URz>9ppCc0?VSKz(It-lcL6{RCP7*(n0yk|o8iCPG zM2;A>W)>4Buvb5hGpu;mnb6OzTC`A{PvlbKFsw83pgB&=7S|}Bb^%Nip%iy^-@@9O z8ivQqhT+!u!69i4_mqS-R{03^OV%(|GKo3c@YNi$Jpo#h@t@yup=&GW{GJ=b+W zwKJqxqTlH%=7nq0#y+LzVcd>kkx@jEOkD=*sM;c<0(mcUO4d~Q-CPl-8hPy4xX%f3 zH!p?&1p8}*Z9oSA(a`jXTNo61#|9I~j5TZipkoYm3CedOGqn(`(^n}-n*a{L zIR31T}1K{D#C_t?2wS; z0Dc2mn8R%Lh{~f-?R05Ut0YmIHbTtvl!N^xkHd!P7m1hZ2iUe>YvJ40WMb7@=c>&3 zkXzV@dcP_yM}#Beq?mXXs#%@G_&#_Yxk#;@(~wfmCRqWEnS}TWD~0eyB!=Og6@aLO za^h^jJ!W^C8E1*$Xs5p9gU4Do^O!41zmUK%qH@c5!bKq#|Y=4xa zlVVJwN@(g2EH+=5otYh3S63(LyX2FbH0@0i#Tv90Bv>CCZrel>Ec$-ClAtu2un!i(0PeN^~aoQqx%V2Mdr)NN57;Zmy@TR191^ zqqzxwa8S}^%GdGyH8V(Nr)%3z?Wms@+O;py5JmwnV(wPI+&^PPzXCF^M1#zC?sr$F z&~m{rAADTIg(AapN!6Va6v)L)Cn#1|u{FT~@h}Aoy1HQlS{j2qx10L2VN+R)={o?aBFkWy&?JjxpRHtS=|Gt67yUb4{m=x z(q-k!Ml*dLo|?f0$R=A$ORp69VgnPOIOTo4eSDRb-+7q(&%waHv7(j(`jTs9NODwH z;9Sk@FAVBizF*Uo<4A!_;^pry(+L3uIBBj3b9$3HzNkyYNCm@#R1AC`51!eIu$yDx zbmbJJ7?=_yxmz^61N_rmo|C#Ivta=CF4)fI5@|@cUEMU$!>!qa4-s2EsqbeoHJ8=G zoFkE0!kIhbvp_F(U`}&#g!)p&Cmw6`q&PeUg)In-rd1*NFCASBZ=9Z9;O5-ty|Ix| z-*1EQs4-!$(DS`7HAsDs)haL}2~yx-p9U_xR4F!k6UB(&z)&p^xlC&p$B%!^hi6&l zACxZDjZx1UQ}XDEa~}7*0x(#xs$&y}q~y?)($e<~+vLCwOdj#*$sZ1giv$e>3qIuQ zD~bv04g2GO03j}dZq2eVMJ5t>#L(E-X{!68j3eXMxUWsRU(KPJDCsV28uF!0zq)gP zm=zWqmIE>{YgZ;m5_(9ZRl!FFM-R15~v$k8z&(sIKHr>%Q_>j8hA{m&j3IrmP}-h=U3MBAXl!Yj|FU9zo9>t1x=3GQ@--~Nv_75InqA(3el9wFEkA>W&nOuapH88nG!t%H zH*m9x+{)UphK|m4%e6xYr!BPOQ?up*>^9NfZ%Mu7lJkByX)Lu|lPZ zsOcIx-Dlo8xWFpHHEz}pmgMdK;Um1J1Ti~tdQoHafhYJ5Qp`+Wd12A)n6R*X^i9r7*TDV=(=Ewb4y5mhos6-2*ftfJpbW&21-kC318BgMde8+5Fel2!lV0fb^Zt+zF zJaExSMvdehP$GeQ3%-mzj7hwm2+%;75Iv$v>lQ5*64OGUTT{Ao;U@sf&QJ~Qjjpx{JpJ#A!V6zYf)XzPq zpxQLB3wrB&`rspRgVJQ^o%b1EQB@U@xpFl(1XcDamyY~MDj5mKqv@5YU`P%zmq@x2 zXp=A~%ps*b8gc37MY8^Zf?#0jTMc~%?ey{rK~4!AIl!(kJ2>=J?jEh?CG6=%Y_oyL z0nz*-nm>2`yih#s^GwaF=iEAil!7AB?2841@0=d9ykN>BLVXi)p-iPlBHRgwTq7O} zU6aD!WLuLaBqQ%B$YwEJimMhWLh|Tw%IW*8@**SMvJZR`!y`%*RO}>E&S!4(qbqjI zdtFQ;jwI?Q<}|RGQ5M|>r$qa6d3w>6)kSS(hJ6Et^P#DROQbXN9+}OaghEVO4hbD6 zS_C+~RktzW178H~etj|JwPgpG222l>H(Uv;xWTxM>5Z(gYr3Tz$l*i*sHqp8PMx~Y z#%2nF!_NdEe%K+G9+AF4{kfXeK8PwsdnM!)#|-`8#?E`PdqHW^mJGv2L{A{D_O!HF zi$9-<6EDiMXV=lZ;Hr2*1eBXnh$;LWN<#7NqolFVz0h1T zbEr7b4EG!~NUzhV@ZG>HQba;M@Y-aSFD%GNQjny>`1RLkB#8mO0fH=FUOwePq4S{6 zdEbG_y3-$Pe&jSOYe7)>GgJ(+YQWL3E_nyrAt@5Kt{kP09-YsMW?9OtYBn~rPdb7= z@cB&h$3*laDuDu(-ZA+oqmt=nighKqUk0tq19|hThzHc|5oc$a~%Yb4sF{?EH)J^Q}T9m zw#_2jj8a8JgV^wKGQB7%d3-|Skll`5yBen+?o~T^p(yk|eH&(?1*Fn~5|sEC__QiyIc-G-xh432?i-`s+Ja5lhXSq%_ zNL2o$EQ39gLP~jVQ2zF4jZwBYc5pERjT+h;UU1*P9(a|NQn`EADHko&nX*))064-eF$J^`?$QDpa#V7r< zL8(^Jt;3S-LV`?Fn^<99v$UwZcLO+EHnl2gqQrx|}r8hL0l4kj@;K%1mqI z@hyzSK9;%kGt+$P$pI?Sdj$u!MGL&6n`C;Sw2>CQ3%9? zz~8MENI!_2d+9gD@8ra`t-f!i+vRU>DUJ)vERKHoeGJlsQTK%CxHVDFCx$BpNLb@u zg-QK)iJ0;Ij~c#d{a;S4CpW%B><#$zkM(Ur{Z};n&$ecNH9+q-?%v(X=0i`=_!-eZ_`;sKk@1uSG<++FS^v;Oy6@8Wa6qs_XwCYH7y#vuwyM4)rz%Pla}S$Jh97Zzd`(@`?RUoE{!AAZQc;^1=?=no8GV%) zrX^|wu0B6Hc2b?g)f6ak$yOuj=8e-jx)}tAcFtdF=5DC1_HX#W&#(7x&;Shmhr<;!K5rP;B7{6-*=4373x*D}o|hSWwWfH04Exaf>Ba8BXSPta zSTXn6EW)Am#E+u|jA1l@M7Oao&D2;3O70^sgBRjXS;HCL8cI!qok?Na18ejSDxzPugd@ryZus(| z8(njw7$0Y4QoSVQ;nM1&eXGid*1Ha_Bocs6bPV1vWPmh>iK(UQW}c-4T}#OeY6eq6 zGXG{7)y3I>S+e>nhKM9k^YBeFfQ_me5rK0=l$^ytEKQ#--%#7xLw}Cn;luB-#W1&Y z24^cQ{WFTF)-X%j9YJM**FoSW!p0*lLcVn=xz#QFss?j*gt{GDC~l(KT5gXA68@Os z`B;X|;oE@zkP&m}vk@(r+;?{r$ez@kmP$(C8qH3r?#}#ruY$EAB{t&2_fQA@?{00` ziA>qc*F*wHqs^@*5?s#srVpCOzHs~LDPjA_t0e?NaD1K{o>R;#`cyjmwqT3fA^Jd` zI3bJDo`GX>@Avkuqj3Y6lhg$mJ^W3HaAcjYUUCZw3KhTz$eBJYm?K!C?iqzf!k!lm zCbiiwL_RR6N|c!n>1W>$Z=rE1Dr=+_=q-T`zf>^|kf?Lm(xhx#}D~ zBeS|c7Y!k~g6uZ<9<|smvno!2%QmF`o#5A-dv(1(wfI@!n0HALhv<( zOI%_APoLI4`4+-ZWR2@;K3uxM%tGtRHgXX+9!#fBG0`3GS8HkU0 zx__ZCF|VndsG+8uSrv*kW;ef~DBLMoA5ziqpd?-v`TQP=Z8kmQ0kSTYiI5cVhB8EK zZZet+(j(#XlJLkkA}c_E)EE_$v=h|hw95v$Zd`-B!r5kKtEjUPHR2L8^nW!9$VQ-} zF`u3);!O_fLVwp*SrZTgUr^vC5ti^Og}(TZ?ALJqRjcMan#lDvk+c@5 ziJ&xF5A)8Z@v*VTOu`tVV4CbsmCwbR9l!AWFsyfN8?-R**$2XwmFU^ws$o?SW!izZ z?0d*}|D#Nfe$bMEC6xBT8{H|SWy&B;2cAq_K&+vvs*2ar(!jktvxW(TyV@4KYn|xR zBD`Mm%7_p50O?&7P922uSd@Tree>T)MkLn;7(7pT8%4j6Qw%^TU+01Np)C{4uW|SY z?hZxs`3XHVN+prz(x?e7=c}&sc`X`k3HL!>3vWf8^E+ZvJJvqb_qojbw#TFH_9-zYC`zVX@isHbgk- zO?;Knw(5ef8Ory9c}rUJNswpG%2{!Vo?DVyXd*$M zM~2t)s{!a31@!Pt(@;qgp)t=;+zF5#cm8)W0L>y$(GMOJKJX8JBf<^JHa^dp!Fm(3 z43;uVuMekZFe=P*%0wO)dTW!!%y~{18r#Cs+pvbAU$O0r6(50*k zaU_L2QaaLX<#!4UxyJY_;bpMAVCcs<47eRk3opNZUFG~=SghTh`ycdWL>^}Z$L{1# zZ*hklL(_-881!!wptmGS@{BSsWube)m?M}1ry6H}xXZks*Oh2bWVn(mH2`KA;e){} zE|^6OPaTewKScNN1boe?tYx4(l_OYjNlUUZ*FkAAFJVUCyHv&yCFh6#n42+lbN${} zGyA@-(C4jHkoWQUUlbMH=lEt<+~rC|n=iKEB1|m z4xKuMJ{&bvUETVB;9@=~EF?jrvkrSoQk_h?qj(aFC)Yx3Z0t~2E{qZn(DEg7{-EDPrPts8Jg7jIQES?G5Vf@j3lKiOu+@Dni625D z=fi9?&6~>}a;!ia zC&9YKmXT&155mD4x|lpH+APVVK15+>vVyH+rCHLwd)tUk#?JBpPNTD~sf99Y9DY*7 zhoD(D#5E=AMn7J>9}YmYto#+w$V{(q@askag;Yhbup9XnStI>kqRY#OkIWF>hsk(C zs&g1dR37GDMV>G0Dh5lVkz;5ty22cB(S$s_7wXKB!CRTZN(cAiwvotC+7E`9*qIz^ zDCI|mFG{Vy0w`?f#;zD&wBjv69B{kB?SUk)SYZ+90_Sv^8*7-ku{p(p^x>4qD|xg2 zF_mE{VI~YW(%1J&e*8`WIjCu}^kS4Na4?d1!nq@ZO<>(nU>_8W9vOkK>CdTHxQi7PE+~PBTx5#VP%W`-JV+T6!zVUvHf0Gl&i*DtI;sm&%&-ds`6MM2Htl)s>wfKBdrmQZ6uLqlp; ze3cGEANsx`WOEY*21|@3D>C9R=mk%+4No zl3PHOjnoqJ$R*m zNlbi6i4L-Onu}L}l-Ndeo{_wGHV3dkCH#%AjpomeOfP}7%EidT`6Q)s3ZS)*xJt``3K093-SFpZK% z4%FA2l_Y0hWyl&mPj5q=j7M84%q&{3Tet4>qoZGCq^1a+@rAJJ&ZYHQv((3w20(%O zFSFB%#>G#T2MYh^Vmg^?CQ5l9p|VDSt3CZ;r$K`7=xAt}DCF)jJY- zi})!4FsL(8V|3*1IQ?+MX&ago=BiAA(8Zu8!;ay3S=z;V%N;9oX`S3EgLlj70BR?s zf5Oa}dy;i`W?Q-|0f|x`N%S!4Yf0?)ykkx&S3XYPu|!*sQ%J(`WU7!r&=ecw_ynIX zFrX-19U1D7U9~Qy3u0lJw^mZJlez|Y@bLY`sQCV$Wx!2-3koa9eqd*WQ}!3%@_S%& z0lP*_cz*JW1OmLG4p-_7NtlFvo{-C|0RdbjiWz2OM8k^$A-HETWDNvwCETnGR3i-! zY>4dfH0E8wY^A-a=t*aI`9r!6yr*GK=N}xLTCz7u8sEmYk7|A%-9mqF?K$}}Rj|P^ zz`RK>OKZctw7GdBGuuI;2zUY2SFAG6k?_7IV6|*?Z)-P)Y#Ikp;#gwjEp(cFdH*VU z!?*Q}V-o}(K+V=)=d;nHlSj;s2mGL^*o>`)%F7dR><>@>t}Q62Y4OM_pYNe;J3 zW&(a1QIxxM(B4+-di~3o;hmsb_Sz|RcSPuqGGDjFNz&3hzttQ{5RKF`U{USQ98o2|z6M2DTI%v!13-0iN&|vmOsFfu zLZCn1VLz3wY$`PBtqH;9Xf`gd%B)>GiplSiuD~!r;9Ba!`A~0IKuV4*pFjVa=&gv- zXTc(e01%YfxL62{eby|QhTH-*uodxxl19LMV~j*-Km{mDbfw_|AeD|kxMwGa(g8Ag zDq+Op-Aw(|(lXCklMolw{wdmCE6QfnKvV=sEMvq%{^H~S78D2ZGcldXNU9sh&FAp~890m>jf zcrL=mDfi^u4pwzWUd^X?N83EY_2%=CPeBg`pz5Fu6&Es(UO9YX%>m9HLl3}Oxh`?8 zaK3^@^{Z|3UyTSS$7sBU)RJg?zT_8Dj6D<`JEt}`qRdw$xCgHlCROdlML|BXt;|B|fIo&oJqw`% zS-_DjdNcqG5eB{)Es9ARA@VCIrs&bAGBZYgI^^Rsg=3ax;W&*WI2!uKAX800U$M?e z^-u3d4Z?ofjCf51rj)r^Z`L`4&pn-oI2l*CjEf!WRBS{;cZcJW&OofOxb65kly*+9 zONcS=0rrjJQqlu#Y(gqj)&LHUaSA>+Vi>2Z1Z2SJ@cWA}lm8n$?}{!B7-u*4)NT}2 z#{E=L_aHb>?qZ*dv=rm*@4y!6Ib(GShNh7BNMHC_$Teupd-&>i1P5F195}g8!#=2+ zkol<}by%4(r_;3veXpfgzt#+(D3C^~c8gn8H1&@NTEJ?c(FLnP7Au*i(OK#m!-k=j zP~x(bOi1tnn5wmej<^k3NMCcC&SD!_IXe?q3ylg#T4eM~9U422x&HsXvY6T{*vDPAsKuT%ce?_}|cr^&@dj5=QF)_;m=8USz(be_^S5#u7XI%^mS{MzXE9dVx9440s zxAfbet!|ekF$G}QhlX1HP%l9{dZ)~B;VT0}pj_Tg2q}>s zW~w$ph5}F7gSwh7u77FO$8s&(%aLkXy-|?aQUOypi-ec!08sAq!)bE>zLH!Of zn`5zIe{=}le21rZ%EtzKwC~%jzsKo<4Xf`-ciyJ;?=)xNwV)eI!P{4+oM)O1{nqfO zJ#Lkoh3PeJ+El{8twSd_P$QEb-477Lr0cYQGm6ae!_hS7xX!k%7Iqh!v&-pucs_3B zfA(xZyie6LC!;dH`$e|7Z~XsnA<2mOV`)`DS3b(pveLjZY@RxBN&^NkLj1#bPKo-P zMdTzy83PUOA9|M{0Ol7mTVA8-WV2jwUiCpTT5zKY>iLGgjd~3g+eOvX=aH{s&&$_)>4g$|{fE6MCRAuGs z*J2m{&f;k4EeJb3q#HMzt(vcicBa4R%-JuJOa$h!&(AL`+o^h0-H3mqfp)~|8D8yN zW;5E6Yo6e4vEm`##Q45M75-;h+@L2X}4${5u<^yZ+p`FT9ukkx}VnVoEH zZ5*a}`I75@azN3ueZSdOy?XK8RDwS-dO@-8N&F>X@=)6~y)9gZWS65I#mKR@{kpH) ze9|(?x5Up$p@kbZbm)Ap5g~}zSy&WwpeTY|zF@X&=SjFsmi)G@n;+s%WIM$l)$F3D ztE&LyGiAWZ6IGbl+wsALo2LUHnP7!opXpy3u}oo1>`E71h^;O9TzU4AX_;P??lCwO zjiR`?E0R)GAFNFE`Dj7WFZIa7bE}1^*H$X7uC5sRgRa6ao>TT4RlfX>Q-wkf`f6_B zY}%z|xfwC9(h@{>1z~{ER}U^1TjeYCl~zb+Q5MM`@=KAvyMO{&ayeqM9vsCtg2h5| zGAZ{37o$uQM^FBH+GwF^paC#tAl8uqa1=z+0FT?aL}C{uvV82fFRBO!jc@p~{3ui} zS0oOQi5wd?Y-m4l_ObBCWv^b{mNY8%1wt7>zdwOJq7e2<^|$L0<#*OTLhfh55j0hx zE2D#vzyxw7In^M`!c7Zv>5g&Fq>gk37y*)=1IRu0>!+T;=q*;*UA!-YtoWw02^yvz zTZk%T)0Qpi;E!M*BSBx$ZQr8rYCZ&bQ?%ez3zW=Ei#h8gdhT{ z6wdo;mSsnf9$r3$PTJDw%O7*?pb|?gT02w|h}8m2ON=dyhe+Z=l0nH8pK<6gLrGZ` zT$QpT!f_zH5NNy%8e|o4{#=K`W5Y|BH*xRX{OgQxaPFq>^4D}CJzNs{MEl~B4+=}O zPNwEw(jR7GaO8fMXaXq8L{|bPn06N+11It01Fs@%QpB=3HIBZh!vo%Ljgif{V%;K2gVKpbVx} z+G0M>A~j~cpRe!mWw~npg)#-1c|EIwT>n2fHhqd!IRy{6HC2iU<)bXb6UfPYV1ycc zp``I*tm6P^;*cqIqc@Xuw##@g-z)$d5aU>a*kD(*Eot)1sc0LkeF<+;ceK`Xw5o4n zM#cd;>@>t@@U5Wh0@&jZ^pZC9*C}!$M=jc({Pr?}tfI9VsJEmyJaXg+PQTs+DNxEY z5Ukc_tmEk>jT=M!?FLEBJ~K~p+}JX+c=mqFuWaAAabxmlnYW1~L}|;Mg6i9hJ(^9} zF@@n5n660G^3-?dbrHToO2U8&cE>A02joen#w=sw@~FGjn`lOAYs!b$pCir2|6kX) z&$q_~K|630?K#Xfyz;0rturh~A96!k#Bc07zJ2<192FwvFkwwU(g=K0vhqzb)_zx53eXB7IR=f~+LDHT;?l|zg-x>A)m4^!w zly&KI3_?h*h9>h#^kMXsGG(a0qw)?_ME*IOG{=ky!1@&Y!ufw8i7d}V$pp6lq*C@L zI&ua9=}GSkGMj|aOd{7%HuKH=ulMkvGCsg-=oR2wok~H*E)_DHBMEG;G5r!&+If9s zA{8jcb?PLhvRw&k)Ee+X*aRkQuyY|to1*&gcgvg|Q0!Roa=LZSN%jes_3`sYo^)2Q z@PgVxYl2!z8M$E&JPZrrjo6Jm6~fhf4;rMjdBSyYYz$F;7mmFbcMfL= z?U2EXT3`iu_siOGd`xCY3N`KPt1Q4bLX2O9p@kQr8{+mK?o#%omBn)R!f%lNk{5mI z)HH2(eq8+Bg#8r}fq~bV$SLjsz9;U`pfhJuC?7!wmQ+6hvSY<8u(R9Ax&Pq`4JVx$ z?@R6R$%MuIH8qu0R8&HBm)P1;TkoDbm;o@;HIoU|I(6nu`OK|;>@kW=2`YuJV&BSW zuV5#uxa0YzG0AVX#l>k-xH8&aBA~bmn99*V^M!@vl)>k;Ws(SfB_z*#Y-X;$nEdCR zMfduFRnr@d#@l8pf75=!j+z?wf0m zy2Cbl*a}Kb+S^Llb?x&*kQ5`0++vp9jV}O77TS|HXP`Lv8duo8M<*KgS zM!#H|D@J|h(KH?xYBZc93^`uKk)qFDPwc2gi@U7LE z!1wY=mA29NN^)dB!w|`d#v9X*lM=y{{{=n1E4#7>Z}jQYr|r-5@0J!!sWJE0S<3z{teClKLX~(a;e{m+a z`)TslvL)`;fe{s>!ER{WMBH$q<~MAE0s<4Y6|H;`#W^Eot}(F-xDPQ9p?FFXPno`l&Kk+nG#IlUHx*^NI)2XozTpYSzVQslu)_zjI5~L7{+MtA9V8MU8o*9 zyXVLa4&;j>6EtX_O?qs6JW$+CTGq@mHHXsLS9S%d%$?WZO#W!pPA=wq7Hjtza>`LL#Aotc>#jQ?-@@1rjcOI++SyfQGz zcfy*`lB~V)F$Fi-&OHx4FxLFRS1qrb2dC8FqIb5+NtTQ(=g{!D;~p}zuhEoC1q0Y% z*Af$d($mx9H{N@H5w-18z^^C^!?|@{vFZgB;I802=c1yh6%_&S5!@PIl;B~Y2OBsj zl`#i-b*X>j_%eEG(}K&ze4vcU=fo|m0@?jh{_Sm#n@vFZ}NzIXrr zn}EvAfBK32wvkE{T&a&!cc)ts)%f^*i;I^6ueDySmvF|xKW!Ft-+ZDs@w_gia}3tY ztIg;dY;YfnMW%J~M#N2U_Uu_L%L`AElUofMG$?ZJtnF`g0Q4`I$%1Ow0{Gkye{@_J--+zD4{aml)zYmw3;mnAP z^a8x>_r>^^%@fjIUnyQ%y57nAak&+9lrl3jWs+si#nOoA)J`sv3_e!Hxsw zL!;*O+11?9ZjSv=zc^9td*5+Cc6;bjmCV%CaqHHN_Vx80%{L! zLCA=A=?j;KZvI7ju#R}>9;&8rvhU)OQdd`3F&i5i@j>I&2GfjMm!M>U z?&+eBojtn;F%EZ*#GmkC{537@z-%Yb%F;Y@){E5bmu}rsaGhzc)8$Qh*py6H8-3T` zHK6=}rc(~Yt6Uk935o$#k`?g)aDWX-dirzY@oo5L)7HapKJYJV6x0W`bpW>}9zSt0 z+=)29s0?*lymbEkfS##=#vpdNH9{05JUeL^F60)a@yuwMQS?rxPV)6%VYm1%%|iR7 z9}*G*kwv$lqH}l>i(qDbpEGfnLYjCm3OhBl&Rg3$%rkcxVodQva)Y?>aoC%shoX-21Pt5uG0!tHIuO-II#b|nZzQJ5T`+1Jc}nX5*q`9Xo% zp?+oVZ*To0-$(hDywfynIC%eh*S)QOSN^^AF}92FC975~pg4fsM+?5?%9SzTeZNw( z!cIf4PqeVGIKTNyxi_#^bh;GMB5afNAM{FoDy@jcozI|WLAB`ZgMx#lq|jQO%=Z>z zi0=(L2K^+8L_rhLAqq|fmmLxw-V&G*@mo&J@_8pK*&iGEDt7sgKmEiQ;A0a@*1|to z!J)EOL&L&uk2h%lj}~CRvif6=!LDp5nF`G=B$Z;Jy}d5o!{cS2z7gWM9TkR1k`efq z20TC=M3hk*;#cioaa1sQF)ckjVmAbPMv3#_bI9p#JfCu76v^}?wfS&(9SaKDNLfr5wm)l! zZK);=Dgg^N=s@9oP{U0|RwJohs3C8&+_00gRkzS8_-QOJn;EC|!r|!E^VZM6_5iA% z6&7v{2oMPBO>r?!#}q7Z83BJXuuu;RjeHwk*0RBaBa>B)d0&+6oX5b8+Db3*B;QR+ zQUW^-4PTwXqZa`b8wBoxIAXDqR#jD57?g)Ot^;bn#+^d#8f~K~%#>08!-xT1zkdCu zqy&{!PT*>9M&75UdXV7H$+0)9<|kWoH7D_II8UrUNJU%;VypKDlmq)!2~DX)9nb9V4XBR4_XZdCr*}77KThxhtJ=s< zVv7hHf(=+faK0b>kSBq^0J1s9!NPTY|3$VY$VQj(zudDCSM%;ett&*3mG)8Fx~jX~db&s`2T zG;|tvMH+KlupM1!cKU1WnWm={iyJjL_N9F6ufJXP=0ABiE-fSDC5>esf}*#?J=RW|i)n{CAW3tC`!mtbJO2H8pA`SH-D_h})T&zj9&Hxcm**iI%^- z>_l@q$PC~1O?L0v^|tK9kGnfk6y;5qyPbc!cCY`*yVZWq*RKDgXJ1!b-E8pvZ{y}I zzG1$7^TU7ryoN8L8tA)Czx6-A#6N%7rt43~AMtDc=bvxd`d32%(U?**${|lv{0HdJ zu_nDK`#pLI6@%E;?CeV1*O$SKNpu|HKxQ2RXs7}y&U}DZ2yh&>)DH4s)CNJdO zqm>_*`yT>#fNK7w5we6f=7w#lxsEb{?h$SL8f82_o^b^tt%)cuF`G0c3loD{5ivM zNLg({e{+@K(9rGtR|L-I`5&mw64XQ0M%V8#pp`G&WVHLhy#;weY-g#JkX0e6i`N?Y z{qpTT>i357x2KIjQ-}s3FBqVmn|FWK1ICA>>>m4d+Qf-BEk>ts9-%kb_~t|Gj3+y5 z*Plr=naV*g$tig*MR7+_1^&sMT;v4BtgNhzD0*6Xa7f5$C;9O=F@}m)AZ1MLE^3A{ zeXshZD7XIh!6hFE^?Y-BB1_~)m%WjZgT={}cVwT}&z^gChq$jSD9?^^x*Afl9wj)$ zbohr{GL8@H-a#-C7-fOUF;g?(-tvFmHy7p1zU@?UPr|+%nD1P%;mtn%){2T7BmdaN z&rEG3@=?xB8cY!z6c-muDiv7FVx)J(nPImPZW`|E2(uf(QrdLv_~SKLa*54GFus<= zr8h-I=TK>IBulYGnZRS-d*DFhaRd-jW@4r60$TW?s!Gm@OCYv%=NukNoDxKl67R4G za*ESF6?rw9f7;hR=$OROD!Leaoe(GeENG-;-U>qB`TS0pBOxfTrEH~vY1^jFHEvI0 zGJCV>@c>|KGfuB1;l>fXzUUAtUD0CEH3QmC$H$Kv6Cv?l4vo;4g%bXTAiLh*svzEm zD_6QI@J+r}Z}`@MT-o-IT3_%jkKmC09Ww(xG%E(6QIJ7{7bQrCWNIdh5&*f8OimEo zn>uA{O0A5-!IwfD$FvC({`&Bh1}`)s;uSoC$p8y#iPwN;qCH3-Cg(mP65N+wt5aB2 zqUgl#BRw4wAnnJy89hQHaE{gJJ*60+iOkLpmhPqMl5?}F;7^kWX3P>7`JyzK-)ge2 zo_Mj2DH<|ehS)DZ2q6U~y(K}JtYJtm*+=C@Im4mSU<<4mUc=SHz)gB%All<|F7a~b zoL{9u5gmYIgGTu?8QdOs7C+^YN@x;#jZFx62^#EMRO#glTLjj}LQZ9Bu2_v|1F3DA zDIZ-z1u4GQ)vFIgI#DO5x7?1BoclKgf9(4YA5H)xPzzOX&9&{?b+G?~#Kav;lwjKU zWSVrwh+6SQq&yr0)}YGl1SpH9JCI(IqHz7^R~=|odISeY*93=MsBT#hP{7S8ubR>G z-6&ls|DcuzjWL&1&O3SY=8Z^}`n6`HjJCCPaIWhy{T#cnE6Y;Eh6iRZLJ|(>X4eSY z5|J!UoF%OJ@f?4qKQmYt1cYih4iv)!{t5vE5K z*z}t4Knj#2cL1h5E|x@dkPXMBCy+{7S`XlR)JeP+P!g8nD|qJg#n|sIS0-!8Lm`@V z`ePVTKNhZp7%F-Ob}v|4sRs~6J)sim?ib(>P>zWbBi;$9v9aI2><0p{seWylnbL5g zO?ceyrzXJNWvOFglE-x@Yh8b{+)#W7e$8Db${cj^l$oGxlDI>|fzJ6R1QH-7smc?X zs1O$y2Wm)%piL!-s)vjU31o!0qGBM6sN;+oGsKFBcKC$)SQK3kAU>x}n|2Hs1$+zd zErQfeG82}H8N-ZVYXlfbF6xO39IldC`iqK+Cjk~j8XgZ1-$iVZ!dY@1>A%D$0f0=; zNb_fw;0$oXAth+qs!MXLFnQ?ed!E!RQ&UNkLHa1uE@;5XM7#$=WHve<=r`@rqnosv zgibZ_fX52`Ifeg^AL|J8+x}63<&}cS(Cb4WcD`%FC`VE78ZCL*l@&*a0zJQrm-if7 zHcp&RxX3lv<^zbpR&GRzlW~d-JXG+T2=`+SaT!AOuw6h(!L9b9&yTHck>c4`C+7vE1W8X2Cij)ms4b2vgAAInaHf_cMGII;j z1XPHK)Yy13Fg2la*q(j4<l+ zGlp!01;F(Oe0-!`J)qr-B|pgLL2piJ8T-tZBhK+JcmrWGDcTLSTIUXMFV2dwcy{h? z*B8=t-MIt5@PNaNX0{nw2@1+un{n<AD6Jl8&VGvEOqhn?J#Y1TC#G*)C*I*|%9zl0JG9Npo$9{yg;rPQJW4Mi)C0txHLJU|*k4lR zp@FHMCUUU~Ssfi6?b7ppbq2R8fO`FizA=vUqsS-fzgDb-D0N00np9sLF7oxY$X>+i zYmKEJqr2D}`nLOtMhhp${`DFk!Ri1HY401+56;IQ$)m17tA5dSE#MAi+(SMA-?2Dq z_1HJx(Y|m{E3{TKEi9BgK=?p^Bru%lDg{r^!4L@j0J0?1sAb2Y3iIa8BR}LsS_p}| zTzc=Rt)~YW@!19aAy#Krr|sXaH|usvZT<{e1Tcd!3{o!|&2`TMGg5wr-cf3))@oh~ zU)f0j9M2)@p`M-*2993a+}^`JDI&<^)vA$#fk8d9t5skU3Av%~<*#Cp$RjgNrigH~?lk~ImxAP(D{ zSOR8Dd-K=%^XD^)8oe9)t#WL-ssvlhVa(<@ac7waWcjqJ$sh^c*1l^*@%jhbQo^nN z8?7Te0!oSgOO`B6)lgOK$#v%T?PE>wfat201r9W*T%Rl0vfepL%kDpX_>y?EJ(dKT zJrV&OM-Hx?Fz2opj6Y^XERVl|N4=gd$tI@43O9v}NTq0@N(4RYBdCn>x1sS)&f`I_ z{IZYyJ58ix=XSwV5)fKZKJZG+><=UuPn@_>t@AmyGtY;q5!cXGprjc}Ey)H|&(?_PLcDxgPM(EsHf8o6H`;2^Be0suutDcQ*cN# zLCehwP0Pw6s#)FK^v_b6(Ld z+Iq1xa2tc{UIRyi$oAedWLa?NXgIl=Z>2@$wpSkK!sHt)Xb5=zIX=TS5_`W z#>vTw>GT>UxbLzs{W)5Uu@~~={{8J-z_4=Th-U%M5(P=+mcVIfA7`gu$C}*I;~vS6=CKNEEktN zPL3Nr*8~l|NaZP?DdQAQ?fTuYzjxBdqKE1+rf2$jYh!)eiX50xH%}pxnG-qv{3HiS zvjWrZL>w;t!$Q6mO|6A>h&P}av1|RUf*o8=It}R_G5(R6?Nj$TW5*WLJsN4Aq%f24 z%ud4=Y%=rj+Pimex~`www|Aa;)uO8rk#5+wRb+(II~q`K-~pPWrR9G%f;<_>ALgoD z7v?X2MyOE*{YU=o1Eaq*9Q_kXHtAy9CD0wyxpzwLPY=@DwU-E!^tfhv4k|ydkLUK{ zB|$3N0N(aL>a^(DnUJPuwL0BjVYe}eV{-W6@T7OMEkc7nM+OHsQPX!!FgCpDYOeGq z#&YrEvT6X?Ln9qS+C87lz2Td)s!vhzE;(rp4F!FMJ;3n(OWU^T&o34qhz9=$B$FeU zvsK0u;0T9*zYgmN<|1j2crQl`C|q_aVOYGXbqQ~iME>z+9eN^_<~WolCMHIvLqJ1n z_q-8*L#FrQfR^EJ4N0ZD$cMozi8isNJ~*|c@(SGz?v-2Q}t8q*0r@NO#KABNfSr^%_i?tm+Zt%M{#d5#=w0T0W4b7C4Z$WkN zwINYa40Y=(>klxP4cSyVd$zQ%sO+ezF2=Q1+hY6S!-tp1wsv(H*_Pj3`XQu&)Lz2w za5>O*5~p#tU1w6xym{tiL(QYmBy#gPO?Q9A#+3Ow5RphO6}SW6Q(gcM=j#5Vwk4cr zCf;TINxyKvc{frooz>r)4wLd$VGTYKGzcYUf|qfD3rMzU>$HE7QK!G0%L%~n4;`}&(=Ix!yOPs|G(t_}Ojv7!4P?#^d=t0M>|S%t7fTgFU&}ceJS)4@ z=`XIxeZIasxT@Ixs2+dt4BA;p>^@J8qoRkVW{p>R7V-1j=)xU2kr?PTM8Uh`#~5g@ z?sy6mD4~y0^CmcO?EF?Y4>C@wq@cBoBouOP>eQ3B_5DK5T0`#3kh5hWubhV;ZmFde zKVs_B0zGOBjMDJGqP+weh;Vj;r3i|MfSgxKjdk8-5c-mh#@dT|#F45MvD{C2me7o4 z7h}%MlDY?Y2T&?~R~IxEc!_#0bF@RP+OREHG4?TSkb=ptRxQFM zFe1W}H^iC`rsbs{lF6)a#59gc4V>m3Q)8$B5?;PX_%f6m+jxXmw#y_ z$|K3=oiyoKXy|m#EIvqS$Pze2QeU|@055z_3-rgH815ype5oyPX%=#GzQU&x7QBz2^G*R`x$ctBt}I&sH+{u zEXJ+uq=ewe7sDF8P5+YOPBiVTNt7!0;X<@IwB@|wjz2Kr60+1IC|5xe*18P2;`h() zLfFYhlHlzxShHU;(vwF)7AmSdqp*Zez(aio4{pVQ$g`iOt9xL<+~v6!LX&0{2m}KP zw}7}@fowrr_{@}IqWE4KtcC1LC?FW|CF4`6m-Ze!cryK1*3bWy=zRR74~#ZmAIuWk zh{G?eaCF!7EuTDjvZw<2;g%cfoVYXS^aPRxOo{HSs^xxlH?=!wDJa}2ZQZp_kGz5P zXf<8YqDjCp@B|ZZW-GtS`B}1#8H+t1iwljy1=mt8F-RS-endfgG)F0LoxQ8BK8d7j zVqk<>6s#|J&Fpgvny|!zBUy1%%b;Z$WQ+BbEXkyw>d^|V_YX&4OgL!U4YCB0z2WV zAu??Wf=IU!)o*je-N$5k3NK&!G}es-pfdAGopOj1o2-f*oQOCIfPydj%~ODNk!~8} zQ*?ILo1eJB1e2uzCw6NS;qicTdzB}dr=z)*aR&5E96%DN39cdoQ$s>*xF$_XM=K8U z-fvEUMnCOI>BINMnlY3MzI}>19J@f9VnCxWM18S8%eA?Zk~Pm*vQNpvL60LqNowjI zvJ@1e%iM7@D!?jT<46P1KnR>+li{SR}apI@tynfm+uS-=`HzLAL7{L=&?ih z-@kizD@$MC>23L71ma6)n-X3wFOT>en!*0ku@a2 z^lr4-BS1%h0f=l26pRb9*&M zqXJ}d^-`Di6&v*%x|&7n;YHjC(KshfNj7&+K%g<*=_DK{2kCP(kIk}bwF7LFhIwZDH?CZBNh`ts<8)9t~VTw3$~H%fpc zuXRKl(NX~Fb;s7(ZT+Xf994-s63qgS7}$F)c|-;qovf{UF~zeh*CE5$R8Sp2WCVA6 z+d%vJ(GfxWj^m+l>#;c^^DYCBG=i60+E}o}6UG*Fo zAYGCSLlT$-nbHb=eeX42i|0DhnQf@6>VTZknybX%8Tk=CMV%Z|qkQq&@%SJ_zvMkcS%zF4^a^wDmOW1QEXdi<=BXOCyT6SiK8 zkH>@?6g6Tia2JOZNT!+f)sVw;2hDOhYJPR2Z`KTDWUc&Q%=Nk+BR z2ZZYzWzPl6Op!j=L}i8-XCAU_0F4#rqif7K7wTaVyY3vlNIgEYD~xSSd;k9X)55~3 zv|+(bGPEjdt7#ICwD$b=wPgIlyW6^?HeKDwqIK)t10vq`fwsN|W4>Hf|I)jsX2e?| zz#x0(%if(E)(-%L5|b4tfY1ppeF_7SI^G0+B%*If*F%$+q1Kdk3+OPy0rdA8w>Kgp zor94Y6=z)`Zc+QZkl>!O6Hm?wJ4_f2>-zK8+H$DW-AAS-tT*Y~E@JS9{PqhMz8KNW z_Q_IKwJ6^R?`-60RVSly2u#a37eg2xI_lt@U-j4m$hvPsumGewQa3MI=K1mC`;Q+9 zeLBi2(g}P`??fvp!(Wn=hjDD53Jta5BBafK2MwolGyx|LXNV(v2f3+WWrsUuoQP0E z8S{>5?<=4Zi3#tq4mI9zew_KJ02l*s2ZN#y3IM5#(O6@P-Nap`bA~M3WSAd)nu_zC zHVK)s;%ff}2?AuQ$e*rS!SM)`F9YGR?L9}V{{pPLe?d-6WYI88Fz`H|sj&Q1!irp` zGZPQB4$}D3UmV~`t{M9x`DLFAZNtqNl z6MNeZ#0Uu0mu`*UMVUr7A_>SK(m`Ag%=y{y_4DHRC7LL=fWyh_ItVkVtEX4=IA#c^ z)Up6afKzv-+krO>NG)#Xg>MOd3-O5yGm|&(Nuz_dG$jIP5 zbYs;+rtQ%jEtf08A0m#4xZEd2{0meDjSw{T+q8_%3c{Gc1q17NFfb;6NggpLmCU#F zw6a)COEMwwDRPMF*U#e{1YO0PnKv#@vQ zSgE#Y)%>a2UoiVnw|5Z5Pg3$J__0>yiZYVudqM?XHB9u;ozB!c)1;Ei-wpW={rA-W zL)&{sRhezuq9BT>2r4QdsYJyxkd++Fs353Vf=Ut;l$>)?6jTI6lpq3TOk~L!gr$-N zL2}MHXV&dgYrm@f+PUrhxbIdwt=idD7OeGsbB@qQ?|tB_;Yp$&e%ZM1=#e92$c!Tn z+4^=&Q1P_)?XNfGW5b-QTq6JFix)Ss2NcnWMC+vMeG}IVjemg)3Yh(~VMr#zwY0Sb{4?hN=qB3_JKTF6V_CLuq z97|8o0zct@yClT&>(U+a{ui$&U3%Aa6|7}GLz5UWq+CcBgRX_xfgwcOeH|UT>VWGb zhdCD-h_ptN^f@VP^KijLqh<%i&<~db8qlloAph<}ysil?0gQ0!T{ff?{2`z}hND&( z9uoxyz?Yv_uMgdE3JEglEgh>01YQqRsxGQKh4ng~WD~5c$O2A6|4a|y{dHY3Fy@j& zA%c}#&5hU;_zTdySVo!zP6^LMr&*JSqB8hg52Eal@wHEg;+)oJsumDhLvhoH5*b?J|4Lcm^k z5%G^g%y%%14dSl(Z(fgpY|_Yx;X4_*-)mBArJMm&tU|9tvJBCtI8u?fx>2bPjKx#` zP*1nz2biiDy$D+e&`DEyTM#&(T377z56NlkHI&Qt_A!2q-mg@AvAFs zu;ka^JObzh1?vw9iC}cv?;i6|XDIT7-48!J|E5b>&XR;s1Uj){=LI8VGg9Uw_TteI z-X}4G1<97?e`2B#4%Pp_0Z~T>`OeZ8tBIMkwYAB#^zpDSut8PS*4QMp_5grZBo|O8 zRAK#t>Kh~P2V4Gv(N-}gIx`cMDzEimF@6K>1RCBj{hH0VV0g^L7z~ph98HX$QHaR* zz^np42nhG-^XCaEg@K8Qo=^dZP8J^Yc@g-gk6j%D@2g5paJ{bRav=q8xrQXoOU-SUnG8Ik3{Yu$PXy zQ??x+9OBc6|ABrZ)GL8HPiDMWlyS>G20*pInQ=OZ0@BH}?t?0La1I!(6CKjKb4fE9 zcCVTo%D)Bt&+ImZx-MeS0JbfH^#gzZTzJzKHR<~& z#W3u6!Z2yQP|dt5KLXH}zARN|rXKeo8g41UpTGl$?(cL@y?sH9znxh%&8DgLS)4*qO z7PiQOK;_9i0Ivk6Y&$rfzGFv_c(6kNC_CZvAWnhW=MS3fLkvIHV}b>76Eu$4Bf>?4 z;sZ&I$Tfk|;Ngw}TmlpjtWT+_s=5MQFp<@e_=mlCs8PtZ#aFI5L<;mzWNo6`!l*)mNnM&aQVBvnt2>6zaS+9xU&&6avoNVamrPWHfSE{=Gt4m^ zl-kD2ixWpiMQB>COCw|g@Vq!MLi4KB9U+?l+TgSi>th-eSVW;PILL3p1AinXzIN1c zVaiTM#0M8A_tgX-_r#PiRCrbE3Hqa|uKu&l7UV9xQeyuEH58bK+3&cKXF8&io8THn zq`?@Iu?y+ApImBuA0@SdFz|87txzOxj+pkXl4jO*xCrSZt|`<&7AP`-0zTnCYi4R% z3St6z$GD^mgJy04)jZc@mQ<%XX}}~PyHapHKtkQV$aJf)^d0Uu-VG`zJ;2f5=VbBa z{&y1WcBJ3#*I2fsY;a4#xpVxH^Rh&cZ)KM@fUapb+RU{De1vC(#8 z0*09)yQJl-iBynVklA7Ml2Mxq(hk7Z%Ro1XQSP;;jkf*wZ%&nl{1;MNnupWeuEAvR1YxgOfV@ilRt(~o zUmG}b&2V1{98GZPNU4QNiOU^0W;~Ym0(}Q9PZz)V>^8xDVhp&ZH!!Gszi;Z>6%j2g zr3C6$i%mE9x^!CpA2`_@ISDw z;0LM+RPQKdNI5(pok`M_RyQsZ8GGZsE+7dJGURV~=zHHRAuWf00KR(zP_CYV0R`dM z9>^W`WwszAA85ZhgmxZ^727{?n-;JhkI;Ej00TyVg8HF;a-cSVghG&4h@%*auuuy4 zFG1(3pXi4H?gIXv2Q0R{vQiH|HZTLCGl!J&`kTtZiyu^<5D*3E%!wE?mnP|p!!p-8 z@yp1rfyeCY_|ZB0Ot@hzj0}m(Kv0gsYB!)}hGB504?*GL3)~G0qJIvg!QxQ!9SiZ@ zN0UIXWpvE>kOdt@w~tgFkOT=Kcsi2H>FE)fiV=!Sh+zgGD$t~mxnki0_SkpRe@b3% zuIZzZ3aH~r?E=&kSA=*A0He6BM7*~!G{+4Q##9M44&l3D?tn;u5OfftFDyWg|7Jbo zgiUwe7#2Zge-%I;Mwpiook=TEvIx>oA?ocAq05ItePob5;Mpw-HYf5lRPQ9{1EChd zmaDGPur>Qip9aI;20?Qr_^i*-SCEYi=-M&g#WawZ{uPu4CzaB+pw$Jq1UEub1*B>y zqooIlp5N26;`?_9vuM|@_1R1v(TLT#v9YcdJiG0vkl@GKhW`$v5u83f4F3LB$Y8P{ zh^1It_kX!~>5?eS>w7Og7cN%#J$^r+*RF||=RLa(KsY`d8Ofp=q5*{Kd*9M$fa;ei?H3cDF;1mQT~eNMxeAxZPvLV8Vw@BeyZx+z#$&}m# zML|oLe-h+^rfI!==%XdUJea07mK-6aZ@M+V+9#`}h$qP=y zZkE`R0F%ZoK)L1)+Zs|L03k=F7!{DV-Q_ZT0*?nduc_>?%1}x>lMFXAzy|f?8$nIb z(J;8fG{?-XzrR0|mid`>&?_10{Gx7*bn~Y&RTQZ-M44pO3a3qV7(i?q$816vp2k{oUco8Dd6YfTcXbrq% ziiHIJ2ra}JHM9iYdk!_+m=Em3T?^7lA3fSgKBJa>>k6R2a4FsiMd1~outaVGHbk+$C@Gd&&Hq;0 z9YRJr_A;)1=a{3>%ki%znEkZ_7ADg~R`zO2r->srkVXiF8^WbWtuY@~z{Bjo z)K8`R$r9^#2bM0BO@MhdCoDFx|JmKV@!s9Ltp@V*>>v*lDGP|*$R8oHPD#m12IV%u zaMYvDqg2XJ@pHS-ZMlOl;2mXZ{=2^2lhDu`zD9?-SxUkjixMk%1SYndJ2^=Y4i1tH z>zY%WHf{v!Q7FIEE)TVTDMWu6sRE>L0>h^iIlTn21?$lC(WA*=hYq=C&A3XMefVM= zKt&D6uim>E_C5qElxzr4~~Vy zz>G-7kuYHnt&*WQV@+R8wgU->(gByAzskufCGG;DZ8yt8?+KN50No;l=#Mjl4io{r zx_wNgadu3y>C<%0Z`U=FTwDgN*ctV>$`b3L8s^+5&kx<*iuO z!UfSSK8*rCRobOgM(qKc?$9ZRK1Ob>o`taCqMH0QnpD`Z%~u^mOOJ$z0&(PKLdvst zt5$0%;n0#sSH7ppJGuQR-D$9=ZY@z2{i(0)jjg|Tz7(YL-sDE6!I@mg!O_3?vbRX( zp6$|lvTF4=#c*_~BKXmx4wjx7DXRJq;rb#}qOy0Gm%=z`@8+TvX2%Ax&Kh-qh})7g zE@ryS3P30)FJ9b2ut}mjr&MNw5zT`w*t($ZHrYZDnW?hg;ObRy0}HXnuRHTy)vR@U zkXh;UYaeBxaDn0s(6teqJT0sw4uc!Q#zq}MKn%1RBqCy%rmCrl1puqS3V{i{BaIHN$el{T zEvj#D=TJC{LQaHpk9a9dZ-^zoE6O_^&6i4|vp&^2gh@~fwJ~}W3-y6o1HE&Z#&>&6 z=aE{mX3Y~fTJil$X-rqi`c*eKDz}vo4T*tZV!&(P0XEJsup4V)fF5U(uhOOGxmU2r z)sxAK*6EEzV1?l`5iwX;#EHLk!vJ1GfE6E;XxEyi!5^dzD(YMtoSc}5SzWm+hnos= z5N34~7euquY0d&RCQlo|Zeg%_iJv+bL%r8%+Ks}1vB`XHuyxTx<*RFSzknQf%Zx+y5q+(|mLA3rh`^6hDgWUDEWA<-DZOx z4EnL=PG-vGe9z1KwqzD5(E>j_jkz@PyWb>6HOtIvH0^Az4;Kj}`us+6$W^7cBftic zKHR-K8Z8)xeM6A5x#iY!;M!#lQR6}BF*G!so4jk#WB+1g;XqXZry5*(@YwBTxTCX| z9AP$f5}HO751QXhfP!O+M0|Qkfv@L+_y@+k7bqN12OI|d3EyqU-o3@?A9b|r1~LlC z9x3Rt$#ugKp9P$h((1`EgV|vzJeWO;I!RMtT%Y6v!atEynx+qmk-b{L25VotA-fV5 z7|&vl0#U>QRKOV(oJ&dk^hqa9Jp}|l;$#EVfaouWU51@7XgrIy5xO08-~^2#Bz>^u zKx;j&smX=(j_D(sNUvO-7PaiTO_=2%{prT3vmw1gfiEkNNtTbJ=q*Cg?>y!X3^op1 zyTLCZdn8aA6UjPRi;CH-lUWzaD3mAqBXAx)jhzCBFKC8dynfyJ!tbaV(k$xhWh7F; z>jh1nJqxp2E$LD)gT}k!VwRm)m%TV>R*R*bph1)S%Eopap3$U%-??)fS;01ad1(;x zyg%L>`VR{UPEEP&%rK4~hMUPrNg{Arg0e*kR@=#6BjsUpOj5in#uf>%n@2VxUyH0b z6O>TyVfaGU(||6F&n1|$@ieLz`T5#139JJ`z$UtOlz?*!&P{M?1{E!D(02L>&#UAt z@qPPRY}3h#NAxe6g&3)qqDTzhcYOodzBMh19o1D=2Z)~`&>Z4NMebR4(Bu!eFyte~ z+9NJOHzw+>aRI`3WBfJb#d-TT8emvDwX{Om=z%`{N!$ zWXy=}8JtAYf1l?v8>+0(r5FO|DnUagW zepa7jC)TLZyTo=HW2jHTy^!s{)aTjwmQ3;D2lN6Nb!e({vVL$Rbt{ zoF35kuyID#Cx?liGq~Xtkfl>`VF_l2X<-*ywpU<6VSPj(DCX;fijF!sq)yMjw|W;C z9$wXmxhaAmF$cyl9>4{0tP>R-f8kqC1j8WJqVJW(;U+pyLF$-bg9U|)Tqe8^5T7#= zD)BUds5H4C1p_x6BOM?>eSp`begRmPq9FkK4pCe=W@zE&0ylz+!a9iK4PGTD`p0p; z$FN=Mgd@?&sz=#ib_AE`lQ)Ck4gW%7;6ic#{MxbgHfu_MbUL9>F?o3a+cYzMHAJ2_ zuBH$aYeQ-M0^v?WlCHr26Lbq!BVT+58gbpo2+sDmpm&zzr%n**5y=b0stqxY9pSEq7t>5A56Bw57$es zmxOC1BJiY^LDt7el2Cintg_7Ny1$wxkB2rdc*3(2E4pqYWkyGrN{=TBq9u3AT+&qH z0ANNCKT;Jhw5*hGX{IhVqtw>Abcq8WFJC{wVqwNY3&xzo!)ovgrL>R6!u}P9^O~tC zA-6WwT8TH=Z-ZrA2YG4qImE0TZn+1bV#c2*BQAJSP0k+{MvcJBYk9S=S2?D2Jm{`( z&Ycyp%V-ZA(AV!86S4wE+?tG+j- z(G)N$2Ia(DWlA8GKy3*4n6xs|d)$B)qY2Yogo0EQEpUeI1`MAmx1yFOi@G>WXMKUY z)mM7x4_JT7FSIf@9Z-tIy(VLEGGQA&CF7Axx?LaiGB9%leJ~D7yP%#*MPUGec!Zsc z9X=OysDhZ4Ow-R_OMz2SagS2UAkBFJ~RO$DWt|vyQ z`Uv3GGe)^$r>KQhAXacMAbu7E_9r_P85l++Z5tEmNM5oxV>?uHqzhI$IuHyjbh|AX z1Z7#@0bw%~*y1>O%{X_DXrRw&ZUCtJ|FuI&Mzx*t1X-w<%mY3|5s+AUN zPf=LJ7!O~fE36AppITg%pZa~tEM}!|ZFZipzQEG3?9I6NP@|OGBlG+*Hz~KNMtkPY z8PszP>+F`l-%ODojxT%siF3XxJ=S&1jIC^F?tLTmTSHuch4PX>^p^_zg_}a3#C6|G z`Cg@pvOPH|U^hKisPk+vDS2f1t#;~Yw(j1nPghSkUG>Rn=ehAb?o0aD5L?!%cXk^_ z>YAOSA}*+upMJ_d-L^$)m7UIVdZ#soX&d$`Xi@Cb<~6){c|~He%Po}glgm;(EmO{_ z6q>SbK^{7>%KTPydoy0U$n@oR-KXy+g_B7L#&ovn!|+}lAgF-;By;&A`iHc&Z8 ztp)E%A%rSIDT$7rDh-^qbesQPSRlm4C^M2nhn^fBzDKRBMA5<%BJ`z8{hFZ}_?ZBy zA0kpTnhx8XM`!yB_nPjl0RlWfK$2Z*XW*rj!K8W#%MJ$pgb=U*$%0>7CudmUp2A#6 z^^MY~Kv3YrhnBfL=r)mAlT(}~3`kQf3 zCbIK|m!y<_tO!17rt@of#ipev7Up!%)Cg`*3-FNZM+r zx{~E`^2`ma*_Qb`5^m{STDT;`CtqApFO)3aGRjQh3Si_b%9%WTauV)3cYSzo zW=#6vP;`RF-CUhNV1t0^!|F9_1nulz5oinrM7i0)QS^+!A8IiaJ-TxzmCsy)6D{x! zpoy?K`iyqg9=s$$yX0uL#YKk=vq=`(i3|$g&VFl&Jfuy zpJ!BhVN2;PW0@QNY#b*?>nAsQ_IaduUHP8XAueY!XSS5hrYP37>K;XSe7%OnSN!L4 zi5x}Y%{IjwW-_#0BQo!dzn8Q>)HYJTxKn9`nQO(g`?WgLdF{Ovah=-9egQozAMG0^ zg>>q6GIw`T*A7Ukw8YJL)ZdkM+?x^>teB)%JGtCm%5v9ab>te0;-yWc>s52F=U1J+ z*SwP1ts>}AecaV1?{`z%xv4_KW9KuuF3o%&J73LE7vr?rPkY_c@FM@v1+ojCjtkkWsn~6qook?=`-Bfdy!Y3?0qnB1yNBQaPcAoaOn0n4LbNh0{ ztX+!do10(1$9=9TZPvXe=VA4Y?&r=~0h7%$1DyC$UEgI>bPI3P-g`IpXW(G=Qk(sj zMRO(Us#5>TTu%3QeLuS=!>3%&7f0H*GjVuIJ2G~?h*D3YdM9&rf6mSgcMz-p627|Ks%q0-Ts%SduoKd%VQYfrEpInwbxFj>Ua z!Gj=ocfRPna;GFe-N9hjb6V*y7bnj$E-_B4(aj6KS>8MU;H=*-ztT#FlJ(`t{Zj_9 zoUU|Mt@=;%BU^(f69k)#g<9B>*;IQ4_IhdMxAQ2^=egyxtn-P>T9-}7m3nBeLeuB8 z&KkD&OgFyXGx<7fv67-IImUo3BhN9=2P~z?5-6x4lqoILQ7G%bZw}tAt&2oZ@J3 zRIsw^t#|e;DV!ur(pgyZF1Ge zOU@oPL(kauDm3S6#M5;@ILBH0A#;Afin^-%?FFvf`+EK6UVfhg$76J6+Ge#VDYtcm zbV{i-mA#pAHlZiQ^sbqGmK)#7DXP})Thucp@pJPclYz5T;7#T@PIZsxiS)*6U8D-} z3mRIt#d5k#KcxJ@%gd@#bm{KzBk`=;SBc(ZeI18@2HS}A#O^mQBLrg%jPm3r1sW{a z*~*M5!!NU^clEFGp=|07Wheo?mOSpY5rb z%#AZmCWV1p7UbsI_&)YeC0ncwy*ZmBDnV(ki9M??^4cEMh*ZkBtW1x{QDqJ%oU}G$kxQaS$Xs)brLw1rc*m}>KvBT=V z8Lg)t3_f*cZpocn@=M$PDLJy~=In&)-uk7~mr(&6*U~3VYmzmy zc}Jv|&3KH^Q|T4%6spD3(SQ+Awvk&txgkPyh(Ee=3(IIc--!Nojk}8G1^4r*nF>PZ=L9Y^br0A2 zQENFKr9ToT7`|#b>Iw1}z3k!2ZgH-|o>QY-+8-b3e3Y$-E0F)#PQ76vQ91k>_r}kS zjXV1fa~Db4aaM;QMjMLoryuQ1JhfIv{x50iOvIOF6{VfW#o6onoj&IOY>2z!yK_7D z?sPsTir_}S+Iy`U4rMm`!UoyOj!yL6Y*5BQFO-`!EspDz;B#GR^;MbiRDtHbsm`BL zEc!N#2F(dMzAV&@O?IT?4s#jw*)!_+RFAcViHFHGLXe`*)RPtUo^HlO z&b>f>wc7WyPruewgpaGtxQ($DwlSM4?9lxv|6@l>>!@EI3)@|*E1OHxlV^q!JSVOj zYfm;f-1KU_cdGE5ru&{wF&ai+F&X_m(Vq)~$C`UosbD`ZqKUaV)fSQ`e_;B5eJJrI+z$8l`g7g*rwxmRoKv8luDvxNJ~s z(|y_=s1rI$6FB0pZo5ctr?i?rGD?{+7{}>`~ShWBHiD ztd(qx`xR)Jhh`WfGS-A?Y>THAs(#w@I&i$Oj@hN}O6et!ZCBZojNEQe=@ zm~>4FM~=?tO`-Sqh}GI@AF_=($QsiLAKMXC zAUDX(Dau_C-`||RTy!pvCGd{4F`H|IT=ywgV{?t>L=Bw@Rw~n}94@xIsY$U`iWIj~ zu1z9^PnHR>jVz~JmRhPiI=x29^iHVCV4<+1*qc1|rdKs14tYZpkJ*g8r2^OYc`Wq= zsC66r;k64ic|IS#62$8wn^fp2LXNXozrxSxS%Z%}3mp&Bu6z_M)YH1-^qKSi)iBZB zj;>iv`<=IVPQCFx@`EPuS@@n|zF2+pPww?TxlIifOR1|hD)iF#vfi%ujT_xNbjP1d zQBhOLJ=)4xd$d7Pp(O9;X-{h1Uvl*(-c)z1FGm&@@^YH&a~&Bc3+xL^DY7yg?Y$;6 zDeWR7>dS=Bce`ozjSnBT(utr`_w3uo^|dnJQ?GPUF@n;0>4bQ$ir-3)gtcYeqOOdm zB9X3Ayp;0QhaNuqJwL*2fWvZ>x!F+r3@yhldjN=mb-gfN9ORn+f-E%U>iozq!6_$LbR!~{T z-)XY--y2@B}M;mhp4A0u>Y$Lr<%`n{#9b)U{~87J@*SUU4c)LZcJ55#4}jWU*=5j8JfTH!gj zLF1+VqH#iS>!epO}VAE%+o%-Zr8@6}VXD+&Nsk#D-eX8olD*_osTKequVfu<@3a zF;nRW{dVCC!b#P-=p7=x8W`m?#6H%C=g3WR5A-JM8As=7#B(VeN>UM4)f6uEzo3(( z`%xgrjKb1lNGBCo7eC}eKmV#e&Y;P=vz)3MEqUK&QN^Ozo{jQz*8byGwo8UWti~yC zN7X1qyW=UPnW+d0SnfLxs%-MDh_q?5ljls1_? znjZaW8$U41A0FF^TAAW_&DhuBy ztG0;<|Havxa-nIhRWAM0yW*AR(7@f=!DqEOWYLUUNPg! zVTz7f?zxba$K>x9@U#qD=&5Mmb(v!(XUu7X-~MHXc?=F~^rc$y@zeUPQC+InoC;ap z>~(#*jnl>^;wE>Bv3iaCO_#2Gi9*2@L0qb{TNiBQMvsQ=thvlCwW|BCS|R7v)t(RK ze9GecYuM^I%=xsu^(KrNldOV^=EE22t@U}rA8bwWRQkN1m!&~~RN<~;{et?3Yx_p1 zEj+O*ZtEx=k6SGCKJFPS9h-gMoS<#P$jkdZGrY@Wi=10X55s+Rnmy}imV-;j%@aIy z_YPx5SC_uho2;0@J>*(zhZS}5N~8o$j%RO`IkW2%|2#`|qg!A7saCUCjPQWc$boGH zZTd=q1y3`Y?hYOum296J)|lakI?h7u_q&x*Fpwofd~_xe*~ad4=F0@6s*exEYxTO9 zPOynwVE`PXPjpC8=bSVG*$7M}S+GF{2z*qO$8?bV@57!NiveZ3Z8|23q4OHAL>IMW4#u(d zD~`-~wXtPyRLm_r$Ti}gYcYhn$WcV+pdX$IvD5>agt-He#SwmPULFmhIm7%F^Ln`- zgtvg*82aO#+Rw=nUW{GNU=#_G0p!`+Fb4-13|-k|V$vd(pu)<^9fscEh7uSb6F+Pd z7<+v4AgEtp38_N(9>{+Q2=>oG+o7y^Q-bz-u4NT3xcIAB>##J;bSk>NW^!Bo#Qf#C zMY_7K1FM~FnLwE&6CfD<3(T*av!C8cNjWM}$e(7OYxXwRd5AtB#~{7T0OV#?F`e}u zt62Den2^0%F&W>53u>KNb5)SxSJS+jgm1;kcJuH zd#K^bH-!*zT0sq(Is7HS(Rg6M4F>0A*=yra?7bqnzEP0YuQblaH%8TF*>dzOcY=M18E(r5E}7qV zfc)Lxl^kw7LvlyJxdE9IV_R~e0Q6(zdKGMQJXmv#bugq~m4gA8SEDJ|+`&*A0bD!= z_cKi7iEjliIvF0o0STn+0fz_rqIfc((O^17l*5=hYWLf>x3$479K9|`E`d-*fzS%) z30{Dc(7AyOmQm#Pqq>^#%yGGnpE^}AXsc~qkHI}Yl@JzMW6XHNcYzZ$TEfbLk`PZ8 z7Bu9Efdv71L@*2~!I0s^o@%&V3BfCgiCgA4_$`?CKb5e!iK&n;7Cl3t5Pe5u_wNGd z*WbhF_iZi2jl+tbJ+NfFjBkX2ZY)fdFoR6zmj@V%9SRu^@-!dM_a9B}HO@q!ma{Tj(KCj-Mh!S^2ppB3_2q6e+~0ja64PgCG2}&2W5!L zDDkm?cE#H0s;bIT?!WW3D%{@0?^N|-HP`e~y^hdG`C(>ZTt3_3rc)Lc!i2#DZ7iH= z?2Gs>#NR3`JQiW{uP>r@lXi_Gwt=kMy!jaDiEwWr>so+_!tfQQj8lQ4Axbo$FM;gs zQKH|D-?9_KtE)wU4n;OyUwf3UG)cb1r1DE-xH6=*=ZRZNPLyd*$zdLY2fZ$`@&s0E2n2Z(Uu7`F+HBK_S2Si66vIRja6b`4XTbG9 z93>uZ=hW2Z_a05ej|OW-5mXk?sUQ(1gG5X|h@%;_>!Bs|*2PPZJ#5FU7$|-@$ha#^xEkn4WoG# z1nCIVJ=I2lNj4#6l zdjm!WD6?y(&iwQ7ul&JyjdwhEH;DNlYdq6qj~Vam>YCcs19eF$7Fm9UuUiOIksw3C zFiKm9oIdu_P zVB^FuLfEfR>c7YHdC(wz&JhKj&&$+r(ENeH#Q02(waSqzE&IjAjo8IWsHN?)OobRR ztD%wnm;QUcG-Wyk+(;_Z7R#ZPpk-~DUFg)yv2^?e#{K;_=dgeOn)UwB)&5cEhD)&Z&p+=}SD!~PBz_Mo z)AlSHf{j4NDu}bO2-p!Wh+>2RLDYy~m-HD87pb_-sUpN!=DMik`1Jk^B*4LT07Bk)8J+xZs0CEe}l6G z3!EN^JHdy?*tUQqQW!y9Fd%!ian!N@INvlGQsR>cL0F*LZ##b=u6~gC1;A94j5vw5 zTdx+DX(0WnAmd}&g~k?AlRHJ7ZCD+X-)lWqlfCrgk}EX>w~BAu2nDJhJ}>wkb=oQmIwPD#2)%TpkRXV4|ephDA|7g!zP;0 zl0wXKzZ4bWcTJ_Z{DEsD0!uhB;Utl{@NP7}S^E-t1}FsUK?Q&<04m=r;NyY-`QY*6 zqp&&=zZMW2d>n=Yh_h%rh)*F|;)!n!Dm#o>p2BlUtH|&-+Dy*Em*hZ;XIrpFjV6o1 zRpSnd;pW*=JA06_2!Uc10|O1#N!}qI^%(v|r}gb7zRq;aGC5%0IX1|ZgR+f zn+L&(M}bBscI;m-eou+}3RxJc+^Fm&){-cCB3!z=$8p$bG@J$#iR~9EHNxG)thtpR z63cwD6by=MClu_5AYZ{Dmo??N2BH&r<8ZV%fp9GDV~$$mj3~?^pa>?*|RscET?g6RW;d1EQA_IvZTIra@51WKFX< zA&ymm(1QFV$RI{*4MajR+WV{6X?ho^xL;&54@j4UfeBZ%%HGfIqo55+LUTwqajI~I zC0zd}EFa18p*McBG6yNZ9%L@8H`qsmXZ$HS8MO>MDmb`<<#k#T)+20LVP>LMOHEAy7YEecCKDu3kbZDe=yEXW zHJ1v*jlmj`{t~k`%T#Rr*on#vKUg_Ts?%k^m>5$-%fCKpv=H*&OI73m(3Km9>a$#= z!AqKUT_pUAOVLom*AGJBHQ&cI03Lf1TvW+*K1=7_!lRV~5-G>?Q!)bzO< zw;7Z(>b3qNM1 zX|(!UV1Muh^jg}HVL`{Gf=A#R`wFmzV1muj*7J2FaJCl6@7tiaT6MKho z_3Hnd{~F;MoilOn$6^xuXHNza1qp#G6*Bnws8Z;!;*Hj-@)O7Zd4wJHxz4H5 zG$bN|wg3k5Zw@0iipvuH0wFn|2>}O=&K)d?2*_-f#)7h2&`f~6iAX{L9Ubxr;YNaK3jKo6`N*0P;z#=wF(D_gbX;aL8O(VBeV{A3@TjW+XycoP+*1A!r?7F@FL{9pQ!-zUU_c_=uu@HmqjCmQfaH0 z*k+Gh8uuTDD_U^l8QDc{k-`NX0^~NtR}@ke>n1@$@g;W^o7W&A_Ro2BDpa~U$1uwSBKANxq zdf=H>W;Zn7s}bOMf^+{#%Xc)MN8foyELgC2ima4-3BgRnLdVV~7pTiR(9=L4co!xY zQ0ssr+YZhZ4P^H^LTpHjxC%61=KS+=1@=cJ0?iWT&)~DB3^K9YZs73Gt*@s|Z zUiqyF@@U)uwV375krov?C+r%*_MpMD21uOXnt^Ta`QwAy{J|9KXi>r`M*Msu`>JGm zgRcCGtpC(KvwZBaA>1HKQ@EWzQWjxoY3(`- z?kD>xVq-@RH7=bb>O@=;LglT^f}jGZ9<#Dfmh?iic2CxZUIk~3vzmsE_q*WIocLRJT zE9v0UG#N-l@A#4c4hY*C2(TnDGF0+-tYl{qf)l_tC|h^`XCO;{WwYboN%6+|H99Mn zxx0h8P3tX3j655MU4y`(C#-83?y>{>`FWeqqWG1=#xF#!FEwTVpIMT!Nxrfj4OXUr z_l|#kzhyyN{Zs!5e)v)U|2BUAXKiC~P&yqiuNv0x*rcZ8mjC@1>j^Zc{(``mvKlo1 zpXS(K@mXioKMC^4mD8vHLpb>LPw7{zko~{-ug5!wAW8Z{H5zV;cp)|Z*)KcP)3nEQ zh;=>fijL|pTovxuHhjLs8({HNNhBmnLON8lJ4rP$-L2q!lHmt^5z!MS4;yVB-VM0l z{*W!^%u5Et(+5*m{rOCzvq>ZU#?UacJ<5Vt2Yp6E%Rb!OF!yx)Y4@jYYc<)3?pfzs z>kct&{rvKE#Wk|k08)@v$WDp^hJ4jMGpC36`%_f%^0+NjZp};ubRU&jEf0@HEG=7! zrA~K9v7(ZqpqskAXX~#YgTKiX-~wXvdV!8md1K=#05Q;q@M0c0G^hZUWS{Sea?UI%!_;~@-s&tId+8@zywOi(()k;LP^bG zW+q5<3VZf=BmX7W)k4UFmPjC(3n(D`vJ}2IyUhl<5uZPzxbZobPa6Eao7X^b^A!{Y zG}s{d6J-g^SCUKd&4~~lr2>?+hh1b*cq8f&uNIUO*nb4CK;XGQ`k&6b-uLsXY-}un zqw{q$vz5do3qf`S_7PY-nOK$Fc6TPyZEh#x_K$3!eK1IP0r&^;MRtEpoW>R(PdKU3 z-~%?umBKX(Qd=}xglvih5*Bq?sP#}2pfAX+tPEIMaxIOJF9QrlL#!-PyTh@&{1(1H zY!T3zd~$R~Cq(omL?2C|c)_(Cm~c&&0W9h+EOAmC^2&o|3BM~IvJ%j(fxjW&323H$8W79gWfc)LI%nDuu4RBKbENmFbx9~x|X2qg&pwS74U=c z@?Q7~U4at>K(*rfr3mV51on6CoxOO|!vhpp4)kgG-@x=oe3tX<+d^#90gwV7_B{5I zXkj79MrVf6gZ+TZI={f>vi~`8cOn5OaH9P~hrI?qxNYVVz^}-P46HK04X3h)c+z+V z?3|n$pJdY;OECoM&TRVeW0K8L{_x8RnWQ8uOH1@}Hhomc5X&H|?j0EDK>Yz1?#m(} zzrA4_cBK$a3YtQ=)6C4xVee8NkTJ3a3Dbz@>FFF$c0nZ=;xMUxk&wk6`4^*U~`Oz2t!k>!=@qoV73#Gnb5A181p&XzMaFGf@@d z7m|d8y)-$+CqELtGu(qPxgdR~xHv0T8_B`1j|TeeO#`;lfIr|3z5%r{;CGm?KTA({ zI#Cl$79^Cf!%ge4mcnr+mptxbR0FVw8#M%62cCi6RY^sK1s+jAvMxqdcN*mDqJ$$p zry=3tZ!kv0!2|35$HYOEHCJ=$aozx2YPn4Qg+UD+ToMBty8yJZb928*PoICjj5{`C zeoG5hKFHw?0`w76GtvM*sw0%uptv3CcN<;BFP4NqcDMY!EavT$RCsbK2l z1s)cbe7rwkGc9;WWCr7u@IA%^1~aIkt);kNDN9uRrYrAYOTkZUCIa58Yi}Qn!}7g1 zQ`>l6cXR(Gm`s2y4iz0D2h2IGZEe#Um&8xpcn_l_;VN;V9 zhF2#rI>1(71B6%1jSwIr(wXq$np0ugD6uZMvuF^+P)m8r1>{(6Wg&9FO9JxUK0-sh>9Vz`y92DHSt{$OU6d(o0kHy5eeh262J;oo8-Jr z+#VFn1;Y0nwrs=-0~?Z18Vk$G4V}-9SiZ{fcS1u}Q+bZ|HuBS{dnlx#F2pDu_iO*) z*Zeu6gu-h?hq+Zq=mEkm@!dji@xukj9ZFwB#9R2MaCk(D?F1lZUE76yAna^xr<= zivGBwVt!3c(ATdgOq;U?_p!n0BnLM~c#F@(^t4r9)h_rkh{iPH${y=^FW8e#>q+iE#bLE%=QFbN7vw4 zv2k&csdUtNMGPikQ~5@vdcPh`LwAsf~4!O{MZ86nmQl3EBZTAp*x1XdIiD}*8$y#gbX*I^gF zM^5W>Fzq8~1u{1B{k7}YiFFr73p#v%sUv~lubxRqL@xAa8TeU-@{O4>kAG+-RNCG4 z^n6iqZ8PIT1ATp6AvWB=7mR-30|lm#S&WmuX4u+RzKu$GQI+DIw%D_2T7PQ0DFc>Fj6Y65@*F#LoE zI~Osghg}vi>-9EOBg0epz7QL~$W4EGPm;FsDSQ|ZG+X-19+~a=ultspd(fuEBnfB$ zA~Q_a$(}bleQy|g!6A&&yFav~Yu^_x9v&4SDfkON{4@kXDk{u)Njre<6SY4=JO*^W z$d`a#Oe0Ode)*yUlmK}eHDMI}dHpp^OkDtI$W8;X&|ey6;#cb6VG1K6n!XmF^B;EL zQlqj;o?9kLmj%eZZxo`?4qPW?x+>5Ca+JazL<;vj2lwFh+qVqZxI^{_BDxSE5W&!x zyy)O&fd>P$=g@~AmN;2h7p?>Zo-BGtx$$9FSi|G+aHe9$Klgm#dzAfHY6a$?%a97- zq#BDJ7X-E7Cr{3*?%2f2I!;VH>0V-TR=$2*PlNTX}HJ{!^d@?$oIHnYw|gd4+*>81#qjK{DiQH z*$6BNI^bW650Uu50f&~Xmcsy#_@D&_c3Hm2HAWzqn3`(q?^i^qguMnMGcz&pRo(&* zeRv~2{PN{EfC>CwfDn=^&Y?i*aZP?IOZF^fQX6K)OUeh`~ zdC&zW9=zCz4Hf~?0qmUN_i!7&MlMEbPRGj+|0naE7EM)i0X}8-%ZUA7dSo6ukWpfhmAm%eIa{)`++^g_h__P+?v-CqA^8 zv^Djnpe|B7<@Nf9VJ$53DyMMjP#0AF*n#2{{Z<*rIma!#4vN6q3gMVw;Ks)HWTwF0@Z@6%@n@k_{MQ zY3b>|wxhJS!?VP4dPozMNT7{2R%AWFxkZbB?LY6UII~L zn>r9QyajB?BC}mQI5VxVdj&(RKF34_kIPF+eg%H~kna5uN{g2m9$|_Q`Ij@{Vvt?} zY$~L*NoiAIsW2vB>nIrzh)Hrvy!d028vY@Mk+5V&qB2}9d^Np|*=@$7D9J>O18p#L z#OPpQ1lQMHu3Nu}#1-}ohtthu6DD!{M!%%v==cO}Dgu9ptzqE=I#{+i(IKc|b$dJu=7o!5nN*xq5FcxgHE!TsEP42#P(bjf$A4C@} z>jz$gUuNZd@7Ei9z;uBC_AUl29;m#r+`IjpI_J~M;Xe~}*V5-_BuzNV!t1qfX>oB8 zPb{)F5B~wkV_SkRyo6e`>&srwSTg!#(cO*)+X@? zw#7;HXu^C3w*+G}@Kf45I}5OyNlHjeMkb@f>SEM+8+|(kg_Q)x_VvY+?Ct4!mYf`f z3K2j6N_d2ZPZ#;KX9@(L)(M9wDZ9a(>2g9XiI~E|6`iso^*}>{{t7zEUd6v_*BP}% zGR}>!AT51t=CY;rF!?B^vARm z6a^JS!#>qb6NtfN9rbA{H#@tP8GQ>52gaVkD zNe)H?1mwf7T9pRpe-sPVr3QllA)~zjsWGC4ey?-(pJjOsWoM(#dq+lg>nZwo?LI9% z?POr9y;(1z7I^umq@*!46`O-+<<4fY;@C=s`9d}fD5Yw6yWQDayC}*^N+apbi%h|* zK9`s{Js%uO8h&pk7P{6Qz2;jgD?Bi-0{=Hn%;Y?2^0@Qizd>cx}v#!Ytgt2RY{7bszRvP(1vQw4zA%Jq*nN(_CP{c~5YS8aE1 zf4`owaq+HoqIUX;@!$1KEm{$%U?xcbDFkokAL6Kr5I-Tk$M3;37?d-|mTx|_$Zp`w zqADgGZ?XRP!+U@2p>?mNs-PW5Q{u&4yzmAe7~n~Mem-up1;}(Ot3^+T`_)FQJ(~-tb+p_o4CVP6{{IANcJRa(G50|YYNgFrL zG0}36rBhk5oqKTFlu499vL{=X$!Qo{r4wDJqms)oncS}I+Z7R6N-0@lOdXYwvLus` ziK*P@&CNOW-|fF@J~QvU^SRSr zh)xSuP5tQaF&niEF9UDmobJYuV63UtQyU;j=@ewra6K<2M^{%H-rr*s$}tN&NjTPawDKp`168R#mUeyQw&*`DHzi=BEn~jTw$9d~?fjm5Tu|s(z!4-{U19oNQ)a}8 z%NZR>yS5r37D*Z^6njcRPOh}uciKM(Ig>O19fe`=FyyPvQkxh-L6E_5TfIAzL5TDq zqqes%11mcA`|ecz_`7v5OMU8Fj>bNi=9|)VS>i0n6CQ6-LufTyXfIjQNU1A*JZziy zAf&bd{LdVnl8ZNZ#=w@+7Z;AUl-&OyvT<-JhNrOel>tc!Kj`D7@etsKxLV0^`lIM( zR%C-I%*c>Z*=fyNEu+OFfjTohto1LQh04G@j-#dKy>>R^JfT1s;Y``{9zE_ z;!WlFKR_{pEW@kgs2M~uM99nZ8j*XPPcRN>+Ls3_T#KsIyrjd!!tM{fg=G0-P{0wb z;*Q*W3hRTAe#iVTIgwDKn7acak=R%kFE)YjjSPmIh0CLGRVqo{L3TqlYfh|TvF|#^ z%59|2*W}$@aJT}FM+1Chgd?;98Y%1Rhd8=)BFsbZ1Vv5!zesavK84=pq0X%yG}MQr zY*SMDNl^nv7veR=>!2UHcxG=C+qcTtEB5yRgQ}8d*~Pb zo^N+24zS=c?A|xHTx-QLUq3$^?xMXmHu#~;fGQ9}k-O)k@+s*vkBqFgZ;Swp$8a7= zFs`t~lYw&3ZdZZ8L#>WNCQ;En`4C_!(CN99lpQF?KnbJUD6l(u?UQ7+LrAPcL#qHg z@#w*66k4R853$YxS>a~`C!u~!@4)R4KwRj*-ef&c@Ks0V`l%MYb+7^R{y&z3D)mM>o(z+8y==k zZcE>>OjhuhcrAg}(YqxyTZ&cT77%a-&5Gc60<3||YPmn_4W0ogUyw|OJHcxU z6FKRUhIL{@Y9gQSM+jtOxR}`3RhSC}zAX{^2ILWmiUWJRZ!{c3=`Cz*vH#W)O1_~z*!G5>CKoOO2qB;+gSQ{Z$yle80xCsJ{n9aEJ&)+J& zxwFtvNy*tUz^AAR%I`^-c}Y_|cPclC^ZLCb1{PSUjyzHHFMyk3tMwx+te8)ypB_!*?X z&(jdx4#Fh>u0l<~N-J~sk^n}=mZ0d?8JIhQ$9~8+LL!9`Worf(t$hhTgH%LScLN#( z7b@!EVTG{(u%Oi<;;YR&d@V@W=o8s4m;!x;=tW$cb#-Det&NE|-wTAv=wx&>n3kHB78wjTK)KPE zKA(98j};W6dPOY(Q2>SV?tT02q5A3-s!5CLNZU99TAb}U zyljaT=!MmOZ3%>|J+wHZ0VX6ebP~3q4FEgShaPAG?e&l9eR&&T(;2Vec!rVO6Kz1{86Ho=` zaJJ(fkluJi)54Pum^wEAwPap?BGX9#WIfVt0xlOalW7K*)FWPAS=@sTpf?~MX~m|I zy};o?u?rU`KA5P8p%c0H<_d4|0aGdD=@VEy5sL6l(7>)VmubkSZ~6}G8;a~)IW1ah z6G{T`>Sk!71~tSl92iz=WddZ;cDKTZY3lKKnV8jG?82QSXwsTvCQ{9yMV}W*Ed|=q(x9*)PA%JMd;d zUJ8rT`L;1%=hO%7o7`%73S_Hl}>3DB5;L; zvGFgcgvlL)pK0>85a0xi9-0nXYf^=ogKwEInn0-y*3dCt9jtspn0mRN^a@2R2IB<` z3rYMq>-BFS!a-$lf@oET<;=ZwRIc;Rxh*;O)O_}{Wh`)1dwNVz+@Zn+#R*sCXq{CD zq!6M`LgACsTyXt6k78i0OAl%xrZbRDTD!VhV4@!2^C2BAes;=UHJzt-_Nn>3hl6>Q ztnL215zB+JpQF!-;6{XO&?s?v;Z9Cn;$vJXKuXsi8CLd9+x-)2c6#SXR#E+Rnnc_7 zg=ni=`Pmhws_by7HP#XVT zGb$F;m^*PFgI{&mJq`biS!dP|^P)U#lD=T0x>4@Y)2x+!)@2J%&f$w2UuhIGKEI4+ z;L+xwX0oV2__#zMp#6Tq$2%l(&1Yr!(@w=?uyYi8i#P7H*tm3S((@su`nnI13GFu4 z0>Qo?28wKz$2wH5bopC`RtK&rObfalRS-qV{|jgK>6^Usvsb08*OOSUKeScygzDq{ z5(ZE7PtjLOkFC4(54q0+`J{6TqW zW$%(M9BUX(rbvma_W99{D^Q9*UQm2xtI<7oOjKp|6#Q=wMuKZf%a6r%)XL1;kvZ7o zci(I>JZ%NzQT(5k=BMSn>3mL|`9GS_&`x7uJ%dxOZtz4p*r;&nSMNFf$jbGb!?d6> z*^z+$)iRG5YW4HKJOE`regQZ0ewDo^?Xaz8mdTvi>9~0JGfTdF$FF{Z|MRak)1u8H Wb#@6Wc-3?8XZvRA&-td#$NvkX2$`Y) diff --git a/docs/source/_build/html/_images/screenshot_default.png b/docs/source/_build/html/_images/screenshot_default.png deleted file mode 100644 index c55b8b2eb9c71b2233491aacbafd3a96d82cfbaf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 261667 zcmbrmbyU__8#anMih%_NA)z9rgn*QU3W~If3J3y{BAwD;0#X9fQc|LXfRs`yDJ7t! zbV*A$oa^Vj^S<+)v(`C(9M+m~1|Oc-``-6`)yCtByyWhk)H_K?NOntImbgYjvQ319 zWJ}NXZTQZsFUH#V<1fn#QrEZR%W=DoJN}=_>Y}ohqN$$M{W})AB>E<%#=7j5+7`OH zCYEW=-#n1Fg0PgZeXlSqIk!OflH79a*KM)VSr@Ngol*L6%lJof(52Wcxg-5ozKQ?uFC;Q9e0az( zyjzX3VR6CytNp8AUhe<?K@tsityB@|d^3hiP?=kKbMNv0| zf}|+FUluqK8En?76Cc>gmPg|DLrn2=oiD{KSAsUx{{MX~Eo91n z6?b6PUE^rp0i|Io(tkZhqTit9cTtN(Z^*@rYrE`AJSPYI-sQOcYoRaeNw-uTU+=me z&;M(GkTnS{n@kLwjXbee!dUgLb_Ma&WT|--BwMJN#S$6qaBGX6UF_BpFP#B znT|6xY$jVt#mo!*&pIpgsnGw~{w33@2xk7Kn@x|OJUOxAROqBJWJ@9=d9~ND&zPbIO6bZn?!1dsZ}lsbe5+Q!JDR!k(u8ncsDR0ln@vr!Ap)#Y-N!Ww9c3xSe3WDTrUIDa4=$o0*?y!8 z_lnd;_Zu8y`m>1!Gh*hO11cX|E=?<|s%rC6v#RBC?b)*@M3!lKsLnSw_PA22+NNl1 zKc)92`Io|>TA}Ib>G_jq+1`ddPk6X>XSYh?o?s3Qz5bO#Jc1#0LDI-*j3>3Dab@If z>Ce>_(+vH(+V7PCEH~a9h>VO}&39U%2wcdg6(f$2AG5Bpu6JP8nG;87L%Ez^UhF6gk%WewaA=q*opmz7o8 z)D-mF#r_;BAUv2=Ihv$XUH$s&?xzI>B1exNUClP+H*88R)!`2HZLMq1(GIT(dUK=0 z!`)r8aghC`phFOysZFBQaKq1?dj{W@dM@?(@(fxxC9BBPYh6rI%j3Rte=@_S!`^1H zHNfb0V;g;vhnJVmkZIA?H`iI89XuH}vMw{ex>#DYdg z?>eQL{;;#4Q-11C3A&&ADk9j>PQiHQ&Ye46QCxmI`pU0nNbF!zcv-yY5x_<5?M2TY zMDF9G_R+@MBY-I}WS#9nxsMdfjX+{MR}*WpWUx_ojGe6P3>)e2JV2y5`QqqOXm$whqZsj%^bF*zq`eN?l zvM#VjnpQMV{b<{AoU*TWx$ma#!4c|(G|!V)uU<{QokQn}54gE|WboN1&F)|6eI9M~ zFAmj&o6ih(sTEoXN-dqW8S9@PZzoyJ?P2CK`T1ALR+k3F=J#I}s^Y7H^ISGWIS;cw z?D{D0ZB%+C8Re^1Oy^C0cn*-ZYBY$rR10xBKFQ z)qBSyMM6Z4*+}kBcE;;?kbBuqiWnIi*Nj??eD`~G(UW}NzH@%ZE>a5VytC6_e$lz+ z7q)rp&dvMC$?ru5|0K4=-rwGva-A+kHR~8R_cQHspT2I*x;2M|Yr^w?PO{1XN>=tI zZz#^rm1O19W!`JgJt)c)u^Z?^pIfFVavc^-5{y>N9qfsMX^?#0}zrw>x*%e!l2QvbY%Q`+8(TetxVqAf-ILZ{2EszO3d)AieYI z{=>o3e{G8#YRfYGnQKSE&(EKnocvljW;02-uj)3DW5M=H88k>!Z|St~R#@5>MbLCDF?bVOh;Mlzgy@jj!x1_s|P|R?=V}oR2vB z`03MzkEUWXLb?$zL)Pnge|B`VW>|;YIiqUC-3r|B!5o@X-y1du8HzRBy(J@ zWPZWYb9t(_G}m^DoTST$DQ%RlQOZ3Dg1&`BZA>}W&uQI1xi4@Lbo%?$7oZ4QmMbe6u`8E0S zJ+v(9`2wFlefn$LwricORArCyTsyyN`Z4@n+#C&FIXW;L>~zmyS;<-I|_uLv>L@k51F~4h~)_Xx2!y8NYRX z;de2gDj$=a$7s^kylW@I&KOH4T}yk;sUb=--CwJHRo<)qt|-$~dG%ed_C%%tkK&mJ z#8Ttn*NjSBx)jzdX!~m)(UsF*U5v7IVdSebO$ExppvX7RyX^S$j{Mwv3v}`_9OFNk8CobT8&Z^2T zX|Gr0amhU-uU@_KcU*{D>HC$g{jF~QS%%Fduct=d4w6>h=;+u~%^Kj`RTS0IqI|C@ z`GKd5-TXucX>oj&c~|g#*18{t&AGP2{&v!fHv?|GBK=;zPL&v|(wKk&L_tZpy*Q~c z@ietJugUict-NwwFOOaO7|A}w<)kKgczef-Gjn>fifRTtx6HFRw0FSRsJAn3=dN8} zbhvv4N1kC=lkTPMtq$c8w*B4h(H8nL-)=f&%kCR&N}IVhVzzFaJ*4nKEa;TVSG6L$ zWR;H`HLj#_ldIA!DfYLEoVU0ty;V}+`|bBL{SV@b9?e+zuCxvxsj&Q zuV0@Ptn@yld+=aL5O5Bw6w0T|O}dBfm2&+npfcC^s-T%)^~bfev{;tDo_ufI_>|~g z?xXelX=pqnB53t%Umg__qIUiL+pIQXSILhbTVv}hDg&6KUdtWkyd4K1=;*l3Y<1DR zDfxD=-fbS~)(qWHKI@$rlxjuJw1$Q>Utf5P?xzq_FRuxA+461L`%wSaz<`}52f2+_ zw(dO89Y94tqjY6o+RZed`nx)4y#XSJRMN#z2Pa-MnG4yEQSzJoj8@CbkPYX4V)@{K zKp<<)Sf2A=q@>IaV}F;&+(l}U$i5}ABQN6H9mqW#Y#GOXoHlRJnYkbOqfcB!UAAOM)YZ#`dLoVxn3%$u4Z7QCZjS1*W*FRic8Z{M*aM#6*q!2MITr82=G z{4SzmCM_hz4<3=Cfzvec@qK@*8a(5&URmkt$}24&_5Arh{A7}Pfsj(#ZSCn7Nooc5 zXIi!W4z3(87*e{B^y4HG)6*RROqm$-Qa#KbMu2{meWbugyt}PXAV~^h;Xa zWjdtnzVts=rvp!xP)vV#io9i+vy{%WNE-#_^MFM z$jH#Dx!+~c(|hrfm*a+t5_1Ouc$-fKQ5-qqRTurK?t{>u@vLy-e&kPORh7gRPXd@z zYI_UkM%h1Wk9O4_c<|dL;W7iY`z9~f;i$@o4XS@XyRi0DU-(P0jiJocXMew%%*hZx zl}90u{`&~UJd1%>E=A7hpc(5clTp^zf3|e}$M?p+33xvhezbeACcHW#CrBokQ*3nP z&pTgzYash)+z>4kUv?A1l_7M}rkJb${o?#<>)#df=Q$<%pG5ynfc`vzyLd7+WvqyK%TW5@nKpX`7$l7aX#(>k&kr=*wmC0A2kk>Brk}@y&@m5Lk?M-%ur5UE< zzH6Tzk*4S54E?H)l`3?Y{k5NigTtupJ?odcF0Y{9ALIni7&P>&D6#K|t-q|SOo_Uu zx)zz1X8LR>6hNIvue##-I6&`i2L}iF2%*5E1M&T%X+?Zd8y-u`%e|wc;S(7nKi-zV zx$&0!&AtCF6xCOzw|w8@We(fV{yJ}E#k*?!7Lwl$(vf@;zjehksF0;^Qu9d8nwNpp61rpHQ$UyO!ev_;Ml3tpML-T{Y14qi?Pmv@OwYrs5st7%liEJ^Qp~Tb(xE! zd@)9?86vT5abwGKqu1YD_t-+Zr+aK{_4~jaupO}S7PIwLyKQ^vsvF{E>;Nq`nVFf{ zju`)^7Tn!0msMp%O9D~V>`f985y6t`7rSn<~vYin!oCa3mn zV=57QUhGFtJLbN_{8-&Pn+}PCA*Cy@wc%NU4 z*QK+r>v8kAi-)JD=aN1!5y_kDNuN)q zF>K;;TDDSmS+l;GroOv4;_UqpQ756@G<SrJJynJYj59>W2&)-UesvaWU{kh_E-HQVE5jEfr|z9b5LmZ_|l1N?xp)x_fjz6 z$*#i*q0VfvYikQ#vM&YpD<~*@upTY*p*?%5aI!g#K2yJLTg40QuITeyHgDO&-f&37 ze%9TzaOo+U3$yCp%S)@?3Z8Q=8w)Ojx@qbK(kZvHl=E%V?bK0u_&A5kS$X2EYnkrf zE|20rc{4d$F;Sk^py4kuF|qaa71P4iX&F!g$+tIClnd;$@{--%w>PDzN=At~y+&uh z{n19ZDv15u&&lV~foz+uWa`Oz&WL7Sym&F)sFfRgaku`}R?DGUIse-6vDQqlBZB^T zw!Xf;fWh?EO#QuU%X6{#!T0xmeC-X<4?HgE!*%x?!@cIz8d7@4VywwEwWhi{U!1Gc z`n5;G&KN$;$>A4Un{Bl0@|60!{Yglu%hsLxwV#S=$GJ}rx7N(yKtSs_HCePFIx#VU zZbHJz$qD`v%45kywH2ZES2#DZg{|KOw_y-YbFg<(8PJpO9U2J?WZ&fPmR>!wFZbEbG29 z@BEGR6<*`E7r?65ikzK{j2gOBhTf(Xe(vmyoa!rAOu2Q&ett|UoX^+d^bwO>*zalrFz^S3NRCF1$YeP~;AOzE+nRqnS*&uMBhNctQ}59uwJ%DX>FM=NB-fMGk_nAlk8 zbB?Sp40CU4FK{wlY)2Swy0#tNR3s&TeYn?nVW%_^Yv(tj5~{fd&=9T$@sF z?<(=Woo?DC3Sl7V=(vJ+rHe(ksS28wEG zY9WG_Oz|?o2~q(}tlLE8UkaQbZAwYfC=&HN#Qw^(tMCA)y0G}j%I}^pjOEif=&LwV zhpMnR?q~;B66I<2szV-ld+){x>IP|N4HD7)dH_I^@~q9NnsEL^myLC!pSh>SN7(-v z4ATM`rwVQe2UJR!nQ_SkbHw9>4<1<}L8H7=;=X^duFG*|H|F2am%U;oZEayf)+5ic zu=oHM66GWOy?V?Rf8XIVZj(57&Q(zNrj8C{RWN6HRh1_`)bFLCD9hzpgJ*}>cb~+_>JK}GQv$C>udrLe9b4HF%q}VV>nLdA! zzrH*=JKRX>iX)eK=gT(Y9HTptyoTB|Gg#BNIMs*ZduTn{1nyP+Ek+!~`FrZ^aLldW zGj(FBW3hh6CH zWVO5otxlB2-5+mmgbf+3&V??1@NuaSbzC%??yvk}m{w4R2EBysr4q7Y*%!PSo9{$S zQXD5uL&K{6%77YObm0u^(VH0766lF6N~uRk~ddmvRs(By}G)pTJ!W0@9MK(~wV~ zN;G8X%8+dnf13SYw}$bIN>iiuV09>9R$q6wYi1@7`X^CV?`;`^Y|XlHD0_#84V=w( zoA2$O==fL;)D&RU2RWS3=b4$A$HvErA>Up6VDLKsg9i_C^YTKs(A8Z-tAs#$#&`eo zo2qHIKbA$gtcTv&Yn76mjDgG`Ec{cL6S&yc*47N7E5k(01UiB_s(rE!&)s(9wUm4) zx9)Z_viFx+gQy6Q1JKW&u=v6N1^x;U>(B~!Pn}9U@BuM*8xs{~e)otIgE@dn?wXot z%1jOhz>8BV{(a@X6m)d83tcV>#B{kDyA4h4INBD`$xBHa6}0**{G{eBF^XJgHKK;8 zW^_dh4vEW`JpJ6Yk-iJ#alovQ9;L9 zShj-}W*fKTFl3b4LjgDHDvWsj`Zc3&)0-Qf$1XnmmTjzh=#=vF7=sVJkCHtSA8+!- z?1RJc8KX&4l+^PuXDyn7;`s0#UEL)O4{Rz>VbXf)AG%B6EvL+gb0}TDw_5g5Xw;F?1>j=@0&m^g$hA{_Da#OLF_ab zeDZwzl%RC-nRZs!$4a(l86Hki%}D?Z@S@@8kV$1H*5Ux`=Z}+xG5`0hDPL>k&4@A9uD+9`|=<^26lm`7O9Fr(UaZr!hDlbs@{ zJJy@YA$HFuTYG-}s=zVIbzZa2Xy>6MgJL3few0oD{dH!j?#~&pk~YXXBf7fr>>6cl)GydH$1`o`t!2Pq2owUGlhIQ~Kn$ zm@Qq-E9^A6E9MYT!5l|w_H zF#Qd_MW25&`p*Kp>pVS0-`Hmkv2_nxEwRPuvw02+9Eu6DchE>HeLT_8w>mmHQi?hX z#7g=m*iQ8l!Rks63g)}bskB(r1ihLtqt5)$>4B;M z6v@k%FS+Ar(RB{6Tyg#N>uxF<4UlyufOn=|jr4t0%Ym<@?)#5JIynL#>j3+$7rPE~ zT*)?40VVPc4nB;DafU#`W<8%*7yEn_ZcpA!xs`4^rS)_#y*!#b1fIRVSka*ywE=P0HZIA~u3PfB7|EskZ@{hphP2i%38LN6v(biJx7 zS$lGLSPI=oz-jq?Y4l*F)adHg*VmKC0hDDUgnp<+qDn44JJ1-Z;`C1z;7&uF6u8(4 z@sS8RUk4{q@5Sh@&rfzGDW%Z?ul0d0>0;GM4xCcnCn+iEygDTbN#>&Gp?EAU)h)LY zVPWCBjS0KOpOW1Hw!?mBnDt!fv>T#jyP3SbIQsk}0zv~qBx3ly6tsMbsrt^iosYz# zzhYC#Zp}zB7iY|QPQn8V52wk_&K~=j7XbR|FXpl?Yb`!-5fLbB78z zF22i4RL5Wwgc^!H8BD(pk*Nx#%>bXnWn+!MF+onorkeb3(hobZI!ISUBvJx{e{nc5 z3d3I)t4i#HY$*2=R9ATL=}_521{!6)^mX{aH3a7zP03OIXp^$E0^FaeQ%R0>FGo|i z1^CQ!Ui+}Ldtm?ZOV9D{K^aRhuy~Sb0iR>d`^w1ZMPI_T!IK;=Tpl^O^U$e9Wn)@Y zV1dJe-umj&>}azu*kyQo6G)Vh%~*wglv7#0-Hh$r4<&O;ONTf1Ltg_u0quQIeLMyY zj3{6M5O?kP?S?ogIbH*g2nY&Z#pGv5)jx-6$8zia-JtmFhqDox zRPj*Cl2vnjzPRn}8y&3zQlk>Ih+A4YB53gri?O=4HZ?bQf{Tmm%jokEKsn37>KIVd z>X6f0a1_IM4Yd4hFz9X(XUNr+<*&uqJfhg5qJ)4Z-EYp0YO5nzaW}5ln_vYZLZiB!X(ChlcT#c6N&1u6pwHsi;jW?82AAcK&mt&8l%8_UdstBHqIeWWP!Y9)JzxBt8UFRWeliTgLm&)I6 z{9ll?-%hPg?wdAH$`KL!7iez6P4;ekXkWodRRiEi%H|}WwA(`&x8UgVlJAsS?sMQS zZXj&0*RTHb1|cf)1h5XL5Udc5mnZhF-_U0?9fSH;PfGKnqZuHdl_HmLY7j6!4DU=| zcg~-ZTW32sy;Q=-`;(%L_J0ez#1rbo$qo zCoPQ=8eLg^{eD-pC<|zE1bf2_tFAI>&-TXu=u`-XbjW4N<+`&OM1yxB8Vda#fZOlMDip+!y_u|h9z4&WGhYyY zUvigsvpH)grhE;EhaGyQARq>b*v2Z4y1F`kCICIkyY#$@W9+w;n?ez}Z1deg~Zir}6MMGRk5+d(>+skIVNO8b=A5 z3C=NvO=|#>2N1$1q9I5ohJP<40N#7w-BD!qV9(MoSRPdB^b#sfS6392g%_v_Zu{B0 zBp+!CtH*Oh~kj@(7*U0y9jE+7g&3<#j8 zudlDnKFY@z1cG=P!+Rz_M%;}X|AA=(Xb31z&?V0U%Fu047hCd|2E&t@PMkVL=Dy4I zz{#7{KetFU$GgW7u?r#_Q(Sxwv}7guZGZ{so+Ht6;e3SbQ|SzN_x?sk*i0n z?lhs+KfzmYTAsCQx>0EX{uv8EiI>#Y4!GmH>!L)Y$0<3}gIHLU8Woo&2@r!G>I$uo z@uLyo5zF=0`w#|#RP_i4SKV&lAlQUN(zW>Qd-pN}>79JbsTHGD`V8;W3r8yh$q#DY zyClVgV!_|#_ytS4IPr0k5UfcMC3x)S2C}co5ewY?Qo#HnvTF<+zx=-e?Xq5feI=uP zvLSvK`>prg$Vq*MYNX-3bmGUd^YU;aLUW;@tj`}q?7L4Odl0QqVLR@<^rCn3unGIdqx&&bB^%A#k;ai%97@~-1o3T2T{?+09zA$JM(d+O{yzZ9nGH)83 zLlSox!GYmnkCc>@()qqXR>h}isf>9EcobpvN&3>EaYsPECZtH>xOjTXWNZm#UgeLs zp%=7x41tqS#35CbVKTQs%*A-f(5*^PKK$s@Ip~uF%7-}jN~6fRrM0ylH9tG)xZjQg z`m-C>uMsm`|8`(v2Kp)6jW;Dq8cwBXvhQ+o6wCqintLZEOx9mQ-cEk4mB1Y;drCFi z3q4>8)D)<5(ZKg3$fH~suiY!_sGAZJe|3DYjzxQfcY#h)1B6=v0<|w#bPhWcnlWB| zN)Vj~Y(RXYRsDkk}Ge@*F{zP%xotu>zq@jl`Bi z01iz=*%I9kLlO~}J`6T!YRbu(D0pxUnJZWJVKT)+EhQ94oRKRzCbvab#&{qYmEw5` z>`H=#?S$~X!y^J_uA|Lq;W<-`dq<`RYpS49o(FlErm{J4|Avyz!@3_4CVC}>-~QEre9yME-o%A zdu@8r0;V=KHAS3p0(gVOlKc^pIMnW{PXL`DO5lmk@G3S|<(=jxu;=%{W?e2DB8_c; zM4uopRH8-*g%%@7-g*hoa}^24nSRXkbrTRus6K>;fc6^JtLg?oTpcAw4^Iefq!^WT zs!+^f{uGE(Sw}|%&>|t)kzhuB1`DR*(IZ0(<}0e6dcVHdw-+b69Gb8SG<+x@NgNxz z!=L&pS<#(D7>_#B;mgb`p>x*1APL02Re&@VziD?Cd z%?MEQutcKqWa=w`pGsm+Ro>s-4<$QOISu7s9Vrry9SBE%I*rlGFmXOLDvF-)&?}xF zh3f1HlZ1kTLL8@qlFx_|D?f-$JTzd?Fw3aeJ0qBdX(NpYV8fdmCq0*}N4{_BrE_F_ zDF#ah`$EZkcOOQ0Jaz&u6>q6A|J`q{Xiif&GCZ)}Ecfn5zzU~UIoIqc+DU(`uV^oX zI-UhKsfjSzq}_8PKfVB3-TCtLDhw0*g$cPL=QTpM@$vCFWKEdFu(MC&Jr1E0^jC*c z0PsL|gTx&V!c3Uvfa15_kJ?2_lw5-_23EVbu&}VwrwYLgSqKjV8pb2zK_H2$x z;BX&k!MHHnX0lTb2N&|QCUgK0hVQG_#G$Y$Iu%EL!|4SNlE1$k2l#Xq(h<=op+*=_ zk>0g{Q}KyFVv4H*7mGI5&%$ufLKjX}PJf7&fVm$yHt9nI5#XZ}(!c2XqPAzwAX?-_ zkZS`#KMc@5G-Aj3R{gz%MpoR>}szLU_B5%19{HpIz zlLCUVoTkU%L9{hQ#DNd$Ll01{9;RSY=kYjw2NEKh4^f7g zhmdd^p#Z~9`vmlO7ycwXLoMvo>_kWVs=to(IGbv=(KGGR6G4leXBZj(as^DW{4k6X zsfRmBxZLWTJtCKZ1}V{j2pWKy3Ul*Iz8YQ-a;f#R1@&XcJlNIqL!g(0Ct_xMU^OiJ zEB52g!DpP3%zXJ!|IU#B1<@Y-BW07+gZ~AZQ?)zV4A$Sz_%m)ZJYS;jKE#4FvP~QE~qlyS^pJ(X_oc*isDb3z~U3LUnM^ zFscJyq>Nte?<&{i;bju%t~TBZ~E0)a27}j2zi_PN7H;D}#|yX?o?{_@?P;ns2-Oys(rV*1Sh+gdD5>&`eo&8721PtYaG z2%Haey%9jH)3$Fn2C*l06T3F}p>*Z;f^$y@-q$$NvemL~^MSs{IVJ;JGStl{a6XE|Etcyjq%|lGwj>vTW z1I(G)+FD58KCq+|2|K&48LrQj4_3q1+izexbvn+-&Dh>Ehud2l_btf2LSuR<>J)~x+9EaS1hqWCXr(>JG-{+E7}p`r2kp_}IJThw8{b;EG_E+I#5m#?AGqo`_gdG>TI;@c&rNUsA&dxb^fk>Gk3IkNM|IsJSJywje z{4ZKyE3t1bn{v5KC+Zl2tq2c3dFwsPzJ;3_7YL#Oy5P`v!Upf7aDCa(vVHV>(ib?0 z9v&W>8lv0;3sy9N-qk)>dEm-LXt|mY6hvl)NLlLwW|4_Xskb##4Ih1va>y}0k0W!% zrIdOMH$qc}E76L=3=`q(RTNJsC*H)!5-+(4|M9<@(=#-ubk53p1jB_{UKW?T!_9yHg}m|P|hMn|$cofd8rEdt7RW3mz^_+s!4 zJbVeuN?;BEV?CTO(5UcchnEiYm)AOFB>L@wp%x+IGTSSMVm=184EvvppqkO?bsy9f z&U##)hWK8AqJ(|?dP(k#D{xsTx^$>mxGWP$qvk|L7nm=$qa0=S3n?75ltIm6B9xO_ z^xmGIQHPg$$DTd%Gvf=8+W-Pw2#tQ`{oVRwgerrpIDKQA)o$O;b6m<;vb=kj<(z*` zPcNxd5mF}^0|YyS$f3zg&EB?=t4$w&pB{Il_<{7gwCG`syJIlN<#}W2r)GNNb83b= z%7=AzbuYrxL$Be4w|sgdCMr_fR9`<>YxyZqO~T^4W9F?%fdR^w)M!9;Hx4Fs@Dsrm z*lUcV2q!&9w+@|rLarz1`h9YLxWMF!1U{4`H6BrY11xjkk3})%V0}UkWaD zKia#9f2wEvt5!IUar)4S*uT>*-vc%p0(8HxxxE;nL5MZIJw2Z=gFK!+|kTZI(RsRhK2^%(?yI&WneR;IbtsR9YZm@ zp)Ab?z8-`CtV_sp;5AghK47nC$bJ3&f1N|$q!M!$#sp6U{6pnY;JOixY2)qS*@;I` zbJDd+cZx3mIzH3xzAyOL8+4}pm5Gl)N<2Ttg)7ZD5ltfWPk=bkPKFL+d1HETLXq1m z1Hc2T=!e%+ZUy2F%5Q|Ak*}#(nJiMk5dae`hj;~S*8}R6u0j4rHHV|iX@OSv>x-kp z!Y|>jhbu}D=mBr52f-hJ;vL(!M*~az0ooq%HpX#Q>`*{g53kNOYYawiBZ2oUJy#fm z(jcSaehfF_YP|G8qLAS(?AX1VP1w)%Su zY+H=vM{qsjsMWYaWgTbhC1)qQ#BMLRO=;VgWM*W1uCMpQ8%AFL9F74t>r+>kSm{(R zLuw)sZ3MV_HgQ&hQ5=Z*R87%Y9@VE?MbKHoiPEw(uohY4x82|N{2==8O!8ZX>7RrJ z4R50xHOpUj5{n7)MnsHsF|T43 zvwa(@YHNMa%4S;iqk1MMec@n2Ig3Umk`TkDPIQIL)YKFdqWlG`qCY#qGGKKcL?jIs zFMDk)dKzq$PatI2@^}bBM6BpOB%5^1%H>f{#cNfF%(*HG`nO$w>uhCm~S4iCS%*zbHZ8hSB3sXNJ$0 zwK#^0Fq)d(+KH_W)U4h7u$^)` zC7$ED%KwLrv}C%7mK6fE7;;k_mZGJlg#Z#L(MyrScE7$SHS#1iTT;y8+;%&53(|?^ zM~#pupdSg_O<&7S=E+7%=+5qo>jl~QK{od@O2Q_kmV^%ABmMdE+sMX{=RwjIE1(^@ z0FulDKo`Vu`%Sdu_3Mm&e*0lTd7*lksai_@g1@NsDmKr0)bv>Fv8bwOHzXK<52dyR zk$W75C<;cTl6CJOas2^PkBm+@1inF7aBH?P4Yp$dPzkr{Jc!8m*pAu-pxO+~L&V2w zv8jaq1@O;o+L>SXO6tF2_cT2P6_rP9thWCWJor^uly%XU%p=23i@>SH{fA@vscQW- z!BLJ&<28zr`AZcMC;4q!GqsJ45g9zj$2XVr&B@X6HIfRD+Yim;7`47~eJqSPd5RXA zGGSj6L<8|`7@##>rr3U*^V6EeB%&Lumc($w`K|79gAR*)D8v(@)OH;@)s2)Ip)jgk z+gM&svHT|s02c@1>D`7nk3Y^#CFI;7BaQzWW03_oOc`)V@bPdt`WPGAGu%=s+*o%Y zfG;AdHHtUwP3-OAi9%Ow&1luq)iqu>^71&!#1!`HS1#=#8k!Y_<+tw@CyA4fJD4F5 z=o1Xz+xjIFk(GPjUq67+LV{FoX?c0MV=bXK;1Sm#u8|Nk2Zs|8G%<`tT|%|KbctKL zj4U}NWz%akpP(FVz^hdV0l6PO=q+Xcw`luY;o$5e_%E(~%FnN0fP}jEcz8(pcd%ya z*naB+ks0gw$X_~%AUS)(VhPWhn8O0C(v2ljvsKGU-R%!64jlYcy6^h+;!wS#T4C6#~7cn=@@^1$7FY}dj9soi+lrKf`nYYrXF zlaWKhL&9B_=L;ex?FxOjar5w8R*(^ozvdqr>TxT=M~HoVGR}?q$%O|o4`SvA&76tp z3?+@o1i)#pNmo!)J3@>@(7aeovi}UU)AuLTpyJfR^Z83>?Fs_RA^fIvP}CV%SlnSZ z!TYR&BD#Z&>{J$gm~HwJLgulOd*QRZhGwdD<9!#l|NSqC))9dI2hHOw zHBviDBWG>>zqOz-W;?B~uM08>lkkSge!q8S=hiqz=2&?J$p}ArJw2vSDk_(S2VT`= z8BF&5QL|>&*18z)#An2j!d(>Ih&3uID#zcSNQuxRt_4C6z;x+@4Tk75w^0ihf%=i; z+OcED(Gw@OLQe!L`wDauiq!qiCl3kLOINoP#OZ2_5*3SpB2;`vA$$f1%$;O7 zxr0>G$S8R{?K&H-crn45^1k#X%4J=OkP9K7KrSprZULn?5Y}>%6*5a4aszM&3a*zQ z{O7}C8D13RPe=yo4#bm(hIM0H6&1M@8gINf(|A1K`}YI>`y;}t-R6@Y4s@g?_>+et2Vh45|dTu-HO(zoe{yi@t9zlV5m!2L2HeFI)uC1rH ztr&AwSq@lpA0UaHkBz3p=_!HQ`Q@207 z|35!&KIP6^SxEwcEn##D3zflVBT_l=jzLVN=j@;Ep?wC`5-6DShxwEL7Wddu;M>uNMgAHdK8=(m zmO&EqApPAtO~?_lVZ0vT2b*x9=(~r8+;E)|icvqLY0%0z*+U1?5IVo<2?A>x(`Fz9wx5#H9l{4v_YAlq2@3=Fj^9CO!74#Uc#iILh~x6qHKGR+?H(cU zA;2S84w;6{9KbuS$vSt?Ziq0RFTEHc=M&tetqi$OSdsD%#L5*ir^(N1J|7^4sP(`}8fzng2hvIn^99Fu{8 z0k+_drlxzkx!twKYn6_alK1XWgSfMq*}Zk47BFLgt^3V{hMIaBX=pCcgw2~bBf6}K zPtcZefdp%$2lpQz!mvHRpnync5?}x36cO96n+k-(jSkvl~K>DU5y zVvf$v-ngEovQ;6i%r0^g9IviP@9y0SEV6YQaf1rKx+P-N?iOyVq`U~a5K~-UPD)Q7 zWwZwC6yBLqWcrS&W0{$mjY~W+*OGE!8n$j_{MYKUSYw~`z>*1(NL*apcqPE%W>QiT z%YkPbwHF4T#G7imW@X_wJ#>nTZ`(FN^8N0WfXGm3d#2}m?1$Ol4s(6uuNd5YL0ftpR+OX5n(V;H)Q&WFMT#$>OKM`|9mpu6Y`Cbq=(Sk1} zRJogmhK4|uKp!Whd|ydlwk=8d&DC&C(W*^RQStS)Eb1HMN3JAY*F6xiug>i@`@tuo zgWkt=`M1jbYYCS! z*>wE4w#gH>{Ri!KS=%r3_-3LGU~Lts8TzrK*8$0h%?MmrZA7OU2E>;MI#r*IDw{w_BUFb>NL=>sks z3h~!suCP>8T%kBfC2wUVQRv}|S)~8bZ?!+mamfM>*d^$`S6MP5LpG2Ie~99u&T7#6Hqxj@WUSq{J@y4gMt zqvwv6mj7frXmQ@Upd!lwVdqulcBPmrW>C?|^S1qK>q|1JV1p6#6rBntDVOuAEuo3S zx32&ssydZ=Saf(w;?}*Lm6cLB%`x%{i7);3Q!}ui34C3l3Uj~4vUD-6a9P@6ODpn@ zh??KaIcq)g7#SI)M!(JP-Lq#9t6NIG0!ud6evS=jTN@V&z39aXm1|F`8-ZjJ7AK1C z*LyK3d!(-vSKgp7lFIKRhX-`F%i0SU3b4p{dBcFGfCFvW4;khEUFf=XKYzZ&c1>eT zryvGF*sVYx6L4M?Kt1aoYTi|pP)>1aQ16$)cb(@_A1*wQTViWbZhwfIg(dz|3(3!Z zLi;l43J(hdml8*kE6W&$K_6O+E}SAqB%BDA0i3iM@%jRzA&1}Hn~2sAm7CDEAp0>j z(_7)ZCn2r^skIDQ41{^PFfJ#$is~Rc3Yc}13=R$wW(&ft2EOfxe_+}l6A~hFco4;p zOmr5g{+cSC!97#K^7)by34GrTBkIPR>jc(Ch4T=G zND!YTDgO5DO8d5N$tpa+;3Pz$lg@W?(1fM>As;sPxD^cOb8(7+wA{Q~Jd2xqp;eWE_~q-}+Hm{YrKVv0+|`l%%yDGtegxrmrcF7GBL ze?R0u%$3{N?dY3DZFJG-(kT+pwL?77eXfo^`%2l*um=_-&RZNE+uS^%)@L-U!hI$* zSNWr+sewZ5E$_SPIf6gf0@s(t|2v0Ss3r>*)P2T>hlinLO8L{(u??itu}%$KVLAAM zhx=S$QhDrSx7V}M6XcevlpSqt)Y{tGsklzvC;Qw5N+~7caWzeaNGc)vL4*{s$6j|1a5>12l(aMimLOb;0%C4OU>=VpuB^fsONYBjfO|re6Dfm2 zsR)x7y6CO3p_?oR^46&+bSInpiu4Rs?G0EP>14l@eNMpdY)aSuEA5Q!Zhg0W{ntrn zO3#LKGJ8~dv@O`PiID9klX0v*d>-ht-N#6~ER9EC>bFGp+NT|#%(e)GW)-}e*}0rG znb78-YY#TLC}eYCW{0euzVvCyKal9E z4Wb@PKz|`Z*7riaG?uq!Nnh^OK4`u$ciEfMjk}ccVglX48ur&$VzfNG2sfCZwZPfv z&LN?p#4n6N>p}da9GMhkY>3Js7$ZV(J4G(Z%8~&pGjVYEfD9qxkleA*q-siB7AJIM zOy1UXZ8sYYb8pVCO}K9h8DAfcEMd7Kc!fbg{Aw^lvw*xvTn>ON3;FYwUT7l{Vj09G zn{i}-h+CUr)(404fldcduXWUsESr4E>C=Df)b47b7rmd`QYO{FczV$7blh9ZwB0Jy z->L4&J`KC8u`6f5ah#K8H+4ck$e%L4%Qm@a_#x=j@m}F+$B&W1rJA_DJDa zvOHheJDF*|acO+?TdTM(tv>;K)vq99at9Zgb@|p^2J64H-7I^d_y(Q1Z#p!DhSLA# zOZRI@Y<^R?(EKGa%2^s>2oZfkWP!+IfnH?dmKO1g5unA_L2KD`x2sSDg5afiHd|rj zdI(kiKX?0ay*{~P2-hj#+z=G#vb6Lo*#9p$HRwpTY;*FiN9yIF2$VN*PZu>yq*tlF+QToNI3WaHw5b^;q`r#>l8&E0?;|R^kl5^07{52-yxY^zHR+HfiQc z{^Z6k7I$_0Qb=fsUs&YVFOS_M$}d?iHr(kY@0*UuBKntmh9&0&T}QJ`vx!Up`u;RN z$1Jkr^Y|XWsE*;%$9FdOk9bwV60r+Mn5;pQ`yq+u92Ra ze$UJAd`}d9zkeqibtO4OUNFaZQDInrj4qE#dokFXZY*z}ad-~eK-cbee<(oD9jF9~p9OD%6b9W!W@j{WH1KxNjNZOGx-aw!>2^ z*1SKK2iacVD9Q`JsrX!W*vrdn)3$9|=mE&-h<@?>&0`)#lYK9bq#XRn!ni1PUiH8r z?@04IgPTFuB$-0BLW5n-uP+RIt7nz-qpf=Cx&zMocOx?X`RBEL)0Ir^w?2HnG`M0j zYv*2}nk^90>AqUh@iQ;jS@26p(b-d(MpAjY)AyBPSUKC3HCz?B4=(a<=@bg?%6YDr z`8MAz!o}QIUww2=ePcn${L55NZ816K+FTpcVTE{!%%&e7($hG7=hifhs){B}E2c(Q zxd~pnH1O;nwaxvR@&(3xzc|9V!%ro31pApQ)s0RY?i(H`c=d6^);-f~yTWL;7yi!4 z*<3*F?)d)Fw~ZZ~24CM-iO$wIo6)$W&^lXL5d=rG^N$jyuZ8lKe70li-&0{; zW&5j}`=QV{yJ!;Qv2NpkBu4|~I`hws(r3mz99`glxQ)C$@(PPwf1;tuO{l1>Bv&Ah zcE6qD6?CZ4Nl6|_IY}0a-_=U3d?q$g>{Z^opKYka?wrjKi?fb1MMJF0M%$o-3HkK6 zCbmDX0|Kup?7toU<9B1iUP`C6zQUL9cwdkjtrEBSm7fz7pPAULF?K!8)z)N%FK=#o zDhbXUroZ%mQQ9Yd>++|a?K#8O*_u%QaI~EFgSJ+bFRE!k`P)+-`Jco(#uuCP#5yUl)Lw^>m{1h z`64a9ZE7x;*SiY#$gg6G>>HD%fMkM@pVK0V*8 zvj3`vO>g~7&*^=Qde@U*zPrg6R#l2SJA1!z8Hh;NgYtN~^&F$`jUOjEC{XYvf3*air(BoZMf~xfG&AlYYOq z=EXKifuCL7vPIID$h(esaC8WNJAQDIvfqxsS7LPLZ!yQiK2+1!$n{U!=9-~SZMg%& z5tk?io3iOcZjW6b}~W`oEksuL#g?=+H|P@m|($FMdp^KOzncc@*nK_jG45T91~i$@ov$3 z75nw5Ag4-OwVbBd`aDYM?MtOkody?c(^gW_t0V`Q_5@Kp=^tv_UI<(YF7+t}ty4Z(P$) zr6OM4eN6|C9dT+KZfjlkoo17ly0Pui#D+fCV~N4NvjG>H^usL+to=E6DyJ=mxCMVm zx>J2%cBN*;{U!g2XKXY#LbI*`1%2_^)!Fs#=k3(DcBinEE`RcW(zWXW#k1_~n(fLx z6ZUtGurayN*PgbroX#oID$;HHV)(3BWclhMc1WRx{MD<(6fd=P;i?!pv2{Ai)dsVYJd4+ss*{|pr^#`(6 zzW!m%$2pvSK}|ZW=7UU$Azl1STkR>Shg%jr*D!3Pc%a_#QeRp^>QCq^^_PYid!&U$ z>rgYkf3K7}=U9A3;hR$MDGmX**}b{aH6aHn&MlA2Ti7SFSD(C7P3Itmi}2gv=_@_= z#-4MA4#j3uw%vxmC)!%Jy( z;}Z|=#C2Y$6W}XqZwP)G`Ojy==bpiVZgSy8Upt)XCk-ETEvz4Qm`)RHShzT%)AB|$ zx!5=8i5=6(%=>yK!3rNOecCjqrk6@@FML9Ib4``Uwb()ULiGpNs0T;vk&5j zqU%dr4viJJNhseA6BCwOdnD7n!BE;kT_B0qMlwgWHtjIAjr5&Q0qaqZyr_K9m!#|< zR)=%U<-SCb-~Q&Lh0J^@dqsZTD2uiWosZ7lw%_MqB{+7b!11QRaecPdI~sS2@}AFr zx6x&9JDj1jcswW9?NQH~G^3_-&D<*ie;)8+X#Dm0hsC>3JGMvpsd6S%zTZqs|9Se| z$lUVJm{Iy$?5~oALaPp+;^F=_YeRSAzKF7a#`WZPpQFko1X6|9lo;;+HWHe&_x@Jy zzb`PtEAlzsqa8zmRq%&~6QdUMCVl+YLy=NpE`97M4f*q8Zh0}{F0gAHW1o@yA!?^3 z*esVg-q(73zW<9+nRdj+i`tH9VoIoNLXehl?@a$cXvt3tJZ)<5at*BY)%=8O*pP2#8wXwqv9H!}ZYI`+a5h^H)Wdj*De+UcKf7Or|DCB5-N_#+oT-#_>JT%#m4cRRhC=PGh&>0+HfuQ_A% zo~hsTw4zV!^Ud1>3LfTLEH31Yw9XbRtx)+J-mV)uFn&;Y@nKu7fl99Djcu_~(*i9` zt7TvN&ztS7`JKwTsn7JX~JZwHWdrU-h~&|6WK|Y5XRO+C}ZNLPzon zOV8cCf9I-tbIBVrzHW5q>}W*d#5+M&@Q$!Z}XMN9RN3{EyCaW6(v3Yv1or1MKSMrqDGKj+fz zBxR$ronOMYJY#T3Q}x-Ew_W2sB3!{|L^Pkb4zBj-C`5@nIhku#aF{qmWTcUK;)f3> zFqsSJSpmth2F!uAYbOeJvfhS?#%P57;xB0p0E6z}Yk2zj6oKas`!R;-=x8GIfIpJN z;^NBBPwVpM`{{wh!GFzM=lSvSTS`iFLDKqF#+^=OR4OlWUyURW9Ii6v>fTSWrgwGr z+BKCelU3F1W^UnP;n)*fB-;abFMJQq9bM#WtJZJ!Gn=!jEZzU0BB$Rxnn`}~+%chJ z%@0?(l4V{y)rHmErwn7M80&Y?DNzgdp*&{D`{NehJ=)FnyV9b*QY4DrF8xyc_Il4( zqfvi{Maz?MA8D>sOWalG_)OuXrK2RM#^)y6_;z)2S`S2%z47CbBS(lFnZOnudGwE9{qhnfCKHfS%e}npac8~KaH zep8r@-MP|9`zs*h`BBMTd#R6~G_|k#+QY2WbpPu-)xerLq3&4~qfJkLY_4zNDu4Mn z&hLhK#-);HyW@_ENQv{Tc)gK}yDy*gQmXEVs_H`O#%}5!s>Xs8O-;8wC9TCjs-42v zoj;iE<}3NUFiXd&XPXeE9Ta*@AQ}U$iv67XX`2jgd3sb=RP_GxP2DeG`QnoQc4L-> z9peF6tIFY3GU{cMSyIo$_`OrMT_jbolaH5|u#Ak%3WKXNXbM_dS{O&9-m01vW)@oE zq#)rTo!EBDZ~2A81v;nbh=~(Ozw@vJF_E+pB(i6W5G@wN#+=F| zz#@1j)1@O80GaEqJ$s6SjPijuoFvptIE{f)v9E05ODCua=!+d;+Y5}V2blV=PPHle zy6SG&dt!vxJ-pEEZ*RS`YfMY)yMc=JQ&=e`mFh($H|eQ|uc$ zpCazGOTzaUt{{pc<~}<#LoL*yiTqVAKiFS$-`OCpS*xwOTXgAIpG~j%F0Wk=-ggD| z2poEq{_LxJ>RGeaxEnTs?>Gmwm2csI7pxRa*OOnOn_%zpE*Fkkk~ zWgQIcd=meh?Q&D%b9s6Cw4XT(xfZO%G&M9}Uh)}0y@dW2$j2~iAe^t25UQc9t2S`J z2?Kq!KYP{p=Iu}AY_^JVQ)aw7J!Lhtw0u`Q?OAaC`0-5s;_tJV7+!(78gW~|-^#~{xsToQbn_DC zh)|puV>IWWqAmc_J8f*UTZ)R@P~F44YTE^<%3ug`2owXtLV;(COmg?6Dzj>@A&dct z}lyf*N6UEq-fwl+tql`Z7;pwoh#a5td%pm;~4 z^3C+q57(>>THmiI5F31vf5CcMePYae%_eE8f!-+Z;_Q7UVHWn^AKK(dsbmd(&po2{ zkNqcuX#Jx2>q?;4$B|M?A`lZ^q!(fegk+ zH)0fOd(s)tw4K#nUVK}YZ9Uf2{ptDiIgJ&kgmeY;%a{3=O}5yWzLMHHYGy9r|K+&4 zw)*p|SZn7}H95cK47VZX=$<=2FKnM>Y)Dk0kEc|49Teyt7%D#Zeu9t>aFVM zOjcjSHAxp#?4C;Hbm?ylG96Y?5bi>!)3N&7enTd`8!GWG%g>4*Z4WienKGkToGvfH%~sZQB&73hW`d18sjJ6&013 zRc;|1JS#wP&BD0%)%4;5hT1$j!W%hO?k?muFYNgjM)KKs$R;l`CJ?3abD-W z?Y^GAv=AT0K+$#Ygpcg!WN?;r>9hM~{X2Fnne_p+s?vZ^(1(xR#|<}&ZRR+ex1~&6 zzfv&3GJu=Hh~6lFaQ1S>%oDqe%eATI(*2>f0_(KUhbCla#}$@Z8a4*xGcW4yy|-Or z>)STzA3vFYJmf0j3J$Zs9aM3GmrwIm+d jlx(c5&R}}}0nhrcn<_>TiOXI6k)TUKtE{?+(t-w>@1I4^)I`02 z`6XEN)vz8lxiC*?lzH?*L<&K#(Bp}UIy@W#qBThn$02R(@e6A%O;m7#Mm%sS-w_%ldr05 zsVV=HDdhD^<(2AZH&kzOC(eG{KRf&9_ouT}V}of7?n2kBl+Ki1^3ZEbU{^}jtKh|uiew+T zi|5-u>ndc@rnXj;o3FOH8}VfRXa~p5S6pj*aOG4P2;LV;FB_y0TE8PY#!%*s0fxpH%Xvmub|C>%C0z#`W{l14d=rHcM109ndOn z*^}khkM}EU@_Ec@M4x_8^Z20vztAfw0$JZnGv3_^PqpuE+6mIg}Q5-XRnW(SECI;I(E zcx{EF1|G`JYpL^}!BHQyUEKq!zAS4w0|=u-{&2 z@noL|>xHJRo#(lhF6Km!y71;(c33?h)y_!evC$4)#!6OIvJAhRN3*n0nxx{ATjU(X z{6f;XxUt-~De?VKdrGR*<~WD?=6da~%o3Z<&=eZQIP~ zsbDzi-w~e2|8VHc&9_M=0^O&KV~sy5Wy#e?GbMe@7w!>QFQKqkbg8(qsm@PlOj5l< zS^dmTlP5n%K8dt@{2b1Uf7-tNQ)T&90N}dU;~sm&Y_FQB$_kA?5oU1rD*3r>XZeHF#=z%rBZv1DxrZ1iNe+Kd>dj8Cf zt3zXOf|r+bdY87emO$SrS23T&%RMxGS*xXA&(kafOOEhePK~@@zn8gyC*bSYwW@-i z&Z+A*PK@7b3STjJTlRL28)f)qOpSdnkWpXq7LV<&q%oS%ay?DeP>`&rPM1T|$&njT z(wQnLZIdw+pnU)kz~u$SpnU;9M~7Z!##n}XEXUxgSd+Bjjdl7TZoc?7H!bs^zK_+Y zoEE9Z25h%&-@9E^wL10FC? zL7o=}K>#n0nVUOVYCS|A9s@euOo zxNiHhR{YjoZAJdjHU#sXH9j^kp6vcUDWaW@KjI7=NJft1neKRUt8eISVU;q90vbX*YJ^ts{;NOaPqT2(*e;q_Js2cun3T?z6 zc%OU)rI`4Ig1bRz(4b^XHL&V)21Ol;~#fX=oHd3`MMq(9)OG)$PIx z0R*7PWSmz+74V;|NX;bxMbYW4g(7gMm$7r4T1qSp=?}oo{yNv z)2E{Cl-rMR@?MS+;^lQ>yAdzjShdDi{Kl2q&9X~URxFhE*SzZkcfAn#-{%0ja6}tC zjM1`I`TenqK&eJzH^7DTv#INe;xO{{@p%y*z6N@&;%F~UK41Oh`2I(pp4^$Azr1kC zbrKNDyHzp_)i&74tbV4O*ATBDVv+?`DzQKX3+xC#e^$a5Ha<{&_yNyxj-2@SQ_mtK zOR(t6Ql;^g;KX;8_3~7MM8H&yhE~LNHdz*5mX(z-@hD-CI6T9d*iHry4!&5+d=3H; z#at_Hqk?5Vh&6~94kwTQck$`jvCbF>BXGdPe6ON~=m-bO5FCbKs4$RPeXa-Ejbe+3 zvUa#Uu7IPdn4+;6n$&wxHG>qH*-+x)<|Yy@^Pfuwzxy+YvmRHEV+jxnBIsG%e0+p{ z2noBd$j5)Z;1~D$fBw9nq@)yT5BlhffB?n+ei5s~oV-rGy+@&=kco+ruPWQL^_5?s z`1M{+#-ieg+FsRe2yV_oT(E5T9-k>{xt{O^(Mk!jVAnk_~s|6?iND zgrHdTZS4u`2@M>Tmp}`<5AGxmPA)%gk#WL3CVm#6h+=^~BRT~-I;CM__`9TC?a|WE zsDWJ^08n_ivVgWis_XfcW32yrAy(&3>3@GkOlKB;7AU>ff>9+A?f4wA6>FZd`drq& zMd)SVmXl&PSw66;t*6&hmbuXGcnvSBj?-#drx+NQ`~=;X;Tnt`yymDA#XwlFzJYRwVK0Q*@OND1G$ z^G0gVYrL}*umcHq4X(Qi!^wFKVjk3Dr_Y4#{}kf3@l8c!n6+NQt|^(g>ny%(0BGo5 zGBp>K;?Tusioxr1ZvO$tW%W!fqm$U`}D00%RZ>@fgH=pj!_LB3VYHe+=FMv(Dwd1+}7nneiC!=d=32u2G4;}y@~-~?07`IpCCZo++& zPl66M-HwizVoOiJw-7S3LI}U9%-g~3Ha0VBU=lRhwR?9FG+0FWa=?CSC#pSG=%8(z zUj3UnUtEZ?4)^;ckkS;$|KY=O1$zJzP=a&f3QmE&$msG&-IUz`>c{&R5z~9ysmXvHjL<0rEZ$a!H$0~y?30+MpJh(=)VB#!| zav?>M*(QbSs#NnGU0oNLBI0;z%$T2>gGwTFRB3`Ks@Mm_BnvwU zzYF=;IMk7b@a?4YNL1)hxK!=`gW(&HK+9R|lSYAkx< zCWjZ@h2s^xWWmxN{1M2=I|ir5(q-rciMJQj%D38@VAL_X*j|23C~JN{HT7G`XhAZV z!94=Am2b0uzx8?O-T*CPMH8t!%;|0{o>f%(m*DLWHz8pHGn{=qKB!zs$1y8-nL%xL2LS&~l$3{ov_j-Wa-47$Af<|P`WCK9 zX{Z5OQ1w0b7@wMgfgL;SJpAuy{QLcRMc3ZP2)5<6<`7RKPF|!ZhN@i4!}32Ez{T0uDsD z2+b!>LsSQDFB>%J>)(LAy>H(>a^b_v?lVB^bSmG0sCPZCpTAaA6oKW88$ST-NwVr8 zZ-nK-*USnfG19+dV^#45u|Tzrg2tEV#9^3bkONC#tX#Oz{q^7?o(d2m-Z3!XboKpL zQ8d05Y}I?fu1P@zow!z;0}cw6`0c)F{sKd?ZRM{`#P@92a7X1FwduM`Uf$HQY&X`Q z7aeWIcJU$ME3gaz9hhur*f*3}&XnTTeSK1s5~u>Pm1(n~hed`4d@v#-Bky}tQowRt z8_$D8MnUKY0q9Fq=;RN^XCMrHXiwl#RkrpR1JulOKr6`sO}yKHVZ++O1O?>U)ykL&zCWRptrd440UxpbnzA6cqz)JO1 zDEs$1(f$Da&%>2@;?#Eu6M>Y`YQ2^hUVd$5|97pfx}rUR*8u!X*~^$FKF2b`diUxM zy&&=4nVm%)1rpZO@@y>%oZbgyFeyN+Of8eZQ!5%~LCV#$?Y(AQ5*c|fVAx2c_)=}I zGnRyO3SysBzV~Kw!3iD+wL2~$CU)q^k#)Y}zCCU)aoZ5tKkT36dXumJx01K&Z7uzO zRPu6FQzuTI?5`SSS;^k-)uX=!vh%xHCbyJsvemo!{I_7&4zVl$A76m~RIcN>u;!zL zwS^|b75Cfak)rEUT|S9LaEhll#y*+U&JlQ#ko35xZfv zcBXn+)AtX>zq*6VCf3~|-Il*dRU7s&;z_D$Y*D?9nBK02&HTTW8+G<1-cWJ1`(4WF zk;ULZZ!2NDWqOON9V7YFOQ(Ak^4TEk!O@2i&frPqzJZm^I&{hOg3`P{kt5%E$8K^k$ieD+LQ`*Czk%(_>BfiA+~HDWJ( z{QOT2dA|DdLb>a1WK{HET1<4bOq4EfTr2+@x!7_RfkQ5xU93)F;!V2uhE|>aqp&P; zknOGvYH!I8dFst9=Hc?WtkJjp@#9;3263a_p|1+x`?5QqH`@daQ*nlY7%XbVg>2!hkmgPCPRuBx|{8`l(YKUd*ic0XD8C_a=b2hKFBk=yS#p$dtk1C;o_JPp8tl7M3{^~DxCO_TRy-%Yo z1*ZZ01UQ_AC>(YJ6DWGvqB@}-!pq|U4_(f6MAoKOMBFnnQUt14$jbR_8ui}X%-gVF zzNMy#t2D1{Q^ecfp5v{Dr%``MU4euTK7lF&aDS|XPri8ZVWvroox%^Glta_@GC7%> zcnX3&Q8$m@kC=f&N+*8rUW8l=1ZBit0|{x)5GSurcN2PGd=`59mQXIOY;2N_n&!$3IMVWu8b{E zkdAGS8!X-a7;EuPuzHk@oE(V@L2E?ekW|%*3AeNAq`|N{(lKks-QzwI+zc2$aL z{FmbGP=3d<^72`w+0f3Oh7fu2(qdbOW@;Nt3&Bp z{^`Nponb4X84Cu+CoBph!q+FhS6Oqb;qK0kyj&fb^v6D{-Sw{b*MHrjFYt=@ zkluGQEqUkkFt@)y6$KusaNoXvAHuFGD!Os+UVl0JhRJ+&eI^96gPxc`r_`zdpyu)uK^|6nmwk{(*cm z6!NEZ~63Eu&1^oT|p5ZGlEG!^IB(Xuktn6JChUC`Zs-PH?Z*}LG?DF#U zEyh!`nm;*qq3qa2vB93zC)>Cvk1e~|&@ZUg4p7@cuy;9tlqK5bMK;4MdAqvfN3!9*Uj z`Ek{CHZ!Vz8H+yfmgCBvcHEbLe^wQd_R%KjFbg$o5Yireo`^V1UZfLB5tEQS#L2mp zV(Zqe<+^%Dx{20y@SUwsBbO)~M5uVrK)?_3$UYbq9f{g}h;sR0EF}bICIiIva#BgF># zNvhn1ns$V_frNxJNhnefA6iaFn-oL9h;@@+#-khSK@Uc}4bk$hfht+k%-p=Th9wJ1 z1z%HG5J2o&P~=ty50-tjv?TlxSj3IP=6Fm+gw_P_)gS;R<1qDN zRUIQ2ziN&GpVgA+N0UBE8XB7RJlnmHMAgxV_N!e$=fMAPX---7f&8w8xq>&2uEJvH z-*!A(@t+?kQvFz1uU>kUa_cc6re_I7A}77Q*IeDS^>Q2j(Td_--#B9w3{t|IX*C61 z#u-WmY|kBGcYJ$Sl;3#vpPk1KzmRg$_r7j-q#2WEgWwY)XE4v`hPy2}>R- zpf3CSlk2e*$_Z>FLmX=+3UXK%l(V!jL%pQtq%&RYBdoS6y{Ze5?NWS@ib6R7rcXXnkt@f}h{*p^7guApN702&!F0mK^vP=AH% zi@2558CX1#$ggm$Ad1(4foy&J#@+wGL;9bM8|z6t5t3_&0SWrBTd7)G(E@0~%@p4G zyLowep%%_E?%4n-J1`_-!h+xAGHPB57^0K#A(f90)&S;*n0Bs%UeUxoNq?^b?huhn zmmIM;5p?CGq6xYIa(gdGO1^}D4$;k?;_b{!YA32W-A1;DF#132y9k?(_ODWinD(UK~w4~(v!m_eW2z!XKi_7+2U_PLj zQfi1kI4TX+h$M1!cTUyPT+9K-6<03lm6yb%m2^DNEkci9)6~=t$QWy(+u=FutEEgoMO+g);s zKT4N`tBHjTe66M(Z+o#T@0nmIkZb&OI1s0A?8O)E?p&vc=D8!*v$s>v-FjoN7^QYk zsyBzd-J@gD504z~;l{+_AUF3KUS9L3JJ^cr$cum^l6d@B_0inHSK?4gyITG>Jp7`9 z0*#@eVcqZwRGPhUdg#A!x^4rE4Mz>HktHA?aDrn+%l8SwSmbit&bNaJ&jw=u2%9#N zs|98tOo_r`a-kuHR4)a#ClWWa8C@%;u1bm$KAspb-*RRfy(+}Yw%amc+?d2)CiKtky0^j^MmW%X< z()MQ{+=qGL=A}_4NbqGQe8VOMtbzAC5YuDuuxQU(=s#wcTXhbmzz(|{E_3xtAmFco zla#i|mj;b>XpE%HR0fIS73iSyCagd>5aQ++|9zdf#lX>|t?g{}$g}6qQ{i!egOJ#8 z&%-Ge4^Je2HemF;18$IOp@Os^vk_-r1gOg8CnRuS#}GS50OzH}#g|#RYQWtg2{}l@ z0(J<{;A_%NZxs2+Aif0KWA4+ZwQ(;K*Lbyn4iQPot;pR5)=bh|C~hGQ3qTDhq#~?F zKohWdh$T5hmlHrPS+iK=qYg}TlZ^nIY&4MMG$xK>$Yhg(-Pn0V>j0@E&XFY64GZF! zKR1TA$nK>?`UVV9ux&LEpW(HJ`#2d5V9tP=Vjn#{(lQPUX;Wou-Me=fV}_rw1dxv# z!#BZKfblJBV=_Aa)=VR50ICq(v(@+p#m&mdENkO1J5q~Tw-comu@gvj<)jR zY2yHu6`#c)g+ge!Ig>Z6BN8ujemD*F5aBfwi)`R3k0M5Vz)fTyiu}B=DtW#36Zzf1 z{hM#P5zIe}hnLzSr#B5iB-A;Ee?{V^(+P!pmX|Vp|b_4pf%LOUte9b94g}l6{DlGS|%3b;U)8F|G z*>hx`fsM{FWz|e|_}pL!BQ0y-tAup{v5~P+uN2pm-`9pwIdw~;f0DTH+ZIO1w z(*z7Tl)w@uT~p@}bB9;5&6_0j7^Wh`VHPROpOBjS=;mWVkUYo#{CUMu=+3Y3>FaI}e5Rkhy+yE2 z0U*f^M~p6brAFX#&ze}k`HDn$yl=!qbm4~7=uMq8fSc31_;?;{N@6S$7)ZBa!v+`u z?_sMav{elI8yg9dXAHVGmKU;@e8kU{xgORwM&n6LJxG){j#?F}c+)2gF-Vh2rjg*us$)$M zb3eR(m|ee>Tf{B@oa7yn00ZKdkAy+8OS^^fRcpaGgUuJobHKj7gToH9j+Fz&OIEO| z!=QxZ*5DgbgOdQr5G?pE9B3f6kz{euC`o)cB02z+ks+~!x!vMu=3g^vaM74G(;U~AT`bve!Yi;+^#0p>`=cL|;UcO;ynu8zP!>_XRM>YEuWYIAdQ zz>-(+oXHBq1-CTjuu4K`NIhIW0OvZ46v;>kK4QcMAKo>@1qr0SD`41>i6U;#^&mNH zB)BYIkLRmbk8qk14^!-(O^3e2ycBoG{<9X>TKCu@j+>58|0O?9{u230NCn{J z4v~{tEwDC<8~lld#B=xaKXvu>rj0k+`SG8gA#T;!LUtFLeM5!_eiYi~;Ss=Y~kU)i&6BY_^S9xQ62c{$w3{Ud|3^CM%+ zZfJV1 z`cwf-3G!nd_72w6AjC#vO+<0Jl(Sf+Q$=ohv-LVf+#2)8C3vET2X^k*ad1VVNbtoj zOT*{RAZKQ5#XjW}%|Ev+@-E$8oEqa%{Ns;u_rb0;(Quf`AMD7>0l_?+q6m)5B64zG6#pEA4}yre zxXblbte;|>xtQUh(5Je93L5_<{9*PYgMG+r)22;3uyMpw;LIa~287+e0^K1s+5(c^ z^ciy}if-)4`3~4bMx!5dK>@V`zEFT<@51g7ff&K;Mp&_twqMTydj|}OwRaJQp;G0x z=nB`oz{l;vlr3ImCTlhXD~NF2cQP`Dj;L6KF&{m8RR?Q!4^Cs>m4~Q0DT>fmPUe+_ zO|ndQ9srX7pVEB951v^&aoF7h&LJ!+8dEll&&LIp=@B?&vxA_-_H@TRxWA*;i6}GQ zHyLBPvgQSBktp%hu3g)Wu4XsJ>3-#q6S!dKzrbLi&pO0` zZ2+Z|Pk%k`&!-_FA#$PE37g@42V^$Ws8c~V=Cre`EA=DnkudS*Y9>}zF^q0DNlRA? zR%_1=;E0XFZFcG|Slmb~JpObphZBc7a~}pdyRp1zz_a$LdpOs%u@?I=Y9V#8AA>PD zrJ3BS(C2Ypett|CLL8w;zVqpc%0P@{5EE#;T)4X;(|#qtT5e}eI56?~#}8Fpg)%x7 zdx~%)`Lq_}hDOn;$cp%u`1_c@hW5e3Tm*BLsF~x#yePqar_4-DQpn2so@1G`qq}iG zj>lbS0_EoMh}XP8AJ?Z?z&86vd@)SWT29B1Qg&{ML&`SSIVmY=iqYrChBr&Uh$jq1 z(eh$aM=AIcM{rs({qVpK!j(hFGQ>G2tfr=h@i?X#uzue02q`WZCwO?gOI&avz_Z?S zhcNH*JMm8NTQ{SV8Ct&P%U407gQzaR=}|^3A3J38p^gr_iK(fIDCViDsYq?{45u7_HrbT`d=S zy7bA8xal83)hvMIxZxcYWdm^iAncW})Vk4Jt=)lHYlVDA?$l~Q$ZS^#2M_O!U_Ksd z&;0zXswn28FO=C8UYP#KaivKZ;olshIQ=ac^Gs^z{Y&H z+R}p4cT;1JeIIq+Y|7pPsQ%ta*89&D^&Hg;9zV`7Z7`ra`pfQD(OC0C5XicQ2iUa6 z!ruEBEzXbP7hTiPik(UD`+I(Q&dC!b}K)@@OBTwm)~nd=)}O9Qx6UN-_5j2g)g@nhR?LRd%AA7ft~4-4Xnq@BV^=d6qKo_ zIktAIofFO5_t=v6)T!4no-H266hy9<*A?y>%qrnHzFnuX6r-Z{5Zeg|iZ|(w<0Q2A(nCcke9p>k!UAJx> zKCWq>0kVMri)y1GW&5^G2H__d;gHU6rSakead`Zxkzx~C9vON0BUsHSG_hdNoBOrS z!OsNuo*W8N@CH19Sz-bdh5d~S(@px^d}P_0Vu>fXzhshb3*q#UPne*iqw}J7#qou9 z*y-`(HE42=v9pgj(oq=&1usOR`k}~bZ`CAuFhKk{hj;)|1i~vULV4#HnAb2=!tv*; zV4&@tN1t$_BO@56h9+1qh_gU#crk9uwxYylXXe<^8VF0%KuFZ6;V>kwH6Z$cimBGorIVp z%CtMZ%@>46wrMfc0I|1{50gRx2=?Xd+k7pFUK91iR~_sJYVbm^+p@q94YQjNdu$#U z7?=WEH9>O^^tQ-mLxiZwWWOY~_A|6(>3XYq+39ce=xAw?PEZOwX|C5>nxF^JGs$fU z#nakJL*qB#GKb1c&{AWM#db=ki0`9n-`JX=tusJrI{J_*7noQ6z9yeB%}v@?pLne9oQ@n-(O7a?o9YPaz(Q4!r?; zR?d?r({JPKy%{_t8u==y@G3wEs0QRs927C&!L8*Eh%L8qK9UUxMj^YuDu4vfItjU$ z-rmZURpwm9o5lm}K{+0&mSUnJA|&VU;Os3HsZLETtqFjx#JLclhHsVTSV?*4rOPb_ z?2|J9p?kegn_c6h6A(BRd}=e3WO-(;LSx*%hs(Tn%e)lF;X<73zgJ*-I4@4^(z>3$ zZ&W^AuP2j*`x=rGsv|nea{?D$&v>qk)wHg8-n7lyFa1u64XXJ7g0H;oh< z(&%K~ar_6AKDnxzzce9n>}H)2F~>%82HWAvzKMB*$%_uM*RIJh|90LGi=FBxx9zgu z246FF`EcQ=dyUQDr4f}IfIZ)lx5~o8Yhm_Ehzr!z-rA4U00u!%a0@~YRGr7`(s2b! zq4!2ZLxOzJB?wj@{Qfs-3vUR1{YN`5e8C9=u*M6SWEl2Gjm{!|MO0at9!EHQ?k*9IHCd5<$;g*Vf)DAZojrmA_fjS_2$s)>xHF{Fg}S{T|JGnZc8WP5kb`f z{))h4SFq&^R#$S$r@yc_JE1fAR8;izn1mnkzXyR#HB#Whyt;CRtPl^6JgY}^G!qhw z*JrPwCgdxdvkDmStoZ+k1wv{SsiQE5*Wx+KAyb#`;B zIBoF_dmqL9I!u!Ac%PF2CUA7&5zdM-0gR_Wu?PL;AV|N1BO~BD$@wP6%CO7v za~TIJX=h2FNtG9N+WZFkt07E?2;m$ZJ2J_hfe$J^fUuQMI59rj&T^q6Bk69Slp#8x z7;Pp-EL$+mSfA}{I~iC!8q_^_1`YX8Kp<#MID3w&cee#fU+#iB_ft*HE0|cb6hCLt z3GtE?qidCjQ|mlxTeYWGAnuH*tg31V`fP6W+$s~A1v%RE4<_oJPOeHaLb%j0Gb%Vg za-4C)hFvS8nb#T5$egtK5Aa`BwiE;zLUBa}M<*~Nl2WF#vo5FCv16$AgD!u0TSB!Mh#ni*2+S;T_&W)nw|fs$L(CXKc+$dhF9yh9+6QQt16)@U`iBFR5WCT( zMIGqGYhpfj%n2UiJNNDtMY%($w}j>bdsu)JJqUvV2tp`CD5%$$qfjF@q9or2e41#` zssIJwL#=N@ztsE=_uu35*Qo@W5d{Nm_zzzZ+etjMi_+2_D1TU@2xSJdAeF~e@i*e1 z!Q_>i>Doa~&X*+30fq9_PiAOT$nTG4Gzudgz~Of^HKTf6)%r)}k!q+z?mH4Rega77 z*E2U%QcBHXCyU~*2OB?2;bH+hKe}Q9GNbBTzYu)-#EHVf!beyku(RHT6UpZuUtfEp z|6U}ug_8-$?;pzIi!nK`Q*JJVp0$)}<)qlLd$$N^HIW~8wp=te{e2tLyS2AzGbi<8 z(A?l@-{`peYOk)YE}Z2)VCs@T*G=`6Wfu)i3FeWJKXl?|F7aW@kfR2-4eZmus~q4# zPKub45*~lG^Stnl^ySpA{O&hG!sgRUgO;s&O17?Dw~mgxV<}54Mq3Yva(mLtLVV-2|V#K&vc%= z9OBwS0$U&vL>cd`t=43_ymJXnh;_;MH;L76ON+Aib#__~?qI!p_dc(#NMpWzY(UR) z_(7%jI@5kp?B_o9Omr+`Fin0YJAsRFJN2`^Ka+PLvX=M*26#Fv8c0^?79^jHZy$LR zxq1A)FQ@B{h(cd2BSZdbF^j_Q`siuFUG!cFJ!2d(wHiE63;=;D|Is~WnsIgw8p|j< z6lCHK&B&?5(iNLd#~e)hCN&ci6ZYO&wX8L9HgX@w0vq(p+J{X~;eugwZNWyGmbBk!`H$41t(Ysm|-b#2f_m84pcg zRz`y40$0KrCy%O(q$cO*KMXJV_M~j35Lx45XvXd%f)#fr*emXXgM+{$9RaZI-XhQ@ zS=Q!Lk8v-!8Qn~K1V*yU-Ocn*d*B=8UA8i~*| zGc%hoLIG-4iTKZhT|(F^}@|&mpC8X<;NO7=2rL z^E=ricrz{Fy_2B`+$F%r+rXik4R_SNw{xv7;#0#RwHxaNX#tzDBZ&bf);9XcE1n8M z1z#a3C8-5!_S1WyPd&=SMDosXai732i*oFFF3}f#`0(Kk;7M4}de6;S!Pw#v49amN z4WI%ea2C>=+&~f=2jv`uMWtVhJA_Xl91p0vGb(FfUeGqb2D~qmsKW1?s2DE19(X?1 z!&@9K;_6XoMoDY~M%aJAs+2*XE93cx74UXl^^}$Iox#cRMkUKczctMnSG7E{)zBfx z|6EGIfBkrLoQYs@0Q$&z`gq+&=t0895?_5D1P8e~>^vE?XSH9)3;#JdSO!=Ssjb8T zxG^=dnL)GD^A>x>MIt=~HHGoz)I3w{G zV7T5Fl!@kobV0cKNQf{xlSnTqYx;L_j*}4|m$U5`E%4H%0LWOQW5NM|SCS^PE}6}K z7ACA*1SbbQl!!eL=YZ@^QJl*_5{Rm4!*)hDq+{W9j>6|eBw{!Ydbos7G_1Ddm}soz zHKZknN57OzE-!z!9uz111Xxz$TB0;F0*NG1PWjQ~MXtr#CN5Dqxx=SFC+@UZ7EkQC z^8LnbrrgK`i>zHglvXpyjg04h44G`GrI2cI^9|KT@>}JSNEuu{7&p>lSTosOOodS^ z<q;nq}B^9Jk}0`?<~0fl5SgosDpYv7^<^0Wp<@@NGR23IzjjeS-O<|YWIA24Df zNds8GH?m8Y@N0=het&-n`amox0bDNFDGIIY*Vbg2YNLcFbqW!t079lff)Mg1Y!K}z z4MI*4?5t~1UUah);wetV-Fmzar7$SuM}vbyo&0J{$C!W)VC)|y=rn!lHp$sVTM`Jp z9Vv8yYS%V29OdQRgBAo+etyVzu?opkgm3lA+eMTcg$)h6(FKu*g74=DL>WCA&dGOn zmFMhl&r4XEnO(OTXGcXzJozyhAP)p}qsoC?S4Xx{HLNC3i@u?~Lx2wG0qhq(O{RXB zvGPU$2f5}j)~kYW;m_>s0O}>yCL!=kL(Pp4y!1upk&k-mYmk;2l*qV{pI!mK-Zy`sng#Ct7c=#cLyOXRAc-MQebKUXkO7K^CIZR+sLM^I@qHYIYEh@X`Oo5uJOY?Jq zBnwBMHEC9RXjRW*$8c!(!>FC4D`&FCxKX0ForKn97r5Ct*zusEP+moG`ngpU1pX@g z%$zur=whU+>yn#S=hwef0Q_ZzQ={Oo(hel=>}(s)E&DJwKElHC0)^r3z?&#cNi`RD zVUtbj&M9y?c6x@Xx-!;{T7Zw*aeZUAu;{6|h024LSr-49X&8fixl@B_%4NgoK2J zfg-s;kdTxV1q6{&x}*)1kaD>c1qlJEe>_{y`ObOY@B03IdF|~+S*$hZGw&Gp7~@V* z37!iqDDvKkGV2x42S&5)qvo6c^R+f&gIg(b6-WoRDYaWTx z2`au_$ZkiMFqtmyT6$BBju#()`!zI1>u>WaDLJo*cHj|9mAHt=9SqjNe)P@Ev=^fA z|9#1Szx{vz#`h({ENFz<6cN*6qGXRp51YvQM#M7y<{#GI|N3_=q%V(h6syBlw|x0I zVkJAVb=wiuqgoVDNn($Emu`Ez=YX+sQAk2?ppe_WMsat|`c;nQMgef}_@DoL_5?(A z8?8#f{rkxH^6>f>vJ2D{v0Fg7_W#2P4U9JVaPl+3uHfkfHX+4`B|NYG5A`kq<-Xc| z2`mp=PVYcRO;%SS)hB`%16FhdL>Ss3$CQ+kl0nUUsL9f~$zT(BB0zJ)aWF>!e3FQJ zee&aFHfUB3#hT5}&GLDD_oko_#=yYK_Kub)!X!~e*zK^KLqocSOyfJAYki1Iu16@R zcjWIxVJ~8*_3z7UX(@leYx?^hGU`VrM~)!#M4Ue86%0}xJOh+g2U2}7m1LBXV#%CO zNlU|^vAVu~v$Sx~veiE})(k&&q^aW&Ksh74V_#$BzH4{xsNQ~~zXtUVI2?;&+X$1(Nn+9s`T> z0rh+0fisdr8<7Oz(s2#084E{?#NGMO6e0R+Yilz$rY}s*{Yyvv!%4*l!kr+nAF<d z63hElj~w}g^UZh6)C=+n31mq;TrgadLUENylpTol_Ol-(^YLRaFpU^oehpGv6B84H4Q<+V1dPJ&tJjD2gV*;E z`(G2ql(vJ_QGo4_SzaPV$5L4$ z1)7<1Oi}wo(<3(SV9r=TwgWdYWUJ5-0{dcnM-%#dQiPyvUO=dK_=`Db+k@~9M@9xz z89>vULQy{jM=G*w9T`v7b@)K)5N6^ad}60eDViU^L866a@@t5)3K4q>Yt=vy_zV~i zgmOnvU4%41`-V7m3(^wMG6_75F579CE8lrm){l=>j#dR_CTZX?K(2=GT*wF>$Orgz z1Un~nF5-l~!cwUe2 zf8Nj}2`rXXz+llK@yw}H!;ltg2Yj)YKNVjUo^XD*yi83?)w1Iw{d=}ba*vJ-FoAId zJYRWvY>T=-np+@St|)Y_$H#+Y!Ko!(f;$S>9n(T1L=duh2M;UaRt-vdlz8R{1gL!$ zLt6ynBQ-E@-WPkyAd`S2y%bn-N-;WUvc3m%X(G)+xO|yLo%lbzw@+XL;5;WdU@i&h zei%iCHVBSF#@OG2wv^26fUHozMFT;@qODi8wY~&}$FqeOE(g#6vp*($#TvLa?$~9N ztVagWU){hD1Kz5<{0guY223S^C556(A&c!XBEAbLBl;r6FGUj@5e?z?a}OSWsP@VL z%H#IN_sUZRoj-tvB zVBK)-q2Rl1F{nax6l!~;`M>FS;}hV|(BEaoXtP0>iY9OsSYMmLg?=g0mxYUtKtq{A z&59fFvb)=qa_ML95+FuswL}KU7!&1<|CkFrnC7Ru=P_yJ!nh52aCaC-#?{aIT2;-c z{n6XTx7Ejk?I-it~09H#KY@$%d1z3U~ zLpC>)Ccm$*44ps9poKJc1}&&W zPl^{s;^g3KCrc_19ALnJixB+q$dl#~*L49|!HSy(Nw~$SQ@0?|!TZE+As#&E7|8;} zJc%obp}ERL7ZMR_W@U6vgtP_9FCjP~vk>Mp@QNcKK@hen3G^XXoxQ6uB;0|d3Sj3I z;1NPT!%jJZ_-J#(=>!*%u&EIENyyNy_jgeQyXecuJaIr=;@bH@M+ioZz4hRKmja9> zKranCq65~}{A82dmoEgN0o_W~aAy9WttaRS2!ju+(Fv1_*#hiH0qp6-JY*Ow(=FG{ zfG863JFe7I2=Y;gvB6{!P5H~T_X@b^4^j5cV0}3l;cHY?>rPf&I`806iY$azVA-_a z90YV&M{Gp+Mu5M8M*@fE!`eKs$}t_qU){QQ?|ra57&7l#;NC*Msox;M501R;_2~!T~>?F1$dSHo|aDmoNDJilqnSm^vUT`MnEE6$bN zviFg_gxS=|bwcwEs?7q%7}JW_hjY*@h$0dTfWs=8^SwR$CJH37Mv*dVk6Il}CSs3C zWCRFoc#A_pC@RMXCrvudd2QkI1 z0KZda|D(&XWWe*~AZ9iQdM>)TnrF`kyRTl=Um7TRdAH_*DRmood?%bF*cGDL7K81nC- zZh&$XdsH@DCIlGRX@kwgaDm>!N3`(G;3_8mCM6=?KOfj8XoyOYHl)KsLULv*WiZvbZJ=sPp%f>*!?V-pB2|PadDZD9g^eYQ~WQY z7QF+{^@yko9;HJA(`($uz68SFAQFr(N;FMJTYK?l+~IJ0F7Jl;YGp6XQB4_oQ87Yg zuK*s?E!-L=F0QDp-A3;2FJJ)TFKCpT4n|@!_*F;-IE;6;zSBE_o~+zk@6jxtk2v7P z6x;Sbb5sr#Iso`}mmw}n4GHZGL-)aohd&O7<0OJw%M?C+GbT_ZHc+inO-qUisESvH zhh;4IjikK7$H%;S;Tmjp!v(znHo}5i06&F{9ija`2?Dit1Xx*wS=8dZ8yqh*779>R zhJOcp;i5*MoA`3z9Y~#$m_k+}Y#pz|gL*@y@dYcPvCeR5bnNH+wY7 z3|mD+R4Gg#rd@_-&Mola{>2n>fXim}ctxJ|XPcy(E0GUA7h1NKDbzv$a8~cY5JGkc9#gg_Cx?3|-{EW|l<0*}6%D*wM;KL& zH2L7Oo)|3rLr(kb7Bx7Xs-5V2%io_+em;NZ$JOJ5o=5Q6M|1~^Hv@c2ycE65Hb`3z z)>d(tyB$KcJR|&dF9l~1l?BoBYe!(uYTJ#}`b^By2Hd?+{wzO0Sb>edw5(2?`oCm7yGG=Q{XOE?#}&=sDhPYP?f8M!CpyqQuLXa_OH();`GC zhH$V#gMzj~9C*E;pg=ns%z(r!6kF>sirl(=yE^64NdIkw-ZdzralKF;ZezFrQ<=mU zBM%CE=rW||`)oIC>Ln2ThrI;;Wwn<$__k|-er)CES3;5Sb1#@ zjc!wt#lxkU(A_Y>Ua1Fhqva>W6vFwH)&3A#qh@BUp)NlF8V}-e(A;*)=1%|w$n?BM zENsm}ly20zvNYqRWXcOW284BZ?PDVWj`w+-Xb?6cM^dHa^0dNpc5gcU7 z0333BdB089A}#!-?arXQME$=3P&lss(wCsN?Zqy8biRGyHj+vM4`dicV)%bDlyI_^ zL0N)^YVqYi93`=*o8R*YBXR5gmib79%IG!k9wi*I1!UJZZapXvWeA&zqnLaW1~|s> ztg1KgQ^@*kl#UMhYZvlPY;X553$*wb7r=tUg#Hkb7uz4_JUT00ij)L`m4s^G$Ox!U zT&~a76`*V<77ieQVDDQk%BYZw*8Qj>Zvg!ks@PFW1WJI?ERo3I8n5cRLnpwaT_)S1 zQls`xWbvd?&Z#S4OrTK*_mc2!dgyea&KQ*6D8(p`pLK2U@e7NzEGS!`8zf`XiCy-- z9x+^pmc#iD3xJ<#UwU?~GXgc*XFC5-OcPeAMaz3qKtqAi_t~z(a5ST2y3= zW)o!jI{K`{&L{h7+D*{0ljM#k{@m@*LR+@A7;I&dG4X@;s+1c8R#6(3{J?-=S zoueHMVWiNkCsuz;UmQ&C56VHyhYKRo-6`$!y0dgF>OTNYwF^y6O=KpH@0k_pUFFrJ z7tkx50J_oP{ebvqftCkkZ(?w=4(2W>Xg5L$epen#*o8E!EAad?ZIT-5%#$wk1Za4&p{ii-MoZv!%nF)LZ)eS?|pDky+J z#GyzN@?>!fBcll1%zgUqXsXcmhV*W=%*GrI`4sdMY|HMEZq#L238zLgS3lcgA}=@hV&Ly-<6&zamZVF%iWs}qINO>4Z|r9qQd3oBva|axTgS57g{jpAWvIRX z;H2CVwr@ylDu9)#y<^F>SRv_Hkti&Tz=}rv`TK$H-AMXG4-7P{55gEcF{(xh9$JYd z^J&m70FePlIUeVQa_->h;Wtk~M6qRI^r3X`&?P&5p*Be^|2i$Mv(A010N9WCXh0)$ z%!+&KZ+aKV`$Fc7sT4uWAhVHvXW!|~K`LV$;6$+->r(IWu!Z-I04ZcYCU!I5OHn?> zI9y|F><^a*r2GC-rcvQ0VueIK=3biS$^^>^vw5sYRj&l=ep5Uaw@GDrJ z1?T{g;sdR_{^*fS> z5KAn8W_@^Ek`Nt<$2`!v_&;nNgnV)x)WRhd`MT%Pd}8<)pO#jKXu}4#2Ozc8SR9aAtgUsU-q zus;`M-i<_Nr&KBPcq;q{t*3!@!jqGO#y z58&}ZgU828hAMB3>8&c)H&|(CSqhYE!r>JczAeQa6aHgr8gg%RN||ZXUcU?b%i4F|BnwoLX+fL1)*`M8z8NO9vb`V zZ=!n1zr9%Xac-bb6-5a}+5x1Y8V#$p-~@FGxt9zaz-Y)Avwu}6|2Atj zwyw6e7ncX6XtjS);{?Grzy@V`K4D<1qN-|v@*cP&5!Qkoq|5zf+st8uDPV2F&CzjJ zAKtB;R)0CYIk={}zPkLC8q>0D**e=VR(lwDi+z=il$WUlF>>0XxBQ0(G~|j!+$`+I z4tutP=^;4tv8^ox&5MYiDKzWQ_Xyox_*zC%+{NaW8b2ZNjI301{0J-dmNN{xU>Cf+ zRMQM+WZ;kwhFlSe`L+Iz1*vWW@+rnTK0ve0Y;5$+;*AjM$j({h=g-i%5s^GR z6C0xC>M(?8YHPEE)*cWkQE#6xHij6H28dy=jEv5+(|QC_2OE0wN5Rm2S+}fOdb(!p zLa+hjP?#`QeIFd$wC5Zr35s~i5riGlU63UN@Sf`L!5b(i0EV-(qN?g0B;#h_#~7FU zpbsH5v(nP5U%s3|m%#>CXJQ_JI)VrQQM#<<;82C*VvE)|=q^^E(jagxL9zs4(QRgu zpmk<&pTm1Z9m-C8B;LL~CY_yUNt~yK#o|fd#P*5j$ON8_#TL<(MimYFp@?dZQQ7CP!#7I_ci(|f&>BoF!3W~ zYY_awgkf>dh-|k4c1Kn<;}y}SgSZtao*kyIHFVB=JSr?q|H@RJdD&77T=#lRN6K1;JV(uFr@ByzGSiPGk}a5J=eiqAPxG$4J%>hlViZF+ir? zsHv?ziPQuZ;9+`q!B8uj3PKrz*~Ry1^;#L?5sLbGyQ#JgE6nC zR2+aF8ci7~49A}jydCJefVdJ9RRU>)eFF@H7}mPUojQ5)5NKAEU9X{AdyD!&IW}8? zKN#PB6E!!E37J@6c;<-3+CKYTQPAG@_orbbO5!_4M-P$4(L%OkYX=kwzBm#O+K$T);E8{YfCMQy}4J;=1`^4uUR38Q61RjU~YTP@LIOWHO60XH-#q zvnrW{g@lD|#9^WV39dwNLkHH2n_3 zbQet1*Nsg{F*wz!6M#PPiAB{aOo)j%8#R|=1N%-e3m~5+c@~yiC(X<*gAs%pFQDYw zzHST0u=u#H&Z}PwN=Hyp8RAp-6g7ylUiVJxC=qb57Cvrdgn~C=jryAb_ww$TTJWkN za^W|X)OPj8yT5ZHPK!+|cfT4>pX2NBr@BoJ@mIgfSB`8e^p?yDD{kSvv}Y{Ka_F83 zYjUv5vT>mHMGrFimKaZ!?Z>3fQJT@(vD-Mne!X2f&oK~-t!4`MX z1uYN*bW>)4orN*bG0(Q=^E&7nCVzd%64oH=HiLdH-)*yR{1r@067cDdynXvNC@d_@ z32XIC_fX+h|{~rqL$?X;8<<(`lloZg*0_UeOqYi@Mb{jluQji>jZr;4< zgi79Hq5yrJEgq2|g!#6jOD=Sbs2Sg>tEvVA;Y&W>2{H)Y0Uh}1x`)HTj`RD-FjE{u z(_mhepk3(D>2TT!L*5YZ1eH%4CP;}u8p*d{yw(DZHnDe5f!H+wkw(PI%BrRhMM`oG z;2m2a4%*0^yx?EjB93XFI1!0#C!B&OTpOiWBAz`}$ek#oZ=kZ=VvLenc)z_$Py(zY zY|(NAfn?o3I4DYNf3%^oY&nCMR{=dL5G(_cH;;{tVBQ~w$SzbOfB;~NLXVNgyh-A~ z$oRO}+fiY(aYu`75WTlV$$J{&i&Rv3+oVo49T@rfGmu->b@P6WH(8`ZS`mOx&CAEf zr-HlIf;x<~1$IpXhrIJhX^!GP2+&CXk00At;?*6_pVwUOh_2Tb*@|4&G0bOF0Lg^V zEI@s*w6NIry}QH|?@fHToyclOe*FqXZza*I@8E8%l|FP@ zao|y^t*E*jnVb&EknWO?gM*_6b4xE#fT#|biC}KSj|(4u|9U}!HQ{ny~;b_vHR&AB!a57QlNOkJZNf)fOoFo@8a61jDEe)OhF~P?0JFtif#U6Qc2FAXbVd z&}$En?u8WLD13+j41l4!&X{uzc`d9e`4A zzNGX4(Hk|&GR$nra0<6eetyOg3=LcG-!Vg6W`-vXbWyEhalLzZn+`ao3}~gxP-`0$ zd*siIqQ-NC&H(Hh!5Aqhg0yhB592Hl$8yAdOojZ2x~E(Y4Jk7-Ghy&Tn79ICEu?K< z{6He&05((#tfU%8o~d33;5<dl1Jl#bv}pOROlCG8)^2I|WaZKhk zw$!73gW>B6OrXpG5)jfn+V>~mvAEqw!HGRe8n}v7`2zGpO>o5^R8CyWO*>95hNu8< zbHil>^-+M;EntHa`+8u|uqVo>y~LUv6r-5<^!d0#gJep6T`2-SVT_i{{Z5;C54d?b zpdaLrsb1IMiC97KOAvQ1V|vyHk_%b-g6EfLije$Z?REk8i2-HPKbCH^pw#32oLX~Xst=(@_fy5zg(&JtobTzkQI14$XQ5GLdkL5cl(`4=yY@KvEV zNA0zttE;O%TJ8bfII-HJ{@Q};Ar3T5H|^L_lafzsdCTZO?raM zORI!1Ly*J-5*&@+$di&gTI0!6tc(K~?4gjodFGwx^6nblaQX#ICa0c)o1=Q!Bf;}v ze2-(};{aY2RE1%d=gw`%+pG0gR94=&uXT~;riy9!Bd!SeHPnriI1>0KpM+x!_rWSl zWBD0Xxa(2{KX;QbQs(7Ea~klj|?<>*?7-vKwO+T5n#=wp5VPDXnjD z8$7lp>$!D-Iv7Ie-9T;J?&G$rTy6<$?)DhH zNdSDJGSD$s2;xmK$#rZT3rO&`p6ahZPf=3~A@zOeD9j8}Kq+WJc3{1S7Vo%uQWai+ z4-#%4354XJ$fzjRme6SzmoA$;K)EXdz#tA1=R)VDjjkvG4_dW9>QV}(V1c;%$B*Z- z3fg<6MpX8`T~E>$CP=ccA=4!}fhD>IwHi1{0#g(I9oxqFQu>Duo49?8$He6bF7(KR zeo$5k6YX)ZiT~0tlFe5KQ>lE=2pt`e`~iiJo2#o}8+G4+r2X8+-8za?>Ad8u`=ebz zvQ6gPFimZPnL3?>d|rCY#BZP@dbezlTY^wn&ir<>ac6P<9@Kv)YiJ75S!CEaFkxoE z207bjj(c4f*N)c1YZf2GFIREg9MT=akF|YT-M5yAg?~Ky6`PfpryRta7_Zf>i`gEr zLH7`6Ik;wy!@<863>aw!TtLCGNIc-eGt;D>-?z^krk(qfVq-sCjLOe6%`lWAj}eYI z6SMc+j2mbSM-d+gVIHR$uXs#t9xs z-aud)l-Nw``I%-&}DGzS!L{egm;F4UyVN-2S+Pt&mP&_BPNc( zu1!IHGLQt#A7&2 zLVc`kzb7}M{b&3P;28a?Iv2XH?WqaF`&g8y-_696ls7)nqnsa@|4#w%PZ?0C!Pogx zYR3+(u9v@)Fmqt)xH~b??Og?pC$ds24(r(XIQ+#PP%eC~HaJAgfMJy=cpU`!8IFWP zvwdzDpvIn;ee`ON%Qjb&T6PE3Gx42;KS{@h4i6lpw;nO!5fPtdN}w8pY|00H{RONW zg3MM4Vz4PRiZGa6M0tBYWZI3|hC4^>A<>{G5EQ}gB7ntD_k#h^aFyU@x|RaKQ+`Cy&WK>zKmfmq*Z?n0H~TYj}ZarllcD%w|6 z8;Z0#61n65&s|$?uZSlEW9a25+(#@@cVDD&+X8j@3&m1->N+p~LQB$$Nf^1%z#Bj= zb9k!kf-&79*thy7CMK5p19(4l+-hY6A6RAgFvbGhuesL?ybxrQ8`w{gazfyy8o!8x z(ltrqw}*S5kd*Yf?!i@QYsdsoL8eDYf$u^40#&RBlQae(3oO#Tvvw-#>Xon=MK#!m zu`O6SSheF7zt=I0hU5XgA_^=H;s?n%=!zQ{kFYTVuYJa<(cO#%DE|N#g3k6ZfL77T zqY4>1hIT-5U*o}l4znj9$FX>RfN_xi!=v$8a=4hL`;-B0Af}g~eqDg|2>Lrkj6D_* z$B6fsx}%*+M8%Gro$+!n<+r?G@N_%=`DcpA#wN5s6w+^$8pImE)UEdGI)n{exk@yu zX#Dh^p@I z?~tT?=#Z@c;loE%_0n(Qd`n1WzpU@b(p8dKURt7y5*JJU$u zWMU$ei$rFJ5D&YeQ*S8GN{V1kqJ|{3tZ}B{UtECUu`#l}0q1HB7Z+LPgAZ1{(F>qB zh*m_J344Nl=RYyP8xW-2h3%^AVL!D7=LL{3;VYxOISEL(;zbOP*W?w<>mtxMQ>F89 zexa=bvqg&dlVxPQM&Ib`{F)Q=Nd_>=0;yC*d~E0mh;=pUWwPmJD(i^bfb0ZtivavF zDi3f$R)C_TdEaUm7-$eX*$|uudNUxW{YWW@luf9asV!~@c#y*>0uh(MAK^(U^q305 z`HD+PsR2X)!#p|2`Vrvb9zSjXM-=ZZ3GolTk|wzEfX?4}JTMD8<`tR~{RJc%$Qc;| z?B91{=0rwj2s5QgpKC+LJgY_QJ=?NvG!U$OZr)r5Oyr=l@=e4#kU;wDyxG{9DxzENTT*2XIi^@7eHb=3KT_3ul-+$jj6^xnk_}gA_h!w4BLtfR_r?>UZ z3ChR?1+4?rU;4aoN4P-8~fb#s@N@;nRRp=cQJBF=!izd>_hIA`gdg9g%^O4L4{ykqcR6ivAy@$1#A#7Tu5nslth&#W}8p`RBrL(YAAS_4RP&jQZLwQwERi!*2 zx84DVbsexHD#r$tOGu|=@>zb#c%;NcdR_>5JtLSgBWf$x3>7-yVI(L&kI>8D zFpx))n_~>c~ z;sErjAI&*I=z$;tl8SYr^C6)^fc_FS6P(Ca!<-70U-8R{EWtkyNVwV!%zD8UCgNib~L-ri`4Jp97l^wf@u`3_EE?LZO^1a``& zR)4#PYF16Uk8XPg^&SHeFyZBN6JO7Q`XT}5xJCDdZHGL$AHm(+_1Dtv3(+Iq6V@A_9I@i!B|kq zc7T5~F66M5OJHJR5(W|q4i4+s==3jNzHVJ$o04+;GdJEVTmq90l!4R=rCuJe8%97}b?Ms#}h1b>ViHn~9%HE4(o$$pL zX!s|hnDe0vB%>#w$MUyUt-g%dg)4>ro#bGpBe_#DMBPQC8lxq`(!ecBBAy9fnhzHT-p5e|Mo%nPNb?p_3iyG{ z1(64cdJkiE20UP3Dv6l#3?V-;zJn%1NHSbazG4SVI>Xf}@v4^x{T|>A`av3n7-ECL z5F?ET#tJ}*N!G*j9%&!Exu+8YK&==2Fg0;`nwv|q+K2_9H_}8AO=IJwFz6*RC5}GN zA;#%AMPxrb*{_8hKT7rfk81-x2U&XN{pL#-rn1D11q`5W7j4Q>@XOILC>-vKKXJii z&ElS@$z&P127Wn9i?eH(;wERg=4btmoEaU{X3Xix(Tsac7@OCT!?a6xn4uQhDy3Y`Vcrq~lQEVJ#WHh|xs<$MQ!QU^7&h1drRX z$$RX@T@cv5{c&4ggF)Q{x;CQrCvi5>Yvtd|FnJuTF5kqA>s#sYRsvN4Xx&V4@Kzc& zY4WOI`cpEL5E6m6Bixy8GI_o*O#0Eyu1tELZNN2L{G1srem{u3?zPA0GZN zCDA7-=`BaaH<*P0L`1dKk8myPHM8lD&XqjkC`Xi_Cdc#{UH^3?Ho*VS3ktG<6G`sO z-lLCuz86yoP*$2n73UjKet1o>BE4ZO;DpOD_wt~BiGDZLE1sQ4STAAOF3zSP5{!PYz8=>U>Z9`*C z3KYR>>OpIzQ*Kme?E-D#5cqQe0X3EthF!v$k%3cenR`?lMLaQ^a79H2uIfJ)Tv2s zoupGZu4I$q$USMj zOvZO7;L4zKPTBP^=xJy+t|RJV*iZqW&lR8$F+&DIPf`eU6U1~609!a(7|HPTm!n-$ zsM;WBA=}OLSE$a$2!ut*Mz^kl-2iOiCLJ_Hf-%x*KORoayaXzr9X>ra1;{$uPZ~t-e$4l_Gu_}7NE-71AQBj@`XID5vH}0XR zEBAUIFSbR(db=;hd&({D>3;ZT?pTGqK(cC+(UF=G67K$QIs8vqJtHGHZSqSV3U`A= zHJRSpSDZF4s$QJ%Za?F$E~|y}VouKEx9%>dHGJn_ymYo7&-AHpU(8NC4f-W+rVHK}Vs$OXNPt=Or`WH3XPh?_`h@(Cw^S&{WA#XR-)qs+ z`jQ7U^usXjVA!=w>b58M;cMv%lG&e3V4G?X*LT?U(&^AQCr|CvVK-#gQa8Pm942&j z-{|#>Jc|XI!LM%Jpq{taqe^-EJeg8rX85tY(&=g1UBxAGyehpT@f$r{#@1>Hu?>x0 z{2K%Q^*D4D_&d3YtN?&&DJf-{IsYgrbhi8J>2<%9*p72pKaA&3;q1%F-Ebnh>8h=r zC?j)gLFn2rfgH1AGIbs?QNOc<4u2O(b;{_L&#cnCw4T~}>;t=Qla+C!^vw6p``H!` zp1K6cneIwuzHC#(I5?I(f9&zMcdvYXw!i77bPOF{V!U!JXV>IZ{rXVOV&(ojmi#Z? zCb{v+<-D<+Y3UC2dM(=2sy+B1-8h9g>`>ovhe`R54L;3HwYLnSx{Ql;C7XIju5U=6 zYg6({Pt@C|?q{3SGSwP&=Dgb>rop2t`>R0elwZX0K=^urZ0wR_1J0@f&Hr&raVI=j z*Y%SN|NNW>z@P|7hS{)i8Tm#^nWD9DvD3)3yH>N-{3j9~s?sL#tMx4uf6)t9-u z;uVX2S{9$WOQM7Hrmw{@D$=YuZwx+EEtQgDQ=NO>*jqNScXV^;#u_?9$eZSe4*7Yl zn#RR+S$CnmMZr?8#rA&n#9Fq z^@{#z@cG87kg6NX%5~!ne zrHMNx>OTZmrj?j}i<2c(Ek~?V-h(qF* zoA>X*K4d#37?xKXtEa@{ELo$lb&=pBooELuzXMCbcKA|RjP*WB$JWkrpOdOJf0$M? z)@{GzQJxr=DD&PC-q@GJueLl@JO8+5>ZtxLmDjrLpYJG9=^vgjS~*MQbIk<}%`x{J zJj7n&Y2u&tBI0>oR(TPX@7ivY&$Xj0m3z_-*-Q(6IhA^0g~u*7`&DlX7N?~b-)(8v<2<)V~t(j4b`14?K0KTP4^Wr@JS)Y>mGm|$$za?IqO-#D|SikMr zbtT<34ULx{G^QlP&#+3pX?>Y{b^9AXXItIZx5OUB6xQ)BIzN1od6p}6xHD$;9nW)S z)l3n(Vyb+L#NyVqu*gr-N8LBkPcMA(!o^rJi*mQa=>xsQs2ME$pUq`^|8fF-fY+kuui_G6YcfN5H{`WQ6`c%fm4fT8(4RAF$UnUpE?b zcZ-htNxN0+0k!E?A)%V;wzdO7y5V0A(%kt^xNfR@rTkOYEn30mV<`uZ4X4+w7ZG>E z8*0ON*-x7W&WVXmj-TDcw5ludkO9|*U&+@Zn3K4kE1#q+ofhA3^uxzG**Tll$6Icx;J! zr@tOOQX`dW;T7Y4_pIr)v3k*SN_@owx}Wn#PqT2HVbjUId@sB-!P4?6&3%_Ahi=0} z`^%WjR=Zg%2Bq)M74yc!6mM2}cc9RNBLcsmU~=^nAb>OgJVdWfZYX$zE&-)^nS0%a zclZ5heY6^4Avo!^Jg{|!J_yK(`1}MqF7oY?l3CS`0w}On@1M~;ZL9SL1EGUw(@&3o zuR2f|U;1%u@Tb@=XA$$`2kVDL>oErexvpwj{l?$y@3Dqdw)IXckF?&{#U2H#uLwcX92`^Goi`d0eKduo)hEOZ#<4SCa4c^8}~u3If4FLd~y>C22gBS>Hc9 zUhHsh7zo%KaZH~x#o(Y3m-08?bh)*)KbDCf_m+z242$lyjDNnTx}~*eaJ5@a)_VVD zUH!7ytm0DI>UAxfrbhKjPX>p#B(C!IJ6)fCF|QIy|`xht`Q&pE0Z^P;l{Jr{!nqJJs;I5M+C==DGj=4V8Yi2hmR+1~Em02mp7$NMDIRxdqx#Z}p-*Oxh8jT)g| zZP`0f^slmQs8V_Mow9YrQthnm5h+$pYVVe*aIJJciqYkQ6_%2|r#ZgrcQ0P)%;xC+ z(E;hb!^j{mGvi?6hXE!z`|h$Z&ccz9wck^<($ah7Sy@*)yKb0obXXf^BEHSaI@u#U z!1so9PIgMUsp;;4Oz{UTZz~sb9d-7R*j@Re`f`=HPJb1*yv8AYRW1uV=Mnda`$ft( zlicUFI*hw9n$EM83Z#iY8Ejm(>+!kr)MB4Z^^?}SdYzTRD@=GJ=e`5{AH%2FfyDu=Ho%+9ZMKMwKn>1^GL{#^M`lcs)rO8&uS z0cuu^xN=k8L94bmzTLOj*TzuJyDp6SwxMYCy@wG{au8n)%*V+7Bv5FvY%c^|#s>E; z3}NxLPdNX?mjJ*q_@GNI_ne16QV?*0mO?j2FeTM>bwf(0e0<>O6Cxhgij|F)l5C(2 zQ(AYxI1_W##g`!+1D_QwR%+zELU=*L1i*9>RthQLbb|f0Syooo^f_jqcfi#EnWhe8 zNlbE;0^Nc^#lvGtJUUS$kVS0hN`#Nz6n1+8cL1z-x{8%I0Lt{c{&cj-?kBZv{AX|4#|8Rut*yooOsbQDh@Rq(<3#k}qolwdx4;ZmrYNTK?wm4QP+ z{FlfDh8B9nKm+KKIr@6CZ4HAaNjTGR%g@*d)damAub_qomFJf|n6&FTFe8w6a{fi8 z8{4SvoZDGT!L%wvhrap+7c;rbeyfO0+QrJ4Ph?h?Sz1{Si}vrOrVlQdJoC-t?cL0y z$3E|`E3i&@lr{Bndt_H$t^ys_pJZ4|7E>YfLJeLC-cH<;yD_O&VlZ_ACa(>9aol^j znyAITQ$KoCkv|wj>{Vp%0q!eg$;8)Zs&vD#Fmh+fE+!mI3_n@E(&N4cfX)RgB(gSu zxY!W3P^rw;zZD`+yuZ7Ke-4XO%Q~sRl$xfNmIGp{Q3-AOn2UEU@9Ik0T4gV9F+c7- zH@WG}Ti;dABExkVrD0|f&NDm4U#|>r&rdo;tG!dcOSE=A`=Hb7cTrrcqXp{x2hN?m zcZpirM^m}m;hFdHj8E|og%sn1{vwUp^T#t!K0NB-Al=CHUOz!F#bBMxP=)#FWIz3n zr$=T5d{56cw4X^Re9Rw^KHQ%DE=p{}jSrE26yXc9wXz`LljS#ehy-NBcM7n zsIs*01E*-lg9C~K1viB0EHn05C;<8cE^!`IAk4m>$D{tkMI~c6Opqk8E*_tVMSees6CkKrVTLgEcp7qOaBZLD39Wsz2WJws>k|`jeTZD)`kduf@a4t$+*Jsh5-*(M``qk{+ z+iM{SuG={ytA<3j_w4w-`Se$Ig`3^WKA8{4w4Hr_TiUPS!cYI9sj}_|S9bcx#-=Eq zZCfwdx?bYxlcf*i+>C!%CI$`nvfZd`uQN8@_jJ9G$TcOdPSw!2EgN_nrRXp&FGsoR%OTMo|pZ^yZKx@o|7vhY&a4rCk z69>x=DFyD+L}4QMVmlqIOyaN%EhO2n#{l8*)^BTYl*k@1@VN=Hj|_$x?#8rpYyaRI z*H@tO9Q)%dsd=)K|yq@9-(xn|%dXU+4xD*VLCv0N96 z^Y*qXR>mv01~Zx55aQG6{fNeH&QT`ELF}jFSmjQ6yVDJ~Xe!q$lRmYVUj3$Fg2Jr8 ze80R<)bGzXa#BZvrZ1#$zSwa4Q9P?@-mYze{Y#|oI_T$snO@fcrtOXh)AWYX+MKpIMP1Bd+7NhI-kiE|oXIIxb~5bf#Eoo2L=-~z(wPvoy zv~Jm^(|b^NVe!Xv4tXKgRV?qs!?sR7b`;ARQTx0@D8Ax%aqd~^`H=7WRR3Q^!@S(Q z$;Mj#+gw;>R>bfnm>a9a1iX)v$yuz}?K#0kyd_@3Ytq}BY{Na?|6v+h2dz_)I5+|r z#9=d8-JTRwKvLj5^%6Tz*lB^jm02wT3KIjd+8#;t2_djPOc)OQTBopYrEhA&woD9n zCBRh&N#QV<9Sk5~kZlqp5&+mq_#nQBa6wnHU2q{AV^?rlJ~IW!<9CRDWcyaG?hpY;;XVWeNY}Qi( z{Qz4_wNjcV5dZuCumx^o-VaaANvfcn92XvZ{5axXw1BMb0CR#=5s-=B0q+WX2#%va z;vX6#Ru%X*!jvR5ba0|CV2R#YyKEbUx6m8Ic?Z@N{=vaIf%N*Lh4HCH@u{e-m|@(6 za!nEu2ON{KE}4g`3{vk#UDQSW^SWC*VI? zdD=8qp7b!z=jP;;H#FQsi6DF;JHgqrnRk_aq{0%%OVTUn)V+p2xG&{gy{R($$tB&~ z^t$Y-Jaj+$byasP#o1#eaH< z&tc7<(H}oL4SI1tRiTHp>UA(F9~LVpt9^LOufe;R^OX~ACSEWsdbyR_x754#7B#c? zc?(_o#Z?bAr|LJJGjoTOEYN&(_a>7UPPZ`-s^i$Pr9i6y1Qwzh8IZ6~<$d?uk+zBf zOs`;`V2l^e%x9~80^1$d@q}tjt^kFwR{DUG*cyf$YBxImIf|=G@gt3PpEnvAymf5R? za6lqUnTc8hqen`e`Mr)teZ5|;S!MH~ z5-SRc+a|2&BNm#y>i!sdBeT8+?=i$H8f0s5b6(;31ZQOxOl1}cI!)!ac9l1~HM5i;rZ!`=D1`-7tA=bqIIK#+VyrajjGLh5(?i;;Yg(xn()v<1MW$ z$#>tmcSW{|3va*k=6=3qUb-i?dA8>-4~-J>c&lXTu(a#a524vXno;A_)Z6{Gm#Be? zhxu%aHbvD}Ed0Td6&5+tmFDVqjw7?5DQ~Dp^_Lv;G4`sW$z4nBN;1YKA1!#NcTc(9 zIp&dd@3ivrHQG&L%N1`?j_3$-7z8QMo=v?Q^k$Dq&0&5$bNK1ZjMsOz64Sbp;@Q}b zJ2+n$PgYJGYVNXZ{TdR&0zc^yu6LNUSEW(z@6ii7)4yw#wbg*Bw3xE`H8(gy7B6ip zR23T-pwn-|ZW)wc;{JqjsD$^N2P{OGUGNk}9R zzT8CZzOXus5u^)Fz{HF{L&WF3fBleqO#8O_)8scJif#E;mzoZpd>^fl3QOPqjases z&yGlj1(u&>XWPl{5XHVb&)m{+w#N9J<87ro9pWpfk7*Oi(_UW1FFecMrjK^?O}nNy z(mWbyv-wd&@AkzwHq@O?%pkjcNW+iM4`PoPoNEt`sfL7=+xoo zd#8AAo@OC3xM^e*IJ6bd6wz`4p(LiFM7m9+4 zGe=5PB1ThL-XRMir|^O{4hu7AI$+3frR7u7>!Kv};HX)L!^OpdE?zHBdk*rguG_$+E=hrB|?V5pIe}0#4qaUM2D@T{c2o~yHr2_9zO#=qW;nR%4e5q zWNVuaRvRqgRS`}k!+#tCNEPP&vfx<-Up6M_C^K4<2lR!0zv$J}(chX{WwzgI=6U6B znn(^va)hf-IvEfZ*m>;S8DUeg0*Y0zzUrWSX2aGtsDXUWjY`tYz-dB5v=V>XjuVTnC^^l!L zCkk6)U%^Kn+&&oEVr52+2)EVGTag`S0)CCn7b&&q#Eg6_9yorH{YrH4f(iTC1zT?l zKjRRxb;!!jcXZ}?GZ&d7+h-uW+McsK=bp9rlGYcyJ2VOpj8(4ruy>hGY>>5;*99&F zJW#xVtto&O4VKpprTF{1Ck*jMARLuOoAU0+XjbFr(Ht>VU13&SUiRs>T;?4+cb0)F z@c$9^CSX0MZTR=kPPXiXvV{tfEKx#=vXrD0iWaF55iKe+vV_oPS4h^BN+nvXl`IjJ zLXnhgX_K_QpWDnl&piM4{U7ffGtcpiso(Fr-1l`~*Lj`id4XHOo>HdRZy6uHXLR-(`kdtArajm_@Y{-99xG97a~p9}I9J zIej+8H!5lz*qkth5%wU~*4|-Z9~^w|;^vutr6J?N1K~5x(ILo?@L-bc;MPR%P(nb)uqUGEWy1QX?_aA-)Y@^MRyu+*ulHj}}S^BUT2zhQO#RKK@Oc zZj?|-is9_gF&4s%fxw(b0bbc@yHU^O%a;pAEYvyJ_C|*eqf2@E)Ig|KH*bcmIT7Yw zRoVHFXr$P_r(*@>pFBAaizuODj824AgZ8gKH9FX%9bhBdh3rpER3Ybcg$T@O=?{R5 zs?c6DU%lSpm$|wrb7XOHzd}JWS$2IoFIQ?F2f2ora4*Qxv|d$Z9*bE!@EEb0xXZA0 z0y${M5p`FUoScMS^*rAqN(#XVrK%9P0XeCZhQ;6P4FRR_DVA&3K4u+=2~RL)&XCs# z0TD+z(QGb&&gMQv6UI4Y9U6N4?ctyvQD2I+HygLLtsPVP_1NR9WxobXYP)aTRT{pm zvH5Py@Ha^dHtVP?X5}{6IelBUTt8sl#^zP(K@P>|CR}+Fcs+El>&;c|!lztMbV`Kh zB3$H=Q4725qN1XoC}9H&#^t|u_*Cja;)F(Dm{@R-KOyw*t(jLc`&IN=02I1>!Z>bf zdE$2TC4M&PxI+mv7B&1S&T>o_55g4!HTmQ9=~8z8eO#-aK+G{OoBYoTpKqw>?lyIK0bM%BX1(EbzG7%1M4)eSYgD6Ao%7>QXl7cN}Lm7UE}Jj$1mZ7{s4 zLy(?;hmWY*F}0K|s8a4L_;y9U-3RozA33S{-t^BZBm$ev71cZ40^5JKCNK2m@XZn3F z_Fn6mQY%dGaGOBnc;yF9oN0hHm^%+5e*|~d(BI*_fwk`odshA7n>TN;BP!yF?qh;3 z9~FaITK(=`QClHVFo1=m-gy$RpGYOKmwFD6Ep{sh8Sb#{ZasL=fl`ozaI&*vbHWL! zAtBHHytwON)~deaYHFCzoV8@#%9Xbn3kOGTF#JdOQe)vy38!UMie+(#!!Jjj#^A8l z;CEx3LbwQ9Xy1Z91+hSA^=u|z#Y`1y*ij^UxXuW@aczNnWV-rZfc87E2Rb%fNLn7- z<<0Ch)6egdZI`QGQdx0D)yuK{n|3=+Rh3?yza{eI`>)3aKArT_t5sQ2e^Bj9Ba|YS zgtc9j)99lSeas3t(R1x#&0(upYOrB$iE2X4@R(x zK=KAT4(^dCGlc;N=;#h8**Ll9q?ayUz332`G=VV{luu|FCao)eQfR!SAHLrGY`WJY z_7I5@@A@7`tpwM-FqA|Y!#@5Fx4QmDW<9Hwb+SX`mOHs`|JcH&h1RXHOd7Vjvx5hu zQgPzMSbhJqll14rq`9V6Y7#Tah&(%Ji^ZID34Oy@%5OH%o;97SYHGB@3>7v;H7upL z7>Ck&Yp(FB5p&^`4-B5F6i{Q)`QEj4a|gWEe6}PWh@Hg!Ncm}Nf)JseW$aHb-L|T{uni=zqFU9YGT~GD+_!*YMpK5b^WX3g?GR1u0i5* zR^dB$)~mTmd!mcjraTf{U7CV#=@}4R5F{!;>-%KD%X(%Qeb zrLMoZ&czeYwf_40U$sb|@eYbg-$W%Z5QU7^C0Q1w&l-;pDC|A2UA$?al10?nyMF&{ zYKwUjfA492y;%_$I$QA#9jn-5+qK-Bdnx6vczL3u{J@?6d{@}?i)*S8-;B%cUi4s& z*SRQljmCZx>~qeo8a;kf^N9-!{hK;BO-=e4(0xm%jPV14|M|VYE-p*+*aF>l2Hhd5 zj$CRS@+sTF(kxcy+~Ug%FUR%Ux%0#IL(-YP_Z(=CBp>o{b$9R4uV0;6rN3Ug!L6az z*#Myk`aLHhl={oznIN?AEk(wIk&tjBW#`QuTa>GWRXE;Eft&jN^|k-}Z_*!nHle%H zA0W(W7qq|2CCz4xqj~dwCr{q@z1JEWn4Teon~<4>={?O=)b$HxCc^o<3j~fSRa-K- zp?ET3MA5Le0#5ZA!;5H&E=P~TPbj{?ZSH4vS?qZ*6PU;H5iYWvlCTF$BHNq%a}U3h zjkAVljV8KXusN$a6rDDWfoPTSq>6{04K zHl2AYkiuuoE{#-6BBnA7$-hp9MkvI% z{)*aKVf#*yY_%SLCs4P!qJsqL$HNf`UAlXX^WOdY8KY8k;4z~1`P8o1Bk`Y(L9&Js z%Xg+)NQYHl0`S|e7gj{yPkvxVp%@8t!AKE6%sA_GVj#ydE(F_gx)k19B)Vp6a|x>0 zm`Tmw`0?pr@-lp>yat}uiyQ>d#)*PY#1ekfpLi?{a+I}lPUOcBPtD%vmo+d<0mqA< z{X>OmjQG3ESt;9Bc4yE&1zR(p=yR#oho0ZQrqlTtoyi;84kXSqHXHX=T>Nh1;CUyf z1c^w54=Q#@NVU!qgb*7k*a=rP(Y-*u1;rVo(bDe1N`gZ`j20p%6Hm>iKU(?Zre6+X z@C*`?_MJO3MyPZ8m7eWrr*t7CB}YHzXUnoL_raS4rIcBj-I*s3U%jF#=ntR&?3zW4 zhU6X0rsKgZBz4S?G78D_gkw~5Q*DagFMdjlUj0xm8X;^B3DI8IX$WioH*c0(O}*$6 zoKjBDe_OM~7Q{E=a-jdHkq_clv4Yp2U2r+_IHEOh4&@)4v0+BTeATVSo{V(X4yj%s zvWTa2bZPkb(3r(6LyT6Sqm=mMY4Zfpn&oZqn%zg&pS)c2FI1VMq9=)(LgtfYf z#UxVwc}Kj*p|#3GL$b8juLo@7 zuHSzCEG$9MZ=}N4r)+Eb8r2z!0q?rcO@9S;6;X;b{&CCaqM-;JQ}On8D{}6poOd_% zVo23J2!jt#E)g485|jz{o~W5Gkfi4 ziT8*JikNNM+)%2icUOnXlxTRH?g7Oq0wxA6CPts6i9|2+UVi>Dp8I%GH`WE`d>aNQ z2I5sJ5rSEMSP<1vvkT<|CKK|JaM7q1bjabaY0fDA@kPjl(;qx|hb0&S(uEA|VMnC_ zX<=UZd+Y@JU*N`+QO^*1p}f4$BW2>r#;6}7?Dp*5jkSC$(ok*Fi5Q$gs1vyhb;Erw zgMudD#EFLZ)K!?mp^#m2W0PG}9FmE1=%9C;vtzCa3+XQEXO8UT7h}z`j(^zRb($Da zCS!BTXzS6VM+v`{*49Q@r%9a~ho(E>RrGri>xCE=d_29&rLuS1i$P=OOwtKj)K-HT zj@8wY)AK$qmv-KMmki@tfi0Ybz;$JO5>;Xs;)zhQQO*Pn4mUT#Gyj{2$5Dej0K_t2C`~@%#$*yqF!S(gD-9{%T@d@zm zY2OGZx@yI_y1J)D35k23)p0m3rwuO#CTtL)5pz63ZDMm%z4xwNN*XWsXlax_z#gd| zod*OqXdg^`Z0H&x*xC-dJdRd72yJMT$4Wb)+2(DC9+gg*VHBd7mR7oR=3vPxNgwFB zAk6UH+qb8}5BT`pPD^Wtxd4kdk4Nvfv4uP&OJc^;Guj=e{d~K9Yuab!FUu~a)fEyw zR2tsV{8;|NZZTdZvO#)b&vtheI2j0YVEJ>HEYi$q<8APJU6(K`BDLlO;hi!&Cw(Z4 z7LF_XUTLD7L;M4lAWSZJP#g=hFnbk-L?F-<$r56}FcC5~J{0|xp_dF1oJK*0r?C&2 zc@&bSE4wZztS+>t0<-4k#i%8CF~nxoIINaj%@@|rW>PcQji~#?li}3yEkB9Mk+M-J z%=jMa5j&0C7eJ2f+qb{Pco!0}t5`7E>|PKH0>O|iUzPyHi^-4WPd9dF%&cvb7|IPa zej9ut&}L?Pf|u$}hf%97@&{c06+W0CD{?uefp${SIsPLUNu-ONsOQR2IiPe zuZs`^Vyez6e7Y&pN<21&R2P1Y7`=oVXosx($`7j-emFCclP%-0g{Q6{9=*8G4SD-u z&It*`QRSQgor6@D;69ZRky-06L5 zGEI)DGi!`J+WX~YG1CoWCnYVX4ueJ2uz8-cA{m32rbMT9B`=N|dH@Q2Aqa-ChMhv2 zQ-m>*AIStg$3ox?`#y4jmR--k@J&&b0pAT9W?TP4_8%_5FfmX`sPne9X!Vod%)7Zo z8IBl(7F#k82R2u8e43q&jW%I%Z+7T;VKc_89g2~r9ezRPjN@B@P>7SJ0wbzH-lvea zXg{eRN2Q0lT{vIUVU^ifD-pAVSUbhX&rAP_Vl|M8?Jdqn2-QVaOIDF_LRI@&ZZ587 z-khjIO7{r;BzEJN3Oqgs0srI=BLdqB&(V=lYo}@K{~D=|>5X z;>xQgCtaYoOCzf9HsOuM1$}GfN*^gzLp|wyZt5Bj6>?3PjF;G&#&uk4tOH2<11l)zkBf=G4yz&$jz;XB@+y|T% zI4+-M$*Oi$d}5JGRDfP1rgL+??Ep^^nFsS1z%<1W9cp#a%EHE}tS}`db-;3opvK_D zAV&KToSA?ezF0Zo&W|f`Osf;>1)6MPNce&U3y>1eF|~MEb;kHbBjR-(nzVD~%vk|< zM2IJk96hSAfo31R!Tk|Si|(%Aj8M-O(V@=zG@zXK%SkMT+OXmKs;)k$qb691&;)ki zqlRGZ49ScLPQ1{TApsoetyZ59PiOo7hN1>`_Oo+_v*=a*+7oV`|+@XWe7s8NI zCQ`@&KT@deLfK4^6I;Juzl$}}2b7mKrF^6_F2>hE&=L$xf*OSuDp5h61oqm`11e9d zl?9Z3_L9w;GY;&zjYm)rLd;cxKNLgN;{&YX^ny2-=%} z!?SUUez3aGmBF!I1T4xOPA1*v!T$X9E86-&ci+NW;uwVA$o<;Yco+o24;AyDB!nvr zxH^&FDOctN{!>2(?0Ma`o5n5a3lgIipCrBB=PKiQNEP=||Lg|17gVs7j*iMCsDWRh5{&60t3DE( zRq#*mu^@Ly&x9CdgoJc2SHBlO3$6Bp?_vC*IB)*^`!wzE0htP?mq2IbR0CnbIQxRn=(ImzN7w9dhPDbv64vHKw%5u4nzCgE$s;oQ|bYhr!kSX5bS=#`JrXL^uX<>l{u!aFds*8)F(h>&UTVy%U;gJV~)bL1(Tk zPQ*0Z;G6c~-^;S^_*MIKjv*?3Mj2p|AOGuh#M1Z$ric9e1~Uq6q_Cg$e)`SzSxJ)+ z+IAd0o38#SKws5EShm>;v|d|Qu#!a;FyW8~(<)j@bNC@FRX9UP8ls|N_`WZueIwxz z?2vAwIf4^33W2s!oE^h?ArE!mR@q!HWC>s#xb{-{HOKT{&c17}3TLzJ3c_vXU1Z|n|5J0~Y6 ztf+^2V=Apvu*1V7d|85_qzF9R?4;b~zqppy@}KK+=v*+>a!BoYaFUqUa<1`|vNo)A%Zyr6piIPTF# zoGFm5O$z=T1?)wKRSYi4uzn%T=1Im-IX{P+iKgg2caF(;frHO!Rj6b;bq)-ynXTdH z!P^l05PEl|cuR;@t*ZTt3-^i`T6bP0^HCMFd3suU$&TZI`HqV2CIRrD-ajJqm#CQY<6-^Km{;S_k0>Y*)PUi!h16LTPoZ@z)VJ(Cn>LPX=< z%!_fQm5YaWj*E{6ELi4x+=~S!1U-=FhI+r{9AifAjG<2;4p=ef;`Q-JOOQIOyLwKZ zXN~&|8=3r9h!<%3S`=61P!BISF?pf2e&CrOor@EufsAC-rcBJ-JF#{)ZLz)@ZmL9> z_W}CT#4NOo7{EQ@-NXpvMc-Ng?l41`!rA_GTJ6?(nK%u$aoUw65*)UcC7mg~0#K`l z+LY$U@%vnYAwt?>VBpG%}3L@4*8ff{|Zfpiy|aRLwyf z?Yf&8&xDI8TseW+VS_k$@Qi+Yo;`ZB4&t`2z|LE4E3WdFrY$s8-ICkI&rlhI4R2lkC_P+p=6% z;sC^KNvTKitYy9YK1o!Zt~=E*XX%LTvVzLaKLMVKZziI_bKNWmw}}6(NM>2j3Ctq?UW5{h`nv{>D$DHnFtxp}6~+NNUT1D8r4IHr_6;ac>9ZNq2DRLx78 zHwrU2Ak>~q4)ItzkXB>bYlSkB4R|l?iBiaO}O2<;`^g4C`4}U;Z zCU<)idn*}*v@pt28(uz@dVjj1E2y)`A-kSR_bB`HDY-gon%8nE7T_JPrYbo`HU0r` zhokR1n$>7C;?vhwEizCueC>Ye)YfZi!)szkEjstep)taserm=uJOjqBdp%iL?T{of z@byk!p6SrXR8Bx-mZZwz7AeB@Lb29%gXO4iu?nC5yYMbSCm5?bim^6Qhb=RExL3rh zhs=#Cb*ZfG(01pCCVwd{{IR`;1nJcn2Dnni^i4lGHir}Z{i5Wpb(WD zn8II8ol^690{qb2C7y3@wQ#HbcE#wbGrkveKViH-0E90iQu@aM+YOkyc^@E@dd0Lt ziNWiP^QANjDsY%~qVBUXg;fg_0T`q6S=GL7@ew<*OmU>1+t0+}D`^rb+9Gr*Hb;LQ zao)5^Sf;VEo?qzX74>fVtBrM+K%0bZA<;*8w4r&BUm)698$g)Fs4l2ZQpL#=WCsqs zQZrz@J+EBQ?En_GmhWPH`NNCD@=WM`*eWBVhcr2VUD`iiUHN{3CaDaEv^6$W{EDKl zzNk@{PtJ~Xc-`t#{Lj6WMU5UMkNOd7T}n@G5%fIJ$6~J8^;=XQ_a#Y3^r=imjDaa7 zxTbpY-`&fTW@FMyybEOqaBrpYnW46}*9Za|4klB9Gm8H)-0m zrq~a4XG%*ATTW)s2C&CjkfO-On=SX4?C+gcW%Gt)A7{`0RDl^9b(TYOsVW2~Mogz= zic-$%p3jD-7A-s8klahr{&hI;{L7$8eauw1k3i?r)2r2=tJ}1VY-gT_RmnZ za8(MD1@RYSsG!@NX2=wf!?k>{ivKH(;z~hVPd_>=fU|coa<@vLRzi6Oa$SXG{6hK; z0tx3hQFHlz%0GhHH&ic0xQ*~sc41=~9YI%4_^+}B#cT--@g9Rp38P570#6awj3UiX z;wgozp)j?KdcTFy8>2>bBKxBk&X7pFRa%nqW562fEQ1XUEf&-Gbpv^|w{QS|zvS9N z*l%QELYP35fUyD}AX8YQvtWbbUm4WjZU;FD9!H1>n0+pY-VeQ7}UE=toykA_h#b z?%Lz0&CLq#1&kUy=O(USFuH{~CvdMg=!O3tIVnR~65MOYP=uf12%_c?ILA}Y)+?2s zK^_iTjEFp5|DFXPRMnh125^|^`pwz2>00GhI1`FmD&YG)c^IOB0!;|4QahD795Z>m zg12&=>JsS%BYrWCZ#f-6gd(5jfS6qhF(#-(@n@Fw$BkL2vf3?+_$5Y}q10GnAY9pvtYmOr0lq*%Dx3_h0}y@QQmY z2ZyY)y4E%}g6Ja%WPCNI-IAtb@RzRo7KQ5TY3>S$R1bHxgrB?*+ zci616kAE^mcEZjr*~4|#M))Ep5~i+O9X%#eN$V10elq>~C{9OnPj>yg z1?1Kvh>hU*Cs<=|)0OOw>M3i zy-c#viLBMv2B;9lJ76oKVB%`uYb*PepePvfF-2 zA02Hs$Q?@(oaAYjJvyOQ73OA&)F+rRGYoJ^19tAvx$}JxD86T;MvH6zZ&r+DT1(vc zk$?6ive*FFfEgX(1=}V1e);^lW3jOrWK97XF%6*QE!xLovI`obrym~}yhs=|k4eph zuNQ9ZhdGBUcX3_y|3x72JzWXokXgQ6k%r-Evz`)O4Cc!A1bxWl;Q8BRUASa@{QNlp z%Se=iBxVAA)1Ox7%?1+>?MkIbHf#4)Y1oDOP>>{Sw~m8Kj>nf7SG7!NLLdr#CBo*1 zV^PerBB8IKEhB_+_-N*Beed=R3b)VRy?4{nb}=D-2mC-prWeAuz*VJjBlt%w&~fzP zn3fV$aD9iy2+_cV{U**w$LF6veH(>M__Rn8~ z|K78I#K4d8`p}_-;~?;s0Mf~Zz(&JD)TT! z6*Lui3W+ZgFq0QZ@7YOYQcy$UL+@I$YN)Nj!dDo_f-3DLNW^^}-Z4jTyy<`2(8kGVzpEbN}hnt7q@J4t?;S z@~+eWjeL?GEc+XDZv2W)MBv z$xZ*8AW|K#M^A;IW|pEB4Od=f(z@_@E5@+z^qrsrfCkN>2|Ra7&%gJl|H!Z&N9T%f zHF5%k{rTx~P>>-0q{?)%4x46xCUfVO=>R?0K&A+el?=N&bWT=+7n0(3R;ipAO zZu93|Hokk!eu91W#Jf+g4uG+e;OF8S{^*f^mnyk;jGh(nZlru9y)%dy=>6PA*EJp& zeO}_=b21Z9J0UehyeVN6IUIwa((%aSy6?v)?4NrS|L3B0P=-!dzku!g_jgeoIMB$e z>HOu(ys#ltr|#|V(*X;_r1YH!p#1Nlp}Tt2O{Wi1EbSsHw45c$c)3xLT-%SkpHktT zufSmrUZ=dav+=m7>pX3X8z8H{;EYxr{`NkkSkT1_3WC961mlIn`6z812}0rbBsv+w zPgLUi?S6_LpeB(GfLHM$K$XkqEAiK!STSp!#;?#EkSvLINAn&7$VmUX8$}zzkulTx zH9jlLkm_GvX?%}XT3W3S`UO9Mnxj6?&EVtDL@fJ7gaAoVcqoRIa0chyaK5aQPY)*1 zX#0Igo)Z*>B>l5xX@w&~@@>Jv=DNEo;>AHu+9ZsNN%Tp&#egXZ;At3nN=7N?5Pg?t zG{sXUq(VoOKUefJ(RI8SQ@Lvwu+%+ZHoN?5Wfsz>tIx3-SJF}>DG+@`Bxx72H*-+T z3{z|}SmziG;Ew~ga2lICCGfCVp%iiWD?&EW6hl!cF|w8%LLpCR6uS3ecUVfNPnn0#=>- zAyH5hD95HO{^zm&DjoU%LpAvkk~CUM1bTAcOAGU=#bi8Ut{@T7zmtHH6_X!^vJ^53 zc@kI+f;fMlspL)oy14K*Zn0}6z#AfYq&Oz`t$eekP~onQm@+}RKhhPPkosKP%uI%* z%!s?Aq%iNWEu;`4v0aq4ieZt6;4PUk2DVUDy+lE8<%Wy%PfqDY1_Yj?4IVw+Z$r@N zrH52(^m2Qu!o(%H+W}1To$;h9%)(N)qn)C+diCn$&rSB&q3e|g6ag@6Qct6_>(Z)K zDm_PS8qb50K zg%+3GR+MYLH54TRr&X|;8$){r+2MU;&wCbxhY?2U@|mnYCJgMbONF*>@yauHv48y- z1^mvoRzI69Mo;5ix{@vx8UNfV;gd3syA>91`5F@)&2aXiDk_z+Uq>(~0e{3~qforS zTT)DjalkM+PEZji#a;i;o`HS0u6pt@x1gY|T~+D}G9TSY+3_>noosNPUdAGP54+9m z`RjltKHZ|)_N@ERNAj&OB~zRnB&0Bkgm7^Bw}wu<$T02$Kv8rQM6-dtu8#{XQ2bb~ zyzbk3Pyj0Bk#aT1Pf{lghy6i=VLaR<0PK4p2-l{36Ic=QC(yWb@?<@jsrUnQl2D`w zq*$cFU`Wv~gIeX^vw_7d>>(iC3Sfs#tewi(GLug-8e&v7enT!cux*zT`@of>@NYamGAjMb2h2< zWTY(Q#gU^kg@G}lqt~$#&fid=Wv{xYJDab091esqOON_Kb8Ef1K?;)Tv(Fnfdn?6F zs!4uOo_|$dvvBFCX_CPSqJ_wJc$Xm* zM@8Sh?T7Tn#aaRX3f4FZ8McDXiWP&%(dv@>)fOFG0+sp{<;J`tWB-6=^^~r%gjU=< z?BYSj%)UC!o2Vd6~vf9o` zrttoWvTq4+X`ffaQCLoQ>#(St=)4ICl?z|<- z+I!il^g2Q4r++gz`=0}=xpmmD3Ae*--FA;~TzSx}!}d*9Mrt+;KyHq4T0SyhSD#ce zaKK(cb78sNWiUh6ZDhC{6QZ>O{s#Wp@fMYi>)#$)eft_DIN3l@?Kt3AG5b^RK##$# zd2b~w;`7t;Lu4eW=pv_JsT8AqoRINOfJFGmJ0WN{u7oxjXl^K_vp2f zSc;j1)4z@F2lc;lbjc8e`v>_R+hxrScvWvFMHmXd#kt z>?`FQR1mM?*~>Hz0#R=(-c1?K*)3p?$ed< zcF`>Ml1?!D_zRp!rj>Auf>y)QCOG${2;mLUWUwJpW^BHnkjnRkg35^jAH0E|9O`@3 z4~Q+#Ss`%B!L7yj0NpZp7P@j~%a8+io*+UQM%F^#Q>pC0z^Oao+&}~}IMiV<=i9^a zt&7k~@MvU8hp4IbLtoCIwKIM{*qG-jD>4ds3F5F7F7wPW>8)%YzU<-u7xU(W+S8Kc zg-T!Yd&bJea`29{(S~2f(4U++G0^0pKiPrQfuD?7?-~AQMAD5DW@IbLuP)M-X$R4Z zTkSh->tyamdF)qSZ^e%v#!beDw-DO}c@RNF$xROfgM-m0nZL&UkUF;7ak$pNMNLeF z{QY;eqMq}WqL}kGE{E1^`=r~ZQ@ylLrr0LXF!u zaBAGF!tiU+(PwylYYGzU!s3{zu+Ok=^DidoiL9KAYL7?rp^1= zy+y(-G}M&BV~N?o{{r{`eSA2n4(_~UZNhV=@Lfw zgsM)wd{V>xkdUg8yb9(8^FE!zQ8oytZw_+N4i;9$0`@`nrCKSLvgrGPwh1U0V}E+C zVqy)MxxmioPN5pf*?ORc)_)=fnE)8y0VX->I#V)LK8j`bn$oA7D-T&YObM6~m09*s z&;aRB3dJG1GBJ4?Ky=|nBVnV&FEVaNB${k!*9`G~{}0MVJ13>X010zQF@!b>iWpFo zgVF9jI_+-@)DfN)5VIJ^1%4t7Jz-T#y@@yD=>a(klk$vck{B_~nPf|0Xbi=mszv5+X}7(H4o^HPuHV|z*&JSer(5)}0zD`^4zLPV8{Hz@b{jbG_aFwb3xylf*p>-FUxhsb_zUP5 zxCjzn>pR{ZroXHGQnlyCMD4HbocgPa>ECGJ7+tv%J897huQq>05J%eh?zm&}jP^4~ za;j9P-F~>-Jr+_3)%-|NRbN}(jek4O38Vcaw^c$_cum>!UEbcU#eu<8#hnb#PS*G? zOvnhV2VdQiVLk=hZ||t`kXp-s?R}Gley;|dY1g-9uWgFc2cBXul)p<8lSUV6e8E2Ulakr@2w|~*Q?e0U$-nFVo%bvWUD%JT)<9;)~m zZ2%C#bn%v+NuItN5Xy(la<`x&?q_1B-?3wgk_|Xi$VW00c{d-ZSa%~K!3PTbZX&l7 z#+~EVy}qtq-^^b5{dtUBhozUT7y&_~#co2duN54dO{X`ITnT_~77e82?;R_YVM&Z8 zn;SwP9|CGL3-Esy(_R6Kn`?!)o0zGi&Eqk4{T8AVrP(IIv+;&x7IYvuK0uU0yT~-U zvwmY38IV}@WUA$}Guko_bD67~T>otH|u$teaz}ii6<-@-6p^DqX z9ac~a*g2n27MzpBi#BGPH^=Sv@##hq+mrst84x~8CYThV)iB5sU^EfQhYe$s$0bh4 zILs4~dYV`witTOqL+p>H=J3cEf4Lxn?+|1bUGZ`y8+gp>73*GJodM0v?sYsY|2~u` zLm0;jSBEFrdJsg{MQ=BN<#w2k8hNpmt7lpTkyUECtLHy#kSxJd)2q8u&`c3@D%`8G z*az}qH}-zkO9&)Tte((@z?dIj(2v3G)OeZAlS@8`K-jx5h|( zH*RH$W{cgR4jl)3lLeolf`D??uP*f$4S?Nj`QC2o6lXoRr6vicig-ybF4uMP0YX<= zTKYS>h9&pOuDg)=kfS+J^^=M%#IrWv>a{t!o?rLMt}_?Jn$vGK3U-BW`J}<#Oj7lM zEx)+QxNsvNfzhE4#l`KRV2)$=ZMAw{A_GjlS7Fh)k)N|GaMw@1Wo4Y!T~1C}d^76` zz$+uB$yIrpT>go}LOg?ynbcsXho@M-dyvHYIz%&+MG(Fi1zqL)98v<)36``UEPffi zZ1h-IPQhiMXHwJ2M77%c)xZ8#U+++i%yJNxVawmv!M~T@HfO;Q^&%(LO*;BJHONZQ^-OuFSJ_JSSIqJ= z86jVL?(~XV`mrHzzu)YO-^v!IIH|3%@Ao{eFBS6m)}3E?+l4B>g9cY$Z^+Nk-}X z)1jf;F|t99_6`tw*6i8iX{aF94LfT`el7_6wEN`y+C}hLCGK8K+9cuxsXJ~mW<(MQ zA+x{!q+p|4B<3b%JpEnE)ASxbabj;4iU6=#mraMPT%R+Z>?vqCj(`uS5QVB(_!I~p zEXmpI_P50$!Ca$M0}t|<)R!+O7y1-uzu4GGqtLzhdv&-ZUt|kG!@tbi$wIaXco3QXxn~h%>WJi`x@t!LrJ_@f33)z0X;6fR*F;v zb70e!)D?*7Az~&1%X_3s*BXsHP__?0fh{{9Jb!rJN{+8_SR1&t`T8btj$XMyZVi`^inIXm~dMT#elV3ce|#as0=HRbYy`(TR3Auk%A zXjO#Vjy48VvGEYrR zII85A_v}#R`E7$N#&Dj~3d>6yHO@b&^a#l;osU}OCoAtKS$&Jin?6bd*WJs=&{O+X z_Ce=!_GQ6?4>ILhjT7brJn$?O{wZ#?r?%`#4{Gi*2Al}R+`CXtGc`S zg!d6=0f;hw0VWYzOP3x8zo}q#s8{`DW4!zD0iI-ki>(!HM4j}aT(0N0s;08c8BqKP zmEJB3arkT<-4u27sGn}5l-rBQ?=Pa~?lgU4dtjTHdu)tL@7iOQ24b zx($8sm&61czq9I@7ehk>%IA;dv;sS(T6hwhMCiynw6)(jOYi8$YS%t6Ilm_IXOH8I z?mp+N5?!;715HSVV|*K{CzSNb4Yg6YciDFB+LK?CvT|~s)Rd-h;R#Kh;_aRfpM7%Y z`D_&9Eb`>_;f?{cnV+B5YA1wn)VZRO#_kwSf;s!mfYGBzGocd?hKE&K6W&~PcN5?U z-e;D?1GQ-*LK02u=Fm(Ab5;96_bTO@qp_cVhyV>9GSN65SE2Zy4zZ*U+xu&55I_+eY8Qz zaq@s`#q2^(PAc*n=>_i-H%# zMy?#$JhsQo#5kwpgU>M{lnxGw#A-V`62C_jF)?q_nf)q1Ws2FwZdHkVI$1;-uIga~ z+C15WH*ZN4#(>lbpd=$1gLPUS$^!-t?5N?nZqke3`R06s4!>df>WUy++VKXZp6$nAlko%Os$TC~L`R-Mz zA+#?bTf#~6^G2{O(PW3r7+mVQDd1&JPVaO@`{wGJ{{8xWP}{stFm9kWfdE7B-G}T- z((`BSofj{JlLpMYkP5}(Cn(*hM+Kz{weuZ1B7rxCwQ)TVvgOBP-bUS*m`ow~5_S6b z4Q)J@3r)q8O(TV>1h!Ph{O=&GQFOAnTG0a}2tE)5d$$T=k5Zc?h(LkIR+Acuu?HDn zQvMX;Pf=aq^g?+;!Of7;C$Wy6nv*i!9D^t9kBgf~HB$=WtF7XG>8h+Rn@E=}j1P{{ z{?8*Hh3}zU7xkBzq{jyZ-CH>$@ndNtObDl8Z~qE4(q~Q;WE_@IB!+p0#FuRz*3Yueox;HZbRwEaw=TmVmEe$gbxtHFjl6(+&+Z-X0!p+U&Wi5 z9Bia%^e}LaHdAsKS!Q~ygzS`a^$3uS)ykDKc&r@R!ol) zfHU;IpniQ1&=2ZIIQ3+NCSheKybo|BYx-))Wc(2P;(AJrD)2FKANAZJ=?B*Jl~Z$S z9cwn9Qe9|nP~B1D7rlKuopu$8k}%f5GPP9g$MZ|ZS46!psH4D7>4ywPrkCG`J(LC{ zBnC+lWK~tNhe`%vO2Wp z&fN<-GERU!>^kZ_fgA-MZG-!dP{I{h z=;7hfXe+mD_fLU5BjDi(wt-&7J3L8n(5Mni_CRu8<7#8kJjf$00??)e+z;gibE8{p z=4vk{YXxi&PCdXKxck_!v-Cnl7+(Esh#;EK7>>>kbvX+aO^h=H5E{!p5_{WCr&`Km zY$x!g7)>sZi3;qPr<~)<-p9wr+VI5L#ab8N2nYfW&l7-_`LwEpW)g{;-ed2?)F+Qa zH$ZBR`Kp{=F63+CL}cyrqW4hc6n*#*RJ!B<_`3m?LZY=qn~2u$ZEzg`6T0Utr;)^T*py~x;hezusOx7V8I`0Jwys83jYr^%5vE$UDrmh+WxWSFYCoR%3^x= zFY8kA)-TKPLymi(J&t^MNqtC&UD5msx?j(4I6J_-H$6LdQ=6wYLPW3mxELNE?A-0Wwv&Y$%Wz*Xp?6A7Y!@A0Nj3YlfGqFtcPGME|)$~jp zrtZ{@$=ih6$&5g`+(rBE1K(Tv{v3Z`nP_F)?0rY0GfJFCp1o@+9&$jN~y+~JIzkW;I<%R%RNH({j@bl3krz7&# zVJO5v8m+mXvn_srv%w>C&tADZ*9Z=tI7g`Vo;>SKN=oW28qXkFXDQPVb(Y>7wQM1! zNPn`2yC^K#4}uCpZ_{widyty{T;Z&BdlJv335S>3+RT_FvRsP1(wC9XwwayObu*L6 z&o|@Is;Fc=m@}7_?aAuuPVh;7x&6}nbC@RKA@$9hf%^LTHX$cZE{~f=N@&AzvMhOP zKQ@)l{sBIS^1;Hb35kG65=gHCCjj00Bits6+;=h#f29BPgpMQV*)IM;*^G;5U%2_; z&=O81(W(O2--l%!tbii=?L}lrD1D^Ue;Ir6$xse$XmjGkTm{L3v7$RjzlrqA&|$(q z5H9h+&a_9Z0O7=lyK8ofrZxSv0w*v$RXZoKiJ&1A&75v(`J{~^=VK8HTVN6h6{MO* zii@M}Pa+GWfDvKq78wiBU7uG!{|XI%?LfcdLqaOQk33yLzqQmwJ+DdCS7*MCPFuxZ zXNQdl2s}95(6Xh%MFoP=X%el=;~yB=`cHT^wEV1i{$d$YVAZ7_gX?|Irw2?<5%ok> zC7}bGMHr!9Ds16-!$L@Ag`kio*~Z>DkHK_6urSJB~)F4zDn+zmY**}r6kN3=qtj> zxax1+t=R)&2*HfQVF!I>QR>iuy+6^DJfEisw14hpYR`W?o85notUM|!VK{@tp!>iB zKQ!_~j)xzWwI@8J|J>3+sq?9@EVncI#%Hv)4^KJKj%=spt$X)|6;9@0x(IVwB8=~O zD#CM*1V^DBvac2cU?Dc$e)g=}Hh9iY2@)UF@p@kvmu)|R%29w;uxYN+lq9?V6Re-1 z^M=2eV@g`k55uq)qVXzl9oo3t=!=7O$}vTv>n%h_kB|zsaN+bJLbMWsesaeW_mf2_ zHf(X8sqi-;o1@PrPAvMet?1Vup5}?d$Ub&TX6t|Qm)|QRQBnEI_4@(3`)%dbqpjst zRK{mpueub|eSl17d*@ZgmvyvQC7aqBw(T#@T)sJ}NGi z3Wxea^+tf6xp2ku{~SELY4g~_X3uV-2_w0QkaXx8SX2!39ms*Pb>@(Zc6Qd6vWE?q z@7~LKmzSlbf{pbo<3ER$pM_5^kN%PN-87R8rJTp4L@l6D-zQIb%xgGdTPT1*Fr;TR zy*%r`PC_Vr=~}=3{d>sBz**OumU|+Mv`ADZv7A^uum8(e>_*;t!JQ4=(`0k27(kOxQ;*J z?d`(t5sXpqop^E0$Wks<+M{+1HaT@;9NQS+)gxA_D@^`9=_fg%8PjSfn$5IO zh0l#}JfU$&-i=l-gXHiDq26iWcqYKph7l$JY$>t^!3U@_4{(VI9J74Nt9^35I(LZ# z+rmFQp4Qy3QEVX6@H8H7O!i)dF7QCD={O0E19q8N$Rg>S8HbPipB41nsP2nNi+t-| zQ*+x?|IvNAk7xsrm@0?dmgzjIHEvlKP{2}rV-xKkpa2G%RqHf@A)h;ckVm0 zVMNmCn2G=X3CH-{bLV#bC-eCIpYH8Fc=rGJqoy9i%Kqn*XYOupt?Tx`-&UkK<9Dk2 zuh0Lf|I{_RMdI$~E$S0wy3f;bn<7!{b>v7;=#0zzkC+C|4)Z^;Us?ioG`e~mg`|52 zzkh$^y@ypgwrwJIoVar-QGW5|e1q6aosqlEm>pK~Iw~b$(~n`fV@?>$t~~stTYYBZ zVcA7+S77T69y|8xoXq1VPQZ*Ug2t=uW?u12@2^QWBvMSGy6}aG(<@jMcsg{zgaks{ zqsDsWX4|Fz{(AE*j+?TuwC+6cBI{BmnSLvzD&*8z~AV z9ned;t>0S+Dj16UynHIhBRH%#cax#no8pz=`Ep+=sQcmCOGtdz|EuzZ@G zZ3EP?qho^wnT0JRREQzH$rRCycj(v=JE^w`PfP-d4|}%$*pt5W?=+X=3T?&MrAr|T z!iY5fQTsXf0O?ogv(@yM?sqRl5AhN9B;3$cd}9Rb%T~Wh7uo!O7n@6-`QG1o*8k?Y zA;G~jW)+WqVLw4~{vWxyKh{T9O7aj}qtgQi@gncadxxjviaCP8| z;B%*;w1CmH1jmvPG)2ix&x>>puY?)EgDrSEAdkDiT29c^M<6C(5L!RBfBC@Jv~BdghLnNh2KlgEom40H@&oiG*DWYAx)oqGDpKIB5uS@h`i} zN+^-<187o*ORy7Xs=P~-ukyd1ymW%=Xn)xQ-DOe`WbKcG;a7a@yJY0bCH_;o?Em;# z(|!1?8IJ9le#WVovmThACaSO56?brTa4h4`9Iawpt--qPW>fh!`KV{rR8<2!tao#NG`4)tW1 zy7~Yf58E%$!NutjRhbIj%#)`py4W#@xOlIUnsoKCeytry_$|0hFI z;ynL1_Z@)TZ9pk5yVy0zZUZsJ$i!!WuHec*8rp7~T3S@}CtP@}v+xvS&oLFxBe+6c zOnHM{bXnc2y0b^RnXCd>0*8wbLgFPp~B zBo%g=@236$gr6y51M1hVSrb^*Gmvz%tgNgqHT3f3j>RX+oLFumc!K_s+X}Zm3H9N~ z@n)4h1`eFRX3Z#2y2o*1oO;HO0IP|1S>B|m-{}ww$6x#^@Et05SQuG6AA&(9;lBfV zNit?~1sNJh^bmDOnbaYY9(1ry+ zYRT2@N?6a(_GZgIbM1uI57<%f<4v+6) zN-RVPm*LL;+y-YJhk6^o9$0-FNzKJT9=wcsp=ex_mRLT|%DQv=_8(M2y&t;FOzaX- zcw@i)1*vRvsj}y^~_#=mTR5LxQuTdKts&1O@7Ni<4kC;4gLMXMfE@{9BLDef%iC{Px@Jj%#MVbMCWw z>OTD~9vM5%b{y5g^v;jaS0NrxH-4IuaJh1tnTMse^(O1&M$P(nlXDe!?8mrV{(<2<9x#w|o- z8~|>C$ZLQLKr|QdSwf-ibVUi$Rfa$tur{I3Am)fhEdNll%3Sa87+(s!*vI$od5cqx ze-e*`x`ner>AM|sOs?BWsA3df#fyy`Py` zf>+9r$js|~`~v;&88@fJ40MnGdb0GtSk6yJHwS-NJG+Y?r-c@z0<>1Hc}~T<>z8tqfjgy#$Suw= zxt*JR*m-vD!bnSv8xzWn*I3o>{FPO+-eg&!`{t7u&iJ1=Hm}gvBdApFTAk!d?ncAQ z|A{i@{*$JZ`JD)yZgA_J?UvS?HaTCkUs@|a8^5HPiRNvcW$&GOvfcc_%Yx&HcFWF> zGcGY!%UA8$IIrt}(x=^gz_=Cn&YBGTQ`*s6lo+3+XLY;TbF+_U;g5$=UeSft!|Ufi zsX3zW`EyoY!Bku2cKQQ~kNXxDf6R5Tk5o@vJN43NiF5d;t0k8w?C88SQNAFuVOq+L zW*rx^$rg1U_bnsuuf72<8{t@g{pH!;IvhS!EM4Fe8`DsLS6qiyGmNpDX|l|PMNYhiB`?)Q1J zeeAKXv*R}w-|5zrTsdjy4W{Dd?Ku~FeA@Wby_3d74_)8xyyJ=CBNcb2=J;+1FWG%F zVCrz4;d#H-{dCwK-Dy$7pDx`4dYInuPWOpY5{F(;TO-Up7{9c*Jt!h{i`j<6j(K z+;v;JKGO8e*~(?xcW%GkPHoc<=@EApNC!!4$0$BtZF*il;>xmT+0Pzt zj+o~>e1vkawZmKEnU1@hCjJ@~wrTE4E6eRxi)T-n@X1^2af8G9|Gb={4*{ZXOZ+3_ z@aW6~!I~}Cf67uYZisCusXg>f^-BHEwv9~z^?6&@jF$wT)VR2IQU7g*JHu92uN&&A znmHvcvfk^%+xy!kKdXP-zVzk&huys$P3NV5m6ojPbZmygUBkW~`zOBcxb;r#(%kRn zC6D8lzKZ@@*eB`0(KK6?^tvA$UX~Y&DT?{ zBO`nE=yUgFFDui{gXu6hqX*STqkG_{N>{u za^-HsvE>nI5mp zYD$;%sn=T`OZJ@NWzl@R%BM8Qqt6(N6*V8SJ58OmPuqO2)1w#Z2QK<4RJDB)TK8v( z#AWUGJ5g~%53M?+Cl{-8vRqB9=+KG2Lq<)Qm$zj~lj_uU<=aBXzFs%^dE5DSU!-5V zwLzo%ap{M-o)+ULtzH+`c-wY+UB#CJn`+CS=#>X$B#c)Xf8_1dKX@XmG#Ba_&s#bq z?)$o+E%N`ZofF&sE~Fh#WrgWIzh-XiG*o`HcAiCy(|jAv=`KdsqZ`-7Zm~0p_p5xJ zpC#ik*Fn-Uv)!Hh;f-D5x)@zqvbe1FbCbop%{iNg-qh*azh584oDJ<#$9=nXedfTb zIZpN}T79}a)>D@Z9jKG_B2GbUg>Ov>-eEf{=D(e!$^?%wk8enxK8+hJah{tU<{DJ8 z0&VBzqotUU9x^--fhj z13SH%*lC-aPR;i% zgilGs{=hzCvE-2VsCU}~~EVz2j>wtZaI(hzRKI-wT{^!u5t|iS=LL%FGw7F$5 zqRFtkY~0ScPIePp&s{XvvWHbdH;?Uew~W!fgSp^e8I;TXIa$JK(81wNfwSHnt9Abm zYwsP7b>IJwpPE;@lnBv|N=6}DBqO_o3Pn~bA+l*GWK~AlBP${+o064TBpFfmNa8fI ze~(vP*L8Q?pU>}meE;}f$9*5ieRoyP^ZkB}=kxJ=jG1hYfkSe}m{f5L+f&z4R#_cX ze#k;ssn%7|wf|Jcvp|mRTpU*z^#Z)~Uq4xjO>o3|ApGIj5xemN_1+50Uujf6&eygx zvoG6FKJCBoP|W{Ff0B|#@g&#$cAd-9i<~QL{hGd}NwPP8&b?yl;l$IE`(^m&;CG!R zcbC-VI1Zjmwy>G(&TF4`ke7Sn;}h(hmRv2BmDRPW~ZyTez71XzVOIwqj(+Yq zYB+PUrn1rc_9X@lsWye9Gl@*OYelp~D7FQS8)M%pGTT{u#7oDH8hb0To1F1K)L6?_ z=JdJKMAV2%^PfUVB>!h44Dlpf?LRR#*Ofdw5$avK$CD~-)f*pDVO4v&DIoEgRy5yG zrT%Bv1?u;(UD3kYXP)I)!pLXa>ao>*RBhI7o4)7D`ZHb8k1Ad&nXvBuN)rw+&qA;F zTxagJ&P4%_I2Ut;zow91C)o&D38S;NAI8tsj;P&FW@xqK+7q2R;OM(gWu=3bgS@9a zcRk5^m}F2gs>YnQNonV4&FVf+u2#o2yVpnj*Q zs8`U}3r|HX>)Bvyp0JWG{=C)}q~oe@3Ry3u#OtUN;r-se{yT=o?sE3J!U0#$E&5VX zy}x4K6O^p=W)aFG=UnYu+x7icC068`%G-amykXMjc~Cm{Md!rY zqWYpO`KE_wXQGS<*}b7cVU;+97R+Rtug# zh@22<3GC}=AOc9S*&mBRKq6C8v_Fs0j^+=%IL4j3)gkBt^mJY~?yFEFj3CB|E8CZ;nX@ON3*TE@Q5xZk+=nck|__VRasmCO0tXZGh_ zwminj$p7@N=9+y$r+U0y#mt%Q#O4c9LmoU)`NI9^ zTJ=pg!M8-mL4YZs9#292BEACfb=hnOD#m}Iwl}?)VCt~XZ{OJ}g}}qaIHGAf{?tAR zNy#wLb9qv7{%o?bqanV%(#M&PrpZ6*jk@TTSo>nl3?JJH?-b8c^BW(v6srVY$BYF1 zd^W6}?WLA0aYcXTQ?%Yvuavu%YxHw*e#8aDQ$0*&GPk?r%u64T=jdxs5jz`udAF70 z0clYo3F%5N$~nb?s_&h-VS{-k@u%EWoBXpGv#;*rpU-|^(thc5gYVGoh~*Xv_Q5Oc z&gn&+E;%F6%=(riMYTPqAayQ^>OD0t&ztyJxj!N5xn!rH=M&NEf)VZa%;ypY5A>yr z8?#~?ta!V^ru1JDifhNn={+JWvL_U_3kbM%b?xG*tLJ7@S+vH-Kd|C?dC=@e>b6?b z$bw6dy?r5&39xEHwkLUR;30vas@7)#0zPy}M|Ss{VQ$pXv2tEPL&Y9X4!&U9h?N#* z?S_ETph<(Dlh`H`VkQ`c={(dukm_iGKP-X2XQh1}ND!E3&ZP;t3pb?3OTA0ocFTV$ zw_#uBo%iZ{Z|e>xw0JmH z&xm~AxbUs9%ktd|D@lWw)zjwUMyhO1pXc^BI%e!^C{p&zkZ%eVveU@1G=5opZ()lQ z*=H1kW`o0t<43qvQjf`YYm^sUZrQo!5})!*!{MOnY?Iog6%QWnTEb7BQJ4hB8oQzAEh*u_YMbF2vDe4lFwJ?a=ht+kHucK*BNZ1TNPFMGB~@ zhtPI|tCJey1c@FL`mPugQbb|IEaP12PlU(?o7@C;C2OZR! z22rByfbjs4ssXplDDR**_1dm=@5T6s(`#FWUU{_$8SzA{coVoT>de%oKBK{FoD(c% zNz8i3CO3RYiC^sOGSa#0Uhf$t(Y&$kyor~taSSl7TC}-KP_bp%6|>Jn75=Uqlp`FL zMf$O;csWeWM@wbbwuwC+G~29y;OE<+y|&Z(behBY1^jbLW3iI?Ykj%*N$Se&XpBmF z^f0t&lQ+9dj+N(eN$-9UnM#?clOc*4L1*>iOl6ENvh7z)RGt<%Wx@8rMrU^|OXxSj z-2JtU8(%dS1=?u!a$i3Car8>4kcg(!Wf6tTf$JT`f_1LWMvl!D^iG~iO?)cM|L#!u ziSC1PteL~D*GxOSLX%kX&rB8-m*4RpKg09#y@mlxm@M!F1p~gXhstWN#SMtZ(?(lA z{^4Wswf9=$*YcU??aRNsdm@>2@J7jVf2QHn_VlYZu436Ee6fAXp@Q~ub>-pMV9o4E z$G87E%VkV0>pC^+ENk{iU)xJ%eW%)ap_!3ty)`{O1L*1TsQ2OTXBPDb{lf(?S{d?_ zsA0$$7*r!7vj@WzYTVa2&)?5wD!O7IKx9oITwfn*ri0oagM1n?68fK$j4K}CaX{2| z9W*JUkBM90+%3=nl==c}`(dW=D?`$>U6imtkcYHDYz+uk^h118<9GN|?|^3x7&>)H zT0#&*NFFOf#$pku45;^?Q3F}_4XEYEDrp_drbe>27ksCq(;_4r`{_$Lmz?*341eOEdI$pJFStAccj^qy9 zYga40?66wxu66#f3rv9qmChA9Y+YDBPhl3b6>b!bV)BZ~*PB@sMpfId8M&+7#$I|( zV4OO{|Ds;}>Vm~tn_<)e`;(Vm%n!B5t%_F46&3Ib>EnB__0SCzb)*Gx*3uldv`iRC zH-5K_ZlC@16o^W?(<%LEpB~%T?-3rS%{`vIPu6>};adEOBK{Bb=9-qZ5@ok`zwr-` z>>CLGw;1b~%4?AI_ShsMb8y9z_@~CvKAMcz$H(5))$Q4t|Hb8U*h>iL!9KfYW=0bZ zsDBnZaj+4OJ@NedUxS*+T_Rw}`40VOrh~`;6)-1=Y67E?a=b>uVOzV_yKrQ%tLqp} zKtC$hOg(W_0Re*KS6J*4fj>QnJh3>@ka=QYGT4-cxH3Us1eOAyG>6^^X{prKns>;VOm%WS3Gw%o)I0j3<AP4 z+GtAggl*-q1y+oN9ETp2i>cp~A(S^fP5TI)Y<{>VHjTJykX zXK;a8pvk%U*O2qk{kWa>HB&2eJmf>$h~A09A+L$mwS4>wTO?M?4;3| zY-2C|qJpiX91dqE^&8!^&gD3`y$ZU?(8r)$pSQZNHah*odp{Tf7LR;>*qeBZJ!5+KU}V;9`-m=dU+hpr08Ry6%o7kbeak1j zdyvhjUtZsD*bs+#6Glmfzu3G@EeQ%yd`oy&R%BFHH?83}%rp#rlUvB&HkWU4B}nMf z)d;=Ofo>Od5Rb>NXch7X>Q6N)VQg0v|6rq{XYk7FHFExbkAHlc<+|H#WTKg@Uto47P_xITEjByj#+&C3^TYQGl0?0Rk97R>(z{vnBp^IH zd*Sk@#uv4dwxJF4=|ehKIIp#47Ush*}AA7%ts%KXDYwtaA3CRPkMXV)_ZR^~9(ezoNIGXJs?)DV#6 ziN+0MbP_BCXN7B)90g2fXdj4+nWc_4F~-+;v2BuZ6_TtS*8++7_e^maJ-t_ic4N9* zcCzH9M4B_~cjG_v=E1 z3XSh5tdez&j5HF>aGoqhd@;#ff@B2qZ!)HBnr=lf4wPhR=w^g#2`e554rB|}?@vca zEXC+Utt;hEV)A@$+rU$4OAATn=bpyrB365H9N=oG$F$$g*Z0=vzCzSz@R!<+jHC;o zWXlyrfC@?cPKkIE^beHjnqX`r5KL;b9lS6=`zWig-w4GjiaSzTfeUK;)xrq^A8_m# z@$2xNJ+tJ!dnEkoN$v&QI7m_f;eRDReQXbbk0z3#K}w5;fj8U)A7jF&Ppm_0Fdzh5 z@9pF{D4)uCv-v=*APOnvh()La4%Gep^Mx%a*w7`SCw#Xj;rqRV;p==Ua!|KjJSz#y zF+I}{3U707T-``NZ;rTA!}_o;1L%PBlG)rH=d+bSe_ zz*02dJFpqDK=bEY06D$m=X#ZRSwPnM-<9=ijhVV;^7N}Te_CR>{um?&w|*%S{`j?#uyE?L z#nyDNMg?GT{LCe}mvgWN)=-O+Svpt&u~lJY-yJsF&Cj;Fi0(O4-~Hbzgjxbd{f0j( z0+OAj1Wp{N(A3pR;UVAukg&(u2mEhkl$;taY`%}Be+Z<%!;A_^L!dRn2Ni=w+9@(3 zCd&-cATosndn|vz=g;rak?{kK=KrbPKNdmDDk>^U%yM@hpVNRe7ABXaU^aqBNQB*| zk!Weyu|o{Z0$iPhk^-%V(!%^43=wKhxSrYM^8cpazkk@^k5^ah)N(dEuVJV0FFrcp z$f(<3f*R>=1ft|4b>9f>2=qu|WeVaZadCzmNLW4ix9{R2A28N& zoREr8<=z2z8DfyUj-?CPN5p9e>9I7364llApkroSkB@gHfNmM2F*;3Iq zaFj_fsD|F=Ki0+UWWL`a5f=6fmpmd|*rzv_K4rRe;ex)D$jseOLWdFk6d^3Z(fR39;Uo@(c2__>04vz@I5tod84BG1oeS-` z2x;lz@QJ;@9BGX>0GEm5l*9dop{x%`Qp81xR9GN<_J7XhCmz@+wzloux!4)Pi+6=i zP88&Wt@}ly{ge{L(*yb5RQtlbG_J$H^K)Gs6^^|J>_$xf@feUFA`LzseChP@F)QrO zFvHx`{ocLh;Eo|r2%b3^5*)XCK;(te5l%E!?>|DifLy7y#F>H6wxJl1+MN5xM(QXW ze6DEAd?KgjnUfdSOxs$6&+T#=r6L`jdN7<5KXHP|^Ema~iR01#o20-PyiwAL7(!G* zj7~weTLcqq&qt3oqJ-4LfWH-KzZl``3uQt+g=8)``MH99TxX$qYY==MxWBvrCj|yr z#1{xO6k@9brUenQq3a0g%mU;^xdwI>cR9@6^Lc(75VTY%z!qQIK-CTSJRl=`tWoCx4MhRS@aM^wR{=EhmYkHUyd^sWb zug7~upBQmvJqb}EngkpW;9!v7=T5g@MnR!L)(JjFjW-jqqaN&Lhl6rK!ny{ADcrNBX4$AQ`2}M6GZvuaT4)`g;fN-G^h)ZpvLw#Cy4jK zW_@b_r%n&HU=Kv}Aj@@hb&a($iV)+56DOiz<-b(U5HMNdx$K94yd>Ozv5Eiw`Xf1Z z)l4EDD%_^$84cZxBbNpq-s$0a;{4^ytJ!d-7TnF0Q&il;#kC$y0t`D#QD&w(yfA^h z89Z7F7(C#y>0P=+jNfq*6K9Yoj10sU3}HX<*sCac2ek{V(v1G*gtvv*y!HQmMpWK(Aqj)EdxtR7<@liJ%)?-15&AnGd;r8 z&dNOacchJPqJ1OTGD^B=<4#(Zph!1%Ph_INcX>l~82-7#;1vC)BL*-lok#-0q-C!NG2Z zL*?r9$W~;Q+qWOb z2B|rb!RLj`XcRC%p~idJ%kCu-(KOkHD?%HNN{4G^=jN#>PzmfLh)#2ti1& zb0NNoX$mAM5%M??%fkB8K&!fj{A&sCKcyuj1GdkZL@xR9$C|0FYD-Y{pG-`Aao~c4 zy*=}a71Pz+>mh~&4)^4@ATCBT&42>rMFkoku#BeA>cT?9O}k(1`58ap6xR@=2R?K; zGL4W*-O#iLzV}#>wCmTuB35URV}S9tgNsYKrG8f--nJ}A$GE;>wfGS4bW!x)l{)dN z(L}+4Vpsdi;Ii%@nC}g@@%v%o6TfR z`!O-cV@nhG-zNRV(pq@pEx+7|LCL^qycX5VdZH<6B*q>jO;1l;Uc8XDYtdWrl|C!uoHlPgUVG>jJ(S@BH?B%w z6X=rgw^)WZBrmVPuKrcQ_{Sf&4cRla$@)>!#`k$X3Gp5L&UMH7s&;@j)1Tj`vBg9r z_PuK0ZRmLK_S!TEKOw7$u^P(p<>I#S+OTqDl<~;5^P!V) zu9n(xY{$xac!IpeRx8Jaz~caYlOUY$6!4eqnaWd-iH_cYwhI=sMfFx!r$K`@{9K4P!?HPH+cHM7nTl6Sy@~emi~bm zm#9|bj8KvK5gpGX+WSIXmvI-n;n?c^WWDo_C~gb5in}N-E=Ku^XCp{%C3kMQk!QA@ zp8QA9ctOU%IjTn(uh83_#9rDV_VIon$wILHK>@Q4Wtk*SR}kM(-O=uhqVJiz(^x~z zTQ*9p<71%C!SiMd$B9M+>1$a<6Vv7`3t2b2(5J|!2`&6yd9JtYE`&aX(((dK*lpfE z^gS@O3`|17u;}O*>|=5JGmLWVpa@@8CIWv@pjU6>nqrKcva?RD>?kMS(A`W^;G00eeSDsnH-Ho(6i2c?G%537x6*AuM$$|u# zcL!0X?T=wAsVu6k^@esK1(C{dOZ0$F6Bt9ar9G9u-To2Ed4nlUG$S~Mir&9}07!u1 z0~rg*y^ysK?GPTtZ4h72b+(`w1Jwd|{-Tng00(?4O_1u*+dc(vlX!LFa$dABsFLBd z;27cn|8`HX%H7^8vL1uDJhypa*M>ID@3%?yAW9uE~{ z``rNFng~uyN|pkAA`)m++EnJ9uTT#CtaX~djWQIgP#3h+W^y}i<~J|J#JVDQJ_!vm7o->&~)gi$7} zod|8gZ(RnAoS0p}L{M8F%T*lnp<*z*VF{-8vfCQy$WSE{oZR3#ZEWWaTk`=;lb#ivru?#+Lov?@iY1RmTC7xIej%`~legTIv zJm0-7)UX;5rEv}(Y58QnFLTVU0o5zHXVF}JsG%b^2w*!6hQG73Z3RcWUedz@%>bKD zfql%l+|e^<_Pv#rMML0&OkO!T9(Gw-w9UABZyk?%{q&C8%bU9j2_^);Y4oN~L1HEM zHt?v$3wB?KK{%-H#P5d)sGvgMNr>eTrW4zI`}wKfQz#zrjZ(41hi<1pp^vH>7r}bu zMrE_q0$36f62dYpMGbZhoexA#fW%0!7a7k$7(&F<5I?`FuI6Z;+RRC!Aos{Weub`* zN2J`<)3Y0ofT)E~Es<&-Y=CW@NAI8G(8}2azhI)7hsg}e5Yl(x7}q`Tlgal3*c}OK zK|4+|+=yYl9Qz){;Bp*6Whzr2B_{J zEpmf+^1PwpJ(%u6K$L#Y5t8B3a|V>= zSKy97Ax7FdVuSGVWz7hUo~>}U-y~@D1Z#tV%~LF5xbRR*nN0h(o;?mOek{NafFh3y z7v_UVLNn%~P;gMpIlR%-z@X_iBvbzW{zRFJJ$UVVs{kxionzOHq2{VYlTIp4d`n2- zZ(-4B3=1zt53!Mj1u;cJNEkZ>SOq_U?u;gp6%cR$7DZUZkOzE)!TB%wlf%N?u+t$# zcwu+>>kE8`J2T`)c%IU@v`Bsc$#KA<1UCL2l3*5icl4;|O+J5b%pWsbdq9TJVkk3v9p2xgmKUa5rMh;)Q7Qo-dBE|359C+{uVh1mWv}FdsFlM1hvWIhdcAF9&%AJ4!dRURcMB5EA2cn%K zq9dpmv@MxJ`4nN3?F|PKRz!}#N<|tWT0f@;lZ_Gjf!5K$zf1|aHlQnzcv7Silgv_V z?d!Huy)N+Dfr_pS)E?MlA)036JT+`#J)jem>=`ZkmRq~KK)t^RbQniKeTIoT3L&G` zEN&9&P5htW{{_+~Nv-Ub&FO^W)pbjsF6Bm}YuPRP4e`1Dn z{*^Ox<&MnZ$73^R6?+#TsU;_CS67#OO21uox@kKLemfrRUJJ_ao{h%Hx_MPG1J`1? z#dOY@&N+z6*w;zR%$&&6oM)3Z3aWiNoTfGPd*|ou2FkxK9+=P19nkLDYAMtalVj5v zn8V^I<)W3JsCD)8YV|TNmeVThST6?otIDm}!gCBe?{NJzHo6+-YU8;6;~*90MO-@^ zXk%H#920$2F9BAr`21NbM9fJW3q@`Y54U+7`KO=|gs7s-Q3pUG#~zKCv$!^=1&8k8 z;bdgmJqN^pN?hD|g4*g8pv?#HOAYcaH9W6VXctb)vGYPa#tW|rI!4B4jtg@)EOFK_ zQx9mb!Nw&&Z|Tyd?9slX@C*lPl|MlR5DlHTVmuD_1OSwPg>2&yof8M$)8%?*NZ~>Q zf?+BhM{Z-qyZ1G5wN(s-PDBO@-AJ;9-XeAOz_xATH2V+@${zgzM8X-o(+2H|%TPsu<9 z&P+{(>(|maEcpD+YA?|llrAcoXU`_!UL4{B^rsFTcJr_odO&vAv7;#5iJu3#ow74z z*@5n!o@(f;Rq+iQzJ~<{J|kvU7;-23st&-4X{9oT3j(D<+&vzRX0|rkINK}7%=ZuD zTqGY0nw!LP-eEyl+i}?VgNaN+R*5KOAE?UptFhF&-@jkaK8#YCO&qn1e6GToGl2u| zB5nr?Sj1@CoE~t}pMvfxa~w%tWKqo8cI!3{3I8WkHsg!-walhP%D~VG2KNEf0D}X9b$%cjJqU!*XCspO*F+v@$ z5gLxe-cg*H!mQ^5U|?TWrCQ7z#*rhJI6;LO`qDVmV$7YD&*lAWr$w4^uK4-;$7lsO zifo0;SlL+p;K@>lWUbs7N(QV14oup-yc!!81Z~N{WqLZgXiCPF7QT>ilmYPJN+Rkd zfXrdtBPc||iO+o+@)s0r?CkbO``RKhz`yKmIif0Pn%iSFwWI}PYxQJgT&+Ii5K5wC zfUP!^gPpO|$Z4>rx7Co|(Fa_J<_Fd}6zHW2Eld~t zpUsZe$!xc$DtMU{7-{#kU;I_7CqGPd44~^>^kFVmE3!yzXp_N0`dNnAdannv532ef zh-UY|S?l`8?!)~(^`R`r=tz76j&5u&=ux1 zPYej_f!GqgHCBE~Mn*#uXD5>uOxDQs1_^02AU@zAX9H)>-}F`Ybz!uN6w&Fvov356Z zN!!*od{vSSS-3D~x}|4;*B7_hutR-&R?QLNFj3LDv6El=m5+l&)|gaiKgC1A0=OFE zFly_O*u~$LI3eONeHdj}G%n8OE2s;k0r|oRaMO>mw$<0*y4B4VFWdd}55A%U~ChPYqTnZ8LSz+Pnn@9At!-e^H_-SnrHJ!Y+?2hAd+>~g6h@y zC4v!cK~;=H9DJ)$ICjt|-CMC{#frD7{GV`9Vw`qMn>(gbBL=MqO6Nn4v(_QPke9<4 zeihI?d1!N~z6&_L2+2W0LV|#CJ{F%90~+n0&L9sR8RomO87mv-HG#zFLO@UaA22H) z;yXv%$_EU6Ely_T>Cjur#;^HwOVL#Dc?RJer6}6KkX*0n>H@tvL4*K4F@W9bY zu%Ej15q)hbR<$40o?l!7vwmY%uD$W)dw6O;{djQpcG*cKCLYz3^?+}8&Y4yo_M09% z84Xjd*X3+${9=@+g6ns}1-SS13-}e`RUoP1Qb6K-9IQ9>fwz;WUK~#prQ9UL;Ol(J zWtHwoAD!^df&&sGC>Y=c^&uAos^7OC7F-pMrIp;%z7&Ts?AqmrBI17@h3E^ga%2XAJAbe#dGX$I=Zi!N|!BllAE_jj|Oe!W!#Swb) z$SQYid6WQe7u{1YI(^Nq8;`fY<0$Lux=0y1$IxHLn%;9g%&BdByIv@#PC*r+zCdeD zyzMq`-i);NW4&Lm!Xc1BzGCaj~c?=NvU3y?5faHO6jHDGh~3cU2tf9AUb z{FjqJo*9r1Dgk4Z(O^;GYNzRZ&deMwWjHFATWU16iq^96@%cl?PVidvKBUf;_F|5} z7-#7kHEFBKZyuI=GcCf}HKVwbs`?RWO5w(IZaze7#=>Bc8F z5C(Pi3`WN?qx22YG+@Q?vGjBy29QeKrL?9bmYhRrHC z2+4X=ik@@36E0KrMg2}r zEEJhuR$73v2<-&tPO~K$F5!s%)|&kYSQ&N0E9n*0jpdSG#cZ zVedC#?^HHdJPuV{RLJ=aPn$=RLIQh{O~qtAO*sq>N3ShM&Ga>JK0($bcpA>ZSkMce zFfO2!bpv${pWFbIKHR93XMVKc>!ZUV@kHzsxA^*)faG^{NFcvO@r^X}-ym@kzNT$7 z74^i>0(w8Bp^s$#gO1e#NB)qY!*K7kW10B(Ua|dBHr2o9=Og>rQbSq#>lXg1t*#Gc zjyF2I450yf2B&Fv?v#v-V#P>SX?%c}eOyU>=);G@WBq*uW;8O2n`p-hM7162G&iV2 z9Pn_)x}rby@%23hc`!+H0wIOm8U&Vr#+QJLc*bN>juVIs2(iHjm~r+5;;Epm42Tbq zQ7o&hM(rMtoN^q(Z!p&bovha;^}@&i%tL6g4{`UBFjCjD37*SH; zfXM(^x?pn0R)b z66A*Xg7WhE;qhf&^n?9ZlFVAy@jv;^(RN)tk&AIX%>&i&f61a!JxR4|s zo4ASKA@k&Jhq;AC{o3Uj=U*=xnnrx{I~c~19}n^vfH7hN+zLW-{Waq$;=T%MSrJB9 z{YXJaaYXuWG`J@B=&KcQppbw#&{A+b-+@)fB|F~k)0t`T{=JEA7wdooH3E+^Xo|`N zJ_H*BXUvrkT`XS@a}jjLs{we!l5bv5#n!2Gsz!AA#cy zS_|@*VdD~uJUlm9VBlE7m3r};y;^G=%u1W#Jwa#)*wL_)DuN*uu%^C@WYKo+>ClD5 zP2;>ff1^&7-(743<9$17hJ;YN+=s&%6<7x%nj?;_*odLOlCJ6wZ&s-dHj@WosAs#z zlow$@q*KsZv}h3k5d)0(3I7}2^afg533Pu}MvpOJKwY*5W8a(T?JVt=D zegSV?PR_lCAsc(B3q&7#%xRk=lIyyy@`5Wm(asZkIXUL-Ca;3gG|qBDBTo=lYPzI0 zjs4HB_lQR&`VXAR9svRB{(6G+85peU85qQ*3C~!ive}}z9z9b2KKodG6|fc+&Dyt#RZDLv4i)Ed|R@UHBxj_ zN~VF*y+FeVe3cw9t2Q5aS5W15_Vb5cq2uk;Fu%wGgTKddP5P7SNj+gDKC$^nJ!m$D z)_7dqOh-re(5w?Q5;)ME3m5<1T2SrOGaHnf8HJt=Q>r@;BDUW>ewSej;{{9sQ2HJ( zy_=^M#WOcO`KChdE_H(h>lP-3u?!fJ>~QTWNyF4?=wfdF%FfU|#rMDCeUJ<>Fn&}F zC2Y4BFOdBD{(jBAHy_*r>H)f8|xyu@(DHu_<+Zme~~V%e7SI=mQD!GdtcIi}Nt-W>PIG z4x}xe3bOv?O0$0RW@7aGdzc10HJ5b9IoqMUEdUnDdckv-z5VyJlQWAx=6w_}TP(b& ztT*dB{Kj&|n%7Gp7E<5|ki+s9ZW4bzScBFI{-#yvu8D6HKqJf_pJ%+b*vHR#(Sr+gJZd`|Tby`5?#=i4b~gb0nYWVIAozwP zh?l9#rQm5`fI%WuK_l3wY@3{hm4?|XHn3q*3yDVg&+Ij*cm3ytUbW}BwbX*>;ry6w zzXz&P{srY>y=LEkGbgRJ^2RnkDJwo^(P_&d>$XC05DzTwTr{KFvom^NoXWpnF{1l8 zyy;=DgZ-(19j?bV#h^Z;g@F%B9~oK2(hpUum+soVht_Ox*}5o}KHkk#cwJs+*`t$h>xTolOCS_z2J*=tcnAMA za*FgS5Q33em1bC5AGz3vRLQi`oyQ3}3;n9uMbj9i?s+brs9#VOH z{78I_)&skqJAg=G)B$APfGXA#pcZC07$q2G690OnS?GRm%_cn_R&5GMSj)b8I<$6#P=;zv0Hfv5%9CN&37Q3uy7;*pmoDuiVLDBK^VxG z;}DcDbM^L)MOlX$Qr&P4bp{p_ahJBXy$VlX2|!}Tkj8;X(2Ihwd1zcfY?_!IB5s!$ z4xw|x=R1NqV$9quCT#dLFObhkeC*J@Z9!NCc^9&K_w2b#e2L%`j~kDNH^x986-u+< zlli)0DE7wo-5wKk0zV4UJTFYqK~AU~vBv&1L?c9aa^Po@xky;|q_sfF2GFd)ts>Ft zm_nfplZb7*NMDaLI$d(d-}Bg$3t?)TEE_SO$F#N+#%g%W;93&LdW<&1Fz>EIZA-@H zz;0mKb7I4Duyxh4Cl|H7Hgo=ojhe~05nj_@1 zBWBPrhl3ee(p-ToY%Q^RKv>$y#B?9;3oBO_M=bg4(Oet?9xgvwJ^LXZEsVaMSK7(P zlO$Jp11K|?HP%dnBSKKSZPe`LpU^Czvn6wAkgkU+xv=o0qTcs?h$Sr}M#|`e(+7Q3 z35OBBU)_(@fA3T6-O2J%_nt&A?K$oLSVPn2@>ORb>_T-iWAE0ERmnhypy57=xdf(wB^cOTFWuV?{sCyj=TR*KizCjqSB3+}1V2EtM^-mb zj-MDwU;l1GAv=ou&>=mnOOmXOgPMwMb&=^2DiQo3!AE!ZNB@|dG%WYouIUvf3e*Hk zq6AP4>184O{_4r!_AZwhgBjfJtHEC cygL7fijUGfdaDTQ84xh`Ufk)2%?CdP`< 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 z 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%0AcLIn;GdqyMN>b1W5g)0v8-%U|-IqE!r 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 G>;C{@7(T23 diff --git a/docs/source/_build/html/_sources/export.rst.txt b/docs/source/_build/html/_sources/export.rst.txt deleted file mode 100644 index 5cf24cff..00000000 --- a/docs/source/_build/html/_sources/export.rst.txt +++ /dev/null @@ -1,97 +0,0 @@ -################## -Exporting Projects -################## - -The novelWriter project can be exported in various formats using the build tool available from :menuselection:`Project --> Build Project` or by pressing :kbd:`F5`. - -***************** -Header Formatting -***************** - -The titles for the four levels of story structure can be formatted collectively in the export tool. -This is done through a series of keyword–replace steps. - -The keyword ``%title%`` will always be replaced by the text you put after the ``#`` characters in your document. - -The keywords ``%ch%`` and ``%chw%`` is replaced by a number, or a number word, respectively. -The number is incremented by one each time the build tool sees a new heading of level two in a file with layout "Chapter". -If the file has layout "Unnumbered", the counter is *not* incremented. -The latter is useful for for instance Prologue and Epilogue chapters. - -Likewise, the keywords ``%sc%`` and ``%sca%`` are number counters for scene files. -These are incremented each time a heading of level three is encountered. -The former keyword is reset to one for each new chapter, while the latter is not reset but counts from first scene encountered in the project. - -If you want to insert a line break in your title format, add two backslashes ``\\``. - -.. note:: - Header formatting only applies to novel files. - Headings in note files will will be left as-is, but heading levels 1 through 4 are converted to the correct heading level in the respective output formats. - -**************** -Scene Separators -**************** - -If you don't want any titles for your scenes (and for your sections if you have them), you can leave the boxes empty, and an empty paragraph will be inserted between the scenes or sections instead. -Alternatively, if you want a separator between them, like the common "\*\*\*", you can also enter that in the box. -In fact, if the format is a piece of static text, it will always be treated as a separator. - -************** -File Selection -************** - -Which files are selected for export can be controlled from the options on the left side of the dialog window. -The switch for "Include novel files" will select any file that isn't classified as a note. -That is, files with layout "Book", "Page", "Partition", "Chapet", "Unnumbered", or "Scene". -The switch for "Include note files" will select any file that is a note. -That is, files with layout "Note". -This is allows for exporting just the novel, just your notes, or both, as you see fit. - -In addition, you can select to export the synopsis comments, regular comments, keywords, and even exclude the body text itself. -If you for instance want to export a document with an outline of the novel, you can enable keywords and synopsis export and disable body text, thus getting a document with each heading followed by the tags and references and the synopsis. - -If you need to exclude specific files from your exports, like draft files or files you want to take out of your build, but don't want to delete, you can uncheck the "Include when building project" option for each file in the project tree. -An included file has a checkmark after the status icon in the "Flags" column. -The "Build Novel Project" tool has a switch to ignore this flag if you need to collectively override these settings. - -************** -Export Formats -************** - -Currently, six formats are supported for exporting. - -OpenDocument Format -=================== - -This is produces an open document ``.odt`` file. -The document produced has very little formatting, and may require further editing afterwards. -For a better formatted office document, you may get a better result with exporting to HTML and the import that HTML document in your office word processor. - -PDF Format -========== - -The PDF export is just a shortcut for print to file. - -novelWriter HTML -================ - -The HTML export format writes a single ``.htm`` file with minimal style formatting. -The exported HTML file is suitable for further processing by document conversion tools like Pandoc, for importing in word processors, or for printing from browser. - -novelWriter Markdown -==================== - -This is simply a concatenation of the files selected by the filters. -The files in the project are stacked together in the order they appear in the tree view, with comments, tags, etc. included if they are selected. -This is a useful format for exporting the project for later import back into novelWriter. - -Standard Markdown -================= - -If you have Qt 5.14 or higher, the option to export to plain Markdown is available. -This feature uses Qt's own Markdown export feature. - -Plain Text -========== - -The plain text export format writes a simple ``.txt`` file without any formatting at all. diff --git a/docs/source/_build/html/_sources/index.rst.txt b/docs/source/_build/html/_sources/index.rst.txt deleted file mode 100644 index 532aef70..00000000 --- a/docs/source/_build/html/_sources/index.rst.txt +++ /dev/null @@ -1,25 +0,0 @@ -#################################### -Welcome to novelWriter Documentation -#################################### - -This is the documentation for novelWriter |version|. - -**Contents** - -.. toctree:: - :maxdepth: 2 - - introduction - started - interface - projects - structure - notes - export - technical - -**Indices and Tables** - -* :ref:`genindex` -* :ref:`modindex` -* :ref:`search` diff --git a/docs/source/_build/html/_sources/interface.rst.txt b/docs/source/_build/html/_sources/interface.rst.txt deleted file mode 100644 index c6e1cdd6..00000000 --- a/docs/source/_build/html/_sources/interface.rst.txt +++ /dev/null @@ -1,160 +0,0 @@ -*************** -User Interface -*************** - -The user interface is kept as simple as possible to avoid distractions when writing. -The main window contains a tree view pane with the entire structure of the project, and a small details panel below it to display additional information about the currently selected item. - -Editing a document can be done by either double-clicking on it, or hitting the return key when a file is selected. -This will open the document editor, which uses a simplified markdown format, described in the section below. - -The document currently being edited can also be viewed in parallel in a right hand side view pane. -To view a document, simply press :kbd:`Ctrl-R`, or select a file and go to :menuselection:`Document --> View Document` in the menu. -The document viewed does not need to be the same document currently being edited. -If you are viewing the same document as the one you're editing, pressing :kbd:`Ctrl-R` again will update the document with your last changes. - -References to tags can be opened in the view pane from the document editor by moving the cursor to a reference to a tag and hitting :kbd:`Ctrl-Enter`. -In the view panel, the references become clickable links, and the "Referenced By" panel at the bottom will show links to all documents referring back to it. - -.. note:: - The "Referenced By" panel relies on an up-to-date index of the project. - If anything is missing, or seems wrong, the index can always be rebuilt from :menuselection:`Tools --> Rebuild Index` or by pressing :kbd:`F9`. - -Markdown Format -=============== - -The document editor uses a simplified markdown format. -That is, it supports basic formatting like bold, italics and underline, as well as four levels of headings. -The formats are listed below. - -In addition to these standard markdown features, the editor also allows for comments, that is text that is ignored by the word counter and not exported or, optionally, hidden in the document viewer. -The editor also has a minimal set of keywords used for setting tags and references between files. - -.. csv-table:: Formatting Syntax - :header: "Format", "Description" - :widths: 15, 50 - - "``# Title``", "Heading level one. The space after the # is mandatory." - "``## Title``", "Heading level two. The space after the # is mandatory." - "``### Title``", "Heading level three. The space after the # is mandatory." - "``#### Title``", "Heading level four. The space after the # is mandatory." - "``**text**``", "The text is rendered as bold text." - "``_text_``", "The text is rendered as italicized text." - "``__text__``", "The text is rendered as underlined text." - "``% text...``", "A comment. The text is not exported, seen in viewer, or counted towards word counts." - "``@keyword: value``", "A keyword argument followed by a value, or a comma separated list of values." - -The editor and viewer also supports markdown standard hard line breaks, and preserves non-breaking spaces. -A hard line break is achieved by leaving two or more spaces at the end of the line. -Alternatively, the user can press :kbd:`Shift-Enter` to insert this. -A non-breaking space is inserted with :kbd:`Shift-Space`. - -Both hard line breaks and non-breaking spaces are highlighted by the syntax highlighter as an alternate coloured background, depending on the selected theme. - -Project Outline View -==================== - -The Project Outline View is available as the second tab on the right hand side of the main window marked "Outline". -The Outline View provides an overview of the novel structure, displaying a tree hierarchy of the elements of the novel, that is, the level 1 to 4 headings. - -Various meta data and information extracted from tags can be displayed in columns in the Outline View. -To turn on or off specific columns, right click the header and select the columns you want to show. -The order of the columns can be rearranged by dragging them to a different position. - -.. note:: - The "Title" columns cannot be disabled or moved. - -The information viewed in teh Outline View is based on the Project Index. -While novelWriter does its best to keep the index up-to-date when content changes, you can always rebuild it manually by pressing :kbd:`F9`. - -The Outline View itself can be regenerated by pressing :kbd:`F10`. -You can also enable automatic updating in the :menuselection:`Tools` menu, which will trigger an update whenever the index is updated. -You may want to disable this feature if your project is very large, - -Synopsis Feature -================ - -The "Synopsis" column of the Outline View takes its information from a specially formatted comment. -In order to flag a comment as a Synopsis, add the word "Synopsis:" as the first word of the comment. -The ";" is required, and "synopsis" is not case sensitive. -If it is correctly formatted, the syntax highlighter will indicate this by altering the colour of the word. - -.. note:: - Only one comment can be flagged as a synopsis comment for each heading. - If multiple comments are flagged as a synopsis, the last one will be used. - -Keyboard Shortcuts -================== - -Most features are available as keyboard shortcuts. -These are as following: - -.. csv-table:: Keyboard Shortcuts - :header: "Shortcut", "Description" - :widths: 15, 50 - - ":kbd:`Alt-1`", "Switch focus to tree view pane." - ":kbd:`Alt-2`", "Switch focus to document editor pane." - ":kbd:`Alt-3`", "Switch focus to document viewer pane." - ":kbd:`Ctrl-.`", "Correct word under cursor." - ":kbd:`Ctrl-/`", "Change block format to comment." - ":kbd:`Ctrl-0`", "Remove block formatting for block under cursor." - ":kbd:`Ctrl-1`", "Change block format to header level 1." - ":kbd:`Ctrl-2`", "Change block format to header level 2." - ":kbd:`Ctrl-3`", "Change block format to header level 3." - ":kbd:`Ctrl-4`", "Change block format to header level 4." - ":kbd:`Ctrl-A`", "Select all text in document." - ":kbd:`Ctrl-B`", "Format selected text, or word under cursor, as bold." - ":kbd:`Ctrl-C`", "Copy selected text to clipboard." - ":kbd:`Ctrl-D`", "Wrap selected text, or word under cursor, in double quotes." - ":kbd:`Ctrl-E`", "If in tree view, edit a document or folder settings. (Same as :kbd:`F2`)" - ":kbd:`Ctrl-F`", "Open the search bar and search for selected word, if any is selected." - ":kbd:`Ctrl-G`", "Find next occurrence of word in current document. (Same as :kbd:`F3`)" - ":kbd:`Ctrl-H`", "Open the search and replace bar and search for selected word, if any is selected. (On Mac, this is :kbd:`Cmd+=`)" - ":kbd:`Ctrl-I`", "Format selected text, or word under cursor, as italic." - ":kbd:`Ctrl-N`", "Create new document." - ":kbd:`Ctrl-O`", "Open selected document." - ":kbd:`Ctrl-Q`", "Exit novelWriter." - ":kbd:`Ctrl-R`", "If in tree view, open a document for viewing. If in editor pane, open current document for viewing." - ":kbd:`Ctrl-S`", "Save the current document in the editor." - ":kbd:`Ctrl-T`", "Show project timeline." - ":kbd:`Ctrl-U`", "Format selected text, or word under cursor, as underline." - ":kbd:`Ctrl-V`", "Paste text from clipboard to cursor position." - ":kbd:`Ctrl-W`", "Close the current document in the editor." - ":kbd:`Ctrl-X`", "Cut selected text to clipboard." - ":kbd:`Ctrl-Y`", "Redo latest undo." - ":kbd:`Ctrl-Z`", "Undo latest changes." - ":kbd:`Ctrl-F7`", "Toggle spell checking." - ":kbd:`Ctrl-F10`", "Toggle automatic updating of project outline." - ":kbd:`Ctrl-Del`", "If in tree view, move a document to trash, or delete a folder." - ":kbd:`Ctrl-Enter`", "Open the tag or reference under the cursor in the view panel." - ":kbd:`Ctrl-Shift-,`", "Change project settings." - ":kbd:`Ctrl-Shift-/`", "Remove block formatting for block under cursor." - ":kbd:`Ctrl-Shift-1`", "Replace occurrence of word in current document, and search for next occurrence." - ":kbd:`Ctrl-Shift-A`", "Select all text in current paragraph." - ":kbd:`Ctrl-Shift-D`", "Wrap selected text, or word under cursor, in single quotes." - ":kbd:`Ctrl-Shift+G`", "Find previous occurrence of word in current document. (Same as :kbd:`Shift-F3`" - ":kbd:`Ctrl-Shift-I`", "Import text to the current document from a text file." - ":kbd:`Ctrl-Shift-N`", "Create new folder." - ":kbd:`Ctrl-Shift-O`", "Open a project." - ":kbd:`Ctrl-Shift-R`", "Close the document view pane." - ":kbd:`Ctrl-Shift-S`", "Save the current project." - ":kbd:`Ctrl-Shift-W`", "Close the current project." - ":kbd:`Ctrl-Shift-Up`", "Move item one step up in the tree view." - ":kbd:`Ctrl-Shift-Down`", "Move item one step down in the tree view." - ":kbd:`F1`", "Open documentation." - ":kbd:`F2`", "If in tree view, edit a document or folder settings. (Same as :kbd:`Ctrl-E`)" - ":kbd:`F3`", "Find next occurrence of word in current document. (Same as :kbd:`Ctrl-G`)" - ":kbd:`F5`", "Export project dialog." - ":kbd:`F7`", "Re-run spell checker." - ":kbd:`F8`", "Activate Zen Mode, hiding project tree and view panel." - ":kbd:`F9`", "Re-build project indices." - ":kbd:`F10`", "Re-build project outline." - ":kbd:`F11`", "Activate full screen mode." - ":kbd:`Shift-Enter`", "Insert a hard line break at the cursor position." - ":kbd:`Shift-F3`", "Find previous occurrence of word in current document. (Same as :kbd:`Ctrl-Shift-G`" - ":kbd:`Shift-Space`", "Insert a non-breaking space at the cursor position." - ":kbd:`Enter`", "If in tree view, open a document for editing." - -.. note:: - On macOS, replace :kbd:`Ctrl` with :kbd:`Cmd`. diff --git a/docs/source/_build/html/_sources/introduction.rst.txt b/docs/source/_build/html/_sources/introduction.rst.txt deleted file mode 100644 index 13a83323..00000000 --- a/docs/source/_build/html/_sources/introduction.rst.txt +++ /dev/null @@ -1,55 +0,0 @@ -************ -Introduction -************ - -novelWriter is a simple, multi-document plain text editor using a modified markdown syntax to apply simple formatting. -Additional features that are not standard markdown are available through special meta data keywords. -These keywords make it possible to inter-link documents, and generate an overview of the entire novel project and how the various files are interconnected. - -Design Philosophy ------------------ - -The user interface is intended to be as minimalistic as practically possible, while at the same time provide a complete set of features needed for writing a novel. - -.. note:: - novelWriter is not intended to be a full office type word processor. - It doesn't support images, links, tables, and its formatting is limited to headers, and bold, italicised and underlined text. - -Most features are accessible through the menu and through keyboard shortcuts. -The colour scheme of the user interface can be modified with various themes, and new themes are fairly straight forward to add. - -The project itself is laid out in a tree view on the left hand side of the main window. -It has various sections, called *root folders*, for the various types of supporting files that the user may want to add to the project. -The novel itself lives under its own root folder. - -Project Layout --------------- - -The layout of the novel itself is managed through the four supported heading levels, H1 through H4. -H1 is used for the book title, and for partitions. -H2 is used for chapter tiles. -H3 is reserved for scene titles. -H4 is for section titles within scenes, if such granularity is necessary. - -For the files designated as project notes, the usage of headers imply no structural meaning, and the user is free to do whatever they want. - -Project Export --------------- - -The project can at any time be exported to a range of different formats. -Natively, novelWriter supports export to plain text file, HTML document, novelWriter flavoured markdown, standard markdown (requires Qt 5.14), and to a basic Open Document. -In addition, printing and printing to PDF is also possible. -The best supported export format is HTML, which can be imported or converted by a number of other tools like Pandoc, or simply imported into Libre Office and similar. - -Screenshot ----------- - -**novelWriter with default system theme:** - -.. image:: images/screenshot_default.png - :width: 800 - -**novelWriter with dark theme:** - -.. image:: images/screenshot_dark.png - :width: 800 diff --git a/docs/source/_build/html/_sources/notes.rst.txt b/docs/source/_build/html/_sources/notes.rst.txt deleted file mode 100644 index 4e31b2a9..00000000 --- a/docs/source/_build/html/_sources/notes.rst.txt +++ /dev/null @@ -1,23 +0,0 @@ -************************ -Supporting Files (Notes) -************************ - -Supporting files, or notes, are any files stored in root folders that are not the Novel root folder. -These files are intended for summaries and outlines of the various plot elements, characters, locations, and so on, of the novel. -These are not required, but making at least minimal files for each such element, and add a tag to them, makes it possible to use the Outline View feature to see how each element intersects with each section of the novel itself, and add clickable cross-references between document in the editor and viewer. - -File Tags -========= - -Each note file can have a tag associated with it, -The format of a tag is ``@tag: tagname``, where tagname is a unique identifier. -Tags can then be referenced in the novel files and will show up in the Outline View. - -The syntax highlighter will alert the user that the keyword is correctly used and that the tag is allowed, that is, the tag is unique. -Duplicate tags should be detected as long as the index is up to date. - -The tag is the only part of these files that the application uses. -The rest of the file is there for the writer to use in whatever way they wish. - -A note file can also reference other note files in the same way novel files do. -When the note file is opened in the view pane, these become clickable links, making it easier to follow connections in the plot. diff --git a/docs/source/_build/html/_sources/projects.rst.txt b/docs/source/_build/html/_sources/projects.rst.txt deleted file mode 100644 index 44600b56..00000000 --- a/docs/source/_build/html/_sources/projects.rst.txt +++ /dev/null @@ -1,145 +0,0 @@ -************** -Novel Projects -************** - -A novelWriter project requires a dedicated folder for storing its files on the local file system. -See the Technical Information section for further details. - -A new project can be created from the Project menu by selecting :menuselection:`Project --> New Project`. -A list of recently opened projects is maintained, and displayed in the "Open Project" dialog. - -The project specific settings are available in :menuselection:`Project --> Project Settings`. -See further details below. - -Project Structure -================= - -Projects are structured into a set of root folders, visible in the left side tree view panel. - -The core novel files go into a root folder of type "Novel". -Other supporting files go into root folders of types "Plot", "Characters", "Locations", "Timeline", "Objects", "Entities" or "Custom". -These other root folder types are intended for your notes on the various elements of your story. -Using these is of course entirely optional. -A new project will not have all of the root folders present, but you can add the ones you want from :menuselection:`Project --> Create Root Folder`. - -The root folders are intended for the following use, but aside from the Novel folder, no restrictions apply. -You can use them however you want. -The root folders correspond to the categories of tags that can be used. -See the "Project Structure" section for further details. - -* **Novel:** The root folder of all text that goes into the final novel. - This class of files have other rules and features than other files in the project. - See the Novel Structure section for more details. -* **Plot:** This is the root folder where main plots can be outlined. - It is optional, but adding at least dummy files can be useful in order to tag plot elements for the Outline View. -* **Characters:** Character files go in this root folder. - These are especially important if one wants to use the Outline View to see which character appears where, and which part of the story is told from a specific character's point-of-view. -* **Locations:** Location is for various scene locations that one wants to track. -* **Timeline:** If the story jumps in time within the same plot, this class of files can be used to track this. -* **Objects:** Important objects in the story can be tracked here. -* **Entities:** Entities, like organisations or companies, that are part of the plot, can be organised here. -* **Custom:** The custom root folder can be used for tracking anything else not covered by the above options. - -Deleted files will be moved into a special "Trash" root folder. -Files in the Trash folder can be deleted permanently. - -Orphaned Documents ------------------- - -In the event the editor crashes or otherwise exits without saving the project state, files that have been added to the project tree and are saved to disk will appear in a special "Orphaned Items" root folder next time the application is started. -These orphaned files will not have any meta data associated with them, although novelWriter will try to restore the file label it had in the project tree. Other information will have to be set again, and the files moved back to the correct location in the project. - -Project Lockfile ----------------- - -To prevent orphaned files caused by file conflicts when novelWriter projects are synced with file synchronisation tools, a project lockfile is written to the project folder. -If you try to open a project which has such a file, you will be presented with a warning, and some information about where the project is potentially open. -You will be give the option to ignore this warning, and continue opening the project. -However, if multiple instances are in fact editing the same project, you are likely to cause inconsistencies and create diverging project files. - -.. note:: - If, for some reason, novelWriter crashes, the lock file may remain. If so, it is safe to ignore the lock file warning when re-opening the project. - -Using Folders in the Project Tree ---------------------------------- - -Folders, aside from root folders, have no structural significance to the project. -They are there purely as a way for the user to organise the files in meaningful sections and to be able to close them in the tree view. -When processing the files in the novel, like for instance during export, the folders are ignored. - -Project Settings -================ - -The project settings can be accessed from the :menuselection:`Project --> Project Settings` menu entry. -This will open a dialog box, with a set of tabs. - -Settings Tab ------------- - -The Settings tab holds the project title and author settings. -Working Title can be set to a different title than the Book Title. -The difference between them is simply that the Working Title is used for the GUI (main window title) and for generating the backup files. -The intention is that the working title should remain unchanged, while changing the final title has no effect on features relying on the project name. -The Book Title is currently not ues for anything, so setting it is just for the benefit of the author. - -The Book Authors text box takes one author per line. - -Status Tab ----------- - -Each file of type "Novel" can be given a status level, signified by a coloured icon. -These are purely there for the user's convenience, and you are not required to use them for any other feature to work. -The intention is to use this list to set what stage of writing you are on, although you can in principle make them whatever you want. - -.. note:: - The status levels currently in use by a file cannot be deleted. - -Importance Tab --------------- - -Each file of types "Plot", "Character", "World", "Timeline", "Object", "Entity", or "Custom", can be given an importance level, signified by a coloured icon like for status level. -These are also purely there for the user's convenience, and you are not required to use them for any other feature to work. -The intention is to use this list to set how important the character, plot element, or otherwise, is for the story. -Again, these can in principle be used for whatever you want. - -.. note:: - The importance levels currently in use by a file cannot be deleted. - -Auto-Replace Tab ----------------- - -A set of automatically replaced keywords can be added in this tab. -The keywords in the left column wile be replaced by the text in the right column when documents are opened in the viewer. -This will also be applied to exports when the feature is added. - -Note that a keyword cannot contain any spaces. -The angle brackets are added by default, and when used in the text are a part of the keyword to be replaced. -This is to ensure that parts of the text isn't unintentionally replaced by the content of the list. - -Writing Files -============= - -New document files can be created from the Document menu, or by pressing :kbd:`Ctrl-N` while in the tree view pane. -This will create a new, empty file, and open the item settings dialog where the filename and various other settings can be set. -This dialog can also be opened again later from either the menu, :menuselection:`Project -> Edit` item, or by pressing :kbd:`Ctrl-E` or :kbd:`F2` with the item selected. - -The layout of the file is also defined here. -For Novel files, the full list of layout options are available. -For non-Novel files, only "Note" is available. - -See the Project Structure section for more details. - -Backup -====== - -An automatic backup system is built into novelWriter. -In order to use it, a backup path to where the backups are to be stored needs to be provided in :menuselection:`Tools --> Preferences`. -Backups can be run automatically when a project is closed, which also implies it is run when the application is closed. -Backups are date stamped zip files of the entire project folder, and are stored in a subfolder of the backup path with the same name as the project working title set in Project Settings. - -The backup feature, when configured, can also be run manually from the :menuselection:`Tools` menu. -It is also possible to dissable automated backup for a given project in Project Settings. - -.. note:: - For the backup to be able to run, the Working Title must be set in Project Settings. - This value is used to generate the folder name for the zip files. diff --git a/docs/source/_build/html/_sources/started.rst.txt b/docs/source/_build/html/_sources/started.rst.txt deleted file mode 100644 index 59a7f550..00000000 --- a/docs/source/_build/html/_sources/started.rst.txt +++ /dev/null @@ -1,91 +0,0 @@ -*************** -Getting Started -*************** - -You can download novelWriter from https://github.com/vkbo/novelWriter/releases - -Latest version is |version|: - -* ZIP file: https://github.com/vkbo/novelWriter/archive/v0.6.1.zip -* TAR file: https://github.com/vkbo/novelWriter/archive/v0.6.1.tar.gz - -Extract the archive to a location of your choice. - -Installing Dependencies -======================= - -If you already have Python installed, all you need to do is install the dependencies. -To do this, your need to open your command line tool, find the folder where you extracted novelWriter, and run: - -.. code-block:: console - - python -m pip install -r requirements.txt - -On some operating systems you need to use ``python3`` instead of ``python``. - -The following Python packages are required to run novelWriter: - -* ``pyqt5`` for the GUI -* ``lxml`` for writing project files - -.. note:: - Sometimes the SVG graphics package for pyqt5 must be installed separately. - -The following are optional, but recommended: - -* ``pyenchant`` for spell checking - -PyQt/Qt should be at least 5.2.1, but ideally 5.10 or higher for nearly all features to work. -Exporting to markdown requires PyQt/Qt 5.14. -There are no known minimum for lxml, but the code was originally written with 4.2. -The optional spell check library must be at least 3.0.0 to work with Windows. -On Linux, 2.0.0 also works fine. - -Running novelWriter -=================== - -If all the required dependencies are met, you can run novelWriter from the command line in one of the following ways: - -.. code-block:: console - - python novelWriter.py - python3 novelWriter.py - ./novelWriter.py - -A few switches are supported from the command line, mostly to assist in debugging if an error is encountered. -To list all options, run: - -.. code-block:: console - - python novelWriter.py --help - - -Building a Standalone Executable -================================ - -A standalone executable can be built with pyinstaller, using the provided python script "install.py" in the source folder. -This script will automatically try to install all dependencies and build the standalone executable of novelWriter. -You can run the script by typing the following into your command prompt: - -.. code-block:: console - - python install.py - -If successful, the executable will be in the "dist" folder. - - -Additional Instructions for Windows ------------------------------------ - -If you don't have Python installed, you can download it from the python.org website. -The installers for Windows are available at https://www.python.org/downloads/windows/ - -novelWriter should work with Python 3.5 or higher, and the executable installer is the easiest to install. -Please note that the `pyenchant` package for spell checking does not currently work with the x86-64 version, so if you want spell checking, you must install the x86 version. - -Also, make sure you select the "Add Python to PATH" option. - -.. image:: images/python_win_install.png - :width: 600 - -Once Python is set up and running, you can either run novelWriter from the folder where you extracted it, or you can build an executable and run that from a desktop icon instead. diff --git a/docs/source/_build/html/_sources/structure.rst.txt b/docs/source/_build/html/_sources/structure.rst.txt deleted file mode 100644 index ddc28def..00000000 --- a/docs/source/_build/html/_sources/structure.rst.txt +++ /dev/null @@ -1,94 +0,0 @@ -***************** -Project Structure -***************** - -This section covers the structure of a novel project. - -.. note:: - This section concerns files under the Novel type root folder only. - There are some restrictions and features that only applies to these type of files. - -Importance of Headings -====================== - -Subfolders under root folders have no impact on the structure of the novel itself. -The structure is instead dictated by the heading level. -Four levels of headings are supported, signified by the number of hashes preceding the title. -See the Markdown section. - -The header levels are not only important when generating the exported novel file, but they are also used by the indexer and Outline View. -Each heading starts a new region where new references to tags can be set. - -The different header levels are interpreted as specific section types of the novel. - -* ``# Header1``: Header level 1 signifies that the text refers to either the novel title or the name of a top level partition. -* ``## Header2``: Header level 2 signifies a chapter level partition. -* ``### Header3``: Header level 3 signifies a scene level partition. -* ``#### Header4``: Header level 4 signifies a sub-scene level partition (section). - -Tag References -============== - -Each partition, indicated by a heading, can contain references to tags set in the supporting files of the project. - -The references are gathered by the indexer and used to generate the Outline View of how the different parts of the novel are connected. -References and tags are also clickable in the view panel, and makes it easy to navigate reference notes while writing. -For setting the targets of references, see the "Supporting Files" section. - -References are set as keyword and a list of corresponding tags. -The valid keywords are listed below. The format of such a line is ``@keyword: value1, [value2] ... [valueN]``. -All keywords allow multiple values. - -* ``@pov``: The point-of-view character for the current section. - The target must be a note tag in the character root folder. -* ``@char``: Other characters in the current section. - The target must be a note tag in the character root folder. - This should not include the point-of-view character. -* ``@plot``: The plot timelines touched by the current section. - The target must be a note tag in the plot root folder. -* ``@time``: The timelines touched by the current section. - The target must be a note tag in the timeline root folder. -* ``@location``: The location the current section takes place in. - The target must be a note tag in the locations root folder. -* ``@object``: Objects present in the current section. - The target must be a note tag in the object root folder. -* ``@entity``: Entities present in the current section. - The target must be a note tag in the entities root folder. -* ``@custom``: Custom references in the current section. - The target must be a note tag in the custom root folder. - -The syntax highlighter will alert the user that only the correct keywords are used, and that the tags referenced exist. -If the index of defined tags is out of date, press :kbd:`F9` to regenerate it, or select :menuselection:`Tools --> Rebuild Index` from the menu. -In general, the index for a file is regenerated when a file is saved, so this shouldn't normally be necessary. - -Novel File Layout -================= - -Files that exist under the Novel type root folder can have a number of layouts set. -See overview below. -These layouts are important when the project is exported, as they indicate how to treat the content in terms of formatting, headings and page breaks. -the layout selected also shows up as flags in the tree view, making it easier to track what kind of files they are. - -* **Title Page**: The title page layout. - The title should be formatted as a heading level one. -* **Book**: In principle, the entire novel can be contained in a single file. - In that case, use the Book layout on this file. - The internal structure is then controlled by the heading levels. -* **Plain Page**: A plain page is just that, - It is not included into content and the heading levels are ignored. -* **Partition**: A partition can be used to split a the novel into parts. - Use a level one heading for this. -* **Chapter**: Signifies the start of a new chapter. - If the text itself is contained in scene files, these files should only contain the title and tag references for characters, plot, etc. - The heading for chapters should be level two. -* **Unnumbered**: Same as Chapter, but when exporting the files and automatic chapter numbering is enabled, this file will not receive a number. -* **Scene**: A scene file. - This file should have a header of level three. - Further sections can have headers of level four. - These will not impact the overall structure, but will allow for setting new characters and plot references in parts of a scene if such granularity is needed. -* **Note**: A generic file that is optionally ignored when the novel is exported. - -.. note:: - The layout granularity is entirely optional. - In principle, you can write the entire novel in a single file with layout "Book". - You can also have a single file per chapter. diff --git a/docs/source/_build/html/_sources/technical.rst.txt b/docs/source/_build/html/_sources/technical.rst.txt deleted file mode 100644 index 9e358a38..00000000 --- a/docs/source/_build/html/_sources/technical.rst.txt +++ /dev/null @@ -1,55 +0,0 @@ -********************* -Technical Information -********************* - -This section contains details of how novelWriter stores and handles the project data. - -How Data is Stored -================== - -All novelWriter files are written with utf-8 encoding. -Since Python automatically converts Unix line endings to Windows line endings on Windows systems, novelWriter does not make any adaptations to the formatting on Windows systems. - -Main Project File ------------------ - -The project itself requires a dedicated folder for storing its files. -The main project file is stored as an XML file with the name ``nwProject.nwx``. -This file contains all the meta data required for the project. -That includes project-specific settings. - -If this file is lost or corrupted, the structure of the project is lost. -It is important to keep this file backed up, either through the built-in backup tool, or your own backup solution. - -.. note:: - The novelWriter project folder is structured so that it can easily be added to a version control system like git. - If so, you may want to add a `.gitignore` file to exclude files with the extensions `.bak` and `.json`. - -The project XML file is suitable for diff tools and version control, although a timesetamp is set in the meta section on line 2 each time the file is saved. - -Project Documents ------------------ - -The project documents are saved in folders starting with ``data_``. -Each document has a file handle taken from the first 13 characters of a SHA256 hash of the system time when the file was first created. -The documents are saved with a folder and filename derived from this hash. -If you wish to find the physical location of a file in the project, you can either look it up in the project XML file, or select :menuselection:`Document --> Show File Details` in the menu when having the document open. - -The reason for this cryptic file naming is to avoid issues with file naming conventions and restrictions on different operating systems, and also to have a file name that does not depend on what the user names the files, or changes it to. -The file meta data in the tree view, except the file label, is only saved in the project XML file. - -Each document file contains a plain text version of the text from the editor. -The file can in principle be edited in any text editor, and is suitable for diffing and version control if so desired. -Just make sure the file remains in utf-8 encoding, otherwise unicode chatracters may become mangled. - -The first line contains some meta data starting with the characters "%%~". -This line is mainly there to restore some information if it is lost from the project file, and the information may be helpful if you do open the file in an external editor as it contains the file label as the last entry. -The line can be deleted without any consequences to the rest of the content of the file. - -The File Saving Process ------------------------ - -When saving the project file, or any of the documents, the data is first saved to a temporary file. -If successful, the old data file is renamed with a `.bak` extension, and the temporary file becomes the new file. -This ensures that the previously saved data is only replaced when the new data has been successfully saved. -The `.bak` file will always contain the previous version of the file, although when auto-save is enabled, they may have the same content. diff --git a/docs/source/_build/html/_static/basic.css b/docs/source/_build/html/_static/basic.css deleted file mode 100644 index 01192852..00000000 --- a/docs/source/_build/html/_static/basic.css +++ /dev/null @@ -1,768 +0,0 @@ -/* - * basic.css - * ~~~~~~~~~ - * - * Sphinx stylesheet -- basic theme. - * - * :copyright: Copyright 2007-2020 by the Sphinx team, see AUTHORS. - * :license: BSD, see LICENSE for details. - * - */ - -/* -- main layout ----------------------------------------------------------- */ - -div.clearer { - clear: both; -} - -/* -- relbar ---------------------------------------------------------------- */ - -div.related { - width: 100%; - font-size: 90%; -} - -div.related h3 { - display: none; -} - -div.related ul { - margin: 0; - padding: 0 0 0 10px; - list-style: none; -} - -div.related li { - display: inline; -} - -div.related li.right { - float: right; - margin-right: 5px; -} - -/* -- sidebar --------------------------------------------------------------- */ - -div.sphinxsidebarwrapper { - padding: 10px 5px 0 10px; -} - -div.sphinxsidebar { - float: left; - width: 230px; - margin-left: -100%; - font-size: 90%; - word-wrap: break-word; - overflow-wrap : break-word; -} - -div.sphinxsidebar ul { - list-style: none; -} - -div.sphinxsidebar ul ul, -div.sphinxsidebar ul.want-points { - margin-left: 20px; - list-style: square; -} - -div.sphinxsidebar ul ul { - margin-top: 0; - margin-bottom: 0; -} - -div.sphinxsidebar form { - margin-top: 10px; -} - -div.sphinxsidebar input { - border: 1px solid #98dbcc; - font-family: sans-serif; - font-size: 1em; -} - -div.sphinxsidebar #searchbox form.search { - overflow: hidden; -} - -div.sphinxsidebar #searchbox input[type="text"] { - float: left; - width: 80%; - padding: 0.25em; - box-sizing: border-box; -} - -div.sphinxsidebar #searchbox input[type="submit"] { - float: left; - width: 20%; - border-left: none; - padding: 0.25em; - box-sizing: border-box; -} - - -img { - border: 0; - max-width: 100%; -} - -/* -- search page ----------------------------------------------------------- */ - -ul.search { - margin: 10px 0 0 20px; - padding: 0; -} - -ul.search li { - padding: 5px 0 5px 20px; - background-image: url(file.png); - background-repeat: no-repeat; - background-position: 0 7px; -} - -ul.search li a { - font-weight: bold; -} - -ul.search li div.context { - color: #888; - margin: 2px 0 0 30px; - text-align: left; -} - -ul.keywordmatches li.goodmatch a { - font-weight: bold; -} - -/* -- index page ------------------------------------------------------------ */ - -table.contentstable { - width: 90%; - margin-left: auto; - margin-right: auto; -} - -table.contentstable p.biglink { - line-height: 150%; -} - -a.biglink { - font-size: 1.3em; -} - -span.linkdescr { - font-style: italic; - padding-top: 5px; - font-size: 90%; -} - -/* -- general index --------------------------------------------------------- */ - -table.indextable { - width: 100%; -} - -table.indextable td { - text-align: left; - vertical-align: top; -} - -table.indextable ul { - margin-top: 0; - margin-bottom: 0; - list-style-type: none; -} - -table.indextable > tbody > tr > td > ul { - padding-left: 0em; -} - -table.indextable tr.pcap { - height: 10px; -} - -table.indextable tr.cap { - margin-top: 10px; - background-color: #f2f2f2; -} - -img.toggler { - margin-right: 3px; - margin-top: 3px; - cursor: pointer; -} - -div.modindex-jumpbox { - border-top: 1px solid #ddd; - border-bottom: 1px solid #ddd; - margin: 1em 0 1em 0; - padding: 0.4em; -} - -div.genindex-jumpbox { - border-top: 1px solid #ddd; - border-bottom: 1px solid #ddd; - margin: 1em 0 1em 0; - padding: 0.4em; -} - -/* -- domain module index --------------------------------------------------- */ - -table.modindextable td { - padding: 2px; - border-collapse: collapse; -} - -/* -- general body styles --------------------------------------------------- */ - -div.body { - min-width: 450px; - max-width: 800px; -} - -div.body p, div.body dd, div.body li, div.body blockquote { - -moz-hyphens: auto; - -ms-hyphens: auto; - -webkit-hyphens: auto; - hyphens: auto; -} - -a.headerlink { - visibility: hidden; -} - -a.brackets:before, -span.brackets > a:before{ - content: "["; -} - -a.brackets:after, -span.brackets > a:after { - content: "]"; -} - -h1:hover > a.headerlink, -h2:hover > a.headerlink, -h3:hover > a.headerlink, -h4:hover > a.headerlink, -h5:hover > a.headerlink, -h6:hover > a.headerlink, -dt:hover > a.headerlink, -caption:hover > a.headerlink, -p.caption:hover > a.headerlink, -div.code-block-caption:hover > a.headerlink { - visibility: visible; -} - -div.body p.caption { - text-align: inherit; -} - -div.body td { - text-align: left; -} - -.first { - margin-top: 0 !important; -} - -p.rubric { - margin-top: 30px; - font-weight: bold; -} - -img.align-left, .figure.align-left, object.align-left { - clear: left; - float: left; - margin-right: 1em; -} - -img.align-right, .figure.align-right, object.align-right { - clear: right; - float: right; - margin-left: 1em; -} - -img.align-center, .figure.align-center, object.align-center { - display: block; - margin-left: auto; - margin-right: auto; -} - -img.align-default, .figure.align-default { - display: block; - margin-left: auto; - margin-right: auto; -} - -.align-left { - text-align: left; -} - -.align-center { - text-align: center; -} - -.align-default { - text-align: center; -} - -.align-right { - text-align: right; -} - -/* -- sidebars -------------------------------------------------------------- */ - -div.sidebar { - margin: 0 0 0.5em 1em; - border: 1px solid #ddb; - padding: 7px 7px 0 7px; - background-color: #ffe; - width: 40%; - float: right; -} - -p.sidebar-title { - font-weight: bold; -} - -/* -- topics ---------------------------------------------------------------- */ - -div.topic { - border: 1px solid #ccc; - padding: 7px 7px 0 7px; - margin: 10px 0 10px 0; -} - -p.topic-title { - font-size: 1.1em; - font-weight: bold; - margin-top: 10px; -} - -/* -- admonitions ----------------------------------------------------------- */ - -div.admonition { - margin-top: 10px; - margin-bottom: 10px; - padding: 7px; -} - -div.admonition dt { - font-weight: bold; -} - -div.admonition dl { - margin-bottom: 0; -} - -p.admonition-title { - margin: 0px 10px 5px 0px; - font-weight: bold; -} - -div.body p.centered { - text-align: center; - margin-top: 25px; -} - -/* -- tables ---------------------------------------------------------------- */ - -table.docutils { - border: 0; - border-collapse: collapse; -} - -table.align-center { - margin-left: auto; - margin-right: auto; -} - -table.align-default { - margin-left: auto; - margin-right: auto; -} - -table caption span.caption-number { - font-style: italic; -} - -table caption span.caption-text { -} - -table.docutils td, table.docutils th { - padding: 1px 8px 1px 5px; - border-top: 0; - border-left: 0; - border-right: 0; - border-bottom: 1px solid #aaa; -} - -table.footnote td, table.footnote th { - border: 0 !important; -} - -th { - text-align: left; - padding-right: 5px; -} - -table.citation { - border-left: solid 1px gray; - margin-left: 1px; -} - -table.citation td { - border-bottom: none; -} - -th > p:first-child, -td > p:first-child { - margin-top: 0px; -} - -th > p:last-child, -td > p:last-child { - margin-bottom: 0px; -} - -/* -- figures --------------------------------------------------------------- */ - -div.figure { - margin: 0.5em; - padding: 0.5em; -} - -div.figure p.caption { - padding: 0.3em; -} - -div.figure p.caption span.caption-number { - font-style: italic; -} - -div.figure p.caption span.caption-text { -} - -/* -- field list styles ----------------------------------------------------- */ - -table.field-list td, table.field-list th { - border: 0 !important; -} - -.field-list ul { - margin: 0; - padding-left: 1em; -} - -.field-list p { - margin: 0; -} - -.field-name { - -moz-hyphens: manual; - -ms-hyphens: manual; - -webkit-hyphens: manual; - hyphens: manual; -} - -/* -- hlist styles ---------------------------------------------------------- */ - -table.hlist td { - vertical-align: top; -} - - -/* -- other body styles ----------------------------------------------------- */ - -ol.arabic { - list-style: decimal; -} - -ol.loweralpha { - list-style: lower-alpha; -} - -ol.upperalpha { - list-style: upper-alpha; -} - -ol.lowerroman { - list-style: lower-roman; -} - -ol.upperroman { - list-style: upper-roman; -} - -li > p:first-child { - margin-top: 0px; -} - -li > p:last-child { - margin-bottom: 0px; -} - -dl.footnote > dt, -dl.citation > dt { - float: left; -} - -dl.footnote > dd, -dl.citation > dd { - margin-bottom: 0em; -} - -dl.footnote > dd:after, -dl.citation > dd:after { - content: ""; - clear: both; -} - -dl.field-list { - display: grid; - grid-template-columns: fit-content(30%) auto; -} - -dl.field-list > dt { - font-weight: bold; - word-break: break-word; - padding-left: 0.5em; - padding-right: 5px; -} - -dl.field-list > dt:after { - content: ":"; -} - -dl.field-list > dd { - padding-left: 0.5em; - margin-top: 0em; - margin-left: 0em; - margin-bottom: 0em; -} - -dl { - margin-bottom: 15px; -} - -dd > p:first-child { - margin-top: 0px; -} - -dd ul, dd table { - margin-bottom: 10px; -} - -dd { - margin-top: 3px; - margin-bottom: 10px; - margin-left: 30px; -} - -dt:target, span.highlighted { - background-color: #fbe54e; -} - -rect.highlighted { - fill: #fbe54e; -} - -dl.glossary dt { - font-weight: bold; - font-size: 1.1em; -} - -.optional { - font-size: 1.3em; -} - -.sig-paren { - font-size: larger; -} - -.versionmodified { - font-style: italic; -} - -.system-message { - background-color: #fda; - padding: 5px; - border: 3px solid red; -} - -.footnote:target { - background-color: #ffa; -} - -.line-block { - display: block; - margin-top: 1em; - margin-bottom: 1em; -} - -.line-block .line-block { - margin-top: 0; - margin-bottom: 0; - margin-left: 1.5em; -} - -.guilabel, .menuselection { - font-family: sans-serif; -} - -.accelerator { - text-decoration: underline; -} - -.classifier { - font-style: oblique; -} - -.classifier:before { - font-style: normal; - margin: 0.5em; - content: ":"; -} - -abbr, acronym { - border-bottom: dotted 1px; - cursor: help; -} - -/* -- code displays --------------------------------------------------------- */ - -pre { - overflow: auto; - overflow-y: hidden; /* fixes display issues on Chrome browsers */ -} - -span.pre { - -moz-hyphens: none; - -ms-hyphens: none; - -webkit-hyphens: none; - hyphens: none; -} - -td.linenos pre { - padding: 5px 0px; - border: 0; - background-color: transparent; - color: #aaa; -} - -table.highlighttable { - margin-left: 0.5em; -} - -table.highlighttable td { - padding: 0 0.5em 0 0.5em; -} - -div.code-block-caption { - padding: 2px 5px; - font-size: small; -} - -div.code-block-caption code { - background-color: transparent; -} - -div.code-block-caption + div > div.highlight > pre { - margin-top: 0; -} - -div.doctest > div.highlight span.gp { /* gp: Generic.Prompt */ - user-select: none; -} - -div.code-block-caption span.caption-number { - padding: 0.1em 0.3em; - font-style: italic; -} - -div.code-block-caption span.caption-text { -} - -div.literal-block-wrapper { - padding: 1em 1em 0; -} - -div.literal-block-wrapper div.highlight { - margin: 0; -} - -code.descname { - background-color: transparent; - font-weight: bold; - font-size: 1.2em; -} - -code.descclassname { - background-color: transparent; -} - -code.xref, a code { - background-color: transparent; - font-weight: bold; -} - -h1 code, h2 code, h3 code, h4 code, h5 code, h6 code { - background-color: transparent; -} - -.viewcode-link { - float: right; -} - -.viewcode-back { - float: right; - font-family: sans-serif; -} - -div.viewcode-block:target { - margin: -1px -10px; - padding: 0 10px; -} - -/* -- math display ---------------------------------------------------------- */ - -img.math { - vertical-align: middle; -} - -div.body div.math p { - text-align: center; -} - -span.eqno { - float: right; -} - -span.eqno a.headerlink { - position: relative; - left: 0px; - z-index: 1; -} - -div.math:hover a.headerlink { - visibility: visible; -} - -/* -- printout stylesheet --------------------------------------------------- */ - -@media print { - div.document, - div.documentwrapper, - div.bodywrapper { - margin: 0 !important; - width: 100%; - } - - div.sphinxsidebar, - div.related, - div.footer, - #top-link { - display: none; - } -} \ No newline at end of file diff --git a/docs/source/_build/html/_static/classic.css b/docs/source/_build/html/_static/classic.css deleted file mode 100644 index b4fd80f2..00000000 --- a/docs/source/_build/html/_static/classic.css +++ /dev/null @@ -1,266 +0,0 @@ -/* - * classic.css_t - * ~~~~~~~~~~~~~ - * - * Sphinx stylesheet -- classic theme. - * - * :copyright: Copyright 2007-2020 by the Sphinx team, see AUTHORS. - * :license: BSD, see LICENSE for details. - * - */ - -@import url("basic.css"); - -/* -- page layout ----------------------------------------------------------- */ - -html { - /* CSS hack for macOS's scrollbar (see #1125) */ - background-color: #FFFFFF; -} - -body { - font-family: sans-serif; - font-size: 100%; - background-color: #11303d; - color: #000; - margin: 0; - padding: 0; -} - -div.document { - background-color: #1c4e63; -} - -div.documentwrapper { - float: left; - width: 100%; -} - -div.bodywrapper { - margin: 0 0 0 230px; -} - -div.body { - background-color: #ffffff; - color: #000000; - padding: 0 20px 30px 20px; -} - -div.footer { - color: #ffffff; - width: 100%; - padding: 9px 0 9px 0; - text-align: center; - font-size: 75%; -} - -div.footer a { - color: #ffffff; - text-decoration: underline; -} - -div.related { - background-color: #133f52; - line-height: 30px; - color: #ffffff; -} - -div.related a { - color: #ffffff; -} - -div.sphinxsidebar { -} - -div.sphinxsidebar h3 { - font-family: 'Trebuchet MS', sans-serif; - color: #ffffff; - font-size: 1.4em; - font-weight: normal; - margin: 0; - padding: 0; -} - -div.sphinxsidebar h3 a { - color: #ffffff; -} - -div.sphinxsidebar h4 { - font-family: 'Trebuchet MS', sans-serif; - color: #ffffff; - font-size: 1.3em; - font-weight: normal; - margin: 5px 0 0 0; - padding: 0; -} - -div.sphinxsidebar p { - color: #ffffff; -} - -div.sphinxsidebar p.topless { - margin: 5px 10px 10px 10px; -} - -div.sphinxsidebar ul { - margin: 10px; - padding: 0; - color: #ffffff; -} - -div.sphinxsidebar a { - color: #98dbcc; -} - -div.sphinxsidebar input { - border: 1px solid #98dbcc; - font-family: sans-serif; - font-size: 1em; -} - - - -/* -- hyperlink styles ------------------------------------------------------ */ - -a { - color: #355f7c; - text-decoration: none; -} - -a:visited { - color: #355f7c; - text-decoration: none; -} - -a:hover { - text-decoration: underline; -} - - - -/* -- body styles ----------------------------------------------------------- */ - -div.body h1, -div.body h2, -div.body h3, -div.body h4, -div.body h5, -div.body h6 { - font-family: 'Trebuchet MS', sans-serif; - background-color: #f2f2f2; - font-weight: normal; - color: #20435c; - border-bottom: 1px solid #ccc; - margin: 20px -20px 10px -20px; - padding: 3px 0 3px 10px; -} - -div.body h1 { margin-top: 0; font-size: 200%; } -div.body h2 { font-size: 160%; } -div.body h3 { font-size: 140%; } -div.body h4 { font-size: 120%; } -div.body h5 { font-size: 110%; } -div.body h6 { font-size: 100%; } - -a.headerlink { - color: #c60f0f; - font-size: 0.8em; - padding: 0 4px 0 4px; - text-decoration: none; -} - -a.headerlink:hover { - background-color: #c60f0f; - color: white; -} - -div.body p, div.body dd, div.body li, div.body blockquote { - text-align: justify; - line-height: 130%; -} - -div.admonition p.admonition-title + p { - display: inline; -} - -div.admonition p { - margin-bottom: 5px; -} - -div.admonition pre { - margin-bottom: 5px; -} - -div.admonition ul, div.admonition ol { - margin-bottom: 5px; -} - -div.note { - background-color: #eee; - border: 1px solid #ccc; -} - -div.seealso { - background-color: #ffc; - border: 1px solid #ff6; -} - -div.topic { - background-color: #eee; -} - -div.warning { - background-color: #ffe4e4; - border: 1px solid #f66; -} - -p.admonition-title { - display: inline; -} - -p.admonition-title:after { - content: ":"; -} - -pre { - padding: 5px; - background-color: #eeffcc; - color: #333333; - line-height: 120%; - border: 1px solid #ac9; - border-left: none; - border-right: none; -} - -code { - background-color: #ecf0f3; - padding: 0 1px 0 1px; - font-size: 0.95em; -} - -th, dl.field-list > dt { - background-color: #ede; -} - -.warning code { - background: #efc2c2; -} - -.note code { - background: #d6d6d6; -} - -.viewcode-back { - font-family: sans-serif; -} - -div.viewcode-block:target { - background-color: #f4debf; - border-top: 1px solid #ac9; - border-bottom: 1px solid #ac9; -} - -div.code-block-caption { - color: #efefef; - background-color: #1c4e63; -} \ No newline at end of file diff --git a/docs/source/_build/html/_static/default.css b/docs/source/_build/html/_static/default.css deleted file mode 100644 index 81b93636..00000000 --- a/docs/source/_build/html/_static/default.css +++ /dev/null @@ -1 +0,0 @@ -@import url("classic.css"); diff --git a/docs/source/_build/html/_static/doctools.js b/docs/source/_build/html/_static/doctools.js deleted file mode 100644 index daccd209..00000000 --- a/docs/source/_build/html/_static/doctools.js +++ /dev/null @@ -1,315 +0,0 @@ -/* - * doctools.js - * ~~~~~~~~~~~ - * - * Sphinx JavaScript utilities for all documentation. - * - * :copyright: Copyright 2007-2020 by the Sphinx team, see AUTHORS. - * :license: BSD, see LICENSE for details. - * - */ - -/** - * select a different prefix for underscore - */ -$u = _.noConflict(); - -/** - * make the code below compatible with browsers without - * an installed firebug like debugger -if (!window.console || !console.firebug) { - var names = ["log", "debug", "info", "warn", "error", "assert", "dir", - "dirxml", "group", "groupEnd", "time", "timeEnd", "count", "trace", - "profile", "profileEnd"]; - window.console = {}; - for (var i = 0; i < names.length; ++i) - window.console[names[i]] = function() {}; -} - */ - -/** - * small helper function to urldecode strings - */ -jQuery.urldecode = function(x) { - return decodeURIComponent(x).replace(/\+/g, ' '); -}; - -/** - * small helper function to urlencode strings - */ -jQuery.urlencode = encodeURIComponent; - -/** - * This function returns the parsed url parameters of the - * current request. Multiple values per key are supported, - * it will always return arrays of strings for the value parts. - */ -jQuery.getQueryParameters = function(s) { - if (typeof s === 'undefined') - s = document.location.search; - var parts = s.substr(s.indexOf('?') + 1).split('&'); - var result = {}; - for (var i = 0; i < parts.length; i++) { - var tmp = parts[i].split('=', 2); - var key = jQuery.urldecode(tmp[0]); - var value = jQuery.urldecode(tmp[1]); - if (key in result) - result[key].push(value); - else - result[key] = [value]; - } - return result; -}; - -/** - * highlight a given string on a jquery object by wrapping it in - * span elements with the given class name. - */ -jQuery.fn.highlightText = function(text, className) { - function highlight(node, addItems) { - if (node.nodeType === 3) { - var val = node.nodeValue; - var pos = val.toLowerCase().indexOf(text); - if (pos >= 0 && - !jQuery(node.parentNode).hasClass(className) && - !jQuery(node.parentNode).hasClass("nohighlight")) { - var span; - var isInSVG = jQuery(node).closest("body, svg, foreignObject").is("svg"); - if (isInSVG) { - span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); - } else { - span = document.createElement("span"); - span.className = className; - } - span.appendChild(document.createTextNode(val.substr(pos, text.length))); - node.parentNode.insertBefore(span, node.parentNode.insertBefore( - document.createTextNode(val.substr(pos + text.length)), - node.nextSibling)); - node.nodeValue = val.substr(0, pos); - if (isInSVG) { - var rect = document.createElementNS("http://www.w3.org/2000/svg", "rect"); - var bbox = node.parentElement.getBBox(); - rect.x.baseVal.value = bbox.x; - rect.y.baseVal.value = bbox.y; - rect.width.baseVal.value = bbox.width; - rect.height.baseVal.value = bbox.height; - rect.setAttribute('class', className); - addItems.push({ - "parent": node.parentNode, - "target": rect}); - } - } - } - else if (!jQuery(node).is("button, select, textarea")) { - jQuery.each(node.childNodes, function() { - highlight(this, addItems); - }); - } - } - var addItems = []; - var result = this.each(function() { - highlight(this, addItems); - }); - for (var i = 0; i < addItems.length; ++i) { - jQuery(addItems[i].parent).before(addItems[i].target); - } - return result; -}; - -/* - * backward compatibility for jQuery.browser - * This will be supported until firefox bug is fixed. - */ -if (!jQuery.browser) { - jQuery.uaMatch = function(ua) { - ua = ua.toLowerCase(); - - var match = /(chrome)[ \/]([\w.]+)/.exec(ua) || - /(webkit)[ \/]([\w.]+)/.exec(ua) || - /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) || - /(msie) ([\w.]+)/.exec(ua) || - ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) || - []; - - return { - browser: match[ 1 ] || "", - version: match[ 2 ] || "0" - }; - }; - jQuery.browser = {}; - jQuery.browser[jQuery.uaMatch(navigator.userAgent).browser] = true; -} - -/** - * Small JavaScript module for the documentation. - */ -var Documentation = { - - init : function() { - this.fixFirefoxAnchorBug(); - this.highlightSearchWords(); - this.initIndexTable(); - if (DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) { - this.initOnKeyListeners(); - } - }, - - /** - * i18n support - */ - TRANSLATIONS : {}, - PLURAL_EXPR : function(n) { return n === 1 ? 0 : 1; }, - LOCALE : 'unknown', - - // gettext and ngettext don't access this so that the functions - // can safely bound to a different name (_ = Documentation.gettext) - gettext : function(string) { - var translated = Documentation.TRANSLATIONS[string]; - if (typeof translated === 'undefined') - return string; - return (typeof translated === 'string') ? translated : translated[0]; - }, - - ngettext : function(singular, plural, n) { - var translated = Documentation.TRANSLATIONS[singular]; - if (typeof translated === 'undefined') - return (n == 1) ? singular : plural; - return translated[Documentation.PLURALEXPR(n)]; - }, - - addTranslations : function(catalog) { - for (var key in catalog.messages) - this.TRANSLATIONS[key] = catalog.messages[key]; - this.PLURAL_EXPR = new Function('n', 'return +(' + catalog.plural_expr + ')'); - this.LOCALE = catalog.locale; - }, - - /** - * add context elements like header anchor links - */ - addContextElements : function() { - $('div[id] > :header:first').each(function() { - $('\u00B6'). - attr('href', '#' + this.id). - attr('title', _('Permalink to this headline')). - appendTo(this); - }); - $('dt[id]').each(function() { - $('\u00B6'). - attr('href', '#' + this.id). - attr('title', _('Permalink to this definition')). - appendTo(this); - }); - }, - - /** - * workaround a firefox stupidity - * see: https://bugzilla.mozilla.org/show_bug.cgi?id=645075 - */ - fixFirefoxAnchorBug : function() { - if (document.location.hash && $.browser.mozilla) - window.setTimeout(function() { - document.location.href += ''; - }, 10); - }, - - /** - * highlight the search words provided in the url in the text - */ - highlightSearchWords : function() { - var params = $.getQueryParameters(); - var terms = (params.highlight) ? params.highlight[0].split(/\s+/) : []; - if (terms.length) { - var body = $('div.body'); - if (!body.length) { - body = $('body'); - } - window.setTimeout(function() { - $.each(terms, function() { - body.highlightText(this.toLowerCase(), 'highlighted'); - }); - }, 10); - $('