From 12ece07605f2f3e4c8b8387df7363310c8f9be51 Mon Sep 17 00:00:00 2001 From: psicktrick Date: Wed, 7 Nov 2018 04:26:23 +0000 Subject: [PATCH 1/6] Done --- __pycache__/__init__.cpython-36.pyc | Bin 163 -> 152 bytes .../__pycache__/__init__.cpython-36.pyc | Bin 177 -> 166 bytes .../__pycache__/build.cpython-36.pyc | Bin 381 -> 394 bytes q01_load_data/build.py | 8 ++++++++ .../tests/__pycache__/__init__.cpython-36.pyc | Bin 183 -> 172 bytes .../test_q01_load_data.cpython-36.pyc | Bin 2053 -> 2042 bytes .../__pycache__/__init__.cpython-36.pyc | Bin 181 -> 170 bytes .../__pycache__/build.cpython-36.pyc | Bin 511 -> 565 bytes q02_data_splitter/build.py | 13 +++++++++++++ .../tests/__pycache__/__init__.cpython-36.pyc | Bin 187 -> 176 bytes .../test_q02_data_splitter.cpython-36.pyc | Bin 2990 -> 2979 bytes .../__pycache__/__init__.cpython-36.pyc | Bin 185 -> 174 bytes .../__pycache__/build.cpython-36.pyc | Bin 674 -> 687 bytes q03_linear_regression/build.py | 9 +++++++++ .../tests/__pycache__/__init__.cpython-36.pyc | Bin 191 -> 180 bytes .../test_q03_linear_regression.cpython-36.pyc | Bin 3445 -> 3434 bytes .../__pycache__/__init__.cpython-36.pyc | Bin 184 -> 173 bytes .../__pycache__/build.cpython-36.pyc | Bin 943 -> 931 bytes q04_linear_predictor/build.py | 12 ++++++++++++ .../tests/__pycache__/__init__.cpython-36.pyc | Bin 190 -> 179 bytes .../test_q04_linear_predictor.cpython-36.pyc | Bin 4415 -> 4404 bytes 21 files changed, 42 insertions(+) diff --git a/__pycache__/__init__.cpython-36.pyc b/__pycache__/__init__.cpython-36.pyc index f93420f1df521b2061e98adf856c4586bc03a389..01c31eead4def815efca2e1620e3821d9748b8bb 100644 GIT binary patch delta 52 zcmZ3?ID?VHn3tE!-tcbpL=JNWSN)9q+*JL7;>_gik|H3XAD&;7U0jfuoT{IkpOQK; G%Mt*kcM+5T delta 63 zcmbQixR{Z{n3tF9*uCbci5%wI0s0yFxvBbzNg0{?F8Rr&xv6<2#ro+*sg;Q(`MLUu SIXMaiMfq8&$tA@T<1GQE_!gG{ diff --git a/q01_load_data/__pycache__/__init__.cpython-36.pyc b/q01_load_data/__pycache__/__init__.cpython-36.pyc index 29d3927ae0e2cb43c7a5b55a324191d259d83315..93bc46a414fd5305d423b9a69e0f72c9cd208022 100644 GIT binary patch delta 52 zcmdnUxQvm*n3tE!-tcbpL=JO>VEv5z+*JL7;>_gik|H3XAD&;7U0jfuoT{IkpOQK; G%N+o%0};#s delta 63 zcmZ3+xRH^=n3tF9*uCbci5%wIarzngxvBbzNg0{?F8Rr&xv6<2#ro+*sg;Q(`MLUu SIXMaiMfq8&$tA@Tx-#%*)GlL1AvxLIwtg$3P4ROhA?c5En}Ti4=wu#vFzy#uTO~rWEEBmKKI6 z=80YL(^;Wa_)*Czs}?=9Ludrx&GGCYI#q z>L=#pC=?XsXQd{W6i<9#aR6yemRoEEiFqlB#YG?|6oDkc5|g7D O<#<6tVD%hKEX)8G{wsa} diff --git a/q01_load_data/build.py b/q01_load_data/build.py index 1fea6ca..c9f7abb 100644 --- a/q01_load_data/build.py +++ b/q01_load_data/build.py @@ -1,3 +1,4 @@ +# %load q01_load_data/build.py # Default imports import pandas as pd @@ -6,3 +7,10 @@ # Write your code here : +def load_data(path): + df = pd.read_csv(path) + return df +df = load_data(path) +df.head() + + diff --git a/q01_load_data/tests/__pycache__/__init__.cpython-36.pyc b/q01_load_data/tests/__pycache__/__init__.cpython-36.pyc index b882452f1ac25c1cab20fd3d36a52dbd40711071..de4852329d1871930f289849a837eafc393cbd2b 100644 GIT binary patch delta 52 zcmdnaxQ3C#n3tC;!0>MLL=JO>Nd1ib+*JL7;>_gik|H3XAD&;7U0jfuoT{IkpOQK; G%NGE%8WHsX delta 63 zcmZ3(xSf&1n3tF9Mq+E!L=JQ96#b0++*JLM~`m;B_?+|<01V*T`@)XKz?{9OIS SoE(LMqWrAX8vp=^6FmR` delta 66 zcmeyx-zvai%*)HQLSb&yMvf(n+IjjJ`MIh3iAfom`Y!p&rManjCB^#bMX8mECHcAf Wi8(n61x5K;smUe9o6j)nu>k<aQ%$@+*JL7;>_gik|H3XAD&;7U0jfuoT{IkpOQK; G%Nqc%D-qlP delta 63 zcmZ3*xRsH^n3tF9*uCbci5%wIN%|T2xvBbzNg0{?F8Rr&xv6<2#ro+*sg;Q(`MLUu SIXMaiMfq8&$tA@TM{e#u%n3wkY;g_ACxY zhE$d;&SnN6%?6<-dTmt*(a*@wP1P?b&P>iODFPDu;rT_`#RZAUsrt$JDXEjS7$X_E zCbuy9d$R+LF5&PO2RL(^;Wa_)* zCzs}?=9Ludrx&GGCYI#q>L=#pC=?XsXQd{W6i;?!jAUe+Je$#fG9!~LKgg(JHXy;n J$ic|L3IOr`9Tflo diff --git a/q02_data_splitter/build.py b/q02_data_splitter/build.py index cf517fe..c56cc3e 100644 --- a/q02_data_splitter/build.py +++ b/q02_data_splitter/build.py @@ -1,3 +1,4 @@ +# %load q02_data_splitter/build.py # Default Imports from greyatomlib.linear_regression.q01_load_data.build import load_data import pandas as pd @@ -5,4 +6,16 @@ # Your Code Here +def data_splitter(df): + X = df.iloc[:,:-1] + y = df.iloc[:,-1] + return X, y + +X, y = data_splitter(df) +y.shape +df.head() +X.head() + + + diff --git a/q02_data_splitter/tests/__pycache__/__init__.cpython-36.pyc b/q02_data_splitter/tests/__pycache__/__init__.cpython-36.pyc index e7e9527b24061ee31b27153bc01eeaec480ce46a..9e560a5bf11f16ea46dde1560b9cf3e1937dbb85 100644 GIT binary patch delta 52 zcmdnZxPg(wn3tDpw$a__i5%t%vHBVLxvBaE#hJ<3B}G6&KRmxEySN}RIaNP7KP7cy GRv-Yv1rkvJ delta 63 zcmdnMxSNr~n3tF9Mq+E!L=JQ94E>D!+*JLM~`m;B_?+|<01V*T`@)XKz?{9OIS SoE(LMqWrAX?(%jU%l4AYzqSVU7lKfo# V#GD+3f};Ga)Z~)l&9+QwoB-N#7R~?w diff --git a/q03_linear_regression/__pycache__/__init__.cpython-36.pyc b/q03_linear_regression/__pycache__/__init__.cpython-36.pyc index b8f4cc0c3ac2253c24ae849d389911596ecbe199..4486b967132fd5128ec4ea61527de8d87bcee762 100644 GIT binary patch delta 52 zcmdnVxQ>y-n3tE!-tcbpL=JO>X#I@*+*JL7;>_gik|H3XAD&;7U0jfuoT{IkpOQK; G%O3!-QxWU{ delta 63 zcmZ3-xRa5?n3tF9*uCbci5%wIY5E!YxvBbzNg0{?F8Rr&xv6<2#ro+*sg;Q(`MLUu SIXMaiMfq8&$tA@T#peAUUvT5j&7|i?yH#=zz(EOmgB(Kz=bFkl+DoxKu0+fwnPRlIOWWL21af`7sN+2gQFEz0!z9==lD7Cmazi1^x5eHD!uVnp<{M=Oi z#H5T&eV6>?(%jU%l45Os-;*69)Q(p%}#DVFW@Z4n`hk00G%SS^xk5 diff --git a/q03_linear_regression/build.py b/q03_linear_regression/build.py index 03ab5ff..b302f4e 100644 --- a/q03_linear_regression/build.py +++ b/q03_linear_regression/build.py @@ -1,3 +1,4 @@ +# %load q03_linear_regression/build.py from greyatomlib.linear_regression.q01_load_data.build import load_data from greyatomlib.linear_regression.q02_data_splitter.build import data_splitter from sklearn.linear_model import LinearRegression @@ -7,4 +8,12 @@ # Write your code here : +def linear_regression(X, y): + lm = LinearRegression(fit_intercept=True) + lm.fit(X, y) + return lm + +lm = linear_regression(X, y) +print(lm) + diff --git a/q03_linear_regression/tests/__pycache__/__init__.cpython-36.pyc b/q03_linear_regression/tests/__pycache__/__init__.cpython-36.pyc index 739e010254c4aee7c6b51f69b91ab99a2d9a6669..42601c44dc4a8d6949454c0b2fc2523838d42803 100644 GIT binary patch delta 52 zcmdnbxP_6!n3tDpo5|hii5%t%iTWA&xvBaE#hJ<3B}G6&KRmxEySN}RIaNP7KP7cy GRww|;3KD(* delta 63 zcmdnOxSx^3n3tF9Mq+E!L=JQ99Q};^+*JLM~`m;B_?+|<01V*T`@)XKz?{9OIS SoE(LMqWrAXDE*B5+*JL7;>_gik|H3XAD&;7U0jfuoT{IkpOQK; G%MSps$r0!P delta 63 zcmZ3>xPy_yn3tF9*uCbci5%wIsrniDxvBbzNg0{?F8Rr&xv6<2#ro+*sg;Q(`MLUu SIXMaiMfq8&$tA@TK7DeCTEuv0SW!^{G#mQg2d!h{p9?V)XA(&Ua|r}mBm~@f`O3>3X24R zJU>mrTZWS#Feyy#VY(U22^1*;sfyys$;?YlEQ-$s8ju54Sp>2Si2#{+i^B$}pfo4d Vjv2@+1_|*nLZApU2av_Z0synuE-3&2 delta 211 zcmZ3?zMh@Sn3tDpir&1a?@SxHA{cp@YM7guYFSE{YJjZC`HYr)w|H_g^HLLw;&by; zQgbG+VU#xzU|?YQm874MpPQ78eTu-S01e diff --git a/q04_linear_predictor/build.py b/q04_linear_predictor/build.py index e3c8357..06f9cb2 100644 --- a/q04_linear_predictor/build.py +++ b/q04_linear_predictor/build.py @@ -1,3 +1,4 @@ +# %load q04_linear_predictor/build.py # Default Imports from greyatomlib.linear_regression.q01_load_data.build import load_data from greyatomlib.linear_regression.q02_data_splitter.build import data_splitter @@ -12,3 +13,14 @@ # Your code here +def linear_predictor(lm, X, y): + y_pred = lm.predict(X) + mse = mean_squared_error(y_pred,y) + mae = mean_absolute_error(y_pred,y) + r2 = r2_score(y, y_pred) + return y_pred, mse, mae, r2 + + + + + diff --git a/q04_linear_predictor/tests/__pycache__/__init__.cpython-36.pyc b/q04_linear_predictor/tests/__pycache__/__init__.cpython-36.pyc index 8abd4d23f3d5f2e6983f9b3bf58a544e4cfd7f70..7794704447c82c2216540b6ccb3e3dab8d2c2ec5 100644 GIT binary patch delta 52 zcmdnTxS5f|n3tC;#r$scL=JO>1pSQs+*JL7;>_gik|H3XAD&;7U0jfuoT{IkpOQK; GD+B<$I1(!W delta 63 zcmdnYxQ~&;n3tF9Mq+E!L=JQ9Z2gS<+*JLM~`m;B_?+|<01V*T`@)XKz?{9OIS SoE(LMqWrAX)= delta 66 zcmdm@v|owCn3tF9Mq+E!MvfUw+BNza`MIh3iAfom`Y!p&rManjCB^#bMX8mECHcAf Wi8(n61x5K;smUe9n-4IR@Bsh@2^b{+ From 83dc01107d325bf1e9a2465657af38b6d320b480 Mon Sep 17 00:00:00 2001 From: psicktrick Date: Wed, 7 Nov 2018 04:30:28 +0000 Subject: [PATCH 2/6] Done --- q03_linear_regression/build.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/q03_linear_regression/build.py b/q03_linear_regression/build.py index b302f4e..9342897 100644 --- a/q03_linear_regression/build.py +++ b/q03_linear_regression/build.py @@ -10,7 +10,7 @@ def linear_regression(X, y): lm = LinearRegression(fit_intercept=True) - lm.fit(X, y) + lm.fit(X,y) return lm lm = linear_regression(X, y) From b6baebd863e47930c4645d52403c6eb002e60526 Mon Sep 17 00:00:00 2001 From: psicktrick Date: Wed, 28 Nov 2018 07:44:41 +0000 Subject: [PATCH 3/6] Done --- .../__pycache__/__init__.cpython-36.pyc | Bin 177 -> 166 bytes .../__pycache__/build.cpython-36.pyc | Bin 884 -> 879 bytes q05_residuals/build.py | 8 ++++++++ .../tests/__pycache__/__init__.cpython-36.pyc | Bin 183 -> 172 bytes .../test_q05_residuals.cpython-36.pyc | Bin 2991 -> 2980 bytes 5 files changed, 8 insertions(+) diff --git a/q05_residuals/__pycache__/__init__.cpython-36.pyc b/q05_residuals/__pycache__/__init__.cpython-36.pyc index 82a3d44a519af94036d128d3e671dca8b34431d9..7875a41648a1f4d812f0c9994124cd9de65b222e 100644 GIT binary patch delta 52 zcmdnUxQvm*n3tE!-tcbpL=JO>VEv5z+*JL7;>_gik|H3XAD&;7U0jfuoT{IkpOQK; G%N+o%0};#s delta 63 zcmZ3+xRH^=n3tF9*uCbci5%wIarzngxvBbzNg0{?F8Rr&xv6<2#ro+*sg;Q(`MLUu SIXMaiMfq8&$tA@T8tp=iE~W(9g)vP1P?b y&P>iODFPDu;rT_`#RZAUsrt$JDXEi}GTJZ-Y<|R8&dA0L(k(JMo>`QMg9QNlejJqm delta 129 zcmaFQ_JvK^n3tF9lHRz= MGI0P|T#ONd1ib+*JL7;>_gik|H3XAD&;7U0jfuoT{IkpOQK; G%NGE!KM~{r delta 63 zcmZ3(xSf&1n3tF9Mq+E!L=JQ96#b0++*JLM~`m;B_?+|<01V*T`@)XKz?{9OIS SoE(LMqWrAX?(%jU%l4AYzqSVU7lKfo# W#GD+3f};Ga)Z~)l&0Cm0Z~y@G7#KeQ From 53d155276d7c7153c017ea6ad1ccf38f731b1b34 Mon Sep 17 00:00:00 2001 From: psicktrick Date: Wed, 28 Nov 2018 08:25:06 +0000 Subject: [PATCH 4/6] Done --- .../__pycache__/__init__.cpython-36.pyc | Bin 182 -> 171 bytes .../__pycache__/build.cpython-36.pyc | Bin 1195 -> 1096 bytes q06_plot_residuals/build.py | 7 +++++++ .../tests/__pycache__/__init__.cpython-36.pyc | Bin 188 -> 177 bytes .../test_q06_plot_residuals.cpython-36.pyc | Bin 1079 -> 1054 bytes 5 files changed, 7 insertions(+) diff --git a/q06_plot_residuals/__pycache__/__init__.cpython-36.pyc b/q06_plot_residuals/__pycache__/__init__.cpython-36.pyc index cbab384bf6d1bdf9760c6fc6b61ce563bac9f8ad..c583255ff5268361e23ad4b9212d4ec5b7491863 100644 GIT binary patch delta 52 zcmdnSxSEl}n3tE!-tcbpL=JO>2>p!w+*JL7;>_gik|H3XAD&;7U0jfuoT{IkpOQK; G%Lf3jwGrR| delta 63 zcmZ3@xQ&s+n3tF9*uCbci5%wI$@&@jxvBbzNg0{?F8Rr&xv6<2#ro+*sg;Q(`MLUu SIXMaiMfq8&$tA@T<9z_LsTSh^ diff --git a/q06_plot_residuals/__pycache__/build.cpython-36.pyc b/q06_plot_residuals/__pycache__/build.cpython-36.pyc index 67ae5f63df0fc81d32b9402a406418522d2aa070..ba7bc870794273820d980d0a1f4d8accc2179a19 100644 GIT binary patch delta 400 zcmYjN%}T>S5Z>9OG)dFipIBQF5voE@QN)X=^yEoI5Pw)J60>9fo03F&=`FrM$x8@= z7oR{+K0~jbd<75UL=d{ee*4YrH+;-I>mOQeC!00iPJgbS6vjT;+);@)=msy-+Qm(- zyCAg)fFVdd0+B}r^AR+;D2O7auz^v9K^DlD-m%3=w1ETTof6=}%KBNJ7u zQl%1cU^0Ei>gM!)m=cQ9YQJj=LryrP5wv%^)R7)%>F$NwMKG94 z4P-Ne%kK>R6ZZ=YCN=UG99(oYqk>)Z>sM9%UN!wExDVGhn$76u<4^wEA>@g?TQ2fX zxXs<|+P6I_gM#uFIM6ES5#w#%fd;gpQ!w5IAG$Snj$A&^d;9}mfDk$`kKIKX%IF8- zOVU3e@yzYx<#dm3UT>ncB^Ols(z&6u;_QlC(Sp_7k#6x)b!Fp~HKbQDNzfoaC09hWVrjE?o|B=d{tIrRE>lAPxmB%*(wCOi3H zl)`Q5r%GK7B4^Svp(%rEgni?#iIQ@+L+*JL7;>_gik|H3XAD&;7U0jfuoT{IkpOQK; GD+mCx@e%j{ delta 63 zcmdnUxQCI$n3tF9Mq+E!L=JQ9O#O`f+*JLM~`m;B_?+|<01V*T`@)XKz?{9OIS SoE(LMqWrAXwuCdW=ky%NVs4a`iLvb5r#TiZhe5ONxMmet3RSc5y*sa;koE zeoE@(GmLqR?31mT4gxj&WpZTXnQYJ8rp*R4rx@f|4n_{vA`s6{ll>NJQfX#RN)gag a47WH+^D;|HfL2fbz--M0Qo+LrgvwYbDNu{d>Ng80OawQP();UebA z){J_LER(YswY4ksGxBp&^%IjaGWA{ZlS^|`^Gb^K(~D9o6HD@Q^%HY)6bg#+vr>~w ziYISn%wy!3tip54 From 429a65aa8ebf29aff9dad873ac55a1965bfc9a25 Mon Sep 17 00:00:00 2001 From: psicktrick Date: Wed, 28 Nov 2018 09:35:47 +0000 Subject: [PATCH 5/6] Done --- .../__pycache__/__init__.cpython-36.pyc | Bin 182 -> 171 bytes .../__pycache__/build.cpython-36.pyc | Bin 1061 -> 1119 bytes q07_hist_residuals/build.py | 5 +++++ .../tests/__pycache__/__init__.cpython-36.pyc | Bin 188 -> 177 bytes .../test_q07_hist_residuals.cpython-36.pyc | Bin 1091 -> 1080 bytes 5 files changed, 5 insertions(+) diff --git a/q07_hist_residuals/__pycache__/__init__.cpython-36.pyc b/q07_hist_residuals/__pycache__/__init__.cpython-36.pyc index 48235745c56746569f0462b859a0f4a1c0cad2ad..c8f15082db166a5700147195cd1c3f0ac8e09784 100644 GIT binary patch delta 52 zcmdnSxSEl}n3tE!-tcbpL=JO>2>p!w+*JL7;>_gik|H3XAD&;7U0jfuoT{IkpOQK; G%Lf3jwGrR| delta 63 zcmZ3@xQ&s+n3tF9*uCbci5%wI$@&@jxvBbzNg0{?F8Rr&xv6<2#ro+*sg;Q(`MLUu SIXMaiMfq8&$tA@T<9z_LsTSh^ diff --git a/q07_hist_residuals/__pycache__/build.cpython-36.pyc b/q07_hist_residuals/__pycache__/build.cpython-36.pyc index e030b2b517107e81e7084557aeaf3a60f94a0cde..10d9fd16828765d2eb26c469753ee211409e2da9 100644 GIT binary patch delta 331 zcmZ3=ai2rkn3tC;JN{qv0%it=#|%h-1;};);^H+EmA&eDvUpS2n;97yQW;Y?ni-?` zQkhfvni*r5qWGf(Qdv{^Qw5rtq6AafQw70n<`|YJp(x=fktoqr&QyU^A)u^S3U3Nm z3U>=*lz6Ims#pqV3QsQ+&_s!521bSywqOQLzLy{eXfod7%*jtoiBCx^Nd$6uQxYd$ zaAJ*OPE1dqEW~(7AyhvjKQ~pspg1!*yQBz6=!fSQWfvDDCa3Br=clAj{?F*9Bm#0f z$P)~VJd8#BU~`MOAQU@@lH8oY zQT(Z_seGyY%}h}OsqCo&U^a6MOO#-gP?T_#NGfM4f2tr*Ry2h>g)@b#g)vGjg)Nvt zlV{?UsL95RhqM#)GxBp&^%IjaGWA{ZlS^|`^Gb^K(~D9o6HD@Q^%HY)6bg#+vr>~w ziYJRQxk(Fw90PI{10xS(5kHXDWGrF_QR0&en3XoqXVPMve3RK`vJ8uyJQGm7SPV$; T02MIQ@+L+*JL7;>_gik|H3XAD&;7U0jfuoT{IkpOQK; GD+mCx@e%j{ delta 63 zcmdnUxQCI$n3tF9Mq+E!L=JQ9O#O`f+*JLM~`m;B_?+|<01V*T`@)XKz?{9OIS SoE(LMqWrAXq6H)*G delta 66 zcmdnNahQX{n3tDJ+-hFbMvj?`+7 Date: Wed, 28 Nov 2018 09:47:21 +0000 Subject: [PATCH 6/6] Done --- .../__pycache__/__init__.cpython-36.pyc | Bin 180 -> 169 bytes .../__pycache__/build.cpython-36.pyc | Bin 1116 -> 1142 bytes q08_qq_residuals/build.py | 11 +++++++++-- .../tests/__pycache__/__init__.cpython-36.pyc | Bin 186 -> 175 bytes .../test_q08_qq_residuals.cpython-36.pyc | Bin 1059 -> 1048 bytes 5 files changed, 9 insertions(+), 2 deletions(-) diff --git a/q08_qq_residuals/__pycache__/__init__.cpython-36.pyc b/q08_qq_residuals/__pycache__/__init__.cpython-36.pyc index 806902296c0a8d32d1f1151fb1dd1826c94a17b2..caa90fd66c7e5fcdd6c3789f87383d6e3086d26c 100644 GIT binary patch delta 52 zcmdnOxRQ~>n3tE!-tcbpL=JO>F#U}D+*JL7;>_gik|H3XAD&;7U0jfuoT{IkpOQK; G%L@Rmp%K^s delta 63 zcmZ3Y5Z&3mkiFF-qL<4h#%oeYsw?~hYHepBYyu%<2lIW$?gbIV=4=(h{R#_h z^mo`B()k}OEX0kC&MH;aGlb%e*dImuHHo@^n}3 zAt;`M^pT;TLzl{`46uY%400-KSjO5fXI)2zvMw8PA6*PEwA-d~mAE7FVEOjkXj(2{Qx3V+JI^0%SV?aq*go%IPktj42$=j8Q_V%&9`nj4@16 z!ciirtf|7OBF#)uqN(huqF^?23`>+)lz5axlw>Mrsz|CBP*y61Gli>#Axe7UwRJ)w zKod(CvKVU^QW#5^QkZ&~C(mP)V`QGZmr-K!ZANMBIQ@+L+*JLM~`m;B_?+|<01 zV*T`@)XKz?{9OISoE(LMqWrAX82ya=+*JL7;>_gik|H3XAD&;7U0jfuoT{IkpOQK; GD*yno-4XBr delta 63 zcmZ3_xQmg)n3tF9Mq+E!L=JQ9bp4F{+*JLM~`m;B_?+|<01V*T`@)XKz?{9OIS SoE(LMqWrAX92aQ-