From 60acc2e96abe0d929b7ac42f15d9d570799588bb Mon Sep 17 00:00:00 2001 From: Robert Wilson Date: Mon, 4 May 2026 08:52:34 -0600 Subject: [PATCH] Assignment 1 Submitting Assignment 1 --- Section1.drawio.png | Bin 0 -> 58461 bytes assignment1.sql | 211 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 211 insertions(+) create mode 100644 Section1.drawio.png create mode 100644 assignment1.sql diff --git a/Section1.drawio.png b/Section1.drawio.png new file mode 100644 index 0000000000000000000000000000000000000000..a41eba59afd8f9141de8df2313a9e6bf3d3c615c GIT binary patch literal 58461 zcmeEv3E0zAx<7hxRNMwdy;sL|06_;x+N5bzgd|PcG~Lp@Mfptkv}u#3Y10+~b#xTa zVORuLP!thF84*xHzzrQ21X)B`WL!`d1(8kG?|<^~eKX7*uH!uaJI`fid_-tYa!yXp zdC%{C-{1S5WQ5OSKdZ|{T{?B@bQbHd`8#zwc~hrOC;j@gpMjElhL^f`>NIq(Mn|<` zJtIo#PCd-j(O*4GP)@FBJ4RfS@uZz-*TB5=Nv6r}Xg3*e(A30Y00 z)uTm_QDmljKm@qd_+zHpn*awTq1ay2CuGxo+N+DHqg5+?V0$)L?bBjP(y-I#FGefA z|K3_ho5i|a6_lJ?PNgN#aH`(kArsWzXsU6v1T$NYb~3AW+^78tqaYwQJ07L2<0dFu z6;tU-duvB)YO*Y8qVku8Nx4)?C))?Ay+uJ)W&JNN%g9pu)3sltfCvAJ){TO|Uk#~I z8WB@k?&!5vw7q*qxg#xRa~*evq4qOHq2uEAf=W(E$@+p#1GN=0nD z+}3tQPLxtEp&?g|CuwV_oUS7LKkDqyEuO)dZ>9E(ghKMU#u5{kGoL(yEs3 zkY=Okho|MwlVeYVMl`hno;Y`mfSAEUv^A{%S(;28W$pLrIBZ`sCak@R&@Ri_KQ(QP z=Z~3ha80|o{BZXT*!gc#b=;{mAAN>nr}DVhwNLr~G{1ghJ&-wB6`RJaN?^K-2|RYr z+m3ayCP-I-LYLr~6Xey9oquI1j(e$)|^FKyH|1pw@q5rdBwo77%V4gUFi2O)F zY!}$$2qKVSO%xFN#9IM|9 z4EpnI{3Uw+n7ay+mR3uGmL}zDDOEZ8_VJuxg<^KrQu^t1am96T5x_vFk`X1AT1Rr$aVRSa#j~W0j}5U1pCXivODY zx}wUdYEt`$(d$1XF2~~tf0(B}s;@e<*8fbe|Cqb}Q`76_AIq=*gsuNXk;@+v+jeZl z+Tr(jYsXj@e>-L3e>>9Ckq7fPedG?A{kOqZ5ZFw~>QB&m)Jp!_ve|*_Z4&x_7P&Oz zKhn|u30nWPpcU?*SWX;lMcS$Uzm2W!Li=xntwljCq_vh5NRRl(IN?8}i;pKDKN+q+ zD&Y?Ku~EyP(Dk1QUEAXyKR^n=Xgfq5Z}I%!Sgy#A4O?~y?Y|AWcBBsf<80R-5SZf$ z$o~?${)oH&Q_}(+O6zai3+v< z@p#9P#eYrCwOkcSny7&t6#$Q*|Lu(#9m9D%X*r&B{4YW44}=9e?)uLStv^Mx{ss4n z{Lo_Qh^!**K-M9~|M$C=kRKb)LjK*tSxJxr(xS;Ne==Z|wAxbs32NIk%|8nRi~JPa z`ZtAIYx~TfKv4T*w~urP?Z1r`3-)}LDne2d6vZ|fMzH<}H!?}Z0jgmZFME(sF-=TcHN_B5tDc0vF78kgL* z%h}iqnonz5qkYG`P}O8mbj*gE`qRNNwTyFruGV(cQSYc|gAM#g_fCVuOE0L?zZ9ZLy>XK8UgXNMd0gMnjKzd`%fQM+L z04K~uO{galNHiU4fKW{u+^nbtzwY&8wOkQRJAjW&W;CT7h{9GM_zm1l7;6|AyxNqP8033Gkk!cf*g`1nR3h>uH-nC zz{r4|C$b(}BWqG(A%ciYB}*jD5e&fvf*!)`w`)8StJ^GEs91nPY>F)8U?LH!fLEWu zJYI_OZq2JxRWUBeMS}FOWwJ&pQYglSb5ss3`s73c6`2T;L#s5=Oy$FD%!X5H)aEUS zF1J6QBQpV;!W4@X7K?;jxpYh;BpoW7{h}Gl!XY8yE|i;5)J1_s%D7T7s$SERe%j8` zw6~nLtHl6ObH?GSn=AT*bcLWS&N>e3L^Dy~{lx-d^HiL+uoI2s2r1{Sf^keSB`Jc2 z)nKmLF!^O)IzxK%){NxO$Lh2rBoQQ&uE3U3gRy4fUhok0CEm}qyBxD!M8pIb>U6JzO zZek9pQT7nz4c4H5l62ZFcsj*}3b;E!$xyl2s6n9sxGwAmH?kyU+=@C)797?R)ski{ zSI~s&E;N~(iAt-iyMhXNAuiSZI%dk1ip3(~;)-5d$wLcHP~VLexB@2eWD*=CXkC^n zwpz{Mq%2LCN@%sbV2U^qb1n*8C&|v&_$rttED?*EGHAMhL@2-Pc17u8O2}r5nu83% zI%vp~O=K7-4mv4;H;<4QozK~m$%4*NrkYPgu&|9(EP6IdH}WPlT1z-EP%bN+HkLeY&I1Ty?D-FVaY*GeT7|-b~SMsr>m(DgPML z#SHhgn5__OF@Zmb$<*$PAIr<(eG#h_#xMvsf%!FeT+)%_ZRu;qO^^jLV+d@4JI)$f z3G~GtI2G}Fq6fMLMNQ<+_8z~*l5Jx)*Dzj=M3d^fF(^&l&V55ld)@zLENlP z>oEdx)bUca8vz7oP3Yp2bwVjG(+th_aM5_)%uxh@b(Le?(<3IqJy0uzQ)|y6*8kx^{ z9Z@Qs4#KuNuV(mODHc@1G06>4ekdOzN)0mS&)CCqmci|60n~FfsR~twLy`$D`>CMY zm54b^)i~=eyEHNDueorS+Z@Z*MZV}wgmJ5eFr{)z z1qBX!n)cwyXd|Oyjj#ud5fqMD^pxGjg5Q`W><6<_^b%}=Nq8ucPZLD6EMkG6EzPFF zE@#vW8YvV)F?%%FphAYBU-D_OT3PvmkgL6Mv3crcK2C&J#E)mkvIbUx}7X>Td&FQv>0gw-vnIDu7! zbSz77dZM1ATpa3-#rPx!%ZXsz!+H5|JrWCq2!$)ge1yO5B&>wT=0@B?m~B|?1ywQI z8M>6TL=tvhk*!t2%vSKA7uECmSi-Msx-9~GOf{4U(KfCs363IM7YZ4?q9$;{YmKR% z0>e7}lnHK_>KH-M5`xBaPR@c_WkE?fn!&hitr^fv*8T2$1#(F7Sb{6V5Jq`}_G++M z&XqM(w3=g_vn1K8q(qinrDQ_Sl1N!gY937Vq+Mn|%%WTqq7(ii9u)=9p5F9Sh*(IC zyTLe`?TXZF!o^}Tt*d4|DuT`){CTS8}H7DK#odaD$co!PM8)&uQ^x*k~!peN5S%#gkzzfB&R{xfC1ql$B6Muz2l3)F*0iJYhoI87|N?r3wkc$ya=t9P9R{-FYpZ zs4!)ui3BSW>rGX(U?NsdIb>_v>Xm#=@B*Yd9jWIDi`mXsJyBj($_Y9sKm;x}A^~vQ zs7b0cEqF#}QboK<2eV<5RI8QR`b0WHL`JPA!6HloKqpbJhMP;qFEi}PSyE~xk*_zc zC#c4Q`kKr@8Nn!GMsN#uJa!%LYqdZaZnmN@xYP=)d+-Np*Lb+4FNR|{YC$0cMKP$I zeCg15CaAC3f>;pL0zqaIz+0p03FIdohnD}_`c4A+E~#mR&C&3v<$PSie1?ta_JpOP zC+u)nBrjg8K}du1uyhWI0>+IAg8x&s zJd!~yej8=UlVy&7==a*6Iy!)NsLSD)^hsV8sMD$VFJ`d79rsNwiGxaoLX20Vf5SL{i~pDOT_aTBt7hkebymp>RXg=rl)# zfqkGx{Vs@cRVmGuZ2F+0Y>z2~1q@4wQX$os4k=c1l`qNWavUadgoa0gYAhuOsDu)= zCKTFk@srsq!dG;rP%MW)|H4ee=JMO>M1*t`b}0*0a~`o4lN8F{(A=()=F95}=@8So zdPHynzYVg8@topMhn+-$jk!{C*e=>@{$iGro0Q+x3{^~=DIfsVuG#BI))r?ag5&&t zV2?0Tl}O3{oFZi^;k1n|IkGl?LC*rcOL`=gGUg)7#nXtntUDW}yi3#gLbhCC%eFk+ zj8JsL8lX#!WP&%v1tF2vHLE|IwLfq9BC*N4!}+*NXH}oggcyx zyPTvJ)vAp~1g`63*#o?wP^jciC-Z{l3wxU`CTqbI}Vuf{tLEp^01uZ-1fMGr8 z=|Bb!kamH#l_I!5Zi<;)F2BqgK3~4wGoX3 z7-KR=+lz4+*S+3~Zm$V41>SlmCJeLCXPA{tr3h{sFWQ=1JP1kkiZdaiO`)E$Hgyxv zT0(vc9dlbH5tk|iN(G5H_>WFXm4?w-U$$;ztoFFX2qim`Q(@AQ3r0O&(#%vm1fR9> z2`5@*%s5aSBoT0G&7@OsH0>!%++7R_jOwMM6|2czb^42L0>YVO1`nW(S{lM#v`ea4 z3B>KgGD*y4Ntcv#u8pG9%)l!*6sFCOrxDp)L&y`+e}ej2aI48;fguwDVb+dxy<;6H zYhT=oL6`-CaTGCG&~^lFS0_Nj^o4(jpq%$dzPCBZXsfnb3KTam1`DW9oR4u_) za|y>YwPro(@PW|=Ru);bL_qC$##}d44W7?feN{FYPo+pb1ED@yOuK71X03+hj2TC~ zF1HWmI8&+~w3-x)6089oK&n*;*mz{b<*N8S1?QShRl42|~ozAd3`7k%Vk4XAL5}es40- ztho$dgH`=5IHqOGRX$TNRxk(QW!hmE17N7cVBQ*1aW-rZr&2Z*F7Qemjh6UKhIOVI z3P&kOykKoO0%^BqW{FHqY!HzYS&=>|b4VOqySx)6V5W%EcU8<0FR7H5B;174>>ylKi`^gdcxjWh zfmKVzAl6K~qm5LtQWV%^BILpe0aLgJ1l+_VT1;AEbk1U|e$qqMnRK|$6VX`2WG^#G zl#3;_OadWj%EHwGHGh^>%Y>-PwOBKVSrkD?Sx~HzkE1n*H|HcsNI~&vxEv+bd_LuI z8!JZkbFjCWs#kfg5zJR`F(8R%m2XNurNYv#U{G>-3lO1IZ46t=R9r+=scu((e+U#;B~`1@2V76uWlV`5sc&zn?$uffu2-orvR zr`e2W5(QXe(15Wdye3WOP-jGIID=?0r@7h+6RK6?!dDG?lqJIM2r0J+Bs5xvBj~0@+i3kUp0jEXF1OOjaXp$zKhYK7@xWgI-OaM~HHG#dwRoDdTjzMG*h9=0b#%Ruc6LX2vOZBq#eVO_hlkl7cN)vKnLB zAQgiq0*$6Zyg3-g6z~%&6|)XB4$4`9AQ78Su?4e0VY>ytAFd^+ST2O*>@;ce(|J<2 zBT6>wl^7dPu=QL@jyIUHS4;8=??qXt5Jqz0P&q5GMa4p)o?0#AtX8}gf7I1ZDvK0BUF=w+<^k{nyb2^ zu&_PmahKSH7s-RLlP&0yU8Yb02?7VEoMtsDV)YbsU~80o8Qt!5*^(jNWwSf8dPW1$ z9tTQsnk`sF*ieNMWShT{w9APkp@OHf+X3YZQL0k6G=*l?O;HFS+nO27P>==izT^g} zSL0lcfvL1cXI$AVlgoOk8Y_uh%r5wwHaaE=bWEiPh$+HxHfV0;A}r}f^A4LP zYb2~GK3C2#Q%F@Oh-x%f&y@{Rjnza-Fxd*C>;#i*Q`50pwwACvZPjR{3^hpB5=BIt z6^nTV8^AtB0E}@w9|I&ll(Xm-)P{nQq9v8!$`vSv79x?Xok~Q^G#-Nx)EQS7*BM%5HZL*l1GB|aH*08!ALv`j!ii3jMfNXmDz$ih)-0an39r> z0f`qqL=N1YR5LQj!e~^joFf=9hBFj$m;j#@K&#b)8mOXn8N%6|&xeDraEK)+X*TfE zTrew0rk=044C30A@d9H6vgDo70Ao&YK2&CTtpZLl8L!C_6Ac3(3S#y?exii@j6yhS#0)JKz~r^7 z{*IU<(CcRKZ4(H1)Cdl2grf~~=yezY3@-|ZUEr6Sa1e1g;q*F~JmZP~UcG*7u1e8K zi_v`Ye9X4s@NNN1=lp~D%8H3eClTY>`yku4J@icXNOKs-YV zb}>t#fZO7EfFuD6jW`-bIH)9=S-LDWWq_q&d#Iv%c#frIIFxrgWFioTQ%QG$AdC4# zk?|Sn0}LS$eA!{C_)sKSM*-}}&0x$e+e5Zeoh-maUI|!X2S?oGA0v|GVk#SzIev1WT{dr9LN!Vf@`o&ivv{|TioU& zoN_Vi25dpYN+QKN={7|PXBbkN8b+{s$%(mwaX;w_19-Obtex;U8+C}V5!p(v32?B< z#DNErEckdYNTx9e0=M-4L0!xduDB#>NSy4Zb1-iF4Cbv(|2?3^sn#NGf}pdAq@ z?1?qgbRYnNrlyo^;wiq6Y$Q~`gOG`U5+#`|<_J=F0M6(H9gJmTI$J22LTp(U0_7;; zBLaMt6sbg=iU`@br&(yQFwRwC8`13 zFv=frr4TR)3?va!9E%&~UYRSoY&kZGT0I%LUaXYpFq~0&A!jqOdC63E7JP&aXCZI0 z3OTI6tR;c;fao9X%_YL74B#PTB;a-W&_*@YpbA6;ON01Oy$rC4w36{qy6#TWMU#$D zc-}CGD!h_Po2=#(g9EoPCg$a)hFT@q*QDfzB}x@hIFH!tP{nLf%L2)(I?KmEmkG*T zA(W`ETxd3hh?pg_{&KP&t2A|pkKtikK3edXsEmbC}I%U9yz zQb`SS7N4JG)RH-jMS(?Oq4R+<9wG$8)P!8RBUzI3b@1D6jBJB$R-A^WWBD2vb<_of zS9z|11`c?BucYvCA(CPe$r$Fh7{0xuNC3(6S#b@67~N*Fy2`~`s)GB-24Ma& zhWi>;qtP53)vG0oz3o#@Cu9bV$pYwG7&QSkgj8sGEqJiDN}4%$;C?u$<~wJ zYysHv4b<yPWrW|qvBE>RK!ZC-F+_0-uOwY5^e~vRKuaGiKYVzapXB3BIO%BX{rBaK9} zo^k|2DIV~7=28O>1$kQ_0iKJM)U?9oNK}fV5h$7Tg&Ka^=26P!IKgB{swiqI=8uVN z3Qph#>bpZS0d!C`R#Bo(H3AdhgK()b%$H*{uGIy;EQJI@u$k(Ctj;1_!A?QOEU`*7 zAIs9-I1Lzu7-XSz2@xzgEz604Sfolu{4SF{Ua0~`T%;>hL5t>PC&o#dV8t{y3u#0V zC~qoKHiwvkqriHSJP5h*v{e?hgwIqW>SV$YLyAJ<37#rCW6iAK0X#|q7zqjS#3huICioDnR|Srv;d;YyNP-VEupqLDF?@&i(;JaCY5<@}e9mt`fesX@Ee6^`oK?gDV2=MMBkNp%I5do*d-ySZhWg zGGkUjf}JB{SdN(>jGKLicjb|M)?$fECTt)D*6ah}cTcjE2RU~&1)TL&8{qE}kYy$l zHe{=2Hl=?xFehfS zM9~(_fLt4uhQX%}DXR_22g|ZK5l$+sn20E@S}2+D*4+rhmHbiK?6q28+HNhPijwy6 zIgl03IjRJqx*=MwV7j1lS~}+-f-xWLDb}qZ-%o1P>Je|D9H!}%Vq}4%Nmtlj)onR6 zUZ{i}a5h;ZBk6D|O9`9{rUo(jEpa=xg@c=UZC7hXn z?TsKHzGp=-BZC7hzY`43+B^LB!dWJs)GE5Mt*I7aSu0^fk5Wa2cmdG_p<0SMlAc-# zi!Rj7p`emPVS0*uEIpzC2xm*V9(ScH^Y zva*p-AgWLS!JjME!QL6*2$MFu$kgaYv+RimXinCmDZQBFBAP>>0uc%%ewQ0*w;FH-0wB$|#zX*;f{l0}s|hgN(R{I@dl|x&sj_i7U-A_rnu|&r zNbCW71;wyj!%N1RW6d-VQo+laI0&pHDnSgUr4PWIj<};aWawzd0!IP#1qev zMAly@6oG9MDMT0_8uGY{4iDjunrtp1)vT!?Y7vb`!z8EpNhDtJ`3f>uF~$8t1ygd_ zTBcGCq_Ymik0;b(%)>I^+nI8sD%(KjoIlP)*|M8%DhZ$il9aAg={p;H$#pR!An49n*@$QlFl;5c*aX{#9sj0Yy^$+C7lH`Y+$0Kc~FhI4vCAaWUSXT}gdF_Z$k93l$rspJC?XR_KYdC@`Ss?}l>wv=;Z8$i|)1|bS; zU0IYBr3nQAI1F(1CK$on4Z?q<#n<+w z&;Q}G-0fchJ>~=G$L?iqJKOQe^`j@+D;QsTKl(Z8y^p>Rz5{=GCy+ZCtPlR?kuzSr z)E;|l+LT-Wc*^;!Y{lHU*Np7aYizIX$XxfMy;jH1ozt5cl>6+IF=OvOpJE@&ojmgL zo?XX0+WWz~r_ir<|0r?g*iM6e#53&LCm!te+2NmE{l=jSKl%LOx3>=)viQ9tUpBt` z;^AH2y#L<8A^M{II~MGCZ?LxgmU6e#26j66=eKt1%&<4FdG@C5MR~|WLk_H*yuI}D z&NunB1E*cl>7=jvlH)7?)qdTZ)E~V^zVNQ!y87u2nv*Z>lUsKZk!aiR^T8rSs1>-FT*Plgm5Z*0t-4M-FV;@X5j<<1QTz z>diQ~vGwrAmp*B!t`2Q~Vc518nABM}-Px)0J)NdJTsWz%YnMY;o_x-bk6vHD_|UtH zpV%86v+MJ>Mvwl(Mf1CyblREm@x#APURK#LWaGj0YleNZrYGO&8t3rEo2QKW_EK=a zlTI6W^VrTu{&>!jS8ggVIe+`)*8P(M-?V<#??^&#J-p95_AG|F`RmR^N*k`-_xXS$ zpKsrF!;W2VzCZa0b#xTFocGbZ;zL6|es}PfM-DD-y>8FLT;G@8c;x!VY-Q*#P6OS& zYv7J4hqf=+Q5!T*D#u^^PMo|~9MNgtyHn^<>py-z`_<5shQ2fH7U#Ld@b{9Jem?2o z`mg5i*|tXa?0)~c9ooM2mC@H#w+3gw^5tiv`qf4c{W`f};_&?w7jXR+uIm5Clg`=v zvUm7y`|vM5+4)=D3imI6W_vC0@PxiMZC$i|+oJdT?;PRPyv-HkuHA9rSzum%e(OMU z=S5)NHXQ!0U#pr)KX}=mIS-tC(rNdM9yn{tp#_V!Ef{-B@8PZchEG0t%C4QGhhM*I z*In0taYgCX+fQL_3%~ip{!<5hPwd+@pmi6Ew4Sl}+cP$7Jo3%P_ZN)tb!$o7czF5e zOD|5M=c>9>qx1_!~`|9Pp(k*+_?8O7V|Mh_T-@_;G!Y2n7489sHhQ8gGkLuMj zPkLa;vLT<0+cx^H0f#U0meg$CD3#>}kE>+uP3RK4$BaBkx%B-PWgfzkT3xc-C7F4?ptN z@JZ{t^G6rKN1ew9o}Kpl@a&T#k(Qxz5AJDc-Lv-1&0A)iGPK)rKK5MV&LM}lwQPKQ z+#lEe%txe8UcB?-#bdr6(za<7ZsW*;EA3kV| z^}c(u*T3F>TWpzg#h^vstXtHl!gIM9cQnp_Y(}qFBEvRCdY-&`r z@2(#XTdmo`0i z&d|-L6rS7tfW`UZo(~5-vf|>WCoF3{v}~EH-|CkiyLsG^X>Zv7xKtkY{DLh{KC~Vz z$pP2ibZQsZ4Z9v#cF(fqx5ZYy)N9R!O9mWXIpC&Sg`J-*+5Wb7*z9#LH!8EEEBeJ> zd1~35wKwWtH}Eea)f92wyBdFKXu_2@%=2E5YvX6~B#E&K0l`LAJb**|&R zL%(#vw9RL?=!1vte{b0#*S?3px;~rPzUR7)`#t&>f9SgJ>BR@0e*2R7trwUV-*Eb& z1>5JpD}FU$%BFrtKI`}JqMJwBCii&u{QcnvN2%K`J-pezKwr4+rtM&j4j89hc)0)5 zw|sEnP=0ojTfHH+=+lcAy}Iz=h8^#t9RAq>Q@Hb{UtYG~@fthyok3$}9ohWk7k%Ug z$ESXADuB^WCtq^j_ai2MfBL@H2ON5x{W<+=w^OFiUbOB$`Puy}G0n8;!eO6YIQEgH zvj_W9RdM^UrG>$tFWPn8;^$p^esP_0^4eG3-p~8oI%As)yM53LrAz9|-rBg(c+?9n zwJLu+Ip0M5h`int9yV_K@|B%`zv%A1iw~*#=H-vQcBy~+{0p9cZ{)yjoa3`SzrAkz zi;tE*e)Qs>_4&=)qprQ?tD#}f(D++Gp)E>X{D+wrpITmZ>D)CpR_a{^aYu z(}o|I=D~ikHtcWt^6D6N);kxj`fS}i{kh&>cRTxzwrOj0?tc5+1tU-H+vSyB{z)$^ zZ}Cn$|I8src1>=%KNbJhUYR_v^{i1J4&U_6qv03%9Rrt^n|}9}yI#?U@6)e(>5K53 zzMhLk$8g`;9?PfqiUjfZdaSwilf}aq51N|~iCp!nee+&e*k`}mWz-#;W*uHT>!tgy ziCi!v(sFY1#&K6YdH&EvJKwx`gP~Ht{BZi_+vnL<4gOS|e(n5M=GJ!~T(sk0mpx0* zKCqwqUD$AQ*UuZ9o{@(Z#?G2NVeI3>dJi8wIdF8H*E`SoLkrIx zJUepj69Z-qTe{{J_v~SBZ@eh-)}bRiT92GE{W0-F@gTL(J;_S{jo2e^XqHR zUA7iGJl#7q-y_;3BL+_CzahNbLv&v{w~ML&;VoW$<9B^Fj(uX5=doTF4@^Y2bsB%e zD*Kq$J>h6eL|nJUoPB@y2amix_u~h8t?9Ied`B5r__p_hgR0wl(p_d>y5X6@3$H~@ zlQ*UNPkGxp;sZS0(lV3o>O7S_?|}2dw+q)iGaB1?%dQ*etZTio<^Bcwj#_iNZOoLH ze}C`A*x=tWPgD$*wo0rHIHk=R_>FzwwyC@O7e6Q$$BkEag1JT_>PeO`}A z*{P5JVQv2*d%I6rKG|3%i?97S!B2_pa{Z??HaFqXUkw_3aP69&XPkDv=v{Y+*wb5? zh6j5;+a+}$%k^0|`G(Q0hEo5c_sf&Q*9?5JF@N+W-tqHxn+NPNSLQqCZ$718op}7< zC;Q%RY%c0O-%>0gs4k?ZuH`k?rkTPDuXKN@z)ksD?l*?8ZIoyh@vlXtGPbvw(q>V{`Fzstzq&h+o@ z@!5bbbFQ6pd8l_^deqMr)TW$1>Sy=X(!F=x`P6NbCRApJ~C`0&hWrIF+FuTCxyd-w29COPDtF^MrBjA{IICsjA0)BgO#Uxvi+Z&bK!NV)l>H_i4PgOt@!9$qc5ARKehFP zMe~ka`XYT`3HrW^ z>LlUzo2u;Za?ibFdt}kZ?wfZnt35rt)_r%6+30@m=AqyI`ZCwn6&uH2bj7RF9_m~U z-jt_aJ!@#sgWcA5y=sqpGTT}F4OdR`+x`zF^fG;n$llF!4ucd|iEX;uXDz zGGpp}au0{JZ?>&{uet8U`xkEw%~G-T%Ih;{d^xo5Gv8gZapxtwKD_tsY0Y=*FNU<~ zBhR>W=Db@L_qz7kX+1+Ne~A7*cJ?k~UgrLCMBf#^@73y_eqnXw1tT}#?j96;N!zmG zi_$#D2UC2-m+lXD56)da)%ii^$6uW^j~v|fj19hSz30P@zlt_6wm@s)8ad)tX?|X_Trlp?wE4N zQ$4YDRQ&evm1Fgj=2YI^JpHMX^5Dn^=dFAF27~Qj9aSx5AWs1RQ(UOj2|~?-l$QZ{P8fbntC<3r{+ahot?cX z@}0Ogb9R0ZcB^yC%=tat)m)`>%iY&F_FlJm*L4rPzrvl0x4wR!_WaEKH(@Lgqp*v`r~x% zx0l-Q+%L!WY&m<+#9><|`UmX2?DPw^cpQ!>{7L;so;hkt;M`N40^iLu z=&G$6zw=C+>c*Cp+TdD@I8BBd<9Yy|8WhmD~5;vEs@hdl%EM z?RklQtqr4t^R!*NZ^G#M&C4Zk!cIOwrV>gw_@a!^A4shfG z-0jY;!{}z_zUsCQd#tnnhW?M1|8U;UlUKaAZgObW4HI8n#f^BQkf(3I@x1qDzOW{= zY03yU`F7{Ar+=yJyQG!RegB(Kt9g{;PW+9%3*Nl_*^?eg4j;FC#jU1weV^GoF3r_bNA8lBNv-Sy-&^SQ+dS?R0&i?`M1Uiir`KH3p#c{H^8oZ6%p zbMI}L{N_DxyiiK*NwI|io z{nnw2H)r<{lRv(9@!?qoyZ78*EwR1z_64h-wuDw)c-^Ay_ugB-`a=Ec#;h0CtMA_U ze!bpjfe=vofTDgPIEN$63@w-*KMtti2$zjEF< zVc5$nN^?#p@Bht=y=bd*;Iwa^dUD#zwZEGpHSc?$hgNb5wmx9} zx&D_XthK=3aQ!6iOjP;qllNj%haWh1#f3Y9JMJF7H#^+Yc<#;M;&l(n+kU_NrLA{$p1Ude^s)zc@996y{!JJ1{^b+us|Sq8 zA0AL}J2ouZQ(m;_>0im8sGIjJIP~a4R}Sg=VCnAe_h|p|#Nuty{claWam$wjZ|5=h z-p=ga%@+lJPj!7`dbj>_SI@g!On*4)`|e1Oy}wc(-{v`ZD<{qHEbX^w^Lq~sxNp&v z9qs|mXAUpDZ{noz?hL=-+XFOq|JIc=_2GBy={@_IMJPX~x^vOcgI|WG_Fr@OlH8o< z@3GB&*1p)G6fXR)g_O;E_?*jbc=)AX4+&aoa_EUpo7Y zd;1MvIC;^9bGHwCsKqzG$MOeyMaJJaI{8|!XZs*ClJojT-StmzT{5TZx>uWbp08kY!iz8#aT!l4#uN zzWzBjxp~_8(K$B`KSO?YB=b&>aCg_Q&b{=>OOT-}EvvU(xwN$IUfZ|{cT8QhtlKFc zCWqgfb|)qdZi-`Hf4Viw96^X+yv6wDPVEV$pe8c0_apN{`+(@{PyU zC%-xU&SzUTeAKIIz9s+I&0{7#`sDeihfYxsEnN2eJZrei{gX0xEco4)H{)1h{+MUt z<1dazj^w8y{`D1qea%=O!XF5gV?>AN-l6H<+ z^uf}xQ^$WCxW50Urw(d^rlV`G`DDtWiw4b3?)YS3npbc6kIvVgw@Dth>!ERHY;0Nm z%#mwOeloP4-gmC|`B+0*I}ZJ3$!Y1m8$P`KO!|rywwKhcv!|R#AO86bJy$j^x^dR9 zJx`x8;I~&Fe9AM18`^LTeCnAy&$zIs{_%m6S5CY`J!j7n>z*lhKjQ!Ooai$3o!8$Q zKc89hT+Z{-rc0)68h;J>M88*OKCBMC^vj3WJvU+Plx2N3z0%t9RXqP2+vAJpPNGMg z|H!;udlvUha>DXuTc7WF!Qro8NcQd;AKxQ9kGgv*v-#TDh2UY|kO|~@U-rSCJ4mkH z_Tk1am#sioUAAHK=I37if9<_zRFuoMHVW7(h(H4plnjz3DLE^&}2-syUxI zpQk2=h0Y(p8C|_bIxwHTwVj;#aJxZN)re6a-QzVxFpox1C1<W9JW6C; z@Vs`xIh}-W0!PP zwR*TZ+!g*?Q~I=g#9TtdVxGW2%1hI{UN~(%tX`u<$BtjGBRXX}L!SFUT)|zrj3YBw zx$oFggXv@|Uw$Va)gwlQjSt*=nqtxEy?w2PB8qjJF~tSHQ&);=c)gVF8E#)pZ+C%N z+)k^s;tJyC;Zwb!G+U+KhZnzIXhS9x+GKA@!Rd`zH<>;h9+cxz(6!L?mM^ODfw5of z(i~K`FusOA$ix`PyODP$6wAYB$UNM`GrUH&m>}Df^zh76&2Nn1hqn5*kzt&C3A5cH zaYf5+oFgpnkySku- z92%$E63x9bO0%(Vq1{i4w8oV5`@lPCqT_nv{D%ghHLar73rre8t{N zkI=FQ8he;ngt)-Q3zur-B>EH+ZC9^)J|nl!%-}i^EaU(;6{Ti$REF{`-_*P2U9+Z9 z9M~7p@V=3ah{aYgd6WCM3a1YXzj+|_5j4eb1Cb+|6f~mjsj@am(@D)oyHaajJr|`C zVlKzoyx_MtCIXWiYu7%<(anKeTqzw=BfJjJf(z(&Hk`w-8A~X3cVq=-Cr)1B~QcvFiX~ z)G<2;?66s&i)=|3VV}0teaBQYJIs_yff~kZwd|U*mGme|V{F&V+dgwMGc2}N(JL9= zQF!vKhV!TfdBvKNi}OrkMJ>%LH#p7Z($42FP)Y`6qYdc0^?p+d%8TiU7g}r-y3D$+ zIh)@cs2D>eV47j`*SIkn8i~iI+bGYM8Fkt6UqsRJ++=2%k1(IJ+!9NDUUI`=UW2Eg zujH>j71w)a%q4|_?~VE#VQH=U8vDn{MD`LrUf*P-JI>h0$p$7e@VmR#;8v^Vs;Od-*%4#^qKj7Fqm8xNHV{} zaK)Fv3>_UeX)lOk@l^_h7sYXAWKKVF?xicz*4{L?Ol#MyCg{yuH?p9IdAZV_a}3)m zKSz7~Dh8y7A4G|&hkd8~RX7~K#FOrA@KRXet9OXGvDsKcuSH`nN{GPM|0G(z6whR4 zB2PEEKx$;`u+WVR9i3gMLdt;2(aTy=s*(SkYW`8NK6Bu}odWKf+uc{AakE=4T)W-C z&mzMak-}Z%R}r9naLXm7BBsooBgZn0z<3^NfxV<#9jt zCexSqBHyB%?9BVD$R_QUk;*2Bca=gq`gPt9V=JVT$3+aBM)MMFVkkIA=!$pEd2|p* zyb(rD;yPv>g+o+XyT~D`RF^}}a{`Co9IqqOubF1*Ss-qxFV_o`Y>sIo(x>BNC`Gfe zJL4KuT2RF=LT5w2LtE^-uk0O<97YUeYf#xeo)XA&YJNkM>+1eF`9WVt%;h3F>w^6? z(oYSX2?ccKsQ5BlrSU7;%!a>8OVdM;4sFus#^$MP;73~hTr7rm~o)q;% zPbqJpQ&;+Q$7Zii_N`pJ=N`)II|_|0jdGE&7}v8)%rbJC8lWmzJ;XRCZT2BNIn=8^ z4#(xtm;6fIjT)k=saJH1(+E62t}{@@&K~`>Jcwt)CuI$<7$3*25@r-xlK1jcm{+H_ zH_fG5l%{qfRYvCAqaC&CyEmBZgWeT5T(=p`6EoLnDRT?yE-rmt_EbkaBsH$68s)0< z88%-ay#OzQx3X^TTymAUUF>B+>JHo2yGA`(ZacY5G_NKg;0( zHFMw3GAfs)=aUDV;z>J{q6BK_VmJ|E)s6TO2}8Lq63PEqGd#Z7}MQLI4JLqPh0+6)ZONDQ5@ zwR|Ze&&{Ms+x0cWO`V%YYeVZ{3tS-$nyM--CVo}IT=9C_*GxH+jAo6t%01Mz9@VS% zh528Dd{@Ek$LnFP+I>)Cr|~V*o|sO2aDR-iE?l<;Wh))W+k4}}c&Kr`c4OCViowg1 zl0!qn)}pRYr30trtLPuv;bfs-8n`F8{J2I}T;^@q_aO8AKGK5F7Gt6?$4N1N$MVEWWp-o(~Ara$zQYd>RhHZe9?d|~3S;+y&q8Ct}0 zWqrmrt9JI%{d7qjP5#<{*3bI&q*mtm;88 z3rk&su)~H8sjj!=M~b=AxO-7sn-P69iskv(A?hN z+SM~KiLs_ zgpyX8vsJhulX_HM3@_AaEW(s}V8-TuHNckhdEYqHFlFw${jCK^9bB8Rl&=z#^Xwt} zge?k|+BNtY)F*A$x=|H{DS5_*;+ta0Y*6H+QG4>5`Erl{=~i^jGa?t5$TsWn@JDXA zk{xdQ>B-R~d~Y)D6ZfIuJqr(U^WzvRxj#Palz@Zi?!E45VuM`#8IPA{dxE|nA{W97 zh^`Nc6qfbB&kXfsFdgEm~K*YoXC&!aN9`b=QJe5HD`Y>RpXoI-kOR= z32#?86ygqa1v?gGTpr_H^B$>rPeWw#J6F=hAu4B(v11+osyZSl81b@DvGmkVZ~G(t zPR`WkLc+6DhsB)0bYI@Hi-c-}sd_;z<^4XWhMIavtB%Fvj-dgyNcyc&wHNijTaAjJ zuIBkWjHypzqmUI-8pdx2DJ9ctg&(D{qqG%95#mz!R?$RgfkLVe$OwjCa>`oI3Sej* zX7Ue|a;dP%#3CJ%qr$`NTc^axedyS(NU^P4(6cqSt|-_AW4W4cMEygF4qNFF@^CgC zc+lguA4hkdYe{=FZZrJRAoO0tg~hX?j?M1n{Z5_K^)H}zpeexMo$UE?+{YrHkmj{DyJPmzg1rSu(7K~jF>@;e{n{S$LEB+dd5rk! zLkjfR25g*XJnRMPhwiUJcadg}S&fL?`#4(W;WReq1TzjqoSjjih`rEH-f*07+W+h% zd9T$;lhg^#JKh8%kg0p8z{#Q)y4*Kl;#2ncgE(U9BdyEXrMthlL*Ms|DXICEd%db4 z*NtL~`#e-6@{miJpnCqj%EIQcb%Qyr?oKkt!&3NnI1CXv>a$IEzFIZ~SraIifg!18 zNFi1I`s>wU6DLgaOXi7u{X*q_de*NN+eoUNVRlT<2_jpPRVka>@GdG>h4uksJqbw=6pW+2?J~#@R`pY-~ zK{r8~TJzKzNHU)(h<*~pmG`oHl!Ogoe-s3OF_M^Cs^i&pVdIG(GEpnPLu9=VG%3w{ zq*CV$;Q7D2L$GhcxNPYVm&-$1{_?;37gZ3{Ko__9Mrak4irp8?ozw%>y)2PB0v8sh z01k$bk4tQS1SjCFUzwkQn!lKXnjI{cdu;EdBocnB_x?Q`Eom}^KDECm#`q5Q6UZR~ ze45Bp-aU=synBkumg=fQ^El!D2*zjZP?*1k)wuk%j8gn0Y4{jcSF;M_6DXfKnrZx; zC{kHO;{itof%mY><9lD(&Qz*z5MJza!oG z2_KJz?U|oxHQ;4^S}1$n@m1p*^Yrp*x0c;bBGJ&Cd$L=nutg0?&w5?4R9EnxSbS5r zKG=}UNkG_LHEj zHqrE&a1uzCqQ!rUo;m5SeR+9#GC|0GVxcQ>GJ;NGA;REhi#r7-hR$z=p|moIp=Zwe+#q=z@P@nS=RsxqaMtg@Xy% zj(TDk=6PSm!KnN}E0u+0w$M{)l0`3z3mJCdk`8G-kAf)5((4zqO)em7A5IsWRPx$s zH5tFO1IflW%T6+M5HX#L&+hLJp?AecV=(RFjsD#t&@z;iT5K51C=U z5*7jkN~x=(!J83q2I>0)uM2FSr*Kr(%zw)FGkZ`cyiUnyE~)YS=t9S;i_kN@-iLpbXUbYr2|LCDcCp1R|e56Rr->%ji9WmmiE@)-XRtkgfgc&gu zXe9jt;s`mBl5sRulKs=pm<97ZIWg8;KIm0R|47a`TbV3-olH%haxPz&@o%X2qB&hco7Ws zrgljN*0ag=i+iWYQzB8(>kcj9h?Qq^$Cu5mD*XaOfw(R7;Lz;l%JQe4;aInl$*WrIW%zVqkp~iTbgHdY^Bf+>&8V$iOa_ zW&m8l;r_!EZZ$-ZL`jHo{C$`CuTi>MMGsH5-#^=<7|)*2un=G>a%DxuC^!7w{9VvKwI#-kM2Bg?xqO= zr#IZIEdW_2wbU+dk1S*AWe5H$b=!^xZ|)`tNZHd%I}m*ST#d$W@zgxvSE!;^etZ;m zciu4OdLt_Z9OBNtvoPfFX5&64TG~O*G70$mxow)d6dYW(9RktoYLnTy?VSu0u6ARE4f%j_WZ)0qq6%?2hj ziYrJGNJ_>Cw|=Gmv2%bC1STSxht^5ph0cc*`Ha16AQ&XN<Qf&YXyPgB1m23=HWM&Fd})*2lJUV_lR2PYP^~-QPF~L5=v}Qz|S8R!d^X99X}j z-=-9>L6dD!as|(UOcqh86j#lp`4Vg@qUT9h0#m?d@$tavlCyjTJ`#)D4YL&Nn0EWu zx#z(53m+&pycj49h8)jOnS|zmeN=ZzQvJ1T53re(M8EHNcpMg2!)T zoXISY+kP1oyZ~?jiav(}gTU107wEI^rP%G2u7-+B!tR zROYt1_3x&sfgy!|X^TLf08)6sZC6 z_a>c;-|=UY(nld>irXa*+b2q`JKqOy7n#*efN=GG?zhw9!s8;4JQ`Q}pPk;+E<)y1 z4&`oDI*c!LCy7P-KE{~9Jtv%lOsd`NHb-AvBwUD4VYzX?V_>Y9ESDj2Z+4jzDaq?^ zr6vzH1B(k=mTClc2D~C#x0vdjrt9T{*CuO3NShCh?oC2=K=>#7^3;x#kc!t08`s7w zojg0^_&mcXd6bv=XQWjSCUE_RN}RHc?JmH9^dd)uQZY0jX5e+__ak{`ZR#d{B_Ai|Pyw#gMEL zx|MM_?NMaDO_K5v9*u!Dnf&4=Ypt-$fL4F|ff@kJ=d{v~ zv>bokwiC3$Jdma*>D2)_!lH3Nqbxv|B!dEOgm@Rh7ABOPg#rydJ+8bM6$Elg8Jw`R zh;$Puhb+JYIAlQ}ISF#W;X7c5Cc{N_0>!Nz4^ITii$Tq!<-^8z-n$r#MfjILKdndH^ z-Z_{BvgV)Iqd2^@pQ#eZCSw9W6q{HZ^nW-y(;O5ny~6WIA(Fl;V|JRuaD2EM)L9m% zUJT<6f7APxAuSg7@R>ZYKdBhG4r4DVFnx2{NTEsGAjboqzUl|fZ|3!?jgZH^>2lxf zpR3`kJRi6Bg5wr=Yb1-u(ApHw$K>q74t6o)i;((PRr31)QZLBYO&9q&q)@ibOh{wG4dCK~3Yehtv_;%SO4B@xUE03gQnPKlLv2leAecMSh0a{ z@}tJc>!;T*ZpvJJgJU=Hd=;emFAjJ41AvexfeYjPRFTI~d8mp={8~9p(Ue+q$AVV$=^NWBb!>w?iqoCk}U3q8pCHCY0&4 ziaxva>UGQ`veDr-nZ*U>b>8Mz!c*hSVTgR`ouQ}NHS-7&9|3_}kxp0J@|o#$uZ+>t zpVR+k&=+xA9!grS%34tYYU6s=TMJzw&kRb;jBYuw7MtgDYaoJZihqdd!Ky4$N97Nd zU8$~NQCE;5`6(UJAYq04)FFaZ=&mIf*t$9!f*uh7l^rgb>gP4@S6(aXqq}u>UM5Ab zra47y;dZ-P_ss3%6Brt+B-ouY58|saBq;?~e5uOlBc7SQ?@U~D`&dFWu9pe_Y6?!& z=9ijaV)Ymhktb5x8}>yU@eF}<8vznbK9#p~OxWFMqLAkEUM>9cpFVn1o4!(JV-0m2Rt~j&36Km?-XKBXB>>E50z`jut*-?n z56F(JJ6(Y0;^C14f0G*DEZ`{#yhHn3K9^K$gI-SfBJHsRy+xl6{?*qYJaeR^F+lNw z-)e^|{j@ly5y35Z`L~Z~+kh?w;~)!JdZmP3`upHbYnAO+vh)gG2*egou%WF57N8`> z>;Go>KYo;qGjcq2-_!WC)fgXj7i_Leddsh5FMw}HBuo2@V&Ai|+b+$1zY;fC7dJ2j z7*gZ=OuPg=2pDr4dNC=p(_DjXuEeKwk;O}#kT=)@&^3)-5_||)@?8DRb-vT^M4Vwz zTCoQ1u#;@=Ilh}bPTw%;QcA*?2C2Zc9HZlLQrm<;S$XhAtVfw;Zp@&MlaaIk>(K)U zF}>u{aDmYrNZ3d4<7*Eqo{r8EGf4lApqCm`G|}y+1EWYf6Q6NRdFICCmwit+ zUhbg>$0k<{wl9nDbZiAMb+r44fgb?s(~E(K{h98q|Ax~9q|GL|Z9eeAW$bOQ=x#pK z&%K2f4O0%_k^^R}ywhO}#d&Z9;K>5ASKJ2tAIG!PlW#VOB2MZN1|VHY#ZZSK7KgGA zBk3fBi}{$kH0Ob5`BB0mrs|L^?jEXmu+Mup=x;>JI5xX`=iCWUrvh z-}Q&+)EIAMYTPZO+ZqM-w26u$=?+aMshEkX0f&jteYuVVp76)+<3s^`r)u+S3ts`GuWuY9Kzq_3JIR>>Y{SO;_NmU=)GU36m2{oPE4q@!T-ie2u8o$l zlU9V@=$vhw8y z_A54u77l#YZ8?ZFadZY%(gZ5>E|2ji%e%}|W%38V_0GgoWPP@Kh-oq&Sh%K$w_`7kyvl zt`J4#aF86euX4}T?*8_!UOFaO97swS?e(kW0O{Ww7*3z?Eq}pDn&WZ7z6V1={y}IG z?+bwfP)2R(OMHFpN@SMWk>i;2DdMawllAI{*z}~R6}D|ou2g(EXa?ycL#)ga5o7^u z(Aj$G|L2F|{5*XR*(_yuk%TbzO5;*mR`z@@ri7y5QEORd$Kymc#(}b`kYGgnyxP-{ zP~i4-S8E%okHh@u*aF-^^${CFOIt+g@#sipQSOlH?8oa)8b2kTP@Z`}5*{-`v0+`l zy9MzX>zU9!y*K{TM>Uwy&PU{D>YWXSgn`1qZH=cXC;ut!;09kP!aF1WAx7jzbS8`w z#l^@k0H%dS)1YFe1edJO>(@Cpc|G>L`%42BY`<>Q1Oo)k5**?N24G`A9OPevDlJK1 z1hBF=-lWc*{Yv(AI-xNCb6^$>9H}I;jg_(~)-!F|*b@EUKg#`2k;-*ZWpoSJ3u+q$ zJTmO_g`68_#Ek?z9=K-}_;GnmP)=NCG!{d*fdmPDEd9L<=WKTRGl3-?gi$jVM2f#~ zBGiE{a5eY(@i_T@L_%u=U0~LAe0fj>rH{HJz{-o=><4#Hm;Td7qZPd-PForVHu;9{ zr4a#R3g>9ELvAnv(1J4?kl)yF!9)FmS#txCY{nIQRcw{pinx7Z1Eh`&k;Qr2*Ut3Q zg;QMD*Pi>rG?@6WfdSH=zwnb~1UV`F9&6ya&-_G;2ju{jXY*L^RpJ{yKbE>@qR!vwVYMUf=G&%f+BJ?9yXY?^|V3<&rsG5BHg= z7JEhwqFwX)g}Q*oix8-Tv&FSP{!M(CsUv%CrGf{Bs8owTWYWa$HRjJzNpJiWW^+O( zTN)_7l>3gw@|a9uak@UX3{82<@aOLD(P;TJz2o4$YWI~1EL`_?JKlG$eDsZseVW&# z;+B|2pJTH9V(uvb{h|^cGfl5oe~*?a(NSLCJA2%2{Q+Dyg4YAOHbaJzQ)6YCr*h)< zh|S8t-#Izk;2L24DpWr#=Y!#`acC zlS<8EAtE0-JlI8PSa#M)BA`cJGSLCSbH|EUS9x|9bO&=n~D8V8H< z7R#muN5-YL%|q~%F0s91hw3bLZfK|v2CG7+m~eFzC|0%X&bEeOW99-9U45z4r7i4x znOD?i?I{}8Q8TM5F@&$GkLY~HUA=O3tEfpq@^s^duYtK2dcy3}r28AsHV+Y##}AZ% zDz%2Z@-?ebl+#(a(aGQ}F}gd~Rv;ACGbBP}I<%;O6Ur+qU|z8<@4i1Sf#!KPioH_` zy$^#A620R2TyiW0kFAi+8nc$}E(7rPS0%EptpTPKz9o7rq1r$}flg>f>@sONy84)B zOfdhfXWVt|C?uANtNR)o>?UsJ@wXPh&pSL-CuO9eHp%6z_JOzUSY1K}$KF=;t?A`A zG>(e$`IAG3NK>j3%ICH{8fP0?pL>1ldlRI&3sUq2-YnHawJ9L+)(e&Epg zV!WvbwM~&&b8mz0QpZz1SHjRPphT28o;27zv~kVv>hb#&IT-W6JZ?DuTgWB~L2fp2 z7{}gm@z%ALb5_Ih=BDS`lvE{hoVn4CP-TUYEss#zn# z+a1B1wHL3eg}Hoi@Eici`jp-9aK&AtU)&Dz9VeX`L|UsO z7D8}V9&K~CK-CY52hZN9dP+UeUW;&N;F+10&hZ>!JHkWbqjsJ>#sc9v8L5gF=?qpUafX;pibA zzcVPVV^wWms4HN!zk7cGIdS-)_^kXQ)1gn)MGlaS!>GQ_hircGKMlK)b^Gmy!MR<* ze+uz|N}-#j??3>DLuFArck60|H=H~Rj%*3ecJC$&Gx0luSVwwTod251to+VBDz|=X zwjFi;yib8j##s^~&KzL7g72o$ z^>aF<(R1+DDF$D#OO}xtydgL#gwq)~lgQ50bfN$FQTdL!UG~%DSpO1AJO>a7EAPgL zGxg$t;CKOg+4SNm-6z)@OE*p(aG3REEvgp?vi+v-c~nly4-x^lzWz z_P!FB4hA4;CEvb)hl`EXd<6d~(!+v8ng;*53g`;3hA?2e>-zy}qH)(@2N3ALiDb?< zAZ)4uiU+TfBY!osfqLcBvq22qX`#xqAB%I-=K=`JU@&{R?JMvXjein>OaHOa{y%B& z{}9jrzYWUiD*Z|5#OI4@H#<~W*4I9tn4tDHxBkkr!&3SWosHn)&)3sT${vSHc&?hR zz|#VsfG<7t*_jezj1@YF&zjRTHq^})PwqF<@A9Ab)2Q3dTW@*oe#~ZNa z{q_ht6>+;L$AhPTfw$F`5OT*~{h6!#8*`4|-m`Yg_+b3X>1KhTm#(wRv9NXz=a zDFDJ#VC9v6$`b!20QeAaLUYl6d~CGAUnXi3*CHW!6IUXrNG%bYxtz8)%p5ZAlIpfl zqpk1zcTKg@euTHuZXj#^#`-@BtF`i^+2ES&>7KY$J~!RW8UM ze5z4eW8_!En?G$`+3VzMn7~TuHg1TLcG9m0T)x@o!cF40{&I3>#A3~SuX=>3nv;K)aabzes&6lN}?v!%;`*b{Rt<;Pfl8An*x8 z>0t(_PR?f(U)_GOT@B0d-IqoNk+aI)bVo+C|L%jXv!FpA3^{V=B0)-62g7#SW$?n~ zZv~R;wc8Y7x}7&=CR>)@=NO2C`ljFJ{I{Fc^pvpn{9u>-o);2qn*_U8x0{aViN;`y zXEJLn`g6o1YTHjk!Isk578j0u9e_soAI~wQlF#uy|3bJ>-Lp?u#9k&}1*;fv>44jp z_8T;LuiWoA5q8&+&G7v^qN^jtqCIs@X*p1~86ZxYOUmw0+jjvT7Jy-ue*e3EHq6=n z#l|?}?>G7V$S%D252OW)78ai+{%Tf&gis!#5YcjP8tx-OK9Cq zo-QwD8jzy%G~hysgS=vBA`4X_gCGtkYL211X`CScQ;W)=2P~Vc6|a-ilQyTV?}-Hh zfOjwdc#VSK2g*zj6&CucCKS_QWykHcV{GPyl$?OKcIR?+oE&~$_53zHXQ-VR4k^n8?IxmPH*hdbi(y7W1LUXrz?vaZ zpg0)OeaV>@Vtf;veP+|VH?o~zOr8r_-uUu>OQuiP5#S`oCdd1v+*yF5l~8MVCjs8i> z?c5O?MIz`DRxQZ4i6RW#zyfm61ITPvfWV%hm54_8CZ3=Qfy`h*bn)HQ z$;2Od)l@vj^MefJeSQ{zuQK%i-6p3B`dp+AW~YL{k}xq5kEt)L7R&8;P%BsH+w)ZAOU=>-T9R42-*2OU zmgIi16**)K@JxIA3t*0q41-1XvgWN z9FbWr$kfq{xGt2ktIMc@Sab$x{phtU=Dal-U^$;9Y4e;OC+=(^o~!oh%U3PB%V3zl zbMEm){H-2)@JM{ks@!jh+Mk_5Mte0Cq-d?$4|L-gIQPT^NjXzz8xdWq%Q`!f9_@g! zrg=$KQ_jTAp)Y7S?BHZqNQ4)C4IK(CHm$n-&3@N4#Q>`!qr&_z!HJKYse;x$%=pOb zmmUa-Njx&9C;D3IRn#1MZ5D&Z!r78)=lU=u`Wh*LPl|9I+A(T~Tw$~lJSQdH0veAM zk0$mRM(`)6osPXBveWo<@^i3&h-ABEGR4Zi9wlV?L{0-$?$|Y)ctFE%>bueEdI)P* zrpZz4(QMPOe2<)XRgOs_TYZo0acIoI>=V+LEtgl9_6y(aXbyb3s0*Sd z-vm+HrK&^63uZD$b|MwrDpOWHpl~2#eP4vSKGX!LXp$%t?pfMm z&)=5f&gp(`q3|N0Twx-T>pQYh+Y}d9n!?#5XvN+Kdw1*;fU_An?QRH_0CDk$)LXa! zh$L+@ll<;2{?+tFJ9(uufvNgHv=Nq9#4~v<$JBGuy~^Zf`^@WKhJk?MDITEIPPh&T zO!2JOq&^KrMn3T)c5$v}Kt?NWZ~@W=)P)k}(+5%{BUWfk=t9^gl7=3v=!wlxo}M~q z9#=+Di*w;9QQQ=xtF%twNM8G#{;d!oIq<$}-ts0FD-)VIs8y_*dNAu0XKLO2k_%}H z*H+Hyp!1x#yR1wbXKZyb>Yvj~!#i00?ek;IBH}2KN)fRVK1w+_=9{u_7RO_<0P2gvdmavFa0aq@uCd(0r8k!! zc)xW(rFBsq^Mp4OQ6E>jw9DO40qqYjK&d%^yduj3xBzG8|k~wi+riW3bH-Do`;@S!N(DJzHyJ{kPXBZOIq$pfUE@=6CRaq zhW|DWl=y4wKQ3Y=+mRDr;;Dqdrx{#r6~#w^D$~>zeXiHCa4_V~b?pm4=m;bwSfQh3 zEm-;74xLmaP>6fa6Svjo5ZE677j6H)kRi3O&$>i`u|Tn6a!GXu8vG8>^!Ul4O3v64 zdvm0rfEuuw-635*lO`xV)e=i}zm^RH-@)XS$`H1UJXdMms7n%v)#9BCYk@D)vrCEb9V{vt)Ak0AD7ulN|f9*1`wdip$ z#Q>1vC1*{S+`w}OhFR&IGsQk{JvT6AD# z;Rnk>;5Gta;}&&pg}wqNy&2K+7SM*r>irmMqCjI{?ecZ!+mJD!+M1#_dGbbf9DG3s z@+?3676kx*Q#DFB$gm$?l07XB(#J`{vJ!2*w__HR(zNHC<&)7FsuB*)BCizf#$&N?7c|7&(w<#&^bH5axhk)e=r*9hUMauL8G%5 z4M*+8W;Mf@@yecqcC4O>$Eft?kb+&ib$RsS{9pL&X3(uaxM$E|w6qlndq%K)_rVdM zL*Aba$-pZ>52pFOi-eRn+n2UZj`rC7$E#ek$3HuN9LLJ=0ZOX%-U%y;0TRWYq4c>u zz^6PbJ1l6h+coqbGDwcz>lfSES)XYJ9hV1-z2WqwDic^ec4Uy~{>aPYdXNo&(73mG zOxbJ`yh&XfOr(XSg!>Drg-F3ZJ!sNvat2Af>x-SiT%C{~Lg`#gxv8x8cRVQwG*5~U zF-X#9XQBjiD349vFXZg%pMfMxocxR|YVr7K7hKv6JlQf`s)9SBfIA^4vdh+_7&5faBWkmcb*6Y`YM z*sPE;E~I2W9jve{6!sp|CflAn4Vu_>Q=sigeJx(S*-_R_EUd>Wtj2a%dY%0w+8hAt zQhFq_#`$8D=KgWBpP*I)^F~{bQ%_}UgOUz|+ko8a347aj*kZE#Dcc&YMG0u*6##Yu z$=B;{7x7rZx#zovW_w0qM66?Uvx7DEWbm?zMW2^7tg6M|T*6wuDxyopVq?JU*e#m> z_ERmNAp?EHwA+AMh|~kEmYN8TJ(h8`!L{t2R~~P~(ABx3F7v^liR6l+*+IrbQZ#FW ztr#ty8K}apVdZmaUf>fwWik_dVI~64w3Vpe8(>DKe;!;*-$#i9gg6$AFiCvSp*S^U z%BF2ze##u>Qq$LW=2zsm#o}x##N5%2=JS?d0!NA5ML6re0yv#AJ55v(*p53FtEQ9_ zHA91u-#R|%=W=&|VuMZQb3+*(pT^AsgF@q&Tm7hp&W6zW>1WMEu2q|C!(j^u?nvVb zNNCGaKqrb}h^r%8F2U=R@Xf zJe^lf@hb_`zR1N>^Tm285A_(us>AF_r{mK%r+L~9%lH^cz-=*i$kES)8*F`i=8IkR z;vH{EQtYao1s~tX%BC|-6r6P9>-#J2dSMR2q{dg<4VQt?wN+=^)de_N_C=Sg5y8OQ z)7czG&3<}ql*=hT)i2%eO|?oe6>$+WEZ!;Y&}_&a1pt0HS13n(haszRw-$xhr zHd%0iAb9h(#(>RFGFikxG@0kt0hNd7grLpk|o20?SF8c-~&2F^TA)ZR2` z`2}c=8emfA?f$r(P~@zw>(_@sL2JU>9=F%_X4SngG3MC$Z@<&}2`7w3kc)dxh%2A5?a~*?|7n zihdSA#pLo``|v1e18Vb5wk)!$DJCa#HL=Qwd{k=+V2q{HFVrb=tX=rZSaG; zB&8kBTHsB;s+BHF)k|HDWfcCB>!B7u=IoVHK@*G;AKKH&R%aDq0s+KGgy66y^ss0; zrgS#Dcxer^u2plCEzp?d7!S)R-WL%Ux0t|OVlT8<4(n-meC5lwppfdx!tx*>2Keh< zPB#L)i@@xJFJ}3Hh&n=c8#%%JjZN0NN*=vBS>p<;3XwT8-hg=-7Qb4>igWvZ5vo{R z&F5_(rdzCh$ow2cijXC>6}jh_H>78u7#_G8Gn=#?-WZOH(OI3IxJH3~U?#31a(`x8 zt_JhwYvk8Xbpo%+#+-eRHu01XpoQcu4>h2;_Pk==b{}6*1>};Z_*?x3$Jef?SP)z+ zXLwBvvm({<8&DJJQXvwkWvxtC*+#LL)MZb4cnfcL!hv{?^QBJ3JZR zrZjIgAWX=-@PVW9;Z9Ae^dtBNeBk#d>iZ6=%jcR6Sqk7RxCTWp;|;L!8)?zsH$KrN zJbV9D*}{%R+YxivWE_RA)n?V^)mn`!*ru@16(QxU6iy6AXgv6FJ6GdN=MQRbfWiw> zT6ytN3XI-b^t{R_$yL34{jRW%E3cT_u+1G!SIa)defy)mH`ltU?I^Y!tFx-`ZpiV& zHU+xCM1G=2N28O|Aj2eA!jDT4H00?DV6dxHbpN1Om6|sjR?}< z8lz!88Ty_v#o%N7M%E0hpc*2^fH%Mb_E?-snFj{nld-RaY{)O~RYQJgrmw9HMaXjP zq(Kv%@hw)C3H`q5*Dc+-WSj=mQ*vJlw{ZCdFF`^$O-Ow2( z-fB_sjxf|(_KzQ3A&2iPkCcDsa+jtm!M#B}S(PK(A1j<`8=%YnSte*hLszwYo;ZMQ7nBjNWQ_bzsDSt0b_FDpD*e^(N`c}cB4EpHwD z%Ao=_iNPkt%`wJInpkGZ;gv2<;1q~THF9eWVux5Z3$R+>#tVT)HCDa{>qd^dLhBTo zr&1i8B8M0KP-fC7E2oL!wNsOZotiOS8m`mCrh%!q@XdLpzpnw!@1rWsdzKAu7&T}t z=TArc?oF%#elRL2uLld2*9oR0l6NRqS8K&Eu~78DuFNn=JOGvf$#Nr%{4YVwA6IFK z1c&PEq6b+5@G$N)B93ls&sj5eTk9IL3KcvB}Rp$7eEv!dt7*{z4ir>ZU z{#t;pt3U_l?;+3VuIODV&L%EX}7Fe-KtLc5bZu8wd8j*64|+%vzy>4p#25oIi^SCNudi&kTwv2_HD zjJJ#fI9rYx8i=D*if}|WY$V2*Y&GRQ6=$V* z+YQdO;g={j?ERDr_*W6Y;<9vdm5iF$o4hy~mq@;mq1l>vm>me2ZD1X&88PHVl5R5D z6FnCy8%#1LsHXi^58X%17WIovKg?$zA*Fe;ef1kQ-=Ra!n16Bmse64bylbGP2RI$E zxXb@`Ge-MmkYQd(OXX%snTJZ>bh)Muq0E*`r5eJRN^S7Sf25l=uiaw*LxoQWPtjnL zS`4zL7}3Sq^Q7J4`-eE4qWXgqcK6ILgeXhB;LR6lqF1qZHnrChL@{^M#DE3=p@fm9 z(0I7G1Wrw4x3wEJ_*)y)4W?Js$Q4aKJ#pAKkrkfg-Ejvw@)VuD@e5fjftLBqnICcq z8$~%hd#~faeE~`!*Bp`2I)Gb}h7~__y#T3Wzr%l|o zVdTF8P@>l75OsAxE*)O0i|8r=hq-N5>34vvCvXsxC0VTa2%uIsze06c&QcQ$`qJfc za$q9|K#2-7Y~o^A>I_Riw%-HjIE=mI0^TI>IiBqav5cBnNiL@;?bX1$!0Qlq(79d0 z`v_E;46hTH=C6VBk4E3h4_ZRtB5tL$5aYZ3&sm_N`~m2K(2XUNC(D&pKxU_kx7eOp z13L0OrfUV&S@N$3dm#%Q$3-9Rc@-9A^C?}OC8~AfEI7%>e`J#K4Fa9s; Cl^kjS literal 0 HcmV?d00001 diff --git a/assignment1.sql b/assignment1.sql new file mode 100644 index 000000000..f1c4d3629 --- /dev/null +++ b/assignment1.sql @@ -0,0 +1,211 @@ + /* ASSIGNMENT 1 */ +--Please write responses between the QUERY # and END QUERY blocks +/* SECTION 2 */ + + +--SELECT +/* 1. Write a query that returns everything in the customer table. */ +--QUERY 1 +SELECT * +FROM customer; + + + +--END QUERY + + +/* 2. Write a query that displays all of the columns and 10 rows from the customer table, +sorted by customer_last_name, then customer_first_ name. */ +--QUERY 2 +SELECT * +FROM customer +ORDER BY customer_last_name, customer_first_name +LIMIT 10; + + +--END QUERY + + +--WHERE +/* 1. Write a query that returns all customer purchases of product IDs 4 and 9. +Limit to 25 rows of output. */ +--QUERY 3 +SELECT * +FROM customer_purchases +WHERE product_id = 4 or product_id = 9 +LIMIT 25; + + + +--END QUERY + + + +/*2. Write a query that returns all customer purchases and a new calculated column 'price' (quantity * cost_to_customer_per_qty), +filtered by customer IDs between 8 and 10 (inclusive) using either: + 1. two conditions using AND + 2. one condition using BETWEEN +Limit to 25 rows of output. +*/ +--QUERY 4 +SELECT * +,quantity * cost_to_customer_per_qty as price +FROM customer_purchases +WHERE customer_id BETWEEN 8 and 10 +LIMIT 25; + + +--END QUERY + + +--CASE +/* 1. Products can be sold by the individual unit or by bulk measures like lbs. or oz. +Using the product table, write a query that outputs the product_id and product_name +columns and add a column called prod_qty_type_condensed that displays the word “unit” +if the product_qty_type is “unit,” and otherwise displays the word “bulk.” */ +--QUERY 5 +SELECT product_id, product_name +,CASE WHEN product_qty_type = 'unit' THEN 'unit' + ELSE 'bulk' + END as prod_qty_type_condensed +FROM product; + + + +--END QUERY + + +/* 2. We want to flag all of the different types of pepper products that are sold at the market. +add a column to the previous query called pepper_flag that outputs a 1 if the product_name +contains the word “pepper” (regardless of capitalization), and otherwise outputs 0. */ +--QUERY 6 +SELECT product_id, product_name +,CASE WHEN product_qty_type = 'unit' THEN 'unit' + ELSE 'bulk' + END as prod_qty_type_condensed +,CASE WHEN product_name LIKE '%pepper%' + THEN 1 + ELSE 0 + END as pepper_flag +FROM product; + + + +--END QUERY + + +--JOIN +/* 1. Write a query that INNER JOINs the vendor table to the vendor_booth_assignments table on the +vendor_id field they both have in common, and sorts the result by market_date, then vendor_name. +Limit to 24 rows of output. */ +--QUERY 7 +SELECT vendor.vendor_id + FROM vendor + INNER JOIN vendor_booth_assignments + ON vendor.vendor_id = vendor_booth_assignments.vendor_id +ORDER BY market_date, vendor_name +LIMIT 24; + + +--END QUERY + + + +/* SECTION 3 */ + +-- AGGREGATE +/* 1. Write a query that determines how many times each vendor has rented a booth +at the farmer’s market by counting the vendor booth assignments per vendor_id. */ +--QUERY 8 +SELECT vendor_id, +COUNT(*) +FROM vendor_booth_assignments +GROUP BY vendor_id; + + + +--END QUERY + + +/* 2. The Farmer’s Market Customer Appreciation Committee wants to give a bumper +sticker to everyone who has ever spent more than $2000 at the market. Write a query that generates a list +of customers for them to give stickers to, sorted by last name, then first name. + +HINT: This query requires you to join two tables, use an aggregate function, and use the HAVING keyword. */ +--QUERY 9 +SELECT customer.customer_id, + customer.customer_last_name, + customer.customer_first_name +FROM customer + INNER JOIN customer_purchases + ON customer.customer_id = customer_purchases.customer_id +GROUP BY customer.customer_id, + customer.customer_first_name, + customer.customer_last_name +HAVING SUM(quantity * cost_to_customer_per_qty) > 2000 +ORDER BY customer.customer_last_name, customer.customer_first_name; + + + +--END QUERY + + +--Temp Table +/* 1. Insert the original vendor table into a temp.new_vendor and then add a 10th vendor: +Thomass Superfood Store, a Fresh Focused store, owned by Thomas Rosenthal + +HINT: This is two total queries -- first create the table from the original, then insert the new 10th vendor. +When inserting the new vendor, you need to appropriately align the columns to be inserted +(there are five columns to be inserted, I've given you the details, but not the syntax) + +-> To insert the new row use VALUES, specifying the value you want for each column: +VALUES(col1,col2,col3,col4,col5) +*/ +--QUERY 10 +DROP TABLE IF EXISTS temp.new_vendor; + +CREATE TABLE temp.new_vendor as + SELECT * + FROM vendor; + +INSERT INTO temp.new_vendor + VALUES(10, 'Thomass Superfood Store', 'Fresh Focused', 'Thomas', 'Rosenthal'); + + +--END QUERY + + +-- Date +/*1. Get the customer_id, month, and year (in separate columns) of every purchase in the customer_purchases table. + +HINT: you might need to search for strfrtime modifers sqlite on the web to know what the modifers for month +and year are! +Limit to 25 rows of output. */ +--QUERY 11 +SELECT customer_id, + strftime('%m', market_date) as month, + strftime('%Y', market_date) as year +FROM customer_purchases +LIMIT 25; + + + +--END QUERY + + +/* 2. Using the previous query as a base, determine how much money each customer spent in April 2022. +Remember that money spent is quantity*cost_to_customer_per_qty. + +HINTS: you will need to AGGREGATE, GROUP BY, and filter... +but remember, STRFTIME returns a STRING for your WHERE statement... +AND be sure you remove the LIMIT from the previous query before aggregating!! */ +--QUERY 12 +SELECT customer_id, + SUM(quantity * cost_to_customer_per_qty) +FROM customer_purchases +WHERE strftime('%m', market_date) = '04' AND strftime('%Y', market_date) = '2022' +GROUP BY customer_id + +-- THIS WAS HARD, TOOK ME FOEVER + +--END QUERY