From 64e79547b03ef904dfd26791c999df96bce92474 Mon Sep 17 00:00:00 2001 From: sanika1345 <153575361+sanika1345@users.noreply.github.com> Date: Sat, 7 Dec 2024 07:16:52 +0530 Subject: [PATCH 1/5] added Laser Linewidth and Bandwidth Calculator --- .../assets/image.png | Bin 0 -> 64673 bytes .../index.html | 31 ++++++++ .../readme.md | 32 ++++++++ .../script.js | 23 ++++++ .../style.css | 72 ++++++++++++++++++ 5 files changed, 158 insertions(+) create mode 100644 Calculators/Laser-Linewidth-And-Bandwidth-Calculator/assets/image.png create mode 100644 Calculators/Laser-Linewidth-And-Bandwidth-Calculator/index.html create mode 100644 Calculators/Laser-Linewidth-And-Bandwidth-Calculator/readme.md create mode 100644 Calculators/Laser-Linewidth-And-Bandwidth-Calculator/script.js create mode 100644 Calculators/Laser-Linewidth-And-Bandwidth-Calculator/style.css diff --git a/Calculators/Laser-Linewidth-And-Bandwidth-Calculator/assets/image.png b/Calculators/Laser-Linewidth-And-Bandwidth-Calculator/assets/image.png new file mode 100644 index 0000000000000000000000000000000000000000..8f95972719d8b5205f2b587e05d657457a236c04 GIT binary patch literal 64673 zcmeFZWmr`0zb_6VA|Rkr(jt-qBP}@!2ueswr*w{h#84wjH_{OBqvU&xaX(Gua{;E+6jCaaEv zbA=2C2e3nrIy|vHpwq!u$$v9R6yO^ddiTz*hAgt~ZZ{4E0V}E0wLC%TuXs0a zI9orQ4}X3*C~|qZ@p+|b#lWQ$bAt_Y3O-6}-GB|W>23IKTa_NnBAO?poQG0D^-iCi zQgT@e!t?9-PFU96UqS>NUBvB#;jBt6ZM5x9GrRhqug)mumDQ6uNEk!p>5CR2Nfzfp zw&D~~w4intT3t*1SB$A;%VLZ21m5>|I|E%?1=H3&2ImrMJh!uu-r@sxq%J@FoPM%ti)#EpILb`y^@YSI(4oHPJH0G$r|1p} zv1K=;iQ$JI@EVOq8mm~eNEc3&;}+!=*dXP6&!kq~M>=1#4k`Hg*jmUjtVS1R>vtpK zwx#j1n1Q_S4aGv|G$JmRm#nP&Mv;8YvyVSb-EUb+qL8+WR+9-A;pZty4%Sk;_c1T4 zVYv4j#pF@tgNzgDPLtDn0}pg3uL&YM^Q}giS#qqC?}#iEGQN{quD83#pY1ul{ z>gm_%5GQfBxyA&t+p|@_jhlIY{BXVIX->(?2TwB{^$vreQKH@oPL18o<-6Gf^F6O0 zcV=9hdJwkW9}|W=Yvz1!{`uP1)xmgUNa^n&v=r@}El^1l^e>hB1wFRvYG!C5&eCb$pKQAPy_I;u_VxRrj6i`LA=Ge^R zv;3$#f$FTZpairw{L~{6pG)>4Lxs0e+{c+$#DSUQ{le_C=sxb=t%M6-YDh#Gwd$^g zfvz1me(98$413^nfD#fiB7H4rXtVvW?-as(W5)DY$+soJ&gS8hqvILh+;Nb#O^U;4 zDkKl;aAj;^w+@)R=bvXbY7U=f6KcC$xRld*g}FBeM_G?NQh6@p_`r zL9uV?o0dcGMx+(v?V<*u=CG8t2ir0aP*tRC;EcBQW4i5oA6pirMpNCLd^b#NukkX% zwyg+bg_4}RXwJi0Fbi|h%_qVs6Qtz_Q@JM}KwZXl+Q2Orh}dUhrl)7Th5fjg9D}Mz zYB#Ohw(0EV(1RSP2a`IWikQD!{)K)C74x=ls(sn0VJ8ONdnDKw5p?v>NwS~X(xM|T(TOIg6V6y7%a zh3y3j>Z2Z_xq?|TP2E$jkKJA!iP8wQKVlgfPLbp{Q;50o=m@zi1r|bKg+%^Iypy3$slyaw%PBR;`uNC&ZE6lc0#|O(I@ue()t2I)Z0e zBh{mx-tw5I(UvyxFl7FUSHPkMYn)*7TP_4tdEyC2_5+Zb@@VG=9$CRxKLld@qNkWO z)IinhUW}<9@Qnwv%lPmWM1qbAekw8!qPm?E3OLsVjuwPFSQdQw`Pge@B}QY{X>6aU z>onOv{xR5f%isJ96d1CLU|C9@hYrzv^>UX~iQw?sj`&@a(?->L2 z<hQK8*?RX_ zKSgh+dhpj6`JmP03?h-C+!J<7q%ldqWAM!4l3Ty2Tdy{DZdz&y#iCLE+M`cUbj}X> z)VJk*f9e%RaMg2PnN;-{I6^YNj;5|bXe^S$XeD;SDP{vf+Jm9)y;1}ReH6J&TWfNH z2MHA*3RFi}Cym5>I()1bPdvpJbQoZ5+#6ucnM{w-jiQKdi4gra>1$?J9AHBI4p`>WXmi0338LGg#w7T*k{$cYb zk#$QnUsB66v;tKvZbTj5I*n`hGfq9W&WQTLpbQn!?Udl~{K=&zx7SWw(P$;1ewm~+ z4Y8v!w_O8UxW8&qMjDIDIPxR$E2LG$msH=%83GYYD7%J)YvgaDTDPoh&)+5F zPRTW&xTQ?6sq!$w6oL8p)YxofXDpcVS_lOuXsoF7m2dUJ@@nm&vQ`hv}s!fj~YIdMj=p2)+ zMTiadrt}sGEu=7_`95kkx``(!E`~=i#^N7f=G5U8WhA^Q8Z_OHI#=SWOvilhJ@KS7 zGC8Q$(L0y=l*(N9au)Sf^Fvl=A79QbhJ~ktrFfO(jfkFn=1!XAgz?Q78jVo%FAYb$ zNAogGNhy_EQo8}Z-O<)89f_~f86Nb~3*{6=$J}~cVx(EMpW^b8%&+obN&)BY2UMnq zW~ag39Yb8X{#3??MF-Cl_V)2@r(TZKSF7Bho_s(L=gR!FhOY@7wEIjdO=AcRvCR@r zuxHM?wUHij!@r+2In*;Vei}U)$9?R~=o7)I`dPF|1>bn@wUm59m6Ea=yn(uolkwJ3 zY=~$9>q2I_CPJ0?!?y(syxX5bnB7!{zdv zT<6A`dw;^vn3C47dg7$;f;xS=0SKPb`h?g; zLhiUY56R5mgLe>ROkU*u+kzocfw`a&!RVtlx z@3p2AloBceBT@X^=S4sY@7Kd&EZw0)Ow8Qs0?3Y~?q%jQX-76M$hQxIs60kA3?2{R zYJ)X#>|Bx8M$UGQyYC9_dEB z;hEaShn?+VY7CF$6P_Wa#k3afPT&?gz;Ne!~?D$ChRBzZQyAjsb8LSpdDW-aX+qXqwu22-^FB<&FU_jZl=0hA+HgZz zZ5T>@MpZd`j@q9`jmE{V$sPZT$>0W-#fZin+=Pv+L_h%_0BS>9k9O1}J&gqH;M-ZTv@)@CrS$IA`y1hj@3*YMTi_VelExqL_UcmOA2FPSGi}Ac99JrGoB& zlB~NKxb@JR4Q$+3Bbb!ob>;xp*r2W!91#8s)ouUKko!Nj4)ictL;gjgm!gvq%^i(K z?ef(&X?dTRMe;yX#<4Z_dHj%h-jspFcZ2iA^0DaV6~iSIor5nO398D!V8Y37tS|Ss zX!K|iu4<7t^z{wMksKn;Kfu!hYl|6swE!cXbO!7Ji;()TH>aT(RS2@Men19@8C|Qsq%l$whWE9C6v3e8a?8XrNank3790}iG zcXhR8RDY8CeZ0YD_XaYig^tlUhocbCzD%Gj9cK##dQ(SjC7;tUAUqt$_8==IXCkf0 z^LktfLhA}nj09OnHvh^M=nm1tSIGUhx+N-=ad{xszS5M=9G_S9UySCDH3?ajK^eU+ zMkB5_dsllEHOXr#%!zMB=o~4T-!*sZ)*K}+8BOoXHUFB3UbR#58y=YV;X3{hgchw# zv#C;xkYyH$um$dnt}>M7hQfZ`#Fb}-{_~|9{-KxooDPLYaYc+dO69w!zCa%kQvq32Xn-UO6i>;AjQo^-2I+Ad&?c!;(jC`KB$5Ad#NRS3YQzbeX_d_0 zML;FMNfc27U@I}mEXq`Q-GyuP4Pk8}mX%C+oNX?4v3I+|?Ejf2q@x~uQ&mCykj zbnT2Htv}6FA3q;{UAQO;Gag@W2=hd536?2m>;*~AMq>xwH4u{RgRn~RnPCVb0DO^5 zs8tW3MNQDP`Z^Oc5|P;1j&7NRtP$FVT--r5!NGN9Pc^psyvG|o)Wm%y<4=eRjM}ah zr|0HE=}vYrNo1iIiE@5Db?KeuJ0pE0vMI_7ijmKmtFHmt(*vtLL#!!ThoM|44@$U| z{Cq%-S5iRcH*!J4O&U{nK>>5F z^#JwzB!yO09$pSTyS7YS6x;%ogJ0x#(bu_*%qx!a>74Z!XjsAbmP5*S(^NP!)g=WK zB#2n;B|9fLLsa!Or)_x)L;_h~_PahS$)Hc=r$iW$@=w#J-ykr*VH@3CnLpU>!{~{{ zy<(Zci63)0q{PLg-eWs51D0HlEHsd^k!cO3dY+^m29uyMaZ=&3nnc3!l`~ZDK_l?;abr+TxWMe;*c{$rqV>fu6ov z*a5IeJ&&)?jvRa$6B>3-!pA%_;ufnMi<+{tlp6u;2tENeoVAU+pwj&@_yk}Fd>ML^ z(*TIF)_{lhLGuD9CwiqhU$6dHgkX~OS~GHN{zbh0p&{&Rj%5?m)Ddh311E^Dj+;El zgL_h0%8L@LBn_fIJr^m(7UJ46z;o8<8S6*DhT9xTTx=w) zj27No>_XQhA4sn6p&xK>g}6N~VJbgu7(SUsI{-9xiQo-ZD;jdrkh}32U8TsJ9C{kJR%%AjcyIZ5<1iE;X$OHkZ;bW5QW0#b%WYe) zYriHiI86GOZFwQ5yg79+fCL6^s%+dt8cRlOjWzYgEiM`q2nOK;kONT zlFQ8z@-pv?yGQeSySdNj_$DYf*S=B3JClk3{`9lmoFuERP=0ykH7;}WtExrRW8BRv z24gZA_CB?@ae|ki9E|aN)ZJd%Z*QS<3Hoh)KIBOF`02Tg3G!}{x8WZWb>%5=*m&Z; zOh>1bzE_pgHp)uLk6_ggwr>Aybq|lZ3Tr`H=Nw81vl6$Y$s3yy#W|AhXnakSNJGRd zb8BdfT5WeYgvz&{o4iQTpcR&X*(e+AUEBZY`I2r;&e_Tbt&n{w5LzLISLE$BLfsMr=7osE3MJX~nb+|@mu3~vJmX&<(L?5`dSBPB%>W;(mYh`xx`@-h- zW~#U^TuKFe-+UP(i?7^H4AfvioM0-o5Qcx*pz+|%`M_{s-~pJS+wzhc*__#aBoTd! zl6XK|ait25msRdQBwNH0GpI3S zU}IrQwCOcP`Q4k@?4eK0N<6nc9xcRdRA4FSt73PsHKm1y zk8?WKER4Hnqbix&F=M9~sf~G*Ym!{>`kGWITwZneURbmIkLa1(2#%9moGShiC~pPA z`1NG91vL)S4ZfBa&;6&fhP7OtH}i29yegHk#b2I`EATjUjviY11$d=qs_!@BpSrRE z$e)eHJqG8N?F(L49e|+}`7+rGYdF#MczAsrPk;5z;j8x!j(9QBsT^9;tW++H0&6=W z+jl)iDnaPv>5GVB=$DnXe1Hmz-26OK&J##Bmg=5;lIj-*m~t=atpCBm82Lsl_Zfml zm-hqMTRe`JLl1Y=UuK|mm=*%Cqo4W+`plRB>XcJ<(UjZShZ~vuV1NM-Wjy|-;y2(u zhzVyN61G)F*bHLy6rV@AD&j9x|BHq^clT-@Z?P7fw*|zin;B%clzR7;11*Zvrh8yb z@o>VNXQrTEzdpZ`o-*Qa|Rmgb7VxuY^ z=ka|6uv-6wL*Ypxk|tUkvE0jR#G{o(xlT6lJG|xEkEC8oKOZ5^-%Fc#!{E>VdGGd^ ztONIyv@FZGBstCXWCni91L+4fs0vQqU&|7wv>F+2Ts+`JElcy>k=$0vDOpl3AV&>} zd)w^fF6xTyGLi-9nN;@!I{L2Nx0kGQEC>vzu8%xRGJ0b1Nvm9}RHovD>g>*Pas+9f^3;VGo|e1M$`ZDS|Kt4qyYfveo3t&-@>w1?g@ zGYSVZz?=HP8M^sO$&>7|BV=mW;0yKR$6#ozh<_QoOr~ z^XINW>XJw`C*=uX_0rRr;J1us}gK^dqUE;gf^V42+IrzgWuG$MJB?g*+AdzwZh zWcY3?2g^!?)642uBFA<`fS^pKh9Okm(C92-F5O}m?(%Ur8?V$iKkonM*c4!P#o-BY z-@QaT_nq-#EMt#9n5kbcc>;(@Bvwq`(|a27COvdT;Q_IR$y{IQ+ZAG(_iJH-W#*=I z-#zHE)765)-t%LH0Il{X%k)mEpfT$wRU6Wt_DC$^rhthj7VLNMc=@>e-zK(uTOC!jr5(Hrn~s? z`;-C%eyN>FybGn)-IQDpoK5hM>xp^>y=O0h(oo3PM1o1(ZL zVfviXg+cuRM^~;=M^)ncaN!{KHe8zbwB}{pg#rNbGh%UXBO2{`k!Yc9|02TK8 z{v*(V&pRL4L^m*Z!$87!qHOx{KROsxMh}O5QsF@s+g?&;HH;j~$Hg;TJNeclr2uxk zY61M3Q?c&<#^EL~(hpC7J)mpuHTBv)uGy6M$HX{trHWAV{oHN_x#;ZX$LWI@5Iaj7Cvij9DJ`>T<;Et|86;dn{)jqh%p${*)igORj7%Fek zkH3ecG-+>I!>!VTn{%odXCxR3MJQt0U;8zG+by`Qkb+J6n{qeq#tp?M=Cj$F^-$fT zt=LZPe%!r@4QccWB%_pj-hog<6G>NcQrj?^zgWpoF6N?rqZ9|pUQVeCx17MqNwIqO z7}uX4+^D(B$!#Qj*L0)7RZ+;i>5J=9*FI2WsChS5k+a|vFK|y2;=&!1$)70b*Aea8 zm1fHX>^NW7dsP~M^nMD8M0$@kB|PLISuOXJI?DKJ*nnLS}X@Vo6s_MN>^O7_$%47v1aH@_{%5X5~8V+GXzw(|%WwyC? zmMwTl#nVTp+($QfZJme3+I0Op!G?4~0iA(PI-T+K+#bOE8)_2%GOARKbru1*usU8R zLBR zHvnCuGvPC{DYo(yAau`0efNP?(9$`vh2Iz=aWEA&_y$>zXiFJIY38rpwg+M3`s!Wp zW(KF?$X3&Y1E#_)Rf+Yzg}Spt?y$?Wjc_K0*9S5=#h9FV%`TUVmf|rN>c6beWiqdN z=Iq}vGbe{hM+jnS#YxEk=U5s&_~B#|^<~AOuDrAkNZ8w z9F{wscv9@Xo8@-q$%Up=Zw@5UkyQSzfRFf?D2|{e7S*5pk$rr*iFCn&sqKmMvC`Hg zfSBCHib?VzE`?8MO+jrv-J~lRBR70O19ar~ zJbHI!SvgI6XCv|YN0i;rT-p_8r9sY*7~4h<-WrlI!Bd|nlehn9Oq?4lO-L*)A)ivT zdPtBA(2^gw`2mcW(uAj3Vcox+XSA9K%iY824~t_`k(@e~Txot$3#eO~P2I0{)I^qQ z+XWPSWqZj@7e(Rf(m9@%aUK*3lb+#a8n-iR^Q*@U)FD7!Cut*E?}@0e1y_1Ay?M2$ z1Py8Tozc5q7HS_uFcSN}>q0?kWsR+h3{(I^DVzhWK+Rb>exy-eOFtf|K;*@M=@6eP;v|8r-t6efm0S6gZih2hE>y+Jec_V0Pbr^_*&(??A}G+KTLIHo}2Z&b4D zkL_@cw&YhA_no=Klcs^m#<$_o$~I`W9TlT)YKIlHZ|)skgpc*IcQXm7+*6Oc#FuG! zAbN&t8*Re%Ty1eVX*ig4_ny@R?o`MR6gE{42U7LJ?r_eh{6A;C5;4D+jg*w9+~CL3 zVDo3yF$;=(h)7C{$duui-QCwSv_OTro&ybqL64_S?OAbd_MlZI{)*38R+Pz-#!l}m zLQk*MY!=!WOtS|PZ&F68#H$YPUn!J82^kV(hL<+U3aQa4*4`Wnc16fuleP>3LYnUi zTTpuiDsR!KmQD(eAN0t)cOd8^I7^>yZf-teHf)9>Dj3t#o;G@WS5>9ZDj)y3>24)1 zp+2HSzmWM)mquHarhu|Il817qDD76JXR2AqjrfL7gxrDq;wzdMV8EaYX&eSRSI4rsne zb%vosdcCJpA{EE+7408u?2V1&%m$r#W0I&B0S&+a*a?(f=z^uUqxX{$KkRml)0D*j zU6biBQk-PxZ=2~W9okajH#M-n~9>Gl^U}Lv0>*r5rH(xnYilY;gsau!p ztaQ&%K&HC-wup(#;s=N%Pb?jMWKojd_?H#R1)FRmq4@(d!qZ3Ixl?sNoILKba8aeW zC-hr^34|ey0j|vhi%HnoUJE-)3^v=~)$@|tFj*&gV{b&YC!vF(+H2FtMy_4Bj{Z=_@_SIx z=VLAOZ-x6Kt%Z(`(5(CDF+p7zwi+>Zzo4#~J%|Tu*XNjGz2AkVB4KOtd|@D@##)^Y zSTo2TNwK--{hbW~?FWj3N&sTZ19(;WeW;)!P9oKAur5$*dq+J8Ukk+c9~0$^0ix=E zlDn~qj~9}-y^Q*q|A9IvfktGTA#20APU#;4XVY3XQ9A#hc1KzJH5=D?rDyK{OX=bT zpbY=j_L!Eq`XQG>jD2tGx$vyZzm`L^8NoLHw|jwFw?|l~>)W$KPL|@;lM=lmEfp|U zJeVdpr`)&;lb)zCq>XrKj}Y2Y!51flR|Y^XYrSPEBc;9qQ>%=PdbHn752~#{Urkla+j9P&!Y0VwH+81^ zH<$`VcGgb}$w;3Wwaz;?oua>&?`up;lo*?cHc*rbIJP6brDG37YFgArX2oZj|5~7W z5UHL$ojcZY!f~q|o9VSSgCDhvBe^C9HTkU{b1Kx(i>hI2n?MQ52r3gW3&d{6Q z2vQjF)+6s+q@#miE6KwG>Uj){d_3p-(z~Z4 zI3@y!E9ZzQvGXnpZ2w~`%AjBG6<*4Ru46T93FBWa4i9M8y#Gy1NYHM3#0XgQ=xoi@ z{iJlwsP6J`O*k(-z0+ShQ`P#par3s~Nc_ab)V`letIO%-`PdAbk<2F{rVTI`v!_CF z5uaH)@As?Afjs%;BM7N~LxHDG`hMqwCn0*44R@ST@&^TY?BRb(9RkViHF$0N6uCIm zB<|wp=_60cygT2NiF=Fd0iViI9Z=eIm_1^5iGn3d9W1w|MJ{kHaJ(>**N6$YqbNYV zWcyWkEScx4kW(ziCpCq4)qQ8NOqXa=hu(6(nl^ajlO)m^w_UJ{-al;mkN0AmvP#* zcdD0imrB}CF|R91b|5O#Sz&h2ren!A)PQ63A2PVRomT(Yo1ii1>{%u#`x)nP!-mzc zQ50^QN!cAU|F+=~S;S=Q=KGD*EA1><{OVGK(aT9qT|z~w@#(Gx&kXi6U;-bhU|H7# zq%)hZ!}iW$-Y9`%UeLI%_uU`OF)w>l=UXN+y(xWVT@PWL%JX z+fRkK(KahhRu{ULA0k(c2zICW&Pro&p8m6ul!HAN=3FPQa`d^aStC!CgMw&F5rw=! zj-O;r>_(;&Sm^xwET>cOtWH8~J&T`BVH_8vlU-|K2om;nx%MY*n1BOp*fl5~* z{~`aimzjd=5`_2F*AuT>@as2O{9@K_NPqo_R!du?;8&qVrVdl&4u#3!#TXq*O+{g6 zGsb4kD=VE3e<5xqIYmP_fN{-cq{vw6y~j6lCbtRLJ5pebD5k3z-z37m#U`eGQB~sX zoKB;%E*;WR6@}P|+bfDvkNWfDCrh44HNUf!EmUC3XOD4fiCf4aE0ng;lpYkwUXmcm zR9gEe$^YFG4#kns!1b}2$;StJi@$RzjZg!=3Z9n>nt&xB5k+pS(0E$o&bVM01bnbq z_^<7@5W4d57u-6*TM{fw-?-O3N)P_?da#pG&5rlV6QVNy?uH%8;5UrB!G9hZ@utnV z_IuCm{TxQhvV7}yJM~ZLXdT+oBxD@#{TGePYqq}^j>>!$nfC;<vHkJvAOh~dQn&{eNcnn~Flx7BZy9CD1~C2oIskkQS-)hv558}~M!weXe; zuHYf})1!*T91vGX4h7j4FXywjs%%vq`j*WIi40}QGA%LIqqS&!=kx-agI;-`mfNqg zJw6C&-itYLHoTsdAR3k^54QzQJanLATYjz4#1+l`{&Yxh575MTj9BHTUh=VEO_>?tIWbjmZa9E!X3_ zYs~YP=+mw7gu0D%HTi=9uazO|)|TPIdZK?kLh9!=HS9IT(vAo5#*x*td)qAru__z` zc|@Z%X{hT`M65MRa&li{Y6P`puRbW2ypjo=Nikm^+06-W4uA5JBSK8&N=V!(t8{Wd z6$EH{z4wG(AJbf7_k4a#Av!Jb``Y2=107=F;%DnA;Rn=EdELku4&=DoWI|=&#Q*BD z0%E;?X^5s5RJz~Aj_{jDJ$erU?8r3Jrp*&%9>>LfIv*9<3o&F^}jm6*8N7kC&i zhhHC?p;t7|?`Ksu;k!Rr1oSNlXm?X63Q!WyV#Qk8eh-1F<3NB-NLO%yHruJTY#n}R zc$RL_rvIQQI~U8c4gUAZD(z{hXed>8jH%2Zt5!2TC6RfTj;2Hw;FSj1?s;gY&z8wz z8dJBlfq@Pny>i#mzJj5(L|k1m7IM5+Ay3F;C!b7rClD(U25aWC_X zdIa8s>_3N(44wQ^IuEE(7W%*MmQ}aSmBj7Oc^-p*JkK*N8t@yz7UgTnU?3qSV$%Rej-W+cDojK<=o!{oSozXf;__o6l{~j!{4&l z*%Sj;)bYA14OAq1M)MXGX}oCO7pl^_reD3yd7$XepUi{g2Ojdl-p#@Sj#THXqo^NP zEd2iDzFjTOxP>P&Jrx{#v za;!@d0t$m8H+$odQ!IG@#?&Gymxbnp-twO#{W+ zzc%K(%IhA{;}WNV*axk;pl4_29OMxW6f(eMA&$fpG*7FvrU*Z}ywH^E9U;o7uqvze zxr^qGW@!sdQ!Mrr<)Y}0tjPC}#TE$0mUigu26nE>wKdd~YvZ=OgZcD) zgB*rb!KUj^V$?J}L-ratan%$xSyq6JT{m>wtV_{Y^R^-<55tytSUg1I)E_(CvxorWGQ!m=u-hccK4p4F7k>us(TXk?Hby-=AH=4}Vu#4Fv5` z%ng#-&s_R2zI7Ba%!W9pL;kw9jZrxtRZ%v+Je^3!o1eS9I2tkb+Nv3ON^RKgn=qp( z%)V0o&Y_HDrb}%Xa}hBt)q>g>P`s4?L_U|oOIR*>&%&}e|3Q_0Ke>Aq*pyuH2CE*-W1 zX&HV>w>1BM-kcdf2}QMJrpBi4hFdA^`0RM~v=VXVZ+y%v)n~FG1e(#QSWmty{vLpU<}-;E&Li@K(KvYG0$O|i?dTu?xMVRyrB9V;S;Gpg!>vq) zo$1FO6U&V)8;zEj>UA$47wQQ;!&rx{r%ylEq=X4@$pbs@e;vSVh?C2^B{y^tz3kio z>pov^`f0lByCMMZnKNnr-UUhto~d&l%5!)6m4=dFhoDW#ye40;m&cU1f`8$GRhtc? z94@*pkD1UH$K-y5jL=Q;Lz2q5?`k(?lIC7;|3rZ=q3O?d-0B+nP-9-{yR+3ZMmgHe z>o3RdY_=gTHW4eamMV3PKemp~-hw0S5%0z^69I zm^vq(>GD1H>C``d#F&;*o{#atou4}$uiHy{E#1yHUk4;FzgkUaAbZ*dPWUMAZW%`Y zkG`jC{m?1&CY#*BjI=<0Zr9C0@*$p%9$9(RA-}trtevYc8 zD~XPpYJ+G7x}VMT5tb@fK@R3M`NdA#MD;6Wm4Q7Sepu(xeG&HxA!&}-*txveK^S?t z&9c$srMq{xh+KG?&p|e4FvugR?J&btk9kbQj=28>QLROpDd;S@%}DX^bgyil%x6`m z$-}w}vd5m4`q`XhLTK{V?-btYA5(a16vcmBch#X0`YoibGI^vl{hyMB(NoEuS^AT| zyBr{{B#-(i@yl(~9d_jIlJ@cK<`ukUOv?`D5gBr@X6|&$+{AN%99};ZVyAB^epni4 zcs*(J>Y_^MU5Q9M>Z_|TBowtwUVSd-b%~jSJJf&q_Phrf;nB{*_{4MG-*gKFhxuO6 zUk#4!XWK)hUdDd?@XM#;=xUewx1&4MDvwNC_TtM%HxE6r-z^Fk6FAXMH+L-8;`mF? zrfw^MeB*rE9o%_w52rF#aw!V)mCW~b%NL<3bR=r3h3WX>C&u4l@xW$I+#7tp@x`3_ zt;dVq)4*TT(9;n(ato|3jzl(#CI7Ry8`TTO!=t6c5=-(I&c_48ODeU8?1Y!8$T>>W zuU&-p_q~X{p8M{0;YS-@mE3lUT6})Jb!_32|Dth?V7J zj>_e}iV7Gl02XN8&jAg%X12iWKsDnAmz#fA}-JLC1C0jX7Y4;E=c- zC9#R%KW>?_dow0nQQ~@N^U1Jlj=sHy%DDDg-#rNyYAa2T{H{mYpAveyuRp3x=nM@u z38<033j~x&N2I5KFElhDyL;09S`;( z`fjhRVMXtM%@}!od%LM}ySD!5#Y2uQ_GuAGLPlw~dq=S8UmeKMT6gYW3Br59m-FDW zAPK_xhBnBwV(ZX??7NolV$|H2xO3sHBa%5{@2HqA{mpLh#cq_q^Kt`+p87?LTV)M-#Yg{(C6x<*gVUdRhWV3L zoOivne@3q}m_4AUmeMbeID?yKsQ9dF+&7{-9B(%KV$TH|vVfQPZB}uWOz#kQW18E1 z=M6*CJFA&r0S&n-6$oxp{;pTSOvW!ly9)q8Wk!e3t8J|4Mtkxo|Qa?)xCVM*h#hx@FZ zKZsQJ_o*bSntu;V8o7|#0jIu=O}cEXY2MlbyS$Bku_NQb=0$pbWVTj?bMugpnh$=q z#4c3T;Mo;CobElZeZKY$c3Eczg*HvvfSYqPDsAdwIH!WU*uM-O) z{mMHgVMIUt`5yH|`LbME5@GzsLA9`4KjTw@u=BvM#oDm4Avm|vR-@3(+7T(^RjbQl zXC_((mcubAJU^c=M>Zp5kQ94fgGbfys0!g3U(DC3m*2dPALhawD_Xa9A3xH?&EP7jcJLExv_MXDg~Hr<2j$dq=tMabW#W1)BTK=Gtbw zuCc$uk{-XNGpS0oAGUnPMe|!W4h0|H0#u_48&=^FkWc7&PtkIR{R%foQ=89ZTnzu9 z$Hv0)vs;h$0dU1}Mn7z0n*U(!SiRGz6DyKGvir#@oZtRiGd^jS@W57W z&7PDJCCUlI&JTj1Fag?7RA@;-!kvlRy%gq$OPGD4!dnGg$rbcT$}BS@%d4~@giO}V zm8Wt;#V_5YQEBA=iTC+iBLl7`qSAO}NQ7dY*d0_&cUO06#Zt3b{N=WW+XTYlki^~g zY>4T6=>4WP$5p42F`=n(Bh63xMGcR#o!cK}ztO!LSU~VpPHl~~7nOTemPaiji5QUj zoS&l@Kt5{ExpO>lkg#sN0}tJq31%&bZ49HoB9{@#uLf}9P8TT${5d|@1Z2%gci@~u9) z$mTtx$rCvgML=IjMdn;83%+ps&J#g->no96 z)MM;>9g@~SAI_m|7Xmp5-@~f5xo^93MvF_~?tH&e8_)AJqc1^ub@2mHqI^e<$b-@| zxQHPje44ITg4;6gcEVBu&THI_&iJNU=37a+0zwkOfyBJ^kE=4HpN-pF6xMI^CwzkH zrVXh|Xxl5-wAUx7=H9JhpUcx$jd=F5=jy@z;lV`prhTk`tk4a$j7!U7j^k{ulD`HV zxl8)%WiQ{Z=Oeo4h#WZ6xSfXEFTVuO_3n=QV2lmwz7f(=Q{BASu=S#DTiM&Ow|}r1 z^|61Kw7c-~#kBcO)6aJ}JK;%ZFc#kqN^NVcr6^_!+m3&hOXuQqfri6N0rBi=c7nL} zQ{~FWb!swgLsv?(%Q>$djSF~k>F1=~J1{n!CV5!4{{!8Yv zMQeXHghLan^6if4g#BYHf0W@;<67Rs05*_*M4g z?peVVSmiHRtj)Pwm$V|*O|C3y&VN>?<>Dl_40w%em5*;|kO8LmuwooS znJ`!{ie<;gX#x{T)JI2iR+ z=$XbaYbL1k@g&He4C8&WoG4It-+K@b?)L@G%iFxKK9GQL3zvFEOBB&wBV5)Xt@&w% z{L}woOar_*McW`F*Xg_ii^XGNmuF}+WbK&x+TmgACH3{=#2ct|ukHQlAPIj)YT8xw zsytZivhO{sB*4oN>^9+Fbs9M-YolOPp|OIeCaIHdjbtpQ{ZQ1$uE|4~P1-;d%rPV^ zNRhX}A9~h+XQsBP!f)Ny5+J>y@XvsJtz%_|%RL;CU|S1VdN~IC(|rAs{w-K{vh~#$ z$Z0mY@QW|26BnGgmxZ`YZvLAsw~dnKE|%M#O>INpGZsUZc9p*h-D{y-`SCWQ z2TD75nzMEHp342SM|>Y2Nhx=gfu%myUv#b=yLRQxL8oViSbnpR?;VL!wqnbp*&`MD zpPYM#)>b*?bIs&OfO8Bgcsk9`11r5#`^%n-&T*t---`2B=`ak%hwT%0ql?x4dhf~q z%K-jg2JpWbMY&3$qirPutM4t!Ay3~)4Jti!zQKw4j=p(>YhLSNd1r;nv;JkAys}`H zPdh;RVhOP+(AR&iz3@8$ldZITpwZ!)SaE-#Zy`Kzq2ZNXA!}#Neg}5~vO=$T-*%?wtV+2x?LTF$h+Dw*P>E!^*$X_FKH$Wg~ZWf@V?MkV_)lG0+SC`Fb?D*Mhb zCfSlLsq7{#c1c3nM)sYIos50#jAab7ecvC>b*^(=*ZsY(`#!mTzw7b6@4rrua~{q4 zEbq_z{d&Egn?##ykT=g|uX}xFBgG-dQ|47Ah1!~PH4=qdk@X*3$Gz8^NX6F+mVd2B zezySF!;}2*4$96j7rbx))x7{@6=St^Rejq(FnZp^X;=S;_El@3{%h0uc;8&o+8fdQ zJTnnJRbAn#yl4}3@*Q#Px=uL0%n!_@ar}#~jSrKJK91TX(w8vC5b;?}4 zQE^wLsX)D#l_`vPBnDRp=kY8UD;QtM4?vJVH!Rz~YL9bhZJJF&hW_Be4LKR{8WKH* za)Q6LwIi4@#x042txnCYeHh>CqXDjX`>b*=!f%bZu)f(vby*8MXd9W{%YR!61;8CqZT z%Q7^3?tnYCb6jDNbKg-}f01tPPHcMS)}`L@D~d-Aul;!1@%~~F+CN@wd`rCLNyUm3 zh4Hg+!If}T7&!PT#t`+U`H|L zm{P;xD_jC}`94C(cqp9|Dl6_OPg^pgI|)dK48f^M^m41>NrPDvc}>GeuBNi34x=Xg zAh-*9BYu}iO?IQ4#cH{T(y5|_xY<}k;^zpb<&IfK;trg!2WHNLNZd#EnT5r3d7y0U z0`+wqKwpJ6gY_gLIev5yc@|cNDwc^$nJ7h!bZ)38#@Z=OpKvc2>AsX^WS|He3k+mX z=#cKUWfZ^p!#Yy}gGSRS_=V-YnXoC|c=zP5@DX(}bL*a<$oHr~M z>JPYM--PMwI@jBHF2p1?A!i)0nbht~jVAZLg-AFk>@VH<>M8u!RN93W8^ zT4ol~43~})%l0ZXDGo5~Y7&kYX2G4~3*{G{mth?$-C9}*;S}M^oIG%vlW{34SI-wb zqkw~;pY3(uPZ@oltFweIb94jSa}=?Owhw)7icz!N&^3gBRFmIkVmW)e3BfI{i5gb( ze2<9BM2Hn3kXamGzm_Z*H}Qi3^6s6hCh%tFOit`EL&CEnOqrARt_=lh<-a+06!hJA zS3K8#n%j(0v=?*3{qETcl~68GpFDhroBm!A21>gx=A7wv%}B#rC0Qqj^0X~^%59uv zSWmEGmd-k>NAk>GyyH6Hd;BT2qUnVtdu-={*#46^=u^Yv8F&~;4XmZb0|%esF4)kaNi%-+3EgQFGYP=_ z1GuFU)?qA~b_VBEf_Aq}m@`Ka%~$T_YuzP_BYp(BelE2s@!!=)C<)jlBJVLvU@uAh z%(j`*HK1QSqMryhbf8tgj;b=uIbVvi+T*M^J`M-OswpQBLs2lDsbKmUC&IM3L|y{BhhTCGqc5W_Q+ zp&z@Oa2L)Z;x=q`oZDh2&%vFZ$I1%0rx~nyj*~QYV0;HN5QVRTxwa`4KIPyvF^rk5 z5cfPqw+=>1-i5ZYGIxll@S#i3m2DqNysD?RlY7;M{LtN!m;8A8F50%9DD7BS_L%E< z2$w)9>yKG+A`^8kwm+MT7~3D2r92?PNZK@TbUhyP|SU^UhWOHg7D&8fNdY>Zc zwu3XQDE5+N)+SD$rv3dwEYvJaXWlHOah8w9+TW_JHDWF`^^H)vyuZrDU%uB%puFI+ za~M-F5sL~Xn1|gcbqL~8Ant>TOsn}j#8nfz?cHFj1EJ_03NEg}UCZ6Xq0Jnwj~fq` zR^W4aK1(~VxTTl@uji2T4_QJ&x9(1JvNZ6VKCF!n5jUGM z+YY$et!}$6zHb%hTx%HkzKu2TJSgvd{`KhhTi3A#$x)Ed)*fh^<{9Z*%a%kEd2M7)@ndF4i#=LM_ea~Irtg4bjSV!V;8sgAO-i({%>q-3@jTqSap_eZ zTa(i3C-&T9`^u6b^W*mKVwR~mn}&Z-i2o{?&_!uM&=*yA0AH*t*y2_$ybkf4_>^?p zXvf4iYy?85@a6~3%u8X2M(;BzLud5>Z)pvH3b4q?sNo+xB~-bOs&Fv>1fZxk=$VN) zHp*VxcSP$LXtj!3h+g&C$|2i%?ZvVtMv|`z%2&P}#&I^k9C<^f+*0J(<8fL`m@ zaE&zvqs~i>W7_AFBXZYTBfwx>h(4xz{*ltzZAV*F2HYK{)@AOV+GTr{T)WJ5ny5oK|a5}sVS{dBE!=Q z@(;_~pAy(f)jwRHteC&MZFuF=0ijz7A-bVk7hakljlExD7`1dhS@q+gbBFMAs=RAn z#xKr7UGUD}2e7QEh?RS54eQBYThZyuQOqS0dkk}q@186p#4*%&VGu(K6PF-i!U?2S zt3;x5Y>R@n!~allZk@ooq2xAb8vv7wf6ZJP{P_Q3#Q*PM#L<&$eXllrNgE6G-l>Jd zhs1w?!9o$#11kZDVc}NykQb_qx9`nI?s%>*5cfBl)%RxLFLEM)ZGmHQ;#*6-sG}-H zUwluMRzrHG{?Cb*AecnlmlO)1=Th$20!E@+O48p?AV z_FPm$y<`%x-aTnLYb}T;zw5N2d+O8TI4~MtOqJj~ETLABJB^&X%&-te&*J`Z%MKz_ z1+hy^?i2DQPhme(o0Lkz&Ch<5`=_3+nHPWkNAuz@4%?!hnTs>;vtrlsV?4ceO)z5) zz^?S5=q=Uu>V4VG+^}sY#_^sr`1>MP#{dO4+HmnL4?%T%F{wg)RGv%AV~{K9ig?jW zk=bQX(qp0F$2jQg+847zkwHTjJ_j<@d!0g&{882668C!6<}JA>Fr|?)gxkLOy?4#nV$*(r*WMW!@>laSk$gCA@twa`>-=xf-=!ueVcAr#<#HiW}9o1a@v0!FqXzF;PQ zG7*|hU>ODGHsua!9g*n*Q=Kx{C={X_Q`S$O1~6wU3JY7?@%4;7-i(?8_@0Ig#Up z%t2?)iA*{91ny=rJ+RQTZ8pAN=q{GZ;#;`E6Ul_;*MQ?^L@MPWnKM=^y_@5peTVnU z?{wwagcAEonXl^#p^-E;%`%WE-|+Eu971p5+i0pLXrl*C6DdiWNoY@mr#S=KTlu^E zHb5d(S{?vILEKamYo}CS*e$%oHtJX?%KK|mt8Sx;goOW7d{Qpb)*d1OU|i3B5+C4a zj3p6f)X0sDKF);>pQh15w%_MMTnbGQ-PriVsH+cd^BAorkH6Fo)vU4(t39HY^e%}n zDuiES(&4CDNFuxRVUsRDxjIs}PUpBe><^~NQxr3MYS#fb*|3iXo3by&b$CpautHWC ze}LYb8_tm&DmbXk90Z{cE(4nen)bQkOK69x4ws&9h8iz*+=3$R9k_~|ukE9fx=)|A zdOX>!^WJwb>XAa_ceW48r)NLg8>zk4aeKQz?9qds!`hq^N}~`pV+~y)3DmjeuB)HQ z_RlJu?7kKm!6P=YubQd$(O>-|T1DoH{2d?9H4pk4HQ^w2A+OxKWa5?_TG@k%xwCb$v?MD znL4hkLnd`_pBa=qa=ppz`C%u8ixz+Fg#H}ggIs~hjdW-?%B-%oDaGWLVCZx(mX|=T z)ETv_gFF8D#i{#Yk_MP&H#%1CGkeJWZ*DkytL{_cU8}PFc_DwMTXO_`alA;XSjKw`X}tD{F93$* zJIRAj;BrM>3=Ev>sNn%R@gm*TgQ zx<#Go&e3-NA$g|AY}8VvTWdI^^3+?6Pc~QglKJ44IQshm2hd8vjV6La5U3y^5`D>u z2tydWe3gTLX7x`UJwIpPxdu6UZs=F@w$WVR{oE|?aPRWvpLvJbfV2AL#B8qal=16Sh*VmWU$-<06$- ze}uLSjb5)Fctkj1<5uT58f89_4CW>I<6v0y@mtVuPHAcXb*HpHkTxmO=R$$%B@yD8 zWAi-f@|tl2>@Jawa+B%f6KR==YJ8wYmuB7=I_7AMC}n(5Y57~zBB=@5|6Z^&!VqzUUd{>K z;f;+VMEh`k-gOlny1aI)VgNyd8Vz-cxB5WHg@xob<6LNx59r#!jf$+DmitmV&fmW6 z{;~6)8%)U8?P&vH63W7c;X+HX%nz?ud4C!GvCJ!87z4;=%78642hcg;l^Jhp%3wH} za*(du2x(atp&e9vcZZ&SxO};(YLLXL+eJrx;N}pWQ>!@^>i{fE;%@@tzWax1#wc?y zzI{@|cTC#qt|cft2c54F1{6@oUM79qT zZa;;QykLU^jC%WiqC8J7(r{m<4a9jQTnz;6Xilv*~!hXuV8?3MPpDOn)tzOHH{-;!^-;j+v=xsqcX|V=v zklAQsbOVU_oc;7nq-61o*Z3tFJE02cUKxH2t=w_Yj|)qf4ABDRUtUsW84JCLXs)yn zH4b{a&+D7V38*mhmuQqZCsCI_EDe*4vtKL!Le;A@Wu^EP4^fHki(`(%4<5DRqCY&b z+{}}(MYrZAm8b2$?EY7#P~Ii6B$cQiRj=hd3g`Tqbo3NSKT>&`(F=UUFIXqR596R|JGjCweZNj2q{ z7SjQ_X>5@Yin=2aGx;jh!%TofX@FI$n(U1{Ga%EUnA=Xe$g~ivaHktS^t@S8UBPP=L=ZQt)sz!5mJ$ZErvYj7;M`p565hY5G4e>+4Q} zL#JzXkhzrU`)%_$Nr(z~j{-3O*A(VRH^2j`7|LSX&xdc*H7de7?8#qwwz1fQrt{j2 zdj>cYXoA6I@%_YcFwTC10TXQ3`7bU)Q~cY8yIqcTyD&F1f0Hg6*TCuna^N`RYG68v z$Lp!Rn_f}q<0n;pz>Q0WZ2UYTnQjL9wHl1Rx8pX*f)9b_vELUe{Y1WmQ zDC%SqB*@^|wNuQ*bE?YIa`N-5vGz>+wzFRkK*bE=!3^isK zFYb>Oxby#-&jU(n)|_Ngr_pSPlvS z?oSE1Hd^0Q`9?4|oP0yqKoV%S#Rn^1usV1GNMT^Xi(2k1F!z}GK^lt{m?_JNe|)pX z+XS8wr)GvE;tAV}c{#V8-5B^}D!VCOQ*lYhDW_2uA3F|_JyGuK5CQ&Z0(=w@!yXRw z6i@d=T8z*w36;{tVVI@RT)epFl-40=K;N}>fMMVOhZ{@PTfqzLrSf9a=edZJfaTS2 z9LH68Zpj9eHMk;DWa^~`ol*1u;bi3=6 zer9+zoTvYs7pa#~^EqjAxlNnv6*@4)=?LSZ^Vwm@KSO63(igyRn$~PYsW7ti*xcL` zk0E_$+NuP2J_W3^?1jKsXD9&1lvQNf%oW0e$}REu>RM8wrfaFCF)6iya(FwtfbJ5LtL%l z7v+sE0|XElHXc2IkGl59sl;ELwpoPVD8X#T-gEcWqPpq~E4fa3W<$*CT8=F$B;CCb zQ8NkHw^(DBk+@~T!e-}EX1gC=r@qd~%oZ->+w=@=34-6~WZf$uLIHa83;V4&(7Gj* zYI-vVbtm1d9FWFb#P*X)4vIUhh)I%>ffNfSSyd7Z@ zcikLXMXNb%-^t9U1xBL7e@Ze41EeBc%;}4XX{?q8;$pTrUf(~p=uwn(Mt_D~7m7O3aa1ie17W{NlHR zy<80R!P33}7GL!U%ILd9ZEHJAIp>M6@y;VviSLr$<2*wJ;zIZ|f*&SSzEISgt6NFK z6)T<3UNG$z(=67Hvr(^E@CYwmOW6I3x$9pWZ9f&9%s|stS82x2a3hMrZsHF5Wz#r! z>3$VP)aX+-|EpU6X;bpg?ZoQC0{c9?F4Qljl-x4BJ-wFcJDuL;@%rQndzveQx)xVt zybqV_^5$8EJ17%5yK{vLJ3+(k-;S77cms754Sh#!|2R)xVfV>e%TNU#u4^dm?+G%J z!91}4m(A_K-0=XX?xDR`9wB%np-7*bjpqF7p2~GZ363i5*xDT(=tyhIR*%sEHh?WI zMm2f((P@gHQnF?*jZ?MD!>%`SFPaqi;zHu0FVpJJtp+RYiH-cEbA_pkK}_YCrsM11 zGhf~D`U~Xe)_%P=)x;3m`L3Pb^WPIA|Hg*7EU>1j)A}ruA@ftq=0S$RN-h!5h@An= zCCPDcmDi0hC$A-6U%@EGH+RX2;_gZ5adD414qZ@csZAD%=iFEFQJPbO9M4W3qi8V! z+kxj|g0`G?!<}K{w~oqm^`8q@vsOQ)r0}qgl>b{QrCMT1Bc?UIj6q{&LNz*~DKxH0 z;o`uhXR%~MuZwuj(CRgR!Q7Jg`$)-Tyr$8_H9|nb-JJOtU=1%0|C&FE)>mQLudMQipJmD@#^Be;yXM~lFb?iM}8y$&zgs3 zsVqw^&N5wgKz!faa49C;>Q6H3{wUP`A0&**?lTwI)THCu_W5c$N0rOAljih^;Duxn z$e!ZMqT;otNCvyhz=`3=2D(jVtdsegBXWcF1VLWZnz8AJu~#>aCQm(k_FGWJ+VMFn zeF=ytI!N&2hJXPR9kqrk%$r=Sz^|=4(G42>#=HZDe+yVR9Z&aIwV_XA9^Q|J@B&Q? zP!_=<$rKi1hm5ye5g%c?01eG_DmLab!nqDS>Hh!-Ba1-d@XhzQU{94laltTXwp4>6HlZ zIq}Q2I=v@h##9UvtgYE?&Su4$v#ona|1rDr<5yr6vl_VYdEIyOMfyPgR{8Zf$dCUR z2RR+9@{j)Ez>OC;z8?MyzDYM&Q*u#cnS0OC(z6>)*1(qY8w9q@J{MSR_MdlP2Nr+2 zNf0hTp_D<@*YB_6S71+YyibfAfMzu#z!jo^;G()*yj+x21$?qR@&=6PlPE<+a#vF$ z8U-1>#=PBNnhx&Z0An~n!}Jr?fB+ACU`YxiM;>CVW0ip3YTiT$I>>7OJ;2c4{fO5s zBfyohANrV+f4HYR@R_59B=9~90g&^5%U>Ic6@{G7)=!aj>!N^v@3juQJ~I6l`Y2Z( zgy(3q8yJN1f7{FPly-vaeyf1Nvq$qDojW>bOIXJj|!(--5P2Klcx=A?%3ZrG|HN< zO$q4QFKrB=P1MmhXS>DzcByo`$zL;9@mo4?lW#0;ey~2!fj6r zY^5sPw18=ewXpp%v+GcR50^+HS5?wDX{joSs{;pM0-$`5*K#k|F8kOvue!-&RANmm z+W?{;nlhM(%VZ~khLb&zh-h7E-d5I~`oQ_C)(KEJg6pfZjmS*p_X|(e*3J0!jkU6i z_qRGEi7zF)oaSd8#rxm2!8$-Tk&6W`~hIyDBBs6k6KKX-8ULPuCWwbI>c(n z&%YcuqNV{k+SLb&87}^pbe^B+7y2@&s{4A07*gXzce*ip>^))!?@s(}d0g&)81Vfj zkuW#}vB%r76+A`?R5FS_n*`axiZu8#`j}Rn8tNqQ`KZKP{4>5gczW)0ix>80?Jf5@ z#1h*(KDP@jCwP2#ZPM7&)10p}eCEk;H3@SzA^{NvG+(7eACeN^y{OzcWC#--(s46sk+lL+Dej2GIi2f*SDHOjxqg0_1+ z7gAPpRNmQLOeMi-!(H=lRx1tJo-P_{t_`8yTP;+3;PP+jL+G>Wy z$j$n5iwm+Jn5xULv9oYWXqLYDYtB9C;s`90vusxQNpUgtlP3-jJMXmwLi~l-M-o$%WDe zv$#2rqK;^3q3NsmBoz5MEUvMzEvmkZjzbYD$LW+@5%pR66mufHcp~l_)sIVBJ(Il9 zkwjw0y8ImB#G;BQx(lw0z5*UZ??fXv94ej`THv|780i3O;9JZ+hEw`UXm^QiB)j9H z@ZVR>R;PhliXNKPJ^?-2oz!d!k=1|A8NG=O}mRm2g#vde!ysHCywN zmF!KQ*`+k^r))?Lic}Gws8De(nc@TV6aL9a%8_2RmOI(J!chEl6s>q}z*S zL<4=5K5sG@pI3xmL{V3GNg-P_SMy{Lf#Zhez31FDu;Cc$rC}{Yq5=_B|1C7y8Z9Q! z9#(|4TcOj?SmccD?061}C^u8(uSCCV__%jzvB1`FccF0BIQo)Gg2o2T2@{%WOW!g* zHQyD}$VSC?S4lkZM&PH+@1u{tPQN|Co|jK`Y>QBmq&Cr!6^nx$6jWkhpFP2`p@V)w zze>gE&h~x@ZsN=no<84_f_<2|r)bl&L2N;5fg-Kqf-k za*DXd781;v3m4|vc#BgNb32L}zw(G*0ED^1w8t(22ykpo{bYTqL9^uCW(BC0{|YCC zs}Jb;gA?!(^oiox9(3})6xrTD`KH0jWs(9`cErpSaBEl5K4MZukl+5ENJE%>CFdXN1bJ$7d(F+1SQ0IT! z#Yw|?*hE2aHSf2)x0;2!=Ttwb@Mj9_7(LRYBh&D>==5aZ)qp!!{4O^R1W2u2{2}kB z^lpX@u9KBeN^bGF``c`{@M|3mwb}NOlaO(8cB`d&Bi6QE+=`iVAH7@Xi?F$E9N5uA zp)gtHc=KR6BlqH9vO;o%KNNoS62OA9&VYvaH6n~dS+Ugb&hz) zM+J;beqs3YK2rg0zrM_u-B_lR1I3G7SBr3DMJJIYS_Ov01FVLkDY`=m&2nH=6r?y& zu@K3Bb&`45tv&g-$m_K@wBMB&7AztS5DXtXgQAnsI;iEUtiedTDF8op>-=KPKxkxq z$M5UrHt@p4Fk;x4?e~P#V`tXtg|R@!AQu5>jq{4r8_WJUnrV?Fh4E?!S=jwI&)MIG ziyJ~|f*6VaYXSJ*w*Um=1%NYLJa*c8I757FsD6uZ)$`9BiX3(@<@e^+sVksf4E|7+q+D7x;}z7y*)w$IpF&wRuHxgFRH zL>)yp!iyc+2}J&Mu>nPD{VtY+vV_Ns2lWEQ^}WqFUm*Y&J72CHyhs}4bd(>FSzO6xkYuU7kJOX|qC%kzFmO zEoC-Mi;@~(rZ_-Z{nWHa_s(~=O)sH&Uwy(34K^_P%=adn$Pg$R zB1Nnyqcq@Uc#wX3lZfRo9SXq_!584DGYTt%d6YG0$<8XJO16Ns%why!nK;OdLSC1i zlX;#Nz&kNshx(fSm|4LXQEw_xW=|*MjIuum`@<;%SRnPfi6|6)66h0eD^yj$4*4G5 zpS3ln7lXVc4a^)HrX*Z}=+1@gXM{zH70#)IRPY@xu>CGC&!89wz<`IB6bf9A5( z{OBh!H!lw8|9dp@^4l^A+IGHqZ|u3|NvOQ%xw^ZrsUPSgX7F z=Zv%TE}mVGgRI*NU&sd|Oz}4FsDYYH*ih-fn*9daz2tne!HhkR;TZ~K61q6!f^lCh zgHz5~8Duakj-ADRh%nSM5RIJEECa5MspE@SEp#KC?$O|<=?pnlMTG78za@l;Rwe!y z@=l$@kj^FBltjGPo7q zd4tW9+2R9n5m3gFhqT$a1b;&Km5s9h&E4I{T7u@B zQ=s^sP3w~_@hyieC|!;UlIzRFN(;6Vzp;=l8T)cdlx_>m%5>s6)0^_ZqMLuhOb%4| zI*#T)DNWOP;&NC3C`2Dg?SA3JeJnE_c<`Ut5bF(1#DMgD5E7s?m)B^%dCFjG(7EsW zOQi74n)!gw>H~M^XBa$Yv~roo#pDS2UEt_cToadAF5WkAJKd`${u64N`EVATbf+A$ zn9T0ye@t}XgmME*;04AgBy5UNsm@EGa|R16>sZhq=FkBTmcq@JS^^s9*HaY%Zu^WP zp81Z(IaLD~v~wjQ+UeGt0IrKF5Z?{xnEo1Lyq=W#TdlA$Q8pVf{{EXRV-P~KUgZC; zTh{;IiAs=geNLTe@q^Vn?rK}*O13*{p6W*sX0Ns#EqMF(Zv$8$q;+9Hvf+~K>w4L;n=-4AibR*uhH_fzafU9*jxQHgsiYizC|oTJp>l`@ryU) z;urqLf4@XFOpPp8>MEc3<13M5W%TJp-2rP~Dx?64C-*4Xd`2aN1F-mC;;0#ZJJhY- zG_eEJKgZ!K;c(fal?EG{U+gA`HKz$DaKTT-x%9b3M@@EHWX2T(8A+PH(brDbwlu>E z(=w(~Jn(542l~0tFE@Nl3s)!7(uS&v`%C+sGTr&nY`e>=eN}okBs(X5D$jz>E2CNK zD$)-zS?l?_r^_E<#)X$5-()OdsA@r;WvAvKQD1@dIikq2J%j+UUX!32535@|zsGQs z2k^}p4B!W5)nn$fmc}26KfM5--V_1I_A*d7K;fnpKvPXVaURO=cDrT=xoS(ig{;f5 zR-nBa7g+wv%w{s&z9;@2kmq&vsvUCd7wXP;MXNIt$_T}V$1lFW4J$|{L5BN{m;UazOOj^arpZVs55Nww4j4F zM4(m|BGNj!H`m|yV{YT)2dqBH_ z9Zy1k?8-WcV>6s%FeH89VeaH$;SrMgF=X%*@>MamHW)BrZR!C{i5zH7I9k$K+zKu1 zX)AaKxQa;T2Gdm&uI|#LCB-@K*GiX37|bIYt-LZCxMa`UWz&nMEhZ(+l0s%9q5Ofh zPQ?L=`!r4sEbM@y#S$Hw6eGw^AaUTDzB5lBryKB=YhZh(rZgWG zy(2FD*9or_I;Lp3qs#1eBe}SUnDC}tbMM&JgUY(f%2CE@z$#?(S!T_sTZNmdwnp+A z-`neBqx_PA`ONX^$H>jQ2Zl_~+N#t9sP2EBp55ULzp>lo1a`y}M!lwKOTDWz> zQX7&5eA;?<@m}9uv-K9=?VMP~A6L8?4ynJ?d(<$Q+AR3-$B4iWvLXjl!{SP(>Z;uj z;pH|X^9t0$W4eMD-O-CU9n^q$IS4h%aB->2`%px@8meIj7 z#{Hfb-#PF0WP1#2CNYPgfR$z|J)32oP{vDVHBOv>sSoC{LL7eas!&wuCMwX&etcev z@hZV|k-Xs~#x8MUs8W3eCagrSdFQ*?WGDbcMTtTgF`|8Ftz0Sdf2E5;9%|BaKfKTt z7<^J8ZDb%wLvS=K`mX!GXc6^d)iQzXLkmTVF&iTgNFKkBh zxtg??Z{Ea#Sr)-qg)O$7F&2Z5^xnvc`Bc!;-D=9bhl@z!w@hNS6d52da|60UCYnZF z&YZ>2XiHc+72APYMpKuq=GxM9GYyd{^c55thN2Eids0>jHk7%gA#w00VjwXOXM-#D zB(-mywrR-sB5l&WyBj`6$(k{g9EH8=aCnyL#Z}&Pn^xFRrn?&tzs7;U;Ll1Ol$Q)L z?C2DeZqBzOTr$|_zBB>;Kj;@qWz+lkp5|$nO`WotYGKj8pd@Ag;Zew!+_2&&Z~5oV zpMA=yPUR4~EquL{_0ZN6V|`=$-TP+Up6_@V_qe%ZchQ-w8KWWu_%ZzZCIk1w%(Z2% zD#PYdmJjwFx*}LZ zxr|6EFMX};YU7aU@X2oCP20nrZ|f+})?WfxYokjUXC$t=>|u$V^(R0#o2ev(ywBTn zA--Ujg-DT7?5Tdk_|EoM0d7%Olip@uuTR-8CGpI!aqEJLBlB!S(WvoI>sjI5g^PPX zXbQEabp3qC44$OdyylJh{6s15E%nPw#n6qXgh`AYSt3%jQn~VMa z{nn4vWWR12e&X8n)a_onuxj^{qt|oxwRwMv);Br#OsH#9pm5r22SLQct8aV)u3yP; zGuX4gTr$5`7+hS!nJl8O z7hjpDtTrWXRgLPb@8mVMdoL|tS!y9Bwco;lqeQKi!kVBt?$i`-N*~>9Iy!>A`~#tR z_TkmJmYf9S{Ha+~S=Advg5`lwokiNWo#i(z@;h8KBp97KDswp_JFpuhoA||a3VP!2vZR(bd7P)qPWs46 z7Pv1e&n_!e``t_O`!Tt{M?|bSpRjUeqP7$IK#EphF7C5#>Q^p|+kZdQ%{1ad=jr*Z zuwyqI-sc1_?%6&49Iow?asDQ9XU+bwU7Dh&9-Lji(9yZz+2n0`adL}KapKsA04MtT z!Vp2ubW6xy6{zGAf@j}7S0|dX{|KCei}U+Yt75n9&4EJt;itK7T7?HTKP^^g4ZbeC z%k&M?PhNvQ?=fn;|C7Dtq#(~biw%YA>j6A;SHiw@j)5Iu1KH6B(k@y*N*)sOQtq1Q zS62O0`$PC@i~J$(+}Kk08232uU~T3MP4Arsqq;tFA37AF&+BBS&4(zj{50hf4|ve} z!{i*7=;@T2?|pSketc;lX!G)XdG1H``Z^!EJ#nv0G}}H!T|46_70L5f-qmJCl9@M& zeSbp#hbmF0T?v{EGXjdu;FEailKP@UGH2gGsXkZyC|=kxR#~! zq05E+oE5S+%KUau+uqW*_`!iZsIrir_134dPj7SOPE_r;3v}=h_b#=koECR#KJjH` z{Y?7HdfSMzVQmMzJfEIpei~iW$x@cBC(zir#Y72wNJ?eW zrr9s}c>-emvcN+Bt8T%Jf}2e{Ubahxb=Hes9xnFHI5NH0-62!9^Fexp;wGaXs7ATJ zKFQAqx>D{g=2sE}*uGeM&|c)9Ca$lfLrA|K37MTXNq$|XeVrdTbAvoAhcCDBJ+u-= zGM$$nZrXjophskc2K&kheu{b3*13#6y#xn6+ipbO~KRRA+zb zPw=U3vg~X=eL3|)ZBv=5>Zi*wHUf-`Z>!ti*ZbV)85TP8R$N=Q1Pl-|L3kP>VA>4fPE^Am<1TPM%Co^z8i_0Dsv7tXQJ2)HPCHCIjsNJ#7#Szaz` z2Kb&xn(G@i#6x>u8dgv>Vr9?zKCtXAP(P{v@cx^bqdQOHIEH>(J*)Lnxxor9huSp} zNEy?TB89AsV_XZT6Ex48e~8qUw7kE2N8FB4-!b;S825(nl_}mAL|w;EU5-;t*3K?a z<5=`;VjPJ}9d^>N+R7T4_wu)Wqbu9lgS%jsW3aT2E5;yTm$<8{9a!N9&dc+)x9csQ zg9S7zSfq<4WaZs_e5xF6|M3R~Ji!Y^PO0@*_#N4-iV6C2>$mN_t;sM_z0ln9c3d^= z=@+IO?;lB|GT)WVEBD)d{_|#TwVNmK%8M;;lv%kxyw+RDKYHe=h2u9ha9!ulN+6Y_ z!tCz^{Ps&A$QfFR(M>beQr&-8h!yC~dZt(Y(~@AV^4Z>M01lrCFWk%ZA9NVZz8PPH zt2DP`tJg2PP<^$?@sRk^+*>vFYU6}>UeOFIp{%HDFRPJk`r6&6h@*xMpVroQ@!Qr* zf4@7@DH58u$mLA9LBl4JE`3J4hq(5F6f@|PI4Uoa_>6S?W-a61{W8Ql+$(>v;7?}5 zroy_ZqZciB$B&72ALux0dE)Z~5F$K%X{!=&mMvd8zcL=Y^Lyv?LN+rHgS;Eb872fBm8s0DSdwuP?(0?X;YJE+5~LUM&SLx4~r%fg}1&lA8HQn?t#yf2!VHhd_huB`Xa{?evf`nwZz`L+8$DY+r+!3F28jBF8s_P)o;gl zZTf+pW5S%#=D~XoogubwJL%_#4t@JKtKWM-TO7_bl*f+qv`oq(7*QsTkkknJ9L$57 zi6WRsQr7kclRctMX6}dU&h5{BWY5=% z-t2WzAMCkO@8%g9T8q^!FJ3zc3Wj@a_Ux+SJGQ+%dF@e(WM-O*_ty&%?lt5h6sc$4 zi^;F>tqdl;iaj;9nISzHgyCf=v%3qmiOlR0*@{j-+BjN+TKHZ-z|RK5k@Qs>wkboB zMn+>iSC_PmaHyY@Obm*uhQh;FR^3tLSrj!6v*d!Id1F>!xhre0>Cqv|C^u|B4R1sp z?|`q2z*koZJk#e&#XU)@1nJ`2mM|f`a7IfK&G>QJ_{Y}cS!YzYjmmE5h- z`Sa|^zL^{Wl;^brM!TXrVDAfFqO;$(eXwD@KIe}khvO>unh>oX8c&PpOdp<_$(35_ zJX_(z_|l10X2g7Jccl8i@{KQpzYgoC|B4_1Y;)|fXFc%-cOw1877L93lyPEg9| zsgge;*l~8yk-1C!%Tb5(H;VL~Za>zW77VXd8mnGBhR7GVVZe-?ycOzWE za9?Ps+JNCJJS=>@1^9w}r~X?5@B*iB%i{_%YcxVF<`NU?AT?wH@l9kUSNU6SiPYl4 z@+^_}=_qQIwxn$Vr>~|Fk}@;fLpeBK_r^l6F)xwp)&B8%4r*a) zBY%sP#fY&DuS4!S`73INSSO; z*yn2SO=a%0cd0Jh@nrayplM%nLa4h}SuD=TeIX@h8KKjtH8|%p?znx*gvNRx4lAZk zk8SZf(E*$HW4ecFPOaZ_W68SBY%|uL8l~g(z1oH^y+G1KxrEsZHqybd%F9A++I@lp zCN{_GZ(}7;y)r+(nJHHRh2kHYQ#d)X8kvh{-0@9*JFZ=1LXl`A@Y#8?!l#kD`cfZ4 zahd4fW@vvZl7mZgVX?y3CSrH4bO?tH_;DM-;yezHN^#2k+3lSZms3a6ZfX7OvyOQG z8J>{Z%U^-WE;D#^T{+V`49ouy7fIxu)`(m|3KV15KO^6H&BFaMMH|r_b&6GrxrLZoau8dsXQ?ZEDSy;V3BgW{@vltCb;4ac3ZG-0ZZ~Dv zBeI*X9jCL-3EoKtBfK>3wzM5_x6=uSAWw|ewP{$U&a26QAexy zq~YT5QB>%SB5kK{B~t}fOVP_qp+k%*Q{Jf$0~gB>=>lw#tM+Wx&XKpr?yb`C-F)V3 z?3wWJZN>ZhItt&k4u=B)@k%l@fj;+Cq5B_mhzo)(cwI&ccPMp_CYA*<@Eo^M|*#8@<$RMih3Y6#7Tm zyu>N@OS1)A4Uig2U9Kyg`68{!65ytAcCU@d#Z_`Z+PBqV-Eckfbi*+1Sz+Vr4>!5C zu_smJE6Ru;)1POJ`>4x*vHugTTx=A*vqg5gbTK70pS*O=PyIn3t;DIw8GaBEALjJg zs5ujb4|9{axl~CGT+tz3%3c(H|CvMXH1!#AA|L`Te9mIt{82sT;nhd5EwLoikKii7 z%9>==7sMx2ywxauq5}`(8$~Jyb3H>X7&A^+1RAI3%+)rL*~+b9+WW8OX{A= ze39|xwl0{Mg%-0wOL{D!bzXdIbTK%!OzsAnOLW1%9ev3R_9fbReJ3o@$;8PK3tdEe z%C6Fw7*!VF)k#}FEeY;XE#A9H-HAJBxhsq!d&98lLJwig|F(0iV4K2dli#dpyZc+Q zQBd|>ovWra&e;gQ?ciXZ=n{X~{+_L6?^|=ddBWh!nG!m@mc8KKk;7LXn&iwB)1FJ? zzUy(k8c&^wORZzoIr`-e>hLRMbJ#eUDQ}N8&gdYIW#25bIsAb8@d+{^tE1?daL4Xt zqK}EmrrM2>R1c##IOpJ4~pL+Q;U>ANn> zugt%8AQ1coD#ZuS;Ivw!%cy2fWaND((D%z+lux=mDKO7+@Y;#(ntQ5ZWEB7A)oZ=t z>NTC@fs-?}#fYq-_2?6>UsHli4P(TP7Pe+q{HT^so%oqr$B_7SYCPoPQSuvMY~~o) zf=5FYZS$Y++Yva>(}F1ExFtP101lFpT-$H3?kn>*MMSl?v<%@CT#@@;R9Csv{94DT zu2Iu}I5UEhL^zDD#nM$3L0ijgr!ylvlQq)dZR7OZqL*e>HhN$7?6)J=GK*FlT03`% z{p~@ptr9!$bGU%B@5cZ_{Y`3s*ZAk=g%SeWGpq!eEtCSGvNUVpdD)LC-> zJlSK0cD)iId}LI+W|E=dOq99Hdv*P=TBQe))6Y^7NfVdf-mfF-TZkIV<m|xq(LK?cGy_+`GJA>>2M;xHbEK+BxsHCbPVaJ0dd33JM5H zl_qVdf;1BZ=}HqK(lQ_*y-AYDN=^M`V>7Jgs3md{Iw#veh7?aL=NOlvvH5rJvqp-oMiRCYN$mEsgm3ARw-j__7%9FqO@s zu=GJT#5$*#3>+cgp-T&H6^6DdqwGY(=9iW#{L&L|J~O?lIbe(U#?5+pEq13slu=?=D^YW&(5m%ZOntfubmy!=d@LaqNlGVAQyTR zgKbxNJvZu}-5QX)(P7aU#EwsGX>ZJT0{NRj79u+TMu+boN`$r|s6ss7Rt=-9ZUH9} z^Gp+;TVV^lmXvVgVpPkE!DAAJHs$TBRgnuvFlfu-y}n<8)sN} z5=582vuvPz>SQ`7_iN*K{$ZG#5*3Jts6l;{r8X}eMtLZ`D&4zq<{9t8OEqgchdzfq zdXY?%1^NWBf$c}g__}!21Og1(<+!a`@N8nkH@9(jnj1WR%T&|ByX=TV&zIK` z)U>6OIokMsmuO0$UyB#SySR_pO)+=Q2h2a@sPwAoZr6-E=u7;=6YzzI>YSml(YejV zst@{mp{WF!71Pzry!Z5K?shfKyh{rTiO%;jdS9&i!i=O6E+6IsSe0FkQdbLeObY}_ zf1R{f<}e7?UEKxy+@v^DY(S~ln&EosQ0dCWVW}~=Dg8=e45oP>SU({Q?jZA`QdAI1TGXUui0Y1ZHFS#z zoHIA?ZGKsZ=C=M){(vCWvw?Ea_@)799`{BwP zmZFtXHXovQlUgy1y;|TEdVV~4`)Yv>ft2=pQROi*<7&%OK8%44RfQ3UxHtsI7iN^Z zLWUz)lehxacg_G&v98thPNSlS-tf@RsZwB5_}Y&Gq*>7{gS8_f2CqYIGzZkO4f82h ztJ1B9m}mHh*I}=Iv!2Boxg}DdWRNU(K6pS*##AFF4y7pP-G%;(wxKOqPfPfcJbSB1 zRHGu0xfpDk75H57f;E{POCto_2aHD|?`BI6=%9rg`dFfix!Zh_(Yneu$qc*ZpITxg<*8C5ycWfbIct?`l znPH3-ie3#j#dg<%_+5H%_5jprN&x11cdzFS1{z>15o|m6B9ny^u>17(Q}OHEZ(!-s z3gRZ^>Z_)|JITHLY9SJfh%jEX`%Rym>HRsr(rEIhQ#lBy2+s8@{9ZC3C}1O&0fV57c(wretvxnEPcKV|CIsgc3Rs$jy9b~IUUr7!>_+?6wZ0z?g-d~L^KSTL(Da5P z0ngvfaAT4IGRmg1%xucm487eMg*ATweEpwzVyE_ssaMPQ=k8q=aDLm| z-^~wQ3(6uMC|k$P_K4P6S4?e3bh_F%P(&SDPD3%jiCc8A* zrO7VM3e&9c|GyQc$u7<9(%ddBfuJQ2|I!44Cc8A*rO7T$c4@Lplihzww(EV6-_5*C zCosu%7WhA7%;S{AvC942im!;Nj^6UXQb7C`(QUrTi()M%-npM5cABWaK0a)u1s^NU zYg?;KyEM#SLQ2zFczDdPN-h`1v{VLVWpIl}WS~-dimlj)cV_xb&ejla(j7r$ zGaTCxf=8kn71uK=396>a9b=7>si%`M1%U_Qcp)V$?22Ub{@qc?l&}MJIIeiH%(FFo0HYXBvwWB zd>8H3ex_v{bfm%%7R9=8XWoh6VBw763+*vZXyU|Z?S8*85?)9_q){N7Tv=05s+kx zXa1Pi_6bA|5h0*aQo~R&tmmOm2oTKhedm#KMI3Ebe+T;Z63p_cDHpUu27qvRYkzK7#&mrE}AX@HeR1d}aN39{-+R z)QY8pHe)=x?r5CAJ{uF)!G3%FMDCbA&RA?~B@l<2H9_)@xoLLH1FiX6uPDFexF#&@ zvv-mC1RKB-M1A5u}*B=+$9i+VR&%pwJF9Mx& zYS@p17_(pywm%3^e5 ze{>UwgLLp|0uOzIaF2z3>)*)Bl?LlM&5QiKJ`ZW;4Tal9d;c$D2_UA$)yHi6#$ z!Y^HI+IIo@7LPw?GBslzD;cQk_Y#}n=`GVBh}p*V$&BE_OIyeL`zm2j>t<*lqen*u z@acnF-s>d7&n&K08K#7mAd4yIv=QGXBVjrx<5vp1zutfe`{NCmjj6alULr69;Gcu* ztm>5bf=`nVd+)RBN`iC0=$HM%o&9@MSz#EDiUb>*EeN(S2}?iFOY!NDUito15iYIG z^aV0lFZt;5o*!T8fo7@vul;WyP~T57xT;oQhga)!J>7fgILI{>&V$dOvrqCQlE*@_i>o4))G z_F8@umh``by<9=IL1q>7(byd7Vk5XiP4L^`v*GK`&`aWtZ~GxEV9V# zv)a5`?g{Oz+ZaRAaC&*Q*jZEJt6^``bj%dKofhJ z+QhN3_KtCI^4>kph!YQ@Eec*QXSa%kMMIR z9CmSTN6wEB=lHm*mBjXj9-P}R7v1b_i?KyiX`~m9%x$Cz+f=&Aw|k~cNkIiZ`hn$z z#R7Kc6uDxg*3m{<7oViZvx*f4QQO!_9U1qF2Az`kmXf4oA8`#gJVLfb5>D?=T)Y9P zaefQN2qi71Jdx6tT=0atKsDXh%$u>iE@|k^tbaz*JBHoX$Pa5@wU6!;RbK?4$R^tc zl+u_JLtTc6k8%!+OEverjfw-n%pP`WJ_Pw{Od7AXyZY>I-y#biwDpoXiN$`|%$Ex+ zRUB-*?z~fL>oiq*?rqLHUb2^YC0)IiO13=1)JpzBFToDRt5(tZesF%}($6&^<=MUX zNf&D*m~+B6!kpN-E)UMVMTlum1Neul|Hk^|J#LY2Tn5{$0%oYE>L>M92NW}jEtH^DzI8Jp6sQ9@ov%>ws z5&)Yth0lEe-2dpL05&9^vs2naV$jW{0#4M}k3>SN= zzsRomNK@ejY_B+?w5nvp?lMPI`Y-;&u6itgdz(Buw2e>Vlz>FbZRYISiC!;*_m z?klNNwcH9aog2ZP>o6(NN_zMD3ul(L?sIE=fW+l@Uozb-gyyX{vug`phi;rxRLDT` z3C$Xvtm*z-bxp|Q9A%;>6{RvVrL%V;Hn7H-CRQxDh8AOXf0V>Tq7CAgFM?_n)B-wv0()P4K@=Xk_FfWVri zQ(L8dZVp5<1!yvW9}MNnGOXJ6;vYf>DHInA^=i{#4s@<4XMyc7*vML zL!Q_>DBaoCkrvx$jNb3vSk7qxuGP_GmnOS3*`>)YO?H1Hdug)!U*>j)!$J?#=_9R0 U8gscdj{rY?Z6mF6O}mJ{0-Nrx{r~^~ literal 0 HcmV?d00001 diff --git a/Calculators/Laser-Linewidth-And-Bandwidth-Calculator/index.html b/Calculators/Laser-Linewidth-And-Bandwidth-Calculator/index.html new file mode 100644 index 000000000..807c5903b --- /dev/null +++ b/Calculators/Laser-Linewidth-And-Bandwidth-Calculator/index.html @@ -0,0 +1,31 @@ + + + + + + Laser Linewidth and Bandwidth Calculator + + + +
+

