From 3b1db9de371c4304ac494bb20a6f2f453c6d9d58 Mon Sep 17 00:00:00 2001 From: Christopher Creutzig Date: Tue, 12 Nov 2024 11:39:55 +0000 Subject: [PATCH] Sentiment to structured change example to using structured output --- ...zeSentimentinTextUsingChatGPTinJSONMode.md | 84 ---------------- ...tinTextUsingChatGPTwithStructuredOutput.md | 94 ++++++++++++++++++ ...eSentimentinTextUsingChatGPTinJSONMode.mlx | Bin 4801 -> 0 bytes ...inTextUsingChatGPTwithStructuredOutput.mlx | Bin 0 -> 4973 bytes ...eSentimentinTextUsingChatGPTinJSONMode.mat | Bin 20192 -> 0 bytes ...inTextUsingChatGPTwithStructuredOutput.mat | Bin 0 -> 29254 bytes tests/texampleTests.m | 6 +- 7 files changed, 97 insertions(+), 87 deletions(-) delete mode 100644 examples/AnalyzeSentimentinTextUsingChatGPTinJSONMode.md create mode 100644 examples/AnalyzeSentimentinTextUsingChatGPTwithStructuredOutput.md delete mode 100644 examples/mlx-scripts/AnalyzeSentimentinTextUsingChatGPTinJSONMode.mlx create mode 100644 examples/mlx-scripts/AnalyzeSentimentinTextUsingChatGPTwithStructuredOutput.mlx delete mode 100644 tests/recordings/AnalyzeSentimentinTextUsingChatGPTinJSONMode.mat create mode 100644 tests/recordings/AnalyzeSentimentinTextUsingChatGPTwithStructuredOutput.mat diff --git a/examples/AnalyzeSentimentinTextUsingChatGPTinJSONMode.md b/examples/AnalyzeSentimentinTextUsingChatGPTinJSONMode.md deleted file mode 100644 index 222a870..0000000 --- a/examples/AnalyzeSentimentinTextUsingChatGPTinJSONMode.md +++ /dev/null @@ -1,84 +0,0 @@ - -# Analyze Sentiment in Text Using ChatGPT™ in JSON Mode - -To run the code shown on this page, open the MLX file in MATLAB®: [mlx-scripts/AnalyzeSentimentinTextUsingChatGPTinJSONMode.mlx](mlx-scripts/AnalyzeSentimentinTextUsingChatGPTinJSONMode.mlx) - -This example shows how to use ChatGPT for sentiment analysis and output the results in JSON format. - - -To run this example, you need a valid API key from a paid OpenAI™ API account. - -```matlab -loadenv(".env") -addpath('../..') -``` - -Define some text to analyze the sentiment. - -```matlab -inputText = ["I can't stand homework."; - "This sucks. I'm bored."; - "I can't wait for Halloween!!!"; - "I am neigher for or against the idea."; - "My cat is adorable ❤️❤️"; - "I hate chocolate"]; -``` - -Define the expected output JSON Schema. - -```matlab -jsonSchema = '{"sentiment": "string (positive, negative, neutral)","confidence_score": "number (0-1)"}'; -``` - -Define the system prompt, combining your instructions and the JSON Schema. In order for the model to output JSON, you need to specify that in the prompt, for example, adding *"designed to output to JSON"* to the prompt. - -```matlab -systemPrompt = "You are an AI designed to output to JSON. You analyze the sentiment of the provided text and " + ... - "Determine whether the sentiment is positive, negative, or neutral and provide a confidence score using " + ... - "the schema: " + jsonSchema; -prompt = "Analyze the sentiment of the provided text. " + ... - "Determine whether the sentiment is positive, negative," + ... - " or neutral and provide a confidence score"; -``` - -Create a chat object with `ModelName gpt-3.5-turbo` and specify `ResponseFormat` as `"json".` - -```matlab -model = "gpt-3.5-turbo"; -chat = openAIChat(systemPrompt, ModelName=model, ResponseFormat="json"); -``` - -Concatenate the prompt and input text and generate an answer with the model. - -```matlab -scores = cell(1,numel(inputText)); -for i = 1:numel(inputText) -``` - -Generate a response from the message. - -```matlab - [json, message, response] = generate(chat,prompt + newline + newline + inputText(i)); - scores{i} = jsondecode(json); -end -``` - -Extract the data from the JSON output. - -```matlab -T = struct2table([scores{:}]); -T.text = inputText; -T = movevars(T,"text","Before","sentiment") -``` -| |text|sentiment|confidence_score| -|:--:|:--:|:--:|:--:| -|1|"I can't stand homework."|'negative'|0.9500| -|2|"This sucks. I'm bored."|'negative'|0.9000| -|3|"I can't wait for Halloween!!!"|'positive'|1| -|4|"I am neigher for or against the idea."|'neutral'|1| -|5|"My cat is adorable ❤️❤️"|'positive'|0.9500| -|6|"I hate chocolate"|'negative'|1| - - -*Copyright 2024 The MathWorks, Inc.* - diff --git a/examples/AnalyzeSentimentinTextUsingChatGPTwithStructuredOutput.md b/examples/AnalyzeSentimentinTextUsingChatGPTwithStructuredOutput.md new file mode 100644 index 0000000..31148fd --- /dev/null +++ b/examples/AnalyzeSentimentinTextUsingChatGPTwithStructuredOutput.md @@ -0,0 +1,94 @@ + +# Analyze Sentiment in Text Using ChatGPT™ and Structured Output + +To run the code shown on this page, open the MLX file in MATLAB®: [mlx-scripts/AnalyzeSentimentinTextUsingChatGPTwithStructuredOutput.mlx](mlx-scripts/AnalyzeSentimentinTextUsingChatGPTwithStructuredOutput.mlx) + +This example shows how to use ChatGPT for sentiment analysis and output the results in a desired format. + + +To run this example, you need a valid API key from a paid OpenAI™ API account. + +```matlab +loadenv(".env") +addpath('../..') +``` + +Define some text to analyze the sentiment. + +```matlab +inputText = ["I can't stand homework."; + "This sucks. I'm bored."; + "I can't wait for Halloween!!!"; + "I am neither for nor against the idea."; + "My cat is adorable ❤️❤️"; + "I hate chocolate"; + "More work. Great."; + "More work. Great!"]; +``` + +Define the system prompt. + +```matlab +systemPrompt = "You are an AI designed to analyze the sentiment of the provided text and " + ... + "Determine whether the sentiment is positive, negative, or neutral " + ... + "and provide a confidence score between 0 and 1."; +prompt = "Analyze the sentiment of the provided text."; +``` + +Define the expected output format by providing an example – when supplied with a struct as the `ResponseFormat`, `generate` will return a struct with the same field names and data types. Use a [categorical](https://www.mathworks.com/help/matlab/categorical-arrays.html) to restrict the values that can be returned to the list `["positive","negative","neutral"]`. + +```matlab +prototype = struct(... + "sentiment", categorical("positive",["positive","negative","neutral"]),... + "confidence", 0.2) +``` + +```matlabTextOutput +prototype = struct with fields: + sentiment: positive + confidence: 0.2000 + +``` + +Create a chat object and set `ResponseFormat` to `prototype`. + +```matlab +chat = openAIChat(systemPrompt, ResponseFormat=prototype); +``` + +Concatenate the prompt and input text and generate an answer with the model. + +```matlab +scores = []; +for i = 1:numel(inputText) +``` + +Generate a response from the message. + +```matlab + thisResponse = generate(chat,prompt + newline + newline + inputText(i)); + scores = [scores; thisResponse]; %#ok +end +``` + +Extract the content from the output structure array `scores`. + +```matlab +T = struct2table(scores); +T.text = inputText; +T = movevars(T,"text","Before","sentiment") +``` +| |text|sentiment|confidence| +|:--:|:--:|:--:|:--:| +|1|"I can't stand homework."|negative|0.9500| +|2|"This sucks. I'm bored."|negative|0.9500| +|3|"I can't wait for Halloween!!!"|positive|0.9500| +|4|"I am neither for nor against the idea."|neutral|0.9500| +|5|"My cat is adorable ❤️❤️"|positive|0.9500| +|6|"I hate chocolate"|negative|0.9500| +|7|"More work. Great."|negative|0.8500| +|8|"More work. Great!"|positive|0.9000| + + +*Copyright 2024 The MathWorks, Inc.* + diff --git a/examples/mlx-scripts/AnalyzeSentimentinTextUsingChatGPTinJSONMode.mlx b/examples/mlx-scripts/AnalyzeSentimentinTextUsingChatGPTinJSONMode.mlx deleted file mode 100644 index fe23af715c84a3c8e94803825632f0ed6942c733..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4801 zcmaKw2T)U6yN2mSic~2gy-E>7lOiR8Kms9vBGM58QWGTfUIc>za;OQtg|4E4G?7pO zh?G!Nic|@pNSCI-jq{(m9=ZQLd(YZ?X3u=@?Dec~y=#373Z|suAR{BABQ+tias1VC zC2}&d8cH%UcG4H?YjAHQ%o}NcBM1TWwUrC>@~lhkhjhrZ#IA>(>ARKIfY7EB`xYgD zV$dzuXq)%UE>H3r&sGi#Q8t#MW~QR|_VHiJ-qh_S+B$X8T&vFQUkp-9r>OCVdEIIZ zy*(vy%S@NTI@;%)Z)1mKSEzFDIrU`IXA^iE3*BR@igIaBLF_>BV(;*Mng_{_r5ejh z)lgfbvP_UV_^wo8o{%fM&~s}WpohT}V{u*{cw>5$_rZ&bMAPw>0+_`r@h@hOZyBcmjsgbEBhh8lUO!5Z+*9&U5!dz#pr}xZ#nWbWdQ{aJrj>a92mwT0?_h+3;mu$iPN zm(}?m=3VadSZ%|Dig!|K02i)AC~}Up1we(sOWT|Z*JxygffO=QdJtnNHjuKzMWpKY zoO5<)Xv;dZ>ElS)M)_t@{hQnC>Eq*BRY_sQ13aWORnPM9UGeHI)D95%9kO?V-OxGD zYRO176h%f`J?RVE=-rQ3exjp(o9Mx4cxWstnnWinL3fpp@9oG;6W&wR-T!*BpNiiY*cTD`A?v`Ggm&3lVC2h{3mU_ z9Fd-mcP=@@o&3B=+50PP`z>v~7nE7T2c^VAYZGsN7Cq9L>%84C?(&sloQd~Rf-v0~ zE8ae8Q69o@`{@QqMaI9{6SH;=vTdU50l z0tGgG88myb(hhs&-p?ntm$tY9M$G}aCkY6Mi}>_=T^t#lFVx`(p^>uoZG3hC9VESCN!Lt$Jx74Jc5HqS72M!HL#JssQ>7BXgJ0)J>5iP|IpYigrd%ua}>_EUhGN zGBzQC=Gu%|7$=1N>g!+Ys>Qn2*~dt6RM>lqL^jH43*iN$EF>=P3>+d7eYtsZ34J!h z&3n4>cKNkLQy#r0sN7FoYgByTQ``7Su5Ng6%(Px5?2-EfhmftF2N>@o_o-x@uEU>O z*(x(rKl#f`?nZ?dMJ^qJtvJ)7o+Gtuv-elS8)q-7*ZUt4=L|V&yW_RFWQ#n`1K*_JpywZbCAe=Ii4Q33hM=**apm=|US*~_U!O9- zvnz(Pg)L@LOlR;x?xfXqj;Nwa1jVr36Fov+s|x}VN85Yri+)n6?NmaTWrH%Lgxp!X z$G3uR1*WC~s*A_sml_8jW(TaKk5#4_YkEy3V6GNXwySlZpP)Um8=OJ7N`y>Rb2|^Z zURT>{^np#G@XxO6pJ8^D37!TJkF~Ycx=z~#LvA>Yrur*pg#u8@qFkhbYlrTpvLu1q zVJ%De-i`dXX+2;I*0@$-Ocz7@=H2UpSU#Bav8AE4qC>A^?_J1?(x+@KmBWK(Uu^Ub zVr6bq7B!_!8ouq9&6{FZ@R$Fw9 z9TCWoo+0LgW6yjm$qq9v`!HKU*re=>RQ>qYgC*Ex+M)p^TZ0NbJnnpG;MYx~N|_qO zCl?&3cj%DOK>yRkA&b4H+#2mCJjsc+m>>cwv#jD7R2){+4by#cnsYC;KlQh9j600d zc6?SjbmTdvRn#w4Hj7#><{!SRWuM|elhEJohbBJg^B6K6-|_wuy(`PDg6<#VV9{m@ z{_v2_;X;D98{#VrVIu9$2E9z4X*jHaQ&H)Ar*Qo~e)|UD!+<2H(Rt1A@p!odSING{Fg5 zb|oFJOsms4s2%!HL{1Y2@;zulh83XI-XBa2Ikw}D*N!vg1?fyykbCU8R-W2n_DFk! zS5*<`Ci)^|la8tXbV3(_I3EDX2}en*H!Epr`P&KMen^Dh-#%#UJ$apDdWmDTx)-5f7JJ_Q=-(M9ar+gkfFL z7Mft~?e#|D{ufj?&xfAyvPK%MIXAo$@#cyQks)Q}Crg4LSa9r}v^o0Oe7}%+D;2+7 z)+-$+_jCGIF*bmAC0X=tY5O%qo^6mT@#b2vN475-UhAwZ$NYFr7VO1S-U&MQ zP-A<@j`R=DCm~aO=vN#aW_giX&Ur^J<;QY|)YV8Lr-XQy%|RG(9DeS>6|mXjLgG9@ zo;k6?B6;zpz6+2-({4Nj`zIKdvCxGq&|IFEC!J&P8fdQ^&cZfk z!rg9ntITE^!7EkteAZN{w;<&)tC}PdH7PVmC(|drn!Rn1TKo93Y_ij3S_2aZWEtCn zh7vL~fD_qUfk3kd;^vPn_>VW~lg&y|c@(&|ttlHPd#qUUdFSMoY--+e`eTQ4>> zGjg_hc#g8P3|T{c7C&L}P&0>DE?_9vsD^W7x`)^ztuj~m`i{C_NT$%m8(3HdjX#EQxOQVar^*o$y&--k;*r@#w}u5b%ZIAOAMlrjVGp+# z30>yliE}lQ7USi7NAq`S@7y&$8t|Vx&k78ExIl;Ci`rV(A_x*e1nJ6EMV&Ob*N2Gs z*ZdXOMPb>cW7RX?)9m~Pn#*=Fz@FtXim|T2ekV{C#%w_BV3`Mjyz_Fx)3h#vJL8-k^+JoP#g-Mq(ANT z?F?&1E^vx-e|z0WzNU{Q3dskhxSk=R4C4VP9o|-fnZ**}5#_sJ+eX812L0dzPnxE& z;>MS%ZZ1C$9Xh#2=Y1NpEhRdzCM|&ZFoTS^V+qM`R+6p|N!M=LQgepIDf-e+s+uyN ztYp6Boi|$FZ_62r8D~ZJEl`eBQIEK(;*d%5{fFNjrrh4EwkxVXr5y=~SrHJ(dKfI9 z=`F8ssgU`7d)QXtlL()}H%jcA=3JgFLScnHSreDHBG-uuCe(M578_2z+*E}Pu^g*r zeOdo%SgZrzYGq~0^m=Py>dl`9gExOedx5lf<)I)WJO9gIU`R)2N2KE=C-^-W^d1}m zyN7gx`Tp8+-A}OvcgSK&YW*d5Iq)>=|7+aASTshD1*p({f|7cBztwT z8VL`Q-(F7y?afW<3`tVRazDGwlA*BG!Fyqk`3WSaT|q5cW$vPes7ND2aLHlo;E$EI z(j%Uru!acUJd9h&zBF|MM(_sTH(=0XR^Bwe`H)xUTY%TEt8O*SrZ7@amoa%wmqEK^m9o6%*2?v6nXmG@<&3@O^-tm- zPaOqzuVp=FQrs|}^oc8psYPDc-wO;4T9n}uq?BV}4#mG4hbRqeAr1D^ft@#GTr7m% zQs#qDaG>+m!uY9R$q|tfYj3{|;pkQzr{0WLaP6w^n7p`OLG%s0YEd+I?iln7Y#u^H zRi?&(IhjD4Hn&;3ol_oVYvGCyKPHzQMZJCsepsqCYp+#&t*3k->;wFgnal{5ri!+l zcnXBXx&g9+1Ynxf#QzP1ULdJ1^>u@L|H?GmBz3lEc@DA=NQ$9A`z-=J)Xl4qHc%WM z86|4OMg?Cl8wn3^)oWfsX$&3UFc_>4ke=6V%%KT0{lwM6be@u%I#tPXL?Re8A4Flo;ldDunNcx7&$kHXaRMzq$H z`}j16Oed>bT|H!81D>yl0~i&HQe8%jy`8%e_uWOu#j%S*O^B+#nBg%7cVu65KFCiCR-3J0H97?z|EH zPwUzdvQLj$E$k=pXAmp)hxb$mET$-g_t};A3>_PeHn<19aqDCVng_EGSj{5YbA zg2_qd@&6w>kVue`i2Qy1mm`SN0;lWgUy=V2a3Q_^QC*)7JY6^b4tz!W!~ar6o)$R0 z-TEznqy1lj-W}$& kTJvbab?URxH4-*=wRRjPng0ZXWYQiC*62?EjrC_<>x z9@3;M2q+K){y5*8@yYl7@7_80&fJ;3=I(XYS!eG9gA$X_0{{RZVQ>Pbuu2tD7XW}7 zVgTSW;fswr!Y2Uk6X0MP>I+BO-3;;eYRdj#&?QO}za4q;y+zJzUsWLQmzZnG6dDzZ zZx_AtD$>2D@}wifrS%0#sYyUSenG2w-!%GH>~3|FsiO-%d=8b*C8`O6ds{R|Sk3ZV z7;6yO#QI%9Hg^g1L`e5vQOGc=o5tFjYn)nFR^0I7C>t#O+&_{)mXzW2OmR&L4YSiL zf2gYfbrXD2$mx2Sv%$s|?5Q(LSz1^K-I*I>NouT26K?m-CYGRb`=L-@6{)yHD)?2t zj52u9J;&n>sIn`UB%Zg_x63;L$bPVs(-vM zBl*%uyd0ufPQq(Zl4WM#Af3@@ql+dMEHB06xfmfi- zW*>Ft(sZfkxlz^EB>6A>Foa@>PW8x3~sq@%QO3<|hJsZIfTV+unD&Y3p@yOj1Tn znz68L+Pzj>S{Mz%$TX`q^7&;V-sbSuP|n{v`Pn;L3^5tZR}VJ5@1G=PtW3VK-uELM6h&)eTqp&9|<*BCEasTt6+B=&N~ z=}D39tR?|n=}@&&r#fZVKc|i)Vk;}O z2PlME88$Go%8q_K&$7DLKxqMBy31MtsfFugHfq`4i7jrztaCHe(+2~6cPvQR620Hm zN+_hRQuH+E(E96(9qrE)Z6WmQt?6|~+ER$p6<5HK#0#-wo>!zZ5-#4=GLfqcy8JQ2 zzclTJ#t6)#9(!r-$&J*Y5T>za{rqbI*P;gKrK~S*&RpV{$tfYyf!m1aQ<9Nakn)Zv zYvjh3IoZjXERY_C#^m%3vLe?Lw^CQo_wjV#yuHRJlJpqPufD8JvSwyIw~<&#cTaME zICE7j3v+GvYwc=3542u`+~$>^$VF`P1e1L`AQqZBc&o1$@jw@`X4^!{rTt|cAC z;y2J)hr{A@Yx@$O&tv4_XNn$Nk{eq3Nr_HC+}dK0CA$iocD&UICxG(IQSf$lBbMLj zOmS7Xf%)X#>+*`>)qoHW;>KL)6}!$07FC%COh}2-BuIfjn=;YBK{A|gBJPrh(@*O+ zpsyQopcB4V;|1f39}_ko9N3&l7ilucilRU@%y`Xbi?P_(cjvsVLh~g1b5-3ejOx7` z9S!V_4RM;jQ-QPc_FFZ6GW_muTC3NsE9AXBLu=PU@7znb?vm3a6WYwvs>}C5Ij1;8 zP+(?42I(WV-4E5vWM~2&A^##Z6{&bwN&j$n+-S2PeRdW-GxAJkb9heb8)Nv+7nv3R z=#c%d%UzCCfq2%nqfrLlAx%gLdcC>aBeH$X+!k4#2%}KRwqeh=^eB(4L5q7-~N6FrITJ0uoQtOGm@<)YE zPE8+CYsLR%N^7fKug%9{`OQv zV1RGn-;S#9vm{MFw@OdRn0-Y@xZjVix64h`d)VNP3!kcSKo;ntR*AP0&j?4QtoyJ; zz?50AlEy(RLE7H1S z`Bx8*^AK%Jixy%|JxWlM2W>aLqsOlEk&fAIXeza&IjH3dv)jbcg+=kX2Fcz>V&0fs{Pir8b5z$Fc# z)`5|2@xev04-DOVO4cLMHECN=j=i{{vLmLQCL+TH;G24?z`ErJ-fzZu#|!X54f_i!_2O z*VA1<<(6544tk?l~gYin>wetHeN{a8_4i#XYqpE4*`S?8-;CG zdz1n=4>E?O^>yp3-$YfT*llcO0<-!zxAdKcToyED>1P-m-6@h_|VzhKk z3QH;lCT;sJDQ!6=HG-t{pG@CvZM=2pALUc_7+j^NT)~c!6~MJ-3Vp{+ZI!=sHIPWd zf=gs1hkEkG+S=ROx1M_#d;Y``adrF!AHgr|X!A=h>2lL>$x3YOE}_Tnuk>xM?t zfNzIQbxac1wm+R6t`0f;6)p1i`9K+N5GKw5TdCV^S##N-W77IjhkJ#iZz|f7ib~u( z*{VGl#lq>tqc%ROEj3`+OV@~@-uIeYd$vF3&V;94^2_BFqQZ%G2j9hF9jveFOPgmk zp^MShJ|;5v=3n|uv&&yE_;i~3rG-ADu0e!xXCK=}G6&uyuXKOQft*meU0Jwj6wSoGc;ot$cKe+i zrN!YdcD$l4?|@NqXuG@%j$F4NSYjUjR0-Y)$`ru&aa0N{)J>mmp0=?#zSaa3j}GPM z?Xtd7kkG2!Z413y{iT;$;v`#GE2mg&rc?ASUuF+hjnO4?)X36#HxS4Xo$X?x!DRR; zt+t@T*%9(G>9cW)I+H3YTq0^x7Nz?>_p#1Knx6xt`m^)>2D7&h}Hos%c-$jvB;#u!+@5Wh2zt%tQdd)n66{ z4{*Be6yPLs3*irk`6GPc{sHcADo3~gMUk}DoTvSZqTWWs6JD1=n$7%mnm7++iv)gx6P8b}45v~Wf zB@5F$fK!xkCTWqVrFV84Xhj%H`x{ROf25ApqH|M=0~O+O?jy{red~PvoGFLa00zhR zb~5#r=cr@6pF&-T;vm00K?!e>+J zxg~Ztz9D`Xb@T9Nio_4=Oou&{e0lR1MrV*!(6eD1S7@OfQfugGDTg`aG{EYE@`XQH zor4QA4-(kaCos$QPgcEy|C?7kT!#mtpCOwMFYG*QlciEhU3mQ>t`H-p`vXuV%wl3A z{nGv6tD@eU`aX-=XLmDaPeOXXK5C$n+|i%$OMDtvAHa5a5E2pkS%{H?_$Cc?1a@G` zKx#xKK<6+Q+-)l4V$S)FxJWk{0luyDz4uII-a(~Q zy{}?0@*_gTSZK72teU)Hh4D`!__uWeDhUM45eDDC5uq7E=%JDB2%ld{vrAW?ixs5@ zgd1c*u60@rgJAC7Psl^~5O-pD^yo+s+vTHC!LFJu>&c3^qYf0R%nuA=aUXZYpyr;t znj0+=Gm&OXS&s6D=}z;}h2>5x^h`0^G2ya<`wme*I0v)`TepnjGNj_8ntb-_U!aCK zwAV6SA=Wz%XD>)4izucw;*;Raro_kMhHzA4c$O(z)k=J_G9M0{x{%ZPW*T&=$=z|5 zfm$Q|Gg(4g+Sg7fV&mv@YH3s#PCAzJq!q2ZId@e)5S_x166@0ZaQCzQ-heXVG{M~|S;&&G{7pEQ~ zc}|j-r4-A)rWgde=r5A@*ur342THV9#}>eII2jA%=;m$TIE{pF?+F2l5pPBBiRy9* zrMROw(^O`|_a}R>9xTy8wN0JA!nLQg<_;!=Bl& zM9bw-$s&bs?}=E>j!!@^=mmm#{Qn0e1SS9kM*hD3$8pJdfb+fougL!ZxDa0dI0-l( zc)rK|9r%jyhySDFJr8icp!*F#K{)*Ruk!AE_<1w^9X?3;uhx1V=)8aY2I8Uq2hjg= zlk-sLSKx0b;Y8{sr@#>|sz+vR{!v!YxafpKHHLXu$sgc8Q60 literal 0 HcmV?d00001 diff --git a/tests/recordings/AnalyzeSentimentinTextUsingChatGPTinJSONMode.mat b/tests/recordings/AnalyzeSentimentinTextUsingChatGPTinJSONMode.mat deleted file mode 100644 index 310d0e8bb1e64618bd160f6af2939ed7de4084c6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20192 zcma&McQ{;86EGg4i{7IXEm}lp5d=v@kKUs99<1JbjT$V1h$MQ6-rEvowdi53-gmWK z7W?zQ@9+7Z@6T`UbMHMf=b4#v=FB-~?wqTk_~E^x5}UZt3pNeK4}$hiu66=!+OAfg z>^;2QWFBbBiV|W1Y|7qtR-f!_**x53*i^lp*c5#o*w|jOiM)^z5s?uQXM6eLr5M}) zD`Y-?^gqCQt3mcqB7VSuprh;#&4Cxxv06%$yi*z8f@BecoNT^UicbVwb$H_vpVyZS zKKVzF&Uljyz~osTqQYPuDQMiihq_R(WX8xnLUm)qQLW$(+@zgE-)@hjJJM4I z4u)8rtb|sU({97iHQn}P%qK&{RSuAjX)ozA8A;zLz*Ke{AQWFtKV0X`XHUq*fF~@L zqCA{7<&d29=p#MPm)Ijgm3qZYHXTj^YLos(4hE}qHbPE`!Ucq#N6kv?WjkxNv+r1l zLT#d|Pd(>5dP)fhlC&~7#B0(dm2{QllvRLYK%^@Jp#-k>t}&h3p!u|Q*k^rXHPEi9 zKKJ(+N6W>_TQ{5!K3}DHI&mlr2yFUh(9Nb+grunO{r8Fbt z=A%y&{wJa0|CRuGmF9nFHa*SVO_vX6=9Nhnp4$yD?$-k&|Dlx5yWtOGiNV;|e*E|` z+M4{M-A5~E_!(|^E3X0%&9fphySM)IgRLZwTQekWQyO9#wH)gSq= zjMDMWPk43mWY0o6J<)8z5@P=0C`$4jbM9x-e7tf~C+Vu*YB-$z0B*5!dWKj7)So9A z@N50ZRnY#JqsGM0ubT=eC-vz|EJ>gNg?ZFUaYH&t8EFj50F6e9O%> zDb3Z<)%{ABWnz|IYzR6iFfjvtDSG!Cg}pTN*tZz(u{);sQA60%_zN<@8DrYVy4NC4 zVC)4}j>7{Iu^TjGD-5yrfEOa9wZM<|O!)|?xeBBBKVWmjN-?4G`hPG;e@ynDn);y0-IiU1c~4x(#(rq+>3N8}e6BwMM3^m_ z_j-c!_UA&?+-E`V=d%qwzN^g0ZG>)sU?rT}a%8F`Lp;_2P3Q(IlB0 z+A*e$kv#W_p!=Z9atDpw^3<9)A51d{hBi&C|2{vwL0BFi9v4e)cywi+4uDwA*|SbN zoQAdnYX6>>Ta4+d0enjZ|5gdn!o1ZEFt!QgzWm&zK0@Ep625(o-*XwV=FEB#$kEPy zqnGq;PiruFG2iIZ8}(T5W)0IFdJfECubd(wIs}m#u$O(klOdIibzLK12aql*%X3?;8NlsKT zdC6c>SssVqWDEGtBVNg4VP*kd_PCn_6-8dVf*`(&x1j9-+%Lj|*Bq_%=jEPDKBv&@ z(-`nJyq}?tY%=-|PW@$l)>R6>h-kMz!1GZN-tNHc1~w4SjDW6h2>!kmrwA7ktG@9P zND3gU3FqH<-ukpA!exWa41ZyO#FKLsM{+>WlYbSjWuVZLZk0qhItXgf%E}UszrhaV z>wIECS{rRRFyKkg5}~%?>q$MoAq5I20djT{u08RH=!x!$ZRuZu9>Yn2Je|aAB&QL` zel+wBj)h_iCXj!^8j;oyhHkgxyapBWn8>poef06n8LjH_3WLSR5w&v_Gs5(~E?n;g3=5w*;Y26e5cIAs;si zU4@UL?mTHhk9YgAq*#T*i8pkCq-Lasz1f~LW+V%}zdgxoq7FCkS}EKk3pQw5Y22e$ zHZ)s_Ph#o%!^CC zGRdF%`&^dGXZt+RSU(YDXnw+D`hJa0w9@4BdA_=4Y8?{a_Ajruh5u;Y^P>=4HY zG^t8eWl~m1+PipMdi~o-zyeprt3|YILq3i4Y1`H~`Bis%6|Kr7T1Yyke@!dn@2`>T z-g>|L6w%5zi)ihJWol{G_EoL=I%KWwZ+>qXvlEB!b;vGT-)^>D%ZEi6g9%>rg@5p+ zjzy?^tB=yH@1PnoXjk4pQFVG&uIzMl^8dr4Y`3U9%dT8cUZFH{(nkSphmk(Yc~`Dm zHq#TPua3E^G!OmzyyrR8!e+d4{h8Oni1qrM)C6Tkjlk7J$}ET1!Kn56j8yfD1%gTL zhQ*d)GtrBJ97~cvweL3W?Y9l@&RkMFd%BB$(w}(LIH0=SUKodN7M(DhmnDV%W38|x1?HLzZCKP2nfx&Br67?$6#8_hl@%#` z*N6`b1$@1AHoC!ty8du@K(rz7kP4erG=fcTAQaDjtvEsY1RP~oudpW7_yP>UkQ*O4 zFglPvu#;sEh1PiOaP3OJr$t{68>dUfjam0hNhMM45*Q!RG44hWO6$_1sZtuBc|9Gq z?wOMsqpYYGxEf1ontO+gJC&kCYyGWv8vDgDdoN?ZiJ#??MX_h5* zY+K*6D3$w6GsyTzSbWkhVOEhAJ(l8w`_N|DKh|Mf5AUQ?r6EiKEL5QToO;~@7JBsU zq3=gk55sO~m5Q!UDzXX_w_oeQ^I1(Zx2x}&ms+q&Ee?}3KB|?RB>A!#dL)!|monVO zC#^+heB>c9DVQ*;M~gO1@iB#6WDMQ=ZLWTn>Uva6I| z`tUgV^gk?}0#~O`cjd+r=f!MEcj)2kM-L{Uva82TNwIS6<~>Wg0}o$6^Wq+}#{Be> zR|jp{)?-$sET2tM8z1$EO&TVM>eHfYQ_eMD?;kpCx*41+HT%H5CZ+If@`>?LnAoIN zg6M6mx55v zP^g>P;GNMetwFHIf9x<(i3;IA0doa%pMc8)V^2FsgY5E|lMBy@cYB~2nXu2I-x@sclZ2#yvPiH0 z5CHXzaPdrVIvCk)+ztsz?>`WK34kye>YA}?lktE0uZ26dYy-D~D;}6Ab3p=90rQ_l ze?1`lLefhthf6;nij_jr(kzDzdd5;1@m!Eu+GTL<1NBfyI)Fub^Fgn$@8~FU}rz&%8CZ`2+Sm~A4&n~h9lFKLa z@;an?sY?d{l~f~N(661ciiip-NIIt`vjZh0^2QY=tzE1RAOjQwv4HFd4!AXp3tB!n z);pG97;Z>ei*2dW`Lr_@C@~=8+4p!pvOS+?g1f5Ah zNgx@*0xrL8P&=--aI^hJ8+^F^r8ZTPAjr~|QC={fUM)%mu8UKjd=$eE1@&8|xniDBtOH@n9-PoT6b-y`ur|WdFg3(i zd9VBC;cn+U3h`Cn>o&1}xUCk^2bLw0N0mLyhwUWmW6TXF9Z+QadfaZ{t6TOt1&(|A z0}`9>YV^yT32G4v%7CYUSfBuk3FZa$NdQOjkcY7Zvm>6tZDD-SpM$f#vk4C24wNlx zWyPIZ=wHhZW!9Sm z9yQBq10;F>njt?4y4@KX^poqb=5a00+9Sx{H=TqB1qtYq?ik>s&TJqfFdc{wj0e&I zB@rxe3s?yBZcs8j?A@&oJY`Ta!h^dTH<%yc23<)w4PSQ%N3qS3QLx6|P{7Kx6;y+n zf+JDxaJfNbkX7C3EcQHi0ox2W~T% zHsDjp7D{=bMWH})=@4IxtDtrZK;gpZ`h+QZo`lAr^x-apwNdMAp;WiRFiiM5M=0Yh zDdNB8#1DJ0=B<2Myh3c?0BE1$drjIi7Q22l4#E*m537gz#DgOs`l%r_9tYj|4hP-u zUL1#H+a7e^(BC+BmDN)Im5Z)J{>7f{uCYZ~=#I4O_07gt4EWfQL!xg4U`yJ?$^be* z8c-gHg;0WXz=oh)gX(=_@wrikH9Be%E$`%-vQg>KenL>I28Xk3Lne24 z`VEzow-VDUC75o4La(rLXCAW+Sg@X~jb5YlUtXa(q~KCsL7HKjf{S`4oCD~Vug&WB zEF`l2d^xK$?ZwlN)#uA_y$j_;EBu%KiESE#Qif@_c}4=)K>K81 z=SfTpRigAuU{A#Rf3y2uu++|yx=ovpo<*$g(k{C+aWx$}@;~kQWuvtVND(eOrXCjj zZ82)0BbyVHK``m>AwOA2IXPE3eEr>zE@)f!B4=%Me|%FfSvI%!i`{EBQ8h7@9+EIE zqh+&`wL#>od9NJtp9yVWwvTL>4P`%HderTL=w^v5R(T5-LP;zHDvzxsIqMMeHH8KnKvoHIpO zP$z!~m5yI_qAvcYGQBp0;5*C1Wfhg!1W1b8hn;^4v;f)p-+=@>dbGqOPQ1YW%N+M) zua^VYGXR^;-C9Yj)Wwd(NHu4sd)~e-?cNY=ETk;QX>WmQQ?l2YBkqDJyjF08MyR$S zG^$32Ij${mYPH;LIeXU)ac6`$&W8UzAHDEz#9lw=U}Qq-rUr1=9L+%XAVvS=bpU3A zL&O{*Ur*R6)#68X#*)4)*xg`>tgbG>&VRyu%=#T_dUscdf-Pv;#*EdUT%hYzS##PZ zjNj5-zm4w5X=)rg6dgMJ8okhlU7JGGIhi14Jo^Ym*5?f2xVMX09}3Q+%A26eG{)nx zWH8?H+Q&t_*kmn@d%8PJ(Xe54?;HiT8`^A*21}i9m5vAnRniM^c#5(y+AMo@p*7AH3D)DmkhK0Ty}y%=3+alHT)HY>3_G z;aX;|Ij0B+iIGbRnT@iKSq0Y>F;?kJIMUjWt@xwd^tJ;h3(f2=F#4t2UPx1;IO)P@ zb=Nwj)9_bemuFOAvaWxZN4hqUoQrX{zP6^=&A>HnfcaLCD953-q1K;fcvuM>V-gwG z9geZWy`6F3k}XH!ku6m&C)r4jR)?Gg2RpJtoB@D8Ke9{#hQBbyz~6X7$!z;>`R zZ}$XcH>9!FTc6alRg%V??*7E>GsK#Q?tDKLwr?#zkvLw}7;)>FGS&=V=W6kLo}?a9 zBwljf+EfmdPzTCe-mh70HG77Ydtz7-Z&tuVx7V>2$>tIQD|V(Eer*;CGUCF{x0a=X zEM(Ma3hF=sTHwWVI7-`gctfPqklE7s6?&xWPzveA`cdB>_tH>@N~tmRZ*yF`zL6WV z*?7tYZ82vn}OEna$kEPdBS^@>gA9k>L9ndAQ}xv2)Bq5*345 zDxk74x6z@;19?=_Sx~aapo9V>b{`M$bM}8v-=!$JR0*u05Q-0s;+Xj4PCQ!VLvY<~ z->x;1%z;+<7G11q*XjR5)#oDoBwdSCP^Zw$q$JKZGbY1yYnpTU)eRrbo{(Hzk&4X+ z#cS+$_KuM`d|E*x=20gy2UXMRPt|JFjpy=WujnGFf8`sXiCV0jPDhzE9WJSfkcFD8tIfbgV7|$1TJo*7;)A-{aqE67D|=3U9&12v@{oenzjW_lD)0ARzwXVMcFu zf=cK)=^CeC7C9_wtXwQ96Y2(b>xLV20bpUtbIj zM)|&RYv+U^U0P@hkBBnnTkl_Y6v) zQcGDlE+t@{Hf}vB0MF)=yUma8`TWr8zMeI#d#xCdqPk3IW4y*Du`PDJ$d-ok0nkC@ zFbSGVTg#lVpom>7N>po&-zh}&^Q2lm-L?7!Dp2=rN*X&NAg9+M-sE~q7AneS8)Jdh zmiyFQum9iJ=_8WHg3GY*-|s3ecGOh**WdK6Pu#XXd$z*7>zEa`tH~z+2T9Q^Jb@^5 zk36;9NBnx%c`x6;M(1`Ekk~awV99P)vd74w{uz?O`JR28WAzmZYlFK#16mhZmk57k z^>~A@U!osEeJ#ZZZs_&0SWNaBKD1624YdY2L~q^V6BnF}uDg#?XGixW{c$;o_?scD|4;Dj1LT4FgZ? z5Zh$xNFxin$rv%`91}pJR4bNF#)5o?H;?T*XdwRngW=Y_RbNdad2ql7aoi`fd1M33 zyN&V)^MZjna~`n`rNZRePBIH>CqaTLwmHz^`rp&vetzz}envN!aDt-gM@CgoEy@~}wQxxB&b*eCl+aWAlQ4gV_a zDA#o&%4V*!j=H_$JC*bspNzq_5=Q6dDh{~cv7|@yZrZLt6}S@fT`Uabb(Q^nk42AveF)qI*+!Cm%W&DpSzw|A-b-z7~QRx^@XRq($8n9E;s`=AGo8 z%^qO#drOOU{a#{(k}g;Y)HS>8Z=M#o`!hF(@9)GKl&CNgFaI*oyIKY3n@bw|!9)FA z<~xo$QcGNSBoA|#O*GNma|i>p+O{Zl^#_lRp9|}DLG|lnnB3)*4m06uFaP-V;eT!z z(r@wWj$Pj7*P)bk}hNv&@{{o->`E(L6{ck`#Fg5H%AcwZN zeX!zlZ$$y-n3cEM)#< zfy>uou>P|_&E*+;FsYD($6}w6TW8`&KVr|qFVda|E_BF88gL*eR&ZQhsbD;(;?0uH z{>SE)ir5ShtvDPoUGjK!HgW=LdGhrb%Y~-5K?Hg1CnDCSU4IweV=(6Cf5D&LqGVM& z(}18wtFpygPOGyt&59F!{*Hvh=E8vcz7ezxlT)bqphIDBMK&`k%EcM-#V&YBk5o!x)dp1^Wkz1Cga$)H|Mhh-MxpNsP7pY)9o2vzX>K!ue_v-d z-1*6)Iyc~N2Q)QJ@|0b;?VnX*y51B6);>#t}7e{hKA3zdDA zuyHtA&-y*BuixDC_q$mm1 zR`N~Eud4pvss+ZjDysBx;)TEMKfLGPRL3?E=c^82jBDXC4^gl$XNbzV0S=UqwzNAh zX)uN|){%YkYr2%S1g!f4g}`tC#fJ2k@Ldu9MuXZeiBn=s5b3?YHC%zbFN_N-bj5)~ z&g~_>;aug7DR?dS)1^=UAJZE`-z{PcKIuK92&#hvl}iN;>;DrrlU83C5?0>>c{5ui z{|S|2jar-N-n8J4bA`vC+oNPj!jP@m7*#E&#aT5{h}hA7Yj%kr-V!6N*n?7VMokfH zzC6c7BmJiR;^#mk^}zWHG%{4q7d3E~7lrOIN;A9rW~Csx<#_RO&sexvwsjUzdwM@1 z^wM#7z59YV4lF4GXy*jXQ^A2Vf6@oA(UDl6J`ZW$z#Vpy^)mq_O5+W(r{&E`Or^o$ z26noSn4?xw9k{l)2KAcsMRKcPb@e+qo<*5R~bBy`%pvJW6fjg~h+3P0XCL zOJAJ4?2@WI)uondW}qIlSFct+YKa3T&`Lwhk&6apTwBc(`V3pZQVi=c3^&C%TA9s) z)}&&b-YHjD9));nq@*P8{Cj71mZa^^Bn1C_CEdI0tdZ9bWGug9+s=fKWOlzkh^*10 zxyk48&-M#gd+~E~?%D5=&iqFjz+o~E#iX;QoyWnwGPeVNYY51E7`=0zZkD{f=q#5V zVLAnr$sd4jDt!h8xac-yD?ENlBMDVhE2>V9r9Bnq%i`yo?xdt7eioFv)6{%-y{cu* z>)jb^l8~hJH7`yw`r2kl447Ow1qBog%Wqoo*BY(3@Mgv?!TvX$mrcE18q=&7TBm`>8;dVk3q?u;6Xnk|0ezbZopv z{dNKVn#$;ih!zl4`*U<`P5^4jJ@>r@!9e0Id=}ihy81noZfyPQCxUfr=RchRSpi-_ z82S^pmj~?T!b@60S{270_`Yfue`RTWSoo;Uj84Pl9Bkn< zoAC3YL&-S9r@JY$2C575I(IwMw%su;AG=YjpHNxWD5f0??}RQ(=A?@lv_HQ8(<=ne zf3stq#uyhS73#3JLT@w0EN`*(e^O!_gpCZ18D_j=bJB3Dn~#jkx>0UeDp=L0KjJ_OY@udCht8wQua&H1l?@-E?1l_aF|la522^cqZP`QntuA zcZ7J^l_3RA&NtN;UFLC~cE*MuX)ckdclIqbMAt-KoyV~^VX1k`4$B%rhA;cQ@ znL!hb_Kmc~v{2g|_xp)oFDu``$`>Vw-`Lp|%BaACO$8kJFZfnqOfb$n;MN z93As?^#rkFfe&8i5GXr^j7ME&a7vG>`en%%%yuQr`RFppnO z1ZY>hYW54!V}I{uv?LhV-NDVANLp6a6v-L!dyY(e6@U3EPWI1k2&}^nYu2wY97^sy z*du4sbJjFOZx^xsdb4l^L3uRp;s?C>xn|X=N^f046P(P%%;NQCnrM%kfq?|`y6Uj$ z6;nagiY*N!T9&oZfSHBQHfQw|%5}#wzb^UWe z{JEd&(I*~VVV~s9H{SbJ=LIrrG}EP^1zYRa{|0`)y=Qne+gfnEo~(FVtn8-X*1uNK zplO0&sg5Fp5^_GWeuAWXr_fmx-eEal?)(T@s9XGql{dNnMMGilF2{$G_&}v^6|e6F zioOpccC;*Z6oK?-4c&a*md}I#hUmz3I|C3`v`?Wy+6SA^NKU|ZypKDJmT{3{kGT%; z2f{Kfu3hUW_m~GkpRueo$5Ql{uW06aq%3kF#FIrU?KYQB-jXlaj}j&3?LZX=7HMF<9fd|QXam_#FV*Vm$z=aU`na>bym>m12I0Y08L4=?&WoCj z&$akD0Q4g7>XQA_%a-PW;bG~-5H_dNc(n4mVvGFQl#KyvVy79bd9+zKd#B^72nnga z(-|a*;mHo@WvXRmGsnC>_g48T+(#8Ti#Pe$_{-oWm^zJ>-5j&}+;>%h#oJ57o8ZjK zn`Ml{&^~!Vi>UT5j>W{0hs?JkRgdxTHm}RZNZAx$?^g${3KB!h{kmVkp*pB<(rGd1 z1}1L?ItY_EEz8+0EHbQ9i z8DyQhh?N`8Gy^;l>-G8IEMM!EpkEOmyfbY&3o9aDXZMC3;?T$zzVsISn5U*wyAjY& z60xrF}itn<;Q7(vr7{nkYi4M4MMIdJP$}4)#!OoOdjHo!I&E!&pnBPY4=4 z;Xhu5{Q>*cm)%=U8JSg(-JF-b^Nyp_k~KV=*y&=@G17gw#qADwc0_D zVb=Tg#*FSemJru*i?^&n>&}d*Q`&93m>)_+(%*CvK0Q}vTKoQ)#H(0XJG(`STp^%a z7-8nt=M(-kKy?|q#Q%rlMPta|T|_i`pSBeV^sHFv6Y!2~lpVp>3~d}3s3;6^jN|2Tim`V})|?hIx{kxB6NX8`oLYG4RD=p% z3E3>YS1SzOLi`@I`MtXX&;$Zs2QH5|z}TbIRibTqlg4wR-z%?EyBbG2XebHwYF2pJ z$FsMK0SfB!m2({#)+E*FL}Zer3i{qXVV}1bK|VWhN)Dp0rU32|&GRL8vzv*8UeUwE z=bsM8zYs3_p%5EDV^ZOjwMp-TSC(7CleU;>GcjhgAJF9SXv`RD^h)kYmfoIp+PqhC zQK`=>F>FZU45f2s>nD^FMXU8xN9=BZInp_|FLZOlF$nzS0DSmt=`=Vl)C)wJu1ns!nJ8aTg{Qsln>7QE&*fnli+)VlWSYV|fDpd> zmNak5tvBtOU#x=$bDI~IOIts3o7#IkU~oy`?2pWj{XRvq33!$MY#v*6yTpb$udjbO zi~N#ru`M9fwju}ThNDPebW(DFo^Gi#f4lT}f-Q9ElIOrZxNW^J*%;Tr&YuHwdq%fh zgwnO*q{;AJGLda-H(Tz34IZYe~~E#Yy%C}86cFnsoG511a>zc&MQydK?=TemD;*vzB*sv3G1 zA01VCPyHJ58R=jTarren_02$RX!>bv&IHK78T5lz!~Cyn+fQeH+-k3^kWs%TZ|+(~ z+-ht6PXk^7-?;AGJO2Pqa)C_bzQ2D+IWIkrq0F|ve}50N=E!Dcf$Z2r1ivrj=Gtr4 zN~!Pv&cC0gy+H{cVe_)$4dhpC}D#4HR?u&pg1PO-o2T>n-%?xjUjY0a%KIIWJI=WiUj^e(A2 z+n5Be3D$HRrg4%>y096@IxdaSI>w19O9c00aja5RSq zvJCZ}tG#-asjw&lL4 zy?EiUOSi-FaGmvs72-Z^Me~-K^3s7#PxW_|J~gfTES|dAujX&mj-}DBB`UMzf{u;L zKm0Xn3<>eEnYBM}`h4yR+tlyc+EYC@1RfuovkDhSn0#-aAMIQtUEjUwx-Fa=KRE;R z9LbY^P4#MN?EYWMX3*GFkLoS8ycI>(b~DVR{m`wYY2Lf=%PWFuaeWR$LwD>_6bC!Q z8=Qk=2>y+S-F1>lM5A)@*wNi)S2pc?LVku zey}bGEF@@d9%SxTd|UIiW}3#uTq(z0Rmtw?>D|iM+|v(vC~r!VL+NIL8J)r?RuyIPX#F z5`h$6%nqAxwqHpHpth58vt7A%WK&iTcq0bzP=a6Jzy(x#&oig=s|J|1t{jP%e<+IT z{n(Buf8=Uc^%mnmv=AO!Ngr7$8_rLKW!N$WXq9BckZRLB`J>>tWDyvBbEO-5alNUp zisuD#qaqc@2(3XsX7g1psZBgfWgqi<`K+mb?bj1(u8%)^b(@#m-+lUajpfrC>Yi!2 zX0xAkL1wcY!RkrwqC4yfYN;yrQ8K;M!_6TQ0OPV~-F|soRU~3YCuYXT-rCL8bFJu@ zDEi3f@St>CYDu_BpB2qy3Lp+WT9CLFQ4m&tq@IDHs-p3c5^|EdC+VAJ?5(H30;`m; zRCNt6CH?6?08jV)xvE_Tq)L;V=&R+Zs(M*Wdv=rcNz?aUb7N1gC}ms9LVq-p0E``7 zvXW*>o`+3~Ul9kqF2{R`lWXuwvcC8Se3258cu*dkkYqvAM4LP@pg(qVuks^5D*x#7 zhueQP)iQ!eqIH+A{sF!~z$EqLx)?~}tV>TRvveVPPGc0)!HroVzYcpcf&oO{o=v_9 z{AELOQfDYm2d*)l*AivLd}Fm#`@YpvGU{Q|6RNU@*;iZAoV64?e^PLD5x3o07Et4D zn8?@WVRGf48y%Wb9t(Fm_*@fcCHQ=Ugsk!k(Zl^+8N6^kbg?3(M*m#4SIP#JoHZ~Vfd1lWwu$$@c z8#a%yW17WcN=PNRfA4Nly5*E4=uC$G=M_lQMeUdf5#$a(#I179+xaN1*OVw;6uxud z$Uj9X;6-Ej6vYS?N$7@X@4Rr%v!9Y7QwL#d`QC`&g%13vT(zP9P2rvrWeIYkyyRR{ zQ|LPiY%Q>910;_QoTT--VO=mh6P$U9QcyzcrE+?CYFMwSMOY=Xz-rzkrCX73&Oqx^ z>uV{}njMQtz5EG&&RfZeUs(1Bon6qMQHx}XUPu;8O(@rxcUn<(dP76r)RN=tpWIbWxo-d6SU@Z1PJsRpHq>TS4>B zw+dK_c{}@pG)~MO>hxXuCMA+v96j%l={^N4O3Pft$R~fQt*H|)Qi~!N_82CnnSad^ z&s{nuos?zcnkXMTCF_y41+0pG_-YK7&d<<|ZTO_Gt*MQ7Z9K;ZWmuQwB?%Eo2GYn_ zP}8k{U|%Yw7Vb%2WyE z1+iY5cjh&?ysdZ1CT%|Co2bD(a9>~_m43-;u&u@6bAGl%c%4ha7*O|~;k*K`5*2&r zf`~q9rAnAXfb@(%HH!4 z`kED@ntwvAvEpW9alO8pXDS;DCGpgN)OGCL`iFq(?GSyD9WKP44xl`j$`eEYc${HK z9>)y)#@A&?d6lM@VG4JbzsIu9*4Vk-bnn0SQapP;UmuYF_0XvPJ3^j)o}yc5A}QP5 zq{?!~v-)}Kz0B7xVVS0dsb$7pJB0UBF+3Tvc7mt)A*Ag%@1nYK%<)1<@^Q=`Z!3y^ z#ooi)Go8YAB>aSb5%PQ{>M&3Lf@$U=xz-3`HHzEaXV4{IZIQT)AnB(PdUI`#E)mVjojg?f8$s(IiNv<3L)1c zJJ_KO-N@wXrVwV+ni2BuJRzNNPV1qD-8bkS+>lWJnN2+nG9kmKR`v%6@3~!XOf9$z z#vre+t=BG?C+=-@cchqF#{H0PdJYlRb@_%)sI?q1-X}Xae@Vupp}@_$T1n*3vOVUC za}h*WzV__ZYPuB>^Kkcp3{dlr0lAc-V;drPp=Uwnx8B_H#ud}8tYg@O110<%wD&f0n%gO zkvOer#*&tSRmaFC&@)YvuBl%?Rlar0K?=ewa#AHv&%l+%YXZz*O*v%2KmI%ux>JO2 zvV3w&;XGQgTyAZhM&*7nkk#@=s_-Pz|B>Lm`sl++;6B-&yL!*PfkJh_S_V4%linug z1x1nvUar;Aq7+MzsM`U$-^N##)XN}>^D6-6z%&Sbp z)rRIT>#j1tr@UnSOIA!-S(zc))IZmdy0tyvdssm2Nv_P2d9}lzlQiAA#%+OdQhimu??6_CYl-J?^`wgUr7{4*8x@r# zM}L`*X0FG5aB5sGh-Cfm?TH}7xDX3EK-bXnlcI<8^H zE}w*nhZ2VQ>vP6AOkDIGmpn4%c8F&83?aZ7B^3%_X9~V$2poy05>f*V77W&Zt}7ng zH9c6*dh(35sPAsL#Qz=Bi?}hFl2)_au*@}r_p)` z1K~XBUILG+B1FvWa2M?9%({ZtFVy9eeuw3ZPw?l!Wu&i?B`8_0DnwDH zmw$Wfv(NRmut|fXWYDSNr}Eqp)IR|Y8LAucCfdehi|$MD1L%s}WkA+$pA z{44vE*A$+vzRx@@s zEP4T;i-`dPvU7L?)Rpv0ig{`ujzp%Zv8HIS_*Y5Pfg?Qhm!|<2X!{We94sX&2W6rL z2p#=O=zM-B_!iTFb)&F38&-{fH}pkrX>{mmXG~!8OZ^QWrDljoAL|mh@$>ULmyCNd z>SCC;Mawpa;m=rZWxnn z%!XEV`km7oPlyb|yJ;y%Sno*Rh{BexJESIgOyTcg-Y~51ZcTeafZ{e^+>49CM__gJVfi@A|YpSw)m8 zKsSCfl?j5EIxKQHP(pG+4tZ@&l}1{;6y5Rx(G`?Z12vVL7)unx4_hjy9fHbn8I394 zG1V`AWPMr6RJpX%y;X=G~Bw5h^7vvIVs$vOn?P944s{4J7*D<*hku=x z-s>tp`~qg}cV_0E>@w;%34rW((zqy)$(hXwmegP;)iq>?x!XSZ3@H=usQ>>0!3{q0 zF!}zR#SGYJZzx>1Uxa+lcwX=|;d>TGVsT$w1#XAO#wBnUC~dx8NFlzveTt73bZ_u) z4(5mI^#AIA5+A>jaIii2C>(G3a4biHaoiW&i;hi10d`u-A{J@Dw2%BYXqGO(a~I%M zEIv*EnT}aapr*yWjGcI=5Igo@`#nUkJl4!*ejZ_-T0>n1-nwu|d}Qw=>NH=JOmPVr z>0acZSk&JLqROt{hU{OR?_h?k4lA)Yk-ByHeV_bG=Qqpj2D*q;o?A#IjvxAD2k%^) zgD0#j)&EC1J_P80!l(ao5BfhRc!rBMG@PsoWe+Oh1$p5pqcMRR_D$?sl-Zi?KR_%gO>F%hPZBsWIa#6F9 zFB#pf8hZ`bsBRWbt7O!jx@ox`9BUH(j=#z{-jHyNio9OVyL#2BL?`Oy;tgl9bs<&J zHul$3@wwW3ZntiX&m>l>p8UxG`6E90BSL;mw=sg@nzqH|Waw}^`R99>I`*4<^Y!2V zobs>lgY-yR!~~s!|?N zpZeHJTm%AvKp+sP6$n%WqM|<{|D|VU&&K1$WjD@D7;E=GG?geO7=XK3Q8r_8f2F^}y3+&6@6SRfX! zhPUB;L&J40ywF=w zd0mZL<^FG_{E3jQ9Qd=7k{5q z|5v;Y`;8h492suMeVM>qHsw^{U=hAG44+HH*XOC^;{%P&37di zjj3h4*0N?*dt zV-!E~z85t|;UrAacvF0DYJBy&s2yKDp5%Iy8Tf7{c@Q}G%2M)PKpq!yJ#%)urSZ_? zza0;~P8^{1(|8P$bP#nNs%Se`d7h_ueGTV9sBfnD+}8LkrSR!X@Hvx#&!;4(&<`EN zEnpU{5ujxbW6wn{W#s0gPe#oYuR9vAxfEU-61++ocx@o*;_MB?KaZ@+2Jzpu94~z& zqj>QVy}RONV35bXb>boSpWzAx^fDPW3&4!>xNkX5wvps2TlvVsLoOU6rJ~}-gG*W- zFvsh`I_2e>LO%x=6sLL20|nTP=Z`5K4=vm0Gm@?LsUsJTk;9OWpgdMUuEH3vM;fo0 z6keUwH{B#B&>9n9&aWO@J}0-3Y_-RNI$MN=JoaRr@>o=t6_LxRx))KJE@l?Fz6{;BbNl)`f`!E-4C&k>R` zuPv%mr-FRGRTZ@SNE^z}ei%}D!NpUlffWLS?@^w^_X)1XdTLkXQ!SbN_H($-xU7m8ve^E z`1=$1&t||+Yi6=jh(0*4vZ}dr?1g3f#PxX7K9P+~;eV;&xADHdi{$^=N5)Q^FXB4G zW<33Ex$cPnuJR3iOyPcIIp6Idxf(m!h^N<<<0<~XLS&s1jH~L&m-MFHsa^qI@x8yuwDMuaNB%eUwkhv3TT=1y7WH)00960 z>{;7u990&*_S?~_Qad;oGyjN1e074y18Js1<{I{-J%?) zWjag8=nPGPRe1QnknlS#@b95U{9|q4?-AuZY~XW?*tl27M4dw9@s-5mxsI)QOej1O z9j$rn5-(ZYI-(xQn!e=M-H+%v?p>tUGnk-_L9thz+c;CT)@W-w zVc(wObpvx8ti`gFht>(anREm_3CxdSRu%kWcpv0#89Iu$B%VpE-G_ZUgWY7B@>sV5 z?Iw116nHhRH;z^Zx-H%lhvnEPHhvN~eDuwruMEDdjrpjK6&adZUBhStrHQcy^q$3h zi+gTZe*3lLw=dDwe!EZc+a+r4w-1YQNyMJTnOHm)7r@)$xp4-i50M&{ZI1a4-$`!$ksfbRCvrrTJv~Cl(plcUHcr@&?%wqK#+ zh}~hH7v_-}P9R&9ka1WRT0_mkSmv2kWSj-~>v=@qIx@=|&y*?behzOoB7d{|nBw0x zF`gmiEIEYQAkRa=-7FXFYz7I-u0P)8`05rVW9GtE>`4@!U;ea1@ukB?HY}5eca~ul zH{|&Gd57#!`>s8QlW{pz{5R$N&;oytf`7IR{11sT!@tON#AyaH1bgHWxjDq|2>-)ICj9&Mt}QS?2+bl~MR$m@_dAa6n5hP(rL7xEtDeaHup4=(u)H7!(FGy;2sQ;B9Lk>bP0w?cfgD*`By| znZwj=%QxUc?bug72M>z6=6R;)YgXXzY94Qd*J|^+i1(F)MgPkM>0^qp11j zsu4ZHx`4A_<_$|XvYu|c21X=%Uf5pT%k!Gy>}U_*vgx zF|3+n)Po~v^=)4(%R>a-JNK81W80fQu)X;k&yH=!PItWS;f=Ad&clBqwZF5ddA8X( z-zDi|>-9_Z&CdDY;_}RuvqAOoqM5^rW)4W52!weTW+wwwEeL?j>p(J( o6N|edkj!I(@);OCePQ~M-9wDOU~UA_zRv!^Fmpfv07Xnn1ZhbKkU)Su`TqW|p0)0ad*`g=?Dd)1b7s#>_L{Tz&fS}jEN|Wty`g+v^zO|^ zN?yLtJrzaoJ$DQB3Jmtwp<=ghYHBEo-VXM33-$C64Gf@SfdQgcf#IU6s-mhlbgrxF z+_)~Pc3n+F^#3hsGhg^WqA|P6L2Z4xc;NyVy7PDqH8;CvvF(#tzX{0s1|jN5 zkhXV7Ccd&=|GIko@n%O$MOC!^^(Mo@5^=Lj{8}1>nO`TT@poTP5a#+^DyTFbU%)iZ#KKnDXn-xqgG(!7BV=L@c`mc|G>;Fy!wsFdkc8u=U!b`AO_x3PWEe25mZ^(CjFM4bR$Rsv3Im9GW5R;Suk9IY-MB-S=ZbT@mOe&(M!dd5a8dgUux!8##*=Om1 zYx#S!-l1P@KJgC~MX3TQ3%WSm^HYZBOGqK_wdpeXAH&Cqom5^V6y$r z28CmXcx|`n9QL6{-}ZLv_F?+=5biXj@$m5Q;85b-NaQW&y|}}}oEcnW zjlr^3PG~^P*;YsS&Nj?Y?_}`daE;kXe(Q%wfkMAv@npEth&`s$GN;C&()zr3^IfN&J0rjoXczvQyLy$vgf-iDlt8kmLw~s z&YcS~QNOaQmS^%H<@1$VAG*BU;LCYG7)qJ4asW#=Gu$0L8FW%PnXcYlzj=S82S@6- zt>!|+yneEH)V_Bk@h;0}cN3|5v!vs0tJ6(xt;^Y(_~=RQ*g!F%Ff#7w^<0E@Amrr; z!r0$M&BSyT%<=o(D47u@S3YyQFk*rPNE;$Hxv;_h&|Tum3UhOq~0?*GY~P7p_JA_ zMbmQ9;z9DV=|$7JZCxi9JC@Kh_r%a=b=%f!+sqp*>meBDy6v;6L+cC?!kR$;m#mKS zW7<>wEkXyV7-Kb4GPCIAL`fw5l5rLn@<&IEbH}=f3F&X2P^eSnf9W_Lz^%%2Xeq;- zn>c68sr&7t_+S(8$)yx7K3?9>uKZ8K$EWAkGs*`)mCjx@l7gZRT-Aox4jDd% zEHcv9=-(oDHZC)UXQRpvt@cA^?X4H>bMTF9lym03R)=p|;JAU{(>2W2hq27-Mfc9! zzr|mZR&`s15@9#B7hWBzti!pd>yF6P#~p0PwBUrKR`g2Qak~DC_k#>%1hS&Z=IBsx+)oJE=j8NUF^aPH8h@^&meVPk^A%ge0bEiT?b%zIh+2-x z8IL?)RP4qCK+7my_Is5d9Vqph=3iNfhBto+nqD_vl{S+GjNifJTD&-nwurQRaGgf( zR#-;g2NnOZ2acii(7xQsWRn{z;ii|JYNqfRQP=$!#a=lQ$@y4_e!$YzvB{fXJHWCJ zjrn4_u@VML8FzC>)bQk9?pTpT;6_Z^{9!Qp>$8{wj;W%11%eCLa*@qZPXA8KXZS0& zO)qXvna{w!&$y5B_l9gczx^-097c1ZzOwBDayrhp={p&fo5Gm; zGp#K9#QQL$pcYzNwi`3-LbK|1t`+(%roG{=0)Z#aN45Hisd>hzaAe4?kC<(vfs8;dEq{B>Mw{q&pGgbfAEz zW>!!0ot>X$IGdQ6B{<)E2D%yR4EhlG3s6{)(P-+Pa$W#>o7oLwaT+}==S#Imucezioy-7zrgpNUUkO5{-Hr-1yNbQ zs4Tjl;0qUSMcAnQSGX|v{#Up_{>J%CVXiUZ0udTECAGeJw;aGDYFUZq4Ho|VX0NU zu=m$LY-d(m>Wh35@-dg`clC^ukNVQxpe;Pavg+z{dg7Nd_4C^&Hz221(h+ICs{9Wd zvgIIc%*e_6igoxr?h#nuP3i1Zzn$<#My5~4vO&Itv86m>wR1pHFtupeFrF5Hu} zJd{MzJJnxG*FsHzS(aY3qISVdOBoTUMKH%wCJ}W;x}cwKFbqTACSBK0%t0gZ{3MH0 z-g8Egfe}12gbUVRhZlhG!3HpR1_-B1e+ix!!s{}yjK<=KB%O2S! zy%rK3@R0uxV+!o03<~0<;R1nu4tP!YHEgdgUKuWk?Tg0i!$m}Tnea@c+ozo8^l_;i zr~%SN{TBu!E-NZ{TaqAzRb)g4X9l?h8}`Q8L)c*>{5WF>v&*n8&IZCpiH{r9!rg_i zEDuNEoS>B3{}1Cy8bO2F7_EE%zYHpFAaKRAO^~=kzc&;EX0Sr@AXXH!aq{r1jYHeG zs8jY>ehxGdM+QqQC2OrJffbfgTUW1vWtLJRR`tLtOKHSaI+E!5g}8Kse%J~UCkDA9 z(r1eA!OxJc=x1B66p(oIUm{nUNJ9EKDl3^JuI{YHm3q?EbH2E=o{<^6HHoo1BM>!D zV(-pO;w0*(T7U$EGfY>59TOBlybZ(dI6ENw%nEZGpY>n?&f^pqOM~oH2kBL&c&}=M zl>>TTwh6SZJO+xiqQVyvbn)T~Dg3KaU^(a1P7sIHit|F6?TVxoiWR|kZ1BHACF}2D zL6PT`VSLjb?eE3c77<$J5n8e@7c>5EZcEQt{2yJTq;w-%R$E#LT_fsE>co(V!&rnm zd0@%g+W!5cCl1c?MMdXl_WX$Lfymo{Kvv9M6kHqHnoO7uTH-^@4@8;*u&fv-6kHcd zJdLTfou!l#6X8Ppmqz^zow@g)FJ3F$K=G&z>8R4Ch{}5W~_&+KzVKT)MU|oJ&lG z^RIP@Vd)}WM#(pqMD}TNIg%ll*OJ6UXpirWrrp#R+ULy8Nro7V64M|&Yc*mbbjNn1 zBRBPh_nC98lObGd1!6GT<45IZfnhd{B;ETGYeVb`DmKfWQl6e~w>m$9ZQgBTbtg7n z{n@6#U5q!aIfx&kCO*$bI2Jib9C#ps zR*NT(+k+lR}CoK*(_FW0Y2)6$^FsRE-Q6=-@x; zaq@hxwic*keE&Q=2w?#grVf-2O5m=mQ^aEFF^Pl!q{hjez3taQQB;wDAZ2r?KGl9z zK#8Q4i~Uj$50vUIm?GAN9Z@;>Pi35J8z16{X3bqctM6^s0Wp5xKfkf!=ohl!m*f#i z(Ftm>-czUgFz^CqcuoH{6_O4Lu-a39M1^QD(}Mz3gIW_pqS34+>u0*X?dl+t(fxC$ zl?8w52qmbF6)s<`RO*(HJ*T8ceNkstB6Jx1V43VV**c!!fws(FKdbAF z)B#CT$E&^qEC)QKTB#jWX$^h<6;7cAs7NC;?3d!0p(Whj9g5fpZH1W+*S zm zBO`ha5N}%u2S0J=fgU$;M@?@POYWkwm1oqKD1BbYxMpe}UTPn1fWf>_97Tbui9aaz zKTS4NR1nZ3L$s%6V_ZDJ8~riwkpF+v6y%R*u1%QGFuqf?EB*CFT6xi`i{f`AUUQk( zU5O8E(okGnWU+`K_W!PszhusQ=Xi z&vL3LGyme|Mw@yb_dOHXqFhG6hJD#G$%6guzEI82Z9P)Z`C(s{OtNnO@i<`D6+~$b z+Phk(r?`h@#&m;pdeP?zLBdz-Boy~Vm@!{KI(_K#jG)S^b?S=t@tp_ZX}VrvJfLuVGDoPt|qdId4N_qT{-Mg@I4xm(25FEXB+u?9OR zj8|>uR8_aZQ4q`+jvWuplU`$uA39U$AA8nKF{EmehdvL@Q(j|D9Eu4?!MzabSNMq9 z$pw>u+pZv(1)x#TTUK#z`7)w>Sb#B;ywE@94n=)#Ln=U9v(#z%h{wqV%K!;Ckc%OJ z;idW|K4KsX=Gtmj>QIar3hoD0{oJOa2o)a|pt_8h{BR1eN_AOx&og8HTieQ;M6eEW!)Wnq0XOh+W<@^xp0(`{vveKtY~wJf~IMGf)i)kNTW1{wpNhCv!=_6c-LbquyzF5});-lJC8MGzn zEvC39c(JYu#7C9L3)0s@JhfZU;zRHc+tX%}RZ<8=pyGb?xgSbH6`@Au@LH*_Dy9vc zY4!UCKzTp61&Tq7hwZ7sd))8q54E8J63}m64WFnk(nU3EVeIKL$?X0Ad=O21e8h_6 z$yuoPHO0Noi!unnwi{^K2C$gbM8ij1Oqm=22vUKEfUY0VyVP(6s(WiOY#T{NAp+PR z2UBm-?$%&LK%a1IfQY(x>r)P5%n*6FT)UHvk9d|mxeTG~er^*Hg(i3*_NXZ!ielBo z%u?+V>lb(ib)vGQp{U_mYO-_o3;06ysDKpo*YGSga;p6Te$W^yAOpn@&vImvnfuFp zpmd+xV3N?WVeN~VWV!ybXVBYJKpINFDn!l7P}Gm>2u`~NnM>ZapzMBhY;llRdHa!) z;vVLrcY`)Ef+{NmJ>CE=51?Zcg7{t$gp!8N#8HZx2#(KfF5=L)!^fO_#PQ^&1;B_K zsOJ_yVFId0lS#JmLY(t_T&70(2;*9jWrUn9_{&|{RQEXz);afMcJlAQ*;RbEA61y@ z*RX#3z;24Y-9q4Hgo(O$T*6RHevoDv0ZM(A7fMnPL(Rh0i{AAh=)P{3ahwUtk27gR*QC}DTN9qpJ;!nNA z-Lq7OulRjx@km!}nkb{v>}7TJCQm;lf!nDcy>T_s%g2$GJ+G5i+cA-6`pcMz2#DhN z*M`~YxRKRjB1sO6ptn~1(y+=BC&H@kJ^cfHA}F@Ono>q+DjPa|oj&sdowbT>WTllgxl)@EVjGspWrT97 z@G@0czzb1LZ5kw(s;8*j@7C@qrz))R|D-JxqF;TmBH-U(z*>plIB_Q&mmWg|BIg$d zYLF#~-lAZA-)?VuO(TypLnEIvT_dkEQzQS+wecS#z)7`*I~hO=7hOpcIFi<*WJ^hFa!4ZZb=ug{1uAYX2rRIl$k<*Xm=$<6OBn#|94S}PG< zvHJMk?MsywjejFVPCwvc7iQvdexn?hL~g~}kuE|Wk*+`-N%W8hB%ae+oG&R0XHSCS zB1wrjW0Dfe0yp1}?ZsYlNnNHc@^p)zCaib&*q}J_T6bIa{s!pZBI(Rem|n_BG-b(2 zXyg}W$x%lv4b2B&HU9=+xt<4Nx%^ur0;?ke$x+0tV~+9tqdnjG&PFA$vcph!YhMBN zb*uY9a-eB!8m?j#%T;-4SqZ`cX~b!e^igCKQ?f|12v_WtN@XBjr5uo@QVGaZsc?Gn z^c@Ze?#9uAt8n7*o~J0O(UMClx4Rv|4Esg>^(%k+{Z?A~w^t6UBiJ?<9X6e68Y3n) z7ezJ~UAmXL1gj&kq^Oxh%y0RlMaDq>r3CU8&r%Ac6}LJHyBy0EYfkbd381`Dm}FR* z%jHifwky8gyKrWB68w3M7))07<4*-I9fVJy{w`&ud15(W|w zK7AR8aJMLgGuGlDfVqpz-PO6fy{HyNH1FMA^rH#Ho-_aI?1|~>Ov41b>_ju182Tvk?L;q5Xor1Yr%y$ZkMMW&mbh-gc zIKN=;lS*-*g_&fW*;-xlvQg|45-a2}NeJRhqJ`WiDUtGV^ElmpY=240a?&z?H*K6K zg!lYj+iu$)z)z31+X^fRGzT}YcK2LCZRh3i3a3HfIQq5!e;0y|lxIQFMCj^~@(}(g zppI&X-oYN73)WeK;%2|J)U^U8wy+?jY<8lxAUU|MwnhyUId@s*^uj(-H-e0~l(eJSGsegWDw>sk5<|291N#=w=;XEf%%RcHVy6uG8pyA~`n~y#Hcjf8; z?XTYj2fYE<*|IMTo@c;}q&oSmS5$$CotdV%i^6>pqz-S*r_apT(O(xG)GPj#9n4Hl z9_LFvxc?s=+k2^>2z`2?nV{*t>mKfSQ?T`wC!@cDy6~3{^yY^@%!@T)@62Z8mK@e2 z;CGp@@AGqrPY;=mr=)TqFA~OdjCyY0IAF8my7Z3Cfm?zDWE}p|+BW^*=H5S1iI3a| zVkR_CwQPl_Th$Z-;<EiW(Sosre z;7G+ztBgR;;5AQ!5>CVcZF-nd-vfP)Af@2LRtkfP(U7CX;;`J3JNr^|QUveBwM&%Z9-A-w;ejKLM_<5)21T!P8FuP;(5KE(Bq60=MUx;APvUOC$> z>f$zqJjg#yFQgPvuegDS=OV)AbB=|Q;s*d+n`jDmNo})D?q#m@-;bLM zn|TW_1(Xinwd9rwhUx=AMyIsdLfXL?j-a*Cw_H8+_+9YA^Wt~e;+L2w7Iux9tFT>KWVhVU+rNvTpG%|8Hk~#XTD#SR>@lLVswl?&4p+*PP7?@ z7=?1K-}o;39q^r%VJ02u{YFXR#J4bVS6e~Nebg<_|F8SN)f9pPE#^Z4p@jp=n`hzr z78q`cEp4~9!KXgm8!!!PAMewRev%V_EN&mFm6!_A$gt)Nk#}(bPWNSfPxCzb!oV>D zF5drCw){c1^3TOecSdAq3{Hr5_5#{LwAl4!NB*!M%?O=ei999|^K@h?ayhCFEFzAp zWrdgM;Vc)J^9t&K6EVNHLm7@VBz6Sq0-}YF`r^zz7@Ek1b+kVTpN%7zst9%%cV|Dr zQc19Zn)fO%D;!zo0}m8;NpLB*&X>Vk4%JCLvGrzt#b;;xn#J1V_Q_z(urB_3n%&c; zCGMX3yfonL>pA=h0)wg2xrK)xb}#rh{e0gpFLYCIf>#Ai&8BR@SqisbDoO7p8`Y0yB_f%IPze4*B>5H-+w!l)$SnaA>Z?OuwilOWR;tKGS0NC*H8}unWRq$vAr2YohsTfnYh6sDNT+LSeeEA-e z%ud}Zt8dhwxVue$bDJV_Z?HMreY<9l{pK$_lzM+tcbP6l9w09QL+@4^RDbN)?bx;N zo(!5^PQE^j(JtBhdUf_PGzG5Tg|`2@>nYmslAUZ8-NE$ zFg?RNIYKJ^AWNpWG7Zx6hZ?YP@d!Xogxi@g1`zpVeW5x*v8KRtsCC)d2cADVKWy}2 zxpn??94rJw+FAayV~vI(C0xo@2G*q|o-_8q#GF9df zC}_+xVx9QPS(b)5`2x)ro%K6aGpJvl6x#8QnXft2$n2(Mc9+@0V0KftCM{=zp)szP zjsv*QNxB8$j|~YI8mkfB(#|qXkS)BE0=rKH~DwQqc_T8 z`=wE${_h_&+`sC!6puG<5K}_)V(ZwKp0O_Z{eDSI(#I_|2eSzIi2{mJs~aBnD6lLA zK{i$ZIenlSrjaE5Ao%lj=0LgL$B}XgEA*K{_Zsf$-k#1I&OhHFv^!?UeE)D()yy-Q z*YLgB5tI)ao(8eST{J8ooep=1brEQ9*`|ne5&^{6p64 zay>vexfh>WDxYb z#{=-_G1j*IZ(RPG&1_$}WaF^sv^4%h+|VxrW(u*kh%)GGhO6INu`G7s<}ZHrR?~ex z1_dbc*yU|?N%>waia-0Xv9j>8?>G<*2feg9`{xvKaISJBH=}QcdnY$G_jXc$D^jmT zsH@<#!H<%{FJV`^$u{E7G}5RFNR1A9Bqcne``F}4csk~2bkc}z^@;FXM>sCH;0^N= zq6e(8TVO6T>#w&H;sNaGN0kL{_FBo)rR~Sl2anz*A8{t#((`}!@87+5{;5t39|h%C zh3Cl-)M&ijBr2$qm_Ybel^cHS_&VrNIz#BYt#>x=X0vK5=uAv$6atzJ zX4rmm%=K?q3EBU$z))mxhP-xGaJqz??eeQU^ayXv#}GCeuL*S~A&0+ACAo)w&S~rC z3%|nvM6pBV1{(7f&5O4+U7|v8ikT6gzLtC0`^`67j_Uz;I9cc7EtDE^4xZz($eN{9 za^-(Rv%h$K`gSK%GDKeO)52Z9SE=mCjnxJ9_K(^*>HI zW7G@hvi`0F)Pxja0`g=wT?(whTRJuK;6shwFcXhohhjR{YKEjEicsU?CuJ2?V-H2t z8fa=YOKp98o78TH!k*SLB3T8R1{JlVyal+`EDWv3PYO3fH6*aUdO9$b*-hzz^6MD; z)_(#IA;kAud8@#);;kUlUM{B`Hnm7TuAtY5%33kn5}-v+Isk_XxncwcJ<@DB>KDUr-iQz^|JXdf*X^M;Jfe z_yuBADHvLw!gIJEynQ!=hspu(uyN$2Oenx-w1HDsp-YcAY&=_*+_O`kG_j56{8PF2 zY_fZ#1Kbe@6-RE`2e+1Je96J5#8tl3o8Wh9V8VOOV5RJ1+3d?Ee^=H0p^8q@s_qWn3aHrw+t4kgMw?t{)I?^*F7>bHtzDREnZz@cp z!TqH4m*JlSJ3&p^ddeTej&^>WK##k%L%fDpi5FfodD6d4Rf|_kSG#mr?@~A$!G39? z!L5++pxt(}GP&DfQ$RHLw(4=r)qPjjMYGaGT1#{jqjjIS;~IcZN@##th^{|k4OWD$ zH(1&#TIy24&sm~w6t1-VrEOHL!t^mP-C7&my9&MO?^?mk1N;7+1QEsC-$kik0O_~$ zkvx)>2l&K^g{W>ZRKuGU{oG!?N!mTSTidSqa}HNJvPdC{a;M+LqHozMR*17B(LU(X z*XxvEYHv_(0xdu{8R|x>URa%#%g%NKHqm;S!}hV>G3^RnglHw)U`V+FB>jmb3KS7 zt^*BPZZmYC%Ck~VQ={X%sf)>L>kUp~CRgg!Ak}G-M>g{}GI+H##{^I zUus|!`;sZORhWT2o??~|R^Xz@26_r}m;r~4X5VdAxkVR;pUe_6A0AJ9`ZO_7R@AhO z{G{s^n}AS(c3szwY1oTX9-{d4Q{Lg?`h&hOa6Ono#d@tAfy|GHmv;uS!`pFZAv)TK za#Wj4LQ>JV^E+P0iCXqQ(!tyeN?M=Ry$9j5ojs(SbhXu+*9xBR4Gv2u@LV5Pitg@| zrhP$EbMtMwgxKas5z^3Z^ii7b2k*##oqTD&ZB}=JE*`&0cAt1AhuH4`NPmyI{8MzQ z!e>Edrp7B)*ox$~?l*e@bx$yGcJ|}#?@@QO?i_*n5{loM2_<=WhsX%)9S7G`gcF=o zoYbAmt~9dJS8c0ye)(~Z4(pNaNlm01JL-SB*}yHMdD~E;JwNca*3>62X;7eXL9$Lu z;>Oa`z^W#YL#M{fY@5M!SxMGhz?7oU{ujkwT z`1DU(-Qd3Ly6%uF=?MDaY*j`!&6ODYX12S{Wq)K&SGp*$Ri&7Gw=#|6EpFoVh(T3! zPeJvG_sSS!cejb|ONd_~`Aw9~S=>WcUvHO?M%gC4BZ0bS+%De#I@Ug?EQ*dt32Z1i zZX*AMKeeWwJhNf0XAifP!CboEwN{!jvA1gTEM>}f$w+N!?A&Z$;GOsHPvJW!bI(<- z68GD0HMNb0e?XsW8_u`Q?=ENEI(51D>HD&Gf9*U*oP}fot=NCpfA)5Y16I3IJi~D0 z=u1PqUj^I1JRETo+9wH&EdNt}{<_lei2L5kAw%iVgG!j5rP~CzPmAJ?4gSm=z5Nzf zM965-nxS1DxFv&JEk?f{NHoTK~#u4$1hgE-H7IS#fF(KaIJ(}=xu&%hj zu7dEXGufF@BodI`o%{<|4lSHkv4M9Nfo&du!-DsGUK8cfE*S6mEnJ)o3Tx6W#M4o! z!d|TvZXzJNhCjQ8?mL0GvRpM_t_6&6z6E}h5?+KhhGius{G~hf0UG=TZq$7HY#D^W zdqPe0B=yOQfa$qO5p1E0wOb+mgT zj^$TffwF2rs^Xsd%lH50Zv=+nkD2!@AqaDqM|!c${~4EXc`~gVv$SuW5;mTzdgKfhNh>Bks3HU z9pkph|Ad0a2+`T5#@BL|rG#f5f`zPbc8f_PJ^xqd+S>;T+VJSJOWrk~H_oRh1>HT>dQ%v&-@Wl`6lPDVy?8a&J(@J9$k$T9;yVp zJd$fQ+YQ+ae?P#J%kMix$xo!*SFb3*aa#wc45YQ}8h zH1)~Kj8s_eNh@$I1?Fr625$Ac_avD%FbHc|bXCBNSb6Wm(jt;Q^s?(`c)Fd3ZPFRn zji2Cq8dl;)87TTp=WqFN%d&?(_!55nVQv59JZWowe@fK+zI|ini1z-pO90uXsAlv4 z(i7!?YG3PbN_rK^_+%xrXiDsQlLk80wC~Ji=i!GqczO+S)S*XXi|*CTB>7T+3OWup zUR5BiKN-1vt#6>ZuPXo2@2mGbFzfD_Q* zK3E^q-!#$}(!@|{`j#)c!LD9zr%ifjMIEHZ+GIKu#&m7t?5|tq7yc!3FYHx`B>IZ7S2vB2aY zaDdESo{kkuXnv~i3+Y~Sk#i*Psq-4L>j84K%a4BBY{xmW&`csng;&_ZUzczt1b4By zC8!~nBeRXwW7K%ik`o`Mf__^PVw$*dPa*iR3=^rz-edD+8`j`ZlIQ%8MabPui{bTLV z)_CI3Kfp((`@%ypm)%W3Fve6_-0(l)mGqiGmDBu@`N>jlmKMgl`|LrCyEh8?a*Y*n zU)=mz?PPuyd(hMMRxk#${C(!*bb(Au&~RJT@Gj7XD`do)*^PaNii=-Qi|nizmj>9z zzmDz5a0@F@-H?5f_ya5Xz5b^d4*0_x=MGdD!D+<50%etYTKG!E4aKVrg-73aKovZA zVZlh`I^*tjtJ&q5yEJ-K9pL51blp=sWl0*DH!*u4xvGAnVZO02YOGA~cN?~@|SL@as(@U6A!fEZGb4UW2tyh^;3b9Wg53<$y9 zIa!DViihdxPG4?8hYBSvq}Vx`HX|gSG^M{5#rC>+Fmbn>ZN|~Y3Xbe3uY7l1yZH5w zz}hQSk4hk>SV+zBN>?qQk@4GDj#%t|NbG~AHvsYh$ctUJPSjg@ZjrTmywM=H75_)9 z#r1JY;9$j_<&M+5aG7pa{jnF^fsEF2N4ZwQ2EX=5Rj~~f!vQ_7c`3#Wlvc<}f&EFuK|);E4$l4R+(dYIWio{4=a{JtW3TQ<(UsPFUncAc_* zj~t}fk>ogr)v&dwc*~|Qu+@LonK(ZlVtDD76Xli5(CKz&jsfp!xiYCyQlH(t;x^CV z=0#YLv5^oe#%RYv^+!^A{s|>K6n|oYI-FuZ3h2nvn|HJR8<(}!XbWVk)z-g#wAeGnXMn`h3#as-#Qz1<47mfw?71lU1QY4q+6I=5{=8N>VPQ&F^ z5n<=*4HK#e(+S`_CnuBVG0h$QyNI6sec#E?lzpA3Z5RrkQ`F$l2wsP~J$Ys` zVeUDx;XK{pSw1vm*n!IZCQ(w|>cU7TBqu7YY8dy!&}sX_t7_6W-TMSm&D0_dqXm2MGnQTwZ@ZbVMvV8-mDTIT&umoEr{`WI3OZ4HeDW%iTqdF zFBtLYk2$~6D5;g_vXOf?S9dAQEuz!-Zl$<61821;Pu0cu=8ntC@!&(Xx* zP4&0h0n3EN=$mg2p9e4{Il%-H#@%=w0-k#%&I5z&GL=6f;U~6suJ|1NJp1WA~h#-ej51D zUmOuefBN!kR+L4Qba@b z+*%)3{BS8LJm-Auc;~jt0^4HDFx~5+L4I}?{}S)z)Bqnqr1Za~a3#L0-?-O^#ZfFx zpXSp70}o+|wP&R=rdV8JMQ^p~B0pz;?ZP>@lL07fxOYDT-jKQ$hNKA;XhaDY!}XT;ICHdC08Z!#hbjp8~o0DZ0sbF$7B1w1?Ci< zZGZi%YRi{V9YaII0bl)VI9i1kHnCR*Na;1-9a7bwR%-*6pcA|wA~W4J?{q;x9=cT% zgtXBUU0nlv{X^M&;k)j(Wx;UpqDcQ(Y+ZQA>G`$ZskXX`W z|4Mq}FPCaA801Eh;1{$O`3DKEtP9o($5-2WQCA%kG@Wf%*teKubw|7DoMx9&*rw*d z*nXD3`)W`86{4LWagvZO+HQ@?L2$V{>=f@tOiqYVYnEUO2lB8EC*MtZ_~N|HRhu z-iYPQxgo`7w2LyEV0_pBbl8s)-n%Ud3&kIo;Ue$#VxFfW1>JGljcb~u(Iklz;iv&q zQCFA$)Roje!qLY+m@*_6RO~f`@aX5Ow;2;?Cr1ODdxBmP8IK>EOd%Q z6v3w`!9=*Hf{R0y!fNV+mgl}7a=}s|XPG%ijnI-1dz~{n-uB^e+Nis}Ia64w_Q(L{ z0_@dam4RgkwaU$iPWJ9N!}i!r!Xf)Um|FmzbYIdg6WW#1`AJzgj!T&164OgfmY8Gn+7n^Rc1G11;!?ZFhV@;1;Z!=VgQZX-2$4!EanNjX=yCKa|*j4=QB zf_=w30oL1V_r-wv3M*frs4rTKITq%^;^8ha+vzc(={9Q~Cp&ffVf#eAYe2tbZvo7= zSNSu)ZvSFay#;wIuQ`N}$nzOneZBKOGwr%xxbWo?M^?U;Ln4=8dRsi1;^$h<)X3cG-yv1YulYAUhCg;^1m&*1v~#h9%{ksU?F$Mjn~MT*Vf1=yv)CK_d$~xi;~hk zA76_qNv|@*!s4|KLjRBE=BwP*s=oq9rg698;tdQ9NF0{`qby`sNE(9OBBE;Y z*}~YYI;I;MT^a4Xx40`_Eg`Aj6S|@x^{?eoFEME^sl#ybHC>Zj>XuKa4uJ# zuB7!4Ng*#6``WV!z+=o?}u)kf)Di z=ww;p1WiVuC7kRr$+e`^ESZA+sY#Z4ZkueIPZ$^E?5yAmk9b(KIN<-c%X;7DUs77L zBCzkwHMjCgww45-J21gLjx}wPF?%wf>B{%eJVxKV7wH;Bm%z3tfx8e}p9^nlY)917 zov+p0*fMqDjJy$Fr=q%GD&E%Pn-J~7N<7mH5-Ea4|413pD7y(90iOd#rEHt=JHJ<) zY&{lUK}&cL?wnAA=H9Yw6l8%BLC7!f9dfsMD~~H&c@G56Fu~-|$LUryFori_u76a$ z_#k;EUpOEQV&N${!A2jael9OLz=jqVn`w1ru567Y#o;#jm=V~HD{1r`N;20+iK_xm@}h? z`Q?%Ko5z2?XlE;^3YnV<5-%M;7_O<(FV0h!-uJsOrvbd#r8o)HyX9Eo%ViTTG_h(yj%=eo8{e@j_q^MeiVebA( z%zl8V8L8g3^Sq?Rrab$1eg3Cy$~9w7RZk;5SOim3ty>1&*q|bdyW__#+CKW}YxJ+? z-;rRiUyk3fGoX#Jd6g8--4yfji~K$LpHXx%p05&?7<`lr!`;SMA1n4}``LkL_^fEx zmFypa8K*x7@+bdzJ>IuR-&&sk)4Qs;qTgI-`R=H~O4rYc`AZs-;hq-*>3jr6vb3wr za;6%&rfpJ|gq~ajJ$#VzCgVQjlzs>IODm;YXJ^&F$=dpYv?p&(WQxXM%ty(cFGg$9 zysg;hgs%P1YZ0D%_OuyN!65dwYxf1~dShNU8z0uuB%c98IS8=RwTv8gz}Dy_zX==o<4M2?X+}kg!P6I?dND zonidLS2M7*P!1)XuWC8ds&|ydt5RP?GR?-a9eSX&5A)(Us;x6@%wmahhH3i;zK=7* zza>hp&k$R+dpaaBqmJOBIBqHa5|N#IvA$^O@jy5){C)pzGc=&}cI?Hy7Ii=oKUWI{ z(yZV7IWF+W`9IAa1Ib8EazlJ5-r^x=@cq+TMbVrauI2QVWrIPU5^djBi6&3>NwYfA zvF@|IzUdB+AApsOu0NFyth;OmRbA2I zgy~MLjj+Lux9>PH${vF^<>HvtLSMw~3^7>}1gSOJdwstv&*pUMwXCL|eXCMcnQPv8 zZ!-<}?m&Qe6)U9Lcs8tFEfzty3HFI>`16cVBiCHm@@mVk_8~I+hm|!?-~=*@nA7mm z#j!)9&Ij?g_m4$=0rAJNAti|AjOpnK$DK3niQ!8>w4PgR%Kavs@hoHYcuuhRR+m!} z;SLZ{J_`bPF_qM3!<7EoPkzpN-uT;LR6c1If}f=@&EexnaS9`Db~+9*TY?3VoN0e{ zKdjDW{-*vH3iaoEI(?u8`7&hibSiW9+BX6`bhqRB!zLw|ShC~en;-wo?}r>XT3Xm2 z0tW~-3Rz@Q9#*?;zW0>kEw~MT zz9ggCDA0glbgWoA{x*PltLyT^W#rAN_QeDbo!HsdlF~o-#C#;$(OuoU^@m;$ueKD0 zZPc4A`Zav2D*49Ox=l=Nnzw$APDFi_Op~_bsyj4gP=qP;QyCyOJjs2qcf!W;MLW_zBC2f8+MS>6xp<#b~RQsClcT4@xqu zS{2_+Z^K5c>ap+9xJ5Lo`X=7w9&xcs1bcAy7|CHJBJPV_JC%&A?W@`FDhxm794XHW zPdlK5&&-#7jg~T%*w))RwYoY*d7_+Od*U!=?En0j{ARRs?OqPhJ!<*q1}cZA3&Rzq zrM`Lgc2vX{M%!V|@~FSbupDd-2v zJy=~t^y(^n{SN>BV5{>&wnUaUBA``+eUW0l3MgN(L-vAhzM=c1J0%WtbdJ;yiLq#u zU4zP1&R<1>E+O0Lk=6oWectxFPC@iPWBI2y`_=rwA$<>+91Pjsd%xJu9{yvA(kWPZ zGSM4m@+NbM{4S|b-m|RXgmI|DG?m1bxDwPN1C&!cP`#>FF5RK!80Q~jS;>0i}Z~s;}=hc zcGz~l)dDmXM_Q3adjw_fUSa)N=|r%M|)%ou(&$)Z{~vi@%{U-0~ju=Ruo^cFBfuG3bRtUVGSK@BXou^V(-UcFF%= z06#Fm&xV=be;$r$|B24iMX;3kyU12C$MHzx_&tSVHo;NLz;Q+7A$0G`e;u`twvkj! z*7Mz=cpVz$+}1d4oZF^EmSLgjA*1^Ltm*$IMgN(E{yQ1;moYQhsRwV`V=pro*PdAR zr?VnUv^=no4Lj{<95&8#Uy1xLJ1HM(bMy-a`;Se(dO9Y*TBM3RWK{oWmgCN%eyVg2vry&x!6x7SZNaK4uJ(=Y z3oVUjlyl<000030|J+$$a}!k*Kiih_PoOh6=%~yvd2rAnb(4lBEmNnZ(57HZp|!N= z7`L07WFgsIb~mL3QG`)J9UmMY{0Mvu9)0iw=mX!y-@SW7ZnkMtnr(GV=Ip)a{yF#j z&OPVcn~g@{r$?4rq&z6gOSD3BG(od8LzCc-gYuw$&>_$-J!hu+f} zN3X0D@HMG~=PK1`49_%qWYA5TrZtpT(3(NLKssHg5xN1ai$J?b8>n5RB4~Gw?9Jas_t#Nbn4jU5xQi z^U*pBIX0a`PfFmM1HXnc4Sc*UL!-hfqo`%kGL0FFLQ)YUYmjbX{uodjLhc}1UC6dY z&mhq7QG9$JdIadZhQ2EF=55?ZO<0j@6Y>T|Gn5v_GRU11`mq@O)>ZuWDQ)k!Mk5uX+V(g;jNq8pI^+0FmSJ|RBWf+g}hbJ(GKsFy^Z zT0rEb@vNiGLt6%!B!!q8Lf*+@H`m~`d1NaSZ7bkc=sxnx5bV=FKc?wCvRP7ONHt3i zgUi61^jF_@xoCegNL>56w#V_+FH4Th!;bJLQG9;6zEAOGVvihgLY7c7#16%YV`HE8 zVG^fn60tLZXoyq)2Wo!kp#PDG{_{J~|4muuV0Rr<#IuCR%^_k(uph&S&>`$n5;-6b zd~xCWO2M_>0oUOOuKW&g4ahQjwq8cbb45|)lX7f$zEb@AJ_b#IE`g>&S3t8`c#l{BErC`*pMwgZRS*MJKzBek=q@M# z-2>eRJ=DT`%OSZw*H>5c?T_f&_%!rAtjv3Hs5!4EGEbvcoCgpQCnf(K$SP9wuv(#H*=6Rro@ECO9Loy+M%=16 z-dAu8NZza%fmw5_$%%#e{K!%*sAPtht@|UBH>QWm^J~kum)70+Tqu9MgZvW_`6s0O zLDRtsEU+9~$jQ;x`xLeJVQTE(i(jAo`S(QB&)ey7DxwGH%Wja&ILVr2TgkMZ&Ls70 zGL_r>eqbm2e_Zk$hh-Pp`m4REF<;rRs#A77XH{+}Hq7!X1$ctrl^w#5n6JH_-i>x1 zm!4APg2ae0<4fMU|7gOm>Db=+e&&K1rKR(gI_ma{3 zNV|LS0Yx5P@2tXabuU)!rsmp>k{{a91|Nq>XTW?!M5XUD$O)s>e2!sFu z>H|-xPGjfdrpOX$oHj{C?v&)IaU3Uh5<8ABiIb;1^2S9)R3K0h2m}IAfj}S-2*lUm zyYSmN>u7D%+K4@_L{`VMyJydw`S0vp&ZJv{zpf^F-qMs5Y1@*MH2n&6M+$ODHl?h+ zUe-)-^>CfyI%l6dVaGj|XPvJZKOJ=c>UQqE*%eU3@5tfzSQ9_9=8VJ7yl>VSci#uk zSBzgJlhD1=+CceBpZA!If=+>tqwI%WdE~X=xhnRpj3S)tX27 z-*MzGwvhjnG|K-<8}gsAbWBfE0qN7nr%XKJxZNQfX8$w1A;Kv$R|#X*b%pVyB)#Fd6S9AM!qOdfDTA(3oV^I65+2R?yPO<4{@b5^-tUlp@+y5+ z_7&5Xp2`6k^oHYukoEJVrH%S2szuf9EQmi5u$H~y`q06((gIhHG~()S1J@eI&C zzjO7GBX_NZ+^3u5o@hhvUP~MGv1fgl|M+vaL-8ku*31==sQ>ed74o!SPlL9A}$w zth9mSSxalkUQ(OSXdKOR8K3O-OAY?I>=oxH4$d(0wiA{PprN3NSNT76?$TBwux8yzYN*`J!k2^(N`Gu^;O60Yw%c8BaDXaye}MIKje5-QY*@Y9)&;?f7nF?&8&ID@x6oN zZVMc}O*o2e;CRu}0K+X=r449{am9&QtN67cyj)tdhe2lg_5Ls`VvN@54MR;Pxb6-2 z4S|HH)6HC2YkE~(RgnYxoG+X|IympOzQlWXk4nAQigTK!u}M&(tR1eHJee+k)t*1z`` zZ0s`ia}&LCp6kuOy78;~!8oop;pp#fBd@TXTeLL(&v?*0_H~F}78q^H3_6PP+b37C zmoaEo+Z4WJnL9hokAroRUX=CY?01qq$s^Ao>o(g(Mh!=~)Bg|Tb^Qc#RJb?8y=}0VxrO5hkg?+wtBr@uX+D-vc?x=ReVyCi zLe49nvUJJXUO|x*)D{=PT~yyV1FhHG{pM%CcgQ~$^uIjjTXUV}PyRptC;stI2ggy@ zgK@mngk!d=HICbs2HvrX)tc-$fiD=~oK0b=IXuB3R(n(C@fvgZiFwUZDy*I3{xDu+ z1K%@)-pknFWm-+w&ESXr1^@v6|IAtciyK80f4N?-*VfvTii%n&`9X>_*G-z*>q+6x zT5W5;c|B@dkaN2`Nv4 z&7x6Bc}Y3C2T~DNt*gI#X#)jhQ%n`wL7S!Q!fp+HoILc6q7|S$ir#=2`fMpV@-A`z zZfM82b`aO9@JsX^#+?q;DFjbs8+S8sj(ZvG9)P}w){R84Kr{pz2CbpwSgvHzpHW0g zzAb598PKkMlu5X-SJCXPP1zIotkCR<=Z$IdfZ~}HA5vT(3+a?RlX{*B|3A_E4?6fi zOs)P;EWrO&iaUsrkI1-GLd%vBGKu5j62)OBJ%AZKMU%({lm36E`G2m1|Ep5|A6kI_ zH!D7dakoG&&Lw1~$QMRi(JCU39bnrBJX6MSeXij;-2vCi6t3M1z%`=yPMO!StQ0X& z>;f0H!j<);Yz)sA8lJ~G;2EM;Jk|p63@Tnmo#n_#Q+|Kh=locqxQ*-<;~$|`Ib<$B zzV35=tW&&#EZ9L=8b>~ejL6D$M663YFb*P1EEz{rxW3VFUAT_D^=<6MDSN{Hc{H8} zy#RU%^fKsG&}*RAL2rQG1YH2V1$rCw4(MIbd!YA0AAsgSAA&vxeG0k+`YMz7LdsuD z^LHraZ{ukAyHeAe8*b_ir1Ub>igP(KVx5wo1#y?shkxQEbK;gRCuDZaT5hfRE~~aG zIu)NgEYiE`kzHo3cSUESnAK)V+$*y%2)P$Ga2(a}H}Y1;ahHZ;M9EIYj-6Ui%}pLY zw0nDD-;wgM<8Cmuck=AXV(F2GXXE3A{gb7{{zM1+Yg6{uD*L03k0-F0`<}EjM%Rv0 zdc0RsBYtx)K6B~E$@DyL=f^E6KZINk;#|?s)wsuV1*=fZS=(~?F;zDQ78m~;l`L>@ z&t<2t#-_$1Enro@9EAP}6;K3>N0k}Ogs7)+NDir=S)AXEevy}uoTnD^=RsGXg=Q+9;>WHy33yoOVDJRA5CkNGK<-IRr+CGIlM zVcBtObovp>R(u7UARNZVmV666V{gb^JYHS<|W5r0T#HKAY?9g^vM`9u^P6$^nV$z z|5|^7u3t~qX!;{cE(J5z3EOh>g<>h+s~^M9O_+Lr{1&IxH2;01-FxwJ&7OGPMoqrf zd$B%ldL3Tf0q-CzUZnp0PipiZq=%aREo(lfnQu*bnbvP={J+m6zI5|mbE}figLZlK z8VhZau6sPOusdwpF4N8`7WxBrE%i=%#IDwv=#J)hr)!1k-s8Ecm)-m7yc%<_{Ug%x zPLEF-&rp&{SGv(#*5&gW^IqRqXcu=~&s5xh$WYgQcRRj=2K~RBNw_I{-(?b=e(#Ii zFL#a2?ce^Sjl(M){MOe6(XK4O@AZoBm-|zjXanW(+aUL$Pk|SJzCcCUU!-wJdAawn z9X$_1Yg*}>!uzv^w;%hxHz=OokDI15av$Fmjw>3De(o!ZuMh#=)HpeE=5dK@Go7SJ zwoKvqMZ3dcVk;`1*600960+?n4~ zTSXMdH?jOEEr`=jwVkR=$0w&?egFw|GGnDcXeFVAw%`kdkd#meAtXqB>Z6Z7_~4^| zg8z{JfsT%jj*gD@v*&Jbxmxa3_og%E&fatP+`YT!d(VE)p1bK$O7&A>lmR34Z;-NR z)#FCSeDb1^d#a%-s;)|^rbfALqA8;};HaU0gm#zfA=>6Cy=L4&^L&q~_nN*t{p)zKfPwM{Gt^Qv2^%t}H?BGg-z;(vRB(2k&UD^GOW%p5l-DiDv=R?>%WaLSI z9CFAS*rl}4+1E|(?W?x1r$upz^Lq>DRshaEAI@wDoIOUS@sM{Yr}qC~ z+5bs^{pWo4uY|DQj2X&LE!gx}SmrLS{TMNy&Kj9i6UQEk!cRY0I6e=+G3djw6#~Z_ zMn2C^nnSx1{p!c-Pn5j+xl6oCsVQ?Pr}qC6as0b#MN&rJf?2 zsBmamLY7oUB4C2n8MVRL749AjcNB5&vXRpevAz1-<%TFvqnrm?+D{#N0739st7+IG4w3|M%g$P@dF zyrouELETgfY93VX>^~QA{Oo-1FPXJ#n)#$xuNrmb5XYdse#KA6G3&#Th=<54%*7f< znb^4oXLjM&wz^N0+!x(GN0D-XmmZ^;pv5eR7u7@c5!`FxasAvAbqD+#%>R4%wWvOZ zWi!IEJG6g@r}eH#M!1`nBO|d{Ysa`66Pc8Kxirrd)G{-pPG3jVw~Xt0Ha^0*3yh+B+O*}YYX$h{pr zqIFBhD?r86OSIMzvL^XhPVA}6%yl(yhpc%UMP7Ny$Q8rAx*(|w7ni}^kl0v6w#;s# z+x%>}OYyOe?FaI$S>@icZij<w%jX3Z=nrU81 z8QDud86|b@GtO-Kb8qbLVo`S^h%3KdjF?}&MlQ)e4&MI`O1Ybtm%7BSvShMt`R>`l zD^17zdbLY_@bcPwvOc@C|FRt)0_^`U|0`yB?+MB#=PG`fK$AgE!q7Bc8YLIenT9J| zS0eu27&g+sw$8{m)*d*$-A`9|u1361)A^tD5t&~NM!K^5^)BTBCD`qK%^&jq-SOki zi1~5B$SqiqQ`aQJ)r`0%>xf>La=eF0*@H=(g6kOo00960%vo(~990y)*=*9JdDZ$- zT3h0xwU$h~yV=+zie}pen-puYL82g=$;{o|Np@bGnN3qg5JgZw34ZY>^k?|d5B>lP z7C{gMK@bE%5Pa^;o$Q^-wzJv28{OsXopWc-xzBUYJ?Gv@h6o`ekYUIG7sB~)ex{8-KjDx0zmJO_AwNNWhWrBg74jS8cgP=*KOuiX{)YU+ z4B=o9G7K4oj6oP?Z)oXvz-2*;Zj@D3;NMxO}ps9^W)NXsshup1z8ob9X#PwZ-XYK_L9^6q**H7ixas!`W* z4a<*sYzX|bZFrm$cuaF$tE;|dIt`_K`_}ccTfY3xn&a3db#==sZ{OZstKM0w-mpXe z%PIb+68@*S|BIT95vXt2R^VrWJUmXx`5qEYcq4W_)l`3@h~i%?(N6Mq@ED4hFx=9dy5AY0W-XM1uMbpZ61P8 zU_Wp;+)+QvOV@4$Fg4rqDVC5+t5|D|j^aF;m|v!=o@aQzYDMclnAa3P7ZQG${$b7o z9K*y(1!Z?H8^E8klBpwKUC{-4i;Sh_jaJk9klAuCqXq^`=+b=6`UyGGa58oAoQMt@T^ z6KB%5)kc%DZtq}svR3f!RZCACcCR#zhHqHyhe*adIX_80!(k>p=*Dia%kiRhzegS& zchOE(+|Ol5*SNc#->gLZF9`3QGW~Z z;6B6KH;7FvGD~Ji0pA&N6Z$UNBG?y6Dd;beC1?fwmdGM{UWe5>x0l8Dg22~F;Vb47 z8*jM-zT>>T8t`S2V!sM_+{JkE;x;Sr5c9ts5ApqJf{&lZW16=rP&+uO8AJ022z)+H;d4B}=T--N9^>sgalyj^`YNK~A~Gw`G;quegUvt12ntpi%bHz6 zrSh0NqI#_&4jQm~_$onuusY_VZ9u1}IS#HpTq*EN@w^`7lla~)gYWzi)$0xLcnb{P zM;0;GtY)ubx0S`?r9RiU6TG#9UB*H@3^1?}ky=pi4Dx|czvabe;fUg62I%YLPQYm= zSe0`)C&=Ql*ys2>!P|IzoFJp3JPY?91zbI8yj~V~ZKm+*=3F|++ah+W1tM=JjZf;dwd_E`{Kiou_5;cunB(RSJ*s1dq)Qc%0(x9(<}*WbiEa`P??d+c`ui{1U17uL$@*Pr*Nyz`xM}em-VLaq^K(J3*Go zt83T#oKMmJUkYS?KSKS8(@LMub7y(`usE?CGK1=8?e9Om>R#t{=>{VM*cMndEbBhCyt+(l813$ zUxUVf}C2>**d@PDZEAtk9vI&orTkx2~*mvs!!I!d;b8tOPXw2OM1yvTSi2Y9+YcwVAT zo-=*$98o$=u?OyVL%28lz^&%&%RYmMqxAvXrCqN@>`#ve9RF98K0FZ@Nm!;5 z8IMAM$FDtjTnq7V`{41h(msb0-KPnvQW;roOy;&RS=QyR*ptd=mxkOY12q%KcOvIy zQO=@dM8>-~;Jo*N(!yd*Sj{+~tvi9=`-nVoe@?gMerzDS?8AQ<6`;%X0PE1+uRYnymA+!3 zUXRevp9R+8u*W)#gw`S7$2zpfnWsgp!aT4WIKMGG7hqM9SN9{`7q$j`PQ0k}1KOfh znx#jy1Xj`E-yU%OysUIV?OpTmC$W2(C{u(yz6$PN@zZ%MhInZ4KF$^Dp@dsx#1dkr zf%pn?o;P zrUi`Z0tp8yfiaJH$G~6$hz?LYhhD<7HZj67?m3BGgD!wy3;D2x_UmY&VJ;oxw}5B` zK3N2}6nyz97>ohU5^_cgb8H~z_o->QD%0{bew!YmM^TPc3FNOF=GW!8Db%|1q@>G|AzO*|dEnr9 zw}y8X*onHr@eaULSx0M;Ax(K6%Sk-8^xUZY_W6L%l{b~%RIz7ECbo>lB6zzpH?Bc* zuymxaQiS|U=ae69VE5#=W)*jI_+R`_@?$x`<0y7IkGmlr>#^QEeo@-bj{AsOaXQW+ z2V}s>MAq2B`f0F`*qJT7pM$*~AulvgGYh>4FI+$yk!4K0Ta?+SjA+avOJv}y;#9VS zwp(w=j}y=tywgHiQk;Fp;Z54{-7OcLZw86VuEv1lYglQ)tO=`$U!v&zlATk08S*46 zPP|n->C!?`@~EDZ9sG0c6Bz|j;;#quLl69yL-^PG!2h1olUR2RQbA;Dh}JRG81nl> ze1jU`wgNs+BI9Ka_G0mVAiuF3@bv%vjEc|hfd8i%Qo4pSn~8{w3b%Dm=Kvki z?SIX`#QH}UANGLbUB=^~ z@x=IdQ1}#*f}|nikSt^xl7q}Z<{^uaCCCb74e|uC0ojCn3HchLLn@FOWCzlS`&dZf z)dF~jLwMU)8}CS<-yfG=_lt-6#i*0#1w_ORRsI2DRw#TqA z;q@M&w*6*){{GLuXTyHp4adz84pFYTJUQ+p8>Ve0Gg@Xmsb!Pt$&>#N^ke__|E+?D zX;;|cv27a63mD9DYHrghD}%ydrdKb)6TCC6gMZ2XvA4tBt`~9HbSw$eaBR-tLQPhM zuUUQBIk+#5slVE!E1;-?zp1g=+N8Q>y|2i2Z19sTwdbNF0(r_1icQf z@LTS1-Rjn*bF@;0aox1M?xS_QrL+0%(e}*Q{Ql0_`X4=){r{qqcK8E39;j%?fWp(nMQlP0geJ7NEla&EtW87Gj&Tt;fq)?p2*gbw zCZ6~xd=|VW`$(M$w-u(*vYZa&&TK3Z8s5Z!PTK${OG1G8kFVzxJ<)bV5R9= zb&=T~8TFD?4GQAm-xhIYWqaARc3QXJE9-+phyIU_hJGeOpY!dL+hIcGXQYvfCX z;gPw*zuK|o`6$;PQ}hQy`q_{^FYoame`S<+4hntJo++ihZ7uBSR@&qJ9ahT0yzK}{ zb=>kw`+X6-U1;&A)SHR0D@)CG5x9hHbJ*W1h~I4bPh}DvX+rYeu=wc(u2_I-DzH^|*~}(Dd?5 z-742CyLA^~e}~5>%#-ya=~p{?oo)6P%==~fyWdqkU4E};sBOF39p5gE_Ah08sjEFN zy{QI%{uLPJ!*IYbjEFF_82ewao? z{Ro{#set=&$RWA_tx2h`i}#ko>qPLX@x=QZjltV55?O>;7ktt@LCAf~#b@IfME}pvz&w~h_ts$N(F?e=JIY}-!Y*;@B zZ@BQxd6Z1Bl)z@wy!=iV*FA-6A%d$X#8r&J)gz^e*6Xl;5mY6O_TNu9Ubaf<$BPZ? z&9zxZ8aW=O#KFg(p@$r18IPJJVp=&KrIfD?_`!tj9?qPI51z+d$TG?dImf}Xho>Cc zW%#}%;wji*>EeByQof!7$5jyAKooImp0mfX+UnwXl5l?8DP>ixGB*5SfuIVH%!_+{dkl>Ac>)-TXa!L%r53SBE{@Neyk5B?idf?7)tA)v zc@<%~F1x>O@;asZCy6-vmat!f`n=}(w3^cIy5)6ok%MPS+Bm)|9IFu=gVfC7#Naq2 zrOz;p_%M;hPU1c*WD)y^6Y$O~q=B-5?}{k@1^@v6|LjDoY7a2!(`@q)Dh$nakbUzQn#ee4CI^Aw@;4id3mpA5x`Cm8!OszUlk@ z_yGL??H~Ov{q1^<*N2G>Int`ar@6U(%-sBDXJ+@@Ll)W8P4mRaq&^zJb3dhM7ZHtu zIzXMEomBa4Rc+DVrifJg{>tOuF>UPKScMCHuW0&qhxCa#_iFmY`_5|ZnBr|A{(#~E zaVnDoG@KIh*(4XeK6!W+eE|?!v?OP7T2*pU;e21id94Y~t`N?(7H}R^yaZe;Kx0xK zcrw(B_3FdDpA30DPWyn*1=1q0+L$v1K2JyB2O;Z7uZUSbJi#!_L$4i~AFgPASZU&i z?IAymw%~`Vp2Kt$UN{WfEh+#<0ysHZ9B2cIZe6cxcnVGMYzyH@w}5Ax;z#HVjnfE? z(Q%-P&i)TI`~4>NcT&Cm!!6jqL-8rB0hcS{;aWtTG1(s#j*m4QXJhN*I2yuX#G2#S zq8_riEXv_Nk9^4h#YyB>k!ENCk<~{@Xiw8LO(MGIz~|vr69|)-;n5*vV=wwn&>;Gc z!y^TFVh}Sq@@^LMP3W`Wr*2f*UO8J_qUsv5Hwm7Uyj#|>bBK#&I*m72(0T%vaajS< z&^`yrS>*0Co|aGnrg5K<8T}+p;Q26U5p!43(~CKy7|VhN(JsiUxB@;!7cfI0It|1t zX#04V0exxkKvvXAa0Bn2llS2e|ym^1X4Y%}QdAtNeHfZj34 zx~OIQfKK2WM|&B(2Rn}FOVN<@$`CwlpywDQrllrZt6v#-$CP@L==Gu7l_N>mA!dpB zqp*Wx>=ed|z$f~quI~U$wN15gQiV)vtn^YfN*dE~SAPRF4+W-0gq&|M3;aF>1AIE_Z zj)}JBI9^x0QXQ9&wGMJJBkRa1WcfMVyV1&`B0Yr}45LXzGK)c)`E`q0Gw9U=QC zTCo2<#nbS+A+uj(Y#(yd!g+(qZ^~YI@;M1Slab;2{tka{bSWO*Tc42MSRQbSdXkR} z&yV^!w+WsOs>frrfTvyYJWhQMGBPT=f7+yTfQjs`e9bSz|Iy{gFLyXU_9$LJ7Gx-n z6K+aoL|pD8VqeO@4uK|g?gj#X?SWv`*x+Yz$2`m5TzU6cF0 zvnCe{$+b~E&aKFZJ*xdY$gwH>^X3Ro{kxU^q~+laj60qy^`zlF6)cB-!5@N1X;_-iB_ z=Z);x8?r;R^FB|cyhO=yokWk(lS&u^iSG1`{|~gX{<~CL;BZ`5%@gj;+l?t6j5on;n37>A)b$7Zg@;zLF<-FLC}p4-j) zDC8R9YOll9P679PA=lM@YwPu(YCi`;AeDTc<=!H5>na4*k}EvQJ#H2oiPUS$+Kih{ zF=(u@7FO&5dAdLzcySY;ak>%xuTfgR#uSZrE_>zv8cdTYi|N zb$i49X_Oa4^?7ku{;vF8`I@}=PX7l00RR7EV_;z50Ad~n2w;Wsd4ZS_iecg=4CDho zAZ}n`U|@rqk8CbB`#|a~7!c~2(A2}!AC0}_i$ilOFcFyKx<==KkW z_#f%|ClJt&9`Ec>K8W^6O-xBGf|%ohWDYNyIjm^rfYgaVn0H}zGB6<02*|t+B=b12 jxGMt5JSHfgfzi_!rXSfoq~<4IXa8WBIUoQ4DX`}*VgJV@ literal 0 HcmV?d00001 diff --git a/tests/texampleTests.m b/tests/texampleTests.m index fcf713d..8322550 100644 --- a/tests/texampleTests.m +++ b/tests/texampleTests.m @@ -65,9 +65,9 @@ function testAnalyzeScientificPapersUsingFunctionCalls(testCase) AnalyzeScientificPapersUsingFunctionCalls; end - function testAnalyzeSentimentinTextUsingChatGPTinJSONMode(testCase) - testCase.startCapture("AnalyzeSentimentinTextUsingChatGPTinJSONMode"); - AnalyzeSentimentinTextUsingChatGPTinJSONMode; + function testAnalyzeSentimentinTextUsingChatGPTwithStructuredOutput(testCase) + testCase.startCapture("AnalyzeSentimentinTextUsingChatGPTwithStructuredOutput"); + AnalyzeSentimentinTextUsingChatGPTwithStructuredOutput; end function testAnalyzeTextDataUsingParallelFunctionCallwithChatGPT(testCase)