From df4ece54c26d0e81bc70654bb1b7caa4c6fb1629 Mon Sep 17 00:00:00 2001 From: skanamar017 Date: Mon, 14 Jul 2025 12:23:36 -0400 Subject: [PATCH 1/7] Mostly done --- python/NumberUtilities.py | 14 +++++++------- python/TableUtilities.py | 2 +- python/TriangleUtilities.py | 12 ++++++++---- .../__pycache__/NumberUtilities.cpython-313.pyc | Bin 0 -> 3952 bytes .../__pycache__/TableUtilities.cpython-313.pyc | Bin 0 -> 1832 bytes .../TriangleUtilities.cpython-313.pyc | Bin 0 -> 1763 bytes 6 files changed, 16 insertions(+), 12 deletions(-) create mode 100644 python/__pycache__/NumberUtilities.cpython-313.pyc create mode 100644 python/__pycache__/TableUtilities.cpython-313.pyc create mode 100644 python/__pycache__/TriangleUtilities.cpython-313.pyc diff --git a/python/NumberUtilities.py b/python/NumberUtilities.py index 74023b2..4b576d1 100644 --- a/python/NumberUtilities.py +++ b/python/NumberUtilities.py @@ -15,7 +15,7 @@ def get_exponentiations(start, stop, step, exponent): Returns: String concatenation of exponential values """ - return None + return "".join(str(i**exponent) for i in range(start, stop, step)) def get_range(start, stop=None, step=1): @@ -32,7 +32,7 @@ def get_range(start, stop=None, step=1): # Single parameter version: get_range(stop) stop = start start = 0 - return None + return "".join(str(i) for i in range(start, stop, step)) def is_number_even(to_test): @@ -43,7 +43,7 @@ def is_number_even(to_test): Returns: Boolean indicating if number is even """ - return False + return True if to_test%2==0 else False def is_number_odd(to_test): @@ -54,7 +54,7 @@ def is_number_odd(to_test): Returns: Boolean indicating if number is odd """ - return False + return True if to_test%2==1 else False def get_even_numbers(start, stop): @@ -66,7 +66,7 @@ def get_even_numbers(start, stop): Returns: String concatenation of even numbers """ - return None + return "".join(str(i) for i in range(start, stop) if is_number_even(i)==True) def get_odd_numbers(start, stop): @@ -78,7 +78,7 @@ def get_odd_numbers(start, stop): Returns: String concatenation of odd numbers """ - return None + return "".join(str(i) for i in range(start, stop) if is_number_odd(i)==True) def get_square_numbers(start, stop, step): @@ -91,4 +91,4 @@ def get_square_numbers(start, stop, step): Returns: String concatenation of squared numbers """ - return None \ No newline at end of file + return get_exponentiations(start, stop, step, 2) \ No newline at end of file diff --git a/python/TableUtilities.py b/python/TableUtilities.py index 0197df1..f75e202 100644 --- a/python/TableUtilities.py +++ b/python/TableUtilities.py @@ -12,7 +12,7 @@ def get_multiplication_table(table_size): Returns: String representation of formatted multiplication table """ - return None + return "\n".join((" | ".join((str(i*j)) for j in range(1, table_size+1))) for i in range(1, table_size+1))+"\n" def get_small_multiplication_table(): diff --git a/python/TriangleUtilities.py b/python/TriangleUtilities.py index f32c390..4cb557b 100644 --- a/python/TriangleUtilities.py +++ b/python/TriangleUtilities.py @@ -12,7 +12,7 @@ def get_row(number_of_stars): Returns: String of asterisks """ - return None + return "*" * number_of_stars def get_triangle(number_of_rows): @@ -23,7 +23,11 @@ def get_triangle(number_of_rows): Returns: String representation of triangle """ - return None + return "\n".join(get_row(i) for i in range(1, number_of_rows))+"\n" + + + + def get_small_triangle(): @@ -32,7 +36,7 @@ def get_small_triangle(): Returns: String representation of 4-row triangle """ - return None + return get_triangle(5) def get_large_triangle(): @@ -41,4 +45,4 @@ def get_large_triangle(): Returns: String representation of 10-row triangle """ - return None \ No newline at end of file + return get_triangle(10) \ No newline at end of file diff --git a/python/__pycache__/NumberUtilities.cpython-313.pyc b/python/__pycache__/NumberUtilities.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..ab9741043cbfc244c886df2150ac11bec47cfe0f GIT binary patch literal 3952 zcmc&%&rcLr9Di?ifMpjH7qnEZK3!|vBA}7Qf?Lv7pw>jXIBa4xDIIqoIJ(R%@6Dpp z9;m(OsT$jq-g@Xk8V~*fJ(%=j(hInxHFIjx6F1A6RB!!$XJ&tZ2sSl!lKIYiGw;Xu z$LIU`z9}{~h6r50MDrJZt0&}7?36CWZxp+s@h#DaAR66H1l8)bz;<$x3Pn?)AJA$* zs#-0`8m$gwtri4XH?G7&(>Fpx`HAyfq--N=*anxZoh7f@7c7(U$-FV8XSr!JYmA-L zr*yV@Y&xq;89Hv6wr-e`jpfa>ZCKc{1T)=***G`3(D60X%?z8+O(U1jdN1PiK=sHT9i!E-p;z0S~-68C$}B<{bB`?L3v zSU^{x6FSZ9yf9hXGSj-vO}H~m+5!~ zdqWH^Y3su7Wg0$k1#i0l$;$Pz0W(v1&kpb_=`0vO#bf>$4r4T%=a^xp1)spxaoy5Z zy)0>6<^uI_H7e_8TfQN_BARDG#VYhW*i%}_(6bDJn&&d)kaV?6Yrs=S;4Z!oqK`%i z15~9*Gda;rh)K_t$EN6r(hdPCxpazrTf@kyt%QVO&Nw+57^8D^XpTAo@MkRGC>@6! zYB<4?4iclo*ok{y&6b@>VO`{DXh;rbWZExteyP(#o*WT|ZjNWU z9MR8%?991P^}m)e+>yKL)F%*lS8}4y*+0(h(bDFIi#*wp$XaPVEBiXi<07Dy+zsOC z5}6_Mk->-U19#{*M{Z8e9=P@S@6FNq<|w>+CK0G#?bt=<6i2;i8KzSsKq($mof;Ph zjw)>{hmz+6Ca^mLqWPH!L(gemLm$xsU+Qq|9uQAw$m4CKVbj+~Zya5W4Bk!Mi{Dol z+Xo7f!9sX&UL7pLATpFLgC2V2lo^2zM2=!Yr66(|HHoIIl|IN5{~~eJ>AznxYYY=$ z3NG0&L)ZZz3iK8;#{8#bLy%piyjVAP4l*l;#G+?km_-L!hL7p_tSvEj4!>Nol#;(} z#uB<)pto0~3ZqU=Rf`J&{Q7jJbdj4bXOW zB5GW(u7TYsPH6?dRY+o$wJdo5)TOfXWsUZ20nvKQ^~qS06QPxnA=q+=w7uh$McD-`RREvlu;Ah$IT( z#JrjiIB|u;&?xj`5tl`F(P%qZt|`4|2+`rI7T8BL6-c^f+6o=Nz|)ry7<#Fe7?SZR zZdSp{wnl9(fqFfHz#wCPWt=~>tSr|};MR-*WRFA)t9nspr8SpOIq?RFk-<3v>{aKl zEs^%<8uj*SqG`cYa8L_-~GwSlba+ zCiANOfJ=&9V964iJTfSd4Fv;H?SsaO4`6~o^AF=V#Gq#>da`sOr@0~ThsKNQIM(oL zB8vMftX;pS?`}Xt7@Bg0EGO|Rsn*`9VWVPOwSQn5x{K$Y) zPC=QdI4VU;Bm5c+A#jO>x;0oC8Hy<`LtJmdV_(5q(!<(Y_a_TIA3x|?==o$N)(Q1ACnN+na_+KTO~R9fcbE<)Cag?8 z%lkwe-eKL6hd?|IP)h$&0#sdY2-A<~lbxIBd&_%+v~78tE9&8ga=Eph4%1?5h{j!w F{sAh1&=LRu literal 0 HcmV?d00001 diff --git a/python/__pycache__/TableUtilities.cpython-313.pyc b/python/__pycache__/TableUtilities.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..eea21fa81a489fc4ed049245f046e396eb221097 GIT binary patch literal 1832 zcmbtVL2MI86rI_1O4uZAAR!=V(Ma@wRmD!!SSTopsLG)#u7$F;q81uw*-SRO?9Q5* z*$|>0BDI&EXb(|)q*A4pTMs?ZYfn8IVhL%lJ#nM>0yq9&+kn9YRg5&>e`o&8fA9Uj z>-N}~MPQ5+l8v8DLjJ{v-k@EleH@%!ViQShdYnjV8(V}R|)~B)1jxQ8jPlT)e7`<3Bj|(mx z?F$bdBS&k##-b$Dek1f<*nkuoQ!ADzj0)qpp)9ut9T^P61Zt%H6_^zyLYH3LhgBRk zGM5nxhA&}sHf*y>Y;zj?lF?b2Af=8&O5Hnbiu)gud~W-1Yl-VbiZ@_IB~*jE{<;rr zl)ufbPo$^LS`0?UrjCne*?B+WLS}f!oJ0+nZn(=?XnX7)V$n6XY}C9Z{PM6qACO&?|jn8dbwK_7`)L><%&V zMG-m@@_6PMbDe^)Ci{l<)pV!_>s$uw1yB=&2zu#ReXB-|PD6CBTHORkx(P^@fL8J} zHI5v4NJa5Vauq?6Esr9`7Is%;Ak@$s>Be?s~{{Wdmn}t(PGH8?H-g4AjvVY(|1wRHY zR{pbgXZB9;&!NAb)F)Peh5X`ae4%=|8xJe7ywMz3{ZOPbyy^{ z06|7-2F&9f@^GAtj^CXBe!ev+TFaN4U#~P*gXY!n?rPXtj`k+S-iT<%>h6eY=2RQb z5Eo5vV9xCOfhz72kLHc-;MF&MZfovs-pkh>uiPeb3Np({G+2xDBvMzA6NUpjMjnNr z!!X;Z0`MON{@L+2@)ED|nw{C2op~E(`&>}zFdIZKbfm`z)5E``6ENj5G$>0YpGyza z>ua%FuV>}YB#;>RvUbA@QM{Ifd{Mp+yI5O=VGm78>3@bvbB{)csiu#n-l5~|!(g%m FPXRa0=KcTx literal 0 HcmV?d00001 diff --git a/python/__pycache__/TriangleUtilities.cpython-313.pyc b/python/__pycache__/TriangleUtilities.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..841ca61a99214b44a6103558cced768fc9fc5f8b GIT binary patch literal 1763 zcmbVN&2JM&6rZuzNmv^arGZ8XZ3eYPStQ#*Bx;GGAcsmMRf#Bzg#<{}vL3G&HoIot zIw?6JZU`Yb5W%sB9*WdM|AhVtPSev~d&&)BF5Gx;{Y9K0L`RyJ+1)qu-tS|a=Fy`% z!y!)Bt1B8~|ItHd@b;o9aIwWqrkKemnBryvW5P^gOqv=-%}E&pn@{v>%C&sQlf}^W z+|ZREvf|49up0P6-mAOomM8sC1Qqd^s$HS8N|*9;~ZJ{LCw6@MyTN0uU+@-O3k1D#(N7=6?+A`Wo^I z`70{8BW+xOv;)7K-H`Hbel>0pI%LB&>$WE$UyEhQcV2fD%hm2jgN_VK*t{CVVl-hG z!vpqugk^@GO>L(|LlaGW#rBa*nK8*f54Y%3+$Ov6n~As!#F!9j0RKcs7U*L9T2qVB6zSG!KDXcnw&lTMuA4A{`7n-Q7sYIhE&XE@ zek(k`{_>X>H=f+T34cXkjfV*FCwY qzQV6$PME^*I>|YIlSp!HFEhkX?VT9n%Y5(a0Y2Fr9pES9Qttr}2+igI literal 0 HcmV?d00001 From 700866f6aafeda089f60810442ae61bde4f03b12 Mon Sep 17 00:00:00 2001 From: skanamar017 Date: Mon, 14 Jul 2025 20:08:17 -0400 Subject: [PATCH 2/7] small changes to tables --- python/TableUtilities.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/python/TableUtilities.py b/python/TableUtilities.py index f75e202..0dd827e 100644 --- a/python/TableUtilities.py +++ b/python/TableUtilities.py @@ -21,7 +21,7 @@ def get_small_multiplication_table(): Returns: String representation of 4x4 multiplication table """ - return None + return get_multiplication_table(5) def get_large_multiplication_table(): @@ -30,4 +30,4 @@ def get_large_multiplication_table(): Returns: String representation of 10x10 multiplication table """ - return None \ No newline at end of file + return get_multiplication_table(10) \ No newline at end of file From d0b991de2389770acf10fa8658c31d980a23556e Mon Sep 17 00:00:00 2001 From: skanamar017 Date: Mon, 14 Jul 2025 22:05:08 -0400 Subject: [PATCH 3/7] finished --- python/NTT_Test.py | 2 +- python/TableUtilities.py | 11 ++++++++++- python/TriangleUtilities.py | 2 +- .../TableUtilities.cpython-313.pyc | Bin 1832 -> 1908 bytes .../TriangleUtilities.cpython-313.pyc | Bin 1763 -> 1763 bytes 5 files changed, 12 insertions(+), 3 deletions(-) diff --git a/python/NTT_Test.py b/python/NTT_Test.py index ae9199a..18c2b9b 100644 --- a/python/NTT_Test.py +++ b/python/NTT_Test.py @@ -301,7 +301,7 @@ def test_get_small_multiplication_table(self): def test_get_multiplication_table_20(self): # Given - expected = (" 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 |\n" + expected =(" 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 |\n" " 2 | 4 | 6 | 8 | 10 | 12 | 14 | 16 | 18 | 20 | 22 | 24 | 26 | 28 | 30 | 32 | 34 | 36 | 38 | 40 |\n" " 3 | 6 | 9 | 12 | 15 | 18 | 21 | 24 | 27 | 30 | 33 | 36 | 39 | 42 | 45 | 48 | 51 | 54 | 57 | 60 |\n" " 4 | 8 | 12 | 16 | 20 | 24 | 28 | 32 | 36 | 40 | 44 | 48 | 52 | 56 | 60 | 64 | 68 | 72 | 76 | 80 |\n" diff --git a/python/TableUtilities.py b/python/TableUtilities.py index 0dd827e..733d95d 100644 --- a/python/TableUtilities.py +++ b/python/TableUtilities.py @@ -12,7 +12,16 @@ def get_multiplication_table(table_size): Returns: String representation of formatted multiplication table """ - return "\n".join((" | ".join((str(i*j)) for j in range(1, table_size+1))) for i in range(1, table_size+1))+"\n" + + """ + out_str="" + for i in range(1, table_size+1): + out_str += " |".join(f'{i * j:>3}' for j in range(1, table_size + 1)) + " |\n" + return out_str + """ + #I did all functions here in one line each so why break it + return "\n".join((" |".join(f'{i * j:>3}' for j in range(1, table_size + 1)) + " |") for i in range(1, table_size+1))+"\n" + def get_small_multiplication_table(): diff --git a/python/TriangleUtilities.py b/python/TriangleUtilities.py index 4cb557b..48ed6c3 100644 --- a/python/TriangleUtilities.py +++ b/python/TriangleUtilities.py @@ -23,7 +23,7 @@ def get_triangle(number_of_rows): Returns: String representation of triangle """ - return "\n".join(get_row(i) for i in range(1, number_of_rows))+"\n" + return "\n".join(get_row(i) for i in range(1,number_of_rows))+"\n" diff --git a/python/__pycache__/TableUtilities.cpython-313.pyc b/python/__pycache__/TableUtilities.cpython-313.pyc index eea21fa81a489fc4ed049245f046e396eb221097..6e519c8f497a9352ba9bda406418ad10ed7f0908 100644 GIT binary patch delta 686 zcmZ3%_l1w|GcPX}0}ya;FU|PPGLi2-XAF=R$1s&aZsQj-Mv)pI&yF#UQJFyjC>F{f z%-~@#*^ViwKA1rlC{@NVl~sYk*9d3;P(eDgIddALCQB8QLQOIwP#Ol9fed3H{tQ$I zG!Dry9tMUy#t^1ZMqO40hF}JMn2CH)6B)rKGF36z8T+kd&}6>Fq-Su8G3(Z3N#^Bx z;y}}iWr4(xmkbRI7vuvjnfq^0Twu7MaG~i6p#@q?c!2^xi&=mwnnlDXzhlmI1#2+@ z3j73X5vjbCRB<6TZbHiR%!!#-zr#q9DcNfnnx zDlcJDXlO$PyJGMzP50GPn8#7Im;iewr+|*yH0<@{{A^ zAua^Dtq7#Ahz&%5TvG%x_7;atZhlH>PO4pz?Bu^}62bzE^^Bi1*cjD63$Zb3fE5A& D)pDEy delta 567 zcmeyuw}OxFGcPX}0}ycQm1fLfp2&BfJqpN+W0<<}n;D}>8IWzq7{{p0pujMdA(TOw z!9#bl15;3a8N*ao1qNSzphlonIvon4Obh&6w0UzRBZ|sfm$F6wSWO^0i&NL<1OamlA_7%%p3Lifkqa~0*N0l85$Ta zDEM45_1?g^M0r8t3dV)W%QY5g00n*)vj9~zOUq4u#+>T})?x@0_zBh`l6NUQ_d-zc zgw*L-6SJ-;_-qN?VYnmfgy7DcE2iF;6@0FX`CJh50V;wR(_(5lc?OGPxBQix!l?}DjFUZC^H}{>G8BnTKFX?RE)EnH0?D%j37~B}K--E$fNTP$xUm&+ z_!Wr(6#@-9!luV71!PKtxDr5OG9SA*H^}HBkT6h%0lS2b43G(OPBBRA12ZEd<3}cD XMwU-J9E>H5pTyW01wIP_39#(|>vVmN diff --git a/python/__pycache__/TriangleUtilities.cpython-313.pyc b/python/__pycache__/TriangleUtilities.cpython-313.pyc index 841ca61a99214b44a6103558cced768fc9fc5f8b..40183c077ea96c6d5270ced5857b24d1bc074094 100644 GIT binary patch delta 96 zcmaFN`@e1wIMNzk3~lN=kP^k*S9MwucGppgJ4b{=s6 delta 96 zcmaFN`vm1cNu@e1wIMNzjAwlN=kP^k*S9MwucGppgI>Q65?V From 46343be33cad52f06854340a866bc3eafe89db99 Mon Sep 17 00:00:00 2001 From: skanamar017 Date: Tue, 15 Jul 2025 13:14:46 -0400 Subject: [PATCH 4/7] no change --- python/NumberUtilities.py | 2 +- .../NumberUtilities.cpython-313.pyc | Bin 3952 -> 3952 bytes .../TableUtilities.cpython-313.pyc | Bin 1908 -> 1908 bytes 3 files changed, 1 insertion(+), 1 deletion(-) diff --git a/python/NumberUtilities.py b/python/NumberUtilities.py index 4b576d1..55b3fb4 100644 --- a/python/NumberUtilities.py +++ b/python/NumberUtilities.py @@ -16,7 +16,7 @@ def get_exponentiations(start, stop, step, exponent): String concatenation of exponential values """ return "".join(str(i**exponent) for i in range(start, stop, step)) - + def get_range(start, stop=None, step=1): """ diff --git a/python/__pycache__/NumberUtilities.cpython-313.pyc b/python/__pycache__/NumberUtilities.cpython-313.pyc index ab9741043cbfc244c886df2150ac11bec47cfe0f..a171dbd4a22db041abc71bc084f8f43dc9a6f72f 100644 GIT binary patch delta 22 ccmew$_d$;LGcPX}0}$}`lx1As$eYX$08zvSzW@LL delta 22 ccmew$_d$;LGcPX}0}vcmF3q^MkvEwi094io3IG5A diff --git a/python/__pycache__/TableUtilities.cpython-313.pyc b/python/__pycache__/TableUtilities.cpython-313.pyc index 6e519c8f497a9352ba9bda406418ad10ed7f0908..0e400a753705271b2c03cdd58bf83047576edf48 100644 GIT binary patch delta 22 ccmeyu_l1x5GcPX}0}zC4FU>f(kvE+k08>r|{r~^~ delta 22 ccmeyu_l1x5GcPX}0}ya;FU|P9kvE+k08!rt?*IS* From b91dec008b3372d92cd300b16623ffe680f3afc9 Mon Sep 17 00:00:00 2001 From: skanamar017 Date: Tue, 15 Jul 2025 13:59:24 -0400 Subject: [PATCH 5/7] no change --- .../NumberUtilities.cpython-313.pyc | Bin 3952 -> 3952 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/python/__pycache__/NumberUtilities.cpython-313.pyc b/python/__pycache__/NumberUtilities.cpython-313.pyc index a171dbd4a22db041abc71bc084f8f43dc9a6f72f..592d0d8a87fa4768a95d78efcd73722d7d6fe61a 100644 GIT binary patch delta 18 Ycmew$_d$;HGcPX}0}%Lc Date: Tue, 15 Jul 2025 16:20:52 -0400 Subject: [PATCH 6/7] no change --- python/TableUtilities.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/python/TableUtilities.py b/python/TableUtilities.py index 733d95d..d513a6e 100644 --- a/python/TableUtilities.py +++ b/python/TableUtilities.py @@ -21,7 +21,7 @@ def get_multiplication_table(table_size): """ #I did all functions here in one line each so why break it return "\n".join((" |".join(f'{i * j:>3}' for j in range(1, table_size + 1)) + " |") for i in range(1, table_size+1))+"\n" - + def get_small_multiplication_table(): From 37b88b295a89bc6d8caca4059b35dee4f4105a30 Mon Sep 17 00:00:00 2001 From: skanamar017 Date: Sun, 5 Oct 2025 16:58:07 -0400 Subject: [PATCH 7/7] on new machine --- .../__pycache__/NumberUtilities.cpython-312.pyc | Bin 0 -> 4132 bytes .../__pycache__/TableUtilities.cpython-312.pyc | Bin 0 -> 1960 bytes .../TriangleUtilities.cpython-312.pyc | Bin 0 -> 1849 bytes 3 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 python/__pycache__/NumberUtilities.cpython-312.pyc create mode 100644 python/__pycache__/TableUtilities.cpython-312.pyc create mode 100644 python/__pycache__/TriangleUtilities.cpython-312.pyc diff --git a/python/__pycache__/NumberUtilities.cpython-312.pyc b/python/__pycache__/NumberUtilities.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c0e40f17823fdf7044a96bb03e74aec332e035a6 GIT binary patch literal 4132 zcmd5LP_l+wEVP^)|Eslt71}jX&aL!W*v5>?Z9?sd+%(a zwImHQbq^fTKS*DkR+@M#0EFV`wRTEdLdeS4O4c_mVNz*Y6!49zKxHD{9%ot6ZV_MR% z9A*!)liHZZO2;OWnh;gTZOhS2OR&MTm2gZO-)zn-xiA|tEQ4$KnQ4~JMl{PzrIYT5 zv@oq9mbC4Zs7k2*zTjB_cL45O4~WYF*c?4W;kD$N4h&LVxm4lcSb0s7Njj;_d+lyA z?|q;5X7`d%Kx>9Z6@%-P;iS3661J7l9K(WJXTsrV6l~eufM8rR1#~zz6DcEM4w}#~ z&Zle(TqBoxgAa)=`G$)MN8?Tx>%|AIz4{B9T9QG~(}s}q zvm{aI_A>D15x8?*AikvU5(>DRBp(C`xj>!#$VqxdnSc<^dta{88A{3329=DHZvyA& z9POE-*#LMt6v!&A2eZ`7R`?bOj2&ZBkI%IA3xkU`0q)lTLBnS?OB>O6QcIf4|z4Tvh}N&!t0@@ z9LF|+0L>4!lA4X59=&oj6O4S_ztHjB-dk$sz==D-NTxcnq(*WujPxY(83L_*cJ)C6 z0!XLSNeG}$FA!Z>Ezf{X$TQ`bs%?9=95XEdF!)BIZaw+LT7Y8Eeasy6o`Us2P8Md+ znwhqr*(szYEh&|P+hLt2b8bJ=jX^D)bOdJEAvt#4Y2{N$(f00RL^uYdD7g?VGPw@J zOFp$Wm8MonQf>B=ieqx}4It(ejuGZiFNnY*!I;DouYvc89SADv>s3&Vm=X;jJWz*c zH3ap{tG9z;7ta^BY@@suM$83x9X$AE6fzrdN8m&kyOnu09J6E#+~N=j0Bi%PsF|Al zc~ir*darKtblJV?TEs7?_^RXPmIZY|&osSuCm7CDhnLhaM{|lCghIb0a|N2e38 zZ(TXt0;VW>pqJ<>5PjLiWf`sG!$#sP!bJ0Hk|~%mW>~Vf7;KImcMJja?NSJa9NVi$ z{Y~3W8kz!?_FtJzwfu|i9 zFl_k>T$J*~AbSocgmp7ep-plNYYO z#UAC5{w~%x)9ZE39$6_XWL2me!MR z`?t{d!#dChsqudUUx7*g1@`#M5JvzX62@BK+k+qgTi3u|%twTWy(nOB=dIC9=R1q- zna=lo>_s1O$PFS3BoE;nWEHFD&+w z>5wpINWlSI{srlDUUi2;F;pggUk8T7Xj92QnRaupc5j$fA&n_Zw` zO$kwXSmsziy}t^t)CMsS?mR!{ybVU-d0604Ws3aSKx$r^P2bROb}#JCR71UOmjMVV zJ-i7Ck@1xayLAmql{_6it_Y9VdOB$w<5Dfmusr&TQs+0BYk~&PX&Etd8-ta^b}ogtfVoTYpkLj(xSfrm!}G3 literal 0 HcmV?d00001 diff --git a/python/__pycache__/TableUtilities.cpython-312.pyc b/python/__pycache__/TableUtilities.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..91f7da23deca1bb98685e400f1b551e74a710d1d GIT binary patch literal 1960 zcmb_cO>7%Q6rR~#r-^?`8ktavL>8%PYJTjbO$4o?h|-)u3U1RXQlw%w-ib5Gde@nm zP2yDuk*HLHkO~LLflCk+&ZqO1LtJ5cQ|6o2yk#B<%{vz7(W{;-Eb4M|%6IdE zdeZZlSs*T9mY{Ayz7{PZh;0^qN6?Z(^RNJ02)Q*keJ-OM&nxk0{s6k{pdF?Tvo-jC(iTK&ri+N?WhbH9R(<@y*(89^8|VO%G| zXYMh0B^$g%@^p$qN1O&kn5sa3`Ha5JeL(DOx@H38-`d)+@L80gl_rKW?H$EGm7tS}uSiXrqKUe%Ux5J8~g zFO2K7*=^#-GsTL6(N>GMoU-HlB1MM#&*dmTek z@QWoj91IqS$TcfHr}U5>a=g6d@Zt1f@FVXTz|5Zm^WabPU2bL^XZoTt~y+%K!)t>Bk{twrFjQ)J>r<2uJ-`?)YR=cy6vGL!! z$G4K@I^Np@uVEIKTPMJzFzbW|mkqqD5QV4z4GcR4L9!)22nI;m?TSR&cTb{t=iN)I zm#WF~_GF!G<4LG4##2z(wdHE zA?NH-I^L+pdMie+qGL2=geP)2+so&2b;2csOy(WgYp;E%=-IwQhM6Q-YK5Nxv#Vo_ a|I&19+>dwS_woJnZMe7A)rQZj4gLX70uRps literal 0 HcmV?d00001 diff --git a/python/__pycache__/TriangleUtilities.cpython-312.pyc b/python/__pycache__/TriangleUtilities.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a16e1591ce1af9a9be8cb3d8b331d2deacfb3313 GIT binary patch literal 1849 zcmbVNO>7fK6rQm+KRAX!2tOi-3{sJ@NW|giLKFq8APS|53IRomR9S;}Vh^l$mw97C ztbiiaO9fSXs2YwOL7@^CZX9~=B_W)Aq?dA|F$c)0Z^pk#2ttfB&(G^O@8|ozS^vF# zdxGFP@#0PXfEUhj^nN*(cma_j+EL6nILYg z^en+}T@kvd0tT2AQ(%i6FsFo@z-FY*Gl)c1PD|n8S5N2dnY7Bmu=PxapjfyrR3@Cx zfaVH@*`x_HsdQd270$4MYRJ0mZcFu+WD}eFuz_WI^eJ&^xqCx3Fw?R%KXna+f)sEG z9Kp)pXot=nM{~ICWPFc~A>&3XRVEyl z(U>+-c6sqRvS>)eb&f1n9kN(E=g|^AK{B1v%N986WGWFU0XQ~_2bE|DsVip#wM~9- zDzK@x;@AWXvkOAz@>bFHlr8l))46pg_ShO-uUfp2E9>VEktcC6ew`tZ^~uhl)1<7`8&Ir z$YI>D1I;{npCrlskLZIlOU{9> z$6)@8Fz~s`iAMKq;P}v2fpC226DXKJAGOz*PhnsyH!(0GJc_&amZ@S8Tj}asa{4R? z<8E8IBa`vMY$juMUxn9Tr_A9EMb