Laser Linewidth & Bandwidth Calculator

+

Calculate the linewidth and bandwidth of a laser.

+ +
+ + +
+ +
+ + +
+ + + +
+
+ + + + diff --git a/Calculators/Laser-Linewidth-And-Bandwidth-Calculator/readme.md b/Calculators/Laser-Linewidth-And-Bandwidth-Calculator/readme.md new file mode 100644 index 000000000..411790007 --- /dev/null +++ b/Calculators/Laser-Linewidth-And-Bandwidth-Calculator/readme.md @@ -0,0 +1,32 @@ +# Laser Linewidth and Bandwidth Calculator + +A simple web-based calculator to compute the **linewidth** and **bandwidth** of a laser. These parameters are critical in determining the performance and applications of a laser system, such as in fiber optics. + +--- + +## Features +- Accepts **Frequency (Hz)** and **Quality Factor (Q)** as inputs. +- Calculates: + - **Linewidth** = Frequency / Quality Factor + - **Bandwidth** = Linewidth (assumed equal in this context). +- Provides real-time results with an interactive UI. + +--- + +## Technologies Used +- **HTML** +- **CSS** +- **JavaScript** + +--- + +## Setup Instructions + +1. Clone or download this repository to your local machine. +2. Run the index.html file. + +## Screenshot: + + ![image](/Calculators/Laser-Linewidth-And-Bandwidth-Calculator/assets/image.png) + + \ No newline at end of file diff --git a/Calculators/Laser-Linewidth-And-Bandwidth-Calculator/script.js b/Calculators/Laser-Linewidth-And-Bandwidth-Calculator/script.js new file mode 100644 index 000000000..dd21290d7 --- /dev/null +++ b/Calculators/Laser-Linewidth-And-Bandwidth-Calculator/script.js @@ -0,0 +1,23 @@ +document.getElementById("calculate-btn").addEventListener("click", () => { + const frequency = parseFloat(document.getElementById("frequency").value); + const qualityFactor = parseFloat(document.getElementById("quality-factor").value); + const resultDiv = document.getElementById("result"); + + // Validate input + if (isNaN(frequency) || isNaN(qualityFactor) || frequency <= 0 || qualityFactor <= 0) { + resultDiv.innerHTML = `

Please enter valid positive numbers for frequency and quality factor.

`; + return; + } + + // Linewidth formula: Linewidth = Frequency / Quality Factor + const linewidth = frequency / qualityFactor; + + // Bandwidth is equivalent to linewidth in this context + const bandwidth = linewidth; + + resultDiv.innerHTML = ` +

Linewidth: ${linewidth.toFixed(2)} Hz

+

Bandwidth: ${bandwidth.toFixed(2)} Hz

+ `; + }); + \ No newline at end of file diff --git a/Calculators/Laser-Linewidth-And-Bandwidth-Calculator/style.css b/Calculators/Laser-Linewidth-And-Bandwidth-Calculator/style.css new file mode 100644 index 000000000..b565fe750 --- /dev/null +++ b/Calculators/Laser-Linewidth-And-Bandwidth-Calculator/style.css @@ -0,0 +1,72 @@ +body { + font-family: Arial, sans-serif; + background: linear-gradient(to right, #4caf50, #8bc34a); + margin: 0; + padding: 0; + display: flex; + justify-content: center; + align-items: center; + height: 100vh; + color: #fff; + } + + .calculator { + background: #fff; + padding: 20px 30px; + border-radius: 10px; + text-align: center; + box-shadow: 0 4px 10px rgba(0, 0, 0, 0.3); + width: 400px; + } + + h1 { + font-size: 22px; + color: #333; + } + + p { + color: #555; + font-size: 14px; + margin-bottom: 20px; + } + + .input-group { + margin-bottom: 15px; + } + + label { + display: block; + font-size: 14px; + color: #333; + margin-bottom: 5px; + } + + input { + width: 100%; + padding: 8px; + font-size: 14px; + border: 1px solid #ccc; + border-radius: 5px; + } + + button { + background: #4caf50; + color: #fff; + padding: 10px 15px; + border: none; + border-radius: 5px; + cursor: pointer; + font-size: 14px; + transition: background 0.3s; + } + + button:hover { + background: #388e3c; + } + + .result { + margin-top: 20px; + font-size: 16px; + color: #333; + } + \ No newline at end of file From 79debaa2ea58fd2a69ac74088aaf72e4d17d5fb3 Mon Sep 17 00:00:00 2001 From: Rakesh Roshan Date: Sun, 8 Dec 2024 16:14:38 +0530 Subject: [PATCH 2/5] Minor change --- Calculators/Laser-Linewidth-And-Bandwidth-Calculator/index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Calculators/Laser-Linewidth-And-Bandwidth-Calculator/index.html b/Calculators/Laser-Linewidth-And-Bandwidth-Calculator/index.html index 807c5903b..ee2a76a8b 100644 --- a/Calculators/Laser-Linewidth-And-Bandwidth-Calculator/index.html +++ b/Calculators/Laser-Linewidth-And-Bandwidth-Calculator/index.html @@ -3,8 +3,8 @@ - Laser Linewidth and Bandwidth Calculator + Laser Linewidth and Bandwidth Calculator
From 55537c7708fd43ce6dd85f49d0726a83f5bc8f63 Mon Sep 17 00:00:00 2001 From: Rakesh Roshan Date: Sun, 8 Dec 2024 18:12:41 +0530 Subject: [PATCH 3/5] Added changes --- .../{readme.md => README.md} | 35 ++++----- .../index.html | 51 +++++++------ .../script.js | 43 +++++++---- .../style.css | 75 ++++++++++--------- index.html | 14 ++++ 5 files changed, 119 insertions(+), 99 deletions(-) rename Calculators/Laser-Linewidth-And-Bandwidth-Calculator/{readme.md => README.md} (50%) diff --git a/Calculators/Laser-Linewidth-And-Bandwidth-Calculator/readme.md b/Calculators/Laser-Linewidth-And-Bandwidth-Calculator/README.md similarity index 50% rename from Calculators/Laser-Linewidth-And-Bandwidth-Calculator/readme.md rename to Calculators/Laser-Linewidth-And-Bandwidth-Calculator/README.md index 411790007..95d593bc3 100644 --- a/Calculators/Laser-Linewidth-And-Bandwidth-Calculator/readme.md +++ b/Calculators/Laser-Linewidth-And-Bandwidth-Calculator/README.md @@ -1,32 +1,23 @@ -# Laser Linewidth and Bandwidth Calculator +#

Laser Linewidth And Bandwidth Calculator

+ +## Description :- A simple web-based calculator to compute the **linewidth** and **bandwidth** of a laser. These parameters are critical in determining the performance and applications of a laser system, such as in fiber optics. ---- +## Tech Stacks :- + +- HTML +- CSS +- JavaScript + +## Features :- -## Features - Accepts **Frequency (Hz)** and **Quality Factor (Q)** as inputs. - Calculates: - **Linewidth** = Frequency / Quality Factor - - **Bandwidth** = Linewidth (assumed equal in this context). + - **Bandwidth** = GainBandwidth × (1 - DampingFactor) - Provides real-time results with an interactive UI. ---- - -## Technologies Used -- **HTML** -- **CSS** -- **JavaScript** - ---- - -## Setup Instructions - -1. Clone or download this repository to your local machine. -2. Run the index.html file. - -## Screenshot: +## Screenshots :- - ![image](/Calculators/Laser-Linewidth-And-Bandwidth-Calculator/assets/image.png) - - \ No newline at end of file +![image](https://github.com/user-attachments/assets/c5bddc25-f389-429c-9a29-8f0bbedef54f) diff --git a/Calculators/Laser-Linewidth-And-Bandwidth-Calculator/index.html b/Calculators/Laser-Linewidth-And-Bandwidth-Calculator/index.html index ee2a76a8b..271ac2649 100644 --- a/Calculators/Laser-Linewidth-And-Bandwidth-Calculator/index.html +++ b/Calculators/Laser-Linewidth-And-Bandwidth-Calculator/index.html @@ -1,31 +1,34 @@ - - - - Laser Linewidth and Bandwidth Calculator + + + + Laser Linewidth And Bandwidth Calculator -
-

Laser Linewidth & Bandwidth Calculator

-

Calculate the linewidth and bandwidth of a laser.

- -
- - +
+

Laser Linewidth & Bandwidth Calculator

+

Calculate the linewidth and bandwidth of a laser.

+
+ + +
+
+ + +
+
+ + +
+
+ + +
+ +
- -
- - -
- - - -
-
- - + - + \ No newline at end of file diff --git a/Calculators/Laser-Linewidth-And-Bandwidth-Calculator/script.js b/Calculators/Laser-Linewidth-And-Bandwidth-Calculator/script.js index dd21290d7..42beefc0c 100644 --- a/Calculators/Laser-Linewidth-And-Bandwidth-Calculator/script.js +++ b/Calculators/Laser-Linewidth-And-Bandwidth-Calculator/script.js @@ -1,23 +1,34 @@ document.getElementById("calculate-btn").addEventListener("click", () => { const frequency = parseFloat(document.getElementById("frequency").value); const qualityFactor = parseFloat(document.getElementById("quality-factor").value); + const gainBandwidth = parseFloat(document.getElementById("gain-bandwidth").value); + const dampingFactor = parseFloat(document.getElementById("damping-factor").value); const resultDiv = document.getElementById("result"); - - // Validate input - if (isNaN(frequency) || isNaN(qualityFactor) || frequency <= 0 || qualityFactor <= 0) { - resultDiv.innerHTML = `

Please enter valid positive numbers for frequency and quality factor.

`; - return; + + // Validate inputs + if ( + isNaN(frequency) || isNaN(qualityFactor) || + isNaN(gainBandwidth) || isNaN(dampingFactor) || + frequency <= 0 || qualityFactor <= 0 || gainBandwidth <= 0 + ) { + resultDiv.innerHTML = `

Please enter valid positive numbers for all fields.

`; + return; } - - // Linewidth formula: Linewidth = Frequency / Quality Factor + + // Validate damping factor range + if (dampingFactor < 0 || dampingFactor >= 1) { + resultDiv.innerHTML = `

Damping Factor must be between 0 and 1 (exclusive).

`; + return; + } + + // Linewidth calculation const linewidth = frequency / qualityFactor; - - // Bandwidth is equivalent to linewidth in this context - const bandwidth = linewidth; - + + // Bandwidth calculation + const bandwidth = gainBandwidth * (1 - dampingFactor); + resultDiv.innerHTML = ` -

Linewidth: ${linewidth.toFixed(2)} Hz

-

Bandwidth: ${bandwidth.toFixed(2)} Hz

- `; - }); - \ No newline at end of file +

Linewidth: ${linewidth.toFixed(2)} Hz

+

Bandwidth: ${bandwidth.toFixed(2)} Hz

+ `; +}); \ No newline at end of file diff --git a/Calculators/Laser-Linewidth-And-Bandwidth-Calculator/style.css b/Calculators/Laser-Linewidth-And-Bandwidth-Calculator/style.css index b565fe750..bd319e4bc 100644 --- a/Calculators/Laser-Linewidth-And-Bandwidth-Calculator/style.css +++ b/Calculators/Laser-Linewidth-And-Bandwidth-Calculator/style.css @@ -1,55 +1,57 @@ body { - font-family: Arial, sans-serif; - background: linear-gradient(to right, #4caf50, #8bc34a); + font-family: 'Poppins', sans-serif; + background: linear-gradient(135deg, #2196f3, #21cbf3); margin: 0; padding: 0; + min-height: 100vh; display: flex; justify-content: center; align-items: center; - height: 100vh; color: #fff; - } - - .calculator { +} + +.calculator { background: #fff; - padding: 20px 30px; - border-radius: 10px; + padding: 30px 40px; + border-radius: 15px; text-align: center; - box-shadow: 0 4px 10px rgba(0, 0, 0, 0.3); - width: 400px; - } - - h1 { - font-size: 22px; + box-shadow: 0 6px 15px rgba(0, 0, 0, 0.3); + width: 450px; + max-width: 90%; + box-sizing: border-box; +} + +h1 { + font-size: 24px; color: #333; - } - - p { +} + +p { color: #555; font-size: 14px; margin-bottom: 20px; - } - - .input-group { +} + +.input-group { margin-bottom: 15px; - } - - label { +} + +label { display: block; font-size: 14px; color: #333; margin-bottom: 5px; - } - - input { +} + +input { width: 100%; padding: 8px; font-size: 14px; border: 1px solid #ccc; border-radius: 5px; - } - - button { +} + +button { background: #4caf50; color: #fff; padding: 10px 15px; @@ -58,15 +60,14 @@ body { cursor: pointer; font-size: 14px; transition: background 0.3s; - } - - button:hover { +} + +button:hover { background: #388e3c; - } - - .result { +} + +.result { margin-top: 20px; font-size: 16px; color: #333; - } - \ No newline at end of file +} \ No newline at end of file diff --git a/index.html b/index.html index e604261e6..9bf0a5c68 100644 --- a/index.html +++ b/index.html @@ -3038,6 +3038,20 @@

Calculates the kinetic and potential energy.

+
+
+

Laser Linewidth and Bandwidth Calculator

+

Calculates the linewidth and bandwidth of a laser.

+ +
+

LCM Calculator

From 175cffb5b84f69c6a7cf272eb34d788c475eb03c Mon Sep 17 00:00:00 2001 From: Rakesh Roshan Date: Sun, 8 Dec 2024 18:14:39 +0530 Subject: [PATCH 4/5] Minor update --- index.html | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/index.html b/index.html index 9bf0a5c68..babc56840 100644 --- a/index.html +++ b/index.html @@ -3040,13 +3040,13 @@

Calculates the kinetic and potential energy.

-

Laser Linewidth and Bandwidth Calculator

-

Calculates the linewidth and bandwidth of a laser.

+

LCM Calculator

+

Calculates LCM of multiple numbers.

@@ -3054,13 +3054,13 @@

Calculates the linewidth and bandwidth of a laser.

-

LCM Calculator

-

Calculates LCM of multiple numbers.

+

Laser Linewidth and Bandwidth Calculator

+

Calculates the linewidth and bandwidth of a laser.

From e69678f140d4b642d767d608ea829e8a7d941e2a Mon Sep 17 00:00:00 2001 From: Rakesh Roshan Date: Sun, 8 Dec 2024 18:16:55 +0530 Subject: [PATCH 5/5] Update index.html --- index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.html b/index.html index babc56840..c68df6303 100644 --- a/index.html +++ b/index.html @@ -3054,7 +3054,7 @@

Calculates LCM of multiple numbers.

-

Laser Linewidth and Bandwidth Calculator

+

Laser Linewidth And Bandwidth Calculator

Calculates the linewidth and bandwidth of a laser.