From 0fd88bf1dab8eaefaab214532778da893ea0bc46 Mon Sep 17 00:00:00 2001 From: "David Li (WINDOWS)" Date: Sat, 19 Aug 2017 21:48:43 -0700 Subject: [PATCH 01/21] Adding Vision SDK. --- .../BaseTests.cs | 34 + .../FaceDetectionTests.cs | 23 + ...soft.CognitiveServices.Vision.Tests.csproj | 43 + .../TestImages/detection1.jpg | Bin 0 -> 365482 bytes .../testsettings.json | 4 + .../Microsoft.CognitiveServices.Vision.sln | 28 + .../Generated/Face/FaceAPI.cs | 137 ++ .../Generated/Face/FaceList.cs | 1400 +++++++++++++ .../Generated/Face/FaceListExtensions.cs | 363 ++++ .../Generated/Face/FaceOperations.cs | 1263 ++++++++++++ .../Face/FaceOperationsExtensions.cs | 368 ++++ .../Generated/Face/IFaceAPI.cs | 65 + .../Generated/Face/IFaceList.cs | 227 +++ .../Generated/Face/IFaceOperations.cs | 230 +++ .../Generated/Face/IPerson.cs | 307 +++ .../Generated/Face/IPersonGroup.cs | 189 ++ .../Generated/Face/Models/APIError.cs | 46 + .../Face/Models/APIErrorException.cs | 58 + .../Generated/Face/Models/AzureRegion.cs | 22 + .../Face/Models/CreateFaceListRequest.cs | 83 + .../Face/Models/CreatePersonGroupRequest.cs | 83 + .../Face/Models/CreatePersonRequest.cs | 84 + .../Face/Models/CreatePersonResult.cs | 62 + .../Generated/Face/Models/DetectedFace.cs | 87 + .../Face/Models/EmotionProperties.cs | 162 ++ .../Generated/Face/Models/Error.cs | 52 + .../Generated/Face/Models/FaceAttributes.cs | 125 ++ .../Generated/Face/Models/FaceLandmarks.cs | 320 +++ .../Generated/Face/Models/FaceRectangle.cs | 87 + .../Face/Models/FacialHairProperties.cs | 92 + .../Face/Models/FindSimilarRequest.cs | 151 ++ .../Face/Models/GetFaceListResult.cs | 105 + .../Generated/Face/Models/GroupRequest.cs | 73 + .../Generated/Face/Models/GroupResponse.cs | 76 + .../Face/Models/HeadPoseProperties.cs | 58 + .../Generated/Face/Models/IdentifyRequest.cs | 122 ++ .../Face/Models/IdentifyResultCandidate.cs | 80 + .../Face/Models/IdentifyResultItem.cs | 91 + .../Generated/Face/Models/ImageUrl.cs | 57 + .../Generated/Face/Models/PersonFaceResult.cs | 76 + .../Face/Models/PersonGroupResult.cs | 101 + .../Generated/Face/Models/PersonResult.cs | 93 + .../Generated/Face/Models/Position.cs | 66 + .../Face/Models/SimilarFaceResult.cs | 100 + .../Generated/Face/Models/TrainingStatus.cs | 105 + .../Models/UpdatePersonFaceDataRequest.cs | 69 + .../Generated/Face/Models/VerifyRequest.cs | 100 + .../Generated/Face/Models/VerifyResult.cs | 86 + .../Generated/Face/Person.cs | 1762 +++++++++++++++++ .../Generated/Face/PersonExtensions.cs | 503 +++++ .../Generated/Face/PersonGroup.cs | 1189 +++++++++++ .../Generated/Face/PersonGroupExtensions.cs | 291 +++ .../Microsoft.CognitiveServices.Vision.csproj | 33 + 53 files changed, 11431 insertions(+) create mode 100644 src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision.Tests/BaseTests.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision.Tests/FaceDetectionTests.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision.Tests/Microsoft.CognitiveServices.Vision.Tests.csproj create mode 100644 src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision.Tests/TestImages/detection1.jpg create mode 100644 src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision.Tests/testsettings.json create mode 100644 src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision.sln create mode 100644 src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/FaceAPI.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/FaceList.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/FaceListExtensions.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/FaceOperations.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/FaceOperationsExtensions.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/IFaceAPI.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/IFaceList.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/IFaceOperations.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/IPerson.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/IPersonGroup.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/APIError.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/APIErrorException.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/AzureRegion.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreateFaceListRequest.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreatePersonGroupRequest.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreatePersonRequest.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreatePersonResult.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/DetectedFace.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/EmotionProperties.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/Error.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FaceAttributes.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FaceLandmarks.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FaceRectangle.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FacialHairProperties.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FindSimilarRequest.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/GetFaceListResult.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/GroupRequest.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/GroupResponse.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/HeadPoseProperties.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/IdentifyRequest.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/IdentifyResultCandidate.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/IdentifyResultItem.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/ImageUrl.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/PersonFaceResult.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/PersonGroupResult.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/PersonResult.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/Position.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/SimilarFaceResult.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/TrainingStatus.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/UpdatePersonFaceDataRequest.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/VerifyRequest.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/VerifyResult.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Person.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/PersonExtensions.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/PersonGroup.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/PersonGroupExtensions.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Microsoft.CognitiveServices.Vision.csproj diff --git a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision.Tests/BaseTests.cs b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision.Tests/BaseTests.cs new file mode 100644 index 000000000000..64c710ffb62e --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision.Tests/BaseTests.cs @@ -0,0 +1,34 @@ +using Microsoft.CognitiveServices.Vision.Face; +using Microsoft.Extensions.Configuration; + +namespace FaceSDK.Tests +{ + public abstract class BaseTests + { + private static string SubscriptionKey = null; + private static string Region = null; + + static BaseTests() + { + var builder = new ConfigurationBuilder() + .AddJsonFile("testsettings.json"); + + // Create the configuration object that the application will + // use to retrieve configuration information. + var configuration = builder.Build(); + + // Retrieve the configuration information. + SubscriptionKey = configuration["SubscriptionKey"]; + Region = configuration["Region"]; + } + + protected FaceAPI GetClient() + { + return new FaceAPI() + { + SubscriptionKey = SubscriptionKey, + AzureRegion1 = Region + }; + } + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision.Tests/FaceDetectionTests.cs b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision.Tests/FaceDetectionTests.cs new file mode 100644 index 000000000000..3fbd629652ed --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision.Tests/FaceDetectionTests.cs @@ -0,0 +1,23 @@ +using Microsoft.CognitiveServices.Vision.Face; +using Microsoft.CognitiveServices.Vision.Face.Models; +using System; +using System.Collections.Generic; +using System.IO; +using Xunit; + +namespace FaceSDK.Tests +{ + public class FaceDetectionTests : BaseTests + { + [Fact] + public void FaceDetection() + { + FaceAPI client = GetClient(); + using (FileStream stream = new FileStream("TestImages\\detection1.jpg", FileMode.Open)) + { + IList faceList = client.Face.DetectInStream(stream); + Assert.Equal(1, faceList.Count); + } + } + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision.Tests/Microsoft.CognitiveServices.Vision.Tests.csproj b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision.Tests/Microsoft.CognitiveServices.Vision.Tests.csproj new file mode 100644 index 000000000000..ed3d67a6576b --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision.Tests/Microsoft.CognitiveServices.Vision.Tests.csproj @@ -0,0 +1,43 @@ + + + + netcoreapp1.1 + + + + + + + + + Always + + + + + + + + + + + + + + + + + + + + + + + Always + + + Always + + + + diff --git a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision.Tests/TestImages/detection1.jpg b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision.Tests/TestImages/detection1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..bfd799d92c0ee2613a8a384a5965ce0f141a7c10 GIT binary patch literal 365482 zcma%icT`i+*JUWu6e5a^76g=L11U-gMXA!OQbn*(BfSI&ML|(Ih=O$KLI9gB$IP0$R^Ce9yX)qid+xhupS{mJo;aQZoHo)k)B~`v zumJw69d82owA~?3o&wze^PA-u3%K{6tN*`^^?xiKz zuiR6#N-u733;3mUUn-;IoAL!~_rT841+J@c+&mXAy~@(u|)#R6c?(f@83^8_3F36B4^i=WwnY08Nc%#-X~ zY-~Qv4*YEF|1s-?1=B1JznCI!Sokg{7T3hjnQ!++Ao7($Z zhYOs8+Fx|UgoB0tm8{Os$0C=n{%S}m95Y9E3KsTk+K8i0v#nww|NNHHeZn`qh{%}` z(zLKp$@IKYJ+{XeWy-UQd0^?(Yl)CU8SN70vAjMH#tqI|GXrtr*Z`a8N8`ryYP+G9tUTDHF#o>A~89`)GT zV*oZTCr;O(U)5*wjR?z@RM(s(B@9ravgnN3Aj~z|4M1ero7HU=Egr2||O^ zg8I?HZ}>vgc#ohAHg8Ut|5>$=X})ohaEzN78%7`|YTx2XxF8!51AjAxh`5#f;<+mK zF~I-)7(37+@-?R?{f@gqs@DL0Br;}+P6zSHk@2lk6$7q&n2e&K<&gr2Z==ra> zSKU#S1LC6#}6bh^Sj~bKk+EDk|Tx3wsh-vlP@)|BPt>(Yq!W?FNAF6zNm&O&~Gt)B~}$KAS&A9 zy1U;w!q#5A1sm$=!U*6(u4vO_T*%n1E_0Rf%WWyZJkIF|)g@FyUsBM?b#-Ns{>;wr z-uCrNd=GvogD|+OT=O$YE@Q|-E2U-;E+b8 zvo*0wL;8;aIv!=Ea%1_k=ZKr~XC$}sU8D9mOI1YFprW|Y4i!mzpg)fl^#{kHyWVfg zOv;_%m5dqwpKZQsyLT_qPly3_h@mtE-u5^W`S7{al-LEe3uwr#A8N?m*@PAn<+<_; z5Hyox$eEU;xoPX0wb!B1W*!AcDT{p6gx)yfo}^kW9|I_{H})3MODfw!&z)G-*va4X zS{o`*&kOOpX9A>7E3-XXFMr8&YJ#>)!0w8dy*+{0e8_ZEnCvGDVsjI2#b0OK0j;HDZ=QI68>uQBWnwAZJg~s#I&6gq#Fle<#g% zx%~tbeSP;{78qPYcir6`jIwl(^7Xx~AF>Wy66nAyyKE=RAHa;)p<=dN6f5tf3{qsS zhty^Xepq-m*+g>k`^!{V0ctV*(6Xxfh`C;ecv-L8#Be0g7!OZm()+Efk~@w8AEyxe zzqC_1lao&F!Yi6+~lG=rN#^ zE$z*OGW`RstY~-xNV5RZv;v978)|AtEd^q~9#MgSY)U|KclMUCL=kA-|DE zDq1dyT3)6FotJ0;(JRqqiZa3zgJYK;Zpbnh#p0Kab>c?@{s zI6@a`gTjp8ikKnmA--0O;bd;4nyuF8>F$h4NB)+b}m?Dxbe+-{|k}6^n_i| zJg9<^fINt4{b6+f3}4YqCr{eI^jKKkJx2 z*=<-VT~ec>h=mBpSV981gsV-naGrvpq`F>AIQ+w`a$=@){Hx?wj5c?}!tf@Z)sdSC zCMTlj?)r8|uYn5$p9wF>QX7P6BMlGln~REBEtGX;Y4VlG$Zyg(ekp&cAJey%>;CX1 zqy}g;?^vCX6SrfOKj|x2s>R!Kptnnv=D43Iql5TjkkltIicrl*aK_t4)ntsUin_+K z^_sKk7yzvI3PlzB?)$9#(l0q4rn*A7+$~HdZbrRp)*gf86k3zbBoY$iOh0=y+l$Vg z>uixW5qmF47YWaS9)wVD6_&WY_p!kFgI&;^8gV@OdWF$?V{qqJq0qoSyKvnS2`!IB zdrk`!IU<1KGF<^Am|7RWJI8;cH)5+J0hk408-xFUd_uLI0n%ZwJjFZVlAMz@Z%1Wish0~6@W-6O%EzSCAwQHePH*z`3yG?8wascrA_Q!6 zH0|XXqr=ORt<$~;>5xM3VoyZMIq!6}R0U_tM%QM4uicc0n5>Od8QFYF4L6?RgCg`k zG7!NlQf5L5rMiOgIuZVoyE5F@yZ5|k?J>xOd^I%EZYA@B!-uFNiUjS*-S}1HdbZlP zL<(-2)wD|_epP;ON(%&_?JSp6ks_|-uKv;tZBz`n&S7S5OhHabo8$p}h z9A9z{Xw?Z`?1xHAjE$oLmqT?}(2h%<3}*SmyGt^|p0e=D=WVS_CyHul90UG-%Kkj9 z{j#3zjPvB7>$Zda{(&W`D=rzFzgoIMJ}PuE!vd#!Okc4PKb1r#1k~w?k7j`|)50GU zs}yM0?dciKE`0vqvFm&QgU5dIj)#<*tV55OwV4wlZXZGr>cP{_q= zDWkyDpyZXvN_seim;klo5THuKY;o$>^p>y@)Lnt2O0+ki!CA=X7%)|f3pVq_<(x?I z-*jRm?N8H=(17o7+tLv1F9hM0pw8T)@7}r^RB%_RPv670(bZfj>KGt0glaOnI+U(y zU+9}zYDjl7i@pPaU71Kxnm>v_78F9~osAN4W5AM4P^U;%9X1HuNuy%Usbk_rSQt{} z>s_Qa`oMT}C5aIkaYDh?E1?+E7phSuGfxlqK^pbpKDu0)?`clhqTUKG+0>@Nto!~1>YVzYJcngc=@JQKWvIfgSxjw&qS{}S$dTp z2-TG*;C2+dNUUb&{V8_Ygu$&=ieh;aPU3U(i#V9dZSMM|9YWI#;%%uKW>Zag#j#@_ z)Z0{6ev|fGh(1OQaGlg68ztk{>2kwD^qwArJwg<|cjMmX&I%c`YvGqT#jlZuZ+hr2Z0 zm;d?`10G6Zqog1uNAiW_FDMzGdQGFVTF6?BNoS6T>gYhbdgjlmywcvwf5PFrsFgq z{9ly{u64VjzlDGP>FpIYP`dtEB!`bwB ziCT>qd{fh-zivlcB=)N6W_M|}zqf*Wud7KNeN2(e7}+2E(mC=jJVJs-Cx>6mk22WH zE_cq?Owy<;P_i?Wn?42fh7gD94p(#c*FYarU~h!q-+Q7Tu|# z-$*DB?}X&1?EP*37V;|ck3z^UR2#I)i2N30d>&1sBN+Msr*!&#+cV(jH0oUT=)-}u zP$UwEXR)i)>_C(H?nitU?itH`^OG=dpBzmYP=2uz)Bd=MhlurEDd=Ij{1AcOQ3FUv zkzikz!b@si)n`J;J%gIzSI1-?zltGKwtCY!!G?hJ-Vf5V;MiPD$FOBIa5Tc(@=$_+p+7E87d3K@Ig6-WigKBAjtC4lVyV=~ROMK9L?*$DT^qv9>%kCPm3up!c=Ce7pvZ1QX z0(`YOGPeaP1ek#Jt_ydzyzX0};gxs?=6WzQS0T+r@Yy+q!CQ4!w1p$M1cWk-nELp6y)PgqDxrBWExW0SqM4N}E!Yrur zCdH|d1)uQKyz964cF#r8PiX9`g={N!`D|(-t73DBBQQ{BlW4UMYvc5A+8Bk{vR!u0 z+6vq3Ln)7ET&$uVB|;PTCZMb^;kQTTc4xc28iUVm(F1GzCDS3rH=&LWrK*-CYZF8i z1a;y|WR)(ZLZfMm=4UD6kqQkx7)u$qpVN7pJzEkU8qq$677L@DGc29Wa(b-~E5t0P zsVST@a8sGWRjLWHET%QKgAIZ|3y$V8kT^Y7ABlAx#W5*Z99qQW6)abu$q(WM55pWD_XL z$AD0+O=!rnM`>dXEK75!hfj6_aU(9`F(0I&2G;Vfe3F@nJnIOg++8arqOqO$eKvlo zO#nSzv(FQ~$9D`+H*;Q&I6BN?kR3&74hP2o$F9CQKnlfoTIl^Fw>b0D031om$|I0F{fX>*wqm>Q^U1 z!3LO-FQzD-)eiOBA?zLlL_gAdg};)Wg}O*s{QiXHN8j#iUZpor0pD<-lJ`LBQu#DA z^!uO%7RFbg2`mQ`mJxxM56yQs^qXfgn7M@sS=*Q%!cc=k-=Ax&$L1J@?%8cG1QYCc zao+FW&WlNg?KFS%f^VUGzn7zpSK9U71k~k)>Dd_r_zo!Pl-u-lPX_>Q*p<7Rv zx~0KRF!O19*4c0j_>uk7Y`i&O_uIfKGm1}rhS|aLgHkWNgFc-es5ycG$&^2T)H~KN zvTI0B2$|`>l>mDdW^`-Bkcv9Tt@*}qN9tgj>>TV2cth0l?Y)B(GM0N2gav68TxmF6ZON_MShh)DH^lbHff+!fid)3lQ@B^6RmxpvDoh)T zj{)C3&;cL%wRqI0-#w&p z&_2jCa3)L4k7v^v#X0>U1k{oenfQK|m*P6EXh?-%VPryL@u(-|7yxEW=~rr674GpMi_cI?()=vZsL+| z|AhwsaEIuT!KAQeh zvx5jZ;2WgaAwuy^-*oH^1!sFf}LX(1yw zn2?h5MS;(Fh8N0w;9S{G1i2u%2q@EB=8O%2lsr7Y$~7GwF=+#T_8qJ3-7;wuY?v-7Eq(9|K1Cxu4siZr# zE$Cr`oRD(GuN2U}4tAYuRDTpg=gNj``^{hB^qHto;Efe6r^HR#3CX5g&68qwrQo3< zIWb;p)BWC5&e8YDI%Th75PIViyo3c6LROBNivJ2e)gUGs-V4j)>bMzbpHNmM_->59 zg{I%T3?0ZbH)wle|4mf}Fb0|WE)hx7({Zth{iTQ42)}gY>X)27%>hhvvPJskCy+q5 zX#;DvmU6SPsQ16OIwtE3Zz!A#A8p?NJ9CytR9Pr3^$G;4sDE)bw$W0;&m(6DS^ZKO zFFq0aZjL`+74lP$O=RmwVU3oIPaMi*hXf4OW@LQhH+4Wued9bHrGE1LZaopFtD$mo z0r+O{Ve#otU9a2C+00eS6NdHp`%WmBLt#er8B>X8N(k{`7EJi-{c;~hs1H}8h`woi z5|tF2$!_gszst-sJIezS+@pWMyUk@VH2i302Ty7>$t3B7TwT$6RH#?gdBL+5i>64? zBfALStdNwHdz&&Sl=f>oU;~UF=NYnfiCai#;a7eSjCV~{I7a8wW4Sp_$PYexz5QY3 z?Ohy%{*jl|D0 zo+Iz)s(sPr8Wqgz_NvD=yQJ0LKOLf7)OQMPp2Lq@y*Hiw>FoV8{V_V~W7oLpX&V}Z z=@{dp553&JDw;&A<*8h^mDn?fH=vjjYc%9bL29>5M7C2WOoge7oa@bKB5Z0s2$(Kl z8U*)^yDa1UQzoMMexQc5#!t;CTa%lL4bV2b04r<}6&loS=~4T(sCMsaI}fE)okRaa z|En9OjH6+qk!`MBK$_7nLyamJKeg$nghl-zXWxrTMWM43v?DuGzcv7;JNZbXJ#d@C zxg4)+w+nYUYd@OMwJYLZ{M}*EIj-F7j5^fXZma)`G_kKi{I#fOB7%CvSFobeJG?xS z2FRSkJa=I+f(DjGR>)7t%VT|waSx{9$#h+4kcJFeN~C$mO@1dFmMw7%Fm4iq462kr z(Jr6)0N~~@xy!k^ycr2yb}vksv5iBSA(4|W!S&N?N)ixdo3FrKKeSIJhDOMKE}9mx z(GuG8HEnty-rvbc@j!sj;dcn>U3WvQMqg;Qqg2NJp{Dg26-rxhlW(pxu|qX>^P@WY zZcS5vh*~8ride6fq7-p>nB(CUFzkH{SOL4;Y6#kK&3t$OzM9tY!D3!61(D*L`#5Iz zq=txxfEnT^6|zGGuRm?#Y-M+d+Xy+#Zxo?y^`y>tymVVMEkELn@Xav#obBd}1-jza z$_)Im>FU`DYhGr2d$R?4oxs`ZPE08h69;m&l|IX8_&^QzTLDGUvy&RJZ|-!R;-`RjFthul9t8P(ADyUtE^> zkwNkG!Xiu=Oi1&->VsG;StO`Jn72J~6BzIr_aagS6QX&s{FAdXk%2+Cc_05ETC!*#XBW`OpY%FJq-jD2CiUOi<-aH2MfWZX~rZ}?!?+sV_#1*M$4xB!f zpb! zSYwdJBb)_S$Pq5bfV(VA`W;G-p<_e#HIuy>pHuv=9xASgrjepTt|3(5F4^cD&$@+b z?k0lOy;hB=6drfp_K#6Eo1WC+*X+P|0` zPJ=-fXC5c<2xonGyeC}IS;CVs`n^2f>E*|H8b^j8w$S>FpgFN_dD86TpNaAl133s?aP|?pxa^p!H!?`GV#taVBiNd zG(tl4?;okolt_+CqRWmm=j&!=V^NHGWC3~mV!rXyzIo9XAUs>mJy1`Rk^1LTIJ=B9 zl~x!$s0VvxV0v)}Tl_xxk;hxJ**IxK29q@V77^xeix7-6MVLf6wat|>H!I)8uHY>! zww5*P#r?GA=9FknP4cC)Lw%`IA6GvAY>UCw0K<PG=sC=DiMKf_ljEt6LAg*as7_dyt)>u3A4bmo*)fjcQK+1|+*yEaR_W4Gl+ zK|#@7X0EuypL7->sIAz&Cu`W($|_Xhgr_#NT1 ziObrTFT1l;>4u03*}+;Em)Kg&j{(PMYK?DPl2!$KI=-_j$QQ5Jw>7Vo@u<@Kxma=r2dlYJtFYx>Z# zR_J^Yp@)RGSZw0^Pzq51HZ6KW0}r1@G`TVJ$vGy{lJG@^Af<95X_+(Kydg!Uss#ZH z{<1o8D5gHsgYas6>HX?j%50`o{cOQ7hDEXIb-Edu{(L!0=()&Xpw9QM29iq`aKEGM z|lDDbK`_n04e}0{&YHV@`NPL%Ws-Unr-KAb}S=JXP(N)uuqp6w!`kl z#X%CoN_VCq`<3?&tWfbMd9ok)86~w@)tpcr&d;jV>P>!YRN4ynYb8?gJC|5}w7#@C z6sjFiMAS9@o_KJzU2RjQK%B$Cpb~f_X!C; zv9&-3bohW)w;d6i>~Ir^T*S>5RG-#9kU`ciTQuR|zfjlfCK^l6NB&SH5$BUC)e5gh zBJjHrh&mVXa-snVG#9X;1ve|)BgEQtm|5S?Xtw)Acpuud(0;%yQ^DM=9iAOR40e8Z zb_>TgC(oe~YMABEW5}Ar*0_v`V}Q6x(4%1dOPQTQ`g3Kc4Ej?0zJ1A7RPJF2BFaqMaIUtYi)eRB{b&tt5BbBi;-Ot%3Y?xfPSC6&+Kn)3q|zoyV`)58L~W1G9gm) zCYkc9su$)m;!sV>ZTFz?W~OE(a5VCv1KHXokr8}rHG`1uXk12FFHTldvW}po*J_a-;GU1ZLT5T8(0>a$~?P)D_K$guWVSNek?C-~b zgN}l2{#Ih1%hQ4x{prr@G0Wd(e!>S-d=x8qnPk**jJX|dI&CAIh}l~R6W1Tz!riX% z<)n65F-e?)h)j_v*LBw&X_~5K9tDq;9HA7=c(`Ok#x&w()ekH9&B!ET(iegI*BTcL z;LXl)drxffLTj9}v4|g>$k_uf_eSC!U(P?rfcyh4q$9d+vI2i$XfG6+cDmHD z)lbVXa7kl%Q(3ACX?E@~cYk3OVKPp>KXCf7L0QKc^+>{SMw*D|s;lj*sZqo;Zj*|z7yDmpJTw_?i< zjj>|-k`DUX6rW-AfgRG#=)3T#K}Wo#~G4uM<> z&`u4vcPu<4@%Pa1#t;$4XLz;L@ffw$7og_N%|z*ozY~Ep09{Ebn`oz$~w05_e#!h%^cV^$HLwX>30g#y9nn2vYP%c|p8GUrRcmHXxjmnZJ4ry^fb*sV6fY{!65Ox z562ie>*nGuPMf1^cQrKmKBoS%HQ_URyz|425Zsl7xL<0bB0x1YpfvVcKOo?)>u>42 z0QZV&ny5arl_z}b&*KPio6aYsjZRjgoL+kkZ*c0E#k=JHk#PKc5pdODWe?T=^fngD zm9`{n^GHWtw)2f_2W#-st%bIFh+!f86gUo}PF#Xq(S|VO$wL|H9zV4ncqX~nve3t9K7&PTVFgr__8}58#T_$;Wp5GBq+ad zchOnrKCQCOqw$QG-WkcAiOrvisKbMsw0Y&`>b~NKOo`l#VWu0LZ7yPzrcS5dSpz7($ltPhj);Qu!8$P9{F5ltnA$Nfx9O@xI3C8kl6k7)DOcYxl8-; zu@3i?#SJ(;`1IjDB?;+-m)hj|_N7*X0LhW`VFTmJ>vBT(onqVCcJwUupXlC};D7u3 zl!1H^3h{5i0~G$@Xv{8L^!uUU-rX1M8_5n$yc$Q5=O%#OiiV{jHw*Lk)?g2@B1oPV z6-VPjreRea0SeVC%W;tBw0N9N>SzLi6&2z-?>MnGL_nA>GE?TlpFbb-eWiS{=FzSw zePOnTJAD(;lO|ct-+M+%a@VDcqG32tWRa8~^I~>-;%c*|LYEH)H*M7%br@IiQ8GW- z_tpy+>t-WB9}8|lNz)J;dGzesUA|3U(;+nMut&f2b%l^ON`moR^+vy#7UUZUN*ds( z`JsbA{fWFZ+>@R0XyqdZSVKLM_7WG)fAT7wIenC06)nq@qiuuLl{b5yOtGV&m$v=v zE_N`2e8u|)Z1F6~#SLkbk#Wl<$>rlF=gP__l!>k|QqjpGZd=F zUstMp7z7X4=}irb*J%|QtP!$QoXMceN0pH>16-S)*`yi6rB|r&*q>R{LXUvR}+uw&*ZHi$^m21Ltg0M@sM22fiO3%mrF4$@(89lD8bn5YG z3q|h*VV7SUICDBtNhny!uNLJ4S?bvdtLAA{+D=>Sg~;Eri12-Oo?R(f@#eLvXe-Yk zB5C24a>z{^ymRB>t^jHH$X!{uwLI!grX?3%+w2)wXioww=gym=NbLqZCEUX_a*>EG zn0F^v&F+o59%Ms!*y;|?4ug1H3C57;@G#F44{~+%r}FRoEK&?nbhciT^>B&E)ZNgx z<-~)R2;_D~0Epp-V)&`(McyM> zvnyh)&b~g8@{9XVq?spvcarap-}AAQxgJZ2_BXgwnt#RfqQHOtc|Cn77I8bO) zG)r-JEUg6_uO?2DI_K3z$F zwx2w5NY)gi{UoQ*=(iaGSh7@pRu$~8QCO!o8fQ8dIAb)lgL_!NV_Hx(;ZlHH#ZI|(&D`-_O7f#C$ugX03`A01v54pyPkwQ8{*gXkjkK5-IYAs*yIeLrFMLN{ zPb|W8F)v?#<7NhqtgqkJKvwlaKE~AE_|eT3#v`QKu<7Jr|JHh3R$9%z6Ae*k+dz7~}|TNlxE?m)>l zYcee19{I%B@UMS@WodrEj~js~6@p(>;`qu36FruI^7U|QxhMa~GiI!M&t5z|@tG<+ zM|Sv~e~0|wik|#JoA{vKdQx7Bf{G-?DzKqHv`ZzeYGFZ~^iiTx$V#l8ds{3+FN;;k0;Ao|3j3W| zSmzB?Z+nRIdHXDgGqF_0OI%yAUd$J{IcWP^ z?Yfl-#wYN__dHFb9eQRn8rO4WF7ZGT;GpZ9pCNN1n|(jH;PPVMJK=_O$y3GJSsQZM zz#C1xwts%tE?wsCa;sY6eoLN+iwrw0m%GL!K45>XVSlxvTprCxWy9{O_Y~@XNm6@= z4xBNw`=>Ne1D2BtT|fuPIV}7Onc^$*dTB3h;gCy~-PpQwXHpG(D{TOD{;Z_MYj0@B zw>sf&TUx7lsN$m%eSs@C<=Dv+>2l%q?YrN0E-<37tK5xH-jn22ohFq2xI6j@nKQ%N zway{;;uC83yU8Bt6=dG^-{sHNE2Kh~@)rHyKZ?B?sMr1gbm3aEqr4bI$L8PBj|9~~ z!P?#qGrsIM#*=_eV9kL%#;8o&A{<%RAdhtw{|f_$ypE)q1n9T^=9>fNqmLoO~F7={Aqo~GrrmJLXoo?P|ybh z{t-C>8oQ-b<99Ej(&a zGHrlhS7M@phhqnGA1jIdan^lTq)$b~>Vl)_eLdM%+ep?xiU=cao?I(h>M`9^1cH+& z_~^Whf!RW$3y8PfinogO*;T|_(5hMZoU*yrdb(5H!uSOAC~&(YabNK0G{mKE^&lU8+fLl zyGs~AZ4af;-w=stHG`8q4O}&o-Wtf14Qyk8#0BNzw#YuXeIPThbp6yW|G?3lh>OZ3 zV0kLfM1;VNlG;fNGU?iK)w>{K84qbGYmSM&VB|6b-Zt6#SsBeSDaZ#2FN)kEY-ofr zPoinu4c?yE`@?Ilex^1MlfBlw0yo+{vLS3nk+pMNBUA>SpH5U1>CY6v;bu{Axiq$b z-ZHTaqqAmO5$asHP9H*(n|t4|NG`iHWDqEn{g_4FY?gD5tJdxe#MiiE(|9rAu>l*d zumX#(_){-Z^J=x3YrWO(Em#S(x}kS}*i#C6(${_dBu_NoQP6%rcZKK;-47Z=xkE}a z@6L0E(=@mA!$UuJ3|xP+wyGt>B2vbBHLhvSocFcHK78w^NM-wTycumV7gl8d4{@QE zE<;(>o`h;eSd*SoS;`A`A0iTFsNcS%T>TWFAFBdy-p7zSjSvpYSQ>+7mNRu(a+;?A zRIuAE7H~hHcr)_1W`Oi28K#D!p6ERWB;pw2!8HHRs0WWXZ}x!x6zi}2&C#bjn(s4U zJ?fO^;6IwR!Y#=qZ3WCSpfr-p4UZYk7A?&=&aJ<>-+-G7(5Z%`0-efB$g)f=wTNwN z4Gcwp`Q0V|P|BxF|EpQkNymUQ8apqMpQle9iSDx#Oxj=t+kIBaGR9IjzL!QO)Ey-& zMoCj-2F}SftHO6_hFg;F7|>>6YKFV5J9)irHS+X1_DKe#J4W~ zNhVrlvr^^zq&VNITJGAPFJ2gGn6;2vI=mG)p)A)>N|yT0S!#iYOLBo3PbPdis?W}r z!$2jxA-80p@I^)xPEWGZ%KBOlA{dKijBo6X$Y3>npzlAGhMNRO)qqoB-+z+ zHq}*+tmGu1YklHloE5_Ic;<^ikv;tFm;7Dr%wIp@=&X>ULYx}TupfPfTE(m8B{6)XLQefhU3CC{GHco^ zPe4z*8`QKZ#f^#G*Pbm1#ztyhD|Yk2N;p!BZhm!m`?8T>dc=ncwrQEn(mei0ojik1 zF&X10Hv5f!suqS)&{>XPU)UhMUAR88JatxUcS=m<83e zosOGTRfVNqjb=l>IN4LO?cw}WOg7c4lcT@I&fkQuv+O8}S+MxciQlJbOpV`&-)Nsg zjAp-9B*KYvMsltw1hd-a*iFQttX%kJc2sbKK84{vP8G^WKNLhx7cY_OiAH(Mgfzrk z)Idj#cOUZ3k2>hJm{iJ6)W%ZLwX?^7`1?8M8=s!IZDRtCnJo_w-s@jkZ1#^L-S3{YKWB$~2^fK*nN`dOx4?8#)fzClcowradb!*_@Y310FPQ z)$TH11L0Y=%FC1_Kfvte&yKHg&S&mqQA(v-GShX7pX)X5sU0H_Q7}$to+rWy-RC)+UX3ShQ+(^N_7y)&I7W7sCyi zI6D65?3fqyjuW!J$~hBs>a<*cS5kZ8xAj{dT~Bjto<*}Ri>vBM_($T-Kiqmcc;l43 zf@U%TG&Dq8hR_%o^36Yj@rb2kz+tzLhFU+v@LP)I2t*wZJDvNtZRFXlr0_AP->$=o z9i?`8R`r3hNXVYxhcHEE9Yz19!5QKg z|JiInqOK{L7(9mt2TWp2cwxd4MN_gwpF|M9i1#$5~=ULKqFNa7z zC|l@MX5~|ee~x1gVhMj@Zg|gQ@4@OvN97OyOg!*|!UDFsdVuk!TO)4bec~ZFm*ky! z21JsxJQWu?H0ST8PnOV0R8!Mbog%y~_pF;fd87ffdhxs^(aSyS7+@r~^`f{5>0;vj zBq*JA#UR(eY{E4G$jho5#krVq|C@1tUo{Q(SZCt!_rF=S_JXg6J(f-1#vi|NoSF&0 zplts>J<{{KrP}6sQjo{f@{dTkK-F*VqSW3;Tz=U9=Q}IaDW^S>&w9 z_1!FP_?{DpP>rxSNqk^2p2Jvpaqe-8;gVoJ+>PyJ&cpW=mudwRjrmv--@c)Fe=@Za zHfV?6^*TMZM$JphXOf9c$~dQtNB@)z8QDLe=r_6Yyu!>0HWpJq_QYWToT>YaJC ze2J*Vdp8H7BeU%9k#}a%aPKVgq$+(Zt$JX|pC^#l*`f!N!Mmz%0&b$Gd*k;Q=qQ zsO-^t$V-pxTb`=Xd80O;zBDgAO%mYaJRk1uEZNX?sh77js=7+qWQM#Tv8&Q)m41tr zL+8Gr@N3byQqlW7JJ4gmash4W=I3L;bvR@Xa@ouI@y_7y*MZsfVdFO%lcYP{-wCTO z{Zq9?@n&AIdYJyeLDEd~e^7MZ;cUKb7^YfUEn1~jd+$-ZHnl0S)t+tb)ZPizT19NN zsa>l^ZAn{u)rcLWikPv9B;xnw`@@mH%FlG(hqZ~{ zCT zp}VA~^lb|ftGta(Z`P9y|?d3bUTTyRqtDWF=J0@cIBpK;s+=iK-POt-@MU@=l^JK8D;@}mT_;J zcS7nd+$uDsW{b+^)#l{00OOZ#YKV5|Ql

h0ou~2OB7X&k=fh-vxiB^8Y{YHCoS<00r;f-S8A$jqedjGZ|0-Wr!`ARRcn5Rqb=I>-4#3bDgx=s29eF4E0)kY3?Idi&`6V$gV< z<+YvlmIRfi^7##Gl((@#9Q;h~`#Ooa)S=PQ_ov4`bu9FaM9kpv6i7`c#F%)!OgohNT@Pds4ETc^KjM z=O|pcmB2|1SOSSn19UX<0BG1NgC#bAn{U$AQY;9h@c&5GUibdQ5?JMC$U9l4bIP$a4%WnAqOfFb)<$`3(O!;ZVbVl77(~M&p^ez z>LXWY*zCR=i^@FYWs~v303L7lt~h9iumjtU6MIIk3|ImTw-KRepy7WcN#d9Pk#O}P zVPx+ zF`fB=v0D#_kuvDAG5W|>;M9iO#ZUXC_AuVG`i0PDp2D(?7@fj_Hl*DEPy0M_G|ndR zJBuu05!7?X2=hiSl?Kp{-#D@mdS5P%J^&S;Ro=G8vp*A5Jz*1cbdWOh71-gYFo2#a zdd5?}Y*Ou26mqD#aOq(GM!Sv`pey0>s?B2Fp~ zJiZum=ik$u_~a}_?}G?pTgu8%Me;mP`x;8pe4qUM=Y74Yqm657mp>iAwLgyz0bZQv z%gIejiWK-zU7t_MiI1(KvUu}Jmy3h(!tqdjA;;h+e@LCn1C_#q`Z3bj^2XyApgDHp zGE^eW`_(tqBHMH-zDJy^zfBQ7AIiOPEe}7_ZE6Sqw}AUwQvH&8C^Ss?BXjgs^G{lI24fkvMajR-Ne(r4D9pQ@?nJ;KT#uqF#=d) zN*S;mCHX{ljWUc1Q#CepXMVJfyzhJU;uHpXIBc=5_$jdcMKvo+_r-yBub+#H{@kk% zf?-oM#cVkd(d*uuzF-xm^6KG^}4P#e`Nz1FAZZTo>M`;knnUqk~D*Lw@cHyXdxiekJi|`sE(9 zYJ_w}`NBQFniz{!U9Sd#rjpX#GYpcQls&37bBv?RqG)x8!ql)nmGc9wO&o7I+Nl;6tRM0kB!~_JbYAdT0N%W(fCncqf$6ha( z`VeG~*%tbQ_R3SkKYUHb(X@O&(whyR=`?G{v@qAxMtvZu2R{ri&iz>yiQ|1p6<^?nhc@dnzbD z0_F5{ML&__&Ti4$G2eZBN7lWSb|B;IS%q-kSN`!+$hjj0oUQdDIF&)_O5-^?C}I)@ zg)t+ad4NLlgcKCKh4sJwsNY{xu3~5_SlNB~%;zm!tm0vUX1_3__#PQUqER)7G(X?1M?OXsp}xM&MgxhtN-GlhZ$Q{^2tI|8J<`nJ;R?AQ}$S-@^arT79`cKExhXbEJYb<2T!Ydl`E@fZpEEp#q z4%^vE&wcCaqv_wR960V2AHJJa9D-Mbu{_fv|11!@jG7$7S$uw1H{MkQc~hfX?Vh+0 z)Yc`1E11tlS9t0&y9c^cwH1@-=Vp~(JQPnhx7s&+sag`;i1y=Pn0~yEiEg$j^X&3! z3rjM#MeO)5ul5Ioe;)JJ>Km!yDQndY-Fm%Y8D}^fD755y-fOAa$jQ%)HCbFaNi{@G z@+M3bzrXf-2Y&rQy)m?Q-x4SGWiaiwOw*oa%>#h)*AuI~_Dk#4!z|^`zBNeOo`D%!nRpE*zr=K!|1k@(&>KgPBrvWV93!jTClpYKBCdP+< zmWSt@&lq$9^gU(ZzzYLDlNR_E9BvQKUcG4~h9!Td`m1v!Z1feQ)Y;F6>OX{VX^>e^ z_Z3|as}Q%_Kg~<2sBp86Pq`bg7>JbAXm2I}?PtI0 zio&!27YZ1e6OG?OOfN#lhs~ZWpx~o^kLa|i-jC%7$^fiU!PFMamA8*`HL$O{Fad{9 zz%mm1+W~uJ_8&>csoQ@f+2AjE*F|pEWl!&Ud!xLawq|=Kw(hHs-pO7zkmr={72r#7 zOr+y|={ZzlTz%Yp85$p7(AsZK>dGdn4T?IaR&H-O@htIoLRgJ2EvsKZKI53D6eqTh zWZag)UwWEqtv$n7YrLtpVk_QW|I1qoncEPi;*K?{BO6?|V|b{k_0D;OxoIPz<3@Q6 zlQov|y6Ts>iQ&i3ZTKrnnxQ_g!uenI@53ms{}AJy23B^tW|AWPto^B3^eNWJaU+55 zN&Ko2D<1CWNr(_gr)4!u(T^q$W|o(mb!?G>f5S*TtqZTiBL5?)y;ara%q1_tO4eu+ z0kWD5s;o3hyNw=Mc6&b&|;tRebmy;vw z3-U}1_R1wS)5WyFT$jF@pb@}TA;Hib)@94M#yBuwloG7o|9PX0}z3#^f*nKT}NX>9-t~Xc_Kyr#Lh+( zZD1dOSIUXoEU+jt2nq7)X3xmhUKtJGX+x+06p6_`^A#>Ry*SwRP~1DYy5)Z4?m2PV zEA*G7_nHTOtHTorP`eh`2^^Net27R=hSzS=On%xb_h15dRS-1ZJ}KKJo(++!Fo`cwlmA!-XySoj zuNm##s>k*0@0zA zZ$Kp9BrR@4m2PfiTvjEpiP6ybo}P>^9-V4kHnc^hySEVwAk|1V%E>fmgC|@lb~7b; z{)(^wC5q|1ReSliYm?qC)3Gwb*2y8ADa_v>&il+@Qbg`}b6n~|xsC}m#RO{XAjo-7 zvtHT~CZ~(BLl*y$XtvWIQc>*7K@WNdSU;9vLRHkH&}e65yH6RgD^6Z*EU3o6-2E7N zjdM+HB}ngY*qReLx&CN0uph13dQyJ5*5sDq({V zn>#}gR7$}rOs5e*9jPcQw@qkM2@%8o8XX!N!Lwkge`0~e+7Li;>=B zVnX3`B}?y=9cfgp;!ez4z(L^21|HhYvtAErktvJHO!Nk3^XuQO!@U7f5fT%3>uc3Z zY^0pi5%Wrrcpw`^H7i%&`}YA(T-qbnw_52}E(h3=y)6CDtLdv&&m$S0aTG;e1@7W7 z#|$1h_4O{s>b*kWkw9kV%;1V(-}Lg7Z5Z(EMa@03)8vsFdX?o!{9mq4`rdkXT?fW1 z)|fs7g|&`8uc>v~LKXJ%#Tljs=}Jb)vb$Wgwn%wTgFBkveZ3vL4;3)Zvwk?XVI+fG zE+qY_nP>*Jx^Lzq1iQdDx47&bYM%4+k>tS)Zpl{mgDX?JcqtpG=?L#Ba9BHoi zJD#fjtW}MduKbmgqVb=@i;WYUgB56Kz8pc-{k+<=oO?BytDD8Fi@tUT?4NtXIqc9s zW5&`&`Ndv# zlC8k&?~o|CMsqJZ%~@&Q<=Vzv1ubq4j%Y-cm<40=@Yl_}a|53CabTKV+oTLLV5d=a zMdT2%=z8VYdO~ey(XqQ>&3Zw9vinN*?R>k5)9g$kem?&Qz?^*UDeJ*aHAvVasr-*5 zs%AuIQSWnP;qE0Ux%+V&_IC0BzwYdfiVkvTAdz$;sNQ|pw1g9SC3I+zc&7iBH@0vX zizh>{8=lLRP^Hq!+F=@}9emevt)x5OG4{?Zy-wK-Y?$3|+khPp-*Xr{^dg_>w2z9h zt2Lc3LAOr|NyxhGWsGn8+Rv^1*l#-76i7qWyeiK_1DvLe0$6Uzomyp3o~_0E@L+OFhlI|{31 z*Pycmmxu)Yn!glp8|H8n$>fTJ(LK{XmsvDytil~mv1`8JCyOa{DBI=iqy=5r%Iu#P z=d8ba5_(>-vzMGeFNN4buctktiV@!p(L0480g>5sb2>0}1tFT#h zySSjNvL$mP&AmFb%&I*ut1;)?t(@2M^ZwX}rnyHSH9M6^hs$eb_i`V`Pm%{ocaeW$kRPS!?8| zvIg8a9XM6=dgdIWIfwcV|IM>HO0U0LxK#ZjqquzPfusaf@f3#w)v$@0lU|GO$Q|ki zOJplDXuY6(8n``!pA3yi_ODwdc6)?QBVVT3e-727lDDF-NSVw1NQ--ad||v{PPxfZ zz29-%A&_XodcPoLQ>h!EF(H}M)VY82PL$+Btw zhV!FSkzEuM2r{H)1Ru4dx%8ShK)ZOuZ?|_M{B?!hip#s8Mu(Qf<@6<$RVeM)#7-&Ls_o#kMLceUURJ!6&;x> zpzj-c=RkT1O2W5-k5wG3BKfhIV;*+A#UaaH#vV`FfmQOVyOl#8Q?}5rR`zE`Pc83r z&)>wndh3|bYu%!l(t&&r?9TPJ@|<)Vo%1Qv!nOJ-aFOl7h*su`?^Do)IO%ZxFEjdX zb*1ecO%l79;HOWU#+}`~OD>eOuF`X#7c>v21x|tr(I$P&j%2EZP%*vUZipGKRzKVu z7=Wy}pmNZLXy!^mlr`Py%bVQge-Mb4A^TOUW&`1;8d9T8?=#ldhDR&>c!vyQC->Bb zh8{hNu-oW{b&qB?M!+hSi{Axq33-d@e(>b~2Np%>u|M9kd}-sYubb%Z(wV61#V)4w zS?i?dROBtYcE9SMtpTdGt?jF|r2^x>>lA74>@DULf4Oki)~;qQYHze11 zwzoahcK0j|g`$2h6PzOjQS&H`Za3@aPJvbyxZ)Vw4yJGWgSA(>dku z%UMM|d38|J-k!E1)Xm|<`CnW_cGFsQN_6ma;>2+n);b-wKkYq#%ASw zLi6v$wyVY2q*yf-A4iErHgr8g+SY;~JEy;K3#QHR3j-O{eYB)`Yx}I!KEje!Z=Q^68h7%(QP2^z&*_;jDgV*a)NDB|TZwLFIA68Yu{80Z**9xwoK`kHJjBxO zL(Z#Bw?n>4V>r7OBhFEsmd3Q`{romB9hv_u@Sn;ug#`Im0}zX!Uz%OD8k6PK^`Ps& zaaaBy056`^21_x)!ecQwOwl;gE0J2L9u7CSzLbi!5_!-s;M>o z2TB~Uga5aNnFkK`VM4)6{84NGtWVht7F<01&ZR3*TraOoY-tDvINv+pjvjQC`s(5~4Sd2`(t=jQaQ-|)1`yc#~qtG|^lo2R^2%FrPu&VBI5}_8zq>2U1RMt`HJ?oJ9f3X(XLdzz;2nV$ z8V?|{(RS_9ez0d2l7G%*pt6%@`ZMwz-?gpFYG8tbC}C6p=Og0Q+SAG9QbIUf@Idy; zGN?E>Wo=O;bxS>C;u-~>YLEv9A%b?{gPmI7iZ+V(*B`HE9I*GgLfJ0f1FAMI5tX4B zA7mm$L`)XdWR{AP3I|n0dsVmwv7zNqv@{)LOqlh|e*iOFovh4gAG^4en;Kj(GdbUF zzXaQ+TNn_Q@J$-+4`?h%p!hr@0koPP6Z7SKC-v2*PYTqn1bZ$%J9S;@BbS`EImHi! zJz)`-eO^@7Cfb!@q=wz$mzV+OtWOIb=R06K`M-d?{PD`TUU$RZ8r#V0DV?1~ZepZ$ ziRf#i>C7s9C(Rsg*$6J9S*c;3{=XpQTHciOP`#|Jp&vL)>3x3r>&WiUs!{tBBJELi zJYZn4YaErWj38PFw{7X5TlctJDTuW;rJ=A5yRlvq`@c;DFiK_^pIL}8ep9lGI6gU1 z*m|3?YOa=ZSWS!xfSg3li*7{bGY|Plm7(L|VFrjqO1$pFBX|j-9dAW%taXk+fHD^` zelYyN%UM+sDA!mh3{2p96U8-6zWb>G2{mUec&pM}Z0kMlNhZq;jR03DtK5 z-3f&fW!)b1|LFgLU1v#x8^g}`(;7bO`Psx8l2r(*?i*k(NBJS4>JR2xyG{f3ZqZB< zWtEu#@s&yyzT%ai$9lgDf>luA50bvBwy{6-Ectl%}fT zgjuewc8G0K#j7$VJ(PD_b>o^6G$S=Yapu|d`#N>7xzwmL^qZqal4?c~J= z24E@zq3hopb)SIRnw3WYFz^vV@L#G8-`jx*Stf5iAoM?yabNBWFD60J)%KO54WGF^ zIoH=;mboc`vw@fNYcWG!9}_6v`r_OJ*UBn)E@iC;e?$T++?MU?2g_NqEiWzLItDm$d8*SupG^?MlA`B?4R9sDN}{Kr+B z=#NmsB79NFH2cqQ>_VUJLjl(XS>|yzI;R$!StoYsO z*D50N3$qUOhzX9wcZu9_iE;EbD)-4$Wjp?f7h4WBDjQe|$GI9LC;zDlYTL624fwl` z1jL*Cdlx^!1@M(SpVel#eQaq2qMB5fOFOyt^BPLZJwD?|v$AQa7@Yw6D!y;En0Vm3 z%HXJ9y_wtV8of9`n&g{2n_8zUB}E=1h&p)wFD-%d^0Wprmj zYMD!T$YoXUn7+)f8ko#Y`OR~$WR08GlRl<&b|MU_)qUDJS8?~ z2FWqZ)z{wp_SV<2DJVC~*WcSdIW_B)1*A1JE?e2;*YtjA^+>TuOk~u))%~_u#ghRU ztBZ#Mw97C39?O2Y3lW)|>>kM{CUt)#cC8aT#I(<6_&2f~H@tSK=#Epv45Xq?O0K8? zXqK8d?@hKu|91y%MK2qxjKMAE;zSOpfKRBVVzqvbFz%Dc1;5e;Qp(bYI(?o45mn=j zmRt$MXv}qJS=Ggggrc`U=X;6%=VxijUMiM3D^@>>uh*qZ!#zX!($ONWoj>3lb1uOx z%>*unbgRB41BPxHf7|zhhe~?Yq{(+vFOwK%)i8+!6)AAZpJ&DjDXO2@Xgc$Dz-Nal z;@a-db0(G}F6EQ^ZP9h?u-G-GNwqBQB;+V2ENQ?t)}lNDG$AYZs<(DvSQXi~x!rd| z(Vyz~<`%vo7D)>LYu95Pqk0K8*9 z?jE_Z-SLEM3ES{n2vc`I1xqqBko8%@c_tgM+o9zZ8DqV%PXfF(Ef= zP+`TgEtT4W8ML(*_R-_HwZm@Dzr1aY^d~7SCPItl7xeEm)+tNwuIMP#*|iAwebn~Y z30~U1U>)1|MdIuIt{_fmtL+l>6FYYH^v3u8S=+*x^<3% ziFQ6^nou$7o{?q| zRPr0)P91r0pY(hB&4jc*c-mxW3n3LARCv4nkPnja!utM;VQJ9<4E8g@L6*)r;dUSF zC|o9?araU_rBPU3q$h13hc3Wb+jufYcZPE24R?8Vd9Pa}-c7gY)XiSAD3TRu?w?Nd zhtS&kvyXiSio$?Gw$8?UEZ$87D7c337(7XQ9d8SZ1roxDao+y;^61)PU$w_mkb2K7 zkRvas)s4ebgiG^td`GxGqEy_RIWz3dw;z9{7l%IOd}QpC&|w*>1D)Ev^V}JtK}B7x zGU925vS9CdKGZ2cHl77%t^XDHf-5yWtult}8hsFz)csyl1+l~6s2yEy>tJLV%S~$p zb(nl8_UM%<+H7SV)*pY08A*D6 zulTdXjIcJ3)G>N}y`ZwzR2Z&sa4v7B5-ZvZ2stfaeh^MwhPXIdkW^4Kf;RYQPebiY zZiCrXT9ER+;^!a!zS-`cWmoBD6KU}deEPJO{LIh4J;URgJLGaXPRg!SnSu4t$EQd} z5h;k=5eTf4l#hYVv2DF8Ld`#}{oDJwiP6|XRd@k#nyH*OFRo{KK#-a!V&-G-l-ALr zm|#)K^d4nf6$vJ!5hR69#cP?DI|dfCv#_&Fum=z`pnCpF7)=L_(*H# z(=k@>7F>9(IQf7oVD5O^JE224A&TOp}F&=MQEJm9EKsYH}JCwlAATgMSRM2HK%pTiwFvd4Jq!pCj%B&pfch|Dn<$~P=&qvx5(+$?xmpMsR94)}QDqOwz@iJev-(#Q3_8 zoI~>=J2>!UWdPSiDcz5%A2Ngx%Qr&FWqgY_brfig&gWG2M)ff38&)DU&ZTn7*dFikF)M4Zms#c_H)V)MYy_uz}7#m->ul zRnR^d5gqsK)clloYZB&ow*k2gCqd@Pwyr)-H)1QRP*hHCwk1p?K8Q-E0d~Nz9PxAa zxdr7-b6{h;4T?kQnJ@Sie1y=WGl$g%XN zMsLu#6#O-A%a0 zZTv0f+ysm-4JcyqNjyP3P~Nh``tX!|B7$=F4ym3Vh9a!E(~f8#L~d&D zA*j%L!Zpu#iMUl1i}v`Y=ro1{=@{lcl^TBeLTQisGL-#|GTsz6HpDKMId_;nz8w}= zO8jYGxw-~ZrP0agRq*B?%3zNc8lh?&qyoI%fi)*p$1KlTa?))?+)XI-XoXB@jMw!Z ze6^|3FQ;n+{XKd~=H+0z#nmcg?=_B4=mq}Y2VHaHDhCQ! z2DFyUHg*4P+Ql;al3uWFLADAfb4?H_dEb@FTkiQ#6%Lip4{+tlGH=rMBv7Us$Dfb+ z3VPZup#F%n{Mp($SIQUB*(71{?8N|ch}fR+IYK+Dq}?oiZAIwrx><*NDHUBh;%-?s zP?O63WmN{bU5#nQtS2N_%&PJrUcKlyta&Z2G*m_Bbhg4vYO#(ae=a}CH_o&8V>hl& zu&z=4gtk9=%IIx7uWc^0S-&He*&2NKGu}0MSN7Xo!Ii6COL&Td-VfGX!QXB}Xj=8+ zmNslmI=NzDN-;lQV92AdX-#c}l5HUqZPYz2xVS{HN^@ML}FFoA9WJG5V1p^8{l%<^S!R^ zgYMrB-P!ojCr(nc6N^Y*g}7Ai2`P<^xd*JZ z&x@d%b6p>;45;m{BAOw!wyM+LvaG3-jkNAgvNLn`amBGceH3n)m6X9y@)9ML?U`fo z{=_zHyeOAfor}9gUo)A$);i7TE`ML@qz?>|FZXVcqt_Rtyghwm0rz_Q!L&xosO3kU zX`e)Dy>6twe&%Lf`7oD&>fNlIZ|Hn)8A0WG$VNuR+%~NYO%*sU5)U1k#z_?!%bdCA zSO*r2fs|g;Hl+qmywK+e|Jf|;KA5D+6K|yD^F2D{E7v|3FxVmGX1jRy-tbBP z3OO>;At!t}A_ptEIVo@8UEUB^<#u9cv%DK@d3n=433Pj6>~~UUO6FUm?fl@?A)|oO z%jB*&CN#NZ<^$)l$Ck60g`A$V&C}khba~GafoD;=EV5g$oSf%(ppUMJ>Zf8skbUTP z_XSqXoIfrT;)|YnW2Z_#6_swY|Hu4TZ| zkG~aP9AzUuBi7{Dl)8&dOlDlUx05tJ9RhdLT3}~!N|^2AE0=E|O;4!7d=CLD+YqYv z5A`3(Xq&0hO~N-U==9%_S>7)tPo#vMot5T$oOJhI!cSuJSJH52G)ma@A&{JMK@%#qUz+k*zQkuE14ibZIwBsK>{ z#WZejdObE%j{C8lbD`M|&-;y9s_)5Ae5~nvyDj^B++2p{YycBTwp}8F%T7GWsL2JA zqvwZ1X_LqRf_rE_kxr&9^^>m)o7^6>#hNcnu8%d!UixFHu)V}frv4DMiU3jUk!Ejm z-r<>H>*w(>^X@;QtxAy`#-VQ_f$s-jKWL@Za4X$#)S8_Dh5E7#Z!odcf~SFU`L|oK zhH|&~FT%DT?foEG%MYhU8aio&eYTSM!tJqFi|dhREv%M*)90&ppKt7PbY=e#?yd9J_$`&mWLf%nn{f9?z1} z1H4ZAT`-aNh^w9AF?ny&bF4HVe}_hlQaC)s5=U5?-Gx-f$x?`g&#d1ZklrAX`G)x~ zs`4M4Ip6#F8_r8fRx}rH_iBHhi`Au&l$MSE*w=7{Kt4CufLvia{cNp%5^O6 zW~F243b9mR;cmM#v&Gsd6_9Yu(gUUevUavmc>2bdq0ZQ3hHfCDKO=+{!-&*Mo)5e! zzWpCfBKY}Cy8ib)BCDadowM%;{sjE9isHcMDb}0?5?&>5nCf{0s`}(_`f|l@X>N6^ z0^4PaJydaxhXzXRxUi(fF4+4@%Yci6!Dw!|{3lpgJF=Es2uN*+kajxG|oswMJqON71BQo# z67wBL1=F@A-C@=9=HmfAi{@FOz(pVV^e{-3#EEN1im10gT|_RO!if_U+1K!9Fuslc z%z%SM{!!atZ#WIr>5ir3NEok`v?UzvhsXFxpheyBl!eR zQD{wbo{hZhD(Ys1(ve9u$#O*$EFOyFEYYlK^tnuc&W@JLM48(Fd^^OibBXn%%05;1 zLLVsq|9tzw*_NBw6pO4UaSu8^Ul^C{U!MHP+YfI_#yne{a8-0o16X(^Y_rZm7P1QTg;vHi?X^HPR|5eDda*VU6WKT3gHoAlkU_>!Mp87kBfntx zKQ(g>(~L}xFTyrC7um32gZ&%(jlSJK6zw!e)l>&y&)oR1h`x)y(}$*GZEPor^5CB| zmAO-wMm@gnV`CHNn;>Kya33!J2*>zHXey#vulXE zlinu~SqeezhamMFLl_v6vgE0%Is7TRl}_Q&Owny-bI9s169ik>4c#S!A)@57%W0{J zrqYee5c&LXBC*AKaa+-58$&eE$K`&{Z`edpe1l(4p8OntbZnX?a1wMwMz4FwvoUOz z7;u7wMGxFF{e!qf`p#EfB!3qZ$>v_kPdI8Hy8?cgzdU=DuJZArLIfl^Xipqv@-cF; zhA78ogZO;GmSi^U@sP}XJTjj7@-!et4Y3AWKzb$IJ5$d>w)L$+`$H~6+DGk1J49+B1yzh|*Z&zDi?7WqkLcZGPRUjXP|;3=DM^sROUnZaF&j-=K=?@lp@L3c1xe8MuHmh3AS_chHR##hsakTZM`w(nwT<>@Oz}DxN*L zT2a|SboRv^db;v|h2N+E@L4lVNxu(>(hWZwzcPz%yHN;6t7`G(?lKGmihPz?eRKu2dtAqtq|XMG;~G7xMV z%F2)$zVMY&bDwzWn;JUnQ7;D>KVBV5piuuuq17N5?Yq`XR8P&s)RQ8FN~m{Lhkqy! zIsNc7{86Qc8IDmOF-lSzVIr_#4#_pms06ObFEC1N4R@^P8qVu!49hm}$ow?G}r z6{mK_qNN>Z)5#Kqjhtg8?+~y?dd!yuArG<64VV-1Lg*pPP|N1vt^xf|qnTc9z)m<^ zKq5zEF%?9GK`+z?Is66e{akwF5@=p|QKOKO)qwZAB!o1e?9IL)G)}v?Jtn!6N*}2T z|Jf82OupfjdSE>$4gf$GJ3CTrUc z(;5&INe;ZncU9Y^I+yc7ai^9ZRqW}3lYlnwcZi`^k1_On{CdLG(d3saxk`zTT9Qp< zXoYKJK^G`D%t;ky5v=k#W$t8M#^}Ob5?~Au3OVlf}5uw*qet{oyYGk=T7W# zzu8CGpJ|fP=zNRRFW;@ZY*7z@|7K+v_v`cEv8m?LPB)9*)qtflj1ERsiSmA<-hSNo zkDkx{UzE%>Xs95x>Q&KHYm@nBL-WQ&GWxE*m*1NqM!DmL{CzI!Kkjn!J&cDYQTvE} z{$qdhf?N057_KMokibd9d;dYQ)OEI0TCE}XbauWe{{-Y67rEgxa?Lx3g@W9sVYFQ0 zqPDkg>Iz7Vrpqj-)pQIGLRn%xbu#V7xp{2LTsi@D@wYL8W(-EZ9vTX9hzLu6&ZN3O zb$aJz5z&sHN)aq7$r&SaI@sa8nK*xUjk1=fLr{s|hw@ChfD>S`tSNZ6HnK6cz|dKr z3RhS}rK$h%H0&tnhdX3$Y;E$wGe0}!y$dgjp;Mo}e|%aieGNgL+>vSdhPuwPzu=>9 za-6IJua)_b)1`9GsaC-P?c!b5ozc^Z?BXh&XEW%-@@@KwmZtLTBQG+cR1nv3s=q92 z(YWVc`;)MYyG484*A)H;ud1SrvG$CxdH70pp-BC+kMad=#uLo&$k%!q+HNO3nq^vo z+tKV|Lt{>#0goVwB)%CZ_@F0yl6w!Dk6-D>vIi{hqayG zXg`Xx8RGMi+hVBV{PXTp%drV}v6`T!c-PJjZ;LrOf-^7V(?rhPMtkm;ux!=xpy_K{ zhFt0cZS&G;mrt}xK_P7{a^d*yILl8&X=1s~zkhTu007Cz;FYvvP^^2{d)$W+#rHxj z$JzqnY8%s98@y0+l@a6u@!23P%0eh(4?1Ve>rrMv2dB`BLY zWlt5n!6^+0^~UUCcWRC)t8=73_BAnn`Az)04HzxPzE*aeR;=ZE?J4WOvKuB`ad5ri zUo#T!SvBOC7U`&QJRZwxN&1oV*%kHO*M(+&Z<1fCYI7)P_|Vdc)2|2@K9Jkybi$HjJzGZKJCsK&8g z>%*HrG?F`)M_U2ig^a7$BbCj%wTlj!YC!sniP~HdbDej!qFV-X1bfAhH@ozlI#&S_ zN1_yNE(OO!(%y{BSWr3v%UzzNsK64xKiWI!coJ5qyJ%^CvJ&P+71VHkEAzN9VT`ol z)#KOPma2wx^!uyW%hI1IXA+k<7SWlB4;Q?ii3I5j-r`108w zM}z=ZFVgrC{R##koLq)zWGjZP7zT!s?fRmWw|m{#Paw-hL@?hX00%Opw%hOAIgX4z zP?_wLi7I+ZA0Jw7L7}o)46F2CZ6r(|R=p|1ed@VmNfe?o!ANi%` zWaJE-MFra1&J0RepS!;ubo4#(x3*ryTm;Rxiz*Wp8s>dGdC(pIsxN4rG){nEC239R z1@Vl?e_eb2c0&#sYzN6o0hYqH**NR3V`K0q=!GiStK}dHOtaFa#As-!ia~%h@n+o< z_%AA&Rm}ERbuabaK80*kppnpDS;R4Z(A5b=k^hXkno0{jeNXRD5O92CJDja#awZ^i!h}s6}t4G~_!bQ@2TRAUX z60?hBv52Q4f>+ejBLM2Sh^iOg=Q45kK!y%APc2^-it_9)po>e63ZOQ(Q_gVK&Z6uo zn@wiv7L`%6S7zr`t6#JWWzGz|$s)LZxSJBM>9rjm62zLC4I(6&qp@qF(uNS&dXQD3JY{@_;#-?BB8 zV3$*TP8Q}eqs{P^L=-7nv>N6}J2LKP&)}yzPJUj3CB^kN`<}=*r6w=dx`ZXwGp64w zdG_|g031GWy-}U{!N|ZefmMYokML?-3*AwjF^z>_bEzVTcjfLIQJp?#lc`s>*``65 z^yJL+Ws#6n?fplxDY|Cg#CBprg}>(VJ}WyY{Ci)^ZbR*SC7kpo;7^jz#@AUQIaLJ) zXD=EV2zTHq4zHC{uF{&RfA$<%S&yK{8pONbH_y!&rkyxhlP;#L{q8li!Ms3^+Lus& zyr8R4SQpH(6(bfV&92}j{rRjOgAMQvDT=KPTi{!T(wSRf81&ik3w}r>`~8*ESDcAa zmL)5X+owN2mlv?j6CFAsfVZJ4VRv^14_~K;GF}l_dV&TZ2I;5rYzK{d(ltMm33&d) zI;!vs5(2|x_X5cj&bW4n9nO2^i?F1%+FR};++H|A>HBi2C?^L%ZT6fE@`@b7<1$lS zgXoXI?4r|TK8jo4-0DrhULv^cOgD{>5#&sy)$?-4`Vr7(KzUJTyOI}N=_V+YLg~1wu?SJAy}~*dvIsC`_(hSu$Pyk@$A6i zZ#)_6CyODbgT-3L>>=%&n?4V(J;vH65i8W0gizb|C3Vi`&wrVN=qmAKM_Gl4vaylK zneS-hjVmD0B02mpn8M{+QDt(Ay*ke<8G5z=Wwo7}lT}DVMAn?*j~UH}N>|Pi zE0&FrR|zEa%=6Nk)cvNL+B4xKew+!XrW%VT{xh+?#Lm(32&rCqP&NCtY9x7nG-gBe z0zd0oPriW|@>yf{YqdE4ka`e|p33M2e|O~b&Rx7iPN+R{DDiGrYttCSax-DrxtZEl ziOEM*AJ8iS)vAj~ci^)QxD5yAyfoDQs`EbpB|+N0v0YFyFWLjJ6!-D3dVdTCtA0uk zL%Be>p*=R=@a^whs$hH-E|q+C>##LD;y|KDG}hLa$Tx3cwMU8Z8xu~MS`z6Osh}Hg zy=zYo3<`mfdXD4llic?n;+WpbfpPYYNHp!Sr}4_U^Y2O(=~MK4g+5+66+<|!PmafN zTKEul9Wg4VL8$LvAC}*%+XASa{6%YD>Oar6N8XoH+rquN_`^w4dUoz3)6Yo8{Gp`}6Z+Mh_;qY%t;SC5e+ z+r4Ufe-VPhNdsh~&c17d$X-M9$DVFLYkw#CN6a2zbs|C}Z8uH0n%*8TQh5!<&jh4p zU*gz~qX%0f4L(VMzYTm&!|g4Yz?MJ{C;9mK*IBsp7n$|_Liug&-^?1l#<_bPqM2I3 zwOhNZhtst0UQevsN~YwABS{>}i9*MAJH0kBgA6eWs6a>kDET@3HfX(H^7qRVO>2EW z)fWE%Tf9i_E^TgZVz5uBokrf)3TW*N*B75vxpOSZ8*y|U>ywe?RcGSoX`#azUo!d^ z@^|uQRX>|L6k4+)XjXGisLd^{zpXO7Mo0v2Y-Re@gGq9Tc(f{#si+lFOfqBr)Q|9( z?OpC>mNSlc%3n-PzgV;%F5SmG&o}PmlqH$DzY|+E&8tu8lpHPp0MHs}lqxBVs}-SP zS`7@a*VHz8{5pwIp8o)U#p#-rm4%I@Q$j8yw2IgFx_pSqEwl?%yOvm+)DFscy2!k^ zrN9N1Nf;%DBn}a~kquEW^&QVp^ItSu4Mto0F>-AomOFh?JHXcSMHEF*;Sfz6g|3!G z;*u6AHN;>F0;J_U5-^lN=UmyxF`!R7t-6l)&3<`?-p1-NZEq?-mbRktg2`mZeB3R!G{*8`zJNi z*zL{Rc#8%2Yt2F$njM5hNe)aTdA(!E z4?LQb7N1zSmIsw0u#4*sQr6^66yB|k!v>66eOR&O8+xFv0yic7l>(U(P{hG;IL7jGiHu8%YPHVtnqG0iXxwdYPCm8QcS1Z74;^=x|d z^KkR{vW3F^L#F(>UyB$6`V2ut$bBM!!#AFPAsYHTh?#$W25`dKbM{-Cgxo z`ddoWAXF@`9KnkPxrvKS2n;RcFUyFIPf>U}QFt?sTO7!-!$sG4a^ml*_k2749m>*Q zMLaV{cS(IXOlsqT6=^vr;cpn+h>aA`sWt3!22~Ob5?N97n3I1u$6de@D2#O*co?;*KkwQXPBD7I!*MuRf8Z`bIrZ&p)EMeN0?Q6@U|{YPhJ<>h#eP z5}7;_=svGH?myD#3()9wG0BYK1bDYVo2ZX}L3EV)FAt6}_aW@~be2%M4;BE()Lo>17fII^lu6x!Jz{yKiTc zh1x;@nPMQy_r8X{`{mIW{{T3d`JHw7d->z!ZDn;?VgCRLdF#viWY@N~O{gvIk0sUK zlwi|sIaKmzBA z52n5TSTV?;a!+lINGI;_`5ztgp6xStw?}W;!X^q^i3gVQVk^w+NA!1n&R z+vxt6N1y5`l!B_?FV~w`eIdj=-fQNitP+2!)%{-L!a z2dB!XJeRcV^HIO&Jr)h{Z_D&PX4Dt=&q{9RWAoqJ`sZEP2J88y<@;1rkG+BFQU3m$ zeWH8j?@_#+ZYlsC_tF0V^N)~!rpSAG;)0d0P5W*JZGE4kocqz7KdVX2YT9zb&_@+MP}j z9Y6C`g88>h^3iKn5&EAh=uref$ zc3ezy0*OEiYE;k~9gk0-W;Xx;Y}_PGqV3}9V zx0xrCnS<%N>cp&fnZ25)$LaRXcoi=vG=7F@Xa!^M@u~bq)cIylD1*^@zVrV8oPIQp zA=Bbt!{6x5=VhMc7wHd@YSKsnq4c4q{k(Ibm2r>iAH89@^LpIYm-AU%Bo`4Q7#Irf zL8iwXapD9MwKrr3hhV{f!}`$_Yv>1w;@f{(Wr7i|Zark~Z250gZJPQ&`4)Hleej5m z^wj&eL0@?`@^~CI`c&^whx+uxD8{!tBu61NPoMt)FubXEWobLC>v6;qKm}?CS{?VM zYV}Zofe+XK0{zRoT8!G<* zzT^5Ty}OTW>3b`Daqn?*@~eF@80k;;{rl%f&Bq9ppzlxBimjMc4&d$df0@Lwko4@r z^+-c7>UXcx_wI2V+&qHV?5I?VbqA;P_RCyzVA1BF)$VuS+>fK?aQSSGd!Xb_pzmLP z{rc^>$C9NJ!_1OLZj}B$_z_)tp+sd*#n^T2{W=^cnvPqx)2IM-9^dEFBkoF7b3J+< z{{TOxo;Z2?*xC3b@*Yf0cK7z}^R6WoK|p{%&++!(0!UDGuhIB>dvwIp9;!o#H?RX<05 z_&TS_II~c+so%Jzck8!}a z;CN(fX1VjS$H)YpzfbwoAud(bfKsI!ey8x?DnDy3T$Mnm1HROz#M63v9IGJP+}R!W zOdzukpzYL??f~dMM<~79fE`hQ7)TT#F5l4P2nS->5lv2c0;HNSvdhhohgYn5)R0%!)N8fM8nHg-QLAI&s{YLfi$R0{JK{+D7 zK;N*Z(kcFbDA5t$nhD(u^#E(c%SVD5~?p+&{wT@+ix1v zYW%V!fR!=;>r>jBik`mPWJ$Gf6#8mt4&OfgP6N23$z4x`pP+jW421bI7tzE}jrZ`a zN6decLC8kp#@gyd2i!b6Q>G2LN|Ca|vkslQ@Ar7*8zaeHJ-Qli;a_e3Sq?4JTfCqC za${N0Jh%SE4;sg8zCd=Q_U>$Jht|_c!n62WSFcx71kLi zEUzj%mGvrFixL!24Cqe4a^_t8N7ZHZ-{oJGwLN}qJ4n+~`^-8u=BpK&J;lUuO%?r& zKU%R#Zct2ZEbVUNcqSp$o<~yrsX-lqqup-G5HgSv+A3r80^2|DZi8hY# zYEangR@&yfa4v z#>xpc!-9&DU4BFAAfDjmiOY+hqXWQYmjK=URXux{LKwXRAz9^E9SU-}B$`%$ZAxY&tR1;KOk1Bf z(Z81rXIq&GYwIMI+6nEA`}4PZriIdB1CumH)vifN4G^&l%B4v#qHkv~Tz&7le3hhL zNf4XX)IZSgY!gkpp5bLzy|$hiucEk%_g6A~ZsOF5g96bp4pmT-n=Ldz^`Ds+UFN>? z)0;-8DdF(rK=6`4+QGW-<@WODvL9a4?e4uDLB6$bsU_X~+I{_%*ZK~rYo}g3R#RME zG_n0w`^%b?b3|pFtiVjIMN)HOA&N$T5tzE8w#3&yT|qm#u0C-j7|0HUN+v^ntN4cC z4(|8Ve~|uciuUhKwbq2v#Xg+`Dz`JB`i1q75gRswNQAdhUrh1Yqby)Vw&FQs1)^ip zc68)p7-X^N9M1MO`+0mfdA`%caO0LtCy3tQ17;_YByU2!Lz%k1kCcn zyc*|w@Pl6+`JQ*Rz1vCiGTe!+|7@j@jPn8 zN5_j3u<@cshY=fJUhmiB-w|Ndis${GrSV_<=Pj+zn!hP#lT8|2I@XDMEc!M6s|C!q z`ft}G`lg`_F9eqJTHI?e$Zg@Dl6q|~5I`(OCbNcMPG+N2N$x$zrGd=3nlUKKLIa9j z-SxlN{!xEEH18mglWBS|zVj`vx2Z{EIcR3o^%T09-tK)>^!e|s^=~j%-QqWq&mD~L zSud#1D>EEOWsb(j2pvw<%n`8P`NzJ4k*bNG5R6A1f;dHQTiN>n^4;-_H&c%(|tu&A67{dzf_D^$^kAK_raxOD8U2RTyVNGRk;KxSo~B zbKB=%7ekv6g?~8p^WUHB+5Ncx0M0$@7hYrhg8Z7-FHG%usD52}Zd<9ZCiSjvZhoSk zwDULji6L!@u`Hxgq;7d#PBD*BJY$e0=knB~NaXb<8`JfV^A#s4lSxgjBC09qDP8wH ze;VP3l0tV1@iC2scOD+!O*5SBL(KCo<3cEa8TN!KW2bKa0CxGIz)usst-cR@^3v@c zJO{At)9%i;q->Jgt@@7(M<4fh$m z)K?Miby&Fv(;xGXw)MJl2Ig<0pdU_deVzp5mG_2u&DHa&evs)A5n&(uA8hnUe{|s< zerfy(TCa#Bzkc=0u^&(@Nn@JTv+#7GGzZ?G@4w3~$qN)h1gmj&^Bc=smJ1T2l~!Ul zJo=XeLAKl4L`yRCW@_w<%6jBwm`_uap5B4YhydI&-CeW3pH{4uz(Iag-a}j4y8i&nOu%jaS+4%spp}AeotFf1Q~I!B(ud`__WUxO zkiCO!b{6QZNMe5a^!u|M!lkz})tHdzpIZ-2ekxD_Pjl06yE8G%ho3g16IPB_9cn(0 ze8`Nz=eR}pteuM^6XDnV_ohN}v1J`zajp=>=ytC373zXY|xfAB*;`#yV#jF4l zwRb$bZa$BvF(Pc9>vG3?H?vb%_Ugm$uU}!A2KaVU&G$d#38F?n%3ihq06p_}*`IBo zngRMN<%_XmW0CerV~q=V73o@Z&W>>;34zFN#7d2I4`Q^|Ej=Py;s6TJa*`WyV1|%&C#QYCruz(e75k8k6{vhWc>e&kOjQAO z2_XLfp56rb;roz~&RR1;ur=Sq=*GLz)5$H6*KWV()ZjM7$q+q;;-5w=f$F6s1a|MY zf&Li#xu6O?P^}UB{{H|Uy8=SbL67j;r}f_z-u#y;lsoO*{{WcV<$*l6TF=OlS^@gI z;OpjqY|_DP$XB^9IELD_t;J1i z(w#=t+rQJ0p676BkTflg>QUC9SGXV0efbkY>ysItRyRljeFyLF_+?UJ6eScteLI?a zcEk^*MsPL{;FgYYA`h2Qs(2kq+2gaW)#*pslkI4hxzT0Y$C-a zi~=cAY5^cq^^WA6s#|hqHVHl3tW_IS?kTs^;BXk<$zT80`!^cwyYvM1sPFPB4r;ID z);q#2c^(9kep_|v?Lqithd(4Ed;b8H+>g6z*KPisAy@J0H>ox0xTQXfRl=OPY&WOT z?eaMy4SAF}?oZB}^e1kf8|5G^ET`J**Qgt8e*r;*phrMZ%xPWrtp|PUxbWX4&yyp# zQy_ui@e(`yvJy7Oni01Ief#ZN(`x+j2HAZkkgPUu5n6ZO#k+Lvixas}VL-y8!{y(` zpyWD~j-BWy-o87UbQ_(%jES$YHM(CWz*dLA_G4cT)TRIvR(y~yDa*G?ig!NV$0Ccp zx*#PTtK(1BPmj};$eu%&duNwKx=Iu7DPLjVmt&ATMR}kl8?fuYLEq=wB6<}|WF30- zC&TIXsKBTRMLo@HUY~b{3Mzn*ijYrko&H|i{rOiTx=^lb*J}MV`Z~~41u7YZOINQ! zPqVl+HSib@B&eRIy?jRd`wH$z?UAbru=l3t>D%}WinUQ)$G=+Ccc-v8m3Kqb*RiLL z=cYiOrI1>F?%NKa^{;VJk(Ce#=DaO+px>aaI#b8+>ye1N??D|GZ(YczuoV0^6hD4P zqahj|XsDDEUkU23{GQ(CPx--L`N%hh3n}7@%Q|~s{d(|N{Zhbd zHZ60g*v!&KCDg4#sfHcPw%`&o7dG<54=)-YJL%qAbkeMZ4(IVtrOj%7p)Auz!ue*o zk$$H%i4w(i5ojQZxg-}XQ43Jeqfjjl`^iY2e4UI0K(WpGdH(=7)8y~W%~m}hTZYQt zMvfcFAeTdZ38K}tds+1hbh9^h@GYDZ!)~`p6Uz(9EKo8RP9%_J0bokFi0|d^?)N)w zFw0gb4xRP*+uZ&4@_&)-VYYoP;zIh3s!gd~vn|`(PiZBjYk6sBGP1{SZpJT6upE^m z0I}s(5&mvJrmvOt>HAxxcx=n&&Aiv;s85&Sb8@R~acvDGiYe`y8z`pb6c#**0$n!6 z8Ka3*8JSwOLI@xPc2g{)EOwon^;yFE@x(i@ni31=*q zO+C=Mc~D0Mw2;h>w((XtrIMrpT4Tt7H>w|Fekjf(iaXe^pL6Cw6%7@;!9 zdPHy!t=n5S)>iK1GrPwrws=U2Ire3Lf}IYVQ63^l<@Ye&yaXmCsfM%_|q`5<{cS5|i= z#BR$)0g%;8RINbonte`U4c^Z8Po?0Fz$S9}N>sQLKrW_^DON>ZD=~&`g2QzIF4I9H zM!^6)6{tuZ@kV&d>gMH*EaF6fvH0iu71K?)wv;?GA5bJeSb5}0QDb?Ps_{tCi3_+R z?9wszg(yoY2}Q`o8OD5`@#LGfu(giv6C6^*DqPx21zp{w{nzNT3^GEKTU?SuLnAWq zla}0SFg#8f5q(|sU=BVm@cTc=-e}bBG+Sxy?yVb1ynQ!FxQ<(?^x!pMV~3xP$^QT>tan;Ln@F_P zqSkcQ)WopGIG)Q>)f@NnN61HUX=i5%;0bc7=+dvn`?I_3*+yhzHR;E9Mn0})&v?2Y zJ9HhcXO0|Wiq1;h@3(z(hTKH=krFlq`YHKv_ll)&qr22}>uIe`<;-wKjdsz%{{UCK zS;sG4;#lSr6fv))#In6X1Ej^gce5kR^w?}oe{DQAvOH5H%ZF;J+;JN*2bsFssBvx8 z?@(&GY;ajv+}}>bvGUzaOF1 zi06m~AQQzz9i`8@`?>PmBDFnA=S+zV6H(R!9mTEBq)hXN6)OBaM7x4_`ydJf#HbZH zi-9;?#d9b#--1q_#(sRD{6yYjCW> z805OsEbZhs>0>%8G;Xen2iam&j(=IJ;U|Pdo>f=NpUe9^x<1a)Hh$icao{T)uHnJy}zX`%ENNQ zPbjS#85MYzRykH97@y0|q)E9E{NC&8H>;!e1=V4h#B)&-hyo&x_00X3M{-NzT~Aw+ zS=4^J4W-N7+Ck~wLidnuHLQ7Bm@Se(rOR*6}6+-YM7`mr0K zM$g=PkLY>5M6zU;?+2)#cg%EuZvOz0FAc}!PvqU~I)~{+)PF5}qo|!lf(E*l??$zG z8H9fTD8qrK!;L#25lc^mg~(IiA)vx4qr=e>QcXZprf>Kd0t1pVRFpcx~_AS{q051LaPX z&bvTt2Nq+eo85FkIHBP^J0Eypn)~vf$68pzdY`=e@O0hIsT%L zkRBwDf8pcTHt;^3oJmv9e9X0mLHGLh}4_(LkUri5h6TWob&dBZD^PQ_2Ci~cR^i{auVaS0`pWHK{)N>%Z zm~CCpsDI}lVE+I~eT7Wj`whE$S2rHcf#OTL)0@knevN5R{{WyTYH|8JPmX#lMPauL z-KSRZe`Z;TdWYiJo=x6ctd-<|iUUKr-!q4MT1O?66+gL8od-|WGGbfwLJ{oX-}g!M zj~?c`Qx6}zm&hQHk>hTwmg$k|rKoHgDg_S>)aQzRsIDp!hy+qTpm9@v9@ z5bzJp_-m!!?bay=(ZuE^eWPr03xW4PD(|8K{`YGC0HsVmUm4i^vp^&T`^$q%6-7Xx z`JT1$`DG?z{tTnJq0JK%DjR+NLw}jCUGT(27{J4Y|dlNw(eJjwd_noU`H^d1I$E_lUMJnpJo~oK?`y8kb}KQk{T}?2N@$jpr`S*U zj&yyK{n+nl%yxYigYh0ecj28D?mxL)0z3UXf1i9P=k8LR0*1fY^T3I6VmIr!_HMtx z9qLX1H*oTEN@o>c9rvck-!2>M&`pzRV~xNfy-BBSw)`?xw%u5zcTU2i-=O_n#SJi4 z`}1Ci1eJ-PGy}KvKR?xhQB0we-kW$D_~T&=cJ?AUbgg_keyo?7M25*50bketd+$M! zw!bxa3i90dtvC4^dt=RaC{a!ezJ7I zf-dckgf*o))Oe5W8B~YZ$9FxceuIB*y?T3$2>_MrVpVz`R2A-N;5*WpT=wSK2p)Y^ z?V)Jc)O9^6O}u@x8bX^R&W|+WMH~Ph)|+^EP~}Hv(dEr2nK(T`r@cNJcmd;)BX(nL zx-pGLjCNvor(b=~(TVRt=kS03*ZWBlYy~~Yr%_L$l+9+;#B7N~p+mOd52N^!aIq+* z8}0_j?)LgXIHRJVj$nNkn#ghVtaI;I}ep|5|==rAS7S4@;#}y ziR(;&9qfVMWDJAGfFBPIgXqMbr+}x-@3G%2;@kRLqWUHB{i13}9tZsT42U2PS0ts<1HCCzzWu(AhbtoVc%PLIO|qhIpERMmZM{u?nszu9MXEYfZB71tylIgpf>aM$ z1JqOjKz8mAY77Lbk?T(pQS%)S$Y55sH6o3_>J;nPR|hT91+72WPW$)}dgMvyk{z`= z^{3Nc)G3i9@p&=a7Kt6ZYz<9FJ-l`}DuQ<*a*EI$zMiAU=eAcPe3VMhl4EX_BBO6( zL0`vgea!Eud>8)!KU4iNAN=62=Huy?8g;#@x0l;j`t)lruVk96C@o+TE5y>=$uI+u z1p<~*4Kouly!v}Sj~EX-qhAj8{W%el@2$RX<5$b8VA_qHyIf24RFyxxa~+(D8j1D4 zMnsU!ZxWV*RbWdwQ@GoC8VBO$;sncXPw4CZaGT5ewbqFjnr?OLeM3%bGZn3^s$0F5 zo2f>yf22euRJ*pmy@Hn#kx1k!yBZqfNczlA39Ystdz z)OQ$?$1KMAQ<8Ns#CG4@^nE+dc5>P35q)MijwFiaDCTl5{=O!5NtL}GBr#CsPT@k- z&~JsB62^9S8a&wZYR-~0eHJ9h7% z>FCM8OsGRC>U%$40Wg;dmk+ofF@IHcvMcZ8dtb9gd_q{sBI=J$n}NIy-+h~_>GV%X z(Bg?Ey3@X*uc=wy-6oq2-=}eNZX>r_sT%Iqb8T(uln=@(z!iQTEg>z|W6C%qpBarF z?fy6A-Q4-+svHxZ9Py9<**lIA(`xS(w&3%n`nz6erpQHXxArBXmd{kTUq)Lg85MN< z>0*i&kuCjKXhg(wH2vbT@0o^neKZFA`CosRmy@f<3HpSACOpiJ{{Yp$;@f)f>aFM7 zi0v%xuFa+6NA*;e=2`B915fn63yayNnm1@9m@B--LJ@#pgsUwvb(}*VExDcOZTRKP zxf)oUlAuM{9dGRJ?&SGOd)RfkuA1gT`g`69gm*4SsckHUVlL47ZEm3zULe3cfDn3t zoUW+K_~o$XFOePNyU0CnXZk^fo;}TqC+*nv<;(4UQh&}}LFT{t$BFKI>-uZVK6CQM zr>ScfKfQ(>O6N<{?rz|7^ezdrHZ z-MM9}CK%$vxs-~XHR}j`i08{#`cG^X(5yWkRBFDr>(NrxdL7bkX%kvX6`nZqY=`s)`Lob$2 zy*izT_EMk>p`@}cGGXXOM~3IWeUEOLD9WQu$J(4bgXtdNp1pmy&R?~qW0<#l+3+BS zcje|Blg6O`0H3yK@Eeo7BA-C{Wpg(6;&bPD8(}|E!d%lLFigf!TzTf6^sM5F@ zd3AaO1NUO1x9j%srfi%u&e)%t2l_j0`zQGI?V1kQ{^?-ey0#lh_|~?lV=| z60B#JBHxH^_|Nkk{89n@%xZT(=5xrqW>u*j*7Q1Ep>LY6lo^=+0F~@_uidtE{?3{s zl~{S+*9XEyT*23Be7gMnI%a5VN#(ch zM?tXuwC|5qK{Oq9->=X3W4fsr2Vw6~-~7%h;Rm<$_vzaYy-`s?*J}JddUpHrLwfJE zcqiuFy>!dXzui)H_B(z#iJZ_kxcqWsKcv4W^+=EDEB^p%xq#bX1AQGSoW5C+kb%nF zSdD=wP@O10%x}Ma@{=-6me2s)DkE+MD0>Rm7~~>V(FPZ|t3?4&b_8wHs6NE^%-DK{ z{{Tym%VZNT7jE6fJUl!qFaf$rZKl}&04)gaXldUi;!C?^76Y!eOM%n;`|aVHeMuLy zm4kTSn-#HgB|Ud2S8vz!Vp5|1+YP(_0G`ha$qNukqb$VSfm{{TWQEz{I$ z)1^nhfCsRqQ6urT*zM`+g_;FcVg}tu&-I#RQnG209ZHHyt_bcsd-!`-DR~{oso40D-y%mn)$iA- z->p0ciBb!`meYe`Zef)RD3S4S;9Ra7X{>&s$2`dV9HL0)R z*1tR-atAPnD@vZb8vg)ijc_uR1S=>5YJ2@XeU3d?@9;x99{^A4uXDfqSp)p!?tqa< ztp!C7je5}d*0ji-_wr;2z4@iG1LAx-f1bc(N+tCmqz7|KSMR7Bj|@rc)sPe^FO_;4 zj+GwYFM9XLld~WIK{)pYqo4$lzfYLTq&L2nsbtH!-o8Eu$LTndI7muYFg_r4`EB02 zPzU0t@q}q{NbPHZ=04q=9JtBca(TD>re93amlXgx=dBSDQffSKMH+!Rgn=VS#`%Eme#65!rZ-5pn`E{mmKlP@p`4V zfA)L&Ie2j9fC4u_8aw@mtMEhfKUDLssjF)DR@N7&E@XKY?#gdk39Mq5)p#S7-Q$|d z$t3;ca2NFCkgnkGftFZtM}$_x^f`F6+PtU5;h)c^-tbLRTi49YvigZKM+8t#lC`YX z%V-P11*$O;dU44sHy}ZCUR3~Qzb1Q;6e-Ubvw^vgs`rl}+>=~+lg634@vSLnu>XX-usu<5!z@jZ0AO1dkcu2B(jd5yfG7WBth{C zP|*xBgoSeb4s`Vqo-&BJE}Lzq+Ud_N%sP5UC4}=tR(Kj%#M0Y3d_rWF`rRZ* zJ6Zf~__h;c{{T4yedV%lv_(fTr+VMpQ`HcMmQ=`G=anJjV#Pf`XoLiexIJp8%`+4}F5G%qvg*7Iqz zLq3&otnf5v>vlSgq?JJ|PW2P26bm1!NMN62(45%iFwYv7(|oUgk4HrwJU1g-eVxPQ z&GE;Yyrpepsa;#k47LzCOK9Vg8%gdKD_L43l6Qh8LF+%n=)e{DO0i%7)ax+gn4&?E zBbN1D{{V{kyDc83cufxNs{a5M2hI7l{{T75<=tye{Ir|Qx-N@nd8=vDOp9@-+&r;C zrp(G4(Lo;ftt>~3k|zW}OLAHR&q^Z}Xq~|2Dg=|<2kYqXhF{HT=Z+L|fpFhz{v+ML zpEJ$;-D#49^EIiG*5NffJDZCqGg#aU@MYIl=Shs)vRr+6Zf&9}$!^MR#A;<&ffem^ zMl!@F5k$wor{m=CTG1$Flq5|8dGq;ne|DZ#j{09Fc`j?xt$B0hA1=*1r>YT)=@yQG zR#c8kBuo^Ns!1I)jLZyj$RDcz086Kk5+;$-+f7=iuJxzO@EL@1fN1ky4{PX~>B%f{ zCop zbkg-(xgddWqx`HxEM#~OmqEUE9iDkOSq9!uc+m&KpCO%Al$lXKe|5WW1{9e?eozz)&1&sJ-6>q9P#PP{d3#B>OlS1 z!Ri`${n~V|5!beNdJ;HCxzOqW;!LDJ56pXg`MHd&I7ge#ywKmdll@lw1!VJ-S_iSYU00@tN6+IrBKe~M9aq&!l*5B{?DV=Y#r+C*lob77_ zgo5cm(t3BP?hgL|cKOt2KB8SFF|d7S{{T4s7w=fp{n$792Sb~`X2s4|-pe$rpE`bs zX>oyN9^cDP!|=~Vj`+SV3HwM89*;A!pCBjJz@cP;el^X+;*CA>{*+kbC-((0gih;uOQ z78_*WyA?bf3;kv_9-U^U5{Y3ypg#8ZBojs3UGk-Q1(OuG5L?EHZEmM)vJ{=WYC zw(PlCv(02XpQ1WCf1*d@Ku55k9{JZ}`a?vyr)rcxhqhRROmX-B06KqWHiUFh^z40y zhAf82?@!?%{J#GH_VM>Kja{(sGDZH4D5Xae_zs^u$Ifm(ZISwb>2HC5Fs(=Uq60ub z(vW|{XP@@b9x$&bKMjCEeZ~1eDWuzN(N}NwInj1e{n+<7xkk@@QTS&@(aBPu=l*>L z73iliqJIw95iU$CRDX-E^&{unp7@S#7G$I`KdPhr`((#0+0WT2VPHDP61c{{S(E zklBIXam@hB{Xg62cEEndB~lo9AH@FvTv-8Wib2PJey9BU92}XB{`SE1$?Mm@-TLuM zM5zX}J8U-Xg?9L%nUzV~wJXza5!Y-BV0R@qOeqqYRJvJ%`yC{0I>->hJv%gJqJ%whUhaawh! z&*;b>r(wDjA&3r?HQ(RE=;@V9Z+j?gZ4$$Xr77PaK&|;RB=LEm{6rxcYXbGP<+B)lAI5^XQgAEBb^2N|rxA^WQ0!$8Kr~z3XC+ znASRM2p#+TSH4$8y6kMiwHSevJqOzCcEhz(S?2!$|IzzahxTjOeboL3HHLs|x(I|d zpy}JdZQlaldL?O7({1ZY{Xf?Tx>K_M01v0%>D!>g%XB)F@%E{5k)-V4z9+}$*SB4<^9b2Yk6;P!O}FpjYl*LdtmD}2LVicyy}s-R$xzIy zK6Nx69>)Ot7oru`m8Ew5U&jGj6=+rhq;xds1xEh(&>;Z_Ag?XIAB6n!xnCCuQQntI zqLrxd@A&&y0UK=3n69aGn^d2Aj>LQXvK3)9>7mUplnU2whjZ`kfY{l0q1>0rT5sd` zQ{O6<^JTY0wozVPjZcLL>rvZk;h7h=H0+niqMMDkH2HsKSIr50i`JsF27-YFm z2m_yzxYDDjuGIZ?+O1KP5`;uc)4yu@4)z*}khBVZ$UjJn&T zYiVyS!XP1iOIalXF!T&I+-`FdQIh8<$LR&$zzBc{-iOWUlYV7ec}5r(>gqMSyS%@( zu&_556Z!?Mr8e(0VSOlPOO9cKvLI1jM1fpPx#I|WjmVGezb7{i2+m`SdU%J*%1L>n z-1(}?=6NS;$mF^@jpR3COPJ@GqY>WT{b8Lg?hMxJ%^i_MDmbB9is49_B=Q{p07-Xq zhB8C|?)y1y_dXB&)St>;V%9akD)|L<{{YNCFzDzne8XkreFEpqCrF0QD4v>zqhlKA zK1I{?_>ly$-CRL5>;pF-!kGLL&5Y)N{lGM2b^!NT>)ZvF;g=qmcsXTLJfqb2?a$u) z?(^-lXqUQ$zNcYxX?qN+w?A3c{JHg&=G@sQwzSnR1Ts8?1w>|2PY_1*qFBcdr12js z{Y`mth@HiI$osA5*G~Bz56)XF#vzLULl z-7(4{M5ZWtg;+I6RZ5$oG&2QXUI7%5Tqhu75=$F!WL8>K8iBCPLn9Nye;)T^4jDuk z)iW>r>B^$KI9Hs?RmY^DFAe!I-1rP62?MZi!8*t->2|u4!jbVsksL@> z-jS2l5G6l(9R~jZ5iCyh%t=JMsAP!xUeD!AJF$2j!MTRo&8I6Ga!ZJ&wu)<|00l2} zB61bM;tz3Cm}W$BcUZt8&pJr|05W5m*H{x5qq_%8x@)5bW6yiu5Bsv;cFu=$pZmV9>tFv&nr0gl8XF|O=cOyFzxGiSQtdVI zC}Gk4z@z&tqcxt4-?c>A*#I#9bpPx+x73gFI9{Glu=;NGam{9P*=2Eo$UMYjfw8R? zo*dWF9&{R?_IM5(4$7z!(W2evG4@Vp?TXuH5IP=Wr8>|NDD$Y(r1&h)%K3?v;Heyg zj>)Eqp14NDVg%OHzOQ&aJs-AFa4f*)KRkZ6%V~?cK$|OUGpKK9nSPmn?XaX(5DMm3 zt;$&i^E+`BCe387CYl=>Q=b;ttk3@o`wj0Uy4vz>*{HC&1sNvIQ?Nz^%Sc~hp-wjd zn*UP>_$;DhQ5frCh(~j41L|mNWUpxdJ+R#=mF!LYy)@FZG}Gzrt^9XCcuw(qh=7V- zU9Qu{;9mP6(tr#$g331>PpZtd`n(3}Sc;9~kyS}Knt_rZ3rsOd90d53_&O*@eI}tw z8F3Qoe83&+c=g1pGM3HljM@5kqG_|OO0;-u|Fu%WF>(k;CMKROYe}Rmm!sSsa($c2 z3CIB6E-3cZB?d`RKOMCMz#m7gqV95n}H({bZK4!yA+iBJxjq=G%dJ6am;egVo zq9Ux&3!WYuB@-MfS0Lx6+3N7l^eMJN-v`7{Wydc9xRhE$ZI)D?M$S-rwrSt`dZh=U6DC zWygttMY?c}z}~Y#`ZN>Q*y0an?F13iK%BA5n?mQ2$pSSR?m{f9>&%#juq_u&=IV;v zz`f?pi&%l-$L0O>Wg=ANQH1D?xr|5#<^kWWt?O+B_ZnLBM7r?ui$~-Zhz(D8{P%^MoJS5iY&L(vWJGco^{oN^hvg*RqH8!8(M3%g>lb zd2H|Kd_-}_+8Y>c>+Maa%mGF^h^l|oGKu9o0Cb5T{2oO7lII9DW-9E)ThY}MtIXQH zP&kpKwTEzN_q~)*i|e0~f*T0NgX6Vu3d=Tm#IohKR^dWasoz3>aPrLM3gl`oY*0$? z6(*_`cN6&LpP*|LmXb%lDq4(a(KsW{xS_McMZ}jzF7-ApE$r+&%x1Mdz}(idvztc(VJ=h{tA-{T#BE~ri&kUEziL%7%F=_V(P({mrW%pe>4D^J8HwF zhZ74CeiXd{cilP*{b_hh7VFeRrrlW0X!dI;jd&TjKJc?Wga}tc^luk(9f5?aj zycHE!8{6qQWr_V<>N7qk`mtA{%>0pf7kGYG#hkJZ8p{(CIa%{X&<3JI-XzDTW;5hG zI0!Yy%arO9A!|d@HQB+p)V?X2q)#n6aF{dkXwbMvG~fL|eVAJbLDW;dPukhg@wUFq zS1S))xy!%ovSais)vyzQmRH|Lk znB1tOZW)VWAVHf~1_9|g*COv5kF=3Kir;+cCj!ISz7BgZCqi-%Q{57TAE&5}7Wh>2 z0D>E7H)39Jivff3c&XCYQBlq=Uq|2twum-H{Rzw~85V{{qx~iD}7LT3JZ5x5r^GtZ}p>CjItl8xgVp3lB4D`zYP*S1j zT&2sJEKR4^kF;a0>2}5>`2d}FwlKd5@g7Lf*v$L;tE=Szv32-`<2{7k8 z*w~l{m!a`K%9>?86xmKwm%JcI;phr9V9X#K_IhYy&VACNHxI5@JKtgpXi>L(8Sh$L zP=|!(;E;=if( z6K+;KEOGR@7u)?2EKUWtQk5weJCpHvy44;m;GNCYeNm#_bXKB%K||OypQt5FdVX3A zuS2kI`wOzrJh&GdSry>R01qP=YE{W%pMDS(=5untzCjI_7cr?ZpwPXHVfg9L!sX z&$$xYmizJn%sXn!+_eWKat^`_>I{Qkn|#=vO>S& zN~wn0la%wN<*KriDmW<5F%j5)I(p2!<>dCiTeZbiGDnq0!AH|}gg@wLmxJV5_Tw5n zJ*|n#eC^7VKG_y2kX0X-QP^+znP>b;c=z&8p-*nL!v*HAE2~TfFj-+K;#Cz@a zJ7p<4XljpjlF%Cw2-(InP{;ljRl52iaT_;g6wcX;epU@uUfBaoF?Z--B8|uqw?THG zl*3JS{=rZI<;}l20mICBoI8g>2H;&NUG>2Djt(@cWj93O#FWmMT37ZUy#73v^RF_can}&s;G+%C_ zblnzLSOF%w$YlRLqsg2!_N>pAzi2~m5)Yzrb)+p@GCl`d zt#PX?yjKJqwI97=4L@bC-OR?qUfq13w2$!fc>)>Lw)XqbU_~QwG@pKT6?eRo-|Z0ivz1M#{E&W_!c$Zqr?xc#rYq=G%@bV(rr@JCtt;?CcA& zm?QTs8!eNW(BT2J5KE=1eOhao&V;vKv6`Kn0AydU!M@UmxNllO;OOBV^F#a|ZIo!**GkE+q~!ZSxKrUOEPrd{wj=li zM8^NZbV+XDTCZWJmTZs)^9OXliYouFrtPJ54}}&@O%Mve;a(v)QLRVQ0AH&qN*yGI6S2lvn7X51(m|k3{jC`zNiF&!67ht{^&f~FKx)Zv*R>XCM@dwA zZF4P5#w>9(a4dGveJ4=|!VJTNm1TLj%f@P+OWt+rt{+&Tf(^S=o4TXh;!b?SV z?s7&&g=~HW=>WASf-&*;@mc@!q$I)kb6lfIGfnQ){&1-iC?+xUhYLBKjo!8Szd^Za z%(H4iwNk2GiZktPHUui`%n`%=>r8sasY)tzVn>8#lmDjH$0<_T5{9b#;voOw1(wb3 zqIS{QvRVgU{6FkE73`DoLM#+MMpRMcsgrgy^|xikt3AjL`5??aeWx=pF-oBnQUAk7 z1Q>s+@a6oZ&cyfc^fka{e%tmh@uBkF-UaWQ<9Q}mo*wl{eZ=7cNgfyv!lSJ7zXX-^#>gVmj4o1gF zdr!aP5B?dfd@8Cg*oZQS6R8;iC`7zt@wSH>*{W8V@Ki{9TqpGm!&e!=IoR4!>JiPx zyXQ12#%67u93!yA%cY*W)aRex1x{tZNt=ZNJaLus0S<9zF;D9yjC=pD59-h{@x4F$ ze5R$y^%9Got*q|RODT=QYKr02{U(!5^6aTFd zg$b|Ec8R`~Vz>pA8E)+OiWGx%uRH+k4taB#KN2n4UwIhnpwc9Zb#1YrV&w>LS^Z-9 z?iXu$&&yk{lZ|8W*>)!nSnnuQ&2hNvOWrZ@q~4k(y)#zN{2$6c{%2#+%u%tj#i!Zu z$&-_0n}RmY@8JXUfI5lRdv@fC#9l&+M^#NM)SDl8BEdlI2Dq95{5MjYwvJxJi5}UkNFyRXK zCd0s8B=oeefam|H*5a=cv|0KuO;!d z1VOsQ%-x$3O?Q$;d+q%$Qsj==inX*LVZpOeF^yn{JF!8(l=^r!Gf%?R4!`T`pwsK< z77K?Mp%5GtIvuJdlQL zYKYMy5()OuF!Uv*el8a{?>yxg_=eHSj`N$Tb<*fTj@Bem62Z$dC3+>ilEtGV&9SME z)L{ssXBjV}r;W~-cBXqo4*{ON4jLI`sQl6I`r;DAdq1W-J3X#2_eGO0W}Tk5bIRe5 zuDw`^Hf*O^Cn@g3(X@y!pi}Aoz)O-|G!D~89$(!E5`%BbBY`?kk_=r;XilXRZjq~l zIqxkK2Jfoj-GD~c?wwnMcf}amgKh%x<7LkoEgYM-L*3BT_@+y74)v1mC6M5g`MXMz z2)gEX#leYAFg>go9J0mhBjel32j2P?z(D)w!9~eT_TT~AW0_Pe+P`W zMN34w@Rz=2k&zu0%WmPZ&@TVbVa!=&LWKM}jk>m_G(~aZ}8P`qhZ`L9Z5rC-`|Xklc=- zSmvDbYGVt_@4i&~Jkvcvk%)vv1Gc91pXmm! zupH@>8LFD_71ZUQ*?_8bM|)YXBiOp2bi$-+e0JcwY@Uq?=hqY{Ev}S_qKWEChB^=hmiBGR03~-34H|n?gWTt zM^(GvZ0$-56EjBeld6E2$b_P;6OB!aMj4;05_K>mjqz5)OJ@^v&XtNfVwc;%oD%%i zS8av(qkKQ~yJrc)zeqnoieSY~CT6bk2U6UnF4->krDaMzXe2n2RC?MF{aG$( zVlMis=;V`m*IR=`$tauO>y056=UzPT9sm-AOIf^4>3Auvg*BUIjR8KDCy}k6*5{E%3a?=>9jZlc#w&~SqiwkE4J^g0th3E|4x3<;@~(fCh1K(4uS?e( zoyBL^nFgQWI_cnrU3{q^i;gAio2d`}@69joY0nzkkPBk}h>lGt;O}&pHUtQoJ3?&dn}Bb&b5h>9sp)z3WYh zT3_wo-gjV5tZ*mPET_t&A7D`>lDs$xVfX~+iT!qHn@_{~ZaK&TQ2`x;_^*I?PC#52 zk6py=rv!h9T*@$jdKsuQkU%GRsk6YSf2NNq#Fsqgg8`hEdNlq zsm3Z&oBByW9=UpW!IUye_fzf1fzjl53;*tQ+#lgv&utR*RlK=VlkxI>n0}n7)Xf*Z z8K1h8h2T=IX(2`SK6p}ibmy_T@$}wrR-)JV+j98d9V}D2t zKQ@qqNi z(iXd9L}i}++p-z3H*_HJ(Rzt;~NGsXBD<0 zi*8!M6i>zimRjPHCF}>_1p0B;!vHJj#i)k{2Tb3|NCLXRttY~k9nebepJ9~uyTx+2Wxgt@cbWaoj+1(Cg}T4 zteaX#B2r;qn9pjzf8%Y}v}@*$y8Tw{Z~u{gsVQSe+px~bHb%K`VtVAsj#9tlvZ2;H zi7{bn)*}xFpUM-bW5FX=qq?gQA9IYGS=V%DBhGcIvg({@miL4os^lN7*sQ?&TyizV z|IzZ&U=bHo+0RCLGK%VDhNaz4nXJC3SJ1RK>jiC*2P)&Gc4dd7Iu7YW9F!$Je?=>f z*Y|2S?*MvEuGSth6_&)5(S!CKWlDVy&B*%7a4^Viex3_ zkkO2JzsWN)oBRp0ZO_bXdI%RuhJ}Z1?gC0NRPU{#wYZIEB`)0iz(Orjhii35`b$I% z-sU|u*6~1qw~-1|jL>vwQf?A0kgx&_Ww7C;81)|g_POJ#pbX+1ZzjP#h@sMl(YcJx z8T2ECN)vydKP49~)+9nb#J{VTwfIt>WifB8y|TfmUL`Hd)8E}439{ZJ3uR+tRdHo8 zbSF^A-`g51yCDX!1fya{h{044d^4-d#rrWuAue%xZomJ7YgILCRnb4WTEOD!357Zq zBh1Fg>}mLxdD6~{!lSNpNMswZA*`DjJxn6;?}U{)iJ*-8Cg z)t4+<_YTMqX)y|zwKyr9b{e-Tjr@yhdfemQ42*Bdk-AqgCR*|Pg zFJ;V#Pao{!T(AIxNkUBw`_E{zw+Gc@)Wn2Nfn`Y=HfP&yN4v=Sh7TfB9z{Qxb9ELG zs5DXWtTL0^`{YC;ST!V#3WzAJBAuSwo;y$ur;ic-QvH%d-PGgy$_wv;YSPhHLd;N;FUUYI%Of-eVbpfb9%G(`DVT{lJ27!YSh%AkJoB>oHjR{HimWp|^%9 ze_ShCpVmBdkAm&jDji3fOQcIzb5|_&r%8_&yh&0X6?rNN6+t@)7%Ah_)}QFTz6UC+ zioP(h14*a$cXz4sYiDF|(GXr@xwHLn%c+5U8`eA5oQ3PjV?)q1t(2>#&27TX?Z1sa z?99?y<=*2}P$x9wPhVK~k50u4(aLsQY8Nf&n&s|`1!;)a86#k{WEeDD5|_w~z=Q#Z z{S)aAa+`d9L$zqb9{>-p1WOLkmi%h3SR*ivt9G>kD8KPr0rcq~zmD$$G`j$U3sm$? zhx1@z2ExSaq%)xCp%W1}bha%c3|WS%F@3r0rGH_@La&m+-mtADhS|7W2CoEudfK!6 zA}(AsKK;CTe=_$YVtS|TAXJ0wOQE|Fd$`3EnLfo;DHd`_?+4AK9Q-tYZpd_8!_>%g z4i*n`w*E+fsg$*v1g+;5g@Mw01MaU_AT6i1l44{NT-wD}ri)ocU-}d+2QCtcZc!$)5Va`{Prp%5p`GCvaynEtGeDKhN5QqaWFg zrdpoNFsZ`(Balv7ah)?+qjPUzUGaM_zop0Y42nL*bj}yIN-v3C@^V=;No@w%8%}W6 zrf6+f(R-iE2Bl%IdhKGpOdlHHzDy?5ruzW0|C6(UY(*81g`G)`+_6mN{g0G2M`Rr= zn6D#v*@ARe3(7p1Zd{TXMPvD|vR9dCCI5x;GTru;2JAw$S* ziIbUtWg^{B$xLb8s&-$ui3eXO8A|_$m!JQHt;J&dJ9K2-qaX7K@k_k4;2D}#gMl9i zRs5#ca=96#H>vjM0FzWq*fk;rY)5UZsiKZ)5v&E+(W%tjJ>9Qb-6FV-7!F>!_6N1m z@n};e1qE+nENu)^M#NJ1GgiZPJF@MuFaY1z48bW298_zdnMtGT?U=T^zXhxyE=mwO z2Z^)^!;YpZ0^1hfUq5Ov?RdkfH^>7E;?Nb>VXqzcaxp>bD%wX)d9#@JK^S`j2X$z9e`-2W+SRhUG^z-eDAj&zoxY=l}!7&Fd$)~Mt`X5Zh=?DU+?vYC+S)4$4df$2yk0^*j*;CV9PvV{4~fR8AX{qOEb zEWCA)wp^v_-a+?D2lR=(>tm*XAMB>CI0g`6U~X9b%$^Ef> z(tKC9)5JVZy)$EG~d}F;nj-OTQ+rq z43P|Q9mec9QZ@DB3(6k_9$GS;kh2tZVgIO)ffFwH?yztZHxwcM7EFZhxc%`L+ED$4 zYricIx(~MXvi6iph~nRmu8&g4AKSP8>gVShR;xXG*-dCg7GT86U9sCs*r(9Ol{yob zcPM&!S~kFNHxjBUqf7s2fM=Zq)WDN|9x}A-!u{=hkm|BZY!8hrtyau>@a_xI`JwVkOCHkY5?;Jtj4<+StCI3PnGV== zytJ^lD`CKD;qN<&ofbbjG5r;q;3K>+UBz{M{#&n|RO_lp^z>}0kTh$aN`COXho<-OO1vsTwn>TIgd7W|!ez%(Jf)QYWKH3oJ`rc))PQ;P&u!!##!@ zm;m4}e1y|&n#VQ(hqPg}g`5Rq2#HQzqHLKiXmoj=1xjsKJUzT(>?M0tC$<`>2jwuBHKsQ+MI5x4C)+@BT*ZvRG>JY9<#jGJn0=k8=po-lt}fHM)@* z7n}jk*G&I(Huosd)A!uUjn@>E?gYyDrTHt(GQK~(CxVxs>mPb1K~z?*VRP{D&ADj5 z!>b=dzbnWUsKWm(K9^Om+trdPCtw_( zeZv$pkGAZO*mDFb5U0)Le;5;(H!gUJJyt7~qJ&akh8o<&*Ds(x9!h1O4J7g&nc@+< zQ`HiKvAK+wXkih?N#)n8%%oXpwhU5b>2iYyh=0UreUyqE`Z(!}fb;ocHCuCF@U*e1 z)PvBN#@O9aii@5?o80gez!>6CoXE;GCIAx{4!vxTkwk~R6{=N6d}!YdgtPAG{6=C% z<1v?(o5a{nP{xInrC~s>7V1E?#Z6w#=%cJrq5M(X3uxLH!eCn z>ceVY{7M;dPQ*4Fp9Z+=iA;Zj<-)6^9y$p6G$%@Ukjlv6I41@bGa2BWy^{es|mB^H2G-bAgcm*p6i!)^s#b|raof}uN-EDn88bZwN=)6eaw2AUEreyd-)D|tH zo2|hHX7i+r1;UKz!ST8GVD7JN$bM?iVmZcLYJ8_*=vd1{;HvM_#uSFKS%0Oa|tQw`s+J9|;r=xpy2eB1T=HlJ$7bK&+*um_*1 zW~+r>j=Qp7j*{x*ccM3D>B0-0GR!ebZjE0-w zOfN5yuT4#GpXf4zdJ4b+PWNpkL$qm8e^L9w%%(_FUVZAsd&c+??(f;^Q(kpEk<73i zP`fZfB2Tv(N@g5bL&)y&d^7!W&N^Z#$kdxkCK$>4YJWXm0>Km;Dd%wtKQgT06yYVu@zcHoS{I!w|{U}tHL zm#h>uvnZ+)3vNcO_;HeeEJY;h%_-(5C};Lc89UhvtZ5#Y1>KFxZu0zH`A00S(b-R6 zy;A}9IesTRooF>hP#ZUU8-{;hMR;znc2j=B3FEN-Cs9Jb}_AC$Q_vk}-I*zHuZ|J$FA(bWR5vjaf9~J` zGHgD=>jPA(b6DZFtJEH>kLZElYg$6?g3H;cw+k@0+kj&edG&vI$J1@Zc{gti%Z_3p zubskhe6my$4af~>QTqoQOclks<_n=nUM+O0}jaW}tFsMP8Oh67VmgUNlLxq3km zn)te8##;UBQp)Iwl}~Yl;m;ls!$&B`LHwsYS?3CxLW6}gk4csAZ{epBt5yx6iz}6f zmYg^*|7m^HY-gg$alew@du~o06KsRhQs&QVW>O*k10S}>L94KztJaRBkN?ACrR})7 zq$x;qIFR3AYI@L%T}HD`oS9#N=)6xCY$xUq$lg5XhM}6J2UL`h*yfVywPs7qs9n(e zztfnCZ5iAs8N}`U4o{w8(~&5YCatvO+G>nKM0s5)NQm10;U*c))p zm}Ek21_ukby8>sZSUHZB(w)u7GOOFpLXL9J5}0E1jjJDppaa?$;F~$G1OqXDwi7IP zf8}n0beL#e;DtL$oS#6dzr7LT|Ax{q}0JUS||E zBA`0NoEB~puX}_#rAaX_w1%sMFL$#Mn=b%eNH(MATlpV60=g!0Ds}n_>2Uq>h&49% zz@)yNdLw}yyX;-Rp@O1^4w7E?u5CywjIe7KTU}FV%;L@uhXYP2{q-d5nBdGlup76u zxx5ZXM~_eC38p4T8O4_e`iSfj*;(b(FcZ8QZ;L6R&g8Vi9-xECfmjZ3 zr^lkr_(SS}nQ%X*s!Hv?o;~h8%=k_{F-;$dSY@yqmXsn*3>_O7zOkODz4B-gDiMUc z|9)5B?P^Wr^uQv7XD|sQ3o>eZsnUgC3h}~O71D3C8wy`TyY^*sdtNu}ix|2OD*6)* zc=*Lt9coJKcfxUZwscd^cc+i^ZI>KfKYNAh737df#;^u#~lJ z^Tw$h>j52oVjV}EA$%n;EPxq`9|N0?w39R)7dd}wo#FeH;-@L0d;~LMQLE`T&E;>W z77w%b0fqV&e0wero53Z*m@k};Oy5qs*5v-2l7H64^Hx3T`saS5(9ex$KNgGMhVqPF zNaBQPIu)$XaIH1VMFNW$-^<@02BL~Zz#U|{@<;@N8Y7+|fnkw(JvUv2}c#IWDSt8 z$&-YF@dAOsqTo_SrbXlf>p`v*d(|RP!vk1dct;`?Ft`Ds_eK9q-LQHT$|2#{z2L>? zyKNmFnO}XIY)7wK7^uO6#pKk>#!9Y07e|Vpr{5`j4?FW8S zVVre55w5+@*1~Py>-sRr?aPGgO&33<(j`TBQyp27b!R-Ka%WH@tRjZs5V3WJqL#&3 zMihlFK>s|Xlt`z3Yg}H1;pR>IdN28|#XV+M8urK@6 zU3t)rFVj4C(i;kj?KCw#J&U|d?*+H{63s};UYB-LF?V%nZ`T1cWrQ_&Bj=QS|prnm~{((Lv+9 z6}2{{pu?}5aD7rI8zge<+XX9ymmR6?3xbJWwnZJVn9C^MB8!+(+qGu5Gh~uQhxg4* zN2xlkwp`XabZIslH}^Px)ersV+O-kk$Q!yLmq@zC^&gSHj$jJ_q*ZQo*h6gR-80s>L~sCm0@^bY1bxAz!xx$fEn5L~cg4Ywe|^ zPq&gQqVrDJuJF6!Jud`?EHu!d6l_z8zwG{CV=PfG?H_j@T*7=)olI-noOj!LWs5d7 z>FcJaLVqLW6-sA5AJH$0YfAHx%cc`TX*9~1@Fa=rCw+WB?+Hd~aE@24mDzy2tg*~k zwf(?$D%cO<^$mkLwm|#*cE!N(<|gY`+0stJ&%jp3Hl!L2m4=L2%34N_B#;_;iQ%Zv za!mZL7FmrfOv?Dr1mb!jVh7Iu;i25da}0H4l=6gcyqa4AzIUaj6svgDR>n0bIX;yr zj;%Uz{ZRiP?GR=Co}gS+ns?$53!dwX5n%8ZcW=z;398I=NEFx4TB zgzM1RBuMXB&su!NI7E5igaCVl(MRxEv@=fH%{bbv?ZmmQiA`In=JRZ7>28@ykE7wH zQ!s7VB7Ed$?=c$0!K?(H?LUgh4 zoOK%Ms_nJFLWJcDQKo#6JN{?B<-0B4ONCdAkNBVO56SKG%URPs*Qayz2InuD=l=?W zDez3&)NvE7TZx6jPtoVO>#HpRvO|a6%ZHH3;YEf5Qijh$90aOsgHIhLnEf>$mGz!5 z)MUq}$tnW)TH?fE=N||5VwjtIfr8HxVbS^MMHZNw)icn=3G7W<6jw(wRy?IX{kBZ{ zc!;}Pm3~u1Ff7jo4xyoE^Ti(?h+geK@lR9srnQb|_k(?4_Dtg;OwX?+{xo{-10zle zy7(wkCE4dqBG>mBJy<9cTRHDbFvoLH5x62tdD9i8*+^c#gxTLSS&v618Zj4J1(UFMb!wx`wpf)Nx? z@tD2na1D@Sw~6tWI1OWj18OzkSyxYf$G1nM?q$YSiml-@A3{${nP0FMTggeALJBk% zanwQt1IV-Ep#Sj95v(lakufR)&|IE79XjmFr0~(JG1T$u(&NDOwAW@2KB}$~CkN<_ z^FFOhTvnrdUd7ed`iNel0Zz^4B8k|6!7C!8gocQju0F=Yv(Uac&-(jw&>c#U@V8D? z=f+(A{j@J0sg8Zcj?e4dli3nf*nA5KnLp#RzG`CrOjL7~sg|CZ+JA)@zi7IYuCqG2 z#VFmm!7jz6VLfILx(FVMS+pky&8yJU*_Zd%?rQV7Bo!rTJ42SZ=?$Wb>X{hclr=+Vdz(_168zPzS zOH=O7Z_$~@dBIWE)|1L_C8}xtPKjY(_aY|oIMF(hhE6b*`AfOI7PoYnJxwSFc9R}) zG&ov9%28YLsjcQW`RK{%Cm{^(S{&#k3 zMDC|^#q1n}Fq8iZl2L!YyZU(ub6vL9@IW|Ch(Bw-}hg z`ByF4ET|7mr)L@|L-wFkQyZI04*W|=(PB&N^l6bz_D$@507PEgVLxf3+isNX&r>j@n=8Y~^8<_&kBcYL3_IRAzyrF82> z3x~*$V>~M4t>pW35I@CwGFvkksN$?Q(EXBDV)8=)p6dKAl7~`v=U7mjF~$#F=$A5_ zw!Uz*QkReDDW18M1!?0K*Ey{}=L&SW{4VA8Pg*A!j+*gRiE_ND)985XR9m8*trD)# z%%MXu+@|cnxGm^ygZEk3km}%{%*~8Xufy+E1)J-{6B}e&jxJ!O!%mzA^8{>T50Qd*ntCq;dd}45N5d z3|P1)m}37Xhi?ao>AxP<68T>Ho{ISkE4%=YT5RnovkUssLBzeCA~zN3rb7R-6+_B$ zihVJZV})(+K%v{s|GpEEF_sgib4J?suatU5%wLKY$f?OzS~}Uh@%ve}Q|nOYDA`n< zX7_?4$58oG2lxEClowH3&7b0&0_iVS&u!%Hsx@sCU3EI4{IHit{EY`5a}oZ^;YrNW zu~JFqV*x(#^|gDa$^@cvJF_wTHpADdi%dI~n0_az!Z-5vbt9CS<@yN>+{6KKi!zqh zdm=AO@O$rDdMf4%@^j|SU>Yp2IWs{W!?VGST)G+pe+&9cz7!xOVvRoTOdJ2z%wL%e z9+6Nr$gzVu6)n7ZNJCSmZopX+jQLC?J35*^CunyzncT3^FTjphI7bV{QdDXT)H)A?q4cNHze5LmYeGD#l2d7zk~f|IO%Smps?AwNe!N{ye)(YU{g~v+0*&a z`<G!Zs(c*%+z@}$r4zOHS#+4SZ;d|T z!0xvRSH;c$^yH;{dci=h=%acSi;xmbyyM1Xf*kdzj?S*k!MyW5XZS!l!LtCy?AySQ z`4&w^=U8^sNPZbWIt0OA`oCVMT+;4z)QPwO5K6&qD5EnxfN1@T>bjEDv|BDRVXdn@ zq+WvMPCb*ejMeSvbf{2Z^+%bWPE_8l3oJIkYsiM|<)%Vd^D>(eDwvbnz?IwKe7+T+ zsqXC>47^`XM@aaG-9DSX4cL4|OcGYd%HSZ=f%WRnm%Ff1D^RWgYtL zA@C^ya9I3R(=wrYYz1y%AQ`-?a?&L#O=?4d`lKo zx+rQqRK=g#5xYxla(hP{6uFtu)~#j+vyXa&$8#qwwW;NTbX4-#P8)1dzpE;n2qeuq zNlw)6V|DW&(2CrfFOob$l+t}vHx&pl>iQo?=N-=G0tJrAF<&Ywz6} zt-XnvP%Wh;Hl;*sQ#YK) z{AgdM*Vr4xmlQRIGVJD6n=AsqOu{;Gz!VatEnZBPL^E*qoIj*2wGCBb4f9c5ow6*a z*K6w>P}v4+XB4OFaf>()+!{DTdJA0b{WyN`eTty@YJn6 za25(aky->__m@%I)$1wCc8NL@P=r*%1feng`36J^uWbIaf$q{-c~W{@YB|}~DOOm4 zVPonB+#^@9_#=*mxsTJDO&ta3%61+5qQQ~!&A|%;ekrmfIj3&*SEv}^s6a%a0hI&R znIwIS8j4`gj$;*FdfTUSa>}FmmPy&t#)$*8fQKxCFDGV=&9hvoR!zxwM?z1J-$4 zowCJjO+2I&XHX1i&VTceG=`7%iX#V5(im&pTR5!qju&i}PxBunP0qY5a;A2!$mm@P39VU0$5aF6RiX4Xw_8W_sPRSBgBW!)XsQ@tVy% z`0GN|zHD#TOCD>wwYxI?#m?Sd4yR2O#GG#NNra@@Na-z)S%uGA z+uRTM=w)tSgI_!^9-HyC*W+!BIdYoc58^Oh%L2;;`tOo!ox8)HhS##o_00G2W@}NC z-s$qNh~`f-u?X+(PhC9FbR? zC(-YQ_&b*On*Z(@yxqk_-!?sRwM_Kcd{dOx`b}3al`04XH4)*F6^|AAJx6XWdAs;f zKC<9Zes^}b%hZc?L^fT*Lo}UxT(qp&i5W3ah8Wa!oIh&2^kWyq;dtEKD!J&Iez3sY zc+HIloRd{fPKud4g6k#jylqw%&T%yWDgF5M%*K(zeUh&~ZU6@-?cIt@uFi)7)tzr< z+nCU;wNY1>H-#X|Tm%H6%ImI=^ny9O`J`l8^iflxgX0RN>8A6~b|hc65X;j~TUHlw znpX2wAqC|pVSzDpbNljLhJ?#g5PLGaLg2lNH$BgxcC0DT++fZT&Zps#qnK*@zsUI= zT(tFkH&dnekPfjfES5ZIarc1=IlacVKJ{7~!s{v9QMUL?6u_eJjAHv1F0#H_#RAn~(gwmFFZCpo=c&3sU(*VBYJa67On`ZqFQg>U|rWF-=4d6K45|x}o7GN7iizGU{`Ss)^HcE&BL4F3&f(UkN8`$hc9RRC zI_FXG3yqSn52=Z(OFiQ;8v&-^Y;<5mq3#st5jXtmOlBlD2i=Nhg z#W?p#P#A8G7E^eL7S4<|vPo$Cxk_@xtk#+C^c9r`!)43NHdz0;Rp+)jzrd)+r!wa{*S!)-{ZAwT77M)N)&~dVY)A+qA5ZV8qh z-pZ66JIkfZVG@2arkdMLVRm1+1tJEr`t6k0u7<}RM~=aAaL_6Qnp4oI2;RG)Y~7fI znE5mo&h@kOO<1aqB^TJ^nCW|YUZ^Ml<>@vL@0QC$6lnC^>Ck>Qb}o*=nLER-W-TYT zj}jk1r+#MS(`>B0cXqy4prUveH+iW2Ud|W^Dc&9+8NxdL(pGJOf(sI21o%ULO;fP! zQ!EMZYd15>-`rD^qah`LKc#Z*_vE2Ri~~@s6x-Keo^p=JVAXcqygBVm9Ap}~=$$=G zBbKyVXUKa>N8?w1>g-;-zBW%{8bj4VI&~FVMs<0tBX4HTIoNUKEzafGPaeC~;zyO> z2PR(JUN*`rD%ZO+RfuRtZx3j-33Ym9=bMWm+mw-1DHRrVe?u{-x#-1JBC92HjUaa? zCuZb9hreo&e*w0dLI+XNgREU4C%Z6{H5E+X3NS9Zv^ysA@%20XhEYdeyhhhU`rHo8 z+8VA^CqWZH-AF?0?iH+v9VGMZa{>$FQB|4~-N;FcIY`aPR(_+3c%Af@5*#}=okzhs zRI*MLi9kq}zotC>HFYPn^rn#$?tJ(cJy$C(Sy$X9%By}y6%|NfKi2$UUCb#*eH>^r zc|rW!@3I}=zU^c`+XdTjnS`3!eHNriSc0@f<$gZ|`qJ|A|wtbKRf@)=z#pgB@{C_m}h{3@bgD#L*NJEI4G03E4b_M@x=oicoKUZ@85 z_39j0Vd;y12cM5o%YP)?gpa3ocDfua9XCO~@;N>OJGN}tD*;WsgXBx4pKa%-IybaG z#Qjy~6hO&2do;+)>k$(0Utsr@&2A5sbow#l z&NoNOO5NmcGaPG?AR|(>XzuCEZ+yyKeLgD>76d+8W1?et!a$3aTvK>D5vvQwMkjyUX`ba*w5U_lB;7Fd z4crdCc(0)pov^^}Yjb%4;Y_Ksom6Nmf363_d!|xSEMc0S85D{qaA8jt2yHO}E*E%3 zR=wlS%omV0NBA`O@@!EOUp}(9HpHX3;8q(RY4GtR=)1XVfzE}wRbqvFFn+5=!6jce zTY~jrPUQST0D&yB|1q2@Rp6Q;jsRj6Z94ld;>ou)UCwHsj;oL!_U#|3 zx5+Rk7oh%m*7^=JfOHtmdIhTd6N#62biMmT$SDU85@piwdwq*XOFRr|KaovqhYWch9iU~=6RrGSq zKksM9WF;L32faTaWv2r%bdMRyT1X}Zb+Ie2(r6BJ@J64Vj)(0 z8MPs9+57kw+GQ3!PDA^Se#9qy?=a6>`zm-L7q^77Se(kEdhf2vsoeTc*|Uil3A9+= z?vG~-uG>$p>w@Z0q|4?GG`68jG_!_%t#cfk>dGinE#l(7a;*R)B8x6mi8ytIsPAVL zT>9!57hS!sZg6E*YN*v->{}s3%3I@M92vZ$y6=Dg9sT)N%qm=ND*Ab$U0M2$mr;*# z^yxw1EqUrQ6UnIbd77nAiVI-z>TMGZ+^uRF{zleFmvvWetJdCWB1?DTLX|!?Tz;=` zn-dyuAs92{O8)JAf~pgwtRQkjaX0&gf?U!RaLz!za)Gb15e1d6u4886NKrXb`fhv1 zq1O(=tCMY(*QT+V2b%Jj$#+;oIJJ6Bl@s@3gg2;s-E5q*GuMKGmjpD2b%aNOzuZYs z7EP>O?v1`Q)3dNilFZ9Aumx(V{ z;-}V|IrOK_+V?;es$+DJM*-Bos~&t`>l*e$c{ z&Y&|}vaRkbGmAV?l)B3~y{T>7Q@>Rbr-h}i&N65 zXg4qX=L4Kh&NGz>owqU)V`Ec!mog?2xhBc9`sP{AQ>9Wr5#cl=d;V^p#QWmAJuf7f z344)SG*A9q>J9kXGP(kHH9%l%o{plKKSnaWLz9j3N4;oxx+e+ACM4tEmhjQ_r?3Q0 zhER&JH(Thfdl>efv$Q^_i^sjr?4m9AJ#M#bOZTzobJI!MqUujg1!b7y6mF;^m-dyP zx|}L_oJQu{l-zbrP5rg`HQ9VJX-j*Z_2x>EIn_?5slWe;i()XeOrF6p|C^&{j^JcJ z?!|CXUrgqyU5NEm(&N;Kj9Jq8x`)jCfnw&$*`k-UTT{+-b`K|>(1jt9wDw=K9o*o^w@)7dKr%GKwR(z?k3 z!Khk7Kl`$i9MLs=j~E0S1Fdvz7O&WLSC8%4ghvhlYHg@@QS%n>REUG$u&KR$e(wH( z2Bne4!yA1{jLb-n4tY(YIb}ai;NWY&0!MKpyg1wM(B`3Y)rSvEqx+w2_zK4IPxFtx zj%kQNmMCIChHV_q$$GL;QG3kMsj)e1e&%ZQL8nc&J4D}l*ThcCyRpD<&j>7jNS9ml z;uA}(N6qwE6fbukEi{3?hax(#e)A9;X&~eAVkhCv=0HT7cDyM?7Sxy`O+ua?Yy=3g z%6LSbOt{*@F-|8ba!#^MKqfCx&#zR6tOc7!O8W9n?0B8DxiXV?ypTFy>zihy`l-E> zHgOf#?m)y$M+fRjIIqLg-5WycJ+AHdzq?mu2sP*AW;y%Y>-+hWgbnV)9{hGo?*nUg zPww&vbVugwI&H|HEzV%!9vnrp3@N)a+U;J8{Rh11@2Y2EpGud@ee8FcX%WVxRx6`uBC-dWPA0noFSe z@6);&9R8$RmpSewiC<1dAU?%GdMPMeQppLp;!cEA5*>+Yza}XPf)(Ek4OH%ou`b)y zR+f(VosP&^1>f48S}OVeoaI}}J4|lCm%Q-xls*&Q5wv6*Z-PyN$outpW208ZAYy>> zvAzK?_Cye}juD&jdG#H5u#iua@WpSJs@)Ocp-NBcRkO^Dr51$IyH>@$&x+7^>w0GW zKzAp#@VsLRzqs#!bYADPhEbaDE<xhpCq}ODX2X6oBFimWHm(G z+Cu_HkJUN9e}N_)^Qs3H&gbk2`5nU589pOvxfYLU@uQjX=fLt` zWhWC|JYoBD>+FfDAm8|6pTtFQ=dw8OMzh}P>JLl{sulk-@mqB)JJCXUeoaCJ(_R%g z_m)Z!?6LqeCxy6E( z-V?|M?SCXe8IT%IxbS%hbIbnATR{hRoGRp$2?5QhbC=WT`K2}DHd4Zgg$Ri|)eQv< zdIAKUU}f>Vg0K@GK!h(v42`0A7!{3>PUYoowH^&>@cmocbG9*NK~8>V;9Due_{yvL(RZ7hsc*HEq7j85r zn%EUY$)e=_`qDN~>YQ`@V)GC9j63oP24fpc5a<4Qf66ynGRVZ1C3I&lC9A*xuqWFD z$W#QCD`yd{bA}@>9R`@)xxnHUp3DOmP~b%_?4Brati#bWrBL`m_JfQ{{HecQ{=^4u zHX^_K3~3|YiiyUsl1Q^hpuerfeDdZhBvq>|>@b!o719eWck1$PZ$EKgT=}Kj2L~Mz zb0_ZuS?%XXje!;X?ZH^oZDNKJFM9%C5^CVgWSGx7y(rF>3K+gOnptlYiX(H@t3^_7 zwj?{NkT4Xn(m?kAY*-Ik`c+k>%SGQPIF@RUvpX%#xyv@uFi7h7sA(ncN+=^?ZjQ=w zu}cnu7HO=xy?yy^^3v&^X>=_kgW33(Jw@2MTrP=Rg2^I%!lqmAXbqkj?-cMxIbX_p z|903b*kq{D4|^%=J3jS$u$Q4vn7bRqzvSC{E8n^Ds_a#o9=fOfaave$BV*v)D#tkf zL#p(R_^b*dvte~z+eYxa&twjcVuL$XE_aRh(vAop* zbLl8Mk!)~c<<+vtZHyci>$ILL;G<+m^Z?1Z5E+xYrg_ghy9v3<+o4Tm1S5bmWPbT< z6XGL{c?v0Us)^23-V2L5j|RnKqZ&C zlSMATnu~|w78yG;&B5x^scA(!i?&TU;kdZoZF(<14r1># zS3J_|bYo>`yl;d9odPbgpcm zOr0z9_kElErJ`if@ zzd$ytIml-)G^@Br0+Y*YOP#p~f6n-iC*j~cUnPrO$h{AIEW3re!7*5M!@{dj#fG+g zL7aXmezN@QHci40UfvO2*Jj`A2xx(VQIkLWpF4B|@{@6XH0(s$fAZ89vXAW)sUsdwIZ{yxyMO0ju~Iv;uJm(|Zg_Dykgt_id=Qvg_EuWjh= zQNS~`uBs7mc`S6k7jmQ^A-rAXr*^h|poMw0T z53+4IH6TAq7ZOqdpa$`#k>>ZcxF%2;H)wcAF3bSMQs}Ea-U&B`3!Ib8J{#DoF*3Vs zGM4IL+F`$jj|}INF%H___&`x1ttk6OHW1;z!`vT5S`VR^>UgMa^0hbB_XWj#ld_}& zrh508Cre58;onM^aKE4c=XPi{Rgz;b+qjbmh_ub#enBIRPdrn@dLci<&zZDT%_i_JM1ugFi;Q?yv7?*{!{njdFXq zeoJknDA9G$*+7Hp7YYW;1qT!^+PD8~@N%!=Ex>Sp;3+X(rktT1*O`L8dnVRXzH$)gjaoDnVI<3-pcRuA4wRN&GHC# z5-F*du1igM>&trqQE6^gDT52Cw&4qx(|(_e1DYD_iIF%s=CbLR)q{mEAWPd@Wl|NB zPFibcl(kZ!6Y&2zpQHW_dAnKa>%TNvl8+J27J0gKtpL#LnB;qBUL5w!w-d(_1V)u! zBc&dWU*?G27xE2W^m^x2QJij>$5T5gB+)J6pUCds^-D_C_DgvRSK378p{qDKj`z*G zflY%~wS3%<-aGExXdMXAQlq~68x@P8k~DjpeW@_RVn(s-&PdsHl8+*)b>CFs70ul<(@b=e!L z|F9cMe#@Nw(7_K12{*H=ZzjKs@N`I)Bc3g+dF_>))YjB|Yk=w}33td!=?Iv~=|M-P zKT_OO5^d(7d^o7~E_RONS2BnLezlLRfF@AhP76@jt*e0lN!<>ug?n6@Mq$d_ú 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%0AOmrW~f^+X8Bb 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

{Lr#(zOsP($y)w6i#^Nv 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ξ{?=>OIGdU{>vmG-^r?3 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 literal 0 HcmV?d00001 diff --git a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision.Tests/testsettings.json b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision.Tests/testsettings.json new file mode 100644 index 000000000000..f40129e6ef75 --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision.Tests/testsettings.json @@ -0,0 +1,4 @@ +{ + "subscriptionKey": "{PUT_YOUR_KEY_HERE}", + "region": "WestCentralUS" +} diff --git a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision.sln b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision.sln new file mode 100644 index 000000000000..54d49997b3db --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision.sln @@ -0,0 +1,28 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 15 +VisualStudioVersion = 15.0.26430.16 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.CognitiveServices.Vision", "Microsoft.CognitiveServices.Vision\Microsoft.CognitiveServices.Vision.csproj", "{6807B854-8528-4FEE-A25D-C43C3AA2D601}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.CognitiveServices.Vision.Tests", "Microsoft.CognitiveServices.Vision.Tests\Microsoft.CognitiveServices.Vision.Tests.csproj", "{5987D97A-E532-450C-BF22-A1F595C927F1}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {6807B854-8528-4FEE-A25D-C43C3AA2D601}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6807B854-8528-4FEE-A25D-C43C3AA2D601}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6807B854-8528-4FEE-A25D-C43C3AA2D601}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6807B854-8528-4FEE-A25D-C43C3AA2D601}.Release|Any CPU.Build.0 = Release|Any CPU + {5987D97A-E532-450C-BF22-A1F595C927F1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5987D97A-E532-450C-BF22-A1F595C927F1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5987D97A-E532-450C-BF22-A1F595C927F1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5987D97A-E532-450C-BF22-A1F595C927F1}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/FaceAPI.cs b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/FaceAPI.cs new file mode 100644 index 000000000000..f2bb1b0bc7b6 --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/FaceAPI.cs @@ -0,0 +1,137 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.Rest; + using Microsoft.Rest.Serialization; + using Models; + using Newtonsoft.Json; + using System.Collections; + using System.Collections.Generic; + using System.Net; + using System.Net.Http; + + ///

+ /// An API for face detection, verification, and identification. + /// + public partial class FaceAPI : ServiceClient, IFaceAPI + { + /// + /// The base URI of the service. + /// + internal string BaseUri {get; set;} + + /// + /// Gets or sets json serialization settings. + /// + public JsonSerializerSettings SerializationSettings { get; private set; } + + /// + /// Gets or sets json deserialization settings. + /// + public JsonSerializerSettings DeserializationSettings { get; private set; } + + /// + /// Supported Azure regions for Face Detection endpoints. Possible values + /// include: 'westus', 'westeurope', 'southeastasia', 'eastus2', + /// 'westcentralus' + /// + public string AzureRegion1 { get; set; } + + /// + /// Subscription key in header + /// + public string SubscriptionKey { get; set; } + + /// + /// Gets the IFaceOperations. + /// + public virtual IFaceOperations Face { get; private set; } + + /// + /// Gets the IPerson. + /// + public virtual IPerson Person { get; private set; } + + /// + /// Gets the IPersonGroup. + /// + public virtual IPersonGroup PersonGroup { get; private set; } + + /// + /// Gets the IFaceList. + /// + public virtual IFaceList FaceList { get; private set; } + + /// + /// Initializes a new instance of the FaceAPI class. + /// + /// + /// Optional. The delegating handlers to add to the http client pipeline. + /// + public FaceAPI(params DelegatingHandler[] handlers) : base(handlers) + { + Initialize(); + } + + /// + /// Initializes a new instance of the FaceAPI class. + /// + /// + /// Optional. The http client handler used to handle http transport. + /// + /// + /// Optional. The delegating handlers to add to the http client pipeline. + /// + public FaceAPI(HttpClientHandler rootHandler, params DelegatingHandler[] handlers) : base(rootHandler, handlers) + { + Initialize(); + } + + /// + /// An optional partial-method to perform custom initialization. + /// + partial void CustomInitialize(); + /// + /// Initializes client properties. + /// + private void Initialize() + { + Face = new FaceOperations(this); + Person = new Person(this); + PersonGroup = new PersonGroup(this); + FaceList = new FaceList(this); + BaseUri = "https://{azureRegion}.api.cognitive.microsoft.com/face/v1.0"; + SerializationSettings = new JsonSerializerSettings + { + Formatting = Newtonsoft.Json.Formatting.Indented, + DateFormatHandling = Newtonsoft.Json.DateFormatHandling.IsoDateFormat, + DateTimeZoneHandling = Newtonsoft.Json.DateTimeZoneHandling.Utc, + NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore, + ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Serialize, + ContractResolver = new ReadOnlyJsonContractResolver(), + Converters = new List + { + new Iso8601TimeSpanConverter() + } + }; + DeserializationSettings = new JsonSerializerSettings + { + DateFormatHandling = Newtonsoft.Json.DateFormatHandling.IsoDateFormat, + DateTimeZoneHandling = Newtonsoft.Json.DateTimeZoneHandling.Utc, + NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore, + ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Serialize, + ContractResolver = new ReadOnlyJsonContractResolver(), + Converters = new List + { + new Iso8601TimeSpanConverter() + } + }; + CustomInitialize(); + } + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/FaceList.cs b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/FaceList.cs new file mode 100644 index 000000000000..8715db57cd79 --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/FaceList.cs @@ -0,0 +1,1400 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.Rest; + using Models; + using Newtonsoft.Json; + using System.Collections; + using System.Collections.Generic; + using System.IO; + using System.Net; + using System.Net.Http; + using System.Threading; + using System.Threading.Tasks; + + /// + /// FaceList operations. + /// + public partial class FaceList : IServiceOperations, IFaceList + { + /// + /// Initializes a new instance of the FaceList class. + /// + /// + /// Reference to the service client. + /// + /// + /// Thrown when a required parameter is null + /// + public FaceList(FaceAPI client) + { + if (client == null) + { + throw new System.ArgumentNullException("client"); + } + Client = client; + } + + /// + /// Gets a reference to the FaceAPI + /// + public FaceAPI Client { get; private set; } + + /// + /// Create an empty face list. Up to 64 face lists are allowed to exist in one + /// subscription. + /// + /// + /// Id referencing a particular face list. + /// + /// + /// Name of the face list, maximum length is 128. + /// + /// + /// Optional user defined data for the face list. Length should not exceed + /// 16KB. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task CreateWithHttpMessagesAsync(string faceListId, string name = default(string), string userData = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.AzureRegion1 == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); + } + if (faceListId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "faceListId"); + } + if (faceListId != null) + { + if (faceListId.Length > 64) + { + throw new ValidationException(ValidationRules.MaxLength, "faceListId", 64); + } + if (!System.Text.RegularExpressions.Regex.IsMatch(faceListId, "^[a-z0-9-_]+$")) + { + throw new ValidationException(ValidationRules.Pattern, "faceListId", "^[a-z0-9-_]+$"); + } + } + if (Client.SubscriptionKey == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); + } + if (name != null) + { + if (name.Length > 128) + { + throw new ValidationException(ValidationRules.MaxLength, "name", 128); + } + } + if (userData != null) + { + if (userData.Length > 16384) + { + throw new ValidationException(ValidationRules.MaxLength, "userData", 16384); + } + } + CreateFaceListRequest body = new CreateFaceListRequest(); + if (name != null || userData != null) + { + body.Name = name; + body.UserData = userData; + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("faceListId", faceListId); + tracingParameters.Add("body", body); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "Create", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "facelists/{faceListId}"; + _url = _url.Replace("{azureRegion}", Client.AzureRegion1); + _url = _url.Replace("{faceListId}", System.Uri.EscapeDataString(faceListId)); + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("PUT"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.SubscriptionKey != null) + { + if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) + { + _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); + } + _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + if(body != null) + { + _requestContent = Rest.Serialization.SafeJsonConvert.SerializeObject(body, Client.SerializationSettings); + _httpRequest.Content = new StringContent(_requestContent, System.Text.Encoding.UTF8); + _httpRequest.Content.Headers.ContentType =System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json; charset=utf-8"); + } + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + /// + /// Retrieve a face list's information. + /// + /// + /// Id referencing a Face List. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task> GetWithHttpMessagesAsync(string faceListId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.AzureRegion1 == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); + } + if (faceListId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "faceListId"); + } + if (faceListId != null) + { + if (faceListId.Length > 64) + { + throw new ValidationException(ValidationRules.MaxLength, "faceListId", 64); + } + if (!System.Text.RegularExpressions.Regex.IsMatch(faceListId, "^[a-z0-9-_]+$")) + { + throw new ValidationException(ValidationRules.Pattern, "faceListId", "^[a-z0-9-_]+$"); + } + } + if (Client.SubscriptionKey == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("faceListId", faceListId); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "Get", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "facelists/{faceListId}"; + _url = _url.Replace("{azureRegion}", Client.AzureRegion1); + _url = _url.Replace("{faceListId}", System.Uri.EscapeDataString(faceListId)); + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("GET"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.SubscriptionKey != null) + { + if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) + { + _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); + } + _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + // Deserialize Response + if ((int)_statusCode == 200) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + } + catch (JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); + } + } + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + /// + /// Update information of a face list. + /// + /// + /// Id referencing a Face List. + /// + /// + /// Name of the face list, maximum length is 128. + /// + /// + /// Optional user defined data for the face list. Length should not exceed + /// 16KB. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task UpdateWithHttpMessagesAsync(string faceListId, string name = default(string), string userData = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.AzureRegion1 == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); + } + if (faceListId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "faceListId"); + } + if (faceListId != null) + { + if (faceListId.Length > 64) + { + throw new ValidationException(ValidationRules.MaxLength, "faceListId", 64); + } + if (!System.Text.RegularExpressions.Regex.IsMatch(faceListId, "^[a-z0-9-_]+$")) + { + throw new ValidationException(ValidationRules.Pattern, "faceListId", "^[a-z0-9-_]+$"); + } + } + if (Client.SubscriptionKey == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); + } + if (name != null) + { + if (name.Length > 128) + { + throw new ValidationException(ValidationRules.MaxLength, "name", 128); + } + } + if (userData != null) + { + if (userData.Length > 16384) + { + throw new ValidationException(ValidationRules.MaxLength, "userData", 16384); + } + } + CreateFaceListRequest body = new CreateFaceListRequest(); + if (name != null || userData != null) + { + body.Name = name; + body.UserData = userData; + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("faceListId", faceListId); + tracingParameters.Add("body", body); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "Update", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "facelists/{faceListId}"; + _url = _url.Replace("{azureRegion}", Client.AzureRegion1); + _url = _url.Replace("{faceListId}", System.Uri.EscapeDataString(faceListId)); + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("PATCH"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.SubscriptionKey != null) + { + if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) + { + _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); + } + _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + if(body != null) + { + _requestContent = Rest.Serialization.SafeJsonConvert.SerializeObject(body, Client.SerializationSettings); + _httpRequest.Content = new StringContent(_requestContent, System.Text.Encoding.UTF8); + _httpRequest.Content.Headers.ContentType =System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json; charset=utf-8"); + } + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + /// + /// Delete an existing face list according to faceListId. Persisted face images + /// in the face list will also be deleted. + /// + /// + /// Id referencing a Face List. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task DeleteWithHttpMessagesAsync(string faceListId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.AzureRegion1 == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); + } + if (faceListId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "faceListId"); + } + if (faceListId != null) + { + if (faceListId.Length > 64) + { + throw new ValidationException(ValidationRules.MaxLength, "faceListId", 64); + } + if (!System.Text.RegularExpressions.Regex.IsMatch(faceListId, "^[a-z0-9-_]+$")) + { + throw new ValidationException(ValidationRules.Pattern, "faceListId", "^[a-z0-9-_]+$"); + } + } + if (Client.SubscriptionKey == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("faceListId", faceListId); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "Delete", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "facelists/{faceListId}"; + _url = _url.Replace("{azureRegion}", Client.AzureRegion1); + _url = _url.Replace("{faceListId}", System.Uri.EscapeDataString(faceListId)); + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("DELETE"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.SubscriptionKey != null) + { + if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) + { + _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); + } + _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + /// + /// Retrieve information about all existing face lists. Only faceListId, name + /// and userData will be returned. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task>> ListWithHttpMessagesAsync(Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.AzureRegion1 == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); + } + if (Client.SubscriptionKey == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "List", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "facelists"; + _url = _url.Replace("{azureRegion}", Client.AzureRegion1); + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("GET"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.SubscriptionKey != null) + { + if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) + { + _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); + } + _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse>(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + // Deserialize Response + if ((int)_statusCode == 200) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject>(_responseContent, Client.DeserializationSettings); + } + catch (JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); + } + } + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + /// + /// Delete an existing face from a face list (given by a persisitedFaceId and a + /// faceListId). Persisted image related to the face will also be deleted. + /// + /// + /// faceListId of an existing face list. + /// + /// + /// persistedFaceId of an existing face. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task DeleteFaceWithHttpMessagesAsync(string faceListId, string persistedFaceId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.AzureRegion1 == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); + } + if (faceListId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "faceListId"); + } + if (faceListId != null) + { + if (faceListId.Length > 64) + { + throw new ValidationException(ValidationRules.MaxLength, "faceListId", 64); + } + if (!System.Text.RegularExpressions.Regex.IsMatch(faceListId, "^[a-z0-9-_]+$")) + { + throw new ValidationException(ValidationRules.Pattern, "faceListId", "^[a-z0-9-_]+$"); + } + } + if (persistedFaceId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "persistedFaceId"); + } + if (Client.SubscriptionKey == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("faceListId", faceListId); + tracingParameters.Add("persistedFaceId", persistedFaceId); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "DeleteFace", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "facelists/{faceListId}/persistedFaces/{persistedFaceId}"; + _url = _url.Replace("{azureRegion}", Client.AzureRegion1); + _url = _url.Replace("{faceListId}", System.Uri.EscapeDataString(faceListId)); + _url = _url.Replace("{persistedFaceId}", System.Uri.EscapeDataString(persistedFaceId)); + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("DELETE"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.SubscriptionKey != null) + { + if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) + { + _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); + } + _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + /// + /// Add a face to a face list. The input face is specified as an image with a + /// targetFace rectangle. It returns a persistedFaceId representing the added + /// face, and persistedFaceId will not expire. + /// + /// + /// Id referencing a Face List. + /// + /// + /// User-specified data about the face list for any purpose. The maximum + /// length is 1KB. + /// + /// + /// A face rectangle to specify the target face to be added into the face list, + /// in the format of "targetFace=left,top,width,height". E.g. + /// "targetFace=10,10,100,100". If there is more than one face in the image, + /// targetFace is required to specify which face to add. No targetFace means + /// there is only one face detected in the entire image. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task AddFaceWithHttpMessagesAsync(string faceListId, string userData = default(string), string targetFace = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.AzureRegion1 == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); + } + if (faceListId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "faceListId"); + } + if (faceListId != null) + { + if (faceListId.Length > 64) + { + throw new ValidationException(ValidationRules.MaxLength, "faceListId", 64); + } + if (!System.Text.RegularExpressions.Regex.IsMatch(faceListId, "^[a-z0-9-_]+$")) + { + throw new ValidationException(ValidationRules.Pattern, "faceListId", "^[a-z0-9-_]+$"); + } + } + if (Client.SubscriptionKey == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("faceListId", faceListId); + tracingParameters.Add("userData", userData); + tracingParameters.Add("targetFace", targetFace); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "AddFace", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "facelists/{faceListId}/persistedFaces"; + _url = _url.Replace("{azureRegion}", Client.AzureRegion1); + _url = _url.Replace("{faceListId}", System.Uri.EscapeDataString(faceListId)); + List _queryParameters = new List(); + if (userData != null) + { + _queryParameters.Add(string.Format("userData={0}", System.Uri.EscapeDataString(userData))); + } + if (targetFace != null) + { + _queryParameters.Add(string.Format("targetFace={0}", System.Uri.EscapeDataString(targetFace))); + } + if (_queryParameters.Count > 0) + { + _url += "?" + string.Join("&", _queryParameters); + } + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("POST"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.SubscriptionKey != null) + { + if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) + { + _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); + } + _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + /// + /// Add a face to a face list. The input face is specified as an image with a + /// targetFace rectangle. It returns a persistedFaceId representing the added + /// face, and persistedFaceId will not expire. + /// + /// + /// Id referencing a Face List. + /// + /// + /// User-specified data about the face list for any purpose. The maximum + /// length is 1KB. + /// + /// + /// A face rectangle to specify the target face to be added into the face list, + /// in the format of "targetFace=left,top,width,height". E.g. + /// "targetFace=10,10,100,100". If there is more than one face in the image, + /// targetFace is required to specify which face to add. No targetFace means + /// there is only one face detected in the entire image. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task AddFaceFromStreamWithHttpMessagesAsync(string faceListId, string userData = default(string), string targetFace = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.AzureRegion1 == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); + } + if (faceListId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "faceListId"); + } + if (faceListId != null) + { + if (faceListId.Length > 64) + { + throw new ValidationException(ValidationRules.MaxLength, "faceListId", 64); + } + if (!System.Text.RegularExpressions.Regex.IsMatch(faceListId, "^[a-z0-9-_]+$")) + { + throw new ValidationException(ValidationRules.Pattern, "faceListId", "^[a-z0-9-_]+$"); + } + } + if (Client.SubscriptionKey == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("faceListId", faceListId); + tracingParameters.Add("userData", userData); + tracingParameters.Add("targetFace", targetFace); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "AddFaceFromStream", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "facelists/{faceListId}/persistedFaces"; + _url = _url.Replace("{azureRegion}", Client.AzureRegion1); + _url = _url.Replace("{faceListId}", System.Uri.EscapeDataString(faceListId)); + List _queryParameters = new List(); + if (userData != null) + { + _queryParameters.Add(string.Format("userData={0}", System.Uri.EscapeDataString(userData))); + } + if (targetFace != null) + { + _queryParameters.Add(string.Format("targetFace={0}", System.Uri.EscapeDataString(targetFace))); + } + if (_queryParameters.Count > 0) + { + _url += "?" + string.Join("&", _queryParameters); + } + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("POST"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.SubscriptionKey != null) + { + if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) + { + _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); + } + _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/FaceListExtensions.cs b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/FaceListExtensions.cs new file mode 100644 index 000000000000..90a316dad1f6 --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/FaceListExtensions.cs @@ -0,0 +1,363 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Models; + using System.Collections; + using System.Collections.Generic; + using System.Threading; + using System.Threading.Tasks; + + /// + /// Extension methods for FaceList. + /// + public static partial class FaceListExtensions + { + /// + /// Create an empty face list. Up to 64 face lists are allowed to exist in one + /// subscription. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Id referencing a particular face list. + /// + /// + /// Name of the face list, maximum length is 128. + /// + /// + /// Optional user defined data for the face list. Length should not exceed + /// 16KB. + /// + public static void Create(this IFaceList operations, string faceListId, string name = default(string), string userData = default(string)) + { + operations.CreateAsync(faceListId, name, userData).GetAwaiter().GetResult(); + } + + /// + /// Create an empty face list. Up to 64 face lists are allowed to exist in one + /// subscription. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Id referencing a particular face list. + /// + /// + /// Name of the face list, maximum length is 128. + /// + /// + /// Optional user defined data for the face list. Length should not exceed + /// 16KB. + /// + /// + /// The cancellation token. + /// + public static async Task CreateAsync(this IFaceList operations, string faceListId, string name = default(string), string userData = default(string), CancellationToken cancellationToken = default(CancellationToken)) + { + (await operations.CreateWithHttpMessagesAsync(faceListId, name, userData, null, cancellationToken).ConfigureAwait(false)).Dispose(); + } + + /// + /// Retrieve a face list's information. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Id referencing a Face List. + /// + public static GetFaceListResult Get(this IFaceList operations, string faceListId) + { + return operations.GetAsync(faceListId).GetAwaiter().GetResult(); + } + + /// + /// Retrieve a face list's information. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Id referencing a Face List. + /// + /// + /// The cancellation token. + /// + public static async Task GetAsync(this IFaceList operations, string faceListId, CancellationToken cancellationToken = default(CancellationToken)) + { + using (var _result = await operations.GetWithHttpMessagesAsync(faceListId, null, cancellationToken).ConfigureAwait(false)) + { + return _result.Body; + } + } + + /// + /// Update information of a face list. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Id referencing a Face List. + /// + /// + /// Name of the face list, maximum length is 128. + /// + /// + /// Optional user defined data for the face list. Length should not exceed + /// 16KB. + /// + public static void Update(this IFaceList operations, string faceListId, string name = default(string), string userData = default(string)) + { + operations.UpdateAsync(faceListId, name, userData).GetAwaiter().GetResult(); + } + + /// + /// Update information of a face list. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Id referencing a Face List. + /// + /// + /// Name of the face list, maximum length is 128. + /// + /// + /// Optional user defined data for the face list. Length should not exceed + /// 16KB. + /// + /// + /// The cancellation token. + /// + public static async Task UpdateAsync(this IFaceList operations, string faceListId, string name = default(string), string userData = default(string), CancellationToken cancellationToken = default(CancellationToken)) + { + (await operations.UpdateWithHttpMessagesAsync(faceListId, name, userData, null, cancellationToken).ConfigureAwait(false)).Dispose(); + } + + /// + /// Delete an existing face list according to faceListId. Persisted face images + /// in the face list will also be deleted. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Id referencing a Face List. + /// + public static void Delete(this IFaceList operations, string faceListId) + { + operations.DeleteAsync(faceListId).GetAwaiter().GetResult(); + } + + /// + /// Delete an existing face list according to faceListId. Persisted face images + /// in the face list will also be deleted. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Id referencing a Face List. + /// + /// + /// The cancellation token. + /// + public static async Task DeleteAsync(this IFaceList operations, string faceListId, CancellationToken cancellationToken = default(CancellationToken)) + { + (await operations.DeleteWithHttpMessagesAsync(faceListId, null, cancellationToken).ConfigureAwait(false)).Dispose(); + } + + /// + /// Retrieve information about all existing face lists. Only faceListId, name + /// and userData will be returned. + /// + /// + /// The operations group for this extension method. + /// + public static IList List(this IFaceList operations) + { + return operations.ListAsync().GetAwaiter().GetResult(); + } + + /// + /// Retrieve information about all existing face lists. Only faceListId, name + /// and userData will be returned. + /// + /// + /// The operations group for this extension method. + /// + /// + /// The cancellation token. + /// + public static async Task> ListAsync(this IFaceList operations, CancellationToken cancellationToken = default(CancellationToken)) + { + using (var _result = await operations.ListWithHttpMessagesAsync(null, cancellationToken).ConfigureAwait(false)) + { + return _result.Body; + } + } + + /// + /// Delete an existing face from a face list (given by a persisitedFaceId and a + /// faceListId). Persisted image related to the face will also be deleted. + /// + /// + /// The operations group for this extension method. + /// + /// + /// faceListId of an existing face list. + /// + /// + /// persistedFaceId of an existing face. + /// + public static void DeleteFace(this IFaceList operations, string faceListId, string persistedFaceId) + { + operations.DeleteFaceAsync(faceListId, persistedFaceId).GetAwaiter().GetResult(); + } + + /// + /// Delete an existing face from a face list (given by a persisitedFaceId and a + /// faceListId). Persisted image related to the face will also be deleted. + /// + /// + /// The operations group for this extension method. + /// + /// + /// faceListId of an existing face list. + /// + /// + /// persistedFaceId of an existing face. + /// + /// + /// The cancellation token. + /// + public static async Task DeleteFaceAsync(this IFaceList operations, string faceListId, string persistedFaceId, CancellationToken cancellationToken = default(CancellationToken)) + { + (await operations.DeleteFaceWithHttpMessagesAsync(faceListId, persistedFaceId, null, cancellationToken).ConfigureAwait(false)).Dispose(); + } + + /// + /// Add a face to a face list. The input face is specified as an image with a + /// targetFace rectangle. It returns a persistedFaceId representing the added + /// face, and persistedFaceId will not expire. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Id referencing a Face List. + /// + /// + /// User-specified data about the face list for any purpose. The maximum + /// length is 1KB. + /// + /// + /// A face rectangle to specify the target face to be added into the face list, + /// in the format of "targetFace=left,top,width,height". E.g. + /// "targetFace=10,10,100,100". If there is more than one face in the image, + /// targetFace is required to specify which face to add. No targetFace means + /// there is only one face detected in the entire image. + /// + public static void AddFace(this IFaceList operations, string faceListId, string userData = default(string), string targetFace = default(string)) + { + operations.AddFaceAsync(faceListId, userData, targetFace).GetAwaiter().GetResult(); + } + + /// + /// Add a face to a face list. The input face is specified as an image with a + /// targetFace rectangle. It returns a persistedFaceId representing the added + /// face, and persistedFaceId will not expire. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Id referencing a Face List. + /// + /// + /// User-specified data about the face list for any purpose. The maximum + /// length is 1KB. + /// + /// + /// A face rectangle to specify the target face to be added into the face list, + /// in the format of "targetFace=left,top,width,height". E.g. + /// "targetFace=10,10,100,100". If there is more than one face in the image, + /// targetFace is required to specify which face to add. No targetFace means + /// there is only one face detected in the entire image. + /// + /// + /// The cancellation token. + /// + public static async Task AddFaceAsync(this IFaceList operations, string faceListId, string userData = default(string), string targetFace = default(string), CancellationToken cancellationToken = default(CancellationToken)) + { + (await operations.AddFaceWithHttpMessagesAsync(faceListId, userData, targetFace, null, cancellationToken).ConfigureAwait(false)).Dispose(); + } + + /// + /// Add a face to a face list. The input face is specified as an image with a + /// targetFace rectangle. It returns a persistedFaceId representing the added + /// face, and persistedFaceId will not expire. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Id referencing a Face List. + /// + /// + /// User-specified data about the face list for any purpose. The maximum + /// length is 1KB. + /// + /// + /// A face rectangle to specify the target face to be added into the face list, + /// in the format of "targetFace=left,top,width,height". E.g. + /// "targetFace=10,10,100,100". If there is more than one face in the image, + /// targetFace is required to specify which face to add. No targetFace means + /// there is only one face detected in the entire image. + /// + public static void AddFaceFromStream(this IFaceList operations, string faceListId, string userData = default(string), string targetFace = default(string)) + { + operations.AddFaceFromStreamAsync(faceListId, userData, targetFace).GetAwaiter().GetResult(); + } + + /// + /// Add a face to a face list. The input face is specified as an image with a + /// targetFace rectangle. It returns a persistedFaceId representing the added + /// face, and persistedFaceId will not expire. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Id referencing a Face List. + /// + /// + /// User-specified data about the face list for any purpose. The maximum + /// length is 1KB. + /// + /// + /// A face rectangle to specify the target face to be added into the face list, + /// in the format of "targetFace=left,top,width,height". E.g. + /// "targetFace=10,10,100,100". If there is more than one face in the image, + /// targetFace is required to specify which face to add. No targetFace means + /// there is only one face detected in the entire image. + /// + /// + /// The cancellation token. + /// + public static async Task AddFaceFromStreamAsync(this IFaceList operations, string faceListId, string userData = default(string), string targetFace = default(string), CancellationToken cancellationToken = default(CancellationToken)) + { + (await operations.AddFaceFromStreamWithHttpMessagesAsync(faceListId, userData, targetFace, null, cancellationToken).ConfigureAwait(false)).Dispose(); + } + + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/FaceOperations.cs b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/FaceOperations.cs new file mode 100644 index 000000000000..95954a94fc0e --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/FaceOperations.cs @@ -0,0 +1,1263 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.Rest; + using Models; + using Newtonsoft.Json; + using System.Collections; + using System.Collections.Generic; + using System.IO; + using System.Net; + using System.Net.Http; + using System.Threading; + using System.Threading.Tasks; + + /// + /// FaceOperations operations. + /// + public partial class FaceOperations : IServiceOperations, IFaceOperations + { + /// + /// Initializes a new instance of the FaceOperations class. + /// + /// + /// Reference to the service client. + /// + /// + /// Thrown when a required parameter is null + /// + public FaceOperations(FaceAPI client) + { + if (client == null) + { + throw new System.ArgumentNullException("client"); + } + Client = client; + } + + /// + /// Gets a reference to the FaceAPI + /// + public FaceAPI Client { get; private set; } + + /// + /// Given query face's faceId, find the similar-looking faces from a faceId + /// array or a faceListId. + /// + /// + /// FaceId of the query face. User needs to call Face - Detect first to get a + /// valid faceId. Note that this faceId is not persisted and will expire 24 + /// hours after the detection call + /// + /// + /// An existing user-specified unique candidate face list, created in Face List + /// - Create a Face List. Face list contains a set of persistedFaceIds which + /// are persisted and will never expire. Parameter faceListId and faceIds + /// should not be provided at the same time + /// + /// + /// An array of candidate faceIds. All of them are created by Face - Detect and + /// the faceIds will expire 24 hours after the detection call. + /// + /// + /// The number of top similar faces returned. The valid range is [1, 1000]. + /// + /// + /// Similar face searching mode. It can be "matchPerson" or "matchFace". + /// Possible values include: 'matchPerson', 'matchFace' + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task>> FindSimilarWithHttpMessagesAsync(string faceId, string faceListId = default(string), IList faceIds = default(IList), int? maxNumOfCandidatesReturned = 20, string mode = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.AzureRegion1 == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); + } + if (Client.SubscriptionKey == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); + } + if (faceId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "faceId"); + } + if (faceId != null) + { + if (faceId.Length > 64) + { + throw new ValidationException(ValidationRules.MaxLength, "faceId", 64); + } + } + if (faceListId != null) + { + if (faceListId.Length > 64) + { + throw new ValidationException(ValidationRules.MaxLength, "faceListId", 64); + } + if (!System.Text.RegularExpressions.Regex.IsMatch(faceListId, "^[a-z0-9-_]+$")) + { + throw new ValidationException(ValidationRules.Pattern, "faceListId", "^[a-z0-9-_]+$"); + } + } + if (faceIds != null) + { + if (faceIds.Count > 1000) + { + throw new ValidationException(ValidationRules.MaxItems, "faceIds", 1000); + } + } + if (maxNumOfCandidatesReturned > 1000) + { + throw new ValidationException(ValidationRules.InclusiveMaximum, "maxNumOfCandidatesReturned", 1000); + } + if (maxNumOfCandidatesReturned < 1) + { + throw new ValidationException(ValidationRules.InclusiveMinimum, "maxNumOfCandidatesReturned", 1); + } + FindSimilarRequest body = new FindSimilarRequest(); + if (faceId != null || faceListId != null || faceIds != null || maxNumOfCandidatesReturned != null || mode != null) + { + body.FaceId = faceId; + body.FaceListId = faceListId; + body.FaceIds = faceIds; + body.MaxNumOfCandidatesReturned = maxNumOfCandidatesReturned; + body.Mode = mode; + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("body", body); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "FindSimilar", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "findsimilars"; + _url = _url.Replace("{azureRegion}", Client.AzureRegion1); + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("POST"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.SubscriptionKey != null) + { + if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) + { + _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); + } + _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + if(body != null) + { + _requestContent = Rest.Serialization.SafeJsonConvert.SerializeObject(body, Client.SerializationSettings); + _httpRequest.Content = new StringContent(_requestContent, System.Text.Encoding.UTF8); + _httpRequest.Content.Headers.ContentType =System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json; charset=utf-8"); + } + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse>(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + // Deserialize Response + if ((int)_statusCode == 200) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject>(_responseContent, Client.DeserializationSettings); + } + catch (JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); + } + } + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + /// + /// Divide candidate faces into groups based on face similarity. + /// + /// + /// Array of candidate faceId created by Face - Detect. The maximum is 1000 + /// faces + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task> GroupWithHttpMessagesAsync(IList faceIds, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.AzureRegion1 == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); + } + if (Client.SubscriptionKey == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); + } + if (faceIds == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "faceIds"); + } + if (faceIds != null) + { + if (faceIds.Count > 1000) + { + throw new ValidationException(ValidationRules.MaxItems, "faceIds", 1000); + } + } + GroupRequest body = new GroupRequest(); + if (faceIds != null) + { + body.FaceIds = faceIds; + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("body", body); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "Group", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "group"; + _url = _url.Replace("{azureRegion}", Client.AzureRegion1); + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("POST"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.SubscriptionKey != null) + { + if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) + { + _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); + } + _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + if(body != null) + { + _requestContent = Rest.Serialization.SafeJsonConvert.SerializeObject(body, Client.SerializationSettings); + _httpRequest.Content = new StringContent(_requestContent, System.Text.Encoding.UTF8); + _httpRequest.Content.Headers.ContentType =System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json; charset=utf-8"); + } + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + // Deserialize Response + if ((int)_statusCode == 200) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + } + catch (JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); + } + } + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + /// + /// Identify unknown faces from a person group. + /// + /// + /// personGroupId of the target person group, created by PersonGroups.Create + /// + /// + /// Array of candidate faceId created by Face - Detect. + /// + /// + /// The number of top similar faces returned. + /// + /// + /// Confidence threshold of identification, used to judge whether one face + /// belong to one person. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task>> IdentifyWithHttpMessagesAsync(string personGroupId, IList faceIds, int? maxNumOfCandidatesReturned = 1, double? confidenceThreshold = default(double?), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.AzureRegion1 == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); + } + if (Client.SubscriptionKey == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); + } + if (personGroupId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "personGroupId"); + } + if (faceIds == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "faceIds"); + } + if (faceIds != null) + { + if (faceIds.Count > 1000) + { + throw new ValidationException(ValidationRules.MaxItems, "faceIds", 1000); + } + } + if (maxNumOfCandidatesReturned > 1000) + { + throw new ValidationException(ValidationRules.InclusiveMaximum, "maxNumOfCandidatesReturned", 1000); + } + if (maxNumOfCandidatesReturned < 1) + { + throw new ValidationException(ValidationRules.InclusiveMinimum, "maxNumOfCandidatesReturned", 1); + } + if (confidenceThreshold > 1) + { + throw new ValidationException(ValidationRules.InclusiveMaximum, "confidenceThreshold", 1); + } + if (confidenceThreshold < 0) + { + throw new ValidationException(ValidationRules.InclusiveMinimum, "confidenceThreshold", 0); + } + IdentifyRequest body = new IdentifyRequest(); + if (personGroupId != null || faceIds != null || maxNumOfCandidatesReturned != null || confidenceThreshold != null) + { + body.PersonGroupId = personGroupId; + body.FaceIds = faceIds; + body.MaxNumOfCandidatesReturned = maxNumOfCandidatesReturned; + body.ConfidenceThreshold = confidenceThreshold; + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("body", body); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "Identify", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "identify"; + _url = _url.Replace("{azureRegion}", Client.AzureRegion1); + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("POST"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.SubscriptionKey != null) + { + if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) + { + _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); + } + _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + if(body != null) + { + _requestContent = Rest.Serialization.SafeJsonConvert.SerializeObject(body, Client.SerializationSettings); + _httpRequest.Content = new StringContent(_requestContent, System.Text.Encoding.UTF8); + _httpRequest.Content.Headers.ContentType =System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json; charset=utf-8"); + } + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse>(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + // Deserialize Response + if ((int)_statusCode == 200) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject>(_responseContent, Client.DeserializationSettings); + } + catch (JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); + } + } + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + /// + /// Verify whether two faces belong to a same person or whether one face + /// belongs to a person. + /// + /// + /// faceId the face, comes from Face - Detect + /// + /// + /// Specify a certain person in a person group. personId is created in + /// Persons.Create. + /// + /// + /// Using existing personGroupId and personId for fast loading a specified + /// person. personGroupId is created in Person Groups.Create. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task> VerifyWithHttpMessagesAsync(string faceId, string personId, string personGroupId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.AzureRegion1 == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); + } + if (Client.SubscriptionKey == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); + } + if (faceId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "faceId"); + } + if (faceId != null) + { + if (faceId.Length > 64) + { + throw new ValidationException(ValidationRules.MaxLength, "faceId", 64); + } + } + if (personId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "personId"); + } + if (personGroupId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "personGroupId"); + } + VerifyRequest body = new VerifyRequest(); + if (faceId != null || personId != null || personGroupId != null) + { + body.FaceId = faceId; + body.PersonId = personId; + body.PersonGroupId = personGroupId; + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("body", body); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "Verify", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "verify"; + _url = _url.Replace("{azureRegion}", Client.AzureRegion1); + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("POST"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.SubscriptionKey != null) + { + if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) + { + _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); + } + _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + if(body != null) + { + _requestContent = Rest.Serialization.SafeJsonConvert.SerializeObject(body, Client.SerializationSettings); + _httpRequest.Content = new StringContent(_requestContent, System.Text.Encoding.UTF8); + _httpRequest.Content.Headers.ContentType =System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json; charset=utf-8"); + } + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + // Deserialize Response + if ((int)_statusCode == 200) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + } + catch (JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); + } + } + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + /// + /// Detect human faces in an image and returns face locations, and optionally + /// with faceIds, landmarks, and attributes. + /// + /// + /// + /// + /// A value indicating whether the operation should return faceIds of detected + /// faces. + /// + /// + /// A value indicating whether the operation should return landmarks of the + /// detected faces. + /// + /// + /// Analyze and return the one or more specified face attributes in the + /// comma-separated string like "returnFaceAttributes=age,gender". Supported + /// face attributes include age, gender, headPose, smile, facialHair, glasses + /// and emotion. Note that each face attribute analysis has additional + /// computational and time cost. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task>> DetectWithHttpMessagesAsync(string url, bool? returnFaceId = true, bool? returnFaceLandmarks = false, string returnFaceAttributes = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.AzureRegion1 == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); + } + if (Client.SubscriptionKey == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); + } + if (url == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "url"); + } + ImageUrl imageUrl = new ImageUrl(); + if (url != null) + { + imageUrl.Url = url; + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("returnFaceId", returnFaceId); + tracingParameters.Add("returnFaceLandmarks", returnFaceLandmarks); + tracingParameters.Add("returnFaceAttributes", returnFaceAttributes); + tracingParameters.Add("imageUrl", imageUrl); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "Detect", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "detect"; + _url = _url.Replace("{azureRegion}", Client.AzureRegion1); + List _queryParameters = new List(); + if (returnFaceId != null) + { + _queryParameters.Add(string.Format("returnFaceId={0}", System.Uri.EscapeDataString(Rest.Serialization.SafeJsonConvert.SerializeObject(returnFaceId, Client.SerializationSettings).Trim('"')))); + } + if (returnFaceLandmarks != null) + { + _queryParameters.Add(string.Format("returnFaceLandmarks={0}", System.Uri.EscapeDataString(Rest.Serialization.SafeJsonConvert.SerializeObject(returnFaceLandmarks, Client.SerializationSettings).Trim('"')))); + } + if (returnFaceAttributes != null) + { + _queryParameters.Add(string.Format("returnFaceAttributes={0}", System.Uri.EscapeDataString(returnFaceAttributes))); + } + if (_queryParameters.Count > 0) + { + _url += "?" + string.Join("&", _queryParameters); + } + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("POST"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.SubscriptionKey != null) + { + if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) + { + _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); + } + _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + if(imageUrl != null) + { + _requestContent = Rest.Serialization.SafeJsonConvert.SerializeObject(imageUrl, Client.SerializationSettings); + _httpRequest.Content = new StringContent(_requestContent, System.Text.Encoding.UTF8); + _httpRequest.Content.Headers.ContentType =System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json; charset=utf-8"); + } + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse>(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + // Deserialize Response + if ((int)_statusCode == 200) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject>(_responseContent, Client.DeserializationSettings); + } + catch (JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); + } + } + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + /// + /// Detect human faces in an image and returns face locations, and optionally + /// with faceIds, landmarks, and attributes. + /// + /// + /// An image stream. + /// + /// + /// A value indicating whether the operation should return faceIds of detected + /// faces. + /// + /// + /// A value indicating whether the operation should return landmarks of the + /// detected faces. + /// + /// + /// Analyze and return the one or more specified face attributes in the + /// comma-separated string like "returnFaceAttributes=age,gender". Supported + /// face attributes include age, gender, headPose, smile, facialHair, glasses + /// and emotion. Note that each face attribute analysis has additional + /// computational and time cost. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task>> DetectInStreamWithHttpMessagesAsync(Stream image, bool? returnFaceId = true, bool? returnFaceLandmarks = false, string returnFaceAttributes = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.AzureRegion1 == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); + } + if (Client.SubscriptionKey == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); + } + if (image == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "image"); + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("returnFaceId", returnFaceId); + tracingParameters.Add("returnFaceLandmarks", returnFaceLandmarks); + tracingParameters.Add("returnFaceAttributes", returnFaceAttributes); + tracingParameters.Add("image", image); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "DetectInStream", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "detect"; + _url = _url.Replace("{azureRegion}", Client.AzureRegion1); + List _queryParameters = new List(); + if (returnFaceId != null) + { + _queryParameters.Add(string.Format("returnFaceId={0}", System.Uri.EscapeDataString(Rest.Serialization.SafeJsonConvert.SerializeObject(returnFaceId, Client.SerializationSettings).Trim('"')))); + } + if (returnFaceLandmarks != null) + { + _queryParameters.Add(string.Format("returnFaceLandmarks={0}", System.Uri.EscapeDataString(Rest.Serialization.SafeJsonConvert.SerializeObject(returnFaceLandmarks, Client.SerializationSettings).Trim('"')))); + } + if (returnFaceAttributes != null) + { + _queryParameters.Add(string.Format("returnFaceAttributes={0}", System.Uri.EscapeDataString(returnFaceAttributes))); + } + if (_queryParameters.Count > 0) + { + _url += "?" + string.Join("&", _queryParameters); + } + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("POST"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.SubscriptionKey != null) + { + if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) + { + _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); + } + _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + if(image == null) + { + throw new System.ArgumentNullException("image"); + } + if (image != null && image != Stream.Null) + { + _httpRequest.Content = new StreamContent(image); + _httpRequest.Content.Headers.ContentType =System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/octet-stream"); + } + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse>(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + // Deserialize Response + if ((int)_statusCode == 200) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject>(_responseContent, Client.DeserializationSettings); + } + catch (JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); + } + } + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/FaceOperationsExtensions.cs b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/FaceOperationsExtensions.cs new file mode 100644 index 000000000000..3024140abfb7 --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/FaceOperationsExtensions.cs @@ -0,0 +1,368 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Models; + using System.Collections; + using System.Collections.Generic; + using System.IO; + using System.Threading; + using System.Threading.Tasks; + + /// + /// Extension methods for FaceOperations. + /// + public static partial class FaceOperationsExtensions + { + /// + /// Given query face's faceId, find the similar-looking faces from a faceId + /// array or a faceListId. + /// + /// + /// The operations group for this extension method. + /// + /// + /// FaceId of the query face. User needs to call Face - Detect first to get a + /// valid faceId. Note that this faceId is not persisted and will expire 24 + /// hours after the detection call + /// + /// + /// An existing user-specified unique candidate face list, created in Face List + /// - Create a Face List. Face list contains a set of persistedFaceIds which + /// are persisted and will never expire. Parameter faceListId and faceIds + /// should not be provided at the same time + /// + /// + /// An array of candidate faceIds. All of them are created by Face - Detect and + /// the faceIds will expire 24 hours after the detection call. + /// + /// + /// The number of top similar faces returned. The valid range is [1, 1000]. + /// + /// + /// Similar face searching mode. It can be "matchPerson" or "matchFace". + /// Possible values include: 'matchPerson', 'matchFace' + /// + public static IList FindSimilar(this IFaceOperations operations, string faceId, string faceListId = default(string), IList faceIds = default(IList), int? maxNumOfCandidatesReturned = 20, string mode = default(string)) + { + return operations.FindSimilarAsync(faceId, faceListId, faceIds, maxNumOfCandidatesReturned, mode).GetAwaiter().GetResult(); + } + + /// + /// Given query face's faceId, find the similar-looking faces from a faceId + /// array or a faceListId. + /// + /// + /// The operations group for this extension method. + /// + /// + /// FaceId of the query face. User needs to call Face - Detect first to get a + /// valid faceId. Note that this faceId is not persisted and will expire 24 + /// hours after the detection call + /// + /// + /// An existing user-specified unique candidate face list, created in Face List + /// - Create a Face List. Face list contains a set of persistedFaceIds which + /// are persisted and will never expire. Parameter faceListId and faceIds + /// should not be provided at the same time + /// + /// + /// An array of candidate faceIds. All of them are created by Face - Detect and + /// the faceIds will expire 24 hours after the detection call. + /// + /// + /// The number of top similar faces returned. The valid range is [1, 1000]. + /// + /// + /// Similar face searching mode. It can be "matchPerson" or "matchFace". + /// Possible values include: 'matchPerson', 'matchFace' + /// + /// + /// The cancellation token. + /// + public static async Task> FindSimilarAsync(this IFaceOperations operations, string faceId, string faceListId = default(string), IList faceIds = default(IList), int? maxNumOfCandidatesReturned = 20, string mode = default(string), CancellationToken cancellationToken = default(CancellationToken)) + { + using (var _result = await operations.FindSimilarWithHttpMessagesAsync(faceId, faceListId, faceIds, maxNumOfCandidatesReturned, mode, null, cancellationToken).ConfigureAwait(false)) + { + return _result.Body; + } + } + + /// + /// Divide candidate faces into groups based on face similarity. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Array of candidate faceId created by Face - Detect. The maximum is 1000 + /// faces + /// + public static GroupResponse Group(this IFaceOperations operations, IList faceIds) + { + return operations.GroupAsync(faceIds).GetAwaiter().GetResult(); + } + + /// + /// Divide candidate faces into groups based on face similarity. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Array of candidate faceId created by Face - Detect. The maximum is 1000 + /// faces + /// + /// + /// The cancellation token. + /// + public static async Task GroupAsync(this IFaceOperations operations, IList faceIds, CancellationToken cancellationToken = default(CancellationToken)) + { + using (var _result = await operations.GroupWithHttpMessagesAsync(faceIds, null, cancellationToken).ConfigureAwait(false)) + { + return _result.Body; + } + } + + /// + /// Identify unknown faces from a person group. + /// + /// + /// The operations group for this extension method. + /// + /// + /// personGroupId of the target person group, created by PersonGroups.Create + /// + /// + /// Array of candidate faceId created by Face - Detect. + /// + /// + /// The number of top similar faces returned. + /// + /// + /// Confidence threshold of identification, used to judge whether one face + /// belong to one person. + /// + public static IList Identify(this IFaceOperations operations, string personGroupId, IList faceIds, int? maxNumOfCandidatesReturned = 1, double? confidenceThreshold = default(double?)) + { + return operations.IdentifyAsync(personGroupId, faceIds, maxNumOfCandidatesReturned, confidenceThreshold).GetAwaiter().GetResult(); + } + + /// + /// Identify unknown faces from a person group. + /// + /// + /// The operations group for this extension method. + /// + /// + /// personGroupId of the target person group, created by PersonGroups.Create + /// + /// + /// Array of candidate faceId created by Face - Detect. + /// + /// + /// The number of top similar faces returned. + /// + /// + /// Confidence threshold of identification, used to judge whether one face + /// belong to one person. + /// + /// + /// The cancellation token. + /// + public static async Task> IdentifyAsync(this IFaceOperations operations, string personGroupId, IList faceIds, int? maxNumOfCandidatesReturned = 1, double? confidenceThreshold = default(double?), CancellationToken cancellationToken = default(CancellationToken)) + { + using (var _result = await operations.IdentifyWithHttpMessagesAsync(personGroupId, faceIds, maxNumOfCandidatesReturned, confidenceThreshold, null, cancellationToken).ConfigureAwait(false)) + { + return _result.Body; + } + } + + /// + /// Verify whether two faces belong to a same person or whether one face + /// belongs to a person. + /// + /// + /// The operations group for this extension method. + /// + /// + /// faceId the face, comes from Face - Detect + /// + /// + /// Specify a certain person in a person group. personId is created in + /// Persons.Create. + /// + /// + /// Using existing personGroupId and personId for fast loading a specified + /// person. personGroupId is created in Person Groups.Create. + /// + public static VerifyResult Verify(this IFaceOperations operations, string faceId, string personId, string personGroupId) + { + return operations.VerifyAsync(faceId, personId, personGroupId).GetAwaiter().GetResult(); + } + + /// + /// Verify whether two faces belong to a same person or whether one face + /// belongs to a person. + /// + /// + /// The operations group for this extension method. + /// + /// + /// faceId the face, comes from Face - Detect + /// + /// + /// Specify a certain person in a person group. personId is created in + /// Persons.Create. + /// + /// + /// Using existing personGroupId and personId for fast loading a specified + /// person. personGroupId is created in Person Groups.Create. + /// + /// + /// The cancellation token. + /// + public static async Task VerifyAsync(this IFaceOperations operations, string faceId, string personId, string personGroupId, CancellationToken cancellationToken = default(CancellationToken)) + { + using (var _result = await operations.VerifyWithHttpMessagesAsync(faceId, personId, personGroupId, null, cancellationToken).ConfigureAwait(false)) + { + return _result.Body; + } + } + + /// + /// Detect human faces in an image and returns face locations, and optionally + /// with faceIds, landmarks, and attributes. + /// + /// + /// The operations group for this extension method. + /// + /// + /// + /// + /// A value indicating whether the operation should return faceIds of detected + /// faces. + /// + /// + /// A value indicating whether the operation should return landmarks of the + /// detected faces. + /// + /// + /// Analyze and return the one or more specified face attributes in the + /// comma-separated string like "returnFaceAttributes=age,gender". Supported + /// face attributes include age, gender, headPose, smile, facialHair, glasses + /// and emotion. Note that each face attribute analysis has additional + /// computational and time cost. + /// + public static IList Detect(this IFaceOperations operations, string url, bool? returnFaceId = true, bool? returnFaceLandmarks = false, string returnFaceAttributes = default(string)) + { + return operations.DetectAsync(url, returnFaceId, returnFaceLandmarks, returnFaceAttributes).GetAwaiter().GetResult(); + } + + /// + /// Detect human faces in an image and returns face locations, and optionally + /// with faceIds, landmarks, and attributes. + /// + /// + /// The operations group for this extension method. + /// + /// + /// + /// + /// A value indicating whether the operation should return faceIds of detected + /// faces. + /// + /// + /// A value indicating whether the operation should return landmarks of the + /// detected faces. + /// + /// + /// Analyze and return the one or more specified face attributes in the + /// comma-separated string like "returnFaceAttributes=age,gender". Supported + /// face attributes include age, gender, headPose, smile, facialHair, glasses + /// and emotion. Note that each face attribute analysis has additional + /// computational and time cost. + /// + /// + /// The cancellation token. + /// + public static async Task> DetectAsync(this IFaceOperations operations, string url, bool? returnFaceId = true, bool? returnFaceLandmarks = false, string returnFaceAttributes = default(string), CancellationToken cancellationToken = default(CancellationToken)) + { + using (var _result = await operations.DetectWithHttpMessagesAsync(url, returnFaceId, returnFaceLandmarks, returnFaceAttributes, null, cancellationToken).ConfigureAwait(false)) + { + return _result.Body; + } + } + + /// + /// Detect human faces in an image and returns face locations, and optionally + /// with faceIds, landmarks, and attributes. + /// + /// + /// The operations group for this extension method. + /// + /// + /// An image stream. + /// + /// + /// A value indicating whether the operation should return faceIds of detected + /// faces. + /// + /// + /// A value indicating whether the operation should return landmarks of the + /// detected faces. + /// + /// + /// Analyze and return the one or more specified face attributes in the + /// comma-separated string like "returnFaceAttributes=age,gender". Supported + /// face attributes include age, gender, headPose, smile, facialHair, glasses + /// and emotion. Note that each face attribute analysis has additional + /// computational and time cost. + /// + public static IList DetectInStream(this IFaceOperations operations, Stream image, bool? returnFaceId = true, bool? returnFaceLandmarks = false, string returnFaceAttributes = default(string)) + { + return operations.DetectInStreamAsync(image, returnFaceId, returnFaceLandmarks, returnFaceAttributes).GetAwaiter().GetResult(); + } + + /// + /// Detect human faces in an image and returns face locations, and optionally + /// with faceIds, landmarks, and attributes. + /// + /// + /// The operations group for this extension method. + /// + /// + /// An image stream. + /// + /// + /// A value indicating whether the operation should return faceIds of detected + /// faces. + /// + /// + /// A value indicating whether the operation should return landmarks of the + /// detected faces. + /// + /// + /// Analyze and return the one or more specified face attributes in the + /// comma-separated string like "returnFaceAttributes=age,gender". Supported + /// face attributes include age, gender, headPose, smile, facialHair, glasses + /// and emotion. Note that each face attribute analysis has additional + /// computational and time cost. + /// + /// + /// The cancellation token. + /// + public static async Task> DetectInStreamAsync(this IFaceOperations operations, Stream image, bool? returnFaceId = true, bool? returnFaceLandmarks = false, string returnFaceAttributes = default(string), CancellationToken cancellationToken = default(CancellationToken)) + { + using (var _result = await operations.DetectInStreamWithHttpMessagesAsync(image, returnFaceId, returnFaceLandmarks, returnFaceAttributes, null, cancellationToken).ConfigureAwait(false)) + { + return _result.Body; + } + } + + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/IFaceAPI.cs b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/IFaceAPI.cs new file mode 100644 index 000000000000..381fde544fad --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/IFaceAPI.cs @@ -0,0 +1,65 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Models; + using Newtonsoft.Json; + + /// + /// An API for face detection, verification, and identification. + /// + public partial interface IFaceAPI : System.IDisposable + { + /// + /// The base URI of the service. + /// + + /// + /// Gets or sets json serialization settings. + /// + JsonSerializerSettings SerializationSettings { get; } + + /// + /// Gets or sets json deserialization settings. + /// + JsonSerializerSettings DeserializationSettings { get; } + + /// + /// Supported Azure regions for Face Detection endpoints. Possible + /// values include: 'westus', 'westeurope', 'southeastasia', 'eastus2', + /// 'westcentralus' + /// + string AzureRegion1 { get; set; } + + /// + /// Subscription key in header + /// + string SubscriptionKey { get; set; } + + + /// + /// Gets the IFaceOperations. + /// + IFaceOperations Face { get; } + + /// + /// Gets the IPerson. + /// + IPerson Person { get; } + + /// + /// Gets the IPersonGroup. + /// + IPersonGroup PersonGroup { get; } + + /// + /// Gets the IFaceList. + /// + IFaceList FaceList { get; } + + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/IFaceList.cs b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/IFaceList.cs new file mode 100644 index 000000000000..8daaf8386d93 --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/IFaceList.cs @@ -0,0 +1,227 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.Rest; + using Models; + using System.Collections; + using System.Collections.Generic; + using System.Threading; + using System.Threading.Tasks; + + /// + /// FaceList operations. + /// + public partial interface IFaceList + { + /// + /// Create an empty face list. Up to 64 face lists are allowed to exist + /// in one subscription. + /// + /// + /// Id referencing a particular face list. + /// + /// + /// Name of the face list, maximum length is 128. + /// + /// + /// Optional user defined data for the face list. Length should not + /// exceed 16KB. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when a required parameter is null + /// + Task CreateWithHttpMessagesAsync(string faceListId, string name = default(string), string userData = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// Retrieve a face list's information. + /// + /// + /// Id referencing a Face List. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + Task> GetWithHttpMessagesAsync(string faceListId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// Update information of a face list. + /// + /// + /// Id referencing a Face List. + /// + /// + /// Name of the face list, maximum length is 128. + /// + /// + /// Optional user defined data for the face list. Length should not + /// exceed 16KB. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when a required parameter is null + /// + Task UpdateWithHttpMessagesAsync(string faceListId, string name = default(string), string userData = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// Delete an existing face list according to faceListId. Persisted + /// face images in the face list will also be deleted. + /// + /// + /// Id referencing a Face List. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when a required parameter is null + /// + Task DeleteWithHttpMessagesAsync(string faceListId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// Retrieve information about all existing face lists. Only + /// faceListId, name and userData will be returned. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + Task>> ListWithHttpMessagesAsync(Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// Delete an existing face from a face list (given by a + /// persisitedFaceId and a faceListId). Persisted image related to the + /// face will also be deleted. + /// + /// + /// faceListId of an existing face list. + /// + /// + /// persistedFaceId of an existing face. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when a required parameter is null + /// + Task DeleteFaceWithHttpMessagesAsync(string faceListId, string persistedFaceId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// Add a face to a face list. The input face is specified as an image + /// with a targetFace rectangle. It returns a persistedFaceId + /// representing the added face, and persistedFaceId will not expire. + /// + /// + /// Id referencing a Face List. + /// + /// + /// User-specified data about the face list for any purpose. The + /// maximum length is 1KB. + /// + /// + /// A face rectangle to specify the target face to be added into the + /// face list, in the format of "targetFace=left,top,width,height". + /// E.g. "targetFace=10,10,100,100". If there is more than one face in + /// the image, targetFace is required to specify which face to add. No + /// targetFace means there is only one face detected in the entire + /// image. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when a required parameter is null + /// + Task AddFaceWithHttpMessagesAsync(string faceListId, string userData = default(string), string targetFace = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// Add a face to a face list. The input face is specified as an image + /// with a targetFace rectangle. It returns a persistedFaceId + /// representing the added face, and persistedFaceId will not expire. + /// + /// + /// Id referencing a Face List. + /// + /// + /// User-specified data about the face list for any purpose. The + /// maximum length is 1KB. + /// + /// + /// A face rectangle to specify the target face to be added into the + /// face list, in the format of "targetFace=left,top,width,height". + /// E.g. "targetFace=10,10,100,100". If there is more than one face in + /// the image, targetFace is required to specify which face to add. No + /// targetFace means there is only one face detected in the entire + /// image. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when a required parameter is null + /// + Task AddFaceFromStreamWithHttpMessagesAsync(string faceListId, string userData = default(string), string targetFace = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/IFaceOperations.cs b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/IFaceOperations.cs new file mode 100644 index 000000000000..42bb76e30712 --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/IFaceOperations.cs @@ -0,0 +1,230 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.Rest; + using Models; + using System.Collections; + using System.Collections.Generic; + using System.IO; + using System.Threading; + using System.Threading.Tasks; + + /// + /// FaceOperations operations. + /// + public partial interface IFaceOperations + { + /// + /// Given query face's faceId, find the similar-looking faces from a + /// faceId array or a faceListId. + /// + /// + /// FaceId of the query face. User needs to call Face - Detect first to + /// get a valid faceId. Note that this faceId is not persisted and will + /// expire 24 hours after the detection call + /// + /// + /// An existing user-specified unique candidate face list, created in + /// Face List - Create a Face List. Face list contains a set of + /// persistedFaceIds which are persisted and will never expire. + /// Parameter faceListId and faceIds should not be provided at the same + /// time + /// + /// + /// An array of candidate faceIds. All of them are created by Face - + /// Detect and the faceIds will expire 24 hours after the detection + /// call. + /// + /// + /// The number of top similar faces returned. The valid range is [1, + /// 1000]. + /// + /// + /// Similar face searching mode. It can be "matchPerson" or + /// "matchFace". Possible values include: 'matchPerson', 'matchFace' + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + Task>> FindSimilarWithHttpMessagesAsync(string faceId, string faceListId = default(string), IList faceIds = default(IList), int? maxNumOfCandidatesReturned = 20, string mode = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// Divide candidate faces into groups based on face similarity. + /// + /// + /// Array of candidate faceId created by Face - Detect. The maximum is + /// 1000 faces + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + Task> GroupWithHttpMessagesAsync(IList faceIds, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// Identify unknown faces from a person group. + /// + /// + /// personGroupId of the target person group, created by + /// PersonGroups.Create + /// + /// + /// Array of candidate faceId created by Face - Detect. + /// + /// + /// The number of top similar faces returned. + /// + /// + /// Confidence threshold of identification, used to judge whether one + /// face belong to one person. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + Task>> IdentifyWithHttpMessagesAsync(string personGroupId, IList faceIds, int? maxNumOfCandidatesReturned = 1, double? confidenceThreshold = default(double?), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// Verify whether two faces belong to a same person or whether one + /// face belongs to a person. + /// + /// + /// faceId the face, comes from Face - Detect + /// + /// + /// Specify a certain person in a person group. personId is created in + /// Persons.Create. + /// + /// + /// Using existing personGroupId and personId for fast loading a + /// specified person. personGroupId is created in Person Groups.Create. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + Task> VerifyWithHttpMessagesAsync(string faceId, string personId, string personGroupId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// Detect human faces in an image and returns face locations, and + /// optionally with faceIds, landmarks, and attributes. + /// + /// + /// + /// + /// A value indicating whether the operation should return faceIds of + /// detected faces. + /// + /// + /// A value indicating whether the operation should return landmarks of + /// the detected faces. + /// + /// + /// Analyze and return the one or more specified face attributes in the + /// comma-separated string like "returnFaceAttributes=age,gender". + /// Supported face attributes include age, gender, headPose, smile, + /// facialHair, glasses and emotion. Note that each face attribute + /// analysis has additional computational and time cost. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + Task>> DetectWithHttpMessagesAsync(string url, bool? returnFaceId = true, bool? returnFaceLandmarks = false, string returnFaceAttributes = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// Detect human faces in an image and returns face locations, and + /// optionally with faceIds, landmarks, and attributes. + /// + /// + /// An image stream. + /// + /// + /// A value indicating whether the operation should return faceIds of + /// detected faces. + /// + /// + /// A value indicating whether the operation should return landmarks of + /// the detected faces. + /// + /// + /// Analyze and return the one or more specified face attributes in the + /// comma-separated string like "returnFaceAttributes=age,gender". + /// Supported face attributes include age, gender, headPose, smile, + /// facialHair, glasses and emotion. Note that each face attribute + /// analysis has additional computational and time cost. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + Task>> DetectInStreamWithHttpMessagesAsync(Stream image, bool? returnFaceId = true, bool? returnFaceLandmarks = false, string returnFaceAttributes = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/IPerson.cs b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/IPerson.cs new file mode 100644 index 000000000000..a62b1d019db2 --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/IPerson.cs @@ -0,0 +1,307 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.Rest; + using Models; + using System.Collections; + using System.Collections.Generic; + using System.Threading; + using System.Threading.Tasks; + + /// + /// Person operations. + /// + public partial interface IPerson + { + /// + /// Create a new person in a specified person group. + /// + /// + /// Specifying the target person group to create the person. + /// + /// + /// Display name of the target person. The maximum length is 128. + /// + /// + /// Optional fields for user-provided data attached to a person. Size + /// limit is 16KB. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + Task> CreateWithHttpMessagesAsync(string personGroupId, string name = default(string), string userData = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// List all persons in a person group, and retrieve person information + /// (including personId, name, userData and persistedFaceIds of + /// registered faces of the person). + /// + /// + /// personGroupId of the target person group. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + Task>> ListWithHttpMessagesAsync(string personGroupId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// Delete an existing person from a person group. Persisted face + /// images of the person will also be deleted. + /// + /// + /// Specifying the person group containing the person. + /// + /// + /// The target personId to delete. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when a required parameter is null + /// + Task DeleteWithHttpMessagesAsync(string personGroupId, string personId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// Retrieve a person's information, including registered persisted + /// faces, name and userData. + /// + /// + /// Specifying the person group containing the target person. + /// + /// + /// Specifying the target person. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + Task> GetWithHttpMessagesAsync(string personGroupId, string personId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// Update name or userData of a person. + /// + /// + /// Specifying the person group containing the target person. + /// + /// + /// personId of the target person. + /// + /// + /// Display name of the target person. The maximum length is 128. + /// + /// + /// Optional fields for user-provided data attached to a person. Size + /// limit is 16KB. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when a required parameter is null + /// + Task UpdateWithHttpMessagesAsync(string personGroupId, string personId, string name = default(string), string userData = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// Delete a face from a person. Relative image for the persisted face + /// will also be deleted. + /// + /// + /// Specifying the person group containing the target person. + /// + /// + /// Specifying the person that the target persisted face belong to. + /// + /// + /// The persisted face to remove. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when a required parameter is null + /// + Task DeleteFaceWithHttpMessagesAsync(string personGroupId, string personId, string persistedFaceId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// Retrieve information about a persisted face (specified by + /// persistedFaceId, personId and its belonging personGroupId). + /// + /// + /// Specifying the person group containing the target person. + /// + /// + /// Specifying the target person that the face belongs to. + /// + /// + /// The persistedFaceId of the target persisted face of the person. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + Task> GetFaceWithHttpMessagesAsync(string personGroupId, string personId, string persistedFaceId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// Update a person persisted face's userData field. + /// + /// + /// Specifying the person group containing the target person. + /// + /// + /// personId of the target person. + /// + /// + /// persistedFaceId of target face, which is persisted and will not + /// expire. + /// + /// + /// User-provided data attached to the face. The size limit is 1KB + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when a required parameter is null + /// + Task UpdateFaceWithHttpMessagesAsync(string personGroupId, string personId, string persistedFaceId, string userData = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// Add a representative face to a person for identification. The input + /// face is specified as an image with a targetFace rectangle. + /// + /// + /// Specifying the person group containing the target person. + /// + /// + /// Target person that the face is added to. + /// + /// + /// User-specified data about the target face to add for any purpose. + /// The maximum length is 1KB. + /// + /// + /// A face rectangle to specify the target face to be added to a person + /// in the format of "targetFace=left,top,width,height". E.g. + /// "targetFace=10,10,100,100". If there is more than one face in the + /// image, targetFace is required to specify which face to add. No + /// targetFace means there is only one face detected in the entire + /// image. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when a required parameter is null + /// + Task AddFaceWithHttpMessagesAsync(string personGroupId, string personId, string userData = default(string), string targetFace = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// Add a representative face to a person for identification. The input + /// face is specified as an image with a targetFace rectangle. + /// + /// + /// Specifying the person group containing the target person. + /// + /// + /// Target person that the face is added to. + /// + /// + /// User-specified data about the target face to add for any purpose. + /// The maximum length is 1KB. + /// + /// + /// A face rectangle to specify the target face to be added to a + /// person, in the format of "targetFace=left,top,width,height". E.g. + /// "targetFace=10,10,100,100". If there is more than one face in the + /// image, targetFace is required to specify which face to add. No + /// targetFace means there is only one face detected in the entire + /// image. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when a required parameter is null + /// + Task AddFaceFromStreamWithHttpMessagesAsync(string personGroupId, string personId, string userData = default(string), string targetFace = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/IPersonGroup.cs b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/IPersonGroup.cs new file mode 100644 index 000000000000..cfc666708345 --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/IPersonGroup.cs @@ -0,0 +1,189 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.Rest; + using Models; + using System.Collections; + using System.Collections.Generic; + using System.Threading; + using System.Threading.Tasks; + + /// + /// PersonGroup operations. + /// + public partial interface IPersonGroup + { + /// + /// Create a new person group with specified personGroupId, name and + /// user-provided userData. + /// + /// + /// User-provided personGroupId as a string. + /// + /// + /// Name of the face list, maximum length is 128. + /// + /// + /// Optional user defined data for the face list. Length should not + /// exceed 16KB. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when a required parameter is null + /// + Task CreateWithHttpMessagesAsync(string personGroupId, string name = default(string), string userData = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// Delete an existing person group. Persisted face images of all + /// people in the person group will also be deleted. + /// + /// + /// The personGroupId of the person group to be deleted. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when a required parameter is null + /// + Task DeleteWithHttpMessagesAsync(string personGroupId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// Retrieve the information of a person group, including its name and + /// userData. + /// + /// + /// personGroupId of the target person group. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + Task> GetWithHttpMessagesAsync(string personGroupId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// Update an existing person group's display name and userData. The + /// properties which does not appear in request body will not be + /// updated. + /// + /// + /// personGroupId of the person group to be updated. + /// + /// + /// Name of the face list, maximum length is 128. + /// + /// + /// Optional user defined data for the face list. Length should not + /// exceed 16KB. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when a required parameter is null + /// + Task UpdateWithHttpMessagesAsync(string personGroupId, string name = default(string), string userData = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// Retrieve the training status of a person group (completed or + /// ongoing). + /// + /// + /// personGroupId of target person group. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + Task> GetTrainingStatusWithHttpMessagesAsync(string personGroupId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// List person groups and their information. + /// + /// + /// List person groups from the least personGroupId greater than the + /// "start". + /// + /// + /// The number of person groups to list. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + Task>> ListWithHttpMessagesAsync(string start = default(string), int? top = 1000, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// Queue a person group training task, the training task may not be + /// started immediately. + /// + /// + /// Target person group to be trained. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when a required parameter is null + /// + Task TrainWithHttpMessagesAsync(string personGroupId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/APIError.cs b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/APIError.cs new file mode 100644 index 000000000000..d72be15ff0fd --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/APIError.cs @@ -0,0 +1,46 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.CognitiveServices.Vision.Face; + using Newtonsoft.Json; + using System.Linq; + + /// + /// Error information returned by the API + /// + public partial class APIError + { + /// + /// Initializes a new instance of the APIError class. + /// + public APIError() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the APIError class. + /// + public APIError(Error error = default(Error)) + { + Error = error; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// + [JsonProperty(PropertyName = "error")] + public Error Error { get; set; } + + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/APIErrorException.cs b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/APIErrorException.cs new file mode 100644 index 000000000000..3db32562480e --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/APIErrorException.cs @@ -0,0 +1,58 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.CognitiveServices.Vision.Face; + using Microsoft.Rest; + + /// + /// Exception thrown for an invalid response with APIError information. + /// + public class APIErrorException : RestException + { + /// + /// Gets information about the associated HTTP request. + /// + public HttpRequestMessageWrapper Request { get; set; } + + /// + /// Gets information about the associated HTTP response. + /// + public HttpResponseMessageWrapper Response { get; set; } + + /// + /// Gets or sets the body object. + /// + public APIError Body { get; set; } + + /// + /// Initializes a new instance of the APIErrorException class. + /// + public APIErrorException() + { + } + + /// + /// Initializes a new instance of the APIErrorException class. + /// + /// The exception message. + public APIErrorException(string message) + : this(message, null) + { + } + + /// + /// Initializes a new instance of the APIErrorException class. + /// + /// The exception message. + /// Inner exception. + public APIErrorException(string message, System.Exception innerException) + : base(message, innerException) + { + } + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/AzureRegion.cs b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/AzureRegion.cs new file mode 100644 index 000000000000..bae1015b5d99 --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/AzureRegion.cs @@ -0,0 +1,22 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.CognitiveServices.Vision.Face; + + /// + /// Defines values for AzureRegion. + /// + public static class AzureRegion + { + public const string Westus = "westus"; + public const string Westeurope = "westeurope"; + public const string Southeastasia = "southeastasia"; + public const string Eastus2 = "eastus2"; + public const string Westcentralus = "westcentralus"; + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreateFaceListRequest.cs b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreateFaceListRequest.cs new file mode 100644 index 000000000000..34d6fc3624a8 --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreateFaceListRequest.cs @@ -0,0 +1,83 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.CognitiveServices.Vision.Face; + using Microsoft.Rest; + using Newtonsoft.Json; + using System.Linq; + + /// + /// Request to create a face list. + /// + public partial class CreateFaceListRequest + { + /// + /// Initializes a new instance of the CreateFaceListRequest class. + /// + public CreateFaceListRequest() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the CreateFaceListRequest class. + /// + /// Name of the face list, maximum length is + /// 128. + /// Optional user defined data for the face + /// list. Length should not exceed 16KB. + public CreateFaceListRequest(string name = default(string), string userData = default(string)) + { + Name = name; + UserData = userData; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets name of the face list, maximum length is 128. + /// + [JsonProperty(PropertyName = "name")] + public string Name { get; set; } + + /// + /// Gets or sets optional user defined data for the face list. Length + /// should not exceed 16KB. + /// + [JsonProperty(PropertyName = "userData")] + public string UserData { get; set; } + + /// + /// Validate the object. + /// + /// + /// Thrown if validation fails + /// + public virtual void Validate() + { + if (Name != null) + { + if (Name.Length > 128) + { + throw new ValidationException(ValidationRules.MaxLength, "Name", 128); + } + } + if (UserData != null) + { + if (UserData.Length > 16384) + { + throw new ValidationException(ValidationRules.MaxLength, "UserData", 16384); + } + } + } + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreatePersonGroupRequest.cs b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreatePersonGroupRequest.cs new file mode 100644 index 000000000000..00b0e7bb7110 --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreatePersonGroupRequest.cs @@ -0,0 +1,83 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.CognitiveServices.Vision.Face; + using Microsoft.Rest; + using Newtonsoft.Json; + using System.Linq; + + /// + /// Request to create a person group. + /// + public partial class CreatePersonGroupRequest + { + /// + /// Initializes a new instance of the CreatePersonGroupRequest class. + /// + public CreatePersonGroupRequest() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the CreatePersonGroupRequest class. + /// + /// Name of the face list, maximum length is + /// 128. + /// Optional user defined data for the face + /// list. Length should not exceed 16KB. + public CreatePersonGroupRequest(string name = default(string), string userData = default(string)) + { + Name = name; + UserData = userData; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets name of the face list, maximum length is 128. + /// + [JsonProperty(PropertyName = "name")] + public string Name { get; set; } + + /// + /// Gets or sets optional user defined data for the face list. Length + /// should not exceed 16KB. + /// + [JsonProperty(PropertyName = "userData")] + public string UserData { get; set; } + + /// + /// Validate the object. + /// + /// + /// Thrown if validation fails + /// + public virtual void Validate() + { + if (Name != null) + { + if (Name.Length > 128) + { + throw new ValidationException(ValidationRules.MaxLength, "Name", 128); + } + } + if (UserData != null) + { + if (UserData.Length > 16384) + { + throw new ValidationException(ValidationRules.MaxLength, "UserData", 16384); + } + } + } + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreatePersonRequest.cs b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreatePersonRequest.cs new file mode 100644 index 000000000000..85565371fc9c --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreatePersonRequest.cs @@ -0,0 +1,84 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.CognitiveServices.Vision.Face; + using Microsoft.Rest; + using Newtonsoft.Json; + using System.Linq; + + /// + /// Request to create a person object. + /// + public partial class CreatePersonRequest + { + /// + /// Initializes a new instance of the CreatePersonRequest class. + /// + public CreatePersonRequest() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the CreatePersonRequest class. + /// + /// Display name of the target person. The maximum + /// length is 128. + /// Optional fields for user-provided data + /// attached to a person. Size limit is 16KB. + public CreatePersonRequest(string name = default(string), string userData = default(string)) + { + Name = name; + UserData = userData; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets display name of the target person. The maximum length + /// is 128. + /// + [JsonProperty(PropertyName = "name")] + public string Name { get; set; } + + /// + /// Gets or sets optional fields for user-provided data attached to a + /// person. Size limit is 16KB. + /// + [JsonProperty(PropertyName = "userData")] + public string UserData { get; set; } + + /// + /// Validate the object. + /// + /// + /// Thrown if validation fails + /// + public virtual void Validate() + { + if (Name != null) + { + if (Name.Length > 128) + { + throw new ValidationException(ValidationRules.MaxLength, "Name", 128); + } + } + if (UserData != null) + { + if (UserData.Length > 16384) + { + throw new ValidationException(ValidationRules.MaxLength, "UserData", 16384); + } + } + } + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreatePersonResult.cs b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreatePersonResult.cs new file mode 100644 index 000000000000..31dce8c6b5ca --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreatePersonResult.cs @@ -0,0 +1,62 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.CognitiveServices.Vision.Face; + using Microsoft.Rest; + using Newtonsoft.Json; + using System.Linq; + + /// + /// Result of creating person. + /// + public partial class CreatePersonResult + { + /// + /// Initializes a new instance of the CreatePersonResult class. + /// + public CreatePersonResult() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the CreatePersonResult class. + /// + /// personID of the new created person. + public CreatePersonResult(string personId) + { + PersonId = personId; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets personID of the new created person. + /// + [JsonProperty(PropertyName = "personId")] + public string PersonId { get; set; } + + /// + /// Validate the object. + /// + /// + /// Thrown if validation fails + /// + public virtual void Validate() + { + if (PersonId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "PersonId"); + } + } + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/DetectedFace.cs b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/DetectedFace.cs new file mode 100644 index 000000000000..2d66bad5ef6b --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/DetectedFace.cs @@ -0,0 +1,87 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.CognitiveServices.Vision.Face; + using Microsoft.Rest; + using Newtonsoft.Json; + using System.Linq; + + /// + /// Detected Face object. + /// + public partial class DetectedFace + { + /// + /// Initializes a new instance of the DetectedFace class. + /// + public DetectedFace() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the DetectedFace class. + /// + public DetectedFace(FaceRectangle faceRectangle, string faceId = default(string), FaceLandmarks faceLandmarks = default(FaceLandmarks)) + { + FaceId = faceId; + FaceRectangle = faceRectangle; + FaceLandmarks = faceLandmarks; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// + [JsonProperty(PropertyName = "faceId")] + public string FaceId { get; set; } + + /// + /// + [JsonProperty(PropertyName = "faceRectangle")] + public FaceRectangle FaceRectangle { get; set; } + + /// + /// + [JsonProperty(PropertyName = "faceLandmarks")] + public FaceLandmarks FaceLandmarks { get; set; } + + /// + /// Validate the object. + /// + /// + /// Thrown if validation fails + /// + public virtual void Validate() + { + if (FaceRectangle == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "FaceRectangle"); + } + if (FaceId != null) + { + if (FaceId.Length > 64) + { + throw new ValidationException(ValidationRules.MaxLength, "FaceId", 64); + } + } + if (FaceRectangle != null) + { + FaceRectangle.Validate(); + } + if (FaceLandmarks != null) + { + FaceLandmarks.Validate(); + } + } + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/EmotionProperties.cs b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/EmotionProperties.cs new file mode 100644 index 000000000000..32ff00e6800e --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/EmotionProperties.cs @@ -0,0 +1,162 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.CognitiveServices.Vision.Face; + using Microsoft.Rest; + using Newtonsoft.Json; + using System.Linq; + + /// + /// Properties describing facial emotion. + /// + public partial class EmotionProperties + { + /// + /// Initializes a new instance of the EmotionProperties class. + /// + public EmotionProperties() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the EmotionProperties class. + /// + public EmotionProperties(double? anger = default(double?), double? contempt = default(double?), double? disgust = default(double?), double? fear = default(double?), double? happiness = default(double?), double? neutral = default(double?), double? sadness = default(double?), double? surprise = default(double?)) + { + Anger = anger; + Contempt = contempt; + Disgust = disgust; + Fear = fear; + Happiness = happiness; + Neutral = neutral; + Sadness = sadness; + Surprise = surprise; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// + [JsonProperty(PropertyName = "anger")] + public double? Anger { get; set; } + + /// + /// + [JsonProperty(PropertyName = "contempt")] + public double? Contempt { get; set; } + + /// + /// + [JsonProperty(PropertyName = "disgust")] + public double? Disgust { get; set; } + + /// + /// + [JsonProperty(PropertyName = "fear")] + public double? Fear { get; set; } + + /// + /// + [JsonProperty(PropertyName = "happiness")] + public double? Happiness { get; set; } + + /// + /// + [JsonProperty(PropertyName = "neutral")] + public double? Neutral { get; set; } + + /// + /// + [JsonProperty(PropertyName = "sadness")] + public double? Sadness { get; set; } + + /// + /// + [JsonProperty(PropertyName = "surprise")] + public double? Surprise { get; set; } + + /// + /// Validate the object. + /// + /// + /// Thrown if validation fails + /// + public virtual void Validate() + { + if (Anger > 1) + { + throw new ValidationException(ValidationRules.InclusiveMaximum, "Anger", 1); + } + if (Anger < 0) + { + throw new ValidationException(ValidationRules.InclusiveMinimum, "Anger", 0); + } + if (Contempt > 1) + { + throw new ValidationException(ValidationRules.InclusiveMaximum, "Contempt", 1); + } + if (Contempt < 0) + { + throw new ValidationException(ValidationRules.InclusiveMinimum, "Contempt", 0); + } + if (Disgust > 1) + { + throw new ValidationException(ValidationRules.InclusiveMaximum, "Disgust", 1); + } + if (Disgust < 0) + { + throw new ValidationException(ValidationRules.InclusiveMinimum, "Disgust", 0); + } + if (Fear > 1) + { + throw new ValidationException(ValidationRules.InclusiveMaximum, "Fear", 1); + } + if (Fear < 0) + { + throw new ValidationException(ValidationRules.InclusiveMinimum, "Fear", 0); + } + if (Happiness > 1) + { + throw new ValidationException(ValidationRules.InclusiveMaximum, "Happiness", 1); + } + if (Happiness < 0) + { + throw new ValidationException(ValidationRules.InclusiveMinimum, "Happiness", 0); + } + if (Neutral > 1) + { + throw new ValidationException(ValidationRules.InclusiveMaximum, "Neutral", 1); + } + if (Neutral < 0) + { + throw new ValidationException(ValidationRules.InclusiveMinimum, "Neutral", 0); + } + if (Sadness > 1) + { + throw new ValidationException(ValidationRules.InclusiveMaximum, "Sadness", 1); + } + if (Sadness < 0) + { + throw new ValidationException(ValidationRules.InclusiveMinimum, "Sadness", 0); + } + if (Surprise > 1) + { + throw new ValidationException(ValidationRules.InclusiveMaximum, "Surprise", 1); + } + if (Surprise < 0) + { + throw new ValidationException(ValidationRules.InclusiveMinimum, "Surprise", 0); + } + } + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/Error.cs b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/Error.cs new file mode 100644 index 000000000000..566c578aa0c5 --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/Error.cs @@ -0,0 +1,52 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.CognitiveServices.Vision.Face; + using Newtonsoft.Json; + using System.Linq; + + /// + /// Error body. + /// + public partial class Error + { + /// + /// Initializes a new instance of the Error class. + /// + public Error() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the Error class. + /// + public Error(string code = default(string), string message = default(string)) + { + Code = code; + Message = message; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// + [JsonProperty(PropertyName = "code")] + public string Code { get; set; } + + /// + /// + [JsonProperty(PropertyName = "message")] + public string Message { get; set; } + + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FaceAttributes.cs b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FaceAttributes.cs new file mode 100644 index 000000000000..b6c46e50f266 --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FaceAttributes.cs @@ -0,0 +1,125 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.CognitiveServices.Vision.Face; + using Microsoft.Rest; + using Newtonsoft.Json; + using System.Linq; + + /// + /// Face Attributes + /// + public partial class FaceAttributes + { + /// + /// Initializes a new instance of the FaceAttributes class. + /// + public FaceAttributes() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the FaceAttributes class. + /// + /// Age in years + /// Gender: male or female. Possible values + /// include: 'male', 'female' + /// Smile intensity, a number between [0,1] + /// + /// Glasses type. Possible values are + /// 'noGlasses', 'readingGlasses', 'sunglasses', 'swimmingGoggles'. + /// Possible values include: 'noGlasses', 'readingGlasses', + /// 'sunglasses', 'swimmingGoggles' + public FaceAttributes(double? age = default(double?), string gender = default(string), double? smile = default(double?), string glasses = default(string), FacialHairProperties facialHair = default(FacialHairProperties), HeadPoseProperties headPose = default(HeadPoseProperties), EmotionProperties emotion = default(EmotionProperties)) + { + Age = age; + Gender = gender; + Smile = smile; + Glasses = glasses; + FacialHair = facialHair; + HeadPose = headPose; + Emotion = emotion; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets age in years + /// + [JsonProperty(PropertyName = "age")] + public double? Age { get; set; } + + /// + /// Gets or sets gender: male or female. Possible values include: + /// 'male', 'female' + /// + [JsonProperty(PropertyName = "gender")] + public string Gender { get; set; } + + /// + /// Gets or sets smile intensity, a number between [0,1] + /// + [JsonProperty(PropertyName = "smile")] + public double? Smile { get; set; } + + /// + /// Gets or sets glasses type. Possible values are 'noGlasses', + /// 'readingGlasses', 'sunglasses', 'swimmingGoggles'. Possible values + /// include: 'noGlasses', 'readingGlasses', 'sunglasses', + /// 'swimmingGoggles' + /// + [JsonProperty(PropertyName = "glasses")] + public string Glasses { get; set; } + + /// + /// + [JsonProperty(PropertyName = "facialHair")] + public FacialHairProperties FacialHair { get; set; } + + /// + /// + [JsonProperty(PropertyName = "headPose")] + public HeadPoseProperties HeadPose { get; set; } + + /// + /// + [JsonProperty(PropertyName = "emotion")] + public EmotionProperties Emotion { get; set; } + + /// + /// Validate the object. + /// + /// + /// Thrown if validation fails + /// + public virtual void Validate() + { + if (Smile > 1) + { + throw new ValidationException(ValidationRules.InclusiveMaximum, "Smile", 1); + } + if (Smile < 0) + { + throw new ValidationException(ValidationRules.InclusiveMinimum, "Smile", 0); + } + if (FacialHair != null) + { + FacialHair.Validate(); + } + if (Emotion != null) + { + Emotion.Validate(); + } + } + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FaceLandmarks.cs b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FaceLandmarks.cs new file mode 100644 index 000000000000..a9af41c0f227 --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FaceLandmarks.cs @@ -0,0 +1,320 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.CognitiveServices.Vision.Face; + using Newtonsoft.Json; + using System.Linq; + + /// + /// A collection of 27-point face landmarks pointing to the important + /// positions of face components. + /// + public partial class FaceLandmarks + { + /// + /// Initializes a new instance of the FaceLandmarks class. + /// + public FaceLandmarks() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the FaceLandmarks class. + /// + public FaceLandmarks(Position pupilLeft = default(Position), Position pupilRight = default(Position), Position noseTip = default(Position), Position mouthLeft = default(Position), Position mouthRight = default(Position), Position eyebrowLeftOuter = default(Position), Position eyebrowLeftInner = default(Position), Position eyeLeftOuter = default(Position), Position eyeLeftTop = default(Position), Position eyeLeftBottom = default(Position), Position eyeLeftInner = default(Position), Position eyebrowRightInner = default(Position), Position eyebrowRightOuter = default(Position), Position eyeRightInner = default(Position), Position eyeRightTop = default(Position), Position eyeRightBottom = default(Position), Position eyeRightOuter = default(Position), Position noseRootLeft = default(Position), Position noseRootRight = default(Position), Position noseLeftAlarTop = default(Position), Position noseRightAlarTop = default(Position), Position noseLeftAlarOutTip = default(Position), Position noseRightAlarOutTip = default(Position), Position upperLipTop = default(Position), Position upperLipBottom = default(Position), Position underLipTop = default(Position), Position underLipBottom = default(Position)) + { + PupilLeft = pupilLeft; + PupilRight = pupilRight; + NoseTip = noseTip; + MouthLeft = mouthLeft; + MouthRight = mouthRight; + EyebrowLeftOuter = eyebrowLeftOuter; + EyebrowLeftInner = eyebrowLeftInner; + EyeLeftOuter = eyeLeftOuter; + EyeLeftTop = eyeLeftTop; + EyeLeftBottom = eyeLeftBottom; + EyeLeftInner = eyeLeftInner; + EyebrowRightInner = eyebrowRightInner; + EyebrowRightOuter = eyebrowRightOuter; + EyeRightInner = eyeRightInner; + EyeRightTop = eyeRightTop; + EyeRightBottom = eyeRightBottom; + EyeRightOuter = eyeRightOuter; + NoseRootLeft = noseRootLeft; + NoseRootRight = noseRootRight; + NoseLeftAlarTop = noseLeftAlarTop; + NoseRightAlarTop = noseRightAlarTop; + NoseLeftAlarOutTip = noseLeftAlarOutTip; + NoseRightAlarOutTip = noseRightAlarOutTip; + UpperLipTop = upperLipTop; + UpperLipBottom = upperLipBottom; + UnderLipTop = underLipTop; + UnderLipBottom = underLipBottom; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// + [JsonProperty(PropertyName = "pupilLeft")] + public Position PupilLeft { get; set; } + + /// + /// + [JsonProperty(PropertyName = "pupilRight")] + public Position PupilRight { get; set; } + + /// + /// + [JsonProperty(PropertyName = "noseTip")] + public Position NoseTip { get; set; } + + /// + /// + [JsonProperty(PropertyName = "mouthLeft")] + public Position MouthLeft { get; set; } + + /// + /// + [JsonProperty(PropertyName = "mouthRight")] + public Position MouthRight { get; set; } + + /// + /// + [JsonProperty(PropertyName = "eyebrowLeftOuter")] + public Position EyebrowLeftOuter { get; set; } + + /// + /// + [JsonProperty(PropertyName = "eyebrowLeftInner")] + public Position EyebrowLeftInner { get; set; } + + /// + /// + [JsonProperty(PropertyName = "eyeLeftOuter")] + public Position EyeLeftOuter { get; set; } + + /// + /// + [JsonProperty(PropertyName = "eyeLeftTop")] + public Position EyeLeftTop { get; set; } + + /// + /// + [JsonProperty(PropertyName = "eyeLeftBottom")] + public Position EyeLeftBottom { get; set; } + + /// + /// + [JsonProperty(PropertyName = "eyeLeftInner")] + public Position EyeLeftInner { get; set; } + + /// + /// + [JsonProperty(PropertyName = "eyebrowRightInner")] + public Position EyebrowRightInner { get; set; } + + /// + /// + [JsonProperty(PropertyName = "eyebrowRightOuter")] + public Position EyebrowRightOuter { get; set; } + + /// + /// + [JsonProperty(PropertyName = "eyeRightInner")] + public Position EyeRightInner { get; set; } + + /// + /// + [JsonProperty(PropertyName = "eyeRightTop")] + public Position EyeRightTop { get; set; } + + /// + /// + [JsonProperty(PropertyName = "eyeRightBottom")] + public Position EyeRightBottom { get; set; } + + /// + /// + [JsonProperty(PropertyName = "eyeRightOuter")] + public Position EyeRightOuter { get; set; } + + /// + /// + [JsonProperty(PropertyName = "noseRootLeft")] + public Position NoseRootLeft { get; set; } + + /// + /// + [JsonProperty(PropertyName = "noseRootRight")] + public Position NoseRootRight { get; set; } + + /// + /// + [JsonProperty(PropertyName = "noseLeftAlarTop")] + public Position NoseLeftAlarTop { get; set; } + + /// + /// + [JsonProperty(PropertyName = "noseRightAlarTop")] + public Position NoseRightAlarTop { get; set; } + + /// + /// + [JsonProperty(PropertyName = "noseLeftAlarOutTip")] + public Position NoseLeftAlarOutTip { get; set; } + + /// + /// + [JsonProperty(PropertyName = "noseRightAlarOutTip")] + public Position NoseRightAlarOutTip { get; set; } + + /// + /// + [JsonProperty(PropertyName = "upperLipTop")] + public Position UpperLipTop { get; set; } + + /// + /// + [JsonProperty(PropertyName = "upperLipBottom")] + public Position UpperLipBottom { get; set; } + + /// + /// + [JsonProperty(PropertyName = "underLipTop")] + public Position UnderLipTop { get; set; } + + /// + /// + [JsonProperty(PropertyName = "underLipBottom")] + public Position UnderLipBottom { get; set; } + + /// + /// Validate the object. + /// + /// + /// Thrown if validation fails + /// + public virtual void Validate() + { + if (PupilLeft != null) + { + PupilLeft.Validate(); + } + if (PupilRight != null) + { + PupilRight.Validate(); + } + if (NoseTip != null) + { + NoseTip.Validate(); + } + if (MouthLeft != null) + { + MouthLeft.Validate(); + } + if (MouthRight != null) + { + MouthRight.Validate(); + } + if (EyebrowLeftOuter != null) + { + EyebrowLeftOuter.Validate(); + } + if (EyebrowLeftInner != null) + { + EyebrowLeftInner.Validate(); + } + if (EyeLeftOuter != null) + { + EyeLeftOuter.Validate(); + } + if (EyeLeftTop != null) + { + EyeLeftTop.Validate(); + } + if (EyeLeftBottom != null) + { + EyeLeftBottom.Validate(); + } + if (EyeLeftInner != null) + { + EyeLeftInner.Validate(); + } + if (EyebrowRightInner != null) + { + EyebrowRightInner.Validate(); + } + if (EyebrowRightOuter != null) + { + EyebrowRightOuter.Validate(); + } + if (EyeRightInner != null) + { + EyeRightInner.Validate(); + } + if (EyeRightTop != null) + { + EyeRightTop.Validate(); + } + if (EyeRightBottom != null) + { + EyeRightBottom.Validate(); + } + if (EyeRightOuter != null) + { + EyeRightOuter.Validate(); + } + if (NoseRootLeft != null) + { + NoseRootLeft.Validate(); + } + if (NoseRootRight != null) + { + NoseRootRight.Validate(); + } + if (NoseLeftAlarTop != null) + { + NoseLeftAlarTop.Validate(); + } + if (NoseRightAlarTop != null) + { + NoseRightAlarTop.Validate(); + } + if (NoseLeftAlarOutTip != null) + { + NoseLeftAlarOutTip.Validate(); + } + if (NoseRightAlarOutTip != null) + { + NoseRightAlarOutTip.Validate(); + } + if (UpperLipTop != null) + { + UpperLipTop.Validate(); + } + if (UpperLipBottom != null) + { + UpperLipBottom.Validate(); + } + if (UnderLipTop != null) + { + UnderLipTop.Validate(); + } + if (UnderLipBottom != null) + { + UnderLipBottom.Validate(); + } + } + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FaceRectangle.cs b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FaceRectangle.cs new file mode 100644 index 000000000000..f7ee305ce802 --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FaceRectangle.cs @@ -0,0 +1,87 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.CognitiveServices.Vision.Face; + using Newtonsoft.Json; + using System.Linq; + + /// + /// A rectangle within which a face can be found + /// + public partial class FaceRectangle + { + /// + /// Initializes a new instance of the FaceRectangle class. + /// + public FaceRectangle() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the FaceRectangle class. + /// + /// The width of the rectangle, in pixels. + /// The height of the rectangle, in + /// pixels. + /// The distance from the left edge if the image to + /// the left edge of the rectangle, in pixels. + /// The distance from the top edge if the image to + /// the top edge of the rectangle, in pixels. + public FaceRectangle(int width, int height, int left, int top) + { + Width = width; + Height = height; + Left = left; + Top = top; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets the width of the rectangle, in pixels. + /// + [JsonProperty(PropertyName = "width")] + public int Width { get; set; } + + /// + /// Gets or sets the height of the rectangle, in pixels. + /// + [JsonProperty(PropertyName = "height")] + public int Height { get; set; } + + /// + /// Gets or sets the distance from the left edge if the image to the + /// left edge of the rectangle, in pixels. + /// + [JsonProperty(PropertyName = "left")] + public int Left { get; set; } + + /// + /// Gets or sets the distance from the top edge if the image to the top + /// edge of the rectangle, in pixels. + /// + [JsonProperty(PropertyName = "top")] + public int Top { get; set; } + + /// + /// Validate the object. + /// + /// + /// Thrown if validation fails + /// + public virtual void Validate() + { + //Nothing to validate + } + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FacialHairProperties.cs b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FacialHairProperties.cs new file mode 100644 index 000000000000..584608af5922 --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FacialHairProperties.cs @@ -0,0 +1,92 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.CognitiveServices.Vision.Face; + using Microsoft.Rest; + using Newtonsoft.Json; + using System.Linq; + + /// + /// Properties describing facial hair attributes. + /// + public partial class FacialHairProperties + { + /// + /// Initializes a new instance of the FacialHairProperties class. + /// + public FacialHairProperties() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the FacialHairProperties class. + /// + public FacialHairProperties(double? mustache = default(double?), double? beard = default(double?), double? sideburns = default(double?)) + { + Mustache = mustache; + Beard = beard; + Sideburns = sideburns; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// + [JsonProperty(PropertyName = "mustache")] + public double? Mustache { get; set; } + + /// + /// + [JsonProperty(PropertyName = "beard")] + public double? Beard { get; set; } + + /// + /// + [JsonProperty(PropertyName = "sideburns")] + public double? Sideburns { get; set; } + + /// + /// Validate the object. + /// + /// + /// Thrown if validation fails + /// + public virtual void Validate() + { + if (Mustache > 1) + { + throw new ValidationException(ValidationRules.InclusiveMaximum, "Mustache", 1); + } + if (Mustache < 0) + { + throw new ValidationException(ValidationRules.InclusiveMinimum, "Mustache", 0); + } + if (Beard > 1) + { + throw new ValidationException(ValidationRules.InclusiveMaximum, "Beard", 1); + } + if (Beard < 0) + { + throw new ValidationException(ValidationRules.InclusiveMinimum, "Beard", 0); + } + if (Sideburns > 1) + { + throw new ValidationException(ValidationRules.InclusiveMaximum, "Sideburns", 1); + } + if (Sideburns < 0) + { + throw new ValidationException(ValidationRules.InclusiveMinimum, "Sideburns", 0); + } + } + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FindSimilarRequest.cs b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FindSimilarRequest.cs new file mode 100644 index 000000000000..95e803005ae7 --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FindSimilarRequest.cs @@ -0,0 +1,151 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.CognitiveServices.Vision.Face; + using Microsoft.Rest; + using Newtonsoft.Json; + using System.Collections; + using System.Collections.Generic; + using System.Linq; + + /// + /// Request body for find similar operation. + /// + public partial class FindSimilarRequest + { + /// + /// Initializes a new instance of the FindSimilarRequest class. + /// + public FindSimilarRequest() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the FindSimilarRequest class. + /// + /// FaceId of the query face. User needs to call + /// Face - Detect first to get a valid faceId. Note that this faceId is + /// not persisted and will expire 24 hours after the detection + /// call + /// An existing user-specified unique + /// candidate face list, created in Face List - Create a Face List. + /// Face list contains a set of persistedFaceIds which are persisted + /// and will never expire. Parameter faceListId and faceIds should not + /// be provided at the same time + /// An array of candidate faceIds. All of them + /// are created by Face - Detect and the faceIds will expire 24 hours + /// after the detection call. + /// The number of top similar + /// faces returned. The valid range is [1, 1000]. + /// Similar face searching mode. It can be + /// "matchPerson" or "matchFace". Possible values include: + /// 'matchPerson', 'matchFace' + public FindSimilarRequest(string faceId, string faceListId = default(string), IList faceIds = default(IList), int? maxNumOfCandidatesReturned = default(int?), string mode = default(string)) + { + FaceId = faceId; + FaceListId = faceListId; + FaceIds = faceIds; + MaxNumOfCandidatesReturned = maxNumOfCandidatesReturned; + Mode = mode; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets faceId of the query face. User needs to call Face - + /// Detect first to get a valid faceId. Note that this faceId is not + /// persisted and will expire 24 hours after the detection call + /// + [JsonProperty(PropertyName = "faceId")] + public string FaceId { get; set; } + + /// + /// Gets or sets an existing user-specified unique candidate face list, + /// created in Face List - Create a Face List. Face list contains a set + /// of persistedFaceIds which are persisted and will never expire. + /// Parameter faceListId and faceIds should not be provided at the same + /// time + /// + [JsonProperty(PropertyName = "faceListId")] + public string FaceListId { get; set; } + + /// + /// Gets or sets an array of candidate faceIds. All of them are created + /// by Face - Detect and the faceIds will expire 24 hours after the + /// detection call. + /// + [JsonProperty(PropertyName = "faceIds")] + public IList FaceIds { get; set; } + + /// + /// Gets or sets the number of top similar faces returned. The valid + /// range is [1, 1000]. + /// + [JsonProperty(PropertyName = "maxNumOfCandidatesReturned")] + public int? MaxNumOfCandidatesReturned { get; set; } + + /// + /// Gets or sets similar face searching mode. It can be "matchPerson" + /// or "matchFace". Possible values include: 'matchPerson', 'matchFace' + /// + [JsonProperty(PropertyName = "mode")] + public string Mode { get; set; } + + /// + /// Validate the object. + /// + /// + /// Thrown if validation fails + /// + public virtual void Validate() + { + if (FaceId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "FaceId"); + } + if (FaceId != null) + { + if (FaceId.Length > 64) + { + throw new ValidationException(ValidationRules.MaxLength, "FaceId", 64); + } + } + if (FaceListId != null) + { + if (FaceListId.Length > 64) + { + throw new ValidationException(ValidationRules.MaxLength, "FaceListId", 64); + } + if (!System.Text.RegularExpressions.Regex.IsMatch(FaceListId, "^[a-z0-9-_]+$")) + { + throw new ValidationException(ValidationRules.Pattern, "FaceListId", "^[a-z0-9-_]+$"); + } + } + if (FaceIds != null) + { + if (FaceIds.Count > 1000) + { + throw new ValidationException(ValidationRules.MaxItems, "FaceIds", 1000); + } + } + if (MaxNumOfCandidatesReturned > 1000) + { + throw new ValidationException(ValidationRules.InclusiveMaximum, "MaxNumOfCandidatesReturned", 1000); + } + if (MaxNumOfCandidatesReturned < 1) + { + throw new ValidationException(ValidationRules.InclusiveMinimum, "MaxNumOfCandidatesReturned", 1); + } + } + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/GetFaceListResult.cs b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/GetFaceListResult.cs new file mode 100644 index 000000000000..8ba762f2210e --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/GetFaceListResult.cs @@ -0,0 +1,105 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.CognitiveServices.Vision.Face; + using Microsoft.Rest; + using Newtonsoft.Json; + using System.Linq; + + /// + /// Result of the GetFaceList operation. + /// + public partial class GetFaceListResult + { + /// + /// Initializes a new instance of the GetFaceListResult class. + /// + public GetFaceListResult() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the GetFaceListResult class. + /// + /// faceListId of the target face + /// list. + /// Face list's display name. + /// User-provided data attached to this face + /// list. + public GetFaceListResult(string faceListId, string name = default(string), string userData = default(string)) + { + FaceListId = faceListId; + Name = name; + UserData = userData; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets faceListId of the target face list. + /// + [JsonProperty(PropertyName = "faceListId")] + public string FaceListId { get; set; } + + /// + /// Gets or sets face list's display name. + /// + [JsonProperty(PropertyName = "name")] + public string Name { get; set; } + + /// + /// Gets or sets user-provided data attached to this face list. + /// + [JsonProperty(PropertyName = "userData")] + public string UserData { get; set; } + + /// + /// Validate the object. + /// + /// + /// Thrown if validation fails + /// + public virtual void Validate() + { + if (FaceListId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "FaceListId"); + } + if (FaceListId != null) + { + if (FaceListId.Length > 64) + { + throw new ValidationException(ValidationRules.MaxLength, "FaceListId", 64); + } + if (!System.Text.RegularExpressions.Regex.IsMatch(FaceListId, "^[a-z0-9-_]+$")) + { + throw new ValidationException(ValidationRules.Pattern, "FaceListId", "^[a-z0-9-_]+$"); + } + } + if (Name != null) + { + if (Name.Length > 128) + { + throw new ValidationException(ValidationRules.MaxLength, "Name", 128); + } + } + if (UserData != null) + { + if (UserData.Length > 16384) + { + throw new ValidationException(ValidationRules.MaxLength, "UserData", 16384); + } + } + } + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/GroupRequest.cs b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/GroupRequest.cs new file mode 100644 index 000000000000..426fef0c5f5a --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/GroupRequest.cs @@ -0,0 +1,73 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.CognitiveServices.Vision.Face; + using Microsoft.Rest; + using Newtonsoft.Json; + using System.Collections; + using System.Collections.Generic; + using System.Linq; + + /// + /// Request body for group request. + /// + public partial class GroupRequest + { + /// + /// Initializes a new instance of the GroupRequest class. + /// + public GroupRequest() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the GroupRequest class. + /// + /// Array of candidate faceId created by Face - + /// Detect. The maximum is 1000 faces + public GroupRequest(IList faceIds) + { + FaceIds = faceIds; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets array of candidate faceId created by Face - Detect. + /// The maximum is 1000 faces + /// + [JsonProperty(PropertyName = "faceIds")] + public IList FaceIds { get; set; } + + /// + /// Validate the object. + /// + /// + /// Thrown if validation fails + /// + public virtual void Validate() + { + if (FaceIds == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "FaceIds"); + } + if (FaceIds != null) + { + if (FaceIds.Count > 1000) + { + throw new ValidationException(ValidationRules.MaxItems, "FaceIds", 1000); + } + } + } + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/GroupResponse.cs b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/GroupResponse.cs new file mode 100644 index 000000000000..4c93668bfd58 --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/GroupResponse.cs @@ -0,0 +1,76 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.CognitiveServices.Vision.Face; + using Microsoft.Rest; + using Newtonsoft.Json; + using System.Collections; + using System.Collections.Generic; + using System.Linq; + + /// + /// An array of face groups based on face similarity. + /// + public partial class GroupResponse + { + /// + /// Initializes a new instance of the GroupResponse class. + /// + public GroupResponse() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the GroupResponse class. + /// + /// A partition of the original faces based on + /// face similarity. Groups are ranked by number of faces + /// Face ids array of faces that cannot find + /// any similar faces from original faces. + public GroupResponse(IList> groups, IList messyGroup = default(IList)) + { + Groups = groups; + MessyGroup = messyGroup; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets a partition of the original faces based on face + /// similarity. Groups are ranked by number of faces + /// + [JsonProperty(PropertyName = "groups")] + public IList> Groups { get; set; } + + /// + /// Gets or sets face ids array of faces that cannot find any similar + /// faces from original faces. + /// + [JsonProperty(PropertyName = "messyGroup")] + public IList MessyGroup { get; set; } + + /// + /// Validate the object. + /// + /// + /// Thrown if validation fails + /// + public virtual void Validate() + { + if (Groups == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "Groups"); + } + } + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/HeadPoseProperties.cs b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/HeadPoseProperties.cs new file mode 100644 index 000000000000..7cb1bc37aa9b --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/HeadPoseProperties.cs @@ -0,0 +1,58 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.CognitiveServices.Vision.Face; + using Newtonsoft.Json; + using System.Linq; + + /// + /// Properties indicating head pose of the face. + /// + public partial class HeadPoseProperties + { + /// + /// Initializes a new instance of the HeadPoseProperties class. + /// + public HeadPoseProperties() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the HeadPoseProperties class. + /// + public HeadPoseProperties(double? roll = default(double?), double? yaw = default(double?), double? pitch = default(double?)) + { + Roll = roll; + Yaw = yaw; + Pitch = pitch; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// + [JsonProperty(PropertyName = "roll")] + public double? Roll { get; set; } + + /// + /// + [JsonProperty(PropertyName = "yaw")] + public double? Yaw { get; set; } + + /// + /// + [JsonProperty(PropertyName = "pitch")] + public double? Pitch { get; set; } + + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/IdentifyRequest.cs b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/IdentifyRequest.cs new file mode 100644 index 000000000000..1772ab5208ee --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/IdentifyRequest.cs @@ -0,0 +1,122 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.CognitiveServices.Vision.Face; + using Microsoft.Rest; + using Newtonsoft.Json; + using System.Collections; + using System.Collections.Generic; + using System.Linq; + + /// + /// Request body for identify face operation. + /// + public partial class IdentifyRequest + { + /// + /// Initializes a new instance of the IdentifyRequest class. + /// + public IdentifyRequest() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the IdentifyRequest class. + /// + /// personGroupId of the target person + /// group, created by PersonGroups.Create + /// Array of candidate faceId created by Face - + /// Detect. + /// The number of top similar + /// faces returned. + /// Confidence threshold of + /// identification, used to judge whether one face belong to one + /// person. + public IdentifyRequest(string personGroupId, IList faceIds, int? maxNumOfCandidatesReturned = default(int?), double? confidenceThreshold = default(double?)) + { + PersonGroupId = personGroupId; + FaceIds = faceIds; + MaxNumOfCandidatesReturned = maxNumOfCandidatesReturned; + ConfidenceThreshold = confidenceThreshold; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets personGroupId of the target person group, created by + /// PersonGroups.Create + /// + [JsonProperty(PropertyName = "personGroupId")] + public string PersonGroupId { get; set; } + + /// + /// Gets or sets array of candidate faceId created by Face - Detect. + /// + [JsonProperty(PropertyName = "faceIds")] + public IList FaceIds { get; set; } + + /// + /// Gets or sets the number of top similar faces returned. + /// + [JsonProperty(PropertyName = "maxNumOfCandidatesReturned")] + public int? MaxNumOfCandidatesReturned { get; set; } + + /// + /// Gets or sets confidence threshold of identification, used to judge + /// whether one face belong to one person. + /// + [JsonProperty(PropertyName = "confidenceThreshold")] + public double? ConfidenceThreshold { get; set; } + + /// + /// Validate the object. + /// + /// + /// Thrown if validation fails + /// + public virtual void Validate() + { + if (PersonGroupId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "PersonGroupId"); + } + if (FaceIds == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "FaceIds"); + } + if (FaceIds != null) + { + if (FaceIds.Count > 1000) + { + throw new ValidationException(ValidationRules.MaxItems, "FaceIds", 1000); + } + } + if (MaxNumOfCandidatesReturned > 1000) + { + throw new ValidationException(ValidationRules.InclusiveMaximum, "MaxNumOfCandidatesReturned", 1000); + } + if (MaxNumOfCandidatesReturned < 1) + { + throw new ValidationException(ValidationRules.InclusiveMinimum, "MaxNumOfCandidatesReturned", 1); + } + if (ConfidenceThreshold > 1) + { + throw new ValidationException(ValidationRules.InclusiveMaximum, "ConfidenceThreshold", 1); + } + if (ConfidenceThreshold < 0) + { + throw new ValidationException(ValidationRules.InclusiveMinimum, "ConfidenceThreshold", 0); + } + } + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/IdentifyResultCandidate.cs b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/IdentifyResultCandidate.cs new file mode 100644 index 000000000000..e07214df215d --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/IdentifyResultCandidate.cs @@ -0,0 +1,80 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.CognitiveServices.Vision.Face; + using Microsoft.Rest; + using Newtonsoft.Json; + using System.Linq; + + /// + /// All possible faces that may qualify. + /// + public partial class IdentifyResultCandidate + { + /// + /// Initializes a new instance of the IdentifyResultCandidate class. + /// + public IdentifyResultCandidate() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the IdentifyResultCandidate class. + /// + /// Id of candidate + /// Confidence level in the candidate person: + /// a float number between 0.0 and 1.0. + public IdentifyResultCandidate(string personId, double confidence) + { + PersonId = personId; + Confidence = confidence; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets id of candidate + /// + [JsonProperty(PropertyName = "personId")] + public string PersonId { get; set; } + + /// + /// Gets or sets confidence level in the candidate person: a float + /// number between 0.0 and 1.0. + /// + [JsonProperty(PropertyName = "confidence")] + public double Confidence { get; set; } + + /// + /// Validate the object. + /// + /// + /// Thrown if validation fails + /// + public virtual void Validate() + { + if (PersonId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "PersonId"); + } + if (Confidence > 1) + { + throw new ValidationException(ValidationRules.InclusiveMaximum, "Confidence", 1); + } + if (Confidence < 0) + { + throw new ValidationException(ValidationRules.InclusiveMinimum, "Confidence", 0); + } + } + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/IdentifyResultItem.cs b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/IdentifyResultItem.cs new file mode 100644 index 000000000000..5ab9f1a9c8d4 --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/IdentifyResultItem.cs @@ -0,0 +1,91 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.CognitiveServices.Vision.Face; + using Microsoft.Rest; + using Newtonsoft.Json; + using System.Collections; + using System.Collections.Generic; + using System.Linq; + + /// + /// Response body for identify face operation. + /// + public partial class IdentifyResultItem + { + /// + /// Initializes a new instance of the IdentifyResultItem class. + /// + public IdentifyResultItem() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the IdentifyResultItem class. + /// + /// faceId of the query face + public IdentifyResultItem(string faceId, IList candidates) + { + FaceId = faceId; + Candidates = candidates; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets faceId of the query face + /// + [JsonProperty(PropertyName = "faceId")] + public string FaceId { get; set; } + + /// + /// + [JsonProperty(PropertyName = "candidates")] + public IList Candidates { get; set; } + + /// + /// Validate the object. + /// + /// + /// Thrown if validation fails + /// + public virtual void Validate() + { + if (FaceId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "FaceId"); + } + if (Candidates == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "Candidates"); + } + if (FaceId != null) + { + if (FaceId.Length > 64) + { + throw new ValidationException(ValidationRules.MaxLength, "FaceId", 64); + } + } + if (Candidates != null) + { + foreach (var element in Candidates) + { + if (element != null) + { + element.Validate(); + } + } + } + } + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/ImageUrl.cs b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/ImageUrl.cs new file mode 100644 index 000000000000..97766b424e12 --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/ImageUrl.cs @@ -0,0 +1,57 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.CognitiveServices.Vision.Face; + using Microsoft.Rest; + using Newtonsoft.Json; + using System.Linq; + + public partial class ImageUrl + { + /// + /// Initializes a new instance of the ImageUrl class. + /// + public ImageUrl() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the ImageUrl class. + /// + public ImageUrl(string url) + { + Url = url; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// + [JsonProperty(PropertyName = "url")] + public string Url { get; set; } + + /// + /// Validate the object. + /// + /// + /// Thrown if validation fails + /// + public virtual void Validate() + { + if (Url == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "Url"); + } + } + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/PersonFaceResult.cs b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/PersonFaceResult.cs new file mode 100644 index 000000000000..68e76d97c6d8 --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/PersonFaceResult.cs @@ -0,0 +1,76 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.CognitiveServices.Vision.Face; + using Microsoft.Rest; + using Newtonsoft.Json; + using System.Linq; + + /// + /// PersonFace object. + /// + public partial class PersonFaceResult + { + /// + /// Initializes a new instance of the PersonFaceResult class. + /// + public PersonFaceResult() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the PersonFaceResult class. + /// + /// The persistedFaceId of the target + /// face, which is persisted and will not expire. Different from faceId + /// created by Face - Detect and will expire in 24 hours after the + /// detection call. + /// User-provided data attached to the + /// face. + public PersonFaceResult(string persistedFaceId, string userData = default(string)) + { + PersistedFaceId = persistedFaceId; + UserData = userData; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets the persistedFaceId of the target face, which is + /// persisted and will not expire. Different from faceId created by + /// Face - Detect and will expire in 24 hours after the detection call. + /// + [JsonProperty(PropertyName = "persistedFaceId")] + public string PersistedFaceId { get; set; } + + /// + /// Gets or sets user-provided data attached to the face. + /// + [JsonProperty(PropertyName = "userData")] + public string UserData { get; set; } + + /// + /// Validate the object. + /// + /// + /// Thrown if validation fails + /// + public virtual void Validate() + { + if (PersistedFaceId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "PersistedFaceId"); + } + } + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/PersonGroupResult.cs b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/PersonGroupResult.cs new file mode 100644 index 000000000000..4950ac12fd5f --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/PersonGroupResult.cs @@ -0,0 +1,101 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.CognitiveServices.Vision.Face; + using Microsoft.Rest; + using Newtonsoft.Json; + using System.Linq; + + /// + /// Person group object. + /// + public partial class PersonGroupResult + { + /// + /// Initializes a new instance of the PersonGroupResult class. + /// + public PersonGroupResult() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the PersonGroupResult class. + /// + /// faceListId of the target face + /// list. + /// Face list's display name. + /// User-provided data attached to this face + /// list. + public PersonGroupResult(string personGroupId, string name = default(string), string userData = default(string)) + { + PersonGroupId = personGroupId; + Name = name; + UserData = userData; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets faceListId of the target face list. + /// + [JsonProperty(PropertyName = "personGroupId")] + public string PersonGroupId { get; set; } + + /// + /// Gets or sets face list's display name. + /// + [JsonProperty(PropertyName = "name")] + public string Name { get; set; } + + /// + /// Gets or sets user-provided data attached to this face list. + /// + [JsonProperty(PropertyName = "userData")] + public string UserData { get; set; } + + /// + /// Validate the object. + /// + /// + /// Thrown if validation fails + /// + public virtual void Validate() + { + if (PersonGroupId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "PersonGroupId"); + } + if (PersonGroupId != null) + { + if (PersonGroupId.Length > 128) + { + throw new ValidationException(ValidationRules.MaxLength, "PersonGroupId", 128); + } + } + if (Name != null) + { + if (Name.Length > 128) + { + throw new ValidationException(ValidationRules.MaxLength, "Name", 128); + } + } + if (UserData != null) + { + if (UserData.Length > 16384) + { + throw new ValidationException(ValidationRules.MaxLength, "UserData", 16384); + } + } + } + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/PersonResult.cs b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/PersonResult.cs new file mode 100644 index 000000000000..8eb9097bffd0 --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/PersonResult.cs @@ -0,0 +1,93 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.CognitiveServices.Vision.Face; + using Microsoft.Rest; + using Newtonsoft.Json; + using System.Collections; + using System.Collections.Generic; + using System.Linq; + + /// + /// Person object. + /// + public partial class PersonResult + { + /// + /// Initializes a new instance of the PersonResult class. + /// + public PersonResult() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the PersonResult class. + /// + /// personId of the target face list. + /// persistedFaceIds of registered faces + /// in the person. These persistedFaceIds are returned from Person - + /// Add a Person Face, and will not expire. + /// Person's display name. + /// User-provided data attached to this + /// person. + public PersonResult(string personId, IList persistedFaceIds = default(IList), string name = default(string), string userData = default(string)) + { + PersonId = personId; + PersistedFaceIds = persistedFaceIds; + Name = name; + UserData = userData; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets personId of the target face list. + /// + [JsonProperty(PropertyName = "personId")] + public string PersonId { get; set; } + + /// + /// Gets or sets persistedFaceIds of registered faces in the person. + /// These persistedFaceIds are returned from Person - Add a Person + /// Face, and will not expire. + /// + [JsonProperty(PropertyName = "persistedFaceIds")] + public IList PersistedFaceIds { get; set; } + + /// + /// Gets or sets person's display name. + /// + [JsonProperty(PropertyName = "name")] + public string Name { get; set; } + + /// + /// Gets or sets user-provided data attached to this person. + /// + [JsonProperty(PropertyName = "userData")] + public string UserData { get; set; } + + /// + /// Validate the object. + /// + /// + /// Thrown if validation fails + /// + public virtual void Validate() + { + if (PersonId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "PersonId"); + } + } + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/Position.cs b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/Position.cs new file mode 100644 index 000000000000..4a20af049ae2 --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/Position.cs @@ -0,0 +1,66 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.CognitiveServices.Vision.Face; + using Newtonsoft.Json; + using System.Linq; + + /// + /// Coordinates within an image + /// + public partial class Position + { + /// + /// Initializes a new instance of the Position class. + /// + public Position() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the Position class. + /// + /// The horizontal component, in pixels. + /// The vertical component, in pixels. + public Position(int x, int y) + { + X = x; + Y = y; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets the horizontal component, in pixels. + /// + [JsonProperty(PropertyName = "x")] + public int X { get; set; } + + /// + /// Gets or sets the vertical component, in pixels. + /// + [JsonProperty(PropertyName = "y")] + public int Y { get; set; } + + /// + /// Validate the object. + /// + /// + /// Thrown if validation fails + /// + public virtual void Validate() + { + //Nothing to validate + } + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/SimilarFaceResult.cs b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/SimilarFaceResult.cs new file mode 100644 index 000000000000..d40e1df84c48 --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/SimilarFaceResult.cs @@ -0,0 +1,100 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.CognitiveServices.Vision.Face; + using Microsoft.Rest; + using Newtonsoft.Json; + using System.Linq; + + /// + /// Response body for find similar face operation. + /// + public partial class SimilarFaceResult + { + /// + /// Initializes a new instance of the SimilarFaceResult class. + /// + public SimilarFaceResult() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the SimilarFaceResult class. + /// + /// faceId of candidate face when find by faceIds. + /// faceId is created by Face - Detect and will expire 24 hours after + /// the detection call + /// persistedFaceId of candidate face + /// when find by faceListId. persistedFaceId in face list is persisted + /// and will not expire. As showed in below response + /// Similarity confidence of the candidate + /// face. The higher confidence, the more similar. Range between + /// [0,1 + public SimilarFaceResult(string faceId, string persistedFaceId, double? confidence = default(double?)) + { + FaceId = faceId; + PersistedFaceId = persistedFaceId; + Confidence = confidence; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets faceId of candidate face when find by faceIds. faceId + /// is created by Face - Detect and will expire 24 hours after the + /// detection call + /// + [JsonProperty(PropertyName = "faceId")] + public string FaceId { get; set; } + + /// + /// Gets or sets persistedFaceId of candidate face when find by + /// faceListId. persistedFaceId in face list is persisted and will not + /// expire. As showed in below response + /// + [JsonProperty(PropertyName = "persistedFaceId")] + public string PersistedFaceId { get; set; } + + /// + /// Gets or sets similarity confidence of the candidate face. The + /// higher confidence, the more similar. Range between [0,1 + /// + [JsonProperty(PropertyName = "confidence")] + public double? Confidence { get; set; } + + /// + /// Validate the object. + /// + /// + /// Thrown if validation fails + /// + public virtual void Validate() + { + if (FaceId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "FaceId"); + } + if (PersistedFaceId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "PersistedFaceId"); + } + if (FaceId != null) + { + if (FaceId.Length > 64) + { + throw new ValidationException(ValidationRules.MaxLength, "FaceId", 64); + } + } + } + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/TrainingStatus.cs b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/TrainingStatus.cs new file mode 100644 index 000000000000..29a37c661584 --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/TrainingStatus.cs @@ -0,0 +1,105 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.CognitiveServices.Vision.Face; + using Microsoft.Rest; + using Newtonsoft.Json; + using System.Linq; + + /// + /// Training status object. + /// + public partial class TrainingStatus + { + /// + /// Initializes a new instance of the TrainingStatus class. + /// + public TrainingStatus() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the TrainingStatus class. + /// + /// Training status: notstarted, running, + /// succeeded, failed. If the training process is waiting to perform, + /// the status is notstarted. If the training is ongoing, the status is + /// running. Status succeed means this person group is ready for Face - + /// Identify. Status failed is often caused by no person or no + /// persisted face exist in the person group. Possible values include: + /// 'nonstarted', 'running', 'succeeded', 'failed' + /// A combined UTC date and time string that + /// describes person group created time. + /// Person group last modify time in the UTC, + /// could be null value when the person group is not successfully + /// trained. + /// Show failure message when training failed + /// (omitted when training succeed). + public TrainingStatus(string status, System.DateTime? created = default(System.DateTime?), System.DateTime? lastAction = default(System.DateTime?), string message = default(string)) + { + Status = status; + Created = created; + LastAction = lastAction; + Message = message; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets training status: notstarted, running, succeeded, + /// failed. If the training process is waiting to perform, the status + /// is notstarted. If the training is ongoing, the status is running. + /// Status succeed means this person group is ready for Face - + /// Identify. Status failed is often caused by no person or no + /// persisted face exist in the person group. Possible values include: + /// 'nonstarted', 'running', 'succeeded', 'failed' + /// + [JsonProperty(PropertyName = "status")] + public string Status { get; set; } + + /// + /// Gets or sets a combined UTC date and time string that describes + /// person group created time. + /// + [JsonProperty(PropertyName = "createdDateTime")] + public System.DateTime? Created { get; set; } + + /// + /// Gets or sets person group last modify time in the UTC, could be + /// null value when the person group is not successfully trained. + /// + [JsonProperty(PropertyName = "lastActionDateTime")] + public System.DateTime? LastAction { get; set; } + + /// + /// Gets or sets show failure message when training failed (omitted + /// when training succeed). + /// + [JsonProperty(PropertyName = "message")] + public string Message { get; set; } + + /// + /// Validate the object. + /// + /// + /// Thrown if validation fails + /// + public virtual void Validate() + { + if (Status == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "Status"); + } + } + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/UpdatePersonFaceDataRequest.cs b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/UpdatePersonFaceDataRequest.cs new file mode 100644 index 000000000000..080047cf5a51 --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/UpdatePersonFaceDataRequest.cs @@ -0,0 +1,69 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.CognitiveServices.Vision.Face; + using Microsoft.Rest; + using Newtonsoft.Json; + using System.Linq; + + /// + /// Request to update person face data. + /// + public partial class UpdatePersonFaceDataRequest + { + /// + /// Initializes a new instance of the UpdatePersonFaceDataRequest + /// class. + /// + public UpdatePersonFaceDataRequest() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the UpdatePersonFaceDataRequest + /// class. + /// + /// User-provided data attached to the face. The + /// size limit is 1KB + public UpdatePersonFaceDataRequest(string userData = default(string)) + { + UserData = userData; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets user-provided data attached to the face. The size + /// limit is 1KB + /// + [JsonProperty(PropertyName = "userData")] + public string UserData { get; set; } + + /// + /// Validate the object. + /// + /// + /// Thrown if validation fails + /// + public virtual void Validate() + { + if (UserData != null) + { + if (UserData.Length > 1024) + { + throw new ValidationException(ValidationRules.MaxLength, "UserData", 1024); + } + } + } + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/VerifyRequest.cs b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/VerifyRequest.cs new file mode 100644 index 000000000000..6850dd9836de --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/VerifyRequest.cs @@ -0,0 +1,100 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.CognitiveServices.Vision.Face; + using Microsoft.Rest; + using Newtonsoft.Json; + using System.Linq; + + /// + /// Request body for verify operation. + /// + public partial class VerifyRequest + { + /// + /// Initializes a new instance of the VerifyRequest class. + /// + public VerifyRequest() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the VerifyRequest class. + /// + /// faceId the face, comes from Face - + /// Detect + /// Specify a certain person in a person group. + /// personId is created in Persons.Create. + /// Using existing personGroupId and + /// personId for fast loading a specified person. personGroupId is + /// created in Person Groups.Create. + public VerifyRequest(string faceId, string personId, string personGroupId) + { + FaceId = faceId; + PersonId = personId; + PersonGroupId = personGroupId; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets faceId the face, comes from Face - Detect + /// + [JsonProperty(PropertyName = "faceId")] + public string FaceId { get; set; } + + /// + /// Gets or sets specify a certain person in a person group. personId + /// is created in Persons.Create. + /// + [JsonProperty(PropertyName = "personId")] + public string PersonId { get; set; } + + /// + /// Gets or sets using existing personGroupId and personId for fast + /// loading a specified person. personGroupId is created in Person + /// Groups.Create. + /// + [JsonProperty(PropertyName = "personGroupId")] + public string PersonGroupId { get; set; } + + /// + /// Validate the object. + /// + /// + /// Thrown if validation fails + /// + public virtual void Validate() + { + if (FaceId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "FaceId"); + } + if (PersonId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "PersonId"); + } + if (PersonGroupId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "PersonGroupId"); + } + if (FaceId != null) + { + if (FaceId.Length > 64) + { + throw new ValidationException(ValidationRules.MaxLength, "FaceId", 64); + } + } + } + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/VerifyResult.cs b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/VerifyResult.cs new file mode 100644 index 000000000000..eb6005a8f075 --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/VerifyResult.cs @@ -0,0 +1,86 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.CognitiveServices.Vision.Face; + using Microsoft.Rest; + using Newtonsoft.Json; + using System.Linq; + + /// + /// Result of the verify operation. + /// + public partial class VerifyResult + { + /// + /// Initializes a new instance of the VerifyResult class. + /// + public VerifyResult() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the VerifyResult class. + /// + /// True if the two faces belong to the same + /// person or the face belongs to the person, otherwise false. + /// "A number indicates the similarity + /// confidence of whether two faces belong to the same person, or + /// whether the face belongs to the person. By default, isIdentical is + /// set to True if similarity confidence is greater than or equal to + /// 0.5. This is useful for advanced users to override "isIdentical" + /// and fine-tune the result on their own data" + public VerifyResult(bool isIdentical, double? confidence = default(double?)) + { + IsIdentical = isIdentical; + Confidence = confidence; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets true if the two faces belong to the same person or the + /// face belongs to the person, otherwise false. + /// + [JsonProperty(PropertyName = "isIdentical")] + public bool IsIdentical { get; set; } + + /// + /// Gets or sets "A number indicates the similarity confidence of + /// whether two faces belong to the same person, or whether the face + /// belongs to the person. By default, isIdentical is set to True if + /// similarity confidence is greater than or equal to 0.5. This is + /// useful for advanced users to override "isIdentical" and fine-tune + /// the result on their own data" + /// + [JsonProperty(PropertyName = "confidence")] + public double? Confidence { get; set; } + + /// + /// Validate the object. + /// + /// + /// Thrown if validation fails + /// + public virtual void Validate() + { + if (Confidence > 1) + { + throw new ValidationException(ValidationRules.InclusiveMaximum, "Confidence", 1); + } + if (Confidence < 0) + { + throw new ValidationException(ValidationRules.InclusiveMinimum, "Confidence", 0); + } + } + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Person.cs b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Person.cs new file mode 100644 index 000000000000..8a43a4278601 --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Person.cs @@ -0,0 +1,1762 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.Rest; + using Models; + using Newtonsoft.Json; + using System.Collections; + using System.Collections.Generic; + using System.IO; + using System.Net; + using System.Net.Http; + using System.Threading; + using System.Threading.Tasks; + + /// + /// Person operations. + /// + public partial class Person : IServiceOperations, IPerson + { + /// + /// Initializes a new instance of the Person class. + /// + /// + /// Reference to the service client. + /// + /// + /// Thrown when a required parameter is null + /// + public Person(FaceAPI client) + { + if (client == null) + { + throw new System.ArgumentNullException("client"); + } + Client = client; + } + + /// + /// Gets a reference to the FaceAPI + /// + public FaceAPI Client { get; private set; } + + /// + /// Create a new person in a specified person group. + /// + /// + /// Specifying the target person group to create the person. + /// + /// + /// Display name of the target person. The maximum length is 128. + /// + /// + /// Optional fields for user-provided data attached to a person. Size limit is + /// 16KB. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task> CreateWithHttpMessagesAsync(string personGroupId, string name = default(string), string userData = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.AzureRegion1 == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); + } + if (personGroupId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "personGroupId"); + } + if (Client.SubscriptionKey == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); + } + if (name != null) + { + if (name.Length > 128) + { + throw new ValidationException(ValidationRules.MaxLength, "name", 128); + } + } + if (userData != null) + { + if (userData.Length > 16384) + { + throw new ValidationException(ValidationRules.MaxLength, "userData", 16384); + } + } + CreatePersonRequest body = new CreatePersonRequest(); + if (name != null || userData != null) + { + body.Name = name; + body.UserData = userData; + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("personGroupId", personGroupId); + tracingParameters.Add("body", body); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "Create", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "persongroups/{personGroupId}/persons"; + _url = _url.Replace("{azureRegion}", Client.AzureRegion1); + _url = _url.Replace("{personGroupId}", System.Uri.EscapeDataString(personGroupId)); + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("POST"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.SubscriptionKey != null) + { + if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) + { + _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); + } + _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + if(body != null) + { + _requestContent = Rest.Serialization.SafeJsonConvert.SerializeObject(body, Client.SerializationSettings); + _httpRequest.Content = new StringContent(_requestContent, System.Text.Encoding.UTF8); + _httpRequest.Content.Headers.ContentType =System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json; charset=utf-8"); + } + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + // Deserialize Response + if ((int)_statusCode == 200) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + } + catch (JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); + } + } + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + /// + /// List all persons in a person group, and retrieve person information + /// (including personId, name, userData and persistedFaceIds of registered + /// faces of the person). + /// + /// + /// personGroupId of the target person group. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task>> ListWithHttpMessagesAsync(string personGroupId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.AzureRegion1 == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); + } + if (personGroupId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "personGroupId"); + } + if (Client.SubscriptionKey == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("personGroupId", personGroupId); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "List", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "persongroups/{personGroupId}/persons"; + _url = _url.Replace("{azureRegion}", Client.AzureRegion1); + _url = _url.Replace("{personGroupId}", System.Uri.EscapeDataString(personGroupId)); + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("GET"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.SubscriptionKey != null) + { + if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) + { + _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); + } + _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse>(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + // Deserialize Response + if ((int)_statusCode == 200) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject>(_responseContent, Client.DeserializationSettings); + } + catch (JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); + } + } + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + /// + /// Delete an existing person from a person group. Persisted face images of the + /// person will also be deleted. + /// + /// + /// Specifying the person group containing the person. + /// + /// + /// The target personId to delete. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task DeleteWithHttpMessagesAsync(string personGroupId, string personId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.AzureRegion1 == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); + } + if (personGroupId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "personGroupId"); + } + if (personId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "personId"); + } + if (Client.SubscriptionKey == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("personGroupId", personGroupId); + tracingParameters.Add("personId", personId); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "Delete", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "persongroups/{personGroupId}/persons/{personId}"; + _url = _url.Replace("{azureRegion}", Client.AzureRegion1); + _url = _url.Replace("{personGroupId}", System.Uri.EscapeDataString(personGroupId)); + _url = _url.Replace("{personId}", System.Uri.EscapeDataString(personId)); + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("DELETE"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.SubscriptionKey != null) + { + if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) + { + _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); + } + _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + /// + /// Retrieve a person's information, including registered persisted faces, name + /// and userData. + /// + /// + /// Specifying the person group containing the target person. + /// + /// + /// Specifying the target person. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task> GetWithHttpMessagesAsync(string personGroupId, string personId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.AzureRegion1 == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); + } + if (personGroupId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "personGroupId"); + } + if (personId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "personId"); + } + if (Client.SubscriptionKey == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("personGroupId", personGroupId); + tracingParameters.Add("personId", personId); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "Get", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "persongroups/{personGroupId}/persons/{personId}"; + _url = _url.Replace("{azureRegion}", Client.AzureRegion1); + _url = _url.Replace("{personGroupId}", System.Uri.EscapeDataString(personGroupId)); + _url = _url.Replace("{personId}", System.Uri.EscapeDataString(personId)); + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("GET"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.SubscriptionKey != null) + { + if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) + { + _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); + } + _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + // Deserialize Response + if ((int)_statusCode == 200) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + } + catch (JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); + } + } + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + /// + /// Update name or userData of a person. + /// + /// + /// Specifying the person group containing the target person. + /// + /// + /// personId of the target person. + /// + /// + /// Display name of the target person. The maximum length is 128. + /// + /// + /// Optional fields for user-provided data attached to a person. Size limit is + /// 16KB. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task UpdateWithHttpMessagesAsync(string personGroupId, string personId, string name = default(string), string userData = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.AzureRegion1 == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); + } + if (personGroupId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "personGroupId"); + } + if (personId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "personId"); + } + if (Client.SubscriptionKey == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); + } + if (name != null) + { + if (name.Length > 128) + { + throw new ValidationException(ValidationRules.MaxLength, "name", 128); + } + } + if (userData != null) + { + if (userData.Length > 16384) + { + throw new ValidationException(ValidationRules.MaxLength, "userData", 16384); + } + } + CreatePersonRequest body = new CreatePersonRequest(); + if (name != null || userData != null) + { + body.Name = name; + body.UserData = userData; + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("personGroupId", personGroupId); + tracingParameters.Add("personId", personId); + tracingParameters.Add("body", body); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "Update", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "persongroups/{personGroupId}/persons/{personId}"; + _url = _url.Replace("{azureRegion}", Client.AzureRegion1); + _url = _url.Replace("{personGroupId}", System.Uri.EscapeDataString(personGroupId)); + _url = _url.Replace("{personId}", System.Uri.EscapeDataString(personId)); + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("PATCH"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.SubscriptionKey != null) + { + if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) + { + _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); + } + _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + if(body != null) + { + _requestContent = Rest.Serialization.SafeJsonConvert.SerializeObject(body, Client.SerializationSettings); + _httpRequest.Content = new StringContent(_requestContent, System.Text.Encoding.UTF8); + _httpRequest.Content.Headers.ContentType =System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json; charset=utf-8"); + } + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + /// + /// Delete a face from a person. Relative image for the persisted face will + /// also be deleted. + /// + /// + /// Specifying the person group containing the target person. + /// + /// + /// Specifying the person that the target persisted face belong to. + /// + /// + /// The persisted face to remove. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task DeleteFaceWithHttpMessagesAsync(string personGroupId, string personId, string persistedFaceId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.AzureRegion1 == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); + } + if (personGroupId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "personGroupId"); + } + if (personId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "personId"); + } + if (persistedFaceId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "persistedFaceId"); + } + if (Client.SubscriptionKey == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("personGroupId", personGroupId); + tracingParameters.Add("personId", personId); + tracingParameters.Add("persistedFaceId", persistedFaceId); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "DeleteFace", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "persongroups/{personGroupId}/persons/{personId}/persistedFaces/{persistedFaceId}"; + _url = _url.Replace("{azureRegion}", Client.AzureRegion1); + _url = _url.Replace("{personGroupId}", System.Uri.EscapeDataString(personGroupId)); + _url = _url.Replace("{personId}", System.Uri.EscapeDataString(personId)); + _url = _url.Replace("{persistedFaceId}", System.Uri.EscapeDataString(persistedFaceId)); + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("DELETE"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.SubscriptionKey != null) + { + if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) + { + _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); + } + _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + /// + /// Retrieve information about a persisted face (specified by persistedFaceId, + /// personId and its belonging personGroupId). + /// + /// + /// Specifying the person group containing the target person. + /// + /// + /// Specifying the target person that the face belongs to. + /// + /// + /// The persistedFaceId of the target persisted face of the person. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task> GetFaceWithHttpMessagesAsync(string personGroupId, string personId, string persistedFaceId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.AzureRegion1 == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); + } + if (personGroupId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "personGroupId"); + } + if (personId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "personId"); + } + if (persistedFaceId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "persistedFaceId"); + } + if (Client.SubscriptionKey == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("personGroupId", personGroupId); + tracingParameters.Add("personId", personId); + tracingParameters.Add("persistedFaceId", persistedFaceId); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "GetFace", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "persongroups/{personGroupId}/persons/{personId}/persistedFaces/{persistedFaceId}"; + _url = _url.Replace("{azureRegion}", Client.AzureRegion1); + _url = _url.Replace("{personGroupId}", System.Uri.EscapeDataString(personGroupId)); + _url = _url.Replace("{personId}", System.Uri.EscapeDataString(personId)); + _url = _url.Replace("{persistedFaceId}", System.Uri.EscapeDataString(persistedFaceId)); + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("GET"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.SubscriptionKey != null) + { + if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) + { + _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); + } + _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + // Deserialize Response + if ((int)_statusCode == 200) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + } + catch (JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); + } + } + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + /// + /// Update a person persisted face's userData field. + /// + /// + /// Specifying the person group containing the target person. + /// + /// + /// personId of the target person. + /// + /// + /// persistedFaceId of target face, which is persisted and will not expire. + /// + /// + /// User-provided data attached to the face. The size limit is 1KB + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task UpdateFaceWithHttpMessagesAsync(string personGroupId, string personId, string persistedFaceId, string userData = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.AzureRegion1 == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); + } + if (personGroupId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "personGroupId"); + } + if (personId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "personId"); + } + if (persistedFaceId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "persistedFaceId"); + } + if (Client.SubscriptionKey == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); + } + if (userData != null) + { + if (userData.Length > 1024) + { + throw new ValidationException(ValidationRules.MaxLength, "userData", 1024); + } + } + UpdatePersonFaceDataRequest body = new UpdatePersonFaceDataRequest(); + if (userData != null) + { + body.UserData = userData; + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("personGroupId", personGroupId); + tracingParameters.Add("personId", personId); + tracingParameters.Add("persistedFaceId", persistedFaceId); + tracingParameters.Add("body", body); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "UpdateFace", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "persongroups/{personGroupId}/persons/{personId}/persistedFaces/{persistedFaceId}"; + _url = _url.Replace("{azureRegion}", Client.AzureRegion1); + _url = _url.Replace("{personGroupId}", System.Uri.EscapeDataString(personGroupId)); + _url = _url.Replace("{personId}", System.Uri.EscapeDataString(personId)); + _url = _url.Replace("{persistedFaceId}", System.Uri.EscapeDataString(persistedFaceId)); + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("PATCH"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.SubscriptionKey != null) + { + if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) + { + _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); + } + _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + if(body != null) + { + _requestContent = Rest.Serialization.SafeJsonConvert.SerializeObject(body, Client.SerializationSettings); + _httpRequest.Content = new StringContent(_requestContent, System.Text.Encoding.UTF8); + _httpRequest.Content.Headers.ContentType =System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json; charset=utf-8"); + } + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + /// + /// Add a representative face to a person for identification. The input face is + /// specified as an image with a targetFace rectangle. + /// + /// + /// Specifying the person group containing the target person. + /// + /// + /// Target person that the face is added to. + /// + /// + /// User-specified data about the target face to add for any purpose. The + /// maximum length is 1KB. + /// + /// + /// A face rectangle to specify the target face to be added to a person in the + /// format of "targetFace=left,top,width,height". E.g. + /// "targetFace=10,10,100,100". If there is more than one face in the image, + /// targetFace is required to specify which face to add. No targetFace means + /// there is only one face detected in the entire image. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task AddFaceWithHttpMessagesAsync(string personGroupId, string personId, string userData = default(string), string targetFace = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.AzureRegion1 == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); + } + if (personGroupId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "personGroupId"); + } + if (personId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "personId"); + } + if (Client.SubscriptionKey == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("personGroupId", personGroupId); + tracingParameters.Add("personId", personId); + tracingParameters.Add("userData", userData); + tracingParameters.Add("targetFace", targetFace); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "AddFace", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "persongroups/{personGroupId}/persons/{personId}/persistedFaces"; + _url = _url.Replace("{azureRegion}", Client.AzureRegion1); + _url = _url.Replace("{personGroupId}", System.Uri.EscapeDataString(personGroupId)); + _url = _url.Replace("{personId}", System.Uri.EscapeDataString(personId)); + List _queryParameters = new List(); + if (userData != null) + { + _queryParameters.Add(string.Format("userData={0}", System.Uri.EscapeDataString(userData))); + } + if (targetFace != null) + { + _queryParameters.Add(string.Format("targetFace={0}", System.Uri.EscapeDataString(targetFace))); + } + if (_queryParameters.Count > 0) + { + _url += "?" + string.Join("&", _queryParameters); + } + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("POST"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.SubscriptionKey != null) + { + if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) + { + _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); + } + _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + /// + /// Add a representative face to a person for identification. The input face is + /// specified as an image with a targetFace rectangle. + /// + /// + /// Specifying the person group containing the target person. + /// + /// + /// Target person that the face is added to. + /// + /// + /// User-specified data about the target face to add for any purpose. The + /// maximum length is 1KB. + /// + /// + /// A face rectangle to specify the target face to be added to a person, in the + /// format of "targetFace=left,top,width,height". E.g. + /// "targetFace=10,10,100,100". If there is more than one face in the image, + /// targetFace is required to specify which face to add. No targetFace means + /// there is only one face detected in the entire image. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task AddFaceFromStreamWithHttpMessagesAsync(string personGroupId, string personId, string userData = default(string), string targetFace = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.AzureRegion1 == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); + } + if (personGroupId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "personGroupId"); + } + if (personId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "personId"); + } + if (Client.SubscriptionKey == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("personGroupId", personGroupId); + tracingParameters.Add("personId", personId); + tracingParameters.Add("userData", userData); + tracingParameters.Add("targetFace", targetFace); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "AddFaceFromStream", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "persongroups/{personGroupId}/persons/{personId}/persistedFaces"; + _url = _url.Replace("{azureRegion}", Client.AzureRegion1); + _url = _url.Replace("{personGroupId}", System.Uri.EscapeDataString(personGroupId)); + _url = _url.Replace("{personId}", System.Uri.EscapeDataString(personId)); + List _queryParameters = new List(); + if (userData != null) + { + _queryParameters.Add(string.Format("userData={0}", System.Uri.EscapeDataString(userData))); + } + if (targetFace != null) + { + _queryParameters.Add(string.Format("targetFace={0}", System.Uri.EscapeDataString(targetFace))); + } + if (_queryParameters.Count > 0) + { + _url += "?" + string.Join("&", _queryParameters); + } + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("POST"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.SubscriptionKey != null) + { + if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) + { + _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); + } + _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/PersonExtensions.cs b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/PersonExtensions.cs new file mode 100644 index 000000000000..f32deac56774 --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/PersonExtensions.cs @@ -0,0 +1,503 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Models; + using System.Collections; + using System.Collections.Generic; + using System.Threading; + using System.Threading.Tasks; + + /// + /// Extension methods for Person. + /// + public static partial class PersonExtensions + { + /// + /// Create a new person in a specified person group. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Specifying the target person group to create the person. + /// + /// + /// Display name of the target person. The maximum length is 128. + /// + /// + /// Optional fields for user-provided data attached to a person. Size limit is + /// 16KB. + /// + public static CreatePersonResult Create(this IPerson operations, string personGroupId, string name = default(string), string userData = default(string)) + { + return operations.CreateAsync(personGroupId, name, userData).GetAwaiter().GetResult(); + } + + /// + /// Create a new person in a specified person group. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Specifying the target person group to create the person. + /// + /// + /// Display name of the target person. The maximum length is 128. + /// + /// + /// Optional fields for user-provided data attached to a person. Size limit is + /// 16KB. + /// + /// + /// The cancellation token. + /// + public static async Task CreateAsync(this IPerson operations, string personGroupId, string name = default(string), string userData = default(string), CancellationToken cancellationToken = default(CancellationToken)) + { + using (var _result = await operations.CreateWithHttpMessagesAsync(personGroupId, name, userData, null, cancellationToken).ConfigureAwait(false)) + { + return _result.Body; + } + } + + /// + /// List all persons in a person group, and retrieve person information + /// (including personId, name, userData and persistedFaceIds of registered + /// faces of the person). + /// + /// + /// The operations group for this extension method. + /// + /// + /// personGroupId of the target person group. + /// + public static IList List(this IPerson operations, string personGroupId) + { + return operations.ListAsync(personGroupId).GetAwaiter().GetResult(); + } + + /// + /// List all persons in a person group, and retrieve person information + /// (including personId, name, userData and persistedFaceIds of registered + /// faces of the person). + /// + /// + /// The operations group for this extension method. + /// + /// + /// personGroupId of the target person group. + /// + /// + /// The cancellation token. + /// + public static async Task> ListAsync(this IPerson operations, string personGroupId, CancellationToken cancellationToken = default(CancellationToken)) + { + using (var _result = await operations.ListWithHttpMessagesAsync(personGroupId, null, cancellationToken).ConfigureAwait(false)) + { + return _result.Body; + } + } + + /// + /// Delete an existing person from a person group. Persisted face images of the + /// person will also be deleted. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Specifying the person group containing the person. + /// + /// + /// The target personId to delete. + /// + public static void Delete(this IPerson operations, string personGroupId, string personId) + { + operations.DeleteAsync(personGroupId, personId).GetAwaiter().GetResult(); + } + + /// + /// Delete an existing person from a person group. Persisted face images of the + /// person will also be deleted. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Specifying the person group containing the person. + /// + /// + /// The target personId to delete. + /// + /// + /// The cancellation token. + /// + public static async Task DeleteAsync(this IPerson operations, string personGroupId, string personId, CancellationToken cancellationToken = default(CancellationToken)) + { + (await operations.DeleteWithHttpMessagesAsync(personGroupId, personId, null, cancellationToken).ConfigureAwait(false)).Dispose(); + } + + /// + /// Retrieve a person's information, including registered persisted faces, name + /// and userData. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Specifying the person group containing the target person. + /// + /// + /// Specifying the target person. + /// + public static PersonResult Get(this IPerson operations, string personGroupId, string personId) + { + return operations.GetAsync(personGroupId, personId).GetAwaiter().GetResult(); + } + + /// + /// Retrieve a person's information, including registered persisted faces, name + /// and userData. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Specifying the person group containing the target person. + /// + /// + /// Specifying the target person. + /// + /// + /// The cancellation token. + /// + public static async Task GetAsync(this IPerson operations, string personGroupId, string personId, CancellationToken cancellationToken = default(CancellationToken)) + { + using (var _result = await operations.GetWithHttpMessagesAsync(personGroupId, personId, null, cancellationToken).ConfigureAwait(false)) + { + return _result.Body; + } + } + + /// + /// Update name or userData of a person. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Specifying the person group containing the target person. + /// + /// + /// personId of the target person. + /// + /// + /// Display name of the target person. The maximum length is 128. + /// + /// + /// Optional fields for user-provided data attached to a person. Size limit is + /// 16KB. + /// + public static void Update(this IPerson operations, string personGroupId, string personId, string name = default(string), string userData = default(string)) + { + operations.UpdateAsync(personGroupId, personId, name, userData).GetAwaiter().GetResult(); + } + + /// + /// Update name or userData of a person. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Specifying the person group containing the target person. + /// + /// + /// personId of the target person. + /// + /// + /// Display name of the target person. The maximum length is 128. + /// + /// + /// Optional fields for user-provided data attached to a person. Size limit is + /// 16KB. + /// + /// + /// The cancellation token. + /// + public static async Task UpdateAsync(this IPerson operations, string personGroupId, string personId, string name = default(string), string userData = default(string), CancellationToken cancellationToken = default(CancellationToken)) + { + (await operations.UpdateWithHttpMessagesAsync(personGroupId, personId, name, userData, null, cancellationToken).ConfigureAwait(false)).Dispose(); + } + + /// + /// Delete a face from a person. Relative image for the persisted face will + /// also be deleted. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Specifying the person group containing the target person. + /// + /// + /// Specifying the person that the target persisted face belong to. + /// + /// + /// The persisted face to remove. + /// + public static void DeleteFace(this IPerson operations, string personGroupId, string personId, string persistedFaceId) + { + operations.DeleteFaceAsync(personGroupId, personId, persistedFaceId).GetAwaiter().GetResult(); + } + + /// + /// Delete a face from a person. Relative image for the persisted face will + /// also be deleted. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Specifying the person group containing the target person. + /// + /// + /// Specifying the person that the target persisted face belong to. + /// + /// + /// The persisted face to remove. + /// + /// + /// The cancellation token. + /// + public static async Task DeleteFaceAsync(this IPerson operations, string personGroupId, string personId, string persistedFaceId, CancellationToken cancellationToken = default(CancellationToken)) + { + (await operations.DeleteFaceWithHttpMessagesAsync(personGroupId, personId, persistedFaceId, null, cancellationToken).ConfigureAwait(false)).Dispose(); + } + + /// + /// Retrieve information about a persisted face (specified by persistedFaceId, + /// personId and its belonging personGroupId). + /// + /// + /// The operations group for this extension method. + /// + /// + /// Specifying the person group containing the target person. + /// + /// + /// Specifying the target person that the face belongs to. + /// + /// + /// The persistedFaceId of the target persisted face of the person. + /// + public static PersonFaceResult GetFace(this IPerson operations, string personGroupId, string personId, string persistedFaceId) + { + return operations.GetFaceAsync(personGroupId, personId, persistedFaceId).GetAwaiter().GetResult(); + } + + /// + /// Retrieve information about a persisted face (specified by persistedFaceId, + /// personId and its belonging personGroupId). + /// + /// + /// The operations group for this extension method. + /// + /// + /// Specifying the person group containing the target person. + /// + /// + /// Specifying the target person that the face belongs to. + /// + /// + /// The persistedFaceId of the target persisted face of the person. + /// + /// + /// The cancellation token. + /// + public static async Task GetFaceAsync(this IPerson operations, string personGroupId, string personId, string persistedFaceId, CancellationToken cancellationToken = default(CancellationToken)) + { + using (var _result = await operations.GetFaceWithHttpMessagesAsync(personGroupId, personId, persistedFaceId, null, cancellationToken).ConfigureAwait(false)) + { + return _result.Body; + } + } + + /// + /// Update a person persisted face's userData field. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Specifying the person group containing the target person. + /// + /// + /// personId of the target person. + /// + /// + /// persistedFaceId of target face, which is persisted and will not expire. + /// + /// + /// User-provided data attached to the face. The size limit is 1KB + /// + public static void UpdateFace(this IPerson operations, string personGroupId, string personId, string persistedFaceId, string userData = default(string)) + { + operations.UpdateFaceAsync(personGroupId, personId, persistedFaceId, userData).GetAwaiter().GetResult(); + } + + /// + /// Update a person persisted face's userData field. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Specifying the person group containing the target person. + /// + /// + /// personId of the target person. + /// + /// + /// persistedFaceId of target face, which is persisted and will not expire. + /// + /// + /// User-provided data attached to the face. The size limit is 1KB + /// + /// + /// The cancellation token. + /// + public static async Task UpdateFaceAsync(this IPerson operations, string personGroupId, string personId, string persistedFaceId, string userData = default(string), CancellationToken cancellationToken = default(CancellationToken)) + { + (await operations.UpdateFaceWithHttpMessagesAsync(personGroupId, personId, persistedFaceId, userData, null, cancellationToken).ConfigureAwait(false)).Dispose(); + } + + /// + /// Add a representative face to a person for identification. The input face is + /// specified as an image with a targetFace rectangle. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Specifying the person group containing the target person. + /// + /// + /// Target person that the face is added to. + /// + /// + /// User-specified data about the target face to add for any purpose. The + /// maximum length is 1KB. + /// + /// + /// A face rectangle to specify the target face to be added to a person in the + /// format of "targetFace=left,top,width,height". E.g. + /// "targetFace=10,10,100,100". If there is more than one face in the image, + /// targetFace is required to specify which face to add. No targetFace means + /// there is only one face detected in the entire image. + /// + public static void AddFace(this IPerson operations, string personGroupId, string personId, string userData = default(string), string targetFace = default(string)) + { + operations.AddFaceAsync(personGroupId, personId, userData, targetFace).GetAwaiter().GetResult(); + } + + /// + /// Add a representative face to a person for identification. The input face is + /// specified as an image with a targetFace rectangle. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Specifying the person group containing the target person. + /// + /// + /// Target person that the face is added to. + /// + /// + /// User-specified data about the target face to add for any purpose. The + /// maximum length is 1KB. + /// + /// + /// A face rectangle to specify the target face to be added to a person in the + /// format of "targetFace=left,top,width,height". E.g. + /// "targetFace=10,10,100,100". If there is more than one face in the image, + /// targetFace is required to specify which face to add. No targetFace means + /// there is only one face detected in the entire image. + /// + /// + /// The cancellation token. + /// + public static async Task AddFaceAsync(this IPerson operations, string personGroupId, string personId, string userData = default(string), string targetFace = default(string), CancellationToken cancellationToken = default(CancellationToken)) + { + (await operations.AddFaceWithHttpMessagesAsync(personGroupId, personId, userData, targetFace, null, cancellationToken).ConfigureAwait(false)).Dispose(); + } + + /// + /// Add a representative face to a person for identification. The input face is + /// specified as an image with a targetFace rectangle. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Specifying the person group containing the target person. + /// + /// + /// Target person that the face is added to. + /// + /// + /// User-specified data about the target face to add for any purpose. The + /// maximum length is 1KB. + /// + /// + /// A face rectangle to specify the target face to be added to a person, in the + /// format of "targetFace=left,top,width,height". E.g. + /// "targetFace=10,10,100,100". If there is more than one face in the image, + /// targetFace is required to specify which face to add. No targetFace means + /// there is only one face detected in the entire image. + /// + public static void AddFaceFromStream(this IPerson operations, string personGroupId, string personId, string userData = default(string), string targetFace = default(string)) + { + operations.AddFaceFromStreamAsync(personGroupId, personId, userData, targetFace).GetAwaiter().GetResult(); + } + + /// + /// Add a representative face to a person for identification. The input face is + /// specified as an image with a targetFace rectangle. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Specifying the person group containing the target person. + /// + /// + /// Target person that the face is added to. + /// + /// + /// User-specified data about the target face to add for any purpose. The + /// maximum length is 1KB. + /// + /// + /// A face rectangle to specify the target face to be added to a person, in the + /// format of "targetFace=left,top,width,height". E.g. + /// "targetFace=10,10,100,100". If there is more than one face in the image, + /// targetFace is required to specify which face to add. No targetFace means + /// there is only one face detected in the entire image. + /// + /// + /// The cancellation token. + /// + public static async Task AddFaceFromStreamAsync(this IPerson operations, string personGroupId, string personId, string userData = default(string), string targetFace = default(string), CancellationToken cancellationToken = default(CancellationToken)) + { + (await operations.AddFaceFromStreamWithHttpMessagesAsync(personGroupId, personId, userData, targetFace, null, cancellationToken).ConfigureAwait(false)).Dispose(); + } + + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/PersonGroup.cs b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/PersonGroup.cs new file mode 100644 index 000000000000..420f59d732eb --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/PersonGroup.cs @@ -0,0 +1,1189 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.Rest; + using Models; + using Newtonsoft.Json; + using System.Collections; + using System.Collections.Generic; + using System.IO; + using System.Net; + using System.Net.Http; + using System.Threading; + using System.Threading.Tasks; + + /// + /// PersonGroup operations. + /// + public partial class PersonGroup : IServiceOperations, IPersonGroup + { + /// + /// Initializes a new instance of the PersonGroup class. + /// + /// + /// Reference to the service client. + /// + /// + /// Thrown when a required parameter is null + /// + public PersonGroup(FaceAPI client) + { + if (client == null) + { + throw new System.ArgumentNullException("client"); + } + Client = client; + } + + /// + /// Gets a reference to the FaceAPI + /// + public FaceAPI Client { get; private set; } + + /// + /// Create a new person group with specified personGroupId, name and + /// user-provided userData. + /// + /// + /// User-provided personGroupId as a string. + /// + /// + /// Name of the face list, maximum length is 128. + /// + /// + /// Optional user defined data for the face list. Length should not exceed + /// 16KB. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task CreateWithHttpMessagesAsync(string personGroupId, string name = default(string), string userData = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.AzureRegion1 == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); + } + if (personGroupId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "personGroupId"); + } + if (personGroupId != null) + { + if (personGroupId.Length > 64) + { + throw new ValidationException(ValidationRules.MaxLength, "personGroupId", 64); + } + if (!System.Text.RegularExpressions.Regex.IsMatch(personGroupId, "^[a-z0-9-_]+$")) + { + throw new ValidationException(ValidationRules.Pattern, "personGroupId", "^[a-z0-9-_]+$"); + } + } + if (Client.SubscriptionKey == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); + } + if (name != null) + { + if (name.Length > 128) + { + throw new ValidationException(ValidationRules.MaxLength, "name", 128); + } + } + if (userData != null) + { + if (userData.Length > 16384) + { + throw new ValidationException(ValidationRules.MaxLength, "userData", 16384); + } + } + CreatePersonGroupRequest body = new CreatePersonGroupRequest(); + if (name != null || userData != null) + { + body.Name = name; + body.UserData = userData; + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("personGroupId", personGroupId); + tracingParameters.Add("body", body); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "Create", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "persongroups/{personGroupId}"; + _url = _url.Replace("{azureRegion}", Client.AzureRegion1); + _url = _url.Replace("{personGroupId}", System.Uri.EscapeDataString(personGroupId)); + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("PUT"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.SubscriptionKey != null) + { + if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) + { + _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); + } + _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + if(body != null) + { + _requestContent = Rest.Serialization.SafeJsonConvert.SerializeObject(body, Client.SerializationSettings); + _httpRequest.Content = new StringContent(_requestContent, System.Text.Encoding.UTF8); + _httpRequest.Content.Headers.ContentType =System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json; charset=utf-8"); + } + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + /// + /// Delete an existing person group. Persisted face images of all people in the + /// person group will also be deleted. + /// + /// + /// The personGroupId of the person group to be deleted. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task DeleteWithHttpMessagesAsync(string personGroupId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.AzureRegion1 == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); + } + if (personGroupId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "personGroupId"); + } + if (Client.SubscriptionKey == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("personGroupId", personGroupId); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "Delete", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "persongroups/{personGroupId}"; + _url = _url.Replace("{azureRegion}", Client.AzureRegion1); + _url = _url.Replace("{personGroupId}", System.Uri.EscapeDataString(personGroupId)); + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("DELETE"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.SubscriptionKey != null) + { + if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) + { + _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); + } + _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + /// + /// Retrieve the information of a person group, including its name and + /// userData. + /// + /// + /// personGroupId of the target person group. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task> GetWithHttpMessagesAsync(string personGroupId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.AzureRegion1 == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); + } + if (personGroupId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "personGroupId"); + } + if (Client.SubscriptionKey == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("personGroupId", personGroupId); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "Get", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "persongroups/{personGroupId}"; + _url = _url.Replace("{azureRegion}", Client.AzureRegion1); + _url = _url.Replace("{personGroupId}", System.Uri.EscapeDataString(personGroupId)); + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("GET"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.SubscriptionKey != null) + { + if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) + { + _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); + } + _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + // Deserialize Response + if ((int)_statusCode == 200) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + } + catch (JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); + } + } + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + /// + /// Update an existing person group's display name and userData. The properties + /// which does not appear in request body will not be updated. + /// + /// + /// personGroupId of the person group to be updated. + /// + /// + /// Name of the face list, maximum length is 128. + /// + /// + /// Optional user defined data for the face list. Length should not exceed + /// 16KB. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task UpdateWithHttpMessagesAsync(string personGroupId, string name = default(string), string userData = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.AzureRegion1 == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); + } + if (personGroupId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "personGroupId"); + } + if (Client.SubscriptionKey == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); + } + if (name != null) + { + if (name.Length > 128) + { + throw new ValidationException(ValidationRules.MaxLength, "name", 128); + } + } + if (userData != null) + { + if (userData.Length > 16384) + { + throw new ValidationException(ValidationRules.MaxLength, "userData", 16384); + } + } + CreatePersonGroupRequest body = new CreatePersonGroupRequest(); + if (name != null || userData != null) + { + body.Name = name; + body.UserData = userData; + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("personGroupId", personGroupId); + tracingParameters.Add("body", body); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "Update", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "persongroups/{personGroupId}"; + _url = _url.Replace("{azureRegion}", Client.AzureRegion1); + _url = _url.Replace("{personGroupId}", System.Uri.EscapeDataString(personGroupId)); + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("PATCH"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.SubscriptionKey != null) + { + if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) + { + _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); + } + _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + if(body != null) + { + _requestContent = Rest.Serialization.SafeJsonConvert.SerializeObject(body, Client.SerializationSettings); + _httpRequest.Content = new StringContent(_requestContent, System.Text.Encoding.UTF8); + _httpRequest.Content.Headers.ContentType =System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json; charset=utf-8"); + } + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + /// + /// Retrieve the training status of a person group (completed or ongoing). + /// + /// + /// personGroupId of target person group. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task> GetTrainingStatusWithHttpMessagesAsync(string personGroupId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.AzureRegion1 == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); + } + if (personGroupId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "personGroupId"); + } + if (Client.SubscriptionKey == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("personGroupId", personGroupId); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "GetTrainingStatus", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "persongroups/{personGroupId}/training"; + _url = _url.Replace("{azureRegion}", Client.AzureRegion1); + _url = _url.Replace("{personGroupId}", System.Uri.EscapeDataString(personGroupId)); + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("GET"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.SubscriptionKey != null) + { + if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) + { + _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); + } + _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + // Deserialize Response + if ((int)_statusCode == 200) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + } + catch (JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); + } + } + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + /// + /// List person groups and their information. + /// + /// + /// List person groups from the least personGroupId greater than the "start". + /// + /// + /// The number of person groups to list. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task>> ListWithHttpMessagesAsync(string start = default(string), int? top = 1000, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.AzureRegion1 == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); + } + if (start != null) + { + if (start.Length > 64) + { + throw new ValidationException(ValidationRules.MaxLength, "start", 64); + } + } + if (top > 1000) + { + throw new ValidationException(ValidationRules.InclusiveMaximum, "top", 1000); + } + if (top < 1) + { + throw new ValidationException(ValidationRules.InclusiveMinimum, "top", 1); + } + if (Client.SubscriptionKey == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("start", start); + tracingParameters.Add("top", top); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "List", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "persongroups"; + _url = _url.Replace("{azureRegion}", Client.AzureRegion1); + List _queryParameters = new List(); + if (start != null) + { + _queryParameters.Add(string.Format("start={0}", System.Uri.EscapeDataString(start))); + } + if (top != null) + { + _queryParameters.Add(string.Format("top={0}", System.Uri.EscapeDataString(Rest.Serialization.SafeJsonConvert.SerializeObject(top, Client.SerializationSettings).Trim('"')))); + } + if (_queryParameters.Count > 0) + { + _url += "?" + string.Join("&", _queryParameters); + } + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("GET"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.SubscriptionKey != null) + { + if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) + { + _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); + } + _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse>(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + // Deserialize Response + if ((int)_statusCode == 200) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject>(_responseContent, Client.DeserializationSettings); + } + catch (JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); + } + } + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + /// + /// Queue a person group training task, the training task may not be started + /// immediately. + /// + /// + /// Target person group to be trained. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task TrainWithHttpMessagesAsync(string personGroupId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.AzureRegion1 == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); + } + if (personGroupId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "personGroupId"); + } + if (Client.SubscriptionKey == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("personGroupId", personGroupId); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "Train", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "persongroups/{personGroupId}/train"; + _url = _url.Replace("{azureRegion}", Client.AzureRegion1); + _url = _url.Replace("{personGroupId}", System.Uri.EscapeDataString(personGroupId)); + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("POST"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.SubscriptionKey != null) + { + if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) + { + _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); + } + _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 202) + { + var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/PersonGroupExtensions.cs b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/PersonGroupExtensions.cs new file mode 100644 index 000000000000..d0545cdcbe74 --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/PersonGroupExtensions.cs @@ -0,0 +1,291 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Models; + using System.Collections; + using System.Collections.Generic; + using System.Threading; + using System.Threading.Tasks; + + /// + /// Extension methods for PersonGroup. + /// + public static partial class PersonGroupExtensions + { + /// + /// Create a new person group with specified personGroupId, name and + /// user-provided userData. + /// + /// + /// The operations group for this extension method. + /// + /// + /// User-provided personGroupId as a string. + /// + /// + /// Name of the face list, maximum length is 128. + /// + /// + /// Optional user defined data for the face list. Length should not exceed + /// 16KB. + /// + public static void Create(this IPersonGroup operations, string personGroupId, string name = default(string), string userData = default(string)) + { + operations.CreateAsync(personGroupId, name, userData).GetAwaiter().GetResult(); + } + + /// + /// Create a new person group with specified personGroupId, name and + /// user-provided userData. + /// + /// + /// The operations group for this extension method. + /// + /// + /// User-provided personGroupId as a string. + /// + /// + /// Name of the face list, maximum length is 128. + /// + /// + /// Optional user defined data for the face list. Length should not exceed + /// 16KB. + /// + /// + /// The cancellation token. + /// + public static async Task CreateAsync(this IPersonGroup operations, string personGroupId, string name = default(string), string userData = default(string), CancellationToken cancellationToken = default(CancellationToken)) + { + (await operations.CreateWithHttpMessagesAsync(personGroupId, name, userData, null, cancellationToken).ConfigureAwait(false)).Dispose(); + } + + /// + /// Delete an existing person group. Persisted face images of all people in the + /// person group will also be deleted. + /// + /// + /// The operations group for this extension method. + /// + /// + /// The personGroupId of the person group to be deleted. + /// + public static void Delete(this IPersonGroup operations, string personGroupId) + { + operations.DeleteAsync(personGroupId).GetAwaiter().GetResult(); + } + + /// + /// Delete an existing person group. Persisted face images of all people in the + /// person group will also be deleted. + /// + /// + /// The operations group for this extension method. + /// + /// + /// The personGroupId of the person group to be deleted. + /// + /// + /// The cancellation token. + /// + public static async Task DeleteAsync(this IPersonGroup operations, string personGroupId, CancellationToken cancellationToken = default(CancellationToken)) + { + (await operations.DeleteWithHttpMessagesAsync(personGroupId, null, cancellationToken).ConfigureAwait(false)).Dispose(); + } + + /// + /// Retrieve the information of a person group, including its name and + /// userData. + /// + /// + /// The operations group for this extension method. + /// + /// + /// personGroupId of the target person group. + /// + public static PersonGroupResult Get(this IPersonGroup operations, string personGroupId) + { + return operations.GetAsync(personGroupId).GetAwaiter().GetResult(); + } + + /// + /// Retrieve the information of a person group, including its name and + /// userData. + /// + /// + /// The operations group for this extension method. + /// + /// + /// personGroupId of the target person group. + /// + /// + /// The cancellation token. + /// + public static async Task GetAsync(this IPersonGroup operations, string personGroupId, CancellationToken cancellationToken = default(CancellationToken)) + { + using (var _result = await operations.GetWithHttpMessagesAsync(personGroupId, null, cancellationToken).ConfigureAwait(false)) + { + return _result.Body; + } + } + + /// + /// Update an existing person group's display name and userData. The properties + /// which does not appear in request body will not be updated. + /// + /// + /// The operations group for this extension method. + /// + /// + /// personGroupId of the person group to be updated. + /// + /// + /// Name of the face list, maximum length is 128. + /// + /// + /// Optional user defined data for the face list. Length should not exceed + /// 16KB. + /// + public static void Update(this IPersonGroup operations, string personGroupId, string name = default(string), string userData = default(string)) + { + operations.UpdateAsync(personGroupId, name, userData).GetAwaiter().GetResult(); + } + + /// + /// Update an existing person group's display name and userData. The properties + /// which does not appear in request body will not be updated. + /// + /// + /// The operations group for this extension method. + /// + /// + /// personGroupId of the person group to be updated. + /// + /// + /// Name of the face list, maximum length is 128. + /// + /// + /// Optional user defined data for the face list. Length should not exceed + /// 16KB. + /// + /// + /// The cancellation token. + /// + public static async Task UpdateAsync(this IPersonGroup operations, string personGroupId, string name = default(string), string userData = default(string), CancellationToken cancellationToken = default(CancellationToken)) + { + (await operations.UpdateWithHttpMessagesAsync(personGroupId, name, userData, null, cancellationToken).ConfigureAwait(false)).Dispose(); + } + + /// + /// Retrieve the training status of a person group (completed or ongoing). + /// + /// + /// The operations group for this extension method. + /// + /// + /// personGroupId of target person group. + /// + public static TrainingStatus GetTrainingStatus(this IPersonGroup operations, string personGroupId) + { + return operations.GetTrainingStatusAsync(personGroupId).GetAwaiter().GetResult(); + } + + /// + /// Retrieve the training status of a person group (completed or ongoing). + /// + /// + /// The operations group for this extension method. + /// + /// + /// personGroupId of target person group. + /// + /// + /// The cancellation token. + /// + public static async Task GetTrainingStatusAsync(this IPersonGroup operations, string personGroupId, CancellationToken cancellationToken = default(CancellationToken)) + { + using (var _result = await operations.GetTrainingStatusWithHttpMessagesAsync(personGroupId, null, cancellationToken).ConfigureAwait(false)) + { + return _result.Body; + } + } + + /// + /// List person groups and their information. + /// + /// + /// The operations group for this extension method. + /// + /// + /// List person groups from the least personGroupId greater than the "start". + /// + /// + /// The number of person groups to list. + /// + public static IList List(this IPersonGroup operations, string start = default(string), int? top = 1000) + { + return operations.ListAsync(start, top).GetAwaiter().GetResult(); + } + + /// + /// List person groups and their information. + /// + /// + /// The operations group for this extension method. + /// + /// + /// List person groups from the least personGroupId greater than the "start". + /// + /// + /// The number of person groups to list. + /// + /// + /// The cancellation token. + /// + public static async Task> ListAsync(this IPersonGroup operations, string start = default(string), int? top = 1000, CancellationToken cancellationToken = default(CancellationToken)) + { + using (var _result = await operations.ListWithHttpMessagesAsync(start, top, null, cancellationToken).ConfigureAwait(false)) + { + return _result.Body; + } + } + + /// + /// Queue a person group training task, the training task may not be started + /// immediately. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Target person group to be trained. + /// + public static void Train(this IPersonGroup operations, string personGroupId) + { + operations.TrainAsync(personGroupId).GetAwaiter().GetResult(); + } + + /// + /// Queue a person group training task, the training task may not be started + /// immediately. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Target person group to be trained. + /// + /// + /// The cancellation token. + /// + public static async Task TrainAsync(this IPersonGroup operations, string personGroupId, CancellationToken cancellationToken = default(CancellationToken)) + { + (await operations.TrainWithHttpMessagesAsync(personGroupId, null, cancellationToken).ConfigureAwait(false)).Dispose(); + } + + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Microsoft.CognitiveServices.Vision.csproj b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Microsoft.CognitiveServices.Vision.csproj new file mode 100644 index 000000000000..eeb20f753e7a --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Microsoft.CognitiveServices.Vision.csproj @@ -0,0 +1,33 @@ + + + + Microsoft.CognitiveServices.Vision + This client library provides access to the Microsoft Cognitive Services Vision APIs. + 1.0.0 + $(DefineConstants);CODESIGN + true + Microsoft.CognitiveServices.Vision + Microsoft Cognitive Services;Cognitive Services;Cognitive Services SDK;Face API;REST HTTP client;Face SDK;netcore451511 + bin\$(Configuration)\$(TargetFramework)\$(AssemblyName).xml + + + + net452;netstandard1.4 + True + For detailed release notes, see: + + + + $(DefineConstants);FullNetFx + + + + + $(DefineConstants);netstandard14;PORTABLE + + + + + + + \ No newline at end of file From 975007a2a566deabf1962e75def52f76afe64875 Mon Sep 17 00:00:00 2001 From: "David Li (WINDOWS)" Date: Fri, 25 Aug 2017 20:45:11 -0700 Subject: [PATCH 02/21] Add Text Analytics SDK. --- .../BaseTests.cs | 35 + .../DetectLanguageTests.cs | 27 + .../KeyPhrasesTests.cs | 26 + ...ft.CognitiveServices.Language.Tests.csproj | 30 + .../testsettings.json | 4 + .../Microsoft.CognitiveServices.Language.sln | 28 + .../TextAnalytics/ITextAnalyticsAPI.cs | 127 ++++ .../TextAnalytics/Models/AzureRegion.cs | 22 + .../TextAnalytics/Models/BatchInputV2.cs | 45 ++ .../Models/DetectedLanguageV2.cs | 69 ++ .../Generated/TextAnalytics/Models/Dummyv2.cs | 43 ++ .../Generated/TextAnalytics/Models/Error.cs | 52 ++ .../TextAnalytics/Models/ErrorRecordV2.cs | 54 ++ .../TextAnalytics/Models/ErrorResponse.cs | 61 ++ .../Models/ErrorResponseException.cs | 59 ++ .../Generated/TextAnalytics/Models/InputV2.cs | 51 ++ .../TextAnalytics/Models/InternalError.cs | 64 ++ .../Models/KeyPhraseBatchResultItemV2.cs | 59 ++ .../Models/KeyPhraseBatchResultV2.cs | 51 ++ .../Models/LanguageBatchResultItemV2.cs | 56 ++ .../Models/LanguageBatchResultV2.cs | 51 ++ .../Models/MultiLanguageBatchInputV2.cs | 45 ++ .../Models/MultiLanguageInputV2.cs | 63 ++ .../Models/SentimentBatchResultItemV2.cs | 61 ++ .../Models/SentimentBatchResultV2.cs | 51 ++ .../TextAnalytics/TextAnalyticsAPI.cs | 650 ++++++++++++++++++ .../TextAnalyticsAPIExtensions.cs | 169 +++++ ...icrosoft.CognitiveServices.Language.csproj | 33 + 28 files changed, 2086 insertions(+) create mode 100644 src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/BaseTests.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/DetectLanguageTests.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/KeyPhrasesTests.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/Microsoft.CognitiveServices.Language.Tests.csproj create mode 100644 src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/testsettings.json create mode 100644 src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.sln create mode 100644 src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/ITextAnalyticsAPI.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/AzureRegion.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/BatchInputV2.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/DetectedLanguageV2.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/Dummyv2.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/Error.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/ErrorRecordV2.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/ErrorResponse.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/ErrorResponseException.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/InputV2.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/InternalError.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/KeyPhraseBatchResultItemV2.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/KeyPhraseBatchResultV2.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/LanguageBatchResultItemV2.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/LanguageBatchResultV2.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/MultiLanguageBatchInputV2.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/MultiLanguageInputV2.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/SentimentBatchResultItemV2.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/SentimentBatchResultV2.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/TextAnalyticsAPI.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/TextAnalyticsAPIExtensions.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Microsoft.CognitiveServices.Language.csproj diff --git a/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/BaseTests.cs b/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/BaseTests.cs new file mode 100644 index 000000000000..6de05bed5cf5 --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/BaseTests.cs @@ -0,0 +1,35 @@ + +using Microsoft.CognitiveServices.Language.TextAnalytics; +using Microsoft.Extensions.Configuration; + +namespace Microsoft.CognitiveServices.Language.Tests +{ + public abstract class BaseTests + { + private static string SubscriptionKey = null; + private static string Region = null; + + static BaseTests() + { + var builder = new ConfigurationBuilder() + .AddJsonFile("testsettings.json"); + + // Create the configuration object that the application will + // use to retrieve configuration information. + var configuration = builder.Build(); + + // Retrieve the configuration information. + SubscriptionKey = configuration["SubscriptionKey"]; + Region = configuration["Region"]; + } + + protected ITextAnalyticsAPI GetClient() + { + return new TextAnalyticsAPI() + { + SubscriptionKey = SubscriptionKey, + AzureRegion1 = Region + }; + } + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/DetectLanguageTests.cs b/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/DetectLanguageTests.cs new file mode 100644 index 000000000000..6f2e823e1bf9 --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/DetectLanguageTests.cs @@ -0,0 +1,27 @@ +using Microsoft.CognitiveServices.Language.TextAnalytics; +using System; +using System.Collections.Generic; +using System.IO; +using Xunit; +using Microsoft.CognitiveServices.Language.TextAnalytics.Models; + +namespace Microsoft.CognitiveServices.Language.Tests +{ + public class DetectLanguageTests : BaseTests + { + [Fact] + public void DetectLanguage() + { + ITextAnalyticsAPI client = GetClient(); + LanguageBatchResultV2 result = client.DetectLanguage( + new BatchInputV2( + new List() + { + new InputV2("id","I love my team mates") + })); + + Assert.Equal("English", result.Documents[0].DetectedLanguages[0].Name); + Assert.Equal("en", result.Documents[0].DetectedLanguages[0].Iso6391Name); + } + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/KeyPhrasesTests.cs b/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/KeyPhrasesTests.cs new file mode 100644 index 000000000000..fd5ab78c8ec2 --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/KeyPhrasesTests.cs @@ -0,0 +1,26 @@ +using Microsoft.CognitiveServices.Language.TextAnalytics; +using Microsoft.CognitiveServices.Language.TextAnalytics.Models; +using System; +using System.Collections.Generic; +using System.Text; +using Xunit; + +namespace Microsoft.CognitiveServices.Language.Tests +{ + public class KeyPhrasesTests : BaseTests + { + [Fact] + public void KeyPhrases() + { + ITextAnalyticsAPI client = GetClient(); + KeyPhraseBatchResultV2 result = client.KeyPhrases( + new MultiLanguageBatchInputV2( + new List() + { + new MultiLanguageInputV2("id", "I love my team mates", "en") + })); + + Assert.Equal("team mates", result.Documents[0].KeyPhrases[0]); + } + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/Microsoft.CognitiveServices.Language.Tests.csproj b/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/Microsoft.CognitiveServices.Language.Tests.csproj new file mode 100644 index 000000000000..c147a9ebb9bf --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/Microsoft.CognitiveServices.Language.Tests.csproj @@ -0,0 +1,30 @@ + + + + netcoreapp1.1 + + + + + + + + + + + + + + + + + + + + + + PreserveNewest + + + + diff --git a/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/testsettings.json b/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/testsettings.json new file mode 100644 index 000000000000..acb851d46f81 --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/testsettings.json @@ -0,0 +1,4 @@ +{ + "SubscriptionKey": "9daf6a9264dc4a0095253e55a0e0e1fb", + "Region": "WestUS" +} \ No newline at end of file diff --git a/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.sln b/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.sln new file mode 100644 index 000000000000..eb7dbc626eaa --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.sln @@ -0,0 +1,28 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 15 +VisualStudioVersion = 15.0.26430.16 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.CognitiveServices.Language", "Microsoft.CognitiveServices.Language\Microsoft.CognitiveServices.Language.csproj", "{6807B854-8528-4FEE-A25D-C43C3AA2D601}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.CognitiveServices.Language.Tests", "Microsoft.CognitiveServices.Language.Tests\Microsoft.CognitiveServices.Language.Tests.csproj", "{5987D97A-E532-450C-BF22-A1F595C927F1}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {6807B854-8528-4FEE-A25D-C43C3AA2D601}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6807B854-8528-4FEE-A25D-C43C3AA2D601}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6807B854-8528-4FEE-A25D-C43C3AA2D601}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6807B854-8528-4FEE-A25D-C43C3AA2D601}.Release|Any CPU.Build.0 = Release|Any CPU + {5987D97A-E532-450C-BF22-A1F595C927F1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5987D97A-E532-450C-BF22-A1F595C927F1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5987D97A-E532-450C-BF22-A1F595C927F1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5987D97A-E532-450C-BF22-A1F595C927F1}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/ITextAnalyticsAPI.cs b/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/ITextAnalyticsAPI.cs new file mode 100644 index 000000000000..1b6e1b95f20b --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/ITextAnalyticsAPI.cs @@ -0,0 +1,127 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Language.TextAnalytics +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Language; + using Microsoft.Rest; + using Models; + using Newtonsoft.Json; + using System.Collections; + using System.Collections.Generic; + using System.Threading; + using System.Threading.Tasks; + + /// + /// The Text Analytics API is a suite of text analytics web services built + /// with Azure Machine Learning. + /// The API can be used to analyze unstructured text for tasks such as + /// sentiment analysis, key phrase extraction and language detection. + /// No training data is needed to use this API; just bring your text data. + /// This API uses advanced natural language processing techniques to + /// deliver best in class predictions. + /// + /// Further documentation can be found in + /// https://azure.microsoft.com/en-us/documentation/articles/machine-learning-apps-text-analytics/ + /// + public partial interface ITextAnalyticsAPI : System.IDisposable + { + /// + /// The base URI of the service. + /// + + /// + /// Gets or sets json serialization settings. + /// + JsonSerializerSettings SerializationSettings { get; } + + /// + /// Gets or sets json deserialization settings. + /// + JsonSerializerSettings DeserializationSettings { get; } + + /// + /// Supported Azure regions for Face Detection endpoints. Possible + /// values include: 'westus', 'westeurope', 'southeastasia', 'eastus2', + /// 'westcentralus' + /// + string AzureRegion1 { get; set; } + + /// + /// Subscription key in header + /// + string SubscriptionKey { get; set; } + + + /// + /// The API returns a list of strings denoting the key talking points + /// in the input text. + /// We employ techniques from Microsoft Office's sophisticated Natural + /// Language Processing toolkit. + /// See the <a + /// href="https://docs.microsoft.com/en-us/azure/cognitive-services/text-analytics/overview#supported-languages">Text + /// Analytics Documentation</a> for details about the languages + /// that are supported by key phrase extraction. + /// + /// + /// Collection of documents to analyze. Documents can now contain a + /// language field to indicate the text language + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + Task> KeyPhrasesWithHttpMessagesAsync(MultiLanguageBatchInputV2 input, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + + /// + /// The API returns the detected language and a numeric score between 0 + /// and 1. + /// Scores close to 1 indicate 100% certainty that the identified + /// language is true. + /// A total of 120 languages are supported. + /// + /// + /// Collection of documents to analyze. + /// + /// + /// (Optional. Deprecated) Number of languages to detect. Set to 1 by + /// default. Irrespective of the value, the language with the highest + /// score is returned. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + Task> DetectLanguageWithHttpMessagesAsync(BatchInputV2 input, int? numberOfLanguagesToDetect = default(int?), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + + /// + /// The API returns a numeric score between 0 and 1. + /// Scores close to 1 indicate positive sentiment, while scores close + /// to 0 indicate negative sentiment. + /// Sentiment score is generated using classification techniques. + /// The input features to the classifier include n-grams, features + /// generated from part-of-speech tags, and word embeddings. + /// See the <a + /// href="https://docs.microsoft.com/en-us/azure/cognitive-services/text-analytics/overview#supported-languages">Text + /// Analytics Documentation</a> for details about the languages + /// that are supported by sentiment analysis. + /// + /// + /// Collection of documents to analyze. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + Task> SentimentWithHttpMessagesAsync(MultiLanguageBatchInputV2 input, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/AzureRegion.cs b/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/AzureRegion.cs new file mode 100644 index 000000000000..b49cbf519c59 --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/AzureRegion.cs @@ -0,0 +1,22 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Language.TextAnalytics.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Language; + using Microsoft.CognitiveServices.Language.TextAnalytics; + + /// + /// Defines values for AzureRegion. + /// + public static class AzureRegion + { + public const string Westus = "westus"; + public const string Westeurope = "westeurope"; + public const string Southeastasia = "southeastasia"; + public const string Eastus2 = "eastus2"; + public const string Westcentralus = "westcentralus"; + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/BatchInputV2.cs b/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/BatchInputV2.cs new file mode 100644 index 000000000000..1a0bb77e09d9 --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/BatchInputV2.cs @@ -0,0 +1,45 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Language.TextAnalytics.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Language; + using Microsoft.CognitiveServices.Language.TextAnalytics; + using Newtonsoft.Json; + using System.Collections; + using System.Collections.Generic; + using System.Linq; + + public partial class BatchInputV2 + { + /// + /// Initializes a new instance of the BatchInputV2 class. + /// + public BatchInputV2() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the BatchInputV2 class. + /// + public BatchInputV2(IList documents = default(IList)) + { + Documents = documents; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// + [JsonProperty(PropertyName = "documents")] + public IList Documents { get; set; } + + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/DetectedLanguageV2.cs b/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/DetectedLanguageV2.cs new file mode 100644 index 000000000000..f2cfea288215 --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/DetectedLanguageV2.cs @@ -0,0 +1,69 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Language.TextAnalytics.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Language; + using Microsoft.CognitiveServices.Language.TextAnalytics; + using Newtonsoft.Json; + using System.Linq; + + public partial class DetectedLanguageV2 + { + /// + /// Initializes a new instance of the DetectedLanguageV2 class. + /// + public DetectedLanguageV2() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the DetectedLanguageV2 class. + /// + /// Long name of a detected language (e.g. English, + /// French). + /// A two letter representation of the + /// detected language according to the ISO 639-1 standard (e.g. en, + /// fr). + /// A confidence score between 0 and 1. Scores + /// close to 1 indicate 100% certainty that the identified language is + /// true. + public DetectedLanguageV2(string name = default(string), string iso6391Name = default(string), double? score = default(double?)) + { + Name = name; + Iso6391Name = iso6391Name; + Score = score; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets long name of a detected language (e.g. English, + /// French). + /// + [JsonProperty(PropertyName = "name")] + public string Name { get; set; } + + /// + /// Gets or sets a two letter representation of the detected language + /// according to the ISO 639-1 standard (e.g. en, fr). + /// + [JsonProperty(PropertyName = "iso6391Name")] + public string Iso6391Name { get; set; } + + /// + /// Gets or sets a confidence score between 0 and 1. Scores close to 1 + /// indicate 100% certainty that the identified language is true. + /// + [JsonProperty(PropertyName = "score")] + public double? Score { get; set; } + + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/Dummyv2.cs b/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/Dummyv2.cs new file mode 100644 index 000000000000..0a9c5bb6eadf --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/Dummyv2.cs @@ -0,0 +1,43 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Language.TextAnalytics.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Language; + using Microsoft.CognitiveServices.Language.TextAnalytics; + using Newtonsoft.Json; + using System.Linq; + + public partial class Dummyv2 + { + /// + /// Initializes a new instance of the Dummyv2 class. + /// + public Dummyv2() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the Dummyv2 class. + /// + public Dummyv2(string foo = default(string)) + { + Foo = foo; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// + [JsonProperty(PropertyName = "foo")] + public string Foo { get; set; } + + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/Error.cs b/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/Error.cs new file mode 100644 index 000000000000..25d8bacc2a12 --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/Error.cs @@ -0,0 +1,52 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Language.TextAnalytics.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Language; + using Microsoft.CognitiveServices.Language.TextAnalytics; + using Newtonsoft.Json; + using System.Linq; + + /// + /// Error body. + /// + public partial class Error + { + /// + /// Initializes a new instance of the Error class. + /// + public Error() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the Error class. + /// + public Error(string code = default(string), string message = default(string)) + { + Code = code; + Message = message; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// + [JsonProperty(PropertyName = "code")] + public string Code { get; set; } + + /// + /// + [JsonProperty(PropertyName = "message")] + public string Message { get; set; } + + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/ErrorRecordV2.cs b/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/ErrorRecordV2.cs new file mode 100644 index 000000000000..508a7e8e9cfd --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/ErrorRecordV2.cs @@ -0,0 +1,54 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Language.TextAnalytics.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Language; + using Microsoft.CognitiveServices.Language.TextAnalytics; + using Newtonsoft.Json; + using System.Linq; + + public partial class ErrorRecordV2 + { + /// + /// Initializes a new instance of the ErrorRecordV2 class. + /// + public ErrorRecordV2() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the ErrorRecordV2 class. + /// + /// Input document unique identifier the error refers + /// to. + /// Error message. + public ErrorRecordV2(string id = default(string), string message = default(string)) + { + Id = id; + Message = message; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets input document unique identifier the error refers to. + /// + [JsonProperty(PropertyName = "id")] + public string Id { get; set; } + + /// + /// Gets or sets error message. + /// + [JsonProperty(PropertyName = "message")] + public string Message { get; set; } + + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/ErrorResponse.cs b/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/ErrorResponse.cs new file mode 100644 index 000000000000..bfdec18c125a --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/ErrorResponse.cs @@ -0,0 +1,61 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Language.TextAnalytics.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Language; + using Microsoft.CognitiveServices.Language.TextAnalytics; + using Newtonsoft.Json; + using System.Linq; + + public partial class ErrorResponse + { + /// + /// Initializes a new instance of the ErrorResponse class. + /// + public ErrorResponse() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the ErrorResponse class. + /// + public ErrorResponse(string code = default(string), string message = default(string), string target = default(string), InternalError innerError = default(InternalError)) + { + Code = code; + Message = message; + Target = target; + InnerError = innerError; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// + [JsonProperty(PropertyName = "code")] + public string Code { get; set; } + + /// + /// + [JsonProperty(PropertyName = "message")] + public string Message { get; set; } + + /// + /// + [JsonProperty(PropertyName = "target")] + public string Target { get; set; } + + /// + /// + [JsonProperty(PropertyName = "innerError")] + public InternalError InnerError { get; set; } + + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/ErrorResponseException.cs b/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/ErrorResponseException.cs new file mode 100644 index 000000000000..6f520ac265df --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/ErrorResponseException.cs @@ -0,0 +1,59 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Language.TextAnalytics.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Language; + using Microsoft.CognitiveServices.Language.TextAnalytics; + using Microsoft.Rest; + + /// + /// Exception thrown for an invalid response with ErrorResponse + /// information. + /// + public class ErrorResponseException : RestException + { + /// + /// Gets information about the associated HTTP request. + /// + public HttpRequestMessageWrapper Request { get; set; } + + /// + /// Gets information about the associated HTTP response. + /// + public HttpResponseMessageWrapper Response { get; set; } + + /// + /// Gets or sets the body object. + /// + public ErrorResponse Body { get; set; } + + /// + /// Initializes a new instance of the ErrorResponseException class. + /// + public ErrorResponseException() + { + } + + /// + /// Initializes a new instance of the ErrorResponseException class. + /// + /// The exception message. + public ErrorResponseException(string message) + : this(message, null) + { + } + + /// + /// Initializes a new instance of the ErrorResponseException class. + /// + /// The exception message. + /// Inner exception. + public ErrorResponseException(string message, System.Exception innerException) + : base(message, innerException) + { + } + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/InputV2.cs b/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/InputV2.cs new file mode 100644 index 000000000000..ed6712aa2cf9 --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/InputV2.cs @@ -0,0 +1,51 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Language.TextAnalytics.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Language; + using Microsoft.CognitiveServices.Language.TextAnalytics; + using Newtonsoft.Json; + using System.Linq; + + public partial class InputV2 + { + /// + /// Initializes a new instance of the InputV2 class. + /// + public InputV2() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the InputV2 class. + /// + /// Unique, non-empty document identifier. + public InputV2(string id = default(string), string text = default(string)) + { + Id = id; + Text = text; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets unique, non-empty document identifier. + /// + [JsonProperty(PropertyName = "id")] + public string Id { get; set; } + + /// + /// + [JsonProperty(PropertyName = "text")] + public string Text { get; set; } + + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/InternalError.cs b/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/InternalError.cs new file mode 100644 index 000000000000..8e11caeaac60 --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/InternalError.cs @@ -0,0 +1,64 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Language.TextAnalytics.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Language; + using Microsoft.CognitiveServices.Language.TextAnalytics; + using Newtonsoft.Json; + using System.Linq; + + public partial class InternalError + { + /// + /// Initializes a new instance of the InternalError class. + /// + public InternalError() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the InternalError class. + /// + /// Possible values include: + /// 'invalidParameterValue', 'invalidRequestBodyFormat', + /// 'missingRequiredHeader', 'invalidRequestContent', + /// 'missingRequiredParameter', 'serviceUnderLoad', + /// 'serverError' + public InternalError(string code = default(string), string message = default(string), InternalError innerError = default(InternalError)) + { + Code = code; + Message = message; + InnerError = innerError; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets possible values include: 'invalidParameterValue', + /// 'invalidRequestBodyFormat', 'missingRequiredHeader', + /// 'invalidRequestContent', 'missingRequiredParameter', + /// 'serviceUnderLoad', 'serverError' + /// + [JsonProperty(PropertyName = "code")] + public string Code { get; set; } + + /// + /// + [JsonProperty(PropertyName = "message")] + public string Message { get; set; } + + /// + /// + [JsonProperty(PropertyName = "innerError")] + public InternalError InnerError { get; set; } + + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/KeyPhraseBatchResultItemV2.cs b/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/KeyPhraseBatchResultItemV2.cs new file mode 100644 index 000000000000..5c47442edf2a --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/KeyPhraseBatchResultItemV2.cs @@ -0,0 +1,59 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Language.TextAnalytics.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Language; + using Microsoft.CognitiveServices.Language.TextAnalytics; + using Newtonsoft.Json; + using System.Collections; + using System.Collections.Generic; + using System.Linq; + + public partial class KeyPhraseBatchResultItemV2 + { + /// + /// Initializes a new instance of the KeyPhraseBatchResultItemV2 class. + /// + public KeyPhraseBatchResultItemV2() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the KeyPhraseBatchResultItemV2 class. + /// + /// A list of representative words or phrases. + /// The number of key phrases returned is proportional to the number of + /// words in the input document. + /// Unique document identifier. + public KeyPhraseBatchResultItemV2(IList keyPhrases = default(IList), string id = default(string)) + { + KeyPhrases = keyPhrases; + Id = id; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets a list of representative words or phrases. The number + /// of key phrases returned is proportional to the number of words in + /// the input document. + /// + [JsonProperty(PropertyName = "keyPhrases")] + public IList KeyPhrases { get; set; } + + /// + /// Gets or sets unique document identifier. + /// + [JsonProperty(PropertyName = "id")] + public string Id { get; set; } + + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/KeyPhraseBatchResultV2.cs b/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/KeyPhraseBatchResultV2.cs new file mode 100644 index 000000000000..61a6900fa0f5 --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/KeyPhraseBatchResultV2.cs @@ -0,0 +1,51 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Language.TextAnalytics.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Language; + using Microsoft.CognitiveServices.Language.TextAnalytics; + using Newtonsoft.Json; + using System.Collections; + using System.Collections.Generic; + using System.Linq; + + public partial class KeyPhraseBatchResultV2 + { + /// + /// Initializes a new instance of the KeyPhraseBatchResultV2 class. + /// + public KeyPhraseBatchResultV2() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the KeyPhraseBatchResultV2 class. + /// + public KeyPhraseBatchResultV2(IList documents = default(IList), IList errors = default(IList)) + { + Documents = documents; + Errors = errors; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// + [JsonProperty(PropertyName = "documents")] + public IList Documents { get; set; } + + /// + /// + [JsonProperty(PropertyName = "errors")] + public IList Errors { get; set; } + + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/LanguageBatchResultItemV2.cs b/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/LanguageBatchResultItemV2.cs new file mode 100644 index 000000000000..3070ba9e59ec --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/LanguageBatchResultItemV2.cs @@ -0,0 +1,56 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Language.TextAnalytics.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Language; + using Microsoft.CognitiveServices.Language.TextAnalytics; + using Newtonsoft.Json; + using System.Collections; + using System.Collections.Generic; + using System.Linq; + + public partial class LanguageBatchResultItemV2 + { + /// + /// Initializes a new instance of the LanguageBatchResultItemV2 class. + /// + public LanguageBatchResultItemV2() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the LanguageBatchResultItemV2 class. + /// + /// Unique document identifier. + /// A list of extracted + /// languages. + public LanguageBatchResultItemV2(string id = default(string), IList detectedLanguages = default(IList)) + { + Id = id; + DetectedLanguages = detectedLanguages; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets unique document identifier. + /// + [JsonProperty(PropertyName = "id")] + public string Id { get; set; } + + /// + /// Gets or sets a list of extracted languages. + /// + [JsonProperty(PropertyName = "detectedLanguages")] + public IList DetectedLanguages { get; set; } + + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/LanguageBatchResultV2.cs b/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/LanguageBatchResultV2.cs new file mode 100644 index 000000000000..07e07a4bce0a --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/LanguageBatchResultV2.cs @@ -0,0 +1,51 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Language.TextAnalytics.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Language; + using Microsoft.CognitiveServices.Language.TextAnalytics; + using Newtonsoft.Json; + using System.Collections; + using System.Collections.Generic; + using System.Linq; + + public partial class LanguageBatchResultV2 + { + /// + /// Initializes a new instance of the LanguageBatchResultV2 class. + /// + public LanguageBatchResultV2() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the LanguageBatchResultV2 class. + /// + public LanguageBatchResultV2(IList documents = default(IList), IList errors = default(IList)) + { + Documents = documents; + Errors = errors; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// + [JsonProperty(PropertyName = "documents")] + public IList Documents { get; set; } + + /// + /// + [JsonProperty(PropertyName = "errors")] + public IList Errors { get; set; } + + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/MultiLanguageBatchInputV2.cs b/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/MultiLanguageBatchInputV2.cs new file mode 100644 index 000000000000..30b7df6e3ff8 --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/MultiLanguageBatchInputV2.cs @@ -0,0 +1,45 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Language.TextAnalytics.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Language; + using Microsoft.CognitiveServices.Language.TextAnalytics; + using Newtonsoft.Json; + using System.Collections; + using System.Collections.Generic; + using System.Linq; + + public partial class MultiLanguageBatchInputV2 + { + /// + /// Initializes a new instance of the MultiLanguageBatchInputV2 class. + /// + public MultiLanguageBatchInputV2() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the MultiLanguageBatchInputV2 class. + /// + public MultiLanguageBatchInputV2(IList documents = default(IList)) + { + Documents = documents; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// + [JsonProperty(PropertyName = "documents")] + public IList Documents { get; set; } + + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/MultiLanguageInputV2.cs b/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/MultiLanguageInputV2.cs new file mode 100644 index 000000000000..802ee5a252d7 --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/MultiLanguageInputV2.cs @@ -0,0 +1,63 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Language.TextAnalytics.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Language; + using Microsoft.CognitiveServices.Language.TextAnalytics; + using Newtonsoft.Json; + using System.Linq; + + public partial class MultiLanguageInputV2 + { + /// + /// Initializes a new instance of the MultiLanguageInputV2 class. + /// + public MultiLanguageInputV2() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the MultiLanguageInputV2 class. + /// + /// This is the 2 letter ISO 639-1 + /// representation of a language. + /// For example, use "en" for English; "es" for Spanish etc., + /// Unique, non-empty document identifier. + public MultiLanguageInputV2(string language = default(string), string id = default(string), string text = default(string)) + { + Language = language; + Id = id; + Text = text; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets this is the 2 letter ISO 639-1 representation of a + /// language. + /// For example, use "en" for English; "es" for Spanish etc., + /// + [JsonProperty(PropertyName = "language")] + public string Language { get; set; } + + /// + /// Gets or sets unique, non-empty document identifier. + /// + [JsonProperty(PropertyName = "id")] + public string Id { get; set; } + + /// + /// + [JsonProperty(PropertyName = "text")] + public string Text { get; set; } + + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/SentimentBatchResultItemV2.cs b/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/SentimentBatchResultItemV2.cs new file mode 100644 index 000000000000..1fb51956b4da --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/SentimentBatchResultItemV2.cs @@ -0,0 +1,61 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Language.TextAnalytics.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Language; + using Microsoft.CognitiveServices.Language.TextAnalytics; + using Newtonsoft.Json; + using System.Linq; + + public partial class SentimentBatchResultItemV2 + { + /// + /// Initializes a new instance of the SentimentBatchResultItemV2 class. + /// + public SentimentBatchResultItemV2() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the SentimentBatchResultItemV2 class. + /// + /// A decimal number between 0 and 1 denoting the + /// sentiment of the document. + /// A score above 0.7 usually refers to a positive document while a + /// score below 0.3 normally has a negative connotation. + /// Mid values refer to neutral text. + /// Unique document identifier. + public SentimentBatchResultItemV2(double? score = default(double?), string id = default(string)) + { + Score = score; + Id = id; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets a decimal number between 0 and 1 denoting the + /// sentiment of the document. + /// A score above 0.7 usually refers to a positive document while a + /// score below 0.3 normally has a negative connotation. + /// Mid values refer to neutral text. + /// + [JsonProperty(PropertyName = "score")] + public double? Score { get; set; } + + /// + /// Gets or sets unique document identifier. + /// + [JsonProperty(PropertyName = "id")] + public string Id { get; set; } + + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/SentimentBatchResultV2.cs b/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/SentimentBatchResultV2.cs new file mode 100644 index 000000000000..363b537b84bc --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/SentimentBatchResultV2.cs @@ -0,0 +1,51 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Language.TextAnalytics.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Language; + using Microsoft.CognitiveServices.Language.TextAnalytics; + using Newtonsoft.Json; + using System.Collections; + using System.Collections.Generic; + using System.Linq; + + public partial class SentimentBatchResultV2 + { + /// + /// Initializes a new instance of the SentimentBatchResultV2 class. + /// + public SentimentBatchResultV2() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the SentimentBatchResultV2 class. + /// + public SentimentBatchResultV2(IList documents = default(IList), IList errors = default(IList)) + { + Documents = documents; + Errors = errors; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// + [JsonProperty(PropertyName = "documents")] + public IList Documents { get; set; } + + /// + /// + [JsonProperty(PropertyName = "errors")] + public IList Errors { get; set; } + + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/TextAnalyticsAPI.cs b/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/TextAnalyticsAPI.cs new file mode 100644 index 000000000000..0ae097941fc3 --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/TextAnalyticsAPI.cs @@ -0,0 +1,650 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Language.TextAnalytics +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Language; + using Microsoft.Rest; + using Microsoft.Rest.Serialization; + using Models; + using Newtonsoft.Json; + using System.Collections; + using System.Collections.Generic; + using System.Net; + using System.Net.Http; + using System.Threading; + using System.Threading.Tasks; + + /// + /// The Text Analytics API is a suite of text analytics web services built + /// with Azure Machine Learning. + /// The API can be used to analyze unstructured text for tasks such as + /// sentiment analysis, key phrase extraction and language detection. + /// No training data is needed to use this API; just bring your text data. + /// This API uses advanced natural language processing techniques to + /// deliver best in class predictions. + /// + /// Further documentation can be found in + /// https://azure.microsoft.com/en-us/documentation/articles/machine-learning-apps-text-analytics/ + /// + public partial class TextAnalyticsAPI : ServiceClient, ITextAnalyticsAPI + { + /// + /// The base URI of the service. + /// + internal string BaseUri {get; set;} + + /// + /// Gets or sets json serialization settings. + /// + public JsonSerializerSettings SerializationSettings { get; private set; } + + /// + /// Gets or sets json deserialization settings. + /// + public JsonSerializerSettings DeserializationSettings { get; private set; } + + /// + /// Supported Azure regions for Face Detection endpoints. Possible values + /// include: 'westus', 'westeurope', 'southeastasia', 'eastus2', + /// 'westcentralus' + /// + public string AzureRegion1 { get; set; } + + /// + /// Subscription key in header + /// + public string SubscriptionKey { get; set; } + + /// + /// Initializes a new instance of the TextAnalyticsAPI class. + /// + /// + /// Optional. The delegating handlers to add to the http client pipeline. + /// + public TextAnalyticsAPI(params DelegatingHandler[] handlers) : base(handlers) + { + Initialize(); + } + + /// + /// Initializes a new instance of the TextAnalyticsAPI class. + /// + /// + /// Optional. The http client handler used to handle http transport. + /// + /// + /// Optional. The delegating handlers to add to the http client pipeline. + /// + public TextAnalyticsAPI(HttpClientHandler rootHandler, params DelegatingHandler[] handlers) : base(rootHandler, handlers) + { + Initialize(); + } + + /// + /// An optional partial-method to perform custom initialization. + /// + partial void CustomInitialize(); + /// + /// Initializes client properties. + /// + private void Initialize() + { + BaseUri = "https://{azureRegion}.api.cognitive.microsoft.com/text/analytics"; + SerializationSettings = new JsonSerializerSettings + { + Formatting = Newtonsoft.Json.Formatting.Indented, + DateFormatHandling = Newtonsoft.Json.DateFormatHandling.IsoDateFormat, + DateTimeZoneHandling = Newtonsoft.Json.DateTimeZoneHandling.Utc, + NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore, + ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Serialize, + ContractResolver = new ReadOnlyJsonContractResolver(), + Converters = new List + { + new Iso8601TimeSpanConverter() + } + }; + DeserializationSettings = new JsonSerializerSettings + { + DateFormatHandling = Newtonsoft.Json.DateFormatHandling.IsoDateFormat, + DateTimeZoneHandling = Newtonsoft.Json.DateTimeZoneHandling.Utc, + NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore, + ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Serialize, + ContractResolver = new ReadOnlyJsonContractResolver(), + Converters = new List + { + new Iso8601TimeSpanConverter() + } + }; + CustomInitialize(); + } + /// + /// The API returns a list of strings denoting the key talking points in the + /// input text. + /// We employ techniques from Microsoft Office's sophisticated Natural Language + /// Processing toolkit. + /// See the <a + /// href="https://docs.microsoft.com/en-us/azure/cognitive-services/text-analytics/overview#supported-languages">Text + /// Analytics Documentation</a> for details about the languages that are + /// supported by key phrase extraction. + /// + /// + /// Collection of documents to analyze. Documents can now contain a language + /// field to indicate the text language + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task> KeyPhrasesWithHttpMessagesAsync(MultiLanguageBatchInputV2 input, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (AzureRegion1 == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.AzureRegion1"); + } + if (SubscriptionKey == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.SubscriptionKey"); + } + if (input == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "input"); + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("input", input); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "KeyPhrases", tracingParameters); + } + // Construct URL + var _baseUrl = BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "v2.0/keyPhrases"; + _url = _url.Replace("{azureRegion}", AzureRegion1); + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("POST"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (SubscriptionKey != null) + { + if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) + { + _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); + } + _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", SubscriptionKey); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + if(input != null) + { + _requestContent = SafeJsonConvert.SerializeObject(input, SerializationSettings); + _httpRequest.Content = new StringContent(_requestContent, System.Text.Encoding.UTF8); + _httpRequest.Content.Headers.ContentType =System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json; charset=utf-8"); + } + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new ErrorResponseException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + ErrorResponse _errorBody = SafeJsonConvert.DeserializeObject(_responseContent, DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + // Deserialize Response + if ((int)_statusCode == 200) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + _result.Body = SafeJsonConvert.DeserializeObject(_responseContent, DeserializationSettings); + } + catch (JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); + } + } + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + /// + /// The API returns the detected language and a numeric score between 0 and 1. + /// Scores close to 1 indicate 100% certainty that the identified language is + /// true. + /// A total of 120 languages are supported. + /// + /// + /// Collection of documents to analyze. + /// + /// + /// (Optional. Deprecated) Number of languages to detect. Set to 1 by default. + /// Irrespective of the value, the language with the highest score is returned. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task> DetectLanguageWithHttpMessagesAsync(BatchInputV2 input, int? numberOfLanguagesToDetect = default(int?), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (AzureRegion1 == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.AzureRegion1"); + } + if (SubscriptionKey == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.SubscriptionKey"); + } + if (input == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "input"); + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("input", input); + tracingParameters.Add("numberOfLanguagesToDetect", numberOfLanguagesToDetect); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "DetectLanguage", tracingParameters); + } + // Construct URL + var _baseUrl = BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "v2.0/languages"; + _url = _url.Replace("{azureRegion}", AzureRegion1); + List _queryParameters = new List(); + if (numberOfLanguagesToDetect != null) + { + _queryParameters.Add(string.Format("numberOfLanguagesToDetect={0}", System.Uri.EscapeDataString(SafeJsonConvert.SerializeObject(numberOfLanguagesToDetect, SerializationSettings).Trim('"')))); + } + if (_queryParameters.Count > 0) + { + _url += "?" + string.Join("&", _queryParameters); + } + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("POST"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (SubscriptionKey != null) + { + if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) + { + _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); + } + _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", SubscriptionKey); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + if(input != null) + { + _requestContent = SafeJsonConvert.SerializeObject(input, SerializationSettings); + _httpRequest.Content = new StringContent(_requestContent, System.Text.Encoding.UTF8); + _httpRequest.Content.Headers.ContentType =System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json; charset=utf-8"); + } + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new ErrorResponseException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + ErrorResponse _errorBody = SafeJsonConvert.DeserializeObject(_responseContent, DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + // Deserialize Response + if ((int)_statusCode == 200) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + _result.Body = SafeJsonConvert.DeserializeObject(_responseContent, DeserializationSettings); + } + catch (JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); + } + } + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + /// + /// The API returns a numeric score between 0 and 1. + /// Scores close to 1 indicate positive sentiment, while scores close to 0 + /// indicate negative sentiment. + /// Sentiment score is generated using classification techniques. + /// The input features to the classifier include n-grams, features generated + /// from part-of-speech tags, and word embeddings. + /// See the <a + /// href="https://docs.microsoft.com/en-us/azure/cognitive-services/text-analytics/overview#supported-languages">Text + /// Analytics Documentation</a> for details about the languages that are + /// supported by sentiment analysis. + /// + /// + /// Collection of documents to analyze. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task> SentimentWithHttpMessagesAsync(MultiLanguageBatchInputV2 input, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (AzureRegion1 == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.AzureRegion1"); + } + if (SubscriptionKey == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.SubscriptionKey"); + } + if (input == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "input"); + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("input", input); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "Sentiment", tracingParameters); + } + // Construct URL + var _baseUrl = BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "v2.0/sentiment"; + _url = _url.Replace("{azureRegion}", AzureRegion1); + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("POST"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (SubscriptionKey != null) + { + if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) + { + _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); + } + _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", SubscriptionKey); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + if(input != null) + { + _requestContent = SafeJsonConvert.SerializeObject(input, SerializationSettings); + _httpRequest.Content = new StringContent(_requestContent, System.Text.Encoding.UTF8); + _httpRequest.Content.Headers.ContentType =System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json; charset=utf-8"); + } + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new ErrorResponseException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + ErrorResponse _errorBody = SafeJsonConvert.DeserializeObject(_responseContent, DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + // Deserialize Response + if ((int)_statusCode == 200) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + _result.Body = SafeJsonConvert.DeserializeObject(_responseContent, DeserializationSettings); + } + catch (JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); + } + } + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/TextAnalyticsAPIExtensions.cs b/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/TextAnalyticsAPIExtensions.cs new file mode 100644 index 000000000000..d8dfcc663f2f --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/TextAnalyticsAPIExtensions.cs @@ -0,0 +1,169 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Language.TextAnalytics +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Language; + using Models; + using System.Threading; + using System.Threading.Tasks; + + /// + /// Extension methods for TextAnalyticsAPI. + /// + public static partial class TextAnalyticsAPIExtensions + { + /// + /// The API returns a list of strings denoting the key talking points in the + /// input text. + /// We employ techniques from Microsoft Office's sophisticated Natural Language + /// Processing toolkit. + /// See the <a + /// href="https://docs.microsoft.com/en-us/azure/cognitive-services/text-analytics/overview#supported-languages">Text + /// Analytics Documentation</a> for details about the languages that are + /// supported by key phrase extraction. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Collection of documents to analyze. Documents can now contain a language + /// field to indicate the text language + /// + public static KeyPhraseBatchResultV2 KeyPhrases(this ITextAnalyticsAPI operations, MultiLanguageBatchInputV2 input) + { + return operations.KeyPhrasesAsync(input).GetAwaiter().GetResult(); + } + + /// + /// The API returns a list of strings denoting the key talking points in the + /// input text. + /// We employ techniques from Microsoft Office's sophisticated Natural Language + /// Processing toolkit. + /// See the <a + /// href="https://docs.microsoft.com/en-us/azure/cognitive-services/text-analytics/overview#supported-languages">Text + /// Analytics Documentation</a> for details about the languages that are + /// supported by key phrase extraction. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Collection of documents to analyze. Documents can now contain a language + /// field to indicate the text language + /// + /// + /// The cancellation token. + /// + public static async Task KeyPhrasesAsync(this ITextAnalyticsAPI operations, MultiLanguageBatchInputV2 input, CancellationToken cancellationToken = default(CancellationToken)) + { + using (var _result = await operations.KeyPhrasesWithHttpMessagesAsync(input, null, cancellationToken).ConfigureAwait(false)) + { + return _result.Body; + } + } + + /// + /// The API returns the detected language and a numeric score between 0 and 1. + /// Scores close to 1 indicate 100% certainty that the identified language is + /// true. + /// A total of 120 languages are supported. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Collection of documents to analyze. + /// + /// + /// (Optional. Deprecated) Number of languages to detect. Set to 1 by default. + /// Irrespective of the value, the language with the highest score is returned. + /// + public static LanguageBatchResultV2 DetectLanguage(this ITextAnalyticsAPI operations, BatchInputV2 input, int? numberOfLanguagesToDetect = default(int?)) + { + return operations.DetectLanguageAsync(input, numberOfLanguagesToDetect).GetAwaiter().GetResult(); + } + + /// + /// The API returns the detected language and a numeric score between 0 and 1. + /// Scores close to 1 indicate 100% certainty that the identified language is + /// true. + /// A total of 120 languages are supported. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Collection of documents to analyze. + /// + /// + /// (Optional. Deprecated) Number of languages to detect. Set to 1 by default. + /// Irrespective of the value, the language with the highest score is returned. + /// + /// + /// The cancellation token. + /// + public static async Task DetectLanguageAsync(this ITextAnalyticsAPI operations, BatchInputV2 input, int? numberOfLanguagesToDetect = default(int?), CancellationToken cancellationToken = default(CancellationToken)) + { + using (var _result = await operations.DetectLanguageWithHttpMessagesAsync(input, numberOfLanguagesToDetect, null, cancellationToken).ConfigureAwait(false)) + { + return _result.Body; + } + } + + /// + /// The API returns a numeric score between 0 and 1. + /// Scores close to 1 indicate positive sentiment, while scores close to 0 + /// indicate negative sentiment. + /// Sentiment score is generated using classification techniques. + /// The input features to the classifier include n-grams, features generated + /// from part-of-speech tags, and word embeddings. + /// See the <a + /// href="https://docs.microsoft.com/en-us/azure/cognitive-services/text-analytics/overview#supported-languages">Text + /// Analytics Documentation</a> for details about the languages that are + /// supported by sentiment analysis. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Collection of documents to analyze. + /// + public static SentimentBatchResultV2 Sentiment(this ITextAnalyticsAPI operations, MultiLanguageBatchInputV2 input) + { + return operations.SentimentAsync(input).GetAwaiter().GetResult(); + } + + /// + /// The API returns a numeric score between 0 and 1. + /// Scores close to 1 indicate positive sentiment, while scores close to 0 + /// indicate negative sentiment. + /// Sentiment score is generated using classification techniques. + /// The input features to the classifier include n-grams, features generated + /// from part-of-speech tags, and word embeddings. + /// See the <a + /// href="https://docs.microsoft.com/en-us/azure/cognitive-services/text-analytics/overview#supported-languages">Text + /// Analytics Documentation</a> for details about the languages that are + /// supported by sentiment analysis. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Collection of documents to analyze. + /// + /// + /// The cancellation token. + /// + public static async Task SentimentAsync(this ITextAnalyticsAPI operations, MultiLanguageBatchInputV2 input, CancellationToken cancellationToken = default(CancellationToken)) + { + using (var _result = await operations.SentimentWithHttpMessagesAsync(input, null, cancellationToken).ConfigureAwait(false)) + { + return _result.Body; + } + } + + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Microsoft.CognitiveServices.Language.csproj b/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Microsoft.CognitiveServices.Language.csproj new file mode 100644 index 000000000000..19ac3a8cf2e7 --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Microsoft.CognitiveServices.Language.csproj @@ -0,0 +1,33 @@ + + + + Microsoft.CognitiveServices.Language + This client library provides access to the Microsoft Cognitive Services Language APIs. + 1.0.0 + $(DefineConstants);CODESIGN + true + Microsoft.CognitiveServices.Language + Microsoft Cognitive Services;Cognitive Services;Cognitive Services SDK;Text Analytics API;Text Analytics;REST HTTP client;netcore451511 + bin\$(Configuration)\$(TargetFramework)\$(AssemblyName).xml + + + + net452;netstandard1.4 + True + For detailed release notes, see: + + + + $(DefineConstants);FullNetFx + + + + + $(DefineConstants);netstandard14;PORTABLE + + + + + + + \ No newline at end of file From 6d5299c65fe916a9a4a049bedf8956b54149f6f6 Mon Sep 17 00:00:00 2001 From: "David Li (WINDOWS)" Date: Tue, 29 Aug 2017 19:39:12 -0700 Subject: [PATCH 03/21] Adding Vision --- .../BaseTests.cs | 35 +- .../DetectLanguageTests.cs | 27 +- .../KeyPhrasesTests.cs | 30 +- ...ft.CognitiveServices.Language.Tests.csproj | 27 +- .../SentimentTests.cs | 37 + .../DetectLanguage.json | 55 + .../KeyPhrases.json | 55 + .../Sentiment.json | 55 + .../testsettings.json | 4 - .../BaseTests.cs | 31 + .../FaceDetectionTests.cs | 30 + ...soft.CognitiveServices.Vision.Tests.csproj | 35 + .../FaceDetection.json | 64 + .../TestImages/detection1.jpg | Bin 0 -> 365482 bytes .../Microsoft.CognitiveServices.Vision.sln | 28 + .../Generated/Face/FaceAPI.cs | 137 ++ .../Generated/Face/FaceList.cs | 1400 +++++++++++++ .../Generated/Face/FaceListExtensions.cs | 363 ++++ .../Generated/Face/FaceOperations.cs | 1263 ++++++++++++ .../Face/FaceOperationsExtensions.cs | 368 ++++ .../Generated/Face/IFaceAPI.cs | 65 + .../Generated/Face/IFaceList.cs | 227 +++ .../Generated/Face/IFaceOperations.cs | 230 +++ .../Generated/Face/IPerson.cs | 307 +++ .../Generated/Face/IPersonGroup.cs | 189 ++ .../Generated/Face/Models/APIError.cs | 46 + .../Face/Models/APIErrorException.cs | 58 + .../Generated/Face/Models/AzureRegion.cs | 22 + .../Face/Models/CreateFaceListRequest.cs | 83 + .../Face/Models/CreatePersonGroupRequest.cs | 83 + .../Face/Models/CreatePersonRequest.cs | 84 + .../Face/Models/CreatePersonResult.cs | 62 + .../Generated/Face/Models/DetectedFace.cs | 87 + .../Face/Models/EmotionProperties.cs | 162 ++ .../Generated/Face/Models/Error.cs | 52 + .../Generated/Face/Models/FaceAttributes.cs | 125 ++ .../Generated/Face/Models/FaceLandmarks.cs | 320 +++ .../Generated/Face/Models/FaceRectangle.cs | 87 + .../Face/Models/FacialHairProperties.cs | 92 + .../Face/Models/FindSimilarRequest.cs | 151 ++ .../Face/Models/GetFaceListResult.cs | 105 + .../Generated/Face/Models/GroupRequest.cs | 73 + .../Generated/Face/Models/GroupResponse.cs | 76 + .../Face/Models/HeadPoseProperties.cs | 58 + .../Generated/Face/Models/IdentifyRequest.cs | 122 ++ .../Face/Models/IdentifyResultCandidate.cs | 80 + .../Face/Models/IdentifyResultItem.cs | 91 + .../Generated/Face/Models/ImageUrl.cs | 57 + .../Generated/Face/Models/PersonFaceResult.cs | 76 + .../Face/Models/PersonGroupResult.cs | 101 + .../Generated/Face/Models/PersonResult.cs | 93 + .../Generated/Face/Models/Position.cs | 66 + .../Face/Models/SimilarFaceResult.cs | 100 + .../Generated/Face/Models/TrainingStatus.cs | 105 + .../Models/UpdatePersonFaceDataRequest.cs | 69 + .../Generated/Face/Models/VerifyRequest.cs | 100 + .../Generated/Face/Models/VerifyResult.cs | 86 + .../Generated/Face/Person.cs | 1762 +++++++++++++++++ .../Generated/Face/PersonExtensions.cs | 503 +++++ .../Generated/Face/PersonGroup.cs | 1189 +++++++++++ .../Generated/Face/PersonGroupExtensions.cs | 291 +++ .../Microsoft.CognitiveServices.Vision.csproj | 33 + 62 files changed, 11758 insertions(+), 54 deletions(-) create mode 100644 src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/SentimentTests.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/SessionRecords/Microsoft.CognitiveServices.Language.Tests.DetectLanguageTests/DetectLanguage.json create mode 100644 src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/SessionRecords/Microsoft.CognitiveServices.Language.Tests.KeyPhrasesTests/KeyPhrases.json create mode 100644 src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/SessionRecords/Microsoft.CognitiveServices.Language.Tests.SentimentTests/Sentiment.json delete mode 100644 src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/testsettings.json create mode 100644 src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision.Tests/BaseTests.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision.Tests/FaceDetectionTests.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision.Tests/Microsoft.CognitiveServices.Vision.Tests.csproj create mode 100644 src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision.Tests/SessionRecords/FaceSDK.Tests.FaceDetectionTests/FaceDetection.json create mode 100644 src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision.Tests/TestImages/detection1.jpg create mode 100644 src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision.sln create mode 100644 src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceAPI.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceList.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceListExtensions.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceOperations.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceOperationsExtensions.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IFaceAPI.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IFaceList.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IFaceOperations.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IPerson.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IPersonGroup.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/APIError.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/APIErrorException.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/AzureRegion.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreateFaceListRequest.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreatePersonGroupRequest.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreatePersonRequest.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreatePersonResult.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/DetectedFace.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/EmotionProperties.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/Error.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FaceAttributes.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FaceLandmarks.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FaceRectangle.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FacialHairProperties.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FindSimilarRequest.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/GetFaceListResult.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/GroupRequest.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/GroupResponse.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/HeadPoseProperties.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/IdentifyRequest.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/IdentifyResultCandidate.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/IdentifyResultItem.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/ImageUrl.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/PersonFaceResult.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/PersonGroupResult.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/PersonResult.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/Position.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/SimilarFaceResult.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/TrainingStatus.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/UpdatePersonFaceDataRequest.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/VerifyRequest.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/VerifyResult.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Person.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/PersonExtensions.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/PersonGroup.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/PersonGroupExtensions.cs create mode 100644 src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Microsoft.CognitiveServices.Vision.csproj diff --git a/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/BaseTests.cs b/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/BaseTests.cs index 6de05bed5cf5..afe3a7ed3ae8 100644 --- a/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/BaseTests.cs +++ b/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/BaseTests.cs @@ -1,35 +1,32 @@ - -using Microsoft.CognitiveServices.Language.TextAnalytics; -using Microsoft.Extensions.Configuration; +using Microsoft.CognitiveServices.Language.TextAnalytics; +using Microsoft.Rest.ClientRuntime.Azure.TestFramework; +using System; +using System.Net.Http; +using System.Runtime.CompilerServices; namespace Microsoft.CognitiveServices.Language.Tests { public abstract class BaseTests { - private static string SubscriptionKey = null; + public static bool IsTestTenant = false; + private static string SubscriptionKey = ""; private static string Region = null; static BaseTests() { - var builder = new ConfigurationBuilder() - .AddJsonFile("testsettings.json"); - - // Create the configuration object that the application will - // use to retrieve configuration information. - var configuration = builder.Build(); - // Retrieve the configuration information. - SubscriptionKey = configuration["SubscriptionKey"]; - Region = configuration["Region"]; + + Region = "WestUS"; } - protected ITextAnalyticsAPI GetClient() + protected ITextAnalyticsAPI GetClient(DelegatingHandler handler) { - return new TextAnalyticsAPI() - { - SubscriptionKey = SubscriptionKey, - AzureRegion1 = Region - }; + ITextAnalyticsAPI client; + client = new TextAnalyticsAPI(handlers: handler); + client.AzureRegion1 = Region; + client.SubscriptionKey = SubscriptionKey; + + return client; } } } diff --git a/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/DetectLanguageTests.cs b/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/DetectLanguageTests.cs index 6f2e823e1bf9..644873c08adc 100644 --- a/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/DetectLanguageTests.cs +++ b/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/DetectLanguageTests.cs @@ -3,7 +3,10 @@ using System.Collections.Generic; using System.IO; using Xunit; +using Microsoft.Rest.ClientRuntime.Azure.TestFramework; using Microsoft.CognitiveServices.Language.TextAnalytics.Models; +using System.Net; +using Microsoft.Azure.Test.HttpRecorder; namespace Microsoft.CognitiveServices.Language.Tests { @@ -12,16 +15,24 @@ public class DetectLanguageTests : BaseTests [Fact] public void DetectLanguage() { - ITextAnalyticsAPI client = GetClient(); - LanguageBatchResultV2 result = client.DetectLanguage( - new BatchInputV2( - new List() - { + var handler = new RecordedDelegatingHandler { StatusCodeToReturn = HttpStatusCode.OK }; + + using (MockContext context = MockContext.Start(this.GetType().FullName)) + { + HttpMockServer.Initialize(this.GetType().FullName, "DetectLanguage"); + ITextAnalyticsAPI client = GetClient(HttpMockServer.CreateInstance()); + LanguageBatchResultV2 result = client.DetectLanguage( + new BatchInputV2( + new List() + { new InputV2("id","I love my team mates") - })); + })); + + Assert.Equal("English", result.Documents[0].DetectedLanguages[0].Name); + Assert.Equal("en", result.Documents[0].DetectedLanguages[0].Iso6391Name); - Assert.Equal("English", result.Documents[0].DetectedLanguages[0].Name); - Assert.Equal("en", result.Documents[0].DetectedLanguages[0].Iso6391Name); + context.Stop(); + } } } } diff --git a/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/KeyPhrasesTests.cs b/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/KeyPhrasesTests.cs index fd5ab78c8ec2..295f080f2c44 100644 --- a/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/KeyPhrasesTests.cs +++ b/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/KeyPhrasesTests.cs @@ -1,7 +1,10 @@ -using Microsoft.CognitiveServices.Language.TextAnalytics; +using Microsoft.Azure.Test.HttpRecorder; +using Microsoft.CognitiveServices.Language.TextAnalytics; using Microsoft.CognitiveServices.Language.TextAnalytics.Models; +using Microsoft.Rest.ClientRuntime.Azure.TestFramework; using System; using System.Collections.Generic; +using System.Net; using System.Text; using Xunit; @@ -12,15 +15,24 @@ public class KeyPhrasesTests : BaseTests [Fact] public void KeyPhrases() { - ITextAnalyticsAPI client = GetClient(); - KeyPhraseBatchResultV2 result = client.KeyPhrases( - new MultiLanguageBatchInputV2( - new List() - { - new MultiLanguageInputV2("id", "I love my team mates", "en") - })); + using (MockContext context = MockContext.Start(this.GetType().FullName)) + { + HttpMockServer.Initialize(this.GetType().FullName, "KeyPhrases"); + ITextAnalyticsAPI client = GetClient(HttpMockServer.CreateInstance()); + KeyPhraseBatchResultV2 result = client.KeyPhrases( + new MultiLanguageBatchInputV2( + new List() + { + new MultiLanguageInputV2() + { + Id ="id", + Text ="I love my team mates", + Language ="en" + } + })); - Assert.Equal("team mates", result.Documents[0].KeyPhrases[0]); + Assert.Equal("team mates", result.Documents[0].KeyPhrases[0]); + } } } } diff --git a/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/Microsoft.CognitiveServices.Language.Tests.csproj b/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/Microsoft.CognitiveServices.Language.Tests.csproj index c147a9ebb9bf..41b56d283ec5 100644 --- a/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/Microsoft.CognitiveServices.Language.Tests.csproj +++ b/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/Microsoft.CognitiveServices.Language.Tests.csproj @@ -1,30 +1,29 @@  - + + + Microsoft.CognitiveServices.Language.Tests + Microsoft.CognitiveServices.Language.Tests Class Library + Microsoft.CognitiveServices.Language.Tests + 1.0.0-preview + netcoreapp1.1 - - - - - - + + - - + + PreserveNewest + - - - - PreserveNewest - + diff --git a/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/SentimentTests.cs b/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/SentimentTests.cs new file mode 100644 index 000000000000..ae076aad71ab --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/SentimentTests.cs @@ -0,0 +1,37 @@ +using Microsoft.Azure.Test.HttpRecorder; +using Microsoft.CognitiveServices.Language.TextAnalytics; +using Microsoft.CognitiveServices.Language.TextAnalytics.Models; +using Microsoft.Rest.ClientRuntime.Azure.TestFramework; +using System; +using System.Collections.Generic; +using System.Text; +using Xunit; + +namespace Microsoft.CognitiveServices.Language.Tests +{ + public class SentimentTests : BaseTests + { + [Fact] + public void Sentiment() + { + using (MockContext context = MockContext.Start(this.GetType().FullName)) + { + HttpMockServer.Initialize(this.GetType().FullName, "Sentiment"); + ITextAnalyticsAPI client = GetClient(HttpMockServer.CreateInstance()); + SentimentBatchResultV2 result = client.Sentiment( + new MultiLanguageBatchInputV2( + new List() + { + new MultiLanguageInputV2() + { + Id ="id", + Text ="I love my team mates", + Language ="en" + } + })); + + Assert.True(result.Documents[0].Score > 0); + } + } + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/SessionRecords/Microsoft.CognitiveServices.Language.Tests.DetectLanguageTests/DetectLanguage.json b/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/SessionRecords/Microsoft.CognitiveServices.Language.Tests.DetectLanguageTests/DetectLanguage.json new file mode 100644 index 000000000000..09efd652ef69 --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/SessionRecords/Microsoft.CognitiveServices.Language.Tests.DetectLanguageTests/DetectLanguage.json @@ -0,0 +1,55 @@ +{ + "Entries": [ + { + "RequestUri": "/text/analytics/v2.0/languages", + "EncodedRequestUri": "L3RleHQvYW5hbHl0aWNzL3YyLjAvbGFuZ3VhZ2Vz", + "RequestMethod": "POST", + "RequestBody": "{\r\n \"documents\": [\r\n {\r\n \"id\": \"id\",\r\n \"text\": \"I love my team mates\"\r\n }\r\n ]\r\n}", + "RequestHeaders": { + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "98" + ], + "Ocp-Apim-Subscription-Key": [ + "" + ], + "User-Agent": [ + "FxVersion/4.6.25211.01", + "Microsoft.CognitiveServices.Language.TextAnalytics.TextAnalyticsAPI/1.0.0" + ] + }, + "ResponseBody": "{\r\n \"documents\": [\r\n {\r\n \"id\": \"id\",\r\n \"detectedLanguages\": [\r\n {\r\n \"name\": \"English\",\r\n \"iso6391Name\": \"en\",\r\n \"score\": 1.0\r\n }\r\n ]\r\n }\r\n ],\r\n \"errors\": []\r\n}", + "ResponseHeaders": { + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Date": [ + "Wed, 30 Aug 2017 02:11:18 GMT" + ], + "Transfer-Encoding": [ + "chunked" + ], + "x-ms-transaction-count": [ + "1" + ], + "x-aml-ta-request-id": [ + "473e3a1f-cf5e-4230-85b5-68fe2518370f" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "apim-request-id": [ + "69e6aeb0-e601-42ca-9468-f0cfaa408708" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains; preload" + ] + }, + "StatusCode": 200 + } + ], + "Names": {}, + "Variables": {} +} \ No newline at end of file diff --git a/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/SessionRecords/Microsoft.CognitiveServices.Language.Tests.KeyPhrasesTests/KeyPhrases.json b/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/SessionRecords/Microsoft.CognitiveServices.Language.Tests.KeyPhrasesTests/KeyPhrases.json new file mode 100644 index 000000000000..eefb0cd06cd0 --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/SessionRecords/Microsoft.CognitiveServices.Language.Tests.KeyPhrasesTests/KeyPhrases.json @@ -0,0 +1,55 @@ +{ + "Entries": [ + { + "RequestUri": "/text/analytics/v2.0/keyPhrases", + "EncodedRequestUri": "L3RleHQvYW5hbHl0aWNzL3YyLjAva2V5UGhyYXNlcw==", + "RequestMethod": "POST", + "RequestBody": "{\r\n \"documents\": [\r\n {\r\n \"language\": \"en\",\r\n \"id\": \"id\",\r\n \"text\": \"I love my team mates\"\r\n }\r\n ]\r\n}", + "RequestHeaders": { + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "123" + ], + "Ocp-Apim-Subscription-Key": [ + "" + ], + "User-Agent": [ + "FxVersion/4.6.25211.01", + "Microsoft.CognitiveServices.Language.TextAnalytics.TextAnalyticsAPI/1.0.0" + ] + }, + "ResponseBody": "{\r\n \"documents\": [\r\n {\r\n \"keyPhrases\": [\r\n \"team mates\"\r\n ],\r\n \"id\": \"id\"\r\n }\r\n ],\r\n \"errors\": []\r\n}", + "ResponseHeaders": { + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Date": [ + "Wed, 30 Aug 2017 02:11:17 GMT" + ], + "Transfer-Encoding": [ + "chunked" + ], + "x-ms-transaction-count": [ + "1" + ], + "x-aml-ta-request-id": [ + "460baaca-7f57-42c1-8cc7-8852957d05b9" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "apim-request-id": [ + "3f09b1c9-fe3b-46bb-badf-98108c599825" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains; preload" + ] + }, + "StatusCode": 200 + } + ], + "Names": {}, + "Variables": {} +} \ No newline at end of file diff --git a/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/SessionRecords/Microsoft.CognitiveServices.Language.Tests.SentimentTests/Sentiment.json b/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/SessionRecords/Microsoft.CognitiveServices.Language.Tests.SentimentTests/Sentiment.json new file mode 100644 index 000000000000..4b9dd2e7d138 --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/SessionRecords/Microsoft.CognitiveServices.Language.Tests.SentimentTests/Sentiment.json @@ -0,0 +1,55 @@ +{ + "Entries": [ + { + "RequestUri": "/text/analytics/v2.0/sentiment", + "EncodedRequestUri": "L3RleHQvYW5hbHl0aWNzL3YyLjAvc2VudGltZW50", + "RequestMethod": "POST", + "RequestBody": "{\r\n \"documents\": [\r\n {\r\n \"language\": \"en\",\r\n \"id\": \"id\",\r\n \"text\": \"I love my team mates\"\r\n }\r\n ]\r\n}", + "RequestHeaders": { + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "123" + ], + "Ocp-Apim-Subscription-Key": [ + "9daf6a9264dc4a0095253e55a0e0e1fb" + ], + "User-Agent": [ + "FxVersion/4.6.25211.01", + "Microsoft.CognitiveServices.Language.TextAnalytics.TextAnalyticsAPI/1.0.0" + ] + }, + "ResponseBody": "{\r\n \"documents\": [\r\n {\r\n \"score\": 0.97380387783050537,\r\n \"id\": \"id\"\r\n }\r\n ],\r\n \"errors\": []\r\n}", + "ResponseHeaders": { + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Date": [ + "Wed, 30 Aug 2017 02:11:17 GMT" + ], + "Transfer-Encoding": [ + "chunked" + ], + "x-ms-transaction-count": [ + "1" + ], + "x-aml-ta-request-id": [ + "06db056b-1bf0-4994-933a-f08eacf94053" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "apim-request-id": [ + "63c5b90f-3a35-48c3-bb85-d89218d1202e" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains; preload" + ] + }, + "StatusCode": 200 + } + ], + "Names": {}, + "Variables": {} +} \ No newline at end of file diff --git a/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/testsettings.json b/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/testsettings.json deleted file mode 100644 index acb851d46f81..000000000000 --- a/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/testsettings.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "SubscriptionKey": "9daf6a9264dc4a0095253e55a0e0e1fb", - "Region": "WestUS" -} \ No newline at end of file diff --git a/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision.Tests/BaseTests.cs b/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision.Tests/BaseTests.cs new file mode 100644 index 000000000000..ce4c1a97889f --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision.Tests/BaseTests.cs @@ -0,0 +1,31 @@ +using Microsoft.CognitiveServices.Vision.Face; +using System; +using System.Net.Http; + +namespace FaceSDK.Tests +{ + public abstract class BaseTests + { + public static bool IsTestTenant = false; + private static string SubscriptionKey = ""; + private static string Region = null; + + static BaseTests() + { + // Retrieve the configuration information. + SubscriptionKey = "51c0ba46b87840578cca7f045b34b5b7"; + Environment.SetEnvironmentVariable("AZURE_TEST_MODE", "Record"); + Region = "WestUS"; + } + + protected IFaceAPI GetClient(DelegatingHandler handler) + { + IFaceAPI client; + client = new FaceAPI(handlers: handler); + client.AzureRegion1 = Region; + client.SubscriptionKey = SubscriptionKey; + + return client; + } + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision.Tests/FaceDetectionTests.cs b/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision.Tests/FaceDetectionTests.cs new file mode 100644 index 000000000000..a677c56c135a --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision.Tests/FaceDetectionTests.cs @@ -0,0 +1,30 @@ +using Microsoft.Azure.Test.HttpRecorder; +using Microsoft.CognitiveServices.Vision.Face; +using Microsoft.CognitiveServices.Vision.Face.Models; +using Microsoft.Rest.ClientRuntime.Azure.TestFramework; +using System; +using System.Collections.Generic; +using System.IO; +using Xunit; + +namespace FaceSDK.Tests +{ + public class FaceDetectionTests : BaseTests + { + [Fact] + public void FaceDetection() + { + using (MockContext context = MockContext.Start(this.GetType().FullName)) + { + HttpMockServer.Initialize(this.GetType().FullName, "FaceDetection"); + + IFaceAPI client = GetClient(HttpMockServer.CreateInstance()); + using (FileStream stream = new FileStream("TestImages\\detection1.jpg", FileMode.Open)) + { + IList faceList = client.Face.DetectInStream(stream); + Assert.Equal(1, faceList.Count); + } + } + } + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision.Tests/Microsoft.CognitiveServices.Vision.Tests.csproj b/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision.Tests/Microsoft.CognitiveServices.Vision.Tests.csproj new file mode 100644 index 000000000000..31d9a7cdec75 --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision.Tests/Microsoft.CognitiveServices.Vision.Tests.csproj @@ -0,0 +1,35 @@ + + + + Microsoft.CognitiveServices.Vision.Tests + Microsoft.CognitiveServices.Vision.Tests Class Library + Microsoft.CognitiveServices.Vision.Tests + 1.0.0-preview + + + netcoreapp1.1 + + + + + + + + + PreserveNewest + + + + + + + + + Always + + + Always + + + + diff --git a/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision.Tests/SessionRecords/FaceSDK.Tests.FaceDetectionTests/FaceDetection.json b/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision.Tests/SessionRecords/FaceSDK.Tests.FaceDetectionTests/FaceDetection.json new file mode 100644 index 000000000000..ef848210e9d8 --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision.Tests/SessionRecords/FaceSDK.Tests.FaceDetectionTests/FaceDetection.json @@ -0,0 +1,64 @@ +{ + "Entries": [ + { + "RequestUri": "/face/v1.0/detect?returnFaceId=true&returnFaceLandmarks=false", + "EncodedRequestUri": "L2ZhY2UvdjEuMC9kZXRlY3Q/cmV0dXJuRmFjZUlkPXRydWUmcmV0dXJuRmFjZUxhbmRtYXJrcz1mYWxzZQ==", + "RequestMethod": "POST", + "RequestBody": "����\u0000\u0010JFIF\u0000\u0001\u0001\u0001\u0000\u0000\u0000\u0000\u0000\u0000��\u0000\u000eAdobe\u0000d\u0000\u0000\u0000\u0000\u0001��\u0000C\u0000\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003��\u0000C\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0002\u0001\u0001\u0002\u0002\u0002\u0001\u0002\u0002\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003��\u0000\u0011\b\u0002�\u0003�\u0003\u0000\u0011\u0000\u0001\u0011\u0001\u0002\u0011\u0001��\u0000\u001f\u0000\u0000\u0000\u0007\u0001\u0001\u0001\u0001\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0004\u0005\u0003\u0002\u0006\u0001\u0000\u0007\b\t\n\u000b��\u0000�\u0010\u0000\u0002\u0001\u0003\u0003\u0002\u0004\u0002\u0006\u0007\u0003\u0004\u0002\u0006\u0002s\u0001\u0002\u0003\u0011\u0004\u0000\u0005!\u00121AQ\u0006\u0013a\"q�\u00142��\u0007\u0015�B#�R��3\u0016b�$r��%C4S���cs�5D'���6\u0017Tdt���\b&�\t\n\u0018\u0019��EF��V�U(\u001a�������eu��������fv��������7GWgw��������8HXhx��������)9IYiy��������*:JZjz����������\u0000\u001f\u0001\u0000\u0002\u0002\u0003\u0001\u0001\u0001\u0001\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0001\u0000\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b��\u0000�\u0011\u0000\u0002\u0002\u0001\u0002\u0003\u0005\u0005\u0004\u0005\u0006\u0004\b\u0003\u0003m\u0001\u0000\u0002\u0011\u0003\u0004!\u00121A\u0005Q\u0013a\"\u0006q��2���\u0014���#B\u0015Rbr�3$4C�\u0016�S%�c��\u0007s�5�D�\u0017T�\b\t\n\u0018\u0019&6E\u001a'dtU7��()��󄔤�����eu��������FVfv��������GWgw��������8HXhx��������9IYiy��������*:JZjz����������\u0000\u0004\u0000}��\u0000\f\u0003\u0000\u0000\u0001\u0011\u0002\u0011\u0000?\u0000�3kmESN��J���#5\nS�x(�i�P�����\t�0�n\u0007n�qN�k橊E�P\u0002>�� \u000e�\u001b�񭘙w&1�*\nҜiR?g�\u001c�\u001a݈��\u0015\u001c{���n���m��\";�ɕ��\u0001ۭv뷷�+��\u0004�B�Z�jS�_\r�Q�E���\u0005\f)Jm�A����\u0007�A�B \u001cv\u001b֣��Ⴞ�&²���P��\u001a���U\"�\u0010\u0003��o�q�mz�k��w��\u001c\u001b���J���n�N\n��KR]�R�+�J����\rmK�H\u0013Q�iR+ңz{�*1���6��V���\u0015\u0000\u001f\u0003�q\u0011��\u0016�?\u0017M�A\u0003z{�\n�?r\\d�m��oA��׮\u0003Γj~�bi�ۮ�\u0000ۃ��EH�:mو\u001d\u0001�'��Rou/\\\u0003Z�=��~�v#��EuQ{���N�\u001b���9\u001b\u001c�����Ѿ���O\u001c���ע\u0011���\"�����\u0001$��\n�dW~�a����f$�k$\f׃}�u\u001e>\u0004x\n�{���W5�\u0003V�����\u0015Ȓz����H�o�؂{қ�t��\u0012Y�w\u0017�\u0012=�^��M��#j\r�Hno���k��\u0003�\u001c�S�9#ܖ5�~��\u0000�ޙ�eIr�P>*\u001a{u;u��v�\u000ew;\r�{�\u0003l\u0007r\u0013;w�\u000e�\u001dz�cO\u0003�\u0014�~�Qbz\u001a\u0003�ׯ�ڽ|0�hg:\t�\u0000r\u0016�\u0004\u000fQ}�\u0007j�8dH�k���}����\u001f\u000e+��'��a�ד���џj��\u001dv\u001fgƒ�y��\u000e\u001e*\u0007����0\r���*\r<\u0006�\u0000F\u001c|����v\u0003��`=\b�\u000f�Q�js7���#\u0010~\u0003���\u001eHTp87��o�%[n�^\u0001��)mq���\u0000\u001cĐ�v���\u000f�\u0018������\u0000\u0004r�\u000f@��[�Ccڿ,�\u0004\u001f.m�?���\u0000o\u0013��.ç�6�~8V�\u0002=�t����oj耼ң��c�k�*��\u001e=:\u000fq��:�\u0014\u001e\u001e�a����\u0003�������\u0014�w%A�)_����P7�!��\u000f�\u0007�|:俇ɍu\u000b�<6\u001fG���Ȼ�\u0019\u000eK�6\u001f��&\b�ݍ_Ծ�S�m��ôA�E�)_��~]��\u001e(��;���\u0014����\u0003�\u0002(o��\u0000Bi��+Ԟ�\u0015��1\u0012$�a~�\u0007�7\u001d;{\u001e�x�7$Z\u000fr\nS��\u0006�dF��ݏ8���\u0011��n;�9\u0019�\u0005 \u0000��x�2\r�����g'� \u0017;\u0017�o0�;��އ���g6h\u001f{�\u0006�^��?�Vn���=�P~��6\u001d�?{.�\t��S��\u0000��.����7�\u001bg]\u0001�\u0004󴝹���g���\u0012s'\u00106\u0003Y�p\u0006�\u0000�A_s��kZZ����\u0000\u001cy*�Q����rB�Q\u0000�\u001e>�\u001fH\u0018U\u0019\u001fnĚ�}��qTS�\u0000q/���t�ƻ�����0�E�\u0000'�\u0015�ᚽl\u0001��)�1\u0002\u001eo���^;Sa�}���i�\u0003�\u00176�p�\u00129�->Y@Q���z�^�9,��A�I\u0007�\u000b%�,\u00004���o\n\f�N��7%5�~\u0000o�\u0002���eЍn��r����ӿ��{�䪏�\r�>\u000b�j�]\u001d��\u0010�\u0016\u001aI�e\u0014.�`I�����Hz�u\nYu�\u001fH��$S�@���>-�(\u000e!�\u0005{�-�C�>>��a���~Rd~nn3Gw�\u000f�\u0014��6_�1�L�{ V\b�Sl���}�i'���\u001cގM$ٴp�����R����\u0000o�\r\u0002-U�\u0006���X\u0005���SS���\u0000�ڽ��A�&Q�O\u001a���N�\u0003�����\u0000:�\u0019E������\u0000�~\u001f�-3��?��潵�x�\u0000�\u0003���6�������\u000f�Q\u001f�@t�L�;;��� �`\u0001of�����3q���a_���wƾJ7@_�@kN��\u0019\u000fM\u000e��.[<{_?�+@I'�)N�뒌w�\u0007)ޘ���חc��)�������4֋Ƣ�����Ӧ4)\u001c���!X�*\u0006�\u0000��dLz%+d�\"������=6\u0007(�o�4�\u0002Jq�R>U��P?\u0001�ef\u0014~��\\���I�(��74�o\u001c�Rot\b\u001c�N��j\u001ax���z���6��^������dI�z�\n��/�M\u0005��9nŀ�>�\u001af\u001c�*��\u001c�ѲXDP\u001e S�Õ?\u000e�)1��\u0006�6���GT+Ŗ�w�\u000fS�\\�����J��n\u001a�@\r��F��(\u0006D�)B��H��\u0014ҽ:��\u0007�V~����\u001ea�\u0003�P\u0003BH\u0000T��\u001e4�Dm��G����ao\bdQM�/~��A�o��T�O#���N�k�Z\u001e�\u0015ø(M �\u001a�\u001dz�{�w�0��c�mQ�r>_�\u0007=�\nGF��Fԯ^�x{t�WzE�#@i�Z\u001f��\u0019\u0013ܶ�X��}�n�H�r�\u000e{�\u0014��\u000e����\"���ҔҢ�\u0010iӡ��|b\u0002\u0002 oM����\u0000G\\@���\u000fZ�����n��tE|����\u0002>C��N���#e .��kM��ԁ��l\u0004t\b�4[�����S�ݲ>J��w'�>��\u0004b\u0010�XTm�7��\u000f�\u0003�+K�~������\u00015��\t\u0006�\u001f�$\u001e���R0]��ɢ\u0014�P;Ԁz~\u0014�<�}�\u0006a�\u000fj�ޝk�#\"\u0000ݗ\tC=����[���l�\u0019+]T\r����k_\n\u000f��2昍��q�^�F�\u0010h#�\u0015��;�\u001d�۷��p\u0012J�!$��n�(w�>��|�\u0015l�;�2^R�a�rk�|���)*���\t��m���YH\u001d�4��w�'�v�B|r$�)\t-��k�����;ӾW攖[�~��#��dL�}�;�����\u0002N�\u001d��1��\u00147\u0000�ӭG�v������TB0������G���\u0012\u0005�E�ֽ�v����\u000f�|\u0016��M�N���\u0014�ݶ\u0000o���_b��'�k�oo\u0002v�#��A�ۓ;�V���\u001f��\u0006������k\u0004�5�����_�<u�_�)�喋\u0019)�j*��g���\u0000G\u001e==�\u0000Ι���Ap�\u0003\u0012^��a�[Z��R�ă�>������_O�\u000f��N�\u0003홣}�s�F\"ҕ\u001f��\u001c���2�-Z���_��c������\u0000�%�n<(�|���L��a���>7f��\u0015��>tc���,��\u000f�u��}��zo�{W\u0006\u0014�(V�<,F��|��\u0014���l\u0000�^\u001bm�\u0000ڮ�vOjߚ\u0005�r�]�������\u0000��V�w�½�\u001aB��n��;{\u001a�5�Gin�aP5~�\u0000\u001dϿ�J&ϒ?Z�n��I�]O�8o%؏5��|���{�^J���\u000f��\u001f�\u001d���u>����\u0015<׆\u001d\u0001�'������Հ���}|\u00052Vk����x=�)��zm�J�ߘ_%�Ƿ���0z��E��\u0007���>�\u001fF\u001e3�2贵w�~>>#\t=\bby\u001e�\u0017n�����Dէ�@����{d��݀�]Rk��\u001b�����4��\u0002OPʏW�����4���#��h�73\t����ݽ��;��;\u001c�\\��\u001fȶ��/�g\u001b���sa�F�J����+�\u001b���_�v��Z�κ\u0004\fbՕ��>[��A�8��s��\u0006�\u0002�#O���3@�`��\u0000��{�1��4ү��o��5��8���7�:>\u0007�P;vއj~��SC����\u001cg�v?�v�y\u0019�M&&���S^��{��ž=���\u0013��7ע)��z�_�ˆ0#]wb\b�ꁖ���;\u001aҔ��z�f�o�2�\t���\u0002��b\b\u001e��+���&�f�?\\�\u0000z֪7߹�ʦ\u0001��-�i\u000f{vD}�E~�s�\u0004�@V��I��c��\u0000O�W��#ۭ\u0007�`����͈��G�W����:E��?��S�l�;'���$���ͤ�ыz|#���z\u0018�~H���^�?�=��5WI+��\u0000�l\u0016\u0015\u0016�\r�θw*{�+\u0002�G��=��Y��<�=����u־��ߡ�|��\u0016[�/�\u000f=��ť���w�ϰ����\u001f���\u001c�CbGs�[�\u0003��\u0011J\u001bt�]�\u0011��λ�w�}�2w�{A\u001f��}�uL\u0016�����G\u0000]��DV\u0012>g����Xˑx����\u0001W�?����D|�\u001c�Ԕ����Z����6h恻`�\n��n��\u0001!X���;\u0000(~���z�����o���?z&�)`�����Ȓ\u0007>I\u0000�Ȗ(�>�����R��\u0015��s\u001e����)%�e=)��~^�MSY����?,%*\bڣ��o|��>L�ӽlR�#���}>\u0018\u001a���S9_\t�1E�\u001b��[}�EOP7��|\u000eW]y��B�A\u001c|\b\u0014\u001b�J1\u001f�D�6��J���c$��4�=\u0014�\u0000fa�4k�!+�\u0017q,J�\u0004W�;}${e\u0004w�6q\u000f�\u001c���T�ܶ<����\u0019\n\u0000l��[�܁j\u0010�\u0000dt�w\u0019Q��96\u000eH]`G\u001cm�Q�}�\u001bt�'�ߐ�Βe�<�T\u001e��\u0011�������'�F�z�o����c\u0018!y\u00054P(G^��\u001bf�S��ƞ�\u0007���j\u000e؄&\u0011(S҆�;\u000e������$�R\u0001S@;u�<\b\u001bnq\b�lB�Px�Q�1M��}����\r�0\u000e�\u0015~�\u0005=�;w�4�m�@������\u001fö\u001e�m\u0002��Б����\u0015TS۷m����\u0018����{���{\u0002\u001c��PW\u0013�k�v\u0015��t�r$�o�/{\\[�:R����o�\u0005�}�E��=���qR)i�{x�ԏ�Z�B��ޣzx|��� y�\u0015I�ޕ]�G���;2\u0015Hc7�ߩ;\u001a\u0001㑵�>Hv�\u001aқ���F\u0002m#�B4�'�\rj{׶TH\"�\u001f$$��M\b?��鐫�Ğ�<�45�z��X\u0019y�%�\u0015�|G�E>�\fJ�P�t7�c���|��sZ�\f�b�\u001d鷀\u0007�zo�\"LJ�\u001e�[��T��~^�G�VK-�\t=��]�4\u001b�\u0006�\u0004dI�%%���v�����#�T�Y�mS����xR�\u0012/��K��H���~����\u0002<й@�ԝ��\u0002����+�\u0017a[ \n�\u001bv\u001f>����\u0017�Z]�ߨ\u001e�\u001e�e[tg\u0010����zx��ҧ��#��I�+\u001c��2y\u0001��O�;|�@wsb\r3]:��ڂ���>@e���|އ��\u0006�؁��v�;|[�~Y.\u0010$8�ڦo\u0019�>��PD{�\u001fu;���\u0002�}\u001eS�͛j�\u0016�?��3#5p�p��\u0000x@�{w�i����?��\u000e*ؽ.�|`\u000eo�������\u0000:f�t�9�������\u0003\u0011�Us��?�j��\u000e�\u0000�Uxo�|BW�\u001f�}�~\u001ba��P=)Ju\u0003��\u000e�1DP���N�>��\u001d0�\u0003�\u000b�����=:�\u0007k\u000b@*\u0006�_-���1ލ�˃PR��zct��u����\u00001N�B�\u000f�\u0014�\b�Eq^axq�\u001d��sO�\u0018�4\u0013Axq����\u0000\u001e���\u001c��^\u001b������R�n�,k�/\f\u000f�\u0006���\u001f<'���{��Q�\u000e�?\u000f�\u0000���\u000f!�P��G�ݓ\u0013\u0000QM�AL�w�;{{�\u0015��ۚIx�W��v�Z��l��� $y�k��n���L�F�s��\u001eo/�m��֞�;o�9�\u000b��\u0007��E��'0=\u0004�Om�fò�\u0000���Oշs������ڜW�u�\u0017�{e�˭�\u000f����<���*�jo��\u0000:�sZ\u0001��\u0000�����T\u000e���<>�*�\u0012>�\u001ej�C����\b\n�b}\tw;����\u000f�_\u0018~�4��\u000e\u000fQۡ�v�v�~���VcQ\u000fϸ�\u001b����5\u001f÷:qA�h��S������\u0003Gn��6'Q���Os�\u0011Gvdƅ/��J�\u0011��\u0000?�\u0012Y\u0011P��D����O\u0013^����3�Q͇\u0011<��Gr��(7ߥz�;�c�L*�GEwV�[�\u0000�~��\"\u0004�\t�7�_ݨN���\u0000�i�s��@\n<܌`\u0010eՃ�{�T���t����l���6\"�~��<^\u0016Ҭ�z$u�\u001fNtݕ q\n�^�\u0007ܖw\u001f��}���\r�a�4I�o��늢�j��\u0000>��B\u0011q�^�Y�uUy~\u0013����\n�bz<�ϭ]>�\u0015��S�NU��w��r~0y�\u0000o�\r3�j@{�ߍ3�{v�a|�@��\"��O�o��]\u0003O�\u0000�x�\u0000�#:��?���1�v��f婪b�PZ���\u001e�߷�ĢGg�y�C\u001d���O��\u0003��\u001fW�M\u0014�\u0012�Pu\u001d��9-�P�H\u001b�\u0003�e���v돚�2\u000eL�\r{��\u0000a\u0003\u0005u_�\b�N��\u0000��\u001f5ij�+����\u0000�r\u0004uH'�yk=\u0000\u001d@ڇ��q��\u0000��Ď�‚Jֆ�=@�z�0\u0013��!���֨\u0001��A �\u0000�M�'�$_6+2\u00154�ÿo\u000f��8\u0004A\u0014y��_\u0004�d5��Ԝ�W�\ts��nթ�\u00000i��W�$r�%���\u0000���]��F�u]�+��2�n[W���r��B%�*�/�z��~x\u000f.�@]���\u0005$�0�� W�>��+ \r��DȐ\u0007Ҍ�B����F��\r��7땚;7r��H�����\b�/tZ���\u001a��\u0011��G��{˝PH�bZ�:)\u0000�oڴ#}�FB_U��F��z\u0019%&���?�׷�Q�!botc�HT\u0003��O�~����ٰI.2\u0015zһ�>^\u0007�|�Q5��\u0014t7<�^LU@5�����'�h���/�g�\u001bq<��\u0003ʿ�J�L\u0005�)�wsϮ���\u0011N[�'�\u0007����n�T؃E=7\u000b�\u000f��X�\u0010�ą�P\u0003P7���F\u0011�\u00052P{J��N#f5�\"�\u0001�z���m�xm\b�\u001dGN���\u0004TkZ�\u001d��çs�d����P)���Ҕ�\n���M�\u0005+���~xk�\u0016\u001a\u0013Q�N�\u001e�W|n�w��C�)��A�W\u000f�\u0011�jw�\u0019\t\u001bB�ž�\r�:\u001c�B�`+�\u0007o�\u000e��Z��3���޾\u0003��C�Gw ��A��|iOoq�h}�s \rJ���j\u001f�\u0012�t��Ҏ�}���g�D�;�E\b�\u001a��k�۷_��D\u0010wA��\f�P�\u0011��C܎�\u0013D\u0012ʁB<�,\t���=�܁L���\tn7?�S�ڛc�\u0012�.{ףT�o����)|�]�7���\u0015ȓ���@Ksܟ\u001e�W�n�!)^�)|�Dt=(=�?~VM/4�{�WsSۡ�{u�Ri�����&�\n��<\u0006G�ʄ.N����JV�Ws�J�I=�\u0011���#Q��\u0007�h�4\u001b\u0013���W��A\u0000�E�Y=�t��\u0007�EW�_\u0013Z҇��\u001dr��[�^��O\u0012<{TW�ʤ(�ɲ\"�\u001ej����\u000e��7���ё\u0000���g_\u0001J{t�}�1�11�nL�Kܯ��E{u=)�'\u001d��c1�z�#�\u0000L� o�7�bA�ݖ\u0000\t\u0006M9\u0007���}{�d���V��O���p>���5#o6U�\u000f�q�m����g\u001e�|�xǬ��������i�>\u0015����9wS�h?��7�ֿ�G��5�M�a� �;\u0004P������w;��~�;�5|���iks�l�\u0000�>c0�u�a�X�>&���Q�+���n�`��\u000b=\u001di\u0014O���o��>�e�\u0007�\u0004[��w���\u001d��ǐ�ipc�N��\u0007|n�J��c^�\u000fa��Hrے<���kO\u000e�ޟF�\u000fޫ�ץ\u000f�����\u001eI\\\u0018��}�o�\b粪\u0007�Jm��|i��cK�n\u000foz�>�\u001e\\��xr\u0007Z�\u0000����'v,�A^���#z�W\u0005ܖ�����w?}\u0007o�Y惰����o��zt��^���\b��c��\u0003\u00007�5|�\u0003�5;ֽ���\u0011�\u0005\u0004\n^\u001f��i��Pp�\u0000\u000b�o�������\u001d�U\u0007s�Jס#�_�q\b��>����+�7@L��zw�iZ�h!#���nk۽N��\u0000<��� ��\u001du�\u001c\r���\u000fs��h}7�w?\u0018��^6���\u0000oߜ�͹`l�\u001fȦ��/��\u0005~�|3?���\u001eD}��~\u000f�//�\u0000�>>��N�O�l�a��%'f[\u0007m��̬;o��y����'�f``�������8y+���\u001f4+��(?ν�Zc}�Wo�d�\u0000T׾L�\u0007�%�|_�\u00009\u0001�\u0000\u001c{����w�?�k�g�r&�4�\u001e��~w,�7�_�Ӛj��\t��SC�=~�\nd\r�C�!e�*+]�o�l��E�ݥ\u001c�>\u001e��S���\u001b�k��]\u0012Yҝ�w��\u0000o�0K�Zv���o��õy����ڴ�{�+P�\u0006\u0000ר�����\f�U�^��,�7\u0014\u0014�{���'�8s�sT�T԰�v��t\u001f!�\u001ed�o���\u0010�ڮ�v'�\u001fx�r$\t\u000b�\u0013�@B�5:\u000f�_�l��W�R�\\�R\u0018\u001a\u001a\u001e�۷m�\u0011�\u0013�\u001aA4��*Iɹ\u0002\u001b�]����Q�w��� �(�Go\r�\u0000\u000e����{�*�\u0016�aO�n���1ɾm���.����c\\�ݖ�\u0014\u0014�M���\u0000Ͽl�\u0000'�@\\�\u0014*z\u0011�\u0007��#!A!!d\u0001�Ew\u001e\u001bW��\u0019\u0003�P�\u0000����n��@�\u0004}�\u000e�;f�\r����\u0014�ێƒ��2]\u0010�T��m���~�\u000e\u0013�h�\u0004�?%�\u0001����l�J�Zv�@t;}�~�V�dZm�P�\u0007}���#}S��P\u0003Q�\u0013N�\u001f�)�\n���ɾ���T���\u0018w慄��F��M���\b��R�\u001b\u0016�����Q�\u000e��o2\u000f��j{t�e|�c�4\u001b࠭A#n�w�'�}����\rw��:�s�r*B��@kNǽk�pl�,�ޔ'�ޟ��\u00014���O��g�\u001bg\u001d�tB�IJ�_�\u000f���\u000bں�\"��G�v��^��Ss�s�\"e܊�\u0005$�kq���޻\u0011�\\��ܔ\f��Z�)�W����o�y���o��C�S��\u000b\n�KqJ��S�\u0005:О��@Ȏ�J���q�����\u0019\u0002m@��[�;��\u001d<=�\u0005K&�;�:n\t��w9\u0003�R�'�;����ད�t1vj\n�n�������*��~�\u001e����1U�mC�\u0013�:��0sV�m�<{�\u001faЂ2�B���\u0014W�ԑԁ��5�\u001d������S�=����d3�\u0007u�C�_\u0013�����\u001agJ�\u000f�$V���\u001a�9\u0003��)�������\u001f�F\u000ekv����$u���d�\u0016�+;�s�i[�m�}D�c�Y{�Zg�\u001fs�-CA\u0011\u0015�\u000bJ�;�H�[���\u0006��dZ�����\u0015�3�\b\u000e\u001e?���b���խ��A�n����wS�vx�ط�v��G��lG \\�R�O��\u001d�~y.���T�ۢ��n�}��E\u000bꯞ�3G�-χ\u0016�+�f\u000eJ䌜��\u0010Li4����}���q�\u0002�ӭ;�%��5=j~c�ߗX;�]ο?\u0003�>��|L�(\\\u001f���\u001a��\u0011���?\nV��O�lx�U�:�)]�™!��\u000eG����1U���\"���v\u0000�!P5|\u000e�o\u0001O�W�\ru\n�o�����E\u0015^\u001f����\u001e_�iT\u000f��\u001e�m�i��Z>����\u0013O\u001e��%W\u0007�k�ݿ��\u000f#�ix�_\u001f\r�H\u00106�2�\u001c��]�P��m��\u000f�{�����|��[/\u000f���ޟ�\u0010A�)���Q�߯¿-�ص�\u0016}�:��፩;�&}���|��_\"��H�\u001f�s�@�O���U�OTD��W��x�������9���Ͻ�ô^cz۷��ӽ;��Ծ�������\u0000\"MuYv�p)��g6]����Z��~��w�9�o]������\u0015,�\u000e����\u0000�2��V�*�\u001b���\u000fq�l\u0012���\u001b|��aU\u001f��\u00001�$�}?/��ª�_�_�L;%]������\u00001�wtW��\u0000�\u001f�ǿ�ONO��Ӿ`j�Ñ�i�����zWoc��Mʩ�纰���P��4����H;m�iB\u0005Y��#�ɺ\u001fi\tD�\u00145�M���Ms\u0010�\u0003\\��[�m\u0018��I5�\u0000����\"\u0000;0�<$�㐽(è�o��\u001c�2��CL���\u0005��‹��ߦ[\b�-�%Ox��u�x��}�ק�e\u001a�\u0001۹��t\u000b\u0017�\tk�\u0019M+�\u0002���\u0000\u0000�����_���R��J�T\u001f��9��W�\u0010|�����x�x��_�t\u0003�Zb�uޛaB*9i��\u0000?\u0001�ޔ�9z��8�_r �����\u0000_l~�@\u0003��|���\u0017=?�zt�juʲ�Kc��\u0012C�\u0000+wL�\u0000����\u0000[�y�o\u001f�D\u001f�@��o�O�ɇ����\u0000����\u0011��_e��G��-������7m4�\r?���PW�ܑ�z����y\"G���3�n\u0007��S��\u0000�|�\u001d~a�a�(�:R����$����i_�o�=�*<��\u0011O��퍤\u0014D,��H��^��bV�\u001b�\u0007ނ��\u0007���\bd��8n\u0007��\u0000��\b�\\Ӱ٨�\u0017��x{�d6��\u0016\u000f�eā��\u0000\u0000�\u0007��OL\u001c�+޺�+z�6�^����b\u0000a#�\"�MI���=�1\u0015˫\u0004�E�&������d\u001e�dߧ�_?j�Ϛ\t���Iڝ����#C�j���T�n=��Ә��]\u0019�����H_�\u0001���:o�^�PdhS|M��D�\u0010`H��\u0012<}�Г�\"�%W#� ���@k���9\u0003A,GP��J(\u000e��\u000f|L@�=Hi��n�rnR}���\u0000?��eF#�V\u0016y��\u0017��ۦ�L� G$[GA�m���W�cJ�ٸy��M�\u001f���\tw\u0004�\u0002X�:o��x\u000f��F����\u001f_��]�3�Qi$�Cӯ�w\u001d����'����n\u0000;l\t\u0007o��Ƈ5@�Lm8�:\u0001N�=�^�+��$P4߰�>=\u0000��lkz\u001c�v�J\u0011���G�€U���;x\u001e��H8��\n���c��9\u001aM���k�\u001bԁ�����\u001eLm{oJmM��4ڴ��w*\u0007f;���|\u000f�«�N�\u001d\u000f�C�L��S�\u0007o\u0003�|2\u0007��\u0006�pi�\u0010=�}�\u001eV�&c���o����@�\n�O���{P\u001e�ۮ\n�}Y\u001d����\u0007�@Y#�b@!�\u0019�o��\u0004�\u001e��o�\u001e�Cm�^�\u0011�~���\u0013�\u0000\u0003lį�\r�>�\u0011�o�o\u001c��ۯ�O1h\td���~_q�+5V�\u0012�&��O���4��攪[������ӯZ\u001e��@(K&��V���k��B�ĥ\u0012�m�КWj\u001al�،�m�t�\u0013@>�|\u0006��l�J\nI\t\u001e\u0004�\u001a�_ē�dB�\u001eG�7܊�w\u0018�*�\u0004S�nEk�R��N��UUN�|�\u001fgn�Ҙ�����j�\u001bt>\u0015�\u0000?d���\u0006�P\u000e�ߧn�\u001c���<����\u0004S�>\u0003��!�Dy\u0006�ۭF�?P�Ȑ�\u00129sTZ{Sڽ)�9]YH��\u0013\u0018\u0015��\u000f~�|���[/�7�^DP\u0001ҽ��\n�z�J^E��Q\u0010PӮ�=?\u000e���VM\u000eO`�c�vč�D�M7\u0014�NH���TK��-G�Bh>�\u001e?M:fV1�ʝ\u0006scܞ��٩�]�k��\u0007BO�_��#\\�\u0018\u0000&H����e3��\b��*UYB1*È*�\u0002v�0⺱oI��\f>��<��o%Ao�1�ϓ<��Nl����:\u0016��[X��Ս��\";�\n\u0017��\u001f�&�\u0004���.��^6| �}q��v\\2<�ߓ��\u000f��\u001f�ĭ+M�W��\u0000����].\u000fU^�\u001f�o-���\u0004?Y� [k�e�h`���Ղ~�\r\u0006c˷�\u001a1�9�^BD���i�\u0012 F\u0012$����4���/��6��ɢX�\u0000�O�OEv�m\b�'��\u001d\u001e\t%��(-#K�D��,�M(P��i�}��1��ɜ����&3���י\u001c�\u000e�U\u0011�(H\u0001�d�Ͽ�^@�t֟F�ד5e��[�o�y�D�Ym&���9m�d�K9ҍ\u0014��e\f�I�+\u0019���[C6\"H\u0007i\u000eG�ǣ���pA��Hs$ђ�HL�-+\u001bD]����FRGbE3#\u0011��\fH1�����i\u001fz���Wz\u001e��\u001a�9h\u0004�[�\r=�}\u0015�\u000fl4I�w/����X�\u001d�\n�7*�=\u000f��|7�UỂ:\u001fc����|\u0010�?������\u0011�W\u0006�c^���q\\h���4������%�܅@�\u0006�\u0014�~����ip�����\u001bl��/\f;�k���Jm�p��D���ޞ\u001e\u0018i-��>=�>�\u0018���2���C\u001a��@:\u001e��FKa��$l�\"�.Q���\u0000Wڽp\u001f�j�A�Tv���#� �G_ �\u001fõ=��>��ܮ�\u000f;.���~��\u0018�O.I۪��jGC�a\u0018w��k�K�}�4�z\u000f\u001fム\u0001\u0004��I/\u001f�z�\u0000������p{�7>���lh���W��kJv9����3\u0011�{�cz�-C����\u0006s2���og���U�҇�\u0002�wa�\\��V����ߧ\u001e^�\u0000�tg�k�}�\u0019����!�A����\u0000�fN.����>m�{v�\u001f���hق\\�-��\u0010�g�Z��8B�p����;b��iڟ3��2U��U��\u0019�=>[b/p\u0015���\u0000�r5\u0001��R~5�5ڱ�>漿K�o��>!�{����]�);��UI�����\u0002kn�y���%\u000faM�\u0000\u001f�!b�d.�K܂E74��\u0011�Q�\t\u0010:�\tߙQ)]�N�m�\u0000���`\u000e���T\nA��hO��\u0010/�Ǒ$�\u0011�\u0012'$�_��=IˡQ���h���&�?2�m���S�~����$��n0h_T�J\u0000�\u0001��5?I�}�f,9\u000e�nN����G���\u001bl�#�g:.� @o�\u001f{��\u0006��B���}\u0019�Ǘ�Y�\u0006>=<}�p�z\u0011\u000b&�A���¨�����H���j��\u0000����f9��|�%l.�\u0013�_c�U��0_�_��\u0007�晿MEj����}�/8��\u000ed\u0007>��������4�h\u0013�����Gfw\u0016��\u001e����ۮo|ڕ\u0007��Pׂ���ߊ\u000f'���\u000f�\b�S���G���@���}�x�\u0000=�m\u001bך�\u0015�\u0000>�\u0000˜)o�\u000e����\u0015���PRJ�֟w��\u0001G\u0011�\u0013�f \n���\u001ag�)�U�@jz�a�L�o�=�/r^�\t��+�:�\u0000`8� ҙ���6�u�s�Ȑy�B�\u0014��׍O\u001a\u001e�Sb|<7�\u0001Y\u000678�\"��?�\n\fJ\\�_m��\u001f>��;rG$#EɎ�\u001e������ċ�-�ؖ�\u0001�a��\u001d��L\u0001���p���*7ޝ>�{oL����h\u0017\u001b�J *8�9)��\u001e�NB�\u0016Q���&�\u0000F�A�?�2\u0012\u0002���\r�\u0010s'0v�~����\u000fz�\u0016%��:�,\rw۰\u001fָxx�T��c2FEA��#��r�\n\u001b�\u0007B���\u001b�4�'m��\u001aaf\u001b\n�a�}H�s@�\u001bwA�\u0001M���\u0002�'l�\u0004�I�W*u�\u001d�>����\u0000y/T��3�k���o�y\u0004��\"+�קJ�\u0000g�S(׹�6_����\nс�F��\u0015>\u0000�5q\u0017�\u0002vM�\u0002���\u0005v޵ڻT�e\u0012\u0005@\u001f?a�\u001e5'\r!\u0018��v\u001b��AA޽�\u0019\u001aꐨ\u0000,\b��\u0004��\u0007��\u0010)\n�R���}����\u0016�f�w\u001f#�Qڴ퇒\u001bc�\u001bm�W���\u001bO��+�����W\u0003�P�Wo\u0011��L�\u001by�Zw�\u0014�ӿ�|�\bS��j\u0011�}\u0015�\r2(C�\u0000P\u0011@\u001f\u001a�\t�\u001d�\t#|�N��<\u0007o��\u0000\u0005AH„��Wq^�ȞV��\u0007,��ھ\u0000�=6\u0019O��%��M�<7=\u001b�#�+d\r�4��\u0000e�C׵\b��_׋\u000b�OC�a��o\n\u0003��\u0013�\u001f\na�Log�yj\u0005K�BGڞ8��4w4^T�*i_|�E�GV\u0007�>����s\u001f�q��q7F}C��#I��(t�u+(in��5X��#��O�t�$�mD���S\u0013�\u0005��\t�}Oj���\u000e8qgԏ��R#���\f?�\"�~>��keX |3~��G���$���\u0000��5�gP�����m3�:BZ�Zy]��\u0017\u0017^d�5��}Z�U��t�F\r.�;d\"xl\\����ٽ0H�g��{d���l\u000f�1}e#Q\u0006�\b�\u00072N��E�Η\u0018\u00195�%�f�����? �����3�s��'����Jy�A��N�t�J���X��N���k�Z�˘��oi>�\u0004�0,P\\���Y%�)\u0007\u0012H\u001d��\u0001\u001dFL٤c^��᫾Q�\u001d\u0005���!���\u001c81F |N㝞G�/���GG���:k�`׮.��\r���>�\u0006����[�Kao�ދ=GX֯��^�A\u000e�m\u001aE-�3IT`�?\u001ff�� 0��\u0005�H�w\u0016\u000fH�>�>i�\u001e*\u0013�|�\u0015�5V��y�C�\u0005����\u001a��q\u000f��t�7�q~���MF\u0001s��zT+b���O\u0002Ffhe\u0005��*��[ƞ8�K%F1�\"�Fꍝ�27$�St��x�7����\"�#�\u001bS ��\fo�M�k����y�N�,���G�P����\\yvmu\nZ�\u001e�����4�-ī\u000b! �*\u000f�c\u0013\u001cq\u0012��\rt<�X�m�fu\u0007��)c\"5�����q�=KI����h?�\b��u{a\u001f�l�\u001d/�V�;-SM�mth��?J�������%��$\u0000[En��)\u0005�\u0004�v�!�ɋ\u001c��$\f�A��+�\u000f.�\rV�Ʈ�!\t�c��\t��؃}y\u0010+���\u0000\"�T�@~_Y�'�9<ǠG��;X�t�OW�5˭>+'x��u+[��w�\u000e�kpZ(Q[��*��88�;>0��\u001f\u0016\u0013$Q�l{���\u001c�V��\"x4Y�G\u0014%/+\u0004�ؒ+z����\u0017�~��\t�{\r\u000b��B��G�d�b�\u0007�la�[�\u0018b�ŋ��{%��-Ƨf�'x��r�Y�&tF�K\u001f\u0017,�\\1 oBU����:t\u001a���O\u000e��L�\u0000�\u000fuK�����s�\u000f���\u000f�}2\u001dg���\u001a\u0007�t�縳f��Z[�;�4G��u\u001b6U����.\u0016Dq@�\u0006l�ë��\u0005�\u0015�\u0011�bh��cgC�M��L�����˳H\\�~}����\u0018�5^\u001a�|?��k��KM��?/\u001at\u001f�\u0010G4\u0012n��\u001b}�={\u001f�H\u0011�+����5�qC|�_���������gl�A\u000bl\u000bF��߈�y=�\u0013Μ�c�=�k[Q\u001d�H�\u00045\u0015�\u0000X�����ʃT�%(\f~�E>~��Ǘ&��T\u000f�\u001d����\u001e�iܶ�\u001f���逝��ޠ�_\u001f\r�S\r�\u0002f&��\u001f�Oz�6P@�]����{�t��w\u0015�F�7�ڡ����[�9���)���<���jmO���9��!ˋڿ!����u���S�\u0000��l�#���fG���˿�Ϗ�����;H\u000bDz\b��l=���۵s#\u00176��}ɯZt�\u0000?a��1K\\P��~���\n�\u0012|w�J����)�A+��\u001f�\n����\u0000��H\r�*��)?�'o�#k�+�������=9v����\rP<\u0012�tח��J��U��~�A�a|7�g\u0010�4\u001dʔ\u0014��޿�+�\u0003sȦ �J\u0013O@|<\b��m�cd��\u001d�\u0004(o�\u000f\u001b�`\u00015\u001f��FD�j'{\u000bnd�\u000b\n�\u000e�u��\t�\u001e.E�=ϛ�5)�\u0016\u0007z�?�Gzx���-���@\u001b\u0001\u001d�\u0002&���P\r�=����\u001d��g�O���Zֽ\u0017��)��A�{@|T�e�\u0001���X�������&�sG�7������J�[�����O��!$�\n�\u001f��� sDs��}�?s(��;��\u0005��\u0000���\"v�r��K`�/�\u001f̢G�ΚG�\\P���<��v�?�\u001c�������\u0000��_.i�?�@?�\u0007�Λ�\u000f��{ڲ��B�\u0019���@;|�T=��G�\u0019rx���r&�܍�\u0000\u0012=�p���\f�\u001e�\u0004�M����S�)L'.��}����4~(�)�\u0015+��������\u000e��~_��Ōy��\u0018�\u001f\u0010��_o\u001ac���\u0016�H\u0014���_r�M@��'���n��\t��hhI=O���l2\u0007{\u0001,�5RG^�;t��+t�b�m��\u0013ާ\u001f�\rw0){���~�F$�ST,ǽv��o�\u001f>�\b��T�Zw��\"�*�\u00112\u0010��a����ʤ(z~,���Ga%\u0006��N���\\�ߺ��?4�$\f\u0003\u0001J���a��w�ܨ�ے�^$�Z���<:�S+#{��\"�\u0007�\u001c1��{}�\u0011�\u0019raWP�b\u0006è'�o]�\u0012\u0004��{S�:��^����\u001d�\u001a@�[ h�(���\u0002�7�\u001e�\u001d��>�\"\u0000ՠuK!\u001dv�\u001b���o\f�\nd\r[\u000f�O������dH��5�� DAޟv�}?,�cm�#\\��/�[�p��N�\u000e�vU�ٕ?����\u0012ӏM�\u0011�qҙ�\u001c��\u0003��\u001d\u0015\rG���0���XAG.h�N�\u0003���׶JЮ�znE8��:���/����k�O�n�*\f*�z\u0011ڴ�\u0000k�\u0006ʸWrM\u000eæ�~\u0004dI�]\u0011m��;\u0011J\u0011J���\u0004,�\u001d\u0007�^�\u0007�2v\u0002V�W؃�S_\u000e��7��m�zm]�6��2\u001d\u0010����J���\u0000wl\u001eHB;\r�o�q��k㍥\u0004�A��Ӯ��\u0000�D�\u0016�e\u00053UM>�ާzv�����#����[c��kQ�nF�ҹY nY�-.��7�o����۾F�e\u0011I\\�Z����N��p\u0003^�sK����N�\n�S��$�K������\u0007����(���EON���x|�J��\u0012�z�i�jx���\"�;\u000e��}�R=�\u0000^\u0003���\u0006��\u000e��\u000f�:�R�+�>;R��7�\u0012,���ҝ��^����\u0001䪫�m�����T`J�����n�؎�\n�\u0007�)C�g��4\n���DZ���) \b��om�����2\u0017���\b�)�&�h�\u0019\u001b\u001c�\u0007\u0011�+��I��7\u001b��*�ve`�\\*<*>���\"M$�\u001d=[��\u001e\u001d\u0003�\u0011��\u001f�ˡ��\u001c��w�{;M�#&_^Q�\b���][�4Ϫ^�Z��/u\u000f2�w���\r�\\��z�����M&�'�5'�y4۽N��H\u0012�rޗ\u0000�EN�\u0006�O�xx�B0\u0003�ۺ����z�\u0013�\bǂ2\"\"�^��-�,\u001a\u000f�MwXk[}\u000e{\u0003xڔ�eor�\\����\u0005���i�K�\\6��Mi��\u001c\u0014VEF\u0000ն0�c\"�\"w�_����o$\u0007���}��rcG�#B�;;?:�뉧j��\u000b�=\u000fShg��kd��\u0000J+�h���_Mlbu�\u0002�H�r��a�\u000f\r\u0002E~\u0007�D�L�ɫ�`B�����;�����R���`�\\��z\u00176Z��}j-R;�\u0016�uie����\u0014��\t���Y\bq��\t\u000fH\u0000~>V�\u0010�\u0013f[��OQ��+�/����t�:|Q\u000b�KQ՚��h\u0015`�I�\u001a��c\u0003p�X��\u0019�\u00144L\u000e\u0001����l�NS\u001cH��9k\u0010�������\u0000ζ6�]�Y�5I��b�2Kx�iz�m\u00034p�H�\u0002IKW'�P�1�\u001eQ�c[�\\��\u0000Yl��,ٻ��'�yK�Z=F-\u001e�\u001d\u0016�U����?�m21oaei�j�-i&��Yc+��i�Ŕi�\u00062K9=Ce��e\u001fV�U\u0010?O�ށ�� ;�_̳�\u001f�\u001b�X����>[��,mR��TT����k��T���Υ�E�I�K\u0015\f1#�H\\�X�f\u001e\u00148x�\u0000������\b���sJ'�N�?Er���0�MTO5�s�MkJ�Um\u0002�O�]�l��[K\r���Y�wpi�0j:���U����e�\u0014\u000e\u0007\u0016zl^$��\u0019�\r�~��6M���#�7�S�0\u0002\u0006BD\u001a\u001c�\u001e��\u001eD\n�{�\u0000���/��\u0000-�o�o!k^`��ƅt��y�.��(�d�\u001c:��:V�\r�\u0017SX�K[$O?��' �9��h#>\u0019Hpz�1\u0004J�\u0000�\t��ځ-�ȔLs�3�\u0007b\u0006��k� 9�_�W��\u0007�����RY�'��\\��)tx/to:i\u00167:^��\u0017h�\u000b[�i�t�/.m����}Y�]��\u0004�>=^M.C�VL��BdQ��\u0001�\u0015��|�&��e�N�\u0019BD�F�\u0001��~c����\u0005�7\u0010Cqm4S��������\r���\ni�K�:��\u0000�͟d\u0012rʼ�\u001d�=�ӯ/�:1��s����\u0003���:����2�\u001eL\n�����>���f�il���w��B�P=��:�>�=<��p��N����0�揹z����\u001e@�\u0013��?���Oƙ!TJ��\u001e~~\n����H6����#5ڏ��*j��?3����\u001e�v'j�f��\\^G~jR5\u0007�q���;�>Rj�\"7��|�\\��\"�4��\u001fN`ț�-�#쒥j\u0001\u0004��v̬W�]Z�2\rE>��\u001e�mQM���9��\u0000U4�P�\u0013��&�\u001f/�\u00053\u001b \u001f\u0005\u0016vKubR\u0012\u0018n\u0017��zo���F�6�C�y�ԆI�^�\u001f#^��\u0000M�Y;�\u0017?\u0018dZr��\u001d��7�ڔ�|r��{>��\"�\u0000�u�\u0000x���oN�6�f�\u0000���ގV�\u0001��\u0000�X����\u001e9�\u0006�\u001dч��\u0000?�\u000b\u0017~���T���aڟ���&@���{l7�\u0000k�-��A��u��\n���a���e\u0019~�&C�������V�����Q����Tg�v����/\u0019\u0006>O�Oȶ�\u0000�oN�\u0000�1��\u0000#��:N˯\n>欷��->_��7���J%kM�\u0000���*�p+\u0019�\u001f��b�[\u000f7���\u001eLh75�ֿ�%\u000f���́�n�kJ�|����WW\u001c�䆌Q���{��E�� ݼprݒ��+'CO���\u0014U�Qh�~\u001a\nv����\\)�[$crGBG��S�8+�;�[/\u0014;�G��M�\u00120}ʇ[��\u001d7��~�\u0005P�eJ�\u000fO����V+p�1��~��\u0004^� \u0019*@�\u001f*`_4Tq)�(\u0007M��lĬX�)���m]�*+��\u0000\fj�N$�\tEͅb4\u0015n�v\u001fٕ�@�%0��y\u0000�\u000b\u0006��\u000bJ����\u000ecθo��\u0011�Ol\"�ڍ�=<\u0007�yIn���\u0013Y��&�\u0001ڟw�,��K+`w\u0016�\u0001b�u={v��5����8~� ��\u00002zmL�@�\\�\r'\u0011\"��S�n��m��\u0010�\u0014�Gw���ࠨB\u000eǍ{v��q��\u001b�Q��ʴ\u0003n�mA��\u0002� ��]������zӾO�B���iRk^�n�W\u0010�T(�o\n�POZ��\u0018�!��\u001a\u001e�\nz\r����\u0005�ʬ\u0006ð�������V�<�u�8�\u001e\u001d���G�rccK�L�*z�\u000f�\u001f�|� �X{\u0000v\u0003�����\u001a��J��_\u001f\u000f��o�\\\bC�7�v���\u0001ț�M��\u0012F�C�;צ�\u001d���=�K�4\u001b�C�O���#�m���X@�ƌ\u000e�ri���\tr���K�j\u0012A��<:��r��V�Il�)������� \u0001 ����!�V���\u0007SN��\"�\u0012[�&�\u001a��j�\u001b��*;�)��\u0004v�)�;\u001e�`��U-��[m������d\n�\b܊\u000eխ(\u000f��\u001e��TJ��OJ�\u0000n�{x`�)+hh6#�oO`E|1��t�hw߭\b���\u0010�\u0003o\u0002w#q_om�1<�T\n����o�\u001e�\u0015_Jm᷶�\u0007�*�7�ö�:Wj����>�\u0000�@\\7=}���􌌎̆��Sn�7�\u001f��+ꤐ{����\u000f���J�{ҹT���\u001c�\u0012��\u0000�\u0010{����}�&0���\u001b��}�\u0014ȑ{udy<'�rg�r����q'���20>�q>�q&���+Y�o\u0016��1F�'�Mĉ\u001d��Q����\u0015�_\u0016�B�|���Q��\u0011~����\u00169$��J�U�\u0013\u00057i�\u0012œ�\u0019�,��(���`\u0007�\u001f��w�\u00184�D0�v|Ͽ��\u001c�\u0019j~x�+;;m,K�����>�\u0018����B\u0019nf�/�\u0010�E�,\u001a1�\u0003\u0018�P�~\u0001��a���Y��Z��>�q��\\�Ξ�\u001f��L;*$�Q�\t��5��\u0011\u0019m+��9��\u001b�<��[?�5\u001d\u000f��\u0017�\u000b�\u0018#X|�m�j\u0016\u0011\\��]\\��D��L�\t:��TY��E\"r>\u00182�[���~��Do��{Շ�5�{m:�\u0000����b�\u0018HtKk6�o�M'R�����^Ӗ����yj��Ĩ�2[K<�C �ǭ�x#D\u0003V\u000eÞ��?��$e�\u0019HX����U�–��D��K\u0017����hZ��\bt�u�3D���o^ԢI.�FO�;�6�D�+\u001b8x��T\u0016����r\u0011\u0014G\rp˗*6OZ�w\u000eV\u001c�\u0004�D�X��t�O����_��T�\u0000��h�\u0000�����h��\u0017\tmm�ma�Լ��\u000bC�\u0005��M:\"5�)'�`�\u0014&BkǠQ���y�����U\u0001d\u001f.G~��\u000e>���k�sa�Y���C����\u001c�<���6h�����Zkz\u001e�m\r冥f���x��,\r$�P�\u0003��]\u0018\u0010EFgb�\u001c�㉸�>���ˎX��1RN�����\n\u000f��l����pz\n����\u0000�\u001e 9�\u0000�K�������P`�\u0014\u0016��P\u001e��rk�|)�\u0012\u001eT�K���\u0000W��\u001f}*�z\u0000kZ��z}�\u0000�\u0002��b#:)\u001e\u0003�R|~Y�v��P�\u0004���hp�t9�{����$�\u0000z���G�����x0�E�})��*܈�*�(MEk�l�t��C���xI\u0000l�u����\u000eH�S�w�\u00076c\u0000\u0001��I�*�\be\"5�\u0007�\u001e��G�`��\u0013��$㌣�wþi�[\u001dZH�P1z���_\u001c�\u0019�ؾN�<8'�c��Z�\u0006����c��cS�UI\u0015��Dt#�2\u0018�z�RrGk��v����3+��RK�%[������\u001a\u001c��ߢǓε�������|�5��{���nO-�?�a�T���x\f�\"%}-Ά�|���\fܤ��\u0000.�v�~l� ��G��t%��?O<��\u0000\u001c�����w\\�1m���\u000b}��{�\u0000�s3\u0015l�o������]�.�%�?]6�\u0000:��/އo�O���z*�\r�\u0000\u0001�{��r����\u0000�1�J��\u0000u�6�?��\u001e{��\u000fυ�j\u001b���Df\u0016��>��ݿ2����\u001d�\u000f�ol�G�\u0013� gb*{�`w똹l��c|�\nB���\u0012\u000e�\u001a}��\u0002��R�m\u0004rd����w\u0000Ӯۍ���〡�����\u001f/\u000f\u000fq������F�����i��Ϩ�\u001f\nϑbM\u0016#� T=:(�zt=\u0007њ�^:��R��Sˣ����\u0014S�sM�m�M�-9���4�>�\u001b~�\u001b~���9m�\u001e�\\��џ��V�\u0000E�\u0015�\r\u0007�9���\u001e���y?A4��b߷n�o��:A�v�s�i����d���5��\\U��\u0000\u001f���H�m����~>;b�\u0007K���t?�7\u001b��՘�ǥ�~�\u001f��\u0000�Ǐ掜ݿH�O\u000e}<79���?x/�������\u001d�\u000e��oN���?o�\u001e9��Y�q�5�\u001b\u001b��I3�\u0005��D����U�vϮ%\u0012��j5-�V�����������.-\u0000RiZ�@��}9a�\u001c�v1u\u001f\u0007�\u001e#�ppta#G�Z\u0002�\u0015��� ߽\u001d�0�\u0015���}\u0018\u0019!���u����\u0018j���cQC�+��o\u001c\u001c�w�wq����o�8�\t\u0003�ɩ\u0015?�}��#�\u0015��iI_\u001a�\u001e���\u0007ZHK&SZ�ק��8����d\u0003\n\u001d�ڞ��\n\tD$�(i��)Q�Z\u0010��P6�ڝ\u0001�E�T�Y\u000bTn+�����c��E�('\u0000���o�@\u000ev�G���wZ�����Pk�5#p�k@�\u001e���d(��.��{�Q�bw;\u000f\u000f��Crl�Fb�E\u001c��/Z���t��m�!]���˒.(\u0006�\u0000)�����f<��VQ�ل�!n���\u0015���S!�ͳu�1G2��]�ߑ�2\"B�S��\u0012\u001b�4\u0018Y���߷��#w���DŽ\u001d�o�[�2��i_\u000e�.�����r4��s\u0018�٧���|�b�\u0017d3���s�����l;v�P�~�3Tw�H�#�M���wۯl\u0001�=Q��\u0003�ӭ\u0005\u0000;d�$�a�YE\b#���v����D��Tw�����&��k^�\u000f�\\��To�P��}�O���`��\u000e]V���Z\u001e�\u0015��L7fַRa�ҝ�֛�O\u001c��k7j$\r���\u0000��\u0000���H�J�}���~��\u0013��\u0004��(I��?H��Ŋ\u0001�v�i�S�\"��+�M��Kf&�����\u0003� N�9�\r�\u00127]���_qޙY5�g\u001a���X��u������\t_��l\u0006ҹ^��]�S֠��+27h���q^�޵���)��L���Oa�Pu�2�\u000fD��r5�;o�\u000f\u001a��D��\u0019\u0005**\u0006��v߷�\u0015�L\u001fr�J�\u000e� |�v�\u001e��ƠmP\u000fSJ�ڃ��:����7޾��c|�K��\u0007f���\u0007�\u0006<���S�c��˥i�\u0007�U�r7��_��\"�\u0012~�\\6����L\u0016y��ꍉ\u00154����\u0011\u0014|֩^��A��\u0019\u0003\u0012�\u001b\u0015˽6'��\u001di�p7�D�����R�4�O�\u000eVc�ɽ�䊌n��������\u000e�2���?=�\u0000>?.��\u001b?,���������v���^���O�Ai�y�Y������h�&k��˂��\u0011�E�=\u00009���q�\u001cC�<����?�u<�v\u001c2ϐDr�|��������/�\u0017�䗜|�����}�M���\b�G�#�Z��>D�b�oОX��E����%��\u0015K�٨8����\f32�<���~�\u001f.U\u0001�1�9�Iw2�<\u0018F8\n\u0017u����y|�s���2]+�}B�^�yJ\r:Y\u0015��ՙ�\u0012�p��Q�U\n�!���:����\nS�$���ZV�\u001eKyf\u0012\u000bp�Ksp ���|1Ig�X��P���\u001d�Ue\"�a�]�\u001b~��FP��\\�\"g�&��\u0017)�[%��\u001e�����-�!�\u0019&Bm�E�\"�f7\u0001��FU�6�@\"sz(��ov_�\"U��+m;V��x�\"2Y�̷_��b�{�n�UF�?H6�oqe\u0015bu\u00152\n�����!\u001e-����j]&�x�lQj\u0016�o�:@��j�\\��Y^�P\u0017W\u000b$���Lf`�\u0011ւ��9Pԓ*�����\u000b���F�~����W�O�\r*\u0016�ӹdI4ğQ�-N��N,�Im\u0002�e\f�%��\u0015v9lu\u0012��\"��\u001d~�\u0019tg\u0010�\u0013����i���%������ݓ[��\u0006qx���֚b��{)^�մ�\u0018Qd\u001c%��`\u0015�(+g�\"+�?��i�g.@�=R=2].+�>IOִ]&+\t��/�h崷kI��8�W� toE.���%1�\u0003�4L�N�b�\u001c3\u0011�\r��\u000bx�;�\u0000(\"\u001d\"���從�ݥΝ���w\u0016q��6_�����g@�8/o4^�L��-��1\u0002�o��\u0018\r&L��?����ak��\u0016w:�����ؼ��h������5{K��Kh�����2��w\u0017\u0017��bhm��=F���0��ȑu�~��R�\u001c`\u0003@��/J���T��K{motߥ�\r_G�E�4�>Ei\u0015��i:���+^�Y�M,\u0017D4ʱp����ʥr&�N���A��\u0011\u0011|]㻿�ʔ�|��>�gu�+m/I�k(�.�J \u0013�WB[mKI�ic��Il /=�F��-f G�@���\r�����ٜQ��\u0007�g^V�<�c$���k�F��\"�o�^���k��\u0010Gik�y�����b}*���D�hZ0auYVI+�r��cm��������!*7\u0011�~>\u000f����j�:���sH�W\u001eo��9oi>�\u0012�����]ϪIr�H�lD\u0017A䴒D���� 3�L��\u001d��\u0010G:��I�3\u001e^\u001a=v�\u0017]?S�\u001b�pO�s���W̟���6��wS�>�ڕ�����S�����������|��ި�tw\b�Y�\u001d�g=�9�y8��\u001c\\F�\u001b���9ny�\u0005��A�[�Y���/}��\u0011�\\�~������S���M6�\u000b�3U���4��i\u0012{k�;��ky�6d�$��Pv��a\u0019q\u0001(�\u0017��9F\\2�\u001c�'�4�5�x\f��NQ�����\u001d�n\u0006&G\u0014�\u0006�\u000fN�ރ1!���\u001b�m0\u0004&\u0014\u0003s�o�?�\u00072\u0006�M~\u001drr�]�A\u001bW���d��d(�O\u001f:�K�7�zxxS2��ͤ�i@���A�ZnMz�k�T�����`���K\f=!�����\u0000\u001c���+w�(�\u001fO�n�����gc�;\u0007_��5c�/\u001e�?~m�g\u0019�\u001ew\u0015���C_��i�F��m�&;??��i,�ۅV;�E�}��Çha��N�U���&K��h7N*\"j\u001f\u0010~y��v���m]�\\�\u001d�A��uǗ�\u0015I\u00117M�T�Y��j�\u0012��˗g�b7�u�\u0015\r\u0011\u0014��\r�7X;ko���>��rhe\u001b�\u001f�s\u0013�䡃\u000e$\u0003Z�{{�l}���6;�\nX2Gb6y��\u000bo����5:�\t\\�&�@��7�_\u001f�7�4\u001e\u001f֙��'�π���-�9?�8�;S6��o$�=�;�~�y{m:>�/ӷ��1��;i;�Y}�o���̬W�Y�Z���m���%������T\u001bj��O���\u0001�Vxt�ñ\u001e�87UA������c�WET��\u001f��ҕ\u001f�\\\u0014��\t#d\u0007��\u0000=�z�]˽R^���6�����Qe������;�f��UA����\u0000o\"y�\u0000I|�\u0019j:}?����\u0018�2��I\u0010�Ӡ۷�Y\u0015QF���~���\u0006�dH�[L��QAS���W +}�t%^iͤ�J&ۓB\u000fAZ�~����[x4�4\u001c��\u0005*i��2��j\u0015�\u0015�d�\u0000w�z�둮�Jr[�N\u0003�*@�M���(�yC\fմ��uJ\u0002\u000fϧ�l�O1ܦ?'����Jœw?�{\f��@� \u0010k����\u0003\n����l6=h+횺�j�*|\u001d:���{��;�j_%`�#���}�x�Ez���}�|?�\u000fޫ�؊�����ޝ1Ua���AA׷RE2\u001c�H=\u0002�6'�^����@(�m�\u000045����s����(w\"�\u0006���#��q\u0003&4�v��H�\u0000>�eE\u0007}�_v\u0005M(\u0007_~�#��\n 2\u001b\u0004\u0014��A#o�a��\nS@{��#巏\\��L�\u001bJ�m����=�����l�J]+\n֣��\u0015���s�3\u0003o�Y1ٺ���>\u0019]�\u0003��s\u001f\u0002\u0006ƾ\u0007��+��OD%r-jj\u0001#n�\r�߱��P\u000e:\u0013�+���>�c�H@ȣz���ӥ<:�\u0001�^���\u0012H;�\u000e���u�\n�\"��\u0003����\u001e��d\n����Bpo�+\b�:S~�w�x7Wo����q���\u0000V�$\u001a���\u0000\u001f�L\u0005[ߩۡ�>#���h��K�\u0006��M\r����eCnt���\u0011Oo\u0011�*�['f�|7\u001bmJo��\u0000�q$�l\u001b*.ݷܞ�n��9dX��$\no�u�\u0015ރ�l��\u0007fq�iuޣ���7ZƵ}o�h�]�ƣ�jw���i�e�/u{{u3Qc���\u0016c��\u0000܌�.Hb�˔�1�>_�C�g\u0018�r\u0010��\u0013A�i�}�dG�\u00009=��q�\u000f�0�]y\u0017�O��k�n�԰����'�d\u0012�&��ƦC�5���&�Pv~�5KU�\u0015��[2\u0003鏖ީ\u0001���\u0007��\u0018�\r��5�]}�G�����\u0013jW\u0017�\u0016$�71\b�X?-:��_���!�g�$���\u0015�?\u000b\u0003@7��1�Wǯ>MW,�dM��Ωv��Vyt���O�R�g��#Oq9��G\u0018\u0004�WP~\r�C9���rlnj���!�Y[����oq\u0013Q����)���S�Q��P�.3I����]��\u000e`c\u0004H�7\u001a�S�*H\u001bn\u0007�\u0015>\u0007�\\7`�^@ҝ��o�jm\\�\f�L'ޚ[�e�Q^Ɵ���,ϭ��Ɍ0\t��2�,G%4���ᜦ�S,�;��:]?�.�Ox�\u001c\f{\u000e�����3;\u0018\u001e�nn�6<�*��)u�3:���\u001f�g���\u0013�ཋ�\u001aQV@,�O�>��1JW��4͞\u001c' �5HF\u0007�\u001d?�m�\u001f�-w���3+�1�\u001cڸ��G����\u0011�\f�#]��\u001bf�Y�&(�+fB1ɴ�\u0017�\u001em����)Ƅ����s���/�I\u0005�^�\u0012�\u0015l6�yL2\u0003�i�m+�Y��4�\u0012��3Cų�y��`H߭w'z����QW�ۨ#a�����r؁�E���Q�'ø��,\u001c��en\b?���\ne���|��1��\u001fn�h?6$y�o2/�'z\u0006\u001f~�9����i��6\u0016�ke&��\u001eb�\u001b�\u000e>\u0014�h��\u001a�sc���l\u0005%�n��N���2\u0007�a;�_����\u0010\r���^����'��_�Zo��\u001f�����G�\t�L2L\u001a�\u0000?���V�~���Ő�4�)�����\u001ei�3��8����G�^�����g\u001e`�~H~h-2�\u000e���^��?�\u0001�ۢ�\u00029q\u00073\u0016�����{�sO�\u0000�I��\u0019�vW�qi������Ϧt#͡\u0014���6�xWe+��'���\u0007�D�0\r^P��Z�\u001e\u001fFJ\u001c�\u001c�$�/ v�޻�a�\u0019e�G1�\u001bB\\��X\n����ñ\b<��Ů����x֤\u000e��8�ubn�K\u001a���ÿ��q�E��\u0002Ͽ`\b����\u0000ߚ7��\u0013�P\u001f��<>��\\�͊\f��\u000fo���`��\u000b$*:S����<ǒ�8(;n+�|{\u0002py�4-�\u0006\u0004\nT~���-J\u000e8\u0017s��zS�u\u0014���yl���\f�Z\u0012>�S�>�6��!�\u001e,X\nP�^�}�\u001aQ�>hFQBv����hr\u0006�\u0015�Pe�������r\u0007y �;.�\u001d���\u0019���6���$S~�\u0000�+CkbƭJ��������\t�Ӫ\u000e��Ǹ؀O����,\u0010�\u0012\u0005�I���G�OO\u001e���\u00031ro�n�y�O�~(\u0001q�b{�\u0000\f��r8�\u0007��\fI+Z\n}�4��l�mI��h��YISZ�#�OՐ��Y4\u0013�/�\u0010��\u0001�\u001d@��߶Ty�.���V\u0016\u0012� ��^���d�6�эT�����\u000b\b$��ԩ�\u001bu��)�5�PjM\u0010\r��?Ξ\u001b`Z�UPT��a𑹧�|��U~=OJ{Ҟ>Ԡ�\u0002�P\u0000kJ�JWDZ�0o[sV�h)Q�M\u0007���%v%�&��{���� \b\u0005\u0001JJ�\u0007z���l5��i��]jw���G��\r�J,�0�N�\u0000�\u001dG��.��!�`zmА{�8=�\u000e�y e>�S��� 9�����zu��\u0000:�ddw\r�\u00146J�&��6��ׯ�A!\u0001)&�u���\u001d0\u001d��[-iR\u0007J\u0012+R\u000fQ�J\f�[�K�\u0014�~��B\u000fc�xd|���W�\u001dF�`;V��\u0006��\t\u0013�b\u0006�j��S\n��\u0014�Cֻu=�\\��=)@H����t=��\u0002/�z�Yv��\u001aWb)����\u0014�s*�çN��!�ӿ|\n�A���M�(;u8\r�%�\u000e�\u0000}+���\"�>CqP\u0001�J�\u000fΘ\u0015�:u5�ʾ u�\"B�k\u001d��\\�\u0002w��\u0002������$��\fxj7� ��u=ȩ\u0014�R�=��*O\u0010����m����ڸ�P|�\u000bO�h\u0000\u0004�=\u0000�#��+�\u0000�ߛ�\u0017�\u0001�\u00009F��_�p�O�~���/�D2h���\u001a�+h�S���W��IcCs�D��'��\u0002;�m�8\u001e\u0019��ƒ���G$��\u001fL>'r;���Â\u0007S\"F�#�[�um�$wڤ�\u0003�@�\u0000Z�[��A\u0004�l�Τ$�W1\u0006q$�F�\t\u0014���\u000b\u0011�0���\u001e��ݵ�>��\u001dee\u0014�\f������ml���4h�%�.,�\u0013�d���Ŝ\u001d�F�T�I��]�\u001cq\u0001�\u001f��ϙRێ��=��\tn\r�Ǥ��#�7\u001c�\u0012��\n�Q���q*k\\���1\u001d����=�-H�\u0000\u001dk��o��\u0000#,��G���T���+\b�T�i�\r\u0014��\b��oE\r^B��\u0006]�S��k��/Y��C�¿�އ�y?H�ԥl4ج\u0000�՛�q�k�����*��C�\u0012ā�Pf�&\\���K��\u001cZ���d��7�\b*���Wӎ_J�\u001e�*�h��\u0012C������\u0006<���('ux\u0011�\u0006P�İ�H\u0016�&`k!WJ,M\u0019~C���Bji�����wo\f��z��:Ky\u0000��\u0017*�CIu\u0004i\u001b�;�_�Y\n�Ү\u0018��]���s��3��Oc򼰬��I�IԈ�\u0016a4ԥ�I\u000f\u0012�]�\bo��\u0004��)����\u0003��a��z.�c��+=��it޷�-沙d\u0011��A��۲��\\@Ѫ�Z\u000e�PF\b� \u001c\"�#�\u001f\u0017\u0011{W���\u0018�B�4�k�Vp�\\z̞�&C#$�KE�\u0015�Z�P\b(Ð�n���9g�!�q~>���V�lf�S�4P���S�2��I}KK�䬤�#)@\b����m6*>��㓥��\u00126\u000f��}�����4�Q6�i�Zu��~=X\u0012����b��H8K!{��,iƌ@%�PFn����#�#ow_����\t����\u0006�}_�{�|��3��:Mm����h�][��wW����oh\u0016Qr�S\u0003q�Gb\fL�\u001a)=B���\u001b�\u00063�\fb�\u0013W��ח���򽧒:k�)\u0019�I\u001d7志�0\u0005�\u0011���\u0000�*~^y�i�\u001eE��c�1�k�\u0006��{9��=A �5W��?D����M\u001a�\u0016���\u0013\r�\u0016��d�o���<8�ۋ��9\u001f=��RR�d$�D��o鑳��=����c�~Ek�Mּ��7�yJ���\u0000ʶS=����~���T��=k�2]]YEp�5���\\��3N�ʀ,d\u0010%)��$Lc\u000e`~�]w���qr�%\t�\u0007׌�?o��\u000e�e`�c���X�kZ\u0016�\u001e���=�*��_���iks,sI$����V�L�\u0014~���a�\t��D�#�r���U�����M\u0012}c�<���3���\r\u001b�^S��Ҥ����E�Ӛ��٭��<\u0013Eq\u0004����ՓE�t\u001b~7�2�#]1�P�c��Jr��G\u00006Ow�\u000f�\u0001ϑ��\u0006�,R\u0004�\\�U���˯7�s�\r����\u0000��\u0000�O.��E�����N���zU��.�=}!Qye}op�X\f�\u0012Dh��`F��~yq\u001d��\u001b\u001d��o9�\u0004��N9\u0002(�z�\u0011�\u0000ޛ{\u000e�NaDz�Y6�$j���:\u001e��:e�qA\u000b\u001a�\u0010\u0018(\u0004}�'��'\b���\"B�a`�x�_����\u001fid�6��\r\b����� \u0002T\u000e����s��3<�w����\u0001\u0015Ol��c�}\t��\u0000��:m\u0001��5O��\u000f/\n,{xW����鏦�7\u0007/{����\u0001��ߛN�8��\f�b��M�d����{�������nG{��\u0015�Mi����s�%3���\"#����`��\u001e\u0014\u001d�xW;\u001d$�\u0005��\u001e�4t��\u001d�\u000fo\u001e��\u0007kq����\u001f6���.�|,\u0000�}���\u001e�j�\u001c�A~S]9�{��\u0000��4\u001b��R��A������ƈ\u001c�/�\u0007�R���`;S��I�@���'V��+u�n:�z��2�d��.ms\u0014|�\u0014;�a��îeƈ�\u0015�M!\u001d:\u0011�ƽ{\u000f\r��W3�z&H>�O�7�9h�aVl�?2tp|;�ߦ��>��>�3\u0016�\u0007�Z\u000f������\u001e�\u0014\u00034�7#|���-��\u000f�D�c�~��ڣ.\u001c�O'�\u000f���\u001e�?�\r���~�f�\u0000����h/�\u001d7kH�\u0000�֝��s��\u0011mr�S\u0003\u001cԨ����\u000fO�L,[�!�\u0000u�J��?\fUw�!ۃ���ߧ~�\u00126S�X)�#���~8�̓}�̼�?Ю6߃\n}\u0007��ߘ�녲\"�\u000f���ؿ�\"�\u001f�M��^����\u0007�\u000f�\r�k��z|����\u0010S˶\u001f�:�\u000f����P�qi�����~߇o��:\u0011�\u001a\u0011+�|�J��~��O��\u0000>��;Xy��\u000f���\u001d��m�7\u0007*G\u0010~C�N����k@Eȅ��\u0014;\u0011Ҟ\u0004\u001cU���R�\u001fz�\u0014�\u0018N۠�c�RE=�c�\u0006�»�\u0000\u001e�\u0004<[���\u0000��������\u0007�������\u0011�S�)�v�\u0003\u0015I�%��T�t�߿��\tS����q֧���/-�$ܛ����o����L�?�\u0010;|��v�1�R�}ة�Ҕ\u001f�n������%\u0000҄�QҘ\u0017t�A�޿��l�\t�C�߶�޾�x�Ȑ\b�ФP��T׷c��\u0004�&9o�\u001bZ�x�2\u001b���\u0000��l�Uv9RF����*\u0015_.�8\u0005\u0015\u0014�❪\rO��T���n~\nh�Ԉ����;w�@F'����E�t\u0014'q����Ȩ47慐S������\u0001,j��K���q�\u001f\u001a�|�����\u001d��\u0013cO\u0012=���^9Y�NJ�It�:R��Q��\u0000n\u0006@�(\u0019\u0012�\u0014��j���\u0006��жIt�~~�~���+\u0007�`�K%^�~��\u001e\u0018�{ע\nE�^��A�\u0011�!\u0003(�C��\u0007C�\u0007F�*�q޽:\u001fc҃�\u0001�+�\u000e�@ȵ>�a�kN��J�ȃC�P�=�\u001b�\u001d��\u0006ET\r)�\u0006��=��\u0005Zծ�\u000fN��\u00056�R������A�\u001dFGu[�\u001dv�}�\u001e\u0006�)Z�j֠v���b���\u0006���NF[�\bM\u0015�PҽGO�{�)2�-ؐ~\r��׭v_�O���\u0011cuU���;����r��x��^T��D�$j�$��\u0011@,��**��&4\u0019T���\u001f��h�\u0000��9�o�?��\u000f>X�SQ�S�<�c�~\\Ũ�\tR��_�D��\u0000�Ӽq�Gc��\"\f��FJ\r���a)G&��Nl�Q������Ϙ�9�2�F3�\u0003�;�ߜ�~�za@�VwI�O\u001a�\\�b���$�K\u0012\t\u000bH\b�U�\u0012w=sg9z����\u001c�0'w��s�/�����!�����V�Ҝ���mi8��1�]-���\u0014���\rFS�\\7!�\u0007o��\u0019�;D�^O��\u0000�?%��g\u0015�ť�=��\n�!�\u001e;x#\u0002р*�� ��@b�\bڙ��$e��^�E\u0001\u000fH�}K����Ct��\u001e\u0018�r�j%[�#G�T��D��\u0018�ƀ�.&�\u000e�\u0013��\u0015'i�6�~ǜy�L�д�U�NU��\u0003\u0015��B���P��N(�cC�\b\"'\u0010���\u000en/��^�8$I\u0019������\"\u000f&\u000b\f�4��4��N$і�S(͏g#\u0006N\u0019\u0006E\u0005�*$Sz\u0012#1.\\\u0002���\u0000PѣV\u000eAHN�y\u001d�kH�]�$%[�c�O��\u0004�*T\u0018P�\u0010N+!-,5��\r\u000b��\u0005B��}�\u0007w.3\"�6�Ƹm��\b�\n�%�*=(n\n�>�\"OV�E*\b�}���NbK\r���\rEK��zi������k���pc&�\u0018�K\u0015���F���\u0006���We\u000e�kĜ�q��7;&YU�a�>��F��\u0012�\b\u001e��򥖟�H\u0019����\u0015ͳ����l\u0003+�~#�s7\u001e��k�\u0016z�\b��$�\u0007s�l���˷�z��ܖ�-�\u0019�:��Q�\u001c�}XJ�Gh�E�F*� /��a�O\u0011��\u0000q���v\u0016�3�\f��LK� t���|���v�\"%��vP��.��\u0007\u0017��%�\u000bi�\u0017V��W)��Z����(���Ȉ�\u0013\u0015�\u001b�.\u00038�\u001a�u\r��������G�\u000f\u0012�1\u001fN����/柛��W��i/�v��d��mV�9�b&��͗�㷙�z�@�v��\\\u0018�\u000e�GU��c�\u0012=vx�\u001d9{���W��|�H��\u00148OO3}wܑ�~�izp���`�<�#Xk7s��z,����s��{k��`�}`D�̆\u001eW\u0001�\"\u0019�\u000e\bX�Tre�B@G!;Dr������F=6h�,*Q;�U�\u001d+��o��~H][�^ZԤ���5�-_h��V\t{��K\rF\u001b��w6�k\u0005����z]��.\u001e�Z��8T�Jd�lc\f�j;���t�[�f�(��|��^}\u001f�\u001f��oέ5<��˽Z���\u000f3����t��\u001a��ɦ�I��_�Ao\u0015�ͫ�-UHg�.�M9�^�h �ڞ��\u0000Vt�~N\u000e]���}��?��6��\u0017\u0015�y�V\u0007?䟿�sݯ���e����\u0005W������yD���GW�\u0002�WW��\u000f�~Y����'K��GȴR=��mblXq$+��?6%`��߇S�n�?�>��[��ߘ�����\r~��v���\u000b�vﰊ�GJ|�|\u000f���R?\u000f\u001c��\u0006v\u0005s���H�\"O*�\u0001���H�\u0000(���f�9�w]���o���\u001f\"�������ק�L�v\u0007��=�2�yy?Mt5�\u0000q���\r\u000f���ClC��;�SoP+�7����da�\u0007�\u0019\u000e�\rF��\tJ�*O��\\Ȕ�<@�G��ꚥ�Ȓ\u0011ː4ڴ�զF3&\"K!E�ϭ�!�\u0013?��{��,w@>����t�o\u001f���z,�%�����hV[�\u001e�\u0010\u00014\u001bv��Byc\u0000.Uiޯ��|��5�\u0011�r,�5'�Bc���7��\u0017-*�\u000e��O\u000e�|�8�Ք�\t~N_�\u0017WB�.%��ퟠ[\u0004���Zb. ��T�V����T�ݘG�6�Mm\u0003|#�iS���\\��*�ST��3\u001b5%\u0007SA��\u0003נ͆-���6�z�����2�{WDr��\u0016_�m�@\t��\u001b����p߽��`�\u001e{��Ol�kfdK���X\u0015���oQ�Sڽ�[f�2ܹ�3\u000bQ�F�]�\u001bo�lb�߿��\u0010�\u0000�:��s�R\u001dv�\u001c��E��n�N\u0015�!\u0012F@=�S}�2�\b��@�'p�\u0001b�����\u0010�(;{�\\S2 9<0\u0003zc�G\u0018f\u0000.�.��z`\u0012��r^\u0018r@�\u0006��\u0001���q�:���ثcz��\u001a�\t�\u0019f�M{��㨔�PMW�\u001e?#��L�F��������\r|�\u0000b�P\r�0\u001f6�>[�\u000f�R���Õ\u0000\u0000���\u0000�.�^�\u001f�R\r��#m���\u000bF]�A��{\u0001�tΌn��t�ç��PM,��\u0007��>����\u000e���YZ��ˮ1�p���N��aZ\u0001؎�½N[�8��^�\u000e��\u0014�;�*�\\/POZT�Ӡě\u001ejƮ��4\u0007��\\of;��\u0002z����8(�} \u000b��L\"��W��\u0013�ы0:)\\�.����?z\b���X�y\u001a��\u001d�vŏM��:\u001f��5�����(�\r{�\u0000�\u0018\u0013i�3�\"���]�mҘ,3ZAf$���{�=�ڡ.\"!OA��\u001f�L\u0006�%cҨ���|���6�1Z�\u0002�����#]S�Q��\u0006\u001b\u0001Zo^�烘��^,�է\u001aP��}���A4w�5Н�&%\u0010�\"����������91ې[�-������Y\u001eQj$�ir�\u001b����ʈ oȪ%����xSƟFQ x���n\u0010�j˷���\u000e��y\\��C\"���\u001cv\u0014��\u0003ۣ��}Ғ\u0002��V����S!d���!��\u001e3�쟟m��5�n����)\u0012�\u001e�)׾�\u0007�kF�H�Z���S�z�#t�V�{�w\u0007c�^9\u0015C8�O��qZ�\u0010v\u001d1*�A��_\u001f�߫�\u0002���Ek_�?϶GޗS�½��{��rW\u0011N�Pg� N�i\u000b�ֻ��]�}4��oq�\u0007S�O����m����Pk�&���A�ڟHڣ\u0010�rW��#۽jz\u0011��I\u0003d�ξk��^C�Ǟn@k'�G�\u001e`u\"B$m7M���\u001e0Ry\r��\u0004�e_�؎�\u0007[#\r>I��\r|N��-���@\u000f'����Y��\u0017���B�m���\u001a�ƹ{\u001d��Z��[���Ӵ�^O��J��#I\u001cʉB�v;�61�\f1\n�@G�(�9�6h�_���\u0013Mk}?�\u0016�\u0000[�H�.mnnb�O��F��\nh�\f�\u0017�U�s,�\u001bqt\u001d듑�Ug��i��\u0019_2�\u0017�w�gU?�:\u0014Z�\"hVsO��-���2�FH\u0004ole�ՃIr�x�*���\u0015RL2c�ԏ��]�f�3�x�_LM�X�\u001f.��<�7��%���\u0013[5ͫO�\u001c-�\u0000�\u001ah�*)��\u0015�aZ\r\f���6z�:�Q��\u0000�隕����SB.#�����|��-�\u000bT��X��\u000e�x�ȼ���\u0005�I\u0018%�$\u000e\u0011��\rQ0�\u001d�P�_4[\rF[�1rm!�;}R;���E\u0014EQ�\u0010M\u001c���E�\u0016)5�`\n\u0002��<\u00120�@�\\��1�O;�����~y����1mo*@����Ȗ�^�,��,�� ���\u000f�#]腁�\u00190�\u0017+\u0016�\u0013͆Yj�[\\�\\��,�F��\r,�_�\u0007����$�~\u0012B�\u0003�5�V\\}\u001d�\f��'H�I��`2@�4FYϬ�;\u001f��L��Bn^0���\u0016��'5������\u0016_)�$�RE�iR;v���C\u0019���+yex�\u0005�k�B\u001a�\u001d�DI\u000eL$y�c�\u000f<��\u0016�X��\u0007�\"���\u000eR��M\u0014ޭ��\u0006�Z}X��\u001bz��\u0002�\u0004\b�3\u001d\u000b��χs��O$ƑN-�'�K�\u000fїE��h.�\u0017o\"���3�6\ro,1�0\f��N ���\u001c\u0004eFC�lz��p������C���_��\u001e�oo���ڋǒ��gCk-��-Z{g2�|ֱ��gn)\u001cw\nΊ��J[3�\n��/sU�GS�Ww7\u000f.c\b�f\u0003�\u0001�m +��b�;l�C�OӤ�tǺ����]����;\u0016�+K;}9�b�OF;�J\u000b����x�x��j���=�����bdxA\u001c��\u0000\b5�ϟ���K,�Ftc�\u0019��.���\u001bT����~�~S��n�k�����Y�a�x\u0011���c<��o\u0019^pKq\u001d�K*�_�i�bA�G�7F�O_/�7�5�g��MDKz\u0017�W�]�V�[J� T,�\u001c��\u0005���M\b\f-�/ˈ�OQx:Qx3�[\u001cȱ�E�xr���|;�\u001d��_E<3GwI}8Lj�\u0015i9(�o\u0018܈�\u0014Щ5�r\u0006U\u0012\r\u0012YQ��7�g��\u001f����iz���XyG��M7G��+�R\u001d{�\u0016w:N�>���F=O�?��}L\\I\u0015�\u0013�j������\u0012\u0012�<\u0012�>�:�?��\u000b��u1Ɍ�\u0004x�@���A{\u001eo���r\u000bˑh\u001el�����i�H\"�.��1�6�t��ߡ4Xb��C\u0015����0��\fb&.\n�\u0004�e\u0012\u0006:ၽ�پ��og���B\u0000�b ��������\u0017�\u00008���u�{���meuYa�\u0000\ty���d׶�M�-�%�ޔ`�m9Z�5x����$��€1\f�\u0007W�\u00191�\u001b�v��\u000b�o{�\u001d\f���Q?O\u000f����եd>��J�E$\u0010�\u001c�U�e�$~`�+F��\u0012\u0007J��WG!��\u001b�aO\u0011R)�\u0013��\u001fm!⻟\u000f���X1ȠrOm�H'���\u001f\u001d��3w�Go��u3�\u0017�G_\u000f���?���zA��yev��t����η@h8�\u0015ϛ޴!�o��\u0006��ij�p2���>\u0001��\u001f�l�<\u000e)�ļ�+n��l�c���v:>o\u0003Q��~u���Fy9�\u0000�=����^\u000f��,\u0000�׮���������G��)����/כX}!�<�k楬\u0012���_�i�LV9{��\u001e��1�������\u0007�ʧ<����Q��=\u0016\r�o��>f�\u0017��Jn�c�����]�\u0006�����TT����Q���}�{��Q��n*\u0000\u001e���\u0000���{zₕ�M�n\u0006m}���Dw�Y�{ߥ�*\u0001`�@�3�!�ˆw6��O���N�Gc�\u0018F�̰;$��\u0018��=\u0016�bv\u0007�|3�s�8\r�\u001d����&�u��)Q���.\u000b,rm$���\u0000�����O��.�=C_އm;˄�ȿ-��ڝN\u0011\u001d?�U���L��kV\u0012\u0001 cƍJ�;��u\u0010�\u0018\u000e!՜\t�ɼ�\u001c)s\u0010��>4\u00155$v�C\u001f\u000f\u001cD*�h��\u001b�\t��?�RW�C�2Y�^�>Qxߔ:�5���o�L+�����9��2$�v\\Lr\u0002�@\u000bjT�\u001a\u001d�O�f7\u0000\u0000l�$M���*iBGJ�W���\u0013F�@�e�)�/M��E~��͞*\u0001��Ә�\u0003��}=�+\u001a\b�ͩ�Z����r9v��(\u0001��Mx�d=\t�؞��\u0019�귙'�����Ĭw��������x\u0015/'4~�ih\u0005c���F��fO(��z���\u0000�~4�!��_�����e��\u0017�\u000f�j�H\u0001�����s��q��\u001f�a��z�֗�Y\\$\u0017\u0011#\u0018\u0018\n�A��\u001cq�\u0004\u0013�7d\u0007�`����\u0014k�\u0007���Ze�\u0011�n=d�l�oTm��?�\u0016w�}������A_y6�x\u001c5�T�P����(Ʒ;$G!5O��\u00000��wei;��q�\u0012@\u0005j\u0007Z\u001d��j�P��\u0010.F8�\u0010H�����nG����)w\u0015k�\u001b�\u00038���c��9p��~��D�4\u001b*�\u0000���*���l�{+|q�qr�}1\u0018�O����G��\b���OՊ��U\u000e����ı�����HC0�w����q\u001c�<���T�u\u0007����\\s`����w�܏��p�l�{��N��_~���ǒ�\u0013�̒Gn��>�\u0011]z�DeO��u��:\u001c'��[�Ө\u0000u\u001e���#�JUs=z\u001e�\u0000?��8y����$�\u001eLMv����%\u0015A@�?����\u0002HPu���{{t��\u001e�C���x�����}�FB�j��~��ِ�_p\u0003%z���������~X�9\u0003��\u0000?|\bC\u0018�h>U?G~�:��8�P��߸�w뷍r�\b��\u0013\u0013[#��\\\u0016����>9\u0013Ȃ�H�>]�{P\u0005\u0001�ץF�xdkf����\u0004��O��!.UՀR�\u001b~���*?k.\\�@�\u0003�Ԧ��z{\u001c� ���\u001d�L �\u000e��ԓ�\u0000�>G(�ۀ\u001dQ�\u0018H\u0014 .���\b\u0007b�\u0011MNy\u0002��0�U�\u000f��S���ʒY\u0002�+��4�?<�\u001c;t_'���1\u000fUۨ؞��J�s[uɫ�<\n�R�\u0014�AQ_�\"\u0013�R��;q\u001dOJ��\u0011�B�Z\n��B{��c�ކ�Ԛ��{mZ}��\u0002|���A\u0014�4\u001bП�B��\u000b(~\u001d��7��\u001d�ږ���z��\u001e���ZT\t=�G�oƙ\u0019l�A����F���\u001eJ7A9\"�@߰��)�(�\u0011ߚ\t�\f�\u0000m�����<\b\u0019\u001be\u001f4\u001c��Z�;w;���\u000e�=k�/�zu4܃�v����}Y\u0013�u�O\u001a\u000f\u0011^��\u0001�\u0018���\u0004�T����s��\u0019\u0002$,���Ȥ�Zx�M���x\u001c��܂��\u0013^��H�\u0007c���dj�.�W�(\u0001#ؑO�=��R�G_����@�\\���T\u0014�۷S����*\u0012�J\r���|\u0007�'�w�P�Z��+Zx��\u0007\u0012�/Z�W�w�o\u001a�j��$��2\u0000�Sڛ����dI�p\u0014�jh\u000e�>�N\u0003���]O���{\u000f\f��2\u0017��P���G��A�F����E\u0007�<;S�\r�J��ó\u000e����x�\u001b#�^=�\u001ao�_m�Y\u000e-�[���rcY�<��\u00008�����V\u001a&�m�U����\u0002\u0003H�\u0017�T�zu��,\u0018\\]^j\u0013G\u0014q�ɛ�15NjM(�2��\u0000s$�P��͸#)f\u0015�+���\u001b!#�S�,�<���x�\u0018�d��<\u0015�\u0019',�*;��*Y�\u0012\u0014P\f�N�r�\\�G�e���_��=~m;H�R��:5�\u0015�=��pM\u0015��?Z�InPLm,�n�x&!՞GR��A\u001d���n�\u00102�\u0011�{��c�\u0000�\u001f?&&��:~�6��jP��V��p.��Z^Mios�Y�f\u0019'�y�.�b�5ߤӆZ\u0000k2�\u001c6|*����r��C\u001cq�`˯����|��顃���㲉���Eqv\u001a\u0010��[O9\u0004�X�rrƤ\u0013S���g�\u001c��]\u0012\u000f�}�N�QC��m��yo��om�\u0012(�\u001bؒ\u001eq4�X�6�F��ٸz�\"\rLjz�\u001cK*PW,r�h\u0003t:���V\u0001�\u0001�}��:ꗏ��Y&�\u000bKY]�\u0004[\u0017I�Y���0��bJ��\t6Â��]~C� ���ˋ��|�\u0003��$��X�^v�1�:]O(\u0013\u000fޘ$h,�if3\u0018���DE�$������Nf)�n~\u000f\b��X�,���Q\u001cr\\�|#�.�\"@�ˈ�\u0014�Ff�f\u0015 k�pod[����\u001b]=\u001bC�[� \u0012^r�:�5c�Zx���?\u0010W�H@���\r\u0018�9��!|�w�'�\u0001\u0019\u001d�ŤꓬL�\u0000��U={�B\u0018�\u0003!Y�X\u001d\nr�$�V�mJf$�\u001d�;L[�7ѿ�\fg[�\tk�$��\t���{���a\u0003�4FծII\r\u0010�\u000bʥI0�og0\\}�|��^I\u0010���?��l\u0013M���eW���\u0019�����W2}n�ԉ�\u0002�1\u000eUP��-4@���\u0017]��ӛF�)���@�@��������\u001f^���\u001dA��o�%���}����\u000e�k�^]A;��>q$\u0018�\u000e�J&C}����\u000e�����l���M�ք��>�\u0004*�3�����\u0011\u001b6�H��Q_L�٣,`D��9c\u0005�c�vt�c\u0018d��\u001c��6�y|7y���p�L'���\u0003f'�$oB�C��\u0006����k慏H�U�\u001b#��\u0018���\u0018\u001a�\u001b��\u0016�Nh�]\"Ԍ\u00113��?f0����걋\u0002 z�����|�P\u0004��¼\u001a�{�_\u001d��w���I�2܉���)��oU&�C\tuIY�I�+�{i�MvuP\u0018�\u0000�jq&��g~_��!1�8M\n��w_���\u0000M[�)�\t��ݽ{9X<�����\\'\u0012�4� ��iz0��-���Ic9hf��\u0014����}U����o0V��7��\u001d��Y/��+3\u001cHe���\b\u001dN��\u0011���Ǿ�����\u0010�G\u001d�8Eo[��\u0000���7�ycSm[�\u001a��ɪ$z%� ^D<�%�̺��͸��{�t��\u0010��A$��K'.aU\u0018gB2�xI����s��_\u0017C�\u0010�8��ߟ�����\u0000�=�\u0017^c�����/L�y�~]yn[��&��nn~����7��!m��,�R�ny]N1�Q�����8>��\u001f緆lA<.\u001c��'�q���\u0000T�\u0000\u001a懶\u000f�Ϲ�h�?\u0017���\u0000r�x֝��\u0013]����|ޝ`*��\u001d�\u0000�w\u001a.N�72:��P\u001fa���W6��6y8�:�B�\u0019\u000f�\u0003�槴~�<�~-�\u0017�c��H�c�׭;�M��5#��C�?�/�5\b�;�����_c\\�}��*��]�\\F!��\u0011�\\���:\r�\u0019��W\u0011�uX�\u0007�\u001f���r\u0006�o��\u001fNn}�\u0004���y���~��\u0011\u0011a\u001f�\u001fl�Ht�\u001e~i�\tZ��#�~�˱\u001fP,Ic�ճ�t�4\u0007ޠ��.�\u000b\u0014B\u0004�qv�\u001b�[�\u000b\u0012��Vb6=��L�11�QA$��K\u000b�\u001f��N�\u001e���~��\u0014R\u0015����\u0012\u000f�'��\u001e��&�,����䐴���ڵ*�����\tN4bv6��=;�Z,���2q�\u000f�c�R�A�y��$\\����dڟ����\u0007�V���A~T�C[ۺ�\u0000�L�m�Y��٠��o��\u0004rS��a҇���2����lv\u0016�Hb~����\u001c¥�3՘��[\u000fM~*P\u0001Os�o�31ˇ�6�\u0013V�W\u001dj>�|Ȍ��E����#\u0013�����Br�e\u001d^q�\u0010��v��\u0015�۰�-I�\u0013����\u0001�Ŭ\u0000\u0012�w<�n>��1\"l��r�{7�SX����_a�\u0006�vS��?�\t�F?�^��\u0000=�wٟm��\u0001�+勱bc��Ic�\u000bx\u0015�ZtΎq$\t��n�J�u\u000fb��-=\"Z�\u0000\n�r�V�ޝr�q���NG�\u0012\u0017\u001dR�q��o�&�\u0004tɉ��8����_���i��z�\t\u0007�\b�\u0010>�lNK�R�{FA���\u001f��z�l&xk�\t�<�'��q`�w\u001ce�Z�\u001a#\u0002I ��05\u0003\u001d\\\r��\u0019�9\u0017�/�5�o;Z1ZV�\r<\u0017�Ü_l��=�����s���9i�Y\u000f��?��Ώ�Ec����K�4\u001f��s�qՀ�}>\u001f��T��?�Չ4�rbw���Z���\u00061#�'\u000b!?\u0014��+�ؚ��~�kL��旔\"�=z����#k`��u'�}���\fy\u0015���\u0015�|;x�\u0000�LU\u0001u\t �\u0000��\u0004������Z3A�5���ƻ���-��n����6��\u0010=��F,��$\u0004vﷁ�\u0018���\n=P�\u0011���\u0000\u001f�\u0002B�A��ۧ��\u0015���*�;���\u0000���<�Z�ȑZ\u0001�����l��m�W��}��\u001c\u001dY\u00041�#Wn�?���Z���8�ڵ��\u001d\u000eG�����MkҝF�ۿӐ��pi�4-��Q֠W�\u001f�}�\u0013B�\u0019�V7H\u0002}\u0007���eRb\u0014%\u0014?};�{v�\r��[i\t��U09$'�|�iЎ��\u0007Ɵ,Ɛ���\u0015�#n\u0010\u0015o\u0003ч��l\"�%�\u0002)Rj\u0001 S��䜪[rf6\t=۬U\u001bT�)���p\u0018��_���7\u001a��\u0004����*\u000ej���;�-y\u001e\u0004�~[u��A�d�?$#{�\u0000�܏�j�m��!W��7�5鸥>�Uœ�l7����9\"\ry�8�OΛ�'n�\u001b� -,���ר\u001bl\u0001A��G@P�i]��\u0007}���%ϓ#�S ���\u0012;��\u00126ǚ\u0011�\u0004}��Z�j��\u0006�}&��6o\u0011Zw�Żt�\u0013�Pa@£���Ơ�:����'޾;�t\u001b������5�_&�V���c_\u000eԦ\u0000\u0013V|�.)˷J�w>��\"��� %\u001d��O�O�ӕȞC�{g�D�J\u0013�)_aߗc�.��?��h��4[i��\u001bI�}7H��[���5�;}Z\u001bk�h�\u00122��7\f�$\u00171�fpNo�`p�DL$\u00007����� At��(�1\u00162ѣ�c����1ԑA�L�Rյ=>�c���^�4Z|���8/�l�_F�.#�Zk\u0012D�K�24h\u001eFv\u000e�V��\u000e\u0010���?O#�\u0002A>T\u0001\u0003q���\\�)��Dj�ٺ�\u000f\"l�����\u000f��\u0000,�wZA�H�բ�t��İ�8��S�\u001b��G�Gqigg\t�\tr��ү������Fdc5��wF>�f�x�\u001f;t\u001d�g�\u001cc��J��}s��D��\u00126\u0005�)�p���o���t�i�M��pF�v���\u0000W�Y�/^�X�\u0013\u00141��IJ�A\u0003�żw�#���lMm<6�\u001cn��\\���������ߛ��'uuuK��G�T���kp��\u0018��,��7�c:+4n��\u0007�bT�Y��'�D�UW˟��<�>���8��fv'�\u0011����?����'~c�:\u000e���a�wq\u000f��I̞Eь����\u0000�w���ա�����-��r�O(�\u001a\u0019\u0015x�V9V#\u0018��ΤI�\u0011����7���\u0005�a��sQ\u0013�\u0002\"�����GrK�]O[�Y�~�\r����A��B��~��\u001a�����W2Y�o�%�Q(Y%X��\u0000V�Yw�ic\b��\u001b�F��{��y�D�d��\u0007��w�tn�\u0000�/\r��O���:��E�-|���E�\u0006���F�y\u0019�\u0000(Á�Í;g-�7���I󷝝�\u001b���2�S��ݿ��CK!��41�\u0010;}\u0014'�-���!�5e��n:��v��9��5����6u�n��\u001f?��3���'xm��Z\u001bG�\u0003�N�λ@l\u0007\u0016c���t@8��\u0000��:m.�w8\u0019GG����5��|�\u0001�\u0017\u0010�b~g�����������Ǩ{�\u0004���m���Ǧy\u001c���\u001f\u0007���|\u001e����ʿ<�H�t9����\u001e$����6�>��IS�|̵�A�I��sS�\u001b���ݏ��/�e5���F�x|��K��5 y�\u000e�~��-�\u000f]��_M\u000fo\u0013�t������\u001a&��u�U��aȁO��3��s ��m]Ϩ�\u001f`�\u0000I}�L��\r�{W7\u001e΁�K�ӛˠ~�iP�\u0000�'jq�_\u0019���@$\u0005�˃K\u0015E@������e&b�\f����\u0013\u0014*\u001b}�C��]�ċ���7]U�P�\u000fQ�;\u001e�\u000e�Iؔ�#��_����\\w�ֵ�\u001f<\u00112�v�\u0014�T5�M��6���.#jF�\u001e{�\u0000\f�N�ߧo|��\u001c$�3\u0011\u0007qɋX����\u0000Wj{f\u0014\u0000\u0006��9l�lc}��n���̣�H���\u0017�\u0019��w�?�\f�vg2\u0018�oЭ'{8���W�x}\u0019��鶩sL}(�~\u0000{�{���G�~\n�\u0018��k�n��\u000be\u0013\u001c\u0011�\u0000\"o���\u000eJ��\n�&�(�����;x�ps��\u0019�����o\u001fզ\"5\u0014S�{�޽s\u001f?���|A����k_:Z�:^'��<����k��v+1��\u001e��Jh����O��t}����h�v}\u0016��\u001e?w�\u0016�?�\\\u0002;�;�|(��R�\u0002������rb7��n��\u001d�N\u00007p�sJg\u0015_\u001d����.\u001b��M�ic��\"�I�m��2U��X�wN£ߠ�]�\r0V��^�\u0004���4\u0003��??ՁQL��ޛx\u001a��a\fv�\"9t�|:~���D��\u001b\u0001_��{�A���5x\n����7�\u001a{c͜M�a鬊8�O\u001f����ŗ?r�Z\n�>}1_5&�\u0015&�6#Ÿ�`�h(4\u0000֛���^8���\u000f\u0002O_�킺�oj�=T�\u0000\u0007���\"{҅�(���\u001fy���t_dv�6=���|��ْ����w��\u001eƔ��ʶ\n\u000fR�_���R*(;m�p\u0018���.폄5�:�x��\u0019T���w=�~�n�z{�\t\u0000��bUz\u001eT\u0015�i�;ҙ\\���\b\u001e}U�h��u=)M�}�\u001aB�#Ώ4�E\u001c\u0000\u001f֛xxP�Gf���'�8=A��>\u001ax\u0001�#vcm�1�F�vbw�_}�щ�A�����I\u0012l\u0005=ȧQO���f��l�D�C��\u000f���p�(�\u001b�\u0006����@8������ZWƾ��,\u001c@m�\u001dZ�Ơ�[\u001a\u001f\u0011L7ct��Ӹ�]��\u000f��H�i�Sj\u0011^�w镔ʶB:Ձ�sӧ̎��\u0000\f �LojX�ZP�;҂���#�A�|��w�Z֞4��|Rw;��Z\u0003J\r��;bO�\u0003����\u0003Ob{t�;\u000f�r\u0012�@� $_��=����L�\u001d��d\f�ƀ\u001f\u000f\u000e��Ğ�Y\u001e�\f����m�|�$�\u0001Ke�>;\u0013����(\u0006q�w@H��������+���[��%���jH\u001e\u0007��\f� \u000fW$��\u0003�)S�����+*��H�\u0000��u�s�0y\u0005K�\u001d{mP;x��\u000fM��o�4��m�M~�v8\u0015E�:TmM�}�i�&�T\u000fZ\u0003�T\u0001@v�\u000fj\f\u0004���O\u0011Q�\u001d\u000f�`V�5\"���\u0014��W\u0007-�\u0005�?�N��\u0010z�I�\u001d�:���_�)�$�y1�\u0016�\u001d�l\rMH=�v8*�w!r��\u001d�����W#|�Jϒcn�\"�ocA_�l}��|\u0017�\u0000?S�1\u001f�����\u001au�����W��k/�d��(-`\u0012+����0\u0003�\u0005\u0002�R\r3\u00131��{>�\u0018\u000f;�_\u000e��9\u0011�ﭾo�W˫`ڍ��\\K�T�?�s\u001d��\u001a���FD��o\u0012��U`K9S��y\u001a\u0007���\u0004�nO���p����։\u0017�nu�}CNk3\u0015���[����F��D%T������\u0012�H�*�\u001a\u001a�H�̎���{�W��Ʊ�\u0011\u001fI�9|_��\r�8\u000f\u0004���\\�\u0005�IX�f��\\�ꪹ�c$3�p\u0014c��fn\u001a�O>_��s�F^IO�3Ms���ZZ�z�\u001fS�,�(>��\u000bY.&E/\u001c�\u0017�*�\u0019]�3J�:���\u001d�l\\R�\u0011\u0000~��7���iڜ��^�Z\\\t�\u0016�9�\\�mw\bu�����]\u001b)&��v DhA$\u000eY�e�e\u0004�m�4�\r8�\fȡ��\u0017��~jir[=�����=��i�[8g{�Z�*ZD��M:v_M�C ���\u0005\n\u0000p��rp\u001d�ǣ�â�2D���o\u0010�\u0007�,�D�Rٗ��7�a���ȆR]c�ۺĥ>\n�Ո\u0015#4�2�GnoE�1��7���7�ڻ[([�w�O\u0014�u\u001a��H%�s��b\u0001k����w\u0018��,��S�u0�v���};�vr��\u0011}f7�$��(�r.��&vI��\u001e$1P�N�B��o��\u0012�vw\u001a<��ly�+j\u000bkye&�$��\u0015�-=��\fL�\u0006:4�'۵��ۉG\u001cCt4+Lyf<���\u0017�+�V�wډ��nWM�ۜ�_ҍ}\u0016$�\u0018z�'� \f\u0014+��Uj6�bLɧ,z!O�4O1M�.\u001d:�X6����4jR�R����h�6\u0010��Og\n�D\u0019\u0019��+���3qh���<��\u0001������O�S1���=H#��?gG��K��Ҥ\u000bkd�v�s]E��\u0002]�\\ZϥL�\u000f��5%Y�Ƌ�96�\u0016R����J�6�֛Y,`J��\u0013tN۝�\u001d�Ȏ[�\\�s�Ƨ�k\u0017?��\u001dJ�K��n�s�)!v�}wF��1,V��\u0000t�ՠ�2\u001a�\u0011�\f|����>��ݹe�&\u0018�1\u0004C~�yX�����&3j2�=��\\խ5�\bu�Hl�5�Re���Ix%����JE�2���3Tǹ��48!�\u0014q��\u0000~\u000f�x�Fy��)�Q���?�/�Y�[���^�.�<~D�Ź�\u0016�\u0000S��v�E�\u0011�m�\"��G�T-)A�����\u00133�����2\u0010$C/�N�:���R�\f���-2a�FG��}�n�(ʣL�ڜ;��\u001e��}��_��c��{�� �w��\u001c�Ơ�\u0000��h�\u001b��\"�@�ev������η��Ӊ�P{����t�\"���s�Ҹ\u0019yuz\u0004\u0003�b�����l�3�؟�\u0007�;m�'���\u000e�������n\u001e\u0000\b�-���~��R���{��0����\r?���:\u000f՝ބ�\u0017E��$�O�{�xrq%���f?���\u001fs�3U�\u0012�g�\"߈n���\u001c�R\u0001��jw?�sȻfU�\u001d��:]�o���\u0019��\u0000��w�ݶt�Κ#�Xy��\u0007���/#��N���?\f�3�\u0011t�����q�\u000f߹���w��z�����e�a�{\u0014;��WJ��\u0002?���㞋\u0011��\u0003�y�V�n6\u0019n ,0��+\\��j|���:fhkI��GA����UA4\u001dv߯��c��\u0018\u0007a�Q���*�\u0007�����\u000f�QQA�j�=zv��Cz�x'�ݽt�Ϳ�Rv�;~9���7��rc?��'�H��+�\u0000k���`\u0003}\u001d)��Y�����X��(P�(?�o�}�2M��\u0000�*#n\u0005({\n�\u0018�\"U�\u0006\u0017��E\u0001Pv\u0004mӨ>����z��\u0000K��d\u0013/\u0017n��<<<*0\u0001�Im���\u0000-\b�hi�%�K�d\u0016\u0003��K������}I\u0017���xߛ\u0015�r%=wo�}��P�g��\u00053�\u0006�=���=v����]i4l�����Fz\u000ek�7�\u0015�n;0�߽H���/H\u001f���;��޹��>��e�8Q�ۦM��)=�?��+�QЧM�}�\u0000��|Ѿ�Tl)�}��\u00031C��|�\rm��\u0000T��\u0000k1�\u0015�o�`����ij���ۏ�}�)��}��\u0003�w,�,ӝ�zhs��\u0007��q��A�D����\u0019�vV��\u001c|�_\u0017Ш:m�)�q�\u000f6�P:�l}��\n��O��1D�1-B���oQ�>�p\r���\u0002wI��\u0004R��Q�Ah?r\u0006e��ڄ��\u0007��ϫ\u0016?rx�\b�ߩø�\u0014}�(��c]���Ȫ,\u0010\u0014\u0013���߹�\u000e�Io�A�N��lX\u0012R6\u001dw�6�F���X�\r���\u0000?������E#��W�\u0011��[-\u001a�����\u0000/�֘�Ba���\u0005A\u0005%�j{m���\u0000C]\u000f��\u000f��8���%\u0018�w���+�<�\"M:�\u0006��\u0000H4ȥ��T�PWo��bR���\r��\u0000��\t\u000b�#���j\u0005OZ�����ӦD�_��*{����\f\u0007��l��۹\u001c�x-���������\"I��f�F���\u0000B--��jӥG��\u0007��Q#����ꅚ\u0005Vb\u0006�G���eR�i�\u001dJ�J�\b�;{�{W+\"�(���B]�\bh;\u0012|~U\u001e\u0007\"�r`����'�.���\u0007=��n^����S\u00184\u0015�a�b:�V�֙��׹�E\r��R����}�\u000fڃt��\u001e����o\u000f}�J\u0011\u0003ǽ+QM�����\"GU��X���ש߭<\u0007�@���\u00047�7}���B�#�\\j}�ڽ}�w�\n\\jw\u001d\u0001����$P\t+\nu5���ֿ<\u001fr\u00070�+J��\u001a�\u0000g�p2�\u0004+(\u0003j{�=}�=X��C:\u001f\u0000O�s��Y\u0003��H�\u0005E\u000f�z��ִȝ��d\b����\u0003�|:��dJ%� �\u0007sJW�\u001b�\fI�Ր\u0014)/�z\u001a��\u001e�/z�ȓ� \u0000A8�\u0006��\u0004��O�ʤ7���d˹޾>\u0007��8�8HJW0> u�m޻P\f��.���v\u0006��^�\u001f%@J�Clkۯ̟�*���PmU�������*�n�j������'�w\u0000����~�\u0015S5ߵz\u0003S��eik���=)J�\u001f��m!On�����\u001b���{�y��\u000f���:�����]ӥ;P���H���\"��\u001e��{ҹ\r�5i���5=����\u0019w�'�{�_��'������o�4��\u0006�e���}8�\u0017\ri`/<�(���s�C\u001c�\u0014��~\u000eG�\f������v\u0010�\u0012}����\u001a}��]���G@I��,�/SK��em����b�֟��s7��]�\u0000,��\\�\u0011�>(�\u0014%Z��$�V�\u001d�\",J'���_�g�㞵���S����@��k��\u0004P���\b~�moo\u001d�7\b�*�+!\u0005���j@\u001bf\u001ePbM��~�|rx�\u001b\u0001Q�\u000f�|�p��� IE���=XӃ�r-h���J��\ty�M��*��X��Ő��>ݜ\u001c���ry���_�~��\n�O��qɮ�LU�)j��?\n}wU�\u0011'Yu�\"�֪B�ܽR��qg�\u001c���z���{�9xp�\u00027@\u001a;����C�?T󮩫j�V�\u0017�.dy\u0016��oZ\t�b��x#�����$��p\u0017�䐮�XqG�V��9x�ڼ���ϧ��MS[��̲��2G\u0004PN�����h\u000b�\u0005�1\u0012zq�+7 As^U\u0000f�&{�\u0014)�\u0018�������!ܓ\\y��\u000f%��K;\u0004\"\u0006��H�\u0018F\"x�F�~\u001ap5\u0014 �\u0013D�\u0011DF4�%���&W����Ŋ�K�Ld�#�4-\u001e�Ʋ�%_�\u0000�Ƥ\u001f|���H\u001e�e�ɞ\u0007�l=�@�\"/��[f�k�2�꼄�\u0007x\u00168��O:0~�~��͊S��^�G����\u0000\u0013�,<�\u000f�oh�\u001d����\u0015����9�Y�3�R�,�F\u0004�JPTS0��<��\u001e�\u001fI\u000fI�\u001f��y�����\u0011�h.l�Ff{\u000b��$����7k\u000b4��$A�\nP�\f2��r�\u000et�\u0011�3\\��=~g.�m����-�:zG%��DVx\u001aX���:|Bd���$H䢡W �n��\u0018/�ːu\u0012�\u001c2&;Y�m��\u0013c�\u00009\u0003}�n�ұ��]:\tY.��$\u0012̶Ȭ�\u001bEq\u001b���Q�M�\u0019GJs�É�}�\u000f����T�܎�����\u0000����f�-��\\ܥ֐�Ej��,V\u000b�����)��\u00014���2\\�*\u0016\f��ُG���J\u0004J<<�ʫ��'n�V�\u001f\u000e�\u0015�J�q����'����o�63i\u0011�Q�\u0015���U��~V�;\\��'�ͅ�vD�$�9�\f\u0012��\u0000�\u0010\u001d:\r/h�p��FTH�w\u000f.@����h�?[\u0013!2sY;o���}�j��\\���O���\u0007�G��5�ԥ�I5�j�;'����N�\u0000M����D���[�\f�'҈H�VQ^�A�>,@�\\r7�\u001f?wNo\u0019�=�,r\u0007OR\u00065B���<��\u0007���4/3���i�C>�p��4g�v:���A,N�\u0013�\u0014\u000b\u001f�H`�dМ��0�\u001a��|��GE\u001e<7#[}�����ǚ��mc�][�\f�\u00109Kh�\u001bI�\u0016+YZ$�w�&A�?���\u0015�J�`\u0000��0㘢A�#��]�\u0000���-\u001e�xM\u000e��\u0000\u0016\u0007����\u00009���kN���̺.�gy�i�L�q��<�A���\u001b�A\u001e��,G��'\u0004@KrZ\u0003�J#\u0016h���*\u0004��\u0007���_�i�\u0014r�p�k�#ݿ�3���i���5����5;;��'3X�\u000b�e�V�I�۲\\}ynm�*�n�m�jeX�\u0015�tF2�'\u0011Dǿ����Z�(e�$M\u0002y��tv�U��_&y.kҭys�\u001f.�;��\u0011��\u0016��VT�J$L\u0014��I\u001d3��\fr�\u001f��\u0000K��\u0012&���MZ������\u0019�r�h�_\u000fk���,q'0zWsN��=�O\u001c�`~+�g�;.A�\u001a����S��jȁ�\u001e�D9S>�죔]{��Nit��[� �o���C,dx\u000f�A�v\u001d�y8Y\u0006�Ox�\u0007Ÿ!�V��\u0003��6,�\u001a�`\u001f��sf9[�[�?3�\u0000���?��c9��?�>�c��;���4���w=��O\u001c����s۽�@����\u001ay��t�\u0011׶wz\u00128G���\u0000�L�?\u000f�{}����8G�μ�߹��V�\u0005i��Ґ8�<�~\u0011��\u001f�y*�t��x�ld�\u0000\b�\u0015=\u001e�?�|�q�L����)�o��x�7��k\u0004���?�zw��\u000e�\u0000v��g>�]&1�}g�\u00008�\u0017�X���7�\u0007C��f��W��4��:~�iq�e\u001e��O���E���.\t�Y\u0015�5#���FY��\b;�E\\[׷����f5%2�V��\u0007�ۮ*�{C��O�v*��_n��jb��S֝}�_��Ux�{Sj\u0011ӧ��%\u001e{�����kNZm����\u0000Q���\\��{�/��-����u\u001a\n�\u0000�M�\u001f\u0017oj�'�VIwq\u0016��HJ�\u0002� ����\u000e� \u0005\u000f6]T\\\u0002�v\u001f@�J��8\u0006��\u0007��c\u0000�����a�mN<�����Z�Cߵ?]i�]�\bc˚\u001f�%�Mk�o|��x�s0�\u0016\u001bd߽`:\u0007�֣5�>�n`5ɜi�j��S~����̑�\t�L��������.��������Y��d;��::�G�@G��\u001e��c�CD��j�?��X�Lq��\u0000:f6�tQ��}��,���O� ���\u0000���3�]��2E��(�G\u0013�\u000e�<��n>m����o�0�G��\u0003@?Ґ�g���\u001e0�'?\r�A}��@)��m�Wo�9�vQ���8�F�}Q�gF��R���}\u0006\u0015�1�\u000e�\u0011.L+T���#�ڞ��n\u0016d�1?����d�-�~k&�C�?οNZ\t�\u001d\u0014��ū\u0012\t��=��F\u000e~�Ġ��]�\u0000��\u0000w�C��k�@�zu��dZQ9,)]���\u00001��ف�q�\u0000��?��v�~�%R\u0018y\u001f��\u0000\\Y\u0001i�A�~���\u001c\u001c��������׿���KD�\u0006�;l6�v����I۵+�o\u0011�l\u000b`w%7MZЊo���bi��\u001e�I�Q��k��א���\u0013�����>x��w���TnE\u0005>���\u0004��\u0012�E(MG�߬`���me�a�WqZu����\u001f�a�\u0014!�\u000e�5�����Ko{(lm\u0012È�)� @��3$�y����n>�\u0007��v���\u00074��1AJ��dA�\u0000GQ��v�2����L����A+��\u0002J�??��)��nj\t��b���:l\b\u001d��W�WE��lµ\u0018��=\u0007��võSY��\u0000���V��k�}��\u00075��k�\b�5����m�\u0002�z%iS�m�J�?�\b�S��\u0000\u000f���۠��t:������F�\u0018\b��\b����\u001ax����+����'��׷]��\b�L�`\t�M���k�������B~G޽��\u0007�P̪>u4\u001e\u001e�\u0000�\u0017�\u0015֕�v�_�\u0001Z\u0015hV\u0002�t4�\u0005F���!\u0001\u0007 �-�\u001f���_\u0017\bQޗJ�������W\u0001\u001blϘ��t�T�z��{��\u0015a5��/�\n�n�s����w�ܗ�Zo��S�*��e�D�Q^]�O�\b�Q�j�\u0017�4�Ȣ���4�fW�\t|�֢�\u0006��jz��b�\t\u0016��;���ʥޔ���ѵ>!߯jd:*\u0016@zt�Ei�=�\u0001�����w��\u000f�\u0001�L���n�S�\u000f�Ǒ|��oo�k�B�\u001c\u001eh}U�M^�T��L���Ӧ��,��پ�\u001ca�2r��\u0003��=N�\u0006X�\fZ9J��\u0012�\u0003�\u0012y\u0012F������\u0000g4ߒ\u001a��s��\u0019P<1\u001bm\u0011\\���Y?/<�u\u000f=���[Iq���5�3\\K\u0013^ijR�Hn\\��\n �G\u0018Ȝ��H&����@~)��g9�\u0001�'��O�c�����N�΄�-e���W��ۤkio-� !}KY%\u00020�\f6�ns\u0013Q��(��\u0005��\b�\bއ��~e[yF\u0018\u0016��5�������7\u0017\u0013�\u0005��6�4a}(gK�a�� Q^D�\\L��\bz�ȏ�'7\u000e\b�c�zx���Iy������y'k��:��7bK�癣\u0011���a�-�\f���\u001d�D*8�Z��H�$�\u001c�\u0000Iws�2D\u0000��9m�>\u000f�ԟ�^b�5�*�\u0005u�\u0000�?0��/|�e�}\u0002��'H��(����c\u001a�>E����\u0004��\\A4�\u00037 ˜�\u0012͌���4dv\u0000�Y��\u0005��\u001e�x9eS<����������h�����asi{\f��?Y��������'���/\u00042<�\u0005DfRO\u0010F�X�\u000f��\u001f+�Myr���{�����O\r�\u0011^�A�i0�@K��&6��\u0000\u000ful�V�\b�ȯN��8\f���t�1�\"D�(y�X5HUJ��43\u0005_^\u0001\u0014�\\' c\u0012K\u001bpdVZT\u001a���C#\u0013�\u001e�c\u000e\u0019D\u0018�3//�I,���P��ʢ�8W��UǤ�/\r�1��\f$\t\u0003�o�:�-�v��‘�E�\u001cHUޑ��\u0010%?y\u001d\u0006�\u0000\u0011,N��ID��d��^��K;�x\u001d����ͧ+\u001arK����k�\u0000\u0005/t\"r\u0015��\u000fqS�fDrwX�\"�:H�\u00002c��X\u0013[L���\u001f\u0004`�\u0012�\t_ӘK\u001cRP[2\u001f�\u000b�\u000f�W�f`��\u001a.�]������Z�մ���9���FJ0vD2H�Zr�!PX+P\u0013���\u000f.n�G���\u0010�/�\u001f9�zv�wiF�f\r\u0015��k2�\b*�j�\fb��$o� c��[�eG�8���E�����\u000f78�>_\u0006F@�F�����(�\u0000�B�D�\u0000��m����1��׷���\u001a}:�Ao4\u0006�- U�e�#��A�\u001fQC\u0001�4z�\u001265#���w;���\u0006Id��o����H�\u0000.4mg]���|�.ldk�\u0000>�����=A�\u001b��on��帽\u0013��%Ρo�\t����gS\nQ�\u0003�i%!���\u0018�V�ù�u�����2���\u001e_��/^�4�/�\u0013�\u001c�Zn��X\\�\u0002����Cm3�l�ѣI\u0019*��#n��K4e)\u0019���@�\u0004����/�\u000b��\u001c�5\u0015��\u0003��֙�\u001d �w�����*��L�<��pr�\t\n��I�vބo�~O�\u0011���\u0006�w�L\u0016��D�ĩ`T�\u00007��:g\r�$D��7����\u001dve�[��\u0013z�?�ߜ�� �>��\u000b�U����\u0016���\u0019�vd�\u0003��e��������}�~��:�9޺���Q\f�%<>���]�͸;8LW�\u000b���<\u000f����O�Ϲ�辠���\u001a����\u0000\r�:g�d5�{sz���o���q�I��\u0000:{�u�#�{�\u0016��L$?\t�SƝ�����eC�«y��\u001a��N�u�?i�\fr.F\u000eo�2%\n�\u001f\u0011�\u0007�eb�2\u0015����(+֟/�L��\u0014<餒I��\u0002w���Cڔ́D^�M\u0019l��*�4�\u0007�Wm�dm�%�����|\u0000sQ]������\u0002{��;\u0001��\u000f=��}V�\u001fk��\u001d��4 �'�g4\u000f�3+\t�\u0010j:�|?]\u00009|&*����u}��\u00008��D��R��x�=i����\u0019\u001d��7�?Hth�g\u001fO�\r>�����\u0017�\u000b\\��������\u0018V֊D\u0003�n���?\u0014tQ��~�w���\u0014���\u001b�=~�{�@\u001b݈y�Gդ���\u0014���� Cɲ?W��o�F�|�\u0000$ot��\u001b�\u001d�y�m�\f���\u001d�\u0018�o��?�2\u000e�m��t�\u0003�t��o\u001c\\L���;{ڏ՝\u001b��n����UFr\n\u001f�\u0001A>�\r�\n�?�����\u00072\u0003`6�}��l2��B\u0006y��r�ýrU���Ep�k�\u000fN��\u001e[��@u5�ҽ�?\f\u0006ɾ�l�pw�\u001d;���LGr�[ �_\r�zһn#c�&'�\u0010�\u0010O���(<���\t\u001e\u0000�\u0000\r���昞���)J�v�S��6 .�\u0000�\u0000x��(>iK��О�ץ�\u0006�,�j\u0012\\�\u0010+�~\u0018�t[\u0015a\u0003#���\u000f낖��\u0019�a�Oǿl\u0007�|�r�-\u0005{S�o�\u0002�\u0012QaN�ϹŚ&�\tm�����\u0014ȝ�<�!\u001a#;Tm�����\u0001\u0002�}룇�M:�qڟ}6�g��$\u00106;�DY\u0010W�����\u001d\r�]�|R+��5V��N�vD�w\u001c�{�$��r �~��Ҿ9\u0003`�\u0015��-H�j�\u0000\u000e���1�\u001d��r\"GŻ��%A�\u0003q�W��\u0003\u001d�����\u001b�oRJP�M}�o��$w��-����X+�B(7\u001d����M�]Z�\u001b\u000e��\u001bw�}�U\u000e\u000b���WE\u001fx ���Ԍ��\n�z��_\r�#z�諊�v\u0003q�:nG]�8�ן�̿�+�u����#���7;t\u0004TS���C��G�c\u000f�O�x\u000e����Z�������~uȑK�¢������p!\n�����x\u0001�����\n�I�o����\u0018\u000e�\u001eH\u0002��@�)_z���v��|�2�I|�\u0011M�_����\u0011AGz](����}��\u0000`>\\�\t5�J:�\u0002�'�{T\u001e�\u0003�t\tZ]*�Q�}����$z�J_\"�n��������\u0003��R�F�b6�'��m�\u00050�[�_-w�āڴ?�|��]'RN�\u001fq�u�FF�P��mׯ��:\u0001�%\u0006�\u0000g���l>���ڡ��u�~�����L\u0004��\u0012i���\u001f����\u0003�\t�jt\u0004��`}8\u0015�bH=�7�=r\u0012庀/u�)���N��J�\u0019\u0003�גM4\u000e��DZ�#�y1!\u0019\b\u0004���zw\u001ddž\u0002ʸG�%�\b�{i\b�K\u001b��Q\u001c\u001a\u0011�Zx��h�A$�\\�������G��\u0007�����M�\u000e��y������E��3P�y��\u0000��\u00001zZ͉�ln9Y�������\u0016�У1V9��:\\Y�'&�\n�b�8qu�I\u001b�\u0018��\u000b����\u000esä��},�\u0001(ݍ��\"\b�u��]n��5�?��O�?0ZX�\u0007�\u001e{��ҥ\u0010-��k�\u0018�{\u001b�!�����\u0015ʺ�F�<@����'\u0014�����\u001b\u001c��_����I��\u000fjG�1\n�g\u0003�\u001b\u001a�|@�ꎳssc\u0006�wg�Eae�C\u000f��\u0011h�x]���R\"��`���\bUb\u0005\u0004��&�����q������o��{.�j��^��mlm8�\u0014r�\u000b�4�2H�g_E�X�6\u001c��ˍs\u0016B\";���\u000b\u0015\u0011���\u001f4�k�F���^Ҽ���\u001aYi������A�mK�b(})4��̗�^�t��k�DiLNμ\r\u001cW\u00022e�\u001d\u0018��6E��9���W�(��\u0013�}F��\u000f��\u001b�5���o�%�\u0000��Ѽ��\u0015�\u0000>��/U���q'T��\u0000(<�\bY�\u001b?�Mg�\u0011k\u001f�\u001e����E�y��-R�9�I��@�ݜxt����c�q��\u001c� F;B&�#��\u0011\"l�^\u001c\u0019��\u000eʔc��?Q��̓*2 n\u0005��w\u0003ſ��?����W��巚?�\u0012<��3����1yn���>x�����<��Mmf�R�<�|��\u0000�.��ⷪ�\u0010^��\f����(�\n��\u001c\u001d�\u0019D�-V)�xG\b0#�k~[č���O;������:��Ɏb���2\u0007���GJ�|w�\u0001�\u000e�z��8�\\�-��<��)�����Z�V\u001eZ�<���t,��Z��k�+x\u001aY\r��Hah��\u001a�������}\u0006�\u0006 d�NB�\u0000\u0004F�R5ʺu'z\u0002���a�ɒ\\\u0004�\u0014G��F��\u0017���\u0007����\u000e��=v�M���!,�\u0002'�`t�Ua���Ս�&���h�xv\f~�NcxX�b\u00199�ט�����ś>�D\u0003Q�]\u000f���O���`�+VQ!i#Y�q\n�8�\u0018\u0000\n�Xn��X}\u0019�qF<�;���,�De��&��gn���3Hd��^\u0003���\u001aD%Z$��N�i�ny\u0003Ҡ�U��\u0006Q\u001b��gh�� ��_�_�\u001f�z\u001a~_E��\u001ac=��Bt�L�(�eͲK%���\u0005[�\u0002jrq�X��*��1-4<]7�$\u0007\t�}�\u000f>���pǧ�~X\r�����\u0007ݾ�\u0000~������&yk��k��[q\u0010��i}FjK\u0019h�(�!�Q*)�љ\u0005H\u0007b2�\u001e,�\u0018��{8�ыO���8b:�:�\u0018|��%�ͮ�m��ľ���D��i\u0018�#�a����W�[Ÿ\u0014.EEwX4�C���������?\u000f.\u0017[�@��Q��\u0003ϼ�|��|ͩy���v��C�Y����jq�\u001dݎ����=[\u0018�l�\u000b�Ț{q�r�PA&�\u0003q����\u001b�T\ru�/;\u0003g����]1��v���˧\"���q��\u001b�z���h�]���b���X4� �M���=�ZE���S����M�w�`��g\u001b����.\u0016e\u0011*)5\u0019��4��p8�\u0004�\u001f#b���WF�'�\u001ao�cÛ�\u0012��\u001f�{�c\u001f�~�y'�r\u0003�V�\u0014~~�\u001d�����M�]��7��2�.�M[��b����������_����گ�t�.�꟦lf��\u0016�=9\u001a��4gK�d�\u000f���\\Dw�@���'�\u001c����< d�\u001e\u0000�\u001ccx�yq\u0003�>�=�҉��'�<�c���}u\"y���P���\u001cY\\[�y氿�X�O�\u0017\u0011�q^k!,�CZ\u0015ʎ\u0018�#����;��jNl�\u001eh��\u0000�\u0011C���~��\u0000�?y�N��͇��Atn\u0016\b���}\u0014�\u0012,2\tv-[�JI��\u0005��W:M\u001c�\r8���۞�\u0000\u001f.g��{g\u0014\u0006��d�4\u000f 9���7��9�?�˿2A�O���\u0000�\u000f0kP]\\}W˷l�D�[��$k\u001a�\\�@\u0002�$v�1.�ꮃr\u000fJ5\u0010�L��*M�pyX�k��\u000f,~^C`��\u0011�J\u000e�\u001fƹ��I\b��X4*��O���\u0011E���v5޽�G-��\u0018�\u0001y�wT����w��z�Tа�:w�?���ũ6owe��K\u000f.h�#�,�[����٨��,g�v��r\u001e�c�|��\u0015@\u0015�\u0014�_כm7b\f\u0000p��-q��T���B���\u000f�9�ä0�Ş�\u001eL�)�.�\r��\u000f�6\u0003\u0014��\u001c~>���f\"�G\u001am��sW��\u001dDi���\u0018�G/�����H ��޽��~Od��S��v��H�\r�e��Q�\u0014S�����\u000e��\u0001��ɬ\u00126J1��T�5��}�\u0000,Ώe��Hb�ǖ~���\u0018�\u001d�=�\u0000Vcj;\n\u0019�R\u0016\u0019GY\\��'̿���ñ�\u0016aR{ҝ3����\u0000G��'8l7sc��qƢXJ�8���-[���^�图��;K��\u0011���Z̙��6]'��~��s��\u001a\u001e���nr�;���.\u0004e!��ߗ��V�WjA\u0007\n�*�G3{?�qh���2�s$nv}#\u0005��m\u001aS�ҿFt\u001c\u0007¯6�4�ս6B;\u001d���\u0000o%\u0001D\u0011�\u001b&rN������̋6Ƭ�iG�>�n�^\u0015#'���p_R�#��\"�t���}��+}Q�Ij˽p��\u0007�Q�_\u001cl�Q]��y������F^aՇ���d��L�����\u0000�\u001au���\rh9M+HISSS�\u001f����q\u0016��ƫ����\u0000�?颿�jObP���\u0015��H\r�G%8BY'�\u000e��\u000bAֻ.�\u0000?\fc���XA�\u0012P\u000f�\u000b`\u000f��<\u0000���,\u0010\u001d�,\u0010��\"�\u0013��?�)����H�����\u0000�\u0015eC��: �݇������n�u\u000f��m:꼬ի^����\\�h�;�WF�a\u0011\u001ei\u0004_�zR9o�&���#��Y<\u0003v�\u001d�Ma�\u0000�p�\u0010�X���W�g�����@X����%�ߗ?���X��#�\u0005�\u001aw�t�8�1\u001b�����Lq\r�hN�\u000e��\\�c<1\u0003�\u0013�7K�i�7�x���$\\s\u0003޻x��|����^i�2��ӄM=vL\u0015�\u0003���\\�iV�d.�e \u001a��\u0007~�;e\u00191�X\u001d�\u0012��\u001e%�~W���}rKUw\u000e\u0018\u0016@{�l�j{3\u001ebg(�[c���M�\u0006�\u0002\"�E\u001cE\u0000����L��`\u0018��\u0006\u0013�\"��W�\u001f���6�\u0017�\u0000O��|UF`x���?,\u0005�������\u0017�w��\u001c,��i�Ph7�N��O��X��5w4\u0003��X,\r��ϿS����1\u0007}���\u0015�\u0000:\u000f�\u0003]\u0015E�^�O��ĩ4}�I\u0000�?��\u0004�c}�7\u001d�|�{\u0001�>�\u001e^j��o�\u0001[ڎi�:q�~�����\r�\u001b�R���k�Q�7�~�,v@k�z���:���b2�M���2�u�Ym��~�Zu��Y�6�5�\u0001ڂ�\u000f\u000f�>�\u0000!\u001aܐO\u001e��\u001fۃ��\u0005\u0005-�.�������&�W�\u001d\u0001�}����A�H�\u0018%)JR����Ȑj�6JF�\u0005 \u000e�;w��r�\u0003vy���t�T\f\u0001�=~��|� ��Y^_�w\u0015�+��|�ۑ�T$�✘T�jS�V|��7�J�>�*\u0005?\u000e�>�!W��ۨJ�fj��\u001f\u00026��ϒ,��E���]����\u0000\u0005tl������_\u0012�?\u001e����\u000fl��l�<�\"Uz��\u0014��۹\u0019\u001a�'$J.�\u001d�S�Z\u001f���*��U@�l{\u000f\u001f��*�:�����<��\u0015�������z��jh>t��1<��H��{R�+��l0\u0011�M)��ҟ/�\u0015\u0015Ȓ�j,6?2z\u001a��>��&�\u001bA8ڣ�?���w\u0018�B�������\u0003(��9\u0000�\u001f���k��5�H��$�E���W��z������K�^�=v��J}\u001e\u0019Y�\"lZ](ݫ�\u0007m�{��\u0001�&��\u0001�-�S��\u0002�p<\bۡ\u0019I����+ҵۿ_|I\tK&�\u0006���|)�\"�uT\f�ob>����U\u001f%K�^�Ezt�Ɣ\u0015>\u0019\\�$ �~{����[�\u0015\u0006�jl7;�\u001f�LB�\u001f�oo���?\u001c\u0005*\u0007��\u0000/\u0013�Q�\u0000-T�5�7�����ȕq;�$��<=�r\u00199'�Gù�ƛm�\u0007)\u001c�����n�T�:�d�ⴃ^�t+R\b��w�>\u0000�<�;M��d�K�-6����n0\u0005�������?�\u001c�^�\u0000���\u0000�W���,��?;F��G�5�E�}wF�\u0005���73O�I����a\u0015M\u0006Wٹ\u0006��s��Yt�(�\u0006\u001e��M��\u001fB�sQ,���a��-T\"?����\u0014}�@����7��)<��\u0011t�}\u001b�@�t�(`e�P���t���l���d�R��!#s��m�3O�\u0013�Գv��<���\u0001;|^���3��Ǧ4q�B�^:<@yV����\u000b�s\u0014���7n�\u0017����`��\u000bF\u0010��`�[�B\u0015Z�*A\u000b�9�����x!�H\u0001��\u001c�C�5�α<\u00166��D�VG�'��G�h\u0005�Ҵ�G���_\u000eڼ� \u0019H��i4�\u0011Bʝ�����\u0017�Q�kMRĕ������i ��q\u0003L�\u0015�\u001c�!H\u0006:��\u001da�+���e�\u0019#R�|^۫�~y�?+�?)�\u000bm8h�1�5���i�\\L&k�����;`��J�\u001b5^�'2�v�mN�i�p�*߾�\\;'\u0016�V5D��~f��+��y~}SU����G�Y�뗖�h��ɧ,}A,V�o\r�\u0000��J��X��I#5��a/A����\u001f��\u001b�I��Wх^y����4�s�\rJ�\u0000��ZϪ�S�6;�p-�v��؀�)�2D%�Ǔ����]Y���#\u00060\u0001�@\u0001�i_��c��V�?�\u000b#\\,���`�\u0010?�X�e\u0016�E`YT\u0012Y�=s.\u0019!�z��o��\\S���&!�\u0016;�\u000fy��~��\u0000�=�\u0000�<^�\u000f\u0006�s��>\u0012��e\u0010�\\�\u0014\u000f\u0004��2D�I\u0014rz��8��R˱5eˎ8\fbnw��;7��`�\t� �\\�w���˾L���Kaxܯ\u0014$*ʤ:U�����3�GE�o��\u0000������Z���͝���gז�\u0007֤�V��$\u0010\u0000Y��}�u���q��Uϋ���\u0003a\u001et\u000f\u0011;�\rݕ�\u001e\\ �s��\u0010\f e��՘�)\r�Э������\u0000�7~h~h�u���r��\u0007�����\u001f�>m�^�\u000f�?#��ۅ�\u0000�m��F��Ef�\u0000�:��5�Q<���/��̋}s�i��u4���\tT\"ZlZ<إ���9���eU\u0018H��!+$��\u0011ʲuGM��\u0000b84�\b^I�O)��w��ߕ\n�\b�nl5/�ZGs�\\@�ak\u00191��<�z���\u000e�����F�\u001c�4p�\"\rJ[r��t\u0000�!�=��cI=\u0014�C'�)���6�<����hr�~ۿ���>o���\u0000�k�F�i~l\\}cο���l�\u001dį\u001f��M�S\u001a]��\u0011$��\u001b'�m�m����\u0018a�r\u0017,�;r��G��|�ۿ\u000e\u001e������\bG�Dw�7�:k�R��A��\u000f�6�,\u0007@��_�ȡd#�n�����U?�\u001a;nLd������������\u000b�?���ņ���D�6�����\u001a?�!�p^\u000e�t�\u001e�\u0000�U|˧�� ����\u0000/\fxx��#����g�z�x��/���x��/\u0019�vQ�?��O(���~\u001f,kO�DrO�{���=4~�I\u001fp��\u001c\u0017\\!\u001cG�%��M7����}�{a\u0012��\u0017��6����џ`����K\u000fp�qW%�^�\u000fS\u0011���~�\u001cx�\u0014�a��U\u001f�\u001f�+�}8|lc`\u0002��>b�?⟥�?��z\u0005�^�_�哌>�m�7�Ӧ#6\"v��{�\u0002�#��x������U�^~�}z�я'U�����o�\u001c��*�^ۡ��,��ѓ�����\u0001�\u0010Wn}\u0014Ϛ���\u0007m�\u0000\u000f~���=ֶ)i�U���>�v�Ə����6Y���=�\u0014�x��4�\ng͖_��\u001fH�ƈ�kM��ԛ��B����\"�����6\u0012��צ�<�6�,)^�;�|hU�(��M�\u001cu�>|����g�t[\tT�pє\u001a�v�\u0000W��ȝDGr���'�Κ �`\u0014��\u000f�!���\u0000���<��v�>Ň�j\u0007th/܄\u0012���Q.LcP\u0015=��4�\u0000k\u0018�p���E�W����,�h?c\u001d��j�\u000f��㓍����ԃ���F�{��E\u0002\u0007�р�\u000f4����z`�Z�q��Ǹ�\u001a�G�\u0004�ݻ\fhn\u000b\u001fz�%[n�\u001d?����C�:��*6����\u001b�L��d������� ��K�55�\u0000:~\u001d�%��\u000bZ\r���̢~I���\u0004��\n~\u0007\u001a\f�\u001ej\u0013qZ������P�(z�\u0000\u0001�����{�7t���\u0007A��߽;\fOڵ�B\bx\u001d��g�ǮD��d�1\u001d�\u001d�O\u001e��\u000eIJ��\u0014��rM=�~�J4y�`{�m\u0001q��Zo�\u0003\u0001�5\u001b�\u000bp\u001a�S��x�r\u001bXe�>h\u0014Eۦ�\n��\u0010\u000bh���.-�I��\"�\u0003b\u000fzW#*���\u0003�C�)�Ԏ��6���\u001d�̄H=P\u001c\n�+�\r?�+��� �ۓ���j����\t��<@�'5�����PH�e\u0007�\u001bv���\u0015v��]\u0014r_�ڞ?<<����r7����P�U�\u0003u?�U��\u0003�Ǟ��\u001b��Z{�A�S�#b�U\u0015��7��ߨ�D�\bRp\u0006��Fݷ��m�Ǧ��Ws��;w��z�j�^hg�\u001d�M\u0001�j7�\n�[���v4�ӭ)���Q�\u000eM��6��ڤ\u000e��\u0015A������`7[#d�@=��;{|�ʍ�y2\u0006��\u001cS�A\u0002�:\u000e�d}̨\u001d��l�+ڽ���W#3�2<��4��~��L��UK�\u0000֛t;��錁��i,�\u0002hF�|)�C��5�T�Q@{�'n��H땛�R����\u001d~c��VN�}�����x:*\nA���S~�x��W��P�ץ7=zt\u0015�\u0014��D��#�\n\u001av\u001b\\mT��\u0000��\u001d\u0000\u001dpy���>]v���*�/L�?\u0011�\u0011=\u001d\u001e�\u00119\u0001�|��_*�Z��\b�z2�7q����ndA*F�ʞ���\f\\�%iP\u0001$�:�Һ/w���#���)��\u0011�q4�B�Q�RŠ�!_L,L��\u001e ���i�N�\u0018!>W�=�1��\u0000/�y�$q�?\u0012V*F��\u0011\u0014q\u0002F���ݶ=w�uЀ�\u0016S�s�~G�������֋x������\u0010C\u0015���\u0016>J��RA⫲nk���\u001fDA>h\u001e������9~>�u�嗖��?EBβ{�����\r��q%��-4�)�_\\��G\u001d�5���\r�\u0018�9O\u0015<�.[���F\t\u00128�˝�1�B\u0010\u0003\u001e0,�\u0000\n�>��\u0000����+[O��zy��d�H�ɒ�\\8&!l!�Y`��J�r�1��AU�)N~�ç��e/}_��\u000e���\u001a^���d\u000e���\u000f/3�\u001ad\u001f��Mߘ<�o�7�����3\bҟV�t`�%�M����\u0001\u0007z���5��\u001aG4����{�F�� ��8c�\u0011�?�R_�\u0007��\u000f�fп'fw�D���h�%�/���\u0010�\u001e� ��+�rެE�2�\"�T�����`�;��Ȓ,�[\u0000\u0007q\u0015�\u0007}��\u001e��45\u001e�F0� \u000e��$�\u000eF<�T\b��\u0007�S�G@��p/l�ٮ$�{��Y[;\b������\u0011�äd���hA$�8\u0006bn�z�{����:�B2�F�X��{�#�O���͏��_�\u0007��?��;_1����\u0000�\r�[����}\u000e��|��æ��a�[\u0016H����u���r���\u0017���l���Y�zqQ5�a��ǭ;\ti1v��9r\u000e=@�(��D�\u001dǼ��\u001d9�ᇛ��?�\u001f�W�\\��&����[\u001f6�Nu��Y�$�������O\u0017�(d�tY\u0014\u001d�\u0006��=P�K$}$s\u001b��\u0000[\u001c}��\u0004�q0d\u000f�N��'�m�wӿ�_�?�V��\u001d�\u0000�5?/�h���uw\u0012\\-�Y\\�R]i:͚��~AI�j��C��\u0017gj�\u0019lKc[���W�\u001d�\f���\u0015\u0013\u001c�\u001f\"\u0001��w�_�ߒ��c����k�-�q%��������n��-H�\u00164��}r-[L�^Q�qFx�EH\u000bR6�\\�4ؼ= �Eo��?\u0010H'��鵺l�̞6�S��;V9D\u001fu\u0003\u001f\"��0[Z�a\u001b�|ã}zk\u0005e:�N\u001a����4 [�[,S\u0018�\u0004Y\u0001�qV$��&�\f:�e�I�W���峧�i#�\u000f\u0004+�[p�#�_2y����W���w+k}%���\u0014�eqp�o-�'�!�g�[�q<*���B31�b\u000e�9�\f|\u0016\f���_M�y�^\f'�\b�c�s�����_'��ZY�K�/�]yD�\u0014z��q���}[԰���mF�^�\u0014�����\t\n�F\u001cT��O���|LW�D�=�\u0000��7f�]N=<��$�O\u0010ډ�Gut\u001c�7�-�\u0000?_򽦿�\u00009��w�&A\u0004z?�&�%g�����=ŵ������6�$��\u0005�\u0010�I�� \u0013�s݇��e��_hk?�#����\u001c#����G~SG�˃��b1�p@�\u0014*\u0016I�y�����\u00008ݬ\\~@�\u0000�<~H�I��o\u0015��姖<��:�5�V)w��%)G{��z�7��ڜ8�\u0018\u0002\u0011�\u0001���=\\u��kuq7�z�׸\u001e\u0011�=�~z�}}\u0017�\u0000�������\u0007ij�5\u0017L�~y놿�qO\u0019\t�'�\u000f��Z-x���6��o�ե=���%\u001e��wE[\u001f�\u001a��\u0000u\u001f��8N�W�~����W��Z�Z��j�#\u0011���\u0015�^*\u001eM��\rz�D��3���?���F���\u001d�\u0000+�^\u001b�G����`���lx/�C�f�燘\u0006ޙ޻����{[_���\u0010Z<<�O�Go\u0019[%��X48TH\u0016��wy�����\u0000~\u001ax������W`��wy���M��_�k�|�(��[�\u0000+��}�?�0Ҿ\u0007�\u0001��\b߆׈tX;��C���h}S���\u0004����}�$\u0018����x\u0001�\u0010��\u0000�ӹ\u0007��3U��~0k��-��>�:��>lvjD:�\u001fY�k��j���G���.W�;���'�����V���\u0002��0��cJ�ڕ��bv��U��5U\n�j�\u0001\u0012+��CL2ɤ\u0019\u000b\u000eE\u0001���9�b���ݬ�_(�ty�S�ռ�Z��EQV*(OZ��Eښ�� \u000e2.�v$\u000b|޿��cj\u000e\u000b�\u0000#\u001a���\u0019��i�A�\u001f�\b����#��]�?\u001bu��e���\u000f3\u0016*��<�GE������_��g|V�����=��\u000f~o���\u0007�5���{��9����� �Pw��\u001fo���vHj�g��#�%��l��\u0003N\u001di^o��l7��#\u0014q$W_��g^@\u0014�_��\u0000-�J��z����&1{���^,���?O\u001f\u001am��u�s(׹\u0004��N��͠�:liNlzu\u0015��\u0003�՟��?W�\"G�\u0001�~t�b�\u001c�U4���>��0��5Uq�Dy\u0006�rx���$�\u00007l\u000b\u001b{�\u0005\u0018�����\u0000@�3E�_�\u0002��A�91����g�^�Y�w�_OQ�\u0004\u001a\n��x|gl�u��#�sm�P���E��\u0001o�\u00009���%\t�N�\u0002h*�V��/ڛ�d3k��r�\fc�\u0007�4�/�/�ʏ�}[̺\r��la��-��xL9F�W!I��[�.�\u00188�cv?�w��\u0016A����� �k�[B�n����A\u0013�+BJ����2��\u0013�٦B�+��:�4\u0019�Cc����ܥ/��w��XȊ�5}�\u000f�A���\u0018�8�9�!=0���-�`\u0005�q���˛u �����ty\u0003�I\u0014wc�������?,7C}ؔ������t\u001d��\u0003�Cb>T߿�ϣ/{���\u001e\u001f��\bc�)�hH�?�\b�����\u0015��\u0000?��6���#r�@�����\u0016�M�a��\\\u0007˚��\u000f\"�\u0000�`|)������4�>��\u0014��4I���#oն>L���AK(��\u0000/��\u0014q\u0011�^\u0000I�\u0014�}������;*��WĞ����)�+=\u000fQ�����`��A;�F��@�:\u001a��5Ǘ���~�I�FߏN���\u0012�\u0015�\u001c֤\nWq�\u0001�ʏ5PtT$��W��\u001c��$��Pu�\u0000=�VC1.]��Z\u0005z�\r��oA�S�+;6ƥ�b��(�}�\u0015\u0014�ڻ�*�+<��͌΃�\u001d�N�\u0000Ɵ?ՂF��aB�����v��݀ڛ��\u0000fkys��h��\u0015�lOs�n�\u0013�eVPv\u001d@�=�QӦ\u0012\u0015P\u000e�u\u0015�_\u000f��\u0012\u0015q\u001dI\u0003�\u0007~�ۍ�U6_��W���\u0003�\u0015S4\u0000\u000f\u0003_�Ǯƹ\u0012:!M�h\u0000�p{��0\u000e�\u0018t�����_ol�\u001b촢�?\u001a\r���b)��\u0007'�u�?Ϧ\u0004�A����}#���)� ��֝jv��jW\u0012/���}�w%���|�w\u001f�*�3\u0011\u0011�IQQ^��u�oקL�\u0014�m�[7qJĽ��2%��K���Z�S�FU8҃g�/���\u0015ߩ#n�=I�I�ݒ]5*������#�d��}&���'Ƙ\u0000�k�-�nk�������\bP���#�\u0012$\u0000���Y�\u00008��?#�;˗^e�\u0018U����\r��m��u8U|�\u0001��`��^���<\u00021$�iK����CO.P���>|5�w���ǩ�I�1}\u0006\"���!]=D�ߥ\u001f��M��=�6��][�\u0015�b�m�P\u0019���'����)�d5'���\u00109�����\u00100�$z\u0005_^o\u001b�����\u0013��㉾��K�xe�<\\�٦�G��^�ݹr<`�V���\u0017hi�3�y��z���\u001c���\u0017�\u001a����H8\\�.%�#\tX\u0014�I\u0001vF�9@��\r\u0015�\u0012Ēh\u0000\u0019��\u0019\u0007��B���o0t�\rœ\u001boJp\"�K�x��\u0015��\u0011\u0002�>���K\u0002M\u0007\\–9�U\u0010��f�c�K\u000e�<�\u001d�uK�x�G��I\u0002\u0010���1ȵORN ��w\u001e�+džw�nɗ\u0018�<\u00168y��\u001e~Ҽ��O�Ūj���>��gM.���WSpS꘡,�O��\u001d�·K���iΫPn\u0000]~��z\u000f��k5��N�h;<�唫���$�\u0001��s�/�^K�?����y>�ɴ�\u0006�\u001a�q+��׵�=���u�⬷N\u0018\u000e0�\u00122‰AC��f�\u001c�8L<-\u0010>�\u0003\u0019K�\u001f\u0000:\u0007��vwf�1�K(ϭ�d?tc� �I�{�\u0015��4��T�${h��D{���c&���q�\u00008ǤyZ�\u0000�w�Z6�a&��\\yiA��(!\u000e�;\u001b��L%�����2D��H\u0013�G�P}\u0015��\r)�lZ|Q\u0013�Ꮻ�~F��\u0002���S�-^�\u001e�g�jg��o�7�bH�+�MP�[<���[ҿ*\u0002jWv�i�isk\r��\u001cQ\u001d\u0013T�\u0011q{S$ި�����G���7�E\u0006���8� ~bq10�W�N=��B���=�����GN$'\u0019\u0003p���e��\\�b�7�s�?�sC�O�2��~P�Ǟ�\u0019<���{��_\u00176\u001f�5�.\u0013w�跅�4�Y�.\u0016��@�.@c\u001b\u0016S\u001bju}��]����C+�d�*\u0006�b7������޷z>����~���\u001d�\u000e\u001df2'\u0002H��\u0012j9 yL\n���\u001d����>D�\u0000�����i%��oq�Cv�\u0003�����}*#s{mk}u\u001a���\rΦ�J�B�<��*�H\u001c�51��d�~\u0019\u001c$w\u0001�ȋ���y�Fu\u001ac�%x�X s�+\u0003���\u0007a��v�\u0007�|�`5�:�u\r@�f�ɤ=���w\u0002�+�{�>\u0014���L�\u0018\u001f�;x�fr�\u0018fVa\f��\u0017.[r��}l#�LN)\u0010\u0006���8�\u001e.d�W̒:\u0010����\u001fN��\u000b\b53�%��\u0012��W2\b���T\u001f�(�\u000b��X�(=7�����\u0018�3C�e\u00028�7��\u0005\u001eG�\u000e�]_ie�y1�\u0011\u0012\u0000 t\u001b��~�o��\"�KY�i��z\u0013�á��\n\u000eq�YbD���X�� \u0017%�b@<[~�K��\u00182\u0002����|�\u0000]�#!\u0010��G/�+�O\u001b���4�&�����\u000b{�0\\\b`H�\u0007�zQ�,\u0012���I\u001b\u0016�)Ÿ\n\u001c9��\u0018$m:��ǫ��2�\u0007\u001f�`�Ǜ�w�s�\u0005��\u0014?4��Hl��.�pr�jŦj\u0016�q�$�G$w�\u0003 f\u0001#&� f\u0006���I����������<�b��,r\u000e<_���oP�\u001d�Y\u000fƟ&�\u0000�5^�q�\u0000��?�\u001d<��]>!�~R�\u0000�2~G~ck\u0016ml�\u0018ӡ�o�ˣ�;�z�i��X�ؠ\u001e\u0004f��4���c��=Y����!\t\u0001��Y}��N�Š���la5=.�8 ;��2��ul\u0007-���Զ�4��I��3�P\rؐ\u0007@\u0014tΫ�%��3��E�-j؟��O\u001d�_���\u0010s%Ql\u000f`zoߡ���\u001d\u0019��v�V[\u0003���� dƌו �\u000bŎ�\u000e��v����%�27(�J�c�ҽ�H�M�\u001a#�>/�Qlk�+��\u001d�n\u000e\u0011�1a��\u0005�Q>\u0003j���9d�'Gu�+�_Q�A�@��'F\t���z�P�(:nw�\u0000o�\u000f�\r�ŗF���O��t��cc�FB9�\u001ax�\u0007����\u0000(�O�Uk�G��@�o�=�L'��\u001c���ͧ\u000e'��a����|�:1�\u001e$�&\u0011�i���z��\u0014>=Ns��'26=\\�Y\u0007F\u0019\u0005�%c۟a�\u001e���L,���96۝|\u001fT�\u0000�:��z��\u0011����o���v\u000e.\u001dL��\u0001�r&B��T�M\u001a�v�O���=\u000f\b�LN��\u0010�\u0000�ED^�A���ӯ�\u001d?N\u0001��k�\u0016){m��;o�=F�͗c�|uz�)��C��ug9\u0018\r���\u0017�B�{\u0005Y,��0Mc\u0004\u0010W~�Fz\u0006=\u001e8��}4À\u0011���-������M5��V\u0015 p#ǣ\u0000\u00187�횽`i5q�\u0011���oG\u001c���\u000e!��\u0017ʞb�����]�R5=Y@4\u001bl�e�ݨs���6�@I>�_kd3x���i�j:���g\u0017'�UFa�*��;t\u0006�������͘�1g�є���/%\u0000��\u001a}�\u0011�KȰj�����˳�\u0000�o��1�\u0010�$���U�F-1<1\u0006 �;<��\u001f�1ja�p�Y��\u001aW~�\u0001Ɲsw\u000f�\u0005C=�d�/��:���Eŀ��~&�L���^.���W��?Nga�\u0000�\u001e�\u0010g�5�\u0000[�8��\u0000�t9���\u000f�u���\r��\b����$�7܁�#61�\u0000�WgDYɚ�\u0000��\u001a\u000f�\u0013b����X�����{\\���pc��aV4�^���=��\u0000\u0001�\u0006\r\f�YNH�\u0017+s�>ޝ^a�\ff�*�G��\r��������Mx��x�(\u001b�\f������s�,�\u0003�}#M�\u001a�#,9\u0017�C��\u001fF�S�2���������o�n���\u0001D�������Z��)�vp��V ���}���\u0011�>iu�\u0001O@wɊ�2Z���\u0012���A�����mtX%L\rI۾�\u0000=�{�h�hiҢ�;�\u0000�0\u000e�k )�u����l\u0000\u001e�R+�(Ż���\u001dɮ�Hꕰ�\u0002��\fUYF��6�Tv\u0003\u000e��x\u0000T��\u001a��>�c�U@\u0005>G�v�\u0006;ג�8��nh{\u0011�On�2;��Q`�z�O\u0011߾2R�\u0006��ނ�T{��iik���q����G��n��Cڛ�v��\u0001\u0014��B8&��\u0003J����Ȕ}�G�6;u�0\u001d�P.:��X�����[\u0004%��O� �\u000f|��6Yʭ.����\u0007Z��\u0007|�䑹�I\\�h�\n\u0000+�<;�Mm�jEr�ɷJ����{\u000e�N�#or\u0002M��ץ:�ۨ\u001b`J[/zW�\t����z%�u��ڔ�qڛx�\b���M����T���ew�+_$\u0014�*TT\u000f\u001e�����&ʠ$ �\u001bxmA��V�\u0013J��#����'܁�\u000b>��W-ª\n���ڽ�N���Wu{!5�\u001b��ǿ��\u0003(�e�r׏~�5�~�Ȧ\u000e[�J?9�-b���������8�5�?T��\u0012�b?�6�5ݍZ_�+<\u0014��\u0002�i�=���\u001a\u0019�\u001fX\u001cC�\u001d�\u0000[��-t{;�t��o�9\u0000��e��߀�\u000f�,<�ߗ~H�\u0001���z\u001d��\u001b-܂�H��\"E�\u0017?VYd���O�\u0012UkP��Yx��}\fA�V�7��\u0018�Y�Ǘ\u001c�W���ֿ��r\u001a.��\\�[�̴�\u0001��\u0000J (�8����׀\u0000��\u0011\u001f!�X��9�\u001c�\"\u0001\u0007���w�p��\u0001�$\u0011�\u001e��\u00009\u0015�h�\u001eX���Y���\u0016���;��i\u0013�ƟQ���\u001dB���p�\u0018n�D���v��<#��>���9ݗ)���י\u0017f�����G�\u0017#S�\u0016�c\r��\\[�\u0004�R���՜[\\\\:�G\rs\u0019�U�)$�f$�9�D\u0002v{1��\u0001\u0013V�\u001b+���h�$\u00137\b�~L8���n\\J#���_��s\u001eP�~7rp�\u0004F�h�0y�\u001d:���#�F\u000e\u0001\n�iU}%�QUy�Ȑ��I\u001e\u0019n\u001d>�N\u001e���xp�s6�\u0000�D����\u0000 �\u0000>|���N���%�����M���}\bR�dV�m�g����IJ�\rsw�Q,\"91�)��\u0004X4\b��;{�&�Öyc�L�ǖ\u0012�\u0018�\u0012h�}9S�S�r7�s���Zܰ�w\u001e^�4�d���\u0019��!線?�__=�\"(�h#�WUb��yf<�f���<\u0010\u0000��\u0002�\u0000k��=\u0017db�'��g׹\u0017縮|��\u0005)? ����k\u000bm6�T����-&��]^�\tR�b���$�)\u001a0��W��EW٪u���xr�\u0012��;�N���w\u001d�\u001d`���\u0007���N���&�s=ܗ�w2��^�\"���\u0000�|�2E\"i�g�ݬﵽ*)��\u0001%�����R7C�v^be\u0018��ȋ#��Ю�Fƹ�>\u0007���\u0012��-�)zD��Hu�\u0003b/�$\u000e�>�~\\y��:��\u001bYj�sEy\u001c2<�\"�w�]H�r|��\u00009\u000b<�}~�\u000e)s?�\u0011�kU��\u001aMT��Gh�2�|\u0015z�r\u0006�9���\u0012�\u0017+.�A��\u0007S\u0010?�/wW�_��B���{ϟ����\u001f(O����?X���֌�y ��\\�\u0005X+\u0015j�^�(��L���\u0006�\u0003�и�Yx}��ˌܿ3\u00126��U��o���۶\u001a���G����䵋ͪy_�^\\���\u0000�T���%ґ7����5��&�\u0000�\u000e�\u0014dM�k\u000f*�rQ\u001a��4�\u001d�\u0019\u0013�\"L@< �\u0000\b\"#�c\u0018�w��_�\\ׁ؃\u0014b!�[�◘�\t�q\u0012C�Om�PG����@=\u000b���G�:P����\u0000��^�GA��~���'%v��\u0007\u001a�\u0007�+�G�\u0015;\u0005�B:\u000f\u0001�~�� �Ě��Pq��\u0007��~\"�\u001e{tA���T\u0011փ���l��\u000f/��N#�\u0012\u000fo��bh����\u0000R�\r�\u0001��v�\r��H;ST\u001fʻ�l1 ^�\u0004��o\r�o~��\b�O���J\nԞǶ���F�)�k��T/ӹ?�\r��U��v���}���\u001bV\u0019�(!�\u001f��\u0016�pAsp��\u0007HǨ�Ӯ�\u0004\u0003�S9R(��qP��[�\u0003mno���C��f��e�S���A�w���\u0000�����/�$�\u001f\u0017�\u0000�A\u000f�I{�U���更@1�6���\u001d�\"\u0018;�j�az�ԓM\u001d�\u0015i%q\u0012\u0001J�&��H����vD!���~<ܜp�$mO��\u0000!���[[I\u001e\u001a�\u0005wn;�m��Z\u001c��'E�]4`>����H\u0002G���?\u001f'�:]�v��\u0017�>��J�>G7Ѹmlg!�r\u000bo�+[�ޱ�%M6\u0006�G�ñE�w��[�s��XӮ�-�#\u001bЪ�cс\u001b��a�xu8�<�\u0018\u001f��s�DN5�>O�/!��\u0013�/{v�]@�\u0000B��xc�ZT��?e�\u0004t\u0019�2��yX�\u000f��I��!�B�u��y?Q������>\u001eq�Ѩ�\u001d�v\u001d�Ί F��U\u0011_���.4�K�!�J�����\u0010?S\bˤ�o\u0019���ͦ�e:\b\u0014�F\u0000�z�F\u000f\fH�䌘�8�;~(�\u0000�P�^y�ɷW:���K#��Ub�\u0000��\n6$�훾��M.m\\%\u0010\u0000�\u001e��j�a1�&5���\u000f6��DCw\u0003�$D$�!��r7��4�Sv\u001f��,:He \u0012@~d����^<��\u001b�\u0004�/�y�}����%=U�BE\u0001�Nnr�t��D>}��\u001dnY��\u001f��Z�<��8J��:�\t\u0007��3M�1� ������'c��=\u001bJ�L�^��~���4������\"E�e�y{M��s�Td�H�TW��;t���\u001b\nm�����\u001e�������`ZQ���Oξ���N�WP�������`���������G�햆1ډ�im�\u0002�G�N�<��S\\��Jj�����\u001b��}�f^����\u001e�\r�\u000f���;�����\u0005#�2�����\u00001�\u001d�Nԥ< ���+��\u0011�\u001d��.��I\u001f�m��u�\u001d谐\b\u0003���w��\u001b��S#n�}\u001b�w��{�2&��.)_���\u0018��P�((��u�\u0000k\u0001ܯ4\\p\u0006�Rv�\u001f����&�ڝ�z|�ӧS�$G�F�����?�\u0007ܷD\u000e��k����\u000fJ��ɘ6\u0014YiSZ�lh\u0005B�T&ƃ����e\u00125�Lf�ر�\u0007��ȵ!����\u000eܓj/)4�=k^���\u001d핊�ts��\u0001\u001d\u000fs�ۮU \u0007�n��T��%$�M������'��\u001b\t%����\u0007�ۮB�\u0014\u0012O_$�\u0015����5�\u00001��\u0010c�bkp�\u0000����\u0010�~G��ҝs[\u0010��\u0016\u0017�ځG���1V�*\u0006�c���\u000f\u0011�\u0013�my��lG�tژ���U�Ԛ\r�hA\u001f?��?j��{�\u0000�lh*�M�����s��\u0001�T]\u000fZv�\u000f�NƸ�\u001e�C?�RF���?�'z�\u0012v>���DZ�\u001b(ܡ^�}��CM�S�NF��n�)\u0001#�iP{t�A�p\u0010�\u0013����:�}8�[���kO�P}��r\u0006;\u000e�Q4|��\u000f�v\u0007��+;lY}<��EN�ӭ6�é�A�\n�\u0003�_ ߥ*N݅<\b\u001f��U(��d\u0004���A_��{�=�L<:����\u0000\u000e����Y-w����փ\u0001ߗ5Ke�Pv�]+�ҹV�R���E;�҄�N�\u000eC��_!�zlw��S�\u001f��U\u0007#\u0000w��^�|~�\n�?-����}�S#[%����Ɲ��Z��\u0012�\u0017�Φ�\u001d;֟G��G!��ޮ\u001dh@�ï��NF?ο�/3j�\u0011^���z\u000e��\u0003��O>h�vN-�M:���|��`ٰP\u001el�N�!���N����\f\u0006�&��͐��I�u�!��C��_�\u0006��m_Oє�謷�6��Z��F�k�%cќW1�X�K�\u0014\u0007��������3a����3��\f�2\u001e@�\u000b�\u00014Y4_0�?_��\u001b�\u001e[�\u001a��男�W\u0010?\u0019,.=5\u000b\u001f��GPı椃F�\u000e\u0019G�+pC�K\u001cr��c�L���^m�\u001f4O��y�\u0016�H�3@�H�72��Ԛ�7Q2�Q�\u0011KT�bԥ5��y\u000f��pe�1Ɔ�j�2\u0019��{�\u000f.��J�nZ\u0015d��i��H=Sp�4��E\u001c\u001f��-y�j\u0000\u0000����+���x�\u001f\u0014v\u0007�g���\f�\u001d���Əci\f����h�!e�Vh�8�ՊG-C0R(7\u0019�<\u0002C���?0c����]\t�846I�qt߮��\u001d�_:�dy��s��w޿��Zë��Yy{�zv�vl���#�u]o�R\\\\����D\tOD\u0018\u0002�>\u0015\u0019�i�;E�T\t��'��<\u001e�����o�Y\u0018b���\u0017��Y$�ϛ���k�\u000f�sV��q�Z��_XҴ=G�^_��x����\u0016�Y�hKX�Q[Fl��N�O~1�\u0012��L�\u001a�i���|#!�\u0011��\u0013�\u0007}r����{M7iL�g��z�G�R\u0007��P\u0007�2;\u0013~O�/�?�ǯ7yB���H�{�4�'7�rJo�H\u0003��\u0001\u0001`\n�Я6T?\u0017l�)C$�g�O����1@d�r�ֻ��.y#]0�\u0002)C�d�\u0010�h��)����bp\\Kop\u0000x��\u0016�e��~E���\"'�{��_�7�U��yi\u001e��\u0014���G�k���#�\u0004��--d�}8\u0003�q\u0014�+2ȕ\t��9\u0007\u0019�H�n���\u001b�\u0014��rw��/�O�O����,d�.�m58�}+�cz��$Μ�t��)mnSXf2D��g\u0015!�\u0003m��X�o�o{��\u000e���u��'�&I�V�q����\u001d�v���\r��\u0015�V�\u0017������q,�\u0014-7�%���-���x��\\�������S�crG��������I\u0019�`\u0000o��r��]6�sy4>_�\u0000����^����\u0007�t=g�ɩ��\u001b�[����o��:Wt\u0006��ܤ�8\u001a����q��y��Q#��4�#�Y�,��PO�=s�q?�KM�\u0000�z����冚���~)m�+��c���+˩j\u000e�S��ܷ�O��=�=��X�\u0019Krh_By��\u0007o���\u0000��m��>�æ��\u000e+ῧ�l\u000f�\u000b>��\u0000�֝��oԌ�_W����ӭ7���o�rQ��A�U\u0004����\u001f�;W&�%P���ߧ���\u000eɵ�O���фs�$\u000ej��{��|�|��G-�%`kO�Oq�b�e���m�.\u0004\n������ݮ��o\u000f�p\u001e�%����cj����\u001d�Awn��m��~��1#�J���߸�`����\u001d�U?��2@��r؂\r(~cڟN\u001eC�G6'�T�������&�zMn\\� ��?z�\u00003�뿁�g/:�:۝����\u0011�\u0000s��\u001f�+�u\u0019��`\u0006s�\n_�:?�q���c�}������2_\u001a���Iv�\u0000v'�Ht?1��x�m��\u0000�����\"\u0015=O�_����i�B��\u0006��Z�Ss_Ɵ�[�\u0010o�^A{�L��<\r;x\u000f�3� �kdr:\u0011��>G\"B�e���=6�����U�A\tEĽz��n�O�-��s\t\u001a>lf�Zr5�\u001f����~�!{.��Zt�1!�\u0010�n}4sQZ\u001av�؎����ĖQ�\u0011\u0000w�?��X��z�]�\u0019h ~1Uj\u0019���q�̞�ѝ^��\u0013\u0017�\u0007o�sO�p\u000e����s�Ӭm�Gǂ/-�\u001b\u00006\u001dz�‌l �\u0001B���P7�)Jv�_�l���h�޼Iƽw����\u00107�V��r�%�t��\b��>#\u001d�$����Q�$X���Z\r�\u0000��\u001b\u0002�1ӗ�,�\u0005��b@\u0000\u0014�\u001b\u000f���X�Vo���:}\u0002��5��[���\u000b\u001cѲ�\u0001^&�ރ�)����\rVۿ:�,��\b�����_\fR}�\u0015\u0014SМ�=��:�\u0000:�Q�\u0013��e�έ�\u0019�_qg?�5X�\bxa��vO�\\5X\nm��`v.\u0019ò1��\\l?\n�k��>��\fG��+=���W�P���6\u0002����\u0019N����t��\u0003]^Ϥ\n*x��7\u0014?F�~sZ�e��Gkz6�h��qP;W�\u0019��\u001d�\u0003���a�,\b�:��_�'m>[�iw:c�\u0015���#�����?�v���O޽�T�3�m6�0�_�}�?�x}8;|����U�\u001b��Oǿ�\u0014�Jj��W����c-�\r��\f<9\u001f��k�\u000e\u000ej�\u001c.F������\u00190�}\u0014/7CM�\u000f�������cR\u000f���\u0000���\";��o�Z�\u0000�\u0019/�b9�)�\f7Q��ۯߐ�������b\f)Q�u��,�zQ-�-\u0007�ר�\u001b�\u0004�\u001ej�^�\u0015=Oq��_�\fE��\u0018˽&*j��I��h��,a���?FA��q���ol\u00041�\r\u000f��m��p˽\b�e\u0003��~���\u0015�g\u0013^�w��o\r��\u0000V�\u000b>Jm\u001a5h7�ӯZ��\nZ�ʏ\u0006^������`�\u0000��S֕���\u0002<���$2�\u0001߿_�\t�`y����F�r>c��� �\bG����\u0015Roս:d%ʻ�hw>��]�}��ʥݵ/O �w#�}&�Y\u0002�dn9\u0004\f��\u0011�����F�ѕ��Q�\n�װ������\u0005�\u001c�����\rE\u000e�č�\u0003P{�v�hjF��~\u0011Ҕ߿�1Uԥ;�\u000e��'��!���\t�� �\u001e\u001bm�EW\u0011��Z��\u001e��굅;�w\u001d�T=�J�\u001f\rEE)۱��ݑ;I\u001c��\u001d6���J\f#�!\f�\nu�����ȒO�.�v��?M?\u000e�7*�z�����O�\"�#�w�P)�ϧ݀�m�B\u0002@(+�����\u001b�\n��@*+�)���ӶB];�\u0014�@h{{�\u0000fVH�\u0016��%�ҽ~�n>U�\f�$\u001a�It��CN��v=���(�K��ҧ��\u000f��##�#d�n�z����M~��^�(������Ѣ��%m�\u0000x�\u001cV��{4J�I\u000e\t\u0006��'-6!\u001b5M�5���c��m��\u000f���O1~����W\u0016ڜwVZ\u0006�5��_F��\t�5vѽ6��\u0000|��leVKK`Q�;�+�,0��<�\u0000\u001f\u0017;��L��ٺ�χ'�>f�5\u0018���/\u0010)nt�k�k���V�\"��)2�,p�\u001dh��5AZ��� �є�d1\u0004�#g���Ma�$!&�^�\u000b#)�[��n\u0011\u0016I\u0015D��(\fԭ\u0000�A��|\u001d$?\u001f�����\u0007�ʓI<�y��p��$�R��%�X䕖�\u0018xx2�7�ҁ���N)��4G���\u0019B��\u0011\"9\u0017��\u0000�?��\u001ez�t�5������y�/�&OE%ib\u0006D0H9�2P��\\�s\u0010,n\\�zC9\u0002A���>o�\u001fȏʈ<�\u0005��\u0005��zj]�:����k�������K�+�95H'S:J��Ջ\u0007\u0005>-�\u001e\t\u0018�B���\u001e��w\u001e���Ө��\t\b�q<ꯨ����v��i�R|�h�W�Z�F�kwu\u0016�yw\u0015�-��a\r��%ƨ�\\]6�5��E��u�� �x��Ɍ���E\u001a�B��y��q�1#�I�. w$s�w�&�\u001d<ߕ\u001f�z����\r�1^�2�_�\u0015�\f��԰�\u001f=6�)�Id�Q\u0011`��9=����\u001eHd>�����w�����9����\u001a�y���/�7�\rϙ�f����tԭ��\u001f��e'\u000b�;V�Ք%©\"\u0017��\u0018��V+�\u001e�qb\t�ӑ8T������M��F2\u0019�������y\n�\u000e����\u001a�������Y�\u0010:+ZIn��\u0005�����Ѕ�\u000fJ�Z|.��j0�\u0004x����F�Y.\u0000���\u0006�\u0000�~����t��KĒ\u0017��.�\u0017�K�\u0004��i4ҋGӤ\u0011/�(Q�\u0012U\n�1g�\u0015�4\u0001s�\u0000�H�LqH�p�{�\\h��W�f�v\r8\u0011[G\u000e��ʩ#����)\u0004vѼ�E\u0005ſ��\"oI\u0018\u0006m�\"U� ��\u0003�ϛ��~�\u0016L�x��yt�W��\u000f����T����Ӵ;�\u00000�Z����iV\u0017W:���\\�{+\u001b\u0001\f0�up��g2�\u0012/MC=\u0001��!� 8�\u0013�@�v\u001e��\u001b��ig���O]1�I\u0012I�;\n\u0007��\u0000���������P��N���;��>\"�,��Wָ�\u0005*����jmʹ��\u0019�\f!���w�V�Wk����MF�Le-<�\u0012y��\u001a=�����Q_p;~=�r�^\r�������\u0000\u001c�O�;\r¨;{�\u000f\u0011A�֣,����\u0001��>]�1^F׃A޽�^\"�N\u0010����޿�J�LX�ʪ���_\u0000r\\�,\u000f:T\u0007�|?���)�\u001d�:����m�^��\u0001ߗE���'m�ڧ��\r��G�mG��;����~Y\u0012+ul��߽;R�\u0002�H�\\�\u0015\u0001�Gon���\u0001�\"׃��\u000foz\u001d�ƽ$\u0012�Ջj�qa�c�4�߱��o�;�`��Ÿ�J�{\u001e�\u001c��\u001a�2�v�u���W�!�\u0000s���B���N����\u0010}�5}��\u001d\u001c�G���\u001f���\u0019�b��>o��\u0000?)�I?� ��\u0000e���qںۍ�m��#\u0011Q�:���\u001d�W���i�'~���\u001dG�R<\u0006��C\u0019�\ny\\�� #�\u000fO\u0011�)��+�� ��\b\u001d[w\u0014�\u000fo�8M�R��IJ����r;���%��oZ�'�x~9tlr��[n��%٩�ׇM���q��[\u0010��|F��W���\u0000~H\u0016��}s\u0015�\u0015i&�bP:�i�J\f��)NC\u0016=�y9\u0018c�\u0013�\u001fȿ!%���444VbGV�I;V�=s�;+G\u001d.�8��\u0011�p�L�_��F�l���Ƣ�\n�\n֝=����SL͛G�\u0000��^,ik5\u0001��mO���#\u0012B>��<�z�}��J�j)�:\u000f���uO��\u001a����D�o�h�~��\u001e��7�=��#�\u0006��v�4��O�ē�\u0000\u0003�]�\u001e��ț��o���~O�\u000097k�]\u0002��\u000b�o�$���\t%\u001eK���\u0012(�I,ݻ\f��a;\u0012Z�n;\u001bX|�ێ���e���� \u000e�v\u0015��k�>J�\u0000�I���L���v{����̌y\u0017�v��=kV�We�\u001cZx�\u001c\"\"�\u000f�]�?�ù=�̟��P���1x�������������ŤԄ��:Џ��9�@\u0016kg�ѓד�4�*:�xlv\u001d?�i��]�\n��\u0005\fv\u0003����|��\u0013~\u0006S��]ޔ��b��#�����?�v��>��u�ϕ��۴��s�����<{�Mצ�?Ο~r�Mɺ����z�)Jo�zx�\u001d?\f\u001c�ȗ&\u001b�\n�����7����\u0005\u0015A����\u0000\u00022m?zˑ�����t�ܗކ70�������r�k�\u0015�\u0011ң�}�\u0013�\u000e��#U\u0003m^�{P{x��li*m\u000f\u0013B\u0001\u001dO�倃\u0012�e�����'\u0010@*Rk�R{T}�\u0000�\u000e�lJJ�rG�~�\u0018(WNh��Ra��o����W�MY�CI�\u001f�\u0007æ<�,O؇ n|<7�\u000f\\$߽\u001c��\u00040�ϥr>��0F S��\u0000�Ű_TJ\u0010AޛoC�uŖ�d����\u001b��O�\u0002R��'jl\u0005|:b��\u0005�c�Hğ�}�\u000f.�d�A0���O�݃�\u0002�\u000f��a�(w�jz�z��N\n�w\u0015\u0004�?\u0011_~���H�T\u0004�ק��})���\u0012\rr@8�>�S� �\u0019�\u001c��[m \u0007��}��a�M�4w����\b\u0014���]�C�+�k�/6�J\u0001Q�\u0005��A\\}�U�M��m�o�b�\u0003H\u001fGQ߶\u000bV�pGn��Wxl\tޔ�ڕ�4�0\u0006�� �\r������D������+��zdA�\u0011�CI�w�K~���\u0011�\u001f�U\nz��;oJv\u001d�0�ܓ�p<6��\u001fƹ^�i\u0007 \u0003������q�K��*\u0001\u0007��5��UK��6߽z\u000f�D�җL�\u001f~�#��\u0014�HQݜ~Ծ`\b\u0015�J���2\u001c7!ɝ%sni�~�\u0000��0Kp\u000b\u0002wK��O�\u0013��vA�\u0014��~#��PҾ�8.ʥ�֧ƛ�П��\u0003�۹R�I�b\b\u0014��\u000fzu'l��R��*z������^�o�z�Po]�ޝ0U*\u0006AB>g}�<6�D�P�S�w>���\u0005Z����\u0014\u0000�ҕ����[\u001b�x�\u001a������eTJ\u001e�n��>��d��\u0016��\u0015\u0017PH�t�B��ȁ{!8�\u001f\u0018�lO�+��#�g\u000e�e��ֻv�^���\u001aeA��(�'�O}�\u0007�G~��_��\u0000��/'ɦ�m�y�+\"�w�|��^\u001b�Ј[R��>�������#��C^�T��I\u0014~D>�얢2ҝ=�HL�{�'�_斓\u001d�)n ����y\u001c�a�\u000b��\u001c���\rL\u0017�\u0012\u0000CY\u0002�`\b��v,�\u00131$��d��P�\u0003ϗ6#��{R���C�Tx\u0018���@!�6���X�;��\"�π \u001eF�Z���b\u0006\u0007 �\u001c\u001c\u0013#0�/���=;̗-�~^��\u001b_Q���i�qi\u0001�D�+��{yJ��(TP�)\u0002>f�5\u0018�!�\u0018�#!�\u0017i,q�H�D\u000e���_�~d/a��d�m\"�d��0�V�$)#�+�\u0006B\u0014('�R���\u0013��#���c1������_�������\t�a���\u0017����R�⽵�\u0015�\u0000�\u001d�\u001e��\u0000H\u0016œ�\b���f4\u00032��_ig�e�D¯�\u0015�����=��m9�5\u0003,r�=B\u001cDW1�D���\u0000������]C\\��򏑦��ў�P��y�X�&�c\u000f$�Q���DzsJ���\u0001\u001b\u001e*�Xm�.��̑��\u0012��^��?�����A�%��ˊ��xw�@�\u001f\u001eo������ϫ\r���?P�g�\u0013M�O���4�V7V��0^Y�%�\u0019C��\u0003�}�M\u001f�0Ŵ�N!�k�M���d\fF!\u0013˄_���I�]b�S�iN��]��\u0007�-��-!\u0017ʜ\u0004�\u0015~)\r\u0017��\u0005:ҕ�|�8��n#�w��Z~ؖ,��8%>�\r��zޝ�}\u000f�\u0016�\u001dg�qwh�XꚖ�xE�\u0011�\u0011�$��#d�]�#L�\u001b��E)��G�B|P�\u0003\u0003�Ho�����gef�Ǩ�\u0011��1�h��l_��oz���\u0000������� ����5�2�yZ�������\u0014 ���B�ۯ�Hۑ$IR\u001a��\"\u001d��\u001f�N'%u�����K�}\u0011���\u0004��<\u0006���~�g��g����q�[\b4��/ʯ<�\u001eD�)N���\u0012\u000f2i�\u0017FU�����Hc�5A1\u0005�\u0005��'e�Z�8\u001cp�\u0015�\t�߸��:=NN����9�\"y��F��C�|:����^��\u00008��\u00009\u0015�\u0013\u000f�g����t�������Zy����c�,.l5;x�{�k\u000by�Ե��N\u0007\u00164PE�Y��\u0006d�(\u001d�\u0013�;\u001a\u001d�\u0000{��K�nj�@\u001c=�@w\u001fI؞�o��^����K�����u����\u0017�XG$�F�o,(�\u0016 \u0004���V�y!��OR���n\ni�M�Ǘ,�\u0006@w�~~~e����S�\u0018�\u0002|\n>U���\u000f���\u0006�\u0000�T����k]\u000f\\�yt�8���c[�e������%You\u00184뙩5�\u0017H�\u0014�4r�E��\u0012�+6�pqF�=:���\\�vn�y3�\u0013�\u0019�<��χϩ�O������\u001f*O��_�pFu\u0013P�֭$�m�Q\u0015��\u0007Ռ�a$p0�)���l��S\bʱُ���ORt�'/\u0012u�Ml+��xm��|��i�O8��y,���He��c\f\u0016�L�O��\u0018�ʫ_]R�\r\t1�c?�\u00190��s���ο)��_U�\f7\u001al�h���\u001e�/�\u0017���\u001c\u0010/�\u001b��\u0016�\u0014V�fG\u0004׎L@x�����ps�CO \u0001\u0004��G��\u000fߏ���*H-\u000e��Ϧ�g�[�ZY��KavHe)\u0003\u0018��>�\u0012�\u0016��[�·C\u0013/Y\u001b}���%�� ŋ\u001e�&���~\u001d�\u0000\u0012�\u001c�����;|�͐6\u001e\u0019O�jz��O��\b��Yت�z\u000f\u001e�\u001f�d�\r�t-Y\t�ޝ��o\u001d��rV) ��^�ӕ{\u001fn�l��I���M;\u001f�\u001f\u001e��S\u0012{�*)�\u0000k��\u0003\u001a#v&ՇO���\u0000�l�uI$�W\u000f����\u000b)�|W\u000f�~�\u0007�\u001d0�@b\u0005��'}�c%dn���N�\u0000�\\\u0000ٮ�l{�\b�F���a\u001ej�5>}����5�|>�G5��;t�i����H�Hc:�UI�\u0001��}q#�NN\u0001�a��V���M������g!�w�]�\u001d��\u0004���\u00016�\\JMw�~�c�� ���7\u0012\u0011^�޿H�'\u000e�*�\u0016=w&�q�\"�k�헁�6\u0007Ʉ�\u001e�=N��W��F\tˆ\u0016��!�~SyV]\\[�c/\u0014r\u0004�j���w��g�\u0016�Z�A�O���<�S�\u001c��\u0000\u000ee���\u001f/ǧX�T\u0003�\u0002h;�nծz\u0006(�n�#�+��w��t�\u0000:��\u001dU�W�^����\bS�v�?����o�R�\u0014t�~��<2v���\u0012�AO�ڽ��M�F��?���͟(��{��\u0015�5���\u000f�y�e����>]���;ȱ�m�5�N�v�3e���L�\u000e��^a�\t��O���sk��\u0000��r@h�ܼ�\u0017�u\u0002���E6�$�\u0000Ex�n��\u0013�R{\u0007ّ���`=r�|\u0003�>Ж�e\u0007��D��<ߩ�\u0000�qѴѶ�B\t�֊7�\u0019�����~U�qk\b��E��\u000f�x\u00107;�m^�|�g�\r\f}@[���kP\u0000\u0003�_c�9�L�E��b��\f�\u0000O4 Pv?:O�4��z\r>�_r+_4�ď������2\u000f��wĻ}9�\u0000\b�zq��}��0մ��_��?v|���������^����O�~�÷����=;�����\u001e������\\���c~�k���\u001eN\u000e~h\b�M���'&�6�\u0015R{\u0011���$\u0010��\u0018�~���,��nh(U�^��_�\u001eCt\r�i\u0001;\u001e�v��_�\u0012MW�EZ��#�\u001fׂ�u@�P�\n�\u0000�6��B�r�]q\u0011#���\u0000�ӈ ��\u0004�T(MiJ������1�;�ON��\u0000\u000f邨�֑����)�C��AY�V�����\n`P/dLPq#���5�ぐ�>�i#\b*:w�\u0000=�&]7榎\u0005=�\u0005?\u001c\t���JW\u0001_�\rҁ�\u0012��AO��\u001fs\t\u0002X��\\\t\u001b���\u001e>�ƶk?b\t�����dQ}J��F\u0004�\u0018�ԑ��M���\rVʃ�q������D�\u001eT��tK����N�Q'�PvA����t��dH�v@ФM����\u001f���\u0019D�oѴw?����\u0019�W�\u0014\u001bu�{�s����\u001a���KPðؚ�8\u0002����}�Zc�z�7=6�v�;T���9\u0005#�l(\u000fj\u001d�Џ�LA�{�6�'���]�w�%��ڝ�\u0003zw����K��%�:��=7#��\u001a�o�Ѥ$���\u0001��n��\u0018wB��\"��һ�\u001a�`&�*\u000e]�\u001e?w����\u0000\n��H'���{���\u001e>��R�I��H\u0014\u0014\u001bu\u001bPnr����w44���w?v*����뱯zo_\u0013��*\nM�]�h{|��\b=�'�P��7�>=\u0006\u001bU#�{\u0011�\riޟ1��\\\u000e�\u0000:\u000f\u0013C�}�^M�\u001c���)��̊v�i��dI\u0000Q�EDj݅iJ{v\u001b\u001e�\u0010}>l�UuN-�Sv!EEK\u001e;�P\u0006=�㐰7<����w�o埚5ؠ�.\u0016���$�a����i6�Fz�gi(���(6\u0011�C����k�{V���(�?� G�G��\u001cMWi�4q�ϒ1>�վF�/�\u0016�%�s��y�\u0000[�d�:M��\b�\u0010b�����5\"��j\u00107��G�&\u001d\u0018\u0012�BYrw�h��\u0011��It9��ǒƜ�ӟ������\u0000?a������\u0000-�\u0000,<�}���?,<ӪjrE�Ee\u001d����ika���\u001bEo,ޭ�\u0017\u0014rǔ?<����\rQ�k�\u000e\u001e\u001d.� \u0012 P��DO-�K��^�؎߄;|h�+�lr\u0003㏪�@����\u0017�r�ڔ�s4\u0012�����\u0013�A��h!�\u001aH�q��)�G�\u0019��HK\u001ec)\u0003�e�OK�\u0019�ƹ�/��m|����w�m ����)y-���7u������ߒ�T��\u0001RH��y��y7�rc��U���\u0017�\u0017��\r\u001bS��淑���C�~S򥍽���^�5\u000f2��G��\t-\u0016�M���\"xg9���1���,�\u0007O���s\u0006�O\u000f�\r�J�\u0001Խ~��q�hu�~��.��K�\u0010�9K\f0���A#y\b\u0000\u000f�\u001e���\u001f��/���\u000f+���ڬ�]>Q��Zד�\u0000/-�{+O��ri\u0016�WZ��/o��#���V���4 ���z\u0002t9�:��f\u001do\u0011�|�c��\u0000@�I�2;u���^�i����4�-?\u0011�\f�c(\u0002#�O\f#`\u001d�2�4h�͆�\u000f�}��kߞ>s�\u0004��k�/X�V�T��o���]O9Z]j�=�����aej��\u0016\r\u00043\u0005�q���=p�1c��G\u0007\u0017P\u0004�b��Ǟ�\u0019u��b���=>�\u0017���p\u0013:��jGir��u\u000fV���\u0000�.�hi���T������[/-y���>x��֭q,:\u0004j���\u0012�k~����j\u001an�\u0013�/\u0015���(�f�\u0014��u\u0018�3�\u001c����X�\u001c\u0006F\u0017/�ԁ���\t����\u0000������=��͊\u001a|�\u000elXdL��xĠ\t�\tCs���� �\u0000�1�a����r�F�������q�[�o�<�u��-|��\u001dcȰ�<�\u000f�nSO\u001f��W�QKgc\u0010�H�#�H��9t{c\u001f�t��XęF�\u001b��yY;�ݻ����'\u0006=d�ɇ[�?��x�Ê[�f�@\r������������;�+L����|���\u000fq&��~^�V���{��`��֠�\u000bx��\b�$w\f\bj��\b\u0003����j���1\u001a`7�D��G��8�Ҝe����7ׯ{\"�\u0000�@�\u0017�����.�J6��i�vZ�\r@ƶ�Ae5����}nXS�1!�jC��UT����2����@D��\u0000���\u001d&�@\u001d�����-�H�z�h���\u0019�ńwpj\u001e�\\��\"G\u0015���8���x�)��2|`q�\u0013�b$���\u0004���3±��\u0013�[�^O�?2<޺��l#��\u0011�w��m�J�j�}5����YM�Egikj�C���S�\u0019�ҁ\u001cr2�#��u��\u001da�r�\n\u0011\u0004��{��޿!4\u0018��^St{{�KoN�K�\u001fYa\u0002U��X�et�\u001c�@�#ԝ��b�ɔ�Ŋ��w�z�\u0003\u001e#)\u001b������e~N� ~c]~Jy\u0017�Z=��=�t;1��M�Iԭ-/\u0010~��^�Z�w��\u0012A^\u0014�L��^�jq�1��#7\u0004I����\tP�o�\"�\n6:?LcU�5e����F�2Czy\u001bTZP\u001f\u0001A��P��MmT7�߯^��넩=B�=7�^���@X�Y�z�zxu�r?�8\u0007w�9��^�=�T�\u000f�\u0015��g�%a~ǿ���|'�V1k��\u0014>���\u0007_4th�NǦǯ���\u000f��6ݱ&�Wjl\u000e�۞�\u0000,o�P����s�R�N߁�\u0019Q�rC\u0019�\u001ff�����\u001a�]����W�6\u001a\t�\u001a���\u0015�N�H�\u00039�\\~v�}�?![����~ۍ�Uͯe��9m�+�\u0013E5��\u0000�\u001b�m��v�o�,��|}��kg(����˦k���������|�Nǥ\u0010\u0007Zx�B�\u001eN.�t\fۂ:S�oj��*\t�\u0010\fO��ޞƀxd�ʒ7+�]��u�w�ۦJ&�\u001dPw��\u000f<�xm��2�H\u0014\u0018\u0010Ic�s\u0001�\u001e��d�*QV{����}�)�\u001e�I\u0007��tM��\u0011[0;ŗT���ެ�ʩA]��\t'�qe�ŏyH�Ϳ\u0014\t\u0004��~~Hy\u0019,�m\u0018�\u0001UR�\r>{w'=\u0007��cK��\u0018�¤x�Ʃ�����ۤJ)@\u0001�_a�f����b�@���1�&\u001eh�\u001b~9!\\ʓ�.\u0006���j�я;RU��W���ᓽب3{��\u0000��p\u0013�k�r����\u0000�\u000eD�G-فR��\u0005��-���H\u0004�?�p�PH����_���ߚ\u0012h>J�\"���f[Y�\u0003ndu*\b�n�\"b9�\u0005Y;<�njN=<�o�����6&����7R�����kRK4�R�#���m�$����8��v#����|\u0003�y���9S���q-8�Zp\u000bJC\u0016��M\u0007� ���\u0000\\uE������\u001fM~��\u0016�����Ӡ�؎���F햏l���C�SZ\u001a\u0001��\u001bg;��s��9_�9�ڟG��\u0015�5Y�֞F�(�x�Bï��>�s\u000e�\u0016_�w�'����>���?���N֧�\r�\u0000�ڔϕ}�۴A���ײ{�p��#��;�ᜃ�7_\u001a�m��,UJ]���r�0�L�|>?�\u001bd#w���\u0000�}կo�\\�4y/s�h{\u000f�I\t%�[�M��,���\u001dm/U<�v?����J�\u00165�3�Nկ�����Ȏ�M�5��~եiL'�T?��O�!d_z�P��j@\u001fO_z{��$\u0013[�ۭ��=�<>y\u0012H\u001f�\u001c�\u0005�+N�������WT\u001b\n'r7�M���r\"�&(�b�+����\u0003\u001e~��}�A@�\u0003a�3\\\u001d|�<�72S��\u0000?�\u0007��GkBD܉\u0007���y�˛\u0012I=\u0011Ԡ�m�Ϯ\u0016œ\u001a�\u0003�)���`��nҵ;���x����җ\u0004\u001d�5�]2'eRD�\u0000G˾\u0005L��X�|7\u001dk�>��τ�l~�8���G��\u0007+<��'���l�`�<ؔ8\u0015`\rOm�\u0000\u001f�Vy��;F�\u0015?Q���\u0019T���\u001f������\u001dA�\u0002�\u0007�O_|�����\u0011ɹ�4\u001f!����>k����\u000f\u001f\u000e��\u0015z֞$��)҇���P�ޣ���\u0004t��傻���6\u001e���T�}\t&�v�o\u000f\u001e�\u000f4\u000e[4N��Q�������B1������_%C����H\u0007ž\u0015��y!d؝��s�_��\u0010�����:�\u001d�|\u000e%B\u0002N��=\u0006�w��x\u0015.����ާ\"Em�6~)t�rߡ\u0004{x\u0013�\"�l�����N�\u001d^W\"+��j������Z�¾'��B�M�RR�i��;\u001d�~��<�rKe�q�B:t��\u000eiJ硯A��lOѹ�HYJW1ݺ\u0012i_��j��eT�t�\n�\u0014>$\u0001S�\u000fS�����U�ڇ\nx\u001c\u0005P�o]�\u001d:m�}�\u0015B9\u0006����/c����X��q�]��c�鲸u�ޞ\u001dO*w�BM�j�꣛���Y�\u0010+���\n�ו�\u001b'jH��9=c�_��n���-����\u0005n����~�\u00117q�D�n���\u001b,+O\u0016��e{;�}�00��\u0001�)\u0003��c�_`�p�z�.�\u0006y%\u0011^{_w��Z\u0007�ߜ����=��́��lЉ��映���p���\\��Z�\u0006\r�%��q��d�{�\u0007Z\r\rj5����-��\u000eQ�Y�x��ڬ��@8 ?�����ȟ�\u0003����\u0000�5������_��\u0012L��~yg�\u0004&�#���\u0014V��*�\u0007a�=,`����x��@؁E�%)Ng$��C�$���/�s\u0017����q�ȗzg��\u001bΖ�M�.�(}\u0016�e�w|���:G^5�L���hjc���@ܽߵ��,Q�Ժ\u001e�?{����\u0000���%��1�:���j�7��g}JA#L��IX���\u0006`�O\u001d�Բ�{#�{\u00177����\u001a�\u0012�(���U�0j@���`ɭ�����X$\u0006lS��|�����}�GP����k{�{�]�g��\u001bd��U��d\u0013�O\u001c,�[\r2�#\u0018p\u0016��XV��r{A�z���=Odk(��٥�G��<��p�|_����Z�\u0016\r~\u000b��|BQ\u0007�\u0007�?�6>\f\u000f�B)�g��䲝���/�-�U+�C\u0011X�\u0017-I\u0003�� Ҥg/\u001cr�2|��s�|@��L-����.a�\u001e)��[WY䤍j�F(8�\u001f�\u000eb��Q���\t-0�l;�\u0015��\n��X)��g7�p ӥ�6�KƊ\u0018#��֫7�.�zb ~\u0001ː5�F(�c�[��ɆYDr���_��\u0013�cB�ӥ���A\r���X�x�Ad\u001d`�w���s )D\u001cUE75'Y�&�<�Ζ\u0011\u0015÷/������ylj�\\��^�\u001a-䗲�}2�\u0000�SCq�Y�\u00100I$�}T-q\n0\"��-Feh5���\u0007\u00149�K\u001c���Y��h�qm;\u0011������\"����{-ה�\u000b�72�q�����մ}Q��h�ѫo\u0001���\te��\b@,M2�V|\u001a�r��#9\u001b46>~F��N�ͨ���ū�8�6�~��@��O\n�����]���̺�����׿�&{���sy)y��Ə4���V�ҡW߽\u0001\u001a<��BF�n\r_��u}\u001f\u0006^���\u0010��84�s���\u00022���`�\u0010:nh�}�����y���X�ͥ��F�u;�M.-B�/e��?CB�5�B��{ ���F\u000b��\n-\u0000\u0015�6h��e�\"@�W����G��\u0000b�^�X5\u0003�<1�\u001a�s�\u0004�9���c��\u0000�>f���W������yJ-\u001e��\u0004\u0016�\u0000�Z\u0015����/�Dj/��j�֤�P�\"��;\f��sOQ�\u0016=\\�\u0013\b�D� N���˕_��'�>�{=�͟��/M��2'!��s�\u0012\u0011�\u001e��nB���|�����\u0000�*�M��k�,�<��mv-GU��|��?�nu�0j��O�_[[�d�ծf��u7�+<���\u0015=�EغL~&,'&Iu�#\"I�Q?\u0007�=�����Ր��j�h�x�\"\u001aLP�!\b}1��\u0007.(����w���Q�i���^�\u001bA�tm:���:,z-�(b���\u0013�\u00067�m8$�pZr\u0011[�\u0014�v�\\:H�\u0001\u0013�Ƅkh\u000e�_���������ê˒~�����]�\u0000GAA����\"o<�{z�_����YtHR�\"�l���\f�[Ƅ�\u0002��Kn_l\u001e�9M\u0006�X���7\u0013f��^OE�z(�*0��&%�u��������9�^�cw�ǧkz�a��Eye]H\u0018�e��f�\u001dݸc�%�H�\u0000�#3]��<\u0018��5^u��;\u0013O�Lfy8|Q`��{��Y�\u0004:\u000f�ѭ����p��Gr�Fl��*�9A0�K#�W-\"7�h��\u0018�\b\b��3.O\u0012[w����&�\u001c�3K\u0014N���\u0018m�y\u001a2�:����JIB�f`�Uh�rq2�F��5�X�x�7����.��������/K�\"�o�y��B\u0017�\u001eX�cs�U���\u0005�Д*!\u0005��#�SC���݆5��s�\u00124��\u0014��cV\u0007w\u0015�\u0000y�\u0007��ӷ���������\u001fΗ..�#y\u00129\b��K�_�!�]:�\u001fKFӭ���>ӏ��,, ���\u0018Ȩ�\u001d�*\u0007�\u001e��\u000e�G�U��\u0003!�k��v\u001f�r�ˆ[�G�(��-��cKy�q$u��p�C ;zo\u0014�������y;8��s\u0006�\u0011�|����HTN�Oǽ��h�����ɖ]g���F�毬y^Oз���[\u000f�N+�\r\u0019�ju����\u001e9B&g�T��F�����j�O#\u0013�\u0013��n>\u001b>p�O��Ƣ������5��gM\u001f��4�@�\"(�+`�r\u0013Z\u0006t]���-�\u001d�O\"\u0007t������\u001f���Y\u0019wH�\u0000�?n�h|�����<�\u000eV��\u001eU��E�T��ݧ��#nP�v���!\u001d\te�g;�A��\u001bό�`�\u0010�G�0��\"91��Ի���|�\u0013C�\u0002�\b\u001b�Uj��\u001e�m�(\u0007��Ҋ�5\u001fGz��=𣑵@��G^��\u001e{\u0016\u0003���\u0003t��O��\u001b�I��t;W�n�����%D�(h��ù���`N�I�\u0003��Z�ڠ\u001cn�F�F^��:�\u001a��\u0000\\�]��W��ھ>�v��UޯZu��<;\f;\u0011��S�x�m�n�\u0000�\u0005����9*\u001bqZ�\u001b�h.V\u00009�b\t/�\u001b��\u0011�v�[g5!y\u000b���o�+�]�����m��ͷe\u000f�]��?Q�F?��\u0000��׷���\t�g��)��\u0000���\u0000C��qM�r\u001b�W*��W\u000fP6��Gf\u0000v�}��զ`�N7�\u00033�P��������\u0010���J�^5�74���m���y��\u001dÛ~�|*\u0000�҃��-��\u0017����A\\�E�\u000f��B췋�6i1���S7���ޮ��ѓ\u001f0!�*)]��C��g�g6S��!���o ��\u001eo�/#�Q��0�\u0001x��Gzv�Bs��\n\u001cI�\u0000WR�,����V�o_��~�|���u\"��\u001f\u001f~��8zYcm�7���\u0000���+�����\u0000�\\'d\u001e� j��\u0000?s�`\u0007z^j��\u0005�E\u001c���d~�C~���?�\u000f2%���\u0019\u0000�\u001b�^�}\u0019\\�[�$�#�G���\u00009��i<Ⱥ��-oj.\u00117���[�+�\r)L��)�v�h�bE<�lQ�..�;K�\u0003�K�B�]VM���}@i��g��̞\u001d\u0016 z\u0000�G�2�2��_��\u0000�Q��t������[u�?vv�����~{�8��z\u0018��o��\u0015@X�b\u0017m��\u0000�9\rI�C-,E�^��S��\u0001��ҹ��7/O�<���X���i�}�3L��;��7B\u00155�=\u000b/�δ��\u0000^c���R�\u001f�b��\u001f{�?�s[+_�忏��>T���47�s���=Ϩ{\u000f�q�V�UN_���A;\u0016\u0017�\u0011�{�{W�Ȏt98\u0019��N�����G/6��V�~�\u0000���\u0005P�\u0007_n����\u0006J5~j��\u0003�%��\f�ղ9�F��.�\u001f�\\?öʶU\u0000Tw�\u0000:�\u0018�wީd�\u0014����n�\u0005�荂\u001d��$��\u0000�sڔ\u0018��R[�_���\u001dN\u0000\u0005ړ��/a���\u0000�\"9��Y�5\u001a\n��}�\n��\u001cOR�\u0000�G\u001d\u0014�N�\u001d�_��͐\u0015����m�_���߅)����_�\\\u0005���h�\u0002+���\u0000^\u0005\u001d釮\u0002�o���k퇣;\u0007���\u0006\u001f������ly%�D\u001cԎ�|Ƿ߁�\u0006Kz��\u001d<;��� bwZ���\u0002\t;\u0003���ȧ�F�����݀���[6w1���bF����Lk�Y\u0015˚A,n+��o��Ș��r�\u0014*�[���S�S-�bkޜ��c��_\u0010s\u001c�\"\u0002������Н���}����7{5{�у�~���o\n��ޡ\\\n�������prOM��\u0014\n(*@\u001e?Ҙw���\u0003q]��+^���aV���{v�V�\u001b~�M6\u0007n�\u0000v4��ڻ\u001d��{\u0000=�q�מ�\rS���kN��T;R�:�\u0003_c�22\u0004��B\u001d�4��H����+B\nQJ�\r����{\u0011�+It�\u0016�b6��ߵ(1T�^�>T�}��>\u0007\u0001\u001f%Ke�'��`}���\\�B]&�MO\u001d�\u0000U\u000fA�d%\u0011T\u0019\to^iL�)�}�§zSn�Q\n�JiʤPu*;���\"�R[1\"����;�\u001di�wĥ+�һҽ���\u001a�\\�Z�J��^ǯz�\f�s�)t����v߽\b��;�U\u0003%w;lI��{x��*�zV��\u001e\u001d�W y�\f}�*~�����*��NE\u0000b\u0000\fw'���Y���\u0001 +ۿ/!|��ԋP�c򏖝���\f��v�\u0006�F�8�_�\u0007f!#>9���\u0000e�O���G����\u0011�#�M\u0007\u0003S�:M6���\u0017�'���\u001d��e��>��G��\u0007��睿1\\\u001b�DZڴm\u001e��@\u0005��amB`�O��qD�DEY��=_C��M\u0004xq\u0000g�y��\u0000C�j59�R��#-��yDr\u0001�ߗ|��o�\rb�E�n��[�V{���4�9\u000e�\u0007��FO�3q\b\u0003�r\u001f���|;\u0013g���~��Dy_M�\u0000�~����v�+O��Z��-�\u0004��*�8o�+pz(\u0004��]��#\u0014>$7\u000e{s�?\u0018�'2�\u000f͏�mGV�/no\"����O�@�\u001c�\u0011�8\n�\u0000\n)E͟d@b�\"� �by�����_�~z�\u000e���?(�ZWռ��=GO�4P\u000f)��nu��fJ�m��4�\u0011��6�:=v�X4C��~w)���c��\b���\f4�\u0012�e��(�������\f��\u0000�Z��M�\u0000�\u000f����N��j>i�����\u0000�4\u0018VWռ�\u0000��BE��ߟ��2�\u0017^W�n\u001e��*��i��(�_:�g�}\u001e���n��e�X0�r7����\u0000y!�Ď�W<{\u001d��M�\u0003ډiu\u0013�\\����������!�\u0019���o���I�'Д�j-,V�1���[x��\r�ziw\u000423M4PD\u0014p%A$�#`~rϧ��b���\u0007I����M\u0011�\u0013�.��֍\u001dլ�-��O��\u001aMJ�\td��\u0000�Z\\���\u000bV&��q�\u00101Y�]\u0016�_#��92���1[ū[��V���؂[;���jӽ���#�Q��\u001e�!@���=X�괒�`zw�\u001d���1ˆ\u0013�ﻫ��#���}����\u001d\u0016]3Q�y\u0004&\u0014��?W��[���V�� ��\u0004��S�\u001c�H�\u0013鮏W�tD������?X\u0017\u0016z�i}h��R��k\u0000�J�q����1����\r�@:p��q����\u001f�?'i�C&\"2�Hy�^c�#�>\u0016� �%��ڴ�,ҕ�=U*ј�rx��ļXВ\u0005\u0003lM7\u0019��0\u0007\u0010\u0004�~�������{��X�[!�5-V�K\u001a붒*\u0006�!�ci�B�zܸªV�c��5�1�M�\u001a�rs#��\u001d�_��ǻ���\u0000�����K�>M>��jsM[I-��Gw;�RI\u0004�n\u0005���\u0018+q��ըj%�)�cu��\t��b��e ˠ?��'�\u001f�����ޭ-�!%v>����2H�YI\u0017\u000f^�Z\u0010`�3�\u0018�FEs�r\u0000-r�v��Q�D�\u0018�\u0003���A���?fb�rc��J��Y�����Ϳ�C�]!��i��A=��\u001fF�\u001f�zw�\u0013\u0011s$kf)+Ƞ:��9 $GW���HJD��\u001fww����C\u001c��\u0011���\u0012:\u000f.��9��\u0000�EΧ�-�6)�g�!2���-'-4�q�\u0019�i�$\u0002���FGIJ\u0003\u001c��R\u0002\u0001�:_\u001f7\u001f\t��=I�>\r^�v�,8|\u0012EJ���w�����7cqyJ�M{moO�f:I��MN��F�涆\u000b&[�lfR��\n�ď���z���_��\bj8��P�����bh5Y2軧+ހ���ÿ0u\u000b�f�m�I/,��+k$�Q侽���o�c�U���W2J\u0007\u0012�S�Tf\u0011\u001cr��@F\u0011\u00124d7�[1?%A:+������H�1�\u00143��v�34|���\b>�d���'�;�\u0006�Yeg����/h���c r�y�y\u0001ԞB�� ���\u0000��\u001f��~T�a������\u001f:i��V��\"���\u00100�11p��~a��\u0000H��W�\u0016%m�\u0007�\u001d�줻\u0013����LJ_�\u0011��\u0010c�\u000b�\u0019y��\b<�\u001dC���~�Ƿ;l�ҐtzYJ6\r���tGH�;y�`�Š�����f�N,\u0015���=T�E{�-T���,~9:\u001c��p8\r\u0017�w�y����\u0010]�\u001b�8�,&��9�7�8��\\\u0011ZЌ��.�\u0018�9p�#���He�\"$.=�h~s�QFx�]\u000bґ�#����\u0006�ǎa�ќf�\u0007�6��X������ԯ\u0015�\u0001��z����p[�\u0006�T\u0011��8�\u0003���7q�]\r��{����[Q����e��`��UҵH�����!�2C:�rB�iJW|�\u0007b�u��\t@\u0018�bFƚ��ς\u0004�Ty��_���#y\u000b��\u0000�r��\u0012y��\u0011Y�Y�c�\u0019SZ� \u000f7�5��M'�Ҿ���\u0007��S�F���c�>>�ՙ��8'��\u001b\u0003�8��1�\\�<������87Ꭶ<�~�yĝ�}�ǹ��|��\u000f˝S�?�4;�\u001a噖�偟J�Pt�M�\"\u0006��H�����s�u\u001aL�O��<�7���>F���c�J\\\u0006�J�O?�<ņ\"\t��x޻���c�\"\u0017z�����\u001a���X\u001c��wuX_އ�]��\\w<�v�ܤ�{�n\u0001͉C�����|���U\u000356�e\u0019\u0018�\u001e5�9-���@I5��{{��!V�\u0002|?_�Y=Єv���\u0000�5�\u0014��@����\u001f�_}�'Ƞu�մ�s_��={\u0001�‡\u0001>���\r���\u001f�^x{{k�h$�����.�PI\u001b��4���\u001a|~��%�����/\u0016~\u001f�����t�M*�2X���X�cZ�^���ظޫ\u001c�{�v쀄��\u000b�?\u0018��k�Yd\"��\u0006=�OP��SL�K����\u0018��|\u0007�\"?1����?f�\u0000�\u0017c�e`\u0006߻�\u0013�P\u0005�:R�;-T�s�|\u001f�#Z����馍^1���׷�}���<������0Ӆ+N�EF�\u0000F��73��ZYUW&u����›u\u0015\u001dM3Q���ӝ���xV\u000b-�>�\u0019\u0003a]�|�c�œ���`�\u0000\u0018�:q���\u000f乥����\u001fp�s�_n��C�^�#�\u0000\u0019������3�z���\u0000ݜ��l\u0018F���\u0002��m��l�ym���f��\u001a\u0010\u000f]�O�<2���(t���\u0000��H*�����\u0000QO��ǥ�ѕ#je��ͱ\u0002��O�\u001d��u\u0016�5�S��T��Y\u001b�&�\u0007z\u001e���|��h;��R>\u001eǸ��t�Q4<�\u0017bw�:�jก�O�\t������7Y[Q�SR>{�\u0007f�_�\n�l@��)�|N��\u0006d�$�YN�Њ������\u0014�F��;~�\u001cء�k���:`<�o6\u001e'��ڟ�;�V�s��xo�}N+�\"\u0011��v\u0004{m�_�;R|��^D�k��`\n�*(�T����\n�~�U\u0012>\b}�+R=����;�[rK�!\rS�nی\u001e�\u0011ʺ�W6�S�j�?�D�Z��ƤJ9\u001f?����v)��\u0015#�O��\u0000k)�\u0005Ʉ�ߩ����\u001aP/jt\u0007���j��f�H\u0014#�E\u0018�Ǧ*�C�Q�O�=T���6\u001d��S�\\*�\u0006��Q�����Vq�ڿ�޻biV\u0011��j���”Ȫ��\n\u0011�t�M{\n��4���_��\u0000\u001c(C�5�55=:t�w�D�#�\u000f!\u0000P\u001e�����'�\"\u0006�BK�zP��؎���F���K�\u001d)���}q=ʖK�}�����%R�?hu���#�\u001dҖ���Z\u001e�?��ȑ�z%����Z��b{u9Q��ζK$\u0015���\u0004�x��p\u0011��\u0016�Jk�WaӯM��r\f����{u����2��w�!+���oz\nץFC�%Kd;��;\u0003��`?�*�s��x{xu5�|\u0007�J\u0013wx�E/,��(�Vyef�\u0016(�3�S�\u0007\u0007\t$D\u0002fy\u0001�>�\u0010M\u000b;\u0007�y\u001b�/̾m���//�b�R$d����$�\u001b��dH[d�k�R:��Ӳ}��-v?�k��U�|��\u0011�\u001f����{G���������y�ך\u000f�����\u0010\\�>Z��5�eX5-o���]\\oIa�`mm\u0011�Ux�\n����g{3ٚ\u0012?/�\u001c�}r�K�g��\u0000����;ʁ5�?\u0014�\u0007�r��~\u0019�~W\\�K�F�\u000f�2V)`�ukR%���Xp:v� ��֡\u00004�A�l�3��v?�\u0006\\��K��^~��G�W1q�x��'�|��y�?���̿9�a�:滩M=���Kwq;H�ұg�F��v\u001b��1�\u0018�1�p�\u000eN\f!\r�F��R�/yj����+qvf$�\b���^*��U\u0010���f1)\u001f/�Ɍ���b��\u000b�q�cF�\u0017�5K\b��\b�d��+�\\ʠ2�&�+\u001d�:\fs�\u0010�\f.�O>��\n?���\u00009E��d�&�,�\u0004\u0011�c�\u0005!��\bܞJ\u0010���e-�\f��jϹ��A6����M\u001d�zeŴ��R��\u000b{\b�\u001coou\u0019ȵ���\u0000�\u0000�\"r=@l�����M2��\u001d\u001f�#��d\u001eb�It�\u0015�ܚu����g\u0006���ח3�\\]�G��b\u0018%�����\u0003 C���Ƀmlq�C�W�����|_�G?�'�yB�\\���L����餾�#Ѯ������HҮ%��Z_�\u001by�4�=6f���c�́$׈.\\1�\t�UtO��f\f�0�!:ߏ�o�>��\u0006�\u001d���繲��N��R����&�I��\u0017�[�mJC��+\b�S�p$(U�<�L2�yzA��V�7�\u001b�-�|W�����y\u0004�#\u001e�\u0012C��a\u0015�\u0011Fy��MY�d�B�C\u0018,\\ՙ�r�@���\tfᇛ�{�I\u001c@�O?�\u0018��,hg�\u0001�\u001cV�$�ʮ~\u0012jA��F\u001f7Y�0�ϒ�>\u001b]Jv�\u0017q%�P�Hx�ukhx\"CN�,�\n\u0000�\u0011Jr\u00072\fx\u0005����_��}\u001d�_�O���b�Uմ�-��6�IbM5�$�I\u0001��y#H�\u0000�l�B��3\u0007?�WC��]��\u0011��\u001a� |?c�#�qp��\u001a.���pE�.���_[��r4�˸Ⳟ�\u001b���\u0010C\u0016�;�\u00124�Sī\u0003L�O�r��1|7��w\u0007�w�����\ff\u0019e!)p�\"G>�\u0000�$o]�<�ji�˩�b��P��u�q雤E���>SC\u0019��M��hy\u0003$F�����\u0019��A���}����N,�\u00119.0�\u0007��5@��\u0007�=����T�����ׯ��a���kͷ�\u001e\\���\u0012�\u0017�?�l�\u001bO*y��>�\u0014�A��I�{�Am\u0003\b�b��0�;3\u0001�/\u0006B1��}\u000f�cO���s�Y�\u0013�d\u0010\u0007\u000e�\u0001��y\u001e�6���W�>X��򥕌Z���-�^�js٥�W��c�\"�[X\u0015%�Xf��8\nb�F\n�HB�v�rd��\r� m��æ��vD�c��Yp�@\u001d��\u0003��}�s�JUգ���l��F�-D���.�U��\fZ4\u0017�\u0015�)x�h�uBj\u0004��#�켹3�r���{��ܝOk@`94�\u0018\r��l+�}�g��\u0010�,�%��������ީ�yk�gI���\u0017�\u001d��y\u0006����~^�X�y�˶\u001a�Ă�R��/�3�+#�f8٨�>��\u0000���\t���?���\f���c\u001c�\u000f\t�Lӗ�J\u0000�x0\u00113�\n� \u0007�\b?0���\t��\r<;\u001fG(���^g\u0000E��\u0010\u0007�`�\u0019g�G{��WO���q��\u0000��\n����Vi�e\n��]\u00125����n#�\u001bg��{�~9�ʼnu�|{����1��������v�\u0017��-�W11\u000e�\u0001\u001f\u000b�S��'<_1�fq����|vc�>����ϖ�[gJ�\u0011�\u000f\u0011P�(*H5\u0015ͧgKz��>�X$�WK-\u000b2\u001a��m %�\u0013V�\u001f\u0010]I5ڻ\u001c�e\u0002@\u0013�\u0010�:�`�S9��\u0002\u000b;��\u0002ф�`%�&����(�ҙ�\u0018��y�ۤv���g�'��w�N���2(�\f\u0012�SDŽ�\n�\u0019���\u0007(�\u0005j\u000f�w>�ha�vl{�|^���\u0010�Q s��c?�?�v���m6H�K{��f�f�v,\n��-\u0003���:e��vAˣ��=܃_���\u001c�@��(�/�MOLм�ɥy�I��t{؀��Q�.#��i\u0013�Z\t�\u001f�Ы)�\u0011�?g�\bNX�\u0015Ȃ\u0001\u0007�\u000e����\u0019q�1�\u001f�y�7\u0005��������X���M�c����n�\t�~�M\u001bZ���\u0015��>s��Ł��=\u0013�i>��&�~6<�`��׊\u001f���%�\u001f{�SO��MF�Gִ��#V���֛�[�my\u0003)�Z)\u0000�\u0019#�u,�؜�dœ\u0016N\f�1��y���E��\u0019�c�A\u001fw��V�\u0011߯��9]\u0003`�d�i��\u001e��|p{��\r��~u�I\u001b��\u000e�\u0015\n� w\u001fG}�\u001e��\u0001?$���o��E~^4�;ҝ��h1��m۾7�G�P]�G v���'�Q�X��r7\u0015��\u001d��}9���rp٢�\u0012����\u001f\u0010\u001dw���s\u0012�������S�\nz���\u001f+�L�v_��\u0007�<�~�h\u000f�᩶�(�;�k�le����\u0000����s_�^����5]��Q�a�˰|{$�u\u0003j~?p#5�r\r2\u0004��ۋ�}����|�͛k�\u0013��%\u001c�ҧ����ÿ�\u0000�`T��hh({���eD�\u000bA�BI�\u001d�f�t�\u0000k/��n96|�Ʊr�\u001boJT���L���q�o@���t������\\���\\�x�v=6��׳�\u000e9�VA�!�ܺ�N�_��k��\u0016=6�/�� \u001d)�\u001d�3��\n\u0016�H\u0000G�y3S�~��2~m\\�\u0015h��~�(�ꃶ��w?����ꏹY\u0005\u0007������\n��T�zl?������^~j\u000b��t߿�\r�.j�\u0004\"�'슟����Bk���\u000f�\u000f0����H\u0001\n�op2���myd#\u000b�O�?<�\u0012뺝��b���8��N��|Ȧq]���uw\u0003�����lB�r\u001e��\u0007��tu������T\u001an6bzuޙ�>���+\u0019��\"l�n����뫆*(n�\u001d�he;\u0002;��}��$�K\u0003փཻ\u0001<�\u0007}����<\\,�i@8�Ƿ�\r\u0006�\u0006vYM��>!�1�e��ItqE��\"�\u000f\u001c�s�v��i���m8��\u000f���q�L�ͽ\u0016�[\u0002����\u0011��w�횜��\u0000M�n�N�G���\"�t�{���1G�y+���w\u0018k��z\t\u000f���乭�����>ǿM��oo\u0007�w���~ȟ�\u0000<�R\r���3�\u0015[rzﹿ�\u001f�\u0000�P����%��eʘ\u000e�x?��9I=ܜ\f��Ւ��oҀ�\u001f�������5�W��\u0000:�Ɋ�\n��\u001cA�\u0000?��\u000eh(\u0004�+U�c����h �\u001e�m_�\u0004T�=�}�\u000f&[�\t=�O����\b@\\�zw�M��1�j�zl[��~^�\u0000<�\u001a�J;�Zދ��:v�����%�ǾƟ�\u001e�~D���(\u0018��\t�ڿ��\u0012�*\u00121\u001d���7?,\u0014���\t�5��}��ߦ$|��E������\"�'��_v*������ b�-�\rz{x��b��n?��c\u0014������a4�~�\u0005\u0010��/}��\u001fצE�Q�h+��\u000f�4�*�\u0011�OrkS�Sޞ\u0019\u001f���rBΤ�\u0004�u��\u001fNW+�\u0015�O\u0005\t`\u0007��\u0019\u0002\u0018ѵ��U����xe9;�\u0007����\u0018����zf�yrj�tۯ���\u001f�$\u000fxU^;t�q�Q�\u0013Ө>'�\u0011�T\u001cUO�GJ�OՂ�\t ��\u001b�]�쑥C0�\u0007��=�\u0000�dJ�C=)M�J�r:��{�\f}�IO��Z���\u0007\u0013�*]!�F�\u0011һ׿bi�\u00075Kf�����ø鿎BR��-��${�\b�@�@��J^�b\u0007�ξ?-�>E1\u0004�rliA��^��q�es���*��c�}�\u0000Uz\u001a�\u0006��\tT��O���dvA��Pw�Ӷ�{\u0003��h�@\tT��\u0001�ڛv��4镓�,��6-�\u0006���\u0014�+7�\u001f��?0$����Ѽ�g'\rK�\u001a�������\r\u001bR�*>�\u001e\n~���c�\u000e���ŏѤ��z�@\u0011�\u0007R�k5�tB�F}�t���ˎ\u0016^J�Mk_.b��Z��s�����q86�}�/���*w�]�/e�=�.\u0010'5o9o#��\u001fti��K�sjv��t\u001c���{\u001f��X,n5\u001dJboo�3�7�I6�+C��!�r\u0007_՝>P8F8�#����ɳ�y���~|�\u0000�g�\u0000�T������Z�X|ˬ�6�l��Y�t��)�Ӊ2\u000b���R(\u0014\u001c���D�#.[�\u001e�ɫ&Bv\u0015\u001d����/�'�Z�ޫ�O=���y��-\u0018i�i\u0018���G'~D�k�\u0006C\u001d�G�\u0006�b��ՊY[��}\u001cK\r��\u0002E\u0010D�E���K�H�w$�E]ueu���$�\u0000�t����k\u000b��h�Ӡ)q$P�\u0004vJ5\b��;��\\=0�@�j&V(ٻ\u001e��'��~�Z>�\u0016��#)�V��\u0015Q��I\\�U\u0000.��3\u0006Q���{un\u001c X���������^k\u000fX\\��o��\u0005�\u0011<[Eo�m����}�0�\u0017��\u001b\u001f�_��;F�7���Z�\u0001b�e\b\b�6�$�\u0005$~�|4B��è͞�|Ѯ����{�y�\u0000Ϡ|��L�3���\f�o���g�.�\u0006{�=%,�\u001ba&�ҵ�6��'�/�i�E8�L�l��t>@S�����,�\fg�!�-�ߟ�%�慕�j���M\u0012�m\u001c�R��sz�^��\u0016��ne�@䈭\u001cAQ@��N\u0000\t\u0003��\f�p\u001b�O�.�m6���PB�D����:D�\u0001\u0010 �[SNmR�F\u0003�\b�u�!�\u001c;������>�%���\u0015��ެ�\ty�ŤZz[=�Y\\$\u0012�%�ѽ%�H�9���Y�J�\u000eY���^�c�E��DA�>�w韑�\u0000*�\u0000+5=T�\u001a0�u�O̬�4\u0017��F{��,��t��u��}3U�\u001a D�$�W�\u0001�g�8�GpI�\t\u001d7��\u0011�����.�xЁ��_:;�\u000e�n^o������\u0000&�z��^��\u000b[Kx\"�����y�g��ͯ\bb���};�J����gXݢ��C\u0016�s3\u000e�\"G\u0012\u001d7�F���\u0010>�u���0��泒C�4,����rE�V\u000e��O�-CE�/��\t�е�K\u0019���N��\u001a���\f�(���Լ�����&���{�1C�ۂj^a�t��\u0016�Q��M~�X��\u0010k�ZZ��?��2Z\u000b{\rF(��\u000b�\u001bSPgB��Yc�´��\f3Հ1FQ#qߵ|�6��ã��\u0007(���zO\u0014M{�:�x\u001f��g����'�\u000e�\u0000��n����\u00001���U�U�0��m�6�=̞`�^��Zܤ�\u001e��h\u0016��\u000bJU&��E\u0018�\u0006m�d\u000e��v����Fl�����Ѐ��k��P;^���˴����K�ә�\u0018�\u0015)�O�#�\u0000\u0019Y�B�?�?��{='�r\u001b�}\u001b�\u00008��\u00009I�\u0001���T���~��o9hzN�\n\u000bM#L����gH�}�MUg���,I~.�r5l��\u0001��/���U���z�A��\u0004��7��G\u001e(���\u0019�=h����\fݝ��\u000fdGi\u0003/�^���d�\u0016L2H����0�ϡ}a�\u00008c����d�$��IW���ߖ4�1\u001b\u0016ux��.-Pk\u001at�kYl����\u00009��\u0000��bf���M?W���\u001e�w\u0013~a��\u0000�mژ�s���L\\F=ƽC�v\u001eD?`�8C\u001cQ���\u0011���|\u0007~\"��>�\"S2�1����\u0011\u001c��;X�[�IO\u0002�U�\u0003Bv\u0014j��\u0011�:Y�s\u0000�k�\u0019��ຝ��R`��,X\u0012x��\u0011�fQ۶t��X��K��h�w\b+��\r)�\u0015x牽9\u0005?sQ^,�����\u0011\u0013ͷC�Rxc�\u001by?\u001d?�45Y$��d��������bT%�\u0011����=3ٸT�O�^O��|\"G*���|\u001b�\u0005��y���_/jk<�h5�A3FX\"JgP�\u0007�lzV�\u001f,�S���삽\\?e:\u001d6|�s�Q\"�������[�qy���&�\f�:^���zџ�̈\u0018���\u0003��>M�\u0007O��9\n �}�C����c�32�\u00180\u0015SB:\u0006\u001e5�w�o\u0001$\u0011ȹ$���?3���o�\u0018�Þo�\u0016׊��'��\u00168��\u0016��w\u0004�Z\u0016?\u0014\u0012\u0016�׵w\u0017�\u0016\u001a�\u0011���,w�8����=Aڪ��0��>]�}Ǽ?,?4�\u0000.<��I�|��e�_Y\r·�[�&��\u001d7�\u0012�ɛ�O\u0016�x*^'�R\t�V�z<�\u00197��O+�`��\u001dc�b�\u0004섉<;q\u0001ӑ�\u001e_wW�K?]��k���s\u0010�\u0004ud�KuJ��\nt�޸�ZK%����\u0000�\u000fl�*\t��N��O�`|+�ES7�OM��=�}�o���j\u0001�RMF���z��i�㚍q\u0015�r�\n\u001c��W��5n��4����3#S.`�}=�\u00008�u_12��\"|~,�vQ�H��o�~�yvJ�4��W�n����\u000f�E���\u0003�r\u000eJi��)�m�q���Oh���h�����Y��\r=�}��ԙW��\r�@�3\u0012+֝G��r\u001cD�3\u0014\u0010\u00138��\r��^�|#r�㞕�\u0002�P\u001e���=�s+o�P�OE&�\u0005��������\r3\u001b�\u001f��moT���3z���\u0017�+�ʧ\u000e\u0018\u001dNx��/�Ȁ�\u0002O���\u000f&�����⫿\u001aT�)�s�����\u000e(� ?��#��+%� ���U�����F7�:3S�\u0002���=PË�?\\�\u001f�s�9x�8F�n���\t���\u0003�\u001e�W����,�\u0003)\u001e\u0018��?<�\u0000�$\u0015��x)C�UaZ|��E��>�\u0019��P¿�_�/\n\f�ó�c�#��\u0012�X�d�����?��\\m�軕J��QJ�vS�s��=�\u0007�;v\u0015�\u0004u\u001f��-��$}�\u0015�]��49��Y�z�=\u000fM4\u000b�A����&~oG�'�_6s��@{�i�\u001f����}9=\u000e���5Mt�\u0000��\u0001_��:�O��f8\u0017�!��v����?�\u001f_�K\u001a��x~���g����\u0000���?_�\u001eo���\u001fs�q�\u000fa�Nq;�޿�wom���M�P����÷q��S���U�(��o�VU�\u0017\u0003?4]�\u0005G�:�����>�iF�\u0014�߿��˂�7�(v��\u0000=���\u0014\u001d������{��A�-�#�tlK\u0001�u\"�\r�Pz&q�@\u0001�����ᾝS���S��\u0000}�\u0013\\ѵ츺\u0005#�c_\u000f\u001fll\u0004�΁�j\n\u001e�����]�\u001d\u001ca؃Ԏ�u���\u0018~�|�\te�\u0014'o��\u001f��\u001dz%N�[���\u0000Q��\b݊�\r��{�0*����\u00003��\"�����U���ݎ�ۊ��nT\u001a�+�n�v��eK��p+���,\u0004|�lS\b�\b:�J\u001a����\u00074��2�C��6�w�dO��D/�*\t#���ǣ!/�א\u001a�Q���v�ɰ\b����&\u0015S@� �?\u001c��G��\u000e%<�G���\u001c�gj)\u001d�����\u001dF�5�4\u001f���T��\"��\u0015�J\u001a\u0011��?���Q��}�|v�^�c�[*\u000fo�S�\u001d�c�WPѷ޴\u001d>b�zc��h�\t�J\u001aӯ��P�[��U�������\u0005W5$��%hH#��������\r�s���m����\u000eI\u001d��>�Ҵ�F�D\"��|G����\\�\u000b]Pr�|zP}�G�2?r6�I׮������*_(�M����u7��*�I]�@\u001dOѶ�)�*�zR�j\u000bW}�)�ڙUs�F��Zӯ�N���9\\��g�IQ˧�>$�#�\u000b\u0017�$��}��;�ni�\n\n�8*��ܔ�\u001b��z���:�� A�۹)4�\u00103�\u0004QZ�!iM�=�9\u0002\u0000\u0016z+ּ��Z���y��f}#�+Yl4׭���O��+��G$|S\u0010\f�d�����erv�\u001a��\u0012���9K'��a���:^��xi\u0001Â���\bo�o�~\u0016+��W�F��T�i�n�\u0015�zu�*\b�\f2)\u000eM>&�&j�=�A�X��1��!\u0011@r\u0011\u0003�\u0014�:�^|�#3}��ſ(���MM��J�\b\\����3�řE\u000b1;S|�d�1�\b\u000b. �\u0003��Ǹ~x�eZ~]y\"e�u�V����5$f\u0011�\u0000��\u0003��\u0000j�ܳ\u001f\f�ŌO7\u001f�\r��?����j?�v}�>\u000f�O���/T󗙵=R���\\�)�2k���x��N\bZlNt�`0����8��o��'�\n$Ԧ0\t\u001d��Eۓ��2z�jW�Q=�NU�8�>����|'�.�\u0012Hʲ�\u00162��7�\u0000OU\u001drq�+���\f����_�um\u0006���E\u0006�\n��\u0000���Z�\u0004��w>5\u0019d�NǐXP��yo�_�f�ӯza2HM�W��R\u0014�\u0002�\u0005\u0004\u0006�\u001bv�'T\":�A�H�z�=n�\u000fZ]B��Y���Xb~K�\u0013Ș�դ��j�*���$* 6݊�)��Y,��Fv��T�|0��ÜF@\u000bN˱$�r��d���\bu�\u0017Q\"#*�\u0002+�ps�\u0016o.�~c�9�6��\u0000��b-\u001a~�0��sQ�!���FlpB2�(����\u0000�8]�\u0019J<}F1c��\u000f���s�Z�\u001f�ڷ���Eϙ,aT�E\u001c��Ѿ�PZ��n@��\u0019���N�\u001e�B��2\u0011�ޝ�f��ͦ����_��6��\u001f�#�ߒ>J�-��fԼ�a\r� \b�\\�=].�J��\t~�d�V�\u001bzS>\u001e��q��|_�_�_������U��mLy\u001c\u0011\u001c���G��3}j�a\"0W�J��oކ\u0006�\u000b�)\u0017K\n\u0002+�/P\u000ek��0�vy0�\u001f���Ѣ[t\u0013-��'����o3#py\u001e)8q]bVd\u001bt\u0004���i��\u001e�}\u001c�����2\u001f\u0014\n���\\�\u001c��w�m�A��\u0000��\u0005�ȼ��[飺\u001a��(�u4��ƭ=��{\u0019�m�`�젎�\b�1�\u001d�`��w���62a��*�7���\tϙ<�\r���]GEmOH�X���Rҡ��.$��(l�g\u001c2_;�\u001a�Q��gD0;�\u0004\u0018d�\tq\u0011����NLjQ\u0004K��n�?7��]>�4�����O\u001c��\u0019�����)ZV�e�\u0015�[[ij��8RUxՁ��e�\u001b��}d�Dz�>O,>h�����4H�\u0000R'2D~ ���\u0004�D��Bv�׸\u0019��\u0007\u0016��kxE�ٿ,�1�W���BoDp���Gym�Cqn�\u0011��.���4��� �*�Q<\u0006\u001f�c��t��e}w�0C�7���r&\u0015�T�dӮM���ug:�\u0016�w\u0014w\"�}n����&�G�\u0019\u0018zAfF\n@\u000b%\f�BQ\u0017\u0010.���&��s�˫<��ӖW\u0011\u0002\u0005��u|��}��\u001fʯ��-J�/�fi\u000f���=WJ�D1M6�i\fK}y�^���\u0004r�,QMs,V�\f��L%2\t8���Q�\n�\u0005�w\u001c������{����IJ�C\u000eI@�\u0013Dr\u001b\t\r���nvAj\u001f��.����Y4�t�Ϙ�e�e��':>�5\r:K�'�����K{�Ӻ|\u0013�n�Nfy��Jfp�\fx8������t�%�_ٵ�O�Ŗ�a �2�\u0011�5\"\u0001$�\u001f�2\u0000P�`ԇW�^y�_&��ȵ] ���\t�\u001f0�YIq��u-��4���\u0001��=XN-f����\u000b~e٤W\u000b���L���L�4��|D�s�\u000f>`��U�\u0012��ibL�N\"Q\u0017�\u001b� o���}�@_�������\"������\u0011�o� �K�kw�Y-��\u001bk\t'k�Z�9���E���l\ro�\u0002r���G\u0006\u0002(�\"�!�\u000f�\u000e��������í�p'�n1��'�c��@9F������\u0000?���:��o��䅎����A�u�̭oJ�\u000e)��\u0017V�\u000f�&�e4kߨ�J�;���h7\u001e�����G�\u0018G\u0018���=�D��?�\u0000\u0004-G�tz0E�S�G�\u0011�-�O���|_�{O����?�����Mq�Q�_���\u0004V\u001a\\��!��tK�;�q��\u0017�\u001c˶̣>��ڳ��ؾ�`<:���a2=�≗��|K���\u000eПhvFPN\u001e��d\u0003��������\u0000��T�����\u0005��W�p�\u0017�[�\u0017��淒K˝3Q�H\u0018\u0006�).-\u000b�GM��׿�T�i�p����S��+��8�������,���è��\u0015\u0002o���������\u0017��Tմ�\u001b�J��🁃�Vd\u0004H�*\u0019hzvφ{K\u0001��X��~��=.X��\u0019������Q,����@��o�;Wm�[�\u0000�\u000e㛓��2��<\u001b�6��0��RU\u0019�X\u001a�1=�\u000f�4�ΛK!(�L�\u001c�fPA��y\u000f�<�\u000e�\u000b,�=\u001b�\u001aH�\u0002ֵ\u00040^���~�����7�C�{��?\b��\u0000��U�\u00009�,�4\u001b��IW���s\u001b�@��zGt�J�;���!�0����LBq2\u0006�~{|\u001f��Qye��h�\t\"��'-Ճ�V��h�۾z�(\t`��?��x�U����?��ל��O�?�\u001e�D7���ʊI�ЏMU�\u0012��Pw��>W��E�v�Y�\u0007����[�gPrv|#3믻����U�6�ط\u0010\u0001.I\u0000���\u0007�r�\\#%}��4�$�k���*\u000b�fFU�\t�\u000e�@ž·\u0016݇ʹ�h4�@�~\u001au\u001a����@�#H_(~lyb\u000f/����v�\f\fބ:�\u001e���p\t��[����G^�����c��*\u0011��\u0018�Xe�\u0010\b?\u0003��Q�.�E��h�y���N�>#{���?��\u001f(_z�>E�\u001e��\u001b�\u0005���9�Z\f�jQ=F+�YG��v��r�{\u000bI��鸱��\u001b��)6\u0007�_\u0007bNLg�\u001c?���!��\u0017������O�\u001cż�Ț4����ӥ1�<�s]��}\u001a��Gp\u0010����Z\"e�7�\u0014w\u001f\u0011�7� =��\u0019\u001e\u0013q��y\u001ft�������\u001d�-�_�=Mzv�ymK\u001e������2<�G)o�C��kA�}�����k����{�����\u001f�z�j\u0017�+POZӧ|���Gw+\r�)�C~}S�\u000f�M����s3�2<��7���7��!\u001c��U��\u0000k6}�*�Q�m��ߛ�\u0003�3r�7?�����v}̈́>@�\u0000����B�Wr��xxm��x\u001e\u001f���v���Y\u001a���~\u001d)��\u000b߫X��Z�w#���ƹ\u000eGv\u0019w���K5W��|E^�����\u0002U4�54\u0014\u0015�x�׽5�)��!6=�M�<)�F\u0013>\u0018n�\fC���h��H\u000e��&�\u0000�~������)׸��ga�`��\u0001��hq��\u001c�/�m3���\u0007�_�ᚬ�·\u0011�_s=ӆ��\u001f���7�]��l+�6�4�J\u0003Q�O�9��\u000e}��\u0000NU����kҿX���4o՘�����\u0005���.?��ߒ��\u001d��\u000f�9�Ƿ��8�\u0000Y��������A�@��\u001fO�q/`���{�\u0018�ʇ�����> �<�j�g��VQڍN���\"\u0005ݸ\u0019�ѶOTS�v�\u00001��$9��\t�\u001d<>^�\u00190��\rw\u0015T�;t;�\\��HbW(RB7\u001b�q���h\u001b0;\u001f5\u0015�\u0000ـ��Q\"�J���Pw��po\u000f\u000f�5ĭ�l\u0011�{����H\u001b�r����ۿݶ\u0014\u0013�ǥ4\u000f���\u0005 P��ih�\u000e������l\u0014\u0003�$���`��9y���R���\u0000o�EQH�PM}��;\u001d�2\u0016+fȍ�0�R;����\n;l˒��&�\u0003n�\u0000NS=Ž������:��G�;W��9w5\u0014b�}\u0003�Z\n�5���*\u0005<6�{�O����*@�����*�RI�s���w�\u0011���C�>�\u0014�w�*\u00166��&��\u000eJ����O\u0013�\u001e�\u0014�\u001c��@}�m��\\(C1�\"��ʾ>9\u001e|��D4�\u001d�M�{�\u0000\u0012r6F�h\t�������A�)\b\u0019>�nj\u001f�\u0018\u000e�;��z\u001a�\u001d�\u0000�\\�\u001e���v=v�o֣���Q�J_1�k����m�D�d({ҙI�Ԛ}'zu�H��6It�c^��#��r4R�\\:�%��q�aN��بg�V���g�#[�R\u001f-�\u0014��ֽH�x�\u0000��O\u0000]\\�\u001d�\n�7����i��d\u0011�����yG����u}����9\u0003>��\u001d/�_�>@xnM����qRH�\rz$}2�A�{=\u00123贈z4Ũw9�vG��\u001d4�\\��(�/�9\u000f��ƻ�\u001c�\u0007\u000e\u001fLO���_8�t~f�j��Z�|&�0�cVc�TG\u001ck\u0011H�KƅE\u0014v�;�&�\u0018Ȗ1P�~-�<�$��&�\u0013˭\\���5`����\u0015�a1��¯\to��=w�:\u0003\u0011�<#~��ǔ���o��\u0000%R�xl�R\u000e:f����h�r�\u0003s��\u000f ���<�P\u0007%���k{�x@�??��>�\u00006Zmv��6wO��\u001a�yn\t\fde!Y�\u001a�E5\u0000m��\u001f\u0011�,2\u0010!�<5����7⟘�%���+7�#�\u001a��\n*A.\u0007|�e�\b�c�_T��zj�#�h\\\n������\t�Q\u0011\"x�\t�هG��V�\u0014��N�����\u0000�0�\u0007\u0019x�/�\u0005}�s&\u0010�~e�\u0016\u000e�l5;\u001d\u0013I��5\t���m��WzI\u00040\u000fRIرU�U����\u0006\t�@\\�~6m\u0012�}�g��W�V����ƶ�g��˖s�mkd�_�B�T^\\\u0015 �4��f=϶\fP�\u001cr\u001e�~^A��LY�=\u0001�<��v���y�T�д�R$!\u0012��(mb!�&���\u0004P��L��c\u0013�c���W�\fr�kc#��b�[��\u0012\u0015��K0V{�ޔ�\u000fs_�o{\u001a�n=���\u0000\u0007\u001b1���g�?��g����\u001e�Y\u0012k�0y�PE\u0012\u0014\u000b\u001cڍ���4,Ο~K���⿈ȟ�D���3���Ÿ׿�ݔ~y�\u0000�\u0016�\u0012�U\u0010��\u0019�kR�|_\f��[\u0014\u0006NJ\"�v=kZg\u0011��G���y��G7��K\u001e=6Z�\u0003\n�\u0010\u001fƗ����!�����Ʃq$-�o:k�ց\u0012\u0000Mޅ�{�|� ���E3�z}��\u0014ω}��d��2��\u0004\u0013\u0019WB\r�����?e�\u0001�1ɠ�gLܡ38y�[�����ޱ/ @�֑c\u000f\u000f�Ȫ\"pX��5\u0001e \u0010\u00056�'9P^��!%�̨�_\"�&\u0006S),��U$��FI-۽\u0014�\n)C��a�XĶ<ڒ��ᣊ+�i\u0013���)\r͹�y�`����][ %\u001a�'f�Ng�;RZ[���\u0013��wGڝ�\u001eЮ\u0019�s\u001dj���\u0018���ՠ0�1�`���[;�#,ztֶ�\"��H�\u001e����\"��%j\u0002�AL������q����~����\u001b<\u000fhh�ݓ���ơw\u0019\r�!�z\u001f�7���r�^]Lʬ�m*G}l�\u001ea$�\nC\u000b�J&�F`�Ə�O.F�\u0005�&�c�ۢ�D}}�;Ԛy'e�yq#��Iͤp7��}>-\u0011��\u0014<��M�'1��Q<�v\u0012ԉ\u001fO$V��^Z<3Eu\u0015��#�\u001c\n\u001eDi\"v�,��\tJ[�9��k��Te\\\u0004�S�xj\u0004�s״O:I���'��赌�\\N��Fg�e�#��4�� <��P��\u000bT_�\t\u001b�\u0019k\u0007\u000f�����\u001f�����6\u001aN�-�ִ]KM��T{�ؼ���{}\u001fS�5ٞ�/u4��Mb.��?4��Cd�\u00192�\u001e��\u0000>[}ǿg\f걂\u0006�^��u'�\u001eO�d���<�O���$�:?�4w\u0017�hѥ��\f��I��he��o-~��C�\\z���J���\u0006PԻS>�����JB\u0010�\u0018�\u0000\u0014��\u00073��\u000ed�C��{[V4��\tNX��\u000f�\u0017�S����<�/U�?�����L���$�R���g��\u000b�J��Ҵ�ft\u001c�(f�઱�{S��\u000e���\u0015�����}\u0018��\\���\u001f�t\u001d_L�oe���\u000ek�^Ӟ��@�y�c�\u0007��z������\u001b\u000f/i\u0012\\�^��CjXG\u00043A\fe\u000b9���%�d\u0003�)�2=MB���\u0019��\u001cr�\u0007��]����\u0010����\u0000k�\u0018�\u0000����oϯ��?̿0\u001b����mwL�8��M'ˈ�Y#�t��E��\u0017=w�\u001d1����\u0005e�9d=�u\u001b�\u00004\u0007�=���Y�FC���8�(�z9�uȗ���\u0000@�~w\u001f!�k�/�Vګ\r#�/F�<�{i2�Dױ��[�d�\u000f0�\u0010��\u0000�O���c\u001do�}�����\u0007�\u001f�c\"[|>��}�>\u0016]\u0016�\u0012\f5\u00022���#������W�m?/�5�\u0000;��\u000b�m/C���\u001c�X�a�5\u001bѬ���'�\u0016�\u0015d*gֽ���{o����Iz�\u0019{3\u0018���\u001e\t�߮�ŝ�ّ�j�C�A�\u0018��\u0004|�de\u0013�\u001dŸ���\u001eg��w��Ԗm3F��t���j.��I\"\t�-\u001f��õ\b߮|��N�B>&hVL���\fG�7�_g��./\u000f\u0011�b�cg�������W�1M,ֲ�B�R7\r@=IA\nU�B\u0018����<ÊP�rD�\r��=t�\t\u0013\t\n�~����\\�߽��{k�gx�n��5} k��:6tzS\f��H�@�u�D�˄�\b|���\u0005��2���m}$�Q\u001b�N]�J\u000e4,G��:��2�\u0004\u000b�\u000e�T#(�#R'��\u001f���?���:[\u000b�7\u0011�n\u001e�ܒ��r^q��\n�I�㲥�)㇦_e\u000f��:�e�\u00069�(w�\u0004��_s����\u0010��*T\n�;\u000eJY�J�\u000faជ�2��{#��:\u0019��l���\u0000��>r��?.�\u0000C\t}K�\u0019%\u0012rp��\u0000z�#d�V2\b5�ϟ�\u0000��0�� �\u0007���g\u0007\u0000�����L��*-���_���J���#��g�v\\O\u0015G�������|�\u0007���R���6�8�neQ�+\u0018jz�\u0000$Y\"q�z�l�t8��\u001cQ$X�\u0007��)�p�6�|ީ�_�\t���\u000f'\u0007@���s.´�\u0004o^��gii��k��\u000ef�)\u0003~]��}7�y�;��\u000b�RU�\u00028 \u0011�MC\u001f|�h8e�b\u0014]�-_�C&㧗�M�\r+T���/�,�=\"�&����\u000bx�l���Q��`�:0>\u001f,�͆R>�����=�`���G,%\u0013�\u0007����\u0007�o����}�s�y��%㹴�Muw�s�]zS۽L�<��Lx<'�-';\u001d����݃\u0019\u0003�DDg�\u0007h����O�e�\u001f�\u001c�DsJ\u001b\u001b�?�C�(}���榷�M�Y��z��u%���j0=����$���v�)\u0010�\u0004n\t\u0007~3.�\u0016�,�g&\u0019�jQ��D�\u0011�����G\u000eINJ\"�y\u001e�Cjp�����O���G�k���F�=�\ttz�\r��S�w�v��U�f� �X�\u0007\u0014�WT�P��4j�4��7\u0015ڙ��}\u001bSv\u001a�pc�^�jV��N�;S�s\u0012��.x����q���f��0��O~�Nl�._�\u0017�������>���������\u0007�C3�|��\u00009\r5,.\u000fB\b4�7��\u001dX\u0007\u0019���&rj��\u0016�5S��Wo~��?�k�\u0000\u0005�\u001b��\u0012���q���\u000e��\u001a}Úݍ���=V�'����\fm*��Ƿm�����v\u0000<����hzl��mc\u0018,�դ�\u0000V�>��O�z�Lp�X�ܘ\u0000#e�Q�Q�\u0004����!x�(ۥ\u0005+����\u001cX�;\u0000\u0019\u000b �~\u0003��4TZ\u0000�\r�l)��؍�L���h\t#j��?lPl~��\u0000�v���m�\u0001F�*���1'�������%j�\u0005���4�}�A;T���`�ȿ�z���^��kڊ�Z?���5���BF� k~���\u00009���<�t\u0012�R�?��\u0017�����lk<,>\u001c6�/�up�|L��\u000f���&*qڴ�\u001d���3�ŴxC.{�l�X�������~���`�\u0013ߑk��\u001a�\u001f���\u001f\u0015��6�H\t�ڕ�\u0003���0�\u0000\b��\u000f�v����?s�m>���|5�)�5 |�ϣ�\u001a�\u001f%�\u0011)��\u000b�/�*\u001fN+P�S�T\u0001@:T��w\u001fNu�Y�i��\u0001�oi��H���}���Ž>\u0011�ޛf\u001e^�򘾶w`�/��w�sQ�on�\u0000O/H\f�ɇS؃Oc��W�tw�bI\u0005\u0013��\u0005����G�v�_�a�z2P��G�$\u0001�p��`~K��Kc��\u001f�6۾|����\u0000\r7����c���\u0007���T����_q�\u001a�Ɲ�w��=V�H{����>_��\u0007�\u000f/�ʵ�Iz����zb+��j<��{����t�\u0000>�\"w-)�o���O�Z\u0014�J����\u001dr`��bz�tbi�\f�\u001b\u001d�d�F��^���J�\u0014�4�0(zdo�����ح}���n�0��vsV ���\u0000?\u001c\u001c�����\bG~���倓�@�܉��)������\f�s�yC�߷���v��me9)��\u00003�������%\u0017��=(z\u000e��#��� �${x����wb�T\u0016��?��`�傠\u0010:����͘��p�'C�+�q��Ѿ�\u000b�Pw��A��\u0006��m�ߩ�|>~#\u0002,\u0003HF���¿�\u001a�F��\u001a�\u0015�\u0000=����O5%\u0015c��\u0013�\u0018�A����o��\"N��\u0007+�ē�ڿ\"?�U6H�~�=��9D�ɉ��\u0000�����\u0007�QJ|�Oњ�~�h�6�6#��?�0+��D�Sc֣�a�&#�\u0013�T�\u0013���}r<��AէM����q\\zn�6>\u0015��ӷ�=r=7�J-O}��0����*�����ԭj\u0007Z�\fGr���J��7\u0007�hq*�z��}��(i_�푭�\n���A^����#�\u001bB\n_��G����1@KQ^���\u001e\u001fME0�z���W�H��^��o��](��+^�u\u0003*��JW(�]��I�ڟNVMsJU-I�hz����\u0014\u0019\tp�{ \r�4_.�\u001eg�\u001an�jng<}y��vvQW��s�F�7�c�3;?�u���������1���7-:�V\r\u001e?\u0013<�t\u001dK�_+�_�K��\u0014�S�\u001ec��F�\u0002�u��\b�,�\u0018��n��ɍ+�zwd�%���\u001c��˪\u001f�.C�����n���jIç&\u001066�)��|֞]�g��cuz��\u0010��ZV�c���E\u0007m�8�\u0001\u0000D��:fh��?��>h�|�ptۦK��Ԯ�3�W\u0005�\u001d��ْ\u0011�\u000fe�\u001b��d0� \b�\u0001��\u0019ܯ��)�|�oy��,�M�*\t�nn-��vw=\f�IY\u001cl�A\u000b��2\u0011��}\u0001E�f�m��\u0000��yƟ��$�.)p.�J��� �8��4̬0���6�ulד(7\u0018�K�/�[�����^HȢ\u001bI\u001b�\u0015\":!e\u0001O�J\r�]�:�\u000e�dI/�?�ȿ6�y��>h�%�W�\u0000O�H�\r��0�B$�_��Nٗ��\u001cx�\u0003�\\�R&UWӹ��<�\u001arXːͷ.\\���>�S�\u001c���\u0002j�'��j�mB\\�\n4kS\u00132�\u000b)�v#�G|�1��q�G\u0011%��\u0000�\u001b��{��Xm��Uf�A\n�2vA%)O�I��2\"\u0007\t�P���r���\u0000�ߚ�7���2��b��O\u001clc3*�����pPT\u0003A�c��?p�|[��2����|\u001f\u000e�� �7\n�X���w�ٺ����zS%.T�~��\u001e[�]?�R�h�,��h�]_�����߾��5Y�.\u0003\u0005,vQ�L�\u0017!��d��̇>_\u000f�4���\b<��\u001a��Ҵ����3-�\u001f\u0013Z�$7\u000f\u001c���2\\\\)��i�n3m�V'�C�3�\u0014���\\�/�?#me����$pO$B@��X,�\u0017�yT��M}�i\"a\u0001\u0013���R�������������ɚ�R\u0018�W����p�U��H��C4�h���\u0014\r���{M\u0011\u001d^����$\u0006���pc?�\u001f�dy�������o?.?<�?2i��5��k%�\u001d��ow$\u00171�)ȅ\u000b_\u00103�o�?�;`\fg�'�8�'�\u001f����\ti��\u000f�9H�\u00006T_wyg��o�4{]R\t�Ky#Gw\u0000��]:��ډI\brvn�\u0013֙�y1K\f�&7�\u000f�\u001amF=^\u0011�\u0011����\"�/\f3�'��������T\u0000����9V��Sm�\\\u0000Xl'vi����5���p\u0019�(\u001cT�\b!�\u0019\u0015�P��Ű���c�\u001b1�)\u0000Y^��J�la\f\u0013Z�\u0003*�9��py�\"��\n�\u0005A\u000b�\u001d�žC\u0006Y��&\t\u0012\u001dF���٪�C63\tF2�!�\"��\u001d�/����,�b��>�\fhU��ܱ�:�\u001eT\u0005j�\u001d�u\u001a~��G�W�����x#0qǀ\u0001T9<��U�\u000fNt�Z0�qwg���V,~\u0000\u0017⑃>�`((3e\u001dn9�N�/f��n&�Iu\r�գ���\u0019d�-˼��4�\u0005\u0017?\r\n�\n��\u0010U��S@0\f���\u001f����5\u0012���<��1�;]��u,y~)�m�F�n�Ic����(\u0010�R[�j�0�5G\u0016�W���:a�rL�@\u0007�\\�7������Î7ԙ\u001f�\u001fc���C�pK�+\u00147�z�^��k�6X��N�m�=)#�Y��[�u\u000b)���Iw\u0014o\u001a�+\n�����z�K���\u0018�G�}s�\u0012\u0004\"z�og���\u001c�cz���=EKh\u0003�����(�X�}]�_-y{Ț}��t\u001d+A�\"�\u0012�coh\u001d��$\u0016i�@�V���Y&i9G\u001c�&F��\u001eT\u001c���uy�U�ys��L��@{��84z}6�:m\u0016��߉�\u0018�>���26�,��o�@�yE+\"֙����#����Z3B0�sۗ7��V�\u0000�C�~]�Z��]6�꺔�7\u0002\b9�O�M\u000f\bN�n\rl\"�i�\u000efRZ�I\u00076ZlgQ�8�����v��\u001d��˫�\u0000�`j�\u001a������O�Kw�\u000f9y��/o5)\u0012\n�\u001f�jW,ܓ��_�s�ft�Ńo�x�\u0011�O���$��\u0013���Ւr�����\u0007����\u000eO�_��o��/=�,�~�����jii/�(��o`����+ij�N�\u000e��^��h�:��%\u0012\bڲD�_��{L<^�ˌ}P�\u0010޷���mo�_�r��1i_󓿚څ����_�\u0016\u001eC󝭹�c�\u0001�yn���[\u000fH�\t�t�r[�\u0019�ϡ�\u0000�a���\u001chtٱ�����`���r\u0019\u000bߠ�t��\u0017�\b:q��\b:̘2e��GO����&8�\u001b\u0011W\u0013w{���q�K�\u001bR����K��\u001b\\����֖\u0017o��0�%��SC\u0015�ܖ�N\u0007�\u0012��9���\b�,r�\u0001�$�6%\u0013��íw�}\u001f&I��\u0018\u000b4D��'����G̀������ݠvh����,�Z0\u0003\\�%\u001fg�-E�|��\u0000���\u0002(ѯ�����F=�/�|?���Z]^ܛ�K��YȽh�H#��fe���Qab��\u000f�s���\u0012�\u0007\u0001\u0016zmd\u001e�o?�ώ� _=�\u0011О�w����\u0000��ծ��Iu\u000b�a��\u0007�R�c���� �\u0018�\u0000��\u0014��C��\u000e\u0000FO'��JD�\u0010��\"���>1�2M=��\u0002Eħ֑�\ft��H\u0001jq䢣�{g}�1\u0018##��d\u0004́��?J�\u0000�\u00026�<�矩J\u000f���%{y�$O���Ռ�j�A+�j\u0016���s٘��g���,y��\u0000g���g�hH�߷A�o�McO�\u001a}6T�E��Ib���2�\u0012���\u0000��'g�xrm\u0001.}\u000b��,5X�;Ȏ]A|��\u0005���_ZΗ��\u0011M,r3z��\"zƑ�K4m��θ��\fQ��0#�҈JS16\b>h�\u001f\\�N�\u000f��!smp�߾�.8lѠ��0�}�Z��̓�\u0017�1Q\u0015���\u0016J�������z軻�!k�\u0012�ٓajLR�#\u001cD�o)㲟�\u0006��k8a��r��/��f\u001e����_{8�7�a�ch�V�1\u001cdي�ԃ�+�o�k�CK,G��o���\u0015��6�\u001f[��9\fW6��\u001e����e�4y1�S�\u000b�!�v\u0011��lm(����>/�\u0000���\u0000�]�?� l�5�,����\u00008�[n\u0010_M\u001f�����\u0014�\u001aV�\"(g��]P�\u0003\u001a5V�8�l}�\u001d��\u001a�\u001c�.҄w��$\u000f�Y�߃��\u0017,|�\fn'w�}�\u001d\u000e��S\u000e=1>��\u001fӅ�����/�[�\u0002�[�F���[̺}��?/�Ϧkz=����sG�A�H�\bx�Z��2��\u001c�O_�\u000e��u�{7��î�>\u001c��8˘�lA\u0004J2��Q\"B�}�K�ޗ�4���22irDJ2\u001c��\u0004\u001d�<��;��z���\u0004իq��\rw�m�\u0017�A��\u0014'b�\u000fn�9-$L�h\u000eG��ꋨ��Nu�۾�?\u0010sС���\tw�{�\t޿�_��ߝ���'}�#�D\\R��~�w�>/�|��\u001fA�p�\u0003o'�os��߭\t�;�\u001c�\u000e2Qqs���O����)��c�\u0019�h7bv'��@'-��\u0002���ꤊ�ڞ&�mJ�]��*\u0016َ ���s�;�/;E�O\u0011i.\u001c8��\u0014ҟ�u~��#���R��7�z��{���Ǘ�䰲�\u0005\nx�6�l�B�\u0011YK��vZ������e�\u0015\\�1/N�?��\u0003�D\u001a�9�I��ߩ��\u001e=2lW��t��m\nr�:\u000f\nl{aT:�^��2'{�J �Č�\u0014w��a��N��l���;�i��\\��/\u0014sZ�;�m�b��#\u0013#ѧ6N\b�ϐ�}�νOW�\\��/db�����k��F��c����U��K�\r�����\u0004w��F�\u0015\u0014m�SA�{�zd�Q�R�6d7���S܃�\u0011��q/\u0010\tr�����OΏ������EEy���Cנ�m�\u001a\u001f���\u000f�v���\u001d��|]�Y�hO\u001e�ӵ>����\b��ϔ�'��>����Ė”��6?\"G@>]�����`۹�/j!!(��G�_qi�b \b\u0000*���G&�⣴�,���\u0002+��\u0000�Fj�n�MG~�ebzmZ�_��횬���L8�D�D}Z߷���7\u001b�\u001c>���\u0005��#ć����\u0003�X��ۦ�>��\u0015#�F|����\u0000\f?�~��4ހT}ϫ\u00014\u001f!����{?'W�t�\u0006<֐�\u0007�F�)�R�q��y_W�y�RPk��\u00005n\u000e��'Mo�w\u001d(H�\u0000=���n/�㏱���6�\u0007�\\�)F�U5\u0015�i�~y0�d��.}�d��\u0000FYw�\u0012\u0012�\tR>�{\u001c�1�1���\u0002��ڙ^֖��Z���}��p���y�\u0012n����d���G�t(\u001f����r ]�����\u0000?�\u0003�����a^�*\\��>7\u0005hA\u0003�\u001e�:2\u0014wKn�I�����m�X�,1�*G���,h�\u0016Ƈ��\u0000|�^�\u0014s�8�\u000e;\u0000~}i�s��rQ�1M����)�\u0007��r�#~���E�ҧ�>\u0006���\u0013�̀7�#��\u0000o\u0014�<��\u0001V���ND�rE\bv\r֝���L�!�u9\r\u000f_����c͐5�Q\u0004��\u001e�#��*��l�\u000bu��~��r2�\u0000\u00129?�����du�i�GM���\b�&���\u000f�6��\u00064�H\u000b����v�}�rQ��u�P\u0001\u0007�;oӾF��k\b��j\u0001�Ri�<&�I�i���F���L\u0015��M�^��=�\u001e��P���N�\u0007�#�\t�g�\u0015��p)��:W�\u0011d�l(9�{x�Sۦ�\u000e��\bCHw\u0006�ڄW��v��@\u001a�t�\u0001)��7�{S�\t�uG_�]!�_ױ�s޸\bO.|�\u0012�R+�n+�qT�N���?k�;�9\t\u001a\u0016�t���\u0001�o\u001c��\u0010�e^R�\u0015ߚ��\u000b˅���o/\u001b�Nb��ϧ�\\Ea̅��J�s�)����c�=���zI��\u001eu��tL�^X\u001a��à\u001c2�)�\u000f2�'K�򝞕\u001d����A܋���d�x�'�貭��-9\u0017�#QBsԴ�H�v\b�pB\u0018�\u0011��~}I�Oy��u\u001a����)J'pNܺW��\u0006!�_>h�_�\u0016�J��_��\u0014�=@zQ����������]�����\u001c\"\u001bK\t$z\u0012$�8�(꤯��MO�\t�\u0011���m�`��?�>?�'\u000eyG\u0011�/\u0018��g��5f��-ʤ\u0001�\u0013\nz��Q�I��A�\u0007l�K\u001d�\u0003���Q$�u��>e��nn-�偵g�\u0015�J�O��\u0001Ac�\u0004�f?\u0017\f�3\u001b�ya8�\u0011,�8��8�\u0015�#\u0016�YYwb\u001b����8��U\u001a��/�|���\u001f�7�u���uyj�}�l��]�!��dT��jj:d3NJQ�w�}�\u0006@\\��\u000e^e�+�+�on�\u001eB�����;����ɍ7<�v��\u0011B495�\u001e�ό\\'��x�\u001d�\u001c�T���� }������g\u0015r�L�G����5�C;BCCW�\u0014kZ�ICƎ\u0000���e����-���t>b�G�f��WyR#y�Į����K��\u001dAXԑ�X��\u0010\u0000�\fA���w�g���j��D�P/\"�\u001a��X��K�\\P\n\u0013ӶB\u0011&Uվ2\u001c46!�zU�Y�L�}J[9R�f�)�½�-E:d�\u00129���4zn��&k(l-t#\u0005ޯwy�,�kk\"���?+x�/�PۭC7\u0005s֛�\u0019�6j��<�\u0013�r�o|��k������{��%3}J�&�\u001c���|6q\\N^��m��w+ʛ(\u0019��7�\f��\b���\fcg �*>�̾^���[m/I�2�`�3�\u001a/�QJ��\u0014�\\���e�q�x+��\u0014��qu�\u0000>���\u0000IN�j3�{K\u0004�\u0012\u000b?0j$��p�\u0002��\u0019��[\u0010rƇ�X`O���e�����R��\u001b�?�_��}5���W�����,�\u001f���9��\u0005���zs\u001dF;�\u00018����O��/�xR�|��K(��y��\u001a\u0019�ҕU$��\bڠ\u0005$\u0011�����%��\u0003�������\t፛����cXy�\rN+i����yKh�\u00029�FF�\u0018\u0003P\u0001 {횃�P4C���C(�\u001c�f����p\f^�\u0012F�x�*�?�� �c��aM�\r\u000e\u0002,S�\u0019\u000eog�<�\u0019�\u0001Ͱ��_�\u0014��\u0019CVRĩ�dm��v��Q�\u0015�̎S�˕\u001f�\u001d���v6�1�$G\u0016�x=�Ѝ7�\u000b��S��\u0005\u0015��kf�����+�$�[%�r\u0011m\bE\u0015i.dw@\u0001��9�\u001cڙ�I���=4���\u0003�@�M��x7��1༞i�\t#�Y=\t �I\f\u0003uUX^!%��2Hv��\u0019��\u000f\fo��$\u0001]\u001eI�\u000f̦�!&�4��6����Z��yq�q�c���C\u0019�SьF�\u001b��&&`�̴ˇ��r�\u0003�_�s?�bmb)�h/'�)d��\u000b�?{#��$�Y�:����\u0018=�s��kE!�J`����̎\u0013��+�W���o]ύ��\u001a�Q�������\u0003�N�*��\u0011��\u0011�\ns;S�{���R�(�\u0011\u0004�����L�\u001c���\r\u0007�\u001f�w�5+a\u0005��}J{\u00194O1Cp���KM+^�8�L���m����\tV� \n���g��\u001a�K���ߴ��{cQ�:9��\u0003�q#��y?���ɳ{?�\"u˹m�.|��\u00008��\u001b�J��G���P���)n!i@��(���}�w\u0007=��\u0006\u0013�}��0��۹�En\u0004�\u0013_0���\u0000\u0004�d\u001e��^�W�'\u0010$\u001d��9F��w��\"�\u0000+�']GK�9�7��ܢN���d\u001cYT��Q�R\u0007�s_�\u0016\u0011���V&kn��\u00031��\u001co��~^o��˯7Y��NM/PE?�b�P���\u0014ԑ\u0018p��H�x�����g�����\u001d�%�\u0013�����\r\u0006�\u001a�xs�EH}�.a�\u001e~ү����\r���rY����$�\t#�+�\"�M\u0004\u0013P+zl@�x�ӳu8�Zs<��\\U��X�q5X�a�#\tp���\u0017�9�z���\u000f�\u000f��\u0015�<�\u0000��d��_\\�iy\r��!\r��x�S�A�\u000b9���g��P\u0013�w:\u001d.\u0013<\u00190�\u0010\u0005�ؑ�w[���9�3�ώ�5.\u001fP\u0007m�^\u0013]C���r7_�֮��G��\\h��q�\u0017vi\u001a}gJh��xjK�U\u0015䁑�\f�+\t\u0019\u0000<\\3���jg\t�ȅ��\u001d�˿���<�f��咽���}J�Ym#��$���V�r慤\u0010/*P\u0000(3��Fq�\f#\u001e w����r��J\\'�����:f���kyR���_�C��H\u001e�M�uK)l\u001e�Z7�f�I\u001e�'\u0000\u001e-@X��9��ɞ:|�\b\u001e(�l\r��vZ\u001cxr��\u0019q\u001cdѢA\u001eb�����\u0000ȯ�8i�_�v���`��i��\u00177�U�ט,�u�ˍ6\u0019#�#r����A$��2�+��1\u0004\u001eq7�F֜�Ũ�\f��6Er���h׹���Kq���I1�Q����G(x�h]\tW�dU\u0004uR\rw�k�\u00002�%V\"h�9@�8.�\u0001c��\u000fɭ~[mT��!&��\u0016�j��=>5%�\u0005�/^��OL��l\u001e&\b��$si�σ!\u0012������}\"��P�H�eҠ��y4a�\u0010�h�\u0000ӏQ��1CQ�X�^4y;IJX�&?�<�:���[O\u0013�\u001c\u0011� \u0018�W�׹�v\u001d���H6j�z�\u001e\u001f�l}��Q?_C޾�9m�4��ɪ%����\u001cP��zWۦBD\b�N��?y�!��K\u0012(�T��{�5Y���5p��ˬ���@}�t�n���\u001d��@+k\u000f��\u0006���\u001e�:��i\\Ō}\u0019?�]�9^HW>!�����5��>�O�l�[�\b\u001bk\b���\u000f���\u0011=8G�\u001fV�\u0002���3�����ֿ����==6߶���ðD�<��c��o�O��+��,�\u000b[�=8�^����\u0002ϕ���\u0013SQ����fHd��E﷏M�S�\n�\\2�^\u0014�r؛\u001eH<�-\u0018 ��T�����-��K.\u0014�>&��\u0011\u001e����S}�\u0000\u0013\\w��\u0007j*m\u001dz\u000f���� �G����\nc ֔�\u0000?〠sۚ�M���\u0000���\u001a���F�ɯE��ҕ\u0014���\u001b���A��pb�hw����\"\u000e�d\r��\u001f��Z��\u0000>�\u0013�,l��\u000f�R;vژ\u0019U\u001f$0U\f\u0005~T�\u00003��ǣ\u001d����\u00006�Q�6�������(�\u0014��������D���������Mq�i<���|01'�a�������Ǘ��!O���ȝ�{��Q0+�*{�w�\u001c\u001fs!�$\u0015��߿��\u0001i\f�EI���235\u0016Ѱ�3�jo_�\u0006cRA<�����\u001fn���?��0cu]\u001aN��f�\u001d��\u0015�R��tX��Oz�S��\u0007���\u0011��<��y�O�o��ҹ+��Q{�-#�\u000e�\u001b\u001f~�o�\u001c�.�k\u001b��k����&�JM�\u001f}|O�Za�\u001aG܅���0�������B1\u001e=*\r|GS_\u0001�\n�c�j�\\־=���>x\u000e�~l�\u001f�\u0006M��\u001bק�ddT�B=\t;{��J\u000e�\u0001لeė�7\u0015�\u000f�Z|ϾD��dN���w4\u001b��}��ʥ��O��\u000f�Zw�Ho]\u0012̼��}\u001f]���̓H�M�\bR�)��&�tT�Ff\u001f\u00146��9�ܓL�=��j=��&�S��Lg�\u0001�R�g�}����l\u001e��Ä\u0003�[��\u0007�)��u���}\u0012��`��{�\u0017FӐ<���4Y'�\u0011ӍԮ�2��ȩ�,A\u001e����\u001848��\u0000 8Mm�O�^���j�g�d�Cd�/z��\\맗�0�\u00005\"�ִ��=Z;+�-��\u001e�n��̾w�E�$v�6����\u0006����袍��31i�%Ō^S`\u00006\u0003���L�\u001e*�#�O#�G�\u000eL�\u001a����wX�|��/�VY/��)]9X�y\u0004�\ba����IA)�}�\f�O\u001e/\u0000K\u0016��\u001f>�\u0006�ffFO���{����\u001b��ϟSծ�;Xecq�@%�\u00027��\n��s��ҙ=4\u0005]o��D\u001d�+��ʞ{���r_)�k\u0015������Kok�2�|\u0012I�_�]\u001c�\u001b�ol�\u0018L�)ʯ�_���&U�wr/$�ǟR��۫xdv�Bd��^E�RG�b]�\t��AJ��8�+���x�\u001b\u0011J|�.nu�[RVk���<�%DfCBȼ�F��B3\"5�m\u001a`,��w���`���\u0000�<�a'(- \u0013\\��\u0000��P��>�Tn���B&Y�3�~?�rЇ�������-�y��v�wV���ѕ\u0006�J�;u̲v��\u0003�<ظ�\u000b���Ej�ǂ�g�b\rJ���cN���\u001d�n���y-��(�$6��2B���N�G�d;I4c�#D=\u0006XK�)\u001b���jVK��\u001a|<�MVd\u000b\n������\u0002�y�7W^����H��!��S�z�Z�\u000eß��x��SR��}r#i�C\u001c\u0011As\"Ms\u001cq�\t\u0011���\u001e\u0001ݗ���w�\u0014�\u001296��w�M\u0018��39n��\t�z�@\u0015jI�4�H��3�\u0007w��_\\����5\u001e�\f�CW�=\"N$o@[�l�\u000e\"xG�Z�\u001e�\u001f󜺵�\u001e@����<}mZ�\u0000N:���I��I\u001c�ՂY۩���i�\u00000����>B��Mx�\b�\u0010;�\u001f���\u001f6�\\J�yN�)��l\f�}�ع��O��(A\u001f�U9��\\x�/�\u0002��\u001a-�\":?|t듩�\u0000Ϥ����*��y��6wFJ�G$:��\n�Nk \u0002�3���\u001cZ�\u001e�\u0010�\u0011�'\u0011�����C�_{���\u0000����Yh�>h�\u001e\t�4�W\u000f\b�\u000b�\u000bGF�\u0006�$�\u0010WČ��%��r��Dze�^�\u0014\u000f�p�ϱ9�\\y��r�꼎��o�<��\u0013��\u001f��U�;\u0011P+@H\u0003��\b��\u001cd>���\fb\u0006�����ъ(�%��\u0001�#�%\u0003�� \u0010é$�q9��\u0001\u0016�\u001amA\u0014^�i�\u0007�%2We_R\u0012\u0019թ�)\u0006���\u0001N�0�\u001fV��\u001es!l�F�$��Rpf�����`2�P^6�����\u0004\u001f\f\u00061��\u001c�i5��MF\u0000���Pz�\u0012B�\u001fQʅ1�x�\u001dx�(w�\" \u001b����<��La��I����ԐYP�1�Q@v\u0006��\u0007.N\t�\f�e�Q�4����\u0001_�%nh !x�,I�Y\u0014\u000eKPI��ʳD�r���c\u001a�g�^P��[Eeo��\t\u0002B�\b\u000fխ�l\n�'G.\u0018�\f¡\u001b�)�MN\u001d��G7��jG�\u0019\u001b\u001c�wŕ럙2�Z\u0011ij�����ˍI�\u0016�\u000f\bˣJ���H\u0005�*�m�1��5�\u001f'3.��6\u0001'��W>l�n\t��u+\u000b\u000bF��X�n���ZXɔ޾�ޜ64�\r��~��e�j\u0019�?T�\u0003˧�x?��լ:t�z<�H]X�,�!�UTq��������`\u0000�Tu9���Δ�\tf��\u0003����\u0018�x\u000e�I�|;��\u000f�_͟0�kڥ��H�}V$3+u�\u0012\u0017��?\u0013���:q�\u0001�>\u0015�\u0016�Z��I�e��\u0000�\"@�\u001e��ݸ��\u0011�\t�g\u0016�(�\u0001H�B\u0003S��T�S\u0018�l���x=i1#���,�\u0000�\n�V]y��\u001a]+N�,�o$%�j���1�+�/?�^�\u001d&ݙYc�09��&�����\u001e\u0018cԜ�\u0005���x\u001c��n��\u0000nk%�S\bˆ�@�����~����\u00009�$6��^RЭQa��_��[�\u001a\u0005�#�k�OS�X�\n�b\u001d@�F�\u0000��N_d5�������0{�c\u0011�_\u0005�\u0000���}��i��C�q\n�\f̤~o\u0005�\u0006��wc�Җ�3\u0014w\b\u0015�\f�DnU��\u0018�\u0016�\u0006����0�\r\u0001@�\u001d�\u0000�n\u0017dj%�\"VlƸ��|�\u0017ܟ��\u0000�E�h�.�A��d����Ip��N�@3�i��#<��>�\u0011�rc\u001f�#�\u001e�a��g�RYe��剮��˝���������\u0006���KdD��Ǖ8�:�B\u0001\\�{*�Ԝ\u0007hˣ��\"3b\u0013������缽�5�Qӂ\u000b�йj�H�^$��%h)�m���\u0018������}�\u0003ڙ2�Q (D����\u000fȿ���\u0017Lկ-��\fV�j\u00064�K��s*�\u0000f�7�G2*у\u0016�\u001b�i�9ri���t=��uQ�i\u0013鳵�\u0000Hu'�-�;yJ{i��o�8K5\u0004�,�\\)T`\rZy\u0019h\u000bTTW��Jӈ�L\b��<�ʞ{6N\u001c��8O2l���}A��\u001d.��.�4]6�K��[i��Yl�+K�S�{��l���Ts�\u0019s��FXJX��2��6\b�7z\u001d&,\u0012\u0002Y!\tb\"�\u000b�;Q���ޞ_�v��]�s�s]�\u001d���,[C�_]<�j�\fQH'�I�\u0002�}~�V�K�����iBk�\u0016]H�\u0019G<`L\u000f\u0010ڏ>�T|��c� ��1\u001c���\u0012\u0002�ޙ�X�q�>\u000f�<���`jz>�����(-\u0010�^i�MV�\u0014�`�\u0000s��\u0016�-��s0�V,�^#�$�\u0007\u0013��,4P�#1(����Q���\u0011�\u001b���8q\f`�B\u0011���c�=@H�\u001c�� w�\\�\u001a\u0017�7�|����?1k����|ע�)t�t\u001f,���^l�,����t�j����Tg��u�Y\u0005\b釗C�\u0007g����K\u001c��ꌣ#�=j���Lu�s꥗Q\u0013\u000f\u0012$p��(J#���{\\e���\u001f�\u001a梲�X[\\����rO4�^�~d��x�Ң\u000fm��j3$Wv)-�\u001c\u001a�BҁBF�_��\u000e\u001dA\u0010\u001e\u0016.\u0002%\u001a��䁱�\r9zY��\u00002>&N!�+\"��\u0002w\u0000����R�N�g\u0017�n�}�;�*!d���\\�'KmD_Kh4���\u0011n�\"�\u0011�U;��,��R����W�K\u0015v;����~jY\b�En\r�7T{��}�qr�~Y�f���##D9��\u0017\u001c�9`�\u000e�\u0004�(T��l!���\n��\u00008w�ü���\u0000O�\u001e�q�Xj�\u0017�E��=.�=s��������Yn�D��~�o�[��\r��&;�dTxI�e\u001c8��Z|��Z\u0007\u0014on!χ�\\�V�9c��\u0002%�&�[Ѻ\u0012\u001eW���\u001e�a,d�\u0000v�\u001a�m���qJ&�E\u0015�h�ψ!�I�\u0012\u0003��݃�W/�̉�$y\u001e��?�\u000f��?��\u001dS�q���]�b���������O�mU\"+lt���s�ynW\u001f\u0002�^[��(R�����R����?dr{#�va�?�>�,�i�\u001bD�W�\u0001��)J�ߊP�\r��\u001f�����>�B9����\u001cY{�\u0000�d\u001eR�\u0002]�\u0004u\u000f*�ji�W��N�\u000e��h�\u0016�W7͵��\u0000\b7�&y)1�#~���\t�>O��\u0002�N�\u0000�8OO5����55���fDz��ϝ3�~��.Z�'�0']�d\u001c�t��d��|�\u00009\u001f?\u001b\u000b���w�z���s���\n��t\\QE~��5�<��h���\u0006k��cCC�V����\u0002{�#Q­I$\u0001�ܞ�I��\u0003�v(qs\u000f�?\"|��!������#\u0016\u001f\u0010�\b\u0003ڝ���\r\u0017����?{>~\u0004�ڇ7�>�b�V��\u0014<@\u001bmJP��\u001a\u0016y��J�\t�\u001a�݇�ץ2���k�G�\u0017\u0012�\u001f�N(5�Y�E�M���}\u0014�\u0001˽\u000b�\u001d\u0007�|)�\u0006\u001aE��&��ҟ/�\u001fr�PQSS���*�H!��j\u0000��3C��`�e>U��|����İ��>�^(��M��0�\u0019#\b\u0019�`\u0003F|�\"��\u0017�v�.��\\�JI�d\" ߳\u0012��\u001f��j��V�Y�\"v�5�<\u0011\u0011E�GG]�?���cǝ2 ������> �\u0003�ƙ��m��UvS�UTi�6\u0015S���ٳ�T���k�\u0003�k�~q~��f\u001dI�m�>��u�����\n�\u001e��;zU\f��>r���TS�\u0004P�;��қ�d5\u001f:x\u001c#�t{�e~X�H�()EO\u000e�/�t݋?�S�>���Hw\u0017�Zv�����\u0006��\u000fo�6�9>i�R�[2���\u0000\u001f�<�\u0000�����\u0000��*S�\u0019ߵ?����yg�\r\r{����\u0006W�\u001e�\u0016�\u0007�7�=\u0001�~^\u0019\u000f�����eq~ϾdGq��Gs#�:���\u000fz��r\u0004��n߫�1���\u0010�����v�2'r����q=\u000f\u001f\u0013�\u00147^��A�ۯߑ��\u001b�\u0000\u0004S��#��!�\u001f���k\u001a \u0001�?����\u000fC�z �q4�\u000fᇇ���\u0010d\u0018�@}�϶W�G#�W�Y>���\u0004b˘��\u0006S�lh\u000f^������ڸ;uߦ���\u0014�Q~�]�f��0.��4��\"�@�\u0007\\Z�Yķj�?\u001f�]�{���-6��\u0003N�\u0000��`��<�D,��\u0003�~�ؚꞋ�^4\u0007j}�\u0019\u0004��˞�؁C��c\u0010�bP\u001b�\u0000S�t\u0007��2\u0012�|Yq\u0001�L����v�s\u001eV\rRC�����d��\u0007��\u0000�����P\u0015��@�����6�,�\u0016y*\u0011��z��k�q��+��Sj|_/\u0000z�|�D��#�=zv�n���(��7�)ӿJ�Ҟ���T\b��a�zS$��f'�44����6�\u0007�H7���nƇ�\u001e\u001bb9��2.���u?�:SƸ$\t݌e^�\u0014�k_\u0001��>�8HL�Ű��\u0011;\u001f���Q�D��U�B�+AC�c^�~=r������|��\u0014������ʕ�H�6�#�S�V�C�̇�\u000fI�Dy��':�:��i�Y\u0019n����.\u001c���m\u0013��q�4��\n\r\u000b2t�|���t�\fH�ܶ��\u0017W\f��\u0018�\u0007�����?/�;��~Vk~k�ʾ�_>y���E���\u001f�����2j`�r�W\u0010\u0011/��;�I�;h\u0001y�h�0\u0002�eC\u000ea�a� NG�}ѭ�<�\u001b����< |A��#��D���̽3�q'ʞc��ת���?R���\u0016\r\u0001%��k[��yOH�}��\u001a�3;��x[��x��r (Pm�c�Hpb��8�JC�����\u0000x�<��\u0001��\u0001�~�]�'��~��_0-�N��ܐ�R6\u001cJ1�\n�\bB\u000f#�\"�%��%��\u001b���g�,��qcJ�K�S[�\u0004�_ƪ��\u0003nX1F���\n��Sl��80�b���. \u0004��w��\u0016\u0010��\u001dn%��5q\ffIm�\u0014\u0002�S\"�\u000f��\t�Sjf�\u00106O��97H��'ow��m\u0017�+�^L1�ce}�jp2�=�'�\u0015�Ĉҿ��\u0014U�\u0002�'��NP��B�0�hB>���\u000b��\u000f4�~z�=�~�h/ݣ�G�d�}3D�q�C\u0005�\u0007���b\u001c\"��\u001c�S��\u000f7���U�޿c\u0014�\u0011H5}6�R��\u0002Lj^�u�隞ڇ\u0016]?t�!�?���c\u001c�\u0007�\t@�+��~*����$?󏞻F\u0019����\u000bU���\u0013\u0005���\u000b�h\n��jv\u0015�\u001e�\u0000�F�$c�H\u001bé1�d��{��A�#W]�,0>���Ș�?\u001a<��=0܇�\u0015��\u0015bj7�l\u0002U(���W�����\u0000���\u0000�6Z���\u0000���\u0005��\u0000�_��\u0015���R\u000b��/��O7��Z\\\u0015&�mM�\u001c��\u0007\n\u0007Jg]�Ԟ�����k)��^|�G�-�Ϟj u��X!\u001b��\b�z�2�\u0016|�ϥ�$4,?0��/>��e��ʺ֍�[\ty\u0007���e���\u000e%��Mi�\u0010�NJs߿�oؙ{+�\u0006]�2\n˞\u00193�r?��L/��\u0013�/�>�v�.��\u0000�\u0017if�\u001e\u0006,��\u0003�~�\u0011����%��\u001b���{TU����Ttc\u001c�r����\u0018&N���\u0007��s��ٜ�\u0004�nom���Yi�\rG�~}�\nҘ\u0012[y)���\b%��O-�\u0005�f�/g��\u001e�\u0004�\u001d\u001f�~)�����kL�|1 ���߱���i��~M�ْG����Ha��c�n�?x�P{�ϝ��:\u001d\u000fH�}�E���H2���>o�?���\u0014�^\\r\u000b\u001f\u0007�U����|%���힉��n���ſι�/a��@~\u001c�\"(�x5\u000b-G�b+L���$\u001eZ~���?\u0005�/�'�\u0001*#v4�b)�>�$l3����\t\u001d�F�\u0015��ʟ{�A�\u0010ˮ[�K\u0014��u\u001a]H�񲕋�!\u0005$�\u001c\u0012E\u0001�l�=���3�\u001a$~>nװ�\u0019p�����>��o��t�e�{UKB�˚��7ծ$��$�M\u0011o�{��X\u0011J���9Ǐ���n��\u0003�޷$�\t11\u0015F\u0004w��\u001d\u000fO���I#���\u0000���;{�h�~\u001a��[��[�K��ב��o�^ԉ\u0013\u0018\b�\t!��\u0019@�\u001bB@|?\u0007�\u000bյH�\r;���G\r�\u0017��f�/V�\u0013%��\u0015�\u000bo9S\u0019��+�n\u0016^@�\u0004w̬8\fr�\u001b�>�o�u�s٣.c��n���.�^����3�^B����\u001f����=^+��.�eҬ\"�����ݕ�U�o,jn���X�;���J�q��>�Y.����jc�a\u0004\u0018H�>\u0013ӌs\u0003�@�3K��h�����8��\u00138ƥ��\u000eg\u001c�\u0006��\u0018\u0010������\u001dsU�\u000e�\u0005Ρ��E�u��O��~c�����O�WL�Q�}\nK/E��I\u0016�* b��#�:]V�0�#\u0018FdDKiDݑI���݊z�\u001a�<�K$�\u0013#\u0012H����}q���\u0018��UycW\u0011ipɠ�V����ks��Wp_��\u001e�(kk}>�\t\u001e�WIK���\"�*\u0015�s��W���1�M\u001d�;u �ˑ�ݾ�q�\u0004�J2�V\b\"@�*#n|�\u0000A\\4�����e�/\r���h��+\\��M/̴P/�]�°�\u0011��\u0011�81�\"�5��Φ\u0011���żf7⇘�q�^b��0�|f���P;T���R\u001fP;r �z/����2+i��H��~�\u0006D�y2(`O%\u0000�\u0012Nk;bQ�NX�˻��H\u000f\u0000��\u001d�O;�\u0000���\u0000�yӿ�%%��$�A\u001f�4r�g��դ\n$ӼקC#�f�S�Xk��J�e�\u001f�\u0014��i�\u000bO���-\u001eZ�k\u0012�3�\u0019c|\u0012��0��%-�\n�{'�3�n�:�7!DJ?΁����\u001f�\u0001��`E��\u0015ZM��e�Λ���\b��Xj63�k{e:0\f�[���j7�z\u001c��$2�ӜY�a�\u0012�e\u0013�2��\u0003�\"��U�\u001eL�.#Ŋ[���ȱk���\u0000H<�޽;�j�%��{(�\u000f��\u0000�\u001c��\u0000��(j?t���ݖ€��Р���D��\u001di����\u001e9���5Ζ\\�\u001d�\u0000�H�E�߇cۯ�\u0014�]Q\u0007\u001c��-G�=�\t���[�ٮ�\u0006V\u001cR��bI\u0015oտ˶C�eDt���\\ynMZ�R�����&����g�n�����\u001e��?���1$�~�~[y^=:�\nF\u0016����\u0000:�=7O�F\"\u0003�\fMF;s�{I!@P6\u0002�n�fw��B��\"\u000fc����\b\u0006�ysG��+�~��2`U���V=���\u0014����+��;m�\u000e\u001e��۪\t����\u0000�|�\u0002�נ�x����`��H��<Ϫ�����\u000e(I�:d2\u001aI�\u0004�;?9<�.�v�m�����1\r�5=\u0007q���S���#��������!��A�~\u000bĭU�\u0007\u0012\u0000���nzt�g-��_{*���O\u0010I \u000e��w98����OF}��ڻ��\u0014�l˅�\u000fF#i\u0011h�rE]9�v\n�o�O�\\��w�/���Z5&��?9=\u001cJ%\u0015�L�\u001e\u0014-��A���4y\u0002\u001f,��C�%w~��h�\n�^�\u0001���,�}A�r��:`8�>���JCli�-v�m�|)�\u0007a����O\u0003�\\>��}]�s\u0015�|+JoQ�7�7��Uz�0��B�l>���\u0001�����֓��fvd\u00107��|�淠ӑ�Zѭ�[�.\"�����c�3��.x?�����\u001fb�I\u001f�+�\u0001��C�|��\u0000\u00041�\u0019/�?a�\u0010G�|k���}d:\u000f��C<���l���\u0000?�\bU\u0019�\u0000�o���<�.T�3�Pzu?���b)��G�,��QQ�\u001d�\u0004\u001f��{�f�\u001a��\u001e\u001f��!��a\u0012Z��;W��Z\u0015\u0001p+S�)�\u001a(=�$\u0005\u0018\u0002w=?�/�\u0018�\u000b�q�t�O��ӍY�M�� �|DoZ�\u0000��L\u001dXy�Bk���S\",m�I\u0015H����#��\u001e'$M�ީ!\u00167\u0003j�R?�m�<�sf9 e�4�n��\u001di�\u0002���T�4#��v\u001e�\u00004_w$���`���@��O�q�P\u0001\u0014��wߧLY\u0002\u001bb\t��mZw�v��\tq�\u0001�=\u0007��ݏ�ls\bVߗ\")��\u0000WLy{�d)&�\u0002��W�o��ĵ\u001fz\u0016(�*\u00107����\u000eEy�F\b�)\u001d���;v�\u0006�\u0016]\u0010�\u0012��J���>�q�#o�Y*�\u001bu\u0015���;dRP\u000e�T�i��6��|�^��\u0012�\u0017Oa�*w�#9Tv��n��M6?����e\u0012\u0016l$?����\u0018��zu���pߓH�o�\u0010\u0005\u0006��\"��ZW����G���;��H\u001e�>�\u001e�\u000f���H;\u0006�]�O\u001e��\u0011^�q\"�\r�ҧ�^�`&�%I�;���G��&�T[����ݽ��m�)�\u000e���zR��|�\u0011\\���!e\u001f�\u001f�[dA5�D�\u000f>T�q���+�\u001e=2wc~�\u001a<'�\t�ݷ\u0007������YJ<;��\bڻ\u000f�A\\��qܔ$��tڿO��FTl��T�KB+N��a�m�X�oJ�g�u[]*ު�/��\u0005)oj�\u0015��\u0013�\u0014@�^��f�wg��Ml48�q�Q�lz��R�k5X�zijr\u001d�6�=\u0011��0~�����\u0015!���lb���/\u001a�T�\u0006y\t%��N}\u001bظ��CO��(\u000e\u0011�\u001f��\u001eҜ���`x�7����\u00000��[A���N�{6�4���;���\u001fY�ßCM������2��+\u0013]���\u001e=NI���&< yu������e=\u0010\u0010f.��.S�\u001f�\u0006/D#��y��$�nF\u0010p�\u001e&���.�\u0000�]�\u0001�~i~w�T�'�\u0015�X�;}~�����ђ\u001b�5oޤ��K{�R���Έ\b\u001b�N�5\u001f\u000fn0k�m�}�Y.S�G\t ���U�QZ[�G��^������\u000b;U������\u001b9䵁��K.\f$$�@���<�Ī\u001b�~��YĈ��z\u0003���'��k\\�L�j�\u0001�\u000b[�\u00001�����S���J���m0ns\\�>\u000e����Br�n�����|��8�~<�\u0014k�(\u0016h&��is'�Js�´�Y\u0017�#�y�B\u0017\n�~��`H�\u0006�\u0000c��m�~ߏ�+��5�N)H�0�\u001a�*��\b�I@�4P(yD�6��EH�\u0004\u0001��J���G�iZ�/2M\"�S�:�d��\u0002�#����*\n�0�ƽ#� \b<�y�ƍ\u001c�+H^��8���c�RY(y�\u001d��\u0002�\u0003�c\u0012m�5H�k~1¬M@t'�V\u0005�6b\u0000\u0004�|��[��D\u0010�-�Af�!\u001f\u0002�V�U��V\rRMzey\u00012\u0007zL^k�\u0018 ��Fĕz�@�&CRhyP\u001c�Ō��FȐ_-y�WY�b�Ҩ\u0010��'-���$\u000e�2s�\u0018��ǹ%���Do��7�~e\u0000��`t�5�Bo/�\u0012H��\b�O�Y���8#\u0012=s��ի9�ƫ��_\r��?��>�.���}[N�����L�\u000eG��;1��p8�\u001b\b�\u001f\u0000ф�2��\b_���ڝ���<��4K��v4몱P����Ngn�\u0011��M�\u001d��w��\u001f��bܘ�~��\u0007����-s��\u0000�r+�y#��S��4�@A�\u0012ծ<�\"����E�w o��׍��e�1��Ԇ�hk����o�X�\u001d�\u0019}�_,�\u0000�|~@y�Z���މ\u001a�!�g��-�-J�4v��Z\u0005��uW�\u001e9R�Ǫ7.��\u000b��&���Zl\u0003�PN9�X��8ʯ����\u001e��}f-\u001fki��\ra\u0004�F�lAۭ\u001e]��\u001a\u001f,���~b��4��\u0003�z%���\r:�\u000227\u0011�K\u0013�����\bx�BQЂ\u000e|��8�i��\u001eX��&�;\u0010G0G�ȂA\u0004�9ٲœ\u001cr␖9\u000b\u0004n\r��O,7��\u0003B��\\\u0006�\f���\u000e��n;f�r�3V��~\u0011\\/_ө\u0019\r#\u000eL��\u0002���#ܒE@��I\u0018\u001d˴�Ey3\u000b+v����$t+�\u0012�y:�]�er\u0006���Ҙ�����ʈ�˴�B�\u001ah�U�\u0001G%Y�*r\u000e6\f({P�\u0016L���\u000e\u000e��faU\u000eޔ*�Ʉr\u0011�Gj�5'�nݳ\u001cO}܉b�E�Z�v��7=��\u0007�Ei\u001c.��u]���\tL\u001d�fx��.$���B;)�\u0002��H%�)v�\u0015A�TN��B8A�\u0011r2�\u001c\u001b����X�f��A�T�\u000fS���a�Ͷ\fQ\u001d��ڝA7��]f�޵\"�n#h�\u0007�uZ�.w;�|B P��sH���^bWpX}�\u000fͪ(\b��;��߾lq�\u0001A�j\"N�\u0001�\u00142I ��C%���gm\u0004a��sq\"�\u0012F�Ȱ,�\f��x�|�Ō^I\u0010\u0000�'j�����8�R�\u000e~�����\u00008��m\u000e��O�-\u001d�u�M�C��o^k�\u000bq:PR�'����>����4~�h��R�F\u0010\u001edƍ�_��ڇS�:��\u00198�s�y�_ݷ��燒�\u001a���\u00008��g�)%�����ۨ�*}2�.�4//�Py3L��\u0000���=\u0015�:\u0016����b�𕹑\u001bp\\\u000e'�}��\u000fi{;�5]����x��(�ќ�� a���\u0004G�]c�s��\u0000Dz~��\u0016�U����ᘟT\u0006\u001cc���!\tN����E�+�Mb�y���\u00177\u0012H�dֵ�n奔�s4�Ϋu�3���\u001c�7֪��9�N<0\u001d��C�#�8a\u0001�\u000e\u0018\b�:\r����/Tuf�&IL���H�g���~~]]#^G'\u0010a��l�\u001c�2ן�(��p\b ��O���$����9�\u0019!\u001c��5�^\\��wCw��6\u001a���k�nby\u0010�R(�\u000eLw\u001d)N�1���<��irr\u0014G�v}��.)G>3R����7�}��\u00008u��$�C�]�\u0019��D��G�\u001a�\u0002H�H\u0014&��<��\b\u001d�0�9�\u0000.�\u0000\u001f\u0011��=��a�?����X���tz?�埖E�.�\u0014a�X�D�W�\u001a��i���|潗�Y<+�r���o\u0007\u001du��:?��嵎��i:��Eq\u0005��\t�\u0005�h��\u001a6�\u0000\t;��ǣ��a�H\u001d��s癧ÒP��\u0017�:֥\u001d�鸵�\u0002\u001e>�\u0017v�\u0002\u0005\u0014\u0000x��i��\u0011�\u0019ܪ�3N\u0019 8y��'�OT����5]=\u0004��h�\u0000Yx}B\u001ako[�ʊ\u0001�8�W1���r�\u0015����y�YeT8l��\u0003��2���R���#x�\\�\u0013�\u0013/�!vrm�);]�R9)R�x�<�\u0006�C)�y��s�=\u0006}N9�\u0018�T��U��y?@��}\r�宑\u000bH�jS�\u001a�J!�]��Ֆ;�^\u0001d�08>�\u0000\u00105�\u001f���hH�\u0000�\u0004�ϓ�i��\u0007\tK� t�C�\rO�v��\u0005�X��~��}�\u0012�J�Z�q*���JhZ)�_JX�ju�3����1��v=��?��g��1��\f�5G}� \u0011�{\u0010~\u001b���\u0000�k�ǗKK��x|�t�\\\\$���my$?��3���\u0005Z�k9?hq~b\"<$�@�x���y\b\\ć��o��q���}喝�y��>jӯmY4���..��)'�&�ײc2RC\u000f'\u0004T�#9��$4Y�b}`lyw\u0017pDe�ş\u0019\u001e�w\u001c��ߛ�W�\u0017�>F��������̾i�5�s�ڕ����}��{��&���4H�Ӽ—r2;��nC�\\�︖�S����\u001d=�1c�c(��q�ޏX� oʝX�i���f���$�`A���^�8�\u0002D�\f�D��^�w�����_�\u0016R�~i�\u000b�>���O��%��\u0018.>�r����Z��r�,\u0015�@A�^\u001d)�:�$OK`�65[_q���Y��M�pj8H �ѯ�F��7��?QҴ=\u0012ە�mgk\u0007�\u0016A/��coMm��w��h\u0001%��4��yu9�G�M�o������+�ʿ\u001b�=3�W�3�c��\u000bZ�\u0004H�\b�#/U\f~��͢�1�ȃ>���\u00198��\b�N��\u0017����R�ȿ�Zo�痬���ߛ����'\bl���B���\u0005�\u0006�����e��s�E�eGI��C\u0018��<9+��zg�\u0007\t�r�'���n���\u0000\u0007��L�忪?\u0002x��\t\u001d\u001f��m�֨�����۶yfPDͻ�}�O��\u0000�\u001c��\u0000��>�>��:�\u0000nfvnڡ�Vr����3ο��(>\u001b����M�3\\�y>6�\u0000����}��C{w��f\u0016��3|��\u001c<�ӷ7�\u0002�\u0002du�}�ns[v,8�=%�R�\u0019.'�\u0014\u0016geP\u0007rv\u0003��\u001d��;�G#\u001c@\u001b�}��\u000f�\u001f�[[O4_����J�I�\u000fSL�{\u000bE�|\u0002r\u001e�nS:&�'��e��Z��\u0001�\u000fjo�9��F������Qlji���,ٯs�\u0013\u0012�����Y`�V�̫�Z(�߮�\u0003�0�����TA]��7���a�E\rJ�@�>�O�\u001f%�\u0010�T����Q��dXby\u0018�\u0001�������t\f����G淛#���-(\u0014F=hv\u001d~����\u0018�)K�\u0016��f\u0000�\u0006G��\u000b��կ�/�<�i\tZ����\u001fH�\u0007S�Z��,���\u001d\u0018Dp�\u0014u��M���<<:�>\u001dsb$d|�\u001f�ev��~ )�@:{��$\u0000eW��}����P\u000e�|�S��]\u0013J��\u0016U�ڵ�\u001fb{S��|��vٯ�8�����\u00004�:?9>)�kPғM�F��\u0005z����ƌk��\u001d�k\u001c��^Q�AV]��m�﹨�N�_\u0001�x�\u0011\u0012�i����dAoAA�~���뛾�\u001e���7�_B�{O�(���\u0014��\u001d�L�g��KG�#͗X�q\u0015�֝=��s_���l|�u�l;�_��5�GW}�\"�\u0015Ma�i\u0017Z}b/��Q�zg��]�I91��\u000f��7��\u0000B���S�$?\u001c�_�\b�j��g�?a�����\u000f����!��v\u000f�����퇟>KJ\u0013�\u0000v���\u0000��щ\u0016\u001eE�·Ǒ��l\u0010���P���*Z0\u001d�+�����\u001c�ލh��\u001d�}��݂\"�m\b�^�������G���;\u001f����T�Ih�z{��>���\u0003\r�FIyPWn݇��<��\b'\u0015ޝ~��N'ޅ��_���0Ww$�r�B���t4�xE�\u0012��\u0004t�j~���y�՟E�\u00145�p7�����\u001br�@I �E{�Ѷ2�U��\u0011�#���\u0007\u0006�>ha)\u0003j����dO?r�N�-ɮ�����\u0001T��^u*i��G�Gk�T�\u001c�oN�\u0014�\r��\u0003u�5\b���m����\u0012\u0005���`\u0010v��w�̤�-S���ħ`w�\u0000?�L��T\u001aI�e\u0014\u000e�\u0003���^\u0011\u001eW�\u0004�\u0015;�~��O�4A۽#����#J����F2%@i�}6��\u0000f�_�T[���>\u0007��mᒏw�\b�&�O�ҟ�S����)C��؁ֹ!\u00106\u001c�Y�;uB��ڛ�\u0000Q�\u0002��fM�@�S�S�W��)�\u001c�M�_4#�??���d\b�#�-\n���n��2\u0007nm��D f\"��n�������y%����A\"��2<����\u001eF�\u0013M��Z�B.��Ž�e�E���\u0000\u001b(�\r�ï�z����p��Y\u0007�s\u000fO�\u0007/������D��E\u0002x nU�żֈ|�/\u001cr�U�\b޼WyX\u001d�\u000f�\u001a�c^�=\u001bOc\u0001�񼁾+;���\u0000����^:�H$��4t�\u001d�\u0017�%�$\u0011\u0012C\u0013Q�zu�=\u0016O\f�������DL\u0010=�����=\u0015%��ol��E���λc(i#FE�\u0015�\u000f���Q*\u0018l�\u0011 �A�̢\u001a�p\tV\\A\u001d<���.�\u0012:)���<���\u001f��\u0003�\u0014?14��v��~F��5?(y��\u000b˞u�u����Q���W���\u001bM*��|-ia�G\u0004\u0013�\u0014��F'4�&92}9pG'\u0010?겨�U���\u001d�\u0006|8�+�)��]��$��\u001e����y�J��\u0000YѴ���m`���S�<�}n�pڵ��\u0017_�M�hѴ�\"\u001e��R\u000fN�\u0015@\u00041�p�Q�#i��mD\u001f9s?&s\u0006q\u0011�ÿ���ww|^c�y��ʚ]΁��ug�\b<��yV(��S�?�u\u000b��7\u0010h�4E.o����q�\r�,���fd1��\u0006\u001c�\u001d¼����Jq�\"D�^�I>C���\b/�\u000f-k�:6��y��M\u001fX���?����]��\u0019l�/�҅ߙ�ktG�u[�YK\u001b;?F�$��7ff8�,Fo\u000b\r\u0011\u001c|\\^r&��U�����\u0012\u0006��\u0019\u001fM�\u001b\u0012O�o�P\u0015��d򵮇��\r\u0002��\u0016�M���՚%\u0000�jڔ�_M�\u0000���t�\u0012K\u0000�i�g���h\u000f���-S�\f8+pl��\u0000c\u0019��]=4�h�\u00133F�\u001f�q���a�\n7��\f`�б�\n\u0012�!�\u001e��璎\u001aJH�˿\u000e@x\u000e���4-6\u0007>v�(b?_��;\u0014S\f�hC��\u0000\u0015��)�˪�ƞ!�\u0016�\u0013\u0019�B�EO\u001aчB+���D)L��\u0018Y�ND�eܞ���M�o�����.o\u001c���\u0016�gs<�08HC^���&��͎�\u001d\u000e\"}!\u001b��7���˩�77�R��J��\u0005x�\u001e��\u0019��'\u001c�\u001c�\u0014�0���}�\n\u000f(~N�zŨ��Yͯ]-Hs$���'M�x�w�{�&!��c<�\u0011��]n�u\u0019O���>)�~��^p��\u001dy;NһP�##;�\u000f_�?,��+�2Y�LDksA����\u0017�$Kvxn�\u0016XJ)G�m�I����� >X�\u0013:\u001c�\u001f�\u0000�x6�\t\u0003�埗\rк�����N�,'�����\tm����g�nlom�T�����Y\u001d\u0018\u0006V\u0007�|ݖDH��Ǜ�X�x��#��t˂�\u000b��9�\u000e\u0001h�\t�\u0010Ɣ\u0012\u000f�*9\u00004]�z����z��,y\u0001�\"Ĥ:�(t�3\u001e�緡��KO���p<�G��y\u000f����3�b��r\u0007�gKx��~q��W��*d�K�Y�����\u0007�I��hvϲ�OM�v&YLz`,{�/���O���\u0018��z�\u0007m��_c���W嗚�1��󒍩�{U�w�?�\u0006?�\n<��\u0019�\".�0�y��VǗ���o�Ʒ��Xn��^���\u0014rF�U�\n�j����\r\u000fb��@0�mo�C)�j�v4��=���!\u0010n�ȟ3���e�Omu��\f]���\u0000�\u001b�!�7\u0019H\u0010\u00019g�$�����\u0016\b x\u000e�M:.�w��U󕛬�Ѹ\f�\u0013�G���|+ĒEW�a�'�=��Y���P�cwO�֫.�W\u0019���r������}yk���a�Gl�s1�y�Q�]d�\u001aH�ʱ#��x\b�.��1�8G\u0016�\u0000=�i9!�]�e�~(��2��sh�o��\"�6\u0017\u0013\u0000�8�ň`%�JA\u0014���VJ�7\u0006/�j/�;V����S�\u0017)\u001cJ�\u0012\t��(fv,�R�vb�OS\\�0o�y�^A���\u001f�޼t��ާ\u001b��\u000f��%SV����Ȫ*\u0006��\u0015#'�&/\u0013F#[�?\u0015��\b�e;���>��Ay���,6�C\u0005�J��ĒYN��k��.p�\u001d9|Hzm�ve(@�]����|!\u0019���\u000e�����_�Ҵ�I/.R��O���邘��;�]\t*[�(@%$S��1�\u0000�yL\u0000d%dw��:=6\u001c��!\u001b؀\u0001�=6�;���ռ���k��V\u0012K�k�\fSY\u0017a\u001bO\"�\u0018$�2��y2\u0010@#�\\�1�\u0016����\\�\u000b������\u001e��*H�ȱ���{�M�l���k�?!�^�N����L��^�\u0003YLQ�/�'[F��eX�)n&�\r�g;�v��7hg��\u0003\u0018�A��ߴ�����i�\b\u001e)��`W�v#�\u00008�����&��/y��M�i\u001eQ��Vܑ��;\u001b�7VqD�L�����\u0002�\\V�4��Iٺ\u000e\u0018f�׌g�{�lo�v\u0006�\\NLY��>!�Gq_p�O�b�'�?�#t��\u000b��z\u0006��j\u001e^��?/<�\u000e��Z��5�g\"jzc��\u000e���:%�A�\t\u0004�\f:m�xZ�ǔr�̡�L���L�{\u001e�\u000f�z1�\u000fic�5\u001c2�(\\%Vc\"=@�`�o���/1�gy�Iм����\u0007�|ϧYG�\ro��_^��?�;F��\u0015va\u001e��[\u001a�\u0002�@I'6\u001a\u001e���˓8\u001e\u0016��#�Y�B>@��gjf��LJ��Ո��d�=12�FA�?�o���\u001eD�t�vi�/渻�.a���\u001e\u001b�ROY̲��0�7�()��m�c���.�\b�\u0000DV�#�/7��\u001f�4pÜ�e�\"\t�T����FAB�\u0000�\u001aq�\u0017�\u0005GM���Nn�?{�\u000f��_���X�~~���\\j�Bk\u000f�\r\u001dP\u00137-\njj��V�.�<���\u0006r��hη�3�2���\u000f�c���\"c��ir�9����&/�����\u0004���E۫���\u0015`\u0019\b;\u0015aU#�\b?v|�L�}/o\u0000C�?��I?�oN�R*֛\u001a�\u0000S����@�L�w�u|���~�V_��c�;�1�\u001e�^���\u0000�%����#��;��<7�-X�2\u001en&cTz>\t��\u0007}�__�ٯq�\u001e)o������rk�Ż�d�\u000b��j�\u0000\u0001�N��~gT8��5��\u0000�o��_��ˑ��PV5P#Q�hv\u0003o�='\u0006:\u0002#�j���S՜�P}���噎9�jq�Z�ֽOoj��\u0005���tF��k�_�\u0015�@��ǫ�W|Gب�<\u0010v'�|�\u001d�?z\u0010Lji^�\u000e��檋���>g\u0001ߚG�\u0011�^��V�V@8)�'ۯѐ� \u0005\u0005��$��c��s�rjz��\"��f�7\u0012v�N�hz1�[�uV\u0006�\u0007�w>���s�=:<��*��ǧ�a��ٺ�s��,��\u001b\u000f\u0013M�?VY\u0010\u000e�`v5ՑE\u0010\u0000\u000e�~�m�҇�2\u0014�\u0004\r��\u0018�AJ��4�#o�L\u0000Xߛ3W�����5`?v���D�6���q�n.����*/�O��t�\u0001���u\"����3��b\"j>��{|�,��%�z*\u0002��W�JliM�����#\u001d\u000e�����/7�^@\u0014�\u0003�a޵��|��\t�\u0000��D������Q\u001a�J��C�vΞ|�\"�\u001e1��UbF��{נ�����~~����m�,�ͺR����f�(���<��*���\u0000D��3���B�:��\u0018���p\u0017e\u001a�!�`�#�D����T��\u001dF|��\u0000\u0004A�\u0015!�/����1�ω��>��â��\u000f���<������\u001d��׾>�버摟�w?v�#\u001a\u0001\u0007`�?5�\u0014�>�����\u0001��y1\u001d=� ކ�����A�\u000fJӤ�\r�\u0002;��<�\u000b�͍~�l�,⠟n��J�ec�\u0002����~��]5�%\u0011�Θy(���C_��u\u0019\u0013�ȭ�DD\u0007��;}\u0018(�|��n�i*����$\u0005�T��l�p;��S����\u0010k�m\nn��k���m�\u0004�\u0014�|Pr�\u0013�}����\fN�͊\r�5O_���Р�\u00154���>8j���C�A޵�\u0000?\f\u0017��\u001b����`T�\u0014%hEH�o�ߦ\u0014�|׼{q=�~T�1��E�QJm�ڞ\u001e���$�5�J���ژ���nK\u0002ې;w��\"��\"ǑJY�'~�F�\u0012Ys�h`��Bw����\u001c�&��B=��|�\u0013\u0004\u0002Aٗ\u0011���Z���\u0000�l������\u0019�\u001f��\f�;oѢ�tR\u001fz\u001f���8I�|�@��UE*\u000fM���ddH�W�%����_���n�Gz�5\u0007�5���om��\u0002�Rn�����\b��U\u0003M�z���\u000e���4I��(\u001e�A�\u0007���\u000e��\"A��\u000f!�z����?�\u0012\u0005y1\u0006@��\u0004\u0013�t�+�����)�'��A>���������,��h7jW�O\u000f\u001e��)��H �@�Z����o\u001a\f�� �v6\u0012�ڕ��\u000f۽��\u001a��cb=Y+�zq\u0002k�Z\u001d\u001c���Z8�\u0000��\u0007�s'���\u0003K�&y}1\u001b{�=�S�8]-�\u0016��0��QS�m� �\u001e�`�4�N}\u0001��\f\u0018#�\u0014#\u0010\u0000��\u000f�j2�>ie��#e�~h�+#�8����\u001br�\u001f�\u0016��COj���\u001b����\b\u0016{�\r���\n\u0018�P�NN��\u000br�Tx$dr�ضgc�3ېq\t\u0004���^o�\f�\u0016�$2�������b����\u0011C\u00115a%˭\u001c���#�a�R�!1�����@d\u001c=|��\u0000oGƟ󎟝\u001eg��g�����s\u0014�Dּ�r-5�ADv�J�V��k'��\u001eR\u0014�\u001bͩH'F%m�\u001c?�sM�\u0000hh1j4�ˀ^�G�\u0007<����\u001eq?\u0007\u0013I��$�0\u0006���#�3;W�%�C�����q�^o�w�5\u000f ~YyZ��\u0000�zU��%F��_�U���\u0004����\u001fW�մk[\t�Z���\u001cK@�\u001eW\u000e1\u001e)N@c\u0012;����\u000ewT\t�f����\u0001\bD�\u001a\u0017�����5D�!I���\u0000*�-~h~Jy�Z�N����=Ǟ��懍���ht7�|���q{,�3�q����R#@�\u001a��P�GQ�\b\"\u0011�@\u001dx�D��X�h�ɞ,�\u0003��JG�\r�>�;o�<��̗\u001ea���t�2M\u001f��^�8��7\u001a���̤Sf����$n\u000eQ��#Œ��_�e3#��0>}^_�C=ֻ}\u0003����\u0000X��\u001d�� �\u0004\u0001ܟ\u000f\f��\u0011.��L���o:�kmGI����ѣ�UPM\u0001\u0007�$l~Y�b'2\"(\b��Kcw�'�vA Y\u0014�?���ŪQ�^��X�W�\u0007�D�c�\u000f~Ϟ.�Z�ROQi\u001dӵ\u001c\u0006\u0002��V\u0015=k���5\u0012\u000f0�d�y'rZ����\u0000��\u0010�q�@5ߕ\u000fm��&Uհ\r�w\u0011\u001d��[r\u0018\u000eM®:T�x��\bH�\u0006o��6��&��Ki\u000b��\td��m�e���<��\u001dg�Z6�\u001cd���knh�\u0005^h՘\u0013�P��tЌ�Nj����3��HѾ\u0017�_�wq*&�\u0014���[��\bҁb��%B��Ar�|�;8\u0018�ɪ��t{��je�\u001f�'�\u000f\u0010�����\\�„�䑰W`\u0016��\u0004�R�n��\u0018��?��~o�\u0011��^H�\u0017�<��;�\u0004T�\u0011�xw�d��Hcdg�v���q\u0003A�\u000f��ϡ�\u001bD�WO�4�NK�;���\u000bM\"���S�X�X\u0012I�\u0000�d�ȱ��GP�\u000fL�ǭǡ�KQ�>�F���\u000f�u�I��X�\u001cp$��p�f�۸sY>_�����\u0000��&tO���\u000f)y{̿�:ݿ�zuηmi�$�\u001d�N���c���->�\fW�;�+��@9�'��\u0007k�ɟ�a3����E\u0013q>|�+���ϣ�\fz�\u0019f�\t��\u0012\u0004\u0003�?�\rH��z����~\u0019�\u00008�k�%�\u00009W��?'�-��]\u0010����\u0000Lx��7���$\u001aW�nm$�{|_�?��\u000f��\u000b;\u001d3L�\u0000����ҽ\u001d\u0013�\u001a���o�ȝ\u0002�\u0013\u0014\u001e[�ާ\u001fռ���\u001c0�\u0016�W�^\u001f�_�\u0002G�*���>}�\u0000��\u0000���^Џoh\"\u0007fj�x��c�l�.\u001c��ʲ_>!^��\u0000\u0003_i��p\u001e��\u001f��1�\u0013�q\u001d=��Y�]�q��%c�\u0003I%HX׺��~��0M�\u0017T�&!Qz\u0006�}\u001c��g6�B�'\"\u0017�أFhI$oM�ce��n�Lh�\f���\f�]�]c^\u0011��K\r��)�x�+M�9��\fO7w�C���nf��9\u0016H����ӂ�T���\u001c�t��\"%?�\f�7�T���8�\"�n]\f�%��\rF�\u0018�!D�D��H��\u0007�oO\u0017��Q۸t\u001as\bT��a\u001b��|�\u001e>x��`�\u000f����Y��X�,���#O�c��Ҵ��\u001bKX`P\u00128aT\u0015�͹�'>��\u0000�Η\u0011�G\u000e(��Ǐ`6\u0000\r�?1�a��4��H��!�N��/�O�\u0000�\u0016��u�\u0000��O��v�H���mi;Ɓ�K\u001dN��E�H�%X�0jeQ�\u0000\u0013���je�C����)�\u000f�nv��|ӳ2e��f\u0003x�\u001c��\u00008p|\u000f�b���\u00000�\u0000/�|����_1Euj|����y\u0013�\u001ae�1�\u0017�D���\u0006��ˢHG�{�]�ΗP�j���:\u001c�{��ևh�\u000e�C0?�˟4�h�CQ(\u00111�0A��}7��3�\u001d���ď�k1��\u0011�Q:xN&'�\u0006$H^�W�'�\u000f��\u001f�O�?6�tXJ�__K$'�\u0014U���7?F}U�wi~o�qȟ�F\"ߞ����\u0000\u0003[,u��)\u0001��c�d>C�\u001aլ$�ko�[lc�\u001ew���ë0��qr�>����N��(�\u0018\u000f&�NG,O��5N���\u001b\u001e��=���ݪqK�\u001b�]�����y���\r��c��F�?G^�q\u0011���l\n��Ij)\u0005�����=w]��t�z���:9\u001c:�\u0003��Ϟ�����?��~�k�_��\u0017��\u001cBF�}c�U����\u001cH�xG�\u001d�!�Y1�xy�����}�#\u0011��@������\u001f������\u0000��u{H�4�V/Ҷo\u001a�KҞ�\u0006�-�c�\"���]�Ju���O�\u0011��7i5�\u0004�J\u001f���\u0007qa\u0006����\u000f��o�2\u001d\u000b\u0016�\u001a���>_~\u0001\\��sD\u000b}���j�\u0000�0t�\\&���)O�\u001am���#�� \u0001�\n��\u0002�۾=\u0010E!Z&G�_on���ґ\\�\u0018Wm�?��t��r-I!PG]��\u0014ƻ�\u0013ת[-�Zt�O��\r��d�[�\u0013�o��\u000fz�rU')O]�է���{��\u001aH\n\n����\u001c�%2�+O����(�g�z\u001e�/��B}����E�=��l���\u000f����\u0015*>@ֻҝ@�3\f\u001d�4�\"G�qOzx��\u0003�\u000eʸli�6;\nS�8\u0001�]W�p5ۿ���q&¸��w\u001d�ױ��݃�e=�mI��\u000fo��L\u0003ϒ����Ǡ�Z\u001e���4�\u0002@�\u0012�\n�\u0011�۟���s���2�8�4+��3��\u0004d�\u0004\r��В\u000e����ž\u0019\u0019\u0014\u001d��\u001c�>\"���9\u000e����}�\u000eƛ�����\u001e�.�é?�}���;1�g\u001f��5�U�\\�\u0010-��?��u���\u000e�����m\u000f��ɯ���pG�w'���Q������l��i�\\RG~|xՃ\u0013�IJ��\"�����zi�c��y>�v�\u0007a��&^'�К��\u0014��_\fȀ�]\u0011-�o�|�x��A�\bģl�90DS�^j��6\u0018�k��\"�}\u001e\u0003���}彼�n��kyd�𹔯�\u001fn�b )�̨��y���n;L�~g�>N���͖��˥��\u0012\u001b\b���(���1�VJ\u001a�!�[�`\rv�s���\u001eQ������˂\u0013��H\\9����Ϳ'?2u��\u000f\"y��S֛L����І���F��'�v�M������ݛy\u0012\u001dF�\nF��W$Wں,q�=v\r���t����\u0000��y�ߦϓ.)a˶x��A\u0000\u001f ~o��2tm\u000f˞E�ku��o��-'�����[�:d�N���\u001b �oLp%\u0019��H$��,�9\u0007�X\u001e���c\n��;���_�w��=���\u000b�1��\u000bٯ��e �-\"����r�8��m��xQ���\u0000\u001f6���O2\u001b ��=�5�^����\u001c�ıX�I�\u001a��h��20Ƹ|�\\�xW�,�\u000f9��ˀd\u001b�͔�L�\u0005&�{fV\u0012$%]\u000b\u0001`D�e�e��t�YDm�ke/T�\u0001E$\nT�;\u0011�F��\t=Yq\u0010v\u000f���f\"�m�@Ll���Pr\u001b\u0003֛n�ʎ1\u0012X�dy��M����RK*�ǗQ�=��\u001addc$��Z�:\u000f��{�Ag[oJ\u0001�K\\�'�\u00186�lI��e���>����\u0000���ג�v�Vb\u0014�L�ԃR�oԞ����̙s.v9P\u001eOc�\u0000�Ҏ���aq\"z��[�j\u0007�Q N\u0010Tt�c�fV�юy{�@���g�\u0011\u0000���\u001e��\u0003U�5k��\u0001P]2��]C3\u0000T�(\r}�m�8��\u0018�v\u0007���u��27�>��$~��\u001b\b]�~��@�lV�)A�+��\\�L�\u0012(\r�\u0014�ك��2�oܠ���\u0004�5GR(\u0007�\\�i!xg�Z�BsNjav��p�\u0000�\u0016_��\u0000�}\u001b��UmWO}:��S�c+\u001c�P]���6�-�������\u0016��qm��S���{O�G��)�\u000fq\u0007��C��ٝDt�a��!\u001b\u0015�|�\u0010h��+��_���ɸ�6��#��槨�\u0006�W���|�����\\�e��ݝƱi���ޅ���ϬZ\u000fM�#�r���k�\u0013\u0001�-\u0006�4&1i哆;\u0000#U\u0010y�����:�j�ج�\u001c�c�\u001er&W\"H\u0002��2����՛���\u0000=y��q=�\u0000-u�4��\u0000������ܟ��V�ϙ�\b5��O�1iV�^~����\u0016����5��~�\u0015\u0015��BO9\rx~���Z�\u001f�8�1���\fЎ�9\u0007�2+a�3�\u0000w�\u0010t����A��<�9Q�c�b}Dnv'��~Tyc�\u001e~�W�?.�1�U�O�_毕o�����,�&Լ��D��zt�\b�ִ�X�,n\u0000�\r�J���_�ݏ������}�\u001b�8��\u000f0by�FB��C������]������c���������_�?�\u0000�\u000b�z_~Py�����G�,��w��zZ�:o�w���4�A\t\u0002+4yx�c�ق^��>T�\"��O�]���w��vV���eT2@���?���~��s�4��vd;CFF�\u001eF\u0012�\b��|Ѧ�}�%\tE�a\"�\u0011֋H���棽w��rU-���<'nl�\u001b�\u0000.���Z\u001fI��B(B��t\u0002�阹1\u0003ϛ�\u001dMU�.�#\u0010��ZFb\u0003)z�9l��y\u001f݊V�+� ���/�����\u001bJa1|!���[���\u0001C\u0012�x����8yS�sH��9�+XZ0�0v��(@�t\u0000)\u0004+z��Bv�[\u0018�aզYL��f�z�'��XQ��B�֒����}�\u0013�\u0018���n�6j�������ſ:�[~a?��\u0019.���u��mq�������4�\u001f��4y\u001a�]y�U�\u0014�*�A\u0018�%\u0014\u0000{e=�����\u0016^�\u0006?�U׸t$�\u001c���\u001e3�N���>���r\u000fDz����~��������\u000b����A���\u0000�|������V�K��~�\u0000P��\u0000=歩MYnn\u001c�w$��3޴\u0007\u000e�\u0018Ljp∡\u0011��Ԟd����v�S��u\u0019��<���x\u0016��\u0013�%���-��g\f��Lj�$q��8�\u00031�>��\u0000�\bɪϩ՟�\u0010��\\�_c���\u0018���ſ��)|*��̿(��\u00008m��$?�\u00174���\n_2y��\u001f��>Y�\u000e�oe\u0015�I�MG��6��\u000b����m��\u001d\u0013E����\u0016�\u00033T|'��1b�s\u001eL�4��I�c��!�k`\u0001 Qܙr|�\u0000�a\rN�Y\n'U�\u001e1���d9bx\u0000�̄l�\u0002&�}>o�c󆛬ZȆ'���\u001a\u001c���:����^�!P�r�m�6�|���ug��a�7q������y\u001d�z��\u001a�\\�\u00190�ğW�ۏs�G�s��\r4�>i��Ӟ'e�\u000b�q�\u001f��BЇGR>����\u0007\u001d��h�/A����|\u001bۍ\u0010�O�F>�\u001e^a��\u0000���\u0000b���\u0005jh:�� ��\u0019�z��i��ϒ���V,Q\u0003���t�:��򱢜;�Z|��r*\u000f�1�\u0014\u001aq\u0002�\u001c�҉�v�1�r\u0007���_g��vA���?[�&Y\r��j�\u0003��ΫȂ��b8\nP�\u0001�c���Ɗ\u0013\u001b�>�����:�\u0000\u0005H�������m\u001f3y/ɞC���֧qmoqkl.�U\u0002\u000b�\u0015T�H$\u0000�n\r6�\u0017��i�]����\\A�\u000e���by��ɿ��mR�R�\u0019|��^\u001aK�\u001f�����~��B�@�\u0019\u0012S��]�\u001fg��:h\u001f�\u001dTn7�2�?C��he�^�\u0019�\u0001�i$/�p;Y\u001e[\u0013�\u001f�\u000e�u.��^��?L��\u0014��\u0016;(�-A�Ο\f�$#-�.<�,���Ew�������\u0000�̮܄\u001a�ɠ�T��\u000f�m���U�C�p�p?��'C.(��\u001f�'���������\u0019��f�v�X��\u000e��Kn�N���\u0000�/����\u0000�?󐟙��&������E\b�F��\\�s�Z\u0013FWkEoV=��\u0015�W�n/�\u000fj{;���\u0002Y%�\u0003���,�\u00178��?��!�S�\u0014@�q'qݷ0�O�o&C���5�;�GE��X�-m홾����$�t�/^6�{��D�\"4~'�-��Pp�h�2�\u000f�{�ymn?��x��9�8ő�)w\u000b��\u000f��\u0000�\u0019=_��^n�����Z<��\u001f3�7��lv�d�\u0006�~$�I\u001e�v_�ymDF)x\n����W�;4BX�#��G�8\u001fL��,r�u�zn�ל�p\u00139#)\\�T���\u0010\u001da�\u00109l��\u0003~v�q�s�����N�7�/�L�zE�V�M��q����xw\u0012�\u0001\"��\u0007�Ϋ\f����{c]�?� F��m��s��w���f��K\u0011 Р\u0007�\u001a��߬�6���\u001f��,q[��\u0005�q\t!�G��\"�\\\u0001B%n�w�'���\u0014���9�\u001b>��\u0016Hi1\u00000���?_s�4��(*x�U�r\u001a��\\\u000e�\u0000\u0017c���)y9��G�zN�/\u0018׀?\u0018�O�U~�'s�5���#�}�L\r\n�(��e`�;\u0012����\u0001�`d\u0016w�[�\u001c/�{�~������>i��c����V��9D*\u000e����=�3l�Y�0�܁�'�\u0000\u0004�\u001f��zmp6si�\u000f�\f�\u001f�%\u000f��v\u0006[�l\u0007����\u0000\u001f*|�~\u0019��h����x\r�i�ڑ\u0004q\u0015������\u0012\u0006��\u0011�]\u001a���{c��\b�\u0001\u0012��ޝ�6�\u0000}ɪ۪\u0005�?���8�o�dy+Ɵ��]�`;\u001e�C üݬ%���p�\u0011��p\u000f,�$�\u001fbx�E�~k�p��M_T:|2\u001fM\u001fԜ����O���{kTI\u001ah����u�fL�\u0000��y\r��8\u0014�\u0007c�~\u001dFs$��\u000e��f�tLF�q\u0014��\u001e�z��(�ئf�Ŗ�-\u0018T|��~}�2D�/&1��l�\u0011^���w\u0003��ۦL\u001b�����B�v�ƾ\u0015�=w�\u0003�R~J\u001ecxΚ�\u0007��JSï�L�vP���p5�\u001e\u0001�T����#���ej������\u001eÁW��ﴄ�D�\\o8�@�O�6��3�u��\u0007���VS������\u001e\n\u001d�\u000fj����3?�\b�����\u0002L�|_C��q�\u000e�v�cm���'�e����\u000b\u001e���q�5�������2�S�ʝ\u0007�O\n\f��v�Wj��\u0011k���}�G\u001b|��\r��R�B�HX}�$\u000f�\u001c\u0003���\u001b���3�_�#��_��/�\u001e�����>��j~\u0015�\u0000T\u001fÿ|�n@_7�wqOî�MQM�\t�\u0000�m������\t�\u0010^C��@i��\u0014��뒃���0h[���m�6�˓�N�=\u0013G���!���ǹ����xd�w�4�d����\\<���\r�ҵ��O����\"h1?b^\u0005���f>�B6�z���`\u001eIS$��\u001f�C�܄;�AC������[AK%zv�Lko5\u001c���\u0015�zS�{\n�\t����0�M���˜<�D\u001bF�\u0000\"�u�Ja�eA-���E+CN�\u001bcέ�Du\u0015ނ����Y\r���\u0000�@�:��h\u000ek\u00027�+�\u000f�\u0016\u001d+�\u0012t%Iޝ*?�qLX�H�\u000eZ�����\u001e�=Ȫ�w��\u0015\u001b�������\u0003�\u001e�\u0000�\u0002�Yt�\u0013q�c�1Iً�\u0015Y�S���\u001e#\u0013Ɉ\u001b�U�BC{W���\u0019\u0002;�����\u0014�\u0015���w�PF۲\u0002�����\u0011�������\u0007�`\u0001a�\u0012��mZSj����\u001a��AT\u0002����{oL\u0000�W\u001a\u001a���ǒZ=6�\u0007sԝ��`U\u00165�\u0006��}�o\fW����O���G�\u0004^皋\u0011_\u001f�醅���ۢ\u0019�\u001a\u000f�\u000fZ�\u0000L5�ܐeC~hG;\u001e����\u001e�d\b�ވ\u0013�A�>HG;SĆ�\u0000n�#\u0007O6uŹ�H)(I\u001e��=��\u0005\u0003q}\u0012�h*kJ~\u0002�{�\u0019\u0013��*�:={F�m7ʚtJB�w�jW*@���R\u0000OS�%����'�\u001a>��$*s\u001cg�-��|��\u001dG�;N`\u001fLM\u0006\u001b�]\"rT$I�\u000e;\u0005������\u000f�u`\u0013���N�uy6�x$Y\u0014��p�FI;F��\u0013J\u0015r>�]�\"\u0011#�/�4�]\u000b�_>�Ņ��=.\n\u0005���j\"(P\rà��*s;\t��\bj��\u0012{�\u0001�j)u\u0003A�)�T��H��\u0004q�\u001eVq���H�U\u000e�\\�\u0000D�\u001cc!-�\u0003����b�}6In��3ċƾ��b[�Jq�`A'm��_���\u001c�\\6I��b�4\rcO���\u0015�׼�w5Ų)+\t��\r�Əz��2�j�L�8;� ��Sw��\u0001\u0013��Nj\u0006ADw���G\u001b4g*Ɉ��$ym�=�S�&���/��_�mo[��Ҭ��\u0016��_&#�.��0i��\u0015��}\u000b\u0015cc ���~%&��\ry\u0001����'f�\"\r�\u0014��'Ђw\u001f�\u001dG�v\u001a\\��b�\u000e\u001fL��\u001e�\u0000q�^;�yN��O�\u001bu1z���t�xI\nE��cR×�\r�\u0006�\u001c��L�&$�w\u0000|��\u0012�\u001ewϫ�|�k��կ�V����\t*=(\u000b\u0004+�Cnw�\\��\u0015 :sp52�0qת���k�Ել��h�x�ƃ�q0�S}ڠ��B#$�9��\u0019\u0013菕}�cѥ]{ɖ�|/<0(\f�n�\n�'`A\u0007�J\\9(wn�DNj���\u0005�Gq\u0003�` W)B���T\u001d�\u0007,�R�\\�\t��9f�,a�\u0005�a�/�\u0000�6\u0004\n\u00109|�\u0012�\u001a�22\u0004WR�\u000f�ɍX�i�W���{���vWr-�ׂo�|R5~�0\u001e�������\u001a���\r����+\u0018c���M�\u0003\u0012E+Eؖ�۾Q���\u0000�sӍ�^c�\n�O�Y#\u0005�✥oO�Ic�-?���\u0000ZsFl���\u001c�w{��<���}�\f�m�\u001f���%\u001b��82pzm�'~ \u0012�.�Y\u0011DN�8j+\u0003��G�\u0006�L�Ṟ.�J]�^k�\n�:>�\u0018#��ON5�\"I\u0000\u0006\u001b�/n�:-61\u0018�\u000e��8\u0013�Y\u0004�l^%�k��yC͚/�5�F�o\r�W�b.LE~�E�$��x��f\f��b'�.�$NLU\u0010\u000b���\u001do� |���̋�CY򿖭|�'���oz�PX��gQ����RkNIn�9�$*��,tZ\u0010Nt8r`��&8�\u001c�σ�)\u0001u+\u001c\u0003�\u0000-����]O�#(\u001cY}4H\u001cQ �w������\u0000�q���u����K�[��/Ζ���?枝p�Y�v\u001ex�e�d�\u0011��җ�񱢧\u0007\u0007�3ȻGټ��']��c 2a\u0000�3�\u001b�\u0006��\u000b�8;s\u0016�Y�1���0�(\u000fFA� /��w\u0000w�a\u001a7�u?�\u001f���?�?126��o�)��\u001b���5�&ju�<��\u000b>_\u0013�u���cj�B��5�]g�fa�B�p8f\u000f1!������x\u0001Ó×!��ۑ\u001f\nz�����w��\u0000����M��\u0017�SO�\u000b\u001b�|��A���[%ߚ?%�\u00000��Ћ�zdoŵ_*�h�\u0006���\u0011�Z�B�\"0��\u0000n}���O��CY\u000b8�V�'���\u0013��\u0012\u001d��\u001e�k=��\u000f�c��2m�\u001d$;뿸��?�\u001f�ʏ��\u000f�?��_͋��?��,[隕�˩�/�\u001a1�����g�\u0015�i��˯1�%��h�q�Փ2�iғ\u001c�\u0000���[�5݋����!��n:�C�ЗQ��R\u0000��O�]��ݵ�����\t��\u0014Ot�1�_:=���'\u000fQ\u0018,��|&��Z�W5\u001c\"G�7m,���n�X�9\u0004�B\u0001\u0001$*���(zV�:o��c\u0000(��f��\u0019��x�s�9#\u0015\u001cUZ�,���˯Zd�\u0001h9�X�$��\u001d��;1���\u001dd\u0015$KƄ)ܚ�oҹ8���e�#�g��\u0000�1�\u0000�2�d�\u0000�ey�|���6��/-\\E/�?�ռ��yVŘ3�\u001aSȢ\u001d[�\u001a�U\u0016��[Ҩ�^(\u0005z�f����9�L�\r\f+�_o\f{�G/-�ny?h���v.\u000b�GU!��\u001d��K�S�����\u0000�z��ҿ,?+�(4O,�q�q\"�>��j������^\u0011���5^Y\\�W���\u0003�t�4�-��u}��:�d��K�\u0007py'�5f\u0005�v\u000f{r�\u0018b\u001f\u0012BҰD�:}�f;��d�9\u0012\u0004y��\u0015\r�\u001dX���y{W�%\u000b�\r\u0005�[�+ɧ�\u0018�c�l����?�(��Iؘ���bO�>3�\u0000\u0004-t2�<8Y�1}��\u000f�s�|����Mz���M��j��:F�w�k\u001ad�V��K�,g��N���+G$N��x\u0012\u000f�v�ūҝ\u001ex�xf(�@\u0018�׊'b\u000fq\u0004>[���d:�FC,y\u0018�#�\u0011DWx�o���p��s�̿��퇓�8�����o^������m��]�w�\u001d���6VZ��`�N��\u001f���˄MF;��}.��)=\u0005�1��\u0000�\u0010�\u0000�]��=,�W��0��X���\n�=@\u0000�\u001e\u001eQ�@�HP��!d\u0011��{i�A�=��s��:g�#r�\u001d�H܎;78�h\u001e(�\u0010}��\u00009��oi���\u0016����ئ�m�qx�L\u001b�\u000fn���*��A�\u000f�/�\u000f{c&\u0013�y\tℌ\r�\u0015��x\u001b\u001fs��ϳFL9\u0004\u0000�\u0003�Ur<�\u001eb���a�A&�{�?\u0014��y#a�T\u000eW�Ҥ\u0012�|��\u0006h괢B�H����qKK�3�����\u0000o{���~:��5;#!�d��`z\tT�}C\u0019��+\u000e���_\u0013���*�\u000f>�_\u0017�=��u\u001a9ݘJ\"��������M=�_:���xߙ@d�*��M*z�\u0015�9��j<~ˈ\u0016H�~=�%��\fu{�\"|��zϟ���ڵ�\u0015{�\u001e\u0007���?�,1\u0011*�D\u000f��n\b��.I~[�\u001a;D�������݁,Gꌉ�-�|��\u00008����/�lb�&_Оf�>X�\r��=6��\u001a\b'�.�H�\t=�w>�h#�}�5xG�F/P�\u0015�\u0003��.��~O�\u0006<�xS�\t���~\u0003��r���~_�h��C��+-J񬟘X䰚cqdT��4\u0012(\u0004f�3�p�S\u000f�q������\u0011�ĴӮ,d��/o���?�\u001a��1嫫P\u0014��h��x�|\b.R\u001f���vΐ��\u0000Y%>�\u0007�t��u�f5����O���5l\u0013M��\u0012\u0014����� \u0013�d�@U\u0018�R(a޹�}�fu\u0011�7����z�I��<\u001dD\u0007��{\u0010����Z6��渐����5�� �\t��\u001b�\u0002P�uڴ��;����ɏ<\u0000�\u001ew��\u000f#���9c爏�=����M?/��+\u001f���\u0000��.��~������]`�\u0018\u001c��Ɖ\u0015��x2z��wO�T\u001c�r�2��]����{?\u001c~9%��\u001d��{=��\u0003�}~YWR1�\u0002'�1/j��?$�#ygR��:��$�y�κN�{qc$�T_CO��.@X����\u0005��\u0019kŅ3��a����ڠf2_\f\b��\u000f�z�.l\u001d��æ2�b\u0007��2$Y�#\u0013�B��J�&5/�\u001fʻk�5�\\�v�v�����X�}b�\u001a��o`���kl�-��ep��RH\u0015\u0014�g��Moi�\u0006�Xo\u0016\"I\u001d='k\u001d�\u0000c_�z�>�O��hd�\u001e\u0010v�\u0012.TGC�����\u000e|�\u0017�\u0007�\u000e����4)�o:#���U���\u0014$I\u00138\fL��@뚯l�D��ló4�\u0000�z}�r�7ٍ\u0010��̗h���\u00000����z���<��R��)�������\u0006O���m�E��TS9�g\u000e\u001f�F�\u0002\u001d搜���2A�{���E��Ե%�\ba���\u0015٭�]\u0016�S�\u0019��3�\u0012>g<��\n\u001ak�m\u001e������HH}�ù�\f��\u0013�Ic#�\u0013\u0019�/̏�Ǧ��(z��\u0000�}�)�C���\u001eT��~��^7���q��\u0003�\u0000\u000b��;�-�f��yl�O��O}P�k\u0018,Ғ�\u0001�߫1���&\u0011��j�^��\u001b�\u0014�t�2�Q�#3\u0015�h\u000e��Nv���\u001a|\u00025��k��_f�����\u0000 \u0001�ݺ}9��<\"����\u0011�U�&��}��L6Eě\u000e���\u001d�T�=ʜy5\u0007A���\u0000?�\t+�FG\u000e��\u0003���z�n��R\u0000Cͻ\u001au�\u001e�4���b\u0014�=���޽�\t\u000b�\\[[<��cO�;\f���\r�~���\u001eqM>����\u0011�����\u000f��\u001dV�8q\u001c�ڃ���>��u�w>\u0004�i�\u001b�o'$�p��P\u0001m��*�8L��YK$���q�h��\u0000\bM,l�:���{\u000e���E\u001b�~}93�\u001b@\u0002�GM���>��F2��S(�� �\u0000�t\u001d\u0006ۀ\u0007�C�#��v���}m\u0007�6����a�Gs;\b�\b\u0014��ni��9\n\u0014?�\u0011������9�5<\u0018o�\u0000\u000e��7=�^0��\u001d�G�@~w~o?-B \ri3\u0006�\u001fҧ�ϥ=�\u001f�����}���%���`�\u0010��J�\u001fj\u000e���k�ߑ\u000f#���>��H��\u0003�(��C�̾�;:�j�\\C�%�\u0006�k\n\u001at�\u0000>�\u001e\u0019�ϗ�>-?��e�'���\u000f�L��v�cl�Ս+Ooz\r�_1{uv���җj�\u001b1�\u0000\u0019b��0�\u001d��1����ˁ��?�\u000f�?$\u000f�\u001d�6�W���|��\u0000\u0004}�3���~��\n\\]�\u0003��\u001f����+�\u001fA�3��W�W};S��X��7\u000b���_LҞ\u001f�p�[���Ϳd������xa�Μ\u001dG&\u0004\u000e��\u0007��:8>�k���@?���+%�6v�ΐ�A���׶�0Y����rj\u0012{�&�?��\u0019d\r\u0006'Ϛ\u0002\u0018�N����~�#`���}�}���'�4�A9�oý1�<�J_'\u0001��߹\u00187�\u0011�C��ۮD�U*��ӥ~ـ��\u001c��FG!QJ�~�.�\u001d\u0012\t��\\\u0000\b�Q�\u0007O4�\u0010-/'\u0000S���,N�\u001b\rB�h;���\u0010Y\u0003�R9����G�4]��\u0007'�����\u0018��%ďL�V�}�_v>J|��3�\t\u0004u�O��`;�5ӓF%�i׷����\u0006ܕ\u0000�'n��~�\nc�[@�'%4\u0002��郞��҇��������(�\u0017E\u0018\u0007�I\u0015�>�\u0000�ȑ|�}���{#�Ӧ�\u0000>��)�A�%����\u0011�:m_\r�)���x���Rj)Jҧ��\u001b�6�$��\u0014�\u0014�'�Gj�|P���JmP|=�+�%G�56�i]�\u0000�x�N�0tU&=;����1�*d�ۨ\u001bw>�#\t�U\u0016#�\u0004\u001d��\u0000���,dxB\u0019�\u0015���S��rC�6���#�![�:��}Ԩ��\u0017�\u0002\u0002��(9\rA��\u001a���2l�\u0010\u0012�(zmN���w�&����J��MJ���\u001a\u0007��b�z*3\u000en���]Ͼehty5��zL[�r\u001f\u00007'����O��|��G���{6��\u0006���Qj!�\u0004\u000f�᷁E(:)\u000b��=�M\u0018�\fc\u0001�\u0011�ˣ�e,��#̒��\u00000H8�'f�d&��<����\u0015�=�>\u001bs��.[sx�/%j�/6�4t\u0003�5\u0002����H\u001d�3\u0010\u0000\\�D�;ty��͗�l�\u0019\\5�@�۳=Ai\tx�\\�J�2#\u0013\u001f�ǽ���\u0000vy\u0001��O�>���i���8��!�5e,��١�()ԝ��7\u001c�X�ӣL�\bJ��y�����\u001b\u0018��U��p��쐩g���a�M\u0017���,�@�W��by�=\u001e+��gK�@��Q�%n-�\u001cV#\u0017\u001eAwؗ�M*v\u0019����~mY*<�\u0002�+�>p�\u0000�x�̃�c���v�!��t+��h^j�\u0003$�hڪE�$��{i�2[J9\n���b8��c�Վ,<���\u0007�~ƹ����a�DW�\u001d�~;ߧ\u001aw�䯑�\u00003��a���iz���5h��\u001f7y~��mSɾn����[����\u0005�Q-��Y��Qn-�Yw�\u001c�n�͢�~W!\u00062�\tW�\u0012k�|N�9��\f��HY \u001b\u001dD����G�#mt\u000b]\"�RK\u0019���&�\rKI���GP�5�H�˘���R�*h�Fdb��\f2m�2�>D\u001e\u0011E��0�\u0012��DX�\u001f�\u001f0�\u0017��E��I:*�k�;ԃ�1ʃ�\u0001Oߑ�9x��[q�8��\u001fr]�)�\t��4٤\u0004F^2\u001c��ZS�?^:�R�۱�\u0000�P�4����B�ɾ�V��I�˸\u0007cM�i�F�c�]W6!�Y�A\u0019��\u0012�P�J��CPPR�d���#��������\u0017澡�ZIX��\u0006��T���Җ��֥‰/�\u001a��\u000f��\rƀP�A\u001d|3+Wc\u000e8\u000eb;�T]F�!,j��\u00135\b49F}\u001e]f��\u0005\u0019p\u0000o��pk}ŋ��x���<������\b�חWӺW��\u001f�>��.~z�fyj/%~ly�M���\u00000|�h�+�F|��^hVk�}r�2yt��\u0019l\u0019�9��#Z��;[K��]n-\u001fg�~T���\u0012A���'���\u0007�Q]���u�\u0012e�9'�H�EF]�\u000b$G�Y��[���� �6��\u0013*�\u0004�N�\u0010o@=���\"p���GN�k�Y��/�\u001e���O����\u001f�]c�q��rO�6�����ܗ\u00160I(Ӽ���V����,��#{�\u0000(y���0�B�G�$yD^� \u001b��_���=�}���وŔ�\u001a�\u0000�K`O�O-�\u0002�M��\"��\u0006��+�x���\u0013,����R�\u0011�\u001f�&����\u0000�A�lC��&�6!{�qI�tH\u0014+���\u00124E$�vr�%QԜȎ\u001e-��p����J��\u0004�؟���i���5�ʟ��{;���+�\u0016��G�g��\\i?�V7J�i�*��Z�>��\"\u0011#�;�f��ɭ��v��C�\u0014�����r�\u001e(�+�_k�ݏz]5d�\u0013\u0013UDC�^~O�\u001a��ߗ\u001f��C�,?(����?�^Z�[h�\u0016�\u0018�'��\\j:��V�V�o�z�\u0017s�I#\u0012I�\u0000�Lqŧ�0`��\u0018��;��I�M�w|OY��kuGS���i�$�w�V�bi䐙�j����\u0007�D@�O�o�2\u00119%WI�.\u0018�����\u001dO�~s�on�htM&�]K,�biR�P\u0016�\u001a\u0012X�we襪�c��\u0004�n^�$4�iN�\u0011�\u0003�����_;~d��<�����yfyi�\u0006��Q��\u0010G�4+X�j��\u001a휟\u001c�\u0007��\r7fi�\u001a\u001bȟ{�~�c�Md��\u001c1\u001f\u000f���SV�u�YKT$�\u0001?\u0001V.�O\"j�'���.�͞v\u001ek\u0016�\u0006�6�\u0004?Q?$��}fm:\u0019�\\[_��\u001a\u001d���:�,��G 5Y\"�9��#�S��$�\u0007s�?�Ϩ�ub f\u0006���ϟ��\u000f܏����)?� �\u0000�\u0011!���u?Ҟ~�\u0000�r�M��>�5�\u0019�MO����\u001f�ֹ����ᵷ:c�٧�ڧ�5��ڞ���>�C��C�Aڸ���*0�a�\u000e�\u0000\u000f�\füd=\u0006ޫ�Z���ƞ�\\?�4S�\"n��cx$z�\t\t�'o�#����(��0o��>\u0016ג�T)\n��\u001f�a�3ڽ��!����G�\u0005>A�N����\u0011�dh���z=��q�Q�X�m6en\u0010J�m#q\n�ౌ0��}�'u�[�\b\u0018#\f��\u000er��~���,'\u0014��6�\u001e]��\u0000�*��&��K�Z\u0004u��\b�\u0017�\u0014�PKU�$�!�\u0019��'_\u0019i�\t\u001d�����G��2��\u0000��y���;��/�G���9�M��+�w\u000e�1e \u0013@E:��`�C���h�]�\u000eWd�e���y�p���\t�kSy[�چ�3$_Vծm�#��a�cn�=9\u0014\u001d���\u0000�2�>9i�f\u0019!�7��ޯ\f�!��\u0000���t�&S�\u00009��G�.y'�28�\\jZ$z6��h���YRF4��\u0017���cM�X1ٲ��9\u0018����h��5`���D��v+�����p�c��y���b�ϗCr\u001b�u^UQ��m�+�ز������\u001f0��أ\u001e��\b�\u0000\u0014G��\b�\u0000���6�m����\u0013\u000e�i\u0018�T7���'\u0007\u0015�h}���xFx�Nr���v��\f��\u001d�8w�5���_&I,��XH�\u0000�\u001c���\u0005�=\u0007Bzg��\f��.uO!�f\u0013#�%�\u0000~J�-�\u00008��\u00008����m\u000f��/:y�\\O\n�)s'�n�\f�D��ֶe\u001c\u0013F^���\u001d���.��L\u0018�'>LX����m�;=�giq���3同0C6K���'q�h�\u001dBG7���g��1+�\u000f�_ɿ�\u001df����F5����3Z\u000b��+w����{i\u00014Ry\r�5��i�b�e�\u001e��\u0001[��6�]���u\u001f㞃��\u0007ܬ\u000f^��u&���䊏��\u001bfó��.^9\u000fO�k�!�\u000f�v�\u001e�a\u0005\u0010 \u0011��7��;L8�ۣ��T��j�\u0000�ݾ{f[��薵$W\u000f�>}��<\u0013�����|)C�%4���&�\u0015�]�O\u001f\n`�Rd��\u0000({��\u0000/�()[�S�:����\n���;Sm���#�\u0006@_*\f\u0013�z�YZ�9\u0005\b�z�@\u0007�zes�\r��!\u0010\u0016_����b�Z�^�)\u000b�\u000b�%�lX\u001f�\u000fo|��_R'1�r\u0015�Ջ���\u0013�ϭ,�\u0001�����|>��B��@Rs\u0005\u0000\u001dFۊSc؞�%\u0012)h\u001eJμ�\u0013�v�;o�2`��Fԑ��޺{\u0002*=\u00175=��\u0000-����\u001f�������5�����S\u001e�\u0018;\u000f[��jz�\u0000�3�_bkÿ�;�$?tA���<�k'��_��\u001c�5��~t�\u001d����}M�Kh���ï�;��>ly��\u0000j�r�p\u000f{�O�c�O\u000f�9��p��Q��v�,�ȑƕ�|:\u001d�k�n��YU�A���|3\u0002N�\u001f5ک?S������\u0000\\}�\u0018\u0001��.$�¿�\u001fd~H\u001f�8>C���ϕ��3>��/�^����\u000b�ᏹ����=���O�\\+�W�\u0017w�\u0000:����UJm�o���\u0018�h�4���?5���\u0004��d�:�^l\u0000�ۿ����\u0011\u0007�\"Ѧ��{��\u0000�r�n�\nz-���\u001e����'\u0016w�]Mk�T��m���N<��\u000e�d5�\u001e5\u001e\u001e\u0003��}[��\u0013�P}��\u0000L?�O�H�^\u0015�o\u000f\u0001��V%-�����;��\"\u0006�jy�o�}Ϗ��\u0001?o؃ޢ�\u001f\u00105����dv�T�����`����j�Z�X��N���\u0000\u000f\n`���)�> {��C��F5\\����*A؁����Ͱr�[\"�\u001a\nm�\u001f|i4y�P\nkҵ����i\u0000|���\u0014�\u0014�s����\u0007�I%��w����Ȱ��7\u0003��\u0006\u000f�<���n��n����!\u0000�V�w�nGA��1�)Q\u0000\u0010jH�X\u0019�\u0002\u001aV\u0000��i���\u000f*Ꝣ�W&��\u0000��3\u001f�������\u0019�6��������xߗ&�H�=\u0001�M��\u0000O��r@�o��\u0006��:��~�Mr Y�W\u0012\u0001�ߠ�(O�1\u001b\u001d�|��\u000fjT�￾\u0004���ֻ���c�b�$�]�����\u0003&&��ֽ>g~�=��\u0006�u�1�I<��5+�\u001d*)�t鑮d��#�R�c�����^�6�'or�\u001b��B9=�_\u001f�C\\�l\u001e}R�z\u0010\r=�P\u0003��;|Ro�'Oԭ�y�i�+��{�:7�t�N��\u0019//\u001d[��\u0016�>\u0015�K�\u0000��d�VmWh\u0011�\u001c2��B��\u0003��[�\u0003O�\u000e��l����\u0019���\u0004z��Ҕ\u0017Q�\u0018\u0006��Uf�[��\u0002��\u0000�9�~&��˰�����/\f��yv�p.-�4��I\u001a�0���C#��\u0015�M�u\u00036\u0018�A�_\u0014���/��\u0000�>/�\u000f9�zo��O�o��4���j��Ǥ�a�\r\u001b϶6��T��Ŀ��\u0006k\u0013\"\u001f���K\u000f�@P���\u0004�w�\\��\u0015��!�����\u001c����X~�~Q�_��X�:e��{=������J.m/��\roT\u001aU݌�+-�Մ��2�ca��v8���\u0011R\"\u0004�DK�\t\u0003�a�\u0019d�/\u0004Ճ!��q\u001a#ʎ�\u001a��y�ˑ�X(/�D7=�\u0010�f�u\u001e9������a\u000e!\u000e\u0013ί�|��_�����9�0���@X\u0014��\u0004\u0001�P)\u0006��r�\u0012�ٶ�JF@\n���bZ5әc��\u0015\u0010��\u001d\f���J������K<��\u0004z<��A��{Sծ\u0014,66W7E��\u001f��Y\u0001$\n\u0006d\u0003޹��\u0004���mr$���7��<ڧ������{5ơt[y$�i\u001aUB���A�\u0006]-����0�\u0013\u0003��l�r�����P\u0007R�6�j\u0019K\u001a\u001c�c�\u0014��eNO\u001d\u000b/�|�`�>_ӡ��\u0000���c��\u0005EhA����Y�J\u001d(:�o)��\u001f�ܻ��\u0018��'�E*�F��|k�G\u0010\u0006��\n��58�\u0011�U\u0003Չ�F�\u0010�jjKTԏ\f�vLI�G�����\u0012C�D���\u0015i\u0007\u0010�Z�����Z�qLγ\u001dv�&�p2҂y\u0018[Ȅu���z��\\�\n�oRG`\u0016�j\u0002î��wh��������e��\u001a(�\u001d���~��\u0002o�z_��#��F��`��q�o\u00021j�W�W؜�U\u001e9��#�6y�d1\"Q\u001ec������q�G�׸�_T��}�iZsj�����H��6�ݔ�����a�'�\u0012��b\u0015A$\f���s�\u0012?���P�?]�y�37k\u001f\u0002\u0012��\u001c����<��~a�\r��'y~\u001f7G���6�s帿0�4k�\u000e��:k�2��ֶ�\u001a�5\tlt�3��U��O\u0011�\f�_i{WG�\u001d�>���G\f%\u0010$\t�)\u000f��m�}3ٞ��vWf�'hd�L�D�\u0004\b��\"�۞�I�п�^v�m��sq뭌��\u0004�E���9�\u0005\u0018zR|-N���y\u0003��\u001cG��r=���u����f#s����~�~\\5��\r���L��%�J�\\���\b�`�\u001a��^�Rt_���\u0012Ő���~=��Nx�u���>����N\u001a����cp��43[�,%.��R\t��ż�̯\rʹ�J�o:\u0015*h��5�|�=�1ȹ�� \u0011��G�==�į��o��������T���.4o�\u0015\u001f�-J;˧�?�v�lߔ�m֥\r(����]cӭ����Z�H{9EKpcד�/c�7X\f�����D�w�8nI��\u0002�1/U�>�v�e�\u001c��\u001aN�]��c��|��\u00008��\u0000>#�\u0000�P�\u0000�zm\u001f�_�ڭ���/斜�ߍ?^�}\u0007�OF�aV\u0019t�\"��}�V�t\u0005%է�\u0018���fwd{/ٝ�\u0011�c���2� �G����\t��\u0017����=|N-5i��j��G��׺��>|�V\u001be�t�m�����O�l-��4�>��=8-�m-c��N��E\n����P\f��]�+���O\r�R�2���}|��מ55\r*#��2�Y'\u0000�\u0006o��^��^�[�S)wrF\u0002&A\"����ݪ��\u0004\u0017<�\u0015b\u001b�;��fV> 8���e0\u0014\u0006�V�������\u0016�\u0004Q�-��v��\n��M\u001b,F�rƵ��;\u001e�����;\u000by�~\\�dx\u00003?k��W��^��-fԵ}b���#�\\]Hŷ�\"��Ϣ=��\u0013��yKsR?k�\u001e��T��\"\u0011ח��qhA\r2����}��?�u\u0013�$9��\u001d9\u0006�7���~p2k�YM-\r��\\\u0010\u00014�:E+�M\u000b \u0015�A�6�|�6\u0002/�\r:Mf9c�*>������\u0007��\u0000����$���\u0000���ӵK���\u0003�S]�?�Ǜ_�m���\u001a���\u000b_��b����\u0000�1Z8�~\"��-h�g�v�f����vV1Ů�3�����n/\u001e\u0000u��$H;\u0003�&�\u0007���=���v��\u0006�u�����*8�H�C\u0006�b���\u001c�\"_�\u001f�P\u001aօ\u001f�-`o�����\u0004R}h\u001bӞ�A��Ȧ��3Q�oh\u001d.��>�\u001b\u0006��}�\u001e���ӍT\u0001�\u0015-���\u0004\u001e~o\u000f�\u0000�h�u�u�\u0019\tY�c����Z0�S_�h7�|�?� t�r\u0003�5����\u000e&3�\u001c��~���rS��^��x�dOR5��\u0000��$���@\u000es>�j\u000e�SG����c\u0013�rw\u0012\u001f!~N�]i�W֒�\b��J!V\u000e�\r�\u0013EpA�{gU�\u0018�~\u001c��N��r�\u001eN\u00126$���䠛�_�\u001ed�*�m&���\u0004��,���Sr\u0001�����\u000e=����\u001bM)\u001e�6*x�\u001d��މ�]�o�?�\u0007g\u0011��Z��\u0000y\u000f?0yZ�6�,\u001d�x\u0006Ƽ��~y��\u0012\u001d���w\u0011�5�.ϵ�\u0019k�y!�P������\u0000?\u0017��+�$L�\u0004�m.���֠�ڛ�o��)��$\u001d�\u001c�'�\tp��\u0002��\u0017�^GgId�\u0002!f�\n���zV��L�>Ό|\n\u001b�^'W)N^@��o�<��\u000f�q#�q�J�b��g���ˮIa\nO�Xi2k����{H��\"�\u000bdrd��Ƥ��x����\u001fl;O$H\u0007\u0006oM�$�\u000e\u0018���z=�]Tt�����|dʇ�Cė\u0014��wu|�{�j\u001f�>Kׯ/2��>F�Ⱥ���g�՞�\u0000K�פj�k:\u0004wS��������$/\b$�\u0000S/�9��>����\b3��\u0000����\u001bH_.�\"'�ɗC��\u0006c� 6�\u001718��e�ݶ�u{o�o,#<�m�\u000b\u0006����\u0018���=�&9�m��\u0012���_���R\u0006a�,i�4��d�q��V�\u001b@r\u0002#���p�>��?� ��6z|\u0007>�����@�\u0017ګF������� b-�^�B@gi[p\u0005@]�S��Ԟ\f��\u001b;-\u000e/�F�C)��c���e�;�\u0000�\u000f�\u001d\u001f��c\u000b�\u000b;��S�%䞌NZh�Z�j\u0000\u0005N�:�\u001c}����&ďO�����-~�\u001a\\b�O��=\u0007{�:;�;E��-�\r��\u001c0��F�5��P����xs�9O�>�i���+\u001cO�;Zq�y�|����ӥ\rc�\u0001u�\\�\f\"UZ,\tJU���#=7�t�6Q��m\u0011�V\u0019�\\�\u001e3q��\u001f>��m�E \u0000\u0016h�4 �\u0015�Mv�o��aW|���!dX\u001b��|��\u00009G�E�~z�\u0000�+�n��\u001ci?��5����H�\u0006O���B�Kmg\u0001Z�ͨ�ZK\u0012S��f�ێ��ڝ�>��\u0007�)\u0018�\u001f�Pc�#�G\u0000�2�f}�����)Y��e�n��\u0006�ͳ^O���q�B�p�b��Br�E�,R\u0007��J�u�'\u0005\\\u0011P����BoU\u001e�\b<����#���\\��x��﾿.Oޏˆ\u001f�\u0017����ߨ�\u001b��\u001e��^`'�Z��cπ\u0000���M٤P\u0003�L�ޣehֱ\b�hQjE6�l}��6=��d\u0004��$`\"CU�\u0007z�\u0000L�����H!�o����8��\u001c�}WX����u\u00016��+Oվ>䝣g��\u0011�\u0007��/���G�GP�����W\u0001;�����MVq�\f�\u0012\u0001�������\u000b��\u000f�\u0011e����j����f5��Z|��8�NFS��l�r\u001c#�$��\u0014\u0004��\n~>��\b���)��|z��s^��\u0000<��_W_�>�p\u00057��;nK�����C�f�n\r:\n\n\u000e��'�+1fe�1#�:\u001a�n���郒ErVD=i˥|k��]�̥�bA�9�:F��\b\u0014�iL��A���]�\u0015���_烅�#*(\u0004�~u?�>�� ���\u0017�=��\u000eG�o5����\u0016�\u0015�:W~�xg��A����i?� �>��?�k\u0015;q�ר�\r��\u0011���Q\u0012I\u001d8}�z�k��\u000e�\u000f\u001f�&��;�\u001fF�C�9hf ��e�u�iZ�\u001a�\u0000O�03\u0011ד��w�Ojvڻ{��`˛��uT��\u0000�*��Ջ�k��Oz�p�!�\u0012��\u001e(���\u001f{��\u000f����Q��}�+�\u0000�\u001c\u000f����_��������\u0007��\u0001~���#۷A��\u000eO����m�m�7W�?r��ݰ��q�mb�~גy��7j\u001f�c�\u000e\u000e�\u0012\u0018\u0011�:}DZ�e�\u000f/zg��Y\u0000>?��� n���n@z=��\u000e�b/�`�n�Rk���G��\rs���\u0000?\u001c�槸%Q9G�~g疃{��N\u0014��Ǩ\u001b���~_k/>�M�b����R�\u0005\u0000���\u0012�z\u000e�}>?v\u0000(�lN�V�����\u0011G~��\u0002v�\u0001>�Ҹe�y)+�Z��=~_/\u001c�]�\u0014�\tF,\u0000�@\u001f?\u001a�\u0000L�:�\n�BW���>xi�\u0015�r56;\u000e���`��u橽7;V�\u001f�\\l�\u001b\u0006��-�:\u000f�ƽ\u000e(��[z�)�$o�{c���{\u0017����)��x�\u001b5��5#+\u0000G��\u0000:u�<�䃒S]�ԩ\u001e>�\"\u0012w�C�ڝ��u���c]��ԓ���ɘ 4$V��K\u001f���\\�vE\u000ejdi1@h�\u001a��m��R\u001f�����\u0014�\u0002i���|3\u0002���H�4=Mi�߱\u0018\u0000��Pw��\u0007��$\u0007N�ov��\"���?�q� �\u0014�i�P�������*�x�\u0006ǡ�4�'�\u0015C�\u001f\u0013۷q��| �%<�܍��֔�\u000fN��Do�*a~�\u001b�3��ƕ����̱$\u0001�y�C�ݏ]��)�w\u0003#L�.(�\f��\u001d��{���\u0016\u0012�Gr\nM��Q���\u0006{�#�b�\u0000��\t��\u0000,�Ty�h�g�~q�\u0012�/�0��\\�\u001f�\u000fZqU��w;\f���\u0015a3��nR���#�j����=����qj\u000fѧφR�����ߚ�,:l���#7��}I\"J�K7�Y�u!OZm�]\u001f�B2�!^��g�D��b~Dž��_��k:L�G���h�IJ&�B�n\t*j:f�c8�./�\u000f��Ɣ���d���ߘ���\u001a\"���̑��w�\u0016�g\u0011\u001c�w�t�\tB\u0001��db\u0007\u0004�_�\u001e��Le!;\u0011�>���=���\u0013z�\\!I�\u000bo,\u0012V�Czs��~EhE��>ag(�����\u001cC��c���W7�F����;9�;�\u00075>�'\u0010Bt`?\u0001��$%ʔp�g��up��wE��\fK)�Y�<��P\b�\u0003�2���PC�|�\u0004z��s\u000b�3۫�+o�@����J�φn�r��\u001f�\u0018�D���\u0017���������\r��u)�l�{�i���K��ged��񵵔\u0001c���@\u0000�\f=�\u0018�nJ\u0002�q\u0013�L9�WQ)�|&W_��VC�ã/�ͳ�b���\rxT7��\u0016=��{�9)\u0003\u001c��\u0017���L���φ�=3�\u001a�3IJFD�P����\u0007�>,\u0006dD��[C���KK��->3/\t\u000b��m�\u0005��\u0004�]�W�\f��\u000f$�_��x��䎦�\u0007��%R�_��Ң�\"9������W,���M|�RO\u0010\u0011��柖�g�Ĥ��#W\u001f\u000bP=K\u001f\n��ip�\t�m���W��v\u0003P�\r� \u0019A���AO��\u00006�v�kM�\u001bE\u000e<��ݞY�c$s��R��[���?��\u0000D\r�\u0016��;{d�L�e�ю\u001c#}��u���\u0001Y�&qZQ�*Ӄn\u001a��W�C%�\b�\u0000��Do��9�dKf�O�M���\\�vq�u@t��Ց,\u0006�4^:��Ր�J=2Í>��jk������]�\u0000\u001f�g\b��\u0011\u001c�?�¡�t��.\u0001����[1V#��-Р�RC}9�Ōg��\u00003���-��r��S'�\">'g꭛8H�\u0016\"F���\u0010kQ\u0018�Y�7��\u0014\u0004�Tf4�\u0006Y_.\"~���q�8\u00029�>\\޻���:��?,<��r��̿�|�a\u0013��1>�qkc��L��$6��M\u0014D�i�\u001e�S���H\u0006�Tb,�\u001c\b��Y���=?�9�S�_��G��\u0000\u0003�d�؞��O��F�1��6�n!�?Bky\u0013�M\u001c�5_�� ��<�3\u0007x���,fls�z'�|��_���Y\u001e\u0012Z��/N{Iϧ2�-�� ױ\u001bfN� Ǔ�\\�\u001f��ܬ߾�`\u0007�����_���Z��}����N�\"�T�l�o��殄�@�\u0015\u00079n��q�e\t\u000f�=$��\u0001�`��}���\u001bK�\r��\u00167�\u0002β2q��P��7��44�\nu�h�ự����\u0019�]�\"I%��\"K\u001b�#ni�\u0004$}��Ǯ��\u001b�D����\"F�\u0007ʞu�h��sy��ޣ2�7&%���(S��RE:x�D1���\u0019�\u000b\t�\u001aP3�\u0018�^Ak]�z\u0017\u0006�\f��\u0004� \u0016s�\u0019\u001d�!�\u000099�5���tkb�\u0016�K0Z���V5$u`+Rs��Q��p�R��\u0007{���R6�W̝�=_��Y+\r��7\u001f�N���U�ڠ�*[l�\u000fg3\u001c]��\u001f� ��\u001f�`2�s���? ��Q,�\"�4�ؑ�\u0014�ZUz�V���bD\u0011n�8*�mo��\u001c/��^��R\u0018���E��\u0017���NƠ\u0003�\f��&a)\u0011.V>����\u001c\u0000J=A���&����\u001ew��v�U�|ê���۲����]C�h�Lu\u0011�\u0006���҃�棲5���j��\u0000pCZ\u0004�\u001c��Ŕy��r�+��9;G�\\�L&�d�LD��\"q�4�3'�6\u001c`�Sx�hFq���:���3c�\u0003\u0006y�?�G$��� �Z�+����)c�>n���\u0000\u001c3h:���7PcC���y:�\u0018��g��\u0019!�]>\\�sa_��'������\u000b�cB�x�r`c�U*\b��/*�f^�O\bv^�$\u000f�\u0011/vܜij�&�\u001c���#��o�/��?�L7�Q���ycNfm�`�E*6\u0015*\u0005{�{\u0019�N\u0006W�VOC�4LuF2�\u0000Q�����H��\u0011=\u0002��ȶİ�܀\b��j���i#�vx|�JD\u000eCw�7�6�>��k�\u00008t�\u00176�S�W��\u0007L��;�?R�_8�Cuot�U\u001bնr�m�\u0019�}��9�}�<���\u0018��~�b+���^IC\u001fe�\u0003�\u000f$���4�o�g��]�w�˥���O\u001a]���έ�+M#�l�w�\"��Z��B-�m&\u0015*��2�Tf�Ru:��Le�#Q���#��s�;]?�І�G�\u0000Lc�'�ѰD`\u0006㬃ٿ/�ke\u001ex�D�{w�;ʖ�\u0004��ކ)\u0014�����n�\u0001EsW�#}&\r�\u001e����«[�\u0017\"v\u0007{>g�a����s��\u0016�M��7�|�+D\"��\u0018�i?(�\u0003~%*xp\u0014n�|�I�\u0013�H\u001e����W#S��<\u0000q^i\u001f�\u001e���/�?�\u001c<�)�\u0000/���`��5�\u0016Q7\u001f��\u0003��&P�h����i{_$�GU�|_������>ˀ��/���|�aֆ��{���kz��O��I��9��`��OI\u001a�q1�ZG��:�'M�\u000f�s��\u0001~r�\u001eNW�2�>\u000e\r�W�>g����\u0017�`�-!ӭK����P��RMB�e!����s�Dg5���Q#�{Dl\u0007@?[��a�\b\fp�{$�\u0000\u0011�����SR����OVmCQx�M-E\t7��F���;89Jǰ\\��cɨ\u0013�q\u000b�����'a�r5Yg�\u0001�\u001d�L�G����h�\u001fs*�&��G����-�8�������V���Wj�͋x�14p�lv脅�1���+ݵ'Y�\u001fdvI�\u001f�\b|��7�ݗ�����S7���W�~��isE�CY���$�\u0000EM7�\u0010G�\u0018 \"�Go}4�N�3�i�o\u0013��\u000f(H�y�o\u0003~q\"���?ˤq���*�U\u0015\u0007�x��HA�\u001f�vf����>p�<�$��\td\u000bɐ��z\u001f�\u000fE\f��v��N�|$�z{�w�Fh\u0002+�*y\u000b���\u0018R��xّj��*��xls��k�e�|2=?\u001c�~\u0019ѱ����\u001fC��I�\fA�\u0018��ԡ�w�6C$\bؠ\u0011\u001f>�\u0017���Ide\nC2�*H$m�o�\u0015�\u001f\u0017�\u001f�x�<���jZU��O\n;\bb?\u001c�Fʴ�N��0�Z�i0�Q-�E���qu\u0012��\u0018����/�W��w��1�z=픲�W�NK�)?\u0002�j~\u0011M�Fj;?�L\u001a�ÔJ\u0019��?\u0016<��>\u001e\\C�n>�\u0000��\u0012�g�辷�榮�h[��W��o��\u001c���[a����~���\u001em���+�o����$��8d\u0001�k�\u001a�;)\f@�#m�;d\f�\n��<ߛߚɯy�]{[{I$�����\u001d�RO\u0015�p\u0001�w��',�\u0018�\u0011��\u0000c���g {�{\u0000��v�:i�S��~��k\u0005�粜s��dV�S�E?�\u001f~��;�����TR1Ϻ�d�U׶\u0002�ϿOs�uʄe���r\u0014\u0006�\u001eW�\u0000?�\u0003�\u001fM\u000fˮ\u0000\t�\r����vS�|��R�`�\u0014=w�aL5>t�\f�jF/�����$x�\u0000\u0001�\u0007\u0004��\u0011!��*?,�`�b�Ǿ���d:\u001bX�}F�w�<��\tlY\"�ۑ�����w�skٲ��\f�W\u0017[�s�h\u001b�����������\u0018��Ci\u0015g&��\u0000�Ђ\u0012�9�>�v�gh�z�\u000fG�{o�����\b��w��<�B���ѷ�\u00194\u0006\u001b�S&��ӆv\u001a�l�&p�<���=����0L��\u001fX�\u0007�����G\u001d��@��Y}�ڣ�fv\u001f�}�\u0005��n��/g�SS��\u000e!����/��2*'�\u001e�G�+������1���>b�|�e8�<'��2;\"��z�\u001e��{}\u001bf.Oh�,��l���3�@�\u0002V���/^\u0004VҀ\u000f��\u0001�j�<�����Sw&>���\\2�r\"�ɚ���\u0016ƥ�ڧ�\u0013��l��\u0010vlx���\\�^�v�\u0007�~����K�ӭ�K��0E�\u001e%�Zҹ�O���Z�Ӟ#q��b�ٴ�H��*B\u0003�}Z�az\u001f�O�)��<��yS�[{f����D�u��f�������)�s$��\u000f%�W�o���؜�\u0010�{�����]�|>�\f����욓\u000f\u0002@��\u0003�\"vP�m5�ӧ���\u000bh�'\u0000\u0012k�t?ƙ1�|�M\u0019+���\u0000:�%�O4�іJ��r?\f�~��\u000b���\r��=�����I\u001c�rS�Z�m���OO�cv-Hc\u0013�\u0018�w�����\u00071́B1�j�\u001f��2\u001c5�\u0013�\u001c��v�����#t�[m\u001a���ҟ�#Ti ��)v�q޿�\u0006�+��XW�t\u0007���\u001b�D��\r\u001a�M�\u0004|)hR*+���LR\u0002��\u0013���zm��\u001b��r�\u0004Wj\u001e�\u0000�酮R\u0001!��w�:��\u0000F\r�ϕ!\u001c�\u0000\u001e��^أqϝ!_�_��S\u0014�ߢ\u0006R{\u001e�OΟFGܞ�S+/}�7�����ړH�w��7�^�ʦOD�\u0004�A�\u0010z�?vT�X�����r����\u001c����Ԉ\u0015\u001d����~\u0015�g�U\\\t\u0004t��_\u001f�ɍ͡��#�{�\u000f�\tY*;�6��t���\"��yv��\u0000���\u0001�P�\r\u0007N�x����N\u0011�H���\u0000i������\u0006�%��~>hY\u000f_\u001a���w醷h����i\u0018����\u0000��\u0003!!�Ų\u0006�\u0004\u0013�ߨ\u001d�VG�:�h'�7�}P�\u000eB�3\u0006��ߛ��i��ʍ_�w�}]��\u0012G��]��ԖF���������9\u0000��=����;3��\u001a�?^0%]��\u0007ȍ�/�{I�\u001e�Y��e?��\fo�m��\u001a w�\u0001�_���;��ʑ���\u00137�2�g Oo��E�s�\u0018���Z�-ݴ�pd�n��ol�a�Q��?ĵ\u0000��{�ܡ�`l\u0011�y����˧��;k��\u000f(�\u0002���#�\u0007���ϙ|�}�\u001d��w�2\u0017�ɚ�Ժ��uf?���fek9d?\u000e��\rv̍,a���\u001d��b�)��{���\u001by~\u0003���[�%k�:ޖR�G�\u0011���H{[�:UTp�U\b��\u001d��O\u0016;��e�*��e9Hp�4o�B+�\u001e\u0013���\u001b=Z��ϞH?�2J�s\u001c\u0015g��P}[Y�jS��K\u0010�#�L����\u0019�e\u000e8l/��;>E�\u0000\u0011�y\f�>��\u0019ݙ�\u000e9\u0003 ��\u001b�����2�\b�5�F^����_�?-��q�M.!�i�J�w�<��K]{D�R����K���o%+\u001c�\b=k��ˋ&?�f�\u0013׸�Dy���$\u000e9\u001c�\u0000˕\u001eD\u001ec���󦙧Nl5�\u0000.]~��αk�KD�?\f�h�R[k�\u001f\u0014Z��0h.\u0010У��\u0015�&\t��-��Dt���ˆ&�};����\u001eW{3H�!X\u001d�w�A�6\u0014\u000ei�a����|֩��o&\u000eW1�\u0001f�\u0016��\\R�?\u0015\u0015E(\u0006ٹ�\u001b���bO����\u00008y\f_�?��B�R���?J<\u0019�\rg�Bb\u001a�\u0016���5ï���`�\u001f��~�\u001dn�\u0015\u0003�(��#���^���n�w�n\u0011�Չ�T�\u00062x�$�\u001a\u0011@=�G���.1ͻM��\u0002\u0004������׵���:\u0018���P\\�\u0002��n\rG�3\u001e\u0006�@����@��u��Q4.\u0002��α�<�\u0000In�2�m�9d�\u0010<��wlC���\rU�U�#���Y]�w���In�mm����u\u001b\u001fl����[2�*F�|W�8I��!��\u00033\u0005 ��~\u0012+]��0�#z!]��9=ϥ�\u0000.4V��\u0012p\u000f\u0015�[�\u0000շ5;s��z�41�1�)\u001b\r�\rO\b��O����\u001f��(��+\b�-\\q�\r�˿�\u000fђ�\u0004�A���<Ũ�֣\u0015���L��Z\u0012��b�`\u0006��ʠ\f�q3�H�\u0007Zg�ʘ�r�\u001eV�i'ۣ(\u0014\f6$�Q��#z��;�]Lo\u0001�\u0016q\u0012��l�C�*����9#��㴬|����?=�k�|��Mges�k�3��}k${}^��\u0000���*g r\u000b2�-\u0017���\u0019�Z\r^aF�1G�\u0001c�w\u001e��95\u0018 E\u0019\t���j�OH����=Э|����bE��6$��u[�\u0014\t�s��{�RM��\u0001��#�`�&3a\u0015�b����;y��J�����9Q\u001dA�7�Zy����:���~�m!����\u0018�RQ�R�\u000f�a^Cb7\u00070�\\T����4-��\bm��\f�Y�\u0007x�|�k�\\@iFO���f�u��o�5�v\u0019\u0000��͚��\u0011��_�� �Df�Vd�r^�\n�-��ͫ�\t��$�����MXtX�:B${߮\u001eN�d֟�_��k���\u001b�7����/.�GG����]Ec$��<���Z�\u001d8�)���ˏ��9�?�\u0018��ɌFu�\u0000%q��\u0000��/h�rv^�\u0016�K��\u0003<7�\bL�\u0004��y\"?�}]�_���������\u0017\u0017��\u0019�\\�e��*�)\u0015g��U�\u0013�\u000e��qD\u0011�r=�\u0000���\u001fZc�d\u0006Ĩ\u0012:��z\u0007�\u001d��3�\u0016Ō3Z��G���#�4m�;S9]\u00191��N�_�zMX\u0012��G�ÿ�\u001e�\u0000���W��\u0012�E����s�.\u0016��\u0000j\u001dH���ln'bvpa\t�UnM��W���m��<�y\u001cԑ�\r\u0010@8�ִ\u0004�K\u0010:S:\u000e͈�W*D�:�K��\u000b/����O,ܟM5;{�h9I���\u0011=��\u001b��\b�s��C��l�}X�Fu]:���Q�@�p�L|����c�q����J��ӭ\r�K���Ӣ�O���T��z�j��+_l��S\u0001��$�Ն�͇��b�9v�4N����+�\u00170\u001ac|�C�����\u0011:�\u001c�(�-��v�d���Bp>��)@�]�\u0014\u001bV��{~-Da��t\u001f���\u0015̃����r^�Q��{�q\r�\u0002\u0016�<��+\u000b�d�\u0004�����'��Y\u001e$�F`�Pm�p=���u��ef93�#���w������p��82\u0003��e�ׯ7�z6�\u0016��[y�W@�E����;��p�(\r�1D@�C\u001f'�6�v��V�\u001c�C���G�w7��Ϟ9�\u0001�\u0012j7��t�\r����潮��ɫꒈ쭃O�Y��)�+x��J��J�\u001c��\\����;\u0011�c)�D�w\u000f/�}���q[�7��\u001el������\u0017��K�e�Z$D���XYD�R���t$�\u000fhd:L#E��� �\u000e��\u0000�\u001d\u001e8��\u0007W����ו�`\u000e���>����\u0000��������|���Z�Ao/��*œ��肶z\u001e�a\u0017+�[X�j'�\u0002;�54\u001b�:.��N��\u001e�\u000b?���\u0001\u001a���\"u\u0007lq$\u0002~��s2'j\u0000����\u0000�=���/�_�#���o�#����u\u001b��w��Y�Z��P��-s^�5�\u0019�޹#ҩ(���{M�æ�\u001d.�/�\b\u0001�o�'�؞�uz/gsgͦ�ƿ\u0010�9H�\n�K\u001fILt$��}�m�\u000f/%�6V\u001a��׷s\u000bHt�wV�@\u0001.̋�qB��N�ɝ.iD�q#\u001cE�����\u0006�\t��%\u00132h\u0001��\u0003�<����r��=;O�-��[�܁{���?Xu\u0011�v�O�k����\u0017�\u0000�����\fo˙�r0c\u0019�~c��lG��<��\fG�r'��h_�:����^y�V�ה�x\u0006����k�V��R�0Ʈ�t\u000b��a�;&��\u001cY��ǧǗ4�t1�?3C��}���\u0017`��G\u0014�\u0013ł\u0003�yrD\u000f�\u0013�x���\u0000奮���&����-|���%�e\u0005��6t�o\u0000\\�{[��]�u\u0014?���)�_���������_�b#�\u0019.��%���\u0000Z�\u001a\u000e�(=�Q\f~\u0018�E��07y\u0012�_Ia�\u0004�J)B\u0001�}��ɇ�&$\\O�\u001e\u001b݈i���Y��im��Ƒ�\u0005%��<��\u001f�-�K6��r\u0006X��\u0012b?�?��E����-,b���ۧ%��\u000f�3�����;��\fN8��\u001aTS�j��\b`(k�˭\u000efG��\u0018ԁ�>\u0018��|���)X�#\u000f\n�r�*\u0019��;�s_�͛QQ\u0017�w�@�\u0012l�\u0016ߑ\u001a\u0014�$k\b�@A\u0012F���w\f(A�3�r��/��\u0000��4�\u0000��ӕV��N5هΛ\u0011���ŗW�p�D������T��\u001e��hڝ���~\u0015��p}��l�ůՍ�\r��8���\tn�1�U�����'��(��Ҝ`�݊�彛�H����Y����jkL���2w(��\u000f!i�_��?��T\u0018�K�\u0005��{�q~]؏�D{v��d�e{��\u0010*�9?/,��1��?�J`�x#�-\u0014���@�\u0000s\u0018�t\u0003��\u0007\u000f\u0001^\u0018��_ �\u000e���E\u0000�W���5�r��\u000e���4�\u001fOӏ�$�D�\u000f#Y��$�\u0000�\u0015��X|#�D\u0003��%����\u0019\u0014��\u001f�N\"q6\u0018�Gɏ��S��/Y- c^��u��k5\u0010\u0015\u0012�t�$l�\u0015%�����l�\u0004o��L']�;]&:<\u0000،F靿冑\u00158�‡�V�p��^��`5\"k���;+M�q\u0011i��\u0003MZ\u000e\u0010|;}��\u0000k������0\u0015�\\\tv\u000e�����\u0005Ӆ>\b<>���ژ?�.o�\u001a���A��\u0005���p�\u0016\u001al:/o�\u0007�&����\u001d?@\u001d'�t�\u001b\u0003�֕\u001b\u000e�\u0007��>��\"��(�\u0016�\u001b��iz%��\u000b\u0010^>#���9���OXw6���\\zx�\u000535�+�M��mߦ`\u0001�9N���zdH�Sv����}�-��'�V��:�\u001e�\u0015�q��n\u000e�\u001a`\u001d�����戃i\u0017���Oڐ�\u001d)�]�O���� \u000f^����\u001b|�{�e���@PA��=���H\u0014�'��\u0004\n\u0010~�\u0000�n�p�\u000b\f\u000e�\u0011\u0002�\u0004P\u0013O׈\u001bn�}P�\u0007�\u001f\u001aR���0����\u001a�?\u0017ʙ\u0013\u001e�N�{�\u0000��\u0000:\u001c\u001eC��xn:\r�?�+�W}QT�i��;�~��7\u001c�$_EX9Wڿ?~�0\u001e���\u0003\u001a\u0003]�?/�<�M�!V\u0014�~~=qLN�,����~�\u0000F?z�rI����~C\u0012��6)\u0014�MA>>5�\u0000l��ÞÒ\u0011�O���1Q��!\u001f�����\u0002/��\u001f��x�%c�AK��\u001f�iJc��@=���呵拳\u0015j|���r���l[ �\n7�)�t�U�:=y������\u0006\u001d\u0018Pu��O�5��\u001d�H��\u001b�\u000fn�#�8:Z����W�?\u000e�!��\u001d|�f���m���\n�Z\u001e�o��;m���䐰��>_��U\u0016&�ӭk��ڀ�&�U\u00065\u0014�޿O}���w\fH��\u0007!�=�{w�v�O�z��P\u0004�!\u001a��C��^��'\"k�g\u0011 .�o]�w\u001b�\u0000�jS YY>�AH\u0018��pjj)��J�d}'��\u0003.1Γ�5\u0003\u0015֕\u0004mW�\u0017\u0003�\u0018��J5J�Ѐ6ϡ}��ai���a���n��\u0000�,���/\u0000�����4:�\u001f�?��\u001bo8�YGc�\u001f/\\9�ѿ0��\u0013\u0019\u000e��H����`ĵ��R��Ս�\u001dGgk�`�.��\u0001ǡ�l\u0011�\u001c�N\u001f�\"<�\u000e�I�6X�r\u0010�B<;�\u001c����=(�\t���Đ8Ρ�˿�ȟ+j^R�RM+̺w8.t]n\u0015��'��n\f�\u0005ͳRI�\f�bx�E2ѕ�2�\u001d����GS�Bx$6�~�\u000f�|��O�ů���2Ǩ�҄��\u001f1�wJ6%��\u001f�<���\u0000���\\~^�l$�����������:C]��ZjR�%\u0016D���v9�����F\u0007�U��5�'ϸ�k\u0003&�U�Μ�=��{��F����U����X5�(�ѕլVU����E�\\ڨ-\u0019�\u0010V�rz�\u000e)\u0001�f�\u0015�\u0016��O\u001e:7�\u001d�����KȺMͰ�g�nM�5Pd��� ���-F6Wj>(�6=\u001b|x\r�\u00196�𞅁\u0017S��]\u001e�{��K�;����ѵ'�u����Q.Q�P�]�GQZ���\t�\u001f�}���\u0018�\u0018��H<��.��_�\u000fRt�E�5ɛ����&��\u0000�D\u0011�~\u0014Ӽ�\nzl����F;���M���\u0001$�<>c�}�G�ܚ�a2�\u0004k��7[{�B6�z$�͋ZM*Q���t�2�\\8fY\"u;)F\u0004\u001au9VX\u000e.(�\u0012�\u0002~��!��wV:l�\tR\u0003\u0019\u0001\u0014<�|1�:���2��q9̛Y��\u001d5�H�.#��'S�H�\n�hHb|\u000f\\�N\u0006\u001e��\u000e2v\u0015!��O=h��\u0011 ^\t\u000f�ɐ��U4\f�b��}�\u001a�%}�ʄ�\u0019\u0003�'������\u0015��p'\u001c���\u0012?\u00055�\u0019�֟�r%\u0018�WP�dxC�W��^\u001a�\u0000�ם�ca5��q\u0006�k�U\u0012-\"�b��Z\u0017�g�\u0019.\u001f܂\\�S�W7��\u000e��k���Io���\u001d~\u0005��/8T\u001bQ�=\u001c��\u00002\u001axp\u000e9r����=�j�\ns�HW�t��*)�/\u0000w�\u001d2\u001aI֣�����1��\u0014�\toy\u001b1��\u0004�\u000eMZ)\u000b�\u000f�ee���3�O\u0000�9��+\u0007�7�Nj��+�3q$$7R\u001f\u0000w��ٻ:\rI��?�<�o��b��b~E���y��-�7\u0012\u0002һ5�\u0014ݞ���]��\u0003z���\u0015�Ɏ�r\u001a}��\u0000C�??5����ף�v\u0011�z=\u0013��r!\u0004r�,\"�đ�5k�寸�{ڒG�y�\u0013��./�\u0010\u0003�\u000fM��b;[\u001e3U\u0011\u0018�3�d�����\u001f�7\u0012�Z�����E��ڃ�\u0019�\u001e��z\u001a�d\u001a��y���^�&\u0013�\\~���@�\u001d�B���c�\u0001�;m�н/�\u0017�Z_�#\u0017r���r�r�խ�\u000b�\u0014|\u0016��)��b{\u001f�{f�R\u0011��nÖ@Ѿ\u000f���^B�V��\u000f4��U�C5���^����h\f�E�N8Ȓ��1\u0007q�\u0013\u0014a3���|��E�d�1�����{�ѷ��?�:�e�Q4}M�mB�\u0014\u001e��'+�DkGNG��T�\u000f�h5\u0018\u000e,�2\u0006��\u0015�������˼���-(\u0011���2F�jb�\n\t�_�`h���a�\u0002\\�,dz�?��_�V�%��ɖ?BX�#��\u0007��\f+��\u001d)��\u001d;�\u0013�h�\u001f���M3K�\b������*\u000021���z�L�\"\"�V$�b�{�忖 �E���!KH�YE?wA�c؂z\u001a��Dx��r�\r��\u001f�O�?=|��w��� �'Z��D�\n$j���\u0000B�|3>\u00105�\u000f���8���w\u0016Mo�|s�$\r3R�|��\u0007��\u0000��V����J8���7�ZZW��`�r\u0005Næd�c\bd&�D}���\u0019'��\u0001�\u001e��;-RM^]_Q�ﵭj�@V}N�H�\u000fC��9읙��A�w�\u0014~�����Y1��?j&���\u0018\u0011ŕh\u0018�\u001f\t\u0003�w�a��3%ő�S׿\"m�_%\u0018�A(+^5`��!��N1�gQ��T�{��{K\u0013�C\u0018����3�.�I'�\u0019\u001a!u��r�IEx�Hne���\u001d��q$Ш�g7 '��S�c�D�d@.�\f+K\b\n\u0007�\u000f�\r�H�\u0000-�?��V��\u0005��O>\\Z]�\u0010���O���t����\r\u001dhGv�߰�\\\u0013�+�Q����dže�{L\u000e�y��NQ5���\u0005u\t\u0016��K˺�7�rp\b�$�LB\u0011^��\t\u0000\r�ί�4\u0018��B\u000f�G��1��d����\u0017���}���\u0000�\b�����?TpY\u0012n2\u0018&\u000bBK�*m�\f:�\b�=�:/�j\b��W�^�A���H⾻�����^k�kX�c\u0004�\u001e���@���8.^\u0016\u0007c�?\f�!\u0012,�n�\u0014e�{\u0003�yyu~<�vLo<Ϫ\\�V&^���\"�qQ�\u001b\u0001�.��\u0011�ʜh��ۗ��V�s�>y����ฎ�6I��\u0015�\u0005rE\n�zm^���AǚS���=�}tu��\u00020�4�cʬ��\u001f�\u0017�W�?�~T�/��[{í間�\u000f8����(��\b�\u0000X)��QZ���~3���40'�\u0011��\\�gg�K[\f���L\u0001�'��~��\u0000��<�%����b�~�=\u001e�ɏ�\b��Ur\t\u0001T��\u001c�Oa3�Nx�ˈ�_�xe.\f��C�~\u0013�:\u000b�~j�UFS��[�\\�\u0014�p\u0014�P�\u00006?N{>�R0�ڈ��x\f\u0018��\u000b�\u001b�>��\u0000�蹇J��\u0000�|��m����m~��o��y|��xa�$$r�����m��8�g�ǧ�g\u0002�OU\u0001�\u0011��\u0000o7���\u001dF�\rІ�G�\u0019���\u001b[�\t���������ۧ�t�(�\u0015�Z+\u0015^���Ӡ�3B��y\u000e��݇qUQ\u001b\u000fw{\u0010�]c�~f��Mm���m�!��\u001cj�,I;�H�5kҙv\u001c1�\u0003�6�\u0003`�>k�\u0018.��=c�o�\u000fϯ/�R��\u001f����W~w�-��2��OC����\u0000̚�)��\u000f�u��o�_'iӳ\t/n\b/\u0018�\nI!\u000b��\u001e\u0012sK_���D��\u0011\u001d��%�d��r\f�4ئ3�\u001c�}4>�,�GS�L�H�>�h�o�\u0017�^\b,-��lZ0���\u0019Ū�\u0003\n\u0004���\u0005Ac��M\u0016\u001cW)���/˼�\u00045YslG\r�\u0017���1���������-����)�k�\n\\��“iZ,��V�r)=��\\|1�r5z��J=B�\u001d#�)��?77G\u0001�\u0017�֐m)�s�3χ�����_[h�]Gj#,��e�1�\r�\"�D�X�Uh\u0007@\u0000�G(\u0013��}Ydn�{�\u0016#�6�\u0006�r�������y�\u0000�\u001f�ʢ1&��t�j��Rj���ֳ�y;Hs��]��<�N�!�C�\u000fe�Gb�\u0017hv�֣Y��Gx�\u0012�?p\u0000G�^s��g��s��\u0015zm\u001eS���c\u0019CO��)�S���yo�g�c�{�kR���\u000b��qg�^i��������f���$�N\n5>�\n\u001c���]D�v��}1�\u0018\u0018��V�#��q�u�\u0007d�'E_�&o��\u001f1�o��\u00000&�\u0000�_�+PA�E*\u000ej���Ӵ?c\u001b�W���\u0012I\u001eP�*jX��k���k���y1��\u0005�O$�\u0000���\u0002k}\u001eƟ�\r�ڀW\u0007\u0014���5~b\u0015�\r���.��lcb\u000f�A�8�H����\u001a�h/\u001f��]�ȍ|e\u001d=��\u0013*�\u001c4����Q\t���u��T��\u0000v�ݿ�|\u0002R'��\u001dD\u0006�������K���\u0000\u0019@�>9a���jq�v���y�\u0005/c\u001f��k_\u0001�J6w$n�Q�u�=����^��Jm��\u0003�䁡�\u0016����{o�ǧ�K������H\u000b\u0016HG�`6N��۰?��:s\u001d;w�WRj���r\t�?��&��O�1����`\u0000t+��]\u0014�/�;#O���\u001f�$6�-��\u0018�#W�JƔ��W����Lo���LJz!?4l\t?�I�\u0000\u0004?���\u001dy�?��!3��|�()��}��p\u001b�B�c\u001a���e�\u0000-1����?^K~��C���вm�����Z�8�=���{�H���fA�\u0000HS��mO�%]/u������J�*}���\u0003֒s�\r�2���\u0013`:�\u0014\u001f�\r\u001e���5e\r/捊!o����*\u0006�\u000e&�_�c�1MG�H�\f�_D�W�eQO~�L�F\u0002̇.�3\u000e���\u0000�\fN��go۬��\u00005|�\u0011�\u001a�G�5�u����6�j?IA�~��}���\u000f�\u0005\u001a�^�\u0016���\u001e��\u000f�+����7'���\\&Q\u0010��\u0014\u0007z?7�\u001a��y;�0�\u0014�ʲ��H*܆���7�a0z��NV9��\u001c�Ƈ�_�A���2#њ���|���\u0013�u�(��xo�v5�Ey?�����]�e����-Hژ\r+��\u00001�|��\u0015�\u0013\u0012�\n��\u0000?l������M�k�� \u000fN��wFS�QO\n��'��\"&;_\u000f�\b�CQ�Q�������\u001bӿQ�d�\bi\u0014��S�>X9\u0014Q,v�>5���܌\u0015{�<���=G����\u0019\u0011t)\u0007������w�O��\u0013WK檰�#o��G�\u0019\u0013�H\u0006ѐ�C����`e]��̼\t\u001fw����󵐭Œr�h\b�?Ϯ;\">J�I����߾\u0006[�K� $1=�O�\u0012\tٍ�8�\nR��v8�i&�\u0014#n?\u0011N�\u0000�:�����H�EkP�z\r΢�lڍ��ޒ�1���՘\"�f���\u0001�p\u001c�\u001f�a\u0019\b����>(�����ߙ�\u001bY����ߚ����_��\u0019\u0005��f%fp�p�\u0005�+�A2�l6�뛞��\u001dF�Ӵ�\u001eq;��;��\rn�\u000e���9b}3�ӏ�=��ا�\u001ep�ޫ�h��;�r/˶�j�]�l��\u00003t]5��\u0016�J�>gѐKq� B9ʜ�\u0006�\u0015��t\u001a�^�C\u000e����\u0000D���=^�\u0019ū��k�07�Gz\u001d�X���c����m�_�\rr��3�Pyn��kj�{ugo1�\u001d�����7p�m���YGD'�Jg,O����\u0004F��+�����\u0006Ly8���ߝ\u001e�#����睤s�Vֆ�#��|��r\tl�a`)'�,n\u0002�kw\t\u0014G\u0002��9Q11\u0002C�\u0017ȏw�o\u001f���={���2�7hz\u001f��ҞX�'�)qn�\u0002�J��H���u��D�|.:�<\"q���F������>��$\"Lj��?g���\u0000���BսM7Z�C��\u001c��x����Dѣ��TWR:\u0010\u000eW�R����\u000f���D�����\u0016]\u000e�u�}\u001e-N�D|�`ˤy�\u0018Ք\rV\u0018�յ�S������w���l�\\&8��?a�!�Gx>Lr�Fw\u001d�\u000f�w�����o�f��Z\u0010$_NE$�U�Բ�\n<|r1��谖�\u0011��}O�\u00008qq\u000e��\u00008��;\u0003V:\u001f燞�,t,~��跐��TFzw9gh\u0012e��:� �2J�-P�\u0017S\t\u0003^ ��\"v�{��<�s\u0005ͽ�3*�\"��r��r�z�qZ\u001f�\u0019��D���p\u0003 z����WQ\r�c��HЎD2Ƃ���\u0019���3\u000b���\u0001�Ƈ����&�C��+��#�4��BQ�\u0010ZZ�Q\u0017����Ρyu�jo�\\�.��k7z��%�����w:\u000e�� Sj\f�{m���r`\u001fLa\u0011� }��}��=�2K���e�����7��.�\u001a�\"��\u0017�\"�mea\u001c�!&�x�4�\u001f�f\u0018u\u0011��\u0019�t�?�'����<�y����}�\u001d�z��W(��q\u001a�\u001b\u0013�Lr ר؃�cv�#�� 9\u0002�i���g���E�/\u0012T\fhK�^�oN£�k��{�'o���\u0004����\u0000�H���ae-��u�4h����Ҍ�UÚ��-B;�\u0018u1\u0019��w�\u0003�;�\u0000Ac�\u0018��=G���W�G�v���y�G�P��'[�t�\u001d]8�4�A�c�c�������\u001f�?�G�\u001a-���\u0017\u000f\u0003���~\u0018ߪ�#}�L�O\n�Y��\u001d��Mq\u0004\u0013u����T�ҵY|���5��g3\tm��\u0003�\u001a%ͼ��'@\n���1�K<�\u001c�\u0007\f���W�/��*�[\u001b\u0019�t}E�-;^���\n�J���M\u0005y7l�ś�c�pZ�b��OO��\u0006�������\u0000����l�-�蜣�\u001d��PmZR��9�\u0012��e\u0011��0�eF�w�w���\u0003϶�^]�\u0017�u\u0007\u00069C��BJ���\"0F\u0015�֎M=��y<8�}D\r{�7b�\u001eXD��.�n,�h�5Ri֜x�^�\nЊ\u0003J�s�;\u001b��F��x1yN�5�9�o�\u0014�)��!4�N;\n\u0003�OL�4����[��\u0000%��׮O0����\u000b\n/(�ު[m�\u0000�gO؇�s�Z�\u000e�����H}�yF1\u0014&[x#�I�y�5}+�&0�:�ێ�ܐGc�r�R\u0004\u0018����w�]�c�\u001f.�?�}�\u0000�\u00008�W�U�/�nL�|�Yy��)͍��� ѧ�~���P^T$�k��d�G\fu¼1�\u0018���2\u0007��񽿒#U�i_\u001f�r\u000e�\u0011�0>\\�]���V���R��\u0005�2\u001a�7�y\u0000�\u001e��sдZ�����x����-��_��|�\u001f���4�1~�[N��\u0007x�\b�j�$#�:����Y�\u0004x��\u0001�����Ց����*�����w�M{��G�'�n�j~�ylX�S�\u0004g\t���\u0001�2_\b��������\"}kRR��}��v'�\u0017���\\��Ҩ\r�\\��FQ/\u0018�T���:T3K\u001b\u0002Z�x�p��W�A��I�\u00198up?\u000f�������G��>�\u0000�r�D\u001f��L���x%�4��b�V��!�z����H\u001bpH�1���%�(�_\t\u0017��n���x��\u0002\ru��H��d������kh��i�<\u0006i\u00126vh$�yL�:2�\u0018V�3�=��aے�d<\"S��o���+dž�1\u0007��7���t���M'�T\"��\u0004�9ՌEga�Dc]П���={��d���Gh����͈ɪ�z\u0012\u0007��\u001f��5����>]{�};�?�>U����i\u0015̳_][ĭ�,V~[��\u0007�0��\u001c�~�&y�}�?C��\u001f�#��0c���M}��gS�\u0002M�[ծ�t�\u0018\u0002�\u0002�D���\u0005��ۛ*� l7bOJ��81�}Y\u001c�\u001f�\u001aSɔ�5��\u000e��WD����K�_#\tt;{�q��mN�5�Z1��y[G�\u000b����n�B�\u001fP�s\u001315�܎�~n\\#��|�����\u001f\u0017�ߔ�W��\u000b(��|êN�Z��K��Z��5��^��Ժկe�q�\u0005�0�Ȉ6�,��H\\���?\u001d�,��@�:���'���S����z��ե޹os\u0005���5��g\n\\k��Qx#�\u00161��52ܲ�3Y�.��i\u0003G\u001e���q��������ݤJ\u0010�f��\tuIQ�L\u0011�\u0007�,�5��U��\"?���<����n^�y���f��'\u001d����'�6Ns#�\u0004j\u001d�O�|�\u0015����1ī\u001c0G\t���\u0018v��q�>\u000b��\u000bN�9M_\u0004\u0006�I�N䟽��s\u00173�\u0000\u0014\u0000\u001d\u0000�>\u0014���ĵ�\u0016Q�v集�`�\u000b��4mB����m�5�~�\u0014\u00154�HiDbrf��\u001fT���b:ȷK-�1�)�\u0000\b�O��\u0011��z7�4H4d�&�]����׵�N����*\u00073Z�v���N\u0014�\u0015\u0007�5����z�'���LJ\u001czF=��̞�������\u0013ş$��.���\u0003h���_󚟒��3���κ\u001c2/�?+f}oN�ؘ��|��W�:$�w�\u001a�}x�׌�\u00027'<�ڎ�\u001d�����\u0000\u001e����G;\u0003���N\u0003a��0��E��\u001d>�9O�dp��$�}���'��N�ϣ[JX�\u001e�X;\u0013R\u001a0A��\r�6��\u0012;�\u001e��\u0002���r�o�_�d�#�˺3.�OB\u000f|�'�\u001a��qu5þ��NuK����w����J��҇a�=\u0000$ӫ\u0000U��_�\u0000�]�n��i^�t�����~�'ݸV]F�\u0000z]�lzz���JL�\u0011#��W�\u0011\u001e�~\u001a�����iI\u0007���T\u001a���ڜ��\u0017Ň�E�J�d�\u000fs��\u0019(�&4e�ٗXjW@\n�u�����+�\u0006\u0007��h\u0001|�����B��L笝E\u0004o�^,�C\\1 �ڻ����\u0001c!��{���ڽ~�����z^A�N��:��\u001fryl�GȚ�4�\u0005z\u001f\fU\u001f%���M�Cۧ݁��oɊ_/\u0017�\u0007�?�������;��D�T��\n�|�w~k�x�jmZ}5��d\u001bG _����\u0019�4��u���6\u0019�\r^�R��b\u0005\u0007���2B�J�M>}|O��鑳U�v\u0005i�\r�����v����\u0014���c\nB�\u0010\r@5�~��x�\bSr\u000fZ\u000e������Ҩ0��\u0007���q���h��L�\u0018��<�;�nX]��,y���*^y7Q�Q�.-��<\u0000��R�{g�\u001e��x5?�?�K\u001f\b�\u00007o��hL����\u0017�\u0019,�S?(~ai���I�5�+�\u001a�%��6䠐MhP��T|@�S^��k�s�jdb?wf�,�z�k0\u000e��>/1�Ϻ����\u0005��S!��3#���\u001c�\u0005\n:�\t\u0003ƹF\u0011�F��$�(��\u0005�ϙ�ǫ�?X��\u0005��\\K\u0002�����I�X��V\u0003��y��6p8�F���㛄\b\u001c��=���\u001e�{�1~P����Z��I6��A\n^yO]�9\nI�[�s:�\u0012�*f�0O�T��j��xY\u0000Ʉ\u001d����<�i�!\\x��Sݰ��\u001d~�^9�K;}a��j�!�/�W�\u001f�\u001f%Kqq\u001d�\u0003Ev���k:Z1\u001c�\u000b覈t�L��\u000e]�N��%��Q�Ƭ���E��\u0010�\u000f����\u0018\u0005���|�\u001b\\�^�\u0007��h��˦�\f\u001e`��\u0003�\u001dCM\f�ڤ|\u0007�c�?�\\�8�b�w�~\u0007\"\u0012��R��ȃ�R�W\\�杨���|��+Fh�x��U�\u001a\b/-e�2�=\u0015�^Ƕ\nǨ���(\u001c�\u001c�g\u0012\u000f\u0018�y�~��\u00001u�3�'�]�֞_�)�]��$ytk�\t�\u0002���=(n4�XH\u0004�[�a�*����<=O�\u001c����\u0006�����\u000e8�7�������R�\r�VR2��Oc{\n���.�[�Y�D%���֩,71H\u0019X\u001a\u0010k��Gj�9��&$��\u0017ӿ��\f_�ߛ�$,����q�05*���wL�:�8��V���G'\t�.t6\u0000���l\u001a�˚���k ���u�\tV\u001c�4�\u001fz\u0018�~\u0012:\u0010s\"9@���rHۄ�/�?��?��\u001a\r;K�.[�}Ҫ�$�\u0018ZN�\u0016kVbh\u0002�J�����\u000f\u0010>���|\u001ac#\u0019Q�?��_���$\u001a��K\u001cqȌ��Pג:V�˰\u0004f\u00115��n0��S����m\u0007Ͳ����*�+�X$�@�Z)�u\u0014\u0014`j2\u0013�2\u001b\u001bI�������\u0007\u0007䏟���ˢ�A�\u000e|��i\u0012�[��Y^��\"���\u0002�y+��K\u0016A��ys\r�$���\u0000a���}�r�|G��YԼ��\r.�/���\u0016���������Zz�<\t\u0019���08I��\r\u0019!\u0019\u000fO�}y����\u0000��}\u001fFx|���$q\tu=Hz��Ht��\u0011Нڙn|�\bu;�豁��<��G�{��{R5\rA�\u0016SsrC-\n��\u001a�� u�n�A]���\u0000���;X�\u0000�\u0019��U-�FE\u001b�ND\u0006�}�\"�;��o0\u001d�u�l����[U�a_N���U\f����n�\u000f�:^ː�2�<�\u0002~���Pq�8�3�}���\u0017\u0012'�\u001c��\u0017���H\u000eyr��f�3��.W�ݓ��}��\u00008�{-טu\r&@xj���|�'\fC-Ɣ�\u000f���=V��t����ò��vV�\u000e߻�i򏉞)}�\u000f)�\u000e��Y�Ϳ\tÞ\u0007�1�\u001fl\u000b�?2�_O�nĬ����5�\u0018�\u001fd}����:-\u000e���oj�y��|\u0000�v��-3]�ӯ-添h�-'�ԫ\u0015ud~�iB�\u000fћ�Ԏ=f��\"�\u0004���љ��\b������o�����6����m���\u0017c�G�F?\u001f\u0013��\u000fM�y4�ŚQ����\u0014�\u0018�\t�;\u0010l�z��\u0007�Jp�o�b��SA�\u0015\"��QA\u0019�ӝ��\u0012k�w�b�[� �\u0001�^D\r�\u0002i]�*S���G�S��\u0019\u001d踚�c�����q�]\u0016�a�E̗\u0010‰v�\u000f%�s\u000f\t%P��\u0012=>\rV�;S3=��ņR��\u001bt}�#\u001c�\u0019�\u0019W��?.\u0007�\u0019�h�y��.\r\u0012�$�Y���y��(o.{o�\u0004�d��I���t��v�ߠ��)�M�d�m�K{�}bDF�������6\u0012���#p���ag\u0014\"����6�.L��o�q������V\u0010A�$\u0001�\u000f��fG\u0015TG�=�o�]_y��\u001fW��t����sIM��\u000b[$̼�E��R��� �Y�b��k��\u001d��.<�m�׸r\u001f\u0000�tp�*ňp@�\u0002;\r���G��ھJ����\u0017W�-sr\u00028�\u001a��\u0000�$���\u0014T\u001eC�s��d�D`6���0G\u001e g9^�����\u001bX�|�#Zh\u0016�i�����WLR7Px�V�\u0007�f�]��s\u001b.\u001d.�#.��j9�\u000e\u001e��\u0016}V�\\\u001aX��z�=|�:��˚u��\u0018�\u0002Z��\"Ow-\r�ю�Vm�p�EE���ίQ�Rx�}\u0003��?o��Î8}1��2y���մ�oJY&b\u000b����õJ���U��\" l�a����e\u0011�W*�L�$R���\u001bѣ�9\u0014���5\u0005\u001dX�3U��\u001e��\u001f�s��˟*|\u0017a�\u0011�8y���'�i��w\u000f��oї���\u0003�X㔠�\\�]^�:>�˂\u0002�qqDF~�>\u0016G��49<]$L��\u000e\u0013���\"���\u00002<�\u001f�m�!xC�U��>\u0013Q�v=�8��R�\r�e�&p�|��\u0000B�d��X&䚘��M~��l{?\u0000\u0003�\u001c\u001f\u000b�XL��\u0000�v�\u0000�GM�J\u000e�v���\u0019}\"��N\u001b\u001e]��-������T��2����dAk��}��:?��\u001d?c�> k�c]Ϗ�\u0006?���'��\u0001�A�\u00008秨�\u0000xb�A��A��W\u0007��t��o�|\n�ˢ�S�\n��ɤ��:��\u0018\u0004S���M��K\u0004c�\t&X{�\u0001��<�|�|�c��IJ\u001aTo�N�\u001b�U�c ��?w�qr\u0003\t\u0010y�:(iW<��)AZ\u001e��>�(���\u001aއc84�=��;�ǮL\u0012\u0013�-��\u0001ʻmA־�g\u0017C�m<�⴩#�v��=�L�\u001c;��$�i����\u0003�\u0004S��\u0018��\u001d\u0002�KJ�$\u0000OS�Џ\u0002\u000e]U�M\u0012��b��m_���\u0015t�\u0013V�1��ӧZ\u001d���| 1VE�#�����}+V�.\ba'�M2��C��\u0000:������Z\u0002:W��}8,]\u0013�#�Wv܁5�ߦ߉������Ow6:�M=���g��\u0018����j\u0005{����\u001b�ܚ�F�\u0010}��X�\u0013���G�\u0007q9^���|\b��c��\u0012E<\u000f_�J�-^�JV�\u0001H��������\u0011v\u0000\u000056���ϊ�R�_��H�6逩\"���\u0011I$\u0001�����m}i\u0004b�&����o��}�8�޴�؏~��ƒ\u0011/ ���S�\u0018<�ш߭X��Ɵ�s�����@µ����6��ĞC�^���z�\u001d��ԌSZW�u=?�\u0015U��܏���7���h85�\u001d�\u001b\u001d���W3��Ԡ#��ژ:/%&=;lh�zMٹ�E��%[�\u0007 -^��$�ƥKP\u001ax�|3�2\f}���X�῟G��'���{@�Cˑ\u0007�[�ٷ>i���X�[_�\u0014�6�ȳ'\u0005�\f�%\u0010�v�b�\u001a�9�e���\"h�ws�b�Br�&���|�\u0000\u0001�眴\u0015����goY�H�B�oY�A�e$oݘxdq�<���J$>\u001e󇔵]\u001e��V��!���כ/�����P\u0002\u0018\u001d�،�\u0007��pe!\u0003}?\u001fk\u0019����m�\u000fR��/\u0019e\u0003����J����#��Q�2|H��\u0000\u0013����+�O\u001aK�i:-�ķSX�\u000b�\u001c�W�\u001f�=�vx���T���\u0010G�\u001e�$'(�\u001c���p��]�o��<��X��\u001b�p��.\u0016:�ߩ_.y�Ԩ�\u0002���\u0000��\u0012+Sg�|0O\u001e<���#���^,����\u000f����W�5�\u0012�����\u0016�u��ճ�]�Sζp��\u001fVu�$POr���\u0017aFR~x%\txf\u0019�\u001c�O0G�����|�!���\u0011\u0012a���߱\u000f1��_�.�I?-�)�}WC����^\\�̰j��u��y4\u001bG�f:���\t��GzCE\u001fdS7M�\rx\u0018ϨC�7�C�·���FC�}����w�͞U��Чu7zG�4-F�\u001d��\u0013��qf��ІV�+_�/��d��$\u0007ӒQ��]VcZ�'\\R��\u0002G����y5��uy\u0014�M?$�@���\b�\u001a�\u0010��f\u0005q\u001e\u0012=���sޫ�z���KoG��#�\u001c2L���V\bMy\u0002�S�1� z� �Y����r�QkO�}>�\r\u001b_�U�p\rKŦ��r\u000f\u0003J(����\u001cyb:�n9\u0017t����Au�\u0016ER\u001aW\u001b���+W�Z֔ΐ@K\u0018˄�{�O��2%\u0016\u0001~\u0019%�0\u000f\"�F�*;���\u0014�>�F�[�\"O\u0017�\u0001��d?��ز�,�x��t�\"�\u0003M�^�4�\u001a��$��1\"\u0004�-���\u0002\u00016z~�|�f\u001bU�\u0011�\u0005�K�2��\u0005\"��PE7?,���\u001e�\u0019@����㦷�=���G\"�㺷#Ǐ\u0011�\u0005FQ�y�y���oH�\b#J�J\u000e,�F�>\u001a\u0015�)��12���R\u0011����\u001e����\u001f�\u0004�ʐ~\u0010iƥ�*Msq��$b:[\u0003�\"�����O���G���#�h�\u001fʓ��2_kW���7L�n��4�H-e����W楑�4��gb�vi��f\u0004j\"`H���\"G�\u001a�N�'lg��ɋc��w�^å\rȾ��?��\"y��V\u001cWM�~���j�C\nƖ\u0016Q��:\u0013��\n�\u001e\u001eم���d��V\\�?m\u0006�\bc�\u001d\u0013\u0000blS�|ѣ+J���\u0010�X��S�\b�]��\u001cy7�o��\u001eo[���.tY��J�赡��w*\u0003�D\u00073c\u0011�\u0019��\u001d\u001a�d\u0002d���\u001d�\u0000�o����\u001f�h|ɦE�jW\u000e����\u000b$���k\u001f�m�$�����k�D�by��dUs\u0015���oo״�\u000b�\u0019~\u0018�@$�5Yv�����aۭ2�/Kd��E0k�>�\u001bV�}>.h�\u0017�����\u0014?\u000e�c�\u001e�q2��f\u0004G���\u001el�!�^�]�mm���d�pe��8��\t���\b������I�VCB���65i�߮�����S��D�T�\u0005��%-�\u0012%�;�$���L����\u0001\u001c|'i\u0012>��.�f����RJ\u000b��� \u0004\u00143�\u001d\u0007�S����\u0000O�����?K�]��<��T�\u0015t�\u001aP9V;��BOS��su�pJ���kr���-��f2x�*\u00185XDG\u0019Ux�[�l��/\u000e�4G>\u0003�8s�Ǩ�<�\u001f\u0007�y^(����)9��1W �� �^��Ӯs�Ⱦ.��`t}��\u0001s=��\u0017�\u0003:�.�\\Х<�\u0004]w���\u001c�m�ku\u0015Γ��z51�t�_\u0018d����n\u0002X�J���;��K�)�sDޤ7{��[G!aĒ\n\u0002\rz��\u001c�b��=��O(\"2�9S�\u001b��mpeI\nT|g�ù\u001fh\u001e�v��Ϋ��\u0003&#�tc[w�\u0000c��\u0004�1�\"���c�{�m{��i3H���\u0005\u000fR\u0011ׁ��@��������\u0010/����ىi�\u001eo\t�ѵT�.\t<9+һ�bMX��Wa��$e���\u0019c\u0010cO\r�\u0011Gu��`�CҔ����n�?�\u0019x�u�e�]ϥ�'�Kxg�f��A\u0006��`C��$�5(G\u0011�':\u000e��ˢ�ο\u001f��X8a�<_I\u001b�p��ח�\u000f���<���\u001f$y�U#[�\u0007��5�e�*���*\b���w*VK����V]���a�u����1��2p�|�׻���^��ip��f�f�!*��I=�~k���\u00000���\u00008����_���;�y\u0016O�+�'�:e��%޹���Ȧ�<����\"���6�x&p��$,ƀW:�g�OS��gf��œ����\u000f��\u0003��;SNF��%\u0018���'a)\u00028��\u0011r'�\u0002�ǯ����\u001f��ͣi����\u0003��\u0017⾽�T�ƹ�\\�J�w�\u001b`萵����ҵIn��XD��@�\u0004fF����}�)��B�--��p�<���Vk��3�=�����Xy\u0013��mP\u000e#Z��\u001a��$�\rZ0�m�Y�ゞ>9��j�˺�\u001f�6�xbO\u0016Rx���[|�\u0000l���?��\u0000�\u001e|63�v��\u0016Ҩ��:��-�P��F�@�Q�\u0000U\u001f\t�sS��r�\u001e�w�ݮ(b\u0011\u0004���;]��������o�h���V�\r��q;K\u0011�pR\u0018\u0005h��\u0016xUҥkQ��\rv�~\u001e\bKo����m\u0016����b��\u0006)�%A{u�Y�zX�k$�\u000e��N�_��58�\u001e����hz�{\u0013�\u00079K�\u000ba/j#�4t}����\u001d���y�(\u0001c� \u000e��^I�����U����۝n�y\u0013�wM&�����[���\b��.#s��!-�SB���8\u0007�;\u0017\u001c�\u0001�͐zϜG(\u000e��:M.RN~��\u0019e;�P>��c�~`z|��,z�����\u001d�\n�mm��ӆ\u0002�\u0005�$Z'��E(:o�v��.\u0018�g������L��\u0000�A�{��5��\u0017��1B\u0005-��o�}B\fd��\u00103\u0007<|-9���@�dۘ�/\\���Z�^F&\u0003r[�\u0013���\f�O\u001d�'�?���U:�ɑښ>����'z�����kr�����D�W \u001e\u001f����\u0017�v�j�\u0001��\u000b\rJ0>8^\u0016qit�1�b��4�K�\u000eϙ0�\u0018\u000b�\u0011�?-Ɍ��h�l�}����K-�w\u0017���f��A�ƭ�\b�}�\nf�\u0005mn�\\���[@�G�\u0018��F�\u0000/\f�\u0000+���+�\u001cC\u0010��c�����,\u0014=�I(�R.�8���ӯ�ч�@��8�4<\u0013��\u0018v<�����ㆿݧ�\u0006��{\f��+�D\u001e�\u0014'Oj�\u001f�n�<15��d����s�\u00009\u000e\u0000ԭ��#�F�x��޹��=�GK�\u000e\u0006Rx��x��-8��P\u001e���\u0015�`�\u001d>䐦�\u0015\u0003�v4�>Xc�ȡ���l7�;S��\u0010:\u000bM�'��[����A��;tVEb�ڣ�O�qL \u000e�e��]��\u0007-�:t�5�\u0019>|��^��u��oO\u000f���0�:�ȝ�\nïC���n|r�#ɌMH\u0013�P��{�\u001d�;{��j��w\\�٫�R\u0001��Ăc�6�B��NG�nāZ�޸��U��ҕ�\u0007��\u001b\u0013�! ��F�Rm��ꥸ��H�|0J�O�1���O�lo����\u00008�(:6�?�O��\u001bw�3I��\u001e�Nn#��~)\u0001�3_�\u001e=�g�M���s�T�z#S�\u0015���\u00004:��ߩ�\u0000?l�\u001e���}/>��\u00127��{��\u00052�!ד�V7\u000b�\nu��t�Ӂ$m��.�N2Ҥn\u0007��ڹY ���zf�5P\u0002{\f1�a�yuO��O\u001a\u001a���\u001d�:I*\r\r\u000fC��6Ɏ{)Jf��׵MF\\\u0005\r����i4�P���)���{�eW}\u0015.�j��(k���q\\���E+��A��N�ّ�Ǣ�\u0013(\u001b�\r��Ǧ�\u000f^��.ԡ�\u0000҃��\f7|�\u0004���vMw�z��\u00003�\u0005\u0005*�Z��ۦ,\t�G4 ���~�?�O\u000f�y�+�ƒ���\u0006N\u0017� 1��h��N>]\u00114R\\!?\u0016�m���\u0015o�PM(+�{\u0013��^�i�\u001e�x�Ƿ����i�8�}�����R[�\u0013�U�?/\r���9*U2Pm�~�\"yZ����8V\u0003��\u001f�W1�+��b\u0005m�<�P\bާ�w?<���m�<������\u001ba��j�u=sZ\u001aQQ��ޔ�j\u001f��\u0018R�ʦ����#�����y\r���O�ژ��T��;�S�j}�0�4���{�5��{~8�ߪ�q�\u000f^����S�A��Qg�<7\u0003�%VGr\u0001�z\u001aCRk���Gʹ\u0010\n�_%\u0006?\u0015:n~G۽\u0006$P��Eu��\u000b �>\u001b��7\u001e���<��t�m�X�.[N@k��.�\nl]�\u000b\u0003҈�����ri}��g\u001e\u001c�\u0006r�~�_e>a�\u001e�:��<&�\u001d��s�P�e���\b��rޟ&�m�1\nj@ P~��􆰜r\u001c�y���g�n���\u0000����K�X��l\u0001�_�2�@��VK�Q�\u001e��:.�֜q:<�\u0018�\u001e�Qں^9~f;�(�����.��̟�:��5ap�L�\bQ�KD�9 ��\u000b\u0006#��A���\u0019c�\u0000�>�\u0006\u0007.\u0019\u0013[���r������MZ�\u0012�h�S^\u0012����} \u000b��Վ�k�\u0002\\'�{�\u001c���'~��c\u001a��\u0004�Ͳ�t�\u0004��x�f�\u001fM]OFZ\u001d��+�%�w�\u0005\u0013�B�����[��Qi�o����\t��H��!�i\u0010�J/�\u001f\u0011߸�3@�v8�{^)ʸk�>�\u0000�G�ג��P���|�gs\u001a�(�܈�F�:��ڠ���9l@�\u0011[��|���\u0016Uo�'�\u0016r�D\u000b��EOO��!�hhԢ��xg\u0013_“\"E���7Ah��~�i\r�;��u\u0004r\u0000\u000e�\u000b8 7����1�$tn�\u0004P�>8�����\u0017�]կ����\rGG��Xi��|QMm\u001c���sٖ7UaPA\u0007\u0006m(�\u0001��r��e�'�~(����$q� ��\u000eDu�����}�{�?/~{�{���\u0000TMC�\u001eC��'�Mc\r��{�j��\\j\u0016�Rokuq\u0004�@J�3#E\f�M��n\u001b\u0013�#\\��D�:t��WlKO�zl���\u001e �n\"xH\u0017��uן{�\u0003\\+\u0004�E\u0017\t.U��ƅ�����\u0015�v��H\u0000l�pĮ����|��\\}X�IK\u000f��ʠ�*H�\u0002v�\u001d�a�\u0004�=�NK�������\u001d����P�\u0015����\u0002yrw��&��H\"���c7G\u001b�|�_k��\u0013��\u0006�bdբw��e\u0004��c�\u0017pX��\f�\"Dq��\u0000Ÿ�\tN�x�Zi\u0011�w��F��[\u001e+Z��/=�kQ��\u0019��\u0013�˾ܜ[@\u0013�S�O�o2�k�\u0013̫oq�cԮ�cUaE�Ѿ��\u001f�DYV(\u0011�JM�\u0003Ds%��jم�vAQ\u0013�We\u0014\u001f\u001b\u000e����|\u0015�ݎ\u0004\u0002z�\u001bO�_�€\u001f���ҍSO��P\u0012pc�G�2\";������\"��Q\"J\u0002�\u001a�`)��~y^x�\u0000�@\u000e�\u0011��8�*|/���zvW\b\u0018�k#���\u000e �\u0011�j��\u0016�\r\u0001*�q�\u0011�@�\u001fJ�\u0000Ϯt;K��4<�t�/�-KK\u0017\u0012�*��zdڜHz�\u0012�\u0014S�\u000el;g9ä�\"jF�}�����s�#�C�\u0002W*�h��b�/u�5MsS5��S�\u0002��q$�4�ϺrsO\u001c��a����|9\u0019��{%�y\u0005e��\u0016\b\u0011X��\u001d@���\u001f���O�<�\u0000�\tYx�+\u0010��\u001e���lA)��l�訤���FB\u0001�>*�A��{\u0014�����ߧ���k˒,P��d4*z\u001a���E\u0019��\u0011�\u0017�8���έ���\u000e��ysT��kG���&��\u0000b�X�f\u000bq\u0003����!�Bp�'p\u0019c��Q\u001fU��/Q�������dh�\t=Q�M\u0010I���)��7NҶ��͊I���\u0000\u0011nRn6\b�\u0002��\u0018O�\u000e�ÄJ�~ykvl.���\u001a_]�����sȞ�@��>��h\t�?�1� Gȗ̻b�i��s;H\u0012\"d�⤽x�@˽Z�eA\u0019�\u0010#q���H5�[C\n@*g���\u001a����E;�\u0000\r��򙎛-�\f+�A�G�_+���r���\u0010�Jc��_��H\n�f�Z���4�\u0006&����������O\u001e�_#O����%\n�\u0002��ʤ��Q��:\r�Q�]\u0006s�b@�����\u001c�\u001d��L��̩���;YY�;�ֆ�\u0017��G\u0000\r)@h}�{I���\u001dD*��\u0000\u0006�˙�C��_\u0016c��\u0003�s\u0014�\u001b��˯*0$�m��J�\u000e�Qf�9��\u0017\u0004�9\u001e�\u0012PR���RE~��i�\u0004�q�\u001b���\u0000&�Qx�W��s�Aj����'���V�\u0019�����\\�o���3qGW,c�������\u00009��|����~\u000b��?B�_����8��6�qy;Jx#�pc�9\u001d�\u001f\u0012s��SI\u001dW���8I9r��&g�v=���판�(�\u001dyV(mG���\u0000�\u00009S���\u000f��\u0000:�7����c�?��#�z������O:j��4�DW-\u0012K�i�϶��x�Uؽ��G�&�1�r\u001d�\u0000~>.>]NQ�&R�f����\u000e����yGG���\u0018��ͽ�k\u001a�\u0000�ҬM(F�l�|\u0013ɘ��n\u0011���\u0011�~9?@���\rw�\u001e^�u�,~[jz֫���ya�ɧ�y�[܎1O\r�FU�\u0003^���?>�K�S-8�\u0018ㄨ�\u0006�Kv�O��\b�%\t�r�1ؑ�]�힎���>q��k/#y����\u0010�-��ZN�\u0014|�\u0016h�֞���dq뽖���'7\u001c�\u001b�\u000f�9h}�͌\u001c8'\u001cu@�\u0015�\tM-?�\u0012u&��ο��-�⏝�<�p������{{�bs�M5J�V0�֛��>��FX�\u000fGS<�d�\u0007x��_\u0017\u001b�\u00170�v��\u001a\u001b�\u001e�{���7�k}u�u�~\\�Qh\u0010yw��z_��5\u0017�.�O\u0002}cZ�Pz�`֦\u0007Tզvގ�1�(3��1��mI�v�ie�\u001eW�?Տ�\u0011�w�\f�m\u0016!���G\u001e)}U��\u0000ZG�3�5�\u0003��ʽ;X�\r嶭�\u0014�a�v�\u001d:)\u0004�\u0016��@����є��r���\u0016\b�\u0018\r̍�^���4�mFѳ�\u0015������tz�[�zE���\u00040�\n�\u0001�\n�Q(\u0000���T��\u001f^w��!�jU��w=\u000b�v�4k�eif���\f�.\u0011��\u001b���\u000b�����w��\f�\u000e9��S��\u0000=�[e��6>K����\u0007���c����R����u�\u001c�(��cCO���c�@Ak�����V���6߮\u00026�5����r\u001d��`���_��|�\u0000\u001c�v��\u0007Kp2�\u0000x{�\u0003ip\u0013�N�\u001b��q�i㚺�A��-���w�Sj�\u001e��ɁG�ovocx�\u001f\u0017�\u001f\u000f\u001a����7іZ])=��^�?�1\u0004sVQg0�ڽv���$9$rdP\\Ң��(w�k�0�O�5���c߭\r\u0005i�1\u00017ދ[�A����r����eqp\b\"��]��\u000e�:�2��(H�����|?s\u0015\u0016P\u0012��\u0001��^�:�\u0014\f�zd��j\u000f\u000fjx��q�T���\u00065�Wju�u\u001b`��\u001dY\u000b�\u0004�x���\"}�\u0000�ֽ���_�X�&���QuR\rE\t�\u001d����-�T��W�\u001d\u0015��{��~[��3��5\u0013��eos���*\u001ekޣf\u001e\u001diS���{���\u001b�~��\u0000�8�WF���\b��t�L��گ��鷏��x��q�~������\u001b�}oq�}�\u001f�P.@��d�ψ|VIqN����,\u0006��'�ԖM5\t'nԨ������>�ijH\u001bS��\u0000L$w|�J\f�A'�r\u0003m�.������:S��x���z�=B����xS�Ȕ\u000b\u0003�\t-ѥ\u0003m����\f��)ߢ\t�+Z��L\u001fr\u000e�\t$�\u001dOM��y1>��\u0014�o��8\u0018ƺ���ω\u001f��˜��;\\�z��4��N4��ߺ�\u001a�PhO�~\u001d����ۙ�?�zꀑF\u001d;\u001e�Ҹ�Q#�D-�Ȥ�~�֔?�\u001c\u001d\u001b\u0007z\u001aY�\u000f���\u0000mSߦ\u000e�Jg�^[7�v��8\n�d��\u0006�ڟ���\t�Kg��l\u000f����$��_�6 uE��\u0013�P��9r\t�ˣ������MF�\u001d���Q�5�J����\u0003s޾8��W��Ezt��ါ��4��ޛ����\u000f��i\u0001c�\u0002��(G��G݀r�[�~�F�צ�w�ͪ�aއrw��\u001e\u0019 i\u0007qJ%����\u001d6�㇊����Qg�^�PM:��\u0014�M�|�K�\u0018PP�\u0014=:���Q\u0011̠�5;-\u0016�Q׵\"\u0006��۽��\u0004�*�\u0000����Y��ѝ\u001f���>��Z@/\b���װ��S�}�\u000e��d����ه�g��^G�'�L�d������\"��ԦT�w�QT\u0001�\u0019�K\u001e��,�\u0010\u0007\b�\n�\u0000J���Q�_�ë��\u0019�..�\u0000�����_Y<�F!$Z�O��(���3O���K�≾\u001e\\�=���'�<���d�}��^i�YTI\u0017��\f6$�P+�3#�X2GSB�\u001f0�C$e�Gk��?C��0�O�!�K\u000fRh��H�%x݀,�j��ǡ�:�\u0001��\u001ed\u0002�$��$H���0��\u000b�8�J����C�+Y\u001c'�#�(baV�)=A�S)�T$(�8����G��\b�^d�\u001eY�3?�\u0012#)J,�\u0006;|�~��\u0012�}6X�4�4��U���;\u0010�F�qГ�W�\u0007����0\u0002�س���%x�Vq����3B�V-*r߅H\u0014��y\n\u0004ʍ�JvxA/��05'���\u0016�\u0014ây_L��yR[�-ۊ\n\u0001J��_g�'�y�N<���|��;F�R��Q��ڤ��(A�S��v=��n\b��K��˘��\u000b�VrV='L��V\u0015m�-���&�\u0003���sډ\u001f\u0010��\\�Q\u001c\u001b�\u0014�����0]�\u0004)���S�����.d�K����2x+\u0010�p\f�dd$j����V��NJ��S�c�I\u0004ֻn{�$�${ܡ\u001a�g�݃u\u0012��K\u0005�U,��\u0014����آL��!��|�*��\u000b&��r�#*�+0&5\u00145��kZ�r��[\u0001\u001d�D��G�\u000f���?ΝLEirܪ\u001dZ\"\u0001��Gj���gM�p�8���Nf����\u0011�?�\u0019�\u0000�%<�v�#�?5|��\u0001hW՗O�%�<�,Ni�$\u000b$\u0011�\r\u0001l�v�yK�~�y'�\u0000G�����`\u000e\\����<��H�\u0000���*�j��� I,f�/A�\u001f�\b�FaC$j�;Q\u001e\b�-�[�^�3�%)K9\u0014�oY\u001dv?ʔ\u001fvy��\u0012r����\u001d�k�\u0007��P\u0003��:�\u001c'�/�o��\u000b��»\u0011�A���W��!�#V��w�/���b9ʂ\u0012$�𤍶�r@�\u0014�sL�r\u0000h�e\b�\u0001�}\u0005�\u00008�斗NM.y\b�F���\u0004�\r�����I��J�\u0019�`��{4BU�\u000b����ӡ��Ɵ[���l���]ז[V�Ӧ�<����\u0014 �w*����3�ŧ�5\u0004�TE��\u000e-���=3E�%G2\b�>*(C\u00026\fAa��홓�B�L1D�-��:m����\u0016\u000b�[��I\u000f�ddW\u0015�6Y+��q�Y��\u000e\u000e�\\�X\u0001��������:��-6\u000b6!\n�h�\u00157�#؊9�\u0011��\u0017u�\u0002\b��D��~f���\u001c�HZ���\u000f�\u0016��D|�z)�w�c�߫Y�^�~;�\u0000�Jy�|������\u0019,4Rt\u001d8-J��j�H\u0016���\u0004���z�t�Ɏ\u0003�L�����&y��C�M �3/�-\u001d+]��]�;e:�+��$�1=m�l�=�(�K��e�N2U�POS�ݟA�\u001fR�w\u0005��\u0000�|��퐏/��<\u0005%Z�*%RU��\u0005:��S�\u001d:RI,_Z����ۚq��g/@���ˈ=;|��Q��K����\u0000�G����u\u0006��\n����k�\u000b�4�\u001bD�y��~Xq��\f\u0011��%�֑�b\u0019\u001a��\u0000O�\\�\f�T\u001c�v&N\u000e������:�؇\u001fd��e�ҥ\u0012����[��+���z��$l\u001a��w\u0003qC����n\u0018��.\u0000>ǖ�e��nr��\u0000d_\u0004��B��\nP�\u0014Zv5'bI�S\u001c�œ�v99�\u0010��\u0018~��I��q2I���L��:�a�-Њt\u0019��Z��⫠�b�pkk�I��L���5m\n�Q%���P��X�#���6�'\u00100�c���Q\u0000�\u0000\u0017'κ�1��*\u0010�ݸ�jv�j�\u001f�6��\u000b\u001b��d�<���\u0013r��bҏ��`�\u0006�y�\u000f���@ϽiɔR�j��5\u0017.��q!��5���~��/��\u000f�U��\u0017��/�f�+*\b�\u0000*�)|�e\u001b�^�MS�v��D�#��\u0017Q���g!솿\u0016��1�1��ɗo>3@|i���fK]�&R\u0001ៃf�\u0003�=�O{���q�\u001dF����ƫ!��|�4�b��h�<����q9vނ\u0004u�\n�\u0010g�i\"Gg�ɟl��'�-�����\u0012�p�7\u0001?�{��+䶵kdj�`Ic��\u0014�\u0016�\u0003�]ni\f��c[�<\u001ahp���})���O�]\u001f�z_��o?���N�j4�&��8\r奢\u0012���z�}h�\u0011$%I m�9l�����sK\u0004|Y\u001b>g���q\tj\u0006\u0011\u0011�'�\u0011@Y�;�tz�\u0000�7?;5+���\u001f�?��\u0013ij���kW�!��W\u0012�$��&@7\u001b{�\u0012��\t\u0018��\u0010<�\u001b|i�4�\u000f\u0014�;#������y�U֯SM�Z�S���%7r�����0�\u001a�#\u0011�;�ى���*u�\u000fO��㜿�\u001c����c�?�\u001f˻kI!}B��Z�r$�Ii4\u0010Nk�� ���v5�n���\u001dT��b�E\u001fs���>;���;\u000e��~��'����XF���l�IGP]UB��qe�[p?��7U\u0019d�@X��ҘC\u001f\u001c�\u001a�ǟs���s�j�H�y\u0005�,0<�\u0000�}Dݛb�\t\rO]�k5>&\u0011D\u0018�ݖ���I�\u0004Pߟ/��m;�p�\u0001i\f.�\"r�1�\u0000��6�G�|�e�Y�n�9A�s\u0005�:n�}x�\u0018��Y9P*��v\u0004P��\u0018o�̱�.��\u0010&@W&[\u0004W\u000b\u0011V2\u001a�\f�,k�R^�]�\u0002S����# |��!\u0017A��׬<��O�CR��=*�\u001b�\u0006�I��䎳ܑ�'e퓞�U�Ih��������J�y\u0006\u0011å�h�2�L�\u0011�$�>e�^b�����\\�\u000ew,��?t\u0004U��'<�Y!>��a�Ĉ�\u0000�\u0015oq����\u001c\\�'���ֲ\u001a�?�-\u000b-�ZS�_\u001e�\u001f\u001f\u001c��F\u001eK\n�\nx�\u0000m}�y�����W�[a\u0007�E\u001c�a\f����0��wۢ���\u0000�:M�\u0000a�T�7�9\u0019r�d6�����\u0000�����$��*���i�KhǾ�\f�d$���\u001b�i��۵?�f�\u001e�IaxK\u0001QO�:�|\u0000ɂj���ߊ\r�F�4\u001e�;�P��e��*\u0007.�(v�޵&�o��$\t�����Pn=����\u0019;�{\"i��wQ^[\u0010(+��jҵ� w�Pm3��q�_��\b\u0017����O�J����u�/:�PMiO���}�}\u0015\r�Wr��x��_`1@*��Zr\u0007n��\u000e��\r��e\u000b5��۪�\u0001Q�m\rr��W�'ބt��F�\u0014�Y|���)�&5]��Wq^��,��G��4�X\u0016v%���\u00155\u001dH4\u001e {}\u0019-8\b&�Qj\u0002�������g��{�����\u001f��iAM���'\f�B^Q*7#��h�\u0000�g�3i\u001az%]�F\u0002 ,�\r\u0016�|�-�y\u000fI� ��\u001d��Z��q\b��PQ~9\u0001N�h~,��ŗ%p�כq�e־I�u\rwt\"&�\u0002\u0000?\u0013�32\u001a\f�yʏ�bg�Nb�v��\f�4� �\u0001��M��1��c��,\f�\u0012�\u001eN�$�]��t2���j��a��\fd!.b�#��m$sc�ZC,b�c�\u0013q�\u0000\u001b��̈�`(���k91�h�Ċ�S\u000e\u0002�ңjm�\fȖ1�v���4G7��ry��M�c������\u000e\u0005£o\u0015�7)K�p$`\u0014x�Y����=����4�r\u0003XG;����?sĴ}@\u0010(z\u0000\u000f��ʇ4����m��ꁿm�&6E�z\\և���y1�Gإq/!Z�޿?o\u001a�$���\tkIRw\u001b����N\u001b'rz-���\u000e��6����~j��p�1\u0003�=:x���^ԅ\u0006�R����\u0000����M\u0007ʕ�{�$m�(��\u0015c�\u001d6;\u001a���\u0007.H�˪\u0012Kͩ_\u001ao�\\�i\u0006ה�z������$]t�A�+�w����GqЮI=C����>\u0010@\u0012���n�p�0A \u001f\u0011����m��\u000f��#��Y�XSaJ���A��5�ꙮ���\u000bҠ\u0002\t�Q�0{�#*�#����\u000bRC�\u0000�ߦDy$d\u001c�Vں��C�\b��Մ��ݫ&�ˡ�4\u0015���$��\u001bI��\u001b��hi��{u�Fb��hY-�'�$�<\u0006\u0003-�\u000f���r�N�{S�\u001d�Z\r��ޠ=���?\nw8��KCR@?��]�\u0015o���\u0007Q��\u0007�\u0012w]��o~�I���\u0007ު~�+���\u001d{t�\u001ej�e�j�❾��B�H(hN�����y��(s!�R�H�_��62;y�\u0019*\u000e��)�k��\u0003ޞ^���\u0000�N�\r�~YYX,�m�fyu\u000b�]�↱[#�\u001c\u0001��s�/�\u000f�dq䆪@\u001c�����\u001f�|��\bZ�dÓ\u0001$B\u0014\u00071���C�q�T��ǭ\n�B%K]cU�M\tH���NGa�\u0002G�;�j2\tv��6\u0012�\u001f��;\u0004Wd\b�N_{ծ�\u001fR�\u0018�eX�ĮxQ�v�R6�Z\u0019\u0018��m��\u0011��wvR���\u0014?\u001dX��R�wbK����\f�:��|/\u0000�j���+�꨽���c�<5d�=��e8HKj\u001b��>Y�����a�\u000f�#�M\u000b�Q�OM�8��῾��VY\u001a��|��v�G\u0011�e��\u001f_#��:�~��(��7�c���|Y�M'[�.���\u0012��t�6s�\\~#P�㒶���6>$%� q}�p�$8��A\u001f�1��[T��J\u0018��?@�>\u0001UUX\n�\u0000��J\"1�6\u0001���\u001d�\u0000[˼��?PMw\u0004-iq\n��\u0004|d���p�pv�M���=�M�O؈�~��|{��/�g��8��\u0000��bv�#��$�u����g����G;Y�\u0007\u001a홸��t.�>�#����2. \u001c|��\u001d�ˣ�/-�^X���Ǘ��e\u0004ڝ�f4�P��XV4�9>Ԩk���������*�{�\\2\u001e\u0011\fNj\u0015��\r�/�/�q�^Р��ʓͫiB\"}\u0018�,��\u0001<^ݪ�\u0001\u0007�փ!�\u0013\u001b�\u0017���q�\u0004A�\u0015������ݶ���V�`l&\"\"�\u0006�\u001e��\u0001R\u000eT\u0000��\u0002\u000f���3\u0019\u0013`����m+S���\u0000�����\f�&�'�4�W�T*�꾭�+\u0001@\u0007)�Y��X�_\r�\u00122��J&��r�\fY4\u0019������X����\u0016���٦�P\u0019[ӌH\u0000P�T�6��J���LLeE�i���z�\u0000嬄�jE���\u0014��:�R$OR�>\u0016�Q�\u0019#{y�2�\u0000���\u0017��~sw\u000bXe��U�?w\u0005�j��C�:8��\u00008��,|^O%����/\"fGn\f���S�x�֪No2u#g\u0000�C�>��51�~T~a���/o�˛t��^�>�\u001d\u000eʼn�)�s�\"e�\u000e�N�\u0006�6����\u0012*�\u0014��zmW%v'�w��Ę���\u0013�\u0001���$\b�z\u0017*\u00182�\u0000v\u000b��W��:$�ʹK�A�ȼ�h�瘬�c\u0015�ޫIS�c��b�x���6\u0018@nj� \u001c\rI2\u0003\u001c>�^����\u0006)b�\fv1\u0004T\u0003�� �E6%�3_�&z���ے<\u0018�@�\u000f�����$\u0016���\b$$/�\u0018\"����h+� �\u001b\u001c�1\u0011\u001cC���?|�\u0000%�+����\u0000�,���%�K=W]�.4|Ғ�\u001c�y��\u0005�Vo]����I\u0016�%~!�9���\u001c��!�b\u0003\u0018�\u00007y\u001f��l�c��[�;��\u0000s\u0011�\u0011\u0000>i�Áq3�\b�/3���\u0011�H\u0015��?vV%�ts�A\u0015Ր�P\b_]�p9*�\u0004@KJ\u0001ε\u0004|���\u0000���6�\u000fq���{\u000fd����\u0003����/O��\u0007\u0013�(j�6܊�>�g��ˇ��a�\u0007��o6D���\u000e+�jԠo�\u0004���1�#v]�0\b,{�]m\u000b�P�LJ�k\nl\u001d��?XBd� \u0002\b�����N�'q��;���\u0012y+��\u0000�Z�2���w\u0011[WvmBu�m\u0000;\t\u001b�z�\u000e�3 \"\u0005�qr\u0011\u0010Oy�K��\u0000X/s%��H^ie�Y]�]��C#�?�<�\u0013�0�\u0006�nN(�ƇF\u0005�7��\u0014H��P�!\u0003�5���\u0011\u0002U�ɌE�����\u0010\u0001��\u0014ehΥz\u0016�(�\u0015�M�S��}\u000b�,����+x�|��1�ړ=\b\u0007�y��+\u001b�t�䆿�9�MG��9�΃�\u001b\u001ba\u001a�@k�K\u0010~\u000byʀ\u0000?\u001c�ɘ�����\u0017]�ҋ�x�-�\u0003�L�L�w\nAV\bV�\u0014\b���S۶i���\u0011��O��e�󏢓4\u000f.��8=b\r\u0017�g\u0001��\fc�\u0007Q��ȗ\u000fia�ޥ�\bu��/��\u0002�g�\u000fY���Os��i(�K�j̭ʪ�s\u0010G��Es��\t�\n��>\u000f'�@g���/��?<ѨV[���8;�Q�эA'n��J\u001fS��}>o2�Ԗ���u�M��g�+]��=s��\u000f\u0013I,T�g�!�KwԞU�LyV[I%\u0015�1$E�bUhUi�jӾqz�x:�\"9�t e�\u0013�c�yV��-ɕ����\u0002�P-@�۶Y�d\u0010X�\u0006Cg��K��\u0017�4�\u000b E�4�]Y�\u001e1w\u0017�*\b\u0003���~\u001c�rϋ�n��4�G�\u0007ae�g�\u0004�滇�\u0000��~]yR)���g�q��\u0003�7p�\u00042Yh��\u0016�9Q�ui��$�H�\u000b�v���4��oY�\u0019�K��=�u�}ϫi�\u0011��[�\u0007yc��\u0011��0����\u001a���X���)%OԣG5�\u0019�V�҄l{��D�iq��\u0007��\u0006m�3��#����k�\"b�V�z�,\u0007n��f�S\u000e\u001b�LD�\u0015=����[Oo\u0006�j���H\u0012�\r<{ў%z��\u0007l�\u0004��Eˉ��gyt{������o�گ\u0004���.&uEA\u0016��~P��#O�=zf.L���>\u001eÿ�ɔ1����\u0007����I�\u0016��d�z@[����_j�k��\u001a�F������lZ�9��쌺��ڃ�\u000b۾����>\t��G�,�ݿ)8���k?-yJm^��@���_}i&ex�-b�X��ɣt9��:\u001e��G.J�\u001d�;���\u0016����7��\t6z\u0019_���`�S��\u0000�~u��5\u001d\u001e��\u0010=Ĩ���E�ۥ�8�1*]\u0011ww\n���X�\u001d�q����M9�2\u0019%Chz���\u001e{�>�C�Y�9A��\u0000T�\"��;��\u0010\u001f`~\\�\u0017�?��\\���<�u=Rk�u|�PAg#�[��5�n$�\u000b\u001f�*�\u000erZ�V��u\u001cx1p¨qY#�m��G������c�����w!�����]\u000e\t��4�hyL�j\u0013�35\u0018\u0006f$�J7\u0007aC�=���!�Ȁv�S?�-&8�\u00006�}�=�T�����1�m��[�\\�u��\u001fM\u0003\u0015\u0007�⿴8\u001d�3K�=���=yA�z���wh�������CJ�$�� \f\u001bi\u0018�)BA��\u0012sS�Q\u000e��9�qLr�Z'C�\tD���ncc$|��\u0013Z\u0002w#��*�N@���+�\u001cH1�1�yf�\u0007���q\r����BJ?��g��\"!�Y�ӎ�t^�I.=\u001e9E��!�O���������\u0012�\u0015>$x}\u0003�ӖmL}�L��{t��\\��6�\u001f����H<�7UNC�\"����bEo׽w��\r���6M��j\u000f��W\u0019\u000fN˳��ri�^��\u00001ji��\u001f!\\�v���'������:�|�h���Z�S���٩\u001b\u0000>��Є\u0002�O@?�X\t'�\u0000R{\r�Z\u0010�t���\u001a�\u001b��\u000b#���{�N�O��凞�\u001c�,��~�\fw�z�\u000f��\b�՗F_i�\u000f���;���S�Ʉ�\t�_���\u000e�}�8w�Ն�\u0016�jn\b�xx\r�ȍ�b�F]L�\u00007�w���l�ٌ�\u0007$��>�\u000f�Ϯ,7��5���ܒ\u000fs־��޼ۼ�\u0002�\u0013�\u001aw\u0015�\b��=miח�[H9~��zlz��\u0004�D�D�|�����e5\u0014�z��\u0000?�0�u�\u001d��|�u$\u000eKH�\u0007fn4#�k�\u0007-ð\f%��{Ҽ��u����w\r��<��k\u001e��\u0016�[I\u0006�\u001dM\u000b�}*�B1]�Z�x�@�\u001cw9����y\u000f�`!9\u001a�$�I�)�\u0000��:�����\u00004<�,!-\u0014�h�:�a�\u0010�)�%��\u000f~\u0001k�_���a�>\u001c\b�Gs��;\u000fx\u000ed4f$K,�w�����ߗ\u001f�^@��ҭ4�.i��\u000bh�D�*�X��6v���z����~�M\u0010!\u0011}��̻8xq�\u0007�^�-ل��P���j��R�m�37�\u001f\"��F��ʏ2�FYj�����8c\u001e\u001f4�\u0010��y�Y�ҧ�G\u0001�\u0000�é�q�3?\u0016!�ttڜ��h\u0015\b��x��1�7:\n����9?�ēCv���\u0011\u001e���?R�{��s�,��\u0003�����G�-���y=\\�ݝ��nf\u0014P\u0019��i�o��s2<.�\u0014\u0000�����\u001dy�?6���i\u0013��\u0016ܞ�����\u0014q!証N�4Z�qj�H4>\u001f��c&Q��I?o�Eh��x�T�Z�\u0000�l�\u0012��Y\u001d�z\fW��SS��̈s��^���1^�\r��N��-e�tן\u000eƕ�\u0000>�e�������ݕ���\u001b����t�A!%��)Q�}���E7\u0019\u0012~h�\b�e\b�����~�\u001e�i��B!�ꜫ���\u0000>�aRH�$�\u0000�5���Ƕ&�\t�إ��W;�Wƛ��\u0014���a#� l:�2_��j\u001f��\u0018F�R6vB5��^îD��\rYX.��}��:�\u0007m��[�s�k\u0005�\u0011^\\OM�����7;s�z\u000bP�P�\u000b���;o�\rR4w�0��\"����q�O�\u0001a�J]^��\u0013�_��\\\t��]M���@���0u[�K_S`h\u000e�߿Q��W�\"D\u001b\t͍�Bͱ�o]�\u000fz׶B[{��X���-�j���\n?W|Ŕ�!�U����^��\u0005mg�F����\u0007�~C�g]�#F� �7���\n�S�4��\"6��xa�\"���\u0000�5~f[Y\u001b��.��3l�Ds܄f\u0004\u001ce�&1g\u001d����O�.g���m?T�/%�u{)�/a�h.#(�CNJ�e��m�ß\u0016pe��4A؏x���\u001c�%\r9\u0015�\u0015�:o��|���!�X�-Ƞ�\u0003�j\u0013�\u0001\u001f5X&\u0015����:\u0003�bq�[sE��\u0013mץ:�oڞ�����\u000e�\u0000ٿS�c�V�+O\u001d�M��{�\u0017V�S�\b�F����&�O-��(����?$y���\u0000�zv��{y/��=.)簈�=ͼ,L�\u0000WE���\u0002�ǽ3�\u001f�\u001d��\r\u0006->l��3�#�5V|�\u0019��G���Q�\u0019��\u0015w�n��\u001c�1�\u00008Q�\u001d;�\u001f���\u0000�E�mOD�.�i{hO\u001b�b�%ͲK\u0013|q�pA\u0002�:�k0K�\u000e�\u0003�,b�M���t=�(bǓLM��:�\u0001fZw��l�\u001b�\u001ax݌ncH�ejF�FE[�r7�8��&?\u001f���\u0003.\u0013͏y����隡��oJ\rGF�VV,�d�Q%@��&e�:�9���Cć�<��v��% c�\u0007ۻ%Ӥ�\u0000\u001c~]j�%�o\u001e��jM6�;TH\u0017��H\u0005�\fr\u0010M<2ys\u0001�\u001a�'�K�\u0003�\u0012�1���׻�>�E������y\u0014p�q��$\u0014����\b\u0014\u0006���lj\u0003 ;\u0002�<\f���P�?S�\u0019��\u001f.k���<�[�kpѴR��$u��mNc�7�͆<�Ɋ3\u0000\u0011���,S\u0019%\u0012H��og�n���\u0016ɧk�\u001c�\u000e���\u000b\u0012�*o�\u0007��%P���Ӗ98���9\u001e��?�1�Xϩ���gB#��̊��Щ�@�heQ2�A[�N�\u0000��\u0006P |J�\u0000?}�{���\u0017���s��qkqm+���n2ĭP\f�\u000fð�\f�a1�\f\u0007�_\u0017\u0013=���\u0003|&F屨��Q�<�&\"=��\u0011�$~���\u0000��_�|����\u0014z���M��q�F>D}�E�24g�������t����A��WP\u0002n\rx\u0000kZP�\u00053m���nn\u0010�d\u0003�\u000f_���\u001aO�e��U'��]:´+�A\u001b�m�ܰ1�C�4p��w\u0013�� \u0000\u0007#G�_\u0004�1�\u001a�)\u0001U�\u001d�\u0012E\u0001�O\u00103fE�\f�f#b��Ք\u0000�!�\u0015�6�o�\nֽ:��*\u0018ɝ��D�'��oȽ'�:\u0005�\u0000�.��ר�Z���\u0018�,��\u001d��Ճ�'��!�\u001d��qqܳ\u0019\u000f�\n���;��}�nd�I � �dj��_��L����L\u0013�w3!\u0006?'�\u0016>E����������\u0006f�����ށr��WM���SrOٍ4�iX�gQ\u0013\bGė�\u0010d�\u0006_���\"#�\u001b��������4�\u0000�MIk\u001cf��\u0004�G���tjl�g��%��1��T\t\u0002��\u0018��H��9\u0019\u001fyܹ؄D�5����?\u001d_��v���u~&kg\u0010ܦޠ\u0000�,H���F[\u001c��\u0012䋭���~MZ;\u000b��Q\"��\u0010v�\u0001!FĂ[�A��s>�Ç�1\u0019\u001f��\u000fy�84�2�R�|�}4]�$UR�O\u0015^\\H�,>�5\u001f<���Og��+\u001c�U戋\u0007\f�\u001a�ܚ\u0012I��H�$��$�s`x@��\u000f\f�}K\u000b��c`��\\Gs\u001b��աq\"�\n�=W�z��2�\u0014�<�o��(����\"�����a�W��B9\u0003�ݬ\u0012�_�vA�#W��\b=�uZ�&\u0006H�3\u001cC��\u0012\u001c9%\u000e��\u000fv��V\"���\u001e!h7 ����<)��z\u001el�A��W?�C /Z|\n�E\u0000�\u0002\b?M3]!��\u001c� \u0000�_x�M�涶�\u001b��H�T\u0011I\u0012\u0015X�\u0000\b��Z�{�f\u000e\"\u0001�8\u0019D��w\u0013\u0018�\u0000���\u0004���:(�[Ք�^$k�\u0019ҩ\b��\"��s8\n�\u000eN\u001eYH�yo�\u0003��K+ʡ��6�AP�\u0003V��@�~�������\u001a��7X�D�H�H�j�n\\��۰�zv��A�pm���>8�b�w��$�\"je�Q�\u0010 ���\u0007�}\u0001�\u0000\u0003�q�\u001c�H�?h\u000f�{X8u�=N0~O8��\b�pk\u0014F�v�\u0015b\u0001���\u0018��nT��w��\u001d�\u000f�%�]KH�'Պ[&e ң�Z��.`���M\u0018��~�'\t�ݲ�;\u0005�;V2�H>\u0001�c�\u0000h�mJ���L�_;X\u0004����:�`�(\u0016D���U^=���\u0000\u0005��Ɲk��#�|w��\u0007k�K�3G��5�\u0011$}���>�ũk�pDi.n^T�\bY\u0002�\u0003\u0015�U�\u001a�\u0013�X��#�$}��\u001cw2*G��������DvZ��k*�I�p\u0004U��-QS�Ol�\u000e\u0002g��\u000b�ǐ\u001cBq�G��$�wL��\u0006\u001b6δ�ؚ�؍��t}�\b�T>�q�\u001cr�\u0015�����qK\u0002�I:�\\�#\u000b�~\u0019��c]��\u000fm�Ls��y�\u001c�\u001a�\f`K���R\u000f9������\u0003��+nJ��?�]�����ń�+�ɆJ��l���V�Q��I\u00100��Z\u0012��Y�iF�,H\u0003�|�G�x#v/o���`c֑/��}���\u0018��\u0004���*?��O��o��2f�_����\u0018���^F�ͧ�w�Q�$1-���.��>��\u0002�u\u0007<\u000fS����]\u001e�-�Pg�\u0019��\u00011�\u0013� K�7}W�u?��}v�\u001b�t�e\u001e_TD�d\u001e��\u0000G{��/56���YY��j7>�\"��i�גHB\u0000\u0007\u0018!`�\u0002�s��σ&�\u0012�8��>?ڱ�dc\u0001��/?�G��O�=�-5\u000f.~K~a�\u00167B4���C\u0006�+�(�\u0019.\u0010ۃN�\u0016���k�,H�ɔq�����8����\u00118c<=�\u0000������ߑ\u001f�Z������?���Ior�Yo:���5�\u0010�U�B�\u0013S��@:-A�Ӛ�N�\u00068�\u0000�i�呎�P��M���dG.H@^����Q\u0002[�>�д��\u000f˭,Y�?��ߜ'�����\u0003ʒǨk7���'�|�-�����±�ù��^�Oں��)���\u0007o\u0012W\u0018��@o�.vA��\u0013\b��q��\bp�����4�|����_��PI�{�A��7\u0010,K\u001e����O��fx�ACoe��D��\u0012�� r��-Wdks�'��r���<8\u0003��\u0011�.>=N8d\u001f��\u0000kid���]F>�\u001d��=���Ty_F��{-\r�\r.�o��zn��\\�M:\"����v�A\u001b\u0003Z���1��=?�g\u0013\u001e1\u0019\u001d�L�\u001f\u0012_D�����2��I��\u0001\u0013�o,��\u0000��_�m����{�fI�V�Qs#X�j�\u000f�<�uB$ ��w�^���H���c ,������\n\r~\u0010}�M����<���rg\u001c������\u0019�\u0013v�����_��_���E$qP>����u\u0004\r�x|������b�ޒ�}�v��}\u0003\u0005�\u0012�U~=�0���ߩ�����$kv[�]>�\u0012~�*k��3\u001d�w-�=O:e6���5@\u0000�|�y�\"�\u001f�5/754��>\u001eݱ�[�X�eT�\u0000�����Z�2��\u0004\u0000\u0000(\u0004j\u0000�m���ܙqK�1\u0000�^\u0018�\b��R�p�\"D��G\u0011�|��\u00009\u000b�1�y�˗z���p��q�ֳĀJ�(,\u0014��#�#pFk�X�CU�l��\u0011�'���;��P�ߑ7���7W\u0016WV�1�Z�%��нVHث\u0015�jW��2p�qg�\u001c�4$.�1�\u000f��rإ�I�\u001f��CAA\u0014�}J�>\u0019o\u001cj� �9\u001e�\u000bk�\b�#�����H�6j�j��V���/J���]��¦\u001d==\u001b$�v��<�;\u001e\u0015�b�\u001f\u0004�d6���v�\u0003d��\\;o{��Ώ�SB�\u0016��\u0012\u0010��@��S+�p\u0006&���w\u0003�̘�\u0011�\u0004lX��J��\u0015��v��m�]\nU�ťɏT�\u0011˕�r~��\u0014R�;R�&�dO���Plƹ���~g�[i��^V�\u0000\u0018y\\�i�{X�YŜ�\u0013�!\u000f\f�w�)�\u000eS�O(��)\u0001\\�\u001f��P�e\u000e��_q�|'���W�.��Es\u0004���r�a\ntb\u000b+�R���f^=fYF��\u0000�ͦX�\\=<���巜\u000f���.���Kn�im9�L�ƒ\u0001\u0015A5�îd�fXz�\u000e(��u\r3���ؽ���<��f��~i�M?�:tv��dP����Y\u0013��\u001c���\u0013ZT�̌:�\u0013�\u0014I��~=�4��`�ic���-&���o�0]�W���OS�H\u0018,���� ��1*j\u0005{\r�s�Q\r\\<,���\u0005���\u001dvm>L\u0012�1�^\u0011�|\u0007�^]��甮5\r$��_U.��v\u00062�E\u0005\u000b\u0001J\f�$¸��6�[d�#�����\u0000�Mh��\u000f�tMJ��U��'�T�Y\u0003�j0\u0007�e\u0014=�X&%��E�b2\u0013�\tz����\u0000�\u0013Y���e�`K�6\u0011�S^/o\u0012�c=kF���:=L|H�,yJ\u0011?c�21�#!�<���F9���J�I�w\"�C:\b�\u0011Z�w�\u0002�4\u001a�c>NU�!gk|)��\u0017��O1FA,5+�\u0000��i�}�SZe�\u0018�P\u000f.��Mc$u\f����8��\u0015tiR4f#�$\u0000�S���j��˛��cž���\u0000���i�U�\u0016�\u001d��]j:��D�\u001cV�o\u0011#n@;�q�\\P��}y�\\@�B�i�w�\u0000W\u0006�G�|{q$����f�<���w[w\"tH�<ůi�M�c%��Q�\"����N�\u0001W�21�\u0006^N<��\u001cL���q�A�yj�N�U-쬂�\u0001j̊\u0001n#����S�-~A<�c� �,L\"#/�����ϗ���\u000e\r' �Tl�h\u0013܅\u0014�fV�p�W*r����w��_�����s�@�\u0016�\u001f=/��>o�����o͢y{D~}\u0011����)�Uͯh�C�r\u0011�`C�4��\u0001u����D�0�yzF��C���r+�0k/sa`�t�\u000b��w\n�$ӂ�$jEG$#�3�2��z~6s��0��G{��󱺼a��+�\u0015 |+��w۾Vg� \u001c���d^��5\u0013ǣ4�^\u001e�~\u0015o��\u001c�8��R��>���4�\u0000�\u0004~A�\u000eÇ��p��2?3�\u001fC��\"�T��+�y:Ѝ����㜆r8�����7������*�\u001b�\u001a\u001e��i��A�H\u000e^�`�O\b�\u0011�j�\u001bV��?�OJ�O��.�d9[�����3\u0011as�����rL5j�������3����6��;�d��'K�X\u00042���e�ǫ�\u0012��\n#���5j\u0000���J�Nc�6\u001cHH���m.�D�2)�!\u0019N�X�\u0018�Ƈ���jrG��Q&D\u001e��/�8b�њu�ah��H�\u0015�J\u0012�ՍB��fV�7\u0017\u0017PDf@����G��\u001e��_\\�RNQ[+B��\u0015M�N#`�Fٙ:���]p�d$�~��\u0003�,>�ޫ�D�\u0003݉?v�{f�,��v�\u0011����SF`���f�i~��r\u001e9\\M\u001e��8��|������j�\u0007V&[i\u000b\n�x�r���g���|}��\u001d\u0006a����k�Z�f_�#�y\u0006��5���\u0003� BA#p����)��;쀉q\u001e�y�u���j��H�JIh�8^[�s�|\u001e8���6\u001b���'�]8�\u0000Cv�\u0003�$G>\u0014n��A�(\u000f�U��P\u0007`I�pw�H׽��\u0000�R\\G�_,�p����Ӑ�\u0017v7�I\u0011N�\u0004r��\b��fd��\u0018�9������\u000b[\u0011�K�\u0013�L%��ҷ��\u0016%�|ס�Ȧ�E���r�@V�\u000fbч@y5T�I��EǤ2��9Fr��\u0000d^\u001e\u001a��K\u0016LJ�s���׿��A���Ms��H�\u000b��U�L�/f\n���-\u0010\u0002[;�x1���Ƭъ��e�\u0018�$T���N���\n�2q�9I�����˿8�g4&9e-\u0004�8J��\u0001�0\u0014\u0004|�?U���\rJ�|�9���w�������'��\u0000@����Q�'?$e�V]\u0006Gk?�\u000f�\u001fB�����������\u000b%��\u001b�F\"$SF\u001a\u000e���O��y�{0G?i�?����Gp۽���<�O0ͩ�g�D��tA�1=fk�\"�\u001d���\u0001�<���$�\tɤ�[C����?=y���˺\u001cVp�i�>�}�G�mm�ؖF�yt�sJ��,��\u0012w�o�����93��f˟(���'�@��m�\u0000�)���#�\u001e\u001d>�x\u00180�Dat\"\fLG;;�$ݓg��O����]Ь�,� �\u0003�A,�X[[َ-\u001f \u000fգ��랟��c�3\f1���<\\t��O��Dy�/�0\u001f�Z�\u0000,Z���(\fR-B�5���T�P�\u0006�\"�����qH�p�|t/\u001cl��\u001b�B����\tW�@�zʍ�,�o�r����G\t��g-\u0006|c`8;�}�C���R��4�R�k��\u0012s2z�2��Wjl��\rT0nj��:��\u001ax�Ep����s�\u000f�-&�uacz\"��\u0011V}n�(m4�d_ZH\u0004�\u0014f����/�������G!�?����\b��*]Mz@�s}I�?�{-\u0005WIНu\r^��m��X�ꖅy\"���OP\u001a��\u0001�4QNj\u001c6S�\nW-\u001a\u001c�<<^��\n�R�\u0019�\u0007$�\u000b�?&�_ʞH����=>��-�T�\u0004H\u0019���\u0000\u0000��jsg�K\f@B\u0000S�\u0019�\u0011�l>ߋ8�ךG1\u0006\u0004�aJ|���2�\u000e��_�+��X�kי�ɉ��r�>]��(�P\u001b�\bJy8�!­u\u0014%���J�Z�\r:���L��[$!\u0011q6X_�.�K'D���HB�o�Fٛ�\u0011\u0006�'W��d*�\f_��W���\u0013*�\u0014T׭E\u000f|�'�����9LO�Ř�{F��#\u001c�iR?\u001a��M\u0003���L\f'�{�o �6�w�ޭ�R��W\b��\u0003\u001e�#�L9D�]C���<� �)����Y�o2^<�]�e�\u0000GPzR�f<��w�\u0010�CO8UL�K�yq�4�o4O�U\u0001P/�7��jr��\u0018ă��:Pe\u0019G��~?\u001bt\u000f,ZI�2\tU�枱o\u0011�&\u001f�ׁEonI\n;\u000e��4����]�K�pA�ؤE��㾡k!qyrw\u0004׍6�~�\u000f�L��+�1��@vg6?�:����Ĭ\u0000�\u0006���rCG l��?��P)�~Vރ�����|�8&7��i\b�ܿ�׌\u0005e�|���\fR��P���n�V$\\�*|z~\u001bc�z\u0013�c�+6\n_�\u0000*6��&�rO��÷l\u001e\u0014�S�H��؅��\u0016V��7\u001bw����#\f�\u0012J&\u000f]�\u0017�\u001au�nnO�����3�f�4Q\u001b��\u0012�����������\u000e>\u0004��|\u0019\r \u001e�Kn?�\u001f�b���\n����U\u001b�pN����(��Z��U��]}\u000f�t���L��~F\u0015ͨ�\u0000�\u001c�m�\\����\u0000��\u001e8�_'y���\fc��#\"�'��[m�����v$���\u001b��\u001e���p@��\u001bt�C��58�4�Y�\u001f�\u0003�\u0017��\u0000�i�f,//E�\u001d}��)��s\u00127�\f? :\u0014���q~��&�x\tڇ�\u001f�S t�@�����y���\u0000�0k \u001fOS�\u0014\u0014��B~]\u0006>\u000ej�����bt\u0012=vH.�\u0019|Ф�z�o\u0000��t��F� p�\u001bؿq_�Ͽd���?:CB�\u0010Idz@�S�jk��u\u0000\r�Q�<���d��������`�\u0002���U d%\f怀��I�d\u0003���\u0000\u0001y��\u001f[E�a����\u0000��s\u0016X�D�\t|7c��\u001c�f�H���g�.Ț#�i��[������R�\u001a��\u0001�푌3�\u000e(�s����\u000ed�a��2;A�����\n�G\u000e�\u0003m��lŌDS��0�8���� \u001ej���)�)\u00142H�X\u0011�\u0004~��XA\u0004s\n,r|����%�Oy.�\r�A�<��\u0018�T֤R��a\f#\u0004���&Ȯ^i�����C���m\rO�V������\u0011�1苋�@\u0014?V��E\u000f\u001f��\u0011\u00109r^\u0018U&p�UhQR��Oh֟O��xkܠE:����X\u0001�Tۯ��d�yw��ܛ��Q��#�\u0016:�\u0000�%�}v����cQ;�o\u001f�v��_��7�\u0000}�����������o���[\u000b^)i��Xi�R�G��)�\u0000\r���s׽��ؘo���\u001a|��#��\u0019�A!\u001f�!���.�f�����R\u000b~2I\u0013q\u0007��M�\u00155\u001e����\u001b�'�ɹ��\u0007�j7�so-��aic(v��P�.���U�PB'\u0013�\n\u0010Fٺ�{�cp��t�-Kɞ\\���\rv�\u0000����\u0016mit���Z�ܻN��\f���\u0000dri\u00132�\u000eّ\u001c}\u0005\u0018w\u001ew�Z��\\F�=F�w?�̼ۥy���I{��Y�;(�\u0011E�\u000f.]\u001dgK�����ס\u0019���R���\u0005:t\u0019I�\u0011d\\L�\">�y2\u0019A�R\u0003�\u0006��u�y�����Z[5��Mgv$I`Q�R\u000f�^#��\u001eg޴;o��\u0001u.L��\u0014n,����f/%��-d���}$u�B\fQ�\u001b�Yhh\u0019�M?g',2���\u0007��<\u0011�Ƹ�?�}=��O�c�\u001f�:h�N�\u0004R��e�[~&U\u0005��\u001d�\u0005�\u0007�k�\tb�um�{\u0013������\u0000�$��\u000f���f�4xn)y\u001b���\u001eD:ʈ\tHŸ����sƸ2\u0002\u0001\u001b\u0011���,r�&\"���_\u000e��|���\u001b�˶�^�[j���j�D�B��T�G'��\f��%�\u001f� �Dys�?��<�����X�\u0005���F~~�\u001a��\u0016e#��\u0014�O\u0006YC �Q��c�\u0010�l�\r��>\f\u001f���\u001a��5'�$��0�[�K#[S�F�Bj(E8��6g(�\u0013�\u001b\u00008�\u0011��\u001fQ�˻�?:��;<�o��w7�\u0011X�K;�IB/\u0019U� ������\u001c9&$qȚ 7�F�1wD�}ϊ?�\u0011����cI\u0012Th\u001a�\u0013F\tm}+���~\u0019E)���^?e��[�c����5�\u0018�R\u001d\u0007?��ֿȧf��.A!RI�98�z�V�\u001f\u0015\bQJ�Z\u0000�E8��ߐ�/�?2=+�:����eԦnU=�;P����D�nNC�\nz7����g\u0012(i\u000b#T��� �!�UI陚�Q\u0017ʩ��\t����\u000b�\u00009��\u0007�4�(�I�\f�1�U�n\u001eN��U:�N=r=6�u�z8��U\u0017�W\u001a�\u0005�\u0015��\u0000�\u0015�\u0002�k�w͎8�\\��Q��?�q�˲��ߙ�����h-�\u0004,ε~ ��v�e��p�e�[\u000f��2Js�\u001cq�\n����}�����0}0�A]�,;�\u0000X휮rx�\u001d�(\r��|����}^��V(Z8咜���\u0001�3i���wl�*�>@>��\u0000�N�MF��\u00009!��q\u001c�\u0000]�5�-~]h�\u0001O��ZU������o.�VZа\u0007�ev��pa�\b�23�\u0000J(}�ө�0u\u0019�\u001b�Q��f��\u0002�[~r��zD��a���e�ėy�\u0012M\b��NR\u001d9;L\u0017+<�>\b�<�[�27�X<�>�Q��z\u00159���\u0018\u0010|��Ӄ-��\u0000����Ϣ�W�\u0010�\u0006>��+Q��f!\u000e�\n*=�ĻO)ͨ��[����\u0016�N�\u0000�a�\u000eF1\u0017���\u0005�+H��!\u0018�j�\u001b�\u0007��9�<��|C��\u0013��V�\u0002��ۓ0���Z�1>��q��z<\u0007�F?Y��\u001b\u0013�<�\u001f�\u001d��\"=2�rc#[\"�\u0000+|�t_6٫��\u001b�֒U�\u0001Ȇ����\u000e>����sF\u0019�%�LW�q{G\u0019����&ߤ~U���\u0016�N!�\u0001�*��/�|�g��::Lgj/[�5\b�h*�/%��<���kJq�A4�f�<7rc�h?M�\u0000%���wq��W�/\u000b�G'���Τ�i@\f%�\u000e�P�N�5\u000b\u001d�&s뭯��'灐]\\���+7�ǫ�;\u001a���.����DN��\u001b^J���q\u0006B��I;�Z��4�5Y\u000f�nn�\u001e!iM�4���\u000f\u0002AU\u0015aM�yV��\u0007;r\u0004�rڟ\"~j����܊�R�+c\u001f*|E=E�cQJ���\u0000\u0003\u001c��5x��@������:yO'�\b��\t\u000e�Q�J>��\u0010�sJ�Ʀ��Z�����Z\\\u0015Y\u001e�E�:����kG��\u0002\u000e���I�Z'�P�\u0002c��w�G\u0018DH����~�f��/�\u001d�\u000eb���Һ\u0005�6���0h�:�\u0005ij�]E\u0019Aҝs.:�ЀɎB�\u001d�w\u0013>�F\\\u0015`��6���z6��\u001f�\u00008���.�?*��@��)����F\u0001_�)���к���\u0006��=��&\u0006\u0011�\u0007}F\"�\u001d�_�҂'�Q�♿���_��ϕ��>�}�.yK�VP\\/�-4-\u000e��T���`5i�ޤ�U~\u0016\u0013\n��s����J^>I��$���\u001c�F\"8b#C�@�ݿ��~��0y��R򾳦Ϫ6�iqs��\u0017z�ٕ�أ��\\�Z�$\"S��V�\u0011�9.��Ê\u0019\u0004h�I�V;����0'�R22�\u0002O#˄��0_���\u00003/�|��\u00008��Sw,�S��ѯn����\u0018��q\f$1����[[Y���^0G�ޡ~�Z�[�\\����Uaw4\n:\u001aW5\u0013�\u000eN#|`s�\u0007��æ�\u0005�\u001e\u0003�\u000f2w�~/s�����k{�����\u000b��NXdu���sE.��GPH�i���?N�\u0007s��`x�H���W��wˏ�@`���h�}~ծa�2@ZhZ\b�x1�H�(�\u000e3��Yo���M��떖�[�ٌC��e}�I_�Hf�)��?h��LJ\u0011�\u00002��=R>�O����o jZsO\u0016���\rӧ+b�#��3\u0007�+B���@��s��c��@$uv�|�?��%�Ͽ�����w1$��zw`\u0015\u0003�a\rE[c��L�\f��o}��\u0000\u000b~\u001a�~�~�\u0003Y�1�\u0014�GN�\u000e�\u001e�\u001fו吘ߛ(D����Z=��A+\u0010\u0018+-\u000fZ\u0006\u001d\u0000휯l\n�\u000fqz��?������\u0013�%wU��+���w%�LM��\u001bx�q\\��F�U\u000f�)\t�*�zw���\u0000�TBXF��Q�\u0014�ߦX\u0000\u0003Ϛ�l�@�@�Ҟ\u001b�L��\u0016}E+�E|h\u000f߄\u0003V���@�~\u0003��b\u0001U�\u0000T^�A�\u001fw�Q�uk�hhJ'Ҡ�\u0000���W\u000b8�DA���8���UE��\u0000*��Q��0������\u001f��+��Z�J�_�\u0010\u000e�b�mg\u0011?ݥ=�\u0011֘(\u001e���i\n��\u0014�{c@+\u001fԵ�;I~��ZJn\u0000\u0014Q�݇�|��\"�&��O\u000fT�o仜�\u001c\u0015\u0010V�A�����p�w,8�̓�K�u�B\t\u001a�\u001f��\fkJ\u0003��\bD���,�\u0007��3]M#\u00134�$��#Ȋ�G��,�z\u000emr=�-��HG��\u0014�AZW�N�2�#\u0010-��rL�n�v+}\n\u0000��OS��Zl\u000eH��L!�;U\u0004}��5����w�}���x�'p�2F'��L\"�-��IM�#m\"�2�Lhǥ{\n�\u0004��ͨ�<����}�֭�Y�����Q�e��`GJ�_s�ǒQ>�ݛ\f2���1m'L��^uX� ij\u0019\u0005\u0018\u0003�}�2��\u00199l\\\\p��R��#��0D��a�Ӓ8\ni�r�\u0019s\u001c��eǴ'��?1i6���d(ȿ\u001b\u0002F�޾�d��@��џ\u0014\f8�Pc�v�M��\u0003[��\nH\u001bq\u001d=�\u0003~�l���/r�C9��*�_��[in#���qGF�>�-]��P:f6X�\\cɿO�\u0011����\u0019�����L\u001a9�U�O�\u0001\u001fO\to���'\u0013q�0�O^\u0005\u001bl\u0007�>���(��l'� ��_”����۝���Ξ\u0018��\u0001Џ�\\U�\u0005�\u0000?��6�Z0+v�\u0000>�t\u0003\"b\b�ڟ�ǀ�?�r\u0006\u0005V�Tv5�#� ��zc��{���<�A]鯇o�J}$e��\u001caZ�\u0005~]G�xUi�P푖���o���V�T�����\u0010m\u000e�F����\u0019+V�#���ت��>�^��|qU��v�x��?��M��\u0000(��]�U\u0006�C�W��\u001f���J��0�u\u001d)O��x�\u001b`�\n�m*����#��r1��+\u001c֡�-�0Gk\u000b\\:ъ�\"5;\u0012v�C�d\u0018�C��@2�1H�c�e��\u0001x�x �V�Y�Չ�\"D(w�\u0001|�?���ի֟-�����PےU��^�\u0001׶\u0015C����\u0000?Պ\u0007z\u001e�!���\u0002�\b�z\u0013��\u0004����k[�N�x�E!bJ�����Do�V�ځN�Oz�\u0000nLCz*\u0011�2���?�фB��E\u0000H�\u000f���%�\u0004w柽\u001fc(,\u0001�6��\u000fѓ\u0003��\u0001�\u0011C�����1\u0011�j�i�\u0000��տB�c�c�'�ĺ��\u0011M_ⵀT\u000f\u0005�\u0019���\u000e.�����?������}A���\u0003�/����I�CM4ޖ�V�#�I\u001cjO\u0019\u0018׶v\u0010��\u0000tt;H���͟7�ynK\u001d\u0017M\u0011˩�\b $���_�H�\u0012�\u0000u\u0018�\u0010\u0005jٛ��1*��\u0016\u0005�/\r\u0000>�:�>ǘLn�b���ifS��\u0005nH@\u0005W�\u0012G���~�%[it�~��O�;��J\u0010]��\u001c�<���g�\u0012������C����$zז�h-��M�i\u0005�j�H\u0013�$o\u001b�r\u0000PW�2qe\u0006\u001e\u001c���z���O\u0014o�������E�-<ͣ�>�΁�\r�\u0002*��\u0006��c�;�s��`�9#![�\u001c�;���uk�,z��J5\u000b@eK�zG #�\u001c��ȩ�\r+�a�q��\u001fcT�5\u0011�}�_\u0002�W�s\u0017��y��^\u001d|�J�b�u\u0014��nr�\u000fC��s6q��g\u001e\\��˄�߸�>��_��E���g��򼕌���=F% W��-�׈ڟ�����d�C�\t�\u0000'��|�?}���b8r\u000er�\u001fm~��o����ʗWΌ�\u0004�7�z�!\fN��F���-p����\\H\u0012\"\u0007��\u001f$����<�wt�BKr�ǽjL�T�z��W-Ў\u001d��~��\u000e!ʞ��udn/�\u001c*a�Jl��\"�����|:�����}{?7��*��o�\u0000;|�\u0012N\u00194���:\n�T\u0016vq�QZT�$<�\f�I\u0000q�/�;/\u0012@Vϙ>�ӳF�\u001aB�c\b�y\u001e��t!�Ӧl�G����D��[�/�K˟�O$��\u0015.$�o.\b<\\�*�\u001c��,��/��~��*8��;~<�4�,Ҝ��_/>�I�\u000b�Q�\u0018�rpY\\񢊚\u001e��NsS\u001f��'q\u0001\\�\u001d~oݭ��|��goH�Tp\u001b��li�m{<Ԁ��$\u0001�=������J����\u0000�:�E��\u000b\u001d�\u0000��<���v��\u001e:��K\u0014�V\ny%��P��m��؟��\u001b�\u001cc��~�\u0007\u0016)B\u0006�┥�\u001fs\u0017���*_��\u001c$Op�Bܾ\u0019\u001d\u001e�zqD�C�\u001c��\u0002^n~(\u0018�}F����ٵ�4Gn\u0000kx�I��\u0002\b-Ȩ=���\u0003�\\�=��\u0011����\u0001��@a\u0001�F��\u0005��z>��\u001dN�\u0000}\u0010\"r>@�|O'��\u0002�,ui-c\u0005-�nQĭ�U��*:\u0015=�ͧ��\u000f\t��\u001e�ˋ1\u0004lm��7*�Ȼ+S��\t�$n�G��QE���\n�\u000f��G!��Z\u0012D�>�|$��_l��\u0010\u0002@�����ԑ�R\u0018�>þ��=�$ӕ��\u0007���\u0018o\u0011��T��Q��S֢���6C\t\u0003\u001d�,�\u0004�by\u0010�\u001a���\"��.�}\u001b\u0010�C\u0019\"��Ƞ\u0007Zױ\u001f�tөF3\u001c�y�\f'(\u0011����z�0�\u0004�pCP@!~�\u0000u�XWm�3Y���9�\u0018���\u0002�����-��ɍ'P�j\b��35\u0003/�GS�%FĊ�w�1\u0013\u001cQ�\u000e\u001eqr���_�\u001aa�ooZE+W��\u001d\u0000�QQ�_�'�辮\u0007\u0010\u0013 �A��]\u0012��� �Y8�A�E\u0005y���5R\u0015.��\u0018��$}T�\u000bG�r\u000bU\u000e:S�-;x�h]\u000eNL!\u0013\u001b/��\u0000;5�}[[�\u00160+o�V��O��=��~����<�h�{G.� ��1�\u001f�@�|A��I�.����Q\u000exN��~��Iuhn�$\u0015\u0012/�R\r\rG��\u0003�����c͌Hl{�\f�M\u0010��\u00003ήt띹�{\u001a�\u0003���\u001edw\n����ň����\u0002D��\u0003eK�\u001e��:Ɔ*���e��\u0013l�O<<�`~�a2\u0002���h�H�\u000e`�NQ�=���e�Z�Fӡ�V�娱e���Io\f^��@*CJ��7͎�G�|ˇ�\u0018��\u000f�Y�\u00009\u001f�\u001f����$�3��O\tZ\u0005\u001f�,4MbH\u0002�x)�ge�힃����p��\u0007\u0004c��$\u000b�<ޏ\u000f�N}�ډH�q\b����\u001a\u0005�\u0000�\r.�K�NR���\u0011$�ʴ�\u0012V�XliJg)�7�NH\u0012%����\u0004\u0000d\u0005y�?#y�K\u001dHi���p��R=\fw1n\u0010=i�ڵ͎��D�q����뿸�\u0017[����:\u0000\u001b�������\u001e�FR��ԥN�y\n��\u001aWl�:�|�8���3�\u001b_il� K2�U1�V�M\n�ҧ��^1'�r.>L O�T���q+�}[˗��U�[Y�!V\f��ex��X�9\u0000�Ew똺�Gf�eek\u0014�\f�鬌\u0016�۩'����\u0019g�c�;�?\f��-޷���\u0005���ZәmQ�]��2[Z�ک�\\�ݽc��@�'v蠜8�,��6.>�X�D�1�/�\u001f�ߓ�\u0000�~]�z�{W�#��?x�^a�x��F\u0003}K˖�P���\u0003Cr��'n �ӂ8�����=�S=A0�v\u0006�\u001c��zn���{���.^�'K�x�a\"d�0L�7y�\u000123�ݍO|�j3�+\u0003j?\u00177I�\u0015y\r���λ޻�q�1�r��I��\f��moyC)e��f6�Lr�N4o\f���x��`*��1�Q�\u001b \u000e���G忕�өGoom�ūG�\u0019c�*l�A%Vxg�H�8�m�\u0001��^iF6g�\u001d�c���Q�\t�3}<�py+�i�\u0011���U�O��\u0012\u001b+'�K�TaNK\u001f(�D\u0014P�=�O�\\G�\f\t<�����\u001b�.\u0011�ng���8��zO�\u001e��\u0006�[x�T\u000b��ܗ{�+�GVV\u001c�vs����7�K�7��\u001bG�k0�����&�\u0016\f@�.+�^RH��H�M#\u0000�u�a\u0013\u0001���_kh\u00138�\u000f/>j�����%�����O�,̍\u001c��\u0014��F�E!�R�2\u001e�\u000f|�=W�\fH\u00062�|�'��\"Q5?���O���ǯ.��V�&�t�VH�m�\u000fC@x�N٣�LM\u0017g\u0019X��yV~)u\u0019 �\u001b��\u0015=\u0007��f��a~\u001c����\u001c�ˏ�C&i�5�����4���}a\u0000\u001b_�C�uU\u0016�\u0013����&\u0005r[lL���\u0001\u0016�\u0019��\u0007���h+A���G����~�������Z.��?\u0013��%\u0003������\u0003�Oçኮ\rJP�\u0000M�\u0000^*ߩ�l\u000f�*�>��\u0000o\u0015w?\n\n�\u0000�ݎ*�k:�i�rHH�\n�Wj�\u0011�\u0003ݰ�|�0��#}z<�+{���Y��;\u001fs��\u0000d�J�8��I�Ր�m���*�\u001f\u0010���{�*Gz�[H�G:\t\f��%�J��ڜ�܁�\u001c�\u0011��r�+��\u001e�,Z|��'�?�\u001b�\u001b����b�\u001c�8\rܾ��Wk5�!V\u0011�#��V��;��*d�\u00110�\r\u0000V]�[�D�EBw\nWq�\bܜ\"2�\u0003\u0019��#�\u001e�d\u0014���e;P��\u0019le.D4K\u00162x�ԋ����\u0016���Y\u0014���*�\u0000�Jd��`�\u0018�<\u0004\\X泠�Z��h�2\"G����)�J�ˡ�'l��ͧ�}xI\u0000tM��p�\u0001x?z\u000b\u000e\u000f���2\u0001~�M�\\��_��Wk6�j\u0012\u0006a�сfQ�_\u001f\u000fl0&\"�$j#\t�~}R�KO�Y,v�.LÈNu5?>���u+ l���xj\u0012ةhZT\u001fW}\u000ed��\u0013%�;�-�w���2��%~'{f�\u0014\fN\t\n7g��y�K\u001am�Z��\u0010�1��G��fv�\u0003�ʆΟ� a�ý���A0��$b�%\u0005Z���a��Ӵ��_���\u001b=\u0007O\u0000�Bë(���sY���\u001e�MG\fOR\u0013*S��B+CR<:\u001a�+oj���z�}�^�ۊ�O�\nWz��<1U�\u0003�\u001e\u001b�N���E;u܊�\u0003ǵ1V�\u0000�Z�\u000f��\u0011LUk\u0000|7ޞ\u001f�\u0001\u0000��m)_�����u��ߍ{d�A\r䕭��������\u0005A�)�c��[�)����\n��˧��]����Z�T�v\u001dN��xu��1U��5�\u00003LUaQ�Oo���T�1ƥ��\u0000*Y��+�\u0015`zߚ⇝��\u0007~�%~\u0015�S���Ga�/<ԵI#Nm!i�\u0015�Չ=�_\u001e��9\u001f��,�\t4��]RI\u001ez\u0007;��-�~�7w&�����Ez�\r������5�ވ\u0017���\u0000��e�q�Wb?_O뇧���~�\u001fw�\u000e�w�I5�e��z\u0000d�v=����uC��vGh�|Hhk��\u0000�e�&Q�J�Lc ����ܕ|���eYmM7!O��\u0012\u0016�ֲ�h9W���\u0000���W�lG5߰��xt\u0018H�\u001c{U(܈�%�\r�\u00009\u0015�O��\u000f?I\u0014��\\��W�$B+\u0014V�?S�A=O\u0018h\u0006{\u0007�\u0018�\u000e��ď�`��|��r�ݩ�}\u000eY}��\u001f,���\u0010yN��O�c[�n���\u0005�X�^_��*\u0011j�ܜ豎9\\�ζ[m\u001d����4\u000f\"�������&��{�kKWv� @M#$�\u0000穦e���\u001et�.���@��[\u0016�\u0000Q���(G�22�PE\u000b3�Lz�aV��H��Ul&6��`�����d�\u0018��M\u001bF��Uy����h)H�zek���6\u00182��\u001f��?m4�\u0003:\u001b�\u001fruk��]R��K���6�J,Q�y\u0001&�\u0014t(M\u000f�l1�\r\u00109ۏ�\u0001�G�^���ŐX]I\u0011�`V�\"�h�r-ϗ.��3&\u001a�]���˦\u0013�\u001d��\u001e�{�i�wѓD��\u0000��>�*ʶ�Z�����q�w��h�=F�hȨ1�\u0006�0p�\u0019|HH��Wq��]s���K7�a!�\u000e.R�u��|\bD�s���k��W���]=�P|��k���G��i\u001ef\u0003��\u001a�\u0012;�\u0004�����$�@��tEK�\u001eG�M�L\u0000\u0003\rCm�\"k�.�\u0011�GkV�^�g���+�+��8\\Ϧ��nd.�,��Q��m�\u001c��v\u0019�\u001c\u0006#�\u0011\u0013�}9�x�\u000b�,�\f�Q�\u0006��F�\"=�2��7^\\�e�X�mKF���,��\u0006F\u001c\t\u0000��x�\u001e>\"c!D��X�\u0002 �ƅ�wG�I�\u000bV2��\u0010�A�~��[ڝr�\u000b\u0000\u000e�FF$��\b|�����_���\u000bJ��W\u001a\u0005��+�Yf�C2�\u001eÎd�\u001e��\b��L��\u0000}\u001c�^���\u001a��?�~`�\nPj�]�5\u0007�U}Yt��m�⬱�\u0016s���WO��¼��\u001f�I\rݲ�L��G^D�#\u0002HPE*���\r\u001c�(\u0007�s��\u001d=u'fo�ka�Xe��\u0015-\u000f\u0010\u0018�q\u001b�\r�\n\u0015�J�,�JȌy[V�\u0013\u000e#�_m?\n�\u00008<�5��\u000f�\rHH\u0019n|٫*\u001eD�H.Z\u0000܏��=�鿺\u0007�����d=#z\u0003tG䖅'�<�\u0000��H��,�:���!V\r�C�\u0012��AN�ͮ\bă/�pA�n[���\u001f\u0017�\u001e�\u0000E�%��G\u00158�@Lk���C\u001a��G��\u0014�?Q.n�\u0011\u0014��u�Df$�dVH�/^#��\u0010sMW*�]�8�J�u�9��\u0012��:?��G����W��l�T��5k��\u0001�����+ᛮ��Ǘ��u\\�0�*��?l�\\yv��~G���\r\u000fI�<�i�A0�\u0013ŦXGd&���\u001c�\u0013H�HE�3A��\u0000rj�\u001a�f[wt��\t��2�pb\u0017��\u001e>�/��3?1.u\u00166��Ej�\u0013]�5���4\u0005�w�MWgbT\u0010ߴ:u�&mH L؍]|>�+\u0016\tJ\\@Y����\u001bȑ}r��QrV��M�\u0007hW�\u0011�^����<�����\u001dm���h�y��~���7J;?KR\u001f����t\u001f\u000f��\u001eXE[��.}D�#\u001d��e�C\u001e��0�P�Gxn�'&���.�%Y\u000b2:����xoӏ㜶z��ݴMn�u��+F�;�6\by\u0010?��0'��\u001ba)\u0019n�2����4.v�{Wq�����r\"7yK�\u0005�ܰ��o�&�mӫr�[�{�r\bڋ��\u001f23�Ϥ��\u0014\u0013���Ә|k���O������-v:ϰ�U�}äjA�\n��X!��PP���NQ�mH�\u001e��x�\u0000�9��8ф�Q,��M/��w~q���О�\u0006��a\u0017���q5P��@\u001d�s˿�.�eh./�J� ,�T��kV���A\\�C��N�-G%����\u000f�kIcq*J�A~\u001f\u0016�\u0001$\n\u000e�A�̘ɓ��x�\u000fF\u001d�y�B�Ɖ&��p����c�)ڸ�tA'�x������DI��Wq\u0018UgE3@�>\u0011,G��zr�z\\�K�ǩ��c���\u0016�\u0000\n9�,\u00197��b~/�STp�\u0018��\u000e@oB�I\u0005v\u0004��s���\f5\u0018���\u0011 |��y��qNXr\u000f\\\t\u0007���:��R��!\n�`\u0011~��\u001e�q\u0018�p\u000b�\u00122I@B\u001eF7h���4�v��3���k�޽���]><|Q�3\u0016,п��+�\u0000�\u0002h\u0011�os��`��]Ap��ǫiެK\t�\u0007\u0019X;G%\u000e�\u0012+�����U\fy$k���ņ\u0003yd�\u001d�Q��\u001eբ�M�(�_�E}���O2�^�1��tMF\u001b+b� oG�GW\u0012?�\"��l��k$N<\u0018�\u0018��\u0000\u0010��<}�g��ɐ����W��$�\u0000���\u0000�o�oo�H����\t5o0j�W��ޞ��!H\f�hO�k��\u0000%��az��=\"\u0000\u001f��5�\u001cg�\u0004w�qi�\u0000�>a���O2y;R�5�?]�`�\u0017�M�I\u0012�s\u0011����c���@\u0000�t��[7i���%��\u0003�q<��=�]�=&\\�x��\u00118�t<����9���[�[����,����}ڳ�e���f�\u000b\"��0�la�}���\r�.��8��k1J�&=C=�//t�K(��J�G�����0]\u0017x��n��P�\u000f\u0002+A�ф2٘\u0013�\u0014��c�\u0019\u0002\u000b�-\u001b_��tĺ�(����d��ȷ>���\u0005\n�\u00040��h�a�9������NL��̚��\ts\u0007\u0017@É\rZ�{�\u00020C\u0006)\u001a<��Ϟ\u0011��ewz��\u0016�\u000e�d� �:&�]��\u001c�\u0018�\u001c۲��1\f���.�8���\u0018�m�\u0011#��cN5�O�?�d\u000e͔��6\\9v����:s��D\r�\u001a\u001f94飡�\u0012�H�m��W���ɞ���f�r\u0014��H�\"�N�?m�]9qL���G�\fby�9�W�c���2\r�`��<)_���UOM�\u000e�Sï]늨�޿>��V��\u0006�Ǯ*�=:��\u0000u��*�o��\u0015hxR����WEs\u001aC�\\\b?��*��Ε�T��>��\u0015k��WR�:\r��O�\u0015Y�O���U�w�j\u0003���ت�I\u0012\n�$jz�L�����0�C��r�\"�\u0013G\u001a�;\u0007R\u0014(�&�\u0003l\"$�^o�����\u0016��O�i�����&x���\u001bq$\u0011�\u0000�12�#����:��\u0011�eɚF�!vܞ��v�x���iM��4�F�QN�\u0015Ez\n�#+�25�����}rK��|�vm4y���K��N��\u001e*(E�t26�*�qJҕ�� \t\u0011�!n<�\u0006��M���M\u0014p)\"��=�\u001b6F\u0011\u0012�χt6�a�-Nu\u001b�J\u0002-b1�I0\b�F�\u00042\u00155����B�{�\\�%�\u0001'�?����1\u001b��b}\u001fQW\nY����jA���͎(\u000e\u001fO2�S�z����h�M�\u001aw�n�$\u0005�S�jpJ�x��5 �/�$��O`\b��KnxG��#\\e-&8��5����\u0007��D��� \u0001��ё�*A�Oם�m<3a�l�\u001a�,r\u0004\u001a�}%�y�V�\"�����\u0011\u0014�\u0014���6p\u0002�c�\u0005�_\u001c��\u001d��\u001991�nV\rVYDC!����\u001d;�\u001a���#[-\"��)\u0019O��I!�m��Nh�\u0011\u001cWW@�l\u0002r\"\u0003�!���amCT�o9���R��&��.��\u001f\u0006\u0014|\u0018v�o�9����\u000fI����᧗����\u001eg���pi���7�TH�;��W\u0015\u001eٷ\u0003����\u0000\u0014��\u0007]�W�Dr'�k�ȿJ�-$���I8��F�[�\u000b��k�8$�oJg/��\u0014��\u001d�\r��{�/�}n(od�2�`I+AB�\u0003�Pj�똱��~a��*�9�x��݌���\u0000�^S��>���\\Xj�����Y��Ů��\u0016�\u0002MV�M7�\u000flی�����\u001f�8({��/�ը\u0003&h��\u0000\f��ƫ\"A�7�\u000f�\u000e��JuK�Na\u000b�I�՝��Ff����\u0011 n45�\\�3�f<]/o�r�\b�C��Y���u+�m٤�լ�\u000f��\u000e�*H,\u0000��8\u001e��33�,R<\\�GwH���{\u000e���\u00005Y\u0007OH�}O�\u000fj�T�n�\"���\u001f\t�X(�\u0005�'��rR�\u0003��L���{N����(�#A�žL;��M�u�}L�\u0000uA�\u0018�+��\u0006�\u0014h�ZE�\u0018��^����=3���wm�����6�r��r7`Bю�*k˰>\u001dwʘ�\u001e+\u000f\u001b�=�Q�\u000e\u000b�?/�j�r'���+��w+\u0014�\u0016y�j��T��Qh�'�ZnĚ\u0003Q�lq�\u000e�gO7�~Q����1X�A\u0016�\u000f�R�}��o�\u0019�vvJ�E�k��8�e���\u001f��.��VI\u0015�ۂm\u0011\u0004���T�SC�j\u0006�tp�}#S�#�q\u001fΦ�S\u0016s<�\u000b�S\u000b�Dn4�#�T2��M���S�d$z�k�2\u0001\u001e�\u0000'��\u0000��zy��/w\fa�!� �q´\u0003�@\u0019�cn�5\u001d��}��O�@�V�|\t�q!�^_\u0012�FԠ\u0014\u0019��$d߹����C����\u001ek�Q�Ճ\u0002\u001c\u0018��v Pҧ$ :�C'��z�>�\f�\u0006X���5�\u00106�&��9>\u0018כv)Է|��\u0017�\u001b��D���4�<]��ǟl�}���h壙��6;�d{��w{��?�@�\u0001�A����\t.�z�i�a@R\u0012�qBW�\u0003�\b\u000b�;\b�|�zq4GVO����\u0010s�\u0019\u0007�U�fR\u0015[�~���\"$LkO�clY�s�,��G\u0003J�#��M�\u001b%qP����\t���\r‰(\\!^`�R6\u0000�hB�e{\u0006�M�\u0013�\u000bV1�O\u0011#�nM\u001dE\n��E(A���\u0018�E\u0013\u0004���;=TA�Onb��U��\u0004��\u001a��\u000e��\u0010\u000e�g\fO>N\u0014�\u0016�#�,Γ\\�4{vn3���Gg]�C\u001bN�&p;\u001c�Î#�����%��?+��5u=c̟��\u0000�~\\��>���\u001a�K\u001bX�(���H���%i\u0014BR�ƼUI�;�ܒ��O�\u0019dɐ�^`��\u001eoK��1�6�6R#�8��;��y?R�\u0000)<���R�'O��\u0000�y]<1^y�ZwHd�5R��#���Kv�B��W���\u0007�\r6-��G���C���j?5�杈W�w\u000f�^���e�Zkr�/n㙩��Y�HWn<�+Z��䧧�6f\"=�FP��.�����uy��4��\\��Ֆ�;ˡ�Ǔ:��w4���\u001eY.U���BF�\u0000}�<��\"�K�[X���\u0000j�U�\u0003e�KYx�{\u001c�@��\u001e\u0011��0���\u001co�\u001d\u001f��{�\u0019.�`NJ�=��\u0000&�#\u0012\u0016�\u0018\u0002@�m�Db�\u0019�^�&T?�C�k�\u001d29�\u0000�dH�c���O/\u001a\u0003]���sa\r&i��\u0013÷GY�]�\u0004�D\u0002O1����/�s?�S�9�\u001f��̻�/K�A!���֍�\u0016��\u001d��t����h785���;G\u001dkqF`u#w��b�N�'�\u0016N\u0019\u0013��\u0017��=_�_����Ӻ���o�o+��êKoc'�t\u0018���4�!\u0013�c��\u0004L�\u0013��59罵�\u0000\u0003],1�Q�Y�\u001c��F�=i�{7۝O\u001c0v�/\u0013\u001c�q\u00006��w���yw���\u001a�\u001e\u0019!���-�[JP\":L\u0004��aN!�\u0003�q�?k�l�CńN�������k#ςDu��y=�\u0000�?���,���=SLe/�ٹ��QTsE5^\n*\b۶m����X\u00042�\f��c��\u00194\u001a�9��8�w���_����5\rB�W���{+;{G3'\u000fRi�|Q5\u0000a�P��\u0010\u0004�H\u0018�{~���)\u0013\u001c��\u0000n��+Y�\r��ND�\u001a\u001e@l9S~@f�s�*��ȝ�3/,��N�py�����\u0007�O�[�->��v�\u0001���b��c�~h\u0003˄���o��ǰ9��W����\u0010:\u0013�\u001d���j\u000f%+��;�\u0015�v�����V�\u001c�����~�U\u000f#P���׽F*�);{�Ҹ҂�����b���r�M�Z�Ss���A�k���+�&3_��\u0019\u001a�>kߧ���l?zz%�\u0017\u000b\u00023�\u0000\u0000��]}��\u000eh;\r�<�]�f�������v$uݩӑ� ��Ӂ��\u000fZ\u001f��\"}6�u\r\u0014Ly\r��ھ5���&\u0011�P\\,�!^�i��ax�4\u0013pJ\u001a�\u0006�SrI49p���A\u0002��?=�\u0014Ldl��\u001e��Z^��}G�v\u0012��4��j\u0017\u0010\u0002�����\t&�>�\u0003��ٲ�غ�.�j���\u001b\u000e��:�7��=v�Z\r1�>�9D�\u0013�ˢ��D�)\"�$�5?��5b\u0004���0;;}\u001fj�4(�C�g\t�F�\u0007�\u0006;h���#���1ƗO72]�\b<[\u000e�i��x׉؞��m���lg���1�iGc̽/N�\u0004z�\"\u0002> ����k���#}\u000b�����\u001cr\u001b��\u001a�y�\u0014� ��?�1s\u001a\u0001�Ѐdm�B��������\u0003�܎K�4\u0003����1J\u001c1�:S��t�LU\u0012�\u0015�x����qU\u00064��1W!�=����n���oj\fUL1�m�qUB~D�W��+���\u000f�i�{b���G��>g\u0015AI��@?{u\nS�E�&�2\u0002�\u0017�|�\u001b�\u001a��*\rTH�v�\u0004�򌚭. NL�\u0015��8�?�\u0013�b�\u001f�~\\Z�Fk�t��}�i\\ėk�c����\u001b���y����_��՘�\u001a.�\r�o�\u0019o\\�L|#SS�j�\u000e~ސ5��~r�~>ND;>Wyd\u0007�2�i�8<�b��B�8��O�\u001d��\u0013�j��\u000f\u001e�����\"�S\u0018��\u001b�\u0000#��\u0017�1o2�h�i�n��_�F�7����֑�Wr��<�z\u001c�'k��\u0002x�\u001a�\u0006cA�G�\u0013~��E�\u00009o��\u000e�q��\u00002\\[铨�;mF��J;�x��X�?\"A���nә��#�B��K\u0004%������|���\u0000�˯�}7�+���V��ݧ�\u0017�W\u0006�\t���5 \u0006\u000b�\u0015�ͨ���,��\u001d�/��\u001c�\fA\u001d�{�A�\u00009\u0003�+ˏ�\u000f2����+��i��\u000f2�곯?�@&vxe�_��h���4�c6�[�X2\u0018���Y�����ǡ\u000eL�X�8�h\u0001�Ͻ��E����\"�PM\"���BS<�<1��b��w��u=��>�K\f���H�[o�^gU����bd6<��\u0000s��\u000bk�'��w<^�Ա�\f\u0011\u001fQ˷R�`\u0014\u0001ۦt��Mi�-D�D`,���.�]���xi�Fs�����\u001f4j���\u001b/Q�\b�+�\u0003\u0010�+�q��W�\u0006i3O��>��݁G͈O�ܵ�&i\u0004\u0016\u0011���\u0018�\u0011�\u001e�\u001b�'��ț��\u0019F�����������\u0015�\u0000�޽��f�!\n�Ŷ�5ڛ{��\u0018A#u�ꊂj�O���:fDO\u0010�Jk�=d�ѵ|_|\u0004�ϒ��%d=+�ܑ�{u�,���J�\u0004��x�\u0002�IRw�6G��'�jq4a�;\u0018����\u0000L�\u0007�\n�ǯ�]�]\u0014��&��?��$\r��lԯ\"\u001b�m�/n��\u0012z!�~�S5k��;}4�W���\u001f蟹�\t�\u0004����\u00007�P_y���K\"���\u000e�����:��f�ݳܻ2\u0006\u001d��u�a��>5��jr\u0011�㗼n^o>�m�]�ssx��F1���\n�T\u000eGB�m�h\u0013\u0018�\u001b���\u001f��Y\r���W�\f�j�\u00141񚎨\t�\u0011\u0011\u0016�P�\u001dwl��GNh����� ��pJ��\u0012D.a^M+�<��r�d��r d���\u0004Ȁ,rx�������ꚝ��j�\\7\u0012\u001e7Sr1��\" �\u0016��\"(\u001b\u000e�ff,q�\u001b\u0013��x�,��%o�\u001f7�s�u\u001b�gx�I\u001cr0 �\u0005&S0\u0001�\u001f��\u0001\\͎B\u0007\u0010\u0017�@�y�\u0000\u0017^l�M�����\u001e�m���f��\u0000�\u0019&�x�\u0012�X�u\u0004�W'������\bX\u0015l�4�\u0007Eex��g1�0�<��2r�C�-h+ܚ\u0011L�\u001c�A�\r9c�\\1\u0007m�\u0000������mm��`�KK�b�[U�\u0014\b��\b�\u001c�'f\u0014���!��)� �ϟ�FXf#��\u0011��;��_j�S�u42�l��s��L�F�\u0015�0'��٫Ṻ́�%�ͧØQ\u0000�9_�w�j~S�Hg��on X��)X�II�!�����785�'� \u0006��S�Ќ`�\u0019 \u000e������\u0000��\\����[�B�='^����zz��k���MN�\u0000�[{���@�Z\\\u0007.I\r)�\u000b�<�����5>\u0004a��ٖ�Q�\u000fK�\u0007������,|��{\u000b�a��\u001d7Q�Ts�T[�\u0007��\u0015�MU��T��\b�\u0005��Ө=m���f��z��ҟ�o���(K\u001f=�\u0013z�zƱgo/Pl,�=\u0003\"�\u00011�d5Ol��u>\u001fj�C�H\u001f�޾OI=1�٣7�x��ȟ�'�u���k*��e�kV\rO�ւ��;�\u001e�Lxe�u�9DY���ѵjzNZ��Ƅ0?�mB���S�\u0010i���A\u001d�A���h�ߘZ�q\u000b��mZ4;\u0012�[i#\u00145�\u0001���8����%//���:fR\u0000���?7��&Y�E~\\�1M�j+Opk�f�\f��\u000e�>���r�?t�\u0013|�.��Y�14F\u0016�\u0012�]�fM���} M7>��L����\u001c\u0010��B\u0003�wy�P�]M�\u0000c~f�_�G�>mՠ�4��� S�4m_M\u0015T\u0000Ŷ*+��bTO����\u001f\u001d���\u0000�\u001f�\u0010��z�ܓ.�p��\u0002jjN��\u0019^!��\u000e�\u0005و�x��?xF���p\bj\u001a7�49�,�mK�\u001b�\u0011�w˲8p��[�su<4�K�\u000f�cʵ��\u001d,e��\"@���|\t����\t\f3��@�����1b?�_�\u001f5��\\�?B��\u0017\u0002[�{��Yx$Q8شJ~2�S�\\���팺\\G\u001d��C�:\u0000z����=�ٸ�\u0019���T���eL�w�'����%m���);�$�N�N�^O���0���\u001d�\u0016G\"���c� hh\u000fݐ������:�����d,�M\u001b�~\u0010\u001b��k�+߮m�S�=�&�\u0012�LFč��\u001eS�\u000f�i\u000b4�\u000b�\u001f�\u0018+�tbF�j��ٸ�G`b<�N+7���}k�+�F�|�g?�7�\u001d?��\t�W\u0000%6�d\u001a����>\u001c�l�1��E����O�8�X��䩣\u0014u��J�*\\7�^,*H��w�mF�~N�06j�\u001f�~\u001e�\u0000�F�p�\u001eaա)�\u001eva��\tcZ\u001e���<_W�N8��+�.!�o��\u0001��K\u0004�*��(x�5\nG�J\r�\u001d+޹���\u001eA�C$d/���i��\"$ օH��4\u001c�W��H�}\\�O}�<�\\�u=r�\u0005��L��I\u0000\u001e �V'���}8{?�g��CP7�$K�'��s���N\b�4���D\\}��yz�|���\u0012$F�'�\u001aִ`Fԣ\u00023�a�\u0018�\u001d�@ �\u001eO\u0019�V\u000f>H�\u0012�OA�szi\u000b�13\u0002Y���SԂ�e�$��r-r\u0000�gvz�\u0011\u0018�)0�j�\u0005)ӭh)���\u0013�o��d�\f�\u00161��x��\u0000��v�Մ��%�����P:ԛ[��\u0006u=��x\u0012�Q?�:�^\u0019q��\u0010~G�<�D�\r�op����y\u001a�'�q�b2��Y!�,l\u0006��Ej����m�V�JR��7�lŔ�N\\GT�L���\u0010ȪŐ\u0015 \u0010K\u0000jjv�\u000b��\u0011*69��zU��T~2H�Ebw\u0015\r�]��>��\t���d�կ�#�d2=!u%�kB\u0006�\u0015�\u0001����m��˧������Z<\u001es���|�~�5�����>�/\u0002\u000b{]CV�Ԗ�}NAf��:-\rENj51��A��\u0010\u0011�s?\u0007*38t\u001e\u0010�e!\r�m��\u0000���e�UԼ�cyvC?�f�R�(�Q��\u001f\r\u0000?:e��\u0019#bU\u001fw�p� #q�\u0011�۴?��{�\u0018c�\u000f$i���I���\"�zj\fPIE\u001f��(�&d\"\u000f\u0011'��G�Ÿ���\u0000���~Y�wG�E�?>����+$��ZjZ��A\u0001\u000f�\"Ck\bw\u0000uj\f���~��N\u001e/;q��}\u0002G���餂mc�q���+=o�K�7�\u00171�)t�+X�:\u0014S�\b*M��j7\u0011�\u0002�(��A��uя\u001f\u000e�\u0018��̺�\u001c�\u0000g&�\n\u001fu��>�����\u0000�v�^�i�s�\u0017\\���$�\u0006��뿙>f:�Q|B\u000b�V�;+X�֯\u0018]�S5��\u001c�1��\u0003�#�\u000e8�}G��t�L���\u0007���N��[�>UO���\u001f?�\u0005������\u0015���/����_׼�1��c�)\u0016f�ULNE\u0001\u0015�g\u0016oiu�1��)�v<&#�;<��\u0003D\u0004���%!b�ϗ$\u0006���:�Pˬh?��\u0000�������i��1���[w6��I�5\u0014&��0vohg�t��~�\u0004�}��i���}6�O�\u0003�U�=��N[�ʖf�\u001d\u0007�+�Ȧ�X�\\�~^�� ��s��qrY-��B�pٛ\u000fep�L��rH�\u0000:aǗ����Ť���lM�s�ͬ��/���Onc��.*���H#H�*�h�\n\u0002��S1��\u001f��O\t��ND����^$8�[�/j�}K�_�\u0000?\u0005�\"���\\���3�D�Ep��(a%\u0000���+��K�=��(�@\t{�����w��98%q=�������?��\u0007��mM�;�3sX�s\u0014v�1��H�\u0002A1?�^��'[�ηC>\u001cS�v�]���V���ڸq�0��Q��s�}#W�޷l%�gR�\u0012I\u0014n��N���+��\u0006l:�<�8\u0007�ӵœO�7�o&I��I5� !#@����zx\f�v�#\u001c\"z�˸�\u0019f���\u001a\u001f\u0013�v���ޞ\u0015��;�Vf��\u0007���PR7����\n�\u0014{څ������SD�=�\u0000��\u0015A��ޝk^���C�T��)܊\u000f\u0013���D�c�\u00075I/m���R{�s��2q�9r\r3�`Ǵ�-C�\u0000\u001ao�}�9`���h=���l�\u001c�ݪ�=E�����X4yOB�.��\u001ehi��\u001ck���O�M�g.�g��@��{j5��\u001f�K����qo��\rZv���wи�����6�_�z^����E\\\u0006\u0003c�\u001au�s#\u001fg�\u0019\u0003��g�I�\u0010�8�[�1X�S�\u0010�T�@'�z�̈�h�\\�)���:o�K.���)\rc#ePx��\u0007�5̬Z8��i���\u0013�@syw��0�Е�'���1F�\u0019���+(\u001b�+��\u000ff�?�o\u000e<�o�{fZC�D�i\u001a\u0000oj^F�H��׌\u0017�˽���\u001aI$�\u001a�'�B�\u001c��m��f1�\u0011�\u001d��]��\u0019x@FS�N]L�n�F��]��[��q��5�\t�h\u000el\u0019cRؽLtڬ\u00198�ꏽ��5�MJ\u0000�l���:��\b��2�\u0003��\u001c�\u0006mDr� y���V���5��X\u0018�\u001d\\P����k�\u000f\u0011�$�u\u001dDe��F�܏�l�\rV�0�\u0001���A\u0006�$N�� ��;�\u0007Ϟb�j����\u00021�i�\r�\u0000ރ�mp���'C��c9�\\t)�^N�V�!���G�һ�z\nW�1s�$����d\u0011�<^����~�e�؅�,�((C���w\u0007}�_(�2��C��\\y��������K�k�{-�,r\u0002Y\u0007U\fw�3'O�\u0013�=�n���j�V1�|���\u001e�M�d��\u0019 ��\u001b�޲\u001eU\b\u000fS\\��S����C�dz�\f�O�1;��6_)���1'�\u0012(TP;\u0001@v\u001d���\u001f[.nN�ɟ��1;�\u001b�\u0019�\n�D4=h?ʦ�9��18�\u001eE�jqdÓ�\u001fPz\u0017��E�\u001fU��iʻ�����\r^#?��w\u001d��c��ʞ��\\(���i*�~\u001f�i51�{����\f�\f�\u001f�v뷷њ�~\u001a���\u0014�����X�\bH9R���u�qTz2�\u0015#�oኡ�`;��V���\u0012U�*\u0007Θ��2\u0011���G\\UG���C���p�O%cZϚ�t��m��n\b��k\u0003���Q@\u000f����!�\u0012��\u0000���Տ�\u0006��\u001e�[��yn+\u0018[�˩ܬOdzzQ�a����L���~\u0018�䐏ٹD��1��;?�\u0017��ޥ��jj���-/O\u000f^Io�\u001e\u0003�9\u0015;{eS�v�_�q�\u000b�L?�t\u0010ۆr��\u001c���\u0017��[�M#��,�\u0000��\u0014�Rjr���(>>�\u0012|�}�?�zxu�\u000f�\u0019�!/�Z_6����\u001bP��M�����^�JF�\u00001��kd}�#�����SY�����\u001aO/��DyK�a���5��+F�F\u0003����\u0000�mD\r�>3�c!��e��#[��[�0���?΋�\u0012\b�#4R�\u001b�Ԛ8����F#.j;d'�\u001d���\u0006\"oc��\u001b�n���fOu\u000f��\u000f�o���ai���%��@\u0016��9�i����I�S-��޶p#>\\B~BG�5O�\fQ��\u0011���:1{���۝V�ꚟ�M͋�\u0004Ri:|j�A��4���\u001b�Ӷfc�V|5<��X~��8�=���a\u0000<�|����\u00008Y�[�A��槗f�\u0014��k�mլҠ�\u000b=��\u0000A�H\u0015\u001d�2�쮷����\u0000�\f~�q��N {\u0001uП��\u000b���ߚ<�h�_�ߞ�Y�����Rj\r�}:��X���վ�c6�a��i�����\u0006�W\u0007�\u000e���d�\b\u0013����^@�o߷����\u001d\u0011#\u0014@\u0019z\u0019\u001d�T/�w��\u0000�����_���Ҽ����s�v}_��M��7��T5��s[q!\u0003n\b��\u0006l�;����d9N/\u0017RO\u0011�C�o���Et\u0002\"�\r_ok5P1�Sឃ�>C��?�O���t�n�K�ZkK\u0019/��\u0010��(G�!�8�\u0000U\u0015\u0002��it�ɖ\u0010���^O'��dÇ.HK�\u0018�W��|߭�ak�^�TM\"4���\r�X�u\u001b\b�x�\u0000�`\u000b\u0000vT\u0015=p�I�\u000fe�Όo�'wp�\u0017���=_m��;B{a�/~`�m�y\u001b�\u000fz}�-\u000e{�ŔH\u0012�ݹ:5y� ����E�?,��܏���49\u000elJ�ťm� ���\n�ɪwi\u001a�,݇\\���\u001b\"7����������ؕR��\u0002:�\u001a�f\u0019�����K0zo�6����BX���?\u001f���Z*\u0019(E~b�����@V�P�,�To�ݓ��I\b�߷~��\u0000k \u0004��^���\u001d��\u0000���o�,#�6\\\u0014�F�\u000b\n�����9V�h;���e��A�Vޝ�\u0000�]\u0003�ь�s��ԉI�A�>f����s�҆��G��\u001e`��\b\u0010�:\u0006���^����up��\u0011�*��̇x��ߥx�\u0001��bO�\u0012�M��\f�s�L���w���\u00155f{뉧�T\n���\u0003���\u001f��\u001e\u0011�\u0018�\u001f�@|d܉�>�\u0012~{�v֏icqu4�\u0007��FcψzI!\u0000�9�)�2D�\u0003��4\fG̈́��Zn�3���'�\\F]�\u000f$��J\u0002��Sͩ�\u0000́�S=��ɵ|��u��.��o��P�����׋�x-��X���\"қ\u001e����.*c�+�}\u0005�\u000f̿)��\u001b����ʳ�\\@n��e��)�ȰW��(�ÿ�NB�@�@�z���=��V��en�\u001bE�$j���3�Ś��R�O�\u000e\u0019\b�adJ�\u001c��f��s���cR���1R�H(Hۉ����[ԋ\u0019\u0019\u000b�\u000f��5O'^���7���+�\u001d��� �3\u00133|L\n\u0012jN���w�\"�lfe|�\"|��[�cX��\u0019n�,��\u001c�)d��������\u0014�v̙JY\"A;\u0010�\\D���6�{\u001f�/��+�rW�[O�$_�w�Ѣ�y�ڶ�ny�kx\u0017Ⳓ�A��=S�ym�\u0001�[���Oic���*�#�\u000eu��/h�\u001f\u001e��Nh�`\u001a?�\u0007��[�u�R��\u0016��\u000eǓ���VnmX�g�\\ӯ�`��䄯p~�{��S��\u0002A\u001f{�\u000f�mN��ʫ&��\u0016�\u0012_G\f�\u0004!�]T\u0004���D�(\u000bv\u001b�Χ���Z�\u001cd\u001c�6<��_�2D�\u0016%\u0018qo�]}�\u001f\u001a�{yV��G�^�\u0000\u000b�G�7B� Ќ��Ŭ�����Ϻ��oo)�\u001bc��g�ŗ\u0006��.�����;�=6|f6@�\"\b\u0007�5��\u001e����-���\u0006�\\���.�kl�u��,���C�7���ۋ�U���\u001d��q^�g;��d�j��+1�C^Q��WM�E\u0018��Lx�\u0013\u0018D\n�H�|�\u000f��\u001e�u�{��-}5%H��F�Q��\u000f�)���U \u0004�]\u000e�\u001cg���-t�5���\u0005�\u0016��а���P��0���b:�Zf�M�\u0019HǨ L�\u0007���\u0017��vl�D�ü\u00071ֻǗx��y'���\u0000�\u000e��\u00008��h}FCwi\u0005�\u001f��׹�\u0005wڣ4>�c8���d+��������=��#�[�_�������m}|Ϭ�,\u001eI��\u0000�f\f\u000e�{\u000f\u0016������F��q�5���9\u0001�d��&��?@�ޛ�-V->H�q���^B����=�n�}��6�7��,mS�v���E\fH\u0019b�_�\u0015\u001d6%w\u001e9_h�93��UN�E��?�$��}K�9|��n�s\u0011�+\u0000�D\u0010�j�\u0000�Q�u�њ|�Go���.\u0001�TA����p����5U��K��8d\u0011�v����a��w&I�\u0015\u001e�����\u0006\u001c|�\u0000��O7w�p\u000f\u0012c�\u0003c�o�t�~��y�F�\u0000�v���'��\u001bX�/,�R���(\u0002��ֽy\u0011��\f�n${ˆ��f��{O\u000fg��@\b�u�\n�y��I���\u001a�\t��\r���)�_y�R�<թk�Ħk�JS1\u000e��\b�ق-�\u000b\u00189��OV%�!��;���}\u0003O�\u001e�\u0003\u000e!X�H\u001f��#Xz�%�?w0�2F]@b\t\r���^����\u000b>:\u0014\nq��I\b\u000b\u0018���'�#�\u00126̡R���u�/B�1\u0006Y�B��ɪ�J\b���\u0007�3Y��\u001b7c�\u0013���& �W�\u0000~\u001e�;\u0012\u0018�s�k�r�|V��uA'\u0019\b\u001dJ��Em�N�\u001f�)L�I��`���(*\u0019x�իƢ�7~�#!�l�H�����\u0000\u001b4d�\u000f�'v#�\u001fj�L��\u001c\\%ω���^�M\u001f��K� x�^�~�|se���1��?#k��m�$Z\u0004\u0000�*�\u0014\u0007�:1>,`�t�\"D\u000e��#�>g����%T��t�����\u0019��*\u000f�jrTr�����b�h����C�cX��Ut�f�%(�\u0005\u0018�\t\fO&\f�b{��\f��b��u0�[P?o��|s�\u00009s�7��E\u0019<��p*\u001a�rz֤��C�n\u001c�GN���_�y?#|�Y&�q�Q��T\u0002ʼn\u0002����>�Q�'���g`p��y&��y�T\u0005�B��\u0013�;��\fŕp��7\u0011 �;O���h�hP�\fjMj�\r+��0.ɐ��✉�z>\r����1����r\u0012�ڴ���2��z��+�!ҭ\u001b7%\u001d��v&�S��O3s���N�]���r�TI�ކ�5����9�f)\u001d�\u0016o�v`�\u0005)�q�&-E\u001a���b���-�����\u0003U\u0001>���\u0000\u0005���\u001cd\u0018�q'w�_�\t\u0016���� ��9\u0017����\u0000J��q؍�}�6΃�r\u000fX\u001di�e��=/�\u0005�u�4�vj��\u001f\u0002��X\u001d��*\u0006l�O&�F&\u0000u\u0001���:4d�Q�&\u0001���2��\u000e��\u001aR\u0015�7'\u0019\u0000�y7k��y+̐@%EyP�H\"�\u0015{dbjM�#��k=p�J�]�G-VPkA��\u0019|e���P���}\u0006D�� �f��lH�˄���a�g˗���ϐ��?X�ޭ���i�v�gp\b\f�j��p\u0010����\u001dFk���`�)\u0000\t�\u0004_#�n�M�@٨J`y���G��'�p��\u001eh����|���e�����B��w\u0016\u0011A\fG�nX�-;�\u0015^��ʻ3]�יx��6�����=\u0016=\f�\u0011����}�rտ� |�\u0000�����?&4=W�\u001a��\u001b�bM���6�]ֵJ\u001b}#N�~&i\u00181^��\f��><\u0013\u0010�\u001f\u0017Y�\u0001[~�Q�\u0014\f\t�8�Ud�����X�\u0000�6�#�O���\u0000�\u001a���w�\u0007�|�{��l����o�/���e�\\7)4Q�jpϫ���\u0018��(�M�\u001a��m�I۞\u00169�'\u000eL���z\u001e}/�s���\u001d�2J8}X�\u0007��\u0001=@�e���?O���i�\u00008E�]\u001d��_�\u0000�s��LZ�����\u000f2�^q�,��yk\u0000,z���\u0019�v���y3�\u000e܁�>Ɯ��\u001e\r����{$��d\u0007�\u001f���?��<��o6�$�^'���+-\u001eMG�CQ��+)o��+մ���4i$��/�/L���'�:]\u001eMg����\b�T����l\u0013�{\b�ƃ&lx;KC�ˊR\u0011&&Bb�\u0016(�ϧw'�7����\u00008���'[yS��V�\u000f�,m��M�S����6r\u0011H4�ۅ�Q��>@��\u0018.yF�/�Z�Y�h�N���G\u000f\u0011�\u0003c�{�f.��i|\rh���a�I��M�>/���\u001f�\u0012�k�m?-8,4I�ݥ�I�u\u0005{\u001b��\u0014��v\u0002:�\u0002�V����npC���Sˎ#��\u000fx��כ�پ�������\u001eRv��h��`���\u0000�\u0011\"�Q�n4}+�\u001aY�TjZl��C�u��˓\u001a\u0001Zo�+SL�=�\bn\\Qڹr�\u001d�7_�6���\u0010�HҬ\u0012���� \u0013۶ٝ����\u0003\u0000\u0005�N�U�͏ �+�O�7���w�uĮ�\u0003�\u0018�Ҥ\u001d��◇0.�f2e�Ɉ�!�Z֩�Z�:���¥jX{}#6xa�@\u0012\u001d.�6�\u0017�\u001e�n\u001f��1�$��8u\u000b�\u0016�o�O|�=���R\u001c�\b�ֳ\u0017�cf��ƿ��wX�jI$S��|e��\u0003dǶ�#R����}��v��\"oH�����.��y;;�]\u001a.F���y\u0018\u0012\ro�U����y����\u0010}+G/\u000f\u001aU.'j/\"�\u001b�L��#��4���Os�;�]\u000eYv�mGW��ฏ�\u0013׻��J�Xi��-��\u0019\u0006R\u0013��\u001e\u0000\u0013�.���FF���(��\u0002 (\u001d�w�dirX�;\n\u0012j?\u0001�b\u001d\u0016I�9�㴰��)E��\u0015���p\u001c~�*\u000bS����\b����$��9\u001fܚ{\u0007���<ӧ�@d`e,{��x���R��n&) '�n���׾m?*.�..��O')J�\u0019V��\b\u0019���s\u0012\u0004�l\u001f�؂;�Yt�a����2d6����\u0000(y�+�S\u0018p$J\u0010+��\\�j0�\u001bw�]LrD�}OzЯ�֋Ȇ!w\u0004��>X�/7����.t��˖7no#�=Vݘ(��ާ�9,z�G�s-\u0019�X��\u001a#sͫKX#J�\u0015^4�\u0014�Sl�R5a�q��ty\u000f��r���F���q��]��A��\u001eK�\u0005�x���c�Ds'e;]\u0006c\u001cn%\u0010� �4\u0015>?Er�e\u0002�Dtr�\u0012�\u0011ٙ�A4�D�7��(@?��5y�K7 �\u001a,�MF^�\u0006Y\u001e�NʫO�ڹ�t1\u0003wf;^R4\"ԗs\\���׸���|�ZX\r��`�,�q\u0010�Mi�\u001a�\u0017�O`£��4�3?��#�-�\u001d�\u0007�\r�\u0012[��\u0017Ἁ����\u001a�\fž����yq��\br��\u001aB\u0007\u001cd���PJ�s\u0000�܍z��\u0001�GG��U)c��e-v�\u000b\u0017j�\u0015�&K�U�q\u001c\u0000(\u001eŷ'2�vf�G�>R|�+�q2��1��~e_��m;��&���͞-\f!�������,��Cɱ��u=>�5�\u0000>���Vջ�uR��\u001bCI��R*{�V�%��%\u001cW�rc,�'�\u0018����'�\u0006�~5�'���0�G�\u0012MA��������r��\u000emR�OT\u001b�R��\u001e\\kN�\u0011��F\b���'Pb�íK*#�T�JҞ?q�\u001d�[$�}5~����Ol[�j\u0001Pv���Ӱ9h�F^��k�\u0013[�3y�n��\u0019*�\u001a/ \t#���\\�i#\u0003�٦Z�d\u0017\u0013�\u0014��m nL�ԫ.㉭\r\u000eْ0\u0000z8gVd7%����=\u0017\u000eį �Z��\u001f�\u0004Ԛe��x��\\��G\u001f��xg�M�k7�9*�x�\u001f�]wF�Z\u0011�M $�N��&\b۝<�D���\u001d������xt�\t���Vf\b�����F��\u0014��\u00185�\u0005g�~�_�r\u001e�(\u0007�:��]�\u0005\"=��>\u001a�ڒA�a�{g-\":=�ۛ\u0017}j�\nF\u0012YHj��B\u0007\u001a� \u0002X�•��\b\u001b��l7�����v�Xy�\u000f;y\u0017C�\t\rpm���7)wj=)k�ȭ~G13\n��\u001f�@\u0016�\u0013(���~-���@�r%\r(W���}$ȁ�2��\rCS���@��G%{�\u0000O�\u0007&W\\�L���x�t��Ưލ�\b�m������;�rS�m\u0005圱~�\u0012Tw�\u0019\t�\u0015�3Dֺ���\u0015j|�z��l�\f���%�z\u001e�ܡO���2\u0005\u001emG�\u001eo?���\u001ag��\u0005�L��\\y�����6�,\nE(jZZ`0� ?�.1��.>�\\\u001a<�=0���,�U�3\\�����t�x}zl�HԪ\u0006$~�CAǶ{�8�\u0012���D_0)��\u0000���7���yo˱J\u001aWhB�\u0007i\u0003\n�f��\u0011V�~�ّ��g��1�LH\u0000\u000e#܅�?��䶱�\u001a�1����ل\r\"7��zr\u0011�O~M�''\t\u001c\u001f��`!��]����f��\u000b�F9.��/Q��k\u0014q0r\u0014\u001f��qZw>�I�O�F\u0007vQ�:��7��^^�l.'�ԣ���n��쭥\u0006N\u0012�Z\"�P��@$�Q�\u0010�i�\u0000,����2͏\u0010&d\u0000?\u0003�!a��򥰴{�v+[�x�&Xfu�H@&'m�8\u0002��\u0015�A��#�\u0003=��:�2��9^â+�Wu�^�Ѽ�\u0004�J\u0019-d��c\u001f\u001f�졕��ң�]\u000e�ɹ�����=^2c\bJ�=A�GrK}�\u00009\u001f�Igqk�^�ws'$�̺Ep\u0018���ؤ�)V2A�\u0011�s+\u001fdd�G\r�V����;C\u001e8K��� �=�S\u0013�����v����XuF������Κ��\u0016�J��(��PG�Ѕ?d�͹�|ߖ����!���S���w�\u0015\u001f��/�/������ď�{��\u0000:�:������\u0005ޯ�w��k\u0014�y~�e�\\��w�۩�G�6��9[NQ�\u0000t,*G��\u0003�?dkt\u0018�#]�\u0018�J\u0011���].$�A�.�ڞ7����\u001cz��4q2�)��CG1\u001a�'\u001e��G~W^��\u0000�L�\u0000����\u00005��e�]cͶm�-.\u000bX�׾�\u0012��� \u0016�^I}6��\u000e\u000e�w��9����\f���:�.3�\u0019� \u0003Q>^G���������ϓ�*\u0000ny�w�x���/�<������_Ήo!�;�iג4\u0012�n}k\u0014gnJA\f�F���\u0016#\u000e����D\u000f\b�]_#��ω��e��XCk ��G��X�󐷚?�_���n\u000e���0i�\tt�Q]5-Ml��\u0014�5uP�o��G�\u001d\u000e�v��.=�e���@��7���ϛE�\u0004k�\u0011���j��\u001c�\u0012򗞟����^�䷝�Ѯ\u0006���E��qu\u001d��M\u001d��fI�څ�'�z\u001c�}���\u001d���ɦ�\u0007,x�A�_��{�\u0000f�Y�vl���\"pʄ�������\u001f������+�\u0011Q\u001ey\u001b�_\tI��_j�C\n��3�r>\u0018��7!��\u001f�:<�5-sM��m.i�j��m���Iڈ+R\rE3/��]�Ȉ���\u0000����\u0000<<�y�գ��\u0000��T�i6��闞n�\u00125���A��6�{j�y�2�(\b\n�5Wa���\u0016��t\u0018��\u000f\u0010q\u001e�\u0003�ǐ�ۅ���;\u001f����8�\u0004��J�\u0007�\"\\�R\u001fV�[�'G򖉣�c�v���.�n��\n/\u0006\u0010 4�\u0010\u000f�<�9�\u001a�Ĝ�����\u0018���EDw~;���fˬ��Q���\"O㿿��\u001f�:��z{�a\u001c�3�\u0005R$�UX�\t\u0001\u0019��zg1�����\u0012��?+�\u0000�#5��v�L\u001aJ���J�g��\u000e�)?\u0002ׯ�h�f\u0004�\u001eoG�Ә�4\u0007\u0017>+����ŏ#\u000f=~s�2j����X[�>=�\u001e0��`d,\u0010�_ʳ�֟\u0017�\u000b��\n�ڥ:\u001alh<3_������kٖ@��P1PA\u0000\u001a�SZ��9o�\u0006�_j 7d�s�Q\u0011�\u0005`h懍?h\n}�GL�k$Hs��E�l�B0�\u001f�\u0014\u0015\u0005j\u001cq��V�v;S4\u0019nܼd]$�W��hJ�J�\u000f�\u0007��T.���+�d�<�\u0006!�]\u001a8C�T���\u001b�,\t\u0014�\f�'$�\u0002���\u001a��3��\u00107\u0000QO򍺒\u0007\\Ɛ\u0000��D��:]�\u0019��AYG_�\u0003��x�L��hߛ)n+���\u0000$��,�\u0015�P�Ð޴�GN��gE�\\X���\n�H��]'�R[�FRibj�8�@\u0005��M<3\u000bP\u0001ݿn\u000f��S�qs�\u00061�Gauq\rլ�Cnd�F��\u0012��D���$x��E!8Q7/�/'K��\u0012\u000f@N���O��\u0015u�.N�\u0003\",'��i�\nh\u0007c��g�=y�BDa�n��P�;�ʱk\u001dR�1X�\u001d�iU*\r8��̌ƔHX\u001e��\u000f\r�\u001awb� I \u0012jۑ�A�9,\nvX�s!3�\fFG\u0003�\n�H\u001b�n�w;��#}�7'\u001c�|%�\u00009/���g6�d�=KL���\\&�'��U\u0004nQ��ƹ�vfC\n���Ӫ�2I����_3yg�Q�VP_\u0011��9E��\u001a\u001fN�\u000f�Tdb\n�5\"����N 'ר�u��8��\u0017U�~��iZ���\u0016��^h�� ��)�2�j2c4\u000e�\u000e\\Q\u0006�㽒��\u000f�z]���\u00123�\u0013P�_�.��X�\u000f�S�\u0007gj�\u0019\u001bU8y�G�k�C�\u0007ZXe��iJ����\f\u001bw\r\f�FCt5\u0000\r�gW2%\u0000G2\u001d\u001e\u000fD�g��V�� \u001c4�X\u0004d P5?�)�Nx��N-�V\r^(Evo��Q����(�,��{'���D/�̰�G\u001e\"�k�Err�\u0003�ɍ_z�V�7�T�\"���M��mᒌ�q͖H\u0001���=\u001f�P�i�f�Z<���ei\u0015桭�e�̺T\u0011���#�\u0012^3\u0004�~�\\��\u0007�\u0018������i3�^y1��\u0017�\u001c�S�\u000b��q���\u001a�M����������\u0016�h:\u0014�G�?2���D�y\u0005`�Ԩ�'-!$�^�t�Z�ÌxZX� \\��^g����ЌO\u0016C�j\tۺ��\u0016_z�\u0016��\u001f�q����c�����^U��׋a忮��3�{�0y�{[�OT�%j�K'\u0011]�\r��ў��\u0004\u0004\u000e�I6{��\u0000s���Y���P�����%�\u001eQ�\u0000����Д�^e�O��饣\u0019nl�=\u0003��>�ʼy�g�a��*m�H\u001b�6S���O\u0014\u0006|3;qBD~���\u00185�&\u0004��\u0003�L\to�\u0007��\u0015?�+�\u0000�\u0016�� �\u0000���7�\u001f/�\u0014T3J<��{OU�\u0016x�-^��0\u0006�eh|3/\u000e�_�p�v�0\u001dң��G��͇NI��K�B;\u00128���\tl;����^���\u001a|���J�{�0C4�p����C�WZbF\u0003,�ͩ�]6�#a�H_�����.��`��L�g�\u000e\\1�d|�@���\u001aS�Ř~N\u0010����\u001cD�w�����q��G���r��r\u001f˟͋{}3Κ}��zy��#�_Zn-/%;\u0014�4��ُ|�\u001e������sڝ�O�\u0007��=k˸>�ٚ�\u001fnvo�i�˸�\u001dc{_��[���r��q��\u0003�q��mZ\u000bI��\u0000#M;\\Yk�tSMo\fM���\u0007)-[���W�zw����;F#\u001e��z�*W���=��KU��1\u001e.��\u0012\u001f��l��O���\u0000=�>��y3�#U�d��6�szچ�r\u0010��}:��81��a�Ojv'����1�b��\u001c����n��\rg�=�0t�2c��\u0013�z�2���-�w��.-@��~i�\\�_^\u0018�?�|�z�l��\u0005y��p�eq-w*�Mzg�v��\f�i.}���1^��8��\u0000:��������S� v��\u0019%�X�\u0001���$��ay\u0017���q��\u000e\u0018���j\u00167�0W���8�/KO���c\u0014�t\u001459罡�^�vy>$1O\u0010�(ȑ����h;k��@\u000f\u000eS��\u0000�8�Qz�����H�_Zz��D�g�\u0019�+FI#-BP'q�\f��\u0007l�FǦ�o�\u0017fs�|c��;|��<ţ^0�����R�}�C>�U�^��c�\u000e@83K��ш�\t�,#���o/݋�8��>8�X��\u0010�o�L�;Z\u001e\u001c�\u000e�^��f$'�� }��\u0014i��\u0014�\u0019�\u0018�]Գ�>Hiu\u000bp\r\u001c\u001fm��\u0000\n�$0��<���$��_��\u0004�\u0002��5�'/��s>�\u0017'ib��v+{� �g�Z\u001e�����3��������9�\u000fHa׺�rf��w�V�ε͆-0�\u0003�ͬ��M�}[W�t��H��q�?�sk�O\u0018�F�Q����\f9��.VHZf�|%���O�l\u0004q�\u0002�\f�Nťf�R`x��~��ޔ�'/\u00191\u0007\u001f��Ӓ�+mA%V5�D~@rj\u0012\u000fc�\\92@���\u001c3q_*���]6���S�^ƫt\u0014�b\u0005K\u0001�\u000f\u0013ᚙ喛(�\u0013�w8�CY�������R_�_P��u\n�D�m��!�=)]�\\�W���ˏ�n�h�]\u0016S�����2�2yf�V�ׄ)i\u0010� Wz}�1�ډ�<2�����8�|��O#^F%�щ\u0015�B�ӹ���[\u0010E�����E\u0000�\u0007�\u001f͗�V��n�Apŀ� �ǽ\u001b�z\u000fa�~\u001d||yUw>I�?l�쌿��'��\u0006#�/2y�Tվ�\u0015�����n����\u001b\u0011ʍ��x\u001c��ƗK���DN@6\u0014�����uZ�\u001e9\f2>���7�����J����\u0018�\u001eI���%>)\u001d��'<{�rNYe)�Q/�vN,Q��\u0018�#���y�i\u000b\b����;\u0000\u0006�}��N\u001b�ؽ�,�(\u000b�A^yB�T���db[��O�13���mN;���\u0000(\u0005\u0014���9����:}Na�'\u001c�G�%�ጐ:r\u001e\u001e\u001fF\\!\u0018�\u0016�fe��DB�W�&>'}�ֵ��s�kjn�\tu;'���\u0007~�>\u001f>�0�.#���P�o��n��{��aG#ֽ�I\u001d\t�'\u001f�\u000eDdF�0{� Nr�&#d\u001f�+�'�y�\u0006�c�Z��1��8��EI��\u001f\u0003�e��\u000eǛ�<�R+�Y��'�\t4�e�\u0010��\u001eY��,��iM\tj\u000e�Z\u000f��\bD{��C^�Ԍ�\u0002�q\u0003���W�2{|Z̥t6i�\u0005���4\u001d\u0003\u000e���ڹ!\u0003/r��ʒ��X��d\u001f\u0010���MY\u0019\u0001IZJr\u0014�-����P1�a�Ńa3[�i�22;tF<9{)�A��\u0014Cp�%ϚS��9W}���H���''\u000ea� #�<�P�KY}h�\u0005zm�\u0000��cM���\b�WP��r\u0012ڒ��\u0014��Y\"�e���\u001fH#l��6�\u000b�5$]�GD�;�#T�әxO\"��\u0000\u0010: �؃��G�Ǹ�?\u001b�08sƦ*G�O*����ze���/iϐ?/\u0000�N�u\u000f�n>�d���P'RW~LCt�\\�9\u0004c�\fh�\\�[h�\\��ݵ�\u00002���:U�f���H`\u0000=y\u0015v_��\u0000+��\u001eI\fx�ʺ2��\u000e&]6�s1�`��\u001aH�t�&�\u001af�.��\u0006�J���\u0005�O�\u000bT\f��=��4c���\u0005�\u0012;�;G���\u000e.^����$ri��\\�M���[��\u001d�>����O!���\t�K�y�c�C\u0006�<��$��k�f�\u000bs\u001f���C�H�\u00037\u0015^���t:Mg�ڌ~&\\�1\u0001\u0012I3��=��sh�G\u0019�c���!�\u0010zoD\u000e����ח�\u00002l�(���i�S���~A���\u0013O�[�KM������\tg���q\u0012\u0004�8�\u0013\u001f�A\u0015�<�EW-�g>z�\u0000�.�W�嵧��\u0000-�.]<���OOJ��\u0012í_\\'�\r��m\r5[�B詒I\u001a7b�������\u001d_h̝D����\u001d�y\u0000>\u000fQ�M\fzq�I\u0001\fQ�b7��RORw?w�\u000fέ\u000fDҟR1�Х�f{{պV�����V{)B]EZ\u0000���;�\u0004�Lq8O\u0018�ڷ��N� '!��0\u0007ry\u000f�]���7��\u001b\u0017�H�������q�-\u001bL�\u0017���h���'��F�;�U\u001b�c����#>��^���~n�[�\u0013\u001e\u0006�\u0010\u000f���A�\u001e��w�\u0019<��K-��P��V�mb��w��KK`wM>�|\u0011�ڃ�S�z��D\u0013@\u000f�y��7 M��O�\u001c�:\u000f2�\n�c����q�N�F�!$b��\r�0�w�S[��˿�6z\u001d\u000e\u0001\u0018p�;�Y���ƶ��w=��\u0018:/�C(Z�MI\u0006��Rs��g\u0018��k��t�{H}5�\u0000�ߎ�g�\u001dϘu��Z�ɫ:��ƿV�r\t�w\u001d}�N8���]�qp\u000e\u0018]��{����-FO�/�\u000f3��_�v��KѤ�*�\\Y�[G\r\u001dƣž$���f���v�'���;;A\r&\"\u0006�Qg�G����\\���\u001d^�Ę�\u0000\u0005�W�)\u0002I�~�9f��Ur\\1w-���՝�Vfm�Ny�\u001c`\u000f'��A6\u000b�|�k��ej0�iN[S��*Ms7\u0018���\u0019\u0007�\u001eE�Xm��!T^$��G����?FS�����\u0019\u0012^�5А\u0002��*5+(~,\u0018�6��4�%ó��\u0006�V��y\b@� G\u0010I\f���\u0001^���Q!+s�(\"$k�R\u0001@��m�\u0011ـۉ;f�)���\u001d̏$��I\u0014�\f���H\u0018|t\u001d\u0007�'�c�\"w�l�&��\u0010��$8o��\u0015�7��ET��2��䰀\u0005�Z����\n��f)S�\u0014\u0002���\t��\u0001��<�:Q�\u0016 =\u0017�&��+@G�JfN9o��w\u000f�<�~�n\u0001�R����w��v��,�&=\\\u001c��_��-uY��� !\u0007�o��*�k����#��zy\n}��\u00008��'����\u0003\u0013�V�fA(p�Ճ�\u000b'�iQ�2�\f�W@]v�\u001d�(m>���V-�x���k�:gW�\b�\u0015]�K\"�U\fH���3u\u0011�\u001b\u000f=�\r�ߒ���V6\u001a���\u0019EYY�p+͹\u001e��*+�����\u0018ˆ@�'�l�;��ՙ����\u001b�J�t���]����`5*]{$(\u0010\u000eDFV�O\u0001Ҁw$\u001f\u001c�\u0011\u0017}\\����\u001f�v�yc?�C���D_�)�\u001bu*sg��\f���6=ۿ05�?���x��4�RG\u0012!kx���ux��0��\f��5c\u0012\u001e�so��(j�X\u000eb��v$\u0013ҽ�r�r\u0017g�r�\"�E}�hϪ�Ub\u0002�q\u001d\u001856z\u001e�/$\u0018��\u0000���]���oj\u001e��wX-��F�y���E\u0004\u0011ƬҴ�B�\u0002��Q���\u00135������q+�}������\u001d?Κ��n�,.f���������sX\\�y��qs$z5��\u0010����!܀Fg\r�%:�\u0007+�^�{����ǖq��-n#��\u0016v'n[�ߵ�S�\u0000�i����\u001eO���\u001f���4�\u0000���1|��V���\u001dcOOW��s�Z���jbuJw���-\b5�\u0019�y��*���~�S���\u0018���\u00117f6/�� �\u000b�'�\n�{~R�#Tֿ54[�y\u0016k-kJ����\u001a���\"4����!%~�r\u0011��\u001d�\u001f7��-p�)i�g[�BU���_�.�\u0006H�ǘD]�Dȋ#�~R���x�\u0000�O����ѭ��}��Z?�f�?F뺎�h<�.�0O���K\u000b\u001c^����Ѽs��ڝ���������s\u0001��I��Ì���i\u001a�$���y�_\u0005���p\"\u0013=ĞT��x\u00142�\u001dB�9ո�䃈�Q��z�������\u0000�\u0013}�j�\u000e)��\u001a��o���\u000f����\u00008����]A��\u0003B�\u000f�o���\u001aߓ/.�\u0018\u0013�m�&��\u0005��\u001c����vw���\u0015\tϋ\u001ft����˫���\u0019�L�r=y\u0011�#q�p��ɯ�����\u0000��/0i��o�\u001ex�c�\u0018gլ���-��\u0011��h\u0011i��\u0013��[�F۞��ؽ���\f�򏃫��>�{맘tDv�cj<|2�w�>�\u0006�\u000fCg�|�ԗ��w��\u0007�g��ߒ�����\u0000]�,����Zı�\u0017SK\u001f�������#V��q�v��?�;�\u0000��w����ߙ\u001f�Kqo�]J�\u0013�0+\u0015��BX���\u0016=\u0006�\u001b�G���x��ˇS\u0013�V�v�c�No��Hy\u00027�����ߓ�6u._'�?2�4ɢ�Ce}+\u0014��mH�\u0012=\u0003U�О��U�v�5�����2+��<.���\u001cg.\u0000N.g�����\u001b�q\u0003Q���^��U�_�a�-,Zo/jp:Au��O�\\�\u0018#Ւ�vR> �|s���I��r鸎\u0002}C�~\u0007����ټ����5\\?��}\u0004\u0000$A\u001dGR9_7�ߙߓ�o����W���Q��e�K;�\u0018�r^5%(�h�nUߦr�.�ê�s\u0015C����U�ɂ�\u001d�;\u001e�\u0000�s�\u001f�ǟ3Yy������-�\u001d6!\f�e��\u001fQ��\u0005����rݱ�z}W�\u0002N9\u001f���|�\u0001�=�\u0011����K\u0019���m�\u0005Q�v\u00154b@��r��\u0006L�]\u001d��sń�&�!��JT�)��9�\u001c'��r��gz����/��\n�\u001b�����a�P��e�ɩ s݇�j�;\u0016~LM}�v�9��Nkg_�PorIcwz��J+\u0000;t\u001b�n=4F������\u0014<7m �^5\u000e\u0019�\r��]��\u0006��˗z���?\u0000WS�\u001e�\u000e��#A�d��\u0010ů\f�s(�97ߨQ���2��˟'\u000b%��إ6�c�\u0007t�j���\u001d�+Rv˥��\u001b4CU(ؗ&Si|�*��tjn\u0000%\u000fR:oC���\u001a.Tr�\u000b�\u000b8�n\u001e\u0006�h�ґU�P:��0��\u0011]���)F�Ւ�6�z�v���.\"ٻ\u00126\u0004\u0012;f6\td�#��ru\u0003\u001eq\u001c�i�%��͋\u0018d>�\u0015���Qڄ�Ol��\u0019�\u001blՎSŴ�Ʃ?��exd\b$a���\u001f~O\u001cg\u0011}\u0003^S�r1�_7~r~Fi^o����~�`Ի�\u0005�6�F\u0003��η��7g�\u0006\u0007�м'����;oO(�\u001c'�ß��M����\u0016��\"7�ۗ�z�G�����I9���õg)́:��x;\u000e]��\u0018b\u000f�?��>��\u001f�ڄ\u001fᛧf\u0014\u0011��r����ݳ�_�\u0000s�ֽ��\u0013�2'j�lڐ\u0007҄Sj�=I�Zx��N\u0007����\u0001�\u0016\u0011�\u001a��k\u0016�U�i߷�a\u001c|\u0003n��\u0019#��~�\u001eU���Qc�X���\n[�@\u0012� ����zv���&��<27\u0017S�}�\rQ�1m�������!{��NjU�h\u001a݋�J�I��\u001baZv�Ѩ��J�'D4�\u0015�Q\u000bF�\u001d��\\I0���B��R5�}�Nl��Ɉ\u0011\u001b:|��\f�r5+���(������k��\u000b\u001d9+r!��™��h�'ʝ揵qK\u001dqqF��5\u00014�K�cUV\"�R�Pv4�\u0010��\u0000q嗎F}B^9ܽ\u0000��\u0000��Dϖ魽�\u0015��\u0003j���1�e��c�B���Ƌ�(=���\u0018�˛�\u0018\u0001�To��%*�OSߧn�dH�|�8�v��čM\u0005]�y1�8�o�\u001e ���\f�e�Y�v;\u001a��'\u0018\u001e�吞u��%r��ڤ�Z�)Q�했���ei|�Q�)\"���z{S�L\u0002y\u0006�0=�m{\u0000\u00143\n��(*\u000f��9.\t5��<��]Φ�\u0005=N\"�o����W-�0\u0005\u001em2�{��#��\u0018��\u001bS�b�k��Q\\�\u0000�)�y1��F�\u0004��j\u0005\u0012Ws�m�\\1���\u001b&Y\u0003[X�c�ڵҖC��\u0007�W�\u001e��@�\fʆ(}[8ys�xoG��@[�w*x8�O�GĬ\r\t\u0007�l��\u0013�Du\u0013\u0006�NT��te'�\u0014�Qľ�\rM�\u001e����V��\u001b�.\"A\u001bW��gi��D�K\u0015�CT\n�m�)�U\"$n�r1�����&�X\bee,�d�Ĩ?�l\u001e\u0017P6dr�\u0000\t��\u0010�y�x�[���\u0017�X\u0016\u0005��\u0011�~!�p�?�6,\u000e��\u0002\u0001��]w�-.�&.QUQ�Wb6�\u0004\u001e��~J8�D�wh��\u0004�\u001a��\u0018E�%ͦ�\u001c\u0016��4id��\u001d��\u0011��S���QE\u0003m��d�4\r�w�\u0003��#���\u0011�]�(���\r8�\u001a\u0017Px5k\u001c�;\u0018�\u001dS��#\u0018�h�\u001cYdɈܬK�Ɋj?�\u0017���\u0001K�U��Y���W�F]�\u0010�\u0003Ol�ǣ\u0012��٢z�í���?5?�\"?�*�4�5$򾚒�VP�CQ�`�k��%n�]G�R�cH�>\u0004�mٽ��a\u0007S-����^���v״��&4���\u0014g�����O���i�=c�����E�&�9�����9\"\u0006@a[�\u0016�ۆ.-����Q���>��\b\u0019g�B#��������/�~��a8�\u0001��${���\"���E����$�-�#�U�\u0015T\u0002\u0000�)N���P\u0011~�$Y��ܜ\u0019�q(x�4�\n�\u0011�\u000e��\u000e\u0016���\u0001 oѐ�G�\u001b�Im�Y� R��߻,\u0000bK p\rH\u0004\u0003�S+�����\u0010M\u0007�����\u00008��<�����B�j���8f���J�I�D�)��\u001f\u000f\u0014�\u0001���7\r2؉_#_>����q�\u000fL�9\u0001M۰�c��k��̈́V��xT�������8l~?\u0016��I�2�7z5>�D�5$\u0018��L����N���\u001f!���ƈ�A=hA���{t�T�)�r֛�j{S�����[�Z�g$N\u0001�\u0003��\u000f�����c勻)�\u000f_��\u0019�!{;�W\u0000���v\u001d��s2��_\u001c\u0000U\u001f��������O!���̔����t��?H�z�°�BZ�KI�ڔU߶\fxrg�1D\\��X��<������G���\u00009C�\u00009����\u00009\u0007��|��;��&�/\u0013H��e\u001e�ܷ�\u00141Ҿ��}��\u001a\u0000[`+�\u0010�2\r\u0007g�-\\�J]o�=�d�m�\b�u\u001a�u�\b\u0017����\u0000�a�\u0000�S�Gɺn��ϛ���~�\u0014\u0017��S���,Ku\u0013][i���<�G߄�� �v��ƒC\u001c��y5\u0000z�l�\u001f�\u001b�>�n�Y�F#\f\rb��V������ϣ�����\"k�����i�]�v�<�W~f�� �ibc��E�R��^�\u0017�zdD��0�v�&U\fP��G�>��\u001dD��\\�ʰ��E����s�����P~Z�I�]�\u00008��\u0012��oό�U�\u0000�dX�<�o�B?ܧ��٬ �t�\u0007HF�\u0015�M\u001cSJV0\u0019�r��O��\u0012�\u001a����z\u000bq�j�k2K\u000e?H\u001b\u001b<�\u0015r\u0003�G���\u0018�3o��_��#]]��V�x�\u000f�??��z��u+�'�4�[�Q\u001e��1 �\u0000�,\u001bu\u00034����Ny��6�y����sqh�����\"���\u0004�;�'��>������yJ���V�y/�>V��J���(����=6ӴD�=[�ARdx�Nl�#�;�8u:���f�C���<�N�!Ï\u001f�+\u0018cȎ���nOy����\u0000�z�%�����u\b����Y�y�іI$iu?:j�Aqg`.�>'k;K��pc\u0004/(��L��<8�:,��9;FxH\u001d��Mw�C���2��jc�\"8�:9���}\u0005˨��G �����|��o��S���^d׿;�-'K�s5���@�O=\"�&\"�Y��Q\f� �\u0010�Ο�\u0007G\u0006�����pCG>!@�\u0018z�|��\u001e�C�n,�4�L,d��4n������\u001b\u001a\u001d\u0003���q�IO&h�~X�H�~��i\u001a7��Hf�\u001dg\f\u001fY\u0011҂d�Y���Fyߴ\u001a���d�\u001a�YJ�U�^���{#\u0014t�����Q�����>L7�r��v�~Q�$zƛ\f򭤗�|�\u0011��\u0016��md���$��(r�g�\u0013�\u0019�#\u0013�G�\u001e��7\f{b1\u001a|�,D�$��\u0011��\u000f�\u0000�;�k�>���\u0007U��\u0000\u0010ZG�;d�;�[��b�\u0015������a�:\u001d�j\b \u0011��A(d��\u001a����� �\u001eq=��;\u001e2��'�Dj9mGo1�C�\u0007��\u0003�����\u0000;4ۿA�\u0000���\u0000�Bּ����\\�\u0000�P�Z��\u000f:ySC���~D�,�\u000f��/�k��n\"�z���ڞ5�\u0018$\u000fS�{�\b:\u000e���v؎�\\v�&���3?A<�}�}\u001eW�{\u000bU��'�\u0012�\u000es1�@o�5u��Ŏ��V�ݔ3I��OV\u0018�\u0003Fk\n~ɍ�̲DE\u0019H\f�:���X� E�q�Ǘ��}��d��\u001d�>_ڕ���6�e����a��d�Ydq��\u0015F4fb\u0007\u0000����9@\u001b�\u0007^���2��N��\u000fϟ�\t�1��s\u001d�����+�d�O\u001bƉ�72\u000e_\u0010f�\"����f��\u0007G���\u0018�u#�]���;���>R���u�'D�\u001a1{\u0004r��\u0000\f\u0015�4�F�Cn��\u001e�21���]�@qH�\u0000n[��\u0018Dž����ᏼ���z��\u0017�����I�m�ѴH\u0006���X~�J��7\u0012+;x�W<�u�;[����r�����m\u0018�����i��p�c߄n{ʶ�\u0001vP8�\u0014�|\u000f^�j��l�r�{G��5��\u001a�N-Rv�ڵ�3\"1�؎\u0011���Cˏ\u0018�:)I>\u0011A��ӡ\u001b�z�͔ 9�!&a\u0017.\u0000�\u0000n(8�lM?f���g;��I��1G�䌈)���\u000e�'*�\u0004T�I�k�\u001d�ɄA枛k��B\u0000�\u0003NQ8�V�`Đ~\u0013�̡�\u001a鷓\u0010�a�K\u0013E!�)$\u001eۍ�\u0012\u0001\u001b�\u0014�L�I!�]̲\u0017^\u0003�\u0006��P�&��h�v��\u001fQ��&T\u000bȐ�m��@\u0015\tZ}9�8��\u001c��C\u0016��.\u0015�Τ\u001d�P�\"�\t��qK��h�z��n�dQJS~#u4��ؕ\u0003l��'Gw\u001ec����xڊ�\u0002\r@=y\u001a\u001a:�T��3'7\t\rb6�\u000f�\u001f:���@��*/�\u0013\u0006�A��\u0011X�����F�N\t�O�v�N\u0011,fQ�!��5�C�=sJ����%�(.c�\u0005�)Bѹ$�;\u0011�:\\\u0004W;/+�_\u001a��sv��!Zơ*�iQҠ�|�P\u001c�\\�\u0018\u000e�C�/�\u0016o�j��\u000e,%p�\u0006�W`\b�\u0004�Q\u001d���ˆDtaڕ�z�v\u0000�پ\"O��\t\u0007�a�v0܇��naq�55JUȧa��fV�U Q�\u001e\u001f7���W\u0013r��\u0005A4p�e�r\u001dz\u001f\u000f|�ts�qqJ1��\u0000�>���%��tx�y!q\"�\\R��ԅ�G���nsk�\u001b\ty8ҡ2\u0007�^�q������*\u0004�p���A��V\u0004(�T�9V\u001c�\u0002�\u0019\u0003�rx�4�-_\\���6�\u001aҵ�|�\b[V�\u0015u\r2���<\u0016D=ڹ��\u001e�\u0013�4��J{G��\u0003��\\\u001c�&��.�]�\u0016qa�=����~�ߓ�/�\u001f�ϕ<�c��萦�\u001d����[X��U�ՙ'�+��/v&��Nb��)�n(���n�0���\u0002���z��{�9?/4�b�I�o�b�y��\r�RI%��Q�1��&��\"��h�e�: \u0018��v\u0007K\f�&�\r�����$�G�?GY4�\u0000.C�j\u00162@\u001a��\\\u001f]�o���\rB֎\u0011\u001a$�~<К�\u0019���vv@%�\u0013���b<�{��\u0018t���Ә��-��#��\f?]��4�c��o�����m�f)���\u000b�O&����m��^q��E\\4�Hb�f��\u0014:�33\u000e�Y�N3�\t����~�\u001boŌ}c��\"�e���j|\r_�6sˌ�\u0019��9\u000e�=�{y�)�~V˦�\u000f\u001c���>���%��EZ\u000b�\u0018`�!��ս�,\u0019$Fh�\u00180;��\u001a����≈�T����x/�/����w�]��ݾ��=����\u001b�gx��`Ƒ�`\u001b�;�9v>�̀���\u0011�~���hLt9\u000f���~V�l�*�k�\u0000� ��~j�\u0005u\rk���F�����u�F%\u0004.�\u0015�\u0010�\u000b}�����\u001a����?���\u000f�j�(��C����{O��0r���\u0004t=D����wؿ{?�\u0003�\u0000�9t\u001f�O+�?��\u0000����������*��R�\u0003tu\u0001\u0015?þ`��\u001bP��\u0000G���QF���~��\u0019�\u0011����\u0007�\u0007�p� :���?G-�\u0000����c'�'m�\u0004�8�H�}#3ԟ��r;����\u001eY�����MW{\u0004��˳$T\u0011�OV��W@\u000b��ޕݩ]�U؝�5X�(\u0010$y�����fKK�W�r�\u0007������^q���m����]�>d���^yo\\\u0001��m�zJY��-�\u0014p�\rj\u000ez��S��t\u0012��UK \u0014/����\r���C���HxN�� A��yS���\u0000�t������W����\u000f4i���|ͥrC5��!*��?�\u0016�\u001fn6�7�l�oh�3S��j\u001a�Ne�=?\u001d�v7h`��\u0000�5\u0000T��\u001b���\u0013�z����\u0006�\u0013L-�\u0001�(m\u0011�4�\rXMJ�z\u0011��j1괼g�o�׃\u0016L:�\u000eB����_�6�\u0002�7�޵�9�\u001e\u001d\u0000�H�L��2d0\u001e��j�ۭG\"ǩޛ�\u0000fe��_=��ͨ��݁^k��#�P�R�\u0014��͎=4F�-���\u001eD�iS롾\u0019\r\u0003t5?A\u0014�Q�wrq��\u001d�@�x�\u000e|�\u0002�UZ�\u0007ǭ\u0006�lq\u001b�����&V�/�\u001a';�\rw��7�J\u0006ͳ\u0013\u001c�J <�P���\t�\r�p��� \u0019\u001e[lݣ�h���\u0002C�=����1U(�X\u001e?D�����W�=䲡oBCU\u0007�ߵEFlt�!�T��S��M<̣�\u0014��\u001a�֑\u0010P8ݓĎ��V�5X�\r�o�e�H�>��]�W(��\u0007]�;�v���Fj�G.��\u0003k\u001b_4��Z��3\u0015�w\u001b�G��\b�\u000297D�0?R\u000e��H�u��\u0015���e��$h�e����H\u0005ܷ�\n1��\u001f��h_�E#�\u001d�8c\u0018Ś0.\u0007\u0017�v�##�.n�|�f�R�\u0001\u001e��ܸ��^�\u000e��\u0012#��rr��Gr�\u0013�a\u001a����\u0019��X��C�@@\u001c��j\u0005w#|�\u0006�ZMP2�m��hq����\u0015�V\u000f�\u0000��K�'B�ҮY�^�� }�UjTx�\f��\u0019�&_\u0018o\n��v&)��\u001d<�e���\u001eäY\u001b�\"4�d^\\��OA�l�\u0019h�l^�C�ۄ���\u0013�\u001fL����+\u001aHk�e>�k���Dly�m6\t���\u0005�Z��p\u0017�bf��t\u001fw\\•\u001e\\����;I��U�\u0000$[{�&B�T��;�o�r�n�d�B{�5k�% �Im�\u0012C(,�)�kޞ\u0015��{�\"�xc\u0010LEĥ�W�\b�(�u\u0011�\u0014n�÷�d��|�!�0�\u0003�\f��S��T�� W�z|�b���l]�\u001c��y��k�ƛ�k/�\\\")\u0014`�0#qS֞�t٧�vZ��Lz�\\\u0007j|q���I}m8��壊Y\u0015\u0018�+\u001f�m��]���\fjb�|߶�\u0003$edžT\td�O�ͯ�4�����)\u0001���3���\t�\u0014\u001cs�i\u0019͖�C�I�bǹ�{��g��\u0017�5�\u001b\u0011���\u0019�,��Xb���x�X�n:Wo�N��Ir�\b�;\"\u0010�\u0002��½�r�d���q�W��E)��@�DŽ�\u001cz�d�#�I�\u0010)M�oڙ`�Oճ\u0019OJ]$�\u001eD�<\u000b?�=��(5L��\b�\f\u0001����{��h�L\f�R\u0000Kd�I\u0014��iZ���Aב���#\u0002\r�mD�6�Rib�\u0017ӎ\"�~Ny�;�;�����\u0012�\\#�$,�+@̂6\u001b)@)��r�\u000b\u0003 \r�I��c�����j(���K�I1�Z)-ݬ�Z8�V@£�\u0000|H�hVY\u0019\u0001�\r3�#�%�^��\u0010]\u0005�\u0012��h�U=J\n�=��3am��]V�Aּ�i�Inu�\u0013Q��U�M��V\"m䲞���^\\\\�\u001a�Z��A�\u0018�c�b\rLX=;�u:�3ͥˆ3 ��!\u0019\u000e�lA�\b��X�&��&��\u001d/Q���M\u0017�&5�.-���=�\u0012Ws�:���u\u0011��\u0001���h�pi2i�o$�_[\u000f���޿����o�<�f��\u0017����qs(\u0001�젷��^M��\u0018T\t����p\u0003g��\u000b�e��mF�\u0019?����\u000fw�g�*\u001f\u0007��\u0000�?��8h4ݧ0\u000e\\��g���\u001c8@�3�y\u0002���kkO��ىn��id�\u0000}�I-\u0018\u0007sN��N��ߠ6��\u0013.�mh��٦�K�,'\"j�5L\u001e\u0012\"\u0001�����м�\u001dյ��o/�ukmt���ؑ�i�p�Y��m�cw�h�`��%<�!�\u0010H��nٗ\u0012&,s����f6�=\n��\u000e�>;{a<2���$��Yh�Eh�\u000fTz��\tx҇�?��\tq�ă�8�j�\u0000g�>i\u0012�t�\u0019\u0007~�?��|vec�Wwh#�2�\u0000?o�O�,�x}!��^�\u001a��\u0000��#�\u00009-�\u001eS~Xy�\u0007�:\u001d���\u0019\u001dEG\u0018�C&?�i\u0016��t��\u001eg\u0014�\u0000ܗ�\u001d��\u0006��C���\u0000��X#�BA\"��d�Ā��}\u0015\u0019z�G+����\u000f�?4�\u0000���\u0000�W��}\u0017�+r��s��v \u00137\u0006���Ku*֜���\u0006��̍\u000ec�.l��hyw��c\u00125�*�\b�����E�z��|��;Q7�?1�[�-Z����\u0000.y\u0019&n:��\u0002���gx���V�GNy���R�i��?(ܯ�A�\u000f|���VH��\n���\u001f�_�_�V�5;�˘��w�\u001dR��k��?Kŧ��66q���F��H��%Q\u0019U�BF���\r>MLn3�1�5w}�-�v�N\u0000\u000f\u0007\u001cOK\"��\u001b��~���7燝?95���\u000b�?���md�t�KK;�A�\u0015V\b�-��\u000f�c��rN�s�^t�:~�\"1\u001c��D���C���㒵Z�Ŕ�#C�G����\\�z�\u001f�T�?�>S����7��0��T�-�k��t�Y���K��2å��\u001as��)\u0004�\u0014�s�\t�\tH˝�d��g ��8�p������V�o��\u0000-�m4�2�wsY~Jyf�h5\u001de\u0014�s���*�\u0000��藫�c�C2���\u0002\r}8�5+�(�\u0005\u0019�uR�G�\u0007y��\u001f\u0016Bq�=$�(��\u0000L�\u0003�9�|\u0002���n�~�O�m\u001e\u0013mf-!����E����\u0003Ҋ��$<\"�Pjz�6�S���g\u0006)qL��ԟ{�����DbD\f9��\u001c�W�=�p�����ݷ��t3�-;�z\u000e��\u0019\"\u0014[�nt�K�ۡP����h\u0014}���1��S͛,��Ip�(��|܌\u0002\u0011LJ\u000e?L1D\u001d��u$w�9=O�_��D���#��O����\u001f0��\u0016�:,�s�Wz\u001e�$�%����\\��I��N2�Edt%H ���h5z)\rOge�#\u0001Ө�$?�V�\u001e�6�f�\u0006�>\u000e�\u0010�\u0011��)\u001d��/�=A\u001e��^�@hw�Ǚ|�se7�<��o1k\u001eW�&�;��1j�k��_[�ຍ��o,S�\u0000`�ңz5\u001d���q��9x�l��ǐ�%\u0012:Q\u0004\u000f�-7i�9�����♁\u001b\u001d�Q\u001d�=\u000b��|����o%'��ݨ���\u00001�Ko��\u00000�3���s��ۻ'5i��n�)5�q,���\u0001:��W�z��h��xd\u0019@��\u0010.��'i\u000eG���.\u000e��~S<�)d\u00061�0%���\u001b��\u000f��%i~f�\u0000�v�\u0000����������5\t%�t�\u0012���7i3H\u0016�Y򎰿躶�v��E���U�U�\u000f��2h���\tk{&~. \u0000�\u000e�pˬrÜ�!q��z\u000e\u0017I\u001dGa��t��\u0013�(&�^<��v9u\u0007���ȀPߜ���\u0002�)|���䕖����~f�\u0015�j-3��։v\u0017�Isq\u0013\u000b�9�\f�\n\u000fB���44~��\u0016od�T֯\r�\u000eC�\u0004l\b�\u001d��bK��'U��j÷;8^\u001c�\\zH\u001f�'��\u0010zH\u000f;���]g��~U�<��;�5_+��F���mF%P�g8,����\u00176w\u001c�\u00129G*\u0011�\u0013�:�\u001a������h���\f��!�F��\u000f�i�i5�hk4NjM���0~b~H[h����C5�͝�1�^C�ҹ�\u0019���an����׎\u0002ũ@�\u001b�\u0002t �\u001d\u001fb�O���O�7g\u000f��C�\u0019<����O��m>�GQ�F\u001a����?A.�\u0001��\u0005\u001f��\u0000�\u001er�Ϝ<��\t�h�ǔ|��mNm\u000b�/D� �Lմ+�w�hsC B}E\"A*��hYY\tV\u0004���K\u0007i\u0001-$���mdt#�1�\u000fV\u001a\u001d4qb��\u001a6h\u001b�������w�>������)�����\u0019m^�H��]eu��븫);\u0011�3]�2ɭ�\u0011ȗ?.L�}\u001c���X�?��^F�#��@���It�-�уL�ԯ\u0014Ҝb��j|X�}�֍\u000fg�G\u0001���c��>���g��ԝv}�=��ؙ�l��(\u001c@����$�T�g�c�zr{s!L�I�\u0004��>/�m�Gj\u000fי��xq������\u0000.�\u0010c�T��C�uṇm����\u001d��\u0006B��/l�\n�Uj+П��\u001b�ʤ\u000e5\u0019���\u0004�7\u0018�\u0007��t�U���[Ȍ(���\u0015\u0015j(`]\b;��;������ɐEke'\u0015�h�!�3\u0016J�誝��`d�M��O>iŝ��$��H_��BS��@ۋ\f����b�\u0001����\b�>�+5K\u0014PG\u001al\u0007b+�s$\u000b\fb\u0005Թ<�u�$�\"vbvi\u0001S�)�8�c�N@���\u0019ԒvRv\u0004�8�Ҁ�W��Kx���]\u0018İ̲/��K\u0002z\u001aPӗ.��q����m�uj6�Ƅr�G��5#�-<�l2\u000b\f��9\u0005��9v�C��fJfB�k}�$V��Οx&��80<\u0006�[~����A5�fE��~��\u0000�;�b�qimb�qA10\u0007���2z�(����U���\u001e�3���\u0013\u0014\b�\by�~\b��u��\u0017��k̗\u0011�\u0003C'�'��%\u000e�\u0013��\t�I#74\r�'Hlze|V�����j\u0017�!⥜�j�j\u0013�\u0006ہ�k�0�nI��g�y>i�-�V�L�\b�%�ҝA^���4�Q���\u0017�\u000f�t!��4��MT\u0010�t\u0000�\b�e��?\u0016s�G��?4��\u001e���\u0001\rd��T���\u000e lk�7�,�!N\f�h�ȿ8EՋFYciZ9A4?kb�\n�\r�9؈���O:qbI���{\u000b���{�������\u00029\u001e\u0012�ܲI 5\u001c�\u00126�3I qe �.L\u0004�\t��5@��#!��5{Mj߅}XU&\u000b\"����m�g�3��N?X6=�q�5�D�� \u0011/I��\u000f�OJ�\u0001g�\r\u001e���9][Eqa\u0012ѣ2 m�\u001c�\u0010�C�}\u0014;7I�\u0007da�=�d�%\u0019�q$rۘ��|�����<�]G!\u0012��E���z�Oɿɯ���o?��W�;�W:Ϙ�D��𫦇�h�@��k:��Ggd��P�#|*\t�;�hu���:-L\b�9\u001f�#��򧩎�G�O��K�u��������O��_��W��%�t4�i6~j��_E&���m��k��\"\u00034>G�������-���^��\u001e�.(b\u0017��_/�~�O��\u001c���\u0000DŽ\u001e{�\u001e��\u0011Ӿ߳�7�o��4���U�\u00163\\��]pw���'��\\�\u001c�E@9�=h��\u0011���l�\r$�'��D�7�ךMe��?�b����Ct��+_Em/�����DB\u0004`H\u0002�\u0007a�e�\u0016�.#��i���D,rZܤ��$�-\u0004l�\u001cQ�\t*��\u0004�}�,�\\s�ϧ�Ǩ;rv��8K��=]\b�����k_��Q�K���A\u0014���\u001e�\u001c\u0013^��\u0006[V�JO\u0018j����}�_�\u0016,�1���\u00015`{�\u0000Ar��$D�>\u001f\u0010\u000b��\u001d��<�ɟ�����7�O��\u001d?0� 4�s�Zw����/�;�`���U����ssxb\u0006}N���-�r��\t \"�7z����+���\u0007gv�\\}�,�G\u0004w9\u000f��b7�;W٨���~����n�\u0014�\u001c\u0004�!?ݎWuD��b7'�>����%\u001f�t��K�\u000f��~���g�H���Mf�H��\u000e��kW��qs�4�������\u001e\u0014\u0003�׎�ͪ��<2\u001c��ϋ!<���Q\u0014\u0004kaB�7��c�\u001a|}� 1�k\u0018�q��\u0012n�{�4yW*��l��׼�}\u001f�|��k\u0016��t���������@�,�}�����\u001d���\u0000\u001f�\u0006x�\u0015��Gژ5��\b0�\u0000\f���\u0012�F\u0017�&�٣.�.\u0019�yH<_L��\u0010,��%[�:n6\u001by�̟��OԌPGua\u0015�!��\u0016��ד�,S:�#!��\u0000��FtZ}_\u00148�A#r\u000e�n����a1��\u0000E���o����Y���?\"��\u0015���Ο��d����Z�B�E���K��,m���\u0013�=Cҝs�����{C���|.҈��mg��w�<�]��=@�C��屉�W}��]�ؾx��㷗�mA�\u00003�\u0000�\u001bu�q�^x�\u000b�&�y-.�����s\u001d̈́\u0012:�d��\u0000xґ�����=wd�]��8�p�����Chq�CI��\u001cC]ٙ xG�H��9��W07��A�\u00008��?��\u000f�?*���[[�6Zh��:��p�h�;X}&�ۯ)�@�٘��#��<��ۙsh�c����|��]���k�>,z�\t�c\u0001\u0013/�\u000f����\u0000���\u0000�C�4]Fm{I�>���-�ݼ@�%\f�R���E7;u����ݎC\u001c��N;�?{���e��ǎV\u0004��\u000b�Wq\u000f\u0006�\u0000�$���&�;�\u0016��KM;\\�\u000f.��)\u0019�w!��m<�\u0016\n�C!\u0014zT��w��=?ov!�\u0005�\u0002�\u0000h���;���/e��`\u000e������I>f�`��4�3مkk�\u0018���U=iJ�:������2J\u0018e���BD|:>��\u0002y#�\u0015�!��I<㨈o��>-\u0005�����:\u0019\u001b�^�t�xLjyYp���2xq�\"\u001eA�ߖrRM��r\u0015>?<����S�˖W�\t���9��M\b�\t�N�3��'\u0003&Z6Ri�%p�o��T�nź\u0010i�1�cG��-@�1��V���\u0001_��OŰ=�{\u001f�\u0004��c���M�\u001fO��钬�\u0015��z\u0003J\u000e�9��<&�r��\u0014:�1�#zz��4߶VA#͐�Kuib�]n-�O\u001d�\u000e�u�2�c\\2\f�\b�E\u0013����K\u0005W��'Ĕ��P���d1d8r���>(�p_Q����AՊ���*���jG�L���Q�q�<�|M6oN۾�Ѯ\u0006�a\u001d�&�,k� \u0002�\u0002��?^s��\u0004�N\u0019x�ģΓ\u0018�Kʈ�\u001b��\u0018Wr\u0000�\u0010;`\u0000�/�)3\u0013��i\u00068�̶�2Ar�\u0005H�mQ�\u0003Tf|4�Ê\u001f\u0017_,���4�'�\u001dV\u000b��5���M(\rjiJ�\u000e�F\u001c�>\u000f�\u000f��x��d���u�a����Q�\u001e�ޝ)D�����%\u001c��۱�c-<��p�����'�-��7�\u00072E��\u0006�\u001f<����*���jF�l2�À\f`�r4r��Ijd\fw�!���\u001f)��V���+�q�\u001b \u001b}\u0015�&�qO���;7ы��QzW��\u0005]9�\u0002�Y\t�ߧ��5��Œ��֖|8l��ٖy\f�\u0006��\f\u0017�'��s\u001ec�P-�<^�\u0013H�1�\\1\u0000T�����հP;\u0016K�k���;��\t���>y\u0019�!�Ǩ\u0007b�l$�+��EC��ڕ��N�\u0000(�\u0003)\tD\u000f5;'hݨx�5\u0006�����!�ءͳ\fLn�ڮ�t�Q2�&\u0003q]�қЊ�a�\u001eh�j\u000e,|W�yN��]���Zj��M���}���}��f�\u0016(i��z�֣>MfA��\u000e��\u0015\r��@�\u0007rz\u001e��#,�\\�\fB!\u001c\u0019Pt�<\u001d���4\u000éc�]������lD\u00079se�@���b�Ƶ�Mi���0\u0007��\u0007�aZ5\u0006��c_\fh)�n\u0014ZN`r\u0007~�_\n|�,.����T��%G#AZ\nW�oד�\t�с�m���/\u0007&f��\t\n��\u0001�=�r���8�;�:��,A�w�\u0001�\u001e��=��\u0002}�4�^ȓ�F��:U@�o\u001f�\u0014܊�1˪|X������P�Q��֊k�\u0002{\u0001�\u000fՏ\t�7A�?��һ�z\u0016�ՙ�\t#p\u001b���\u001f\u001c�\u0003}ڲ_\u000f���a��j�Fe�yQ�V�bnca_�����^\u001f)uu��\u001e>�d�\u0006���_�KU�n���������2{��C�_��8�Gb�cں�r�J>c�Ӵ_�=\u001b\\�R�N�!�='1���\"��\u001fZ��Y4�Ǽ%����x�F�@�-���\u0012������4�u//�>��E\u001b�e��ʩtW\u0014\u001diL�I�ˋ ǔX-\u001a����1��Rc:��?�\u001f3y&�Y�����gW��g�w!�$�SZ�=3o��%\u001e(�/;���h�W����'��e��d}Vi\u0014,2���݇��9\u0006�<3K�N@�������m�S��{�)��\u0004r���\u001c�\u0018���\u0007���\u0000L�$@��[�@Hqlk��������zƘ^KR��\u001dأ ��7�GC�3�LK�/��j��2\u00191�\u0001�~\nY�\u000f4�j�\u001bI�d�$���\f]v\u001f\t549,،%�\u0016�>Q!�v�D�͉igr>�\"G\u0001��G %\u001fb�ME8��,�%(�y�k�#\t�������O�:�ݕ�\u0013j~Q��n��{�f\u000f,zl1<� \u001b��7\u001e�E��\fϏ\u0006HG 5��F��\u0000\u001b��\u0013�c\rΔ���s\u0011\u001c��>5�����kA��$�Yt��86��b�'�a��UD���>ђ���8�\u0000`*�ǟ���֌�9�1\u0011\u001c<7��;P���~X�t6��=�$yB�MG�^u�,����>܃%��:C\u0010\u001f�\u001c1�H碢�sc=n\u001d\u000e�z�A�8��\u001f�\u0007�4\u0007��GO���F�D\f�:��b����@\u0000wW2{�D?�\u001f����\u001eY�-�WW:6��YjwqD��\u0017v�q�;�?f\u0018dVX��\u0012z��8v�ijr�>c��2�]�l��'��g{#\u0017b�n\u001e��G��\u0018\u0012\u0005\u0003�\u0010>W��}��_^E�DsS\u0010��e��I�\u001a\nԟ��mo�^�nE\u0016b��;zp�,��\u0012D�(d?�#օ\u001b�\u0003���͂�l�墏���ejH��1\f\n�\u0012�\u0007V\r�a����f\t�\u001c���\u0000���>���=L�!?W�M�����+]�q�Lq��\u000e}=�d����\u001f��z����KT\u0016Q�~*���\u0001�`\u0000\u0018g;�\u0013����@m�'Ҿ]�j�$.��/AJ�÷.���c+��FǛ�4_0Gr��c�\u0003���\u001ds/ꍎK�>t�`�;4m�\u0003AO��\u0003ރ����\u0010�C\u0011��\"b|�]�K\u0004ա\u0007����)�\u0012\u000bI�\u0013l\u0006�?ξ9\"�wG�3p&��H��Gj\u001c1&�'p�_�x\r���M�\u001eF y�\u0010��%�\u000b�\u0007�w\u0019\r_���u\u001f��L����/�%�M���i�I\u0005�\u001a�h�ZA�X\u00153\"� v�!̃\f�+KR���\u001f�\u001f\u0018� '�\u0011tv�>\u001b����_����-K��I\u0007����^o���\u001b�������6�\u001e��Z�Gc\u0002�iZ�33C�\rNQ�~�4H�?�\u0011�c�[a�\u0006/\u0012G~�oa|��G�Ꮉ�-��\u0000�\u000f�ʹ:~��\u001e�tKH�ӳ��l�~��X[ �\u001cq�Xƈ\u0000��|�����\u0012��\u001a>��^N>\"NId�\u0002D�/��/�?�g��i���]KAҴ�X,��\u0003�oQҭ#A\u0018\u0010�\u001b[v\u00021�4�K\u0016$��\u0018�~1$�\u0013 ��1�\u000f�\u0010��INXyC�\u0004\u0001[p�H�\u0015\\�u�,����\r��\u0016'��r�0�6��>�\u0010v�yf,��2e���Yc���\r��~����\\��u_+�1����]:�a��^��\u0013\u001ef(X\u0016\"���u��6 a�_Do���X���BX��J������o��\u0000�?Y�}kw�����M�\u000e��[\u0005�-_���a�i\u001a�GY��M��)�=\u0018݇�;@j5:YGW\u001b\u001al��O|�0�<��|�j�\u001c:�p�\u0019f��\u0004wD��GuԼ��,�\u0000���ޡ����\u001f5�[h�\u00009<���\u00003�5��mo<��ԋ�~a����H�p�U$��Nl����?d�����'�q�/�|�\u0010���hp\u001d?k\rDk�>(�wq¢~{\u0015��?�\u001a��WJ���%���i1�\u0002�+�y�Ԟ�K���7S����4\u001aXe�9�\u000fT�/��\u0001]6�z�O\u0006(@]\b�n������'�/����o�4��/�O$i?�~O��\u001a���y��4yC\\{�ik�y[^Ek�\u000bTI=\u0019=H����j�l����=Y�\u000e�˓K�0\u001fT(�Q�0�yN<�'��;jsӍ\u001fh�\u001e�Jw�X�et%\t�Q\u001f\u0014W�痜�0?'<��ggcu&��=cKK[�ǎ�}J+[\u001by���s\u0002�i.-f\u000b+QC�\t۠��oK=\u000fk˵\f��2�\u001fO\t�\b�^�w\u0017;�5X�:\u0001� �*�\"\u000f\u0016��c�����'���?�/6~^k��\u001b�n����W&��ڭ�ci��=J�#�\\?�k����\u0010�\t\u0002\u001b�NM����{���֛�_N@�]��Q�\u000f\u0010\u0007��C�[Ɖ�\u000bAK\u001b(E��C�����:\u0017�PI=��}t�_�g���wP\u001d�\u001c�|�/a���A��\b\r�]u=J���:\u0015,6��n'�\u0010\b\u0007��W�\r\u000eNQ�f�fi�ZTƬ�C0�\u0002\u0007\u0003����#�\u0011\u0003�Y\u0002\\�٠ڲB�\u0012���nH^�V��7���MD�n��\u0011\u0014\u0019�v�[����3���\u001e\u000fP~%�H�ߏL�r$�@��\u0000\u0005�-\u0012�8]\u0016Q=� \u0002�s�6\b\u0001=7��^h�rc (\u0002�+R�Ʊ��+\u0000��88�٪� �\u001b���;\u001a�$\u0000\")�zU��5P�\u001e�8V�B�\u0015Z�LŒ�{�)kzH\u00101�\bՆĩ\u001cy���\u0007���\u0000h��m��z��+!��ּeW�Tv#n�}9�.{rm�K��o�E��>@���|\t\u0002���*�޺91�#f+ud����k_���;�� h��\n{��\u0010��˾��}����w��\u001fRN�Oo �f�I\u0003�o�϶g�\u0016\u000f{�)*Y���IF*\b&��\r��1r�������~m}\u001fRҮ��\u0011�uI\u0005\u001a�F��\u0002N��;�Fٕ��0`K��R�\u000fӾ�|Ϣ������e\u001f·�Z� ��\u001c�ᕎN~\u0019\u0000j/1� ��}\u0015�@i�IJ\u0016&�O\u0013��Q>�r�⍎l\u000fZ�[�e������BkO���su��m��&\"�?:?5��t�v�0�c��h�N=j��\u000fL�43�ſ1��e�*�s\b�56�e�^F\"@\u001b�c+Px����:�\u0003���rq�Q��\u00168u\u0018��1G5�����j�Y\u0011���&��f\u0016\u0019pHK�)˗z�>�\u0000s�\u001f��\u001f��/�O�ɻ-;�~N�6�w�n��|��+�$�G�7,#��oy�O\u0017�\u0016�ܜК-N{�}���fqK1\u0012�r\u0011��w�{�:�ϻc\f�}�� \u0000F���<���\u0007?s���\u0000�w�\u0000�^�O�O�t�#�^�Er���l�\"����f�>\u001eW����C\u0000z��\u0007Ӂh(MI�v�ij;C,�Z�\\�\u0001�1\u001f͏����\u0004c�+\u001dwz���s�\u0013ʾJ�\u000f��Nnm�$0�Io�w4���]ߍ�\u001f<�c���$��\b�%�EѬ4[t�\\�\u000e���\u001c6��V��\u0018��ï�(U\u0013�f�\u001c��\u0004��C\u001f\u000f\u001cG\u0014�-�\b���׻��p��ǖ ��8�F1�גD�\u0005t���\u001c������寖4�\u0000&�7����O>���B\u001fO�v=}�#C\u001b�Z]7K2z6�+Ppg\u001fh�\u0004'\rnyk��L\u0001�u�|���#�]\u0019�\u0019������c#,���_h\u001c�\u0007u�o*��o��+T�o��\u001b�[$���.\u0012h���7�a�\\-x\\[Go6�i;/�^�9�6CQ��\r�H\u001f�����k���~���.t�\u0004���d�;+׍��%�1U��Q�R�\u0011@v^`o\\�-\u0007���۸\u0004��u nF�?ҏ���Mc��/)\u001b�\r�\u0013[���;�=��q7�T����:��A��s,\u0017\u00162�Dwh�$��h�:���i���w\u0007i���\u0000总\u001dߥ��c��ٺ�\u00071#O�b<�c����״�-�py*X�\u0010^�sj\nȥZH��*��Jj~G>�=Gd�+q\u001b}�(ů�o����\b�\u0000���\u0000�m����5M.��$w��\u000b�W�W��ḷ��;�n��GL�����t��#�#q�{Ǒ|ﵻ.X�1�\u0005e�\u001b���;�\u000fܟ�-b��ߒ�@�ԕ��\u0005�����1v\u0016著j�D�@Ew�yoi�a�L�\u001f�'��L����܃_\u0006\u001f�]T����RX-ѷM�\u0002@�\u0010\u0003�T\u001c���<\u0007J����g?��G��_-�Y{ȒZ�\r(�\u0011���l����e\u001dX��P1\u0004�B���~���3!\u0017\u0003,�\"6m��{\"l�\u0011Z0\u001b�\u000e��;�D1���ɖQ\u001b�\u0002?L�Yd)�P0\u0007�\u0000|M2\u0019�b.�-�l���o��t����V,��I\u0014���5��[uvخ>�d���x�\u0002\u0003ҿ\u0017�CۯC�DJ2��W\u0014d\u0005sFZ݋Y\u0010L��A�:���>�\tG�q͔&!+<�$����h�\u0010Q�\u001b}�w��9�(\u0012<ܨ�d\u0000�����kK�/�H�cFn4�=�ߗ�u\u0013��'\u0013]�ǔx��J~G�.t����\u001ff��:\u0006�KY\b�\t\u000e�z\f��Lg��e\u001e`\u0017�2Ǫ�J\n4���;��]pi!\t~�/�y3�K$e��޺w�w�֞l���o��ۺ������kߕ)�\u001c3�\u0012%�d\u001cyK\u001e�\u001cL=9\"Yu�p��42F�ha\u000b��\u0001]�]ώj�\"'w��F1�>\u0019\u000fX\b3vA�v���\u0004�\u0004�ׄ�J���k��yr�P�\u0017��z\u0017�\u0016���R�\u0007��s}�\u0015i�yr��x�YO�Ɠ\u0019�w��[��2�\u0002Z��H\u0011UWj(\u0002���r�3\u0018�dv\u000f�`��\" \u0000&�L������m�d\u0015ZӐ=����`\u0019��x�\t���<�m��U+�\u0012�7�[�z\f��}^T�0Dx`u\u000fW����!>��5h\t=v��\u0006W\"��\f#dg� �*�\u0007!ƣb*7�}�\u000e\"938�!r\u001b�[A�܉mٶ�To��Ƥ��\t��Zp\u0007��M��\u0004��m8��S�Jx\u001fju�H\u0011�m�.(�K�\u0011յ�m\u000267� ��(�\u0015�製O��F\u0012�}#v�����s#���B��2��\u0017�Ϳ�S�d'c�9�Î8#|��瞮W��ђ�o\u0005�h\u0015Gٯ#�jbe)��X�c\u0000\u0000�.�\u0002vۡ��_l\u0002\u0000{�N��[�\u0015\u0000\u0003�\u000e�۩�\u0019la{�j�CʷC\u000b�\u0000��Z��?\u001f��Oþ[5��β����\u0000\u0010:�iS]�>9\u001e\u0013ޝ��\u001e�\u0015A$S�\u001b���p�\u0012X�<��^sV�/\u0013AB:�\u001f�c��8X����W7cj;\u001f�'�#a�\u0001�R\u001d�>�1}t��\u0000��E\t�kԝ��Njn�,�[�c\u0013K�3(�6*Mz�#�2#\u001eA����^_ڃ��D\u0002D+^�V�#c^�\u0003-\u0018�Qa,�\u001e��!\u0017Q�/�8ѪYMC��/j�#UѨf��\u0015�͒ZM�C)n�+M��9L�F�9x͋\u0004_�=�\u000f\u0018�>#QA�tj�v\u0007!{�\u001d�6���y�|���\bޤm\u0005�\u000f\u001b��\u0012��ũ�/���>�$O�����x�:|��\u001d?�ߗw��J��[@y\u0006@]\b\u001d�C�$��7\u0018��U\u001e\u0019�\u0013��}4��H\u001d\u001fD~M�uyo�\u0011��?5M\u0016��\\ �\u0019$q\u0014w\u0013\u0011D�!�\u0015������2��0�q�߱��Wj��\u000f�k����=�^G�x\u000f�g�<��_�Y5�kwԴ[���^�Jq-�pw�b|\u000emt\u0019���B'l�:~���;Q��b'c�?[$�����?�l\u0017M�_\u001d:��ONI.vP�6t�o��Q��t\u001a�R���Kv��4y���\u0014\u0001���\u0007���W�ִ�w�2Zj�ȣ��],�\u001dК�_l����*��ď'y\u001d\u001csb������%��e��Z\u00042X�|�\u0018�*�\u0011�\u0005\b\u0016O\\\u000f=�^��υ�$V��\u001f)?�m���\"��L�k��ʄ�\u0014�1���;\u0000I��6�\u001d㳼iԙ�3���Z֯�/tH[�a��Y\"��\u001b�J�\u0019�_�{��Z���I�\u0003�S���B1o1�\u001d�ɻ$�a�ߧ`|��.�o�m�æ�V7Ri�r}C˾W��W˱�\u001a����r�g���\u001e��,��\u0014n?`�،�7,��\u0000\n\u001b�2\u001cϼr�\u001aF81�0�q����\u001d�K�������址խY�hµ͍�Q\u0004��\u0012�+�j�GPs:\u0017\"\b�~�A�ቔ:s\u001eO�}��9/�'�\u001f��\"��e���B\u0007ɿ�?Z�2_y��\u0013� �m��\u00054}>��J:I+S�q~�v�\f=��[Dx�k��8|7�\u001e��\u0000�o`�_�z�i5P�\u0000\u0005�Da�Ŗb��\u001f���\u001d�\u0014������mj�=ڀ�nA@\u001b�aJ\u001e;��<�4�$\u001eo��� (w3(\u001cƾ�*�N%8��\u001fh�ٙ��S��b@6y��r�\u0005��է<++�\b���F\u001a��� z`;�!\u0016\u001d3��U�X� �\u0018�A�&<\u0004҉AaQ��${er�\n�^�Ț�����s\u001b8xܗ��*�\n���;��,\u000e����\u0000寘do.Y�X�\r�s�-w��\u0005s\u0003W#\u001c���\"\"��\u001b�^ntd��$\n2�h\u0005;\u000fq�x�}�X��u}-��8,��4�\u0011�ܺ�\u0010=�3\u001c�\u000e�\u0000\u0014\u0010\b��z&�\u001c���h:���Nٓ(��\u0001.\u0013E�[܃��o\u0002EkO�r �xO��2 ��,��\u0005A�ڕ�\u0000>�xh�\u000ekv\u0019]����rv�\u0000?\u001a�mH��\"�r\u0006�ר�����(;���ߟ\u001a��g��g̅9ǣ�Y��R�6\f��]�(\t�\u0001r+�jd\u000e\u0003\u0003�R��J#��D0�v9\u001d�\u0000�_�w�o��t\u000bi\u0015��ʋˠ~���z��B9\u0001_�t�>��\u0013\tx_�\u001d�[>'�G�3�^o��拯,~Yi�U�DO1y�\u000b}KV�h. ����T�l���k���\u0006q^����ȝm\u0011���o}\u0004\u0011\u0003V/��r\u0007�����������?�/1ƞ��h�`�'You6*Ha�\u0012��mZW*�<� Ŋ'��?m�\u0011��\u0005\u0013��w��,5\rG��\u0000�|�e$��ipZ�Z�\u001e�̬�k����\u0000$��s#�����x�w\bӑ�\u0014#�s�O��\u0007�\u00008��-�\u0006��7杍Γ\u001b[Z���\u0000!\\r��<�\u000f�=-g_���|�O�#p�7U詹�qd���\u001b^绻��8W�ÎUl\u000f3}Op�K����5\u000b�u{�[�/Y[�-������Y��\u0015c���\n���Q\u0015��j��n8���\u001f����-q��,�����\u001c�������4��\rB{�|��\u00147���)�|��\u0017M�\u0012�&\u001b\u000b_/�ii#?��#V��3G�g����!@\r�\u001e�W��B�L��Qώ�;��-������\u0000\u0003�/�Ǘ-��[�#��7Zk�$FX�f��\u0000�\u0018�W�$7Q�\r,��x\u00123l/���I.����{akv�V�\u000f�MJ�[yl�\fsX��[�)#>��\u0007^5+M���7<�\u0019\b�-3��\u0000�w�o`�V�����\u0007��5����?�V��PӴ�V��Yk\u0013\t�_�v���|ϥ��E2\\iM�D$\u0001�X�!^���1�ٻ?S�œ\u001f\u0000=��\t��:;tp���ˏY��d����Q�\u0000:\u001bo[�t�()<����e���*��K_���\u000f=�wW�\t,w��\u001eq���Q.���m�⻷�u�S��ls�{\u000b]���؞�(��Ĵ�\u0006�2D�O��@�H=\u001fli0��?\u001e�\t\u001e\u001e\"2D��9\r��`�\u000b�O�q���1���ճ5�\u0010�Z�w+k\u001c!��U�S�s\u0004�v�\u0014\u0011^��\u001d��O?H��gc��\u0010G�[�\u001d�\f�mN�BZL�p�o�9�~�\u0000I\u0002���\u0018uq0�cǚ\u0004\u0010FHFv\u000f1�\u0007g����q3�>c\u0012^yZF�^�򰭂=Ɓt�\n\u0016��\b6�BA&\u0007\u001bv���;\u0003�\n��vI�.���\r\u0018�\u0000T<9@��\u0006���|��\u000f�\u0011�-����D�7Y���a'�X�v�0 �>f��\u0000�\u001b4��q8���\\���=��\"ޯ�wF���;�O\u0002\t\u001c\u001a���ڻ#�\n\u001e���c\f��h�D}\u001a���\u0019\u0005��n\u001f\u0012��\u0015�k�22Ǧ\u001a�8?^�Bf��3�8����<�}a(��\u0000L���\u0006_P�X��\u0004�OQ�E׵s�í��!�h���\u0003�\u0019!+�\u0003c����������}F\u0019�bx�\u0010>$W��M)\"�ډ�\u001e}T�\u0003m�Sq���-O\u0018�\u0013^��\u0012��H\u0013�f��2\u0005k��X�r[�O\u0019P��\u0000n�}\u0015�4�7\u0007���-���j�O�\u000e`W��5\u001a�W�7�\f�OP��[����jW�I%��*i�(��ZE\u001f'g\u0003b��[��bX/?���L�\u0000\u0000�>\u001f\u000e���ʍtp����j��z��O�4�\u001bE�4�\u0012)o!����{�x��~\u000b[+9'�}GS�l�&�� fOl�]��OJ2�c,�̃�x @��y<�\u001f3��\u000b��3�~���\u000e�K�\u000e�����r�D\u0007X�lrd=#\u001d��\u0010���_�|��]\u000b�3V�����Ʊ�����D����O7�\u001ay�=��\u000fu{\u0017�/,$oOU[h�㷗��Ǐ H���g�\u0018;R]�\u001c>�h0��\u001f,�FLR��\u001e#Q9\u0004���E\u0018�边�\u0007�\u0003�/K���W���;g\u001e>?\u000f,`#�D\\���xN��\u001b��X/�����\u0000�įϏ�̯;[�O�W�w�i�\u0017V��o�+�W��w�m�A�ˬ�Sp��X\u0011��t���@*\u0015jsڱ�3g�\f\u0018\u0007\u0015��\"?�'��_�r���r�ڇ#���?���n��?�\u000e�\u0000�\n|��\u00008��?�~W�\u001fGӭ�4�Z��\u0000P3YM�y��ש�j~g�\r�\u0017���K2�%`��(\u0000gY�`��\u0018\t�\u001b�\r���=�#�Y�y%��\u0018_�X�y������_�z���n��\u0018��\u0016��\u0002\u0004i~\u001fQTŰ�\"\u000b3\u001f��93���Cz�\u001c��q��\u000f\u0011 y���\u001aE��\fRD�ф)0�\u001at\u0011�\u0004dbG1��.Î�0�cI��3���2t\u0003\u0018��t��\u001e�=�!����\u0000/��x1�8�c�o&�$��\"\tې1�}e�\u000f��?ʭZ�ا� �\r�\tx����B\u001c,��J���\u0005+�n��\u001eЈ�\u0019�\".��G��4~�h�T|>\u000b�},r�����k\u001f���\u001ev�m3Yմ�\u001a��\u001e,f1?\tY8�V��%BI\u00000&����\u001e�h���lj\u0011�5ݷ�vS�.��\u001f\u000f,�\u0013!���;�q��q[�����s�]��ҿ9�������]�Z_���R\u0019��\u001fQյ{h�\rWBV��N����\u0012��c\u001c��-\r@�\u000fi���n��\u0000��}�ͥ͡����!���1�����k����O��\u0013A����W\u0016�\u0016|p��@F^��\u0010\f\f9ƀ�+ �~��}\\�O�^^�\u001f�Ǟ-=_.y�����4�s�k�[B�f�j�WYR�\u0001%@���s�=�Ŭ��pv�fσ]��@�,�D�W'��i�z|������P\r��t*C�����~\\~y~`�+�j/\u000b��\u001d��-��j��\u001e��=\u0012;�>���\u000f�\"�0>�m�g�]��}���b\u0011�1�:�L']<�{�\u0006��Wh�+�bx�8�*&;\tF�H}��|4�5�K�\u0000�[~U���H�K�c��\u0017V��Z�\u0002P�4�K}\u001d�-��p[�d\u0002\u000f_���wo{\u0017�R��'���f\u0006]\u0000?��}66��/�v?�\u001d�������3�\u0018\u001dx��\u0018�P��\u0007~�\u0004~y�\u0000� ��ȓ^y���Uǘt]>o�[y�E�ȕ�\u0005ݴ>�֟s\u0017!�01�p�o����\u001d��\u0011��W!�S!G\u001c�Q�4$\u000b���Z�\t��K\u0013�M\u0003bq�c�\r�E���7�q_�B�г��\u0010̿谤̪�QB�i\u0014�`���7~��{Y�Q\u0013�H\u000fG=��^���ќ�F\u0013��\nߟv�Oi���=�����8-#���\u000f�[:�t\u0003�\"����\u0016�\u00039���OO?\u0006G~��v�!�\u001e$F�C��\u0000.���O,��h�KKd��\u0005\b�\u0016.|8��(�\u0001�:���������i�1�1�=G��Fqwwyp{�����4\u0007��;\u0002=��|�!\u000e\bF\u001c�\u000f��e.9�\\���=U\\\u00196\f\b�xw���fv\u001e\u0011]�U�AbS\u0019BІ]�jw��\u000e��\u001e\u0013��ˎ#������#�nO_�������Kĭ�Z���� 0 |ǎC)ڈ�8\u0005�9�s@�\u0001Uf�\u0011P9w#�4Z�Y�ޛM?H�\f��C��,�k\"c�\u000bP\u0007sO\u0001�f�e�9���?&�\u0019��,I$�im�[\u001dA\u0001��\u001cרڦ�l��8\u0016�\u0019\u0003��\u001c���+�,Gun^H�\u001a�}�^��2\u0018'\u001c��T�N9�\u001cQ�Y�\u001dSN($��j�CN�r�D㟓l'����K�V�H��O�\t\u0018(��\u001bz\u0015,v\u0007�6�t�̀έ���OO��9m}Cג��\"��j;_��L>��\u0007�iP\u0000\u001fN`��\u0017����\u0012j\u001f���?9i���/K#3@PL�/F?���\u0000\u0007�-��:���سh�m�S%�7����(X\u0019�\u001c^�\u000bT\u000f\r�\u00031uzc�^]\u001c����4�C\f�����|�i��s2�-�T����HE\u0003�'34:\f���Dm{�\u0007\u000f��W\u000fgb�,��~ޞ��~Z�7џ7j�]G�\u0013\u001b�эZ�O/��\u0000�\u001a@y\u001c���\"Y?/���b���~n\u0007bh�\fCY��\u001f9�>@��/���,m<1���~�\u000e�휖���}+�H$\n�\u001eږ\u0016ڂ\u000f�}eZFv���\u001f�i��\u000e���\u0018ᗟ��[D[�MV;9(�P\r\u0005;���(�|C�qG$sp\u0017�K}Y\u0005�R��p��\u001f�\u001c�� Ys��Ì�6K�֥�oBB�BXȦ���J�'\u001c|[�a,ӏ���Qv��2 T�\u00127u$T�TT�\u0004�\u0011�\u001b&:�\u0014\u000e�P���\u001d�����\u0018\u000eD����2�2�\u0006�.\u001c|E��w#����pK�Z�\u001d#\u001b��\u0006�^�\u0005*sk�\u0017�\u000f�<�(��o�K�S3�P��U@\u0005\u0002�\u0000^1�y)����P|M��@v��b�I\u0007;�4\u0004�w\u0003߶�\u0018@��&\u0012�J�b��\u0010{�\u001a\u000e����X\rd��^�t�\u0003sN�P�\u0002��'T�)�s�}�\r���*\b��\u0003�\u001e��]��<�\u0004���%{�\u0004}\u0000x\u001c4.�{4.\u0012�\u0017���Z�\u0010q�<@�\u001dVJ\u0004�\n�\u0015&�+_寀=p��*<��9y\u0011%�CJ�����\u001e�v=��6M��H\u001eܨc�kʏ�E\"�h\u000ed\ton'\u000f��\u0000�H�����m�O�B+�2b@�95\u0018HJ�����\u001a\u001b+�duR��Ӱ\u001f\u0017P\u000f�\u0018�q�=\u001a�`\u0013�\u0010S\u001b\b�O�\u0012\u0003)+�|J�w4�R\u0006>��`��d\u000f�6]c.�\u0018�\u0010=���jt��8�\u0014A5����3�rFx�c0F���\u0006����X�~ai��O�-�=3ZH��4̋�L�*�\r��;:R➔��w\u000fa.�\u0007\u001cc��8�(H\u000f�?��\u0011���W���NO4�_��z�L�-\u001d$~!jI\ny\u0012XS�f�G��9xZ�E�k�Xr���\u001e(\u001f���o�|�y�d<�a\u001dȹ�}ԾN�\u0016�3Kom��.�\u0010�_��^\u0005�V����Od��iC�Rsb\"1d2�kQ^��O���7���~<����q\u0000x\r�<��u����F7���\u0000˴򕍦�\f:\u0017�.�I��W\u0015��L�Kx����%#\u001c���Ku'\u001d>\u0019��7�E\u000b�u��j�<\u00191��gU��^gr�������=�\u00001|��U�\u001b�\u0016}BY�<��/�\u0017�|�l�ڞ�9\u001b#�_��I��aN�ghv�{'G-T��i\u001e\u001cq�t��\u001cϓ��h5]��8�/FxsŅ�b�\u001f�dy\r�:ȇ�o�7巖�\u0000.*4_-�f�;\r\u001bM�X��oO�̈ޟ�.�\u0000;�]ȆGv�%�x�ig�M\\�FY\f�G�=}��OҾ��v��{+\u0016�G\u001e\u001d4\u0005Du���O2O2Q�\u0016�\u0019�[��l����Mj\t\u0005k�|�U�� |)߆Ycj��\u0016U����a)gH�\u00007q�-G��c�JQ���ݑP�J��_R�}��\u001f�@ ֵ#\t�d,ry���\f�\u001dbYy����\u001e_gӈP��jO`;�\u0000\u0001{�-ɭ��әGq\u001a�r�X��kɔt \n�Fi��m�A�v��7�Pc���$��.�\u0004rz0 ӑ��}�\u0012D'\u0011�4{��l\r��b��i �2%䡾/n�\u0007A�\u0006�u\u001a7_��)\u0017-����>ex�\u0016\u0012\u0015�R��~���3:\u0012�Ɏ�\u0007��V�7�o\u001b\u0019(�\u0001aZ��f��H��G��\u000fq��\u0000�\u0016a\u0018�\u0001&�\u0003Q���e�1�!+\u001e���wJ�\u001e6����r�M�m�w3+\u000b�U���\f�A���g\f(z�ߨ�\u00001�%&<�\u0012����\u0000���7�˨����\u0000)�\u00000l�\u0000|M+�_Rx�w��1�]�#\r\u000eL��8e��q��a�\u0006xg��\u0000\u0014$>`���+ZE{\u0005�:��4�*���%�������w2��zr�>��!����H\u0003�\u0000����`Ծ���y>/���Uߜ<�{{t��:�Lq\u000f�on\u001bҶ�@61�n�@ڂ���q�<\u0011�����Æ������w|\u001fo�g��S�p�-2\u0017hd�5[Yx��^4Un&��\u0000P���W���/�7�X�G �1��������p�Q�ѿ�&?.|իhz~�\u0016���,l�kd��`��l���u��I��w\u0016���G0��!uSO�3��9�R99J\u0012\u0000�\u00126?����0�< c�\\_�.k��P�̺�}����]^_�sop.\u0018����r8N~��\"�\u0006�\u0001�3><\u0010��-�\u0005�b2\u0012e3d���X.�摢�v\u0016�v���\u0012�^�̋�yDM9U�#��t�H��$&7 ,o���\u0000̚ט�ǤI&��u���`��u�?D���P����\u000fդ�ԍ�e��=+�X�y\u0015�b\rXK\u0011\u0010�\u0019F4vߺWq'�y��Ր\u0012%\u001c��A\u001c;\u001b\u0015����`z\\�ַ��X�5��4\u001b����\u001b%jNuM\u0013ӎ��\n��˫X��N��K���ms\u0018C0�\u000f�2z���\f�\u001d\u001cl\\s����hze]O�E�O�^�{^���i�{x�,��\"��\u0006�W�\u001c�������fD2�Ď���5L\b�\u00127���*�n�]mԀc�Auo�\u0002\u0017��E��:�$�SC�8�!9\u001b�~��fQ�b\u0000�������\u0000�ٟ�v^}���$���jw���s[�V���\u001d��Bk[�\u000e�7�Mi����j�����N�T�#�.ϽD{SMcĨ�#j�\u001d�0z\u0012\u0005_�\u001d�`�>\u0014�?SF\u0011�\u0001�\tm8\u0011�\t�t���\u0016��=c�q���?�~m�nn|�ism��Q����M�c��\\��D��Ԅ��Ј:|�,Rh7#�͔L=��v�\u0003�J#�8\u001b\u001f\u0012#����\u001d�GGY\u0003����;>R�\u0018\"X��?��!}�>�7�}_Q7��3��Ť�Gi�h�3�����\u0019V�[�1�bn\"E+�ñ�h�\u0019�1�w�v#�~>�p%\f�6����\u001e{�{��9m����[����t�x\".�\u0014+\"�����0�u,�\\��,r\u001e\u001c�0�#�y��.(�� k%خ^�\u000fG�h3�3�ʞl�\u000e��h^G���a�<߯�\u001a��i�Y�\u00041�_X���\u001c\u0016\u001d\u001aiݥ��9L\f�\u0018ՈQ�����ŀ�5S\u0011ǧ�꜈\u0000c�)NGa�6$�ۯ=��\u0004��\u001a],%,���E�)\f@�x��\u000eW�\u001f������S̿�Qj�\u0000�?��>a���\u0000�u�#�����]��'���?UKjRE,:���.ݔ4zdn�w���2�\u0018\u000f̾��#7jJ]���勳*Q�ac&`E\u001e\u000eG\u001e\"6�\u0019'\u001b�\u0018�\u0013�W�\u000f�S�졏����3v��P�}X�u\u0007 �(�[�\u0007��q�B�4����\u0018᷶�6j`\f���\u0012��!�(�~�F���V���\u001d< \b�TC�ꑹw�^�R��}X?�$�\u001c����Kq*q�\u0001\u0004�ƈ�~\"z��eum�,\u001d��e\u0012V�FgId����Y9\nFyQC+�\u001b�j\u0010����\u0006\u001e4�%#T�\u0017& �\u001d�I ��r*�\u001a����&\u0014�8�\u0015n�\u0000`��1\u0019%w�\u000f{�߳\u0005q\u0011�%���_I�D�8��\u0000\u000eL��ۂjk˹��(�S9\u0013w�i�Eg�4�mh��nco��E\u001b,̪�����\u0013��Kʎ\u00004\u0000�q��x�zg�\u001b���n��\f�X딽C�l\"�,|�{(��˺T�O�8\u0005�\\eߏ6khcd�i\u001diRTv�M/nv�p�5��c�e�\u001f\"Hu����-p�\u0000\u000b�ir\u001f�I��3y���k�o��O���އ����ج��1Ƿ�d�\u0003�蠵/�%\u0006T��íX��!\r̲�j�I!��|a�h�0R�ŕ���i��\t\u001d�\u0013�\u001b�M�>@�?�I\u001fc�������2��ڭ<��(�\u001f)\u0000k�R�\u000f�o3X����&猄\b]�me�\u0018 S#�-�v��(:��\u000f�\u0011�2`\rN�Q���\u0018L_��K�j?�Yڸ�:MV� �$'����/NѼ�m\u000f���D%V���T�)�\u0000\u00168��ᯈ�����^�f�\u001dA�{�\t��C���\u0007��yp�0�;�䄇�A�\u0013K�&��a5�\u0016\u0017�J\u0019T�6N��%S�<|y3\u001aV�zfT=��1�z�?\u0017����t��d=�Ӄ,����\u001dDD�\\$�����\r�����+���3�\\!&���Ơ\u0010\u0007\\�ͦ�x�e�(�N'�.���x\u0007\u000e�\u0016h\u001f�BC�\u001d\u001eksl���J��YU��\u001d��CB{��\u0018��1'ȃ�1$CyX\u001e`��\u0000m�EP\u001d$\u001ckDVn\"�\n�ԟ�\u001b1��\t\u00063�H#Ȣm���qؒz���6\u0014\u001f�J\u0013��f\"Yf��)�À2��\u0010d~@\u0013�%Z���5r��y7�\u0017r\\�\u0016�4;�I*j\u0018O4QGB\b+�\u001d�Q������?��i�{�ď�6�t���C���t\u001a�\u0013���#�>\u0011_\u0014~��\u00008����H\u001e�K�|�\u0007��\u0000s��\u000b�N¶6�4��!�ISC�9�O�݃�\\\u001aa�Q?�dž?�G��\u001a/�\u0017�Q�\u0002Z�����\u0000>|r\u001f��\u0007���\u001b��Ν?=g�\u001a+I�\u0011\u0017���\u0019\u0004@r�!����\u0001�V\u000b񎙪\u001f�K�BDh�p���d$��\u0007��X�\u0000�=��\u0012�\u000eМ�Q�\u0014@�\\�M|\u001fg�K�?̱�����\u0006��e�e[&b�]����FQ�69o��oj�w\r\u001cq�xf_i�-��\u0003�Ɛ1=l�w��\u0003�\u0018�����\u0015Ʃ?�|�-�����$Z\f�\u000b��GgZ�@j‡.��\u0000\u0005n�\u0018���C9�;�\u001d�������\u0000���9r��Y��\u0010y~�_i�/\u0014��\u0000����5����em�;}*(���\u0000�Zv?\u0003�P\u0002*sK��\nݶO���_�C�]�?�'��*���\u0000��^w�O��F��i�j�>j�����6:��V��\u0006��\u001e{u�KI�6��)4؊���\u0000\u0004�i3c0�\u001d.)\u001d��\u0012e\u001f��\u0012/̂��Lﲘ�\t�.�0\u001b��@@�\u0000[�\u0002Dw�L*��\u00114\u0001��X�����Ax���,m���I\u000b-�ڄ�+��:���W\u00113D̼j�h8�D5=��9�g�u\u0013��S��>�7����'f�=����4�\n\u0003�\u0018�\u0000\u0000�m\n������o��/��_�o��/-�W�{�W\u001a��O�\u0007��a�դK�\\�ӭ�i���k���ӭ�9\u0019f\u000b�� \f�}��\bv�ni=�͗$���\u0011�vI�9�D\u0012}F\"��t]����{��~�O\u0016,y�BG\u000e>Fyj�dk�\u0007r9mO\u0016��\u00006��(�\u000f��toʏ �\u0007�4�&y+K[\u001d2�{�\u001e���a\u001f�u+���\u0019��c,�\u0013��@?A{>z.���K��\u0011�\u0011\u0011\u001cD�Q\u0014.�&�����\u0000��5٥�VD��Fd\u0001\u0011\u0010dx�\u000fyڷ��yc����\u0000�dǨI�M[�zE���ҀR�(�Lb�Y`�:\u001a�e\u0000x�w\u00145$��\u0014/t\"k�VH�\u0006�o�\u000eL�\u0016�*\u000b�ڛ�\\4��F�\r~�F2�N�(��\u0011�.��7%����濒�Ѭi>G�M߮��Q�\u0014����Lj�\u0011�%\u0011��T*�„�֙�k{?>�\f�Y���\u001b�{���a�7����W��l��\u00008�ĺ�~D�w����٥Ǜ&�F�u\"\u0014=����y:�5\u001e�0�p\u0006�@{\u001f'�ߞ���\rB��\u001dr{�G�~�}��j�\u0011&:8��ӏ������]�\u0013�\u00009����o�=k����C����\u0017�K�[�����[Yu�J��cq:���0G\fP��\"\ng��\t������V�=˴|j\u0006��q\u0014*��'����ɫ��i�CD0�\u0001B�I\u001b�#ʀ\u001d�S�\"���\u0017w7s�KIf�\u0007�\u0001�x�\u000f􀒩IU\u0019F��J�I-\u001e<�����^��\u0010��H��4(\u0005̱�\u0018��k\u0003�d%<\u001b='����\u0006>\u001cD�s����x���c�g\u0019\rp�]u���~o\u0004�����\u0017��n���c�j\u0017c�\u001a��u8m$-*�\u0006�{\f�F�gUj,�2�\u0004j\u000f������\f~��^|#�\u0010�\u0012|�=R����jg���q\u001b���\u00146���6\u0007���u�;\u0007Ӓ��_���Ҿ�������({-&�\t�:�\"�D%BZ��Ms��wgBy\f��>\u001c��/k�?\u0003�ϱ�u2�\u0001\u0018d�¢G� \u001d�q��:���-�Ϩ�_D���e��+�w�+\r��*\u0014e�Rӂ-�ԁ��qY\b?k*ǟ�tx�\fYN] �C%���=ۅɃC���O\u0018ǩ�9B���?I�\u0011�Ť�dP[�}\u001d���t7Q!����:�\u000b�\u0011Jj9�J��`�?\u0014�\u0018�N=\u000f��FX�\u00008��z��/�.��:v���\u0013C\u001d����\u000fV��\b�\u000f�\r�e��2��\u001e�W����d8��'׆�{>y�fPL4;Q�ڀ\rϿO�:8����\u0011��ǧoS�b\u001a�\u0000\u001e\u001d?��ܿ��#b�ٔ�Mp��md�ئ�\u001a\u0010v\u0007۸m�\\�J#��!׿2�_����<�����_@�ZMjxڰ�k1QnYI\u0004;-)\\�����}�%-��c�x��\u0007��3�_�D��M�^�!3=\t��?\u0012�9�\u0005�PFQ8�\u0004i\u0014���\u0015T-v�\u0019�z��\u0012\u001fr��82�5����Mj��Y�{\u0006\u0012*�H�\u0007�3O3\u0019\u001b%�\tÔhw�Q\u0016�}e���\u0006���\b��R��Yc��\u0007:9e\u0000$l\u0010��5�sK��Cth\u0004��v��Y�(�!ʆ�'ym>��K�I�r�0Q\u000b#+�5?�~��剌<��HK%˹\u001b�ygR���)�,�[�$�\u001e��\u001e8q�k�r\tɥ�-��e��\u000b�\u001au���щ�Mʻ��'���jp�\u001d\u0001���G��K&�9���\u0019�7�.�Jh�L���\u0000��\u0003OJ\u0014�cص)펏\u0006�)\u001e���K��$J_Q�\u001d���Վ�\r�Goj6\n\u00147�&��>��8�9:���\u001f/О��E\u0019�m@zS�Ԑr< �ѷ�<��\u0012���\u0018�\u001a\u0003N�\u000fN�~�\u001c(\u0019w��%uDd$\u0017sב;W�\u0006�M\u001d�\u001aM\u0017����i�o���\b�XL�ƈ\tL�\n\u0016�Y��C��7��Z\nS�]\u0013r���<�x,Uw�w��!��\u0012���u`\u0016��Q��qA�d�6+f\u001e�6؎]S�G��1G\u0004\u0005�iR����U*��Ï��;��L(�b\u000bB쇐;�\u0015�\u0014=��#q�\u0004H�l\u0002��un��#�Bk�\u001d�\rj\b�s��#G��H��\u001b\u0015#�\u0013\u001bMC�^�s\"�\u0019~8�֧��a��5�����Q�~:!o�7P�$p�A%~\u0010:�ֻဳk#�s��<�'G�m�v��\\DK����7ڃ�3c��N\u0007��.�]�ǒ<`z�r\u001f�:���>�뙬����Ֆ\u0013\u0019��F�\u001e����1�,����נ͓J8D�\u001d�q\u000e�\u0000������ϝ?.�E�-c7\u001a���\u0000Kp\u0005ZIm\u0014}�\u0000\u001d�\\��oiK\u0014��Uˡp;c���-_g\u0001�7�>�f?�|�7�E�\u001d\u001b�'ʺ��G�D���$����]��q��򥌥�ȵqM���/Y�zL�4��?P\u001d�5\u0018��\u000fd�\t��˗\f��������\u001f���\u001eq�<�us1���x%��y>�w\tb�{Gz����M�sq�E���ge\u0015-'\u0014�c^��h\u0000�Č��@e���w�:\u001e��t��R�F6Mw\u000b>�\u0000w{�\u0013�p\u001f�7[����_�\u001f<�\u0018�5�\u00009��u\u0018�\u0014��/yj���ϖ\u0007?�\u0017��Qqr6�,����.��X��i�S\u0003�\u0003��w��瑷�>��\u000fa����\u001a�tk���N@�X�\u001d�b� \u001e9��U���cg\u0006��\u001b5\u0011���(X�R9�k�o���z��\u000eD��)˭�����1a�06\u0011\f\u0018i�6�5ܑ�Ĵt\u000b�\u0006`j\tߠ�;�\u0014e-��l�e��av��%��B�I\r$�؃\u001b/�#\r�MI\u001d�TI\u0007���\u0000鴩���\"��Q\rJ���Y�*���݆Dʙp\u0013���\u0007�<�-�\u000fsY\u0002F���U�#\u0003ZM�p�8\u0006����\u0019Kn��1ރ��H�m�c^.�P�.+��Ӱ��g\u000b�\u0003���?-�\t�Ὂ\u00198�$o��jJ�\t�^�\u000e�阚�<..�}�F3*�{n��\\G\"��GE<����C���\u0016)^�`����N���\u0007�\u0004ަ�Ei�33\u001c�띤����\u0000�>`�\u0004\u001c�\u0000�+��\rs0Y�#�a������v��H��b6��PAڹ��bQ�ۍ�&2�\u000fv�5���g�é��\u001c��f���\u0019uzΝt��ܷ�>YX$\u001a�f|�ޝ)�H1�����!Ԗm2�\u0006�T���&V�-\u0016�i5��F�\u0005g9N�\u0017��̀s�)\u0001�14�\u001fX\u001eo�����.<���\u00009~UK�/0�y��zc�~\u0019#����\rN��\u0006CB\u0012�e�\u0007p�>��sY\u001dg`h��T�8�}�\u0000\u001f�\u0005�V\u0019����\u0011B9�\u0013�\u0012�W���[v�2#�d�;�\u001c����z1(G`:��͎C�rw$9&\"\u0018x�1\u0002�\r�\u0000�����;y3I\u0001����\b觊� zV��O\u0016�\u0000\b\u0001��+$yX|��\u00008��iu/3�\\:�Iđ���\u0011��\u000e�7R�*)ޙ����/\u0014s�g���\u000e\u0001ț���p���e���+++�mJ�)\u001e�7�Ry#��\u0012vPJ0���\u0000R�T��\u0000K\u0011�\u0017\u0010�u�[��)c��\u0014\b\u0007�l`�}5���tm�`�\\\\���ʷ\b\u0015�\u0016yR���JG_��5�Րj�\u001d\u0018�����\u0003c���y�^�\u001e�e\u0006�����e������\u0013C{h��\u0016��'a�BQ�r�\u0018J&\u0019%W}�w|Bg3\u0003b7��}��b:����0�>cѧu��=F/$y���&T�5\u001b\u000b\u0015����R��9��\u0000\u0013�D�\u0019�\u0011^���jW}֚_��Ô\u000e*;u\u0013��\u0007��r{�n��X�h�ܟ�\u001f�}���=� ��;���\u0011�֛��ڡ��3$���\u0013��=\n2�Ѳ\u0018��<=�nD�\u0012}@n\r���-���oh�\u0012)ksʑ\u0016\u0011����\u0007��Tс;8���3��9r�y.8ǟx}-�\u00008����%����?�F�V�u�i�cә�6��Q>��iȩ@�-\u000f��x�\u0012���\u00145�i��\u001f��5}ǜe�l���\u0013�O�j0\u0001�\t]w��\u001f\u0018���s�\u0000��������ݧ�<�}ms���D[ΞZ�r�{�\u000f��R\b���J�g���K�d\u001b%�\u0006�,Fr��u\u001d��☽$�\u0000u��D����l�ؒ�����\u0018�!�xT�\u000f�D����j���&H�i�R�\u0014\ndS#|����\u0010{C���O�KO�\u0010��÷\u0014��9\u001bJ]c\u0001���er~��\u0003�\u0007]�솜jsp�;zQ�f�\u001cw�\u0018A�\u0007#�꟔v|�c��\u0014��K�\u001c\u0018�V�$�B\u0017p*���EC\u001d�t�o9�'���9\b�\u0019n��-��\u001ac,��\u0010\u0012�J�\u0010���E]��J�c�\u000f}�=�^<�+�>��\u0001\u0000��_ґ�\n�\td�����0̊�?\u001al\u0016�8\u0002��\u0002;�#������\u001a�\"H�Q�����g�)DQ=\u00129�i�d��'�7\"�A\u001bT�\u00162�ny�e�%1�<\fi�3\u0014p\u0014�w\n���edeJ:�y\u000f�\u0012\t�4�d2�mF��i*0i�g��\u0014�V���T��D�q��{�b\u0000� ��J\u001djky���})\u0016�\t\u001bԎ\u0015� F!h��\"\u0012T7�5��\u0005f%�d1��k\u000f<\\��/V�+\"ʷ�,���(�\u000b�h����z�\b\u000030\u0004-\u000e�/\u0010���S��Z5�Ky��E\u001c�9Q�\t+\t�p�\u0017�H�u5�A\\4�̨\u0015��K\u00141��\u0018\u001f]4�\u001c�-ܑ���-�\n)H�R��J�ö�A0ۢ>}J�D\u0011�ш�e�\u0014���F\u00008�CX�y�2��\n�\n�\u0001�M2�o�\u0019k���\u0012�Eh �HnL\f���\u000f\u0012\u00005b\u0002\u001a��S�H�`.G��Z\u000f�ﹴ2<���}���\u001b���\u0015����:o�r7b�fE��\u0019���6�4��RK8��Gs\u0012�$�j�K�!x���\u0015^�)ס� z\nc9�lw=?�>�\u001d�]�}K\r*`�\u0012_WL����bt\u0002H]_�*�\u0010\u0010[q�Z�\b���o�\u0012>��Dc�jq��q�H�A`z��w����\u001a��t\u000fR�Q�H,ⳑ$�x�\u0019�Z��T|`�\u0015��21��kiŵY�?�H�J�~g���\n�h4�7��\u0011?8�*!?*\u001b�\"�G�\u0004WA\u001c\u0010���\u0018;;H�E$��֭P�N��=��� ��'��\u0006C����/c�A/�\u0001�'�G�8���M/�>R��\u0002?/i֑�\u0015\b�(\u0007�0*�ck��]�7\u001d�f�\u0014ߞ�\rN��rx���s��R$|#�|\u0000z����ec\u0018{;M�O\u000e^�������$��*��\u0015�)&�f�`\u001e6���\u0018�'��dc\u001a\u001bhM@EZҤ\u001e���\"&�\u0003wa�$�̓�jg�g\u000f\u0015�Җh#E�4����]��)�1\u00052\u001a7��,cCQ\\�\u0012�\u0001�8�[�ar���+�z��P��]2��N��^�\u000bl�(Ѳ���5��\u0012����%�xB9b7?؏\u0006D��ou�\u0014\u0016V\u0017�^���H��\u001f�*U�\u000b#��*�N��I(\u0019~���)ƥ��x��WW\u001aq�\u0011��\u0013\u000fe�]��:�0�(��8?0E\u0003A:��B��Mɠ \u0003��\u000eA�5��D�U_\u0014�I�L�H��\u000b�\\FѼq�Ə#�\u00073\u0000�\u0005PZ���\n�e\u0018qb���d�9^�̜�J\u0004\n\u0000�ߡ�bߚQk_U�X���46�}qdY`�)2U#1�\u0003۲��\rԞ�\r3#S�ÄqD\u000b�u��W$ht��jF�\"�W���?\u001f��'?=u���.\\�\u001eaմ�.鐳X��\u0017QG=���a�V2k\u0014���,��\\r\u0014;�z=^^��\u001d>�\u001e3ʹ�\u000b���4]��Z�q\u0003O\u0011d��G�>L_�}��\u00008��i�����~t~e�\u0000�I�\u0000�=�ߘװ������?�Zv��_-h��i/�Ǖ���_���@�\b#\u001c\u0019�$\u000f��\u0000�U�\u0000\u0003�wai��\u001a�P��S�\u001c8�\f��\n�d\"L�)m{z@���S�\u0000\u0005��!/��gi�<]���2��\f��vE\u0010+`O�s�+��\u0000����jZZCn���U�Sk\t4hƷ\u0010L�^\tiW_�� �����M��\u0011�܎��׽��,��\u0003���G����y����\u00001��]�5p\u001a+\u0014�׿B[Y�\u0010\u001b�\u0001�i�\u0000Y��7�+�\u001cE\u0010T��-P7�\u0004��\u0003�\u0001>W�~0�e�IH4oU�ܯ�ژV����O��\u0000;�+�~V�\u001a\roD�>e���/��Z��4�\u0013]ڵ\u0012�9ݸ<-E~t�6?���p�Þ ��#��~��K&LYaM8���jF}d��𝝄x�ΨP���\u0007����������#�V\t\f�����2G�X�D��H�?�_L�4�L�=��f�|��dF�߻gi�&�\u001fhc�a\\UGm�y?��8h\u001aϖ�Y��e�\u00142ʏ\"��\u000b�`��\t (\u0000�sװ�q�q���;�\f�#DP߭���o�5�g���m�h��b����\"��\b��1�^�Z\u001aZi�KȐ(X`̈́�Q\u0019ʼ(\\����G��t3�b�\u0006���6ں�����q{��u�;X�:������B�8���H�\u000f\u000b\u001bĐPF�t\u0015M}���vί��\u001cq5�y\u001fp�>.wga\u0019�Y\u0017��\u001fq<��g�O�y�Ҽ�t��\ri�Y��\u001c��5ͭ�1߈8���'\u0012ԥ\u000fq�e٧��T\t�ȓ�'o����ӧ1\u0013�\u000f.@]y�|��\u000b�\tn�˦c\r����_`����'�G\u001e�\u0013��=�=ǩ\u001dkn��n����>D��\u0014[_7�r~]�z�HE�\u000f/Z_����c�e�\f\u0011��zR�vRH4͗g䞜f�\t�Z\\�u�HpG��']��=AŎQ���b�ڽ\u0000����U\u0003�{�-�kA\u0007���]u�-�[�[�z���qY&�����O��\u0000��R;��\u0002;\u001c�碔�J4|:�ߖ�롪��\u0019D���\u001b\u001f�6/�v{\u0007������K�ދ�&�6��k\u0014Y\f\u0011]���\u001b�xؔ���јr�H�ǰ�l�\u001cH�Y\u001e��\u001f2��\u0003\u0019�(�I\u0011=�;�<�Y}A�u��i���e׬\u0012��������rLw�\u001cQ,�iʌ��p8�}�];�7�z/��_��A�\"\t\u0003�u�\u001d��Y\u001dn�ǀ\"\u0004��������qy���6�\u0017\u0006\t�t�ޛ+�\u0012�\\��\u0007`:f�Z�iu\"q\u0017\u0001��v\u0007K\u001d^�✸e{y����_�otmB{\u001b�ͽ’\u0010n#�5?m\r(�{���`�cόN\u001bƞKQ�˃)�1�/��1[�Y\u00143\u0002\bކ�=7�6�s&3�p�\t\u0010i(I^\u0006,�\u0015Zr\u0000TnkM��\u001e!W��\u001c�\u0019������� �\u000b\u0000j:\u0013_\u001f\u001c��\u0019�\u0014��\u0019�#�����1�2�\u0003�+\u0000z�q�㜌��� \u001e�\r\u001e��\u0012���SP�\u000f\u001f��\u000eyd�ǣ\f8���\u001e��:Y�\u001c�\u001e\f�1\u0003�=���f\f�Cw0^9\u0003\u001e��I㹶\rU;|Ehw\u001b\u0011��b\u0000c/{��'\u001b�§�-��x�VV\u0014*@W�pzPfn8\u0019Ç����'�\u001d���3g�Y2H�GZ27cM��K\u0014��\u001b��ad�T��͞R�D�M��O�\u001e.\u0002\u0014Z���P$�\u000e ���Z�dѝ?�Jy}WgC\u0007h�Z?��^~iϞ-·>��[\u0011����Q�<`)�9\u0011�\u0014��)�O���F'M,z�[F[\u0014�\rr\u0014���IG�u\u0007\u0016\u0015\u001cMW�1�ZeG\u00117\u0013�\u0017 j\"'\u0019�R\u000f����/̓�1y���B.���OH�--��\u0015�B\n\u0016>�:g�v\u0016�9tإ�z#��\u0007����)huz����������o������oˍ;S�\"�ǚ<�N���H9��߹�XY��E�w�'�\u001a�v��y\u0001�Ch�P��=\u000f���C���ŧ��fAǒ]L��6~/���r�\u0004n��!E\u0013ᧀ\u001dw9�f�\rǘ}?K�����Sj\u0017��L�,��J�\u0012z��hsp�F;\u0000\u001e�NrK\u001cf\t!��_���UW���B�\u0010Q~�湮���h�hi��|��s;��\u001d�q\u0005,��9\u000et��f?�gnP�F� ���\\�mp�z~�\"��*�\u001c��ۨ�?9\u001a�l5���e�\tQ���\u0000�^r��q\u0012\\��%�$�\u0006��:\u0010\u0006[\u0018ir�����˯��@Q\t���E��L�]\b�oH�\u0001B���@�Ms\u00128\f�pÕ���xxL�Հ�\u001b��Y&��>��Jep~�S��\u001d�\u000e��t\u00181zDa�'��1ʪ(9`\r\u0014D�Є\u000fMQ�.�{������F�_�\u0000\b\u001c��)�\\��svSZ�\u001a�Eh\t��H�5�Q\u001eg��M}��\u0004ԎKV����$!�ɪYA7�d_����\n�f�1,\u0002}��v�\u0000\u0002�e�$J���g\u0003�>���V-@\u0006P\u000b5j>$\u0014\u0001:T�\\L\u0001�|Z�I>]ɭ��j�cbO*\u0013О�xS\u0004�J4�>�M�\u000f9)�\u0018�T\f��\u0011�֛�!��ɰ����H4����2\u000e�O%}�\u0004u\u0000x�Em�`$G#�~�\u0000z(�?��\u0002ѢӚ\u001eJX�Y��`1�>e�\u0014�M�\u0001�j:��9J�\u0019\u0001\u001c��n\u000bǧ\u0013�@��\u000b���˗��cc�D�|ŦH�4�@�\u0014(\f\u0019k�ż)�8d\u0006۴�^+��#o֛��̒/��\"����D��x��0��˫p�Aڏre'�Z�\"�A��\u00079U�-�9;�S�\u001c��%d\u001d�;(МG\u000f�O4�4��\u0000YP�\u001e��`+�*\u001a\u0010�9T����b�b�ߏǚ6�P�,&�@�Ry�AZ�2�\u001e�_�/��7����s܊�PY`P�$w�L:x�>\u0004�\u0003\"aR�fQ��\u0017D��Q��QJӓI��\u000f��n\u0019D�A�Ʀ�%ӵF��1\u001a�Ƞ\"���$\u001e���s<�J6��i��[uEK�^i�uM.��c�ꜨT�^;V���<\u0011���7m\u0019rb��\u0013@w��Ͼ@�楼�f�b��_�zG\u001bĺ�_�C��?\u0017�DK@�-�f�\\���˥��k��_\u001a��&�M��+�a\u0003\u001fhG~�?:�.���?��M�������]�6�f����0�\u0007�$��a�d#�1J\u0014U� ҙ�{;���Q�o���'c:����4؀% �UMiG5\u0002��~����.Yĺ~�\u001f\u0011����~���\u0003���S�˨���K\u0004�*)F�]Dd�4ݛ�\u0015�͆\u0012|:���\u000e�\u0000��4��d\u000e��M���]\u000bC�o�{+{��6{k�'�=Y}\u001b�b��H�\u0011�}�Bz�i�M$�􎿏���;s�R˫��4�W$������=J��G\u0007`dCF�)]�2�|\u0014c��w\u0014�4�d�яᔤEv\nU��*H�o߭GrE3\u0018̂o�o\b�\u00009�\u0007�o�/� �n����-<��F�}\u001fSvT�Ǘ��+%�#\u00167pY�Z3\u0019�\u0010�N�+�(\u0019x���Lf;���6�&\u0011\u0007��\u0004�'�_:�\u001d�,��\u001f���_󍿖�l���ιe��%ym���\u000b�.�qw���X�G�Z\u001a�}k_ԯ�Eek\u0018�9�Hјi�K�t}���hv��=\u000e!���\u0007� m�\"\u0007���@\u0004��gvn������ˀɫ�v\u001d\":�_͌{�\u0000I2�����󚿘v�s�R�g����\u0017\u0011~S~R��ϥyB�D�|Ǯ�[]l�,���$�I\u000b���94R@�\u0004(���nl\u00030\u001f\u0004��;\u001cc��\u00105�����#΋6��V�yd��3�.H� ��E:�W���\u0013��\u0006�f�<��\u0019-��Pl�:I\u0003�\u001frv���N\u0018��\u001d����!\u0006�Ȏ�F�i\r�ʉ\u0003\u001e(\u001ed<��\u000f��4EVQ\u0011RK\u001f�Tt�1N\u0019�\u0017&\u0019bcы�U��9C\u0003����;�\u0011\u0001r#\u0010\u0010B~0�Py|\"���HJ�/>�\u0000���C��K|���^E�\f3F��:%�pI�h��Ծ�BEg\u0010���O��\u0010\u001c��\u0014 \f�<\u000e3r\u0017�׿ʝ~� �\u000e\u0018�\u0018<��ٺD6\u001a��\u000e��\\�ͅܔ�+y\u001b���P\u0003��+76�B��]�\u0010Ff�8�x�v?�N�j2b�ś���n�k\u0012y�I�����syb���\u001at�\u001eX��1^7�[]�\u0004��ko�r���� �naY\u001a\u0010ާ\u0006�S�����&Zn\u0011�U\u0019\u0003\\���\\�C�\u00049�58�8�=�w�\u0006�.@������\u0000�W���?�\u0000*|�?.9!u�\u0000+��Q����\u001a\u0012���w��\u0016y�=_�>z�o����Qx}Q4`�,h�\u0000\u000eN=���\u0001�f��\u0011����A]<-�+�be\u0003�[\u001a���V���4zN�͗RE��\u0013���)�ƹ\u0011.\u0019\u000eu��\u0001����7����̟�Z�j\u0016�|u+/!�K,�_��Ff��Xv �\u0013[�F\u0000�N�3�Q��q1��E�3��\u0007�u�>[�WU�2��A�\u0007��X\"D��v\b�d9N�^�y����,jP�]A��iz��Se�h�����4d��kw�}Z����\u0015(��Q�m\u0007ik{3Q\u001dV�6\\Z��\u0012��\u0019\u0003�\u0005���\u001bI��p�q�\"\b�\u0018�A�\u0014���q{�~��\u00009��\u00008flt\rO[?�\u001f�1�\u001c:���\u0000�M��\u001ep�t�V\u0019W��t�=�rě�\u0015�2E9\u000e�����\u001b�r�t~�a�����B���-̀��\u0006�DH�\u0012\u001c�\u0010���\u0003\u001a\u001cі�ٹ�W??\u000e���ˆ���ID�\u001e���\u0017�rW�qs�~\u0011�k�4�<��=#�\u0003I�\r�O�/8\bt��/(^�~�\u0004�D��jvA�\u0011�[��컫u\u0003��7�4=���U�]D5��M\u001c��x��s�>�r����=2!��\u0000��\u0017��\u000fU�\u001e��,\u001a�| ф��q�m?����\u000f�o厡��q\u001biW��1\t}HͣK\u0003qb��D�\u0006��ZT�|\u0019�\u0007\u0018$�񻨘���\u0000\u001c����޽�{�;/8yv[�\u001dV�IEސ���R�\u0004��Y�FP�q'\u001ep<�4N\u0001�RA�i�p�\u0013�1��Ýy}�.�\u001c�(���.��g���\u0007F���b���Y�����\u0002��B�������x��X��\n\u0006�ۂh���B�c�-��ˌB\u0006r�\f�g�s\u0007�[�.����Z��,ZF�o\u001ar\rmh�M8\u001a�����;\u0010��̌y��d4#�'��8FNGr\u0005=7���ɗ~A��%Kk{x���Y�T-�j�\u000eIW�\u001a;\u0015\u001c\u00101\u001c�\u0013�%���G$���n{�u�\u0019�%(����\u0015��&����\\�\u0000�k���ߓ���3]<�Zi��t�sI\u001d4ۘS�\u0012Uv$/��r�l�WDq憫N\u0007q����\u001d@8�1&�\"�\u000e����|��\u00009Q�\u001d\u0016���F�e\u0004b�y��\u0003\u0002��*�/\u001b��}sL� ��=F\t&����\u00177�ʳ�\u0014\bx��\"���$�O�3��\u0014�r�1��{t�o�����p����\u0007�ռ6�R\u001e[�g�\u0017��-2[{����j�����ⶥ\u001a;���/�5\u001b[�7\u0014��\b�vn|��dˏ\u0018 Ѩ��T\u000fM�\u000f�:��G�0�\u001b\u0010Öd\u0011�R�P�Zdu��~��#��B��խ��}0��\bԬb�\rB%��Ki�B�\u000b}d�P3��7 �9�:L�rKr\u0001�5~}<���L��\u0001(�G\b���F�<�K�j�Z�SRӡ��a��e���X�l\u0005���t�ՃHG�,���VNB�B}�o�\u001c�HL�\u0018�$��b7u��ز�11��\u0000\u0003\u001a܉zE}��B���c������vW:\u001e�c��V4�6����3�����r=~Y�����ϗVv�?\u000e����\u001cG\u001c1�A�\u0018���_�\"��\u0000���F��]SG]B���*�M6\u001b�%Y#���Оut�\n=�5=�u�O�\u001fv���qj%\u00023d�\u0011\u0004r��\u000f�<�mt85�0�\u0019i�#\u0011(�|;H��\u001af��r\u0017�;�&��L�󎇧kLUl&�������\u0000\nBd��k#P\n�ɦj��\u0013�/e�gç�=8�\"\t�Ԁ>�6^�{7�Q�\u001dF�\u0018��\u0011��\u0004���Ƶ]+PF�-Ug�X��\"\u001e\u0019cߋ�\u000f�oט����&��\\mN\rDI�:|��s]�9G\u0014���C��\u001e����ŇG�y�\u001e\u0019\u001f�'��F�\u001f�ݘ\u0010*\u0000�=���Z��;ñ�HJ6~��&�\u0006�bR�e�����!�p��;�\u00029�DoO)�t�[�Z�\u0012F�Zs���\u0002�kރ6\u0018�b�c�Ru\u0019q����|_s�4���ly��/\u0010�ۘ4�>#5�D�τ�v�<=N;\u001fRȖm&Y\u0012�1��,~}\t>\u0018�\n��c��\u0000�t��k�Z;�.G\"�O�:�s�\u0011����r\u0003\u0001��\u001c�\u001e����\r����y�b���\u0000��M\u000e͍Η�z\u0017Zө�\u001f�\u000b�X�_�k᝶S��ؑ��ɰ�\u0005��\b�A픨^�\u0000\u0012�u�C��ߧ^[�+kkx��\u0012(� (���U���\u00038\fĎO���=\u001e��?+�w\u001d����m��^�&�f�W��&#�=F�Fg\u0018ϝ���-i֚B�\u001c�\u0019h\u0001U?d��N���2��[��q\u0001\u001d�=b�Y��\fPq^;\u0015\u0014\u0003�c��\u0003\t\u0013gwe\u001c�\"��*��x\u00127\u0012��\u0006�ߧ�Z\n�\u0018dN�u@\u000fW4�<�\u0007Ʊ����t=A�{mL���W\u001cj��$�/֯������1�u��\u001a3\u0001PiJ���\u0004\u001a\u000e\\8'\u0013�ζ��z��c��yup$�����l\u001c��Տ�]�\u0005om�{��O&0H�^C��pǚ��1�:\u0013�|����1O<���\u0012=74%{\u0005_�P3�ņ\u0010\u001c#�yl��d�$�'�r\u0002��^�\u000e$(\u001b�t;�(݉;֝2r�ŵl�\u0019�\r�\f�O�E���rʠlv`Os�\u0002s\u0016Zz<�s1��\"x��Q�,�\u0019%��V�t\u0002�Sr��\u0010�� �2�H��\n0�H�C'�:1\u001cE�r\u00065�R��Ng�D��\u0003=�\u0011�W�\u0006�}�\u0006�Aߑ�\u001e\u001e���R��\u000f\t?\n�@�;�)r= v&�\u000fe�A\\�\u001d\u0000ݪ67��~99�X0��,����Z\u001as�•ǀtS;��p������\u0012�9$\u000b�첕5�\u0010T������27 �U���!FIb�T�j\u001b~�\u001b�8\f\u0005l��c*\u00166d\u0016ژ�\u00142r\u000b�!n,\u0007Q�\\�P ��C5�N�D\u000b�܉\u0016M�\u0015h�ڀ\u001e�åO�\ne�c�\u001d���{\u0019\u0011�V\u0002�\bp\u0005C\u000e�*\u0003\ne\u0013�o���ʿ���\"Mo�@�\tZ''~T**�j�+�\u0006C\u001eyc�H3ͤǚ5\u0012G��7�\u000fU�[�V�S\u0010Z1�8���aѪi�->�\u001c�\tغ\u001d_g�����\u000fwF\u0003���m&A\u001d�\u0000��F�&�N_\u0000c�W�$u�'\u0010ɼyspa�X�\u001d�P��/��f�\u0014p\u0011\u001cܗ���E\u0005\rA��\u0012s\u0007.9c�\r�ƛ6,�B@\u0012Gة��2�\u0002/4yK��\u0011���\u0015'��G���!\rL~��Ye�܀���\u0014{���:֥a ��/D\n\u0012�\u0013'*�-��}��\u000e\u0012�\\A�&3�1B�����\u0000E�)�sV\u0012\n�wGS�T��#12c��i�=\u001e��i�;��l��W��\u000f��W`\u0006�L�'�b=W����R��=\u0006�:\u000e�\u001c���$�LmB(�wVl^���ڽ*�]�a����?K��c⇈\u0001\u0012���y��<�g�\u000b�6�A\u0015�)=����Q$Z��>=�#.\u0003\u001fTw�����]�_P�\u0018��\u000b�\n��X�D��eYA��\u0000u3|\u0006�#��\fljc�/njd�\r\u001d��s���\u0007���{���5_5�.�q�^\u0018�A�w����\u0000�;K���\u001e����d����9��#�\u0014L?�\u0007c���.\u0018�/\u0018�W� D�q=Ǩ=\u001f����=��ן��\u000es��0B���&\u0011Z�\u0012\n�$�gU\u0000nNn��#-?����\u0002ϸn~O\u0015��Rc\u001f�r��2v�̿s��\u0017?(������l�H��[�\u0018��7�Pz�\u001a�լ^���m�\u001dbD;\u0006\r�?�z�v��z��gh��\u0002xG��>��}���]��\u0016�ܕ<��Dm\u001b������e\u0016ʨ����@℀��\u0014��F��9�L��s���r��\u0007���&:�(6\u0005$�օ�0\u0005�3��5�\u0000���Σ�b���OqU<37�\u0015R\u0003�9Ęd�\u001b�=@\"��qj�KO�\u0017� �\u000e�DHs\u001ec��M���W�?$?:�!����ߘ?�:ޫ�u�y\f~�j\u0010Y;\r/[�%A��Y�\u001a+�^�) \u0015�=������}���t��Ƨ\u001f�\u001dq��ˌ��`�1G���,�\u001a�i2_\u001e9\u0011�\u001c�}�QU������g\u001e���\u0007\rǦK3\u0011^���w���-��y�9z�}�Ɠ}mcg\u001d�2\u0005�$X�q�\u0019~#@G�V�\u0001̈΅\u001ei1�ܧu}\rɒ�PD���\u0019 u\u0014n+:�p\n9\u0019�4u=���Œ��ԁ��\u0003�1\"�|��M\u000bS]jm:u�K�)\u0012���dX���F�m��\u0012*\u001d\u0005Z�f���7�8�\u000f\u0012;\u0013�w\u001e�\u001e8�\u001c�e��z���T�I�����+Zk\u001au��-\u0014]\\\\j\u001a|���[�4�8O�\u0004��ǂ\n�[l�gŒF<\u001b�98�ۄ����˼�\u0010�\u00110�\u0003��}��/����\u001b\u001b)!��Ҡ�}9㘙\u00046�P�\u0003�Q�k�t@њ����\u0019Ȟ\u0010x{�v�\u000f���8��q7`�\u0005�\u0016\u001eb�����綸����f�$�#Һ�-!����C\u0018X�]r\t\"�#\u0000\u000f��n��\u0019#��3G`F㸃��\u001f��\u0014cɊF2\u001e��;���1A`D�S2\u0012\r\u0001��򍘶���4��|��6:7\r�m7��ۆ��\u000b\u000be�Y%\u0001Gv�\u000f���Zԝ�S��%\u000bLb:�g�i���?%����a�c���A�����/�\u0007kKQHᲰ��ɨ����Ekn���f\n�nF��{GM��d�k�xZLb�z���\u0014��1\u001c��gv~�Y�:�}���ɬ�j#���zD\r�z\u0007��\u00009\u0005�\u00009!����?�\u000b_4��;�\u0013���3�/���M�-\u0016����z�\u0006\u0011���[�U���-�q�����ɞ�{m���[�\u001b�ٸ�c�v\u0000�d�3.�+�\u0018��/���i=���+&�&�ru��Q�\u0018\u000e��y�\u0017d�ׂ[��q�n�F8�!�E{S<�q���\u0018),��ҭ��E0pо��[�V�~�\u0000G�gQFR\f���\f��O�\u000f�C�ޕ�\u001a>�b{y������+\u0013�T0g�TE4f:Ʊ*\u0001E@MK�k�\u0010��⑵�ɔ~o�\u0011Y�\u000b\u0011d\u001c�ZI�\n\u0005��C/\n�\u0000w�o��l�Y\u0000�o:��!��=NO)Q�\u0014u\u0010��p��SR��\u001f<\u0002\u0000\u001be��0��O��Y�s\u001c��\u0011��鍏\u0005\u0007�)':Ԟm\u001c\u0006Lf�P�\u0006�^��g���I\u0004�dSh�\u0005��a�c�*��-�2T\b�\u0013!Ɏ[w�����r��Vz/�\u001a������2��\u0012�U��_\u000e��ȼ�l�L:Ƌ�Gsmq\u0011h�d�\u0019�I\u0007%��+�i\f�y\u0017c\u0012և�M1\b�.G����Dzy\u0013�w1��ؖOR)\n#��ͪ<�d���\u001e�搤QM\u0014ļN�1q�&�\u0019D�\u001c��E9ҿ1\u0011ob\u001e���<��[Z�,�� ��\u0000���\u001aF�A!ih}\u0019(\u0018\u0001��BD\u001f$��F���y��\u0004��u�����@���-O.J�\u0005,\r�\u0002\u0015�K\u0016�*�\u0012Q.D��ęFGO���\u0000(~c\u000b�6�e� �n\u0004�-P\"� \u0001\u0018�\u0019\u00177�E\u001e��\u0000>!N�f>\u0019o��63�_;��y�2}J��V�Q��O�D\u001a4P��x��,��H�F�܎�����#bc(F�j;|\u000fܘ\u0019�\u0019�5�#��^Q���q�\fq\u001b�2�_Z�7�@�\u0003\b�؉\u001a�c�\u0015Y\u001d�\"�\n\u0007C���|����\u0007?\u0019\u0013\u0003����a��-,#\u001e�8�\u0017&�9�%��\u001a\u000b[�>/L�(-\u001a�\\��ץ�\b߫D��#�l��?���g�E6��Aq�j[x|�i�}^�kw\u001e���iH���,͸%�aRr�y|\"D��������i�x����<�������\u001a�\u0000�\u001e[�����Α�;$�4���y\u0006�s\u0012L'E#�H�\u0012V�G��j�S.x�=\u0003qV+�.�\u0016hF_��N&����//��N���\u000e����W˚\u0016��j�do.k������&Sy\u0012��oz�ń��\u001b֔n[�>^͆�<9#�\u001b��\u001e�7\u001b�#������q���iy\u0011�כ�?8�\u0000�\u0004~_���u�1k^A����\"�l��\u001eW�J�yCv\u001a�Y����DZ0*ji�r��\u001b�D��}��� ���M<�#08��E�\u0000�;|�|�������&����f���\u0000�v\b=K�|��8l��\u001d�\"ca�y�XK8R@\u0001d�]\t\u001bfDF�\u0001NJ[��\u0012\u001f���5~kI�~���!_n���\u001f�g�W����4���\u0000f_�j�W�ᰘ�J1�U���M`\u0016��|:WaL��b\u0007��\tw\u001d��NL\u001cb�.����e�\r\u001d��<Ϣ~g~Wy�\\����򤾷�|��}ZM7]Ӧ��\u0011K%�\u0011�\u0016�\u0011�ki��H��]�������}��Ǵ�\u000bQ,:�(�\u0018�'�g\u0013q�N�\u0019\u0002\rW'���پ���\u0014�}��\u0019qHU\u001e��z�/�D�~��\u0000�&�\u0000��|��\u00009\u0003.��\u00008��\u00009�\u000f��-���\u0007���\u0003M\b�E� ��.�f=e��>�_�\u0019\u001a�xr� >N���\u0007]�켥��qj{\u0014߫�L[�'Cx��\u0006�\u0000�\u001c�<�\u0000������^�r$��J���\u0011x'��j�P̥�劰5\fj�o\f\tܬH\u001a��۟>^��@\u00197\u0000\r�|\u0017�?����\u000f?�(�[o$�בiq�\u000fմ�}��/�\u001aO�\r��ai(?\u0001vY\b�k�l\u001a���Yk���\u0000{�.D1��e��Ǿ���Z���X��m�#F�̚5�:~�-��C�Y���5\u001dZ�\u000f\u0015�\u001ad[\u0015�\f�6��g����k�����\t\u0006\u00167\u0007`z\u0010?\u001f2�\u001f�ߓ�g��?Hy\"��x�\r\u001bN�K\u0019��%���H���\\ ��sqP�%\u0018�����u\u0013�.<��4{�Nh�)��,p��\u0003�ߟF\u0017�Ue��\u0000��>�7�\u001aF��7���V֠H�Ҏ��7�L�J�\u0004��pMh6��왰j1\u0018\u0012\u0004��xpd2�'\u0014bLI�{m_���E�Κo3�V�^%�Z_�������\u0000�V�]��<�!\u0005\rR3N��3#KP�xxe9�\u0000<ˍ0%0d%\bD\u0012I�r|��k)�B�Z�\u0003,�cԆ�%_Ѣ�\u0013r���\u000fM��N#��\u0004o��Ӊ�\u001c8��\u001e\u001f�3�.�\u0017\u0019ӝFQFr�~�|\u0005?g�\fb�п&m��tm�W���.��An��ݯ������\u0003F=9 �����*�\u0007|��ߔ�v����\u001c\u0018�/�\u001c�R�l\u001eDz*\u001a!�U�g���\fv\u001b��e�u�\u0016�\u000e��k0^�,S3���3�?^�\u0004�횈J�FqB�\\��a�q�\f�K\u0004t-��c\u0013�[�>`n����\u001a}�6�i,�x������Z���e\u0014��\u0000x��W\n�\rB�l��\f�FB}'��nc��|r\u00061\u0007�j#z'���\"��Ȟr������\u000f�mJ�Y��닧iZ���ޣyw��/�����巘G\u0007�|�{�ހ8�c�65�Nm{V\u0007\u000e�\u0017f�c�\u0010�_.<�9\u0003�X�G�\u001dOfd\u001959�L�\u001cY&\u0004k���\b����>��=\u0019�Zu��޹��֡�.�e\u0016��f�\fP<�n\u0013Ә,P�JUB�E\u001fFk0�C'\u0004�f#��N�g\u001c�Jx�\u0011���״�MY\u000b�q<��5���.\f:\u0013�ƶ��z�1�����8�h���ڈeq��������4x��/�\\�?��i}͚\f\u0017��\u0012�\u0002\u001bF���{��v�������\u0003���S����֟�\u0003�\u001fRK�3;l�_�g�\u0016�\u0003\u0005텞���Mcͷ(Z2���\u0004�?�\u0002�b�\u0000�w����\u001e����\u000f�\u0018�\u0000%ذ��Ô\u0011�Q.q���\u001e\u0011��ԧ�G�w�}��\u0000��\u0000g{?�=��솳�2�FyqJ<\u0018#�\\\u0012>��\u000e�^8Q�\u0019�G�)��8N�Y4�k�\u000b!�~��?��P��c�'rN}_��\u0000���\u00048�\u0013��u���\u000e��\u0000�&��\u0018�i�\u0011�v\u0004�W�F�\u0000j[\u0007���?1����2[�x���\u001eP��zm \u0004��\u0018��\r��\rWdvGb�n\u0018H�\u001e�[#K�}��b\u0010`�����/g-����e\u0004ס�MsC��<�%�\u0006������Q1/\u001e��?�<�;�ZIsn�U1�T\u0003�3r;GI��\u0013Ry�ٺ�\u0014� �\u0000��O����$K')��\r�lc�[\u0001�7>[ԝ>2�B*\u0014ԍ�\u000e�2\u0003Q\u000bۓ?�d#���I�%�\u0003/0b�7Z3���m�Y�\u0017|�i�\u0002\u0004�����3��xm~�\u000f0�\u001e\t\u001a\u001a1?�Ӡ\u00032t\u001aA�-��n\\\u000e�ם6����\u0003���Kuv�K�<�CPB��H�\u0003�Κ\u00020\u0015\u0011A��O&Be���v���Q�I�t\u0007pí[cL�\"\\�8����®��Bc��hv\u000eYjMz\u000f\u0001\\�\u0000\u0001�6'qF�i�7��;,�J�B�YH�a�\u001a�φB�\u0005\u001b���ϴ�Me\u001e�t�+q�9\u0000�q�t�I@�bَR�5׾�\u0000R0_�)\u0012�\nK\u0015i\u0018�V����}�\u0002\u0005�͜dNǒ\u0010jb6�3)���J�Q�=E\t�11��&G���\u0014��\u001cH��%\\\u0011��UO�AN�\"6�>!�\u001c�\t�R9B���Ģ�\u0004���\u0014�U?A�\u0011m�6�����\u001cU��-~2{\u001f�\u000f�\u0018��\u001dÒh�ې\b���nbjr\u001feK�j�Ȟ.[S \"{�˪4\u001a,q�\u0012]�\u0003\u000fU\u0007�p�ԗ�NB������,��5 \b��A�(�~D�\\K\u0014��Ep9�$�\r:m�'��\u000b\u0000/x�%����R�H2��9�Ȅ�Zn�̢�\u0007L#\f$+�\u000e�6\u0012\t\u0017��0п1�ed�By1ޠ.�\u001a�C|���>�����8���W����V�j�0��U�\u0006\n@\u001f�\n��ߚ��)\u001a�\u000e�\u001e|z�t���|���o�T�T+Y\b�(rH�\u0018v�̽6�$\r\u0013����f\u0019�� �:\u000e��Ǘn���,�M/�ZEe�1\"\u0016\u0002��\u0001Cڄ��i��.:���\f�d\u0006�_?��O/��,\u0010+N\u0018��?��04؜�e��m���4���\u0005��M��\u001df6�ċ#)\u000fƄ\r���\u0000(��eP���ߓ\u000e=H⪓�o|����_O��\u000eLq��\u000f�U�\u0014�s6\u0019�?����g�'\u0011�iv��y�D�\u001a����El��\b�̼>�\u0014\u001b������82K�Gr�)�0Dd�\"#�H!�����n5h\u001a(�+}F\u0003V\n���\u0001�\u0011��ΆQ<8��\u0011\u000eҌ�9F܏�xO�4�#���^E�M[J\u0013*\\�j�%Ǧw)*�� Wc��gc��8f\u0003��D�\u0000�i�\u0014>ߋ��\u00002������y�C^wA��+��zH�\u0005�}3Z�r9�\u0001�6�9f糰╌��\u000f�\u001d/i�3�\u0003&�z������C�<��y5��{\u0018�\\%���D���m�5���5QRh*r9DL�F�uD2�8��\u001a�\u001c�����ߒ4��?��?,k7���/�o��/��\u001c��5I\u0003�4��!��\u000f�2�BG\\��A����#\u0003Y�'�1������v'fö{c\u0016L��>��Lw��q=7��~�����t\rj�#\u0004Y9,|؃p���o�\u001d��g�j\u000f\b��N�qH\u00127�nδ�U卩*�-U��*��\u0010j\u000b�\u0004׮is\u0011)\u0010k���8b\u0013k�a���G\u0019P��\u001cX\n���Z�nk�1�\u0005ӓ}ܘ\u0006�yU.�G,�\u0007VF�*���\u0015^\u0015=�r�ˆ������I��1\\��\u0003\u0013\u0014��!�>ߨ=!�F\b�HV�\u0014�\u0010@d\u000f'�h�'��\u001e2�\u0014�I} �\u0018���nj��ni� ˭6F��\u0000���7�<�\u0018\u000f4Vў?\n�\n\n�\u0000��iֻ��\b\u0016G&@�/'��񦱨��ʼ۠��r��\u0006�~\u0016�̬q\u0017G���Fr�\u0012�At�\u000f��U��\u0012\u0005\u0012�u'ބfTZ%\u001d�{��M��E�/\u0014�����@4�w�a�S}��L��G���!,r~�yCW�\u0015�\f[�J�\n졶\u00155�a�9��շ���}\t�Nm�\"�\\����z���\u0002*6l�\u0013G�L%�'��f��~��kP\u001dO�F�\u001d�&��^:��G^�dzĞ��{�d�1�LԛN��ݧ�ե<�\u000e�\u0000��9�|Xa�<�\u0017]\u000b�L��h�c�_F~[�\"d��ې�2\u0000'�\u001aw�^�fP(L2�w��\b�m��NM3\\��Bʞ��e\u0000����ˈ\u0013��i���p��\u001a\u0006��E\u0013\u0003ʠt�\u0000:f�q�;Xˈ\u0002��\u001f�ߓ�\u0000��]��?1|��y4�\u0005�ݮ���Z��\tRUͬ���\u0012\u0005ȭ7�r�-�\u001fJD8�\u001el?�6�͖!��a���Ѧr�}gŦ�Nڪn#\u0001���̽�g��Ը\u000f�C_�a\u0003)U��w|?cƤ\u0010Y���I�u�$�D^.�v�\u001f���'6\u0019>����Ѻ%ݫݵ��&�X\\��� �!�P!\u0005�D\u0014\u0003�bʆ�[\u000f/6a\u0007��!Ia��kh%\u000b*Z�R8��a\u000b�\u0004q(�\u001b�9���@x��2�\u000e�a��3��}�\u0000���\u001b&9\u0013\\�5��\u0013Q�\u0015��D�\u000b@\u0014��B���~C�l�C��oʷ\u000f`ӯ���}�_Ϟw���}\u000f˖\u0017:��}z�\u001d����>�O1'�\"\u0004\u0005\u0015,�\u0000\u0016 \u001d~�>�O�z�L�M\b�)K�b9��9�hoNV�O�S�\u001a}4%�Q3Q�\u001bȞ��O���r��r�̿�{[�W�'�'�oY���)A��)��G�\u000f0´Y�{�I\u0016�0+e\u0003q_����^��m��-_�4�òq\u0013�\u001e�����G�1�\r�����\u0017��=��9�\u0000K�r\u0001�O��\u0011��N�\u001c����\u0010\u0017�o\u0018��)��}�!�\u0013���r\tJ\u0018�j\u0002T�X�BG\\��<�\u001c�y���伣G�d��w���\f�x�|\\]���v\u0007lN8�V�Y�T6O�5�M$�X@\f�:�4bND\u0006.\u0014�\u0010�V�\u0015ڦ��q�\u000bx�+���,��\u0016e�.8�\u0013\u001a$F�)Ee�F\u0002���\u0005h㩦V!NL5\u0004\u001a\u0004�\u001b_4�\"#q#F�zRq�\u0011\u00071 �\u001d\"��$��@��LJvӨ��;3�\u001b�\u0007D�7I��Y\u0001HnQ\u0019h\u000f\u001eKr\u0007/J\u0016F��\u0003�t�r���1ɷ\u001e�\u0015V���?Q�\u001e���\rֳn�����1#?լB�\u000b4ʥ�zqW&�j\u0003�*\u0002`�6g)�y�&\u000f��\\Yj_\\�t�ln��Fb���qUq�ȳ\b���?\u0010X(\u0004o]��x��e�ƞ�\u0006d��|���-���'J����1�f\u0019&m\"�p� �u\u000b5�r0h\u0002��6��P;�ǘ\u0004�\u000eN�K��|\u0013����O8躴\u00161��\u0004\u000byl-.�y�\u0013qmh�\u0002\u0005�[y\fp]B��#\u0001F�o��\u0013\u0001��1���l>O�u_�\u001f7[_\u0011z��X�hn\u0013�)F��@\u0003��[� � \u0012\rME)\u0004O'\b�r�_�z��3uԚ\u001a�$��\u000b�C}p�A�b�FgJ�\u0017��€*>�,r\u0013��{��\u0019�7\u0011T\u001e�i����<�kIc����H%���1A,ҵ \u0012�oA\u0001fZ��\u0011�1�1�ė0H�Vӿ?�Ǥ�\u001c0�ʶE\u0015�.3�\u0013,��,��D��5�\n�\u0001�l$\u0011ޘe��o�e+��~\"�xn\u001d7�ȶ�y��\u001d�id�/��xҪljY*\b�\u000eDz��V���6@_\u001f��z�m-��{�~�9~�'\u0012\u0015\u0001z0�d �X\u0011֔�r�c\u0003`����/\"���u]OJ�A�Tk���h,��a�\u0002\u0016�ݧe�\u001c�r�\u0001\u000f%]�t���;�\u0013.@n��?�\u0014�\u0000�!���;P�\u0000�|�o��O �ˏ!�Kr��[љyI�\u0019�1�%��X�^B�����\u0011��\u0003!(��x?�����s�\u0019���R���\u000fN�˼\u0007Ț���/�.<Ū��m�ծuM#Q���Q���5\u0003`��XMgs$\\�2��\"�\u0000�\u0004|\u00149���\u0019De�`|�_s��>\u001c勄\u0000w���}ϰ?.�\u0000�?�(��X��c���o%�חu�in�b�]�Ӥ�m `\rP\n���e�E�ᐁ�\u001d\u0006�\u0000��g�\u0011����n�[���?,��T����MՌ\u0017���5*��T��?���\u001eL��S�\u001d�k�g�r\u001fMǦ�\u0000{�LJ?\u0000\u0000�\u001e_-�Sտ+?�!��R��uV>O�4�������o:�{`��ֆ���(���j~��j!�\u0006I\u001cS��鵏1G��ߛ\u0016x�d�e�\u000f��\u001bw��c?�?��\u0000�?��\u001eg׼��s�6�j�\u001f8yJ����w���X�Լ��6����\u0017�M���4\u0015\u0000�c�ӛ�\u0000![�\u0012c�\u001b����lЈ\u00122�'��׸�G�~R�r�\u0000ϫt�;��п(3,n$X�>F�߳6��\\���~�z��[R\u0005ɴ�eK��D��˘�e����\u0006]4�,l�|2\u0015�m���:���恎X�\u0003���\u001d�����I�7�\u000091�\u000093�\u00008]k��\u0000�8�����K�q��<��u�\u00009\u000f��\u0007�\u000b\u0018;^8�\u0007��\u0017k\u0001�\f�,J@l#���\u0019bL�7�q�\u001f�=��\u0000��M&9���̴��2�7�y�$>�\u0011�2\u0002&��U�?� /��\u001d>�Z�ƭ�y�����f���h����MJ��\f�H���H�ʒ�CPi�Œ94�*_N�\u001e��#b\b�A ��0\u001f\u000b/\u0006M�\u0003���\u001eG����_�r6H|�k�/�}H5��B���O��GI�d}\u000e�,�b��+�L\u0012��\u0007SZ�s<厳Nk�b\u0002������u�J'U\u0011��m/#�ݿ�߾�7�/�5\u000b�Z\u001d?T�������Zqka\t/i<5h�-�\u000fUV\u0004+xf��\u0018�6��uV\f�ݑ�܀��?z��e��n�-5\u001b4�8~�u\u0001tEV��DwPE�z-�G��PQ��Q�1!\u0019�W��e�\u001c\u0004�V,��]~���\u0000��e��\u000f)[��\bu\u000f̫�M(��\u000e\u001e^�\u0011�c����D��R\u0010h~)H̄����=8\u0005�\u0000�v�˟��k�\f��,G�Y����\u001a���a�|��K�;�M#ʺp�\u001aα��/Gku\u0001\u0012���8��O�<\u0016v��&PUP��\u000f\u00102�*�l���'�u��6�^�\u001a\u0006����\"�\u001d���\u0000�~}��D�a�4i��D��~IX\u0015a\t�i�\u001d�L\u001d\u0000\f5K�,�\t��+�0�g`��`\u001c�\\�{���\u001b/�X@�H� �:\u001c�6��&��G�\u0000+;R�~���_��.��ܽ>���\u0018c��VSV�A\td=9n6ʿ)\u0018V8\u0000\u000fx\f�j̉��߿q{Xx��?�^��D�^����ϟ�gVҼ�ўW\u001a-��X���;�UX��(�R1�G`\u001a�X#Z� lt�|X���@\u0007M��\u001f��c\u0003�\u0014�5� ��\u001c�s��s!�) \u001f�\u000f���\r��b\u0002\u0007���^�\u0016��i�\u0011k���t�a�y~\u001d\u0013J�7�{��vp�V^Q�Ρ\u0011[=\u001bL��~��o\u0011Zj|b�����u''hK\u0018�J�9\u001fQ�&�\u0003�$�N�m�w\u0018�\u0000s�����^\u0015\u0018F$\u00012\u0005\u0000\f���\u00002\u001ef�g��\u001f��\u001f��C���kM\u000fQ��\u0016�_��R���r,�ׄ�kg��\t\u0010��B��@\u001a�D�z��� ��\r߳^�k;[4���\u001ffȑ�H\u0002v5�\u001dg]7�:���v�o��xc��r�\n<1$\u0003w���\u000f�m<�(n�v��r�Ο�v�k�[�h<�\u0015͞��R�펛���(\u001aѠI\u001e��\b���i\u0018��Ԝ�-/�\u001d�عc�C��0Y\u0019fx�qw�v���\u0014��{wY����d��xq\u0015\u000e\u001e��\r8�O��\u0000�\t?�\u0013�\u0000�)������Z�J�kF\u000b�=�C\u001f��vt�\u0017+#�\u0010��\u0015Z\u0006\u0015��[��\u0000�����LO^\u000fh�?Q-�G��f�[]�\u000f���\u0013�C����~�\u001f�'��_|k��\u0003�O�p#���q�W��V'�n��'��Zy���O��\u0013Z��Kz�+�b\u001coR\u0019\u0005z�=�ٿ�'�/�!\u000e��G\u000fiV�2\u0011\u0019�tI��h�-�o�}��2�M<����\u001d�\u0010\u001dI X���G�\u0000�6�/O���勛X\u0012[f��\u0003�\u000f\u001f\u0016�>!J���3���U�M�����|'��}���?haɥ\u0015������\\�����vVa���I��D��\u0017�QJ\nq�\u0019�\u000e��˩˒Y���_��-N3�\u001e?;|?\u0014���:���t�B���$�H¬;mO���9�b�Ò ��x\u0019�c��#\u0019�ۼ��\u00002�\u00000��s%���y\u001clT}a\u000b\u0006Pi�Spi��\u0000������\"#*���=���Ǩ�\u001c\u0001��L-?=�@����5G7�\u000f���FS����F|A�\u001f�X\f�Q������7�\u0017�\u001a� [�G\u0014�E#f\b�҆�ҹ���ڝ9�\u0002�t����G�2\u0016�_�\u0019Eݼ�К\u001e-�\u000e�%\u001cd�\b�d�G�\u0006�osMF7\u0016҅��}J�Q��]�{�!��f�ز��\u0013��&�\u0005�\u0014�_T��j|\u0014CZ8 �2}��n(Ek�,��\u000fV/��[�$����[~-\u001b��������6�~�+}�\u0017�\u0010\u0006ك�\u0006>��.N\u001c���so\\�W���\u001d7�zf�\u0005c��T��G���\u001d�?LD����5��Ռ���[�/Ϳ?I�y���!�/�+q�E�J������.�_;y���KO��I���?\u0015�\u0000�(�\u00004�0<���\u0000�kK���ɮ·�G#0[8f\u0006@�de��u�\u0011��ϖA��h|_1��?��S\u0016�@��vw�p��E���?���\u001e\\Ѵ�x�PZ�[D��\n�c�QT��\f��ȓ��ѡ�1c�@���Gp��jB��\u0005�r\u0010ӧl���K��\u0015]\u001f`~^�ټv��F4B܈\u0001���8�y����{.\u0010�\"\rl>o�,F�\u001b\u0007aCJ(AU#�>[f�Q�߳���w�y2\u0018�ғ�XD+�e�\u0017�U�\u0000E�\u0019M���\u0005\u0002:Q�\u0018�\u0003+\u001e�?�\u0019D�\r�ظ�ODih�K{�yT\n2�*OHߎΤ�I�\u0019\u0019lF��l\u001b=�\u0000��u�f>��\u0000�n-��,)R�Ҵ4��]c���9}_bU>�k\u001c�y\u0004)^e����v\u0014=\u0000�\b\u001a��n$����\u0016��\u0017�K9�3\u0001\u0011Pw*�CS�\u001e\u000b;����ٔZki$q#�\u0019d\u001b�n\u0007�5\u0015aM��\u0002\u000e��� ��R_�^\u001c҅ɩ`W}����p\u0011�G\u0019�ړ[[�\u001b\u0016kqAB\t�SQJ�mO\f���l�*<�dv��\b��H����=yR�镜f�\u0016���\u0010\u0001L��ݽF�^!\u0007\u0015C˦�%jj\u000e\u000e\t�\u0006C&\u0013+?El�su�za$�\u00187.\\�\u0015�N�lY�:�fSɋ�@���Ǧ�r��)E����!n\u0003�\u0015Ut�N��L�\u0001���xI�����Ml�ot)�Xn\u0012��?���\u0014�O�A�\u001c��\u001c���-��=<Ģn\u0003�g�h��y�D�(��/�\u0016DZ�\u0005��V\u00145��sS8�\u0019w�m�d\u001a�\u0017�tG{�/�}G�~S�Z�R�Du��LP�sB[�\u000et�H�\u000e�b�\u000e8���?_���q��9y�%�~gD@�.\u00169\u000b((?go�Z�\u0014ju�g�<�&�z����{&����\"��\u0005�k!BZ6J�\u0001?��l�ɦ�F��\u000e�Q\u0017+����\f�y���Lѐ\u000e,��A��P��s�\f&>� ���\u0011��}�k�Op-�h�z���\u0005W� �W(ˊ`qGb�i�8��9Q\u0007��?3?+��uW��O��S]�z��\u0000��izʨ�#\u0005�Ol�iu�.1\t\u001a�\u000e^n��t\u0007O��\u0018��%ο����_��`�\u000f��$���?/�{5��{qp�6s�~��YH������X��z\u0007��:�\u001a,}��:���\u0000�����������h̓\u0010y\u0018Տv�_z\"?��O[�����l\u0007�\u001f�缗��\u0003��cvlqL��\u001eSߒ_��X\u000fDG�=_NhV�2\u0010>\"�^G���Fo�`v���I��]l�z,}O?&~��\u00041�\u0001�t�BJ�\b�P\u0010\u0013��\u001d\u0007�jd{���\r��Q|UգE��`PO\u0018>�C�X��#fRz���\u001eR�D_��6`ڭ�v�>0�˻GJz�>\u001f��@�Ej�\u000e�L�����v\u0007{%��2��%��:�\u0011��\u0011\u001b�o���;��r��\\�\u0017�;M�š�\u001b�^�\u001e0�'\u0010O\u0013��V\u001c\u00057�n0�s�I��*��\u00008���渶G�Pd\b���\u0001Tux�jJ��Z\u001a�!�P!\u0003.��l\u0005����������\u001e\u0007�4@\u0002� �fD\u000f\"�򄡿F\u0003ut\"u\u0005J\u001fT !7\r^�\u001bu;fX-\\=_I~Wk0����ef�o@=U#�o\u0014�\\��B�j����Dp��/�4\u001b�E�X�@�\b�����m�XԒ8�i��g��c��\u001c��/��~����l\u0018�X�9\u0001�4�H\u000b�M��9�d�ۼ$�E���h:�H�Wh~\u0019�RX\u001f��5\u00072��dcժ\\�g���Ҽդj$��a[K�\u0003�S��o�f�I\u001e,3�y�u:��꣘}\u0004W�b�\u000b�W�HעU#���\u001b\u000e��M�jo�c\u0011q0�O\u0017\u000e[\u001fN�'��s,:�S�\u0000�Q���z�\u001c�\u0006�#�a�l��\u000b�o$Ɬ�C� \u001c�����<�\u0004A.\"�����=V7\u001b\u0018��ᡨ�B:g;��G/\u000b?��#��ʎ/\u001bx\u001a=�Ry<�o=_�I}9\u0011�\n�d�\u0001Q^�\n�5��<$6O�~�|�q� �(1���\u0010�;���\u0011햌����N\u0003\ts�H\u0011��m� �+��Xg\u0017\u0010H\rLr��\u00106\u0015\u0014�\u001d�r�y��ܲ�9���wRM�]\\j:c��\r�_ق��\\�\u0012\u0012�[�e�_LH\u001b\u0013\u0014�\tێl��_2\u001aN8��k6�C%�\u0013M\f��]ڲ]ƢO��\r\u00196�\u0019\"\u0004\u001a\u000e�xe�os\u0011\u0018�O������\u000bǾ�#!��30P/aPcY\u0011?d=\u001a���v�Yp���\u001e\t���\u0013\u000f%y�G�5��.���-m�ꖳ��;xl\u0005^�=Y\n�M6�7&$ ����l4��Y�ѐ㈢I\u001c�S�+���&�P\u0000\"$�.g����\u0000���\u0000�����]O�&_H��^V�U���s\u0012��_�p�s\"�\u0016_/i\u0013��:5Vy��j\u0002S��%{n{R���?��\u0014�R\u001f�f?����\u000e���a��_�?�:=�\u001f�N�\u0017�ycB'��N�?���\u001fN�ߔ4�uH�\u0015<�\u0002\t�V\u0002��\u0001�c�$Tg��\u0004�}�ɂ1\u0003ntȭ/��c\u000b)��\t\u0014�*�\u0005��\n+B�>y�(\u0010\\�hl��v=?ݑ�J\nT2=\u001b��n�u�\u0015�#U�e\u0010z�F���\u0014�x\r\u0002G%\u0004iO�^���.����\u001b�m�\u0015��*#T1��T��f<�⌿\u0011޽O��H��n�\u000e�\u0011\u0011j\n�����y&�2ʠ\u0016\u000fC��M@5�@���P�,�ڧ�\f�\u0012�\r\\�D�\"�:�\"�;\u001ae^\u001a%+\u00169R\u0015u#4�e��<��ɋp_��W`��\u0012w^��$�\u001d�\u0012\n�����\u0007Y\u0015Kl�:5x��|U���l1\u0011;������$F&\u000fİ\u0002�\\4m\u0017��͸�%:�\u00002;_�e\u0006��[^�fn��\"V@AV�\u0002\bR�G&�@�\f��^�\"knL�L(�4�M\u001c\u0018-�s�8��:�J\u0016�X\rПl2�LI'�4]R\u000bP�̩�\u0002}>h�����YT�\r޵�i\u0000O�x�n���Xx�X�@�0G�r���\u0004�|�!t�\u000e�v�@��=�J�vOl5�Ѥ\fѳ��Ò�V\"�n�9Z8��\r{e�\u0018�Lc��KF���8�\u0010�ʻ?�)\u0013�.�\u0016WB$YM\r(v\u0006�\u0019^La�5\u0014wْ\\k\u0016��+��9�j�ۺ�!V���1\u000eꜫ��:��\u0003�٦�LHmH]\u000f̚ޕ4S���@c���\\��^���R�\u000b�Z�5���9VI��\u00056b����}!���MA\r��L�^�ʶ:�J\u001f�.T;\\��Vv�h\u0007#��+����\u0000w���4�ȍe=\u001f��>M����\u0000.��{\u001d��I���ܱͥ�\u0015Ŭ���G��Ȳu��\u0002�A�#@Fv�A\u0011#��<�������s��F�f�o���b�j~_�����\b�V�:p��[;�n G\u0003\u0016f��B<#�j�\u0007\u0015�>\u001c�ǿ��܌��e\u001e��\u001c�I\u000eo������K\u001a�\u0014�����$\u0012��=�r�}5�&@��\u001a��|�kV\"c!�������l���%��Ra˂�\\Z�Nf:��l\u001bo�#��W\u0000;�7c\u001c�\u0005+�o�wf[�M��\u0018��td7\u0011�ԨG�W\u0013v\u0015��A��\u0016A�p�\u001c����@���W�ȋy\u0000��\u0019`yU&�ab�\u0004�t\u0004�CV�;��7�6\\P=E$�R7�c��u,�ȍo$�y�}X����\n�)\u00017%��<�\u0013���p�(��\b��u\u000b\u001dF\b\u0010�Yʠ�0C\u0018h٣jp�9%�\u000eR+�BՔ\u001a��S`���\u0007#��R�W�g��v���d��4�I��X�(�8�3\u0015*\u001d��G��k��Id>�F��1şę��/�7�\u0000'�5t�\rz{t�=\u000e���_�\u0012������>(gJ��J\u0013�a��5S�����;����GG�T\b\u001b��������i�~Y-��]��\u000bi-�\"��\u0018r�I$\u0007�Ʀ8�e\u0015�)�\u001a^ӎ�f\u0011\u001e�Ϲ�k�.zh��V.���o�g�4v�1_��\u001a\u0005\u0017$�����p�M^���9�r\t\u001fX�\u000e\u00169��.\u0012��;�\u0017��^c�\u0019��mJ8'��V�ӿ�\u0011a�����i�\u001a�}ĠQ�S�ݶ�e\r�\u0014Cv<�c|[�s�t���6i�F��7��+c~�<��H�VW�\f�ЊOV�\u0019E�\"X\u0010�S�O\u0014�%G��;ӗ0�\n��\u000eG����o���8y~��S����P�Aּç������Yl���T�5\u0007��\u0002�ͭ��\u001b��r�8U\u0010qZ\u001c�h�N$z�\u0007���?�'E���.9��x��#[���e���\u0000����`�>��4�|���5��Q�������k^]���M{k�J���]?Q�o�JJ�2ȡ�F�Ohjtٲ�\u0019�\u0013��+�\t�M�s�r{7G���әD�Ox1=\b�A�Gj��5_����m\u0002�V��\u0000�\\�o���o9��}��F^_~��\r��p�,�������\u000f ܩ�����,ؚ�K�;�\u0000d��\u0017�Q\u001d��2�>–цI\u001f\u001b\u0015�����>\u001c�Q�\u000f\r�o�\r=����:\u0011\u001d��я׊18&j�\u001e-�}��w���_���?�ߔ�j�9-|��=\u001ePՎ���}A5-j}&�T7v�:\u001b�^�d0��\u0018��D\u0005EFz�\u0000d�\u0000�ٙja\u001do�43�yaŌ����\u0000w�\u0001�<�\u0000�'��\u001e�R�K\u0006�\r�\u0018�\u000eZ�~\u0016J$�p�Oҝ\u0017�r��\u0000͚?������uޫ�$:���t��5�\u000e�\u0011\u0005��i��oym2�\u001bl�CCPF��t��&�M\u001df�x�h�o\u0019�\"Q'�,\u001a����i�\u0016~���G��W󦻭�v\u0016\u0013K3\u000f%Y7�4Խ�e�)\u0005�}w\u0015�X4ww�\u0002�\u0018\u0014�\u0003�oLqm�{��n�!���\u000b�\u0011&�8G�\u001f���\u001b�0[�\u001a�E����Z_�՜F*:��UA.��Cƃ���!�\u001a�Vk�ҙ���<8���>���޼�F��\td\u0007����ӈ�|M\u0003�^�o}����m�hn�E�lL\u001a�D�q\u0001n\u00066U���U���,�\\B��i9q�'\u0016����%�����o\"��&���e�i��5ť����\u001a����t-:9\rƥ��%\u0016��b\u0005���H����N\u0007&��R�1�S#�u'`ӓ7���\bܻ�E�ka�]��^_�o:h��g�?3�9�\u0017K>g�ⱻ�+ɒ��^_Y�:G��&Hfi��s5܁\u0003^�2I �$dbj��GU�C٦^\u001e;�\u0006��?VR\rnz6 G��c����8\u0006g�MW,`Ǡ�\u0000e+<���o�ͭ&����~M�y5�]#I:f����E��B����mCH�OP�����x�\u0013��j� �q{\u001d�\u000eQ>А9n��\"L���\u0003�e×m�r�\fQ1��q\u0001Q�\u000ew~�Fܟ�Z\u000e���/4jך��>��������{�P�w}u9�G\" #�\bCq�4Q\u0014Q��(\u0000\f��\u001a��4�njD`�\u0000#\n�\u0001�~��y��Q��ɔ�YH�<��m�҃�#ӵ�:��M\u001aM��k\u0014F�K\u00047\u0011;ǻ;�ߍ\u0006�\u0002�v.���\u001cY�\r�n\f��H�I1��o���-#���kV����Ŭ�\u001ch�\u001c�o,\u0013F((�F\f\b�;fT!�.\u001e\u001b������f\u000f\t�������O��o3h0���d�ξQ�V3���ޫ[\u001f�Q\u0019��Q��\u0007j�\u0019����5r\u001a�\u0005�����xw�˛��h5z(KI���9s�1�\u0019t;\u001e^�O�|��\t�\u00008����i�\u0000��\u0000���>Gק���U�L�\u001cZ]� y��\u0005U!��i�+\u001a�\u000f\\��������S�_i�-^�@�f�8�B�uw�e�دf;K[\u000e��\\�E�B���\u001bSkeY\u0014�'v\u0004v��i���4F�n\u001c�\u0015\\����̱𽴅��\u001a�Z��\u001b�\u0000\u001c��\u0000�i���s�\u001d6�VP\u00186��#��Qn\u0002(�:�NH�\u000f\u0013��9���5\u0018��l:�����\u0002\u0005\u0011��\u0007��\u0000-<��;\\�\u001c������-��H�t�ԁ�F���z�����\u001e\u001b�;\u000f��&^.\u000b�>�w$�G�u�,/��\u0002����M�˱�\u000e_���O���i�{G/�5'q���o%y��kRYAv�gx}9\u000b1hԶ�\t\u001b\u0002+�1u�\u0018a�\f�\"���6����'��r�Do�h�\u000fj������4������#��n�ɯ�g\u0018<\u0011\u001d\u0007R~<�з�WҎ�5?f8�SJ\u0010�R��g\u001d>D�ц�\u0007��7C�Q3��B>\u0011M�ڿ�s\u0003<}$\u0000��|�QywU�l�䇂��AerJSf�ֵ\u0019��!!���䏃\u0019D\u0001\">_\u0007��Z��� �d+@\u0011A\u0015a܏\u0001��Сe���%*\u0007���&�i�\u0004��*>*����޵��1�\u0012�ϔdc�\u001e3���ln\u0019o�XㄖP�B)�G~��A��\f|�3!\u0003y\u000eϗ����\u0016�s����.����<�!+5ȭ\u0010P�E��'evI�\u00192��'����a#����Ԏ���Ry�{˻�\u000b��J���UP��/�����\u0018���y\u0018�9$k4\u0015�9\u0001\u0014�HQ�\t\b\u0011���\u0007ߔ�F���q\u000e@�=s�Hb�U\r�37\u0016\b�\u000b7�J�����\\��\u0006^-_QlN��\u0011�M\u001c�!��yqa�a�Bu���#�DWF\u0012�\u0015t\t扇��r]c��\nB\t#n$�naM+Q��N\u0011\r�F^!�����ެp��y�\fX\u000f�H�\"E^�w�s\u0000.UA���'d�-^ic.䆍��.,9| �_\u0013'z�l��^�Y\t\u001b��=�\u0000��F�\\ r��s�q�FZ\n�F�\rv>\u0018� �(�Aɵ\r�K��Ā��dR����4\n��xTQ��$q�@12�?s0ҵ$h֠RE�U�����#T�۶S8Ѱ�c�j��ٝ��0���Ri�\u0017\u000bV��|*���e2�\u0015T�\u0018����s\u0014\\��\u001bL�j�=I\u0016�\u001d�^%k��M��f+j��.���­��ܚ�\u0001�ݾ\u0012J�F\\ nٌ�\u0011ݓ�X�>=:\"\t�\u001e��9\u0002���QU�f�̅���1�,�n�{��Q��6w(bv����Z�{�1����\f�\u001b��,P>�e\u001b�|+�\u0004�\u0017Sfw�~\u0010���\u001d�$�P�(2_�����\u000fg��Ho�~��S����\u00108�6�8ֱ��ԅ;�#���Y�&�L�;�\"8xo�¼��?�\u001f�=U'��[�;����������с\u001e���\u0006�Y\u001a\u001bO�q���og���\u001b�'��}/}q�o��_)�g\f�[y�b-\fS���\t�����2��51���3qH\u001f\u0007�r/C,�>��\u001cP\":��\u0007�>]������\u0000���\u0000˯0\\Y^��\u001cQ4���oF`\u001b�e*8�\u0011���u\u001a|��X��wx�f\f�,�\u000e@c!��ޗh^u���\u0001yDDref�#��N'�_lr`��5ǜ^����{����'D0L��T�\u001e\"9T\n\u0004+�X\f���D�9���,\u001b,�S�/�\u0013c�\n\u0003)�PT��\u0000�b�\u0001۹ʱ���y~>���B���\u000f��r;���\u0005i$����`� ��[\"���u�\u001a3\u0002��O��\u0006U˛+�\u001e�8\u0003 � FF�Z��c�\u0017#�\u0005aAA�j�\u00127G�����`n\u0019\t��sꣳ/\"\\ԽW�\u0005��A�k� ,�n�l+�\u0010�����k�w\u000f\fK镔��\b�3�G]�\u0003���=�Hw~>䰏0�\u0004B5\u0016��-�\u0016%`\\�7�!�P�\u0007r\b5�dI��\u0017@}�\u0000���#]�J�`�0^UwwUr\\�N���ڏ٧Ӈ \u0017�}\u0011��}\u0003V�P���C3��1F\n\u001aN��_M\u001b����\u001b�6I\u0013D��Ď�U��7:E�v���\b��V)�J�ICA�#���C�\u001a\r�a�s\u0013�C|v�9����ƻ\u0013�K{�Q���hh�\u001b\r�ē�/�-�,�\"(}I-�\"��tedU\u001c�\u000e($^�H�R\u000fߗ��k�=�<���W\f\u0012�O;\u0007��DZ����\u0014�l\u0000W_�15�'\u0002k�~>N�I\b�~`���ޣ\u001cs�\u0001zM\u0004����n\t\u001b�\u000bZ\r�m�3Tc28�ǫ��ԾA�8`�Y����>.�ݏm���YI�n\u001c���j\r\r�ժ?7���\u0012��N~.\u0003�\u0000���r�\u0013.\\�L�G�_^�g��\u001a�\u0015-gs\u001c�A�*�\u0007���ћ}\u0019\u0011�ý\u0010�����%�2��{恫G��Zu�\f\u001a��ӎr���6'����$N,�G���ׄ\u0011�����\u000fh�����An\"75��\rG��虉䜢9!\u0003ב~f�s��?/%$�W�<��-G�\u001ev�ƥ}�]�����k�Y|\u00124�D4�F�\u0011�hIބggٞ�g�L\u0018��2F\u001al���_s��}�����E��4I�L�,{�?s�J�\u0000���\u0000�����\u0000����ѿ2�1�\u001b\u000b�<��K�4}2�l��\u001f@{�V�O�b�qu$���+\u0016r\u0007@)��؝���3��\u0007� \u0006r'y\u0011��\u0001�\u001d\u0006�Y��\u0011��O��=;\u0001\u0010#�\u0000��l�ƫ\u000e�a�k\u0016\f�c�A\u001d�e\t�\u000e���\u0007b�iL�\u0006P��:�\rY /�D\u0013�J+��\u0013[lQ�K+Q�\u001an\bm�aM�NB\u0013�L\u0003\u000e�`\"c+\u001c��\u001b��TJ�j\u0014�)a��F�vE4���5�;3G;1�\u0001�����f��cZƙo\n��n\u0005vX��Y�\u0013�,e\\W�s\u000f'd�s���\u000b��������-�C\u0019*�O\u0018�\b�!�^��׿\\Ŗ����H\u0013\u0003����tc�{\u001eLJ��Fo/j�[��Im/�Y�\u001b�9�Y���@c@��캃�\u0006-~}<��$\u0007^��le�ǐz\bH<����Csaxn-\u0011UโG{���Z;��\u0000��xk�х<\t\u0014͉�\u0001�nȌ��9X;p\r�\u0003\u0013^�s*��.+-\u000f\u001a1\rD*>�J���k3vD�.;�m��#*��3��|J�`���c�J0�e\u000b�z��\u001a���ܝ��|?\u0014�0��,��ڙ\u000f5�\u0002D+\u001e�\u0002�q(zr\u0004U�ď�O\u001c�:RO\t\u0016\\Ѫ�G\u0017 ���\nѫ,�mֵ^h�\u0010\u0006 )N��u�\u001c\u0006'��� F�\"\u0013^�\n\u0019\tj\u001d�T�$� lթ�\u001d�8~H9��p�Ɍ\u0019d߁T0\u0005\u0003�@\u0018�Kp�{�o��M��f\u001dQ\u0016��Q�\u0019&R���h\u0015G�\u0014���\u0003P�H��\f��m\u0019`9�)�շI9�@jH\u0018q%�Z\u0012\u0007B����C��.���\u0013ܨ��\u0006`�\u0006@�J$jFA�R�\u001b�+�\u001b�3\u0012\u000f؎ N��;-R>h�\u0014I�B�P#ZT1n��5\u0000\u0012@?t\u000f\u0011�[\"�\u001f̩edR�Č����/�\f�q\u000b*���My\u000f��|\u0012=\u00038\u0001� �]S\"����\n�\u0005��wR�u5ڟ,F\"M��w�\u0018��*\u0017�rW��B֌��K\u0000\u0001�\u0000��rb \u001e[���֜C�!\"4�\u0003!,�+F&5\u001c�\u0019��S`(��,#�@�h�+�\u0012-\tB�Ÿ��!Uf�T���f&H˩g\u0001gvga���8����\\����<\u0007-�\u00005'��,����\u0011\u0001���l�U�2�\u000f ^Uޜ@f<�\u001f����l��7&\u0011�2�\u0012x�XBB\u001f��\u001a���i!e�>�\u0012(>��2\u001c4�G�#R�5\u001f/��\u0019d�Ů\u0015������#\u0014/\u001c{��}���xa�Gf9g(���蟕�\u0000�\u001e`����R��\u001fQ�/bkMgA��I��\u0006�H\f2rT\u0006\u0002}6C�0ڔ̃��T��j������>������)�^��ԍ�����W�\r$GQ���h��\u001b�{�R��Ǜב`6\u0006�C$9яJs��\u0016[�3����E���W��ZňmB��1s\u001a\b�T=K[��\u000e-\"+n�-\u0007��P��\u0016x�K��I������\u000b^iV7�[\u0011!�\u0012#$ʁ芴^(D�KWa�\u0001�\u001e>��\u0019\b��\u0018&��\u000f5��<�铈YEy\u0005��*����*��\f�sZ��Ďn.A�&���%_�?���[��Z_\t���Ij\"��E\u0012��I\r8ր�B6�D�p�ч'\u0016`$�_�/�8j�`�:_�-R�[�x�u\u0018-\u001a�\u001bb\"\u0011�\u0002�B�'%R�\u001c\u0016ޕ\u0000�Zx�\u000b\u001b�\u001c��c��\u0013Q�=�_��\u00003��䛍\r��k)�.o��ƿe����\\\u001f�D�H8�mk\u0002�#9������h���԰ݥ���YJ�4wv֬ޤ6�\u001fBT���J\u0011SS��t��C �\t\u0004\u001d�㛛�Ϥɧ��c�/��\u0013�\u0000�?����+\u001d[ΧL׽-#��G�%��\u0019-��d��9=\u0007t\u0017�L�\u001a�\u0015�EA�o����\u001d~18J<&�m������v^<�\u00004\u0019x$%ű�H��u�����\u0000�8�\u0000�����u�\u00008�K1�\u0007���e�rȥ�����E\u001d�i�h�`�xn\u0000Ү�gH�\u0012de\u001e���n������z�v��z��r\t�\u0001�ÐP5�\u0011�K�З��v�gO��\u001f��$5x�\rL��\u0003d\\2}@���{�?�O�ȟ�_ �\u0000ϻ�\u0000�$���5���GԵO��FK?/^�Vӝ_��W֬\u0012�\u0000��j�M���c���&�R�VX�(+L���\u000fm{\u001b�}����hgå�N(d�M�f�.\u0019����U�\t\u0011�{\u0017�/k}���gje��4%��e\u0019\u0001@�C�$��J�\u0010\u000f��b\u001e\u0003�����\u000f������\u0007����9�\u0018\f��k\u0010iwQh���|\u0017sMactc�K�.�Yb\u0001�E3?W�\u0000\u0004Ogty\u000e,\u0018uZ��\\Q1�2{���<�o$=���@�}F,\u001bم\u0019� w�<��?.���<��\u0000?���K\r\u000f�o��\u0007C����o2\r���\u0012{�\f����㗃\u001d\u0007�H�g�fT\u0007��]v��v\u001f��\u0000���\u0000��'��m;�~e���<�u�ΆMW\\�����g�� �N��\u0000��5%1��\u000fqQ�\u0012�����\u0012�\u001d\\�B�\u0011�a\u001f��\u0002�\u0000\u0016�s�^\u001d8#E�\u001e!�I��\u001d�M|w~��^�\u0000�&y���M~\u0004���?[��w���\u0015a���*�K�]N\t�\nG�x)�)C�\u001eӎj�2\u0019EQ�\u001e�\f4���Ȟ���\u001dR?��Ý\u0003Q�m�[{O%k��W3\\\\�[�>_�Pg-��NM��k�_��DRMS;\u001e����4��=W�F�l\u0001>��螵�\u001f����V� �L_��.t=$��t'�\u0015�\u000b��I�����\f~W����ߗ�Y��Y�\u0005���N\u0017$�}��q�����\n���� g�h�KE�\u001as�C��\u0003c\u0013���(�_s��}.A����\u001a�@�iF���X1��䔣 \b��Km��!��\u0016Ey�\u00008��)kp]j-\u001d������ާ+�=b�\u0019�R�\u0011%X�hMA�KO�6YC�\u0007�WD\u001d���^�\u0010�#�\b\u0002\f�������{g�G�|դΚߖ�+�xaQ{\rΙp.�&\u000e��ĭ��Z�\u0006�\u000f|���cM�����蝈#��]\u0017f䡛O#�x���~F�����{�rfY���|�\u0000j�����7��\f��Y��8��v�*��epd>?fK�/>\u0010C�vW�s\u0003�\u0011�Mˊ����}����'k���y{S���p\n�#��\u000b\u000f��Zg��4��,�u1 ���\r\u001e�\u0003&�q�3�d��ɠ\u001e���*+J�\u0015����b7�>e���\u001b�dU����\b�*\u000fF�Sڵ;nr����Ŕ2J\u0006��4��!��Y5\bc���s�P� �r5���N(\u0019ˆ\u0006����#�7�\t`�>��K�\u000f�H�u\u001dr��Zh��-<\\F�J�ۭ��Z��+^;���dv���\rl�&U�s�>�{9�[�.n��\u000eA\u000b؀8��[��'k7�Z�_H�\u0005�����F�QJ(jsV��4\u001b����qk1��iq㧜�.�C����~\u001e�\u001a���_`�-�����\u000f\u0016�J�T�#�{�#8Z�<�\u0017�$!�N$=4�H#5!�p�**�OCߕsq��{���\u001fG��<��u>J�n\u001c�[��7�u��{�~�Oz�\u001c����Dh�=>O�G�~\u0013���=cU�����_��W�����x�]�3��(��\\rؓ������-V�s\u0016Dq���_���\u0000�\u0000y\\�\u001eM��\u0016�w�\u0000�B�GZ���\u0010�;\u001e��53��d9&I������\u0000)��\u0003φϼ�'̿n������q�;\u001e�\u001e\u0019� �\u000f}��\u0007�z\u0005�ǧ*Ȁ\u001f�\u0012<7\u001d=��(�.\u0004K���b)�^R�4Ԏ?^����h�p;�\n\u0002\u0007ќγ\u0016C-�G��f�#s$Y��y_�,��-I����XqS�u�v�\u0016|FP�wz\u001d>|P�\u0010����w7\u0017wztW6/��#��z\u001a��N�3R\f`H�7r|I�J7����\u0000������\r~��Z\u0013��k�\u001c���\u0018�-m\u0014�\u0011���jB�ԏ\u0013�gavt3c��_�c��y�_ke�O�X?Ƨ�����ާ���a��-s\f\t&�r�=K�B`\u001e�ݻ�)5�w\u001a=7�S�\u001eO\u001d���㎜t���I��\u0017X�\b�(Q�L��G~[�a�fd����N,2\u001b\u001b��_��\u0002y?P��A\u001bPҧ�\u001d+^��q\u0010vr�k\u0002��Ө4NZ6�dj�h�\u0011]��\u001f\f���z(�]V�U֤&i\u0001p_�AT�j;\u0013����p�%�?P�o)��I(�+pS�&�b6\u0019\u0003��<����-�r#.�zo�j\u0018���4\u0007`G\\�P7]\u001b�1\\Q�_2\u0017A�b�(�\u001b��\u0013�'�A���n��A`��hYu�f-��}\u0002���ӍOj9)�~�\u0000b�y�\u0004\u0003'�&�\b$7.���G�=\u0007H��V\u0011s\u00112/\u0010�!*��R�I�(�3\u001e@�@�ˑ���/T���W��y)���\u0016\u0000P\u001a��\u0013׮b�\u0004\r�|d%��Ȗ���\u001bJ����H\u001b�{�\u0003je|1򠤑��\"\u0019���I阧\u0005d$\u0004fZ2TR��\f�}���\u0000�ɿ\u0016R,\u001eg��\u000fL�5\u0016*�8�[�2���Njv�O�b�\u0011��9س�\u00024:~>�ck=���,���U@\f�\u0005Y�?\t%���Y��>N~9b��5w�FI��Hnl&x\\\u000f���k��_���\f�G� ��3�%.<$�t�Ҙ��d��O�t\u0005�ZT��b���K\u0001�x�\u0018d�GbYc�d�韫�L��<�戄7�6�\u0019\u0013���\u0003պ�iZ��^l&�Hre�M�\u0015�1���̵���{+�׼��I��\u0016��*\u000f����M�\u0000>����\u00120�u\u0003�\u0005���(� �h'��\u001d���}GH������̍.\u0018�4���X� *�\b\u0012�\u0003r{�C��ͤ>��2�\u0006�?��X����0?\u0017�~z�r�\u0000�;����yu�.9u=\f��7v�\\\b�J��+���gM��,\u001a��ΆG��>��vq�b8��Dr?����K󖣠\\�BYU��\u00131\n\n\u001f���\u001cϞ�d\u001c�u����\n?��_�^��L�\u0015����\u001d\u0013�\u0011�\u000eՠ�#(M(Z�\u001e�4����v��4��䅎G�_�\u0003�����~�<�\r�\u0017�U�^W�\u0011z��ȢX�Qgp�,W���M\u000e�6\u001a\\�͇®\u001dDy\u0013��;�\u001dv)`����KK[Ǖ����>o���a���Ǵw�/���s��\u0002+��og��Rе56װ�Ȕk�\"`>*rR�����Y�\u0013\u0011\u0003U�\\���\u0007���e\u001d��c$e,�,��ٳ(��\u000fK�������۽N=2�-*yQ�\u0019��x���ȿ���EZY�iQ8��\u001c�\u0016HN\u0007.]�\u0018�o�\u0003{�\u0000�k`4d����\u0004s ���\u0000�/�\u000f�ß���Q?�~V�5���/2J�{���+\t[̚�)2X�P\u001fKD�1� =\bl�N��ϴ��u��f@���\u001d�>#��/�{-�'��\u001f\u001e\u001c��.g���yr\u001e�F�<�}3w4M'��̑0��\\‡ea�X�\u001fy�nA��q��x��\u0013ʙ\u0005��QA\u0003FX�\u0004��`�h7��\u0019}�Z�,�;����\b�\u0004s)\u001d�=���\u000by\u001b�� ��\u0003�9Sfy+Ў�1e*<�nQ��m{S�\u0010Ib]f��Ւ`h��G\u001d�\u001a��<|3\u001e&���P\u001e[���\u0000��vg\u0012W��-\u0010j���}�Gj�l�3j\u0014<���/]\u0013*En�����R\u000f�E}H�\u0003�e�A�L^�a��Ր\u001dK�5�\u0000,YysR�մ��m�7�\t�\u0015z�9#�^jjF�Sj�K\u001c�ز\u0014C�#��V�ᾶ���`\u0013z����qUev�pI\u000b)#�a��pb%\u0010G�\u0013\u001f>O�����XK���FO\u000eD�\u0005�Z���\u0014�@��N�����i�\u001b�>Q�2�d\u0005��G���lʄG\r�h����\u0000�7�\u00177�\u0019�J��1bB4�ۅ\u001d\u0000�7=�\u0017W\u001e\u001ce���7��k�k�Z�J�\u0005��2���2,�!\u001c�O��ٸ\u001f�14�2�a!��H��K�_s�O�\u001dgֲ�W ��様bк�P;�f�Y\n�\u0000ӕ�շ0\u0003�,��`�K��\u00003�?\u0018�R�z�s#\u0007 \u000f*a.v\u001e���nt-R֥�6�:WqA�\n\u0001_��<2���\u0007�p�\u0002�Ly_ɗ�W��\u000b\u001b���)k�\u000fC��!��#�\u001c�ou8%�\u001f\u0014G�n�0�'�-Ŀ\u001f���J�^[ԑ؁b�]D��,.���\u001csZ%ׯ'4zcD��~������o̟��I&�/��/6H�\u001b�0ͨJ��vڑ��{�e������C�|�'�|��2;�q������0���2s�c�\u001eB���+\\���[�.0#]\u001e��\u0007淽ҵ/'���\\i���2;\u0013[Fj�\u001a�\u0000�ߢ�\u0007)�Ƥ3��Xa\u001cP\u0010?T~�I}����~�\u00153�6X�݁�H\u001d�c\t�6��(\u0000w\n�$\u001377��q�<ӹ�j��\u0018����3\u0011\u001ei὇$�V�t�\u0015iA��,��\u0018�J\nV���+�/��\"\u001c�E�\u001e`�\u0000i\u001e)l,�^PE\u001a���*�.=J*F�����{s\u000e��X?y�l@�G����\u0003��h�1ǐ���O�ta�\u001f�ڮ�u,Q\u000b�U��*i�Ku|Һ��\\ݺ7\u0007�n\u0002\u00003��굺�Nl�\u0000�Q�n����@i�\u001a�A���v2?�\u0016.滓V���\u001bj?\u00135��+�ICKÌ&\u0004�?�Q�\u00181<�3U�\t�!�\u0004�\u0019������\"�إ\u001e\u0019��a\u001f��\u0000��\u001aŬVv6څŦ�q\u00037�J�\f\u001a�C,W\tl�ʯ4���ʛպm����v�\u0000H���lc�\u001e���\u00173�a�Ő��rW2v\u001e[�{�?:�6����ou�*�^LX4Hl�\r'QЯR5�!�ӵ\u0012C\u0004��#�\u0012���3�vϟ1���~� �Fq�\u0019��G�\u0012\r���ߦ��C�ݭ��4�!��\rq\u000e/�\n�~���1�6?��d���g��4�֚\u000f�t�w��]j��oi\u0011��>J���Ίz�q�x����)qb\u0012��� Y�~�E�\u0006<�\u0011�\u0012�4\u0001�d�>����O��K�q�S��ɟ����Ϟ����զ�6���k�[��7A��\u0002+Kkk�cY�����z�qzh����\ftZ��\u0014\u000f�\b��o�\u0011�<��\u001d\u001f[��\u000e}���d'�\u0018e���#�fR��<�8ƨG�n��{����1�\u0000��~|�\u0000�s���e�3ΐy��\u0017�j������\t\u001c�b窼�5����,�Ht֍Vc��\"�� ��x=��h��=��H���,\u0012c\u001b$�q�S\u0019U��\u000e^Q�?�?��je������2D�D\u0013U�;�k���\u0017ο�?��m�\u0000;'��;\b�X\\\u0018�kz.��Ȕ�>\u0012>Ҏ������u����r�Q����C��K��2\u0007&H\u0013�s1�\u0001�k���6�b�9ԩV\n��\u0005\fZ�\u0002�t�z��8�\u0019�X�qӛ����4���C����\u0000�/,�0]G$.��U$0�\b(��d\u0014�\\\u001fɸ3G�\u0011\u0004\u001f�͘�����\u0018�����y�0\u001c� ��ܸ���Ԧcϲ��\u0000��ˇm�'9Ra\u001f�K����%\u000fF?��o��t�1�ٔ*��v�%�Z>\u001d|�\u0003�Aj�UA\u0015#}�\u000fA���g�\r�G&:��pS8��B\u000f����\u0012>\u001e]\u0007��>G1��nnF=a��-5�\t'�\u0015�X�mAO\u0002��P\u000e��e��\u001f7*\u001a�\u0013X��$7>\u0005v�wP\u0005\u0019�y\u0015p\u0007�s\u001c஀��$�#$�&��zT(R#n\\�aF5+J\u001e�\u0003!�[��Dy(\rNe�\u0012V\"B\tu�nC�\t�\u0000-\u0007^�/\u000f�ǖ�G`Qq��j8�֔`���,��\u0005\u0014�B|iC�8�2\u0016:�\u00073j����&�\u0000{\u0004`\u0006�\u001d��Ӊ\u0001�\u0004�\u001b���Aa��2G`i<����[Ku\u0000�\u0012�� �P\u0003�:����ʲie(�\u000b~>�\u0003�Ag:_���Z�sj[�2��U`�;Q���I\u0014ڹ��M(o!*����F{FQ2�\u0004[9���\"���!�+��V��\u0000����V�\u001c��8��c�U1-ޕ�곈au\u0006\u0011��@�ЭW����\n\u001aTo���c�}5��Ũ��Ցj���ͫFo\u00038Ee\u001e����9P\u0000EUi�O�#��l��.l�C�y�2�eu��,�\u0019\u0018s%\u0010z���J,nEjG@+��[��K����\u001el���k�u���lu\b'�kvqΎ�,��A��\u0000q�H\u0019q�\fN�Ն\f�\u0016A��Җ��X�������V�Q��W{��\u001ev�f,y<��j�+l69\u001f\u00022\u0000\t��ϏhB\u0012&Q$�7FZ�\u0000�m�~U����g\u0004\"!l-��G���Kz��\u0012@�X~�^]v�:|}M�ތ�� }1�������H��\u001c�^a�!�.na1~����e\u0011�}Gu�f9fr�\u001eT\rJ�r�\u0000�C��˛���\u0013�\u0011�YIc��]k�\u000e�m�^Z��[`�C��\u0011Th\u001a7\u001c\u0004���ܖ\u0014 �u2�\":S\b�L��VR/1�w�G5ԆHn�)��C\u001f�9\fe8\u0015�\u0016�=WaAn\u0012\u0007>�\u001bTe(�W�yw�P���>`�|��@�~�\u0012̑�Z\\ظ��'W�_B�vW�\n��IS����\\�y�<�Dm!��R�\u0000�1�\u0000�����f ��D����5+\t&�X]�\u000b\u0005��ׂ\u0019H��\u0017\u0016Q\u0006��s$�i@�,f*���{\u001d\u000f}w{����F,���\u0011<��O������İyt��\u001f$��W��\b��\u0014b>z��urb���\u001c\fʒ\u001bi\n�‹�r�\"k�j��!9 v����w���8�6�X���\u0002;�\u001b[���s��}��/��K[���\u0000ȋ�\u001b����X\u001a=L\\+C�?̛�H#ht�5�\u0002I4}]�EK]f$cłܣ%\u001di��n��e�q�/e�\u001b���.��#�'�%Q��eDU�\u001d���Y�\u001c]�\u0018�\u001c���9C,F�r\u0019\u0007�=D�)��~m~\\~f~Hy�S�����f���}\u001d�w�k֭\u000b][r�A�h��[\rwC�\b}\u000b�W�\u0019\u0014V��;�\u0006M'hi�\u00005��Ƀ��(���\u0013�%�y�\u0004�ϗ��\u001doe�?'�\u0018�QV\u0001�J?΄�Ӂ�ty_�\u0003���S\"�ʧ`7#o\u0003��6��^�\u001dQ�\u0011�t\u0004ڣu�U�\n��\u001a��\n�Ȇ�u\u001b8�5�;�\u001b�R�����@��wA�7�\u0007�����F\t�.�8�x�LG����?��\u0014{�/�ev\u001f�:�x�����bA\u001a�\u0004Ă�~$�ʆ���\u0019�41���Ȟ�QvX=�9w�\u0007\u0018�\u001b��y;���\u0015]\"�\u0004[�W�b��u��\u0017(�7\u0005��\b�=�K���ؤ|h��wO��Z\u000fh4ـ�\f�\u0017ߵ�{߽�\u0000����-f�@�7凖5�0�>d��\u001eb�m+ʤ��D�V���\u0004���i��F����X`\tB\u001c��P5�\u001c4�\u0011�z����L���C�&�\u001c��}��7����ُl�N1��R\u0017�㥗�%������r\u001f��\u0000X�\u0000���\u0000���&����\u001dGH��ZʝjO-X�J�-'A��i1���j\u0001����\u0005G*\u0000G�{#�\u0019;\u001f�1c�h_i̙�\u001cW\u0011)\u0000��\u0000\u0003W��*�q��h�{.���á\"0�(�\u0001\r���=\\��\u0014�G�����7�,�򯕴\u000f/\\hp�3�hV:v�aq�]��-N�\u001d>��\"-�*\\ F\u0001\u001d%Pj���F c��3�û�\u001e�o�p�d��#,�7W�����\u0003��C���\u0018tX.!v�H�m;�f�%�[�-\u0011y\\i�N��7qZ�Ya�~��EE)�x�\u001b�f�����^��YҘ�\fTc3B\"�#s\u001b�� y�\u0003d��O\u0012\u0014��T��7f��Թ[�4Ja�a��֢)Q�=x�\u0014�6�c���* У��\u001e�\u0012ZC�Ǧ> j�}�|���V�I�nE�_�8�d\u0012�\u001e\u0013�$\u000b!���\u0018g�%�;\u0006Q�,ǩ�E\u001a\u0011�˟��^�\u0019t��\u0011��F�$�|9\u000b᱿���\b���\u0015\u000b\"Mq�\\G\u001f7{�C\\i�:��\u0007���N]iU\u001dv�Ö;�\u001a#������:��e�\u0004DxI \u001a�}hlyo{������A3��t�=8�#>����\r�Tf���$Vu��\u001fQwq\u001a\u001a\u0012\b\u0019��k\u0004EKq|���'Y�L,\u0085��\u001b�\u000f��t|������=yFm\u0017�Z-�����;K$/q�_3��6��\u0006�M&��E�\u0013\u0000���J�M:���=F�U\u001dN�f\u0019\u0007�z�t�)\u000e�w����\u0006)�8f\u0004��W��X\u0013F\u0007ncn�\u001b~\\�s~]y��V\u0015t��R�f�qqo�y��1+̊H�����Ū*t\u0004񖜗�\u0019����z~�<2Ꮎ \u0019B���C�w�\u001d^;_�ɣ\u0003$l錌c\"+�Lt�w��q\u001fʕ�}\n�^���+��N�M5��\f�Q�B�\b`ON����Na\u0003��8�\u0000t\u000f�q��r}��c���(�]j��i\u001f��\u0000.�ki4��S_����,�r7'\u000e��\u0010�����5\u001a��>���a~}��I�.�M)��a��w����\u000b:�����^�~��yZ�Q������cw\u0005�X �f�,�R6sAR<3\u0003\\g�S\b�\"Q��o��f����r�3\t\u0013q\u0004r\u0007�>�׿.�3 ���K�=��n%��\u0017�c8\u000b,��6ic��'j������`�\u0013�\u0001r��p���\u0003��d��[���G�W~gi�1\\�k��\u001a[ߏF+��\bg�\\�GrȩӥGn���=.L�FB2<=*ǽ��f�K��\t���{�?\u001f�o�\u001f,�:�ޑa��{;Ask\u001dю@����\u000f\u0014�\u001a�O�y��\u000e�NX�\b�\u0003]���d�\u001c�h��\u001f�����Uy#IX\u0003U Q��t�'\u0004��<�IN\u0019\t\u0004�Y��5��wg2-�\\����#��\u0014w\u001b����\u0012�'ʹ�j'8i���. @�|�m�1~X��4�Z܍\u0013T\b�\\\u001a�Nv$��B<\b\u0000t�t�pi�GLr�?��O/'�í��.�:]H�\u0000\u0002�\u0005\u0011�]l��\u001d�\u0000��hg�4mn�ҏ�}\u001f\u0015Y\r9\u0005$R�G�[�Ҕ1�\u001c�����H�&�\u001ehרs\u000b�\u0000/<�;۝2�f�~\u0014�T\u0000iN����.�O\u001e?\u0012#g/��R��%w���pI\u001aX��%\u0006��*@,@�ڵà\u0004ʗ^j\u001cR/�_��\u0000�\b��*_\t.�QQܖz\u0005T\u0004�MA�\u0000ίE��/��u�����+��~|��;��$��M����\u0006<$�9\u0002���c�����uq����s���[���\r\u0016MV]��U� Q������V˥ysA�/\u001e\u00166��o�S�{f�r�l�=����\u0001.|#�~�y:A-���\u0015h�~���)�c�k.�\u000f!�OCw\u0011�`�ˏQ�O\u001e��cK{�v0���n5o�'ՖN.j�\r\u0014���s\u000f,a�x�9P��o�?/��9]q^0ʪ�\te\u0004ӿ@G|�;@�\u000b�ϫ��o\u00185�Ty>��5�='GkP�Q�\u0010�@8�'�9�\u0003)��޳\u001c�\u0017\fm�i��yf��F��&Y#�֚&[\u0004,$�\u0001�'U�G\u001cD׶�����ͨ��\u0014�\u0018\"�/�����9ko�9��y_�>g��n�[�i�.d��$�j�R|z��!�\u00146��rK.L�-�����;[Q �Zb�u4.w�:)��j@�\u0001:-\u0017\u000eI^�˖,g���!�� �B2j-5��R(�a��\u000e\u001cX��=2G>Gm�\f�yP\u0003����L�;���>�֦��P�J�[�i�թʃ��\u001ecw��4�`�N��\u001c\u001f�(�J\u0000�,t\u0014P��\u0010\u000f\u000f��^]�<��2MV��Ş\u0004�U�d�y�O�:�5F�\u001c`\u0013T\u001b�f�D�s�\"���.\tT�4>���tnL\b^D��WZҨE@��!f��\u0001м�Wyl��\u001b\u000bEr�\u0002�B\u0010� �:I��*��Q�\\��\u000f4\u001e{�6���\u0014Y�Q�0gW��4�Ї�@\u0014�#�\u0000�\u0011����2vc^t�7p%����\u001eDA����TH$�y��AJV�=2��4?J�~\u000e���\\��s���aF��@���l?w\tv�V�\u0006�Q��U�$���\u000f�o�4������4�h��\u0014~@r*�����-�F\fS�S��3\u0011���Zձ�*�#,�m���iS�?^g㿃�+\u0003�ٷ�w�`���;K�8���\u0019��B������\rM(k�9�x�LG�M�\\�9\u0000�.@�������Mn0�\u0013��\u0001$\u0013�\n�6��M>>=}�2͈�y���?sۿ+�84-E�e�n��\u000e)5j�U€��X|�c�,��T��ؽ25��{$�k���\u0012��\u001c�]��mo'�\u001a�z\u0000\u000e\u001d.N(�\"�~�lrF�ڼ7�[H�^\u000b�iR\u001a6�d�����?��'� ۏ(�D�� ��jSX�8�\u0019���*k_�Jv��3���8\u0003Ѐ�\u0019'(حf\u001f��[��\u001f9�w\\b��<��\\LkB�k�����}����N\u001c�\u0012xd]�uC&�$�\u0011�F\u0007�v\b�N�&���v��u��CZ�\u0013Z���Ĥ�z|/�9�\u0004�\f]��\u001f�p�����\u0006\u0019\u001f\u0012B]h�3�PVK�w\u0004�I��U\u000fߖb�Po���y\u0006�������'V�`c��`�\u001b�-��\b�B+J\u0000yo�fo�5\u0018e\u0019�s�rK\u0006`h\u0011׻������O\fmlU�T�\f�����\b�B�4�$gF�0�e�E(�1�km:�\t/o�J��\u0000^I\u001d�B\u0014m�\u001f�Z�d5\u0019c\b\u0019̈�s'��R�\u0011�\u0002\u0002̞���K�^9��o�k���t�\t%��+�D.\rVK��R��%6\u001b\u001ar=�ڙu �ғ\r?S�R\u001f�y\rܼp�#�0\f�\u001c���E韓q�\r�Zl��R\u0018��\u0019�R��ۧ�$�:��U\r�%@\u000bBO�)�Ŏ0�\u001d��\u0016s�9�cd�����n�\u001f(�5M=彅�4\t�\"Jځ��P���1���H\u0011xE\u0010bb�/s�9g\u0003>\b�{o�����?�\u001b�Dx�A�!u�P���\u000e��P�g�q�I����z\\+o��[Ao\u0012\u0007��\t\u001c%�>��\u0013�O�\u0007��\"�C׀�)�\u0003y\u0001\u0002 ��]y|�\u000e<�\"#�܀�ߟ*\u0017�4A����m:_�\u000f/�\u0011��}��}\"]��\u0006���o�I/�Z�Ԣ�.��M\u001e\u0018��Ŭ\u000e�Nb�I�'���n�u�\u000f��u3)c7�\u0019p���k`<�|�\b��\u00001�%�3Q�\u0006�$��5�\u0011Csg��Zi�G�M��lc�!I\rb�(\n�*��I~_\u001epFP\u0006>����G��&�Xr�\u001c%)F\u0007�R\u0007~3T<��\u0017�i���\u00009\u0011�\u0000>�󾭨i�g��Ӽ�y�\r\u0012�\u001dz�����A�,5=\u0012�u\r6K]v�!���i�D���T\u001e�3���D�e�G�9a(r��f4l\u0010h\u0012\u0007��{\r'n�t�KU�X��q�W\u001c8�\u0018�\u0000�O\":mv�\b?�,?2�\u0000�\u001e|�5_��O����'\u001b�y5��t��3D��d�x\"��|�\r����\u0018�\u0019�\u0004ȌT\u00054�'�#ع�;\\O\u0004�8�\u0011�\f��\u001c2�\"ň���E��\u0000�'d{Aٱ�\u001c���\fbO\u0016�\u0007���\u0007z�b�����_�Ϙ<����R��z\f��:?� �?R��/�\u001dV�u��Ԥ�r��]�E2�f���\u0019��\u0001�� C�����\\�f�\u0003�\u001c������\u0003�ây�����\u001f��\u0000,j:���iڭ嶐c��D\u000ee,�\f�\u001d\u0019�#\f+CU�\r>\fG/�@&����q���@\u0004�_�k�-�?:�:���-��\r��+\u000f9%�(����G <�c<\u0019\u0000�����Y�\u0001-.I�@�A����+\u001e�R9�c�3�\u00107�>הy��q/�\t#i\u001f[�\"\u000ec*�{R�P���c� ���d����,9?|#�=lQ�\u0011_k���\u001d�ˏ�\b�9o��G���O�u��\rs��K\u001d���\u001cQ���'\u0005DF�&\"\u000br��=3��{E��Љ0�O#���g��\u0001$G&09�U^Gv\u0010�M��\u001c�\u000b\u0014��G�AY��#�tjR����:̼f\u001f�7�:�� J�(\u0016ҦO���\u0005G\t*>@\u0002w\u0019x�c;d��a�Z|��\u0014�>+��9\u000bUe.\u0016����]��ȁ�`��&(��\f�d�,{�bUЄr��� \u0019l`������(6�\u0006�\u001a���-\u0016�&�� O��c��K\u0018���ď�cy��oR�44�~9\u0007�zw�vN\u001a��'�\u0017�{6��fyV_P?1��#���\u001a\u0007���D�V7\u0016�H�E~�\u0001���F)<\u0012��~\u0001N�S<�\u0000�{3?f�\u0010�F2�\u0019F�^[�=����]7i��0q\u0002\rJ2���˘=\b��ޝ�Sj�#i\b�ys��jԚ�x��LҚ�w}HJnϤQ�\"K<��\u0003�\u0003@��[�ԡ\u0019\u0018ȃ䎻�nd�[�Hd\u001c\u00122\t���'_P�\u0011D\fWp{���ݢS�,�K����\u000b�)�U*JC$�\u0016�]�\u0015\u0005P\u0001^��M��g�P���ˢm��y�`8\b\u0015�o[g�H$\u0015P���N;��U�7���Vג�o�\u0016�4[y!Y\".�\u0014�,\u0004rP���7J֛�=r�G��y%v��:u��G����}\u001aG!\u000e�\u0017�)^^��#~�ߥ=�\u0002�r�#!���^���}^��\u001d\u0003�:CjN�aK��m�JL\fQ�\u001cQ]\u0017�k�˾W,\u001b����9\u0011֛\u0018�D\u0013�\u0018��'�m�R7\u0002#\t��?��\u0002����\n�0��l2��Xjֶ7Z���;�b�Ks#(��)���Ȓ\n�>\u0013���d�aÓc�6�#��tڌ��\u0000���K�H��L��K;�R�\t�&'�\u0010$��M����yX�y���Z���!�}TbA��W:��w��WMԯt�QG�\bӑ����\u0015S#�\u0005��mm�hVkKk�\u000e=Gi=6�)�trB�\u0000y��1W�\u000eq��l<��O\u00111\"$CU��\u0005}D�B���d�!�+7�\t%��\b��xZ���z\u0016�6��'�\u0003\u0017�s#��\u0005�\u000b�5�a��[# 8�v�;W^�u��qse��\f�8\t�;\u0002,z��D��~H'���kxf������eG���2�{��\u0011���\u001d\u0016\u001a/\u0006\b������J��:��y�4z��B\u0002\u0000\u0003��j�;\u001e�*��\u00169\u0003~�+{�H��s��\u001bԻ�u\u0018.�\u0019��cy\\��\\$�ւ)\nʬ\t�!%H;fx��\u0013�U�~^�Ⱥ��c,$��\u0004�\u0003[��\u001a4+�>/4�ҥ�.l�-c:�7�����dK\u000b�\u0018$R%���kq!\u0006EVS�\u0003�Ќ��ԁ1d�d\u0000E������e���\u0019bI\u001bW.b��(�ξu�-�־b�a����n���n\u001a_��e$��TR�\u000b\u0006��]\u00062E0R6jgQٝ��O\u001c�|<��Q��\u0006�\u001e�����;OE\bBy��(d�����\u001d�t�S�\u0013T�����\u0017�%�i�|������w%ť��~��;HD�6�\n�\u0006���@,w\n\u0001\u00145\u0019�\u001d�۰�xY�c�p\u001e��S\u001fϏ��y���z�\u0019�C�\u0012��\"H#�w�%ϗ)s�M��ݮA�H\"����X\u001e�'�|q�]�\u001980*C�}��x�c���A�j�QOh�\u000f�\u0016���ţ�zG�.���\u0002�\u001e�k\u0004�=�!���_���͏�9G^\"]��]��1�!�,\u0004u�A��~��\u0000B�-���\u0018���\u0004k\u0016��\u0003e\u0003��������d9���b4��\u0014_����-JX;F\u0017v��Q�k����`ḩ�ž�M|F|�\u001a��ڂ��\u0010IH�j\u000eg�Yd\u0006�<;�ͮm\u00068�qxy��E��l��\u0019�\u001f���Yz���-\u001f�\u0003C���#.��[�)�E%>\u0016V\u001b�\u001e��ś.�'\u0014I���`�\u001c\u001e\u0016Q�=ǽ��\u0007���|��yj�k�$�Ή{�y\u0012:�!=j��o�z�q�\u001c��\u001f�<�����M=\u000eM�\r�'�\u001eY�%��h�-�0����AS��w*��:\rN�\u001e|���b� �/��6º\u0015��*𹃒�o��T�|\u0005s_��H�v�;���\u0006�UT���/��?��~S�֑ix�RԌ���G'���^�u\u0015?HΏ.hht�9��oy��2\u0011ɬ� \u0000�\u0012�m���`�X����W�������u��qq#\u001eL�I y\u001d���!�S9NL��I'���\u0011��4��6\u0007�>�o��DӢ� ��%@v\u0006�\u0017�A�/\u0007w�\"\u001c r\u0001�w�q ����P�E^�}��j�eY\r\u001d���\u001azܐ�\u0012���8�;u�l�ӱ��Qzk��6��\u0004�yT\u001a\u0016=)�:���\u001d�\u001b�D��>��\u000e��OedQ��R\u001b���4� �:g!�\\#�C�{\u001e̔��.`��e_�~d.yr���\u001csL�$���\u0018P���»�\u0019��\u001aS�ՈV��v���r0 d;\u000fǗ7�'���ծ�f��#�\u0012K\u0015\u0015��5�M�=���Zx�G\u0018\u0015A�-vs���\u0016܇���\u0015\u0004��\tndj\"(\u0015=Cw��2f8�tqqV9q\u000frM&��p�J��jޝ[vQ�O�ј�\u0000Hw9��Jp'�蓤��$��O V�\u0000\u0013JS�\u0012(�y.=�r��}�M��d�u\u0004%W�ܕa��zeu{�gm��Db2\u0000��EE\u0002�3\u000e���o��b\u0005��\u00155��\"�\u0001V,(õF��b����ޢ\bR��}b���\u0001%XV�w*<\t\u001d�\u0012�\u0004�e\u000b�����$�����P�\r\u000e�|�g�I/\u000b<Σ��\u0001\u0016���j���zuĎ��G؈�Q�c\fȊ�\u000b��OJ�\u001c�V����# y���/2<>�\u000e�8��tj�&�r\u001b�\n��O\u001d�,�:�{{F���@Ud��N\u0011��F�Ĩ�\u001d\u0010��x�1'���k�\u001c���\u0012��-�l����d�7\n90VB�~�\"�\u0002N�3\u000f,/x�-�\u001bH\u001a��Z閭,rEo,M\"�}\u0012\fA�\u000b\u001e;�\u0007��c#TM��\u0007���9)���H.t빴���\u0001����[p}t\u0003�'n����3\\2\u0000ŮB#pxg�����2�W꺓�g�XF���>�Q�/O���\u0019���4\u000b5�o:/�,D� ӷZ����5#N�X�m,b�Q���y�Y]F�Z���anG�\f��\u0006�\u001aTTfn,�>�l\u0017Q�� x��FyO�>K;����-o+�~�<�����޸��\tC���w3����˃Q�2y�a�y�W�򵽶�h>�����\t�5�1\f\u0004�+�\b�z��K�\u001e��r�?'7_�ͣ�u\u0018�ZRn����ޛyw�:o�-c��u~j\u0018��H�}�\u0007��#�I�W��ؤ��a���c�a��\u001a�n�G�>�U�M_1*���\u000f���G�������|�aw����A�|��i�f���\u000b_Yɣ�ZF����킯�I陽���\u0019\f��\u000e������\t/�M��q���\u001a����-\fx�\u0006��G�K�_�[K�\u0000�X�kY9,�X�+�@ \u0006\r�™�\u000e��J\"B\\�_岉r\u0000���L�?�4+�x�/e��B�j����|~��=�u�.;\u001b�X�.lY\u0001\u0007{�y\u0017ھP������#}b;\t��\u0013�����ݪFsڑ��\u000e?�ڽ��\u0015�\u0017��g�]y�\u001dgD��Y���L��\u0006ǜ\u000b\u000e�ц��\nŚ���s��\u0007�=?��)\rՒ��\u0002DJ1\u001c���\u0000xS�Ϳ\u0014�7�\u001f�{�D\u001d���<�����̅xM9w\u0003����i@\t�v\u001d�>,\u0011�t�\u001d����!\u0011���O�)���_�mt�a6�A�-��\u0003��6�A\u0018\u0015���\u0007�:����8�/�$~�\u0006�pdz��D��#��1���-��� bA����pz;N�Ҽ�տV{���iLG�����x��1�?�\t.UT���ޟ\t5\u0003����y=C��h\u0010GW���adbK|L{U�\u0006��޹�Òï�@����\u0007�B�\u0000S���,4+7I5m$�����q��ȚCyu \u0004�H�\u0014\u0001�F�F���I��H�2m�\\��=���\u0019d�\u00017�;\u001b�\u001f|�_~_�h\u000bq�&!��C\b��d����/�HR5E<��H$��\u000b���q\u001a�nmI�3\u001aӉTb:mw�|�N�\u0002 xp��I'�\u0003���n��|��+8��ZL���\n�������\u0001��P�h�mm\u0015�#b�\u0000@��\u0012�\u0014j&��_w��/��\u0011;�\u0010�G\u0015\u0003\u001dǖ�ˠ���΋����Xy�\u001d?�i��ae��E�$}[�3\u000f�r�׸���I`��Aie\u0015\u0003�9��,c�$yl\fI�6��=��+\u0016�Z�\fF�efD�#@\u001a\u0002�\u0006[_\u0015r/q�'׬�Ԗ�Nך�I��6�=9����Q��}�$Cs'\u0018[�\u0001\u0017�[�#\u0003U #�\u000e#ϸ\u000e�y~�n�\u000e9f��D\u0019N\u0000\u0013�ky\u0017��ە��\r��5��\u0017\u001a_�4y\"�\u001b;[�ԯ����e�2M�\u001dV[ʳ\u0017XP�2|D���\u001aeD��\u0012v�}��5�}��Q�%\u0019e�bb8�\tl\u0000>���\u0013�yDr�ug�麅��4���\r\u001cV��#��*�X���q\u0002A\u0019Ҵ�[e!���\u0012\u001a�����L`.���v7ϗu6qN8���L�\u0004euq�'�qVc��ǚ>�_�����\u001e\r&���KW�����\u001f.\bxh�U�9\u0005����\u0011$��$\u0004�R�l͜#\t\f\u0000K���H\u0017�y\n�c������U�y1�R�c��k{�\u0012v�J\u0014#�V�\r��i�\r\"���RӮ�Vy�Q\u0015�z�z|��\u0011;\u0014c,M��>��A��J�jl2\u0002�\b��4A��\u0007N�u�V�B9<)N`衴�\u001bȚ�\u0003�&�\u000f���\u000bJ���\u0012�@�.�\\k~T��x_L���u�/S�%�4r��\u0017�����\u001e�����Y�g�\n��(8��,Z��!�#(�\fk�6\r��N}ː�O�\u0011��#K|s��п�$\u0010\u0005��#�D\u001dߏ����_���:��ڇ���7�'�d���O���6ך��\u001c�C�y<�ǖ�u��\u0004.�\u000b^we�p�@�u^��N�\u0010\u0010����\u0017(�\u000fH��A��(��'���k{{����3�i��eGnD��\u0000v<}�\u0017�;?�\r��,��\u001eb�S��݇�'�\\\u0016�}\u0012)4\u001f8�X*�y��7R\\[�A\"\u0015f����\u0010T\u001d�\u0011�\u001f�>π�c�\u0006���\u0007��C$Gv��{���\u0000���\u001f\u000bQ虯��\u0019_(��\t;\u001d�\u001dϘ����oi}qg�[ϣ��rI\u000e��j1�e{c �{y�.�;�WW����3��\u000e���;匝�7\u001ffߤr}C�}��j��P\u0012=/���}\u0019�~hY�,GQ��,dO��\u0005\u0005��߂9\u0004|�H\f�ˆN�Ŏa�\u0012)��\u0000�ɥ_����]\b��n�\f�\u001a5D�h�v@\u0005~Y����$.�Kb�� \b\u0018�\nI*�\u00052\u0015\u0004�O٠;�I\rg\u0005o���x��y��\r�t��j_��^^�&7�(Y\u0001NeM%\u0011�\u001b*�SZ��1v���ǭ��d\f��4|���\u001b�.jzs2��T�\u0006WB�\u0000�j�\u0001\u0006�\u0006����:|��1�tuy;;.3B�\u0000R\f��\u001f��t�\fR>\rN�q�)�\u0001���� ��h�3@��ʏ��ܯ�X�\u0003\u001e\"�\u0013F�vZ\f\u0011�f�v6�Xqe\u001c2\n\u0003���Rg�^\n����j�E\u001f*凵2��~|�Dz�KrMy~��Eӑ���KP�| �\u0001��LN�S!�\u0000�A���-�t\u001b\u0017.\"��Q��B@$\u000e��+M�q�hg�\u0019�\u0011�g��g\u001fI�9y$s�������\u001dh\fUe�Eh\bߗ�g����@�>n�}��\u00182\u001b�$\u001f�d$F�T��^�\u0005H��G`v��hW\u00106<�q����I��H�\u0012��l�����S~�vb�D��;9GK\u0018�[�K\u0019��\u0014GE+J\u001d���(z\u001e�\u0013��9�-��G`�|�s�yWV��tyM��fH�X��BXz��H��o:���\u001b�����ᖛ>�N�`�#�������ϣ�\u001dF\r���\u001dA�\u0007��7~��/��o�\u0006����-��\u0004V���3)����(�h�YJEc���u\u0004\u000f6�\r.m\u001eo\u0007&�?L�H~�����\u000e�\u000e�\u000f�\r��=c��qEj�tQ\u0010͹@��Ӂ�\r�\u000e�\u0015��)���J��<{\u001a`��*��\u0012a�Χ�\u0006���@\u000bFh�.(���\u0019�\u0011��fG\u0017�ە���\u0003���ȅB4P�7\u0004'����S�\u000f^�(ؕ5��M�������ڕ�l�Yl&��hQD�̲�<�8?�\u0001O�3�1�s�a�\u0019����*9Eǟ�|\u0003���y�@��M������oag3Gˋ��/\u0017�Qvj|;m�]��E��Ŭ�\u0017�Q;�=�\u0000\u0005�k�j�b2�\b�ċ�\u001b\u0011��{ѾN���|�\u0006�\u0012iz��[\u001b�\f&\u001cyHt���nb-�\n\u0007R>�|\u001d��\u001a�\u000e/�Xˣ&����1�'�<�vj�uy?-�ޯ��$y��\u001eR\u001fo��_+�a��M�����a\u0011�qM\u0005�3�^*�Q��z\u0006 ��\u0015��������7wP���\u001f�.�%Ŭ\u0013��ď�\\G1\u0011���I\f\u0010��\u0016�\u0003(.\u000e�5N\t_�w��?��!�ǒ\u001cWÛ��ߪ�\u0000��R���:ǡk�\u000e�dҵ}\u0013P�;�mK�7��Cq�<\u0013�l5}\u0012ko�}>qI�c*�Ɩ\r<3G��\u000fA؎U\\���}�uR��\\\u0006C,M����{�\"\u000f���w���\u0000�q'����&��?�_���~k�~���QԄ���'��wgjҬ�hO(��\u0010��U�\u000fٞ�Ϩ�d�j�ǭ��#�O\u0019�e#�C��;���������f.���\bh5|W\u0000*8���GH\u001b\u0012��\t��!�\u0007�<�6�<\u001af�h�M+\"��\u0011uF����\u0016z�$Tt\u001ds���U\u0010L��K�\u000b&��W�qC�\u0017��\u000e��k�m\u0002fy�\u0016��[��u\u001d��\u0003���om~�)Y\u0004�Dl����:\r\u0006�:r%��H�yw|]v�g4Lq�1;_��~�~_y��BM>�ku��\u0004��K�uKt����Z�{[�ko���������]\u0012�զ�\u0011C��_���xv�+?}��7�r˧�Lx�FS�ߑ�Gw[�\u0015�>��V�d�E\frMj��#�n\u001a{g�ӵ1$��\u001d})`[\u000bk�ų���֗(ܗ�\u0014��\\&\u0013\u0015�n�\u001d�|yp��ӹ�\u001ct�'4\u0000���u��1�I\u001a��\u0017��\u001f�q��ǨY�(N\u0011�~���$Bn��\u001dWI���V�t�6.�H� l�p�H�6�PG1]�cxٖ\\�x'�\u001d\u001d,ɩX�v9\u0011��p�ޛ����,59,��&�4�9,5�$F��H���\r��\u0014���љe�@\t5�,�ɕ��Q�k��\u0000�\u0007ox\u001f���9e��đ��\u0011ߵH�|�\u0014/��4�<-���<\u0017�Z�r��L\u0011,0�z:�PYj�kj}(!���v�z�(�S��W\b\u0011�\u0003\u0018��k��߿�A�/\u001f\u001891�F�D��3�DK�\u0004��93�/1\\�i�t2�P���K\u001bM\u001a\u0014�n�\u000bHG�\u0004�<�\u000bmg�R�����6�Ă�\u0013�#DW\u0010<�\u0017���2��&�!��\u0011)φ\\�>��B�w��$򷙮$�����m�M7Y��t�I��{5��q��z|�\u0004��Ym��Z\u0016h�G #v\u0007/.XLG>򈇨���p�upa�x�\u001d.2bg #@\u0011\u0001��>C�W\u000e�}\u000b������C}k\fp�^Y��V�y\u0018�+���}>\u0016��\u0004!�Ճ(�+\u0010b7�2\u0012����\u0007Q/��a�IO���\\#���vGXn\u0007+;�;�\u000bj\u0011Ʋ\u00194�h�e\u0015���n�N���%��w�g����O��%x�`T�a�/��ۆ6yߔ�Xu��Dd8�\b�zb\u0000\u0002��o��G���a����k����?��FYl�����o��q�q$k{h��֓\u0004%�eSؖΆm�\b\u001c\u0000n\u0001�~c���N�X*P_Ԧ}/N����kp�Y�n\u0000\u0012\u001d>�\"���̚0����i�W�}��^�vx˜x}�\u001d�D\u000f�|�.c���ݥ��^��\u0018`�ɤ\u0002��g� W\t���h_�1y]������F� �9.����h�J(gO�UP7$��Q�~=E���FC�����2�oK\u0004x��y�|ɇ�\u0000+������k򭆛�y�AҮuhQ�l���k\u001b�[�J��q$m$�]�\u0003�8�����9H\u001c\u0019'\bs1\u0004�李��}�.\u0003�c��\u000b���\u0012}�E��>����\u001df�{���R\u0017A\u001c��$���\b ���'�q�\u0004|9D��\u0010�=��̆R6@؎��\u001f����\u0019O\u0014�\u0012���\u0003�w�3��P�xc��/�k�&[��ߦ��G��=�\u0012�\u000e?`����ğ������r3�z�~�U��5 �o\u0017_���W�o��|���d�%>��hQ�ƞ\u0019���\u001e||P5*yc�ˣ�×Ռ\u001d���^\\֞;X�7��;�^��\f�� %2\u000b��2�\u0001\b�0-��\u0017֔#K\u001ap$���#*��\u0003]\u001b�<\u0019G\u0018����\u001f�~M���O8i\t�\u001ea/�1E5m�����.���\u0019O�����h�\u00105�\u0005Hl_\u000f~~�i�鿖֚���p��\u001bz��Ĉ�6=k훭&\u0001\f�m���u��j4x���.�y~-���v~i��p~ij\u001a�����\u0017RC�D\u0018�mŘ4��S��3��y�j|8\u001f���w__�O���zQ�\u00185�\u0017���\u0000;�����kg��6�~�c���4�\u000b\u0001J�i^���U!��f�\u001f�=T���\u000e�\rƇ�Ȯ=x။Wg�\u0002~c.\u0003���I�}�ߥ��>b����~�\u001b� 7��S_c�e�~\u000e�M#(m��/��nb��%\tr�\u001b\u0001�\u0001�\u0011��1��N�\u00195G����4d��h�~��l�_Io\u0014��(^Mi��ALcЌ��\u0005�\"���R��Oi\u0012sx'���eư~`]S��\u001f����[(�#��*�\u001d�ѫ�H�ߝ��ݓ\u001c8��|����\u0000k�o�\u0019��\u001f1�����rW�ޡ�\"\b�jjOC^�j{�k�~o\t\"\u0004�\u0001�b�a�6��\b ;\u0013$�V���\u00056�\u0019^Y\u000f�r�sl�O\r������4R���\u001a�`�S����\u000eBQ�зc�\u0004�}���1Q�~ʵ)]����\tʤ{���dE��[I+��@\u0001N��=���v7��\u000e#�$LV��Y�\u0016#�������\rP\u0007�6P\u001b��.t`�9��+�\u001f\u0011��{\u00103\u001eUϫ`2�(�\u0007o\u0001V2\b�\u001a�\u0019�J\u0011��7'�#�[8��E]dx���\u0004���\u000f�\u0001�$ӭ:S#�\u0013��w�A��a$\u0011\u001e'� @\u0006��\u0013�>\u001e\u0018M��;�d2+2�\r\\qCơ�5ZֵR|0\u000e�ܷ�L�H��\u000e�����~�m��o���+�r<�=���I�Oi���E����Ԫ��+�v#�A�\u0011�/\u0019����#~k\\�72A<�\u0017\u0005T4��!ޔ~$�\b2��h�\u001c�\r��<\u0012ߑ�}��k�/3$6�\u000bln\"@\u0017�*�M\u0017���8�x�U���\u000b�w��2�\u0019Տ����\u00001y\u000emB�\\�n#�\u0002��\u0005\u0016F\u00000F�\n��`���\u001a���j{:S���^o\u0005���SM��7MheG5�!HZ��iĂ�;��\u001c�1q6���X�Ò$\u001bN<��+�y\u0004%ṉH�B@R~\u001eDQ�C/��!�\u0014OFxsN\u0006�>Od�cK��kV\b�\u0003��º3|\\X\u001d�i�����\u0006���\u0011�\u0002��l4ݣ,f�\u000b���v �\u0013�Nj}����/��0�V���\u001f��d��[���~�c2�1H\n+3R�U���Fd�Ï<��F@�7�7\u0003I�ϣ���Ӂ��b�\u0017C��\u001f�����\u0003ͺn��\u000b�K����.��D��d�MC�mBX�-����y�\u001am�Oe���Ίg,�\u001dd\u0007�\u001d����\u0015ۙ{G����1FY;;)�Ln\r�\u001fMr7���_�6�^Q�3���o��~��\u0000NY�K\u0010`\u000f\t#ٌi(\u0012��КW4Y��O����\u001e�\u0000�W�ŪǬ���#�\u001c�?g��\u001eG���yo��]\u0012k�\u001c~h�)%��\u0010T�y\"#����/\u001d��i��ǐ�s.�>�x�8�1\u0013���\u001f.\b15�\u001bW��q��V\u0014q,��->Y��6z�\u0000��1�������B�\u000b��\u0000��\t�x��4\u001e\u0004�1����Lz�B`J����^�V��G\u001c\u0012����Dl�L�>&��@{{f�6�x�2@s���\u001a���y��Zu�GQ�1��9\u001d�\u0002��z�\u0000u��34\u001a��\u0004Ϥ���42D�5����\u0000-t��oN��'���\t�n�28RW�.#��_��PH�(S����c\u0013Ξ�aksmd�\u0010��B����\u0019RP}2��T�/�\t�ճ\u0005\nI���-K˞n����F\u0013t��o�}����9�bˏ6\u0018��:W??'^a(d��}Ϸ�����\u0002�܈��omu\u0001\u0006�\u0017\u0000(k��W:�˙8\"\u0000�M\u0017��(\u0001�F�Kp���_3\\y?�pK�\r>����q���2�\u0016���! �PB��c�=\u0010���t�ކA�o�u��K\u001fg\u0011*m\u001e\u0019˖8�\t�y\u000e����t\u001f�=\u000e/,鮺���GR�~�\u0012E2�\u001ec��i�i�7�.��rx�ri�'8\rj��\u001c��;\u0018yB?͏��3�v0�\f\u0013\u0018c\\@z�|��@��\u0007�ګM\u0004hb\u0011��\bw�\rk<���~�\u0012H\fr^O\u0014EC\u0011E\u0004��`F�,�\u0010\u0011>�6��'ɾ\u0011�\"e+�̹y\u0001���_���Ŕ\u0011\"�mqw�Ck��\"X��u4�!SQ�-!����Ӕ��\u0014sQ�\u0017$���R�M�\u0016{�nV�18�\u001c�\u001f�2h�=�\"�\u0015{��^ۢ��I=���F�\u0006����}�b�u�)gV�u\u0019\u001dO��\u0000GKf�$q�‘ۢ�\u0016��,����`\u001d����=D��v\u000e�9�Ǘ&\u001c�3p��\u0019\u001d�\u001d�\u0000�\u0013\u0001[\u0010\fw\u0004��٬u�y�9��U\u001e��n4�0���D���v�]\u0015yf\u000fm\u001e�glѸt\u0012z��q\u001c\u000bU��d�%p�75��;��?�,'�&\u0018��I�#�\tTl\n��\u000fN�G{;��Ś\u001b}sR�!���-�4�n�q\u000e��V�_\\-mi�_ܮ�}s\u0015�󼃏\u0002�\u0000Rs\u001e3�fS�L�nb���\u001d¹���i�(�Ň\u0017\f�\u0018�\t�N�1\u001dA�\t3�+�Т\f��\\���\u001d��\"k��ƞ�\u0016��-'��-y\f7\u0006Hn����\u0004��6�\u0002:3a\u0002;\f��H�w;t#c�wPy�9r��rqj#�;F<\\����XĎ\u0019\n\"�:�_mSQ�Ҧ{K8���{պ�\u0016�Ǧ�Z3I;ۈ�k}6\u001d:'tZ�\u0019���\tȎ��\u0000\u0010��{�q�;��G\u0017\u001f�\u0013\u0010@�� �F@��1?�!��'���<��\u000b\u000b�[Q�,��n,-��t+Y�m\u0016XG�>ŭYV��\u001b�r���T��$�\u0000fx�G��\u00033D��~�=(�d\u001b�[(�>$�L�pÈ�c��4r\u0001w�*��Kz�\u0014\u0017�O�G���\u000f1�^O&�\u000b�\u0004q�����Ҧ�wqlUom\u0005�q1WE�3k��\t$S23\u0001(����V��@�6�\u0007\u0014�\r�����3#��ǜ\u000b$p�oq�yB@�\u0004�\"\u0007P��yp�Ix�\u0018�]5��\u001a��[G��-���2�+=�4�\u000f�#i\r�\u001b��p�\u0019�v���ʹyo�о���Êr��3�*�@�\u0000(�\u000b�\u0003c\"O���\u001a|����}��q��[4�X�M�YO,\u0016ϧ�\u000b\u0000�D\u0011����f�+�#�\rz�NdL������6�/�n�0�\u0010t�c\u0013(��\u0006��5���\u0003��y��Y�\u0000���\u0000�C����\u0017\r��i>�f�)�y�Lx��6Z[Z���U�u\u0004T���K�\u0002�Er�9\u0010��Nak�\u000b��B>&H�z���\u0010.G�`�g\\��\u0007�eٝ��\u001d�kO�dӂ%G�\u0003�k�\u000e��(\u0017�W����m����;V��C��p]B��k\u00147��X\u0019�\"���A��L�\u000e��C\u0016\t�f���\u0010L?�\u0007x\u0013�#ϣ�]���|��\f��pL���a/�\u0003ΏJb\u001a?烽��v��ܥ›y�uu�Iٝ�}��3��{/�\u001d��B\u0015`ݏ�{�/�:l�\u0018�_�v����S�u�-�I��b�/%f1������{t�D���2Gk�v���9���Œ'�ticDp\u0004���CPS�3~�\n���r��ԁ�A��GS�;\t\u0004Q:\u0016��k\u001a�׏\u001a��\u0001̗�\u0012\u001bDz��2�\u001b�\u0017��y2&3�!��Q�h�� ��\u000bP\u0010D�&�\u0013B\u0002�\u0014�z~���R\u0002��|\u001c<�\u001cYG\u0010�/��w�\f���MS�!\r\n��Ё�\u0004�x�A�Z%��n�S���\u000eI*�\\D�x�ܰ%� |{�J���r�\u0014�x9#�^t��˹N*\u001fb~ɧ�@\u001b�=�~c\u001c\u0005\u0003f�`�-˾�\f\u0005��3�V�¶��X\u0012\u0007s��|Yϑ\u00006�q\u001b\u001b��(��I\u0012)��\u0000\u0006ɰ�ֻ���ƙD�\u001eF����Kn�mi\u001d��\")wߗ\u0000jFޢ;W�\u0000n;�#,�r&����O!hx�Ĺ>��B\t\u0018���B\u0004mѫ^���'-L��'��X�\u0011���0����W^\u0005���Seߏ�F��Q=Q�������J$��ЁVWA^��R�C@\u001b�G���|�q\u001d]�=\u0018�Otxo�\u001b�5m\u0012��/��e�Uy%�$~���݊�q\u0003��\u001a�;�\u001e���b�D��8���=��>n^,R��e�H��|�x�}\t�?i^dX�4�NՒ0�ݥ/\u0005���v��);pj2ҙ���i�\u001cnx��X~���Ŭ�h�J�����~�.���\u0007�uf�ƪ�\u0015j�@C(�u\f\u0001>${W\u001c9\u000e�\\�r��bţ��\u0013�>��&-\b�l��w�\u001d��J��?\u0017O\u001c�\u0000\u0011��q��_#��\u001cRƪ�N%BQš�![b\u0007j�| Q\u0014��M(��\"�ϑeR�(��Q�!�(`���r�\u000b鳏��~w�%�󾫨�}KXV�b\u000b\u0018Y&V�ݺ�!\u0000a^~��,1\u0010�\u0007\u001ey�}\u00127���f��P�X�?%݇\u001e�B@�\u001f\u000f���ٺ\u0019\t;�e�O�E�̇Ԗ(X\u0016~.��L\u0000��M�\u0002F��)��Q��b���%��Γ�;I$��%Ԩ�eX؆�?��)�`\u0000��4���\ff2A�yƏ\u0016䏛�2i\t�`�`���m��S���ll�BB\\�݉y��wc�\u001a��݃�0��������5�Ȃ>T�^�v�=Odaѝ�KQ�\u000f(�&;������ն��^�O\u001c�\u001aS5�6��7�i���xe\u0014S^5\u0004S���:LC\u001f���|�Q>(\b\n���痵��]\u001e��\u001bk�+ԇOՠ�&sl��oIuF� e<�����YU�*�N�$����9+i�����K���6m�� ���t�4iZ��ݛy5-\bj%4���y-�͡]�XIő�$RA�3#Œ\u00027��ֻ����d\u0018p�ɓ\u0015pO꽷�k}��\b�^���e�}m\u0016�P��6�-��\u001cD��[�m4�}�ݺHn/.�l���G䪭\u0002Jc��7~`J\u0002Gi��z|��8�=A�9Di�\u0002f�;ne\\�\u001blk`H��Z7�R��:=��z&��쮮f�W���\u000bNXk�'�r<2�ݽ�Oާ�������c��O\ro���!ɖ��\u0016Ih$\"#���Dy��<\"���B[�����\u0000���\u000e�O��M�ߒ5Rm?H$1i�y^���\u001b8�����Α�&h=Y@v�T!\u001b�\u0000d&xL�I�����F�:��pj��c\f5��%�p�ҷ1�٪6\u0019��3Ήwism�K\r���f���\u0016��ϣM4��[�'�-\u0005ŝ���\u0004tT��G�hm�3Ǿ1wFF��:\u000e�lz��Ǚ���\u001c�Tj\u0010\u0003rA$\u0019\u001e�@��\u000fRӼ�F��y~����lntK�����ޝch�Ƃ�!Hmn5�\u0013P{x����㚆�S)\u00198H��\u0000h�@�jG��\u0013ϧF�\u0019O\u000f����b�k\u0012\u001d,_[\u0011�{�g6�iM\u0003[y �����[�{}y5��iz���Iom-�i�]mn^627׊\u0000\u0006^\fŽ#\u001e3(�\u000b���m˦۸\u001a�28�9\u0006<��.�ۈ\u001d���o}���v�ZlPɧ�pu+�慬yji\u001d��Ģ�#��g�XMF�p�,��\u001cW�AޘF,���*�c� lo����nj��KS�6Ẁ�g�1�J�c�d\u0013�2\u001c�;Р\f��Z��l��/�\u0018\u001bL��y�Ĵ������\u0004w\nfI\u001e�� Y\u00079ב*69���,r�ӛ\u0012��������g�Ōx�\u001e\u001e�@\u001d����\u0000�x\u001f�t�\u000e��[Md򮋨�����{8��8k���\u0018�u����$\u0011�wj�GK��qHBR�\u0018�b7��Hy�^\u001d��\u0007\u0004eq$\b�<��\u0013g����\u000f.�b�淋R�Ӵ�2���ִ�as���ȥ����\u0019���x�\\�\u0007Հ�5#;\u000fe���{7�8�G\u0014#�8�K\u001c��,I�B]��Gn\u0012-�}��m7lir�Y��f\u0004���\u0004�@�����\u0004\u0012\u000b�������������X��Q����w\"K8o�;c��;T��X�\u0013iڵ�G4.\u0006�%:��\\����]\u000e.���&��|C��lvFI`�v�}FxX����\u0017�7Vv�ӛ�9y�͟�7v�>e�&�d��H��ExR�L��b*����T\u0011�\u00002�=��J%�\u001cD$M�\u000f7l{\u001az�a��)Q>����\u001c���w똑�����3�\rL\ff\u0007\u0013í�'�����*�\"&��@;\u001f\n\u0011��#,8��tД�d8�r��慵\u000f��#�v\u0004w\u0014޻a�\u000b�7g�Pcu�9���\\7z\u0006�c;���oMN�b\r\u000fߛ���c�3\u001cã�,�Z|�ɸ�W������\u0000>n-4�'�B�1�j\u0006I53\u0004�\u001c\u0016��d7\u0013P�[�ͯk�#��ڌ��x\u001dO��y��ҝT�g�����|���_��S�kk��U<�>'\u0015,OZ����6\u0014H/J0�{u/��nY�8Ʊ\u0004(�ֻ\u0014 ���f�5`�2\u0013\"�S�\u0003���\u0012E�\u001a��O�\u0014q�*H\n)M����@���-�0�;�[�\u0017�g��י��W�2r�B�\b4����0r\u00197vzi�3\u001eq�>\u000f�t}f�J���ꑲP�aJS�?,�P3��;HHB^��\u001dS[�\u0000�\u001f+i��sq�Y��9\nfJ�\r6\r��:=FM�\r2:�.!œ$@����ߝ^e�v��i�}���mD����\u0005���\u0015�؎%���P�ُ?g1��F\\@�>^J=���.\u0002���S��\u0013�u��\f\u0010\u0018��\u0002���ɓS���O\u0014��ɍ��y�V�\u0005���\u001dyd��m͉�5|������ۥ����\u0005ZףR�;����2'��p��1\u0002�?6^�p\u0016��L \u0011��nA\u0000w���J]o�~8W��&�͈d\u0001�A&��f6IXr#�\u0003\u0005�\u0017\n���PF��\u0004\n�+\u0006�+�F�i6{*@X��\u0001������\u0019�~\u0002�O4��N�ǩ�Q�қ\n�w\u001d�\u001c�E�\u0001\u0001N�э�U��|\u00047Ou\u001d��q\u0007d�\u001aߒ\u0011�}9\u0018( \u0001Z\u001d�o�� ckW�J�\u000b��\t��;�5��ҽpX�\u0013�\u00037��\u0012!cC�~�\u0003u�u`N\u001d�\t'z\f�D�\u0011\\ė2,\u0005޾���*Ӏ\u0005\u0006��5�W1c�(�ߪ�\u0013���,���T�)(J����@�\u001d��`D��a\u0013���cV��]KY� =h�@zP\u001e�w�-�i���E�5]\u001a���N�Q�����q�P�\u0011�&�C-w�r�\u0013�\f�\r��(�\u0018�\t?V?'?5��\u001am���m*ʑ�\u001a�\u0002z�Z\u0013�\u001f���3��h�9\u0019cz���?\u0012#\u001e~�bv��ޮ�����0��iK��\u001b�!ZT�H�Qz{�eɋ�4�g���\u001b�\u001e��\u001el����ԛI�i/6����J�Y��\u0004��v��]�!�Mæ��0�ZsG���~-/�>U�\u0013ѻ���\u0018\u000fN�Fu�\u00014G\u000b���\u001a\u0013�lx��ʀ.��>�.����m�\r�+�v�� �X�$�7�->�doZ�\u0006�\u0005\u000b�ػ�\u001e��DN5 >��i���Dc�&\u0014���EhH;\u001e����8�\u001f4�h�!Z��*�\u0004������\u0000)�6�\u0010}��$>���|ͭi�F���Q}Vf\u0010��n�3~�?E�{�f�\f�o\t����[�Î j�<#��\u0016\u0007�\u000e��3ycJ��X��\u0000J��G���zM:'�\u0015��T�x�+\u0019\u001bs�9��Ç43d��@�\u001f�u3�ͦ˥�\u0004ġq���>5C��\u001b\u000f�5����C.�:s���ֶ���9�H&Z\n\u001f\u0011�7&�e\u0004��\\a�\u00069�3\u00101c��>C�Mٵgh��L�\u0011�\u0003s9\u001a\u0000V���帼���+ː5e���jR�+�s�H}[�Y��OtͿ�3�3j%��-F_�fI�w\u000f*\u001b>���8�~�:Xs\u0011�\u001e�\u001d�|����\u0016�\u0018 I\f���l�\u001b߫\u000f׵��\"g�$$���\u0016�cd\f��!��\u0007%dnj@�d�]�C�_�sl %�����{4���������\u0004���\u0004\u0007�ɬ��Z�\u0010�<���2�O \u000f�\u0002���3!��T��6/B��m��4ee-��\n;8\u0007���\u0001ћ�\r2R�\f�� ,g�2��=}ϵ<���m�Y�\u000e���d3RGP�r\u001f\u0018^D��4Z�\u0001�8�d�:�\u001c9D�;\u0002��.�\"Ӣ���\u0015���Kc�i��\u001eaH\u0015+֔�fYH��=@Q�9�aQ��\u001e|�}k;��@�z=d�\u001f�hkI#�_���\f�<$q\u0006�\b4Y\u000e�k�_�Zj��U,�1W\n�hh���˗\u0006C\u0002E}���\t\u0001!\u0017�.�\u0005ݧ�\\�R�NkG%�\r\u000b|5�����G�7��ڏW��B9�w�S����o��E�\u0000�[�G��r\u0006���K���46QK0\u0007ذ\u001fIΟ��'l�_͌���ݥq�c��s�m���]����\u000b�\u0017��$tڭ\u001b��{T��zƚ~�=�)��+ۓ���t�Zu��\u0013Yt�&j��HV��P)J�\u0012��=x���\u001fH=�=�����������\u0017�:��խ�g\u001e��4mM���۫գּ¼y=9[ZT\n3�h�k�?1�\u0003��\u0018��t�:{�׼��\u0004<\u001e,��IF��;\u0011�/��O��[i:\\�)g��ssq��6�i$\u0012\u0005k{t[�(\u0015�5\u000bP���`K����<\u0006�\u001b�?c�%Z������6k8潲ӹK\u001co{pߣ���B�Y�Vi�YO�\b\n\t&�c$Lx���>=�@}��\u0016\u001c���\u0006�\u0007s]xv�{Y�zw>��|��'U��O���\u001b]9�ڌi\u001dܰ\\�ZE,w\u0011G#-�zl3�f��ff�$n2��\u001c���\u0013\bt=I5^��\n��zlÇ&\f��!\b�|�G\u0011\u0010�Txd.Vw��I�!���i�c��c��'�+�-)o���'��LԚ��Kn����k���cV��\u00161��}�a��3��T\rmT8��F�}Gqss�\"\u0010�i����\u0004\u0001*��.\u001d���`�\u001fN�=\u000bO�/|�����o\u0002���t\u001e]B�n<ׯIy�H�\u0018���g��b\u001d�y\u001a\u0015PTP`��q\b\u0011�\"���P�1և O6���\f�\u0010�Y.;X\u001cd\u0012\b�\u0018��w$�T\u0007s>��\u0005Ƨ\u000e��[=�ͽ��ݬ�<�E}-����^\\�Xc[�Zf�p$��\u0000�\u0002\u0013LG\f�6�!\u001b5�˯}���x\u0007�D\f}1��X��7\"\r\u0002\u0007!\u001a#���{�\u001d2��\u0014Q��5��uu7��/'��f�R�l��\u0012Xn�n%��zj�����f8�\u00141Q\u0012 \n;\u0018��y�|���fd?3�R\u0019��ۊɡ\u0003\u001a�\u001d�\u001b\n��b�\u001f��b�ֵk��R��\u001d\u0007I\u000ee�;\u0018\u0017����̮���ފ۹\b\u0016�'�*ē}�b'k�\u001b�}v���z�>\u0003\u0014ጄ0b#��i�>���]�0(�\u0004D]\u000ew׼��;\u001b\u0003�jw��I<�o�b�\u0001awb��d���@Ю4��U��Ӵ=f����A��\u0006!�c�G\u000f>-��\u0003�~yH,�{c��g�/�L�u;{Y5[�gR��+\bcu��2���~)n�R�r;݆\u001c�\u001b2�'9˂0�\u001b�`\u0006�]}�$|@c�\u0014D�3L�txI�I��>�\"�����.\u001e��/1kw����P��\u0015.o4�k�o�t�Q��\u001dd��2��V]CP�X���\u0012F��9\u0013���\u0007\b⫏�\u0000\b��p�������\tj2��\u001c%\u0018��\u0013�\u0007~)N�\u0002$�\b�|TE�\u0019�\u0015�E}\u001aëEmy=���a���#��Kr�C\u001b�\u001a���8��$�G}���;L2DT�9e\u001bؚ�z�Pk�V���\f�x�\u001fTc.r�\u0004o\b�'�1)]\u0013q Հ@~r~lj�\u0006���3�����y�͚����C,HUo�\u001bߩ�w\u000b1ym�<�<�RK�\u0011��bh\u000e��Oi;7�]\b����A,�\u001e,1�<��BG�\b���*�v\t =g�\u001e����ݡ���RÌ�3ͨ�\u0010N(\u0001ԁ��2\u0000�I��\u0001/4�\u0000���\u0000�]�u�c˷�mM[D�N���^_kZ����^��\u001b���چ���[��4֖���M\u0012IH�K(�H�l��[��\u0001�ڝ��Ŧ�$�\u0019q�l�≌N�����=7M�\u0000\u0000mn\u000f\u0017g�Δ�pG6)�R�|�)\u000b;�j�n�\u0003���\u0000�z~sF�zߔ��e:�/֧��V��]��.-#��܈\fD\u0011R\r;f��\u0000�\u0007�\u001cǏ\t���\u0019����H��;��\u0000\u0001�o�>\u00063\u001a=N8�L��\u0007\u0015yFQ��߳��\u0017�q��r]�h����TX���C��X\u0002��V�����.�Rǧ]�\u0017U����\u0014r��.�d|��!���'�3×M\f�\u001d�q��\u0012?h/@��qo��0��\u0016��IUB�����RN5b�i�0�F��W�҇4q����k\u0007��>p�\u0004�m���ڌ�c�\u001c��%_�E\u001f�\u0018?���Z\\�\f���V\u000bK�t��!t};�\u0002��Ol������+\u0000O��\u001c�O_��1�L9l�^���\u0000C�;7�0��DZ���Kn/�\u00002,BO5�~�\u001b�v�ݧد_^�=6��Jls\u0004��0m\u001cYb\u000fZ���sc��j�LR��}�!��S�*����\"�=Q��\b*w\r$`����;���_�����.\u0006����Lo����\u0014\bW��ȥ��C���\r>&\u0003�'2.Dsp��\"�K�4q��\u00058\u0004��\u001b\u00007��:��\\��7�ߎ\u0002i]ƌ��r%@-U�j�(X�\u000e$��:��kf2Ӓ|���Ǝ#�T�\n\u0016�䊯Ű�0��\u0000\u0019)d�\u0016��G�9�� S\u0017�\u0014z\\Z2�)+��\u0019��j\ri�(�\u001d\b��H����,���\u001eEn&�*�H\u0000Q�c�\u0015ۮQ=M�w5�r��\u0003������c���1+�/R�n,��\r��\u0006N��\u001a��s!�\u0015c�&�A��\"�\u000bsVb~\u0016.��b��\u000eƣ����5 ���ˆ)\r����\u0018@�����\u001cZ&\u0003e;Q�R��\\��r�Ae\u001e�(�ӑ��ų\u0010yT��Ҡ�\u001e4pEE(s7\u0016�@Q-F\u0000��t�6k�2�ou*�*QY'$N��8EuNjŶ\u0015\r�]�K\u000e\u001c��\u0003�^\\���\u0019�\r��\u001f�i�k~_�\u0005ì$��N��\f�!UdC�[Q����֛�\u0000\u0018O\u0006lB�����c�\u000f\u0017\u0016Y�6�q�\tv�o:\\\u0015U�#�\u0003�ѱ\u0014\f�<�9\u000ek۷�\u0018��l�@G�\u0000�\\qoM�\u001b5xP7\u0007\u0002�cڋ�á�X�\u0007��&!?z���\u0000X�+(�$fm�\u0000�\u001e�]��o�|v̂c[8'\u0001��}�\u0006��hͨ�sZ����u��-�\u001c\u000bF~\u0014`\u0015y#6悆�鵺}\u001e��Q�dӑR�\u001d��.��s�p�d0�\u0013b���s�����$\u0012>��{X�5\u000bi���Q�\u0006W�\u000b��SB��\u0004����>��8O\u0018�vI�t�\u0017\u000f2\u0007��]��\u001c\u000e���\f�C���u\"\\<�ON!�7���>ODծ�\u0005�::�_�x�S�-\u0015�O��\u001d\u000f]�G�� +�;���^K���\u0019\"�ViZO�Ռ�d�K�4�ܨ\u0000\u0014��O��<�P@�\u0005�^c�8�GG�\u0014;�4����S��\u001d��dzdg\u0003\u0012(�>O\u0013�\\�\u000e�q�Z���-�5�\u0017PAye�-���I3[�F�9\u0011\\�\u001c�\tb�.$\u0011gj#pO+\u001d׽\u0012�S���2b7F2�v&G��4\u0005\u00126��[��\u0007�-tm[N��-V+)�&�quh�n��7|�b\u000f\"$\u0017\u001a����EW2��%�-ŕ��>Y��6�\u0016�p���\u001b�F.f1$C�g]�\f��(��w7\\��7D\u0011��lc(����F|&�\u001b�#\u001d�_���[�����Z]����V�DԚ��?�~��nt�V9u]?E�7���y�Ge{}n�u�h�D�e\u0015��D�r\u0003\u0019d�et#q�\u0014N� yX��j�\u001e\t�\u0006r!��\u0012�\u001e�\u001e>�zߦW�\t��uw���X\\�k~_���O`�\\V���WPxV��]\u0005�Udv��m\u001a�-�%-�\u0006qȌ�xw�s��ϑ\u0006��ʨ�\u0000\r���ő�����Ú1�.���E\u0012v\u0000\tW���m\u001b�\u0013Q�Tf[����xZ�\u0015�ZQ���`�����d{�F�y\u001a)\u001d80h�\u0007)�NL�x2�\u0001\u0019ʶ��6�?�U\u0010\u000f~�>#=N;2��\u001b\u0000�\u0010%���Q��kq.^~��n_P���[��nf\u0006u��0�\u0017���]��L�\b�SO����Fc\u001ca\n�� $\u001c��#x�\u001cP�/�F����{88�#1\u001c�1�eR�\u0012\b��\u0011�\u0011\u001b�]��=wJ�\r�� ��[��)�C}n�\"_��G�+{��{e������K\u0014�,rF�qo�alfF8d�P�5�ϗA`մN3ɚXDv7�s���w�,�\u0014��uC���]0^=��.���l\u0017����\u0004o\fV\\���sy\f��w�&���q��Y\u0001�7d�\u0007��\u000f���}��\u0015\u0007��\u000b?,a�J���٭�k�}j�P���\u0011�j*f�g���\"��\u0003�|���oK]�fy\t\t� x#_M\r�׺�k�\u0004�\u0002:�1�g������>t\"\u0005>���}>��.���\u0011\"�ڧp6��s��\u0019�\u0018�4���ș��\u000b��Yg�z#�V=�\u001bS��0w;I�;\u001e(�|�s��\u0015ܠJ?}\u001b|OE�\u0003���Feb�\u001b�E��\b�ߘ|�����\u0011�/����\u001a���ۭ\u000em�x��<�F�C\u0011��/�?���\u0000���7��ʺ��wz�\u001b{y��J\u0003J�X*&�,[�:=.,X sf5\b�����˫�DŽ\u001b��;\u001c�����\u0007����~e��[�3�{��H��+\u0017\u0016�j��۠5�E54���V�[-~�Y���DwD~�̽&�B4�\u0004G�����/�#a�S?+\"=�sNH\u0005\u0001���v�C\u000f�\u0000g2\b2}\u0001��H�3}�6�+�b{��\u001f�r��\u0019l�C�k\\7�Yҋ�ޤ\u000f��@�۾]\u0018�6X'\u0019~�]���/�&|�\u0007�u\u0019V�M��C�\u000456�v\u001dv�a὜�Dc����|���~ftH\r� ��\u001f���@m��A̜P�[�ͨ�OIE[���~n~`[�7�m\u0015��\u001f[�*\bO����F�r�g��\u000f\n#��˧�\u0011�0����\u0007߲�Y�����e�VvP(\u0011�\u0002,jX/�p)ɩ��F1����͖RfE}\u0003���c��?#��%H��\u001e\u0000�\u0018dE\u00129�\u0002ȉ�R�m)\u0015\u0014�q9\u0011�R\u0016�O0\u0011\u0016�\u0010b��\u0015�\u001b\u0002\u001b���3\u001cK�\u0012�j3�z�~�!qg\u001e��Ke����t=�\t\u0011��6;��R!g��\u0011�59\u0002@�Sj�)'�tG�ԗLTu���\n�*G}ρ�\u0002w�����]�ٳ\"�Е�w\u001b\u001d�6�\u0019�π��\r<ϤJ�CI\u0006�@j�n���)�u�\u0004�>E\u0005ibͧ�\t���3Q_��\u001a��2P�F��\u0011&\u001eV��OnT4\u0004\u00045�QM�zW�0x��\r�\u001elrk\u0015[�\u0015r\u0012�Z\u001f��\rv8a\"E�a�\u0016��Ku\t�x��UCo���=A�Ǐt\u0012D��I�헡\u001d��AJ�\u00005�\u0019�n(0�%\u0013��b�'�/�%��\u001bJRH\u001c\u0005�X�J�Uo٧\u001c�+��3������5\fKP�N5�8��\u0003P@;\u001e�o�G&a�js[�zs4e)�Aֽ�-Zr��&1<�!-�X{�\u0000�?�=���'׮�h\u000bF\u0007&\f�9\u0005j\u0003�\r��Z�\u0018�x\\�&�\\>�T\u001e�m��4(eUV��g��Gj�F\u001b���s�l�h\r{A�|Ŧ]�_۫�y\u0011�EJ\u0019\"n�h��i\u000e��\u001a\\�p�\u0019 }@��]v\u001d>�\u0011Ŕ\\$7��\u000f\u0006��C�l���r�U��\u0005ƍ{\b���{\u0005��R@�\u0015\n�8�q�=N�Ǘ\u001f\b���\u001fy\u001f����㧏��\u0019ě����`\u001e�r ����sk�V^S���Ե����j�-��%,��Y�\u0011�X�\u0016b\u00168��c_�qYA�s{�yg���(�,G�����<��\u001a�R[��m������{�\\��m�\u0005���ׄ��ܧS^�\"����3����ϻ�1�\u0014��XI\u0007���\u0004-*Ev�Q_�]\n\u0006�� ���\u001eE�Eե�Q�01\u0015�K�%\b;\u0018�B�\u0004��\u001c��!M��\u0013:���ʾs}?Gw[�nFXYU\u0018��v!��� 6�WW���I�w\u0018$c���k>q���\u0012{@c�&I\u001e@�2��\u0010�5�\\X�\"C~I^��yk�-e�5����evS�L�<�\t:�*�����\u001c z�~<�H\u0003����'�����\u0019��L��RH���\\��^�\n���=��\u0018�x���;s\t��� h�>��_���6(�妀������ᖽJX�\u0000�Я?�=\u000f٨\tk�n�\u0004\u000f��\u001d�q�b{��\u001f��̦�\u0002K���\u0000�\t�\u0007~��ȏ��fy6zMֹ��y7M�5����J�5�ۥ��/�\u001bw\u001c�I\u0002��E\u0015%@\u00145�[�u���I@��{F�X��>�k����p'�\u001c�ˣ�<��\\��!��\u0010����.�w�T��>�\u0004��I8u����Z�(7���c\u0019� \u0004���ξ��\u00002ߗ\u001c%#��O�|�u�yz�5�A���h\fv�K\u0013\u001eWs�\u0016�J��\u0014�4�>��x�͵:̠L�κs��ͺa��#V%v{����{��_2�=��z�\\\u0017�^�[2}\u00046����a\u0004��\u0012�\u0012�F�\u0015��Yy�&^\u0011\u00127�E������{ݦ\r<�d�'\u0018&\"ĉ�o��@���y��t�m�KY/&�\u001bX��P\u0002i��\"��4�R�Ү$n?Y��X�E��<�k��s�\u001b#�\"�_x����<�8��\u0016\u0007\t]��ն�&�o=��\\D�Yڳ��X�{醽�3���8�\u0000�vŚ`$cÏ�o\u0013�\u000e�����\u001aU_M�\"��\u0002�\te�Q��\u0003^`o\u0010GRyw���å��S\u0010\u0013���\\D�\u001f��\\놷 WM�v�-y�\u0019�+\r[Q��Z��m��.�nn\u0012�,��'{�x`����K��;���$,KFw\u0019T\u0004q\u00021\u0013\u0010\u0005���c��~\u0015��#bS��\u0005孤��V�6I8���^;]/��]4jd\u0017v��A<1�ǜ<���q��\u0005p��\u001e\u0013dăw#\u0001�t��\u0000�\u0002�̓��%(d���\u0010#0q��r\u0013BD�%\u0013\r�+\u0004ol��\u00003��3c�ͨ�����WVP���[�-@���K�k���T�^_�ί\u0004M3�F�fy�s瑳Ő�7F�(� \u000eۊ66$\u0010\u001dF)\fzHd�8D\u001fQ�c\u0013�؟\u00073@�\u001b��\u00121#�i��X��*{O��;8�\u001f��:���gy\u001c�5\u0011d�[\b���!{��Ie�d�%Um�fv���\u001c\u001b�\u0017\\U���[���v�'�w��4~~�Ե��y�˾N�M��t���WҮb�`�*,QX,�F��)�\u001e�H\u0015�#�\u0000�/ej���@���g\u000b�8hq\b�M�7�'���\u0019��A���<�1�kŒ�#��2����1&�<���X�\u0000��i+�?q�E�\r\u0013�Ry��0Cm�������Y���mm<šj%/��ѵ#,r\u0006A��\u001e�dnC�3v�M/g��#\f��\\cc�t߼t�[�A�{7M�\u0018��(�qN��x} �\u001a<���ڷ�������-^�B���xRXu_�v�S�0�;˧^�\u0012G\u001c�W�1N\fA����\u0019����c\fa�\u001c\u0006H� \u0001�*�����1�~\u001d>�z�>I�!�Ț>C���~c]�\u0000�Ayk�>g:�Z1�&���-�;h\"[K!��A.�\u0012\u0005_P�z%\u0001\\\u000e\u0011�\\�:-&<\u0000\u000b3�������G��\u0019����qG�Gb|���b�����`�\u000bU����^YG�\r�\\'��(�@\u0004XRK0ذ\u0004�ڌ\u0018c\f�N�ڜ�X�_\u0013�W[+��\u0002��\u000b�7T]\u0012��\u0005��ӵ�*��F�k�YQd���\u0017���\u000b\t\u0002)=\u0005:�<\u0012�\u0007���\u000bTr\f����\tU��bk�y����O\u001a5��\u001d�$\u000bR��\u0004{�bYN�>\u00071s\fq'�6�c)��C^���[����42$a\n�\u001a�Hc�Ք�A�+ӥ#$bx�E�K\u0001�\u001e\f�g�\\y/��\u0018j\r���\u000f�e֌��|@�cC؊��Ճ�p·�5W\u0016?y�Il�(ř�\u0017V*x�)�E�?Ux�{a�\u001f\b��䄗I��Z4�H�A�\u0002\u0011\u0018\u0014\"j\u0013��o�GуDŽv��X�G��^]��!cP�Ѻ�\u001f\u0002ב\u0003�\u0015�\u001cz�Z{o�Z���ɜt�#j�u����V6�ޡ=E\u0007�8\u0002%U)CƕT����f6m|D=?_���o��\"BR��{_!�$q�\u0019\u0004�4 ��;QOBY~��&��E�}��`�\u0002ok���E�\u0011\fD�Z�Ō`T\u0005\u0014�񓽒[�!\u0011]Y\u0004ztzm �B�I���;\b������~����5��\u001als�f��\bs'���\u001c�y5��m�\u001b�]��UU��-�5\u000e���n {gQ��KS9^�$a\u001e����\u000f\u0017���I\u000b\u001a<92K����y0=C�3�2����X�@U���FR)EBd�oS^����gGiK)���\u0007I��NԞ�\byp����Sy�Z\n\u0004�b�2��\u001cP��a�ʃޣz�G�\u001d��\u0000\t�^���c�OiO�\u0018�ґ�S\u000f�Y\u001ei�\n\u000b;�Y��dF��`�yG���\u001dhOpAʏ�\u001d����2��h��X�U���g\u001a�u\u001bz����m��e\u000e�d�\u001d��!���\u0001��r�G7\u0012\u0005͜r����T��i����4��E1�\u0018߄��^]$G�\u0013�oC���E�p�k��9\t�0o\u001d��'��;��B�0�b�\u001a���#uumҟ�����\u0006F�?��s�b~\u001f��l�O��e\f&\"�EH�b�-\u001cV�6bTnz��\u000eM4���|5p>�@�o\u001c��д��6֭�F�4��\"�*\u0014�3��V��dzڬ�m@�_�$yt\u0005�{E��jt�9\u0003Lj;���|�?�<�zD\u0011X�\u0013w��ơ�y�8�����P\n|'�l�{C�0j�u\u0018*\u001a��2�����C�=���|\u0006�Syt|���Ry��'�܍�|�e4M0�g�ٝ�K/:��S�\u0005۶a�/Q\t�N&1��ss�]���\f��H�ry���w'�;\n\r�=���z-O�:<\u0018#�<1\u001b<��Q-D���\u0000\u0003˿D\u0006�xW���\u0000vd�rq�\u0010D\u0019��!\u00079\u0014\n�\u0007SN���D\u0002%.\u0011��<�Щ�����`\u001c>6��\u0013�qS�\u00007S^���\u0006+6\u000b�Ϝ\tQ}U�i�������%h�G[�:1�\u000boU*��^�\u0000�C\u0011]��\u0000\u0007_<�Dp�/���PE���%�ա�\t��w{�R2\u0012?���h��\u0001VD��C}��lA�z1��4E�����\u001f5�n�Assi�!�T���Og�P���e��̳^ܣ5����&\u0004\u0000V9�ǹ�������w�c\u001c�p�\u0000��B���Ms�oc򟙴��I�i�`�t������q8V�Q\u0016�%Lځ�\u000e\u001cB��H!@�4��p\t��|:6����`n\u0005���>r?6}��2���ik�ܛ�6�/0�_���Q��3�j\f�2�e�i ��i\u0010�L�7\u0014$\u0010\f�+�<�u��\u000bG�\fljc\u0019�@X?��\u0011W΍�44�b��Q�kk\u000b�\u001a��]&��-���t�e�f�ӧ�io\u000biZ�W12Y��5)W4���9F@B�s'����C\u001c�Q�o,hJ��\u0011d\u000fv�P��y��T}+T�Y[��- ���u�y4�\u001dI\u0002�Z�w\u0016>��^jMy�A+�n_\u0018��\b��\u0012\u0000 \u0019sۨ�]~ּ`B�\t\u0011\r�\u001e����\u001e�g�捶���\u001a������o�Z��N\u000bau�yNx�\r���m��\nY\u001b���wQƟm�f8�?\u0013\u00111�\u001e�|��;����IJ\u0012��\u0013�h��2�\u0000<���p=�]Ҽ�q�iڞ�ک�\u0017u��w\u0016\u0016�p�\u001c���~���L:U��Z]�Ŏ��4��4\\��\u0001�ߎ@�JQ��$\u000f-��\u0011�+�o}\u0007,]N3\u0013�\u0012c�q#�xg�y�.�1\u0003o9\u0007���gy���q}bҭ��G-�v��~i�5�\u0007�\u000b����{�h��,����S\u0019� ��x�\u0000a�\b;w�\u000f=ϑ\u0015�����G&��3;��\u0002*�\fv�^���\u001d�O�oa���,n�ѡ���O,Aq���j\u001e\\�~���U����\u001b�Z�H��C\u000b,�\t��\u001b�ĵ�q�cFw\u0013�\u000e�U\u0019L\n�r�\u000b!ʄ����\u0003�1��;�G�\u0011\u0001�JG�nn�zϒe�Z�M\u001aM��D\"O.���6\"���D��k�[�\u001d�Ķ\u0017��'��Mv�W�\"�rrc�\u000eL�!��<��y#�\u001a\u001b��1��\f\u0013ǎ�8��!\u0010\f�E�Iۄ_J�՝��M�֝�co�jq�����x�fiu\u000bMb�-E�\u0005c�MB��\u00163:J� JQ�\u001e�Y����=2�?��P��*�o�nL3\u0019�QÎ�\u0011\"��j�\u0003y\u0013�\u0012\u0005�n��4\u000b�3ye�g]2���F\u001dR\b���w���\u0006�bnad���\f�9�nؔ�5\tm�\u0019\u0018J&\"@\t\u001a;\u000e{��]�~�F�\u0019�fa�r���Y���\u0002�\u001fQ��ϒ�\u00001�\u001f/��y�Ȟp�}S�z��K�>�{\u0005�n�罶k\u001b�b�}{�Y���ol� \u0000+ۨ~aH\u001d\b���\u0014�1�\u00117F�y��0�Lxre�\u001cx�Db/s�w0o�+`+g��\u0000�\u001en��8~C�h�\u0011iڇ�.4+�$y�M2�k�v�3��n���D%�\u0005�j.�'��ʏĊ\u001d�l��1�\u00112�dx�mR\u001c��\u0000\u000f>w��Ç$�\u001c�@F0�|�ym�\"���u�T�\u0000ϣ(?�,�\u00002|�����?$�������-��g\u001cQ�w����]����SJӼ�#���Q����c���L�/g�\u000b\u000fd\fQϟ\u0018�\u000e\\�χ~���\u000f���\u000e�~�,��]N\u001d@��%\\X�\u000b�\u0019\u0000�BȌD��(�I~��N�\u0000�'~H%����+�5�5�\u0018�/1y�F�z�GJ]E\u001c��DA�Pg\u0003�~��M��=N�Q�\u0011�c��ݶ��\u0007�����a<'>�\u0011��x꺈�\u0003ʢ��.�J�\u0016��\u0014q*�\u001cq��b$�c�5\u0001\u0015B��Pg3(���\u001c˻\u0019%\f�2��{�O0�������\u0015���c]��ex�K\u001f��˽�m\\���O��<�i�����_�k�YM��\u0007в���$��AD�\u0013��9��I\u001fDE��t��t~��U�Jyo�Ť�As��E\u001cz��!��6ޤq\u000f�\\@��̸G\u001fM�n�p�$�BG��ѵDfz��\u0007�����C�\u001e!\u0012�!)F�Nꮔ'u\u001cH��G�+�ߐ�'\u00161���\u001e(��/�p�\r@���e&}��c\u0006�xG���g�Z9KWq@\u001bz\u001c�\t\u0017G����\\�\u0013\u0015+�J.��~��PH_�\u001d�\"����'%�\u0005)�&��n�dc��\u0016��T�45��~� ��L�E�\u0000���,ELr�(+�@zUh2�}'v|�\u000e�XM�L�\u001cL�\u0003>�u�j\u0015j�Zo�>�\u001e]\u0011�'\u0002ѭh�����7�\u0003q�]�O/�cjb�V�)ķ-�`�\u0000x���,�An2���\u0012N��\u000fB[儛���\u000b�}��A���\u0012YXOp�7tA��\u0001�h\f�`\tj{\u0011�Mv�J$�9;�\u000e���\u001d����WS�&�\u0005撒�\u0004EbUD��J�=����xG\u0018�Ð�֜ڃ��0\u000b\u0015�#Ξo\u000f�^��j\u000b\u0016�\t����8e*�U��;(\u001di�=3`{:\u0019#�����ng�?�Dww=^��7��ͼi1�xx*�,=A��<��i)5�:f\u0014�Y����!��\\¥U�~��K.������aGw\u00134%�^=�}6\u001b5\u0001�\u001e�8��S\u0006����Xˏ\t\u0017wV,{���N�tۆh\u001e��N 7�H�\u0003�2\u0013Ò4@ݖ=V\u0019�#KuMCX�?�c1�X��+D��=C��j\u001d�w\u0003p\u0005s/\u00141\u0018�\u00150��ɨ���X��_�IN��\r6��{e���4\u0005$\u000e�!��r���b,~��\u0003C�G\u0016H��4y���2a���{�������\u001e��\u0000�^k�'�5�Z��<��JKX]^��%?R��z�;�\u0019~�)�xxgC��\f�Y��c��nU���ݥ\f�{h�6�7�⼑V�\n�Pzxf�6�(���Ѻ\u0011�a�m��~h�K4\u0016Z���R(\u0015��ݔ��.\u0000�'�Q�P5FCq��[D\u0000;\u0001l�O����76��W�\u000f輈�T\u0006^Hx�Hѱ��!�=\u000fLD��s\t�\u000fI���.���b\u000b��pL�i��h\u0006ǯS��Lߚ�9�V]R�������!�6�|\u0001\u0007���S\u00045�=z(Mg�xi\u000f��_X�Z���Q\u0011��\u0000\u0000�g�{\u001d�ǩ�����G\u0017�==�\u0005�:ib�\u0004P�4{�\u0013����m\b2�+�ăv�g~\n�:�ā힜2w�\u001fc��=\u0018��5��u�/~ZۻV=Q,�t\u0012_�̟Y�\u0018\u0012�\\�j�J\u0007\u0005�\u001eU��2�-t�S�I��\\\\1\u001f�\u001f��I���\r<0h����y���'�70�t�\u001a}�W\u001a��X� ��,\u0010Z[E-(�\u0014Q�\u0004nH��B\u00019nyp\u0019H� lр\tƀ\u001cW�Ŝ\u000f5_�7��Ē\r#L�Y-t��D��^M\f�^�r��q$�[O-\u001eF�Q\u0005\u0014\u0003�͔��#*\u0017C�P\u0015��vx�\u001c\u0018�\u0018ܣ\u0019\u0013[\u0003+6\u001dž�\u0006��\rUV�\u0019�Aa\"[��\u0000�屎\u0018!t��\\܆��*�c\f> )Q�ҙ\u0006�����ϓ}��1�z�\u000e�\u0002\u0007v���ݘYj\u0016���I.=u��K�^\r\nY�_�m)��Y%�� �Ia2��z|�E\t�i\u0019�_U���\u0000W>�$N\u0018��\u0004Y��U���s�E�Y���yf�\u0015�t�,D�0Z�\u0005�Gy��,����\n���w���!&\u0010[��\b7���\u0001�m��~����\u0013\u0003\u0014�J0\u0000�\u0002��4\u0006P/Q�޿����鲉BOm��\u0010_$�����P_\\�\fw&[��F[g3�\"�H�ȧ\u0015V }&Vc�!�������\u0019\f%�8�\u0011C\u0014�\u0007�$\u001b�|$�<��A�>K�)l!���\u0016�6�&�\u001bXLyE�������$���[mN�\u000b;D\u0001dS\nD��Gb��(�JX�r\u0000��\b�\u0006�\u0013���\u001eP�58��\u0005b�\u0016BE�r1&&<Ő\b�m޺�W3ͩ]A5��eq=�Z&�&�M��[\r:x��+;�~W�$J���\u000f�\u0015rxO��8����\"�$\u001a���v$s�g\u001e\u001c\u00076o��efB�\u001b12�3\u0011�8f\u000f\u0010\u0007z�L�R��\u000f5j:��9��a������҂���MK;h\n�֠��p��T��&�8\u0018�\u0001\u001b�\"@�YX\u0007�ʷ\u0007鉪$m�w�ܤ�r�����\u0014s�c��y�\fh�q\u0012���\u0007�F\u001du��.����*Ip�w�Y��G�h�����moa�\\i\u001a���>��:��p\"��\u001e[w+�2��\u0018��2�V@�7�\u0001��O!��:\u001d�S��S\u001c�\u000e\u0003�\u00139qd��\u0019\u0000\u0004c8�6?A�^�\t�K;�|�{�/\"�\u001ec�,�Z�~��4�-�\u000b}6��G�m7O�\u0017/\u0017�e�MR��{i%�I\u0004\f�V��ʗ���c�y\u000e#{��z]\u001d�7��\u0004\u001cML�d��d2�\f�5{�S�_\u00016a)�qQ\u0000\r�r�|?����:-�QOa.�c>��֫\u001d�\u0011�Qۆ�m\u001ex����$d\u000eeAw\rYȐ\u0006�\u0006\\`��0�\u0010\u000f8�A��nWF�q\u000e�\u00190�\u0004j\b�Elx8xMp�e�\u0014I��D�8I{��\u0007�-���y{ʚ��5]Z�WTME�\u0010bԝ����Z��~�n�|7M�@\t�QF�� �\u001b�Y̶\"<@\u000fH��5�\u001c�_���t�e�c�NP1��x@��\t�\u001b\b�[\u0011����!�?��O���˯ϟ.�-���\\k�6rY�cU�/��V���5ƠLՄ%ե�\u0016��T\bУV�)��}���4�Ϩ�\u0006�&�c�����\u0011˥�<�E�:��χK�2dž�|[\u001e)oG�\u0010�*�n�n|��o���-V�I���R�#y��K�7\u0019� �ю$����\u0015b�\u00101+@i�U�^�`ɖ^61\u001cǜ�@��cȟ��݋�\u0000\u0004���a�\f9�t��\u0006K5\\���\u0000wY�\u0012(�\u0000�#<�a,/qiun��G�u\u0006xX��\rq\u00131���C\\�d�\u001f\b63\u001f��A{\u001c?�R��7<\u001cG�9?Ⅳ,�\u0000<仿k�J�x�2<�-�G���Y\u0014�jdg��\u0010\u001e.<@_�((\u001b�\u001f\u0012C�h�8HyR\u0010�R;�ay�0\fL�1�\u000bs\b�\"��X�\u000e�zw�\u001c�uqΒ2恟ɳĪ���nd ����D���\u0000^�O�\u0004��Y�O���2�|��H���\u0011'�\u0001\u0004��=\u0002�iZ�\u0000eR�)r���v!�V�_�㜇X�*\u0001�4B���-V�\u0003\u0013Ԋ\u000f�12�\u0019\u0010I!��\u0018U�5��h�h��U�\u0010�>\u001a�\u0001�d]���B8��m5�\r\u0000���z��$V�J�U�|BYJ�%\u001431\u000e@�\u0006�2��\";�\u001cL�\"%Cr�U׵k�0��ޘ����f�����\u0012�񢳝����\u0019���zOfhqvv\u0003�>��\u0006uD�y\u000e��|���W7kj�l�\u001c?�\u000b$Gϸ��5�ٌ[[A*I�\n���b��=\rh\u0005\u000f�n�\u0018\u001f ���\r₹xm=IQ��Z\u0001���l��`~���Au\u001ej\"d����I{r��g�����}Ā\u0000+����$>\t�p�Y�oy~��R\u001a8\u001c\u001a�}\u0019��B�;\ne�\u0011�&�̃�\u0015K���\u0003�\u0015&���)\u0002�\u0010:Sl�&}�\u001a\f�\u0001Vz��U�\u001f��u6�!���g�����������ᩌ�\u0003��k�#M���pj��\u0003�w\u0018\u001cǟ1����m�{8��i?�O!�\u0003�'��=��K]R�S��lne\u000e��h�+\u001d͜�6,��\u0014\u0001ARW�sy�7U�<9�+�\u001b�{�n�S��4z�džF��*C���\u000fZ�/&�n-%eq-\"y% �\u0007hk�ץ)^�e�]\u001dj#(݃��W�P:Y��S�n-ͺ?\u0015?\u0019^+�r,OCA����a�HF���HNV9Z\u000f�ok\u0019��\u0001)\u0015�\"�~]�\u0010��o\u001cȰE\u0003A��4\u0010��Y�+�\u0014\u001dw��6\u0000w$\u000e�12�\u0015\u0014�\u0001��vR�\u0010Ơ��\u001a�\"��ր�\u001cb�\u0004��Jx\u0010�!�\u0018\u0006J\u0013�@z�Q�\f��1L�6}�\u0019&\b{\u0007��\u0018�Qs|�Z�I�'�9���\u001eBiT\u0012d�&��j�!�B��qF��2\u001d.�W=���z\u0016�t�f4�{�xe�*\u000b)\u0018�qv��\u001a[O\u00194ӯ�%ف���\u0019�\u0001�ߣE�ʇ�s�O+�sSM�o-����ꎖ�7�\u0000�g�z������\"�\u0005C\u0006�T�%�p�;�l�1.\u0012\b\u0000\u001a�7�3+KE�5$\u0016�\u000fVY�9�m�\u0019^H�\u000b�{��\u0010��t$\u001aҫ���3\u0006$O�}��E�b��\"�k+�on���$��\\+\u001b�\u001e�\u0018a�����a�\u00175���ЉRE\u0000F�\u0016�Nc\t�m��˔c8�Q\u0000ǿ��G�q��Qww\r�][�֡��I-t�&�/=���x\f~��{_[��&Wm� dc:\u0006'��ˏ��'��\u0010<��ݸ�uC�\rd.�m�R8�5\u0018Z\u0016�Em\u001d�k\b%�ܡinu8�׭��\u001cL����H�\u0007\u001f�c\u0013^��\u001c�*���ƹw��\u001bL`Ԣ��1,W\u0013M\u001e�c�jW�,�u�ϬZM���5԰�M2�P�5\u0014�N�\n��\u0006��2�M��ۺ�Ah\u0018��G�\u0003�Q �Nj�\u001d�\u0002�\u001f*�ɼ��H�?����!��Q�+�����|�ܫEu\u0004w�J�X�Ak,�凓��A\u0001\t���\u001b\u0011�\u0018��~|���ڌxL&b%�_��q��cȎ��z��<�u�kN7w����1Cm2X���\u0000G�$\u0006m\u0002\u000f�ʩ`\u0002@���q׷i\u001a��4+O��CIӬ5=:��\u001d;�}f��n���t�\bo�ƻ��2��\u0007��� f�\u0006iH�$�:���X��C*5},��V<8\fc+�@� ]\u0012\t>��\u0014yG{\u0014+��\u001a1��u-F�\u001b�k{�'D�N�u��[յ��H�{��-�Z��\rY��n)?\u0017H�aT�fb�\u001cQ�\b\u001cs�@�1ߗA[W/���\u001cy�rH��u�\b�O\u0016׾�.\\�æ�\u000f���z_�<���\u001f�,��k��z|���}�v\u0011I�Mw�X]Gk\u0004�\ty\u0003�j034��P�\u001c\u0005Bs&2~[&L6x@6\u000e�'�� ��[N(�\u001a�G0�\u0014��\u0006$F\u00117\u0011{�-Ƞ{��\u0007��m�wZ�t��,\u0004�4\u001dB'�Z'��$���Kbn��\u0016����E�����\u0005`�ר�LN\u0010\u0011�2���\u001d��\u000e���9�1�,�2��\b�MQ\u0006�@�dO#ʨs~}�zM��W����?-Kag���E�)5�c7\n-�?���\u0011|٤_�,��[�w\u0011>�\u0007&r����m�:����q\u0019\u0018F4DF��\u0011�˧-�qtأ�J\u0018�9\t�zD�d�\u0016y�`��'���\u0017�r7�ߙ?��s�q(ҵ�!6��U=\u0018���\u0000//m�K�v�(�-��\u0000����=^;p�b��CںS\r\u0006)�\u001cN��Ž\u001f!������\u0011�\u0019B\u001cC\u0014�\u0011\u001b��\"��V~\u000f�\u001b����/$f�n,�\u001e��c\u001e\u0000\u0003��s���\\\u001d��|P�!''S�=�\r�I�C\u001d٭vG=����.\u0012`9��D�3\u001b�5u�Ob�x�%4��`rQ\u0011��������!�k������n�~Gc�S�3'\b0��p5��\\|F���͏7G�i׷Sα��\u0012;H�\u0015\u0014F��;Ӧn�p\u0004�\\�#gr\u001f�o��[�r�U����忕�\tWB���^������\u0018��G^��\u000bӶ�wkv����O�\u001fޑ�#�==��\u000e\u0006�G\u001dV�j��\u001d�IHt��ǝ�ې/���\u001d\u001eE�@\b ҝ����\u001dr��^\u000f\u0011&�@ϥ�bh(\u0007�N�P����%A#\t���M)$e��Pt=��CL�\u000eN\u0003M91��NO[��\u001a9���(�\r�ǭ(\u0005{fls\u0010x�7\u0018ጅ\u0011����\u0007�kt�G_N�()Q�z�o�f�\u000e�3\u001c2����5\u001a\u0013\u0019qG�����n�m�V2p%w�|T\u0000�?\u0017cL̎@\\1\u0013�\\߾\u001f��N��?'l��0\u0016�睤{�x�\u0004�`�zQ!m�5G�eၖ#�n-�\f��\u0004��[ �\r�}��\u0015�2�+F�K:�r��V'Ğ�lrD���<3\u0007m���2�b45=@;���\\��/s�|!�6��䚮�\r\nА\u000fs�4��.�mш�vU���*���\u000b\u0006&�\b�^�\u0000�*$\u0002�\b�����2Oe�\u001b�9��|����,�T���l�\u0017\u0013�:8y�3���.�iO�~���w�d�I#�\u0010�}�B\u0007]�V]����M\u001d�`\u001cR�Qz񻶒BP�d��!G\u0003�f���شWו\u0000�:\u001e?i[n@��׶RH�N�B[�iN�� �r\n�ǐ�� V�{�2��4��\u0001��,�|�\r�\t\u0001�Z�Љ r@��?\u0010�wڟv2�~Lc! \u0007P~,�{��c��^�UK�\u001b�<{\u0000r��ͶG�\u00026�m��$^����+B+��6���zw#t����VDST\u0000\u001d��\u0013��x�7L&}\u0006�1�J��:l�A\u0004#H��ڢ��\u0004}�%\u0013E���$�K<�yh�\u0014�|\u001a8���v&�\t\u0014����OQ�_�J1�\u0003\u0019�\u000f��Iv���Փ㉇�\u001b����\b#b�2\\@\u001f0�b�򫴦�F�0\u0012�C+\u000e���J��L���M�aA0d\u001b��x��@S��_|�wy2�\u0000�2=6!\u001c\f�!�\u001e4\u001e\u001d\r\u0005{xd��\u0011\u0010\u0019��5\u0019,�`�$z���s٪\u0001\u001dw?qʤ8�\u0007��eR�����!�Int\u001b ���H��H�Z�)�%d�8���Ô�����.��\u0007\u0001���3_̏�}\u000f�\u001fO7zA�K�\"#t\u0000�;P��\u0018�\u001a��hu�ts���r;S�0��y�\f�U�<��G�����r���jY/��Y��4�\b\u000b[�(\u0001��T���\u001a�I\u0007m��\u000f\u0010Q�my2\u0018N�����~\u001d�C�yX~c~f�\u0007�v:��r���m���&\u0006þ��\u001cd�'ܶ�Xh,�*\u0003<�\u0002l9!HV\u001b��y�1�vzXY�\u0002�L���+{K%���I�G;I��e��!�'l��f;�n�NG\u0015�]%rj\u0017\u0017�%h�\u0015L�I_����\u001aq`�o��\\�N^}vv�\u001d����ݜS�`��\u0004�0�@\b�wX�ػt=��fH��6\u001bv�\f7]��U���ci\u0016�� �Xד*\u0012#��7$\u000e�\tHP\u0004�~�Cr�$\u0017�с4��J#H\u000e�\n�q�\"ҿ\t��cK%y\u0016�U]\u0018�V����.,��\t\u0004�V)�\u000eD��Ą�\f�z�_n���\u001e#���$n��\u0017Q�%�ǭi���qS�ĢM�^c�B�z�(Z�98�+$\\k���bb�0?$���\u001b\u0011{\f�ZI�RVR�I\u0013�!}A���_��t�&�\u001eht\u00042�S\u0003{��}w�w_�������n����ug�u\u000eA�6�\u000bW��@jMi���|�y�}\u0013��@��$rW\u0010\"�����Kq�\u0015��?�\u001d��p\u000f�h8�V�]�-~�vo���h:S�\u0006_\u001c��QP]e�$r%Nۏ��u#m�j�f,���Æ�Cɬ�#�\u0018�\u0001�R\u0005Z�o~^=� d��\u0016\u001e\u001f��O��1C\u0016�\u0005��\\M+5$cON�\u0000/s�k;J\u00123\u0012\u001d\u0003��W\u0007\r�z^�\u0016\n�-�$�\nի�\u001e\u001b�k�\u001a��>S�VH\b����ΞwӴ\tѣ�d�\u0005�5pʿY�vg\u00144�*��:?`ġ�.I\n�������\u001fߎ��\u0001�~Gh�{&�b�y�;���02�<2+�fRU�zm��=C,���v\u0012���<`��x�?Td\u000fɃ�\u001a�u�ͻ��b%5h\u0013j\u0017)e\u0002Q/�\u0015ya���9\u0015d\u0012/�S͚��)�e��Fk?��W��y�3�\u0006��y��{��{}\u001d��������[���~�6��Gl����\u001c���ߍ\"Bۑ��fN�'\u001d_@Ӧ��\b��\u001eդEc���\u0015ܰ�=厔�^6WI&��m�\u0015���5�|l��\u001cH��$�y�_;\u000e΄qU]_26z\u001d�����\tm���V�����\u0019{igw)s\tHc-!AH٦*�~*�N$�dl\u001d��Nf��1\u0011�]\u0002o�ܯϸ.:�����7�oc\u0004am��8��-z����\u0010���D�ϦYW�& �\fC�u}/�#6Lt%�\\_`\u0017g����4���\u001f��z��\tu�9^Q\b����:C,v�Wc}\u0014\u0017R�����x�~�|Y����o&�4Sk��R_�>c�ӌ�¶��;B���^\u0016׉42�����_��p�\u0018�&�\u0013.����c�w�\u001b>l�Vr\b��b#νDJB�\u0018�V�O/@[Ia\u0012i�S���Vf���\u001bP�[[��\tfU�;h���&m/��G�7� !9�Zl398\"e���ymG����5ӗTv��\u0016���Yp���܌�r\\y�DK�1\u0004�P�r��J�=��$���M.�S���\u0016��it�f�̗:�7��֯{�DUe�\u000b�Hܶ�lx�\u0004��DA �ݸ��\u001d��߳��c\u001e\u0013�'�2�d\u00000\u0011\u0013��,�[�\u0004TI\u0002D��|��_:j�]�f\r*imy�;�$����m���\u001d���M'\u0017\")\fe��A���x�-\u00112h\r��\"\u0007p��Kےus\u001e\u0010�q\t�\u001cEJ�r�61;�Q\u0007�\u0019\u0000M�����4\u0010i\u0017��7�k\u0002�Eӗ�\u0017\u000fa��+$���m-���e�2��汓�r��f��i\u00069�3���\u001c����ܨs\u001b��qi�\u001dg�\u0000N\u0007\u0010�����\u0011�0��MP�Q��ߟ?�7ڇ����Ր�\u0016zmީi��[�\u001a}\n�H�V�X�m�\u000b8�K�f�\u001b��F����\u001d('\u0011\u0013��\t\u0004P\"��\u001d�s�˖�'\u001eK�\u0018�\u0018l=f[����Y�\u001b����\u0000�ߝڭ��\r��l��\u001b��Il�F���~�pd���\u0012�K\fh��7��rZ���\r��]\u001cs\u00031�'��F���%Ǫ�\u001e\u0018�y\u0013�ϟ^*�\u001c�?o7���\u000f�Tv��,0�o<�Dt���\u0010�/Q\u0015TEM�M\rCl\u0002�+���\t����ǭ1\"�\"����T�Ӛ/N'Y9�h\u0015�G\"��V�=6�Zm�4��p\u001a�wzmL�.[��]6\u0016�\"b��ғ\u001f\u0006\u001f����YEH\f9�jM\u0014\r��$�\t<�v8��n��\u001c���\u00129!���yTG\u0005�d���v;!���3Sa�3���~�8z��\u0000J\"�_K��,.�m嫋{�nn4�V\n*�`��$�g\"�f\u000ehG-�\\:��^�F\\2�M�ϤR��/��\fHލ��EM؍�v\u0014��$r�0�l�\u0000@�a�OK�����\u0004��ƴ�vS]�ሐ�ⶹL\u0000aՔ�Gy��I\u0013�\u0011+\u0010�\u0015[g�KQ�P��~}3+\u000e��8yc(�9�;G����\u0016�B�Y+';g�$m\u0016�\\\u0019\u001f�nR}���3e�VD]v�\u00008ɱt�\u001d/EX\f\u0016�ѲCj�mtB\u0002\u0007�K� H�1�k�\r��\u001d�̑.\u0010�\t\u0012@���EX,l5=8���B�㔖��K�_ۘZH\u001a������\u0001Ƅֵ8gR�'�\u001fwO�<^\u001eC\u000f�d|\u001d�D����o��_Z��}p\u0012\u0015F�4􈁐���\u0013��\u0014����T\u001a�e�w\"�b��\u001cUc��Լ��\u0013j��\u0000%�\u001e�\u0014�Oslm~8\u0012\u0004da\u001e�6�΁8|\n��Z\u0011D���*�s����ǟ��=\u0017�Z��V��Z.�%�85[�g��.�\u001a1,U%�\u0000z�Iȡ\u0002��15\u0003+�,���e�≪��Ź-����Z:-ݵ��mq!\f�b��o,��\u0019K�\u001a�mo\u0014q�\u0004|D����6\u0014yW�O6���\u0001\u000b�\u0007�Y\u0007��uR��{�Ŋ�\u0004���\u0000J�b�(h��Ed�+����(�!b��Q^8�p�����f\u0006B.��*ۯ�^��\b�\u0016�!\u0001c���T��uF���t\u000bt\b����諪�\n\u0014�DR�ǐ\u001fE�l3�\f\\dTG?w#������L�!��W����\f02�i7z���M�0]�\u001ce�-���7�d$�\u0001\u0019fC×`h��=�n.\u000f�i�lP<5B��\u001e�\u0003�o�t�>�W�.�s�k\u001d����u\u000by-n�k;�{i���quq\u001f�-.M�\u001fX\u0000�|\b#/*�9X�)f��\u0012c��\u001e|��nK��c\u001aXCP#�&v�MY�q\u001d�s��6\u0014�?/kڦ��Oa��\u0004ڊ�\t�y�\bd�7��McN��Th�U�3j�\u0011��S��\u0005 dc\u0012�9�\"��.���?��l.��\u001e4a�\u0014�`n/�#\u0011Ț��\u0007�;Ut{�\u0000�|�>��-\"��Y-5��ӟZ����jw1��W�f���z�o,��n~�%\u0012�B�����3�U�?y�Ȇ��\u0000�\u00038��\u001c�ȍ�\u0003�̏�F�T;��Ia�LR�\u0011\u001f\u0017\u0016�\u0003��&;l}3 �o�������K_�?�_9h�v���\u0010k׾Z���e����?ܕ�L�J��Y����A\u0010��P��\u0004\u0003��^�f�b�r�jDw�W��������{C\u0004�jrFb;K�;�\t\u001b�^�}ܟ�ߔz�����Է�\\Z6�\"ؤ1G5�w�dw1]�Y^F&�����)�{i\u0017�YO\u0013�2��ugM��\u0010G�W��l<#�A(m\"\u0001 u7�t?\u001e��o���W�7�s��n�\u0000H��?�o�!'��\u0000,9�K='I�ciq���(��<���5����X�3Y�\u0013'C�gŔ�\u0002�s\u001e{�\u0017O���\u0002!\u0018�9J5�ho����.֬㿷��h'�rGW�\u0007¹�ÚX���~�}�\u0000�\u0011(Տ� 1���[ȵ4�\u001f�@��\u0018�dK�s(�#(���o�Cm<'���Or\u0007���~9\u001b����.&'qO\u0006�]����;�\u0014\u000e~Э\u0000�N¹��,��w\u0017���\u0000?\u001c�\u0000����l�\u000f˿$]�g�:�R�{5���}��V�B���\u0007s�\rGhc�� �:�\u000fH��>C�p�ϭ�(b�\u0007�{��\u001d��C���n�?*\\�zY�In.%�[��\u0005�i\u001c��3\u0011Vff9ɜ��L�.)\u0013d��p1��#�DDF \u0001�\u0003\u0010�|����\u0010���R��GC_�\"r�M�6v�ɠ�1n\u001d\u0001܏�F\u000f\u0017�L�3Ge8��-&\u0012�\"�r\u0002�����ǾLe\u0017m2��L��٧�MylKT\u0002{m�h2�j��\u0001�\u0011�<��:���h��^�z��6�vP�2�<��\u0011@���l5\u0012��\u001c[�'o7\u001bQ\u001cXpO.m��6@\u001ed�\u0003��\u001f�,�\u0000�\u0004yK�~[�|���f�`�e��7Qh�F�n�� tYb�\u0000wJ��T�3���8\tg�]×�����D��\u000f�\u001eP�!��\u000e���\u000f{�it�m\u0006\u001d7Nѭ����*?F���1\u0015�\b��!�zF\u0006m��� c\u0011P��q3i�'\u00197��\u000e���Z�x�n&1T��\u0015GSN�(�\bq\tA���ta��r,b1�<�.�U5j����D�����.�c\u0012��$�,��\u000f�zo���\u0010[#\"M��Mv4�z�O\u0013Z0\u0015�s�|��[\ru�y<3���As��iJ<\u000e&VZ���T�� 7\u001e\u0019��\u0007���;8\u001a��\u000eQ`�~�Ũ�K��ڎ�\u000e�g*�bm�(T�P�:�'P���庌90�gu�{��9��A�b>��WB;���F���ip�m3�����\u0003w\u0007�\u0014�3\u0013��v\u001cW\u001d�7��0y�\u001b�\u0014�\u0001/\u0010���A\u0003��5�\u001c7˓`�:Q�$���#�9c2).)@G�G�d|09(7w̼^�9���z���*j�\f+�\u000e���fF'�\u001d+�\u001a���vHzx��a���\u0002f�.��0B��IPĆ\u0007�Qh�j�Bz�Gz\u001ei\tҥ��GOR:�6\u001c�cZS��3 \u0019\u0003͙��fB�n�)�Pޝ[�<����Jc,��#kU˚cb��3��P\u000b\u0001V;�j�w\u001b`\u0012\u0005�?7��~r6ڕ��,ή_�=V\u0001��(\tٔ��q�����\u0003!��v^���\u0000I����~��`���QL�.ҧB[n-J\u0002@�M��Ɏ@\u0010^�\u000e�\u001c������\u001e���\u001eb�0궖�\t+�ZTG\u001cB��m�~�\u0018Nx��$Pmˋ\u0016�\u001c9�\b'��|��_���+��뗚R��5�&O�NѢW�R#TB}�7�������\u0004��w��i{3��%,B��\u0003�w>\u0019���\u0000�D���\u001dέ\u000e����̏��>�մ�+�6�1�>�\"(���6�s���Dsc8�\u001cf$Q\u0015���x,���[/�8�FbW\u0013�\u0004�#{׻�\u0017�/��;\u000b�]\u0007Z�k\b,�q\f�FU�\u0007.R�ͺ�J91\u00155�6���H\u001b���i2�$b�@\u000b�~9���s��sL�������橩\u000bTӼ�{,\u001a����պ\u000be\u0007�P��3\u0005@7'+�p��&B\u0006\u001c`ȓ�\u0000,���yv�r�!Qﳰ?k�J�������\u001e��{ˢ!�N��I�F<����\u0012W�\u001f�g2�\u001b9n������f��<0\u0007�;$�\u0000[����\u000e�=���\u001f�8���\\�x�r�/�7�{�?�t\u001d\"��Y�EIm�C�����Nl�.+\u0017��h`\u0004\u0000\u0003k��O�`�\f�\u00127\"A\u0007��\u0014�vZv���%ʺ;�Ca{\u0003ޙ�]������+}\u001c�u�\u0002z�_\u000f����?N�\\�\u001e�`\u0002H�2{�p�A;�����c=\bBE(:���Y\u0003���a�DS;\rxi\u001a[�t��vv^\u0013��*dY\u0015�8'J�o��\u000b>��ـy\u0006\u0005�y�\\��\u0013񺗈\u0016�}�\u001al\u0002r\u0003�]�ݹ\u001c�s����{h\u0004��%Υ�A,\u0012[L'�y\"\u0002$�q�^=\u0019\n����bK$��m�\r��\u0000+k�az�z��\u0018�!\u0010\u0005���Ic-*�\u0000v߉�\u0014�3\u0014�ftM��e@��OE3�6񽾢��\\�G��w�²���EY\u001fb���)��∙������,n\u000f͘�]>֊���p�i\u001d8)�z��\u0014�!�0�;�e3�\r�׺����<;�|�\u0015��2^�ZYf��\t5�3��M!\u0005RF!��d��\u0005w��Tuь�����n�\u0010�?\u0005�r�ø�uH|�����\u000ezߦ��4��YȜ����Ar�oDS��\rF�`\f`�H��G���=���`� x��������^H�\u0000Y+��4�Q��9�\u001d�\u0000\u001d�H�\u001buCK,�\u0010\u001a��4\u0000\r���F�-����1\u0000�M��c >Ķ�P�44�G�������=~\u000fe���_�ܱz��*�) �\"��N���j\u0005㍷`�YO���Y��o��i�AP\u0017�\u0003�\u0001@\u001b\u001e�\u001c\u00180�\u0000�ܧ.l�ϣ�o5��KuI'����5ߑ�ƹ���\u0006ÐuY9�R\u0003��\u001b�+�7�\u001fL���[iZ\u001b�d��Dz$Ҥ\u001e�-��3�d���\u0005�\u0013\u001dTH�!&�\u0000���F���j�ͬj�7�C��v�<ޘ)\u0002��c\u001e� \u0012zf1�����\u0005��\u0007]��2����\u0000\u001f&\u000f�(�KMJ�QE�'�9�֤\u0002V�\u0000ӽ+�.Y\u001d�Ky�W\\谯 YZ\u001f���\u001b�\u0002}kM�4��\t��k=��Kq4\"�VI\u0015���L�1\u001a�j\b��!𳳴�kM�#�\r�{���Kk�RI�IYn��^u(�Ck�<|c����\u0018<@���r$�����l�\u0011��u\u001fҜ���0��G�\u001b{Ԋ\u0018ԘV8�\u001bK�\n ���m��Q���1�\"`�s1�)H\u001e��\u001e��H�iС�\u0012��\u0011\u0000@^in\u0004��@2\u0012\u0014\u0001ʼ@\u0014�3\u001a��~�Bu�\u000f�+}kU����mus$:n�eea\u0018��--.\u001e���\bL^�,s�H}�2K\u001a�$�e<8��4%<22�7#�=�P��\u001bH8�z�\u0013$↨��I\u0000\fwC�~}�m0��\u001f���\r���{oc�0�g\f�I��A�ج9D\u0011��{@\u0011����R��&k\u0007�6�g\u001b=��/G�×O|�.�\u0012&*\u0019@\u000fK�\u0002`d�g�\u0000u�t�b�A۽�K��)�c�c��E�=��4����\u0000��-ݴ,D�ku5�o$��@�U���A��\u0004�P�w��\u001al`W�\u001c\b�X$Yߟ>W˥�izF��D���\u0006�\u0015>���Բ�K$��o�\u001ac��\u0003\u000f\u0010��'��\u0000aٳ)\"D\u000eT�GP�:��\u0002v�(��4�R�S����\u00162�\u0004ҙ��\b�%�\u0003�����䑮i��sy\u0015��;�E\u001d=9\u0010��|\u0002�)R\u0017�\u001cEk�C�\u001czM&i\u0001�\u0016)\u0002h�\"C�-n�Og\u0006l���T�\u0000>�]���1C��Z�\\ʇ\u0011�w�\u0018S��g\u0000����\u001fc�\u0000�M�\u0013�\u0001����\u000e�2���U�\u0000>_���%Ρ\"G}}���jJ\\j���J�\u000ftA\u0000��Q��\u0015�P�}�\u0003�\u0001Ȗ�S���&I������&���t�:ZD�\u001eQʄ�⤊�I;��}F��A�EP\u00016���q\u001e�t,�APAR� �PE\u000elDG\u000f'\u001f \u0007�ks�X�\u0014\u001c-a^\u000b2�\u0010l�Ĩ�\u0003�4\u001a��\u0012�+v\u001a�y��W�P[ưH���2�P�\u001b\u0006cBy$a���vÃ�\u0005�'��\u000f��I�9�`ҽ\u000b�\u0014R�5*�UC\u001aw�s\u000fV7�����C�\u001a,r\u0010�\u0017E-�R#'��0�\u000e��YD\u0016�ֺT/\u00041�ҕ�\u0018\n�U{�S�^\b�7[��\"x�H�k_��\b�c�Ҳ+�\u0014��bIf�\u001d���TMF5L��\u0013W���W���`8�\b�0=A��c\b\u0007*\n�\u0019\u00007ˢbM�\u0005���w1��-Y�B�����k@~���O�=�L�\u0011�7�hֶ��%?�_\u0010O/�R\b-Zw�ܳ�#�$&\u0011����Am\u0002}p,J\u0000�B:�@z\u001f�3p\u0013,W-�D��\"��v�\u0005�,\b\u0010IJ��A��e��V=:e�1;��.F�\u0010�y�zZDM\u0011d2]F�Ř\u0006\"��V�i�=\u000f�bOa�l���:��෴[�\"Hg%X�C�\u0004�ܔZFKw�|8�+\"��\u0013 \u001c�����\u000f�S�1ڢ��&�\u0010H'2�����\u000fx������~�\u00041��\u0002��@@4�\u0001��C����'KKh�!HPG��Jщ�`MH$m��\u00006��\u0010�}��\u0000ʚ}��r\u0006��󉙺�Q̊\u0010AU\u0005Fƒ2��\u0000ve��<���T�3�\u0000-[�uM2OMC�ޫ�\u001c\u0004�\r��$�S��\u001aH��`Wn�̡�\u0014�,t\f�V�X�4���A$��o1.̲Ar����ţ+��v�?f�\u0002M\u0011�fNǭ��\u001e\u0018�V�\u0003 a5ơe'*�V�z��p�vX^\u0004;P�\u001b�z����ʠw<�C�$áZK\u0011)#6�+H\t�d���I�-Լ��$��8����\u0000F�6b&�?�\u00071��\u001d�X��c��\u0016�\u0018�e�\u0019��\u001brReY\n����5Y\t��A�\u0018�d\u000e��i�m#���$i'�!��\u001cm!�\u0012f�\u0001++J���)(\u0018+\u0011�9�\"\t������j\u0012#bx��c�Ol�\u0013WӕQ\u0002��H����/����\u000f��\u0007(\u0003Tq�)���t'��\u0011��L�U�\u0007�*�*��X��\u0000�����F��e)'��\u0000;�Ԅ\u0007zW|�3�w�H˴A\u001d���\u001a4q�7N\u00024\u0002\u000b\u000b�\n�P��msԅ�\u0000�ꤓ1�NlH�4\u0014ʞ� �~��`G�#�?���������}j�)���9(\u0005>���%��W���\u0010�q���BI7┣�\u001c$������D��\b\u0004\t\u001f����wG�G��_y�ː]�f�5�\b�2J�\u001c_V����H�6h�\u0006aFm�MMv8�\u0016Y\u0003��r��\u001b��u\u0019�\u00068F7�ŘU�*3����y��\r���ߔ��w�=�6�G�S\f�F�\u001e%X=1\u001a\u001fMM\u0016��z�\u0018�2J5�\u0003�=�۵yrOE��\"|S\"\t�\u0000\u0010+�G�K����\u0017�\u001a�j7sj\u0016�shV��S=��zM�֙\r����3K\",r\u0010Y�w�X��l�d��\u0013�\u001a�=�>�ߛ��Ȏьoc\u0019K�\u0001\"���\u0014<�I~pY[Y~]�o�Z#[��NE\t\u0014�)\u0002�Β�nVA'����\u000b\u0002\u0019�y\u0013S���)xS��\u0018�7�0\u0004��\u0000����6\"g��7fdly�� @x�������o.�V�\u0012.�w��Y���~�\u001dūؽ�_���$kqFPO��B�(\u0003?�r�ˤ��>$�v������\u0016N\u001cq\u0000F\"�1��wʟ��e���ט\u0012��8�u]8\u0005^T�A�>@�ȣ\u001d��\u0019oh��\u0019\u000f�����ь��HX�O�������3�_�z�������MM:\u000b��{��f�$�[a)\u001c�O%�1\u0004��\u0019N���C�\n1\u0000u�I�C�~e��,�$���-\u000e”�3[=ȷe�`@���\u001eJ\u001fڦK�E�\rw��biUd��l|<3+\u0018\u0014=�\u001ebD�r|\u000f�\u00009\r�k\u001ag�|�yc}-��\u00167�\f�����2\u0015*\u001d\u0019v#�7ZX��[��\"e2y�i�����}w�zM&�y{w%��ә%���7=\u0015@\u001b\u0001@<3���ɗS�&BL���\r�����:L`\n\u00066|��K���ci\u001c�\u0014�\u0001�W�;\u0011�ܝ�\br,2�r����^4k�%A\u001f\u0010��\u0000�}��\u001d��'\u0017��Z\u0018��\b֍���SC��\u0012M��ڒ�ۀ>�T�O]���9\\�!*���c\\�t�bV`\u0010\u0001ˍ*zT��� '.�Ȁ6\u001c�~Ͼ����\u001f�Z3jzm����^���\b\\[܉\u0000\u0013\"׉p\u0007ps��f1˯��,�\u001byY��>�\u001b:h\u001f��Ȏ�\u0018�O�����|íj���}^�X�\u001a\u0010�8��ĩ\u0014�QLJ\u0014�R���<ϩϏ/�DsD\u001dF�kE�[�w#v!+��@�\u0019q�\u0013���\u001d�\u001c�g�2��\u0012õ=F�\u0010ޕ�%A�\u0002o��S��\u0001\"܉NQ5\u0013��)��K�\u0000�\u001f�IP‡��G.�<�x� �w\u0003���5mG׍~�/\u001at�{��O\u001c\f\t#v�\u0013��\u0001&��Ե;�ƗR\r��>Y�\bDՇ:R\"\u00169�\u0004�=�̖\u0013;���\u000f�i^�\u00032qB1�\u0000\u001b8z�H�&��Ϻ\u0006���v�[\u001b����g��\u0010��x�*,���\u001axҹ��\b��\u0011�\u0002\u0000��cK�x;C\u0019�Lx��?x��O0j7���;�PI4\u0001z�������\bw=Ny�\n���ܐ\rB�$r\u000b�C�@\u00186�=G���r�N6�\u000fU���}\u0015�sGu*JB��@$\u001aV�P�1����[�he�VI-�wb\u0015K3'\"~\u0000�U�3[0!/Nۻ�\u000fRuf��\u000f#U�(k�p>��\u000elG3�\f��y~�����c��b1 Ta\"<�s1��b��:y^K\rF{g��-�h�\u0012��Q�$`A\u001fNy�\u0019Hd$\u001d�ު\u0011��D���>|�o�{�qk]��|�b�W���8\u0005�1��좎�6Y9�ҝ\u0016�\tG$��\u0019��p\u0002��KI�\u0012@C�LJk�jz��\u0019�\u0012x�\u000e�\u0000q�y�\u001d\nyG�O3Q\u001c�4\u0015\u0014$\nm�\f��ُ�\u001e��id���ˑ+ӕ\u000f�5\u001b\u001d�9������Ȏ�/�on��G뿦�\u0011dۉ,Z�\u0014�L�������l\u000e��\"���\"�H�\u0016f��&�\nׂx����0�\u0011ϫ`���-Z�-͝-����XВ\u001c��\u0012\u0003\u000e�m�1���s��*��1[j��\u0004i\u0013#�!E\u0003�\u0001�\u001e�(�\u0000\fOV�o�f�\u0014wp�.#�@m���\u0015@���\u0002񯀠�x�q�y���\u0012\r\u000eO*��Ҭ4��*�O�\u0016�o\u0001i��Z�8�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

{Lr#(zOsP($y)w6i#^Nv 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ξ{?=>OIGdU{>vmG-^r?3 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 literal 0 HcmV?d00001 diff --git a/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision.sln b/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision.sln new file mode 100644 index 000000000000..54d49997b3db --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision.sln @@ -0,0 +1,28 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 15 +VisualStudioVersion = 15.0.26430.16 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.CognitiveServices.Vision", "Microsoft.CognitiveServices.Vision\Microsoft.CognitiveServices.Vision.csproj", "{6807B854-8528-4FEE-A25D-C43C3AA2D601}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.CognitiveServices.Vision.Tests", "Microsoft.CognitiveServices.Vision.Tests\Microsoft.CognitiveServices.Vision.Tests.csproj", "{5987D97A-E532-450C-BF22-A1F595C927F1}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {6807B854-8528-4FEE-A25D-C43C3AA2D601}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6807B854-8528-4FEE-A25D-C43C3AA2D601}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6807B854-8528-4FEE-A25D-C43C3AA2D601}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6807B854-8528-4FEE-A25D-C43C3AA2D601}.Release|Any CPU.Build.0 = Release|Any CPU + {5987D97A-E532-450C-BF22-A1F595C927F1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5987D97A-E532-450C-BF22-A1F595C927F1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5987D97A-E532-450C-BF22-A1F595C927F1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5987D97A-E532-450C-BF22-A1F595C927F1}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceAPI.cs b/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceAPI.cs new file mode 100644 index 000000000000..f2bb1b0bc7b6 --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceAPI.cs @@ -0,0 +1,137 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.Rest; + using Microsoft.Rest.Serialization; + using Models; + using Newtonsoft.Json; + using System.Collections; + using System.Collections.Generic; + using System.Net; + using System.Net.Http; + + ///

+ /// An API for face detection, verification, and identification. + /// + public partial class FaceAPI : ServiceClient, IFaceAPI + { + /// + /// The base URI of the service. + /// + internal string BaseUri {get; set;} + + /// + /// Gets or sets json serialization settings. + /// + public JsonSerializerSettings SerializationSettings { get; private set; } + + /// + /// Gets or sets json deserialization settings. + /// + public JsonSerializerSettings DeserializationSettings { get; private set; } + + /// + /// Supported Azure regions for Face Detection endpoints. Possible values + /// include: 'westus', 'westeurope', 'southeastasia', 'eastus2', + /// 'westcentralus' + /// + public string AzureRegion1 { get; set; } + + /// + /// Subscription key in header + /// + public string SubscriptionKey { get; set; } + + /// + /// Gets the IFaceOperations. + /// + public virtual IFaceOperations Face { get; private set; } + + /// + /// Gets the IPerson. + /// + public virtual IPerson Person { get; private set; } + + /// + /// Gets the IPersonGroup. + /// + public virtual IPersonGroup PersonGroup { get; private set; } + + /// + /// Gets the IFaceList. + /// + public virtual IFaceList FaceList { get; private set; } + + /// + /// Initializes a new instance of the FaceAPI class. + /// + /// + /// Optional. The delegating handlers to add to the http client pipeline. + /// + public FaceAPI(params DelegatingHandler[] handlers) : base(handlers) + { + Initialize(); + } + + /// + /// Initializes a new instance of the FaceAPI class. + /// + /// + /// Optional. The http client handler used to handle http transport. + /// + /// + /// Optional. The delegating handlers to add to the http client pipeline. + /// + public FaceAPI(HttpClientHandler rootHandler, params DelegatingHandler[] handlers) : base(rootHandler, handlers) + { + Initialize(); + } + + /// + /// An optional partial-method to perform custom initialization. + /// + partial void CustomInitialize(); + /// + /// Initializes client properties. + /// + private void Initialize() + { + Face = new FaceOperations(this); + Person = new Person(this); + PersonGroup = new PersonGroup(this); + FaceList = new FaceList(this); + BaseUri = "https://{azureRegion}.api.cognitive.microsoft.com/face/v1.0"; + SerializationSettings = new JsonSerializerSettings + { + Formatting = Newtonsoft.Json.Formatting.Indented, + DateFormatHandling = Newtonsoft.Json.DateFormatHandling.IsoDateFormat, + DateTimeZoneHandling = Newtonsoft.Json.DateTimeZoneHandling.Utc, + NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore, + ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Serialize, + ContractResolver = new ReadOnlyJsonContractResolver(), + Converters = new List + { + new Iso8601TimeSpanConverter() + } + }; + DeserializationSettings = new JsonSerializerSettings + { + DateFormatHandling = Newtonsoft.Json.DateFormatHandling.IsoDateFormat, + DateTimeZoneHandling = Newtonsoft.Json.DateTimeZoneHandling.Utc, + NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore, + ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Serialize, + ContractResolver = new ReadOnlyJsonContractResolver(), + Converters = new List + { + new Iso8601TimeSpanConverter() + } + }; + CustomInitialize(); + } + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceList.cs b/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceList.cs new file mode 100644 index 000000000000..8715db57cd79 --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceList.cs @@ -0,0 +1,1400 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.Rest; + using Models; + using Newtonsoft.Json; + using System.Collections; + using System.Collections.Generic; + using System.IO; + using System.Net; + using System.Net.Http; + using System.Threading; + using System.Threading.Tasks; + + /// + /// FaceList operations. + /// + public partial class FaceList : IServiceOperations, IFaceList + { + /// + /// Initializes a new instance of the FaceList class. + /// + /// + /// Reference to the service client. + /// + /// + /// Thrown when a required parameter is null + /// + public FaceList(FaceAPI client) + { + if (client == null) + { + throw new System.ArgumentNullException("client"); + } + Client = client; + } + + /// + /// Gets a reference to the FaceAPI + /// + public FaceAPI Client { get; private set; } + + /// + /// Create an empty face list. Up to 64 face lists are allowed to exist in one + /// subscription. + /// + /// + /// Id referencing a particular face list. + /// + /// + /// Name of the face list, maximum length is 128. + /// + /// + /// Optional user defined data for the face list. Length should not exceed + /// 16KB. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task CreateWithHttpMessagesAsync(string faceListId, string name = default(string), string userData = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.AzureRegion1 == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); + } + if (faceListId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "faceListId"); + } + if (faceListId != null) + { + if (faceListId.Length > 64) + { + throw new ValidationException(ValidationRules.MaxLength, "faceListId", 64); + } + if (!System.Text.RegularExpressions.Regex.IsMatch(faceListId, "^[a-z0-9-_]+$")) + { + throw new ValidationException(ValidationRules.Pattern, "faceListId", "^[a-z0-9-_]+$"); + } + } + if (Client.SubscriptionKey == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); + } + if (name != null) + { + if (name.Length > 128) + { + throw new ValidationException(ValidationRules.MaxLength, "name", 128); + } + } + if (userData != null) + { + if (userData.Length > 16384) + { + throw new ValidationException(ValidationRules.MaxLength, "userData", 16384); + } + } + CreateFaceListRequest body = new CreateFaceListRequest(); + if (name != null || userData != null) + { + body.Name = name; + body.UserData = userData; + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("faceListId", faceListId); + tracingParameters.Add("body", body); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "Create", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "facelists/{faceListId}"; + _url = _url.Replace("{azureRegion}", Client.AzureRegion1); + _url = _url.Replace("{faceListId}", System.Uri.EscapeDataString(faceListId)); + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("PUT"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.SubscriptionKey != null) + { + if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) + { + _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); + } + _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + if(body != null) + { + _requestContent = Rest.Serialization.SafeJsonConvert.SerializeObject(body, Client.SerializationSettings); + _httpRequest.Content = new StringContent(_requestContent, System.Text.Encoding.UTF8); + _httpRequest.Content.Headers.ContentType =System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json; charset=utf-8"); + } + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + /// + /// Retrieve a face list's information. + /// + /// + /// Id referencing a Face List. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task> GetWithHttpMessagesAsync(string faceListId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.AzureRegion1 == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); + } + if (faceListId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "faceListId"); + } + if (faceListId != null) + { + if (faceListId.Length > 64) + { + throw new ValidationException(ValidationRules.MaxLength, "faceListId", 64); + } + if (!System.Text.RegularExpressions.Regex.IsMatch(faceListId, "^[a-z0-9-_]+$")) + { + throw new ValidationException(ValidationRules.Pattern, "faceListId", "^[a-z0-9-_]+$"); + } + } + if (Client.SubscriptionKey == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("faceListId", faceListId); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "Get", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "facelists/{faceListId}"; + _url = _url.Replace("{azureRegion}", Client.AzureRegion1); + _url = _url.Replace("{faceListId}", System.Uri.EscapeDataString(faceListId)); + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("GET"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.SubscriptionKey != null) + { + if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) + { + _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); + } + _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + // Deserialize Response + if ((int)_statusCode == 200) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + } + catch (JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); + } + } + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + /// + /// Update information of a face list. + /// + /// + /// Id referencing a Face List. + /// + /// + /// Name of the face list, maximum length is 128. + /// + /// + /// Optional user defined data for the face list. Length should not exceed + /// 16KB. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task UpdateWithHttpMessagesAsync(string faceListId, string name = default(string), string userData = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.AzureRegion1 == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); + } + if (faceListId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "faceListId"); + } + if (faceListId != null) + { + if (faceListId.Length > 64) + { + throw new ValidationException(ValidationRules.MaxLength, "faceListId", 64); + } + if (!System.Text.RegularExpressions.Regex.IsMatch(faceListId, "^[a-z0-9-_]+$")) + { + throw new ValidationException(ValidationRules.Pattern, "faceListId", "^[a-z0-9-_]+$"); + } + } + if (Client.SubscriptionKey == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); + } + if (name != null) + { + if (name.Length > 128) + { + throw new ValidationException(ValidationRules.MaxLength, "name", 128); + } + } + if (userData != null) + { + if (userData.Length > 16384) + { + throw new ValidationException(ValidationRules.MaxLength, "userData", 16384); + } + } + CreateFaceListRequest body = new CreateFaceListRequest(); + if (name != null || userData != null) + { + body.Name = name; + body.UserData = userData; + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("faceListId", faceListId); + tracingParameters.Add("body", body); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "Update", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "facelists/{faceListId}"; + _url = _url.Replace("{azureRegion}", Client.AzureRegion1); + _url = _url.Replace("{faceListId}", System.Uri.EscapeDataString(faceListId)); + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("PATCH"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.SubscriptionKey != null) + { + if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) + { + _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); + } + _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + if(body != null) + { + _requestContent = Rest.Serialization.SafeJsonConvert.SerializeObject(body, Client.SerializationSettings); + _httpRequest.Content = new StringContent(_requestContent, System.Text.Encoding.UTF8); + _httpRequest.Content.Headers.ContentType =System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json; charset=utf-8"); + } + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + /// + /// Delete an existing face list according to faceListId. Persisted face images + /// in the face list will also be deleted. + /// + /// + /// Id referencing a Face List. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task DeleteWithHttpMessagesAsync(string faceListId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.AzureRegion1 == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); + } + if (faceListId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "faceListId"); + } + if (faceListId != null) + { + if (faceListId.Length > 64) + { + throw new ValidationException(ValidationRules.MaxLength, "faceListId", 64); + } + if (!System.Text.RegularExpressions.Regex.IsMatch(faceListId, "^[a-z0-9-_]+$")) + { + throw new ValidationException(ValidationRules.Pattern, "faceListId", "^[a-z0-9-_]+$"); + } + } + if (Client.SubscriptionKey == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("faceListId", faceListId); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "Delete", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "facelists/{faceListId}"; + _url = _url.Replace("{azureRegion}", Client.AzureRegion1); + _url = _url.Replace("{faceListId}", System.Uri.EscapeDataString(faceListId)); + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("DELETE"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.SubscriptionKey != null) + { + if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) + { + _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); + } + _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + /// + /// Retrieve information about all existing face lists. Only faceListId, name + /// and userData will be returned. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task>> ListWithHttpMessagesAsync(Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.AzureRegion1 == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); + } + if (Client.SubscriptionKey == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "List", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "facelists"; + _url = _url.Replace("{azureRegion}", Client.AzureRegion1); + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("GET"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.SubscriptionKey != null) + { + if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) + { + _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); + } + _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse>(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + // Deserialize Response + if ((int)_statusCode == 200) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject>(_responseContent, Client.DeserializationSettings); + } + catch (JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); + } + } + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + /// + /// Delete an existing face from a face list (given by a persisitedFaceId and a + /// faceListId). Persisted image related to the face will also be deleted. + /// + /// + /// faceListId of an existing face list. + /// + /// + /// persistedFaceId of an existing face. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task DeleteFaceWithHttpMessagesAsync(string faceListId, string persistedFaceId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.AzureRegion1 == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); + } + if (faceListId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "faceListId"); + } + if (faceListId != null) + { + if (faceListId.Length > 64) + { + throw new ValidationException(ValidationRules.MaxLength, "faceListId", 64); + } + if (!System.Text.RegularExpressions.Regex.IsMatch(faceListId, "^[a-z0-9-_]+$")) + { + throw new ValidationException(ValidationRules.Pattern, "faceListId", "^[a-z0-9-_]+$"); + } + } + if (persistedFaceId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "persistedFaceId"); + } + if (Client.SubscriptionKey == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("faceListId", faceListId); + tracingParameters.Add("persistedFaceId", persistedFaceId); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "DeleteFace", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "facelists/{faceListId}/persistedFaces/{persistedFaceId}"; + _url = _url.Replace("{azureRegion}", Client.AzureRegion1); + _url = _url.Replace("{faceListId}", System.Uri.EscapeDataString(faceListId)); + _url = _url.Replace("{persistedFaceId}", System.Uri.EscapeDataString(persistedFaceId)); + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("DELETE"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.SubscriptionKey != null) + { + if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) + { + _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); + } + _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + /// + /// Add a face to a face list. The input face is specified as an image with a + /// targetFace rectangle. It returns a persistedFaceId representing the added + /// face, and persistedFaceId will not expire. + /// + /// + /// Id referencing a Face List. + /// + /// + /// User-specified data about the face list for any purpose. The maximum + /// length is 1KB. + /// + /// + /// A face rectangle to specify the target face to be added into the face list, + /// in the format of "targetFace=left,top,width,height". E.g. + /// "targetFace=10,10,100,100". If there is more than one face in the image, + /// targetFace is required to specify which face to add. No targetFace means + /// there is only one face detected in the entire image. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task AddFaceWithHttpMessagesAsync(string faceListId, string userData = default(string), string targetFace = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.AzureRegion1 == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); + } + if (faceListId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "faceListId"); + } + if (faceListId != null) + { + if (faceListId.Length > 64) + { + throw new ValidationException(ValidationRules.MaxLength, "faceListId", 64); + } + if (!System.Text.RegularExpressions.Regex.IsMatch(faceListId, "^[a-z0-9-_]+$")) + { + throw new ValidationException(ValidationRules.Pattern, "faceListId", "^[a-z0-9-_]+$"); + } + } + if (Client.SubscriptionKey == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("faceListId", faceListId); + tracingParameters.Add("userData", userData); + tracingParameters.Add("targetFace", targetFace); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "AddFace", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "facelists/{faceListId}/persistedFaces"; + _url = _url.Replace("{azureRegion}", Client.AzureRegion1); + _url = _url.Replace("{faceListId}", System.Uri.EscapeDataString(faceListId)); + List _queryParameters = new List(); + if (userData != null) + { + _queryParameters.Add(string.Format("userData={0}", System.Uri.EscapeDataString(userData))); + } + if (targetFace != null) + { + _queryParameters.Add(string.Format("targetFace={0}", System.Uri.EscapeDataString(targetFace))); + } + if (_queryParameters.Count > 0) + { + _url += "?" + string.Join("&", _queryParameters); + } + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("POST"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.SubscriptionKey != null) + { + if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) + { + _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); + } + _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + /// + /// Add a face to a face list. The input face is specified as an image with a + /// targetFace rectangle. It returns a persistedFaceId representing the added + /// face, and persistedFaceId will not expire. + /// + /// + /// Id referencing a Face List. + /// + /// + /// User-specified data about the face list for any purpose. The maximum + /// length is 1KB. + /// + /// + /// A face rectangle to specify the target face to be added into the face list, + /// in the format of "targetFace=left,top,width,height". E.g. + /// "targetFace=10,10,100,100". If there is more than one face in the image, + /// targetFace is required to specify which face to add. No targetFace means + /// there is only one face detected in the entire image. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task AddFaceFromStreamWithHttpMessagesAsync(string faceListId, string userData = default(string), string targetFace = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.AzureRegion1 == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); + } + if (faceListId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "faceListId"); + } + if (faceListId != null) + { + if (faceListId.Length > 64) + { + throw new ValidationException(ValidationRules.MaxLength, "faceListId", 64); + } + if (!System.Text.RegularExpressions.Regex.IsMatch(faceListId, "^[a-z0-9-_]+$")) + { + throw new ValidationException(ValidationRules.Pattern, "faceListId", "^[a-z0-9-_]+$"); + } + } + if (Client.SubscriptionKey == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("faceListId", faceListId); + tracingParameters.Add("userData", userData); + tracingParameters.Add("targetFace", targetFace); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "AddFaceFromStream", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "facelists/{faceListId}/persistedFaces"; + _url = _url.Replace("{azureRegion}", Client.AzureRegion1); + _url = _url.Replace("{faceListId}", System.Uri.EscapeDataString(faceListId)); + List _queryParameters = new List(); + if (userData != null) + { + _queryParameters.Add(string.Format("userData={0}", System.Uri.EscapeDataString(userData))); + } + if (targetFace != null) + { + _queryParameters.Add(string.Format("targetFace={0}", System.Uri.EscapeDataString(targetFace))); + } + if (_queryParameters.Count > 0) + { + _url += "?" + string.Join("&", _queryParameters); + } + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("POST"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.SubscriptionKey != null) + { + if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) + { + _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); + } + _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceListExtensions.cs b/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceListExtensions.cs new file mode 100644 index 000000000000..90a316dad1f6 --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceListExtensions.cs @@ -0,0 +1,363 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Models; + using System.Collections; + using System.Collections.Generic; + using System.Threading; + using System.Threading.Tasks; + + /// + /// Extension methods for FaceList. + /// + public static partial class FaceListExtensions + { + /// + /// Create an empty face list. Up to 64 face lists are allowed to exist in one + /// subscription. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Id referencing a particular face list. + /// + /// + /// Name of the face list, maximum length is 128. + /// + /// + /// Optional user defined data for the face list. Length should not exceed + /// 16KB. + /// + public static void Create(this IFaceList operations, string faceListId, string name = default(string), string userData = default(string)) + { + operations.CreateAsync(faceListId, name, userData).GetAwaiter().GetResult(); + } + + /// + /// Create an empty face list. Up to 64 face lists are allowed to exist in one + /// subscription. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Id referencing a particular face list. + /// + /// + /// Name of the face list, maximum length is 128. + /// + /// + /// Optional user defined data for the face list. Length should not exceed + /// 16KB. + /// + /// + /// The cancellation token. + /// + public static async Task CreateAsync(this IFaceList operations, string faceListId, string name = default(string), string userData = default(string), CancellationToken cancellationToken = default(CancellationToken)) + { + (await operations.CreateWithHttpMessagesAsync(faceListId, name, userData, null, cancellationToken).ConfigureAwait(false)).Dispose(); + } + + /// + /// Retrieve a face list's information. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Id referencing a Face List. + /// + public static GetFaceListResult Get(this IFaceList operations, string faceListId) + { + return operations.GetAsync(faceListId).GetAwaiter().GetResult(); + } + + /// + /// Retrieve a face list's information. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Id referencing a Face List. + /// + /// + /// The cancellation token. + /// + public static async Task GetAsync(this IFaceList operations, string faceListId, CancellationToken cancellationToken = default(CancellationToken)) + { + using (var _result = await operations.GetWithHttpMessagesAsync(faceListId, null, cancellationToken).ConfigureAwait(false)) + { + return _result.Body; + } + } + + /// + /// Update information of a face list. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Id referencing a Face List. + /// + /// + /// Name of the face list, maximum length is 128. + /// + /// + /// Optional user defined data for the face list. Length should not exceed + /// 16KB. + /// + public static void Update(this IFaceList operations, string faceListId, string name = default(string), string userData = default(string)) + { + operations.UpdateAsync(faceListId, name, userData).GetAwaiter().GetResult(); + } + + /// + /// Update information of a face list. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Id referencing a Face List. + /// + /// + /// Name of the face list, maximum length is 128. + /// + /// + /// Optional user defined data for the face list. Length should not exceed + /// 16KB. + /// + /// + /// The cancellation token. + /// + public static async Task UpdateAsync(this IFaceList operations, string faceListId, string name = default(string), string userData = default(string), CancellationToken cancellationToken = default(CancellationToken)) + { + (await operations.UpdateWithHttpMessagesAsync(faceListId, name, userData, null, cancellationToken).ConfigureAwait(false)).Dispose(); + } + + /// + /// Delete an existing face list according to faceListId. Persisted face images + /// in the face list will also be deleted. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Id referencing a Face List. + /// + public static void Delete(this IFaceList operations, string faceListId) + { + operations.DeleteAsync(faceListId).GetAwaiter().GetResult(); + } + + /// + /// Delete an existing face list according to faceListId. Persisted face images + /// in the face list will also be deleted. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Id referencing a Face List. + /// + /// + /// The cancellation token. + /// + public static async Task DeleteAsync(this IFaceList operations, string faceListId, CancellationToken cancellationToken = default(CancellationToken)) + { + (await operations.DeleteWithHttpMessagesAsync(faceListId, null, cancellationToken).ConfigureAwait(false)).Dispose(); + } + + /// + /// Retrieve information about all existing face lists. Only faceListId, name + /// and userData will be returned. + /// + /// + /// The operations group for this extension method. + /// + public static IList List(this IFaceList operations) + { + return operations.ListAsync().GetAwaiter().GetResult(); + } + + /// + /// Retrieve information about all existing face lists. Only faceListId, name + /// and userData will be returned. + /// + /// + /// The operations group for this extension method. + /// + /// + /// The cancellation token. + /// + public static async Task> ListAsync(this IFaceList operations, CancellationToken cancellationToken = default(CancellationToken)) + { + using (var _result = await operations.ListWithHttpMessagesAsync(null, cancellationToken).ConfigureAwait(false)) + { + return _result.Body; + } + } + + /// + /// Delete an existing face from a face list (given by a persisitedFaceId and a + /// faceListId). Persisted image related to the face will also be deleted. + /// + /// + /// The operations group for this extension method. + /// + /// + /// faceListId of an existing face list. + /// + /// + /// persistedFaceId of an existing face. + /// + public static void DeleteFace(this IFaceList operations, string faceListId, string persistedFaceId) + { + operations.DeleteFaceAsync(faceListId, persistedFaceId).GetAwaiter().GetResult(); + } + + /// + /// Delete an existing face from a face list (given by a persisitedFaceId and a + /// faceListId). Persisted image related to the face will also be deleted. + /// + /// + /// The operations group for this extension method. + /// + /// + /// faceListId of an existing face list. + /// + /// + /// persistedFaceId of an existing face. + /// + /// + /// The cancellation token. + /// + public static async Task DeleteFaceAsync(this IFaceList operations, string faceListId, string persistedFaceId, CancellationToken cancellationToken = default(CancellationToken)) + { + (await operations.DeleteFaceWithHttpMessagesAsync(faceListId, persistedFaceId, null, cancellationToken).ConfigureAwait(false)).Dispose(); + } + + /// + /// Add a face to a face list. The input face is specified as an image with a + /// targetFace rectangle. It returns a persistedFaceId representing the added + /// face, and persistedFaceId will not expire. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Id referencing a Face List. + /// + /// + /// User-specified data about the face list for any purpose. The maximum + /// length is 1KB. + /// + /// + /// A face rectangle to specify the target face to be added into the face list, + /// in the format of "targetFace=left,top,width,height". E.g. + /// "targetFace=10,10,100,100". If there is more than one face in the image, + /// targetFace is required to specify which face to add. No targetFace means + /// there is only one face detected in the entire image. + /// + public static void AddFace(this IFaceList operations, string faceListId, string userData = default(string), string targetFace = default(string)) + { + operations.AddFaceAsync(faceListId, userData, targetFace).GetAwaiter().GetResult(); + } + + /// + /// Add a face to a face list. The input face is specified as an image with a + /// targetFace rectangle. It returns a persistedFaceId representing the added + /// face, and persistedFaceId will not expire. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Id referencing a Face List. + /// + /// + /// User-specified data about the face list for any purpose. The maximum + /// length is 1KB. + /// + /// + /// A face rectangle to specify the target face to be added into the face list, + /// in the format of "targetFace=left,top,width,height". E.g. + /// "targetFace=10,10,100,100". If there is more than one face in the image, + /// targetFace is required to specify which face to add. No targetFace means + /// there is only one face detected in the entire image. + /// + /// + /// The cancellation token. + /// + public static async Task AddFaceAsync(this IFaceList operations, string faceListId, string userData = default(string), string targetFace = default(string), CancellationToken cancellationToken = default(CancellationToken)) + { + (await operations.AddFaceWithHttpMessagesAsync(faceListId, userData, targetFace, null, cancellationToken).ConfigureAwait(false)).Dispose(); + } + + /// + /// Add a face to a face list. The input face is specified as an image with a + /// targetFace rectangle. It returns a persistedFaceId representing the added + /// face, and persistedFaceId will not expire. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Id referencing a Face List. + /// + /// + /// User-specified data about the face list for any purpose. The maximum + /// length is 1KB. + /// + /// + /// A face rectangle to specify the target face to be added into the face list, + /// in the format of "targetFace=left,top,width,height". E.g. + /// "targetFace=10,10,100,100". If there is more than one face in the image, + /// targetFace is required to specify which face to add. No targetFace means + /// there is only one face detected in the entire image. + /// + public static void AddFaceFromStream(this IFaceList operations, string faceListId, string userData = default(string), string targetFace = default(string)) + { + operations.AddFaceFromStreamAsync(faceListId, userData, targetFace).GetAwaiter().GetResult(); + } + + /// + /// Add a face to a face list. The input face is specified as an image with a + /// targetFace rectangle. It returns a persistedFaceId representing the added + /// face, and persistedFaceId will not expire. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Id referencing a Face List. + /// + /// + /// User-specified data about the face list for any purpose. The maximum + /// length is 1KB. + /// + /// + /// A face rectangle to specify the target face to be added into the face list, + /// in the format of "targetFace=left,top,width,height". E.g. + /// "targetFace=10,10,100,100". If there is more than one face in the image, + /// targetFace is required to specify which face to add. No targetFace means + /// there is only one face detected in the entire image. + /// + /// + /// The cancellation token. + /// + public static async Task AddFaceFromStreamAsync(this IFaceList operations, string faceListId, string userData = default(string), string targetFace = default(string), CancellationToken cancellationToken = default(CancellationToken)) + { + (await operations.AddFaceFromStreamWithHttpMessagesAsync(faceListId, userData, targetFace, null, cancellationToken).ConfigureAwait(false)).Dispose(); + } + + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceOperations.cs b/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceOperations.cs new file mode 100644 index 000000000000..95954a94fc0e --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceOperations.cs @@ -0,0 +1,1263 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.Rest; + using Models; + using Newtonsoft.Json; + using System.Collections; + using System.Collections.Generic; + using System.IO; + using System.Net; + using System.Net.Http; + using System.Threading; + using System.Threading.Tasks; + + /// + /// FaceOperations operations. + /// + public partial class FaceOperations : IServiceOperations, IFaceOperations + { + /// + /// Initializes a new instance of the FaceOperations class. + /// + /// + /// Reference to the service client. + /// + /// + /// Thrown when a required parameter is null + /// + public FaceOperations(FaceAPI client) + { + if (client == null) + { + throw new System.ArgumentNullException("client"); + } + Client = client; + } + + /// + /// Gets a reference to the FaceAPI + /// + public FaceAPI Client { get; private set; } + + /// + /// Given query face's faceId, find the similar-looking faces from a faceId + /// array or a faceListId. + /// + /// + /// FaceId of the query face. User needs to call Face - Detect first to get a + /// valid faceId. Note that this faceId is not persisted and will expire 24 + /// hours after the detection call + /// + /// + /// An existing user-specified unique candidate face list, created in Face List + /// - Create a Face List. Face list contains a set of persistedFaceIds which + /// are persisted and will never expire. Parameter faceListId and faceIds + /// should not be provided at the same time + /// + /// + /// An array of candidate faceIds. All of them are created by Face - Detect and + /// the faceIds will expire 24 hours after the detection call. + /// + /// + /// The number of top similar faces returned. The valid range is [1, 1000]. + /// + /// + /// Similar face searching mode. It can be "matchPerson" or "matchFace". + /// Possible values include: 'matchPerson', 'matchFace' + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task>> FindSimilarWithHttpMessagesAsync(string faceId, string faceListId = default(string), IList faceIds = default(IList), int? maxNumOfCandidatesReturned = 20, string mode = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.AzureRegion1 == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); + } + if (Client.SubscriptionKey == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); + } + if (faceId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "faceId"); + } + if (faceId != null) + { + if (faceId.Length > 64) + { + throw new ValidationException(ValidationRules.MaxLength, "faceId", 64); + } + } + if (faceListId != null) + { + if (faceListId.Length > 64) + { + throw new ValidationException(ValidationRules.MaxLength, "faceListId", 64); + } + if (!System.Text.RegularExpressions.Regex.IsMatch(faceListId, "^[a-z0-9-_]+$")) + { + throw new ValidationException(ValidationRules.Pattern, "faceListId", "^[a-z0-9-_]+$"); + } + } + if (faceIds != null) + { + if (faceIds.Count > 1000) + { + throw new ValidationException(ValidationRules.MaxItems, "faceIds", 1000); + } + } + if (maxNumOfCandidatesReturned > 1000) + { + throw new ValidationException(ValidationRules.InclusiveMaximum, "maxNumOfCandidatesReturned", 1000); + } + if (maxNumOfCandidatesReturned < 1) + { + throw new ValidationException(ValidationRules.InclusiveMinimum, "maxNumOfCandidatesReturned", 1); + } + FindSimilarRequest body = new FindSimilarRequest(); + if (faceId != null || faceListId != null || faceIds != null || maxNumOfCandidatesReturned != null || mode != null) + { + body.FaceId = faceId; + body.FaceListId = faceListId; + body.FaceIds = faceIds; + body.MaxNumOfCandidatesReturned = maxNumOfCandidatesReturned; + body.Mode = mode; + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("body", body); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "FindSimilar", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "findsimilars"; + _url = _url.Replace("{azureRegion}", Client.AzureRegion1); + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("POST"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.SubscriptionKey != null) + { + if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) + { + _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); + } + _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + if(body != null) + { + _requestContent = Rest.Serialization.SafeJsonConvert.SerializeObject(body, Client.SerializationSettings); + _httpRequest.Content = new StringContent(_requestContent, System.Text.Encoding.UTF8); + _httpRequest.Content.Headers.ContentType =System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json; charset=utf-8"); + } + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse>(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + // Deserialize Response + if ((int)_statusCode == 200) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject>(_responseContent, Client.DeserializationSettings); + } + catch (JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); + } + } + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + /// + /// Divide candidate faces into groups based on face similarity. + /// + /// + /// Array of candidate faceId created by Face - Detect. The maximum is 1000 + /// faces + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task> GroupWithHttpMessagesAsync(IList faceIds, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.AzureRegion1 == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); + } + if (Client.SubscriptionKey == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); + } + if (faceIds == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "faceIds"); + } + if (faceIds != null) + { + if (faceIds.Count > 1000) + { + throw new ValidationException(ValidationRules.MaxItems, "faceIds", 1000); + } + } + GroupRequest body = new GroupRequest(); + if (faceIds != null) + { + body.FaceIds = faceIds; + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("body", body); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "Group", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "group"; + _url = _url.Replace("{azureRegion}", Client.AzureRegion1); + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("POST"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.SubscriptionKey != null) + { + if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) + { + _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); + } + _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + if(body != null) + { + _requestContent = Rest.Serialization.SafeJsonConvert.SerializeObject(body, Client.SerializationSettings); + _httpRequest.Content = new StringContent(_requestContent, System.Text.Encoding.UTF8); + _httpRequest.Content.Headers.ContentType =System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json; charset=utf-8"); + } + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + // Deserialize Response + if ((int)_statusCode == 200) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + } + catch (JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); + } + } + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + /// + /// Identify unknown faces from a person group. + /// + /// + /// personGroupId of the target person group, created by PersonGroups.Create + /// + /// + /// Array of candidate faceId created by Face - Detect. + /// + /// + /// The number of top similar faces returned. + /// + /// + /// Confidence threshold of identification, used to judge whether one face + /// belong to one person. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task>> IdentifyWithHttpMessagesAsync(string personGroupId, IList faceIds, int? maxNumOfCandidatesReturned = 1, double? confidenceThreshold = default(double?), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.AzureRegion1 == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); + } + if (Client.SubscriptionKey == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); + } + if (personGroupId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "personGroupId"); + } + if (faceIds == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "faceIds"); + } + if (faceIds != null) + { + if (faceIds.Count > 1000) + { + throw new ValidationException(ValidationRules.MaxItems, "faceIds", 1000); + } + } + if (maxNumOfCandidatesReturned > 1000) + { + throw new ValidationException(ValidationRules.InclusiveMaximum, "maxNumOfCandidatesReturned", 1000); + } + if (maxNumOfCandidatesReturned < 1) + { + throw new ValidationException(ValidationRules.InclusiveMinimum, "maxNumOfCandidatesReturned", 1); + } + if (confidenceThreshold > 1) + { + throw new ValidationException(ValidationRules.InclusiveMaximum, "confidenceThreshold", 1); + } + if (confidenceThreshold < 0) + { + throw new ValidationException(ValidationRules.InclusiveMinimum, "confidenceThreshold", 0); + } + IdentifyRequest body = new IdentifyRequest(); + if (personGroupId != null || faceIds != null || maxNumOfCandidatesReturned != null || confidenceThreshold != null) + { + body.PersonGroupId = personGroupId; + body.FaceIds = faceIds; + body.MaxNumOfCandidatesReturned = maxNumOfCandidatesReturned; + body.ConfidenceThreshold = confidenceThreshold; + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("body", body); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "Identify", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "identify"; + _url = _url.Replace("{azureRegion}", Client.AzureRegion1); + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("POST"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.SubscriptionKey != null) + { + if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) + { + _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); + } + _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + if(body != null) + { + _requestContent = Rest.Serialization.SafeJsonConvert.SerializeObject(body, Client.SerializationSettings); + _httpRequest.Content = new StringContent(_requestContent, System.Text.Encoding.UTF8); + _httpRequest.Content.Headers.ContentType =System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json; charset=utf-8"); + } + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse>(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + // Deserialize Response + if ((int)_statusCode == 200) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject>(_responseContent, Client.DeserializationSettings); + } + catch (JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); + } + } + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + /// + /// Verify whether two faces belong to a same person or whether one face + /// belongs to a person. + /// + /// + /// faceId the face, comes from Face - Detect + /// + /// + /// Specify a certain person in a person group. personId is created in + /// Persons.Create. + /// + /// + /// Using existing personGroupId and personId for fast loading a specified + /// person. personGroupId is created in Person Groups.Create. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task> VerifyWithHttpMessagesAsync(string faceId, string personId, string personGroupId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.AzureRegion1 == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); + } + if (Client.SubscriptionKey == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); + } + if (faceId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "faceId"); + } + if (faceId != null) + { + if (faceId.Length > 64) + { + throw new ValidationException(ValidationRules.MaxLength, "faceId", 64); + } + } + if (personId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "personId"); + } + if (personGroupId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "personGroupId"); + } + VerifyRequest body = new VerifyRequest(); + if (faceId != null || personId != null || personGroupId != null) + { + body.FaceId = faceId; + body.PersonId = personId; + body.PersonGroupId = personGroupId; + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("body", body); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "Verify", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "verify"; + _url = _url.Replace("{azureRegion}", Client.AzureRegion1); + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("POST"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.SubscriptionKey != null) + { + if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) + { + _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); + } + _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + if(body != null) + { + _requestContent = Rest.Serialization.SafeJsonConvert.SerializeObject(body, Client.SerializationSettings); + _httpRequest.Content = new StringContent(_requestContent, System.Text.Encoding.UTF8); + _httpRequest.Content.Headers.ContentType =System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json; charset=utf-8"); + } + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + // Deserialize Response + if ((int)_statusCode == 200) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + } + catch (JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); + } + } + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + /// + /// Detect human faces in an image and returns face locations, and optionally + /// with faceIds, landmarks, and attributes. + /// + /// + /// + /// + /// A value indicating whether the operation should return faceIds of detected + /// faces. + /// + /// + /// A value indicating whether the operation should return landmarks of the + /// detected faces. + /// + /// + /// Analyze and return the one or more specified face attributes in the + /// comma-separated string like "returnFaceAttributes=age,gender". Supported + /// face attributes include age, gender, headPose, smile, facialHair, glasses + /// and emotion. Note that each face attribute analysis has additional + /// computational and time cost. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task>> DetectWithHttpMessagesAsync(string url, bool? returnFaceId = true, bool? returnFaceLandmarks = false, string returnFaceAttributes = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.AzureRegion1 == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); + } + if (Client.SubscriptionKey == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); + } + if (url == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "url"); + } + ImageUrl imageUrl = new ImageUrl(); + if (url != null) + { + imageUrl.Url = url; + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("returnFaceId", returnFaceId); + tracingParameters.Add("returnFaceLandmarks", returnFaceLandmarks); + tracingParameters.Add("returnFaceAttributes", returnFaceAttributes); + tracingParameters.Add("imageUrl", imageUrl); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "Detect", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "detect"; + _url = _url.Replace("{azureRegion}", Client.AzureRegion1); + List _queryParameters = new List(); + if (returnFaceId != null) + { + _queryParameters.Add(string.Format("returnFaceId={0}", System.Uri.EscapeDataString(Rest.Serialization.SafeJsonConvert.SerializeObject(returnFaceId, Client.SerializationSettings).Trim('"')))); + } + if (returnFaceLandmarks != null) + { + _queryParameters.Add(string.Format("returnFaceLandmarks={0}", System.Uri.EscapeDataString(Rest.Serialization.SafeJsonConvert.SerializeObject(returnFaceLandmarks, Client.SerializationSettings).Trim('"')))); + } + if (returnFaceAttributes != null) + { + _queryParameters.Add(string.Format("returnFaceAttributes={0}", System.Uri.EscapeDataString(returnFaceAttributes))); + } + if (_queryParameters.Count > 0) + { + _url += "?" + string.Join("&", _queryParameters); + } + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("POST"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.SubscriptionKey != null) + { + if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) + { + _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); + } + _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + if(imageUrl != null) + { + _requestContent = Rest.Serialization.SafeJsonConvert.SerializeObject(imageUrl, Client.SerializationSettings); + _httpRequest.Content = new StringContent(_requestContent, System.Text.Encoding.UTF8); + _httpRequest.Content.Headers.ContentType =System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json; charset=utf-8"); + } + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse>(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + // Deserialize Response + if ((int)_statusCode == 200) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject>(_responseContent, Client.DeserializationSettings); + } + catch (JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); + } + } + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + /// + /// Detect human faces in an image and returns face locations, and optionally + /// with faceIds, landmarks, and attributes. + /// + /// + /// An image stream. + /// + /// + /// A value indicating whether the operation should return faceIds of detected + /// faces. + /// + /// + /// A value indicating whether the operation should return landmarks of the + /// detected faces. + /// + /// + /// Analyze and return the one or more specified face attributes in the + /// comma-separated string like "returnFaceAttributes=age,gender". Supported + /// face attributes include age, gender, headPose, smile, facialHair, glasses + /// and emotion. Note that each face attribute analysis has additional + /// computational and time cost. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task>> DetectInStreamWithHttpMessagesAsync(Stream image, bool? returnFaceId = true, bool? returnFaceLandmarks = false, string returnFaceAttributes = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.AzureRegion1 == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); + } + if (Client.SubscriptionKey == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); + } + if (image == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "image"); + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("returnFaceId", returnFaceId); + tracingParameters.Add("returnFaceLandmarks", returnFaceLandmarks); + tracingParameters.Add("returnFaceAttributes", returnFaceAttributes); + tracingParameters.Add("image", image); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "DetectInStream", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "detect"; + _url = _url.Replace("{azureRegion}", Client.AzureRegion1); + List _queryParameters = new List(); + if (returnFaceId != null) + { + _queryParameters.Add(string.Format("returnFaceId={0}", System.Uri.EscapeDataString(Rest.Serialization.SafeJsonConvert.SerializeObject(returnFaceId, Client.SerializationSettings).Trim('"')))); + } + if (returnFaceLandmarks != null) + { + _queryParameters.Add(string.Format("returnFaceLandmarks={0}", System.Uri.EscapeDataString(Rest.Serialization.SafeJsonConvert.SerializeObject(returnFaceLandmarks, Client.SerializationSettings).Trim('"')))); + } + if (returnFaceAttributes != null) + { + _queryParameters.Add(string.Format("returnFaceAttributes={0}", System.Uri.EscapeDataString(returnFaceAttributes))); + } + if (_queryParameters.Count > 0) + { + _url += "?" + string.Join("&", _queryParameters); + } + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("POST"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.SubscriptionKey != null) + { + if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) + { + _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); + } + _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + if(image == null) + { + throw new System.ArgumentNullException("image"); + } + if (image != null && image != Stream.Null) + { + _httpRequest.Content = new StreamContent(image); + _httpRequest.Content.Headers.ContentType =System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/octet-stream"); + } + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse>(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + // Deserialize Response + if ((int)_statusCode == 200) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject>(_responseContent, Client.DeserializationSettings); + } + catch (JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); + } + } + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceOperationsExtensions.cs b/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceOperationsExtensions.cs new file mode 100644 index 000000000000..3024140abfb7 --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceOperationsExtensions.cs @@ -0,0 +1,368 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Models; + using System.Collections; + using System.Collections.Generic; + using System.IO; + using System.Threading; + using System.Threading.Tasks; + + /// + /// Extension methods for FaceOperations. + /// + public static partial class FaceOperationsExtensions + { + /// + /// Given query face's faceId, find the similar-looking faces from a faceId + /// array or a faceListId. + /// + /// + /// The operations group for this extension method. + /// + /// + /// FaceId of the query face. User needs to call Face - Detect first to get a + /// valid faceId. Note that this faceId is not persisted and will expire 24 + /// hours after the detection call + /// + /// + /// An existing user-specified unique candidate face list, created in Face List + /// - Create a Face List. Face list contains a set of persistedFaceIds which + /// are persisted and will never expire. Parameter faceListId and faceIds + /// should not be provided at the same time + /// + /// + /// An array of candidate faceIds. All of them are created by Face - Detect and + /// the faceIds will expire 24 hours after the detection call. + /// + /// + /// The number of top similar faces returned. The valid range is [1, 1000]. + /// + /// + /// Similar face searching mode. It can be "matchPerson" or "matchFace". + /// Possible values include: 'matchPerson', 'matchFace' + /// + public static IList FindSimilar(this IFaceOperations operations, string faceId, string faceListId = default(string), IList faceIds = default(IList), int? maxNumOfCandidatesReturned = 20, string mode = default(string)) + { + return operations.FindSimilarAsync(faceId, faceListId, faceIds, maxNumOfCandidatesReturned, mode).GetAwaiter().GetResult(); + } + + /// + /// Given query face's faceId, find the similar-looking faces from a faceId + /// array or a faceListId. + /// + /// + /// The operations group for this extension method. + /// + /// + /// FaceId of the query face. User needs to call Face - Detect first to get a + /// valid faceId. Note that this faceId is not persisted and will expire 24 + /// hours after the detection call + /// + /// + /// An existing user-specified unique candidate face list, created in Face List + /// - Create a Face List. Face list contains a set of persistedFaceIds which + /// are persisted and will never expire. Parameter faceListId and faceIds + /// should not be provided at the same time + /// + /// + /// An array of candidate faceIds. All of them are created by Face - Detect and + /// the faceIds will expire 24 hours after the detection call. + /// + /// + /// The number of top similar faces returned. The valid range is [1, 1000]. + /// + /// + /// Similar face searching mode. It can be "matchPerson" or "matchFace". + /// Possible values include: 'matchPerson', 'matchFace' + /// + /// + /// The cancellation token. + /// + public static async Task> FindSimilarAsync(this IFaceOperations operations, string faceId, string faceListId = default(string), IList faceIds = default(IList), int? maxNumOfCandidatesReturned = 20, string mode = default(string), CancellationToken cancellationToken = default(CancellationToken)) + { + using (var _result = await operations.FindSimilarWithHttpMessagesAsync(faceId, faceListId, faceIds, maxNumOfCandidatesReturned, mode, null, cancellationToken).ConfigureAwait(false)) + { + return _result.Body; + } + } + + /// + /// Divide candidate faces into groups based on face similarity. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Array of candidate faceId created by Face - Detect. The maximum is 1000 + /// faces + /// + public static GroupResponse Group(this IFaceOperations operations, IList faceIds) + { + return operations.GroupAsync(faceIds).GetAwaiter().GetResult(); + } + + /// + /// Divide candidate faces into groups based on face similarity. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Array of candidate faceId created by Face - Detect. The maximum is 1000 + /// faces + /// + /// + /// The cancellation token. + /// + public static async Task GroupAsync(this IFaceOperations operations, IList faceIds, CancellationToken cancellationToken = default(CancellationToken)) + { + using (var _result = await operations.GroupWithHttpMessagesAsync(faceIds, null, cancellationToken).ConfigureAwait(false)) + { + return _result.Body; + } + } + + /// + /// Identify unknown faces from a person group. + /// + /// + /// The operations group for this extension method. + /// + /// + /// personGroupId of the target person group, created by PersonGroups.Create + /// + /// + /// Array of candidate faceId created by Face - Detect. + /// + /// + /// The number of top similar faces returned. + /// + /// + /// Confidence threshold of identification, used to judge whether one face + /// belong to one person. + /// + public static IList Identify(this IFaceOperations operations, string personGroupId, IList faceIds, int? maxNumOfCandidatesReturned = 1, double? confidenceThreshold = default(double?)) + { + return operations.IdentifyAsync(personGroupId, faceIds, maxNumOfCandidatesReturned, confidenceThreshold).GetAwaiter().GetResult(); + } + + /// + /// Identify unknown faces from a person group. + /// + /// + /// The operations group for this extension method. + /// + /// + /// personGroupId of the target person group, created by PersonGroups.Create + /// + /// + /// Array of candidate faceId created by Face - Detect. + /// + /// + /// The number of top similar faces returned. + /// + /// + /// Confidence threshold of identification, used to judge whether one face + /// belong to one person. + /// + /// + /// The cancellation token. + /// + public static async Task> IdentifyAsync(this IFaceOperations operations, string personGroupId, IList faceIds, int? maxNumOfCandidatesReturned = 1, double? confidenceThreshold = default(double?), CancellationToken cancellationToken = default(CancellationToken)) + { + using (var _result = await operations.IdentifyWithHttpMessagesAsync(personGroupId, faceIds, maxNumOfCandidatesReturned, confidenceThreshold, null, cancellationToken).ConfigureAwait(false)) + { + return _result.Body; + } + } + + /// + /// Verify whether two faces belong to a same person or whether one face + /// belongs to a person. + /// + /// + /// The operations group for this extension method. + /// + /// + /// faceId the face, comes from Face - Detect + /// + /// + /// Specify a certain person in a person group. personId is created in + /// Persons.Create. + /// + /// + /// Using existing personGroupId and personId for fast loading a specified + /// person. personGroupId is created in Person Groups.Create. + /// + public static VerifyResult Verify(this IFaceOperations operations, string faceId, string personId, string personGroupId) + { + return operations.VerifyAsync(faceId, personId, personGroupId).GetAwaiter().GetResult(); + } + + /// + /// Verify whether two faces belong to a same person or whether one face + /// belongs to a person. + /// + /// + /// The operations group for this extension method. + /// + /// + /// faceId the face, comes from Face - Detect + /// + /// + /// Specify a certain person in a person group. personId is created in + /// Persons.Create. + /// + /// + /// Using existing personGroupId and personId for fast loading a specified + /// person. personGroupId is created in Person Groups.Create. + /// + /// + /// The cancellation token. + /// + public static async Task VerifyAsync(this IFaceOperations operations, string faceId, string personId, string personGroupId, CancellationToken cancellationToken = default(CancellationToken)) + { + using (var _result = await operations.VerifyWithHttpMessagesAsync(faceId, personId, personGroupId, null, cancellationToken).ConfigureAwait(false)) + { + return _result.Body; + } + } + + /// + /// Detect human faces in an image and returns face locations, and optionally + /// with faceIds, landmarks, and attributes. + /// + /// + /// The operations group for this extension method. + /// + /// + /// + /// + /// A value indicating whether the operation should return faceIds of detected + /// faces. + /// + /// + /// A value indicating whether the operation should return landmarks of the + /// detected faces. + /// + /// + /// Analyze and return the one or more specified face attributes in the + /// comma-separated string like "returnFaceAttributes=age,gender". Supported + /// face attributes include age, gender, headPose, smile, facialHair, glasses + /// and emotion. Note that each face attribute analysis has additional + /// computational and time cost. + /// + public static IList Detect(this IFaceOperations operations, string url, bool? returnFaceId = true, bool? returnFaceLandmarks = false, string returnFaceAttributes = default(string)) + { + return operations.DetectAsync(url, returnFaceId, returnFaceLandmarks, returnFaceAttributes).GetAwaiter().GetResult(); + } + + /// + /// Detect human faces in an image and returns face locations, and optionally + /// with faceIds, landmarks, and attributes. + /// + /// + /// The operations group for this extension method. + /// + /// + /// + /// + /// A value indicating whether the operation should return faceIds of detected + /// faces. + /// + /// + /// A value indicating whether the operation should return landmarks of the + /// detected faces. + /// + /// + /// Analyze and return the one or more specified face attributes in the + /// comma-separated string like "returnFaceAttributes=age,gender". Supported + /// face attributes include age, gender, headPose, smile, facialHair, glasses + /// and emotion. Note that each face attribute analysis has additional + /// computational and time cost. + /// + /// + /// The cancellation token. + /// + public static async Task> DetectAsync(this IFaceOperations operations, string url, bool? returnFaceId = true, bool? returnFaceLandmarks = false, string returnFaceAttributes = default(string), CancellationToken cancellationToken = default(CancellationToken)) + { + using (var _result = await operations.DetectWithHttpMessagesAsync(url, returnFaceId, returnFaceLandmarks, returnFaceAttributes, null, cancellationToken).ConfigureAwait(false)) + { + return _result.Body; + } + } + + /// + /// Detect human faces in an image and returns face locations, and optionally + /// with faceIds, landmarks, and attributes. + /// + /// + /// The operations group for this extension method. + /// + /// + /// An image stream. + /// + /// + /// A value indicating whether the operation should return faceIds of detected + /// faces. + /// + /// + /// A value indicating whether the operation should return landmarks of the + /// detected faces. + /// + /// + /// Analyze and return the one or more specified face attributes in the + /// comma-separated string like "returnFaceAttributes=age,gender". Supported + /// face attributes include age, gender, headPose, smile, facialHair, glasses + /// and emotion. Note that each face attribute analysis has additional + /// computational and time cost. + /// + public static IList DetectInStream(this IFaceOperations operations, Stream image, bool? returnFaceId = true, bool? returnFaceLandmarks = false, string returnFaceAttributes = default(string)) + { + return operations.DetectInStreamAsync(image, returnFaceId, returnFaceLandmarks, returnFaceAttributes).GetAwaiter().GetResult(); + } + + /// + /// Detect human faces in an image and returns face locations, and optionally + /// with faceIds, landmarks, and attributes. + /// + /// + /// The operations group for this extension method. + /// + /// + /// An image stream. + /// + /// + /// A value indicating whether the operation should return faceIds of detected + /// faces. + /// + /// + /// A value indicating whether the operation should return landmarks of the + /// detected faces. + /// + /// + /// Analyze and return the one or more specified face attributes in the + /// comma-separated string like "returnFaceAttributes=age,gender". Supported + /// face attributes include age, gender, headPose, smile, facialHair, glasses + /// and emotion. Note that each face attribute analysis has additional + /// computational and time cost. + /// + /// + /// The cancellation token. + /// + public static async Task> DetectInStreamAsync(this IFaceOperations operations, Stream image, bool? returnFaceId = true, bool? returnFaceLandmarks = false, string returnFaceAttributes = default(string), CancellationToken cancellationToken = default(CancellationToken)) + { + using (var _result = await operations.DetectInStreamWithHttpMessagesAsync(image, returnFaceId, returnFaceLandmarks, returnFaceAttributes, null, cancellationToken).ConfigureAwait(false)) + { + return _result.Body; + } + } + + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IFaceAPI.cs b/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IFaceAPI.cs new file mode 100644 index 000000000000..381fde544fad --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IFaceAPI.cs @@ -0,0 +1,65 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Models; + using Newtonsoft.Json; + + /// + /// An API for face detection, verification, and identification. + /// + public partial interface IFaceAPI : System.IDisposable + { + /// + /// The base URI of the service. + /// + + /// + /// Gets or sets json serialization settings. + /// + JsonSerializerSettings SerializationSettings { get; } + + /// + /// Gets or sets json deserialization settings. + /// + JsonSerializerSettings DeserializationSettings { get; } + + /// + /// Supported Azure regions for Face Detection endpoints. Possible + /// values include: 'westus', 'westeurope', 'southeastasia', 'eastus2', + /// 'westcentralus' + /// + string AzureRegion1 { get; set; } + + /// + /// Subscription key in header + /// + string SubscriptionKey { get; set; } + + + /// + /// Gets the IFaceOperations. + /// + IFaceOperations Face { get; } + + /// + /// Gets the IPerson. + /// + IPerson Person { get; } + + /// + /// Gets the IPersonGroup. + /// + IPersonGroup PersonGroup { get; } + + /// + /// Gets the IFaceList. + /// + IFaceList FaceList { get; } + + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IFaceList.cs b/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IFaceList.cs new file mode 100644 index 000000000000..8daaf8386d93 --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IFaceList.cs @@ -0,0 +1,227 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.Rest; + using Models; + using System.Collections; + using System.Collections.Generic; + using System.Threading; + using System.Threading.Tasks; + + /// + /// FaceList operations. + /// + public partial interface IFaceList + { + /// + /// Create an empty face list. Up to 64 face lists are allowed to exist + /// in one subscription. + /// + /// + /// Id referencing a particular face list. + /// + /// + /// Name of the face list, maximum length is 128. + /// + /// + /// Optional user defined data for the face list. Length should not + /// exceed 16KB. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when a required parameter is null + /// + Task CreateWithHttpMessagesAsync(string faceListId, string name = default(string), string userData = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// Retrieve a face list's information. + /// + /// + /// Id referencing a Face List. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + Task> GetWithHttpMessagesAsync(string faceListId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// Update information of a face list. + /// + /// + /// Id referencing a Face List. + /// + /// + /// Name of the face list, maximum length is 128. + /// + /// + /// Optional user defined data for the face list. Length should not + /// exceed 16KB. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when a required parameter is null + /// + Task UpdateWithHttpMessagesAsync(string faceListId, string name = default(string), string userData = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// Delete an existing face list according to faceListId. Persisted + /// face images in the face list will also be deleted. + /// + /// + /// Id referencing a Face List. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when a required parameter is null + /// + Task DeleteWithHttpMessagesAsync(string faceListId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// Retrieve information about all existing face lists. Only + /// faceListId, name and userData will be returned. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + Task>> ListWithHttpMessagesAsync(Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// Delete an existing face from a face list (given by a + /// persisitedFaceId and a faceListId). Persisted image related to the + /// face will also be deleted. + /// + /// + /// faceListId of an existing face list. + /// + /// + /// persistedFaceId of an existing face. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when a required parameter is null + /// + Task DeleteFaceWithHttpMessagesAsync(string faceListId, string persistedFaceId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// Add a face to a face list. The input face is specified as an image + /// with a targetFace rectangle. It returns a persistedFaceId + /// representing the added face, and persistedFaceId will not expire. + /// + /// + /// Id referencing a Face List. + /// + /// + /// User-specified data about the face list for any purpose. The + /// maximum length is 1KB. + /// + /// + /// A face rectangle to specify the target face to be added into the + /// face list, in the format of "targetFace=left,top,width,height". + /// E.g. "targetFace=10,10,100,100". If there is more than one face in + /// the image, targetFace is required to specify which face to add. No + /// targetFace means there is only one face detected in the entire + /// image. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when a required parameter is null + /// + Task AddFaceWithHttpMessagesAsync(string faceListId, string userData = default(string), string targetFace = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// Add a face to a face list. The input face is specified as an image + /// with a targetFace rectangle. It returns a persistedFaceId + /// representing the added face, and persistedFaceId will not expire. + /// + /// + /// Id referencing a Face List. + /// + /// + /// User-specified data about the face list for any purpose. The + /// maximum length is 1KB. + /// + /// + /// A face rectangle to specify the target face to be added into the + /// face list, in the format of "targetFace=left,top,width,height". + /// E.g. "targetFace=10,10,100,100". If there is more than one face in + /// the image, targetFace is required to specify which face to add. No + /// targetFace means there is only one face detected in the entire + /// image. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when a required parameter is null + /// + Task AddFaceFromStreamWithHttpMessagesAsync(string faceListId, string userData = default(string), string targetFace = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IFaceOperations.cs b/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IFaceOperations.cs new file mode 100644 index 000000000000..42bb76e30712 --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IFaceOperations.cs @@ -0,0 +1,230 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.Rest; + using Models; + using System.Collections; + using System.Collections.Generic; + using System.IO; + using System.Threading; + using System.Threading.Tasks; + + /// + /// FaceOperations operations. + /// + public partial interface IFaceOperations + { + /// + /// Given query face's faceId, find the similar-looking faces from a + /// faceId array or a faceListId. + /// + /// + /// FaceId of the query face. User needs to call Face - Detect first to + /// get a valid faceId. Note that this faceId is not persisted and will + /// expire 24 hours after the detection call + /// + /// + /// An existing user-specified unique candidate face list, created in + /// Face List - Create a Face List. Face list contains a set of + /// persistedFaceIds which are persisted and will never expire. + /// Parameter faceListId and faceIds should not be provided at the same + /// time + /// + /// + /// An array of candidate faceIds. All of them are created by Face - + /// Detect and the faceIds will expire 24 hours after the detection + /// call. + /// + /// + /// The number of top similar faces returned. The valid range is [1, + /// 1000]. + /// + /// + /// Similar face searching mode. It can be "matchPerson" or + /// "matchFace". Possible values include: 'matchPerson', 'matchFace' + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + Task>> FindSimilarWithHttpMessagesAsync(string faceId, string faceListId = default(string), IList faceIds = default(IList), int? maxNumOfCandidatesReturned = 20, string mode = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// Divide candidate faces into groups based on face similarity. + /// + /// + /// Array of candidate faceId created by Face - Detect. The maximum is + /// 1000 faces + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + Task> GroupWithHttpMessagesAsync(IList faceIds, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// Identify unknown faces from a person group. + /// + /// + /// personGroupId of the target person group, created by + /// PersonGroups.Create + /// + /// + /// Array of candidate faceId created by Face - Detect. + /// + /// + /// The number of top similar faces returned. + /// + /// + /// Confidence threshold of identification, used to judge whether one + /// face belong to one person. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + Task>> IdentifyWithHttpMessagesAsync(string personGroupId, IList faceIds, int? maxNumOfCandidatesReturned = 1, double? confidenceThreshold = default(double?), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// Verify whether two faces belong to a same person or whether one + /// face belongs to a person. + /// + /// + /// faceId the face, comes from Face - Detect + /// + /// + /// Specify a certain person in a person group. personId is created in + /// Persons.Create. + /// + /// + /// Using existing personGroupId and personId for fast loading a + /// specified person. personGroupId is created in Person Groups.Create. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + Task> VerifyWithHttpMessagesAsync(string faceId, string personId, string personGroupId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// Detect human faces in an image and returns face locations, and + /// optionally with faceIds, landmarks, and attributes. + /// + /// + /// + /// + /// A value indicating whether the operation should return faceIds of + /// detected faces. + /// + /// + /// A value indicating whether the operation should return landmarks of + /// the detected faces. + /// + /// + /// Analyze and return the one or more specified face attributes in the + /// comma-separated string like "returnFaceAttributes=age,gender". + /// Supported face attributes include age, gender, headPose, smile, + /// facialHair, glasses and emotion. Note that each face attribute + /// analysis has additional computational and time cost. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + Task>> DetectWithHttpMessagesAsync(string url, bool? returnFaceId = true, bool? returnFaceLandmarks = false, string returnFaceAttributes = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// Detect human faces in an image and returns face locations, and + /// optionally with faceIds, landmarks, and attributes. + /// + /// + /// An image stream. + /// + /// + /// A value indicating whether the operation should return faceIds of + /// detected faces. + /// + /// + /// A value indicating whether the operation should return landmarks of + /// the detected faces. + /// + /// + /// Analyze and return the one or more specified face attributes in the + /// comma-separated string like "returnFaceAttributes=age,gender". + /// Supported face attributes include age, gender, headPose, smile, + /// facialHair, glasses and emotion. Note that each face attribute + /// analysis has additional computational and time cost. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + Task>> DetectInStreamWithHttpMessagesAsync(Stream image, bool? returnFaceId = true, bool? returnFaceLandmarks = false, string returnFaceAttributes = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IPerson.cs b/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IPerson.cs new file mode 100644 index 000000000000..a62b1d019db2 --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IPerson.cs @@ -0,0 +1,307 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.Rest; + using Models; + using System.Collections; + using System.Collections.Generic; + using System.Threading; + using System.Threading.Tasks; + + /// + /// Person operations. + /// + public partial interface IPerson + { + /// + /// Create a new person in a specified person group. + /// + /// + /// Specifying the target person group to create the person. + /// + /// + /// Display name of the target person. The maximum length is 128. + /// + /// + /// Optional fields for user-provided data attached to a person. Size + /// limit is 16KB. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + Task> CreateWithHttpMessagesAsync(string personGroupId, string name = default(string), string userData = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// List all persons in a person group, and retrieve person information + /// (including personId, name, userData and persistedFaceIds of + /// registered faces of the person). + /// + /// + /// personGroupId of the target person group. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + Task>> ListWithHttpMessagesAsync(string personGroupId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// Delete an existing person from a person group. Persisted face + /// images of the person will also be deleted. + /// + /// + /// Specifying the person group containing the person. + /// + /// + /// The target personId to delete. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when a required parameter is null + /// + Task DeleteWithHttpMessagesAsync(string personGroupId, string personId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// Retrieve a person's information, including registered persisted + /// faces, name and userData. + /// + /// + /// Specifying the person group containing the target person. + /// + /// + /// Specifying the target person. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + Task> GetWithHttpMessagesAsync(string personGroupId, string personId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// Update name or userData of a person. + /// + /// + /// Specifying the person group containing the target person. + /// + /// + /// personId of the target person. + /// + /// + /// Display name of the target person. The maximum length is 128. + /// + /// + /// Optional fields for user-provided data attached to a person. Size + /// limit is 16KB. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when a required parameter is null + /// + Task UpdateWithHttpMessagesAsync(string personGroupId, string personId, string name = default(string), string userData = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// Delete a face from a person. Relative image for the persisted face + /// will also be deleted. + /// + /// + /// Specifying the person group containing the target person. + /// + /// + /// Specifying the person that the target persisted face belong to. + /// + /// + /// The persisted face to remove. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when a required parameter is null + /// + Task DeleteFaceWithHttpMessagesAsync(string personGroupId, string personId, string persistedFaceId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// Retrieve information about a persisted face (specified by + /// persistedFaceId, personId and its belonging personGroupId). + /// + /// + /// Specifying the person group containing the target person. + /// + /// + /// Specifying the target person that the face belongs to. + /// + /// + /// The persistedFaceId of the target persisted face of the person. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + Task> GetFaceWithHttpMessagesAsync(string personGroupId, string personId, string persistedFaceId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// Update a person persisted face's userData field. + /// + /// + /// Specifying the person group containing the target person. + /// + /// + /// personId of the target person. + /// + /// + /// persistedFaceId of target face, which is persisted and will not + /// expire. + /// + /// + /// User-provided data attached to the face. The size limit is 1KB + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when a required parameter is null + /// + Task UpdateFaceWithHttpMessagesAsync(string personGroupId, string personId, string persistedFaceId, string userData = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// Add a representative face to a person for identification. The input + /// face is specified as an image with a targetFace rectangle. + /// + /// + /// Specifying the person group containing the target person. + /// + /// + /// Target person that the face is added to. + /// + /// + /// User-specified data about the target face to add for any purpose. + /// The maximum length is 1KB. + /// + /// + /// A face rectangle to specify the target face to be added to a person + /// in the format of "targetFace=left,top,width,height". E.g. + /// "targetFace=10,10,100,100". If there is more than one face in the + /// image, targetFace is required to specify which face to add. No + /// targetFace means there is only one face detected in the entire + /// image. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when a required parameter is null + /// + Task AddFaceWithHttpMessagesAsync(string personGroupId, string personId, string userData = default(string), string targetFace = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// Add a representative face to a person for identification. The input + /// face is specified as an image with a targetFace rectangle. + /// + /// + /// Specifying the person group containing the target person. + /// + /// + /// Target person that the face is added to. + /// + /// + /// User-specified data about the target face to add for any purpose. + /// The maximum length is 1KB. + /// + /// + /// A face rectangle to specify the target face to be added to a + /// person, in the format of "targetFace=left,top,width,height". E.g. + /// "targetFace=10,10,100,100". If there is more than one face in the + /// image, targetFace is required to specify which face to add. No + /// targetFace means there is only one face detected in the entire + /// image. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when a required parameter is null + /// + Task AddFaceFromStreamWithHttpMessagesAsync(string personGroupId, string personId, string userData = default(string), string targetFace = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IPersonGroup.cs b/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IPersonGroup.cs new file mode 100644 index 000000000000..cfc666708345 --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IPersonGroup.cs @@ -0,0 +1,189 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.Rest; + using Models; + using System.Collections; + using System.Collections.Generic; + using System.Threading; + using System.Threading.Tasks; + + /// + /// PersonGroup operations. + /// + public partial interface IPersonGroup + { + /// + /// Create a new person group with specified personGroupId, name and + /// user-provided userData. + /// + /// + /// User-provided personGroupId as a string. + /// + /// + /// Name of the face list, maximum length is 128. + /// + /// + /// Optional user defined data for the face list. Length should not + /// exceed 16KB. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when a required parameter is null + /// + Task CreateWithHttpMessagesAsync(string personGroupId, string name = default(string), string userData = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// Delete an existing person group. Persisted face images of all + /// people in the person group will also be deleted. + /// + /// + /// The personGroupId of the person group to be deleted. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when a required parameter is null + /// + Task DeleteWithHttpMessagesAsync(string personGroupId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// Retrieve the information of a person group, including its name and + /// userData. + /// + /// + /// personGroupId of the target person group. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + Task> GetWithHttpMessagesAsync(string personGroupId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// Update an existing person group's display name and userData. The + /// properties which does not appear in request body will not be + /// updated. + /// + /// + /// personGroupId of the person group to be updated. + /// + /// + /// Name of the face list, maximum length is 128. + /// + /// + /// Optional user defined data for the face list. Length should not + /// exceed 16KB. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when a required parameter is null + /// + Task UpdateWithHttpMessagesAsync(string personGroupId, string name = default(string), string userData = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// Retrieve the training status of a person group (completed or + /// ongoing). + /// + /// + /// personGroupId of target person group. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + Task> GetTrainingStatusWithHttpMessagesAsync(string personGroupId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// List person groups and their information. + /// + /// + /// List person groups from the least personGroupId greater than the + /// "start". + /// + /// + /// The number of person groups to list. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + Task>> ListWithHttpMessagesAsync(string start = default(string), int? top = 1000, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// Queue a person group training task, the training task may not be + /// started immediately. + /// + /// + /// Target person group to be trained. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when a required parameter is null + /// + Task TrainWithHttpMessagesAsync(string personGroupId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/APIError.cs b/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/APIError.cs new file mode 100644 index 000000000000..d72be15ff0fd --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/APIError.cs @@ -0,0 +1,46 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.CognitiveServices.Vision.Face; + using Newtonsoft.Json; + using System.Linq; + + /// + /// Error information returned by the API + /// + public partial class APIError + { + /// + /// Initializes a new instance of the APIError class. + /// + public APIError() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the APIError class. + /// + public APIError(Error error = default(Error)) + { + Error = error; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// + [JsonProperty(PropertyName = "error")] + public Error Error { get; set; } + + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/APIErrorException.cs b/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/APIErrorException.cs new file mode 100644 index 000000000000..3db32562480e --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/APIErrorException.cs @@ -0,0 +1,58 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.CognitiveServices.Vision.Face; + using Microsoft.Rest; + + /// + /// Exception thrown for an invalid response with APIError information. + /// + public class APIErrorException : RestException + { + /// + /// Gets information about the associated HTTP request. + /// + public HttpRequestMessageWrapper Request { get; set; } + + /// + /// Gets information about the associated HTTP response. + /// + public HttpResponseMessageWrapper Response { get; set; } + + /// + /// Gets or sets the body object. + /// + public APIError Body { get; set; } + + /// + /// Initializes a new instance of the APIErrorException class. + /// + public APIErrorException() + { + } + + /// + /// Initializes a new instance of the APIErrorException class. + /// + /// The exception message. + public APIErrorException(string message) + : this(message, null) + { + } + + /// + /// Initializes a new instance of the APIErrorException class. + /// + /// The exception message. + /// Inner exception. + public APIErrorException(string message, System.Exception innerException) + : base(message, innerException) + { + } + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/AzureRegion.cs b/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/AzureRegion.cs new file mode 100644 index 000000000000..bae1015b5d99 --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/AzureRegion.cs @@ -0,0 +1,22 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.CognitiveServices.Vision.Face; + + /// + /// Defines values for AzureRegion. + /// + public static class AzureRegion + { + public const string Westus = "westus"; + public const string Westeurope = "westeurope"; + public const string Southeastasia = "southeastasia"; + public const string Eastus2 = "eastus2"; + public const string Westcentralus = "westcentralus"; + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreateFaceListRequest.cs b/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreateFaceListRequest.cs new file mode 100644 index 000000000000..34d6fc3624a8 --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreateFaceListRequest.cs @@ -0,0 +1,83 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.CognitiveServices.Vision.Face; + using Microsoft.Rest; + using Newtonsoft.Json; + using System.Linq; + + /// + /// Request to create a face list. + /// + public partial class CreateFaceListRequest + { + /// + /// Initializes a new instance of the CreateFaceListRequest class. + /// + public CreateFaceListRequest() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the CreateFaceListRequest class. + /// + /// Name of the face list, maximum length is + /// 128. + /// Optional user defined data for the face + /// list. Length should not exceed 16KB. + public CreateFaceListRequest(string name = default(string), string userData = default(string)) + { + Name = name; + UserData = userData; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets name of the face list, maximum length is 128. + /// + [JsonProperty(PropertyName = "name")] + public string Name { get; set; } + + /// + /// Gets or sets optional user defined data for the face list. Length + /// should not exceed 16KB. + /// + [JsonProperty(PropertyName = "userData")] + public string UserData { get; set; } + + /// + /// Validate the object. + /// + /// + /// Thrown if validation fails + /// + public virtual void Validate() + { + if (Name != null) + { + if (Name.Length > 128) + { + throw new ValidationException(ValidationRules.MaxLength, "Name", 128); + } + } + if (UserData != null) + { + if (UserData.Length > 16384) + { + throw new ValidationException(ValidationRules.MaxLength, "UserData", 16384); + } + } + } + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreatePersonGroupRequest.cs b/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreatePersonGroupRequest.cs new file mode 100644 index 000000000000..00b0e7bb7110 --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreatePersonGroupRequest.cs @@ -0,0 +1,83 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.CognitiveServices.Vision.Face; + using Microsoft.Rest; + using Newtonsoft.Json; + using System.Linq; + + /// + /// Request to create a person group. + /// + public partial class CreatePersonGroupRequest + { + /// + /// Initializes a new instance of the CreatePersonGroupRequest class. + /// + public CreatePersonGroupRequest() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the CreatePersonGroupRequest class. + /// + /// Name of the face list, maximum length is + /// 128. + /// Optional user defined data for the face + /// list. Length should not exceed 16KB. + public CreatePersonGroupRequest(string name = default(string), string userData = default(string)) + { + Name = name; + UserData = userData; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets name of the face list, maximum length is 128. + /// + [JsonProperty(PropertyName = "name")] + public string Name { get; set; } + + /// + /// Gets or sets optional user defined data for the face list. Length + /// should not exceed 16KB. + /// + [JsonProperty(PropertyName = "userData")] + public string UserData { get; set; } + + /// + /// Validate the object. + /// + /// + /// Thrown if validation fails + /// + public virtual void Validate() + { + if (Name != null) + { + if (Name.Length > 128) + { + throw new ValidationException(ValidationRules.MaxLength, "Name", 128); + } + } + if (UserData != null) + { + if (UserData.Length > 16384) + { + throw new ValidationException(ValidationRules.MaxLength, "UserData", 16384); + } + } + } + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreatePersonRequest.cs b/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreatePersonRequest.cs new file mode 100644 index 000000000000..85565371fc9c --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreatePersonRequest.cs @@ -0,0 +1,84 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.CognitiveServices.Vision.Face; + using Microsoft.Rest; + using Newtonsoft.Json; + using System.Linq; + + /// + /// Request to create a person object. + /// + public partial class CreatePersonRequest + { + /// + /// Initializes a new instance of the CreatePersonRequest class. + /// + public CreatePersonRequest() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the CreatePersonRequest class. + /// + /// Display name of the target person. The maximum + /// length is 128. + /// Optional fields for user-provided data + /// attached to a person. Size limit is 16KB. + public CreatePersonRequest(string name = default(string), string userData = default(string)) + { + Name = name; + UserData = userData; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets display name of the target person. The maximum length + /// is 128. + /// + [JsonProperty(PropertyName = "name")] + public string Name { get; set; } + + /// + /// Gets or sets optional fields for user-provided data attached to a + /// person. Size limit is 16KB. + /// + [JsonProperty(PropertyName = "userData")] + public string UserData { get; set; } + + /// + /// Validate the object. + /// + /// + /// Thrown if validation fails + /// + public virtual void Validate() + { + if (Name != null) + { + if (Name.Length > 128) + { + throw new ValidationException(ValidationRules.MaxLength, "Name", 128); + } + } + if (UserData != null) + { + if (UserData.Length > 16384) + { + throw new ValidationException(ValidationRules.MaxLength, "UserData", 16384); + } + } + } + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreatePersonResult.cs b/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreatePersonResult.cs new file mode 100644 index 000000000000..31dce8c6b5ca --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreatePersonResult.cs @@ -0,0 +1,62 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.CognitiveServices.Vision.Face; + using Microsoft.Rest; + using Newtonsoft.Json; + using System.Linq; + + /// + /// Result of creating person. + /// + public partial class CreatePersonResult + { + /// + /// Initializes a new instance of the CreatePersonResult class. + /// + public CreatePersonResult() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the CreatePersonResult class. + /// + /// personID of the new created person. + public CreatePersonResult(string personId) + { + PersonId = personId; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets personID of the new created person. + /// + [JsonProperty(PropertyName = "personId")] + public string PersonId { get; set; } + + /// + /// Validate the object. + /// + /// + /// Thrown if validation fails + /// + public virtual void Validate() + { + if (PersonId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "PersonId"); + } + } + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/DetectedFace.cs b/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/DetectedFace.cs new file mode 100644 index 000000000000..2d66bad5ef6b --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/DetectedFace.cs @@ -0,0 +1,87 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.CognitiveServices.Vision.Face; + using Microsoft.Rest; + using Newtonsoft.Json; + using System.Linq; + + /// + /// Detected Face object. + /// + public partial class DetectedFace + { + /// + /// Initializes a new instance of the DetectedFace class. + /// + public DetectedFace() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the DetectedFace class. + /// + public DetectedFace(FaceRectangle faceRectangle, string faceId = default(string), FaceLandmarks faceLandmarks = default(FaceLandmarks)) + { + FaceId = faceId; + FaceRectangle = faceRectangle; + FaceLandmarks = faceLandmarks; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// + [JsonProperty(PropertyName = "faceId")] + public string FaceId { get; set; } + + /// + /// + [JsonProperty(PropertyName = "faceRectangle")] + public FaceRectangle FaceRectangle { get; set; } + + /// + /// + [JsonProperty(PropertyName = "faceLandmarks")] + public FaceLandmarks FaceLandmarks { get; set; } + + /// + /// Validate the object. + /// + /// + /// Thrown if validation fails + /// + public virtual void Validate() + { + if (FaceRectangle == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "FaceRectangle"); + } + if (FaceId != null) + { + if (FaceId.Length > 64) + { + throw new ValidationException(ValidationRules.MaxLength, "FaceId", 64); + } + } + if (FaceRectangle != null) + { + FaceRectangle.Validate(); + } + if (FaceLandmarks != null) + { + FaceLandmarks.Validate(); + } + } + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/EmotionProperties.cs b/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/EmotionProperties.cs new file mode 100644 index 000000000000..32ff00e6800e --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/EmotionProperties.cs @@ -0,0 +1,162 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.CognitiveServices.Vision.Face; + using Microsoft.Rest; + using Newtonsoft.Json; + using System.Linq; + + /// + /// Properties describing facial emotion. + /// + public partial class EmotionProperties + { + /// + /// Initializes a new instance of the EmotionProperties class. + /// + public EmotionProperties() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the EmotionProperties class. + /// + public EmotionProperties(double? anger = default(double?), double? contempt = default(double?), double? disgust = default(double?), double? fear = default(double?), double? happiness = default(double?), double? neutral = default(double?), double? sadness = default(double?), double? surprise = default(double?)) + { + Anger = anger; + Contempt = contempt; + Disgust = disgust; + Fear = fear; + Happiness = happiness; + Neutral = neutral; + Sadness = sadness; + Surprise = surprise; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// + [JsonProperty(PropertyName = "anger")] + public double? Anger { get; set; } + + /// + /// + [JsonProperty(PropertyName = "contempt")] + public double? Contempt { get; set; } + + /// + /// + [JsonProperty(PropertyName = "disgust")] + public double? Disgust { get; set; } + + /// + /// + [JsonProperty(PropertyName = "fear")] + public double? Fear { get; set; } + + /// + /// + [JsonProperty(PropertyName = "happiness")] + public double? Happiness { get; set; } + + /// + /// + [JsonProperty(PropertyName = "neutral")] + public double? Neutral { get; set; } + + /// + /// + [JsonProperty(PropertyName = "sadness")] + public double? Sadness { get; set; } + + /// + /// + [JsonProperty(PropertyName = "surprise")] + public double? Surprise { get; set; } + + /// + /// Validate the object. + /// + /// + /// Thrown if validation fails + /// + public virtual void Validate() + { + if (Anger > 1) + { + throw new ValidationException(ValidationRules.InclusiveMaximum, "Anger", 1); + } + if (Anger < 0) + { + throw new ValidationException(ValidationRules.InclusiveMinimum, "Anger", 0); + } + if (Contempt > 1) + { + throw new ValidationException(ValidationRules.InclusiveMaximum, "Contempt", 1); + } + if (Contempt < 0) + { + throw new ValidationException(ValidationRules.InclusiveMinimum, "Contempt", 0); + } + if (Disgust > 1) + { + throw new ValidationException(ValidationRules.InclusiveMaximum, "Disgust", 1); + } + if (Disgust < 0) + { + throw new ValidationException(ValidationRules.InclusiveMinimum, "Disgust", 0); + } + if (Fear > 1) + { + throw new ValidationException(ValidationRules.InclusiveMaximum, "Fear", 1); + } + if (Fear < 0) + { + throw new ValidationException(ValidationRules.InclusiveMinimum, "Fear", 0); + } + if (Happiness > 1) + { + throw new ValidationException(ValidationRules.InclusiveMaximum, "Happiness", 1); + } + if (Happiness < 0) + { + throw new ValidationException(ValidationRules.InclusiveMinimum, "Happiness", 0); + } + if (Neutral > 1) + { + throw new ValidationException(ValidationRules.InclusiveMaximum, "Neutral", 1); + } + if (Neutral < 0) + { + throw new ValidationException(ValidationRules.InclusiveMinimum, "Neutral", 0); + } + if (Sadness > 1) + { + throw new ValidationException(ValidationRules.InclusiveMaximum, "Sadness", 1); + } + if (Sadness < 0) + { + throw new ValidationException(ValidationRules.InclusiveMinimum, "Sadness", 0); + } + if (Surprise > 1) + { + throw new ValidationException(ValidationRules.InclusiveMaximum, "Surprise", 1); + } + if (Surprise < 0) + { + throw new ValidationException(ValidationRules.InclusiveMinimum, "Surprise", 0); + } + } + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/Error.cs b/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/Error.cs new file mode 100644 index 000000000000..566c578aa0c5 --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/Error.cs @@ -0,0 +1,52 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.CognitiveServices.Vision.Face; + using Newtonsoft.Json; + using System.Linq; + + /// + /// Error body. + /// + public partial class Error + { + /// + /// Initializes a new instance of the Error class. + /// + public Error() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the Error class. + /// + public Error(string code = default(string), string message = default(string)) + { + Code = code; + Message = message; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// + [JsonProperty(PropertyName = "code")] + public string Code { get; set; } + + /// + /// + [JsonProperty(PropertyName = "message")] + public string Message { get; set; } + + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FaceAttributes.cs b/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FaceAttributes.cs new file mode 100644 index 000000000000..b6c46e50f266 --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FaceAttributes.cs @@ -0,0 +1,125 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.CognitiveServices.Vision.Face; + using Microsoft.Rest; + using Newtonsoft.Json; + using System.Linq; + + /// + /// Face Attributes + /// + public partial class FaceAttributes + { + /// + /// Initializes a new instance of the FaceAttributes class. + /// + public FaceAttributes() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the FaceAttributes class. + /// + /// Age in years + /// Gender: male or female. Possible values + /// include: 'male', 'female' + /// Smile intensity, a number between [0,1] + /// + /// Glasses type. Possible values are + /// 'noGlasses', 'readingGlasses', 'sunglasses', 'swimmingGoggles'. + /// Possible values include: 'noGlasses', 'readingGlasses', + /// 'sunglasses', 'swimmingGoggles' + public FaceAttributes(double? age = default(double?), string gender = default(string), double? smile = default(double?), string glasses = default(string), FacialHairProperties facialHair = default(FacialHairProperties), HeadPoseProperties headPose = default(HeadPoseProperties), EmotionProperties emotion = default(EmotionProperties)) + { + Age = age; + Gender = gender; + Smile = smile; + Glasses = glasses; + FacialHair = facialHair; + HeadPose = headPose; + Emotion = emotion; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets age in years + /// + [JsonProperty(PropertyName = "age")] + public double? Age { get; set; } + + /// + /// Gets or sets gender: male or female. Possible values include: + /// 'male', 'female' + /// + [JsonProperty(PropertyName = "gender")] + public string Gender { get; set; } + + /// + /// Gets or sets smile intensity, a number between [0,1] + /// + [JsonProperty(PropertyName = "smile")] + public double? Smile { get; set; } + + /// + /// Gets or sets glasses type. Possible values are 'noGlasses', + /// 'readingGlasses', 'sunglasses', 'swimmingGoggles'. Possible values + /// include: 'noGlasses', 'readingGlasses', 'sunglasses', + /// 'swimmingGoggles' + /// + [JsonProperty(PropertyName = "glasses")] + public string Glasses { get; set; } + + /// + /// + [JsonProperty(PropertyName = "facialHair")] + public FacialHairProperties FacialHair { get; set; } + + /// + /// + [JsonProperty(PropertyName = "headPose")] + public HeadPoseProperties HeadPose { get; set; } + + /// + /// + [JsonProperty(PropertyName = "emotion")] + public EmotionProperties Emotion { get; set; } + + /// + /// Validate the object. + /// + /// + /// Thrown if validation fails + /// + public virtual void Validate() + { + if (Smile > 1) + { + throw new ValidationException(ValidationRules.InclusiveMaximum, "Smile", 1); + } + if (Smile < 0) + { + throw new ValidationException(ValidationRules.InclusiveMinimum, "Smile", 0); + } + if (FacialHair != null) + { + FacialHair.Validate(); + } + if (Emotion != null) + { + Emotion.Validate(); + } + } + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FaceLandmarks.cs b/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FaceLandmarks.cs new file mode 100644 index 000000000000..a9af41c0f227 --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FaceLandmarks.cs @@ -0,0 +1,320 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.CognitiveServices.Vision.Face; + using Newtonsoft.Json; + using System.Linq; + + /// + /// A collection of 27-point face landmarks pointing to the important + /// positions of face components. + /// + public partial class FaceLandmarks + { + /// + /// Initializes a new instance of the FaceLandmarks class. + /// + public FaceLandmarks() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the FaceLandmarks class. + /// + public FaceLandmarks(Position pupilLeft = default(Position), Position pupilRight = default(Position), Position noseTip = default(Position), Position mouthLeft = default(Position), Position mouthRight = default(Position), Position eyebrowLeftOuter = default(Position), Position eyebrowLeftInner = default(Position), Position eyeLeftOuter = default(Position), Position eyeLeftTop = default(Position), Position eyeLeftBottom = default(Position), Position eyeLeftInner = default(Position), Position eyebrowRightInner = default(Position), Position eyebrowRightOuter = default(Position), Position eyeRightInner = default(Position), Position eyeRightTop = default(Position), Position eyeRightBottom = default(Position), Position eyeRightOuter = default(Position), Position noseRootLeft = default(Position), Position noseRootRight = default(Position), Position noseLeftAlarTop = default(Position), Position noseRightAlarTop = default(Position), Position noseLeftAlarOutTip = default(Position), Position noseRightAlarOutTip = default(Position), Position upperLipTop = default(Position), Position upperLipBottom = default(Position), Position underLipTop = default(Position), Position underLipBottom = default(Position)) + { + PupilLeft = pupilLeft; + PupilRight = pupilRight; + NoseTip = noseTip; + MouthLeft = mouthLeft; + MouthRight = mouthRight; + EyebrowLeftOuter = eyebrowLeftOuter; + EyebrowLeftInner = eyebrowLeftInner; + EyeLeftOuter = eyeLeftOuter; + EyeLeftTop = eyeLeftTop; + EyeLeftBottom = eyeLeftBottom; + EyeLeftInner = eyeLeftInner; + EyebrowRightInner = eyebrowRightInner; + EyebrowRightOuter = eyebrowRightOuter; + EyeRightInner = eyeRightInner; + EyeRightTop = eyeRightTop; + EyeRightBottom = eyeRightBottom; + EyeRightOuter = eyeRightOuter; + NoseRootLeft = noseRootLeft; + NoseRootRight = noseRootRight; + NoseLeftAlarTop = noseLeftAlarTop; + NoseRightAlarTop = noseRightAlarTop; + NoseLeftAlarOutTip = noseLeftAlarOutTip; + NoseRightAlarOutTip = noseRightAlarOutTip; + UpperLipTop = upperLipTop; + UpperLipBottom = upperLipBottom; + UnderLipTop = underLipTop; + UnderLipBottom = underLipBottom; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// + [JsonProperty(PropertyName = "pupilLeft")] + public Position PupilLeft { get; set; } + + /// + /// + [JsonProperty(PropertyName = "pupilRight")] + public Position PupilRight { get; set; } + + /// + /// + [JsonProperty(PropertyName = "noseTip")] + public Position NoseTip { get; set; } + + /// + /// + [JsonProperty(PropertyName = "mouthLeft")] + public Position MouthLeft { get; set; } + + /// + /// + [JsonProperty(PropertyName = "mouthRight")] + public Position MouthRight { get; set; } + + /// + /// + [JsonProperty(PropertyName = "eyebrowLeftOuter")] + public Position EyebrowLeftOuter { get; set; } + + /// + /// + [JsonProperty(PropertyName = "eyebrowLeftInner")] + public Position EyebrowLeftInner { get; set; } + + /// + /// + [JsonProperty(PropertyName = "eyeLeftOuter")] + public Position EyeLeftOuter { get; set; } + + /// + /// + [JsonProperty(PropertyName = "eyeLeftTop")] + public Position EyeLeftTop { get; set; } + + /// + /// + [JsonProperty(PropertyName = "eyeLeftBottom")] + public Position EyeLeftBottom { get; set; } + + /// + /// + [JsonProperty(PropertyName = "eyeLeftInner")] + public Position EyeLeftInner { get; set; } + + /// + /// + [JsonProperty(PropertyName = "eyebrowRightInner")] + public Position EyebrowRightInner { get; set; } + + /// + /// + [JsonProperty(PropertyName = "eyebrowRightOuter")] + public Position EyebrowRightOuter { get; set; } + + /// + /// + [JsonProperty(PropertyName = "eyeRightInner")] + public Position EyeRightInner { get; set; } + + /// + /// + [JsonProperty(PropertyName = "eyeRightTop")] + public Position EyeRightTop { get; set; } + + /// + /// + [JsonProperty(PropertyName = "eyeRightBottom")] + public Position EyeRightBottom { get; set; } + + /// + /// + [JsonProperty(PropertyName = "eyeRightOuter")] + public Position EyeRightOuter { get; set; } + + /// + /// + [JsonProperty(PropertyName = "noseRootLeft")] + public Position NoseRootLeft { get; set; } + + /// + /// + [JsonProperty(PropertyName = "noseRootRight")] + public Position NoseRootRight { get; set; } + + /// + /// + [JsonProperty(PropertyName = "noseLeftAlarTop")] + public Position NoseLeftAlarTop { get; set; } + + /// + /// + [JsonProperty(PropertyName = "noseRightAlarTop")] + public Position NoseRightAlarTop { get; set; } + + /// + /// + [JsonProperty(PropertyName = "noseLeftAlarOutTip")] + public Position NoseLeftAlarOutTip { get; set; } + + /// + /// + [JsonProperty(PropertyName = "noseRightAlarOutTip")] + public Position NoseRightAlarOutTip { get; set; } + + /// + /// + [JsonProperty(PropertyName = "upperLipTop")] + public Position UpperLipTop { get; set; } + + /// + /// + [JsonProperty(PropertyName = "upperLipBottom")] + public Position UpperLipBottom { get; set; } + + /// + /// + [JsonProperty(PropertyName = "underLipTop")] + public Position UnderLipTop { get; set; } + + /// + /// + [JsonProperty(PropertyName = "underLipBottom")] + public Position UnderLipBottom { get; set; } + + /// + /// Validate the object. + /// + /// + /// Thrown if validation fails + /// + public virtual void Validate() + { + if (PupilLeft != null) + { + PupilLeft.Validate(); + } + if (PupilRight != null) + { + PupilRight.Validate(); + } + if (NoseTip != null) + { + NoseTip.Validate(); + } + if (MouthLeft != null) + { + MouthLeft.Validate(); + } + if (MouthRight != null) + { + MouthRight.Validate(); + } + if (EyebrowLeftOuter != null) + { + EyebrowLeftOuter.Validate(); + } + if (EyebrowLeftInner != null) + { + EyebrowLeftInner.Validate(); + } + if (EyeLeftOuter != null) + { + EyeLeftOuter.Validate(); + } + if (EyeLeftTop != null) + { + EyeLeftTop.Validate(); + } + if (EyeLeftBottom != null) + { + EyeLeftBottom.Validate(); + } + if (EyeLeftInner != null) + { + EyeLeftInner.Validate(); + } + if (EyebrowRightInner != null) + { + EyebrowRightInner.Validate(); + } + if (EyebrowRightOuter != null) + { + EyebrowRightOuter.Validate(); + } + if (EyeRightInner != null) + { + EyeRightInner.Validate(); + } + if (EyeRightTop != null) + { + EyeRightTop.Validate(); + } + if (EyeRightBottom != null) + { + EyeRightBottom.Validate(); + } + if (EyeRightOuter != null) + { + EyeRightOuter.Validate(); + } + if (NoseRootLeft != null) + { + NoseRootLeft.Validate(); + } + if (NoseRootRight != null) + { + NoseRootRight.Validate(); + } + if (NoseLeftAlarTop != null) + { + NoseLeftAlarTop.Validate(); + } + if (NoseRightAlarTop != null) + { + NoseRightAlarTop.Validate(); + } + if (NoseLeftAlarOutTip != null) + { + NoseLeftAlarOutTip.Validate(); + } + if (NoseRightAlarOutTip != null) + { + NoseRightAlarOutTip.Validate(); + } + if (UpperLipTop != null) + { + UpperLipTop.Validate(); + } + if (UpperLipBottom != null) + { + UpperLipBottom.Validate(); + } + if (UnderLipTop != null) + { + UnderLipTop.Validate(); + } + if (UnderLipBottom != null) + { + UnderLipBottom.Validate(); + } + } + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FaceRectangle.cs b/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FaceRectangle.cs new file mode 100644 index 000000000000..f7ee305ce802 --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FaceRectangle.cs @@ -0,0 +1,87 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.CognitiveServices.Vision.Face; + using Newtonsoft.Json; + using System.Linq; + + /// + /// A rectangle within which a face can be found + /// + public partial class FaceRectangle + { + /// + /// Initializes a new instance of the FaceRectangle class. + /// + public FaceRectangle() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the FaceRectangle class. + /// + /// The width of the rectangle, in pixels. + /// The height of the rectangle, in + /// pixels. + /// The distance from the left edge if the image to + /// the left edge of the rectangle, in pixels. + /// The distance from the top edge if the image to + /// the top edge of the rectangle, in pixels. + public FaceRectangle(int width, int height, int left, int top) + { + Width = width; + Height = height; + Left = left; + Top = top; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets the width of the rectangle, in pixels. + /// + [JsonProperty(PropertyName = "width")] + public int Width { get; set; } + + /// + /// Gets or sets the height of the rectangle, in pixels. + /// + [JsonProperty(PropertyName = "height")] + public int Height { get; set; } + + /// + /// Gets or sets the distance from the left edge if the image to the + /// left edge of the rectangle, in pixels. + /// + [JsonProperty(PropertyName = "left")] + public int Left { get; set; } + + /// + /// Gets or sets the distance from the top edge if the image to the top + /// edge of the rectangle, in pixels. + /// + [JsonProperty(PropertyName = "top")] + public int Top { get; set; } + + /// + /// Validate the object. + /// + /// + /// Thrown if validation fails + /// + public virtual void Validate() + { + //Nothing to validate + } + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FacialHairProperties.cs b/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FacialHairProperties.cs new file mode 100644 index 000000000000..584608af5922 --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FacialHairProperties.cs @@ -0,0 +1,92 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.CognitiveServices.Vision.Face; + using Microsoft.Rest; + using Newtonsoft.Json; + using System.Linq; + + /// + /// Properties describing facial hair attributes. + /// + public partial class FacialHairProperties + { + /// + /// Initializes a new instance of the FacialHairProperties class. + /// + public FacialHairProperties() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the FacialHairProperties class. + /// + public FacialHairProperties(double? mustache = default(double?), double? beard = default(double?), double? sideburns = default(double?)) + { + Mustache = mustache; + Beard = beard; + Sideburns = sideburns; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// + [JsonProperty(PropertyName = "mustache")] + public double? Mustache { get; set; } + + /// + /// + [JsonProperty(PropertyName = "beard")] + public double? Beard { get; set; } + + /// + /// + [JsonProperty(PropertyName = "sideburns")] + public double? Sideburns { get; set; } + + /// + /// Validate the object. + /// + /// + /// Thrown if validation fails + /// + public virtual void Validate() + { + if (Mustache > 1) + { + throw new ValidationException(ValidationRules.InclusiveMaximum, "Mustache", 1); + } + if (Mustache < 0) + { + throw new ValidationException(ValidationRules.InclusiveMinimum, "Mustache", 0); + } + if (Beard > 1) + { + throw new ValidationException(ValidationRules.InclusiveMaximum, "Beard", 1); + } + if (Beard < 0) + { + throw new ValidationException(ValidationRules.InclusiveMinimum, "Beard", 0); + } + if (Sideburns > 1) + { + throw new ValidationException(ValidationRules.InclusiveMaximum, "Sideburns", 1); + } + if (Sideburns < 0) + { + throw new ValidationException(ValidationRules.InclusiveMinimum, "Sideburns", 0); + } + } + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FindSimilarRequest.cs b/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FindSimilarRequest.cs new file mode 100644 index 000000000000..95e803005ae7 --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FindSimilarRequest.cs @@ -0,0 +1,151 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.CognitiveServices.Vision.Face; + using Microsoft.Rest; + using Newtonsoft.Json; + using System.Collections; + using System.Collections.Generic; + using System.Linq; + + /// + /// Request body for find similar operation. + /// + public partial class FindSimilarRequest + { + /// + /// Initializes a new instance of the FindSimilarRequest class. + /// + public FindSimilarRequest() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the FindSimilarRequest class. + /// + /// FaceId of the query face. User needs to call + /// Face - Detect first to get a valid faceId. Note that this faceId is + /// not persisted and will expire 24 hours after the detection + /// call + /// An existing user-specified unique + /// candidate face list, created in Face List - Create a Face List. + /// Face list contains a set of persistedFaceIds which are persisted + /// and will never expire. Parameter faceListId and faceIds should not + /// be provided at the same time + /// An array of candidate faceIds. All of them + /// are created by Face - Detect and the faceIds will expire 24 hours + /// after the detection call. + /// The number of top similar + /// faces returned. The valid range is [1, 1000]. + /// Similar face searching mode. It can be + /// "matchPerson" or "matchFace". Possible values include: + /// 'matchPerson', 'matchFace' + public FindSimilarRequest(string faceId, string faceListId = default(string), IList faceIds = default(IList), int? maxNumOfCandidatesReturned = default(int?), string mode = default(string)) + { + FaceId = faceId; + FaceListId = faceListId; + FaceIds = faceIds; + MaxNumOfCandidatesReturned = maxNumOfCandidatesReturned; + Mode = mode; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets faceId of the query face. User needs to call Face - + /// Detect first to get a valid faceId. Note that this faceId is not + /// persisted and will expire 24 hours after the detection call + /// + [JsonProperty(PropertyName = "faceId")] + public string FaceId { get; set; } + + /// + /// Gets or sets an existing user-specified unique candidate face list, + /// created in Face List - Create a Face List. Face list contains a set + /// of persistedFaceIds which are persisted and will never expire. + /// Parameter faceListId and faceIds should not be provided at the same + /// time + /// + [JsonProperty(PropertyName = "faceListId")] + public string FaceListId { get; set; } + + /// + /// Gets or sets an array of candidate faceIds. All of them are created + /// by Face - Detect and the faceIds will expire 24 hours after the + /// detection call. + /// + [JsonProperty(PropertyName = "faceIds")] + public IList FaceIds { get; set; } + + /// + /// Gets or sets the number of top similar faces returned. The valid + /// range is [1, 1000]. + /// + [JsonProperty(PropertyName = "maxNumOfCandidatesReturned")] + public int? MaxNumOfCandidatesReturned { get; set; } + + /// + /// Gets or sets similar face searching mode. It can be "matchPerson" + /// or "matchFace". Possible values include: 'matchPerson', 'matchFace' + /// + [JsonProperty(PropertyName = "mode")] + public string Mode { get; set; } + + /// + /// Validate the object. + /// + /// + /// Thrown if validation fails + /// + public virtual void Validate() + { + if (FaceId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "FaceId"); + } + if (FaceId != null) + { + if (FaceId.Length > 64) + { + throw new ValidationException(ValidationRules.MaxLength, "FaceId", 64); + } + } + if (FaceListId != null) + { + if (FaceListId.Length > 64) + { + throw new ValidationException(ValidationRules.MaxLength, "FaceListId", 64); + } + if (!System.Text.RegularExpressions.Regex.IsMatch(FaceListId, "^[a-z0-9-_]+$")) + { + throw new ValidationException(ValidationRules.Pattern, "FaceListId", "^[a-z0-9-_]+$"); + } + } + if (FaceIds != null) + { + if (FaceIds.Count > 1000) + { + throw new ValidationException(ValidationRules.MaxItems, "FaceIds", 1000); + } + } + if (MaxNumOfCandidatesReturned > 1000) + { + throw new ValidationException(ValidationRules.InclusiveMaximum, "MaxNumOfCandidatesReturned", 1000); + } + if (MaxNumOfCandidatesReturned < 1) + { + throw new ValidationException(ValidationRules.InclusiveMinimum, "MaxNumOfCandidatesReturned", 1); + } + } + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/GetFaceListResult.cs b/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/GetFaceListResult.cs new file mode 100644 index 000000000000..8ba762f2210e --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/GetFaceListResult.cs @@ -0,0 +1,105 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.CognitiveServices.Vision.Face; + using Microsoft.Rest; + using Newtonsoft.Json; + using System.Linq; + + /// + /// Result of the GetFaceList operation. + /// + public partial class GetFaceListResult + { + /// + /// Initializes a new instance of the GetFaceListResult class. + /// + public GetFaceListResult() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the GetFaceListResult class. + /// + /// faceListId of the target face + /// list. + /// Face list's display name. + /// User-provided data attached to this face + /// list. + public GetFaceListResult(string faceListId, string name = default(string), string userData = default(string)) + { + FaceListId = faceListId; + Name = name; + UserData = userData; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets faceListId of the target face list. + /// + [JsonProperty(PropertyName = "faceListId")] + public string FaceListId { get; set; } + + /// + /// Gets or sets face list's display name. + /// + [JsonProperty(PropertyName = "name")] + public string Name { get; set; } + + /// + /// Gets or sets user-provided data attached to this face list. + /// + [JsonProperty(PropertyName = "userData")] + public string UserData { get; set; } + + /// + /// Validate the object. + /// + /// + /// Thrown if validation fails + /// + public virtual void Validate() + { + if (FaceListId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "FaceListId"); + } + if (FaceListId != null) + { + if (FaceListId.Length > 64) + { + throw new ValidationException(ValidationRules.MaxLength, "FaceListId", 64); + } + if (!System.Text.RegularExpressions.Regex.IsMatch(FaceListId, "^[a-z0-9-_]+$")) + { + throw new ValidationException(ValidationRules.Pattern, "FaceListId", "^[a-z0-9-_]+$"); + } + } + if (Name != null) + { + if (Name.Length > 128) + { + throw new ValidationException(ValidationRules.MaxLength, "Name", 128); + } + } + if (UserData != null) + { + if (UserData.Length > 16384) + { + throw new ValidationException(ValidationRules.MaxLength, "UserData", 16384); + } + } + } + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/GroupRequest.cs b/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/GroupRequest.cs new file mode 100644 index 000000000000..426fef0c5f5a --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/GroupRequest.cs @@ -0,0 +1,73 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.CognitiveServices.Vision.Face; + using Microsoft.Rest; + using Newtonsoft.Json; + using System.Collections; + using System.Collections.Generic; + using System.Linq; + + /// + /// Request body for group request. + /// + public partial class GroupRequest + { + /// + /// Initializes a new instance of the GroupRequest class. + /// + public GroupRequest() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the GroupRequest class. + /// + /// Array of candidate faceId created by Face - + /// Detect. The maximum is 1000 faces + public GroupRequest(IList faceIds) + { + FaceIds = faceIds; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets array of candidate faceId created by Face - Detect. + /// The maximum is 1000 faces + /// + [JsonProperty(PropertyName = "faceIds")] + public IList FaceIds { get; set; } + + /// + /// Validate the object. + /// + /// + /// Thrown if validation fails + /// + public virtual void Validate() + { + if (FaceIds == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "FaceIds"); + } + if (FaceIds != null) + { + if (FaceIds.Count > 1000) + { + throw new ValidationException(ValidationRules.MaxItems, "FaceIds", 1000); + } + } + } + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/GroupResponse.cs b/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/GroupResponse.cs new file mode 100644 index 000000000000..4c93668bfd58 --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/GroupResponse.cs @@ -0,0 +1,76 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.CognitiveServices.Vision.Face; + using Microsoft.Rest; + using Newtonsoft.Json; + using System.Collections; + using System.Collections.Generic; + using System.Linq; + + /// + /// An array of face groups based on face similarity. + /// + public partial class GroupResponse + { + /// + /// Initializes a new instance of the GroupResponse class. + /// + public GroupResponse() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the GroupResponse class. + /// + /// A partition of the original faces based on + /// face similarity. Groups are ranked by number of faces + /// Face ids array of faces that cannot find + /// any similar faces from original faces. + public GroupResponse(IList> groups, IList messyGroup = default(IList)) + { + Groups = groups; + MessyGroup = messyGroup; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets a partition of the original faces based on face + /// similarity. Groups are ranked by number of faces + /// + [JsonProperty(PropertyName = "groups")] + public IList> Groups { get; set; } + + /// + /// Gets or sets face ids array of faces that cannot find any similar + /// faces from original faces. + /// + [JsonProperty(PropertyName = "messyGroup")] + public IList MessyGroup { get; set; } + + /// + /// Validate the object. + /// + /// + /// Thrown if validation fails + /// + public virtual void Validate() + { + if (Groups == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "Groups"); + } + } + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/HeadPoseProperties.cs b/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/HeadPoseProperties.cs new file mode 100644 index 000000000000..7cb1bc37aa9b --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/HeadPoseProperties.cs @@ -0,0 +1,58 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.CognitiveServices.Vision.Face; + using Newtonsoft.Json; + using System.Linq; + + /// + /// Properties indicating head pose of the face. + /// + public partial class HeadPoseProperties + { + /// + /// Initializes a new instance of the HeadPoseProperties class. + /// + public HeadPoseProperties() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the HeadPoseProperties class. + /// + public HeadPoseProperties(double? roll = default(double?), double? yaw = default(double?), double? pitch = default(double?)) + { + Roll = roll; + Yaw = yaw; + Pitch = pitch; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// + [JsonProperty(PropertyName = "roll")] + public double? Roll { get; set; } + + /// + /// + [JsonProperty(PropertyName = "yaw")] + public double? Yaw { get; set; } + + /// + /// + [JsonProperty(PropertyName = "pitch")] + public double? Pitch { get; set; } + + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/IdentifyRequest.cs b/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/IdentifyRequest.cs new file mode 100644 index 000000000000..1772ab5208ee --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/IdentifyRequest.cs @@ -0,0 +1,122 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.CognitiveServices.Vision.Face; + using Microsoft.Rest; + using Newtonsoft.Json; + using System.Collections; + using System.Collections.Generic; + using System.Linq; + + /// + /// Request body for identify face operation. + /// + public partial class IdentifyRequest + { + /// + /// Initializes a new instance of the IdentifyRequest class. + /// + public IdentifyRequest() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the IdentifyRequest class. + /// + /// personGroupId of the target person + /// group, created by PersonGroups.Create + /// Array of candidate faceId created by Face - + /// Detect. + /// The number of top similar + /// faces returned. + /// Confidence threshold of + /// identification, used to judge whether one face belong to one + /// person. + public IdentifyRequest(string personGroupId, IList faceIds, int? maxNumOfCandidatesReturned = default(int?), double? confidenceThreshold = default(double?)) + { + PersonGroupId = personGroupId; + FaceIds = faceIds; + MaxNumOfCandidatesReturned = maxNumOfCandidatesReturned; + ConfidenceThreshold = confidenceThreshold; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets personGroupId of the target person group, created by + /// PersonGroups.Create + /// + [JsonProperty(PropertyName = "personGroupId")] + public string PersonGroupId { get; set; } + + /// + /// Gets or sets array of candidate faceId created by Face - Detect. + /// + [JsonProperty(PropertyName = "faceIds")] + public IList FaceIds { get; set; } + + /// + /// Gets or sets the number of top similar faces returned. + /// + [JsonProperty(PropertyName = "maxNumOfCandidatesReturned")] + public int? MaxNumOfCandidatesReturned { get; set; } + + /// + /// Gets or sets confidence threshold of identification, used to judge + /// whether one face belong to one person. + /// + [JsonProperty(PropertyName = "confidenceThreshold")] + public double? ConfidenceThreshold { get; set; } + + /// + /// Validate the object. + /// + /// + /// Thrown if validation fails + /// + public virtual void Validate() + { + if (PersonGroupId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "PersonGroupId"); + } + if (FaceIds == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "FaceIds"); + } + if (FaceIds != null) + { + if (FaceIds.Count > 1000) + { + throw new ValidationException(ValidationRules.MaxItems, "FaceIds", 1000); + } + } + if (MaxNumOfCandidatesReturned > 1000) + { + throw new ValidationException(ValidationRules.InclusiveMaximum, "MaxNumOfCandidatesReturned", 1000); + } + if (MaxNumOfCandidatesReturned < 1) + { + throw new ValidationException(ValidationRules.InclusiveMinimum, "MaxNumOfCandidatesReturned", 1); + } + if (ConfidenceThreshold > 1) + { + throw new ValidationException(ValidationRules.InclusiveMaximum, "ConfidenceThreshold", 1); + } + if (ConfidenceThreshold < 0) + { + throw new ValidationException(ValidationRules.InclusiveMinimum, "ConfidenceThreshold", 0); + } + } + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/IdentifyResultCandidate.cs b/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/IdentifyResultCandidate.cs new file mode 100644 index 000000000000..e07214df215d --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/IdentifyResultCandidate.cs @@ -0,0 +1,80 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.CognitiveServices.Vision.Face; + using Microsoft.Rest; + using Newtonsoft.Json; + using System.Linq; + + /// + /// All possible faces that may qualify. + /// + public partial class IdentifyResultCandidate + { + /// + /// Initializes a new instance of the IdentifyResultCandidate class. + /// + public IdentifyResultCandidate() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the IdentifyResultCandidate class. + /// + /// Id of candidate + /// Confidence level in the candidate person: + /// a float number between 0.0 and 1.0. + public IdentifyResultCandidate(string personId, double confidence) + { + PersonId = personId; + Confidence = confidence; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets id of candidate + /// + [JsonProperty(PropertyName = "personId")] + public string PersonId { get; set; } + + /// + /// Gets or sets confidence level in the candidate person: a float + /// number between 0.0 and 1.0. + /// + [JsonProperty(PropertyName = "confidence")] + public double Confidence { get; set; } + + /// + /// Validate the object. + /// + /// + /// Thrown if validation fails + /// + public virtual void Validate() + { + if (PersonId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "PersonId"); + } + if (Confidence > 1) + { + throw new ValidationException(ValidationRules.InclusiveMaximum, "Confidence", 1); + } + if (Confidence < 0) + { + throw new ValidationException(ValidationRules.InclusiveMinimum, "Confidence", 0); + } + } + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/IdentifyResultItem.cs b/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/IdentifyResultItem.cs new file mode 100644 index 000000000000..5ab9f1a9c8d4 --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/IdentifyResultItem.cs @@ -0,0 +1,91 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.CognitiveServices.Vision.Face; + using Microsoft.Rest; + using Newtonsoft.Json; + using System.Collections; + using System.Collections.Generic; + using System.Linq; + + /// + /// Response body for identify face operation. + /// + public partial class IdentifyResultItem + { + /// + /// Initializes a new instance of the IdentifyResultItem class. + /// + public IdentifyResultItem() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the IdentifyResultItem class. + /// + /// faceId of the query face + public IdentifyResultItem(string faceId, IList candidates) + { + FaceId = faceId; + Candidates = candidates; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets faceId of the query face + /// + [JsonProperty(PropertyName = "faceId")] + public string FaceId { get; set; } + + /// + /// + [JsonProperty(PropertyName = "candidates")] + public IList Candidates { get; set; } + + /// + /// Validate the object. + /// + /// + /// Thrown if validation fails + /// + public virtual void Validate() + { + if (FaceId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "FaceId"); + } + if (Candidates == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "Candidates"); + } + if (FaceId != null) + { + if (FaceId.Length > 64) + { + throw new ValidationException(ValidationRules.MaxLength, "FaceId", 64); + } + } + if (Candidates != null) + { + foreach (var element in Candidates) + { + if (element != null) + { + element.Validate(); + } + } + } + } + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/ImageUrl.cs b/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/ImageUrl.cs new file mode 100644 index 000000000000..97766b424e12 --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/ImageUrl.cs @@ -0,0 +1,57 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.CognitiveServices.Vision.Face; + using Microsoft.Rest; + using Newtonsoft.Json; + using System.Linq; + + public partial class ImageUrl + { + /// + /// Initializes a new instance of the ImageUrl class. + /// + public ImageUrl() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the ImageUrl class. + /// + public ImageUrl(string url) + { + Url = url; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// + [JsonProperty(PropertyName = "url")] + public string Url { get; set; } + + /// + /// Validate the object. + /// + /// + /// Thrown if validation fails + /// + public virtual void Validate() + { + if (Url == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "Url"); + } + } + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/PersonFaceResult.cs b/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/PersonFaceResult.cs new file mode 100644 index 000000000000..68e76d97c6d8 --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/PersonFaceResult.cs @@ -0,0 +1,76 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.CognitiveServices.Vision.Face; + using Microsoft.Rest; + using Newtonsoft.Json; + using System.Linq; + + /// + /// PersonFace object. + /// + public partial class PersonFaceResult + { + /// + /// Initializes a new instance of the PersonFaceResult class. + /// + public PersonFaceResult() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the PersonFaceResult class. + /// + /// The persistedFaceId of the target + /// face, which is persisted and will not expire. Different from faceId + /// created by Face - Detect and will expire in 24 hours after the + /// detection call. + /// User-provided data attached to the + /// face. + public PersonFaceResult(string persistedFaceId, string userData = default(string)) + { + PersistedFaceId = persistedFaceId; + UserData = userData; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets the persistedFaceId of the target face, which is + /// persisted and will not expire. Different from faceId created by + /// Face - Detect and will expire in 24 hours after the detection call. + /// + [JsonProperty(PropertyName = "persistedFaceId")] + public string PersistedFaceId { get; set; } + + /// + /// Gets or sets user-provided data attached to the face. + /// + [JsonProperty(PropertyName = "userData")] + public string UserData { get; set; } + + /// + /// Validate the object. + /// + /// + /// Thrown if validation fails + /// + public virtual void Validate() + { + if (PersistedFaceId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "PersistedFaceId"); + } + } + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/PersonGroupResult.cs b/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/PersonGroupResult.cs new file mode 100644 index 000000000000..4950ac12fd5f --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/PersonGroupResult.cs @@ -0,0 +1,101 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.CognitiveServices.Vision.Face; + using Microsoft.Rest; + using Newtonsoft.Json; + using System.Linq; + + /// + /// Person group object. + /// + public partial class PersonGroupResult + { + /// + /// Initializes a new instance of the PersonGroupResult class. + /// + public PersonGroupResult() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the PersonGroupResult class. + /// + /// faceListId of the target face + /// list. + /// Face list's display name. + /// User-provided data attached to this face + /// list. + public PersonGroupResult(string personGroupId, string name = default(string), string userData = default(string)) + { + PersonGroupId = personGroupId; + Name = name; + UserData = userData; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets faceListId of the target face list. + /// + [JsonProperty(PropertyName = "personGroupId")] + public string PersonGroupId { get; set; } + + /// + /// Gets or sets face list's display name. + /// + [JsonProperty(PropertyName = "name")] + public string Name { get; set; } + + /// + /// Gets or sets user-provided data attached to this face list. + /// + [JsonProperty(PropertyName = "userData")] + public string UserData { get; set; } + + /// + /// Validate the object. + /// + /// + /// Thrown if validation fails + /// + public virtual void Validate() + { + if (PersonGroupId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "PersonGroupId"); + } + if (PersonGroupId != null) + { + if (PersonGroupId.Length > 128) + { + throw new ValidationException(ValidationRules.MaxLength, "PersonGroupId", 128); + } + } + if (Name != null) + { + if (Name.Length > 128) + { + throw new ValidationException(ValidationRules.MaxLength, "Name", 128); + } + } + if (UserData != null) + { + if (UserData.Length > 16384) + { + throw new ValidationException(ValidationRules.MaxLength, "UserData", 16384); + } + } + } + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/PersonResult.cs b/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/PersonResult.cs new file mode 100644 index 000000000000..8eb9097bffd0 --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/PersonResult.cs @@ -0,0 +1,93 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.CognitiveServices.Vision.Face; + using Microsoft.Rest; + using Newtonsoft.Json; + using System.Collections; + using System.Collections.Generic; + using System.Linq; + + /// + /// Person object. + /// + public partial class PersonResult + { + /// + /// Initializes a new instance of the PersonResult class. + /// + public PersonResult() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the PersonResult class. + /// + /// personId of the target face list. + /// persistedFaceIds of registered faces + /// in the person. These persistedFaceIds are returned from Person - + /// Add a Person Face, and will not expire. + /// Person's display name. + /// User-provided data attached to this + /// person. + public PersonResult(string personId, IList persistedFaceIds = default(IList), string name = default(string), string userData = default(string)) + { + PersonId = personId; + PersistedFaceIds = persistedFaceIds; + Name = name; + UserData = userData; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets personId of the target face list. + /// + [JsonProperty(PropertyName = "personId")] + public string PersonId { get; set; } + + /// + /// Gets or sets persistedFaceIds of registered faces in the person. + /// These persistedFaceIds are returned from Person - Add a Person + /// Face, and will not expire. + /// + [JsonProperty(PropertyName = "persistedFaceIds")] + public IList PersistedFaceIds { get; set; } + + /// + /// Gets or sets person's display name. + /// + [JsonProperty(PropertyName = "name")] + public string Name { get; set; } + + /// + /// Gets or sets user-provided data attached to this person. + /// + [JsonProperty(PropertyName = "userData")] + public string UserData { get; set; } + + /// + /// Validate the object. + /// + /// + /// Thrown if validation fails + /// + public virtual void Validate() + { + if (PersonId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "PersonId"); + } + } + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/Position.cs b/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/Position.cs new file mode 100644 index 000000000000..4a20af049ae2 --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/Position.cs @@ -0,0 +1,66 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.CognitiveServices.Vision.Face; + using Newtonsoft.Json; + using System.Linq; + + /// + /// Coordinates within an image + /// + public partial class Position + { + /// + /// Initializes a new instance of the Position class. + /// + public Position() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the Position class. + /// + /// The horizontal component, in pixels. + /// The vertical component, in pixels. + public Position(int x, int y) + { + X = x; + Y = y; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets the horizontal component, in pixels. + /// + [JsonProperty(PropertyName = "x")] + public int X { get; set; } + + /// + /// Gets or sets the vertical component, in pixels. + /// + [JsonProperty(PropertyName = "y")] + public int Y { get; set; } + + /// + /// Validate the object. + /// + /// + /// Thrown if validation fails + /// + public virtual void Validate() + { + //Nothing to validate + } + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/SimilarFaceResult.cs b/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/SimilarFaceResult.cs new file mode 100644 index 000000000000..d40e1df84c48 --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/SimilarFaceResult.cs @@ -0,0 +1,100 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.CognitiveServices.Vision.Face; + using Microsoft.Rest; + using Newtonsoft.Json; + using System.Linq; + + /// + /// Response body for find similar face operation. + /// + public partial class SimilarFaceResult + { + /// + /// Initializes a new instance of the SimilarFaceResult class. + /// + public SimilarFaceResult() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the SimilarFaceResult class. + /// + /// faceId of candidate face when find by faceIds. + /// faceId is created by Face - Detect and will expire 24 hours after + /// the detection call + /// persistedFaceId of candidate face + /// when find by faceListId. persistedFaceId in face list is persisted + /// and will not expire. As showed in below response + /// Similarity confidence of the candidate + /// face. The higher confidence, the more similar. Range between + /// [0,1 + public SimilarFaceResult(string faceId, string persistedFaceId, double? confidence = default(double?)) + { + FaceId = faceId; + PersistedFaceId = persistedFaceId; + Confidence = confidence; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets faceId of candidate face when find by faceIds. faceId + /// is created by Face - Detect and will expire 24 hours after the + /// detection call + /// + [JsonProperty(PropertyName = "faceId")] + public string FaceId { get; set; } + + /// + /// Gets or sets persistedFaceId of candidate face when find by + /// faceListId. persistedFaceId in face list is persisted and will not + /// expire. As showed in below response + /// + [JsonProperty(PropertyName = "persistedFaceId")] + public string PersistedFaceId { get; set; } + + /// + /// Gets or sets similarity confidence of the candidate face. The + /// higher confidence, the more similar. Range between [0,1 + /// + [JsonProperty(PropertyName = "confidence")] + public double? Confidence { get; set; } + + /// + /// Validate the object. + /// + /// + /// Thrown if validation fails + /// + public virtual void Validate() + { + if (FaceId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "FaceId"); + } + if (PersistedFaceId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "PersistedFaceId"); + } + if (FaceId != null) + { + if (FaceId.Length > 64) + { + throw new ValidationException(ValidationRules.MaxLength, "FaceId", 64); + } + } + } + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/TrainingStatus.cs b/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/TrainingStatus.cs new file mode 100644 index 000000000000..29a37c661584 --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/TrainingStatus.cs @@ -0,0 +1,105 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.CognitiveServices.Vision.Face; + using Microsoft.Rest; + using Newtonsoft.Json; + using System.Linq; + + /// + /// Training status object. + /// + public partial class TrainingStatus + { + /// + /// Initializes a new instance of the TrainingStatus class. + /// + public TrainingStatus() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the TrainingStatus class. + /// + /// Training status: notstarted, running, + /// succeeded, failed. If the training process is waiting to perform, + /// the status is notstarted. If the training is ongoing, the status is + /// running. Status succeed means this person group is ready for Face - + /// Identify. Status failed is often caused by no person or no + /// persisted face exist in the person group. Possible values include: + /// 'nonstarted', 'running', 'succeeded', 'failed' + /// A combined UTC date and time string that + /// describes person group created time. + /// Person group last modify time in the UTC, + /// could be null value when the person group is not successfully + /// trained. + /// Show failure message when training failed + /// (omitted when training succeed). + public TrainingStatus(string status, System.DateTime? created = default(System.DateTime?), System.DateTime? lastAction = default(System.DateTime?), string message = default(string)) + { + Status = status; + Created = created; + LastAction = lastAction; + Message = message; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets training status: notstarted, running, succeeded, + /// failed. If the training process is waiting to perform, the status + /// is notstarted. If the training is ongoing, the status is running. + /// Status succeed means this person group is ready for Face - + /// Identify. Status failed is often caused by no person or no + /// persisted face exist in the person group. Possible values include: + /// 'nonstarted', 'running', 'succeeded', 'failed' + /// + [JsonProperty(PropertyName = "status")] + public string Status { get; set; } + + /// + /// Gets or sets a combined UTC date and time string that describes + /// person group created time. + /// + [JsonProperty(PropertyName = "createdDateTime")] + public System.DateTime? Created { get; set; } + + /// + /// Gets or sets person group last modify time in the UTC, could be + /// null value when the person group is not successfully trained. + /// + [JsonProperty(PropertyName = "lastActionDateTime")] + public System.DateTime? LastAction { get; set; } + + /// + /// Gets or sets show failure message when training failed (omitted + /// when training succeed). + /// + [JsonProperty(PropertyName = "message")] + public string Message { get; set; } + + /// + /// Validate the object. + /// + /// + /// Thrown if validation fails + /// + public virtual void Validate() + { + if (Status == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "Status"); + } + } + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/UpdatePersonFaceDataRequest.cs b/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/UpdatePersonFaceDataRequest.cs new file mode 100644 index 000000000000..080047cf5a51 --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/UpdatePersonFaceDataRequest.cs @@ -0,0 +1,69 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.CognitiveServices.Vision.Face; + using Microsoft.Rest; + using Newtonsoft.Json; + using System.Linq; + + /// + /// Request to update person face data. + /// + public partial class UpdatePersonFaceDataRequest + { + /// + /// Initializes a new instance of the UpdatePersonFaceDataRequest + /// class. + /// + public UpdatePersonFaceDataRequest() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the UpdatePersonFaceDataRequest + /// class. + /// + /// User-provided data attached to the face. The + /// size limit is 1KB + public UpdatePersonFaceDataRequest(string userData = default(string)) + { + UserData = userData; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets user-provided data attached to the face. The size + /// limit is 1KB + /// + [JsonProperty(PropertyName = "userData")] + public string UserData { get; set; } + + /// + /// Validate the object. + /// + /// + /// Thrown if validation fails + /// + public virtual void Validate() + { + if (UserData != null) + { + if (UserData.Length > 1024) + { + throw new ValidationException(ValidationRules.MaxLength, "UserData", 1024); + } + } + } + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/VerifyRequest.cs b/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/VerifyRequest.cs new file mode 100644 index 000000000000..6850dd9836de --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/VerifyRequest.cs @@ -0,0 +1,100 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.CognitiveServices.Vision.Face; + using Microsoft.Rest; + using Newtonsoft.Json; + using System.Linq; + + /// + /// Request body for verify operation. + /// + public partial class VerifyRequest + { + /// + /// Initializes a new instance of the VerifyRequest class. + /// + public VerifyRequest() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the VerifyRequest class. + /// + /// faceId the face, comes from Face - + /// Detect + /// Specify a certain person in a person group. + /// personId is created in Persons.Create. + /// Using existing personGroupId and + /// personId for fast loading a specified person. personGroupId is + /// created in Person Groups.Create. + public VerifyRequest(string faceId, string personId, string personGroupId) + { + FaceId = faceId; + PersonId = personId; + PersonGroupId = personGroupId; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets faceId the face, comes from Face - Detect + /// + [JsonProperty(PropertyName = "faceId")] + public string FaceId { get; set; } + + /// + /// Gets or sets specify a certain person in a person group. personId + /// is created in Persons.Create. + /// + [JsonProperty(PropertyName = "personId")] + public string PersonId { get; set; } + + /// + /// Gets or sets using existing personGroupId and personId for fast + /// loading a specified person. personGroupId is created in Person + /// Groups.Create. + /// + [JsonProperty(PropertyName = "personGroupId")] + public string PersonGroupId { get; set; } + + /// + /// Validate the object. + /// + /// + /// Thrown if validation fails + /// + public virtual void Validate() + { + if (FaceId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "FaceId"); + } + if (PersonId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "PersonId"); + } + if (PersonGroupId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "PersonGroupId"); + } + if (FaceId != null) + { + if (FaceId.Length > 64) + { + throw new ValidationException(ValidationRules.MaxLength, "FaceId", 64); + } + } + } + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/VerifyResult.cs b/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/VerifyResult.cs new file mode 100644 index 000000000000..eb6005a8f075 --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/VerifyResult.cs @@ -0,0 +1,86 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.CognitiveServices.Vision.Face; + using Microsoft.Rest; + using Newtonsoft.Json; + using System.Linq; + + /// + /// Result of the verify operation. + /// + public partial class VerifyResult + { + /// + /// Initializes a new instance of the VerifyResult class. + /// + public VerifyResult() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the VerifyResult class. + /// + /// True if the two faces belong to the same + /// person or the face belongs to the person, otherwise false. + /// "A number indicates the similarity + /// confidence of whether two faces belong to the same person, or + /// whether the face belongs to the person. By default, isIdentical is + /// set to True if similarity confidence is greater than or equal to + /// 0.5. This is useful for advanced users to override "isIdentical" + /// and fine-tune the result on their own data" + public VerifyResult(bool isIdentical, double? confidence = default(double?)) + { + IsIdentical = isIdentical; + Confidence = confidence; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets true if the two faces belong to the same person or the + /// face belongs to the person, otherwise false. + /// + [JsonProperty(PropertyName = "isIdentical")] + public bool IsIdentical { get; set; } + + /// + /// Gets or sets "A number indicates the similarity confidence of + /// whether two faces belong to the same person, or whether the face + /// belongs to the person. By default, isIdentical is set to True if + /// similarity confidence is greater than or equal to 0.5. This is + /// useful for advanced users to override "isIdentical" and fine-tune + /// the result on their own data" + /// + [JsonProperty(PropertyName = "confidence")] + public double? Confidence { get; set; } + + /// + /// Validate the object. + /// + /// + /// Thrown if validation fails + /// + public virtual void Validate() + { + if (Confidence > 1) + { + throw new ValidationException(ValidationRules.InclusiveMaximum, "Confidence", 1); + } + if (Confidence < 0) + { + throw new ValidationException(ValidationRules.InclusiveMinimum, "Confidence", 0); + } + } + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Person.cs b/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Person.cs new file mode 100644 index 000000000000..8a43a4278601 --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Person.cs @@ -0,0 +1,1762 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.Rest; + using Models; + using Newtonsoft.Json; + using System.Collections; + using System.Collections.Generic; + using System.IO; + using System.Net; + using System.Net.Http; + using System.Threading; + using System.Threading.Tasks; + + /// + /// Person operations. + /// + public partial class Person : IServiceOperations, IPerson + { + /// + /// Initializes a new instance of the Person class. + /// + /// + /// Reference to the service client. + /// + /// + /// Thrown when a required parameter is null + /// + public Person(FaceAPI client) + { + if (client == null) + { + throw new System.ArgumentNullException("client"); + } + Client = client; + } + + /// + /// Gets a reference to the FaceAPI + /// + public FaceAPI Client { get; private set; } + + /// + /// Create a new person in a specified person group. + /// + /// + /// Specifying the target person group to create the person. + /// + /// + /// Display name of the target person. The maximum length is 128. + /// + /// + /// Optional fields for user-provided data attached to a person. Size limit is + /// 16KB. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task> CreateWithHttpMessagesAsync(string personGroupId, string name = default(string), string userData = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.AzureRegion1 == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); + } + if (personGroupId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "personGroupId"); + } + if (Client.SubscriptionKey == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); + } + if (name != null) + { + if (name.Length > 128) + { + throw new ValidationException(ValidationRules.MaxLength, "name", 128); + } + } + if (userData != null) + { + if (userData.Length > 16384) + { + throw new ValidationException(ValidationRules.MaxLength, "userData", 16384); + } + } + CreatePersonRequest body = new CreatePersonRequest(); + if (name != null || userData != null) + { + body.Name = name; + body.UserData = userData; + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("personGroupId", personGroupId); + tracingParameters.Add("body", body); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "Create", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "persongroups/{personGroupId}/persons"; + _url = _url.Replace("{azureRegion}", Client.AzureRegion1); + _url = _url.Replace("{personGroupId}", System.Uri.EscapeDataString(personGroupId)); + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("POST"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.SubscriptionKey != null) + { + if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) + { + _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); + } + _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + if(body != null) + { + _requestContent = Rest.Serialization.SafeJsonConvert.SerializeObject(body, Client.SerializationSettings); + _httpRequest.Content = new StringContent(_requestContent, System.Text.Encoding.UTF8); + _httpRequest.Content.Headers.ContentType =System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json; charset=utf-8"); + } + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + // Deserialize Response + if ((int)_statusCode == 200) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + } + catch (JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); + } + } + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + /// + /// List all persons in a person group, and retrieve person information + /// (including personId, name, userData and persistedFaceIds of registered + /// faces of the person). + /// + /// + /// personGroupId of the target person group. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task>> ListWithHttpMessagesAsync(string personGroupId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.AzureRegion1 == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); + } + if (personGroupId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "personGroupId"); + } + if (Client.SubscriptionKey == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("personGroupId", personGroupId); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "List", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "persongroups/{personGroupId}/persons"; + _url = _url.Replace("{azureRegion}", Client.AzureRegion1); + _url = _url.Replace("{personGroupId}", System.Uri.EscapeDataString(personGroupId)); + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("GET"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.SubscriptionKey != null) + { + if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) + { + _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); + } + _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse>(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + // Deserialize Response + if ((int)_statusCode == 200) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject>(_responseContent, Client.DeserializationSettings); + } + catch (JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); + } + } + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + /// + /// Delete an existing person from a person group. Persisted face images of the + /// person will also be deleted. + /// + /// + /// Specifying the person group containing the person. + /// + /// + /// The target personId to delete. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task DeleteWithHttpMessagesAsync(string personGroupId, string personId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.AzureRegion1 == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); + } + if (personGroupId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "personGroupId"); + } + if (personId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "personId"); + } + if (Client.SubscriptionKey == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("personGroupId", personGroupId); + tracingParameters.Add("personId", personId); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "Delete", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "persongroups/{personGroupId}/persons/{personId}"; + _url = _url.Replace("{azureRegion}", Client.AzureRegion1); + _url = _url.Replace("{personGroupId}", System.Uri.EscapeDataString(personGroupId)); + _url = _url.Replace("{personId}", System.Uri.EscapeDataString(personId)); + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("DELETE"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.SubscriptionKey != null) + { + if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) + { + _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); + } + _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + /// + /// Retrieve a person's information, including registered persisted faces, name + /// and userData. + /// + /// + /// Specifying the person group containing the target person. + /// + /// + /// Specifying the target person. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task> GetWithHttpMessagesAsync(string personGroupId, string personId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.AzureRegion1 == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); + } + if (personGroupId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "personGroupId"); + } + if (personId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "personId"); + } + if (Client.SubscriptionKey == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("personGroupId", personGroupId); + tracingParameters.Add("personId", personId); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "Get", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "persongroups/{personGroupId}/persons/{personId}"; + _url = _url.Replace("{azureRegion}", Client.AzureRegion1); + _url = _url.Replace("{personGroupId}", System.Uri.EscapeDataString(personGroupId)); + _url = _url.Replace("{personId}", System.Uri.EscapeDataString(personId)); + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("GET"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.SubscriptionKey != null) + { + if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) + { + _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); + } + _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + // Deserialize Response + if ((int)_statusCode == 200) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + } + catch (JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); + } + } + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + /// + /// Update name or userData of a person. + /// + /// + /// Specifying the person group containing the target person. + /// + /// + /// personId of the target person. + /// + /// + /// Display name of the target person. The maximum length is 128. + /// + /// + /// Optional fields for user-provided data attached to a person. Size limit is + /// 16KB. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task UpdateWithHttpMessagesAsync(string personGroupId, string personId, string name = default(string), string userData = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.AzureRegion1 == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); + } + if (personGroupId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "personGroupId"); + } + if (personId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "personId"); + } + if (Client.SubscriptionKey == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); + } + if (name != null) + { + if (name.Length > 128) + { + throw new ValidationException(ValidationRules.MaxLength, "name", 128); + } + } + if (userData != null) + { + if (userData.Length > 16384) + { + throw new ValidationException(ValidationRules.MaxLength, "userData", 16384); + } + } + CreatePersonRequest body = new CreatePersonRequest(); + if (name != null || userData != null) + { + body.Name = name; + body.UserData = userData; + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("personGroupId", personGroupId); + tracingParameters.Add("personId", personId); + tracingParameters.Add("body", body); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "Update", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "persongroups/{personGroupId}/persons/{personId}"; + _url = _url.Replace("{azureRegion}", Client.AzureRegion1); + _url = _url.Replace("{personGroupId}", System.Uri.EscapeDataString(personGroupId)); + _url = _url.Replace("{personId}", System.Uri.EscapeDataString(personId)); + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("PATCH"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.SubscriptionKey != null) + { + if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) + { + _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); + } + _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + if(body != null) + { + _requestContent = Rest.Serialization.SafeJsonConvert.SerializeObject(body, Client.SerializationSettings); + _httpRequest.Content = new StringContent(_requestContent, System.Text.Encoding.UTF8); + _httpRequest.Content.Headers.ContentType =System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json; charset=utf-8"); + } + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + /// + /// Delete a face from a person. Relative image for the persisted face will + /// also be deleted. + /// + /// + /// Specifying the person group containing the target person. + /// + /// + /// Specifying the person that the target persisted face belong to. + /// + /// + /// The persisted face to remove. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task DeleteFaceWithHttpMessagesAsync(string personGroupId, string personId, string persistedFaceId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.AzureRegion1 == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); + } + if (personGroupId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "personGroupId"); + } + if (personId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "personId"); + } + if (persistedFaceId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "persistedFaceId"); + } + if (Client.SubscriptionKey == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("personGroupId", personGroupId); + tracingParameters.Add("personId", personId); + tracingParameters.Add("persistedFaceId", persistedFaceId); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "DeleteFace", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "persongroups/{personGroupId}/persons/{personId}/persistedFaces/{persistedFaceId}"; + _url = _url.Replace("{azureRegion}", Client.AzureRegion1); + _url = _url.Replace("{personGroupId}", System.Uri.EscapeDataString(personGroupId)); + _url = _url.Replace("{personId}", System.Uri.EscapeDataString(personId)); + _url = _url.Replace("{persistedFaceId}", System.Uri.EscapeDataString(persistedFaceId)); + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("DELETE"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.SubscriptionKey != null) + { + if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) + { + _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); + } + _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + /// + /// Retrieve information about a persisted face (specified by persistedFaceId, + /// personId and its belonging personGroupId). + /// + /// + /// Specifying the person group containing the target person. + /// + /// + /// Specifying the target person that the face belongs to. + /// + /// + /// The persistedFaceId of the target persisted face of the person. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task> GetFaceWithHttpMessagesAsync(string personGroupId, string personId, string persistedFaceId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.AzureRegion1 == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); + } + if (personGroupId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "personGroupId"); + } + if (personId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "personId"); + } + if (persistedFaceId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "persistedFaceId"); + } + if (Client.SubscriptionKey == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("personGroupId", personGroupId); + tracingParameters.Add("personId", personId); + tracingParameters.Add("persistedFaceId", persistedFaceId); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "GetFace", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "persongroups/{personGroupId}/persons/{personId}/persistedFaces/{persistedFaceId}"; + _url = _url.Replace("{azureRegion}", Client.AzureRegion1); + _url = _url.Replace("{personGroupId}", System.Uri.EscapeDataString(personGroupId)); + _url = _url.Replace("{personId}", System.Uri.EscapeDataString(personId)); + _url = _url.Replace("{persistedFaceId}", System.Uri.EscapeDataString(persistedFaceId)); + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("GET"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.SubscriptionKey != null) + { + if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) + { + _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); + } + _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + // Deserialize Response + if ((int)_statusCode == 200) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + } + catch (JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); + } + } + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + /// + /// Update a person persisted face's userData field. + /// + /// + /// Specifying the person group containing the target person. + /// + /// + /// personId of the target person. + /// + /// + /// persistedFaceId of target face, which is persisted and will not expire. + /// + /// + /// User-provided data attached to the face. The size limit is 1KB + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task UpdateFaceWithHttpMessagesAsync(string personGroupId, string personId, string persistedFaceId, string userData = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.AzureRegion1 == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); + } + if (personGroupId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "personGroupId"); + } + if (personId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "personId"); + } + if (persistedFaceId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "persistedFaceId"); + } + if (Client.SubscriptionKey == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); + } + if (userData != null) + { + if (userData.Length > 1024) + { + throw new ValidationException(ValidationRules.MaxLength, "userData", 1024); + } + } + UpdatePersonFaceDataRequest body = new UpdatePersonFaceDataRequest(); + if (userData != null) + { + body.UserData = userData; + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("personGroupId", personGroupId); + tracingParameters.Add("personId", personId); + tracingParameters.Add("persistedFaceId", persistedFaceId); + tracingParameters.Add("body", body); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "UpdateFace", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "persongroups/{personGroupId}/persons/{personId}/persistedFaces/{persistedFaceId}"; + _url = _url.Replace("{azureRegion}", Client.AzureRegion1); + _url = _url.Replace("{personGroupId}", System.Uri.EscapeDataString(personGroupId)); + _url = _url.Replace("{personId}", System.Uri.EscapeDataString(personId)); + _url = _url.Replace("{persistedFaceId}", System.Uri.EscapeDataString(persistedFaceId)); + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("PATCH"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.SubscriptionKey != null) + { + if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) + { + _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); + } + _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + if(body != null) + { + _requestContent = Rest.Serialization.SafeJsonConvert.SerializeObject(body, Client.SerializationSettings); + _httpRequest.Content = new StringContent(_requestContent, System.Text.Encoding.UTF8); + _httpRequest.Content.Headers.ContentType =System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json; charset=utf-8"); + } + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + /// + /// Add a representative face to a person for identification. The input face is + /// specified as an image with a targetFace rectangle. + /// + /// + /// Specifying the person group containing the target person. + /// + /// + /// Target person that the face is added to. + /// + /// + /// User-specified data about the target face to add for any purpose. The + /// maximum length is 1KB. + /// + /// + /// A face rectangle to specify the target face to be added to a person in the + /// format of "targetFace=left,top,width,height". E.g. + /// "targetFace=10,10,100,100". If there is more than one face in the image, + /// targetFace is required to specify which face to add. No targetFace means + /// there is only one face detected in the entire image. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task AddFaceWithHttpMessagesAsync(string personGroupId, string personId, string userData = default(string), string targetFace = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.AzureRegion1 == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); + } + if (personGroupId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "personGroupId"); + } + if (personId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "personId"); + } + if (Client.SubscriptionKey == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("personGroupId", personGroupId); + tracingParameters.Add("personId", personId); + tracingParameters.Add("userData", userData); + tracingParameters.Add("targetFace", targetFace); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "AddFace", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "persongroups/{personGroupId}/persons/{personId}/persistedFaces"; + _url = _url.Replace("{azureRegion}", Client.AzureRegion1); + _url = _url.Replace("{personGroupId}", System.Uri.EscapeDataString(personGroupId)); + _url = _url.Replace("{personId}", System.Uri.EscapeDataString(personId)); + List _queryParameters = new List(); + if (userData != null) + { + _queryParameters.Add(string.Format("userData={0}", System.Uri.EscapeDataString(userData))); + } + if (targetFace != null) + { + _queryParameters.Add(string.Format("targetFace={0}", System.Uri.EscapeDataString(targetFace))); + } + if (_queryParameters.Count > 0) + { + _url += "?" + string.Join("&", _queryParameters); + } + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("POST"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.SubscriptionKey != null) + { + if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) + { + _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); + } + _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + /// + /// Add a representative face to a person for identification. The input face is + /// specified as an image with a targetFace rectangle. + /// + /// + /// Specifying the person group containing the target person. + /// + /// + /// Target person that the face is added to. + /// + /// + /// User-specified data about the target face to add for any purpose. The + /// maximum length is 1KB. + /// + /// + /// A face rectangle to specify the target face to be added to a person, in the + /// format of "targetFace=left,top,width,height". E.g. + /// "targetFace=10,10,100,100". If there is more than one face in the image, + /// targetFace is required to specify which face to add. No targetFace means + /// there is only one face detected in the entire image. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task AddFaceFromStreamWithHttpMessagesAsync(string personGroupId, string personId, string userData = default(string), string targetFace = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.AzureRegion1 == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); + } + if (personGroupId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "personGroupId"); + } + if (personId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "personId"); + } + if (Client.SubscriptionKey == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("personGroupId", personGroupId); + tracingParameters.Add("personId", personId); + tracingParameters.Add("userData", userData); + tracingParameters.Add("targetFace", targetFace); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "AddFaceFromStream", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "persongroups/{personGroupId}/persons/{personId}/persistedFaces"; + _url = _url.Replace("{azureRegion}", Client.AzureRegion1); + _url = _url.Replace("{personGroupId}", System.Uri.EscapeDataString(personGroupId)); + _url = _url.Replace("{personId}", System.Uri.EscapeDataString(personId)); + List _queryParameters = new List(); + if (userData != null) + { + _queryParameters.Add(string.Format("userData={0}", System.Uri.EscapeDataString(userData))); + } + if (targetFace != null) + { + _queryParameters.Add(string.Format("targetFace={0}", System.Uri.EscapeDataString(targetFace))); + } + if (_queryParameters.Count > 0) + { + _url += "?" + string.Join("&", _queryParameters); + } + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("POST"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.SubscriptionKey != null) + { + if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) + { + _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); + } + _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/PersonExtensions.cs b/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/PersonExtensions.cs new file mode 100644 index 000000000000..f32deac56774 --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/PersonExtensions.cs @@ -0,0 +1,503 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Models; + using System.Collections; + using System.Collections.Generic; + using System.Threading; + using System.Threading.Tasks; + + /// + /// Extension methods for Person. + /// + public static partial class PersonExtensions + { + /// + /// Create a new person in a specified person group. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Specifying the target person group to create the person. + /// + /// + /// Display name of the target person. The maximum length is 128. + /// + /// + /// Optional fields for user-provided data attached to a person. Size limit is + /// 16KB. + /// + public static CreatePersonResult Create(this IPerson operations, string personGroupId, string name = default(string), string userData = default(string)) + { + return operations.CreateAsync(personGroupId, name, userData).GetAwaiter().GetResult(); + } + + /// + /// Create a new person in a specified person group. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Specifying the target person group to create the person. + /// + /// + /// Display name of the target person. The maximum length is 128. + /// + /// + /// Optional fields for user-provided data attached to a person. Size limit is + /// 16KB. + /// + /// + /// The cancellation token. + /// + public static async Task CreateAsync(this IPerson operations, string personGroupId, string name = default(string), string userData = default(string), CancellationToken cancellationToken = default(CancellationToken)) + { + using (var _result = await operations.CreateWithHttpMessagesAsync(personGroupId, name, userData, null, cancellationToken).ConfigureAwait(false)) + { + return _result.Body; + } + } + + /// + /// List all persons in a person group, and retrieve person information + /// (including personId, name, userData and persistedFaceIds of registered + /// faces of the person). + /// + /// + /// The operations group for this extension method. + /// + /// + /// personGroupId of the target person group. + /// + public static IList List(this IPerson operations, string personGroupId) + { + return operations.ListAsync(personGroupId).GetAwaiter().GetResult(); + } + + /// + /// List all persons in a person group, and retrieve person information + /// (including personId, name, userData and persistedFaceIds of registered + /// faces of the person). + /// + /// + /// The operations group for this extension method. + /// + /// + /// personGroupId of the target person group. + /// + /// + /// The cancellation token. + /// + public static async Task> ListAsync(this IPerson operations, string personGroupId, CancellationToken cancellationToken = default(CancellationToken)) + { + using (var _result = await operations.ListWithHttpMessagesAsync(personGroupId, null, cancellationToken).ConfigureAwait(false)) + { + return _result.Body; + } + } + + /// + /// Delete an existing person from a person group. Persisted face images of the + /// person will also be deleted. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Specifying the person group containing the person. + /// + /// + /// The target personId to delete. + /// + public static void Delete(this IPerson operations, string personGroupId, string personId) + { + operations.DeleteAsync(personGroupId, personId).GetAwaiter().GetResult(); + } + + /// + /// Delete an existing person from a person group. Persisted face images of the + /// person will also be deleted. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Specifying the person group containing the person. + /// + /// + /// The target personId to delete. + /// + /// + /// The cancellation token. + /// + public static async Task DeleteAsync(this IPerson operations, string personGroupId, string personId, CancellationToken cancellationToken = default(CancellationToken)) + { + (await operations.DeleteWithHttpMessagesAsync(personGroupId, personId, null, cancellationToken).ConfigureAwait(false)).Dispose(); + } + + /// + /// Retrieve a person's information, including registered persisted faces, name + /// and userData. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Specifying the person group containing the target person. + /// + /// + /// Specifying the target person. + /// + public static PersonResult Get(this IPerson operations, string personGroupId, string personId) + { + return operations.GetAsync(personGroupId, personId).GetAwaiter().GetResult(); + } + + /// + /// Retrieve a person's information, including registered persisted faces, name + /// and userData. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Specifying the person group containing the target person. + /// + /// + /// Specifying the target person. + /// + /// + /// The cancellation token. + /// + public static async Task GetAsync(this IPerson operations, string personGroupId, string personId, CancellationToken cancellationToken = default(CancellationToken)) + { + using (var _result = await operations.GetWithHttpMessagesAsync(personGroupId, personId, null, cancellationToken).ConfigureAwait(false)) + { + return _result.Body; + } + } + + /// + /// Update name or userData of a person. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Specifying the person group containing the target person. + /// + /// + /// personId of the target person. + /// + /// + /// Display name of the target person. The maximum length is 128. + /// + /// + /// Optional fields for user-provided data attached to a person. Size limit is + /// 16KB. + /// + public static void Update(this IPerson operations, string personGroupId, string personId, string name = default(string), string userData = default(string)) + { + operations.UpdateAsync(personGroupId, personId, name, userData).GetAwaiter().GetResult(); + } + + /// + /// Update name or userData of a person. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Specifying the person group containing the target person. + /// + /// + /// personId of the target person. + /// + /// + /// Display name of the target person. The maximum length is 128. + /// + /// + /// Optional fields for user-provided data attached to a person. Size limit is + /// 16KB. + /// + /// + /// The cancellation token. + /// + public static async Task UpdateAsync(this IPerson operations, string personGroupId, string personId, string name = default(string), string userData = default(string), CancellationToken cancellationToken = default(CancellationToken)) + { + (await operations.UpdateWithHttpMessagesAsync(personGroupId, personId, name, userData, null, cancellationToken).ConfigureAwait(false)).Dispose(); + } + + /// + /// Delete a face from a person. Relative image for the persisted face will + /// also be deleted. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Specifying the person group containing the target person. + /// + /// + /// Specifying the person that the target persisted face belong to. + /// + /// + /// The persisted face to remove. + /// + public static void DeleteFace(this IPerson operations, string personGroupId, string personId, string persistedFaceId) + { + operations.DeleteFaceAsync(personGroupId, personId, persistedFaceId).GetAwaiter().GetResult(); + } + + /// + /// Delete a face from a person. Relative image for the persisted face will + /// also be deleted. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Specifying the person group containing the target person. + /// + /// + /// Specifying the person that the target persisted face belong to. + /// + /// + /// The persisted face to remove. + /// + /// + /// The cancellation token. + /// + public static async Task DeleteFaceAsync(this IPerson operations, string personGroupId, string personId, string persistedFaceId, CancellationToken cancellationToken = default(CancellationToken)) + { + (await operations.DeleteFaceWithHttpMessagesAsync(personGroupId, personId, persistedFaceId, null, cancellationToken).ConfigureAwait(false)).Dispose(); + } + + /// + /// Retrieve information about a persisted face (specified by persistedFaceId, + /// personId and its belonging personGroupId). + /// + /// + /// The operations group for this extension method. + /// + /// + /// Specifying the person group containing the target person. + /// + /// + /// Specifying the target person that the face belongs to. + /// + /// + /// The persistedFaceId of the target persisted face of the person. + /// + public static PersonFaceResult GetFace(this IPerson operations, string personGroupId, string personId, string persistedFaceId) + { + return operations.GetFaceAsync(personGroupId, personId, persistedFaceId).GetAwaiter().GetResult(); + } + + /// + /// Retrieve information about a persisted face (specified by persistedFaceId, + /// personId and its belonging personGroupId). + /// + /// + /// The operations group for this extension method. + /// + /// + /// Specifying the person group containing the target person. + /// + /// + /// Specifying the target person that the face belongs to. + /// + /// + /// The persistedFaceId of the target persisted face of the person. + /// + /// + /// The cancellation token. + /// + public static async Task GetFaceAsync(this IPerson operations, string personGroupId, string personId, string persistedFaceId, CancellationToken cancellationToken = default(CancellationToken)) + { + using (var _result = await operations.GetFaceWithHttpMessagesAsync(personGroupId, personId, persistedFaceId, null, cancellationToken).ConfigureAwait(false)) + { + return _result.Body; + } + } + + /// + /// Update a person persisted face's userData field. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Specifying the person group containing the target person. + /// + /// + /// personId of the target person. + /// + /// + /// persistedFaceId of target face, which is persisted and will not expire. + /// + /// + /// User-provided data attached to the face. The size limit is 1KB + /// + public static void UpdateFace(this IPerson operations, string personGroupId, string personId, string persistedFaceId, string userData = default(string)) + { + operations.UpdateFaceAsync(personGroupId, personId, persistedFaceId, userData).GetAwaiter().GetResult(); + } + + /// + /// Update a person persisted face's userData field. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Specifying the person group containing the target person. + /// + /// + /// personId of the target person. + /// + /// + /// persistedFaceId of target face, which is persisted and will not expire. + /// + /// + /// User-provided data attached to the face. The size limit is 1KB + /// + /// + /// The cancellation token. + /// + public static async Task UpdateFaceAsync(this IPerson operations, string personGroupId, string personId, string persistedFaceId, string userData = default(string), CancellationToken cancellationToken = default(CancellationToken)) + { + (await operations.UpdateFaceWithHttpMessagesAsync(personGroupId, personId, persistedFaceId, userData, null, cancellationToken).ConfigureAwait(false)).Dispose(); + } + + /// + /// Add a representative face to a person for identification. The input face is + /// specified as an image with a targetFace rectangle. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Specifying the person group containing the target person. + /// + /// + /// Target person that the face is added to. + /// + /// + /// User-specified data about the target face to add for any purpose. The + /// maximum length is 1KB. + /// + /// + /// A face rectangle to specify the target face to be added to a person in the + /// format of "targetFace=left,top,width,height". E.g. + /// "targetFace=10,10,100,100". If there is more than one face in the image, + /// targetFace is required to specify which face to add. No targetFace means + /// there is only one face detected in the entire image. + /// + public static void AddFace(this IPerson operations, string personGroupId, string personId, string userData = default(string), string targetFace = default(string)) + { + operations.AddFaceAsync(personGroupId, personId, userData, targetFace).GetAwaiter().GetResult(); + } + + /// + /// Add a representative face to a person for identification. The input face is + /// specified as an image with a targetFace rectangle. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Specifying the person group containing the target person. + /// + /// + /// Target person that the face is added to. + /// + /// + /// User-specified data about the target face to add for any purpose. The + /// maximum length is 1KB. + /// + /// + /// A face rectangle to specify the target face to be added to a person in the + /// format of "targetFace=left,top,width,height". E.g. + /// "targetFace=10,10,100,100". If there is more than one face in the image, + /// targetFace is required to specify which face to add. No targetFace means + /// there is only one face detected in the entire image. + /// + /// + /// The cancellation token. + /// + public static async Task AddFaceAsync(this IPerson operations, string personGroupId, string personId, string userData = default(string), string targetFace = default(string), CancellationToken cancellationToken = default(CancellationToken)) + { + (await operations.AddFaceWithHttpMessagesAsync(personGroupId, personId, userData, targetFace, null, cancellationToken).ConfigureAwait(false)).Dispose(); + } + + /// + /// Add a representative face to a person for identification. The input face is + /// specified as an image with a targetFace rectangle. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Specifying the person group containing the target person. + /// + /// + /// Target person that the face is added to. + /// + /// + /// User-specified data about the target face to add for any purpose. The + /// maximum length is 1KB. + /// + /// + /// A face rectangle to specify the target face to be added to a person, in the + /// format of "targetFace=left,top,width,height". E.g. + /// "targetFace=10,10,100,100". If there is more than one face in the image, + /// targetFace is required to specify which face to add. No targetFace means + /// there is only one face detected in the entire image. + /// + public static void AddFaceFromStream(this IPerson operations, string personGroupId, string personId, string userData = default(string), string targetFace = default(string)) + { + operations.AddFaceFromStreamAsync(personGroupId, personId, userData, targetFace).GetAwaiter().GetResult(); + } + + /// + /// Add a representative face to a person for identification. The input face is + /// specified as an image with a targetFace rectangle. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Specifying the person group containing the target person. + /// + /// + /// Target person that the face is added to. + /// + /// + /// User-specified data about the target face to add for any purpose. The + /// maximum length is 1KB. + /// + /// + /// A face rectangle to specify the target face to be added to a person, in the + /// format of "targetFace=left,top,width,height". E.g. + /// "targetFace=10,10,100,100". If there is more than one face in the image, + /// targetFace is required to specify which face to add. No targetFace means + /// there is only one face detected in the entire image. + /// + /// + /// The cancellation token. + /// + public static async Task AddFaceFromStreamAsync(this IPerson operations, string personGroupId, string personId, string userData = default(string), string targetFace = default(string), CancellationToken cancellationToken = default(CancellationToken)) + { + (await operations.AddFaceFromStreamWithHttpMessagesAsync(personGroupId, personId, userData, targetFace, null, cancellationToken).ConfigureAwait(false)).Dispose(); + } + + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/PersonGroup.cs b/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/PersonGroup.cs new file mode 100644 index 000000000000..420f59d732eb --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/PersonGroup.cs @@ -0,0 +1,1189 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.Rest; + using Models; + using Newtonsoft.Json; + using System.Collections; + using System.Collections.Generic; + using System.IO; + using System.Net; + using System.Net.Http; + using System.Threading; + using System.Threading.Tasks; + + /// + /// PersonGroup operations. + /// + public partial class PersonGroup : IServiceOperations, IPersonGroup + { + /// + /// Initializes a new instance of the PersonGroup class. + /// + /// + /// Reference to the service client. + /// + /// + /// Thrown when a required parameter is null + /// + public PersonGroup(FaceAPI client) + { + if (client == null) + { + throw new System.ArgumentNullException("client"); + } + Client = client; + } + + /// + /// Gets a reference to the FaceAPI + /// + public FaceAPI Client { get; private set; } + + /// + /// Create a new person group with specified personGroupId, name and + /// user-provided userData. + /// + /// + /// User-provided personGroupId as a string. + /// + /// + /// Name of the face list, maximum length is 128. + /// + /// + /// Optional user defined data for the face list. Length should not exceed + /// 16KB. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task CreateWithHttpMessagesAsync(string personGroupId, string name = default(string), string userData = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.AzureRegion1 == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); + } + if (personGroupId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "personGroupId"); + } + if (personGroupId != null) + { + if (personGroupId.Length > 64) + { + throw new ValidationException(ValidationRules.MaxLength, "personGroupId", 64); + } + if (!System.Text.RegularExpressions.Regex.IsMatch(personGroupId, "^[a-z0-9-_]+$")) + { + throw new ValidationException(ValidationRules.Pattern, "personGroupId", "^[a-z0-9-_]+$"); + } + } + if (Client.SubscriptionKey == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); + } + if (name != null) + { + if (name.Length > 128) + { + throw new ValidationException(ValidationRules.MaxLength, "name", 128); + } + } + if (userData != null) + { + if (userData.Length > 16384) + { + throw new ValidationException(ValidationRules.MaxLength, "userData", 16384); + } + } + CreatePersonGroupRequest body = new CreatePersonGroupRequest(); + if (name != null || userData != null) + { + body.Name = name; + body.UserData = userData; + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("personGroupId", personGroupId); + tracingParameters.Add("body", body); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "Create", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "persongroups/{personGroupId}"; + _url = _url.Replace("{azureRegion}", Client.AzureRegion1); + _url = _url.Replace("{personGroupId}", System.Uri.EscapeDataString(personGroupId)); + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("PUT"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.SubscriptionKey != null) + { + if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) + { + _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); + } + _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + if(body != null) + { + _requestContent = Rest.Serialization.SafeJsonConvert.SerializeObject(body, Client.SerializationSettings); + _httpRequest.Content = new StringContent(_requestContent, System.Text.Encoding.UTF8); + _httpRequest.Content.Headers.ContentType =System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json; charset=utf-8"); + } + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + /// + /// Delete an existing person group. Persisted face images of all people in the + /// person group will also be deleted. + /// + /// + /// The personGroupId of the person group to be deleted. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task DeleteWithHttpMessagesAsync(string personGroupId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.AzureRegion1 == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); + } + if (personGroupId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "personGroupId"); + } + if (Client.SubscriptionKey == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("personGroupId", personGroupId); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "Delete", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "persongroups/{personGroupId}"; + _url = _url.Replace("{azureRegion}", Client.AzureRegion1); + _url = _url.Replace("{personGroupId}", System.Uri.EscapeDataString(personGroupId)); + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("DELETE"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.SubscriptionKey != null) + { + if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) + { + _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); + } + _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + /// + /// Retrieve the information of a person group, including its name and + /// userData. + /// + /// + /// personGroupId of the target person group. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task> GetWithHttpMessagesAsync(string personGroupId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.AzureRegion1 == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); + } + if (personGroupId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "personGroupId"); + } + if (Client.SubscriptionKey == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("personGroupId", personGroupId); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "Get", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "persongroups/{personGroupId}"; + _url = _url.Replace("{azureRegion}", Client.AzureRegion1); + _url = _url.Replace("{personGroupId}", System.Uri.EscapeDataString(personGroupId)); + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("GET"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.SubscriptionKey != null) + { + if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) + { + _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); + } + _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + // Deserialize Response + if ((int)_statusCode == 200) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + } + catch (JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); + } + } + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + /// + /// Update an existing person group's display name and userData. The properties + /// which does not appear in request body will not be updated. + /// + /// + /// personGroupId of the person group to be updated. + /// + /// + /// Name of the face list, maximum length is 128. + /// + /// + /// Optional user defined data for the face list. Length should not exceed + /// 16KB. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task UpdateWithHttpMessagesAsync(string personGroupId, string name = default(string), string userData = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.AzureRegion1 == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); + } + if (personGroupId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "personGroupId"); + } + if (Client.SubscriptionKey == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); + } + if (name != null) + { + if (name.Length > 128) + { + throw new ValidationException(ValidationRules.MaxLength, "name", 128); + } + } + if (userData != null) + { + if (userData.Length > 16384) + { + throw new ValidationException(ValidationRules.MaxLength, "userData", 16384); + } + } + CreatePersonGroupRequest body = new CreatePersonGroupRequest(); + if (name != null || userData != null) + { + body.Name = name; + body.UserData = userData; + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("personGroupId", personGroupId); + tracingParameters.Add("body", body); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "Update", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "persongroups/{personGroupId}"; + _url = _url.Replace("{azureRegion}", Client.AzureRegion1); + _url = _url.Replace("{personGroupId}", System.Uri.EscapeDataString(personGroupId)); + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("PATCH"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.SubscriptionKey != null) + { + if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) + { + _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); + } + _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + if(body != null) + { + _requestContent = Rest.Serialization.SafeJsonConvert.SerializeObject(body, Client.SerializationSettings); + _httpRequest.Content = new StringContent(_requestContent, System.Text.Encoding.UTF8); + _httpRequest.Content.Headers.ContentType =System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json; charset=utf-8"); + } + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + /// + /// Retrieve the training status of a person group (completed or ongoing). + /// + /// + /// personGroupId of target person group. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task> GetTrainingStatusWithHttpMessagesAsync(string personGroupId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.AzureRegion1 == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); + } + if (personGroupId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "personGroupId"); + } + if (Client.SubscriptionKey == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("personGroupId", personGroupId); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "GetTrainingStatus", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "persongroups/{personGroupId}/training"; + _url = _url.Replace("{azureRegion}", Client.AzureRegion1); + _url = _url.Replace("{personGroupId}", System.Uri.EscapeDataString(personGroupId)); + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("GET"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.SubscriptionKey != null) + { + if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) + { + _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); + } + _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + // Deserialize Response + if ((int)_statusCode == 200) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + } + catch (JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); + } + } + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + /// + /// List person groups and their information. + /// + /// + /// List person groups from the least personGroupId greater than the "start". + /// + /// + /// The number of person groups to list. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task>> ListWithHttpMessagesAsync(string start = default(string), int? top = 1000, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.AzureRegion1 == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); + } + if (start != null) + { + if (start.Length > 64) + { + throw new ValidationException(ValidationRules.MaxLength, "start", 64); + } + } + if (top > 1000) + { + throw new ValidationException(ValidationRules.InclusiveMaximum, "top", 1000); + } + if (top < 1) + { + throw new ValidationException(ValidationRules.InclusiveMinimum, "top", 1); + } + if (Client.SubscriptionKey == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("start", start); + tracingParameters.Add("top", top); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "List", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "persongroups"; + _url = _url.Replace("{azureRegion}", Client.AzureRegion1); + List _queryParameters = new List(); + if (start != null) + { + _queryParameters.Add(string.Format("start={0}", System.Uri.EscapeDataString(start))); + } + if (top != null) + { + _queryParameters.Add(string.Format("top={0}", System.Uri.EscapeDataString(Rest.Serialization.SafeJsonConvert.SerializeObject(top, Client.SerializationSettings).Trim('"')))); + } + if (_queryParameters.Count > 0) + { + _url += "?" + string.Join("&", _queryParameters); + } + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("GET"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.SubscriptionKey != null) + { + if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) + { + _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); + } + _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse>(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + // Deserialize Response + if ((int)_statusCode == 200) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject>(_responseContent, Client.DeserializationSettings); + } + catch (JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); + } + } + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + /// + /// Queue a person group training task, the training task may not be started + /// immediately. + /// + /// + /// Target person group to be trained. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task TrainWithHttpMessagesAsync(string personGroupId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.AzureRegion1 == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); + } + if (personGroupId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "personGroupId"); + } + if (Client.SubscriptionKey == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("personGroupId", personGroupId); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "Train", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "persongroups/{personGroupId}/train"; + _url = _url.Replace("{azureRegion}", Client.AzureRegion1); + _url = _url.Replace("{personGroupId}", System.Uri.EscapeDataString(personGroupId)); + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("POST"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.SubscriptionKey != null) + { + if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) + { + _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); + } + _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 202) + { + var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/PersonGroupExtensions.cs b/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/PersonGroupExtensions.cs new file mode 100644 index 000000000000..d0545cdcbe74 --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/PersonGroupExtensions.cs @@ -0,0 +1,291 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Models; + using System.Collections; + using System.Collections.Generic; + using System.Threading; + using System.Threading.Tasks; + + /// + /// Extension methods for PersonGroup. + /// + public static partial class PersonGroupExtensions + { + /// + /// Create a new person group with specified personGroupId, name and + /// user-provided userData. + /// + /// + /// The operations group for this extension method. + /// + /// + /// User-provided personGroupId as a string. + /// + /// + /// Name of the face list, maximum length is 128. + /// + /// + /// Optional user defined data for the face list. Length should not exceed + /// 16KB. + /// + public static void Create(this IPersonGroup operations, string personGroupId, string name = default(string), string userData = default(string)) + { + operations.CreateAsync(personGroupId, name, userData).GetAwaiter().GetResult(); + } + + /// + /// Create a new person group with specified personGroupId, name and + /// user-provided userData. + /// + /// + /// The operations group for this extension method. + /// + /// + /// User-provided personGroupId as a string. + /// + /// + /// Name of the face list, maximum length is 128. + /// + /// + /// Optional user defined data for the face list. Length should not exceed + /// 16KB. + /// + /// + /// The cancellation token. + /// + public static async Task CreateAsync(this IPersonGroup operations, string personGroupId, string name = default(string), string userData = default(string), CancellationToken cancellationToken = default(CancellationToken)) + { + (await operations.CreateWithHttpMessagesAsync(personGroupId, name, userData, null, cancellationToken).ConfigureAwait(false)).Dispose(); + } + + /// + /// Delete an existing person group. Persisted face images of all people in the + /// person group will also be deleted. + /// + /// + /// The operations group for this extension method. + /// + /// + /// The personGroupId of the person group to be deleted. + /// + public static void Delete(this IPersonGroup operations, string personGroupId) + { + operations.DeleteAsync(personGroupId).GetAwaiter().GetResult(); + } + + /// + /// Delete an existing person group. Persisted face images of all people in the + /// person group will also be deleted. + /// + /// + /// The operations group for this extension method. + /// + /// + /// The personGroupId of the person group to be deleted. + /// + /// + /// The cancellation token. + /// + public static async Task DeleteAsync(this IPersonGroup operations, string personGroupId, CancellationToken cancellationToken = default(CancellationToken)) + { + (await operations.DeleteWithHttpMessagesAsync(personGroupId, null, cancellationToken).ConfigureAwait(false)).Dispose(); + } + + /// + /// Retrieve the information of a person group, including its name and + /// userData. + /// + /// + /// The operations group for this extension method. + /// + /// + /// personGroupId of the target person group. + /// + public static PersonGroupResult Get(this IPersonGroup operations, string personGroupId) + { + return operations.GetAsync(personGroupId).GetAwaiter().GetResult(); + } + + /// + /// Retrieve the information of a person group, including its name and + /// userData. + /// + /// + /// The operations group for this extension method. + /// + /// + /// personGroupId of the target person group. + /// + /// + /// The cancellation token. + /// + public static async Task GetAsync(this IPersonGroup operations, string personGroupId, CancellationToken cancellationToken = default(CancellationToken)) + { + using (var _result = await operations.GetWithHttpMessagesAsync(personGroupId, null, cancellationToken).ConfigureAwait(false)) + { + return _result.Body; + } + } + + /// + /// Update an existing person group's display name and userData. The properties + /// which does not appear in request body will not be updated. + /// + /// + /// The operations group for this extension method. + /// + /// + /// personGroupId of the person group to be updated. + /// + /// + /// Name of the face list, maximum length is 128. + /// + /// + /// Optional user defined data for the face list. Length should not exceed + /// 16KB. + /// + public static void Update(this IPersonGroup operations, string personGroupId, string name = default(string), string userData = default(string)) + { + operations.UpdateAsync(personGroupId, name, userData).GetAwaiter().GetResult(); + } + + /// + /// Update an existing person group's display name and userData. The properties + /// which does not appear in request body will not be updated. + /// + /// + /// The operations group for this extension method. + /// + /// + /// personGroupId of the person group to be updated. + /// + /// + /// Name of the face list, maximum length is 128. + /// + /// + /// Optional user defined data for the face list. Length should not exceed + /// 16KB. + /// + /// + /// The cancellation token. + /// + public static async Task UpdateAsync(this IPersonGroup operations, string personGroupId, string name = default(string), string userData = default(string), CancellationToken cancellationToken = default(CancellationToken)) + { + (await operations.UpdateWithHttpMessagesAsync(personGroupId, name, userData, null, cancellationToken).ConfigureAwait(false)).Dispose(); + } + + /// + /// Retrieve the training status of a person group (completed or ongoing). + /// + /// + /// The operations group for this extension method. + /// + /// + /// personGroupId of target person group. + /// + public static TrainingStatus GetTrainingStatus(this IPersonGroup operations, string personGroupId) + { + return operations.GetTrainingStatusAsync(personGroupId).GetAwaiter().GetResult(); + } + + /// + /// Retrieve the training status of a person group (completed or ongoing). + /// + /// + /// The operations group for this extension method. + /// + /// + /// personGroupId of target person group. + /// + /// + /// The cancellation token. + /// + public static async Task GetTrainingStatusAsync(this IPersonGroup operations, string personGroupId, CancellationToken cancellationToken = default(CancellationToken)) + { + using (var _result = await operations.GetTrainingStatusWithHttpMessagesAsync(personGroupId, null, cancellationToken).ConfigureAwait(false)) + { + return _result.Body; + } + } + + /// + /// List person groups and their information. + /// + /// + /// The operations group for this extension method. + /// + /// + /// List person groups from the least personGroupId greater than the "start". + /// + /// + /// The number of person groups to list. + /// + public static IList List(this IPersonGroup operations, string start = default(string), int? top = 1000) + { + return operations.ListAsync(start, top).GetAwaiter().GetResult(); + } + + /// + /// List person groups and their information. + /// + /// + /// The operations group for this extension method. + /// + /// + /// List person groups from the least personGroupId greater than the "start". + /// + /// + /// The number of person groups to list. + /// + /// + /// The cancellation token. + /// + public static async Task> ListAsync(this IPersonGroup operations, string start = default(string), int? top = 1000, CancellationToken cancellationToken = default(CancellationToken)) + { + using (var _result = await operations.ListWithHttpMessagesAsync(start, top, null, cancellationToken).ConfigureAwait(false)) + { + return _result.Body; + } + } + + /// + /// Queue a person group training task, the training task may not be started + /// immediately. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Target person group to be trained. + /// + public static void Train(this IPersonGroup operations, string personGroupId) + { + operations.TrainAsync(personGroupId).GetAwaiter().GetResult(); + } + + /// + /// Queue a person group training task, the training task may not be started + /// immediately. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Target person group to be trained. + /// + /// + /// The cancellation token. + /// + public static async Task TrainAsync(this IPersonGroup operations, string personGroupId, CancellationToken cancellationToken = default(CancellationToken)) + { + (await operations.TrainWithHttpMessagesAsync(personGroupId, null, cancellationToken).ConfigureAwait(false)).Dispose(); + } + + } +} diff --git a/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Microsoft.CognitiveServices.Vision.csproj b/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Microsoft.CognitiveServices.Vision.csproj new file mode 100644 index 000000000000..eeb20f753e7a --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Microsoft.CognitiveServices.Vision.csproj @@ -0,0 +1,33 @@ + + + + Microsoft.CognitiveServices.Vision + This client library provides access to the Microsoft Cognitive Services Vision APIs. + 1.0.0 + $(DefineConstants);CODESIGN + true + Microsoft.CognitiveServices.Vision + Microsoft Cognitive Services;Cognitive Services;Cognitive Services SDK;Face API;REST HTTP client;Face SDK;netcore451511 + bin\$(Configuration)\$(TargetFramework)\$(AssemblyName).xml + + + + net452;netstandard1.4 + True + For detailed release notes, see: + + + + $(DefineConstants);FullNetFx + + + + + $(DefineConstants);netstandard14;PORTABLE + + + + + + + \ No newline at end of file From fcc2b9cda341971ccba99be25905c173645ea8b3 Mon Sep 17 00:00:00 2001 From: "David Li (WINDOWS)" Date: Tue, 29 Aug 2017 19:40:33 -0700 Subject: [PATCH 04/21] Removing key. --- .../Microsoft.CognitiveServices.Vision.Tests/BaseTests.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision.Tests/BaseTests.cs b/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision.Tests/BaseTests.cs index ce4c1a97889f..ed03671411aa 100644 --- a/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision.Tests/BaseTests.cs +++ b/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision.Tests/BaseTests.cs @@ -13,8 +13,8 @@ public abstract class BaseTests static BaseTests() { // Retrieve the configuration information. - SubscriptionKey = "51c0ba46b87840578cca7f045b34b5b7"; - Environment.SetEnvironmentVariable("AZURE_TEST_MODE", "Record"); + SubscriptionKey = ""; + // Environment.SetEnvironmentVariable("AZURE_TEST_MODE", "Record"); Region = "WestUS"; } From 97895d43fb2fc35d4a50466f949c9e53b09e832c Mon Sep 17 00:00:00 2001 From: "David Li (WINDOWS)" Date: Tue, 29 Aug 2017 19:45:33 -0700 Subject: [PATCH 05/21] Removing unneeded files --- .../Sentiment.json | 2 +- .../BaseTests.cs | 34 - .../FaceDetectionTests.cs | 23 - ...soft.CognitiveServices.Vision.Tests.csproj | 43 - .../TestImages/detection1.jpg | Bin 365482 -> 0 bytes .../testsettings.json | 4 - .../Microsoft.CognitiveServices.Vision.sln | 28 - .../Generated/Face/FaceAPI.cs | 137 -- .../Generated/Face/FaceList.cs | 1400 ------------- .../Generated/Face/FaceListExtensions.cs | 363 ---- .../Generated/Face/FaceOperations.cs | 1263 ------------ .../Face/FaceOperationsExtensions.cs | 368 ---- .../Generated/Face/IFaceAPI.cs | 65 - .../Generated/Face/IFaceList.cs | 227 --- .../Generated/Face/IFaceOperations.cs | 230 --- .../Generated/Face/IPerson.cs | 307 --- .../Generated/Face/IPersonGroup.cs | 189 -- .../Generated/Face/Models/APIError.cs | 46 - .../Face/Models/APIErrorException.cs | 58 - .../Generated/Face/Models/AzureRegion.cs | 22 - .../Face/Models/CreateFaceListRequest.cs | 83 - .../Face/Models/CreatePersonGroupRequest.cs | 83 - .../Face/Models/CreatePersonRequest.cs | 84 - .../Face/Models/CreatePersonResult.cs | 62 - .../Generated/Face/Models/DetectedFace.cs | 87 - .../Face/Models/EmotionProperties.cs | 162 -- .../Generated/Face/Models/Error.cs | 52 - .../Generated/Face/Models/FaceAttributes.cs | 125 -- .../Generated/Face/Models/FaceLandmarks.cs | 320 --- .../Generated/Face/Models/FaceRectangle.cs | 87 - .../Face/Models/FacialHairProperties.cs | 92 - .../Face/Models/FindSimilarRequest.cs | 151 -- .../Face/Models/GetFaceListResult.cs | 105 - .../Generated/Face/Models/GroupRequest.cs | 73 - .../Generated/Face/Models/GroupResponse.cs | 76 - .../Face/Models/HeadPoseProperties.cs | 58 - .../Generated/Face/Models/IdentifyRequest.cs | 122 -- .../Face/Models/IdentifyResultCandidate.cs | 80 - .../Face/Models/IdentifyResultItem.cs | 91 - .../Generated/Face/Models/ImageUrl.cs | 57 - .../Generated/Face/Models/PersonFaceResult.cs | 76 - .../Face/Models/PersonGroupResult.cs | 101 - .../Generated/Face/Models/PersonResult.cs | 93 - .../Generated/Face/Models/Position.cs | 66 - .../Face/Models/SimilarFaceResult.cs | 100 - .../Generated/Face/Models/TrainingStatus.cs | 105 - .../Models/UpdatePersonFaceDataRequest.cs | 69 - .../Generated/Face/Models/VerifyRequest.cs | 100 - .../Generated/Face/Models/VerifyResult.cs | 86 - .../Generated/Face/Person.cs | 1762 ----------------- .../Generated/Face/PersonExtensions.cs | 503 ----- .../Generated/Face/PersonGroup.cs | 1189 ----------- .../Generated/Face/PersonGroupExtensions.cs | 291 --- .../Microsoft.CognitiveServices.Vision.csproj | 33 - 54 files changed, 1 insertion(+), 11432 deletions(-) delete mode 100644 src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision.Tests/BaseTests.cs delete mode 100644 src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision.Tests/FaceDetectionTests.cs delete mode 100644 src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision.Tests/Microsoft.CognitiveServices.Vision.Tests.csproj delete mode 100644 src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision.Tests/TestImages/detection1.jpg delete mode 100644 src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision.Tests/testsettings.json delete mode 100644 src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision.sln delete mode 100644 src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/FaceAPI.cs delete mode 100644 src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/FaceList.cs delete mode 100644 src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/FaceListExtensions.cs delete mode 100644 src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/FaceOperations.cs delete mode 100644 src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/FaceOperationsExtensions.cs delete mode 100644 src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/IFaceAPI.cs delete mode 100644 src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/IFaceList.cs delete mode 100644 src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/IFaceOperations.cs delete mode 100644 src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/IPerson.cs delete mode 100644 src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/IPersonGroup.cs delete mode 100644 src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/APIError.cs delete mode 100644 src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/APIErrorException.cs delete mode 100644 src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/AzureRegion.cs delete mode 100644 src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreateFaceListRequest.cs delete mode 100644 src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreatePersonGroupRequest.cs delete mode 100644 src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreatePersonRequest.cs delete mode 100644 src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreatePersonResult.cs delete mode 100644 src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/DetectedFace.cs delete mode 100644 src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/EmotionProperties.cs delete mode 100644 src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/Error.cs delete mode 100644 src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FaceAttributes.cs delete mode 100644 src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FaceLandmarks.cs delete mode 100644 src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FaceRectangle.cs delete mode 100644 src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FacialHairProperties.cs delete mode 100644 src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FindSimilarRequest.cs delete mode 100644 src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/GetFaceListResult.cs delete mode 100644 src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/GroupRequest.cs delete mode 100644 src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/GroupResponse.cs delete mode 100644 src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/HeadPoseProperties.cs delete mode 100644 src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/IdentifyRequest.cs delete mode 100644 src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/IdentifyResultCandidate.cs delete mode 100644 src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/IdentifyResultItem.cs delete mode 100644 src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/ImageUrl.cs delete mode 100644 src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/PersonFaceResult.cs delete mode 100644 src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/PersonGroupResult.cs delete mode 100644 src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/PersonResult.cs delete mode 100644 src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/Position.cs delete mode 100644 src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/SimilarFaceResult.cs delete mode 100644 src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/TrainingStatus.cs delete mode 100644 src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/UpdatePersonFaceDataRequest.cs delete mode 100644 src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/VerifyRequest.cs delete mode 100644 src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/VerifyResult.cs delete mode 100644 src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Person.cs delete mode 100644 src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/PersonExtensions.cs delete mode 100644 src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/PersonGroup.cs delete mode 100644 src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/PersonGroupExtensions.cs delete mode 100644 src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Microsoft.CognitiveServices.Vision.csproj diff --git a/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/SessionRecords/Microsoft.CognitiveServices.Language.Tests.SentimentTests/Sentiment.json b/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/SessionRecords/Microsoft.CognitiveServices.Language.Tests.SentimentTests/Sentiment.json index 4b9dd2e7d138..c5f620b0eadf 100644 --- a/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/SessionRecords/Microsoft.CognitiveServices.Language.Tests.SentimentTests/Sentiment.json +++ b/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/SessionRecords/Microsoft.CognitiveServices.Language.Tests.SentimentTests/Sentiment.json @@ -13,7 +13,7 @@ "123" ], "Ocp-Apim-Subscription-Key": [ - "9daf6a9264dc4a0095253e55a0e0e1fb" + "" ], "User-Agent": [ "FxVersion/4.6.25211.01", diff --git a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision.Tests/BaseTests.cs b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision.Tests/BaseTests.cs deleted file mode 100644 index 64c710ffb62e..000000000000 --- a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision.Tests/BaseTests.cs +++ /dev/null @@ -1,34 +0,0 @@ -using Microsoft.CognitiveServices.Vision.Face; -using Microsoft.Extensions.Configuration; - -namespace FaceSDK.Tests -{ - public abstract class BaseTests - { - private static string SubscriptionKey = null; - private static string Region = null; - - static BaseTests() - { - var builder = new ConfigurationBuilder() - .AddJsonFile("testsettings.json"); - - // Create the configuration object that the application will - // use to retrieve configuration information. - var configuration = builder.Build(); - - // Retrieve the configuration information. - SubscriptionKey = configuration["SubscriptionKey"]; - Region = configuration["Region"]; - } - - protected FaceAPI GetClient() - { - return new FaceAPI() - { - SubscriptionKey = SubscriptionKey, - AzureRegion1 = Region - }; - } - } -} diff --git a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision.Tests/FaceDetectionTests.cs b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision.Tests/FaceDetectionTests.cs deleted file mode 100644 index 3fbd629652ed..000000000000 --- a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision.Tests/FaceDetectionTests.cs +++ /dev/null @@ -1,23 +0,0 @@ -using Microsoft.CognitiveServices.Vision.Face; -using Microsoft.CognitiveServices.Vision.Face.Models; -using System; -using System.Collections.Generic; -using System.IO; -using Xunit; - -namespace FaceSDK.Tests -{ - public class FaceDetectionTests : BaseTests - { - [Fact] - public void FaceDetection() - { - FaceAPI client = GetClient(); - using (FileStream stream = new FileStream("TestImages\\detection1.jpg", FileMode.Open)) - { - IList faceList = client.Face.DetectInStream(stream); - Assert.Equal(1, faceList.Count); - } - } - } -} diff --git a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision.Tests/Microsoft.CognitiveServices.Vision.Tests.csproj b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision.Tests/Microsoft.CognitiveServices.Vision.Tests.csproj deleted file mode 100644 index ed3d67a6576b..000000000000 --- a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision.Tests/Microsoft.CognitiveServices.Vision.Tests.csproj +++ /dev/null @@ -1,43 +0,0 @@ - - - - netcoreapp1.1 - - - - - - - - - Always - - - - - - - - - - - - - - - - - - - - - - - Always - - - Always - - - - diff --git a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision.Tests/TestImages/detection1.jpg b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision.Tests/TestImages/detection1.jpg deleted file mode 100644 index bfd799d92c0ee2613a8a384a5965ce0f141a7c10..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 365482 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

{Lr#(zOsP($y)w6i#^Nv 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ξ{?=>OIGdU{>vmG-^r?3 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 diff --git a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision.Tests/testsettings.json b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision.Tests/testsettings.json deleted file mode 100644 index f40129e6ef75..000000000000 --- a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision.Tests/testsettings.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "subscriptionKey": "{PUT_YOUR_KEY_HERE}", - "region": "WestCentralUS" -} diff --git a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision.sln b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision.sln deleted file mode 100644 index 54d49997b3db..000000000000 --- a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision.sln +++ /dev/null @@ -1,28 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.26430.16 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.CognitiveServices.Vision", "Microsoft.CognitiveServices.Vision\Microsoft.CognitiveServices.Vision.csproj", "{6807B854-8528-4FEE-A25D-C43C3AA2D601}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.CognitiveServices.Vision.Tests", "Microsoft.CognitiveServices.Vision.Tests\Microsoft.CognitiveServices.Vision.Tests.csproj", "{5987D97A-E532-450C-BF22-A1F595C927F1}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {6807B854-8528-4FEE-A25D-C43C3AA2D601}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {6807B854-8528-4FEE-A25D-C43C3AA2D601}.Debug|Any CPU.Build.0 = Debug|Any CPU - {6807B854-8528-4FEE-A25D-C43C3AA2D601}.Release|Any CPU.ActiveCfg = Release|Any CPU - {6807B854-8528-4FEE-A25D-C43C3AA2D601}.Release|Any CPU.Build.0 = Release|Any CPU - {5987D97A-E532-450C-BF22-A1F595C927F1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5987D97A-E532-450C-BF22-A1F595C927F1}.Debug|Any CPU.Build.0 = Debug|Any CPU - {5987D97A-E532-450C-BF22-A1F595C927F1}.Release|Any CPU.ActiveCfg = Release|Any CPU - {5987D97A-E532-450C-BF22-A1F595C927F1}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/FaceAPI.cs b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/FaceAPI.cs deleted file mode 100644 index f2bb1b0bc7b6..000000000000 --- a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/FaceAPI.cs +++ /dev/null @@ -1,137 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Vision.Face -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Vision; - using Microsoft.Rest; - using Microsoft.Rest.Serialization; - using Models; - using Newtonsoft.Json; - using System.Collections; - using System.Collections.Generic; - using System.Net; - using System.Net.Http; - - ///

- /// An API for face detection, verification, and identification. - /// - public partial class FaceAPI : ServiceClient, IFaceAPI - { - /// - /// The base URI of the service. - /// - internal string BaseUri {get; set;} - - /// - /// Gets or sets json serialization settings. - /// - public JsonSerializerSettings SerializationSettings { get; private set; } - - /// - /// Gets or sets json deserialization settings. - /// - public JsonSerializerSettings DeserializationSettings { get; private set; } - - /// - /// Supported Azure regions for Face Detection endpoints. Possible values - /// include: 'westus', 'westeurope', 'southeastasia', 'eastus2', - /// 'westcentralus' - /// - public string AzureRegion1 { get; set; } - - /// - /// Subscription key in header - /// - public string SubscriptionKey { get; set; } - - /// - /// Gets the IFaceOperations. - /// - public virtual IFaceOperations Face { get; private set; } - - /// - /// Gets the IPerson. - /// - public virtual IPerson Person { get; private set; } - - /// - /// Gets the IPersonGroup. - /// - public virtual IPersonGroup PersonGroup { get; private set; } - - /// - /// Gets the IFaceList. - /// - public virtual IFaceList FaceList { get; private set; } - - /// - /// Initializes a new instance of the FaceAPI class. - /// - /// - /// Optional. The delegating handlers to add to the http client pipeline. - /// - public FaceAPI(params DelegatingHandler[] handlers) : base(handlers) - { - Initialize(); - } - - /// - /// Initializes a new instance of the FaceAPI class. - /// - /// - /// Optional. The http client handler used to handle http transport. - /// - /// - /// Optional. The delegating handlers to add to the http client pipeline. - /// - public FaceAPI(HttpClientHandler rootHandler, params DelegatingHandler[] handlers) : base(rootHandler, handlers) - { - Initialize(); - } - - /// - /// An optional partial-method to perform custom initialization. - /// - partial void CustomInitialize(); - /// - /// Initializes client properties. - /// - private void Initialize() - { - Face = new FaceOperations(this); - Person = new Person(this); - PersonGroup = new PersonGroup(this); - FaceList = new FaceList(this); - BaseUri = "https://{azureRegion}.api.cognitive.microsoft.com/face/v1.0"; - SerializationSettings = new JsonSerializerSettings - { - Formatting = Newtonsoft.Json.Formatting.Indented, - DateFormatHandling = Newtonsoft.Json.DateFormatHandling.IsoDateFormat, - DateTimeZoneHandling = Newtonsoft.Json.DateTimeZoneHandling.Utc, - NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore, - ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Serialize, - ContractResolver = new ReadOnlyJsonContractResolver(), - Converters = new List - { - new Iso8601TimeSpanConverter() - } - }; - DeserializationSettings = new JsonSerializerSettings - { - DateFormatHandling = Newtonsoft.Json.DateFormatHandling.IsoDateFormat, - DateTimeZoneHandling = Newtonsoft.Json.DateTimeZoneHandling.Utc, - NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore, - ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Serialize, - ContractResolver = new ReadOnlyJsonContractResolver(), - Converters = new List - { - new Iso8601TimeSpanConverter() - } - }; - CustomInitialize(); - } - } -} diff --git a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/FaceList.cs b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/FaceList.cs deleted file mode 100644 index 8715db57cd79..000000000000 --- a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/FaceList.cs +++ /dev/null @@ -1,1400 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Vision.Face -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Vision; - using Microsoft.Rest; - using Models; - using Newtonsoft.Json; - using System.Collections; - using System.Collections.Generic; - using System.IO; - using System.Net; - using System.Net.Http; - using System.Threading; - using System.Threading.Tasks; - - /// - /// FaceList operations. - /// - public partial class FaceList : IServiceOperations, IFaceList - { - /// - /// Initializes a new instance of the FaceList class. - /// - /// - /// Reference to the service client. - /// - /// - /// Thrown when a required parameter is null - /// - public FaceList(FaceAPI client) - { - if (client == null) - { - throw new System.ArgumentNullException("client"); - } - Client = client; - } - - /// - /// Gets a reference to the FaceAPI - /// - public FaceAPI Client { get; private set; } - - /// - /// Create an empty face list. Up to 64 face lists are allowed to exist in one - /// subscription. - /// - /// - /// Id referencing a particular face list. - /// - /// - /// Name of the face list, maximum length is 128. - /// - /// - /// Optional user defined data for the face list. Length should not exceed - /// 16KB. - /// - /// - /// Headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// A response object containing the response body and response headers. - /// - public async Task CreateWithHttpMessagesAsync(string faceListId, string name = default(string), string userData = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) - { - if (Client.AzureRegion1 == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); - } - if (faceListId == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "faceListId"); - } - if (faceListId != null) - { - if (faceListId.Length > 64) - { - throw new ValidationException(ValidationRules.MaxLength, "faceListId", 64); - } - if (!System.Text.RegularExpressions.Regex.IsMatch(faceListId, "^[a-z0-9-_]+$")) - { - throw new ValidationException(ValidationRules.Pattern, "faceListId", "^[a-z0-9-_]+$"); - } - } - if (Client.SubscriptionKey == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); - } - if (name != null) - { - if (name.Length > 128) - { - throw new ValidationException(ValidationRules.MaxLength, "name", 128); - } - } - if (userData != null) - { - if (userData.Length > 16384) - { - throw new ValidationException(ValidationRules.MaxLength, "userData", 16384); - } - } - CreateFaceListRequest body = new CreateFaceListRequest(); - if (name != null || userData != null) - { - body.Name = name; - body.UserData = userData; - } - // Tracing - bool _shouldTrace = ServiceClientTracing.IsEnabled; - string _invocationId = null; - if (_shouldTrace) - { - _invocationId = ServiceClientTracing.NextInvocationId.ToString(); - Dictionary tracingParameters = new Dictionary(); - tracingParameters.Add("faceListId", faceListId); - tracingParameters.Add("body", body); - tracingParameters.Add("cancellationToken", cancellationToken); - ServiceClientTracing.Enter(_invocationId, this, "Create", tracingParameters); - } - // Construct URL - var _baseUrl = Client.BaseUri; - var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "facelists/{faceListId}"; - _url = _url.Replace("{azureRegion}", Client.AzureRegion1); - _url = _url.Replace("{faceListId}", System.Uri.EscapeDataString(faceListId)); - // Create HTTP transport objects - var _httpRequest = new HttpRequestMessage(); - HttpResponseMessage _httpResponse = null; - _httpRequest.Method = new HttpMethod("PUT"); - _httpRequest.RequestUri = new System.Uri(_url); - // Set Headers - if (Client.SubscriptionKey != null) - { - if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) - { - _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); - } - _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); - } - - - if (customHeaders != null) - { - foreach(var _header in customHeaders) - { - if (_httpRequest.Headers.Contains(_header.Key)) - { - _httpRequest.Headers.Remove(_header.Key); - } - _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); - } - } - - // Serialize Request - string _requestContent = null; - if(body != null) - { - _requestContent = Rest.Serialization.SafeJsonConvert.SerializeObject(body, Client.SerializationSettings); - _httpRequest.Content = new StringContent(_requestContent, System.Text.Encoding.UTF8); - _httpRequest.Content.Headers.ContentType =System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json; charset=utf-8"); - } - // Send Request - if (_shouldTrace) - { - ServiceClientTracing.SendRequest(_invocationId, _httpRequest); - } - cancellationToken.ThrowIfCancellationRequested(); - _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); - if (_shouldTrace) - { - ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); - } - HttpStatusCode _statusCode = _httpResponse.StatusCode; - cancellationToken.ThrowIfCancellationRequested(); - string _responseContent = null; - if ((int)_statusCode != 200) - { - var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); - try - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - if (_errorBody != null) - { - ex.Body = _errorBody; - } - } - catch (JsonException) - { - // Ignore the exception - } - ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); - ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); - if (_shouldTrace) - { - ServiceClientTracing.Error(_invocationId, ex); - } - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw ex; - } - // Create Result - var _result = new HttpOperationResponse(); - _result.Request = _httpRequest; - _result.Response = _httpResponse; - if (_shouldTrace) - { - ServiceClientTracing.Exit(_invocationId, _result); - } - return _result; - } - - /// - /// Retrieve a face list's information. - /// - /// - /// Id referencing a Face List. - /// - /// - /// Headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when unable to deserialize the response - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// A response object containing the response body and response headers. - /// - public async Task> GetWithHttpMessagesAsync(string faceListId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) - { - if (Client.AzureRegion1 == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); - } - if (faceListId == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "faceListId"); - } - if (faceListId != null) - { - if (faceListId.Length > 64) - { - throw new ValidationException(ValidationRules.MaxLength, "faceListId", 64); - } - if (!System.Text.RegularExpressions.Regex.IsMatch(faceListId, "^[a-z0-9-_]+$")) - { - throw new ValidationException(ValidationRules.Pattern, "faceListId", "^[a-z0-9-_]+$"); - } - } - if (Client.SubscriptionKey == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); - } - // Tracing - bool _shouldTrace = ServiceClientTracing.IsEnabled; - string _invocationId = null; - if (_shouldTrace) - { - _invocationId = ServiceClientTracing.NextInvocationId.ToString(); - Dictionary tracingParameters = new Dictionary(); - tracingParameters.Add("faceListId", faceListId); - tracingParameters.Add("cancellationToken", cancellationToken); - ServiceClientTracing.Enter(_invocationId, this, "Get", tracingParameters); - } - // Construct URL - var _baseUrl = Client.BaseUri; - var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "facelists/{faceListId}"; - _url = _url.Replace("{azureRegion}", Client.AzureRegion1); - _url = _url.Replace("{faceListId}", System.Uri.EscapeDataString(faceListId)); - // Create HTTP transport objects - var _httpRequest = new HttpRequestMessage(); - HttpResponseMessage _httpResponse = null; - _httpRequest.Method = new HttpMethod("GET"); - _httpRequest.RequestUri = new System.Uri(_url); - // Set Headers - if (Client.SubscriptionKey != null) - { - if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) - { - _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); - } - _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); - } - - - if (customHeaders != null) - { - foreach(var _header in customHeaders) - { - if (_httpRequest.Headers.Contains(_header.Key)) - { - _httpRequest.Headers.Remove(_header.Key); - } - _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); - } - } - - // Serialize Request - string _requestContent = null; - // Send Request - if (_shouldTrace) - { - ServiceClientTracing.SendRequest(_invocationId, _httpRequest); - } - cancellationToken.ThrowIfCancellationRequested(); - _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); - if (_shouldTrace) - { - ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); - } - HttpStatusCode _statusCode = _httpResponse.StatusCode; - cancellationToken.ThrowIfCancellationRequested(); - string _responseContent = null; - if ((int)_statusCode != 200) - { - var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); - try - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - if (_errorBody != null) - { - ex.Body = _errorBody; - } - } - catch (JsonException) - { - // Ignore the exception - } - ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); - ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); - if (_shouldTrace) - { - ServiceClientTracing.Error(_invocationId, ex); - } - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw ex; - } - // Create Result - var _result = new HttpOperationResponse(); - _result.Request = _httpRequest; - _result.Response = _httpResponse; - // Deserialize Response - if ((int)_statusCode == 200) - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - try - { - _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - } - catch (JsonException ex) - { - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); - } - } - if (_shouldTrace) - { - ServiceClientTracing.Exit(_invocationId, _result); - } - return _result; - } - - /// - /// Update information of a face list. - /// - /// - /// Id referencing a Face List. - /// - /// - /// Name of the face list, maximum length is 128. - /// - /// - /// Optional user defined data for the face list. Length should not exceed - /// 16KB. - /// - /// - /// Headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// A response object containing the response body and response headers. - /// - public async Task UpdateWithHttpMessagesAsync(string faceListId, string name = default(string), string userData = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) - { - if (Client.AzureRegion1 == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); - } - if (faceListId == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "faceListId"); - } - if (faceListId != null) - { - if (faceListId.Length > 64) - { - throw new ValidationException(ValidationRules.MaxLength, "faceListId", 64); - } - if (!System.Text.RegularExpressions.Regex.IsMatch(faceListId, "^[a-z0-9-_]+$")) - { - throw new ValidationException(ValidationRules.Pattern, "faceListId", "^[a-z0-9-_]+$"); - } - } - if (Client.SubscriptionKey == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); - } - if (name != null) - { - if (name.Length > 128) - { - throw new ValidationException(ValidationRules.MaxLength, "name", 128); - } - } - if (userData != null) - { - if (userData.Length > 16384) - { - throw new ValidationException(ValidationRules.MaxLength, "userData", 16384); - } - } - CreateFaceListRequest body = new CreateFaceListRequest(); - if (name != null || userData != null) - { - body.Name = name; - body.UserData = userData; - } - // Tracing - bool _shouldTrace = ServiceClientTracing.IsEnabled; - string _invocationId = null; - if (_shouldTrace) - { - _invocationId = ServiceClientTracing.NextInvocationId.ToString(); - Dictionary tracingParameters = new Dictionary(); - tracingParameters.Add("faceListId", faceListId); - tracingParameters.Add("body", body); - tracingParameters.Add("cancellationToken", cancellationToken); - ServiceClientTracing.Enter(_invocationId, this, "Update", tracingParameters); - } - // Construct URL - var _baseUrl = Client.BaseUri; - var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "facelists/{faceListId}"; - _url = _url.Replace("{azureRegion}", Client.AzureRegion1); - _url = _url.Replace("{faceListId}", System.Uri.EscapeDataString(faceListId)); - // Create HTTP transport objects - var _httpRequest = new HttpRequestMessage(); - HttpResponseMessage _httpResponse = null; - _httpRequest.Method = new HttpMethod("PATCH"); - _httpRequest.RequestUri = new System.Uri(_url); - // Set Headers - if (Client.SubscriptionKey != null) - { - if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) - { - _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); - } - _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); - } - - - if (customHeaders != null) - { - foreach(var _header in customHeaders) - { - if (_httpRequest.Headers.Contains(_header.Key)) - { - _httpRequest.Headers.Remove(_header.Key); - } - _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); - } - } - - // Serialize Request - string _requestContent = null; - if(body != null) - { - _requestContent = Rest.Serialization.SafeJsonConvert.SerializeObject(body, Client.SerializationSettings); - _httpRequest.Content = new StringContent(_requestContent, System.Text.Encoding.UTF8); - _httpRequest.Content.Headers.ContentType =System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json; charset=utf-8"); - } - // Send Request - if (_shouldTrace) - { - ServiceClientTracing.SendRequest(_invocationId, _httpRequest); - } - cancellationToken.ThrowIfCancellationRequested(); - _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); - if (_shouldTrace) - { - ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); - } - HttpStatusCode _statusCode = _httpResponse.StatusCode; - cancellationToken.ThrowIfCancellationRequested(); - string _responseContent = null; - if ((int)_statusCode != 200) - { - var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); - try - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - if (_errorBody != null) - { - ex.Body = _errorBody; - } - } - catch (JsonException) - { - // Ignore the exception - } - ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); - ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); - if (_shouldTrace) - { - ServiceClientTracing.Error(_invocationId, ex); - } - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw ex; - } - // Create Result - var _result = new HttpOperationResponse(); - _result.Request = _httpRequest; - _result.Response = _httpResponse; - if (_shouldTrace) - { - ServiceClientTracing.Exit(_invocationId, _result); - } - return _result; - } - - /// - /// Delete an existing face list according to faceListId. Persisted face images - /// in the face list will also be deleted. - /// - /// - /// Id referencing a Face List. - /// - /// - /// Headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// A response object containing the response body and response headers. - /// - public async Task DeleteWithHttpMessagesAsync(string faceListId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) - { - if (Client.AzureRegion1 == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); - } - if (faceListId == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "faceListId"); - } - if (faceListId != null) - { - if (faceListId.Length > 64) - { - throw new ValidationException(ValidationRules.MaxLength, "faceListId", 64); - } - if (!System.Text.RegularExpressions.Regex.IsMatch(faceListId, "^[a-z0-9-_]+$")) - { - throw new ValidationException(ValidationRules.Pattern, "faceListId", "^[a-z0-9-_]+$"); - } - } - if (Client.SubscriptionKey == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); - } - // Tracing - bool _shouldTrace = ServiceClientTracing.IsEnabled; - string _invocationId = null; - if (_shouldTrace) - { - _invocationId = ServiceClientTracing.NextInvocationId.ToString(); - Dictionary tracingParameters = new Dictionary(); - tracingParameters.Add("faceListId", faceListId); - tracingParameters.Add("cancellationToken", cancellationToken); - ServiceClientTracing.Enter(_invocationId, this, "Delete", tracingParameters); - } - // Construct URL - var _baseUrl = Client.BaseUri; - var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "facelists/{faceListId}"; - _url = _url.Replace("{azureRegion}", Client.AzureRegion1); - _url = _url.Replace("{faceListId}", System.Uri.EscapeDataString(faceListId)); - // Create HTTP transport objects - var _httpRequest = new HttpRequestMessage(); - HttpResponseMessage _httpResponse = null; - _httpRequest.Method = new HttpMethod("DELETE"); - _httpRequest.RequestUri = new System.Uri(_url); - // Set Headers - if (Client.SubscriptionKey != null) - { - if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) - { - _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); - } - _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); - } - - - if (customHeaders != null) - { - foreach(var _header in customHeaders) - { - if (_httpRequest.Headers.Contains(_header.Key)) - { - _httpRequest.Headers.Remove(_header.Key); - } - _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); - } - } - - // Serialize Request - string _requestContent = null; - // Send Request - if (_shouldTrace) - { - ServiceClientTracing.SendRequest(_invocationId, _httpRequest); - } - cancellationToken.ThrowIfCancellationRequested(); - _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); - if (_shouldTrace) - { - ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); - } - HttpStatusCode _statusCode = _httpResponse.StatusCode; - cancellationToken.ThrowIfCancellationRequested(); - string _responseContent = null; - if ((int)_statusCode != 200) - { - var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); - try - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - if (_errorBody != null) - { - ex.Body = _errorBody; - } - } - catch (JsonException) - { - // Ignore the exception - } - ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); - ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); - if (_shouldTrace) - { - ServiceClientTracing.Error(_invocationId, ex); - } - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw ex; - } - // Create Result - var _result = new HttpOperationResponse(); - _result.Request = _httpRequest; - _result.Response = _httpResponse; - if (_shouldTrace) - { - ServiceClientTracing.Exit(_invocationId, _result); - } - return _result; - } - - /// - /// Retrieve information about all existing face lists. Only faceListId, name - /// and userData will be returned. - /// - /// - /// Headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when unable to deserialize the response - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// A response object containing the response body and response headers. - /// - public async Task>> ListWithHttpMessagesAsync(Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) - { - if (Client.AzureRegion1 == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); - } - if (Client.SubscriptionKey == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); - } - // Tracing - bool _shouldTrace = ServiceClientTracing.IsEnabled; - string _invocationId = null; - if (_shouldTrace) - { - _invocationId = ServiceClientTracing.NextInvocationId.ToString(); - Dictionary tracingParameters = new Dictionary(); - tracingParameters.Add("cancellationToken", cancellationToken); - ServiceClientTracing.Enter(_invocationId, this, "List", tracingParameters); - } - // Construct URL - var _baseUrl = Client.BaseUri; - var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "facelists"; - _url = _url.Replace("{azureRegion}", Client.AzureRegion1); - // Create HTTP transport objects - var _httpRequest = new HttpRequestMessage(); - HttpResponseMessage _httpResponse = null; - _httpRequest.Method = new HttpMethod("GET"); - _httpRequest.RequestUri = new System.Uri(_url); - // Set Headers - if (Client.SubscriptionKey != null) - { - if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) - { - _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); - } - _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); - } - - - if (customHeaders != null) - { - foreach(var _header in customHeaders) - { - if (_httpRequest.Headers.Contains(_header.Key)) - { - _httpRequest.Headers.Remove(_header.Key); - } - _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); - } - } - - // Serialize Request - string _requestContent = null; - // Send Request - if (_shouldTrace) - { - ServiceClientTracing.SendRequest(_invocationId, _httpRequest); - } - cancellationToken.ThrowIfCancellationRequested(); - _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); - if (_shouldTrace) - { - ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); - } - HttpStatusCode _statusCode = _httpResponse.StatusCode; - cancellationToken.ThrowIfCancellationRequested(); - string _responseContent = null; - if ((int)_statusCode != 200) - { - var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); - try - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - if (_errorBody != null) - { - ex.Body = _errorBody; - } - } - catch (JsonException) - { - // Ignore the exception - } - ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); - ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); - if (_shouldTrace) - { - ServiceClientTracing.Error(_invocationId, ex); - } - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw ex; - } - // Create Result - var _result = new HttpOperationResponse>(); - _result.Request = _httpRequest; - _result.Response = _httpResponse; - // Deserialize Response - if ((int)_statusCode == 200) - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - try - { - _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject>(_responseContent, Client.DeserializationSettings); - } - catch (JsonException ex) - { - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); - } - } - if (_shouldTrace) - { - ServiceClientTracing.Exit(_invocationId, _result); - } - return _result; - } - - /// - /// Delete an existing face from a face list (given by a persisitedFaceId and a - /// faceListId). Persisted image related to the face will also be deleted. - /// - /// - /// faceListId of an existing face list. - /// - /// - /// persistedFaceId of an existing face. - /// - /// - /// Headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// A response object containing the response body and response headers. - /// - public async Task DeleteFaceWithHttpMessagesAsync(string faceListId, string persistedFaceId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) - { - if (Client.AzureRegion1 == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); - } - if (faceListId == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "faceListId"); - } - if (faceListId != null) - { - if (faceListId.Length > 64) - { - throw new ValidationException(ValidationRules.MaxLength, "faceListId", 64); - } - if (!System.Text.RegularExpressions.Regex.IsMatch(faceListId, "^[a-z0-9-_]+$")) - { - throw new ValidationException(ValidationRules.Pattern, "faceListId", "^[a-z0-9-_]+$"); - } - } - if (persistedFaceId == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "persistedFaceId"); - } - if (Client.SubscriptionKey == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); - } - // Tracing - bool _shouldTrace = ServiceClientTracing.IsEnabled; - string _invocationId = null; - if (_shouldTrace) - { - _invocationId = ServiceClientTracing.NextInvocationId.ToString(); - Dictionary tracingParameters = new Dictionary(); - tracingParameters.Add("faceListId", faceListId); - tracingParameters.Add("persistedFaceId", persistedFaceId); - tracingParameters.Add("cancellationToken", cancellationToken); - ServiceClientTracing.Enter(_invocationId, this, "DeleteFace", tracingParameters); - } - // Construct URL - var _baseUrl = Client.BaseUri; - var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "facelists/{faceListId}/persistedFaces/{persistedFaceId}"; - _url = _url.Replace("{azureRegion}", Client.AzureRegion1); - _url = _url.Replace("{faceListId}", System.Uri.EscapeDataString(faceListId)); - _url = _url.Replace("{persistedFaceId}", System.Uri.EscapeDataString(persistedFaceId)); - // Create HTTP transport objects - var _httpRequest = new HttpRequestMessage(); - HttpResponseMessage _httpResponse = null; - _httpRequest.Method = new HttpMethod("DELETE"); - _httpRequest.RequestUri = new System.Uri(_url); - // Set Headers - if (Client.SubscriptionKey != null) - { - if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) - { - _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); - } - _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); - } - - - if (customHeaders != null) - { - foreach(var _header in customHeaders) - { - if (_httpRequest.Headers.Contains(_header.Key)) - { - _httpRequest.Headers.Remove(_header.Key); - } - _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); - } - } - - // Serialize Request - string _requestContent = null; - // Send Request - if (_shouldTrace) - { - ServiceClientTracing.SendRequest(_invocationId, _httpRequest); - } - cancellationToken.ThrowIfCancellationRequested(); - _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); - if (_shouldTrace) - { - ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); - } - HttpStatusCode _statusCode = _httpResponse.StatusCode; - cancellationToken.ThrowIfCancellationRequested(); - string _responseContent = null; - if ((int)_statusCode != 200) - { - var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); - try - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - if (_errorBody != null) - { - ex.Body = _errorBody; - } - } - catch (JsonException) - { - // Ignore the exception - } - ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); - ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); - if (_shouldTrace) - { - ServiceClientTracing.Error(_invocationId, ex); - } - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw ex; - } - // Create Result - var _result = new HttpOperationResponse(); - _result.Request = _httpRequest; - _result.Response = _httpResponse; - if (_shouldTrace) - { - ServiceClientTracing.Exit(_invocationId, _result); - } - return _result; - } - - /// - /// Add a face to a face list. The input face is specified as an image with a - /// targetFace rectangle. It returns a persistedFaceId representing the added - /// face, and persistedFaceId will not expire. - /// - /// - /// Id referencing a Face List. - /// - /// - /// User-specified data about the face list for any purpose. The maximum - /// length is 1KB. - /// - /// - /// A face rectangle to specify the target face to be added into the face list, - /// in the format of "targetFace=left,top,width,height". E.g. - /// "targetFace=10,10,100,100". If there is more than one face in the image, - /// targetFace is required to specify which face to add. No targetFace means - /// there is only one face detected in the entire image. - /// - /// - /// Headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// A response object containing the response body and response headers. - /// - public async Task AddFaceWithHttpMessagesAsync(string faceListId, string userData = default(string), string targetFace = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) - { - if (Client.AzureRegion1 == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); - } - if (faceListId == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "faceListId"); - } - if (faceListId != null) - { - if (faceListId.Length > 64) - { - throw new ValidationException(ValidationRules.MaxLength, "faceListId", 64); - } - if (!System.Text.RegularExpressions.Regex.IsMatch(faceListId, "^[a-z0-9-_]+$")) - { - throw new ValidationException(ValidationRules.Pattern, "faceListId", "^[a-z0-9-_]+$"); - } - } - if (Client.SubscriptionKey == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); - } - // Tracing - bool _shouldTrace = ServiceClientTracing.IsEnabled; - string _invocationId = null; - if (_shouldTrace) - { - _invocationId = ServiceClientTracing.NextInvocationId.ToString(); - Dictionary tracingParameters = new Dictionary(); - tracingParameters.Add("faceListId", faceListId); - tracingParameters.Add("userData", userData); - tracingParameters.Add("targetFace", targetFace); - tracingParameters.Add("cancellationToken", cancellationToken); - ServiceClientTracing.Enter(_invocationId, this, "AddFace", tracingParameters); - } - // Construct URL - var _baseUrl = Client.BaseUri; - var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "facelists/{faceListId}/persistedFaces"; - _url = _url.Replace("{azureRegion}", Client.AzureRegion1); - _url = _url.Replace("{faceListId}", System.Uri.EscapeDataString(faceListId)); - List _queryParameters = new List(); - if (userData != null) - { - _queryParameters.Add(string.Format("userData={0}", System.Uri.EscapeDataString(userData))); - } - if (targetFace != null) - { - _queryParameters.Add(string.Format("targetFace={0}", System.Uri.EscapeDataString(targetFace))); - } - if (_queryParameters.Count > 0) - { - _url += "?" + string.Join("&", _queryParameters); - } - // Create HTTP transport objects - var _httpRequest = new HttpRequestMessage(); - HttpResponseMessage _httpResponse = null; - _httpRequest.Method = new HttpMethod("POST"); - _httpRequest.RequestUri = new System.Uri(_url); - // Set Headers - if (Client.SubscriptionKey != null) - { - if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) - { - _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); - } - _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); - } - - - if (customHeaders != null) - { - foreach(var _header in customHeaders) - { - if (_httpRequest.Headers.Contains(_header.Key)) - { - _httpRequest.Headers.Remove(_header.Key); - } - _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); - } - } - - // Serialize Request - string _requestContent = null; - // Send Request - if (_shouldTrace) - { - ServiceClientTracing.SendRequest(_invocationId, _httpRequest); - } - cancellationToken.ThrowIfCancellationRequested(); - _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); - if (_shouldTrace) - { - ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); - } - HttpStatusCode _statusCode = _httpResponse.StatusCode; - cancellationToken.ThrowIfCancellationRequested(); - string _responseContent = null; - if ((int)_statusCode != 200) - { - var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); - try - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - if (_errorBody != null) - { - ex.Body = _errorBody; - } - } - catch (JsonException) - { - // Ignore the exception - } - ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); - ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); - if (_shouldTrace) - { - ServiceClientTracing.Error(_invocationId, ex); - } - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw ex; - } - // Create Result - var _result = new HttpOperationResponse(); - _result.Request = _httpRequest; - _result.Response = _httpResponse; - if (_shouldTrace) - { - ServiceClientTracing.Exit(_invocationId, _result); - } - return _result; - } - - /// - /// Add a face to a face list. The input face is specified as an image with a - /// targetFace rectangle. It returns a persistedFaceId representing the added - /// face, and persistedFaceId will not expire. - /// - /// - /// Id referencing a Face List. - /// - /// - /// User-specified data about the face list for any purpose. The maximum - /// length is 1KB. - /// - /// - /// A face rectangle to specify the target face to be added into the face list, - /// in the format of "targetFace=left,top,width,height". E.g. - /// "targetFace=10,10,100,100". If there is more than one face in the image, - /// targetFace is required to specify which face to add. No targetFace means - /// there is only one face detected in the entire image. - /// - /// - /// Headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// A response object containing the response body and response headers. - /// - public async Task AddFaceFromStreamWithHttpMessagesAsync(string faceListId, string userData = default(string), string targetFace = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) - { - if (Client.AzureRegion1 == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); - } - if (faceListId == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "faceListId"); - } - if (faceListId != null) - { - if (faceListId.Length > 64) - { - throw new ValidationException(ValidationRules.MaxLength, "faceListId", 64); - } - if (!System.Text.RegularExpressions.Regex.IsMatch(faceListId, "^[a-z0-9-_]+$")) - { - throw new ValidationException(ValidationRules.Pattern, "faceListId", "^[a-z0-9-_]+$"); - } - } - if (Client.SubscriptionKey == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); - } - // Tracing - bool _shouldTrace = ServiceClientTracing.IsEnabled; - string _invocationId = null; - if (_shouldTrace) - { - _invocationId = ServiceClientTracing.NextInvocationId.ToString(); - Dictionary tracingParameters = new Dictionary(); - tracingParameters.Add("faceListId", faceListId); - tracingParameters.Add("userData", userData); - tracingParameters.Add("targetFace", targetFace); - tracingParameters.Add("cancellationToken", cancellationToken); - ServiceClientTracing.Enter(_invocationId, this, "AddFaceFromStream", tracingParameters); - } - // Construct URL - var _baseUrl = Client.BaseUri; - var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "facelists/{faceListId}/persistedFaces"; - _url = _url.Replace("{azureRegion}", Client.AzureRegion1); - _url = _url.Replace("{faceListId}", System.Uri.EscapeDataString(faceListId)); - List _queryParameters = new List(); - if (userData != null) - { - _queryParameters.Add(string.Format("userData={0}", System.Uri.EscapeDataString(userData))); - } - if (targetFace != null) - { - _queryParameters.Add(string.Format("targetFace={0}", System.Uri.EscapeDataString(targetFace))); - } - if (_queryParameters.Count > 0) - { - _url += "?" + string.Join("&", _queryParameters); - } - // Create HTTP transport objects - var _httpRequest = new HttpRequestMessage(); - HttpResponseMessage _httpResponse = null; - _httpRequest.Method = new HttpMethod("POST"); - _httpRequest.RequestUri = new System.Uri(_url); - // Set Headers - if (Client.SubscriptionKey != null) - { - if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) - { - _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); - } - _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); - } - - - if (customHeaders != null) - { - foreach(var _header in customHeaders) - { - if (_httpRequest.Headers.Contains(_header.Key)) - { - _httpRequest.Headers.Remove(_header.Key); - } - _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); - } - } - - // Serialize Request - string _requestContent = null; - // Send Request - if (_shouldTrace) - { - ServiceClientTracing.SendRequest(_invocationId, _httpRequest); - } - cancellationToken.ThrowIfCancellationRequested(); - _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); - if (_shouldTrace) - { - ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); - } - HttpStatusCode _statusCode = _httpResponse.StatusCode; - cancellationToken.ThrowIfCancellationRequested(); - string _responseContent = null; - if ((int)_statusCode != 200) - { - var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); - try - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - if (_errorBody != null) - { - ex.Body = _errorBody; - } - } - catch (JsonException) - { - // Ignore the exception - } - ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); - ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); - if (_shouldTrace) - { - ServiceClientTracing.Error(_invocationId, ex); - } - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw ex; - } - // Create Result - var _result = new HttpOperationResponse(); - _result.Request = _httpRequest; - _result.Response = _httpResponse; - if (_shouldTrace) - { - ServiceClientTracing.Exit(_invocationId, _result); - } - return _result; - } - - } -} diff --git a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/FaceListExtensions.cs b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/FaceListExtensions.cs deleted file mode 100644 index 90a316dad1f6..000000000000 --- a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/FaceListExtensions.cs +++ /dev/null @@ -1,363 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Vision.Face -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Vision; - using Models; - using System.Collections; - using System.Collections.Generic; - using System.Threading; - using System.Threading.Tasks; - - /// - /// Extension methods for FaceList. - /// - public static partial class FaceListExtensions - { - /// - /// Create an empty face list. Up to 64 face lists are allowed to exist in one - /// subscription. - /// - /// - /// The operations group for this extension method. - /// - /// - /// Id referencing a particular face list. - /// - /// - /// Name of the face list, maximum length is 128. - /// - /// - /// Optional user defined data for the face list. Length should not exceed - /// 16KB. - /// - public static void Create(this IFaceList operations, string faceListId, string name = default(string), string userData = default(string)) - { - operations.CreateAsync(faceListId, name, userData).GetAwaiter().GetResult(); - } - - /// - /// Create an empty face list. Up to 64 face lists are allowed to exist in one - /// subscription. - /// - /// - /// The operations group for this extension method. - /// - /// - /// Id referencing a particular face list. - /// - /// - /// Name of the face list, maximum length is 128. - /// - /// - /// Optional user defined data for the face list. Length should not exceed - /// 16KB. - /// - /// - /// The cancellation token. - /// - public static async Task CreateAsync(this IFaceList operations, string faceListId, string name = default(string), string userData = default(string), CancellationToken cancellationToken = default(CancellationToken)) - { - (await operations.CreateWithHttpMessagesAsync(faceListId, name, userData, null, cancellationToken).ConfigureAwait(false)).Dispose(); - } - - /// - /// Retrieve a face list's information. - /// - /// - /// The operations group for this extension method. - /// - /// - /// Id referencing a Face List. - /// - public static GetFaceListResult Get(this IFaceList operations, string faceListId) - { - return operations.GetAsync(faceListId).GetAwaiter().GetResult(); - } - - /// - /// Retrieve a face list's information. - /// - /// - /// The operations group for this extension method. - /// - /// - /// Id referencing a Face List. - /// - /// - /// The cancellation token. - /// - public static async Task GetAsync(this IFaceList operations, string faceListId, CancellationToken cancellationToken = default(CancellationToken)) - { - using (var _result = await operations.GetWithHttpMessagesAsync(faceListId, null, cancellationToken).ConfigureAwait(false)) - { - return _result.Body; - } - } - - /// - /// Update information of a face list. - /// - /// - /// The operations group for this extension method. - /// - /// - /// Id referencing a Face List. - /// - /// - /// Name of the face list, maximum length is 128. - /// - /// - /// Optional user defined data for the face list. Length should not exceed - /// 16KB. - /// - public static void Update(this IFaceList operations, string faceListId, string name = default(string), string userData = default(string)) - { - operations.UpdateAsync(faceListId, name, userData).GetAwaiter().GetResult(); - } - - /// - /// Update information of a face list. - /// - /// - /// The operations group for this extension method. - /// - /// - /// Id referencing a Face List. - /// - /// - /// Name of the face list, maximum length is 128. - /// - /// - /// Optional user defined data for the face list. Length should not exceed - /// 16KB. - /// - /// - /// The cancellation token. - /// - public static async Task UpdateAsync(this IFaceList operations, string faceListId, string name = default(string), string userData = default(string), CancellationToken cancellationToken = default(CancellationToken)) - { - (await operations.UpdateWithHttpMessagesAsync(faceListId, name, userData, null, cancellationToken).ConfigureAwait(false)).Dispose(); - } - - /// - /// Delete an existing face list according to faceListId. Persisted face images - /// in the face list will also be deleted. - /// - /// - /// The operations group for this extension method. - /// - /// - /// Id referencing a Face List. - /// - public static void Delete(this IFaceList operations, string faceListId) - { - operations.DeleteAsync(faceListId).GetAwaiter().GetResult(); - } - - /// - /// Delete an existing face list according to faceListId. Persisted face images - /// in the face list will also be deleted. - /// - /// - /// The operations group for this extension method. - /// - /// - /// Id referencing a Face List. - /// - /// - /// The cancellation token. - /// - public static async Task DeleteAsync(this IFaceList operations, string faceListId, CancellationToken cancellationToken = default(CancellationToken)) - { - (await operations.DeleteWithHttpMessagesAsync(faceListId, null, cancellationToken).ConfigureAwait(false)).Dispose(); - } - - /// - /// Retrieve information about all existing face lists. Only faceListId, name - /// and userData will be returned. - /// - /// - /// The operations group for this extension method. - /// - public static IList List(this IFaceList operations) - { - return operations.ListAsync().GetAwaiter().GetResult(); - } - - /// - /// Retrieve information about all existing face lists. Only faceListId, name - /// and userData will be returned. - /// - /// - /// The operations group for this extension method. - /// - /// - /// The cancellation token. - /// - public static async Task> ListAsync(this IFaceList operations, CancellationToken cancellationToken = default(CancellationToken)) - { - using (var _result = await operations.ListWithHttpMessagesAsync(null, cancellationToken).ConfigureAwait(false)) - { - return _result.Body; - } - } - - /// - /// Delete an existing face from a face list (given by a persisitedFaceId and a - /// faceListId). Persisted image related to the face will also be deleted. - /// - /// - /// The operations group for this extension method. - /// - /// - /// faceListId of an existing face list. - /// - /// - /// persistedFaceId of an existing face. - /// - public static void DeleteFace(this IFaceList operations, string faceListId, string persistedFaceId) - { - operations.DeleteFaceAsync(faceListId, persistedFaceId).GetAwaiter().GetResult(); - } - - /// - /// Delete an existing face from a face list (given by a persisitedFaceId and a - /// faceListId). Persisted image related to the face will also be deleted. - /// - /// - /// The operations group for this extension method. - /// - /// - /// faceListId of an existing face list. - /// - /// - /// persistedFaceId of an existing face. - /// - /// - /// The cancellation token. - /// - public static async Task DeleteFaceAsync(this IFaceList operations, string faceListId, string persistedFaceId, CancellationToken cancellationToken = default(CancellationToken)) - { - (await operations.DeleteFaceWithHttpMessagesAsync(faceListId, persistedFaceId, null, cancellationToken).ConfigureAwait(false)).Dispose(); - } - - /// - /// Add a face to a face list. The input face is specified as an image with a - /// targetFace rectangle. It returns a persistedFaceId representing the added - /// face, and persistedFaceId will not expire. - /// - /// - /// The operations group for this extension method. - /// - /// - /// Id referencing a Face List. - /// - /// - /// User-specified data about the face list for any purpose. The maximum - /// length is 1KB. - /// - /// - /// A face rectangle to specify the target face to be added into the face list, - /// in the format of "targetFace=left,top,width,height". E.g. - /// "targetFace=10,10,100,100". If there is more than one face in the image, - /// targetFace is required to specify which face to add. No targetFace means - /// there is only one face detected in the entire image. - /// - public static void AddFace(this IFaceList operations, string faceListId, string userData = default(string), string targetFace = default(string)) - { - operations.AddFaceAsync(faceListId, userData, targetFace).GetAwaiter().GetResult(); - } - - /// - /// Add a face to a face list. The input face is specified as an image with a - /// targetFace rectangle. It returns a persistedFaceId representing the added - /// face, and persistedFaceId will not expire. - /// - /// - /// The operations group for this extension method. - /// - /// - /// Id referencing a Face List. - /// - /// - /// User-specified data about the face list for any purpose. The maximum - /// length is 1KB. - /// - /// - /// A face rectangle to specify the target face to be added into the face list, - /// in the format of "targetFace=left,top,width,height". E.g. - /// "targetFace=10,10,100,100". If there is more than one face in the image, - /// targetFace is required to specify which face to add. No targetFace means - /// there is only one face detected in the entire image. - /// - /// - /// The cancellation token. - /// - public static async Task AddFaceAsync(this IFaceList operations, string faceListId, string userData = default(string), string targetFace = default(string), CancellationToken cancellationToken = default(CancellationToken)) - { - (await operations.AddFaceWithHttpMessagesAsync(faceListId, userData, targetFace, null, cancellationToken).ConfigureAwait(false)).Dispose(); - } - - /// - /// Add a face to a face list. The input face is specified as an image with a - /// targetFace rectangle. It returns a persistedFaceId representing the added - /// face, and persistedFaceId will not expire. - /// - /// - /// The operations group for this extension method. - /// - /// - /// Id referencing a Face List. - /// - /// - /// User-specified data about the face list for any purpose. The maximum - /// length is 1KB. - /// - /// - /// A face rectangle to specify the target face to be added into the face list, - /// in the format of "targetFace=left,top,width,height". E.g. - /// "targetFace=10,10,100,100". If there is more than one face in the image, - /// targetFace is required to specify which face to add. No targetFace means - /// there is only one face detected in the entire image. - /// - public static void AddFaceFromStream(this IFaceList operations, string faceListId, string userData = default(string), string targetFace = default(string)) - { - operations.AddFaceFromStreamAsync(faceListId, userData, targetFace).GetAwaiter().GetResult(); - } - - /// - /// Add a face to a face list. The input face is specified as an image with a - /// targetFace rectangle. It returns a persistedFaceId representing the added - /// face, and persistedFaceId will not expire. - /// - /// - /// The operations group for this extension method. - /// - /// - /// Id referencing a Face List. - /// - /// - /// User-specified data about the face list for any purpose. The maximum - /// length is 1KB. - /// - /// - /// A face rectangle to specify the target face to be added into the face list, - /// in the format of "targetFace=left,top,width,height". E.g. - /// "targetFace=10,10,100,100". If there is more than one face in the image, - /// targetFace is required to specify which face to add. No targetFace means - /// there is only one face detected in the entire image. - /// - /// - /// The cancellation token. - /// - public static async Task AddFaceFromStreamAsync(this IFaceList operations, string faceListId, string userData = default(string), string targetFace = default(string), CancellationToken cancellationToken = default(CancellationToken)) - { - (await operations.AddFaceFromStreamWithHttpMessagesAsync(faceListId, userData, targetFace, null, cancellationToken).ConfigureAwait(false)).Dispose(); - } - - } -} diff --git a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/FaceOperations.cs b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/FaceOperations.cs deleted file mode 100644 index 95954a94fc0e..000000000000 --- a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/FaceOperations.cs +++ /dev/null @@ -1,1263 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Vision.Face -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Vision; - using Microsoft.Rest; - using Models; - using Newtonsoft.Json; - using System.Collections; - using System.Collections.Generic; - using System.IO; - using System.Net; - using System.Net.Http; - using System.Threading; - using System.Threading.Tasks; - - /// - /// FaceOperations operations. - /// - public partial class FaceOperations : IServiceOperations, IFaceOperations - { - /// - /// Initializes a new instance of the FaceOperations class. - /// - /// - /// Reference to the service client. - /// - /// - /// Thrown when a required parameter is null - /// - public FaceOperations(FaceAPI client) - { - if (client == null) - { - throw new System.ArgumentNullException("client"); - } - Client = client; - } - - /// - /// Gets a reference to the FaceAPI - /// - public FaceAPI Client { get; private set; } - - /// - /// Given query face's faceId, find the similar-looking faces from a faceId - /// array or a faceListId. - /// - /// - /// FaceId of the query face. User needs to call Face - Detect first to get a - /// valid faceId. Note that this faceId is not persisted and will expire 24 - /// hours after the detection call - /// - /// - /// An existing user-specified unique candidate face list, created in Face List - /// - Create a Face List. Face list contains a set of persistedFaceIds which - /// are persisted and will never expire. Parameter faceListId and faceIds - /// should not be provided at the same time - /// - /// - /// An array of candidate faceIds. All of them are created by Face - Detect and - /// the faceIds will expire 24 hours after the detection call. - /// - /// - /// The number of top similar faces returned. The valid range is [1, 1000]. - /// - /// - /// Similar face searching mode. It can be "matchPerson" or "matchFace". - /// Possible values include: 'matchPerson', 'matchFace' - /// - /// - /// Headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when unable to deserialize the response - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// A response object containing the response body and response headers. - /// - public async Task>> FindSimilarWithHttpMessagesAsync(string faceId, string faceListId = default(string), IList faceIds = default(IList), int? maxNumOfCandidatesReturned = 20, string mode = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) - { - if (Client.AzureRegion1 == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); - } - if (Client.SubscriptionKey == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); - } - if (faceId == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "faceId"); - } - if (faceId != null) - { - if (faceId.Length > 64) - { - throw new ValidationException(ValidationRules.MaxLength, "faceId", 64); - } - } - if (faceListId != null) - { - if (faceListId.Length > 64) - { - throw new ValidationException(ValidationRules.MaxLength, "faceListId", 64); - } - if (!System.Text.RegularExpressions.Regex.IsMatch(faceListId, "^[a-z0-9-_]+$")) - { - throw new ValidationException(ValidationRules.Pattern, "faceListId", "^[a-z0-9-_]+$"); - } - } - if (faceIds != null) - { - if (faceIds.Count > 1000) - { - throw new ValidationException(ValidationRules.MaxItems, "faceIds", 1000); - } - } - if (maxNumOfCandidatesReturned > 1000) - { - throw new ValidationException(ValidationRules.InclusiveMaximum, "maxNumOfCandidatesReturned", 1000); - } - if (maxNumOfCandidatesReturned < 1) - { - throw new ValidationException(ValidationRules.InclusiveMinimum, "maxNumOfCandidatesReturned", 1); - } - FindSimilarRequest body = new FindSimilarRequest(); - if (faceId != null || faceListId != null || faceIds != null || maxNumOfCandidatesReturned != null || mode != null) - { - body.FaceId = faceId; - body.FaceListId = faceListId; - body.FaceIds = faceIds; - body.MaxNumOfCandidatesReturned = maxNumOfCandidatesReturned; - body.Mode = mode; - } - // Tracing - bool _shouldTrace = ServiceClientTracing.IsEnabled; - string _invocationId = null; - if (_shouldTrace) - { - _invocationId = ServiceClientTracing.NextInvocationId.ToString(); - Dictionary tracingParameters = new Dictionary(); - tracingParameters.Add("body", body); - tracingParameters.Add("cancellationToken", cancellationToken); - ServiceClientTracing.Enter(_invocationId, this, "FindSimilar", tracingParameters); - } - // Construct URL - var _baseUrl = Client.BaseUri; - var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "findsimilars"; - _url = _url.Replace("{azureRegion}", Client.AzureRegion1); - // Create HTTP transport objects - var _httpRequest = new HttpRequestMessage(); - HttpResponseMessage _httpResponse = null; - _httpRequest.Method = new HttpMethod("POST"); - _httpRequest.RequestUri = new System.Uri(_url); - // Set Headers - if (Client.SubscriptionKey != null) - { - if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) - { - _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); - } - _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); - } - - - if (customHeaders != null) - { - foreach(var _header in customHeaders) - { - if (_httpRequest.Headers.Contains(_header.Key)) - { - _httpRequest.Headers.Remove(_header.Key); - } - _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); - } - } - - // Serialize Request - string _requestContent = null; - if(body != null) - { - _requestContent = Rest.Serialization.SafeJsonConvert.SerializeObject(body, Client.SerializationSettings); - _httpRequest.Content = new StringContent(_requestContent, System.Text.Encoding.UTF8); - _httpRequest.Content.Headers.ContentType =System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json; charset=utf-8"); - } - // Send Request - if (_shouldTrace) - { - ServiceClientTracing.SendRequest(_invocationId, _httpRequest); - } - cancellationToken.ThrowIfCancellationRequested(); - _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); - if (_shouldTrace) - { - ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); - } - HttpStatusCode _statusCode = _httpResponse.StatusCode; - cancellationToken.ThrowIfCancellationRequested(); - string _responseContent = null; - if ((int)_statusCode != 200) - { - var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); - try - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - if (_errorBody != null) - { - ex.Body = _errorBody; - } - } - catch (JsonException) - { - // Ignore the exception - } - ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); - ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); - if (_shouldTrace) - { - ServiceClientTracing.Error(_invocationId, ex); - } - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw ex; - } - // Create Result - var _result = new HttpOperationResponse>(); - _result.Request = _httpRequest; - _result.Response = _httpResponse; - // Deserialize Response - if ((int)_statusCode == 200) - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - try - { - _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject>(_responseContent, Client.DeserializationSettings); - } - catch (JsonException ex) - { - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); - } - } - if (_shouldTrace) - { - ServiceClientTracing.Exit(_invocationId, _result); - } - return _result; - } - - /// - /// Divide candidate faces into groups based on face similarity. - /// - /// - /// Array of candidate faceId created by Face - Detect. The maximum is 1000 - /// faces - /// - /// - /// Headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when unable to deserialize the response - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// A response object containing the response body and response headers. - /// - public async Task> GroupWithHttpMessagesAsync(IList faceIds, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) - { - if (Client.AzureRegion1 == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); - } - if (Client.SubscriptionKey == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); - } - if (faceIds == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "faceIds"); - } - if (faceIds != null) - { - if (faceIds.Count > 1000) - { - throw new ValidationException(ValidationRules.MaxItems, "faceIds", 1000); - } - } - GroupRequest body = new GroupRequest(); - if (faceIds != null) - { - body.FaceIds = faceIds; - } - // Tracing - bool _shouldTrace = ServiceClientTracing.IsEnabled; - string _invocationId = null; - if (_shouldTrace) - { - _invocationId = ServiceClientTracing.NextInvocationId.ToString(); - Dictionary tracingParameters = new Dictionary(); - tracingParameters.Add("body", body); - tracingParameters.Add("cancellationToken", cancellationToken); - ServiceClientTracing.Enter(_invocationId, this, "Group", tracingParameters); - } - // Construct URL - var _baseUrl = Client.BaseUri; - var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "group"; - _url = _url.Replace("{azureRegion}", Client.AzureRegion1); - // Create HTTP transport objects - var _httpRequest = new HttpRequestMessage(); - HttpResponseMessage _httpResponse = null; - _httpRequest.Method = new HttpMethod("POST"); - _httpRequest.RequestUri = new System.Uri(_url); - // Set Headers - if (Client.SubscriptionKey != null) - { - if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) - { - _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); - } - _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); - } - - - if (customHeaders != null) - { - foreach(var _header in customHeaders) - { - if (_httpRequest.Headers.Contains(_header.Key)) - { - _httpRequest.Headers.Remove(_header.Key); - } - _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); - } - } - - // Serialize Request - string _requestContent = null; - if(body != null) - { - _requestContent = Rest.Serialization.SafeJsonConvert.SerializeObject(body, Client.SerializationSettings); - _httpRequest.Content = new StringContent(_requestContent, System.Text.Encoding.UTF8); - _httpRequest.Content.Headers.ContentType =System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json; charset=utf-8"); - } - // Send Request - if (_shouldTrace) - { - ServiceClientTracing.SendRequest(_invocationId, _httpRequest); - } - cancellationToken.ThrowIfCancellationRequested(); - _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); - if (_shouldTrace) - { - ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); - } - HttpStatusCode _statusCode = _httpResponse.StatusCode; - cancellationToken.ThrowIfCancellationRequested(); - string _responseContent = null; - if ((int)_statusCode != 200) - { - var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); - try - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - if (_errorBody != null) - { - ex.Body = _errorBody; - } - } - catch (JsonException) - { - // Ignore the exception - } - ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); - ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); - if (_shouldTrace) - { - ServiceClientTracing.Error(_invocationId, ex); - } - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw ex; - } - // Create Result - var _result = new HttpOperationResponse(); - _result.Request = _httpRequest; - _result.Response = _httpResponse; - // Deserialize Response - if ((int)_statusCode == 200) - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - try - { - _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - } - catch (JsonException ex) - { - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); - } - } - if (_shouldTrace) - { - ServiceClientTracing.Exit(_invocationId, _result); - } - return _result; - } - - /// - /// Identify unknown faces from a person group. - /// - /// - /// personGroupId of the target person group, created by PersonGroups.Create - /// - /// - /// Array of candidate faceId created by Face - Detect. - /// - /// - /// The number of top similar faces returned. - /// - /// - /// Confidence threshold of identification, used to judge whether one face - /// belong to one person. - /// - /// - /// Headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when unable to deserialize the response - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// A response object containing the response body and response headers. - /// - public async Task>> IdentifyWithHttpMessagesAsync(string personGroupId, IList faceIds, int? maxNumOfCandidatesReturned = 1, double? confidenceThreshold = default(double?), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) - { - if (Client.AzureRegion1 == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); - } - if (Client.SubscriptionKey == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); - } - if (personGroupId == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "personGroupId"); - } - if (faceIds == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "faceIds"); - } - if (faceIds != null) - { - if (faceIds.Count > 1000) - { - throw new ValidationException(ValidationRules.MaxItems, "faceIds", 1000); - } - } - if (maxNumOfCandidatesReturned > 1000) - { - throw new ValidationException(ValidationRules.InclusiveMaximum, "maxNumOfCandidatesReturned", 1000); - } - if (maxNumOfCandidatesReturned < 1) - { - throw new ValidationException(ValidationRules.InclusiveMinimum, "maxNumOfCandidatesReturned", 1); - } - if (confidenceThreshold > 1) - { - throw new ValidationException(ValidationRules.InclusiveMaximum, "confidenceThreshold", 1); - } - if (confidenceThreshold < 0) - { - throw new ValidationException(ValidationRules.InclusiveMinimum, "confidenceThreshold", 0); - } - IdentifyRequest body = new IdentifyRequest(); - if (personGroupId != null || faceIds != null || maxNumOfCandidatesReturned != null || confidenceThreshold != null) - { - body.PersonGroupId = personGroupId; - body.FaceIds = faceIds; - body.MaxNumOfCandidatesReturned = maxNumOfCandidatesReturned; - body.ConfidenceThreshold = confidenceThreshold; - } - // Tracing - bool _shouldTrace = ServiceClientTracing.IsEnabled; - string _invocationId = null; - if (_shouldTrace) - { - _invocationId = ServiceClientTracing.NextInvocationId.ToString(); - Dictionary tracingParameters = new Dictionary(); - tracingParameters.Add("body", body); - tracingParameters.Add("cancellationToken", cancellationToken); - ServiceClientTracing.Enter(_invocationId, this, "Identify", tracingParameters); - } - // Construct URL - var _baseUrl = Client.BaseUri; - var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "identify"; - _url = _url.Replace("{azureRegion}", Client.AzureRegion1); - // Create HTTP transport objects - var _httpRequest = new HttpRequestMessage(); - HttpResponseMessage _httpResponse = null; - _httpRequest.Method = new HttpMethod("POST"); - _httpRequest.RequestUri = new System.Uri(_url); - // Set Headers - if (Client.SubscriptionKey != null) - { - if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) - { - _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); - } - _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); - } - - - if (customHeaders != null) - { - foreach(var _header in customHeaders) - { - if (_httpRequest.Headers.Contains(_header.Key)) - { - _httpRequest.Headers.Remove(_header.Key); - } - _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); - } - } - - // Serialize Request - string _requestContent = null; - if(body != null) - { - _requestContent = Rest.Serialization.SafeJsonConvert.SerializeObject(body, Client.SerializationSettings); - _httpRequest.Content = new StringContent(_requestContent, System.Text.Encoding.UTF8); - _httpRequest.Content.Headers.ContentType =System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json; charset=utf-8"); - } - // Send Request - if (_shouldTrace) - { - ServiceClientTracing.SendRequest(_invocationId, _httpRequest); - } - cancellationToken.ThrowIfCancellationRequested(); - _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); - if (_shouldTrace) - { - ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); - } - HttpStatusCode _statusCode = _httpResponse.StatusCode; - cancellationToken.ThrowIfCancellationRequested(); - string _responseContent = null; - if ((int)_statusCode != 200) - { - var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); - try - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - if (_errorBody != null) - { - ex.Body = _errorBody; - } - } - catch (JsonException) - { - // Ignore the exception - } - ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); - ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); - if (_shouldTrace) - { - ServiceClientTracing.Error(_invocationId, ex); - } - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw ex; - } - // Create Result - var _result = new HttpOperationResponse>(); - _result.Request = _httpRequest; - _result.Response = _httpResponse; - // Deserialize Response - if ((int)_statusCode == 200) - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - try - { - _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject>(_responseContent, Client.DeserializationSettings); - } - catch (JsonException ex) - { - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); - } - } - if (_shouldTrace) - { - ServiceClientTracing.Exit(_invocationId, _result); - } - return _result; - } - - /// - /// Verify whether two faces belong to a same person or whether one face - /// belongs to a person. - /// - /// - /// faceId the face, comes from Face - Detect - /// - /// - /// Specify a certain person in a person group. personId is created in - /// Persons.Create. - /// - /// - /// Using existing personGroupId and personId for fast loading a specified - /// person. personGroupId is created in Person Groups.Create. - /// - /// - /// Headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when unable to deserialize the response - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// A response object containing the response body and response headers. - /// - public async Task> VerifyWithHttpMessagesAsync(string faceId, string personId, string personGroupId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) - { - if (Client.AzureRegion1 == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); - } - if (Client.SubscriptionKey == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); - } - if (faceId == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "faceId"); - } - if (faceId != null) - { - if (faceId.Length > 64) - { - throw new ValidationException(ValidationRules.MaxLength, "faceId", 64); - } - } - if (personId == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "personId"); - } - if (personGroupId == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "personGroupId"); - } - VerifyRequest body = new VerifyRequest(); - if (faceId != null || personId != null || personGroupId != null) - { - body.FaceId = faceId; - body.PersonId = personId; - body.PersonGroupId = personGroupId; - } - // Tracing - bool _shouldTrace = ServiceClientTracing.IsEnabled; - string _invocationId = null; - if (_shouldTrace) - { - _invocationId = ServiceClientTracing.NextInvocationId.ToString(); - Dictionary tracingParameters = new Dictionary(); - tracingParameters.Add("body", body); - tracingParameters.Add("cancellationToken", cancellationToken); - ServiceClientTracing.Enter(_invocationId, this, "Verify", tracingParameters); - } - // Construct URL - var _baseUrl = Client.BaseUri; - var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "verify"; - _url = _url.Replace("{azureRegion}", Client.AzureRegion1); - // Create HTTP transport objects - var _httpRequest = new HttpRequestMessage(); - HttpResponseMessage _httpResponse = null; - _httpRequest.Method = new HttpMethod("POST"); - _httpRequest.RequestUri = new System.Uri(_url); - // Set Headers - if (Client.SubscriptionKey != null) - { - if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) - { - _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); - } - _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); - } - - - if (customHeaders != null) - { - foreach(var _header in customHeaders) - { - if (_httpRequest.Headers.Contains(_header.Key)) - { - _httpRequest.Headers.Remove(_header.Key); - } - _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); - } - } - - // Serialize Request - string _requestContent = null; - if(body != null) - { - _requestContent = Rest.Serialization.SafeJsonConvert.SerializeObject(body, Client.SerializationSettings); - _httpRequest.Content = new StringContent(_requestContent, System.Text.Encoding.UTF8); - _httpRequest.Content.Headers.ContentType =System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json; charset=utf-8"); - } - // Send Request - if (_shouldTrace) - { - ServiceClientTracing.SendRequest(_invocationId, _httpRequest); - } - cancellationToken.ThrowIfCancellationRequested(); - _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); - if (_shouldTrace) - { - ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); - } - HttpStatusCode _statusCode = _httpResponse.StatusCode; - cancellationToken.ThrowIfCancellationRequested(); - string _responseContent = null; - if ((int)_statusCode != 200) - { - var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); - try - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - if (_errorBody != null) - { - ex.Body = _errorBody; - } - } - catch (JsonException) - { - // Ignore the exception - } - ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); - ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); - if (_shouldTrace) - { - ServiceClientTracing.Error(_invocationId, ex); - } - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw ex; - } - // Create Result - var _result = new HttpOperationResponse(); - _result.Request = _httpRequest; - _result.Response = _httpResponse; - // Deserialize Response - if ((int)_statusCode == 200) - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - try - { - _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - } - catch (JsonException ex) - { - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); - } - } - if (_shouldTrace) - { - ServiceClientTracing.Exit(_invocationId, _result); - } - return _result; - } - - /// - /// Detect human faces in an image and returns face locations, and optionally - /// with faceIds, landmarks, and attributes. - /// - /// - /// - /// - /// A value indicating whether the operation should return faceIds of detected - /// faces. - /// - /// - /// A value indicating whether the operation should return landmarks of the - /// detected faces. - /// - /// - /// Analyze and return the one or more specified face attributes in the - /// comma-separated string like "returnFaceAttributes=age,gender". Supported - /// face attributes include age, gender, headPose, smile, facialHair, glasses - /// and emotion. Note that each face attribute analysis has additional - /// computational and time cost. - /// - /// - /// Headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when unable to deserialize the response - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// A response object containing the response body and response headers. - /// - public async Task>> DetectWithHttpMessagesAsync(string url, bool? returnFaceId = true, bool? returnFaceLandmarks = false, string returnFaceAttributes = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) - { - if (Client.AzureRegion1 == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); - } - if (Client.SubscriptionKey == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); - } - if (url == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "url"); - } - ImageUrl imageUrl = new ImageUrl(); - if (url != null) - { - imageUrl.Url = url; - } - // Tracing - bool _shouldTrace = ServiceClientTracing.IsEnabled; - string _invocationId = null; - if (_shouldTrace) - { - _invocationId = ServiceClientTracing.NextInvocationId.ToString(); - Dictionary tracingParameters = new Dictionary(); - tracingParameters.Add("returnFaceId", returnFaceId); - tracingParameters.Add("returnFaceLandmarks", returnFaceLandmarks); - tracingParameters.Add("returnFaceAttributes", returnFaceAttributes); - tracingParameters.Add("imageUrl", imageUrl); - tracingParameters.Add("cancellationToken", cancellationToken); - ServiceClientTracing.Enter(_invocationId, this, "Detect", tracingParameters); - } - // Construct URL - var _baseUrl = Client.BaseUri; - var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "detect"; - _url = _url.Replace("{azureRegion}", Client.AzureRegion1); - List _queryParameters = new List(); - if (returnFaceId != null) - { - _queryParameters.Add(string.Format("returnFaceId={0}", System.Uri.EscapeDataString(Rest.Serialization.SafeJsonConvert.SerializeObject(returnFaceId, Client.SerializationSettings).Trim('"')))); - } - if (returnFaceLandmarks != null) - { - _queryParameters.Add(string.Format("returnFaceLandmarks={0}", System.Uri.EscapeDataString(Rest.Serialization.SafeJsonConvert.SerializeObject(returnFaceLandmarks, Client.SerializationSettings).Trim('"')))); - } - if (returnFaceAttributes != null) - { - _queryParameters.Add(string.Format("returnFaceAttributes={0}", System.Uri.EscapeDataString(returnFaceAttributes))); - } - if (_queryParameters.Count > 0) - { - _url += "?" + string.Join("&", _queryParameters); - } - // Create HTTP transport objects - var _httpRequest = new HttpRequestMessage(); - HttpResponseMessage _httpResponse = null; - _httpRequest.Method = new HttpMethod("POST"); - _httpRequest.RequestUri = new System.Uri(_url); - // Set Headers - if (Client.SubscriptionKey != null) - { - if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) - { - _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); - } - _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); - } - - - if (customHeaders != null) - { - foreach(var _header in customHeaders) - { - if (_httpRequest.Headers.Contains(_header.Key)) - { - _httpRequest.Headers.Remove(_header.Key); - } - _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); - } - } - - // Serialize Request - string _requestContent = null; - if(imageUrl != null) - { - _requestContent = Rest.Serialization.SafeJsonConvert.SerializeObject(imageUrl, Client.SerializationSettings); - _httpRequest.Content = new StringContent(_requestContent, System.Text.Encoding.UTF8); - _httpRequest.Content.Headers.ContentType =System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json; charset=utf-8"); - } - // Send Request - if (_shouldTrace) - { - ServiceClientTracing.SendRequest(_invocationId, _httpRequest); - } - cancellationToken.ThrowIfCancellationRequested(); - _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); - if (_shouldTrace) - { - ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); - } - HttpStatusCode _statusCode = _httpResponse.StatusCode; - cancellationToken.ThrowIfCancellationRequested(); - string _responseContent = null; - if ((int)_statusCode != 200) - { - var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); - try - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - if (_errorBody != null) - { - ex.Body = _errorBody; - } - } - catch (JsonException) - { - // Ignore the exception - } - ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); - ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); - if (_shouldTrace) - { - ServiceClientTracing.Error(_invocationId, ex); - } - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw ex; - } - // Create Result - var _result = new HttpOperationResponse>(); - _result.Request = _httpRequest; - _result.Response = _httpResponse; - // Deserialize Response - if ((int)_statusCode == 200) - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - try - { - _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject>(_responseContent, Client.DeserializationSettings); - } - catch (JsonException ex) - { - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); - } - } - if (_shouldTrace) - { - ServiceClientTracing.Exit(_invocationId, _result); - } - return _result; - } - - /// - /// Detect human faces in an image and returns face locations, and optionally - /// with faceIds, landmarks, and attributes. - /// - /// - /// An image stream. - /// - /// - /// A value indicating whether the operation should return faceIds of detected - /// faces. - /// - /// - /// A value indicating whether the operation should return landmarks of the - /// detected faces. - /// - /// - /// Analyze and return the one or more specified face attributes in the - /// comma-separated string like "returnFaceAttributes=age,gender". Supported - /// face attributes include age, gender, headPose, smile, facialHair, glasses - /// and emotion. Note that each face attribute analysis has additional - /// computational and time cost. - /// - /// - /// Headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when unable to deserialize the response - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// A response object containing the response body and response headers. - /// - public async Task>> DetectInStreamWithHttpMessagesAsync(Stream image, bool? returnFaceId = true, bool? returnFaceLandmarks = false, string returnFaceAttributes = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) - { - if (Client.AzureRegion1 == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); - } - if (Client.SubscriptionKey == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); - } - if (image == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "image"); - } - // Tracing - bool _shouldTrace = ServiceClientTracing.IsEnabled; - string _invocationId = null; - if (_shouldTrace) - { - _invocationId = ServiceClientTracing.NextInvocationId.ToString(); - Dictionary tracingParameters = new Dictionary(); - tracingParameters.Add("returnFaceId", returnFaceId); - tracingParameters.Add("returnFaceLandmarks", returnFaceLandmarks); - tracingParameters.Add("returnFaceAttributes", returnFaceAttributes); - tracingParameters.Add("image", image); - tracingParameters.Add("cancellationToken", cancellationToken); - ServiceClientTracing.Enter(_invocationId, this, "DetectInStream", tracingParameters); - } - // Construct URL - var _baseUrl = Client.BaseUri; - var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "detect"; - _url = _url.Replace("{azureRegion}", Client.AzureRegion1); - List _queryParameters = new List(); - if (returnFaceId != null) - { - _queryParameters.Add(string.Format("returnFaceId={0}", System.Uri.EscapeDataString(Rest.Serialization.SafeJsonConvert.SerializeObject(returnFaceId, Client.SerializationSettings).Trim('"')))); - } - if (returnFaceLandmarks != null) - { - _queryParameters.Add(string.Format("returnFaceLandmarks={0}", System.Uri.EscapeDataString(Rest.Serialization.SafeJsonConvert.SerializeObject(returnFaceLandmarks, Client.SerializationSettings).Trim('"')))); - } - if (returnFaceAttributes != null) - { - _queryParameters.Add(string.Format("returnFaceAttributes={0}", System.Uri.EscapeDataString(returnFaceAttributes))); - } - if (_queryParameters.Count > 0) - { - _url += "?" + string.Join("&", _queryParameters); - } - // Create HTTP transport objects - var _httpRequest = new HttpRequestMessage(); - HttpResponseMessage _httpResponse = null; - _httpRequest.Method = new HttpMethod("POST"); - _httpRequest.RequestUri = new System.Uri(_url); - // Set Headers - if (Client.SubscriptionKey != null) - { - if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) - { - _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); - } - _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); - } - - - if (customHeaders != null) - { - foreach(var _header in customHeaders) - { - if (_httpRequest.Headers.Contains(_header.Key)) - { - _httpRequest.Headers.Remove(_header.Key); - } - _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); - } - } - - // Serialize Request - string _requestContent = null; - if(image == null) - { - throw new System.ArgumentNullException("image"); - } - if (image != null && image != Stream.Null) - { - _httpRequest.Content = new StreamContent(image); - _httpRequest.Content.Headers.ContentType =System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/octet-stream"); - } - // Send Request - if (_shouldTrace) - { - ServiceClientTracing.SendRequest(_invocationId, _httpRequest); - } - cancellationToken.ThrowIfCancellationRequested(); - _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); - if (_shouldTrace) - { - ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); - } - HttpStatusCode _statusCode = _httpResponse.StatusCode; - cancellationToken.ThrowIfCancellationRequested(); - string _responseContent = null; - if ((int)_statusCode != 200) - { - var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); - try - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - if (_errorBody != null) - { - ex.Body = _errorBody; - } - } - catch (JsonException) - { - // Ignore the exception - } - ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); - ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); - if (_shouldTrace) - { - ServiceClientTracing.Error(_invocationId, ex); - } - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw ex; - } - // Create Result - var _result = new HttpOperationResponse>(); - _result.Request = _httpRequest; - _result.Response = _httpResponse; - // Deserialize Response - if ((int)_statusCode == 200) - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - try - { - _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject>(_responseContent, Client.DeserializationSettings); - } - catch (JsonException ex) - { - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); - } - } - if (_shouldTrace) - { - ServiceClientTracing.Exit(_invocationId, _result); - } - return _result; - } - - } -} diff --git a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/FaceOperationsExtensions.cs b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/FaceOperationsExtensions.cs deleted file mode 100644 index 3024140abfb7..000000000000 --- a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/FaceOperationsExtensions.cs +++ /dev/null @@ -1,368 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Vision.Face -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Vision; - using Models; - using System.Collections; - using System.Collections.Generic; - using System.IO; - using System.Threading; - using System.Threading.Tasks; - - /// - /// Extension methods for FaceOperations. - /// - public static partial class FaceOperationsExtensions - { - /// - /// Given query face's faceId, find the similar-looking faces from a faceId - /// array or a faceListId. - /// - /// - /// The operations group for this extension method. - /// - /// - /// FaceId of the query face. User needs to call Face - Detect first to get a - /// valid faceId. Note that this faceId is not persisted and will expire 24 - /// hours after the detection call - /// - /// - /// An existing user-specified unique candidate face list, created in Face List - /// - Create a Face List. Face list contains a set of persistedFaceIds which - /// are persisted and will never expire. Parameter faceListId and faceIds - /// should not be provided at the same time - /// - /// - /// An array of candidate faceIds. All of them are created by Face - Detect and - /// the faceIds will expire 24 hours after the detection call. - /// - /// - /// The number of top similar faces returned. The valid range is [1, 1000]. - /// - /// - /// Similar face searching mode. It can be "matchPerson" or "matchFace". - /// Possible values include: 'matchPerson', 'matchFace' - /// - public static IList FindSimilar(this IFaceOperations operations, string faceId, string faceListId = default(string), IList faceIds = default(IList), int? maxNumOfCandidatesReturned = 20, string mode = default(string)) - { - return operations.FindSimilarAsync(faceId, faceListId, faceIds, maxNumOfCandidatesReturned, mode).GetAwaiter().GetResult(); - } - - /// - /// Given query face's faceId, find the similar-looking faces from a faceId - /// array or a faceListId. - /// - /// - /// The operations group for this extension method. - /// - /// - /// FaceId of the query face. User needs to call Face - Detect first to get a - /// valid faceId. Note that this faceId is not persisted and will expire 24 - /// hours after the detection call - /// - /// - /// An existing user-specified unique candidate face list, created in Face List - /// - Create a Face List. Face list contains a set of persistedFaceIds which - /// are persisted and will never expire. Parameter faceListId and faceIds - /// should not be provided at the same time - /// - /// - /// An array of candidate faceIds. All of them are created by Face - Detect and - /// the faceIds will expire 24 hours after the detection call. - /// - /// - /// The number of top similar faces returned. The valid range is [1, 1000]. - /// - /// - /// Similar face searching mode. It can be "matchPerson" or "matchFace". - /// Possible values include: 'matchPerson', 'matchFace' - /// - /// - /// The cancellation token. - /// - public static async Task> FindSimilarAsync(this IFaceOperations operations, string faceId, string faceListId = default(string), IList faceIds = default(IList), int? maxNumOfCandidatesReturned = 20, string mode = default(string), CancellationToken cancellationToken = default(CancellationToken)) - { - using (var _result = await operations.FindSimilarWithHttpMessagesAsync(faceId, faceListId, faceIds, maxNumOfCandidatesReturned, mode, null, cancellationToken).ConfigureAwait(false)) - { - return _result.Body; - } - } - - /// - /// Divide candidate faces into groups based on face similarity. - /// - /// - /// The operations group for this extension method. - /// - /// - /// Array of candidate faceId created by Face - Detect. The maximum is 1000 - /// faces - /// - public static GroupResponse Group(this IFaceOperations operations, IList faceIds) - { - return operations.GroupAsync(faceIds).GetAwaiter().GetResult(); - } - - /// - /// Divide candidate faces into groups based on face similarity. - /// - /// - /// The operations group for this extension method. - /// - /// - /// Array of candidate faceId created by Face - Detect. The maximum is 1000 - /// faces - /// - /// - /// The cancellation token. - /// - public static async Task GroupAsync(this IFaceOperations operations, IList faceIds, CancellationToken cancellationToken = default(CancellationToken)) - { - using (var _result = await operations.GroupWithHttpMessagesAsync(faceIds, null, cancellationToken).ConfigureAwait(false)) - { - return _result.Body; - } - } - - /// - /// Identify unknown faces from a person group. - /// - /// - /// The operations group for this extension method. - /// - /// - /// personGroupId of the target person group, created by PersonGroups.Create - /// - /// - /// Array of candidate faceId created by Face - Detect. - /// - /// - /// The number of top similar faces returned. - /// - /// - /// Confidence threshold of identification, used to judge whether one face - /// belong to one person. - /// - public static IList Identify(this IFaceOperations operations, string personGroupId, IList faceIds, int? maxNumOfCandidatesReturned = 1, double? confidenceThreshold = default(double?)) - { - return operations.IdentifyAsync(personGroupId, faceIds, maxNumOfCandidatesReturned, confidenceThreshold).GetAwaiter().GetResult(); - } - - /// - /// Identify unknown faces from a person group. - /// - /// - /// The operations group for this extension method. - /// - /// - /// personGroupId of the target person group, created by PersonGroups.Create - /// - /// - /// Array of candidate faceId created by Face - Detect. - /// - /// - /// The number of top similar faces returned. - /// - /// - /// Confidence threshold of identification, used to judge whether one face - /// belong to one person. - /// - /// - /// The cancellation token. - /// - public static async Task> IdentifyAsync(this IFaceOperations operations, string personGroupId, IList faceIds, int? maxNumOfCandidatesReturned = 1, double? confidenceThreshold = default(double?), CancellationToken cancellationToken = default(CancellationToken)) - { - using (var _result = await operations.IdentifyWithHttpMessagesAsync(personGroupId, faceIds, maxNumOfCandidatesReturned, confidenceThreshold, null, cancellationToken).ConfigureAwait(false)) - { - return _result.Body; - } - } - - /// - /// Verify whether two faces belong to a same person or whether one face - /// belongs to a person. - /// - /// - /// The operations group for this extension method. - /// - /// - /// faceId the face, comes from Face - Detect - /// - /// - /// Specify a certain person in a person group. personId is created in - /// Persons.Create. - /// - /// - /// Using existing personGroupId and personId for fast loading a specified - /// person. personGroupId is created in Person Groups.Create. - /// - public static VerifyResult Verify(this IFaceOperations operations, string faceId, string personId, string personGroupId) - { - return operations.VerifyAsync(faceId, personId, personGroupId).GetAwaiter().GetResult(); - } - - /// - /// Verify whether two faces belong to a same person or whether one face - /// belongs to a person. - /// - /// - /// The operations group for this extension method. - /// - /// - /// faceId the face, comes from Face - Detect - /// - /// - /// Specify a certain person in a person group. personId is created in - /// Persons.Create. - /// - /// - /// Using existing personGroupId and personId for fast loading a specified - /// person. personGroupId is created in Person Groups.Create. - /// - /// - /// The cancellation token. - /// - public static async Task VerifyAsync(this IFaceOperations operations, string faceId, string personId, string personGroupId, CancellationToken cancellationToken = default(CancellationToken)) - { - using (var _result = await operations.VerifyWithHttpMessagesAsync(faceId, personId, personGroupId, null, cancellationToken).ConfigureAwait(false)) - { - return _result.Body; - } - } - - /// - /// Detect human faces in an image and returns face locations, and optionally - /// with faceIds, landmarks, and attributes. - /// - /// - /// The operations group for this extension method. - /// - /// - /// - /// - /// A value indicating whether the operation should return faceIds of detected - /// faces. - /// - /// - /// A value indicating whether the operation should return landmarks of the - /// detected faces. - /// - /// - /// Analyze and return the one or more specified face attributes in the - /// comma-separated string like "returnFaceAttributes=age,gender". Supported - /// face attributes include age, gender, headPose, smile, facialHair, glasses - /// and emotion. Note that each face attribute analysis has additional - /// computational and time cost. - /// - public static IList Detect(this IFaceOperations operations, string url, bool? returnFaceId = true, bool? returnFaceLandmarks = false, string returnFaceAttributes = default(string)) - { - return operations.DetectAsync(url, returnFaceId, returnFaceLandmarks, returnFaceAttributes).GetAwaiter().GetResult(); - } - - /// - /// Detect human faces in an image and returns face locations, and optionally - /// with faceIds, landmarks, and attributes. - /// - /// - /// The operations group for this extension method. - /// - /// - /// - /// - /// A value indicating whether the operation should return faceIds of detected - /// faces. - /// - /// - /// A value indicating whether the operation should return landmarks of the - /// detected faces. - /// - /// - /// Analyze and return the one or more specified face attributes in the - /// comma-separated string like "returnFaceAttributes=age,gender". Supported - /// face attributes include age, gender, headPose, smile, facialHair, glasses - /// and emotion. Note that each face attribute analysis has additional - /// computational and time cost. - /// - /// - /// The cancellation token. - /// - public static async Task> DetectAsync(this IFaceOperations operations, string url, bool? returnFaceId = true, bool? returnFaceLandmarks = false, string returnFaceAttributes = default(string), CancellationToken cancellationToken = default(CancellationToken)) - { - using (var _result = await operations.DetectWithHttpMessagesAsync(url, returnFaceId, returnFaceLandmarks, returnFaceAttributes, null, cancellationToken).ConfigureAwait(false)) - { - return _result.Body; - } - } - - /// - /// Detect human faces in an image and returns face locations, and optionally - /// with faceIds, landmarks, and attributes. - /// - /// - /// The operations group for this extension method. - /// - /// - /// An image stream. - /// - /// - /// A value indicating whether the operation should return faceIds of detected - /// faces. - /// - /// - /// A value indicating whether the operation should return landmarks of the - /// detected faces. - /// - /// - /// Analyze and return the one or more specified face attributes in the - /// comma-separated string like "returnFaceAttributes=age,gender". Supported - /// face attributes include age, gender, headPose, smile, facialHair, glasses - /// and emotion. Note that each face attribute analysis has additional - /// computational and time cost. - /// - public static IList DetectInStream(this IFaceOperations operations, Stream image, bool? returnFaceId = true, bool? returnFaceLandmarks = false, string returnFaceAttributes = default(string)) - { - return operations.DetectInStreamAsync(image, returnFaceId, returnFaceLandmarks, returnFaceAttributes).GetAwaiter().GetResult(); - } - - /// - /// Detect human faces in an image and returns face locations, and optionally - /// with faceIds, landmarks, and attributes. - /// - /// - /// The operations group for this extension method. - /// - /// - /// An image stream. - /// - /// - /// A value indicating whether the operation should return faceIds of detected - /// faces. - /// - /// - /// A value indicating whether the operation should return landmarks of the - /// detected faces. - /// - /// - /// Analyze and return the one or more specified face attributes in the - /// comma-separated string like "returnFaceAttributes=age,gender". Supported - /// face attributes include age, gender, headPose, smile, facialHair, glasses - /// and emotion. Note that each face attribute analysis has additional - /// computational and time cost. - /// - /// - /// The cancellation token. - /// - public static async Task> DetectInStreamAsync(this IFaceOperations operations, Stream image, bool? returnFaceId = true, bool? returnFaceLandmarks = false, string returnFaceAttributes = default(string), CancellationToken cancellationToken = default(CancellationToken)) - { - using (var _result = await operations.DetectInStreamWithHttpMessagesAsync(image, returnFaceId, returnFaceLandmarks, returnFaceAttributes, null, cancellationToken).ConfigureAwait(false)) - { - return _result.Body; - } - } - - } -} diff --git a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/IFaceAPI.cs b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/IFaceAPI.cs deleted file mode 100644 index 381fde544fad..000000000000 --- a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/IFaceAPI.cs +++ /dev/null @@ -1,65 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Vision.Face -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Vision; - using Models; - using Newtonsoft.Json; - - /// - /// An API for face detection, verification, and identification. - /// - public partial interface IFaceAPI : System.IDisposable - { - /// - /// The base URI of the service. - /// - - /// - /// Gets or sets json serialization settings. - /// - JsonSerializerSettings SerializationSettings { get; } - - /// - /// Gets or sets json deserialization settings. - /// - JsonSerializerSettings DeserializationSettings { get; } - - /// - /// Supported Azure regions for Face Detection endpoints. Possible - /// values include: 'westus', 'westeurope', 'southeastasia', 'eastus2', - /// 'westcentralus' - /// - string AzureRegion1 { get; set; } - - /// - /// Subscription key in header - /// - string SubscriptionKey { get; set; } - - - /// - /// Gets the IFaceOperations. - /// - IFaceOperations Face { get; } - - /// - /// Gets the IPerson. - /// - IPerson Person { get; } - - /// - /// Gets the IPersonGroup. - /// - IPersonGroup PersonGroup { get; } - - /// - /// Gets the IFaceList. - /// - IFaceList FaceList { get; } - - } -} diff --git a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/IFaceList.cs b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/IFaceList.cs deleted file mode 100644 index 8daaf8386d93..000000000000 --- a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/IFaceList.cs +++ /dev/null @@ -1,227 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Vision.Face -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Vision; - using Microsoft.Rest; - using Models; - using System.Collections; - using System.Collections.Generic; - using System.Threading; - using System.Threading.Tasks; - - /// - /// FaceList operations. - /// - public partial interface IFaceList - { - /// - /// Create an empty face list. Up to 64 face lists are allowed to exist - /// in one subscription. - /// - /// - /// Id referencing a particular face list. - /// - /// - /// Name of the face list, maximum length is 128. - /// - /// - /// Optional user defined data for the face list. Length should not - /// exceed 16KB. - /// - /// - /// The headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when a required parameter is null - /// - Task CreateWithHttpMessagesAsync(string faceListId, string name = default(string), string userData = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - /// - /// Retrieve a face list's information. - /// - /// - /// Id referencing a Face List. - /// - /// - /// The headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when unable to deserialize the response - /// - /// - /// Thrown when a required parameter is null - /// - Task> GetWithHttpMessagesAsync(string faceListId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - /// - /// Update information of a face list. - /// - /// - /// Id referencing a Face List. - /// - /// - /// Name of the face list, maximum length is 128. - /// - /// - /// Optional user defined data for the face list. Length should not - /// exceed 16KB. - /// - /// - /// The headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when a required parameter is null - /// - Task UpdateWithHttpMessagesAsync(string faceListId, string name = default(string), string userData = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - /// - /// Delete an existing face list according to faceListId. Persisted - /// face images in the face list will also be deleted. - /// - /// - /// Id referencing a Face List. - /// - /// - /// The headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when a required parameter is null - /// - Task DeleteWithHttpMessagesAsync(string faceListId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - /// - /// Retrieve information about all existing face lists. Only - /// faceListId, name and userData will be returned. - /// - /// - /// The headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when unable to deserialize the response - /// - /// - /// Thrown when a required parameter is null - /// - Task>> ListWithHttpMessagesAsync(Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - /// - /// Delete an existing face from a face list (given by a - /// persisitedFaceId and a faceListId). Persisted image related to the - /// face will also be deleted. - /// - /// - /// faceListId of an existing face list. - /// - /// - /// persistedFaceId of an existing face. - /// - /// - /// The headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when a required parameter is null - /// - Task DeleteFaceWithHttpMessagesAsync(string faceListId, string persistedFaceId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - /// - /// Add a face to a face list. The input face is specified as an image - /// with a targetFace rectangle. It returns a persistedFaceId - /// representing the added face, and persistedFaceId will not expire. - /// - /// - /// Id referencing a Face List. - /// - /// - /// User-specified data about the face list for any purpose. The - /// maximum length is 1KB. - /// - /// - /// A face rectangle to specify the target face to be added into the - /// face list, in the format of "targetFace=left,top,width,height". - /// E.g. "targetFace=10,10,100,100". If there is more than one face in - /// the image, targetFace is required to specify which face to add. No - /// targetFace means there is only one face detected in the entire - /// image. - /// - /// - /// The headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when a required parameter is null - /// - Task AddFaceWithHttpMessagesAsync(string faceListId, string userData = default(string), string targetFace = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - /// - /// Add a face to a face list. The input face is specified as an image - /// with a targetFace rectangle. It returns a persistedFaceId - /// representing the added face, and persistedFaceId will not expire. - /// - /// - /// Id referencing a Face List. - /// - /// - /// User-specified data about the face list for any purpose. The - /// maximum length is 1KB. - /// - /// - /// A face rectangle to specify the target face to be added into the - /// face list, in the format of "targetFace=left,top,width,height". - /// E.g. "targetFace=10,10,100,100". If there is more than one face in - /// the image, targetFace is required to specify which face to add. No - /// targetFace means there is only one face detected in the entire - /// image. - /// - /// - /// The headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when a required parameter is null - /// - Task AddFaceFromStreamWithHttpMessagesAsync(string faceListId, string userData = default(string), string targetFace = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - } -} diff --git a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/IFaceOperations.cs b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/IFaceOperations.cs deleted file mode 100644 index 42bb76e30712..000000000000 --- a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/IFaceOperations.cs +++ /dev/null @@ -1,230 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Vision.Face -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Vision; - using Microsoft.Rest; - using Models; - using System.Collections; - using System.Collections.Generic; - using System.IO; - using System.Threading; - using System.Threading.Tasks; - - /// - /// FaceOperations operations. - /// - public partial interface IFaceOperations - { - /// - /// Given query face's faceId, find the similar-looking faces from a - /// faceId array or a faceListId. - /// - /// - /// FaceId of the query face. User needs to call Face - Detect first to - /// get a valid faceId. Note that this faceId is not persisted and will - /// expire 24 hours after the detection call - /// - /// - /// An existing user-specified unique candidate face list, created in - /// Face List - Create a Face List. Face list contains a set of - /// persistedFaceIds which are persisted and will never expire. - /// Parameter faceListId and faceIds should not be provided at the same - /// time - /// - /// - /// An array of candidate faceIds. All of them are created by Face - - /// Detect and the faceIds will expire 24 hours after the detection - /// call. - /// - /// - /// The number of top similar faces returned. The valid range is [1, - /// 1000]. - /// - /// - /// Similar face searching mode. It can be "matchPerson" or - /// "matchFace". Possible values include: 'matchPerson', 'matchFace' - /// - /// - /// The headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when unable to deserialize the response - /// - /// - /// Thrown when a required parameter is null - /// - Task>> FindSimilarWithHttpMessagesAsync(string faceId, string faceListId = default(string), IList faceIds = default(IList), int? maxNumOfCandidatesReturned = 20, string mode = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - /// - /// Divide candidate faces into groups based on face similarity. - /// - /// - /// Array of candidate faceId created by Face - Detect. The maximum is - /// 1000 faces - /// - /// - /// The headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when unable to deserialize the response - /// - /// - /// Thrown when a required parameter is null - /// - Task> GroupWithHttpMessagesAsync(IList faceIds, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - /// - /// Identify unknown faces from a person group. - /// - /// - /// personGroupId of the target person group, created by - /// PersonGroups.Create - /// - /// - /// Array of candidate faceId created by Face - Detect. - /// - /// - /// The number of top similar faces returned. - /// - /// - /// Confidence threshold of identification, used to judge whether one - /// face belong to one person. - /// - /// - /// The headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when unable to deserialize the response - /// - /// - /// Thrown when a required parameter is null - /// - Task>> IdentifyWithHttpMessagesAsync(string personGroupId, IList faceIds, int? maxNumOfCandidatesReturned = 1, double? confidenceThreshold = default(double?), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - /// - /// Verify whether two faces belong to a same person or whether one - /// face belongs to a person. - /// - /// - /// faceId the face, comes from Face - Detect - /// - /// - /// Specify a certain person in a person group. personId is created in - /// Persons.Create. - /// - /// - /// Using existing personGroupId and personId for fast loading a - /// specified person. personGroupId is created in Person Groups.Create. - /// - /// - /// The headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when unable to deserialize the response - /// - /// - /// Thrown when a required parameter is null - /// - Task> VerifyWithHttpMessagesAsync(string faceId, string personId, string personGroupId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - /// - /// Detect human faces in an image and returns face locations, and - /// optionally with faceIds, landmarks, and attributes. - /// - /// - /// - /// - /// A value indicating whether the operation should return faceIds of - /// detected faces. - /// - /// - /// A value indicating whether the operation should return landmarks of - /// the detected faces. - /// - /// - /// Analyze and return the one or more specified face attributes in the - /// comma-separated string like "returnFaceAttributes=age,gender". - /// Supported face attributes include age, gender, headPose, smile, - /// facialHair, glasses and emotion. Note that each face attribute - /// analysis has additional computational and time cost. - /// - /// - /// The headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when unable to deserialize the response - /// - /// - /// Thrown when a required parameter is null - /// - Task>> DetectWithHttpMessagesAsync(string url, bool? returnFaceId = true, bool? returnFaceLandmarks = false, string returnFaceAttributes = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - /// - /// Detect human faces in an image and returns face locations, and - /// optionally with faceIds, landmarks, and attributes. - /// - /// - /// An image stream. - /// - /// - /// A value indicating whether the operation should return faceIds of - /// detected faces. - /// - /// - /// A value indicating whether the operation should return landmarks of - /// the detected faces. - /// - /// - /// Analyze and return the one or more specified face attributes in the - /// comma-separated string like "returnFaceAttributes=age,gender". - /// Supported face attributes include age, gender, headPose, smile, - /// facialHair, glasses and emotion. Note that each face attribute - /// analysis has additional computational and time cost. - /// - /// - /// The headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when unable to deserialize the response - /// - /// - /// Thrown when a required parameter is null - /// - Task>> DetectInStreamWithHttpMessagesAsync(Stream image, bool? returnFaceId = true, bool? returnFaceLandmarks = false, string returnFaceAttributes = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - } -} diff --git a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/IPerson.cs b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/IPerson.cs deleted file mode 100644 index a62b1d019db2..000000000000 --- a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/IPerson.cs +++ /dev/null @@ -1,307 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Vision.Face -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Vision; - using Microsoft.Rest; - using Models; - using System.Collections; - using System.Collections.Generic; - using System.Threading; - using System.Threading.Tasks; - - /// - /// Person operations. - /// - public partial interface IPerson - { - /// - /// Create a new person in a specified person group. - /// - /// - /// Specifying the target person group to create the person. - /// - /// - /// Display name of the target person. The maximum length is 128. - /// - /// - /// Optional fields for user-provided data attached to a person. Size - /// limit is 16KB. - /// - /// - /// The headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when unable to deserialize the response - /// - /// - /// Thrown when a required parameter is null - /// - Task> CreateWithHttpMessagesAsync(string personGroupId, string name = default(string), string userData = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - /// - /// List all persons in a person group, and retrieve person information - /// (including personId, name, userData and persistedFaceIds of - /// registered faces of the person). - /// - /// - /// personGroupId of the target person group. - /// - /// - /// The headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when unable to deserialize the response - /// - /// - /// Thrown when a required parameter is null - /// - Task>> ListWithHttpMessagesAsync(string personGroupId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - /// - /// Delete an existing person from a person group. Persisted face - /// images of the person will also be deleted. - /// - /// - /// Specifying the person group containing the person. - /// - /// - /// The target personId to delete. - /// - /// - /// The headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when a required parameter is null - /// - Task DeleteWithHttpMessagesAsync(string personGroupId, string personId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - /// - /// Retrieve a person's information, including registered persisted - /// faces, name and userData. - /// - /// - /// Specifying the person group containing the target person. - /// - /// - /// Specifying the target person. - /// - /// - /// The headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when unable to deserialize the response - /// - /// - /// Thrown when a required parameter is null - /// - Task> GetWithHttpMessagesAsync(string personGroupId, string personId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - /// - /// Update name or userData of a person. - /// - /// - /// Specifying the person group containing the target person. - /// - /// - /// personId of the target person. - /// - /// - /// Display name of the target person. The maximum length is 128. - /// - /// - /// Optional fields for user-provided data attached to a person. Size - /// limit is 16KB. - /// - /// - /// The headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when a required parameter is null - /// - Task UpdateWithHttpMessagesAsync(string personGroupId, string personId, string name = default(string), string userData = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - /// - /// Delete a face from a person. Relative image for the persisted face - /// will also be deleted. - /// - /// - /// Specifying the person group containing the target person. - /// - /// - /// Specifying the person that the target persisted face belong to. - /// - /// - /// The persisted face to remove. - /// - /// - /// The headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when a required parameter is null - /// - Task DeleteFaceWithHttpMessagesAsync(string personGroupId, string personId, string persistedFaceId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - /// - /// Retrieve information about a persisted face (specified by - /// persistedFaceId, personId and its belonging personGroupId). - /// - /// - /// Specifying the person group containing the target person. - /// - /// - /// Specifying the target person that the face belongs to. - /// - /// - /// The persistedFaceId of the target persisted face of the person. - /// - /// - /// The headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when unable to deserialize the response - /// - /// - /// Thrown when a required parameter is null - /// - Task> GetFaceWithHttpMessagesAsync(string personGroupId, string personId, string persistedFaceId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - /// - /// Update a person persisted face's userData field. - /// - /// - /// Specifying the person group containing the target person. - /// - /// - /// personId of the target person. - /// - /// - /// persistedFaceId of target face, which is persisted and will not - /// expire. - /// - /// - /// User-provided data attached to the face. The size limit is 1KB - /// - /// - /// The headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when a required parameter is null - /// - Task UpdateFaceWithHttpMessagesAsync(string personGroupId, string personId, string persistedFaceId, string userData = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - /// - /// Add a representative face to a person for identification. The input - /// face is specified as an image with a targetFace rectangle. - /// - /// - /// Specifying the person group containing the target person. - /// - /// - /// Target person that the face is added to. - /// - /// - /// User-specified data about the target face to add for any purpose. - /// The maximum length is 1KB. - /// - /// - /// A face rectangle to specify the target face to be added to a person - /// in the format of "targetFace=left,top,width,height". E.g. - /// "targetFace=10,10,100,100". If there is more than one face in the - /// image, targetFace is required to specify which face to add. No - /// targetFace means there is only one face detected in the entire - /// image. - /// - /// - /// The headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when a required parameter is null - /// - Task AddFaceWithHttpMessagesAsync(string personGroupId, string personId, string userData = default(string), string targetFace = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - /// - /// Add a representative face to a person for identification. The input - /// face is specified as an image with a targetFace rectangle. - /// - /// - /// Specifying the person group containing the target person. - /// - /// - /// Target person that the face is added to. - /// - /// - /// User-specified data about the target face to add for any purpose. - /// The maximum length is 1KB. - /// - /// - /// A face rectangle to specify the target face to be added to a - /// person, in the format of "targetFace=left,top,width,height". E.g. - /// "targetFace=10,10,100,100". If there is more than one face in the - /// image, targetFace is required to specify which face to add. No - /// targetFace means there is only one face detected in the entire - /// image. - /// - /// - /// The headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when a required parameter is null - /// - Task AddFaceFromStreamWithHttpMessagesAsync(string personGroupId, string personId, string userData = default(string), string targetFace = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - } -} diff --git a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/IPersonGroup.cs b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/IPersonGroup.cs deleted file mode 100644 index cfc666708345..000000000000 --- a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/IPersonGroup.cs +++ /dev/null @@ -1,189 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Vision.Face -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Vision; - using Microsoft.Rest; - using Models; - using System.Collections; - using System.Collections.Generic; - using System.Threading; - using System.Threading.Tasks; - - /// - /// PersonGroup operations. - /// - public partial interface IPersonGroup - { - /// - /// Create a new person group with specified personGroupId, name and - /// user-provided userData. - /// - /// - /// User-provided personGroupId as a string. - /// - /// - /// Name of the face list, maximum length is 128. - /// - /// - /// Optional user defined data for the face list. Length should not - /// exceed 16KB. - /// - /// - /// The headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when a required parameter is null - /// - Task CreateWithHttpMessagesAsync(string personGroupId, string name = default(string), string userData = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - /// - /// Delete an existing person group. Persisted face images of all - /// people in the person group will also be deleted. - /// - /// - /// The personGroupId of the person group to be deleted. - /// - /// - /// The headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when a required parameter is null - /// - Task DeleteWithHttpMessagesAsync(string personGroupId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - /// - /// Retrieve the information of a person group, including its name and - /// userData. - /// - /// - /// personGroupId of the target person group. - /// - /// - /// The headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when unable to deserialize the response - /// - /// - /// Thrown when a required parameter is null - /// - Task> GetWithHttpMessagesAsync(string personGroupId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - /// - /// Update an existing person group's display name and userData. The - /// properties which does not appear in request body will not be - /// updated. - /// - /// - /// personGroupId of the person group to be updated. - /// - /// - /// Name of the face list, maximum length is 128. - /// - /// - /// Optional user defined data for the face list. Length should not - /// exceed 16KB. - /// - /// - /// The headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when a required parameter is null - /// - Task UpdateWithHttpMessagesAsync(string personGroupId, string name = default(string), string userData = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - /// - /// Retrieve the training status of a person group (completed or - /// ongoing). - /// - /// - /// personGroupId of target person group. - /// - /// - /// The headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when unable to deserialize the response - /// - /// - /// Thrown when a required parameter is null - /// - Task> GetTrainingStatusWithHttpMessagesAsync(string personGroupId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - /// - /// List person groups and their information. - /// - /// - /// List person groups from the least personGroupId greater than the - /// "start". - /// - /// - /// The number of person groups to list. - /// - /// - /// The headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when unable to deserialize the response - /// - /// - /// Thrown when a required parameter is null - /// - Task>> ListWithHttpMessagesAsync(string start = default(string), int? top = 1000, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - /// - /// Queue a person group training task, the training task may not be - /// started immediately. - /// - /// - /// Target person group to be trained. - /// - /// - /// The headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when a required parameter is null - /// - Task TrainWithHttpMessagesAsync(string personGroupId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - } -} diff --git a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/APIError.cs b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/APIError.cs deleted file mode 100644 index d72be15ff0fd..000000000000 --- a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/APIError.cs +++ /dev/null @@ -1,46 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Vision.Face.Models -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Vision; - using Microsoft.CognitiveServices.Vision.Face; - using Newtonsoft.Json; - using System.Linq; - - /// - /// Error information returned by the API - /// - public partial class APIError - { - /// - /// Initializes a new instance of the APIError class. - /// - public APIError() - { - CustomInit(); - } - - /// - /// Initializes a new instance of the APIError class. - /// - public APIError(Error error = default(Error)) - { - Error = error; - CustomInit(); - } - - /// - /// An initialization method that performs custom operations like setting defaults - /// - partial void CustomInit(); - - /// - /// - [JsonProperty(PropertyName = "error")] - public Error Error { get; set; } - - } -} diff --git a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/APIErrorException.cs b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/APIErrorException.cs deleted file mode 100644 index 3db32562480e..000000000000 --- a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/APIErrorException.cs +++ /dev/null @@ -1,58 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Vision.Face.Models -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Vision; - using Microsoft.CognitiveServices.Vision.Face; - using Microsoft.Rest; - - /// - /// Exception thrown for an invalid response with APIError information. - /// - public class APIErrorException : RestException - { - /// - /// Gets information about the associated HTTP request. - /// - public HttpRequestMessageWrapper Request { get; set; } - - /// - /// Gets information about the associated HTTP response. - /// - public HttpResponseMessageWrapper Response { get; set; } - - /// - /// Gets or sets the body object. - /// - public APIError Body { get; set; } - - /// - /// Initializes a new instance of the APIErrorException class. - /// - public APIErrorException() - { - } - - /// - /// Initializes a new instance of the APIErrorException class. - /// - /// The exception message. - public APIErrorException(string message) - : this(message, null) - { - } - - /// - /// Initializes a new instance of the APIErrorException class. - /// - /// The exception message. - /// Inner exception. - public APIErrorException(string message, System.Exception innerException) - : base(message, innerException) - { - } - } -} diff --git a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/AzureRegion.cs b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/AzureRegion.cs deleted file mode 100644 index bae1015b5d99..000000000000 --- a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/AzureRegion.cs +++ /dev/null @@ -1,22 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Vision.Face.Models -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Vision; - using Microsoft.CognitiveServices.Vision.Face; - - /// - /// Defines values for AzureRegion. - /// - public static class AzureRegion - { - public const string Westus = "westus"; - public const string Westeurope = "westeurope"; - public const string Southeastasia = "southeastasia"; - public const string Eastus2 = "eastus2"; - public const string Westcentralus = "westcentralus"; - } -} diff --git a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreateFaceListRequest.cs b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreateFaceListRequest.cs deleted file mode 100644 index 34d6fc3624a8..000000000000 --- a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreateFaceListRequest.cs +++ /dev/null @@ -1,83 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Vision.Face.Models -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Vision; - using Microsoft.CognitiveServices.Vision.Face; - using Microsoft.Rest; - using Newtonsoft.Json; - using System.Linq; - - /// - /// Request to create a face list. - /// - public partial class CreateFaceListRequest - { - /// - /// Initializes a new instance of the CreateFaceListRequest class. - /// - public CreateFaceListRequest() - { - CustomInit(); - } - - /// - /// Initializes a new instance of the CreateFaceListRequest class. - /// - /// Name of the face list, maximum length is - /// 128. - /// Optional user defined data for the face - /// list. Length should not exceed 16KB. - public CreateFaceListRequest(string name = default(string), string userData = default(string)) - { - Name = name; - UserData = userData; - CustomInit(); - } - - /// - /// An initialization method that performs custom operations like setting defaults - /// - partial void CustomInit(); - - /// - /// Gets or sets name of the face list, maximum length is 128. - /// - [JsonProperty(PropertyName = "name")] - public string Name { get; set; } - - /// - /// Gets or sets optional user defined data for the face list. Length - /// should not exceed 16KB. - /// - [JsonProperty(PropertyName = "userData")] - public string UserData { get; set; } - - /// - /// Validate the object. - /// - /// - /// Thrown if validation fails - /// - public virtual void Validate() - { - if (Name != null) - { - if (Name.Length > 128) - { - throw new ValidationException(ValidationRules.MaxLength, "Name", 128); - } - } - if (UserData != null) - { - if (UserData.Length > 16384) - { - throw new ValidationException(ValidationRules.MaxLength, "UserData", 16384); - } - } - } - } -} diff --git a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreatePersonGroupRequest.cs b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreatePersonGroupRequest.cs deleted file mode 100644 index 00b0e7bb7110..000000000000 --- a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreatePersonGroupRequest.cs +++ /dev/null @@ -1,83 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Vision.Face.Models -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Vision; - using Microsoft.CognitiveServices.Vision.Face; - using Microsoft.Rest; - using Newtonsoft.Json; - using System.Linq; - - /// - /// Request to create a person group. - /// - public partial class CreatePersonGroupRequest - { - /// - /// Initializes a new instance of the CreatePersonGroupRequest class. - /// - public CreatePersonGroupRequest() - { - CustomInit(); - } - - /// - /// Initializes a new instance of the CreatePersonGroupRequest class. - /// - /// Name of the face list, maximum length is - /// 128. - /// Optional user defined data for the face - /// list. Length should not exceed 16KB. - public CreatePersonGroupRequest(string name = default(string), string userData = default(string)) - { - Name = name; - UserData = userData; - CustomInit(); - } - - /// - /// An initialization method that performs custom operations like setting defaults - /// - partial void CustomInit(); - - /// - /// Gets or sets name of the face list, maximum length is 128. - /// - [JsonProperty(PropertyName = "name")] - public string Name { get; set; } - - /// - /// Gets or sets optional user defined data for the face list. Length - /// should not exceed 16KB. - /// - [JsonProperty(PropertyName = "userData")] - public string UserData { get; set; } - - /// - /// Validate the object. - /// - /// - /// Thrown if validation fails - /// - public virtual void Validate() - { - if (Name != null) - { - if (Name.Length > 128) - { - throw new ValidationException(ValidationRules.MaxLength, "Name", 128); - } - } - if (UserData != null) - { - if (UserData.Length > 16384) - { - throw new ValidationException(ValidationRules.MaxLength, "UserData", 16384); - } - } - } - } -} diff --git a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreatePersonRequest.cs b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreatePersonRequest.cs deleted file mode 100644 index 85565371fc9c..000000000000 --- a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreatePersonRequest.cs +++ /dev/null @@ -1,84 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Vision.Face.Models -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Vision; - using Microsoft.CognitiveServices.Vision.Face; - using Microsoft.Rest; - using Newtonsoft.Json; - using System.Linq; - - /// - /// Request to create a person object. - /// - public partial class CreatePersonRequest - { - /// - /// Initializes a new instance of the CreatePersonRequest class. - /// - public CreatePersonRequest() - { - CustomInit(); - } - - /// - /// Initializes a new instance of the CreatePersonRequest class. - /// - /// Display name of the target person. The maximum - /// length is 128. - /// Optional fields for user-provided data - /// attached to a person. Size limit is 16KB. - public CreatePersonRequest(string name = default(string), string userData = default(string)) - { - Name = name; - UserData = userData; - CustomInit(); - } - - /// - /// An initialization method that performs custom operations like setting defaults - /// - partial void CustomInit(); - - /// - /// Gets or sets display name of the target person. The maximum length - /// is 128. - /// - [JsonProperty(PropertyName = "name")] - public string Name { get; set; } - - /// - /// Gets or sets optional fields for user-provided data attached to a - /// person. Size limit is 16KB. - /// - [JsonProperty(PropertyName = "userData")] - public string UserData { get; set; } - - /// - /// Validate the object. - /// - /// - /// Thrown if validation fails - /// - public virtual void Validate() - { - if (Name != null) - { - if (Name.Length > 128) - { - throw new ValidationException(ValidationRules.MaxLength, "Name", 128); - } - } - if (UserData != null) - { - if (UserData.Length > 16384) - { - throw new ValidationException(ValidationRules.MaxLength, "UserData", 16384); - } - } - } - } -} diff --git a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreatePersonResult.cs b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreatePersonResult.cs deleted file mode 100644 index 31dce8c6b5ca..000000000000 --- a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreatePersonResult.cs +++ /dev/null @@ -1,62 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Vision.Face.Models -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Vision; - using Microsoft.CognitiveServices.Vision.Face; - using Microsoft.Rest; - using Newtonsoft.Json; - using System.Linq; - - /// - /// Result of creating person. - /// - public partial class CreatePersonResult - { - /// - /// Initializes a new instance of the CreatePersonResult class. - /// - public CreatePersonResult() - { - CustomInit(); - } - - /// - /// Initializes a new instance of the CreatePersonResult class. - /// - /// personID of the new created person. - public CreatePersonResult(string personId) - { - PersonId = personId; - CustomInit(); - } - - /// - /// An initialization method that performs custom operations like setting defaults - /// - partial void CustomInit(); - - /// - /// Gets or sets personID of the new created person. - /// - [JsonProperty(PropertyName = "personId")] - public string PersonId { get; set; } - - /// - /// Validate the object. - /// - /// - /// Thrown if validation fails - /// - public virtual void Validate() - { - if (PersonId == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "PersonId"); - } - } - } -} diff --git a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/DetectedFace.cs b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/DetectedFace.cs deleted file mode 100644 index 2d66bad5ef6b..000000000000 --- a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/DetectedFace.cs +++ /dev/null @@ -1,87 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Vision.Face.Models -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Vision; - using Microsoft.CognitiveServices.Vision.Face; - using Microsoft.Rest; - using Newtonsoft.Json; - using System.Linq; - - /// - /// Detected Face object. - /// - public partial class DetectedFace - { - /// - /// Initializes a new instance of the DetectedFace class. - /// - public DetectedFace() - { - CustomInit(); - } - - /// - /// Initializes a new instance of the DetectedFace class. - /// - public DetectedFace(FaceRectangle faceRectangle, string faceId = default(string), FaceLandmarks faceLandmarks = default(FaceLandmarks)) - { - FaceId = faceId; - FaceRectangle = faceRectangle; - FaceLandmarks = faceLandmarks; - CustomInit(); - } - - /// - /// An initialization method that performs custom operations like setting defaults - /// - partial void CustomInit(); - - /// - /// - [JsonProperty(PropertyName = "faceId")] - public string FaceId { get; set; } - - /// - /// - [JsonProperty(PropertyName = "faceRectangle")] - public FaceRectangle FaceRectangle { get; set; } - - /// - /// - [JsonProperty(PropertyName = "faceLandmarks")] - public FaceLandmarks FaceLandmarks { get; set; } - - /// - /// Validate the object. - /// - /// - /// Thrown if validation fails - /// - public virtual void Validate() - { - if (FaceRectangle == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "FaceRectangle"); - } - if (FaceId != null) - { - if (FaceId.Length > 64) - { - throw new ValidationException(ValidationRules.MaxLength, "FaceId", 64); - } - } - if (FaceRectangle != null) - { - FaceRectangle.Validate(); - } - if (FaceLandmarks != null) - { - FaceLandmarks.Validate(); - } - } - } -} diff --git a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/EmotionProperties.cs b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/EmotionProperties.cs deleted file mode 100644 index 32ff00e6800e..000000000000 --- a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/EmotionProperties.cs +++ /dev/null @@ -1,162 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Vision.Face.Models -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Vision; - using Microsoft.CognitiveServices.Vision.Face; - using Microsoft.Rest; - using Newtonsoft.Json; - using System.Linq; - - /// - /// Properties describing facial emotion. - /// - public partial class EmotionProperties - { - /// - /// Initializes a new instance of the EmotionProperties class. - /// - public EmotionProperties() - { - CustomInit(); - } - - /// - /// Initializes a new instance of the EmotionProperties class. - /// - public EmotionProperties(double? anger = default(double?), double? contempt = default(double?), double? disgust = default(double?), double? fear = default(double?), double? happiness = default(double?), double? neutral = default(double?), double? sadness = default(double?), double? surprise = default(double?)) - { - Anger = anger; - Contempt = contempt; - Disgust = disgust; - Fear = fear; - Happiness = happiness; - Neutral = neutral; - Sadness = sadness; - Surprise = surprise; - CustomInit(); - } - - /// - /// An initialization method that performs custom operations like setting defaults - /// - partial void CustomInit(); - - /// - /// - [JsonProperty(PropertyName = "anger")] - public double? Anger { get; set; } - - /// - /// - [JsonProperty(PropertyName = "contempt")] - public double? Contempt { get; set; } - - /// - /// - [JsonProperty(PropertyName = "disgust")] - public double? Disgust { get; set; } - - /// - /// - [JsonProperty(PropertyName = "fear")] - public double? Fear { get; set; } - - /// - /// - [JsonProperty(PropertyName = "happiness")] - public double? Happiness { get; set; } - - /// - /// - [JsonProperty(PropertyName = "neutral")] - public double? Neutral { get; set; } - - /// - /// - [JsonProperty(PropertyName = "sadness")] - public double? Sadness { get; set; } - - /// - /// - [JsonProperty(PropertyName = "surprise")] - public double? Surprise { get; set; } - - /// - /// Validate the object. - /// - /// - /// Thrown if validation fails - /// - public virtual void Validate() - { - if (Anger > 1) - { - throw new ValidationException(ValidationRules.InclusiveMaximum, "Anger", 1); - } - if (Anger < 0) - { - throw new ValidationException(ValidationRules.InclusiveMinimum, "Anger", 0); - } - if (Contempt > 1) - { - throw new ValidationException(ValidationRules.InclusiveMaximum, "Contempt", 1); - } - if (Contempt < 0) - { - throw new ValidationException(ValidationRules.InclusiveMinimum, "Contempt", 0); - } - if (Disgust > 1) - { - throw new ValidationException(ValidationRules.InclusiveMaximum, "Disgust", 1); - } - if (Disgust < 0) - { - throw new ValidationException(ValidationRules.InclusiveMinimum, "Disgust", 0); - } - if (Fear > 1) - { - throw new ValidationException(ValidationRules.InclusiveMaximum, "Fear", 1); - } - if (Fear < 0) - { - throw new ValidationException(ValidationRules.InclusiveMinimum, "Fear", 0); - } - if (Happiness > 1) - { - throw new ValidationException(ValidationRules.InclusiveMaximum, "Happiness", 1); - } - if (Happiness < 0) - { - throw new ValidationException(ValidationRules.InclusiveMinimum, "Happiness", 0); - } - if (Neutral > 1) - { - throw new ValidationException(ValidationRules.InclusiveMaximum, "Neutral", 1); - } - if (Neutral < 0) - { - throw new ValidationException(ValidationRules.InclusiveMinimum, "Neutral", 0); - } - if (Sadness > 1) - { - throw new ValidationException(ValidationRules.InclusiveMaximum, "Sadness", 1); - } - if (Sadness < 0) - { - throw new ValidationException(ValidationRules.InclusiveMinimum, "Sadness", 0); - } - if (Surprise > 1) - { - throw new ValidationException(ValidationRules.InclusiveMaximum, "Surprise", 1); - } - if (Surprise < 0) - { - throw new ValidationException(ValidationRules.InclusiveMinimum, "Surprise", 0); - } - } - } -} diff --git a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/Error.cs b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/Error.cs deleted file mode 100644 index 566c578aa0c5..000000000000 --- a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/Error.cs +++ /dev/null @@ -1,52 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Vision.Face.Models -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Vision; - using Microsoft.CognitiveServices.Vision.Face; - using Newtonsoft.Json; - using System.Linq; - - /// - /// Error body. - /// - public partial class Error - { - /// - /// Initializes a new instance of the Error class. - /// - public Error() - { - CustomInit(); - } - - /// - /// Initializes a new instance of the Error class. - /// - public Error(string code = default(string), string message = default(string)) - { - Code = code; - Message = message; - CustomInit(); - } - - /// - /// An initialization method that performs custom operations like setting defaults - /// - partial void CustomInit(); - - /// - /// - [JsonProperty(PropertyName = "code")] - public string Code { get; set; } - - /// - /// - [JsonProperty(PropertyName = "message")] - public string Message { get; set; } - - } -} diff --git a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FaceAttributes.cs b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FaceAttributes.cs deleted file mode 100644 index b6c46e50f266..000000000000 --- a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FaceAttributes.cs +++ /dev/null @@ -1,125 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Vision.Face.Models -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Vision; - using Microsoft.CognitiveServices.Vision.Face; - using Microsoft.Rest; - using Newtonsoft.Json; - using System.Linq; - - /// - /// Face Attributes - /// - public partial class FaceAttributes - { - /// - /// Initializes a new instance of the FaceAttributes class. - /// - public FaceAttributes() - { - CustomInit(); - } - - /// - /// Initializes a new instance of the FaceAttributes class. - /// - /// Age in years - /// Gender: male or female. Possible values - /// include: 'male', 'female' - /// Smile intensity, a number between [0,1] - /// - /// Glasses type. Possible values are - /// 'noGlasses', 'readingGlasses', 'sunglasses', 'swimmingGoggles'. - /// Possible values include: 'noGlasses', 'readingGlasses', - /// 'sunglasses', 'swimmingGoggles' - public FaceAttributes(double? age = default(double?), string gender = default(string), double? smile = default(double?), string glasses = default(string), FacialHairProperties facialHair = default(FacialHairProperties), HeadPoseProperties headPose = default(HeadPoseProperties), EmotionProperties emotion = default(EmotionProperties)) - { - Age = age; - Gender = gender; - Smile = smile; - Glasses = glasses; - FacialHair = facialHair; - HeadPose = headPose; - Emotion = emotion; - CustomInit(); - } - - /// - /// An initialization method that performs custom operations like setting defaults - /// - partial void CustomInit(); - - /// - /// Gets or sets age in years - /// - [JsonProperty(PropertyName = "age")] - public double? Age { get; set; } - - /// - /// Gets or sets gender: male or female. Possible values include: - /// 'male', 'female' - /// - [JsonProperty(PropertyName = "gender")] - public string Gender { get; set; } - - /// - /// Gets or sets smile intensity, a number between [0,1] - /// - [JsonProperty(PropertyName = "smile")] - public double? Smile { get; set; } - - /// - /// Gets or sets glasses type. Possible values are 'noGlasses', - /// 'readingGlasses', 'sunglasses', 'swimmingGoggles'. Possible values - /// include: 'noGlasses', 'readingGlasses', 'sunglasses', - /// 'swimmingGoggles' - /// - [JsonProperty(PropertyName = "glasses")] - public string Glasses { get; set; } - - /// - /// - [JsonProperty(PropertyName = "facialHair")] - public FacialHairProperties FacialHair { get; set; } - - /// - /// - [JsonProperty(PropertyName = "headPose")] - public HeadPoseProperties HeadPose { get; set; } - - /// - /// - [JsonProperty(PropertyName = "emotion")] - public EmotionProperties Emotion { get; set; } - - /// - /// Validate the object. - /// - /// - /// Thrown if validation fails - /// - public virtual void Validate() - { - if (Smile > 1) - { - throw new ValidationException(ValidationRules.InclusiveMaximum, "Smile", 1); - } - if (Smile < 0) - { - throw new ValidationException(ValidationRules.InclusiveMinimum, "Smile", 0); - } - if (FacialHair != null) - { - FacialHair.Validate(); - } - if (Emotion != null) - { - Emotion.Validate(); - } - } - } -} diff --git a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FaceLandmarks.cs b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FaceLandmarks.cs deleted file mode 100644 index a9af41c0f227..000000000000 --- a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FaceLandmarks.cs +++ /dev/null @@ -1,320 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Vision.Face.Models -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Vision; - using Microsoft.CognitiveServices.Vision.Face; - using Newtonsoft.Json; - using System.Linq; - - /// - /// A collection of 27-point face landmarks pointing to the important - /// positions of face components. - /// - public partial class FaceLandmarks - { - /// - /// Initializes a new instance of the FaceLandmarks class. - /// - public FaceLandmarks() - { - CustomInit(); - } - - /// - /// Initializes a new instance of the FaceLandmarks class. - /// - public FaceLandmarks(Position pupilLeft = default(Position), Position pupilRight = default(Position), Position noseTip = default(Position), Position mouthLeft = default(Position), Position mouthRight = default(Position), Position eyebrowLeftOuter = default(Position), Position eyebrowLeftInner = default(Position), Position eyeLeftOuter = default(Position), Position eyeLeftTop = default(Position), Position eyeLeftBottom = default(Position), Position eyeLeftInner = default(Position), Position eyebrowRightInner = default(Position), Position eyebrowRightOuter = default(Position), Position eyeRightInner = default(Position), Position eyeRightTop = default(Position), Position eyeRightBottom = default(Position), Position eyeRightOuter = default(Position), Position noseRootLeft = default(Position), Position noseRootRight = default(Position), Position noseLeftAlarTop = default(Position), Position noseRightAlarTop = default(Position), Position noseLeftAlarOutTip = default(Position), Position noseRightAlarOutTip = default(Position), Position upperLipTop = default(Position), Position upperLipBottom = default(Position), Position underLipTop = default(Position), Position underLipBottom = default(Position)) - { - PupilLeft = pupilLeft; - PupilRight = pupilRight; - NoseTip = noseTip; - MouthLeft = mouthLeft; - MouthRight = mouthRight; - EyebrowLeftOuter = eyebrowLeftOuter; - EyebrowLeftInner = eyebrowLeftInner; - EyeLeftOuter = eyeLeftOuter; - EyeLeftTop = eyeLeftTop; - EyeLeftBottom = eyeLeftBottom; - EyeLeftInner = eyeLeftInner; - EyebrowRightInner = eyebrowRightInner; - EyebrowRightOuter = eyebrowRightOuter; - EyeRightInner = eyeRightInner; - EyeRightTop = eyeRightTop; - EyeRightBottom = eyeRightBottom; - EyeRightOuter = eyeRightOuter; - NoseRootLeft = noseRootLeft; - NoseRootRight = noseRootRight; - NoseLeftAlarTop = noseLeftAlarTop; - NoseRightAlarTop = noseRightAlarTop; - NoseLeftAlarOutTip = noseLeftAlarOutTip; - NoseRightAlarOutTip = noseRightAlarOutTip; - UpperLipTop = upperLipTop; - UpperLipBottom = upperLipBottom; - UnderLipTop = underLipTop; - UnderLipBottom = underLipBottom; - CustomInit(); - } - - /// - /// An initialization method that performs custom operations like setting defaults - /// - partial void CustomInit(); - - /// - /// - [JsonProperty(PropertyName = "pupilLeft")] - public Position PupilLeft { get; set; } - - /// - /// - [JsonProperty(PropertyName = "pupilRight")] - public Position PupilRight { get; set; } - - /// - /// - [JsonProperty(PropertyName = "noseTip")] - public Position NoseTip { get; set; } - - /// - /// - [JsonProperty(PropertyName = "mouthLeft")] - public Position MouthLeft { get; set; } - - /// - /// - [JsonProperty(PropertyName = "mouthRight")] - public Position MouthRight { get; set; } - - /// - /// - [JsonProperty(PropertyName = "eyebrowLeftOuter")] - public Position EyebrowLeftOuter { get; set; } - - /// - /// - [JsonProperty(PropertyName = "eyebrowLeftInner")] - public Position EyebrowLeftInner { get; set; } - - /// - /// - [JsonProperty(PropertyName = "eyeLeftOuter")] - public Position EyeLeftOuter { get; set; } - - /// - /// - [JsonProperty(PropertyName = "eyeLeftTop")] - public Position EyeLeftTop { get; set; } - - /// - /// - [JsonProperty(PropertyName = "eyeLeftBottom")] - public Position EyeLeftBottom { get; set; } - - /// - /// - [JsonProperty(PropertyName = "eyeLeftInner")] - public Position EyeLeftInner { get; set; } - - /// - /// - [JsonProperty(PropertyName = "eyebrowRightInner")] - public Position EyebrowRightInner { get; set; } - - /// - /// - [JsonProperty(PropertyName = "eyebrowRightOuter")] - public Position EyebrowRightOuter { get; set; } - - /// - /// - [JsonProperty(PropertyName = "eyeRightInner")] - public Position EyeRightInner { get; set; } - - /// - /// - [JsonProperty(PropertyName = "eyeRightTop")] - public Position EyeRightTop { get; set; } - - /// - /// - [JsonProperty(PropertyName = "eyeRightBottom")] - public Position EyeRightBottom { get; set; } - - /// - /// - [JsonProperty(PropertyName = "eyeRightOuter")] - public Position EyeRightOuter { get; set; } - - /// - /// - [JsonProperty(PropertyName = "noseRootLeft")] - public Position NoseRootLeft { get; set; } - - /// - /// - [JsonProperty(PropertyName = "noseRootRight")] - public Position NoseRootRight { get; set; } - - /// - /// - [JsonProperty(PropertyName = "noseLeftAlarTop")] - public Position NoseLeftAlarTop { get; set; } - - /// - /// - [JsonProperty(PropertyName = "noseRightAlarTop")] - public Position NoseRightAlarTop { get; set; } - - /// - /// - [JsonProperty(PropertyName = "noseLeftAlarOutTip")] - public Position NoseLeftAlarOutTip { get; set; } - - /// - /// - [JsonProperty(PropertyName = "noseRightAlarOutTip")] - public Position NoseRightAlarOutTip { get; set; } - - /// - /// - [JsonProperty(PropertyName = "upperLipTop")] - public Position UpperLipTop { get; set; } - - /// - /// - [JsonProperty(PropertyName = "upperLipBottom")] - public Position UpperLipBottom { get; set; } - - /// - /// - [JsonProperty(PropertyName = "underLipTop")] - public Position UnderLipTop { get; set; } - - /// - /// - [JsonProperty(PropertyName = "underLipBottom")] - public Position UnderLipBottom { get; set; } - - /// - /// Validate the object. - /// - /// - /// Thrown if validation fails - /// - public virtual void Validate() - { - if (PupilLeft != null) - { - PupilLeft.Validate(); - } - if (PupilRight != null) - { - PupilRight.Validate(); - } - if (NoseTip != null) - { - NoseTip.Validate(); - } - if (MouthLeft != null) - { - MouthLeft.Validate(); - } - if (MouthRight != null) - { - MouthRight.Validate(); - } - if (EyebrowLeftOuter != null) - { - EyebrowLeftOuter.Validate(); - } - if (EyebrowLeftInner != null) - { - EyebrowLeftInner.Validate(); - } - if (EyeLeftOuter != null) - { - EyeLeftOuter.Validate(); - } - if (EyeLeftTop != null) - { - EyeLeftTop.Validate(); - } - if (EyeLeftBottom != null) - { - EyeLeftBottom.Validate(); - } - if (EyeLeftInner != null) - { - EyeLeftInner.Validate(); - } - if (EyebrowRightInner != null) - { - EyebrowRightInner.Validate(); - } - if (EyebrowRightOuter != null) - { - EyebrowRightOuter.Validate(); - } - if (EyeRightInner != null) - { - EyeRightInner.Validate(); - } - if (EyeRightTop != null) - { - EyeRightTop.Validate(); - } - if (EyeRightBottom != null) - { - EyeRightBottom.Validate(); - } - if (EyeRightOuter != null) - { - EyeRightOuter.Validate(); - } - if (NoseRootLeft != null) - { - NoseRootLeft.Validate(); - } - if (NoseRootRight != null) - { - NoseRootRight.Validate(); - } - if (NoseLeftAlarTop != null) - { - NoseLeftAlarTop.Validate(); - } - if (NoseRightAlarTop != null) - { - NoseRightAlarTop.Validate(); - } - if (NoseLeftAlarOutTip != null) - { - NoseLeftAlarOutTip.Validate(); - } - if (NoseRightAlarOutTip != null) - { - NoseRightAlarOutTip.Validate(); - } - if (UpperLipTop != null) - { - UpperLipTop.Validate(); - } - if (UpperLipBottom != null) - { - UpperLipBottom.Validate(); - } - if (UnderLipTop != null) - { - UnderLipTop.Validate(); - } - if (UnderLipBottom != null) - { - UnderLipBottom.Validate(); - } - } - } -} diff --git a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FaceRectangle.cs b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FaceRectangle.cs deleted file mode 100644 index f7ee305ce802..000000000000 --- a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FaceRectangle.cs +++ /dev/null @@ -1,87 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Vision.Face.Models -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Vision; - using Microsoft.CognitiveServices.Vision.Face; - using Newtonsoft.Json; - using System.Linq; - - /// - /// A rectangle within which a face can be found - /// - public partial class FaceRectangle - { - /// - /// Initializes a new instance of the FaceRectangle class. - /// - public FaceRectangle() - { - CustomInit(); - } - - /// - /// Initializes a new instance of the FaceRectangle class. - /// - /// The width of the rectangle, in pixels. - /// The height of the rectangle, in - /// pixels. - /// The distance from the left edge if the image to - /// the left edge of the rectangle, in pixels. - /// The distance from the top edge if the image to - /// the top edge of the rectangle, in pixels. - public FaceRectangle(int width, int height, int left, int top) - { - Width = width; - Height = height; - Left = left; - Top = top; - CustomInit(); - } - - /// - /// An initialization method that performs custom operations like setting defaults - /// - partial void CustomInit(); - - /// - /// Gets or sets the width of the rectangle, in pixels. - /// - [JsonProperty(PropertyName = "width")] - public int Width { get; set; } - - /// - /// Gets or sets the height of the rectangle, in pixels. - /// - [JsonProperty(PropertyName = "height")] - public int Height { get; set; } - - /// - /// Gets or sets the distance from the left edge if the image to the - /// left edge of the rectangle, in pixels. - /// - [JsonProperty(PropertyName = "left")] - public int Left { get; set; } - - /// - /// Gets or sets the distance from the top edge if the image to the top - /// edge of the rectangle, in pixels. - /// - [JsonProperty(PropertyName = "top")] - public int Top { get; set; } - - /// - /// Validate the object. - /// - /// - /// Thrown if validation fails - /// - public virtual void Validate() - { - //Nothing to validate - } - } -} diff --git a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FacialHairProperties.cs b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FacialHairProperties.cs deleted file mode 100644 index 584608af5922..000000000000 --- a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FacialHairProperties.cs +++ /dev/null @@ -1,92 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Vision.Face.Models -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Vision; - using Microsoft.CognitiveServices.Vision.Face; - using Microsoft.Rest; - using Newtonsoft.Json; - using System.Linq; - - /// - /// Properties describing facial hair attributes. - /// - public partial class FacialHairProperties - { - /// - /// Initializes a new instance of the FacialHairProperties class. - /// - public FacialHairProperties() - { - CustomInit(); - } - - /// - /// Initializes a new instance of the FacialHairProperties class. - /// - public FacialHairProperties(double? mustache = default(double?), double? beard = default(double?), double? sideburns = default(double?)) - { - Mustache = mustache; - Beard = beard; - Sideburns = sideburns; - CustomInit(); - } - - /// - /// An initialization method that performs custom operations like setting defaults - /// - partial void CustomInit(); - - /// - /// - [JsonProperty(PropertyName = "mustache")] - public double? Mustache { get; set; } - - /// - /// - [JsonProperty(PropertyName = "beard")] - public double? Beard { get; set; } - - /// - /// - [JsonProperty(PropertyName = "sideburns")] - public double? Sideburns { get; set; } - - /// - /// Validate the object. - /// - /// - /// Thrown if validation fails - /// - public virtual void Validate() - { - if (Mustache > 1) - { - throw new ValidationException(ValidationRules.InclusiveMaximum, "Mustache", 1); - } - if (Mustache < 0) - { - throw new ValidationException(ValidationRules.InclusiveMinimum, "Mustache", 0); - } - if (Beard > 1) - { - throw new ValidationException(ValidationRules.InclusiveMaximum, "Beard", 1); - } - if (Beard < 0) - { - throw new ValidationException(ValidationRules.InclusiveMinimum, "Beard", 0); - } - if (Sideburns > 1) - { - throw new ValidationException(ValidationRules.InclusiveMaximum, "Sideburns", 1); - } - if (Sideburns < 0) - { - throw new ValidationException(ValidationRules.InclusiveMinimum, "Sideburns", 0); - } - } - } -} diff --git a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FindSimilarRequest.cs b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FindSimilarRequest.cs deleted file mode 100644 index 95e803005ae7..000000000000 --- a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FindSimilarRequest.cs +++ /dev/null @@ -1,151 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Vision.Face.Models -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Vision; - using Microsoft.CognitiveServices.Vision.Face; - using Microsoft.Rest; - using Newtonsoft.Json; - using System.Collections; - using System.Collections.Generic; - using System.Linq; - - /// - /// Request body for find similar operation. - /// - public partial class FindSimilarRequest - { - /// - /// Initializes a new instance of the FindSimilarRequest class. - /// - public FindSimilarRequest() - { - CustomInit(); - } - - /// - /// Initializes a new instance of the FindSimilarRequest class. - /// - /// FaceId of the query face. User needs to call - /// Face - Detect first to get a valid faceId. Note that this faceId is - /// not persisted and will expire 24 hours after the detection - /// call - /// An existing user-specified unique - /// candidate face list, created in Face List - Create a Face List. - /// Face list contains a set of persistedFaceIds which are persisted - /// and will never expire. Parameter faceListId and faceIds should not - /// be provided at the same time - /// An array of candidate faceIds. All of them - /// are created by Face - Detect and the faceIds will expire 24 hours - /// after the detection call. - /// The number of top similar - /// faces returned. The valid range is [1, 1000]. - /// Similar face searching mode. It can be - /// "matchPerson" or "matchFace". Possible values include: - /// 'matchPerson', 'matchFace' - public FindSimilarRequest(string faceId, string faceListId = default(string), IList faceIds = default(IList), int? maxNumOfCandidatesReturned = default(int?), string mode = default(string)) - { - FaceId = faceId; - FaceListId = faceListId; - FaceIds = faceIds; - MaxNumOfCandidatesReturned = maxNumOfCandidatesReturned; - Mode = mode; - CustomInit(); - } - - /// - /// An initialization method that performs custom operations like setting defaults - /// - partial void CustomInit(); - - /// - /// Gets or sets faceId of the query face. User needs to call Face - - /// Detect first to get a valid faceId. Note that this faceId is not - /// persisted and will expire 24 hours after the detection call - /// - [JsonProperty(PropertyName = "faceId")] - public string FaceId { get; set; } - - /// - /// Gets or sets an existing user-specified unique candidate face list, - /// created in Face List - Create a Face List. Face list contains a set - /// of persistedFaceIds which are persisted and will never expire. - /// Parameter faceListId and faceIds should not be provided at the same - /// time - /// - [JsonProperty(PropertyName = "faceListId")] - public string FaceListId { get; set; } - - /// - /// Gets or sets an array of candidate faceIds. All of them are created - /// by Face - Detect and the faceIds will expire 24 hours after the - /// detection call. - /// - [JsonProperty(PropertyName = "faceIds")] - public IList FaceIds { get; set; } - - /// - /// Gets or sets the number of top similar faces returned. The valid - /// range is [1, 1000]. - /// - [JsonProperty(PropertyName = "maxNumOfCandidatesReturned")] - public int? MaxNumOfCandidatesReturned { get; set; } - - /// - /// Gets or sets similar face searching mode. It can be "matchPerson" - /// or "matchFace". Possible values include: 'matchPerson', 'matchFace' - /// - [JsonProperty(PropertyName = "mode")] - public string Mode { get; set; } - - /// - /// Validate the object. - /// - /// - /// Thrown if validation fails - /// - public virtual void Validate() - { - if (FaceId == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "FaceId"); - } - if (FaceId != null) - { - if (FaceId.Length > 64) - { - throw new ValidationException(ValidationRules.MaxLength, "FaceId", 64); - } - } - if (FaceListId != null) - { - if (FaceListId.Length > 64) - { - throw new ValidationException(ValidationRules.MaxLength, "FaceListId", 64); - } - if (!System.Text.RegularExpressions.Regex.IsMatch(FaceListId, "^[a-z0-9-_]+$")) - { - throw new ValidationException(ValidationRules.Pattern, "FaceListId", "^[a-z0-9-_]+$"); - } - } - if (FaceIds != null) - { - if (FaceIds.Count > 1000) - { - throw new ValidationException(ValidationRules.MaxItems, "FaceIds", 1000); - } - } - if (MaxNumOfCandidatesReturned > 1000) - { - throw new ValidationException(ValidationRules.InclusiveMaximum, "MaxNumOfCandidatesReturned", 1000); - } - if (MaxNumOfCandidatesReturned < 1) - { - throw new ValidationException(ValidationRules.InclusiveMinimum, "MaxNumOfCandidatesReturned", 1); - } - } - } -} diff --git a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/GetFaceListResult.cs b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/GetFaceListResult.cs deleted file mode 100644 index 8ba762f2210e..000000000000 --- a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/GetFaceListResult.cs +++ /dev/null @@ -1,105 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Vision.Face.Models -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Vision; - using Microsoft.CognitiveServices.Vision.Face; - using Microsoft.Rest; - using Newtonsoft.Json; - using System.Linq; - - /// - /// Result of the GetFaceList operation. - /// - public partial class GetFaceListResult - { - /// - /// Initializes a new instance of the GetFaceListResult class. - /// - public GetFaceListResult() - { - CustomInit(); - } - - /// - /// Initializes a new instance of the GetFaceListResult class. - /// - /// faceListId of the target face - /// list. - /// Face list's display name. - /// User-provided data attached to this face - /// list. - public GetFaceListResult(string faceListId, string name = default(string), string userData = default(string)) - { - FaceListId = faceListId; - Name = name; - UserData = userData; - CustomInit(); - } - - /// - /// An initialization method that performs custom operations like setting defaults - /// - partial void CustomInit(); - - /// - /// Gets or sets faceListId of the target face list. - /// - [JsonProperty(PropertyName = "faceListId")] - public string FaceListId { get; set; } - - /// - /// Gets or sets face list's display name. - /// - [JsonProperty(PropertyName = "name")] - public string Name { get; set; } - - /// - /// Gets or sets user-provided data attached to this face list. - /// - [JsonProperty(PropertyName = "userData")] - public string UserData { get; set; } - - /// - /// Validate the object. - /// - /// - /// Thrown if validation fails - /// - public virtual void Validate() - { - if (FaceListId == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "FaceListId"); - } - if (FaceListId != null) - { - if (FaceListId.Length > 64) - { - throw new ValidationException(ValidationRules.MaxLength, "FaceListId", 64); - } - if (!System.Text.RegularExpressions.Regex.IsMatch(FaceListId, "^[a-z0-9-_]+$")) - { - throw new ValidationException(ValidationRules.Pattern, "FaceListId", "^[a-z0-9-_]+$"); - } - } - if (Name != null) - { - if (Name.Length > 128) - { - throw new ValidationException(ValidationRules.MaxLength, "Name", 128); - } - } - if (UserData != null) - { - if (UserData.Length > 16384) - { - throw new ValidationException(ValidationRules.MaxLength, "UserData", 16384); - } - } - } - } -} diff --git a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/GroupRequest.cs b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/GroupRequest.cs deleted file mode 100644 index 426fef0c5f5a..000000000000 --- a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/GroupRequest.cs +++ /dev/null @@ -1,73 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Vision.Face.Models -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Vision; - using Microsoft.CognitiveServices.Vision.Face; - using Microsoft.Rest; - using Newtonsoft.Json; - using System.Collections; - using System.Collections.Generic; - using System.Linq; - - /// - /// Request body for group request. - /// - public partial class GroupRequest - { - /// - /// Initializes a new instance of the GroupRequest class. - /// - public GroupRequest() - { - CustomInit(); - } - - /// - /// Initializes a new instance of the GroupRequest class. - /// - /// Array of candidate faceId created by Face - - /// Detect. The maximum is 1000 faces - public GroupRequest(IList faceIds) - { - FaceIds = faceIds; - CustomInit(); - } - - /// - /// An initialization method that performs custom operations like setting defaults - /// - partial void CustomInit(); - - /// - /// Gets or sets array of candidate faceId created by Face - Detect. - /// The maximum is 1000 faces - /// - [JsonProperty(PropertyName = "faceIds")] - public IList FaceIds { get; set; } - - /// - /// Validate the object. - /// - /// - /// Thrown if validation fails - /// - public virtual void Validate() - { - if (FaceIds == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "FaceIds"); - } - if (FaceIds != null) - { - if (FaceIds.Count > 1000) - { - throw new ValidationException(ValidationRules.MaxItems, "FaceIds", 1000); - } - } - } - } -} diff --git a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/GroupResponse.cs b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/GroupResponse.cs deleted file mode 100644 index 4c93668bfd58..000000000000 --- a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/GroupResponse.cs +++ /dev/null @@ -1,76 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Vision.Face.Models -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Vision; - using Microsoft.CognitiveServices.Vision.Face; - using Microsoft.Rest; - using Newtonsoft.Json; - using System.Collections; - using System.Collections.Generic; - using System.Linq; - - /// - /// An array of face groups based on face similarity. - /// - public partial class GroupResponse - { - /// - /// Initializes a new instance of the GroupResponse class. - /// - public GroupResponse() - { - CustomInit(); - } - - /// - /// Initializes a new instance of the GroupResponse class. - /// - /// A partition of the original faces based on - /// face similarity. Groups are ranked by number of faces - /// Face ids array of faces that cannot find - /// any similar faces from original faces. - public GroupResponse(IList> groups, IList messyGroup = default(IList)) - { - Groups = groups; - MessyGroup = messyGroup; - CustomInit(); - } - - /// - /// An initialization method that performs custom operations like setting defaults - /// - partial void CustomInit(); - - /// - /// Gets or sets a partition of the original faces based on face - /// similarity. Groups are ranked by number of faces - /// - [JsonProperty(PropertyName = "groups")] - public IList> Groups { get; set; } - - /// - /// Gets or sets face ids array of faces that cannot find any similar - /// faces from original faces. - /// - [JsonProperty(PropertyName = "messyGroup")] - public IList MessyGroup { get; set; } - - /// - /// Validate the object. - /// - /// - /// Thrown if validation fails - /// - public virtual void Validate() - { - if (Groups == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "Groups"); - } - } - } -} diff --git a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/HeadPoseProperties.cs b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/HeadPoseProperties.cs deleted file mode 100644 index 7cb1bc37aa9b..000000000000 --- a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/HeadPoseProperties.cs +++ /dev/null @@ -1,58 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Vision.Face.Models -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Vision; - using Microsoft.CognitiveServices.Vision.Face; - using Newtonsoft.Json; - using System.Linq; - - /// - /// Properties indicating head pose of the face. - /// - public partial class HeadPoseProperties - { - /// - /// Initializes a new instance of the HeadPoseProperties class. - /// - public HeadPoseProperties() - { - CustomInit(); - } - - /// - /// Initializes a new instance of the HeadPoseProperties class. - /// - public HeadPoseProperties(double? roll = default(double?), double? yaw = default(double?), double? pitch = default(double?)) - { - Roll = roll; - Yaw = yaw; - Pitch = pitch; - CustomInit(); - } - - /// - /// An initialization method that performs custom operations like setting defaults - /// - partial void CustomInit(); - - /// - /// - [JsonProperty(PropertyName = "roll")] - public double? Roll { get; set; } - - /// - /// - [JsonProperty(PropertyName = "yaw")] - public double? Yaw { get; set; } - - /// - /// - [JsonProperty(PropertyName = "pitch")] - public double? Pitch { get; set; } - - } -} diff --git a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/IdentifyRequest.cs b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/IdentifyRequest.cs deleted file mode 100644 index 1772ab5208ee..000000000000 --- a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/IdentifyRequest.cs +++ /dev/null @@ -1,122 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Vision.Face.Models -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Vision; - using Microsoft.CognitiveServices.Vision.Face; - using Microsoft.Rest; - using Newtonsoft.Json; - using System.Collections; - using System.Collections.Generic; - using System.Linq; - - /// - /// Request body for identify face operation. - /// - public partial class IdentifyRequest - { - /// - /// Initializes a new instance of the IdentifyRequest class. - /// - public IdentifyRequest() - { - CustomInit(); - } - - /// - /// Initializes a new instance of the IdentifyRequest class. - /// - /// personGroupId of the target person - /// group, created by PersonGroups.Create - /// Array of candidate faceId created by Face - - /// Detect. - /// The number of top similar - /// faces returned. - /// Confidence threshold of - /// identification, used to judge whether one face belong to one - /// person. - public IdentifyRequest(string personGroupId, IList faceIds, int? maxNumOfCandidatesReturned = default(int?), double? confidenceThreshold = default(double?)) - { - PersonGroupId = personGroupId; - FaceIds = faceIds; - MaxNumOfCandidatesReturned = maxNumOfCandidatesReturned; - ConfidenceThreshold = confidenceThreshold; - CustomInit(); - } - - /// - /// An initialization method that performs custom operations like setting defaults - /// - partial void CustomInit(); - - /// - /// Gets or sets personGroupId of the target person group, created by - /// PersonGroups.Create - /// - [JsonProperty(PropertyName = "personGroupId")] - public string PersonGroupId { get; set; } - - /// - /// Gets or sets array of candidate faceId created by Face - Detect. - /// - [JsonProperty(PropertyName = "faceIds")] - public IList FaceIds { get; set; } - - /// - /// Gets or sets the number of top similar faces returned. - /// - [JsonProperty(PropertyName = "maxNumOfCandidatesReturned")] - public int? MaxNumOfCandidatesReturned { get; set; } - - /// - /// Gets or sets confidence threshold of identification, used to judge - /// whether one face belong to one person. - /// - [JsonProperty(PropertyName = "confidenceThreshold")] - public double? ConfidenceThreshold { get; set; } - - /// - /// Validate the object. - /// - /// - /// Thrown if validation fails - /// - public virtual void Validate() - { - if (PersonGroupId == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "PersonGroupId"); - } - if (FaceIds == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "FaceIds"); - } - if (FaceIds != null) - { - if (FaceIds.Count > 1000) - { - throw new ValidationException(ValidationRules.MaxItems, "FaceIds", 1000); - } - } - if (MaxNumOfCandidatesReturned > 1000) - { - throw new ValidationException(ValidationRules.InclusiveMaximum, "MaxNumOfCandidatesReturned", 1000); - } - if (MaxNumOfCandidatesReturned < 1) - { - throw new ValidationException(ValidationRules.InclusiveMinimum, "MaxNumOfCandidatesReturned", 1); - } - if (ConfidenceThreshold > 1) - { - throw new ValidationException(ValidationRules.InclusiveMaximum, "ConfidenceThreshold", 1); - } - if (ConfidenceThreshold < 0) - { - throw new ValidationException(ValidationRules.InclusiveMinimum, "ConfidenceThreshold", 0); - } - } - } -} diff --git a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/IdentifyResultCandidate.cs b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/IdentifyResultCandidate.cs deleted file mode 100644 index e07214df215d..000000000000 --- a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/IdentifyResultCandidate.cs +++ /dev/null @@ -1,80 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Vision.Face.Models -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Vision; - using Microsoft.CognitiveServices.Vision.Face; - using Microsoft.Rest; - using Newtonsoft.Json; - using System.Linq; - - /// - /// All possible faces that may qualify. - /// - public partial class IdentifyResultCandidate - { - /// - /// Initializes a new instance of the IdentifyResultCandidate class. - /// - public IdentifyResultCandidate() - { - CustomInit(); - } - - /// - /// Initializes a new instance of the IdentifyResultCandidate class. - /// - /// Id of candidate - /// Confidence level in the candidate person: - /// a float number between 0.0 and 1.0. - public IdentifyResultCandidate(string personId, double confidence) - { - PersonId = personId; - Confidence = confidence; - CustomInit(); - } - - /// - /// An initialization method that performs custom operations like setting defaults - /// - partial void CustomInit(); - - /// - /// Gets or sets id of candidate - /// - [JsonProperty(PropertyName = "personId")] - public string PersonId { get; set; } - - /// - /// Gets or sets confidence level in the candidate person: a float - /// number between 0.0 and 1.0. - /// - [JsonProperty(PropertyName = "confidence")] - public double Confidence { get; set; } - - /// - /// Validate the object. - /// - /// - /// Thrown if validation fails - /// - public virtual void Validate() - { - if (PersonId == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "PersonId"); - } - if (Confidence > 1) - { - throw new ValidationException(ValidationRules.InclusiveMaximum, "Confidence", 1); - } - if (Confidence < 0) - { - throw new ValidationException(ValidationRules.InclusiveMinimum, "Confidence", 0); - } - } - } -} diff --git a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/IdentifyResultItem.cs b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/IdentifyResultItem.cs deleted file mode 100644 index 5ab9f1a9c8d4..000000000000 --- a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/IdentifyResultItem.cs +++ /dev/null @@ -1,91 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Vision.Face.Models -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Vision; - using Microsoft.CognitiveServices.Vision.Face; - using Microsoft.Rest; - using Newtonsoft.Json; - using System.Collections; - using System.Collections.Generic; - using System.Linq; - - /// - /// Response body for identify face operation. - /// - public partial class IdentifyResultItem - { - /// - /// Initializes a new instance of the IdentifyResultItem class. - /// - public IdentifyResultItem() - { - CustomInit(); - } - - /// - /// Initializes a new instance of the IdentifyResultItem class. - /// - /// faceId of the query face - public IdentifyResultItem(string faceId, IList candidates) - { - FaceId = faceId; - Candidates = candidates; - CustomInit(); - } - - /// - /// An initialization method that performs custom operations like setting defaults - /// - partial void CustomInit(); - - /// - /// Gets or sets faceId of the query face - /// - [JsonProperty(PropertyName = "faceId")] - public string FaceId { get; set; } - - /// - /// - [JsonProperty(PropertyName = "candidates")] - public IList Candidates { get; set; } - - /// - /// Validate the object. - /// - /// - /// Thrown if validation fails - /// - public virtual void Validate() - { - if (FaceId == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "FaceId"); - } - if (Candidates == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "Candidates"); - } - if (FaceId != null) - { - if (FaceId.Length > 64) - { - throw new ValidationException(ValidationRules.MaxLength, "FaceId", 64); - } - } - if (Candidates != null) - { - foreach (var element in Candidates) - { - if (element != null) - { - element.Validate(); - } - } - } - } - } -} diff --git a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/ImageUrl.cs b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/ImageUrl.cs deleted file mode 100644 index 97766b424e12..000000000000 --- a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/ImageUrl.cs +++ /dev/null @@ -1,57 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Vision.Face.Models -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Vision; - using Microsoft.CognitiveServices.Vision.Face; - using Microsoft.Rest; - using Newtonsoft.Json; - using System.Linq; - - public partial class ImageUrl - { - /// - /// Initializes a new instance of the ImageUrl class. - /// - public ImageUrl() - { - CustomInit(); - } - - /// - /// Initializes a new instance of the ImageUrl class. - /// - public ImageUrl(string url) - { - Url = url; - CustomInit(); - } - - /// - /// An initialization method that performs custom operations like setting defaults - /// - partial void CustomInit(); - - /// - /// - [JsonProperty(PropertyName = "url")] - public string Url { get; set; } - - /// - /// Validate the object. - /// - /// - /// Thrown if validation fails - /// - public virtual void Validate() - { - if (Url == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "Url"); - } - } - } -} diff --git a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/PersonFaceResult.cs b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/PersonFaceResult.cs deleted file mode 100644 index 68e76d97c6d8..000000000000 --- a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/PersonFaceResult.cs +++ /dev/null @@ -1,76 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Vision.Face.Models -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Vision; - using Microsoft.CognitiveServices.Vision.Face; - using Microsoft.Rest; - using Newtonsoft.Json; - using System.Linq; - - /// - /// PersonFace object. - /// - public partial class PersonFaceResult - { - /// - /// Initializes a new instance of the PersonFaceResult class. - /// - public PersonFaceResult() - { - CustomInit(); - } - - /// - /// Initializes a new instance of the PersonFaceResult class. - /// - /// The persistedFaceId of the target - /// face, which is persisted and will not expire. Different from faceId - /// created by Face - Detect and will expire in 24 hours after the - /// detection call. - /// User-provided data attached to the - /// face. - public PersonFaceResult(string persistedFaceId, string userData = default(string)) - { - PersistedFaceId = persistedFaceId; - UserData = userData; - CustomInit(); - } - - /// - /// An initialization method that performs custom operations like setting defaults - /// - partial void CustomInit(); - - /// - /// Gets or sets the persistedFaceId of the target face, which is - /// persisted and will not expire. Different from faceId created by - /// Face - Detect and will expire in 24 hours after the detection call. - /// - [JsonProperty(PropertyName = "persistedFaceId")] - public string PersistedFaceId { get; set; } - - /// - /// Gets or sets user-provided data attached to the face. - /// - [JsonProperty(PropertyName = "userData")] - public string UserData { get; set; } - - /// - /// Validate the object. - /// - /// - /// Thrown if validation fails - /// - public virtual void Validate() - { - if (PersistedFaceId == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "PersistedFaceId"); - } - } - } -} diff --git a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/PersonGroupResult.cs b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/PersonGroupResult.cs deleted file mode 100644 index 4950ac12fd5f..000000000000 --- a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/PersonGroupResult.cs +++ /dev/null @@ -1,101 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Vision.Face.Models -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Vision; - using Microsoft.CognitiveServices.Vision.Face; - using Microsoft.Rest; - using Newtonsoft.Json; - using System.Linq; - - /// - /// Person group object. - /// - public partial class PersonGroupResult - { - /// - /// Initializes a new instance of the PersonGroupResult class. - /// - public PersonGroupResult() - { - CustomInit(); - } - - /// - /// Initializes a new instance of the PersonGroupResult class. - /// - /// faceListId of the target face - /// list. - /// Face list's display name. - /// User-provided data attached to this face - /// list. - public PersonGroupResult(string personGroupId, string name = default(string), string userData = default(string)) - { - PersonGroupId = personGroupId; - Name = name; - UserData = userData; - CustomInit(); - } - - /// - /// An initialization method that performs custom operations like setting defaults - /// - partial void CustomInit(); - - /// - /// Gets or sets faceListId of the target face list. - /// - [JsonProperty(PropertyName = "personGroupId")] - public string PersonGroupId { get; set; } - - /// - /// Gets or sets face list's display name. - /// - [JsonProperty(PropertyName = "name")] - public string Name { get; set; } - - /// - /// Gets or sets user-provided data attached to this face list. - /// - [JsonProperty(PropertyName = "userData")] - public string UserData { get; set; } - - /// - /// Validate the object. - /// - /// - /// Thrown if validation fails - /// - public virtual void Validate() - { - if (PersonGroupId == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "PersonGroupId"); - } - if (PersonGroupId != null) - { - if (PersonGroupId.Length > 128) - { - throw new ValidationException(ValidationRules.MaxLength, "PersonGroupId", 128); - } - } - if (Name != null) - { - if (Name.Length > 128) - { - throw new ValidationException(ValidationRules.MaxLength, "Name", 128); - } - } - if (UserData != null) - { - if (UserData.Length > 16384) - { - throw new ValidationException(ValidationRules.MaxLength, "UserData", 16384); - } - } - } - } -} diff --git a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/PersonResult.cs b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/PersonResult.cs deleted file mode 100644 index 8eb9097bffd0..000000000000 --- a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/PersonResult.cs +++ /dev/null @@ -1,93 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Vision.Face.Models -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Vision; - using Microsoft.CognitiveServices.Vision.Face; - using Microsoft.Rest; - using Newtonsoft.Json; - using System.Collections; - using System.Collections.Generic; - using System.Linq; - - /// - /// Person object. - /// - public partial class PersonResult - { - /// - /// Initializes a new instance of the PersonResult class. - /// - public PersonResult() - { - CustomInit(); - } - - /// - /// Initializes a new instance of the PersonResult class. - /// - /// personId of the target face list. - /// persistedFaceIds of registered faces - /// in the person. These persistedFaceIds are returned from Person - - /// Add a Person Face, and will not expire. - /// Person's display name. - /// User-provided data attached to this - /// person. - public PersonResult(string personId, IList persistedFaceIds = default(IList), string name = default(string), string userData = default(string)) - { - PersonId = personId; - PersistedFaceIds = persistedFaceIds; - Name = name; - UserData = userData; - CustomInit(); - } - - /// - /// An initialization method that performs custom operations like setting defaults - /// - partial void CustomInit(); - - /// - /// Gets or sets personId of the target face list. - /// - [JsonProperty(PropertyName = "personId")] - public string PersonId { get; set; } - - /// - /// Gets or sets persistedFaceIds of registered faces in the person. - /// These persistedFaceIds are returned from Person - Add a Person - /// Face, and will not expire. - /// - [JsonProperty(PropertyName = "persistedFaceIds")] - public IList PersistedFaceIds { get; set; } - - /// - /// Gets or sets person's display name. - /// - [JsonProperty(PropertyName = "name")] - public string Name { get; set; } - - /// - /// Gets or sets user-provided data attached to this person. - /// - [JsonProperty(PropertyName = "userData")] - public string UserData { get; set; } - - /// - /// Validate the object. - /// - /// - /// Thrown if validation fails - /// - public virtual void Validate() - { - if (PersonId == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "PersonId"); - } - } - } -} diff --git a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/Position.cs b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/Position.cs deleted file mode 100644 index 4a20af049ae2..000000000000 --- a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/Position.cs +++ /dev/null @@ -1,66 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Vision.Face.Models -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Vision; - using Microsoft.CognitiveServices.Vision.Face; - using Newtonsoft.Json; - using System.Linq; - - /// - /// Coordinates within an image - /// - public partial class Position - { - /// - /// Initializes a new instance of the Position class. - /// - public Position() - { - CustomInit(); - } - - /// - /// Initializes a new instance of the Position class. - /// - /// The horizontal component, in pixels. - /// The vertical component, in pixels. - public Position(int x, int y) - { - X = x; - Y = y; - CustomInit(); - } - - /// - /// An initialization method that performs custom operations like setting defaults - /// - partial void CustomInit(); - - /// - /// Gets or sets the horizontal component, in pixels. - /// - [JsonProperty(PropertyName = "x")] - public int X { get; set; } - - /// - /// Gets or sets the vertical component, in pixels. - /// - [JsonProperty(PropertyName = "y")] - public int Y { get; set; } - - /// - /// Validate the object. - /// - /// - /// Thrown if validation fails - /// - public virtual void Validate() - { - //Nothing to validate - } - } -} diff --git a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/SimilarFaceResult.cs b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/SimilarFaceResult.cs deleted file mode 100644 index d40e1df84c48..000000000000 --- a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/SimilarFaceResult.cs +++ /dev/null @@ -1,100 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Vision.Face.Models -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Vision; - using Microsoft.CognitiveServices.Vision.Face; - using Microsoft.Rest; - using Newtonsoft.Json; - using System.Linq; - - /// - /// Response body for find similar face operation. - /// - public partial class SimilarFaceResult - { - /// - /// Initializes a new instance of the SimilarFaceResult class. - /// - public SimilarFaceResult() - { - CustomInit(); - } - - /// - /// Initializes a new instance of the SimilarFaceResult class. - /// - /// faceId of candidate face when find by faceIds. - /// faceId is created by Face - Detect and will expire 24 hours after - /// the detection call - /// persistedFaceId of candidate face - /// when find by faceListId. persistedFaceId in face list is persisted - /// and will not expire. As showed in below response - /// Similarity confidence of the candidate - /// face. The higher confidence, the more similar. Range between - /// [0,1 - public SimilarFaceResult(string faceId, string persistedFaceId, double? confidence = default(double?)) - { - FaceId = faceId; - PersistedFaceId = persistedFaceId; - Confidence = confidence; - CustomInit(); - } - - /// - /// An initialization method that performs custom operations like setting defaults - /// - partial void CustomInit(); - - /// - /// Gets or sets faceId of candidate face when find by faceIds. faceId - /// is created by Face - Detect and will expire 24 hours after the - /// detection call - /// - [JsonProperty(PropertyName = "faceId")] - public string FaceId { get; set; } - - /// - /// Gets or sets persistedFaceId of candidate face when find by - /// faceListId. persistedFaceId in face list is persisted and will not - /// expire. As showed in below response - /// - [JsonProperty(PropertyName = "persistedFaceId")] - public string PersistedFaceId { get; set; } - - /// - /// Gets or sets similarity confidence of the candidate face. The - /// higher confidence, the more similar. Range between [0,1 - /// - [JsonProperty(PropertyName = "confidence")] - public double? Confidence { get; set; } - - /// - /// Validate the object. - /// - /// - /// Thrown if validation fails - /// - public virtual void Validate() - { - if (FaceId == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "FaceId"); - } - if (PersistedFaceId == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "PersistedFaceId"); - } - if (FaceId != null) - { - if (FaceId.Length > 64) - { - throw new ValidationException(ValidationRules.MaxLength, "FaceId", 64); - } - } - } - } -} diff --git a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/TrainingStatus.cs b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/TrainingStatus.cs deleted file mode 100644 index 29a37c661584..000000000000 --- a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/TrainingStatus.cs +++ /dev/null @@ -1,105 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Vision.Face.Models -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Vision; - using Microsoft.CognitiveServices.Vision.Face; - using Microsoft.Rest; - using Newtonsoft.Json; - using System.Linq; - - /// - /// Training status object. - /// - public partial class TrainingStatus - { - /// - /// Initializes a new instance of the TrainingStatus class. - /// - public TrainingStatus() - { - CustomInit(); - } - - /// - /// Initializes a new instance of the TrainingStatus class. - /// - /// Training status: notstarted, running, - /// succeeded, failed. If the training process is waiting to perform, - /// the status is notstarted. If the training is ongoing, the status is - /// running. Status succeed means this person group is ready for Face - - /// Identify. Status failed is often caused by no person or no - /// persisted face exist in the person group. Possible values include: - /// 'nonstarted', 'running', 'succeeded', 'failed' - /// A combined UTC date and time string that - /// describes person group created time. - /// Person group last modify time in the UTC, - /// could be null value when the person group is not successfully - /// trained. - /// Show failure message when training failed - /// (omitted when training succeed). - public TrainingStatus(string status, System.DateTime? created = default(System.DateTime?), System.DateTime? lastAction = default(System.DateTime?), string message = default(string)) - { - Status = status; - Created = created; - LastAction = lastAction; - Message = message; - CustomInit(); - } - - /// - /// An initialization method that performs custom operations like setting defaults - /// - partial void CustomInit(); - - /// - /// Gets or sets training status: notstarted, running, succeeded, - /// failed. If the training process is waiting to perform, the status - /// is notstarted. If the training is ongoing, the status is running. - /// Status succeed means this person group is ready for Face - - /// Identify. Status failed is often caused by no person or no - /// persisted face exist in the person group. Possible values include: - /// 'nonstarted', 'running', 'succeeded', 'failed' - /// - [JsonProperty(PropertyName = "status")] - public string Status { get; set; } - - /// - /// Gets or sets a combined UTC date and time string that describes - /// person group created time. - /// - [JsonProperty(PropertyName = "createdDateTime")] - public System.DateTime? Created { get; set; } - - /// - /// Gets or sets person group last modify time in the UTC, could be - /// null value when the person group is not successfully trained. - /// - [JsonProperty(PropertyName = "lastActionDateTime")] - public System.DateTime? LastAction { get; set; } - - /// - /// Gets or sets show failure message when training failed (omitted - /// when training succeed). - /// - [JsonProperty(PropertyName = "message")] - public string Message { get; set; } - - /// - /// Validate the object. - /// - /// - /// Thrown if validation fails - /// - public virtual void Validate() - { - if (Status == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "Status"); - } - } - } -} diff --git a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/UpdatePersonFaceDataRequest.cs b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/UpdatePersonFaceDataRequest.cs deleted file mode 100644 index 080047cf5a51..000000000000 --- a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/UpdatePersonFaceDataRequest.cs +++ /dev/null @@ -1,69 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Vision.Face.Models -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Vision; - using Microsoft.CognitiveServices.Vision.Face; - using Microsoft.Rest; - using Newtonsoft.Json; - using System.Linq; - - /// - /// Request to update person face data. - /// - public partial class UpdatePersonFaceDataRequest - { - /// - /// Initializes a new instance of the UpdatePersonFaceDataRequest - /// class. - /// - public UpdatePersonFaceDataRequest() - { - CustomInit(); - } - - /// - /// Initializes a new instance of the UpdatePersonFaceDataRequest - /// class. - /// - /// User-provided data attached to the face. The - /// size limit is 1KB - public UpdatePersonFaceDataRequest(string userData = default(string)) - { - UserData = userData; - CustomInit(); - } - - /// - /// An initialization method that performs custom operations like setting defaults - /// - partial void CustomInit(); - - /// - /// Gets or sets user-provided data attached to the face. The size - /// limit is 1KB - /// - [JsonProperty(PropertyName = "userData")] - public string UserData { get; set; } - - /// - /// Validate the object. - /// - /// - /// Thrown if validation fails - /// - public virtual void Validate() - { - if (UserData != null) - { - if (UserData.Length > 1024) - { - throw new ValidationException(ValidationRules.MaxLength, "UserData", 1024); - } - } - } - } -} diff --git a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/VerifyRequest.cs b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/VerifyRequest.cs deleted file mode 100644 index 6850dd9836de..000000000000 --- a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/VerifyRequest.cs +++ /dev/null @@ -1,100 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Vision.Face.Models -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Vision; - using Microsoft.CognitiveServices.Vision.Face; - using Microsoft.Rest; - using Newtonsoft.Json; - using System.Linq; - - /// - /// Request body for verify operation. - /// - public partial class VerifyRequest - { - /// - /// Initializes a new instance of the VerifyRequest class. - /// - public VerifyRequest() - { - CustomInit(); - } - - /// - /// Initializes a new instance of the VerifyRequest class. - /// - /// faceId the face, comes from Face - - /// Detect - /// Specify a certain person in a person group. - /// personId is created in Persons.Create. - /// Using existing personGroupId and - /// personId for fast loading a specified person. personGroupId is - /// created in Person Groups.Create. - public VerifyRequest(string faceId, string personId, string personGroupId) - { - FaceId = faceId; - PersonId = personId; - PersonGroupId = personGroupId; - CustomInit(); - } - - /// - /// An initialization method that performs custom operations like setting defaults - /// - partial void CustomInit(); - - /// - /// Gets or sets faceId the face, comes from Face - Detect - /// - [JsonProperty(PropertyName = "faceId")] - public string FaceId { get; set; } - - /// - /// Gets or sets specify a certain person in a person group. personId - /// is created in Persons.Create. - /// - [JsonProperty(PropertyName = "personId")] - public string PersonId { get; set; } - - /// - /// Gets or sets using existing personGroupId and personId for fast - /// loading a specified person. personGroupId is created in Person - /// Groups.Create. - /// - [JsonProperty(PropertyName = "personGroupId")] - public string PersonGroupId { get; set; } - - /// - /// Validate the object. - /// - /// - /// Thrown if validation fails - /// - public virtual void Validate() - { - if (FaceId == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "FaceId"); - } - if (PersonId == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "PersonId"); - } - if (PersonGroupId == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "PersonGroupId"); - } - if (FaceId != null) - { - if (FaceId.Length > 64) - { - throw new ValidationException(ValidationRules.MaxLength, "FaceId", 64); - } - } - } - } -} diff --git a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/VerifyResult.cs b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/VerifyResult.cs deleted file mode 100644 index eb6005a8f075..000000000000 --- a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Models/VerifyResult.cs +++ /dev/null @@ -1,86 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Vision.Face.Models -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Vision; - using Microsoft.CognitiveServices.Vision.Face; - using Microsoft.Rest; - using Newtonsoft.Json; - using System.Linq; - - /// - /// Result of the verify operation. - /// - public partial class VerifyResult - { - /// - /// Initializes a new instance of the VerifyResult class. - /// - public VerifyResult() - { - CustomInit(); - } - - /// - /// Initializes a new instance of the VerifyResult class. - /// - /// True if the two faces belong to the same - /// person or the face belongs to the person, otherwise false. - /// "A number indicates the similarity - /// confidence of whether two faces belong to the same person, or - /// whether the face belongs to the person. By default, isIdentical is - /// set to True if similarity confidence is greater than or equal to - /// 0.5. This is useful for advanced users to override "isIdentical" - /// and fine-tune the result on their own data" - public VerifyResult(bool isIdentical, double? confidence = default(double?)) - { - IsIdentical = isIdentical; - Confidence = confidence; - CustomInit(); - } - - /// - /// An initialization method that performs custom operations like setting defaults - /// - partial void CustomInit(); - - /// - /// Gets or sets true if the two faces belong to the same person or the - /// face belongs to the person, otherwise false. - /// - [JsonProperty(PropertyName = "isIdentical")] - public bool IsIdentical { get; set; } - - /// - /// Gets or sets "A number indicates the similarity confidence of - /// whether two faces belong to the same person, or whether the face - /// belongs to the person. By default, isIdentical is set to True if - /// similarity confidence is greater than or equal to 0.5. This is - /// useful for advanced users to override "isIdentical" and fine-tune - /// the result on their own data" - /// - [JsonProperty(PropertyName = "confidence")] - public double? Confidence { get; set; } - - /// - /// Validate the object. - /// - /// - /// Thrown if validation fails - /// - public virtual void Validate() - { - if (Confidence > 1) - { - throw new ValidationException(ValidationRules.InclusiveMaximum, "Confidence", 1); - } - if (Confidence < 0) - { - throw new ValidationException(ValidationRules.InclusiveMinimum, "Confidence", 0); - } - } - } -} diff --git a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Person.cs b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Person.cs deleted file mode 100644 index 8a43a4278601..000000000000 --- a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/Person.cs +++ /dev/null @@ -1,1762 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Vision.Face -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Vision; - using Microsoft.Rest; - using Models; - using Newtonsoft.Json; - using System.Collections; - using System.Collections.Generic; - using System.IO; - using System.Net; - using System.Net.Http; - using System.Threading; - using System.Threading.Tasks; - - /// - /// Person operations. - /// - public partial class Person : IServiceOperations, IPerson - { - /// - /// Initializes a new instance of the Person class. - /// - /// - /// Reference to the service client. - /// - /// - /// Thrown when a required parameter is null - /// - public Person(FaceAPI client) - { - if (client == null) - { - throw new System.ArgumentNullException("client"); - } - Client = client; - } - - /// - /// Gets a reference to the FaceAPI - /// - public FaceAPI Client { get; private set; } - - /// - /// Create a new person in a specified person group. - /// - /// - /// Specifying the target person group to create the person. - /// - /// - /// Display name of the target person. The maximum length is 128. - /// - /// - /// Optional fields for user-provided data attached to a person. Size limit is - /// 16KB. - /// - /// - /// Headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when unable to deserialize the response - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// A response object containing the response body and response headers. - /// - public async Task> CreateWithHttpMessagesAsync(string personGroupId, string name = default(string), string userData = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) - { - if (Client.AzureRegion1 == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); - } - if (personGroupId == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "personGroupId"); - } - if (Client.SubscriptionKey == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); - } - if (name != null) - { - if (name.Length > 128) - { - throw new ValidationException(ValidationRules.MaxLength, "name", 128); - } - } - if (userData != null) - { - if (userData.Length > 16384) - { - throw new ValidationException(ValidationRules.MaxLength, "userData", 16384); - } - } - CreatePersonRequest body = new CreatePersonRequest(); - if (name != null || userData != null) - { - body.Name = name; - body.UserData = userData; - } - // Tracing - bool _shouldTrace = ServiceClientTracing.IsEnabled; - string _invocationId = null; - if (_shouldTrace) - { - _invocationId = ServiceClientTracing.NextInvocationId.ToString(); - Dictionary tracingParameters = new Dictionary(); - tracingParameters.Add("personGroupId", personGroupId); - tracingParameters.Add("body", body); - tracingParameters.Add("cancellationToken", cancellationToken); - ServiceClientTracing.Enter(_invocationId, this, "Create", tracingParameters); - } - // Construct URL - var _baseUrl = Client.BaseUri; - var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "persongroups/{personGroupId}/persons"; - _url = _url.Replace("{azureRegion}", Client.AzureRegion1); - _url = _url.Replace("{personGroupId}", System.Uri.EscapeDataString(personGroupId)); - // Create HTTP transport objects - var _httpRequest = new HttpRequestMessage(); - HttpResponseMessage _httpResponse = null; - _httpRequest.Method = new HttpMethod("POST"); - _httpRequest.RequestUri = new System.Uri(_url); - // Set Headers - if (Client.SubscriptionKey != null) - { - if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) - { - _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); - } - _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); - } - - - if (customHeaders != null) - { - foreach(var _header in customHeaders) - { - if (_httpRequest.Headers.Contains(_header.Key)) - { - _httpRequest.Headers.Remove(_header.Key); - } - _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); - } - } - - // Serialize Request - string _requestContent = null; - if(body != null) - { - _requestContent = Rest.Serialization.SafeJsonConvert.SerializeObject(body, Client.SerializationSettings); - _httpRequest.Content = new StringContent(_requestContent, System.Text.Encoding.UTF8); - _httpRequest.Content.Headers.ContentType =System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json; charset=utf-8"); - } - // Send Request - if (_shouldTrace) - { - ServiceClientTracing.SendRequest(_invocationId, _httpRequest); - } - cancellationToken.ThrowIfCancellationRequested(); - _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); - if (_shouldTrace) - { - ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); - } - HttpStatusCode _statusCode = _httpResponse.StatusCode; - cancellationToken.ThrowIfCancellationRequested(); - string _responseContent = null; - if ((int)_statusCode != 200) - { - var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); - try - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - if (_errorBody != null) - { - ex.Body = _errorBody; - } - } - catch (JsonException) - { - // Ignore the exception - } - ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); - ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); - if (_shouldTrace) - { - ServiceClientTracing.Error(_invocationId, ex); - } - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw ex; - } - // Create Result - var _result = new HttpOperationResponse(); - _result.Request = _httpRequest; - _result.Response = _httpResponse; - // Deserialize Response - if ((int)_statusCode == 200) - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - try - { - _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - } - catch (JsonException ex) - { - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); - } - } - if (_shouldTrace) - { - ServiceClientTracing.Exit(_invocationId, _result); - } - return _result; - } - - /// - /// List all persons in a person group, and retrieve person information - /// (including personId, name, userData and persistedFaceIds of registered - /// faces of the person). - /// - /// - /// personGroupId of the target person group. - /// - /// - /// Headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when unable to deserialize the response - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// A response object containing the response body and response headers. - /// - public async Task>> ListWithHttpMessagesAsync(string personGroupId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) - { - if (Client.AzureRegion1 == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); - } - if (personGroupId == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "personGroupId"); - } - if (Client.SubscriptionKey == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); - } - // Tracing - bool _shouldTrace = ServiceClientTracing.IsEnabled; - string _invocationId = null; - if (_shouldTrace) - { - _invocationId = ServiceClientTracing.NextInvocationId.ToString(); - Dictionary tracingParameters = new Dictionary(); - tracingParameters.Add("personGroupId", personGroupId); - tracingParameters.Add("cancellationToken", cancellationToken); - ServiceClientTracing.Enter(_invocationId, this, "List", tracingParameters); - } - // Construct URL - var _baseUrl = Client.BaseUri; - var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "persongroups/{personGroupId}/persons"; - _url = _url.Replace("{azureRegion}", Client.AzureRegion1); - _url = _url.Replace("{personGroupId}", System.Uri.EscapeDataString(personGroupId)); - // Create HTTP transport objects - var _httpRequest = new HttpRequestMessage(); - HttpResponseMessage _httpResponse = null; - _httpRequest.Method = new HttpMethod("GET"); - _httpRequest.RequestUri = new System.Uri(_url); - // Set Headers - if (Client.SubscriptionKey != null) - { - if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) - { - _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); - } - _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); - } - - - if (customHeaders != null) - { - foreach(var _header in customHeaders) - { - if (_httpRequest.Headers.Contains(_header.Key)) - { - _httpRequest.Headers.Remove(_header.Key); - } - _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); - } - } - - // Serialize Request - string _requestContent = null; - // Send Request - if (_shouldTrace) - { - ServiceClientTracing.SendRequest(_invocationId, _httpRequest); - } - cancellationToken.ThrowIfCancellationRequested(); - _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); - if (_shouldTrace) - { - ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); - } - HttpStatusCode _statusCode = _httpResponse.StatusCode; - cancellationToken.ThrowIfCancellationRequested(); - string _responseContent = null; - if ((int)_statusCode != 200) - { - var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); - try - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - if (_errorBody != null) - { - ex.Body = _errorBody; - } - } - catch (JsonException) - { - // Ignore the exception - } - ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); - ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); - if (_shouldTrace) - { - ServiceClientTracing.Error(_invocationId, ex); - } - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw ex; - } - // Create Result - var _result = new HttpOperationResponse>(); - _result.Request = _httpRequest; - _result.Response = _httpResponse; - // Deserialize Response - if ((int)_statusCode == 200) - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - try - { - _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject>(_responseContent, Client.DeserializationSettings); - } - catch (JsonException ex) - { - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); - } - } - if (_shouldTrace) - { - ServiceClientTracing.Exit(_invocationId, _result); - } - return _result; - } - - /// - /// Delete an existing person from a person group. Persisted face images of the - /// person will also be deleted. - /// - /// - /// Specifying the person group containing the person. - /// - /// - /// The target personId to delete. - /// - /// - /// Headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// A response object containing the response body and response headers. - /// - public async Task DeleteWithHttpMessagesAsync(string personGroupId, string personId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) - { - if (Client.AzureRegion1 == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); - } - if (personGroupId == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "personGroupId"); - } - if (personId == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "personId"); - } - if (Client.SubscriptionKey == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); - } - // Tracing - bool _shouldTrace = ServiceClientTracing.IsEnabled; - string _invocationId = null; - if (_shouldTrace) - { - _invocationId = ServiceClientTracing.NextInvocationId.ToString(); - Dictionary tracingParameters = new Dictionary(); - tracingParameters.Add("personGroupId", personGroupId); - tracingParameters.Add("personId", personId); - tracingParameters.Add("cancellationToken", cancellationToken); - ServiceClientTracing.Enter(_invocationId, this, "Delete", tracingParameters); - } - // Construct URL - var _baseUrl = Client.BaseUri; - var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "persongroups/{personGroupId}/persons/{personId}"; - _url = _url.Replace("{azureRegion}", Client.AzureRegion1); - _url = _url.Replace("{personGroupId}", System.Uri.EscapeDataString(personGroupId)); - _url = _url.Replace("{personId}", System.Uri.EscapeDataString(personId)); - // Create HTTP transport objects - var _httpRequest = new HttpRequestMessage(); - HttpResponseMessage _httpResponse = null; - _httpRequest.Method = new HttpMethod("DELETE"); - _httpRequest.RequestUri = new System.Uri(_url); - // Set Headers - if (Client.SubscriptionKey != null) - { - if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) - { - _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); - } - _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); - } - - - if (customHeaders != null) - { - foreach(var _header in customHeaders) - { - if (_httpRequest.Headers.Contains(_header.Key)) - { - _httpRequest.Headers.Remove(_header.Key); - } - _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); - } - } - - // Serialize Request - string _requestContent = null; - // Send Request - if (_shouldTrace) - { - ServiceClientTracing.SendRequest(_invocationId, _httpRequest); - } - cancellationToken.ThrowIfCancellationRequested(); - _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); - if (_shouldTrace) - { - ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); - } - HttpStatusCode _statusCode = _httpResponse.StatusCode; - cancellationToken.ThrowIfCancellationRequested(); - string _responseContent = null; - if ((int)_statusCode != 200) - { - var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); - try - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - if (_errorBody != null) - { - ex.Body = _errorBody; - } - } - catch (JsonException) - { - // Ignore the exception - } - ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); - ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); - if (_shouldTrace) - { - ServiceClientTracing.Error(_invocationId, ex); - } - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw ex; - } - // Create Result - var _result = new HttpOperationResponse(); - _result.Request = _httpRequest; - _result.Response = _httpResponse; - if (_shouldTrace) - { - ServiceClientTracing.Exit(_invocationId, _result); - } - return _result; - } - - /// - /// Retrieve a person's information, including registered persisted faces, name - /// and userData. - /// - /// - /// Specifying the person group containing the target person. - /// - /// - /// Specifying the target person. - /// - /// - /// Headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when unable to deserialize the response - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// A response object containing the response body and response headers. - /// - public async Task> GetWithHttpMessagesAsync(string personGroupId, string personId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) - { - if (Client.AzureRegion1 == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); - } - if (personGroupId == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "personGroupId"); - } - if (personId == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "personId"); - } - if (Client.SubscriptionKey == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); - } - // Tracing - bool _shouldTrace = ServiceClientTracing.IsEnabled; - string _invocationId = null; - if (_shouldTrace) - { - _invocationId = ServiceClientTracing.NextInvocationId.ToString(); - Dictionary tracingParameters = new Dictionary(); - tracingParameters.Add("personGroupId", personGroupId); - tracingParameters.Add("personId", personId); - tracingParameters.Add("cancellationToken", cancellationToken); - ServiceClientTracing.Enter(_invocationId, this, "Get", tracingParameters); - } - // Construct URL - var _baseUrl = Client.BaseUri; - var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "persongroups/{personGroupId}/persons/{personId}"; - _url = _url.Replace("{azureRegion}", Client.AzureRegion1); - _url = _url.Replace("{personGroupId}", System.Uri.EscapeDataString(personGroupId)); - _url = _url.Replace("{personId}", System.Uri.EscapeDataString(personId)); - // Create HTTP transport objects - var _httpRequest = new HttpRequestMessage(); - HttpResponseMessage _httpResponse = null; - _httpRequest.Method = new HttpMethod("GET"); - _httpRequest.RequestUri = new System.Uri(_url); - // Set Headers - if (Client.SubscriptionKey != null) - { - if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) - { - _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); - } - _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); - } - - - if (customHeaders != null) - { - foreach(var _header in customHeaders) - { - if (_httpRequest.Headers.Contains(_header.Key)) - { - _httpRequest.Headers.Remove(_header.Key); - } - _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); - } - } - - // Serialize Request - string _requestContent = null; - // Send Request - if (_shouldTrace) - { - ServiceClientTracing.SendRequest(_invocationId, _httpRequest); - } - cancellationToken.ThrowIfCancellationRequested(); - _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); - if (_shouldTrace) - { - ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); - } - HttpStatusCode _statusCode = _httpResponse.StatusCode; - cancellationToken.ThrowIfCancellationRequested(); - string _responseContent = null; - if ((int)_statusCode != 200) - { - var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); - try - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - if (_errorBody != null) - { - ex.Body = _errorBody; - } - } - catch (JsonException) - { - // Ignore the exception - } - ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); - ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); - if (_shouldTrace) - { - ServiceClientTracing.Error(_invocationId, ex); - } - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw ex; - } - // Create Result - var _result = new HttpOperationResponse(); - _result.Request = _httpRequest; - _result.Response = _httpResponse; - // Deserialize Response - if ((int)_statusCode == 200) - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - try - { - _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - } - catch (JsonException ex) - { - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); - } - } - if (_shouldTrace) - { - ServiceClientTracing.Exit(_invocationId, _result); - } - return _result; - } - - /// - /// Update name or userData of a person. - /// - /// - /// Specifying the person group containing the target person. - /// - /// - /// personId of the target person. - /// - /// - /// Display name of the target person. The maximum length is 128. - /// - /// - /// Optional fields for user-provided data attached to a person. Size limit is - /// 16KB. - /// - /// - /// Headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// A response object containing the response body and response headers. - /// - public async Task UpdateWithHttpMessagesAsync(string personGroupId, string personId, string name = default(string), string userData = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) - { - if (Client.AzureRegion1 == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); - } - if (personGroupId == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "personGroupId"); - } - if (personId == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "personId"); - } - if (Client.SubscriptionKey == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); - } - if (name != null) - { - if (name.Length > 128) - { - throw new ValidationException(ValidationRules.MaxLength, "name", 128); - } - } - if (userData != null) - { - if (userData.Length > 16384) - { - throw new ValidationException(ValidationRules.MaxLength, "userData", 16384); - } - } - CreatePersonRequest body = new CreatePersonRequest(); - if (name != null || userData != null) - { - body.Name = name; - body.UserData = userData; - } - // Tracing - bool _shouldTrace = ServiceClientTracing.IsEnabled; - string _invocationId = null; - if (_shouldTrace) - { - _invocationId = ServiceClientTracing.NextInvocationId.ToString(); - Dictionary tracingParameters = new Dictionary(); - tracingParameters.Add("personGroupId", personGroupId); - tracingParameters.Add("personId", personId); - tracingParameters.Add("body", body); - tracingParameters.Add("cancellationToken", cancellationToken); - ServiceClientTracing.Enter(_invocationId, this, "Update", tracingParameters); - } - // Construct URL - var _baseUrl = Client.BaseUri; - var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "persongroups/{personGroupId}/persons/{personId}"; - _url = _url.Replace("{azureRegion}", Client.AzureRegion1); - _url = _url.Replace("{personGroupId}", System.Uri.EscapeDataString(personGroupId)); - _url = _url.Replace("{personId}", System.Uri.EscapeDataString(personId)); - // Create HTTP transport objects - var _httpRequest = new HttpRequestMessage(); - HttpResponseMessage _httpResponse = null; - _httpRequest.Method = new HttpMethod("PATCH"); - _httpRequest.RequestUri = new System.Uri(_url); - // Set Headers - if (Client.SubscriptionKey != null) - { - if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) - { - _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); - } - _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); - } - - - if (customHeaders != null) - { - foreach(var _header in customHeaders) - { - if (_httpRequest.Headers.Contains(_header.Key)) - { - _httpRequest.Headers.Remove(_header.Key); - } - _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); - } - } - - // Serialize Request - string _requestContent = null; - if(body != null) - { - _requestContent = Rest.Serialization.SafeJsonConvert.SerializeObject(body, Client.SerializationSettings); - _httpRequest.Content = new StringContent(_requestContent, System.Text.Encoding.UTF8); - _httpRequest.Content.Headers.ContentType =System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json; charset=utf-8"); - } - // Send Request - if (_shouldTrace) - { - ServiceClientTracing.SendRequest(_invocationId, _httpRequest); - } - cancellationToken.ThrowIfCancellationRequested(); - _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); - if (_shouldTrace) - { - ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); - } - HttpStatusCode _statusCode = _httpResponse.StatusCode; - cancellationToken.ThrowIfCancellationRequested(); - string _responseContent = null; - if ((int)_statusCode != 200) - { - var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); - try - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - if (_errorBody != null) - { - ex.Body = _errorBody; - } - } - catch (JsonException) - { - // Ignore the exception - } - ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); - ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); - if (_shouldTrace) - { - ServiceClientTracing.Error(_invocationId, ex); - } - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw ex; - } - // Create Result - var _result = new HttpOperationResponse(); - _result.Request = _httpRequest; - _result.Response = _httpResponse; - if (_shouldTrace) - { - ServiceClientTracing.Exit(_invocationId, _result); - } - return _result; - } - - /// - /// Delete a face from a person. Relative image for the persisted face will - /// also be deleted. - /// - /// - /// Specifying the person group containing the target person. - /// - /// - /// Specifying the person that the target persisted face belong to. - /// - /// - /// The persisted face to remove. - /// - /// - /// Headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// A response object containing the response body and response headers. - /// - public async Task DeleteFaceWithHttpMessagesAsync(string personGroupId, string personId, string persistedFaceId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) - { - if (Client.AzureRegion1 == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); - } - if (personGroupId == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "personGroupId"); - } - if (personId == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "personId"); - } - if (persistedFaceId == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "persistedFaceId"); - } - if (Client.SubscriptionKey == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); - } - // Tracing - bool _shouldTrace = ServiceClientTracing.IsEnabled; - string _invocationId = null; - if (_shouldTrace) - { - _invocationId = ServiceClientTracing.NextInvocationId.ToString(); - Dictionary tracingParameters = new Dictionary(); - tracingParameters.Add("personGroupId", personGroupId); - tracingParameters.Add("personId", personId); - tracingParameters.Add("persistedFaceId", persistedFaceId); - tracingParameters.Add("cancellationToken", cancellationToken); - ServiceClientTracing.Enter(_invocationId, this, "DeleteFace", tracingParameters); - } - // Construct URL - var _baseUrl = Client.BaseUri; - var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "persongroups/{personGroupId}/persons/{personId}/persistedFaces/{persistedFaceId}"; - _url = _url.Replace("{azureRegion}", Client.AzureRegion1); - _url = _url.Replace("{personGroupId}", System.Uri.EscapeDataString(personGroupId)); - _url = _url.Replace("{personId}", System.Uri.EscapeDataString(personId)); - _url = _url.Replace("{persistedFaceId}", System.Uri.EscapeDataString(persistedFaceId)); - // Create HTTP transport objects - var _httpRequest = new HttpRequestMessage(); - HttpResponseMessage _httpResponse = null; - _httpRequest.Method = new HttpMethod("DELETE"); - _httpRequest.RequestUri = new System.Uri(_url); - // Set Headers - if (Client.SubscriptionKey != null) - { - if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) - { - _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); - } - _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); - } - - - if (customHeaders != null) - { - foreach(var _header in customHeaders) - { - if (_httpRequest.Headers.Contains(_header.Key)) - { - _httpRequest.Headers.Remove(_header.Key); - } - _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); - } - } - - // Serialize Request - string _requestContent = null; - // Send Request - if (_shouldTrace) - { - ServiceClientTracing.SendRequest(_invocationId, _httpRequest); - } - cancellationToken.ThrowIfCancellationRequested(); - _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); - if (_shouldTrace) - { - ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); - } - HttpStatusCode _statusCode = _httpResponse.StatusCode; - cancellationToken.ThrowIfCancellationRequested(); - string _responseContent = null; - if ((int)_statusCode != 200) - { - var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); - try - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - if (_errorBody != null) - { - ex.Body = _errorBody; - } - } - catch (JsonException) - { - // Ignore the exception - } - ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); - ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); - if (_shouldTrace) - { - ServiceClientTracing.Error(_invocationId, ex); - } - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw ex; - } - // Create Result - var _result = new HttpOperationResponse(); - _result.Request = _httpRequest; - _result.Response = _httpResponse; - if (_shouldTrace) - { - ServiceClientTracing.Exit(_invocationId, _result); - } - return _result; - } - - /// - /// Retrieve information about a persisted face (specified by persistedFaceId, - /// personId and its belonging personGroupId). - /// - /// - /// Specifying the person group containing the target person. - /// - /// - /// Specifying the target person that the face belongs to. - /// - /// - /// The persistedFaceId of the target persisted face of the person. - /// - /// - /// Headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when unable to deserialize the response - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// A response object containing the response body and response headers. - /// - public async Task> GetFaceWithHttpMessagesAsync(string personGroupId, string personId, string persistedFaceId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) - { - if (Client.AzureRegion1 == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); - } - if (personGroupId == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "personGroupId"); - } - if (personId == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "personId"); - } - if (persistedFaceId == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "persistedFaceId"); - } - if (Client.SubscriptionKey == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); - } - // Tracing - bool _shouldTrace = ServiceClientTracing.IsEnabled; - string _invocationId = null; - if (_shouldTrace) - { - _invocationId = ServiceClientTracing.NextInvocationId.ToString(); - Dictionary tracingParameters = new Dictionary(); - tracingParameters.Add("personGroupId", personGroupId); - tracingParameters.Add("personId", personId); - tracingParameters.Add("persistedFaceId", persistedFaceId); - tracingParameters.Add("cancellationToken", cancellationToken); - ServiceClientTracing.Enter(_invocationId, this, "GetFace", tracingParameters); - } - // Construct URL - var _baseUrl = Client.BaseUri; - var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "persongroups/{personGroupId}/persons/{personId}/persistedFaces/{persistedFaceId}"; - _url = _url.Replace("{azureRegion}", Client.AzureRegion1); - _url = _url.Replace("{personGroupId}", System.Uri.EscapeDataString(personGroupId)); - _url = _url.Replace("{personId}", System.Uri.EscapeDataString(personId)); - _url = _url.Replace("{persistedFaceId}", System.Uri.EscapeDataString(persistedFaceId)); - // Create HTTP transport objects - var _httpRequest = new HttpRequestMessage(); - HttpResponseMessage _httpResponse = null; - _httpRequest.Method = new HttpMethod("GET"); - _httpRequest.RequestUri = new System.Uri(_url); - // Set Headers - if (Client.SubscriptionKey != null) - { - if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) - { - _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); - } - _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); - } - - - if (customHeaders != null) - { - foreach(var _header in customHeaders) - { - if (_httpRequest.Headers.Contains(_header.Key)) - { - _httpRequest.Headers.Remove(_header.Key); - } - _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); - } - } - - // Serialize Request - string _requestContent = null; - // Send Request - if (_shouldTrace) - { - ServiceClientTracing.SendRequest(_invocationId, _httpRequest); - } - cancellationToken.ThrowIfCancellationRequested(); - _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); - if (_shouldTrace) - { - ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); - } - HttpStatusCode _statusCode = _httpResponse.StatusCode; - cancellationToken.ThrowIfCancellationRequested(); - string _responseContent = null; - if ((int)_statusCode != 200) - { - var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); - try - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - if (_errorBody != null) - { - ex.Body = _errorBody; - } - } - catch (JsonException) - { - // Ignore the exception - } - ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); - ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); - if (_shouldTrace) - { - ServiceClientTracing.Error(_invocationId, ex); - } - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw ex; - } - // Create Result - var _result = new HttpOperationResponse(); - _result.Request = _httpRequest; - _result.Response = _httpResponse; - // Deserialize Response - if ((int)_statusCode == 200) - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - try - { - _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - } - catch (JsonException ex) - { - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); - } - } - if (_shouldTrace) - { - ServiceClientTracing.Exit(_invocationId, _result); - } - return _result; - } - - /// - /// Update a person persisted face's userData field. - /// - /// - /// Specifying the person group containing the target person. - /// - /// - /// personId of the target person. - /// - /// - /// persistedFaceId of target face, which is persisted and will not expire. - /// - /// - /// User-provided data attached to the face. The size limit is 1KB - /// - /// - /// Headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// A response object containing the response body and response headers. - /// - public async Task UpdateFaceWithHttpMessagesAsync(string personGroupId, string personId, string persistedFaceId, string userData = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) - { - if (Client.AzureRegion1 == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); - } - if (personGroupId == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "personGroupId"); - } - if (personId == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "personId"); - } - if (persistedFaceId == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "persistedFaceId"); - } - if (Client.SubscriptionKey == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); - } - if (userData != null) - { - if (userData.Length > 1024) - { - throw new ValidationException(ValidationRules.MaxLength, "userData", 1024); - } - } - UpdatePersonFaceDataRequest body = new UpdatePersonFaceDataRequest(); - if (userData != null) - { - body.UserData = userData; - } - // Tracing - bool _shouldTrace = ServiceClientTracing.IsEnabled; - string _invocationId = null; - if (_shouldTrace) - { - _invocationId = ServiceClientTracing.NextInvocationId.ToString(); - Dictionary tracingParameters = new Dictionary(); - tracingParameters.Add("personGroupId", personGroupId); - tracingParameters.Add("personId", personId); - tracingParameters.Add("persistedFaceId", persistedFaceId); - tracingParameters.Add("body", body); - tracingParameters.Add("cancellationToken", cancellationToken); - ServiceClientTracing.Enter(_invocationId, this, "UpdateFace", tracingParameters); - } - // Construct URL - var _baseUrl = Client.BaseUri; - var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "persongroups/{personGroupId}/persons/{personId}/persistedFaces/{persistedFaceId}"; - _url = _url.Replace("{azureRegion}", Client.AzureRegion1); - _url = _url.Replace("{personGroupId}", System.Uri.EscapeDataString(personGroupId)); - _url = _url.Replace("{personId}", System.Uri.EscapeDataString(personId)); - _url = _url.Replace("{persistedFaceId}", System.Uri.EscapeDataString(persistedFaceId)); - // Create HTTP transport objects - var _httpRequest = new HttpRequestMessage(); - HttpResponseMessage _httpResponse = null; - _httpRequest.Method = new HttpMethod("PATCH"); - _httpRequest.RequestUri = new System.Uri(_url); - // Set Headers - if (Client.SubscriptionKey != null) - { - if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) - { - _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); - } - _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); - } - - - if (customHeaders != null) - { - foreach(var _header in customHeaders) - { - if (_httpRequest.Headers.Contains(_header.Key)) - { - _httpRequest.Headers.Remove(_header.Key); - } - _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); - } - } - - // Serialize Request - string _requestContent = null; - if(body != null) - { - _requestContent = Rest.Serialization.SafeJsonConvert.SerializeObject(body, Client.SerializationSettings); - _httpRequest.Content = new StringContent(_requestContent, System.Text.Encoding.UTF8); - _httpRequest.Content.Headers.ContentType =System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json; charset=utf-8"); - } - // Send Request - if (_shouldTrace) - { - ServiceClientTracing.SendRequest(_invocationId, _httpRequest); - } - cancellationToken.ThrowIfCancellationRequested(); - _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); - if (_shouldTrace) - { - ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); - } - HttpStatusCode _statusCode = _httpResponse.StatusCode; - cancellationToken.ThrowIfCancellationRequested(); - string _responseContent = null; - if ((int)_statusCode != 200) - { - var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); - try - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - if (_errorBody != null) - { - ex.Body = _errorBody; - } - } - catch (JsonException) - { - // Ignore the exception - } - ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); - ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); - if (_shouldTrace) - { - ServiceClientTracing.Error(_invocationId, ex); - } - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw ex; - } - // Create Result - var _result = new HttpOperationResponse(); - _result.Request = _httpRequest; - _result.Response = _httpResponse; - if (_shouldTrace) - { - ServiceClientTracing.Exit(_invocationId, _result); - } - return _result; - } - - /// - /// Add a representative face to a person for identification. The input face is - /// specified as an image with a targetFace rectangle. - /// - /// - /// Specifying the person group containing the target person. - /// - /// - /// Target person that the face is added to. - /// - /// - /// User-specified data about the target face to add for any purpose. The - /// maximum length is 1KB. - /// - /// - /// A face rectangle to specify the target face to be added to a person in the - /// format of "targetFace=left,top,width,height". E.g. - /// "targetFace=10,10,100,100". If there is more than one face in the image, - /// targetFace is required to specify which face to add. No targetFace means - /// there is only one face detected in the entire image. - /// - /// - /// Headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// A response object containing the response body and response headers. - /// - public async Task AddFaceWithHttpMessagesAsync(string personGroupId, string personId, string userData = default(string), string targetFace = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) - { - if (Client.AzureRegion1 == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); - } - if (personGroupId == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "personGroupId"); - } - if (personId == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "personId"); - } - if (Client.SubscriptionKey == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); - } - // Tracing - bool _shouldTrace = ServiceClientTracing.IsEnabled; - string _invocationId = null; - if (_shouldTrace) - { - _invocationId = ServiceClientTracing.NextInvocationId.ToString(); - Dictionary tracingParameters = new Dictionary(); - tracingParameters.Add("personGroupId", personGroupId); - tracingParameters.Add("personId", personId); - tracingParameters.Add("userData", userData); - tracingParameters.Add("targetFace", targetFace); - tracingParameters.Add("cancellationToken", cancellationToken); - ServiceClientTracing.Enter(_invocationId, this, "AddFace", tracingParameters); - } - // Construct URL - var _baseUrl = Client.BaseUri; - var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "persongroups/{personGroupId}/persons/{personId}/persistedFaces"; - _url = _url.Replace("{azureRegion}", Client.AzureRegion1); - _url = _url.Replace("{personGroupId}", System.Uri.EscapeDataString(personGroupId)); - _url = _url.Replace("{personId}", System.Uri.EscapeDataString(personId)); - List _queryParameters = new List(); - if (userData != null) - { - _queryParameters.Add(string.Format("userData={0}", System.Uri.EscapeDataString(userData))); - } - if (targetFace != null) - { - _queryParameters.Add(string.Format("targetFace={0}", System.Uri.EscapeDataString(targetFace))); - } - if (_queryParameters.Count > 0) - { - _url += "?" + string.Join("&", _queryParameters); - } - // Create HTTP transport objects - var _httpRequest = new HttpRequestMessage(); - HttpResponseMessage _httpResponse = null; - _httpRequest.Method = new HttpMethod("POST"); - _httpRequest.RequestUri = new System.Uri(_url); - // Set Headers - if (Client.SubscriptionKey != null) - { - if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) - { - _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); - } - _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); - } - - - if (customHeaders != null) - { - foreach(var _header in customHeaders) - { - if (_httpRequest.Headers.Contains(_header.Key)) - { - _httpRequest.Headers.Remove(_header.Key); - } - _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); - } - } - - // Serialize Request - string _requestContent = null; - // Send Request - if (_shouldTrace) - { - ServiceClientTracing.SendRequest(_invocationId, _httpRequest); - } - cancellationToken.ThrowIfCancellationRequested(); - _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); - if (_shouldTrace) - { - ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); - } - HttpStatusCode _statusCode = _httpResponse.StatusCode; - cancellationToken.ThrowIfCancellationRequested(); - string _responseContent = null; - if ((int)_statusCode != 200) - { - var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); - try - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - if (_errorBody != null) - { - ex.Body = _errorBody; - } - } - catch (JsonException) - { - // Ignore the exception - } - ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); - ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); - if (_shouldTrace) - { - ServiceClientTracing.Error(_invocationId, ex); - } - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw ex; - } - // Create Result - var _result = new HttpOperationResponse(); - _result.Request = _httpRequest; - _result.Response = _httpResponse; - if (_shouldTrace) - { - ServiceClientTracing.Exit(_invocationId, _result); - } - return _result; - } - - /// - /// Add a representative face to a person for identification. The input face is - /// specified as an image with a targetFace rectangle. - /// - /// - /// Specifying the person group containing the target person. - /// - /// - /// Target person that the face is added to. - /// - /// - /// User-specified data about the target face to add for any purpose. The - /// maximum length is 1KB. - /// - /// - /// A face rectangle to specify the target face to be added to a person, in the - /// format of "targetFace=left,top,width,height". E.g. - /// "targetFace=10,10,100,100". If there is more than one face in the image, - /// targetFace is required to specify which face to add. No targetFace means - /// there is only one face detected in the entire image. - /// - /// - /// Headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// A response object containing the response body and response headers. - /// - public async Task AddFaceFromStreamWithHttpMessagesAsync(string personGroupId, string personId, string userData = default(string), string targetFace = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) - { - if (Client.AzureRegion1 == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); - } - if (personGroupId == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "personGroupId"); - } - if (personId == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "personId"); - } - if (Client.SubscriptionKey == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); - } - // Tracing - bool _shouldTrace = ServiceClientTracing.IsEnabled; - string _invocationId = null; - if (_shouldTrace) - { - _invocationId = ServiceClientTracing.NextInvocationId.ToString(); - Dictionary tracingParameters = new Dictionary(); - tracingParameters.Add("personGroupId", personGroupId); - tracingParameters.Add("personId", personId); - tracingParameters.Add("userData", userData); - tracingParameters.Add("targetFace", targetFace); - tracingParameters.Add("cancellationToken", cancellationToken); - ServiceClientTracing.Enter(_invocationId, this, "AddFaceFromStream", tracingParameters); - } - // Construct URL - var _baseUrl = Client.BaseUri; - var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "persongroups/{personGroupId}/persons/{personId}/persistedFaces"; - _url = _url.Replace("{azureRegion}", Client.AzureRegion1); - _url = _url.Replace("{personGroupId}", System.Uri.EscapeDataString(personGroupId)); - _url = _url.Replace("{personId}", System.Uri.EscapeDataString(personId)); - List _queryParameters = new List(); - if (userData != null) - { - _queryParameters.Add(string.Format("userData={0}", System.Uri.EscapeDataString(userData))); - } - if (targetFace != null) - { - _queryParameters.Add(string.Format("targetFace={0}", System.Uri.EscapeDataString(targetFace))); - } - if (_queryParameters.Count > 0) - { - _url += "?" + string.Join("&", _queryParameters); - } - // Create HTTP transport objects - var _httpRequest = new HttpRequestMessage(); - HttpResponseMessage _httpResponse = null; - _httpRequest.Method = new HttpMethod("POST"); - _httpRequest.RequestUri = new System.Uri(_url); - // Set Headers - if (Client.SubscriptionKey != null) - { - if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) - { - _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); - } - _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); - } - - - if (customHeaders != null) - { - foreach(var _header in customHeaders) - { - if (_httpRequest.Headers.Contains(_header.Key)) - { - _httpRequest.Headers.Remove(_header.Key); - } - _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); - } - } - - // Serialize Request - string _requestContent = null; - // Send Request - if (_shouldTrace) - { - ServiceClientTracing.SendRequest(_invocationId, _httpRequest); - } - cancellationToken.ThrowIfCancellationRequested(); - _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); - if (_shouldTrace) - { - ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); - } - HttpStatusCode _statusCode = _httpResponse.StatusCode; - cancellationToken.ThrowIfCancellationRequested(); - string _responseContent = null; - if ((int)_statusCode != 200) - { - var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); - try - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - if (_errorBody != null) - { - ex.Body = _errorBody; - } - } - catch (JsonException) - { - // Ignore the exception - } - ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); - ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); - if (_shouldTrace) - { - ServiceClientTracing.Error(_invocationId, ex); - } - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw ex; - } - // Create Result - var _result = new HttpOperationResponse(); - _result.Request = _httpRequest; - _result.Response = _httpResponse; - if (_shouldTrace) - { - ServiceClientTracing.Exit(_invocationId, _result); - } - return _result; - } - - } -} diff --git a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/PersonExtensions.cs b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/PersonExtensions.cs deleted file mode 100644 index f32deac56774..000000000000 --- a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/PersonExtensions.cs +++ /dev/null @@ -1,503 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Vision.Face -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Vision; - using Models; - using System.Collections; - using System.Collections.Generic; - using System.Threading; - using System.Threading.Tasks; - - /// - /// Extension methods for Person. - /// - public static partial class PersonExtensions - { - /// - /// Create a new person in a specified person group. - /// - /// - /// The operations group for this extension method. - /// - /// - /// Specifying the target person group to create the person. - /// - /// - /// Display name of the target person. The maximum length is 128. - /// - /// - /// Optional fields for user-provided data attached to a person. Size limit is - /// 16KB. - /// - public static CreatePersonResult Create(this IPerson operations, string personGroupId, string name = default(string), string userData = default(string)) - { - return operations.CreateAsync(personGroupId, name, userData).GetAwaiter().GetResult(); - } - - /// - /// Create a new person in a specified person group. - /// - /// - /// The operations group for this extension method. - /// - /// - /// Specifying the target person group to create the person. - /// - /// - /// Display name of the target person. The maximum length is 128. - /// - /// - /// Optional fields for user-provided data attached to a person. Size limit is - /// 16KB. - /// - /// - /// The cancellation token. - /// - public static async Task CreateAsync(this IPerson operations, string personGroupId, string name = default(string), string userData = default(string), CancellationToken cancellationToken = default(CancellationToken)) - { - using (var _result = await operations.CreateWithHttpMessagesAsync(personGroupId, name, userData, null, cancellationToken).ConfigureAwait(false)) - { - return _result.Body; - } - } - - /// - /// List all persons in a person group, and retrieve person information - /// (including personId, name, userData and persistedFaceIds of registered - /// faces of the person). - /// - /// - /// The operations group for this extension method. - /// - /// - /// personGroupId of the target person group. - /// - public static IList List(this IPerson operations, string personGroupId) - { - return operations.ListAsync(personGroupId).GetAwaiter().GetResult(); - } - - /// - /// List all persons in a person group, and retrieve person information - /// (including personId, name, userData and persistedFaceIds of registered - /// faces of the person). - /// - /// - /// The operations group for this extension method. - /// - /// - /// personGroupId of the target person group. - /// - /// - /// The cancellation token. - /// - public static async Task> ListAsync(this IPerson operations, string personGroupId, CancellationToken cancellationToken = default(CancellationToken)) - { - using (var _result = await operations.ListWithHttpMessagesAsync(personGroupId, null, cancellationToken).ConfigureAwait(false)) - { - return _result.Body; - } - } - - /// - /// Delete an existing person from a person group. Persisted face images of the - /// person will also be deleted. - /// - /// - /// The operations group for this extension method. - /// - /// - /// Specifying the person group containing the person. - /// - /// - /// The target personId to delete. - /// - public static void Delete(this IPerson operations, string personGroupId, string personId) - { - operations.DeleteAsync(personGroupId, personId).GetAwaiter().GetResult(); - } - - /// - /// Delete an existing person from a person group. Persisted face images of the - /// person will also be deleted. - /// - /// - /// The operations group for this extension method. - /// - /// - /// Specifying the person group containing the person. - /// - /// - /// The target personId to delete. - /// - /// - /// The cancellation token. - /// - public static async Task DeleteAsync(this IPerson operations, string personGroupId, string personId, CancellationToken cancellationToken = default(CancellationToken)) - { - (await operations.DeleteWithHttpMessagesAsync(personGroupId, personId, null, cancellationToken).ConfigureAwait(false)).Dispose(); - } - - /// - /// Retrieve a person's information, including registered persisted faces, name - /// and userData. - /// - /// - /// The operations group for this extension method. - /// - /// - /// Specifying the person group containing the target person. - /// - /// - /// Specifying the target person. - /// - public static PersonResult Get(this IPerson operations, string personGroupId, string personId) - { - return operations.GetAsync(personGroupId, personId).GetAwaiter().GetResult(); - } - - /// - /// Retrieve a person's information, including registered persisted faces, name - /// and userData. - /// - /// - /// The operations group for this extension method. - /// - /// - /// Specifying the person group containing the target person. - /// - /// - /// Specifying the target person. - /// - /// - /// The cancellation token. - /// - public static async Task GetAsync(this IPerson operations, string personGroupId, string personId, CancellationToken cancellationToken = default(CancellationToken)) - { - using (var _result = await operations.GetWithHttpMessagesAsync(personGroupId, personId, null, cancellationToken).ConfigureAwait(false)) - { - return _result.Body; - } - } - - /// - /// Update name or userData of a person. - /// - /// - /// The operations group for this extension method. - /// - /// - /// Specifying the person group containing the target person. - /// - /// - /// personId of the target person. - /// - /// - /// Display name of the target person. The maximum length is 128. - /// - /// - /// Optional fields for user-provided data attached to a person. Size limit is - /// 16KB. - /// - public static void Update(this IPerson operations, string personGroupId, string personId, string name = default(string), string userData = default(string)) - { - operations.UpdateAsync(personGroupId, personId, name, userData).GetAwaiter().GetResult(); - } - - /// - /// Update name or userData of a person. - /// - /// - /// The operations group for this extension method. - /// - /// - /// Specifying the person group containing the target person. - /// - /// - /// personId of the target person. - /// - /// - /// Display name of the target person. The maximum length is 128. - /// - /// - /// Optional fields for user-provided data attached to a person. Size limit is - /// 16KB. - /// - /// - /// The cancellation token. - /// - public static async Task UpdateAsync(this IPerson operations, string personGroupId, string personId, string name = default(string), string userData = default(string), CancellationToken cancellationToken = default(CancellationToken)) - { - (await operations.UpdateWithHttpMessagesAsync(personGroupId, personId, name, userData, null, cancellationToken).ConfigureAwait(false)).Dispose(); - } - - /// - /// Delete a face from a person. Relative image for the persisted face will - /// also be deleted. - /// - /// - /// The operations group for this extension method. - /// - /// - /// Specifying the person group containing the target person. - /// - /// - /// Specifying the person that the target persisted face belong to. - /// - /// - /// The persisted face to remove. - /// - public static void DeleteFace(this IPerson operations, string personGroupId, string personId, string persistedFaceId) - { - operations.DeleteFaceAsync(personGroupId, personId, persistedFaceId).GetAwaiter().GetResult(); - } - - /// - /// Delete a face from a person. Relative image for the persisted face will - /// also be deleted. - /// - /// - /// The operations group for this extension method. - /// - /// - /// Specifying the person group containing the target person. - /// - /// - /// Specifying the person that the target persisted face belong to. - /// - /// - /// The persisted face to remove. - /// - /// - /// The cancellation token. - /// - public static async Task DeleteFaceAsync(this IPerson operations, string personGroupId, string personId, string persistedFaceId, CancellationToken cancellationToken = default(CancellationToken)) - { - (await operations.DeleteFaceWithHttpMessagesAsync(personGroupId, personId, persistedFaceId, null, cancellationToken).ConfigureAwait(false)).Dispose(); - } - - /// - /// Retrieve information about a persisted face (specified by persistedFaceId, - /// personId and its belonging personGroupId). - /// - /// - /// The operations group for this extension method. - /// - /// - /// Specifying the person group containing the target person. - /// - /// - /// Specifying the target person that the face belongs to. - /// - /// - /// The persistedFaceId of the target persisted face of the person. - /// - public static PersonFaceResult GetFace(this IPerson operations, string personGroupId, string personId, string persistedFaceId) - { - return operations.GetFaceAsync(personGroupId, personId, persistedFaceId).GetAwaiter().GetResult(); - } - - /// - /// Retrieve information about a persisted face (specified by persistedFaceId, - /// personId and its belonging personGroupId). - /// - /// - /// The operations group for this extension method. - /// - /// - /// Specifying the person group containing the target person. - /// - /// - /// Specifying the target person that the face belongs to. - /// - /// - /// The persistedFaceId of the target persisted face of the person. - /// - /// - /// The cancellation token. - /// - public static async Task GetFaceAsync(this IPerson operations, string personGroupId, string personId, string persistedFaceId, CancellationToken cancellationToken = default(CancellationToken)) - { - using (var _result = await operations.GetFaceWithHttpMessagesAsync(personGroupId, personId, persistedFaceId, null, cancellationToken).ConfigureAwait(false)) - { - return _result.Body; - } - } - - /// - /// Update a person persisted face's userData field. - /// - /// - /// The operations group for this extension method. - /// - /// - /// Specifying the person group containing the target person. - /// - /// - /// personId of the target person. - /// - /// - /// persistedFaceId of target face, which is persisted and will not expire. - /// - /// - /// User-provided data attached to the face. The size limit is 1KB - /// - public static void UpdateFace(this IPerson operations, string personGroupId, string personId, string persistedFaceId, string userData = default(string)) - { - operations.UpdateFaceAsync(personGroupId, personId, persistedFaceId, userData).GetAwaiter().GetResult(); - } - - /// - /// Update a person persisted face's userData field. - /// - /// - /// The operations group for this extension method. - /// - /// - /// Specifying the person group containing the target person. - /// - /// - /// personId of the target person. - /// - /// - /// persistedFaceId of target face, which is persisted and will not expire. - /// - /// - /// User-provided data attached to the face. The size limit is 1KB - /// - /// - /// The cancellation token. - /// - public static async Task UpdateFaceAsync(this IPerson operations, string personGroupId, string personId, string persistedFaceId, string userData = default(string), CancellationToken cancellationToken = default(CancellationToken)) - { - (await operations.UpdateFaceWithHttpMessagesAsync(personGroupId, personId, persistedFaceId, userData, null, cancellationToken).ConfigureAwait(false)).Dispose(); - } - - /// - /// Add a representative face to a person for identification. The input face is - /// specified as an image with a targetFace rectangle. - /// - /// - /// The operations group for this extension method. - /// - /// - /// Specifying the person group containing the target person. - /// - /// - /// Target person that the face is added to. - /// - /// - /// User-specified data about the target face to add for any purpose. The - /// maximum length is 1KB. - /// - /// - /// A face rectangle to specify the target face to be added to a person in the - /// format of "targetFace=left,top,width,height". E.g. - /// "targetFace=10,10,100,100". If there is more than one face in the image, - /// targetFace is required to specify which face to add. No targetFace means - /// there is only one face detected in the entire image. - /// - public static void AddFace(this IPerson operations, string personGroupId, string personId, string userData = default(string), string targetFace = default(string)) - { - operations.AddFaceAsync(personGroupId, personId, userData, targetFace).GetAwaiter().GetResult(); - } - - /// - /// Add a representative face to a person for identification. The input face is - /// specified as an image with a targetFace rectangle. - /// - /// - /// The operations group for this extension method. - /// - /// - /// Specifying the person group containing the target person. - /// - /// - /// Target person that the face is added to. - /// - /// - /// User-specified data about the target face to add for any purpose. The - /// maximum length is 1KB. - /// - /// - /// A face rectangle to specify the target face to be added to a person in the - /// format of "targetFace=left,top,width,height". E.g. - /// "targetFace=10,10,100,100". If there is more than one face in the image, - /// targetFace is required to specify which face to add. No targetFace means - /// there is only one face detected in the entire image. - /// - /// - /// The cancellation token. - /// - public static async Task AddFaceAsync(this IPerson operations, string personGroupId, string personId, string userData = default(string), string targetFace = default(string), CancellationToken cancellationToken = default(CancellationToken)) - { - (await operations.AddFaceWithHttpMessagesAsync(personGroupId, personId, userData, targetFace, null, cancellationToken).ConfigureAwait(false)).Dispose(); - } - - /// - /// Add a representative face to a person for identification. The input face is - /// specified as an image with a targetFace rectangle. - /// - /// - /// The operations group for this extension method. - /// - /// - /// Specifying the person group containing the target person. - /// - /// - /// Target person that the face is added to. - /// - /// - /// User-specified data about the target face to add for any purpose. The - /// maximum length is 1KB. - /// - /// - /// A face rectangle to specify the target face to be added to a person, in the - /// format of "targetFace=left,top,width,height". E.g. - /// "targetFace=10,10,100,100". If there is more than one face in the image, - /// targetFace is required to specify which face to add. No targetFace means - /// there is only one face detected in the entire image. - /// - public static void AddFaceFromStream(this IPerson operations, string personGroupId, string personId, string userData = default(string), string targetFace = default(string)) - { - operations.AddFaceFromStreamAsync(personGroupId, personId, userData, targetFace).GetAwaiter().GetResult(); - } - - /// - /// Add a representative face to a person for identification. The input face is - /// specified as an image with a targetFace rectangle. - /// - /// - /// The operations group for this extension method. - /// - /// - /// Specifying the person group containing the target person. - /// - /// - /// Target person that the face is added to. - /// - /// - /// User-specified data about the target face to add for any purpose. The - /// maximum length is 1KB. - /// - /// - /// A face rectangle to specify the target face to be added to a person, in the - /// format of "targetFace=left,top,width,height". E.g. - /// "targetFace=10,10,100,100". If there is more than one face in the image, - /// targetFace is required to specify which face to add. No targetFace means - /// there is only one face detected in the entire image. - /// - /// - /// The cancellation token. - /// - public static async Task AddFaceFromStreamAsync(this IPerson operations, string personGroupId, string personId, string userData = default(string), string targetFace = default(string), CancellationToken cancellationToken = default(CancellationToken)) - { - (await operations.AddFaceFromStreamWithHttpMessagesAsync(personGroupId, personId, userData, targetFace, null, cancellationToken).ConfigureAwait(false)).Dispose(); - } - - } -} diff --git a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/PersonGroup.cs b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/PersonGroup.cs deleted file mode 100644 index 420f59d732eb..000000000000 --- a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/PersonGroup.cs +++ /dev/null @@ -1,1189 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Vision.Face -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Vision; - using Microsoft.Rest; - using Models; - using Newtonsoft.Json; - using System.Collections; - using System.Collections.Generic; - using System.IO; - using System.Net; - using System.Net.Http; - using System.Threading; - using System.Threading.Tasks; - - /// - /// PersonGroup operations. - /// - public partial class PersonGroup : IServiceOperations, IPersonGroup - { - /// - /// Initializes a new instance of the PersonGroup class. - /// - /// - /// Reference to the service client. - /// - /// - /// Thrown when a required parameter is null - /// - public PersonGroup(FaceAPI client) - { - if (client == null) - { - throw new System.ArgumentNullException("client"); - } - Client = client; - } - - /// - /// Gets a reference to the FaceAPI - /// - public FaceAPI Client { get; private set; } - - /// - /// Create a new person group with specified personGroupId, name and - /// user-provided userData. - /// - /// - /// User-provided personGroupId as a string. - /// - /// - /// Name of the face list, maximum length is 128. - /// - /// - /// Optional user defined data for the face list. Length should not exceed - /// 16KB. - /// - /// - /// Headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// A response object containing the response body and response headers. - /// - public async Task CreateWithHttpMessagesAsync(string personGroupId, string name = default(string), string userData = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) - { - if (Client.AzureRegion1 == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); - } - if (personGroupId == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "personGroupId"); - } - if (personGroupId != null) - { - if (personGroupId.Length > 64) - { - throw new ValidationException(ValidationRules.MaxLength, "personGroupId", 64); - } - if (!System.Text.RegularExpressions.Regex.IsMatch(personGroupId, "^[a-z0-9-_]+$")) - { - throw new ValidationException(ValidationRules.Pattern, "personGroupId", "^[a-z0-9-_]+$"); - } - } - if (Client.SubscriptionKey == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); - } - if (name != null) - { - if (name.Length > 128) - { - throw new ValidationException(ValidationRules.MaxLength, "name", 128); - } - } - if (userData != null) - { - if (userData.Length > 16384) - { - throw new ValidationException(ValidationRules.MaxLength, "userData", 16384); - } - } - CreatePersonGroupRequest body = new CreatePersonGroupRequest(); - if (name != null || userData != null) - { - body.Name = name; - body.UserData = userData; - } - // Tracing - bool _shouldTrace = ServiceClientTracing.IsEnabled; - string _invocationId = null; - if (_shouldTrace) - { - _invocationId = ServiceClientTracing.NextInvocationId.ToString(); - Dictionary tracingParameters = new Dictionary(); - tracingParameters.Add("personGroupId", personGroupId); - tracingParameters.Add("body", body); - tracingParameters.Add("cancellationToken", cancellationToken); - ServiceClientTracing.Enter(_invocationId, this, "Create", tracingParameters); - } - // Construct URL - var _baseUrl = Client.BaseUri; - var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "persongroups/{personGroupId}"; - _url = _url.Replace("{azureRegion}", Client.AzureRegion1); - _url = _url.Replace("{personGroupId}", System.Uri.EscapeDataString(personGroupId)); - // Create HTTP transport objects - var _httpRequest = new HttpRequestMessage(); - HttpResponseMessage _httpResponse = null; - _httpRequest.Method = new HttpMethod("PUT"); - _httpRequest.RequestUri = new System.Uri(_url); - // Set Headers - if (Client.SubscriptionKey != null) - { - if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) - { - _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); - } - _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); - } - - - if (customHeaders != null) - { - foreach(var _header in customHeaders) - { - if (_httpRequest.Headers.Contains(_header.Key)) - { - _httpRequest.Headers.Remove(_header.Key); - } - _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); - } - } - - // Serialize Request - string _requestContent = null; - if(body != null) - { - _requestContent = Rest.Serialization.SafeJsonConvert.SerializeObject(body, Client.SerializationSettings); - _httpRequest.Content = new StringContent(_requestContent, System.Text.Encoding.UTF8); - _httpRequest.Content.Headers.ContentType =System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json; charset=utf-8"); - } - // Send Request - if (_shouldTrace) - { - ServiceClientTracing.SendRequest(_invocationId, _httpRequest); - } - cancellationToken.ThrowIfCancellationRequested(); - _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); - if (_shouldTrace) - { - ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); - } - HttpStatusCode _statusCode = _httpResponse.StatusCode; - cancellationToken.ThrowIfCancellationRequested(); - string _responseContent = null; - if ((int)_statusCode != 200) - { - var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); - try - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - if (_errorBody != null) - { - ex.Body = _errorBody; - } - } - catch (JsonException) - { - // Ignore the exception - } - ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); - ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); - if (_shouldTrace) - { - ServiceClientTracing.Error(_invocationId, ex); - } - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw ex; - } - // Create Result - var _result = new HttpOperationResponse(); - _result.Request = _httpRequest; - _result.Response = _httpResponse; - if (_shouldTrace) - { - ServiceClientTracing.Exit(_invocationId, _result); - } - return _result; - } - - /// - /// Delete an existing person group. Persisted face images of all people in the - /// person group will also be deleted. - /// - /// - /// The personGroupId of the person group to be deleted. - /// - /// - /// Headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// A response object containing the response body and response headers. - /// - public async Task DeleteWithHttpMessagesAsync(string personGroupId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) - { - if (Client.AzureRegion1 == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); - } - if (personGroupId == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "personGroupId"); - } - if (Client.SubscriptionKey == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); - } - // Tracing - bool _shouldTrace = ServiceClientTracing.IsEnabled; - string _invocationId = null; - if (_shouldTrace) - { - _invocationId = ServiceClientTracing.NextInvocationId.ToString(); - Dictionary tracingParameters = new Dictionary(); - tracingParameters.Add("personGroupId", personGroupId); - tracingParameters.Add("cancellationToken", cancellationToken); - ServiceClientTracing.Enter(_invocationId, this, "Delete", tracingParameters); - } - // Construct URL - var _baseUrl = Client.BaseUri; - var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "persongroups/{personGroupId}"; - _url = _url.Replace("{azureRegion}", Client.AzureRegion1); - _url = _url.Replace("{personGroupId}", System.Uri.EscapeDataString(personGroupId)); - // Create HTTP transport objects - var _httpRequest = new HttpRequestMessage(); - HttpResponseMessage _httpResponse = null; - _httpRequest.Method = new HttpMethod("DELETE"); - _httpRequest.RequestUri = new System.Uri(_url); - // Set Headers - if (Client.SubscriptionKey != null) - { - if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) - { - _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); - } - _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); - } - - - if (customHeaders != null) - { - foreach(var _header in customHeaders) - { - if (_httpRequest.Headers.Contains(_header.Key)) - { - _httpRequest.Headers.Remove(_header.Key); - } - _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); - } - } - - // Serialize Request - string _requestContent = null; - // Send Request - if (_shouldTrace) - { - ServiceClientTracing.SendRequest(_invocationId, _httpRequest); - } - cancellationToken.ThrowIfCancellationRequested(); - _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); - if (_shouldTrace) - { - ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); - } - HttpStatusCode _statusCode = _httpResponse.StatusCode; - cancellationToken.ThrowIfCancellationRequested(); - string _responseContent = null; - if ((int)_statusCode != 200) - { - var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); - try - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - if (_errorBody != null) - { - ex.Body = _errorBody; - } - } - catch (JsonException) - { - // Ignore the exception - } - ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); - ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); - if (_shouldTrace) - { - ServiceClientTracing.Error(_invocationId, ex); - } - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw ex; - } - // Create Result - var _result = new HttpOperationResponse(); - _result.Request = _httpRequest; - _result.Response = _httpResponse; - if (_shouldTrace) - { - ServiceClientTracing.Exit(_invocationId, _result); - } - return _result; - } - - /// - /// Retrieve the information of a person group, including its name and - /// userData. - /// - /// - /// personGroupId of the target person group. - /// - /// - /// Headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when unable to deserialize the response - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// A response object containing the response body and response headers. - /// - public async Task> GetWithHttpMessagesAsync(string personGroupId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) - { - if (Client.AzureRegion1 == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); - } - if (personGroupId == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "personGroupId"); - } - if (Client.SubscriptionKey == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); - } - // Tracing - bool _shouldTrace = ServiceClientTracing.IsEnabled; - string _invocationId = null; - if (_shouldTrace) - { - _invocationId = ServiceClientTracing.NextInvocationId.ToString(); - Dictionary tracingParameters = new Dictionary(); - tracingParameters.Add("personGroupId", personGroupId); - tracingParameters.Add("cancellationToken", cancellationToken); - ServiceClientTracing.Enter(_invocationId, this, "Get", tracingParameters); - } - // Construct URL - var _baseUrl = Client.BaseUri; - var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "persongroups/{personGroupId}"; - _url = _url.Replace("{azureRegion}", Client.AzureRegion1); - _url = _url.Replace("{personGroupId}", System.Uri.EscapeDataString(personGroupId)); - // Create HTTP transport objects - var _httpRequest = new HttpRequestMessage(); - HttpResponseMessage _httpResponse = null; - _httpRequest.Method = new HttpMethod("GET"); - _httpRequest.RequestUri = new System.Uri(_url); - // Set Headers - if (Client.SubscriptionKey != null) - { - if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) - { - _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); - } - _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); - } - - - if (customHeaders != null) - { - foreach(var _header in customHeaders) - { - if (_httpRequest.Headers.Contains(_header.Key)) - { - _httpRequest.Headers.Remove(_header.Key); - } - _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); - } - } - - // Serialize Request - string _requestContent = null; - // Send Request - if (_shouldTrace) - { - ServiceClientTracing.SendRequest(_invocationId, _httpRequest); - } - cancellationToken.ThrowIfCancellationRequested(); - _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); - if (_shouldTrace) - { - ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); - } - HttpStatusCode _statusCode = _httpResponse.StatusCode; - cancellationToken.ThrowIfCancellationRequested(); - string _responseContent = null; - if ((int)_statusCode != 200) - { - var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); - try - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - if (_errorBody != null) - { - ex.Body = _errorBody; - } - } - catch (JsonException) - { - // Ignore the exception - } - ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); - ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); - if (_shouldTrace) - { - ServiceClientTracing.Error(_invocationId, ex); - } - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw ex; - } - // Create Result - var _result = new HttpOperationResponse(); - _result.Request = _httpRequest; - _result.Response = _httpResponse; - // Deserialize Response - if ((int)_statusCode == 200) - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - try - { - _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - } - catch (JsonException ex) - { - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); - } - } - if (_shouldTrace) - { - ServiceClientTracing.Exit(_invocationId, _result); - } - return _result; - } - - /// - /// Update an existing person group's display name and userData. The properties - /// which does not appear in request body will not be updated. - /// - /// - /// personGroupId of the person group to be updated. - /// - /// - /// Name of the face list, maximum length is 128. - /// - /// - /// Optional user defined data for the face list. Length should not exceed - /// 16KB. - /// - /// - /// Headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// A response object containing the response body and response headers. - /// - public async Task UpdateWithHttpMessagesAsync(string personGroupId, string name = default(string), string userData = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) - { - if (Client.AzureRegion1 == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); - } - if (personGroupId == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "personGroupId"); - } - if (Client.SubscriptionKey == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); - } - if (name != null) - { - if (name.Length > 128) - { - throw new ValidationException(ValidationRules.MaxLength, "name", 128); - } - } - if (userData != null) - { - if (userData.Length > 16384) - { - throw new ValidationException(ValidationRules.MaxLength, "userData", 16384); - } - } - CreatePersonGroupRequest body = new CreatePersonGroupRequest(); - if (name != null || userData != null) - { - body.Name = name; - body.UserData = userData; - } - // Tracing - bool _shouldTrace = ServiceClientTracing.IsEnabled; - string _invocationId = null; - if (_shouldTrace) - { - _invocationId = ServiceClientTracing.NextInvocationId.ToString(); - Dictionary tracingParameters = new Dictionary(); - tracingParameters.Add("personGroupId", personGroupId); - tracingParameters.Add("body", body); - tracingParameters.Add("cancellationToken", cancellationToken); - ServiceClientTracing.Enter(_invocationId, this, "Update", tracingParameters); - } - // Construct URL - var _baseUrl = Client.BaseUri; - var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "persongroups/{personGroupId}"; - _url = _url.Replace("{azureRegion}", Client.AzureRegion1); - _url = _url.Replace("{personGroupId}", System.Uri.EscapeDataString(personGroupId)); - // Create HTTP transport objects - var _httpRequest = new HttpRequestMessage(); - HttpResponseMessage _httpResponse = null; - _httpRequest.Method = new HttpMethod("PATCH"); - _httpRequest.RequestUri = new System.Uri(_url); - // Set Headers - if (Client.SubscriptionKey != null) - { - if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) - { - _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); - } - _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); - } - - - if (customHeaders != null) - { - foreach(var _header in customHeaders) - { - if (_httpRequest.Headers.Contains(_header.Key)) - { - _httpRequest.Headers.Remove(_header.Key); - } - _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); - } - } - - // Serialize Request - string _requestContent = null; - if(body != null) - { - _requestContent = Rest.Serialization.SafeJsonConvert.SerializeObject(body, Client.SerializationSettings); - _httpRequest.Content = new StringContent(_requestContent, System.Text.Encoding.UTF8); - _httpRequest.Content.Headers.ContentType =System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json; charset=utf-8"); - } - // Send Request - if (_shouldTrace) - { - ServiceClientTracing.SendRequest(_invocationId, _httpRequest); - } - cancellationToken.ThrowIfCancellationRequested(); - _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); - if (_shouldTrace) - { - ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); - } - HttpStatusCode _statusCode = _httpResponse.StatusCode; - cancellationToken.ThrowIfCancellationRequested(); - string _responseContent = null; - if ((int)_statusCode != 200) - { - var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); - try - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - if (_errorBody != null) - { - ex.Body = _errorBody; - } - } - catch (JsonException) - { - // Ignore the exception - } - ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); - ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); - if (_shouldTrace) - { - ServiceClientTracing.Error(_invocationId, ex); - } - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw ex; - } - // Create Result - var _result = new HttpOperationResponse(); - _result.Request = _httpRequest; - _result.Response = _httpResponse; - if (_shouldTrace) - { - ServiceClientTracing.Exit(_invocationId, _result); - } - return _result; - } - - /// - /// Retrieve the training status of a person group (completed or ongoing). - /// - /// - /// personGroupId of target person group. - /// - /// - /// Headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when unable to deserialize the response - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// A response object containing the response body and response headers. - /// - public async Task> GetTrainingStatusWithHttpMessagesAsync(string personGroupId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) - { - if (Client.AzureRegion1 == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); - } - if (personGroupId == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "personGroupId"); - } - if (Client.SubscriptionKey == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); - } - // Tracing - bool _shouldTrace = ServiceClientTracing.IsEnabled; - string _invocationId = null; - if (_shouldTrace) - { - _invocationId = ServiceClientTracing.NextInvocationId.ToString(); - Dictionary tracingParameters = new Dictionary(); - tracingParameters.Add("personGroupId", personGroupId); - tracingParameters.Add("cancellationToken", cancellationToken); - ServiceClientTracing.Enter(_invocationId, this, "GetTrainingStatus", tracingParameters); - } - // Construct URL - var _baseUrl = Client.BaseUri; - var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "persongroups/{personGroupId}/training"; - _url = _url.Replace("{azureRegion}", Client.AzureRegion1); - _url = _url.Replace("{personGroupId}", System.Uri.EscapeDataString(personGroupId)); - // Create HTTP transport objects - var _httpRequest = new HttpRequestMessage(); - HttpResponseMessage _httpResponse = null; - _httpRequest.Method = new HttpMethod("GET"); - _httpRequest.RequestUri = new System.Uri(_url); - // Set Headers - if (Client.SubscriptionKey != null) - { - if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) - { - _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); - } - _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); - } - - - if (customHeaders != null) - { - foreach(var _header in customHeaders) - { - if (_httpRequest.Headers.Contains(_header.Key)) - { - _httpRequest.Headers.Remove(_header.Key); - } - _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); - } - } - - // Serialize Request - string _requestContent = null; - // Send Request - if (_shouldTrace) - { - ServiceClientTracing.SendRequest(_invocationId, _httpRequest); - } - cancellationToken.ThrowIfCancellationRequested(); - _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); - if (_shouldTrace) - { - ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); - } - HttpStatusCode _statusCode = _httpResponse.StatusCode; - cancellationToken.ThrowIfCancellationRequested(); - string _responseContent = null; - if ((int)_statusCode != 200) - { - var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); - try - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - if (_errorBody != null) - { - ex.Body = _errorBody; - } - } - catch (JsonException) - { - // Ignore the exception - } - ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); - ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); - if (_shouldTrace) - { - ServiceClientTracing.Error(_invocationId, ex); - } - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw ex; - } - // Create Result - var _result = new HttpOperationResponse(); - _result.Request = _httpRequest; - _result.Response = _httpResponse; - // Deserialize Response - if ((int)_statusCode == 200) - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - try - { - _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - } - catch (JsonException ex) - { - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); - } - } - if (_shouldTrace) - { - ServiceClientTracing.Exit(_invocationId, _result); - } - return _result; - } - - /// - /// List person groups and their information. - /// - /// - /// List person groups from the least personGroupId greater than the "start". - /// - /// - /// The number of person groups to list. - /// - /// - /// Headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when unable to deserialize the response - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// A response object containing the response body and response headers. - /// - public async Task>> ListWithHttpMessagesAsync(string start = default(string), int? top = 1000, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) - { - if (Client.AzureRegion1 == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); - } - if (start != null) - { - if (start.Length > 64) - { - throw new ValidationException(ValidationRules.MaxLength, "start", 64); - } - } - if (top > 1000) - { - throw new ValidationException(ValidationRules.InclusiveMaximum, "top", 1000); - } - if (top < 1) - { - throw new ValidationException(ValidationRules.InclusiveMinimum, "top", 1); - } - if (Client.SubscriptionKey == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); - } - // Tracing - bool _shouldTrace = ServiceClientTracing.IsEnabled; - string _invocationId = null; - if (_shouldTrace) - { - _invocationId = ServiceClientTracing.NextInvocationId.ToString(); - Dictionary tracingParameters = new Dictionary(); - tracingParameters.Add("start", start); - tracingParameters.Add("top", top); - tracingParameters.Add("cancellationToken", cancellationToken); - ServiceClientTracing.Enter(_invocationId, this, "List", tracingParameters); - } - // Construct URL - var _baseUrl = Client.BaseUri; - var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "persongroups"; - _url = _url.Replace("{azureRegion}", Client.AzureRegion1); - List _queryParameters = new List(); - if (start != null) - { - _queryParameters.Add(string.Format("start={0}", System.Uri.EscapeDataString(start))); - } - if (top != null) - { - _queryParameters.Add(string.Format("top={0}", System.Uri.EscapeDataString(Rest.Serialization.SafeJsonConvert.SerializeObject(top, Client.SerializationSettings).Trim('"')))); - } - if (_queryParameters.Count > 0) - { - _url += "?" + string.Join("&", _queryParameters); - } - // Create HTTP transport objects - var _httpRequest = new HttpRequestMessage(); - HttpResponseMessage _httpResponse = null; - _httpRequest.Method = new HttpMethod("GET"); - _httpRequest.RequestUri = new System.Uri(_url); - // Set Headers - if (Client.SubscriptionKey != null) - { - if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) - { - _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); - } - _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); - } - - - if (customHeaders != null) - { - foreach(var _header in customHeaders) - { - if (_httpRequest.Headers.Contains(_header.Key)) - { - _httpRequest.Headers.Remove(_header.Key); - } - _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); - } - } - - // Serialize Request - string _requestContent = null; - // Send Request - if (_shouldTrace) - { - ServiceClientTracing.SendRequest(_invocationId, _httpRequest); - } - cancellationToken.ThrowIfCancellationRequested(); - _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); - if (_shouldTrace) - { - ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); - } - HttpStatusCode _statusCode = _httpResponse.StatusCode; - cancellationToken.ThrowIfCancellationRequested(); - string _responseContent = null; - if ((int)_statusCode != 200) - { - var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); - try - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - if (_errorBody != null) - { - ex.Body = _errorBody; - } - } - catch (JsonException) - { - // Ignore the exception - } - ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); - ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); - if (_shouldTrace) - { - ServiceClientTracing.Error(_invocationId, ex); - } - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw ex; - } - // Create Result - var _result = new HttpOperationResponse>(); - _result.Request = _httpRequest; - _result.Response = _httpResponse; - // Deserialize Response - if ((int)_statusCode == 200) - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - try - { - _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject>(_responseContent, Client.DeserializationSettings); - } - catch (JsonException ex) - { - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); - } - } - if (_shouldTrace) - { - ServiceClientTracing.Exit(_invocationId, _result); - } - return _result; - } - - /// - /// Queue a person group training task, the training task may not be started - /// immediately. - /// - /// - /// Target person group to be trained. - /// - /// - /// Headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// A response object containing the response body and response headers. - /// - public async Task TrainWithHttpMessagesAsync(string personGroupId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) - { - if (Client.AzureRegion1 == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); - } - if (personGroupId == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "personGroupId"); - } - if (Client.SubscriptionKey == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); - } - // Tracing - bool _shouldTrace = ServiceClientTracing.IsEnabled; - string _invocationId = null; - if (_shouldTrace) - { - _invocationId = ServiceClientTracing.NextInvocationId.ToString(); - Dictionary tracingParameters = new Dictionary(); - tracingParameters.Add("personGroupId", personGroupId); - tracingParameters.Add("cancellationToken", cancellationToken); - ServiceClientTracing.Enter(_invocationId, this, "Train", tracingParameters); - } - // Construct URL - var _baseUrl = Client.BaseUri; - var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "persongroups/{personGroupId}/train"; - _url = _url.Replace("{azureRegion}", Client.AzureRegion1); - _url = _url.Replace("{personGroupId}", System.Uri.EscapeDataString(personGroupId)); - // Create HTTP transport objects - var _httpRequest = new HttpRequestMessage(); - HttpResponseMessage _httpResponse = null; - _httpRequest.Method = new HttpMethod("POST"); - _httpRequest.RequestUri = new System.Uri(_url); - // Set Headers - if (Client.SubscriptionKey != null) - { - if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) - { - _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); - } - _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); - } - - - if (customHeaders != null) - { - foreach(var _header in customHeaders) - { - if (_httpRequest.Headers.Contains(_header.Key)) - { - _httpRequest.Headers.Remove(_header.Key); - } - _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); - } - } - - // Serialize Request - string _requestContent = null; - // Send Request - if (_shouldTrace) - { - ServiceClientTracing.SendRequest(_invocationId, _httpRequest); - } - cancellationToken.ThrowIfCancellationRequested(); - _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); - if (_shouldTrace) - { - ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); - } - HttpStatusCode _statusCode = _httpResponse.StatusCode; - cancellationToken.ThrowIfCancellationRequested(); - string _responseContent = null; - if ((int)_statusCode != 202) - { - var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); - try - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - if (_errorBody != null) - { - ex.Body = _errorBody; - } - } - catch (JsonException) - { - // Ignore the exception - } - ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); - ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); - if (_shouldTrace) - { - ServiceClientTracing.Error(_invocationId, ex); - } - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw ex; - } - // Create Result - var _result = new HttpOperationResponse(); - _result.Request = _httpRequest; - _result.Response = _httpResponse; - if (_shouldTrace) - { - ServiceClientTracing.Exit(_invocationId, _result); - } - return _result; - } - - } -} diff --git a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/PersonGroupExtensions.cs b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/PersonGroupExtensions.cs deleted file mode 100644 index d0545cdcbe74..000000000000 --- a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Generated/Face/PersonGroupExtensions.cs +++ /dev/null @@ -1,291 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Vision.Face -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Vision; - using Models; - using System.Collections; - using System.Collections.Generic; - using System.Threading; - using System.Threading.Tasks; - - /// - /// Extension methods for PersonGroup. - /// - public static partial class PersonGroupExtensions - { - /// - /// Create a new person group with specified personGroupId, name and - /// user-provided userData. - /// - /// - /// The operations group for this extension method. - /// - /// - /// User-provided personGroupId as a string. - /// - /// - /// Name of the face list, maximum length is 128. - /// - /// - /// Optional user defined data for the face list. Length should not exceed - /// 16KB. - /// - public static void Create(this IPersonGroup operations, string personGroupId, string name = default(string), string userData = default(string)) - { - operations.CreateAsync(personGroupId, name, userData).GetAwaiter().GetResult(); - } - - /// - /// Create a new person group with specified personGroupId, name and - /// user-provided userData. - /// - /// - /// The operations group for this extension method. - /// - /// - /// User-provided personGroupId as a string. - /// - /// - /// Name of the face list, maximum length is 128. - /// - /// - /// Optional user defined data for the face list. Length should not exceed - /// 16KB. - /// - /// - /// The cancellation token. - /// - public static async Task CreateAsync(this IPersonGroup operations, string personGroupId, string name = default(string), string userData = default(string), CancellationToken cancellationToken = default(CancellationToken)) - { - (await operations.CreateWithHttpMessagesAsync(personGroupId, name, userData, null, cancellationToken).ConfigureAwait(false)).Dispose(); - } - - /// - /// Delete an existing person group. Persisted face images of all people in the - /// person group will also be deleted. - /// - /// - /// The operations group for this extension method. - /// - /// - /// The personGroupId of the person group to be deleted. - /// - public static void Delete(this IPersonGroup operations, string personGroupId) - { - operations.DeleteAsync(personGroupId).GetAwaiter().GetResult(); - } - - /// - /// Delete an existing person group. Persisted face images of all people in the - /// person group will also be deleted. - /// - /// - /// The operations group for this extension method. - /// - /// - /// The personGroupId of the person group to be deleted. - /// - /// - /// The cancellation token. - /// - public static async Task DeleteAsync(this IPersonGroup operations, string personGroupId, CancellationToken cancellationToken = default(CancellationToken)) - { - (await operations.DeleteWithHttpMessagesAsync(personGroupId, null, cancellationToken).ConfigureAwait(false)).Dispose(); - } - - /// - /// Retrieve the information of a person group, including its name and - /// userData. - /// - /// - /// The operations group for this extension method. - /// - /// - /// personGroupId of the target person group. - /// - public static PersonGroupResult Get(this IPersonGroup operations, string personGroupId) - { - return operations.GetAsync(personGroupId).GetAwaiter().GetResult(); - } - - /// - /// Retrieve the information of a person group, including its name and - /// userData. - /// - /// - /// The operations group for this extension method. - /// - /// - /// personGroupId of the target person group. - /// - /// - /// The cancellation token. - /// - public static async Task GetAsync(this IPersonGroup operations, string personGroupId, CancellationToken cancellationToken = default(CancellationToken)) - { - using (var _result = await operations.GetWithHttpMessagesAsync(personGroupId, null, cancellationToken).ConfigureAwait(false)) - { - return _result.Body; - } - } - - /// - /// Update an existing person group's display name and userData. The properties - /// which does not appear in request body will not be updated. - /// - /// - /// The operations group for this extension method. - /// - /// - /// personGroupId of the person group to be updated. - /// - /// - /// Name of the face list, maximum length is 128. - /// - /// - /// Optional user defined data for the face list. Length should not exceed - /// 16KB. - /// - public static void Update(this IPersonGroup operations, string personGroupId, string name = default(string), string userData = default(string)) - { - operations.UpdateAsync(personGroupId, name, userData).GetAwaiter().GetResult(); - } - - /// - /// Update an existing person group's display name and userData. The properties - /// which does not appear in request body will not be updated. - /// - /// - /// The operations group for this extension method. - /// - /// - /// personGroupId of the person group to be updated. - /// - /// - /// Name of the face list, maximum length is 128. - /// - /// - /// Optional user defined data for the face list. Length should not exceed - /// 16KB. - /// - /// - /// The cancellation token. - /// - public static async Task UpdateAsync(this IPersonGroup operations, string personGroupId, string name = default(string), string userData = default(string), CancellationToken cancellationToken = default(CancellationToken)) - { - (await operations.UpdateWithHttpMessagesAsync(personGroupId, name, userData, null, cancellationToken).ConfigureAwait(false)).Dispose(); - } - - /// - /// Retrieve the training status of a person group (completed or ongoing). - /// - /// - /// The operations group for this extension method. - /// - /// - /// personGroupId of target person group. - /// - public static TrainingStatus GetTrainingStatus(this IPersonGroup operations, string personGroupId) - { - return operations.GetTrainingStatusAsync(personGroupId).GetAwaiter().GetResult(); - } - - /// - /// Retrieve the training status of a person group (completed or ongoing). - /// - /// - /// The operations group for this extension method. - /// - /// - /// personGroupId of target person group. - /// - /// - /// The cancellation token. - /// - public static async Task GetTrainingStatusAsync(this IPersonGroup operations, string personGroupId, CancellationToken cancellationToken = default(CancellationToken)) - { - using (var _result = await operations.GetTrainingStatusWithHttpMessagesAsync(personGroupId, null, cancellationToken).ConfigureAwait(false)) - { - return _result.Body; - } - } - - /// - /// List person groups and their information. - /// - /// - /// The operations group for this extension method. - /// - /// - /// List person groups from the least personGroupId greater than the "start". - /// - /// - /// The number of person groups to list. - /// - public static IList List(this IPersonGroup operations, string start = default(string), int? top = 1000) - { - return operations.ListAsync(start, top).GetAwaiter().GetResult(); - } - - /// - /// List person groups and their information. - /// - /// - /// The operations group for this extension method. - /// - /// - /// List person groups from the least personGroupId greater than the "start". - /// - /// - /// The number of person groups to list. - /// - /// - /// The cancellation token. - /// - public static async Task> ListAsync(this IPersonGroup operations, string start = default(string), int? top = 1000, CancellationToken cancellationToken = default(CancellationToken)) - { - using (var _result = await operations.ListWithHttpMessagesAsync(start, top, null, cancellationToken).ConfigureAwait(false)) - { - return _result.Body; - } - } - - /// - /// Queue a person group training task, the training task may not be started - /// immediately. - /// - /// - /// The operations group for this extension method. - /// - /// - /// Target person group to be trained. - /// - public static void Train(this IPersonGroup operations, string personGroupId) - { - operations.TrainAsync(personGroupId).GetAwaiter().GetResult(); - } - - /// - /// Queue a person group training task, the training task may not be started - /// immediately. - /// - /// - /// The operations group for this extension method. - /// - /// - /// Target person group to be trained. - /// - /// - /// The cancellation token. - /// - public static async Task TrainAsync(this IPersonGroup operations, string personGroupId, CancellationToken cancellationToken = default(CancellationToken)) - { - (await operations.TrainWithHttpMessagesAsync(personGroupId, null, cancellationToken).ConfigureAwait(false)).Dispose(); - } - - } -} diff --git a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Microsoft.CognitiveServices.Vision.csproj b/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Microsoft.CognitiveServices.Vision.csproj deleted file mode 100644 index eeb20f753e7a..000000000000 --- a/src/SDKs/CognitiveServices/data-plane/Microsoft.CognitiveServices.Vision/Microsoft.CognitiveServices.Vision.csproj +++ /dev/null @@ -1,33 +0,0 @@ - - - - Microsoft.CognitiveServices.Vision - This client library provides access to the Microsoft Cognitive Services Vision APIs. - 1.0.0 - $(DefineConstants);CODESIGN - true - Microsoft.CognitiveServices.Vision - Microsoft Cognitive Services;Cognitive Services;Cognitive Services SDK;Face API;REST HTTP client;Face SDK;netcore451511 - bin\$(Configuration)\$(TargetFramework)\$(AssemblyName).xml - - - - net452;netstandard1.4 - True - For detailed release notes, see: - - - - $(DefineConstants);FullNetFx - - - - - $(DefineConstants);netstandard14;PORTABLE - - - - - - - \ No newline at end of file From b14e4b96293ca376cbba9d1b61f7d3f056fe4dee Mon Sep 17 00:00:00 2001 From: "David Li (WINDOWS)" Date: Tue, 29 Aug 2017 19:51:28 -0700 Subject: [PATCH 06/21] Removing key. --- .../FaceSDK.Tests.FaceDetectionTests/FaceDetection.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision.Tests/SessionRecords/FaceSDK.Tests.FaceDetectionTests/FaceDetection.json b/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision.Tests/SessionRecords/FaceSDK.Tests.FaceDetectionTests/FaceDetection.json index ef848210e9d8..f9f22ecdced2 100644 --- a/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision.Tests/SessionRecords/FaceSDK.Tests.FaceDetectionTests/FaceDetection.json +++ b/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision.Tests/SessionRecords/FaceSDK.Tests.FaceDetectionTests/FaceDetection.json @@ -13,7 +13,7 @@ "365482" ], "Ocp-Apim-Subscription-Key": [ - "51c0ba46b87840578cca7f045b34b5b7" + "" ], "User-Agent": [ "FxVersion/4.6.25211.01", From 3bd1247958259c9f36af60524b29a11344bae982 Mon Sep 17 00:00:00 2001 From: "David Li (WINDOWS)" Date: Wed, 30 Aug 2017 10:39:01 -0700 Subject: [PATCH 07/21] Hooking up Cognitive SDKs with build. --- src/SDKs/CognitiveServices/data-plane/dirs.proj | 10 ++++++++++ src/SDKs/dirs.proj | 1 + 2 files changed, 11 insertions(+) create mode 100644 src/SDKs/CognitiveServices/data-plane/dirs.proj diff --git a/src/SDKs/CognitiveServices/data-plane/dirs.proj b/src/SDKs/CognitiveServices/data-plane/dirs.proj new file mode 100644 index 000000000000..381efec6d0d5 --- /dev/null +++ b/src/SDKs/CognitiveServices/data-plane/dirs.proj @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/src/SDKs/dirs.proj b/src/SDKs/dirs.proj index 44a87fcb4138..5a99d4168df0 100644 --- a/src/SDKs/dirs.proj +++ b/src/SDKs/dirs.proj @@ -1,5 +1,6 @@  + From ed0da9a6fde110cb8882ae6bc74dc7cd5782bbdb Mon Sep 17 00:00:00 2001 From: "David Li (WINDOWS)" Date: Wed, 30 Aug 2017 12:09:49 -0700 Subject: [PATCH 08/21] Updating Swagger spec. --- .../BaseTests.cs | 1 - .../DetectLanguageTests.cs | 2 - .../TextAnalytics/ITextAnalyticsAPI.cs | 10 ++-- .../TextAnalytics/Models/AzureRegion.cs | 22 -------- .../Generated/TextAnalytics/Models/Dummyv2.cs | 43 --------------- .../Generated/TextAnalytics/Models/Error.cs | 52 ------------------- .../TextAnalytics/Models/InternalError.cs | 9 ---- .../TextAnalytics/TextAnalyticsAPI.cs | 29 +++-------- 8 files changed, 12 insertions(+), 156 deletions(-) delete mode 100644 src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/AzureRegion.cs delete mode 100644 src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/Dummyv2.cs delete mode 100644 src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/Error.cs diff --git a/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/BaseTests.cs b/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/BaseTests.cs index afe3a7ed3ae8..63a6aff21bff 100644 --- a/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/BaseTests.cs +++ b/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/BaseTests.cs @@ -23,7 +23,6 @@ protected ITextAnalyticsAPI GetClient(DelegatingHandler handler) { ITextAnalyticsAPI client; client = new TextAnalyticsAPI(handlers: handler); - client.AzureRegion1 = Region; client.SubscriptionKey = SubscriptionKey; return client; diff --git a/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/DetectLanguageTests.cs b/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/DetectLanguageTests.cs index 644873c08adc..f0a9b21564c7 100644 --- a/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/DetectLanguageTests.cs +++ b/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/DetectLanguageTests.cs @@ -15,8 +15,6 @@ public class DetectLanguageTests : BaseTests [Fact] public void DetectLanguage() { - var handler = new RecordedDelegatingHandler { StatusCodeToReturn = HttpStatusCode.OK }; - using (MockContext context = MockContext.Start(this.GetType().FullName)) { HttpMockServer.Initialize(this.GetType().FullName, "DetectLanguage"); diff --git a/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/ITextAnalyticsAPI.cs b/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/ITextAnalyticsAPI.cs index 1b6e1b95f20b..24cbe8bc6f7c 100644 --- a/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/ITextAnalyticsAPI.cs +++ b/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/ITextAnalyticsAPI.cs @@ -16,7 +16,7 @@ namespace Microsoft.CognitiveServices.Language.TextAnalytics /// /// The Text Analytics API is a suite of text analytics web services built - /// with Azure Machine Learning. + /// with best-in-class Microsoft machine learning algorithms. /// The API can be used to analyze unstructured text for tasks such as /// sentiment analysis, key phrase extraction and language detection. /// No training data is needed to use this API; just bring your text data. @@ -24,7 +24,7 @@ namespace Microsoft.CognitiveServices.Language.TextAnalytics /// deliver best in class predictions. /// /// Further documentation can be found in - /// https://azure.microsoft.com/en-us/documentation/articles/machine-learning-apps-text-analytics/ + /// https://docs.microsoft.com/en-us/azure/cognitive-services/text-analytics/overview /// public partial interface ITextAnalyticsAPI : System.IDisposable { @@ -43,11 +43,9 @@ public partial interface ITextAnalyticsAPI : System.IDisposable JsonSerializerSettings DeserializationSettings { get; } /// - /// Supported Azure regions for Face Detection endpoints. Possible - /// values include: 'westus', 'westeurope', 'southeastasia', 'eastus2', - /// 'westcentralus' + /// Supported Azure regions for Cognitive Services endpoints /// - string AzureRegion1 { get; set; } + string AzureRegion { get; } /// /// Subscription key in header diff --git a/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/AzureRegion.cs b/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/AzureRegion.cs deleted file mode 100644 index b49cbf519c59..000000000000 --- a/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/AzureRegion.cs +++ /dev/null @@ -1,22 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Language.TextAnalytics.Models -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Language; - using Microsoft.CognitiveServices.Language.TextAnalytics; - - /// - /// Defines values for AzureRegion. - /// - public static class AzureRegion - { - public const string Westus = "westus"; - public const string Westeurope = "westeurope"; - public const string Southeastasia = "southeastasia"; - public const string Eastus2 = "eastus2"; - public const string Westcentralus = "westcentralus"; - } -} diff --git a/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/Dummyv2.cs b/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/Dummyv2.cs deleted file mode 100644 index 0a9c5bb6eadf..000000000000 --- a/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/Dummyv2.cs +++ /dev/null @@ -1,43 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Language.TextAnalytics.Models -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Language; - using Microsoft.CognitiveServices.Language.TextAnalytics; - using Newtonsoft.Json; - using System.Linq; - - public partial class Dummyv2 - { - /// - /// Initializes a new instance of the Dummyv2 class. - /// - public Dummyv2() - { - CustomInit(); - } - - /// - /// Initializes a new instance of the Dummyv2 class. - /// - public Dummyv2(string foo = default(string)) - { - Foo = foo; - CustomInit(); - } - - /// - /// An initialization method that performs custom operations like setting defaults - /// - partial void CustomInit(); - - /// - /// - [JsonProperty(PropertyName = "foo")] - public string Foo { get; set; } - - } -} diff --git a/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/Error.cs b/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/Error.cs deleted file mode 100644 index 25d8bacc2a12..000000000000 --- a/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/Error.cs +++ /dev/null @@ -1,52 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Language.TextAnalytics.Models -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Language; - using Microsoft.CognitiveServices.Language.TextAnalytics; - using Newtonsoft.Json; - using System.Linq; - - /// - /// Error body. - /// - public partial class Error - { - /// - /// Initializes a new instance of the Error class. - /// - public Error() - { - CustomInit(); - } - - /// - /// Initializes a new instance of the Error class. - /// - public Error(string code = default(string), string message = default(string)) - { - Code = code; - Message = message; - CustomInit(); - } - - /// - /// An initialization method that performs custom operations like setting defaults - /// - partial void CustomInit(); - - /// - /// - [JsonProperty(PropertyName = "code")] - public string Code { get; set; } - - /// - /// - [JsonProperty(PropertyName = "message")] - public string Message { get; set; } - - } -} diff --git a/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/InternalError.cs b/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/InternalError.cs index 8e11caeaac60..a77afaa0ad4d 100644 --- a/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/InternalError.cs +++ b/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/InternalError.cs @@ -23,11 +23,6 @@ public InternalError() /// /// Initializes a new instance of the InternalError class. /// - /// Possible values include: - /// 'invalidParameterValue', 'invalidRequestBodyFormat', - /// 'missingRequiredHeader', 'invalidRequestContent', - /// 'missingRequiredParameter', 'serviceUnderLoad', - /// 'serverError' public InternalError(string code = default(string), string message = default(string), InternalError innerError = default(InternalError)) { Code = code; @@ -42,10 +37,6 @@ public InternalError() partial void CustomInit(); /// - /// Gets or sets possible values include: 'invalidParameterValue', - /// 'invalidRequestBodyFormat', 'missingRequiredHeader', - /// 'invalidRequestContent', 'missingRequiredParameter', - /// 'serviceUnderLoad', 'serverError' /// [JsonProperty(PropertyName = "code")] public string Code { get; set; } diff --git a/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/TextAnalyticsAPI.cs b/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/TextAnalyticsAPI.cs index 0ae097941fc3..130921c53d8e 100644 --- a/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/TextAnalyticsAPI.cs +++ b/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/TextAnalyticsAPI.cs @@ -19,7 +19,7 @@ namespace Microsoft.CognitiveServices.Language.TextAnalytics /// /// The Text Analytics API is a suite of text analytics web services built - /// with Azure Machine Learning. + /// with best-in-class Microsoft machine learning algorithms. /// The API can be used to analyze unstructured text for tasks such as /// sentiment analysis, key phrase extraction and language detection. /// No training data is needed to use this API; just bring your text data. @@ -27,7 +27,7 @@ namespace Microsoft.CognitiveServices.Language.TextAnalytics /// deliver best in class predictions. /// /// Further documentation can be found in - /// https://azure.microsoft.com/en-us/documentation/articles/machine-learning-apps-text-analytics/ + /// https://docs.microsoft.com/en-us/azure/cognitive-services/text-analytics/overview /// public partial class TextAnalyticsAPI : ServiceClient, ITextAnalyticsAPI { @@ -47,11 +47,9 @@ public partial class TextAnalyticsAPI : ServiceClient, ITextAn public JsonSerializerSettings DeserializationSettings { get; private set; } /// - /// Supported Azure regions for Face Detection endpoints. Possible values - /// include: 'westus', 'westeurope', 'southeastasia', 'eastus2', - /// 'westcentralus' + /// Supported Azure regions for Cognitive Services endpoints /// - public string AzureRegion1 { get; set; } + public string AzureRegion { get; private set; } /// /// Subscription key in header @@ -93,6 +91,7 @@ public TextAnalyticsAPI(HttpClientHandler rootHandler, params DelegatingHandler[ private void Initialize() { BaseUri = "https://{azureRegion}.api.cognitive.microsoft.com/text/analytics"; + AzureRegion = "westus"; SerializationSettings = new JsonSerializerSettings { Formatting = Newtonsoft.Json.Formatting.Indented, @@ -157,10 +156,6 @@ private void Initialize() /// public async Task> KeyPhrasesWithHttpMessagesAsync(MultiLanguageBatchInputV2 input, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) { - if (AzureRegion1 == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.AzureRegion1"); - } if (SubscriptionKey == null) { throw new ValidationException(ValidationRules.CannotBeNull, "this.SubscriptionKey"); @@ -183,7 +178,7 @@ private void Initialize() // Construct URL var _baseUrl = BaseUri; var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "v2.0/keyPhrases"; - _url = _url.Replace("{azureRegion}", AzureRegion1); + _url = _url.Replace("{azureRegion}", AzureRegion); // Create HTTP transport objects var _httpRequest = new HttpRequestMessage(); HttpResponseMessage _httpResponse = null; @@ -328,10 +323,6 @@ private void Initialize() /// public async Task> DetectLanguageWithHttpMessagesAsync(BatchInputV2 input, int? numberOfLanguagesToDetect = default(int?), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) { - if (AzureRegion1 == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.AzureRegion1"); - } if (SubscriptionKey == null) { throw new ValidationException(ValidationRules.CannotBeNull, "this.SubscriptionKey"); @@ -355,7 +346,7 @@ private void Initialize() // Construct URL var _baseUrl = BaseUri; var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "v2.0/languages"; - _url = _url.Replace("{azureRegion}", AzureRegion1); + _url = _url.Replace("{azureRegion}", AzureRegion); List _queryParameters = new List(); if (numberOfLanguagesToDetect != null) { @@ -511,10 +502,6 @@ private void Initialize() /// public async Task> SentimentWithHttpMessagesAsync(MultiLanguageBatchInputV2 input, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) { - if (AzureRegion1 == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.AzureRegion1"); - } if (SubscriptionKey == null) { throw new ValidationException(ValidationRules.CannotBeNull, "this.SubscriptionKey"); @@ -537,7 +524,7 @@ private void Initialize() // Construct URL var _baseUrl = BaseUri; var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "v2.0/sentiment"; - _url = _url.Replace("{azureRegion}", AzureRegion1); + _url = _url.Replace("{azureRegion}", AzureRegion); // Create HTTP transport objects var _httpRequest = new HttpRequestMessage(); HttpResponseMessage _httpResponse = null; From 251006fff6c87c930398ce62e57cfb35719fd477 Mon Sep 17 00:00:00 2001 From: "David Li (WINDOWS)" Date: Wed, 30 Aug 2017 18:03:48 -0700 Subject: [PATCH 09/21] Fix build --- src/SDKs/CognitiveServices/data-plane/dirs.proj | 4 ++-- src/SDKs/dirs.proj | 1 - 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/src/SDKs/CognitiveServices/data-plane/dirs.proj b/src/SDKs/CognitiveServices/data-plane/dirs.proj index 381efec6d0d5..271552ced249 100644 --- a/src/SDKs/CognitiveServices/data-plane/dirs.proj +++ b/src/SDKs/CognitiveServices/data-plane/dirs.proj @@ -4,7 +4,7 @@ - - + + \ No newline at end of file diff --git a/src/SDKs/dirs.proj b/src/SDKs/dirs.proj index 5a99d4168df0..44a87fcb4138 100644 --- a/src/SDKs/dirs.proj +++ b/src/SDKs/dirs.proj @@ -1,6 +1,5 @@  - From 3d8b3d4e4c1296b772a0a213e64af47384ec387e Mon Sep 17 00:00:00 2001 From: "David Li (WINDOWS)" Date: Wed, 30 Aug 2017 18:49:22 -0700 Subject: [PATCH 10/21] Moving files around and adding sub namespace for TA. --- .../BaseTests.cs | 5 +---- ...crosoft.CognitiveServices.Language.Tests.csproj | 3 ++- .../DetectLanguage.json | 0 .../KeyPhrases.json | 0 .../Sentiment.json | 0 .../{ => TextAnalytics}/DetectLanguageTests.cs | 14 ++++++-------- .../{ => TextAnalytics}/KeyPhrasesTests.cs | 8 +++----- .../{ => TextAnalytics}/SentimentTests.cs | 7 +++---- 8 files changed, 15 insertions(+), 22 deletions(-) rename src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/SessionRecords/{Microsoft.CognitiveServices.Language.Tests.DetectLanguageTests => Language.TextAnalytics.Tests.DetectLanguageTests}/DetectLanguage.json (100%) rename src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/SessionRecords/{Microsoft.CognitiveServices.Language.Tests.KeyPhrasesTests => Language.TextAnalytics.Tests.KeyPhrasesTests}/KeyPhrases.json (100%) rename src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/SessionRecords/{Microsoft.CognitiveServices.Language.Tests.SentimentTests => Language.TextAnalytics.Tests.SentimentTests}/Sentiment.json (100%) rename src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/{ => TextAnalytics}/DetectLanguageTests.cs (89%) rename src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/{ => TextAnalytics}/KeyPhrasesTests.cs (89%) rename src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/{ => TextAnalytics}/SentimentTests.cs (90%) diff --git a/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/BaseTests.cs b/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/BaseTests.cs index 63a6aff21bff..29d8cc1141b1 100644 --- a/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/BaseTests.cs +++ b/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/BaseTests.cs @@ -1,10 +1,7 @@ using Microsoft.CognitiveServices.Language.TextAnalytics; -using Microsoft.Rest.ClientRuntime.Azure.TestFramework; -using System; using System.Net.Http; -using System.Runtime.CompilerServices; -namespace Microsoft.CognitiveServices.Language.Tests +namespace Language.Tests { public abstract class BaseTests { diff --git a/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/Microsoft.CognitiveServices.Language.Tests.csproj b/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/Microsoft.CognitiveServices.Language.Tests.csproj index 41b56d283ec5..0100c98c660a 100644 --- a/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/Microsoft.CognitiveServices.Language.Tests.csproj +++ b/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/Microsoft.CognitiveServices.Language.Tests.csproj @@ -7,7 +7,8 @@ 1.0.0-preview - netcoreapp1.1 + netcoreapp1.1 + Language.Tests diff --git a/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/SessionRecords/Microsoft.CognitiveServices.Language.Tests.DetectLanguageTests/DetectLanguage.json b/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/SessionRecords/Language.TextAnalytics.Tests.DetectLanguageTests/DetectLanguage.json similarity index 100% rename from src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/SessionRecords/Microsoft.CognitiveServices.Language.Tests.DetectLanguageTests/DetectLanguage.json rename to src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/SessionRecords/Language.TextAnalytics.Tests.DetectLanguageTests/DetectLanguage.json diff --git a/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/SessionRecords/Microsoft.CognitiveServices.Language.Tests.KeyPhrasesTests/KeyPhrases.json b/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/SessionRecords/Language.TextAnalytics.Tests.KeyPhrasesTests/KeyPhrases.json similarity index 100% rename from src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/SessionRecords/Microsoft.CognitiveServices.Language.Tests.KeyPhrasesTests/KeyPhrases.json rename to src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/SessionRecords/Language.TextAnalytics.Tests.KeyPhrasesTests/KeyPhrases.json diff --git a/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/SessionRecords/Microsoft.CognitiveServices.Language.Tests.SentimentTests/Sentiment.json b/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/SessionRecords/Language.TextAnalytics.Tests.SentimentTests/Sentiment.json similarity index 100% rename from src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/SessionRecords/Microsoft.CognitiveServices.Language.Tests.SentimentTests/Sentiment.json rename to src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/SessionRecords/Language.TextAnalytics.Tests.SentimentTests/Sentiment.json diff --git a/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/DetectLanguageTests.cs b/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/TextAnalytics/DetectLanguageTests.cs similarity index 89% rename from src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/DetectLanguageTests.cs rename to src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/TextAnalytics/DetectLanguageTests.cs index f0a9b21564c7..22a9e2639a9d 100644 --- a/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/DetectLanguageTests.cs +++ b/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/TextAnalytics/DetectLanguageTests.cs @@ -1,14 +1,12 @@ +using Language.Tests; +using Microsoft.Azure.Test.HttpRecorder; using Microsoft.CognitiveServices.Language.TextAnalytics; -using System; +using Microsoft.CognitiveServices.Language.TextAnalytics.Models; +using Microsoft.Rest.ClientRuntime.Azure.TestFramework; using System.Collections.Generic; -using System.IO; using Xunit; -using Microsoft.Rest.ClientRuntime.Azure.TestFramework; -using Microsoft.CognitiveServices.Language.TextAnalytics.Models; -using System.Net; -using Microsoft.Azure.Test.HttpRecorder; -namespace Microsoft.CognitiveServices.Language.Tests +namespace Language.TextAnalytics.Tests { public class DetectLanguageTests : BaseTests { @@ -28,7 +26,7 @@ public void DetectLanguage() Assert.Equal("English", result.Documents[0].DetectedLanguages[0].Name); Assert.Equal("en", result.Documents[0].DetectedLanguages[0].Iso6391Name); - + Assert.True(result.Documents[0].DetectedLanguages[0].Score > 0.7); context.Stop(); } } diff --git a/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/KeyPhrasesTests.cs b/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/TextAnalytics/KeyPhrasesTests.cs similarity index 89% rename from src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/KeyPhrasesTests.cs rename to src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/TextAnalytics/KeyPhrasesTests.cs index 295f080f2c44..f903b9c4d4b1 100644 --- a/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/KeyPhrasesTests.cs +++ b/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/TextAnalytics/KeyPhrasesTests.cs @@ -1,14 +1,12 @@ -using Microsoft.Azure.Test.HttpRecorder; +using Language.Tests; +using Microsoft.Azure.Test.HttpRecorder; using Microsoft.CognitiveServices.Language.TextAnalytics; using Microsoft.CognitiveServices.Language.TextAnalytics.Models; using Microsoft.Rest.ClientRuntime.Azure.TestFramework; -using System; using System.Collections.Generic; -using System.Net; -using System.Text; using Xunit; -namespace Microsoft.CognitiveServices.Language.Tests +namespace Language.TextAnalytics.Tests { public class KeyPhrasesTests : BaseTests { diff --git a/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/SentimentTests.cs b/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/TextAnalytics/SentimentTests.cs similarity index 90% rename from src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/SentimentTests.cs rename to src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/TextAnalytics/SentimentTests.cs index ae076aad71ab..d91ba9edada7 100644 --- a/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/SentimentTests.cs +++ b/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/TextAnalytics/SentimentTests.cs @@ -1,13 +1,12 @@ -using Microsoft.Azure.Test.HttpRecorder; +using Language.Tests; +using Microsoft.Azure.Test.HttpRecorder; using Microsoft.CognitiveServices.Language.TextAnalytics; using Microsoft.CognitiveServices.Language.TextAnalytics.Models; using Microsoft.Rest.ClientRuntime.Azure.TestFramework; -using System; using System.Collections.Generic; -using System.Text; using Xunit; -namespace Microsoft.CognitiveServices.Language.Tests +namespace Language.TextAnalytics.Tests { public class SentimentTests : BaseTests { From 5c220e3f36bc89c17ad10fe87816cd372fb5a4d4 Mon Sep 17 00:00:00 2001 From: "David Li (WINDOWS)" Date: Fri, 8 Sep 2017 14:25:38 -0700 Subject: [PATCH 11/21] Moving managemenet and dataplane folders into their respective folders. --- .../BaseTests.cs | 0 ...icrosoft.CognitiveServices.Language.Tests.csproj | 0 .../DetectLanguage.json | 0 .../KeyPhrases.json | 0 .../Sentiment.json | 0 .../TextAnalytics/DetectLanguageTests.cs | 2 +- .../TextAnalytics/KeyPhrasesTests.cs | 0 .../TextAnalytics/SentimentTests.cs | 0 .../Microsoft.CognitiveServices.Language.sln | 0 .../Generated/TextAnalytics/ITextAnalyticsAPI.cs | 0 .../Generated/TextAnalytics/Models/BatchInputV2.cs | 0 .../TextAnalytics/Models/DetectedLanguageV2.cs | 0 .../Generated/TextAnalytics/Models/ErrorRecordV2.cs | 0 .../Generated/TextAnalytics/Models/ErrorResponse.cs | 0 .../TextAnalytics/Models/ErrorResponseException.cs | 0 .../Generated/TextAnalytics/Models/InputV2.cs | 0 .../Generated/TextAnalytics/Models/InternalError.cs | 0 .../Models/KeyPhraseBatchResultItemV2.cs | 0 .../TextAnalytics/Models/KeyPhraseBatchResultV2.cs | 0 .../Models/LanguageBatchResultItemV2.cs | 0 .../TextAnalytics/Models/LanguageBatchResultV2.cs | 0 .../Models/MultiLanguageBatchInputV2.cs | 0 .../TextAnalytics/Models/MultiLanguageInputV2.cs | 0 .../Models/SentimentBatchResultItemV2.cs | 0 .../TextAnalytics/Models/SentimentBatchResultV2.cs | 0 .../Generated/TextAnalytics/TextAnalyticsAPI.cs | 0 .../TextAnalytics/TextAnalyticsAPIExtensions.cs | 0 .../Microsoft.CognitiveServices.Language.csproj | 0 .../BaseTests.cs | 0 .../FaceDetectionTests.cs | 0 .../Microsoft.CognitiveServices.Vision.Tests.csproj | 0 .../FaceDetection.json | 0 .../TestImages/detection1.jpg | Bin .../Vision/Microsoft.CognitiveServices.Vision.sln | 0 .../Generated/Face/FaceAPI.cs | 0 .../Generated/Face/FaceList.cs | 0 .../Generated/Face/FaceListExtensions.cs | 0 .../Generated/Face/FaceOperations.cs | 0 .../Generated/Face/FaceOperationsExtensions.cs | 0 .../Generated/Face/IFaceAPI.cs | 0 .../Generated/Face/IFaceList.cs | 0 .../Generated/Face/IFaceOperations.cs | 0 .../Generated/Face/IPerson.cs | 0 .../Generated/Face/IPersonGroup.cs | 0 .../Generated/Face/Models/APIError.cs | 0 .../Generated/Face/Models/APIErrorException.cs | 0 .../Generated/Face/Models/AzureRegion.cs | 0 .../Generated/Face/Models/CreateFaceListRequest.cs | 0 .../Face/Models/CreatePersonGroupRequest.cs | 0 .../Generated/Face/Models/CreatePersonRequest.cs | 0 .../Generated/Face/Models/CreatePersonResult.cs | 0 .../Generated/Face/Models/DetectedFace.cs | 0 .../Generated/Face/Models/EmotionProperties.cs | 0 .../Generated/Face/Models/Error.cs | 0 .../Generated/Face/Models/FaceAttributes.cs | 0 .../Generated/Face/Models/FaceLandmarks.cs | 0 .../Generated/Face/Models/FaceRectangle.cs | 0 .../Generated/Face/Models/FacialHairProperties.cs | 0 .../Generated/Face/Models/FindSimilarRequest.cs | 0 .../Generated/Face/Models/GetFaceListResult.cs | 0 .../Generated/Face/Models/GroupRequest.cs | 0 .../Generated/Face/Models/GroupResponse.cs | 0 .../Generated/Face/Models/HeadPoseProperties.cs | 0 .../Generated/Face/Models/IdentifyRequest.cs | 0 .../Face/Models/IdentifyResultCandidate.cs | 0 .../Generated/Face/Models/IdentifyResultItem.cs | 0 .../Generated/Face/Models/ImageUrl.cs | 0 .../Generated/Face/Models/PersonFaceResult.cs | 0 .../Generated/Face/Models/PersonGroupResult.cs | 0 .../Generated/Face/Models/PersonResult.cs | 0 .../Generated/Face/Models/Position.cs | 0 .../Generated/Face/Models/SimilarFaceResult.cs | 0 .../Generated/Face/Models/TrainingStatus.cs | 0 .../Face/Models/UpdatePersonFaceDataRequest.cs | 0 .../Generated/Face/Models/VerifyRequest.cs | 0 .../Generated/Face/Models/VerifyResult.cs | 0 .../Generated/Face/Person.cs | 0 .../Generated/Face/PersonExtensions.cs | 0 .../Generated/Face/PersonGroup.cs | 0 .../Generated/Face/PersonGroupExtensions.cs | 0 .../Microsoft.CognitiveServices.Vision.csproj | 0 .../{data-plane => dataplane}/dirs.proj | 0 .../CognitiveServices.Tests.csproj | 0 .../CognitiveServicesManagementTestUtilities.cs | 0 .../Helpers/RecordedDelegatingHandler.cs | 0 .../Properties/AssemblyInfo.cs | 0 .../CognitiveServicesAccountCreateAllApisTest.json | 0 ...ervicesAccountCreateAndGetDifferentSkusTest.json | 0 .../CognitiveServicesAccountCreateErrorTest.json | 0 .../CognitiveServicesAccountCreateTest.json | 0 .../CognitiveServicesAccountDeleteTest.json | 0 .../CognitiveServicesAccountEnumerateSkusTest.json | 0 .../CognitiveServicesAccountKeysErrorTest.json | 0 ...itiveServicesAccountListByResourceGroupTest.json | 0 ...nitiveServicesAccountListBySubscriptionTest.json | 0 .../CognitiveServicesAccountListKeysTest.json | 0 ...ognitiveServicesAccountMinMaxNameLengthTest.json | 0 .../CognitiveServicesAccountRegenerateKeyTest.json | 0 ...ognitiveServicesAccountUpdateWithCreateTest.json | 0 .../CognitiveServicesCheckSkuAvailabilityTest.json | 0 .../CognitiveServicesCreateAccountErrorTest.json | 0 .../CognitiveServicesCreateAccountErrorTest2.json | 0 .../CognitiveServicesDeleteAccountErrorTest.json | 0 .../CognitiveServicesEnumerateSkusErrorTest.json | 0 .../CognitiveServicesGetAccountErrorTest.json | 0 .../CognitiveServicesUpdateAccountErrorTest.json | 0 .../Tests/CognitiveServicesAccountTests.cs | 0 .../{ => management}/CognitiveServices.sln | 0 .../Generated/AccountsOperations.cs | 0 .../Generated/AccountsOperationsExtensions.cs | 0 .../Generated/CheckSkuAvailabilityOperations.cs | 0 .../CheckSkuAvailabilityOperationsExtensions.cs | 0 .../CognitiveServicesAccountsOperations.cs | 0 ...CognitiveServicesAccountsOperationsExtensions.cs | 0 .../Generated/CognitiveServicesManagementClient.cs | 0 .../Generated/IAccountsOperations.cs | 0 .../Generated/ICheckSkuAvailabilityOperations.cs | 0 .../ICognitiveServicesAccountsOperations.cs | 0 .../Generated/ICognitiveServicesManagementClient.cs | 0 .../Generated/IOperations.cs | 0 .../Models/CheckSkuAvailabilityParameter.cs | 0 .../Generated/Models/CheckSkuAvailabilityResult.cs | 0 .../Models/CheckSkuAvailabilityResultList.cs | 0 .../Generated/Models/CognitiveServicesAccount.cs | 0 .../CognitiveServicesAccountCreateParameters.cs | 0 .../CognitiveServicesAccountEnumerateSkusResult.cs | 0 .../Models/CognitiveServicesAccountKeys.cs | 0 .../CognitiveServicesAccountUpdateParameters.cs | 0 .../Models/CognitiveServicesResourceAndSku.cs | 0 .../Generated/Models/Error.cs | 0 .../Generated/Models/ErrorBody.cs | 0 .../Generated/Models/ErrorException.cs | 0 .../Generated/Models/KeyName.cs | 0 .../Generated/Models/Kind.cs | 0 .../Generated/Models/OperationDisplayInfo.cs | 0 .../Generated/Models/OperationEntity.cs | 0 .../Generated/Models/Page.cs | 0 .../Generated/Models/ProvisioningState.cs | 0 .../Generated/Models/RegenerateKeyParameters.cs | 0 .../Generated/Models/Sku.cs | 0 .../Generated/Models/SkuName.cs | 0 .../Generated/Models/SkuTier.cs | 0 .../Generated/Operations.cs | 0 .../Generated/OperationsExtensions.cs | 0 ...rosoft.Azure.Management.CognitiveServices.csproj | 0 .../Properties/AssemblyInfo.cs | 0 .../Management.CognitiveServices/generate.cmd | 0 .../Management.CognitiveServices/notice.txt | 0 148 files changed, 1 insertion(+), 1 deletion(-) rename src/SDKs/CognitiveServices/{data-plane => dataplane}/Language/Microsoft.CognitiveServices.Language.Tests/BaseTests.cs (100%) rename src/SDKs/CognitiveServices/{data-plane => dataplane}/Language/Microsoft.CognitiveServices.Language.Tests/Microsoft.CognitiveServices.Language.Tests.csproj (100%) rename src/SDKs/CognitiveServices/{data-plane => dataplane}/Language/Microsoft.CognitiveServices.Language.Tests/SessionRecords/Language.TextAnalytics.Tests.DetectLanguageTests/DetectLanguage.json (100%) rename src/SDKs/CognitiveServices/{data-plane => dataplane}/Language/Microsoft.CognitiveServices.Language.Tests/SessionRecords/Language.TextAnalytics.Tests.KeyPhrasesTests/KeyPhrases.json (100%) rename src/SDKs/CognitiveServices/{data-plane => dataplane}/Language/Microsoft.CognitiveServices.Language.Tests/SessionRecords/Language.TextAnalytics.Tests.SentimentTests/Sentiment.json (100%) rename src/SDKs/CognitiveServices/{data-plane => dataplane}/Language/Microsoft.CognitiveServices.Language.Tests/TextAnalytics/DetectLanguageTests.cs (94%) rename src/SDKs/CognitiveServices/{data-plane => dataplane}/Language/Microsoft.CognitiveServices.Language.Tests/TextAnalytics/KeyPhrasesTests.cs (100%) rename src/SDKs/CognitiveServices/{data-plane => dataplane}/Language/Microsoft.CognitiveServices.Language.Tests/TextAnalytics/SentimentTests.cs (100%) rename src/SDKs/CognitiveServices/{data-plane => dataplane}/Language/Microsoft.CognitiveServices.Language.sln (100%) rename src/SDKs/CognitiveServices/{data-plane => dataplane}/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/ITextAnalyticsAPI.cs (100%) rename src/SDKs/CognitiveServices/{data-plane => dataplane}/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/BatchInputV2.cs (100%) rename src/SDKs/CognitiveServices/{data-plane => dataplane}/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/DetectedLanguageV2.cs (100%) rename src/SDKs/CognitiveServices/{data-plane => dataplane}/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/ErrorRecordV2.cs (100%) rename src/SDKs/CognitiveServices/{data-plane => dataplane}/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/ErrorResponse.cs (100%) rename src/SDKs/CognitiveServices/{data-plane => dataplane}/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/ErrorResponseException.cs (100%) rename src/SDKs/CognitiveServices/{data-plane => dataplane}/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/InputV2.cs (100%) rename src/SDKs/CognitiveServices/{data-plane => dataplane}/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/InternalError.cs (100%) rename src/SDKs/CognitiveServices/{data-plane => dataplane}/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/KeyPhraseBatchResultItemV2.cs (100%) rename src/SDKs/CognitiveServices/{data-plane => dataplane}/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/KeyPhraseBatchResultV2.cs (100%) rename src/SDKs/CognitiveServices/{data-plane => dataplane}/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/LanguageBatchResultItemV2.cs (100%) rename src/SDKs/CognitiveServices/{data-plane => dataplane}/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/LanguageBatchResultV2.cs (100%) rename src/SDKs/CognitiveServices/{data-plane => dataplane}/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/MultiLanguageBatchInputV2.cs (100%) rename src/SDKs/CognitiveServices/{data-plane => dataplane}/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/MultiLanguageInputV2.cs (100%) rename src/SDKs/CognitiveServices/{data-plane => dataplane}/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/SentimentBatchResultItemV2.cs (100%) rename src/SDKs/CognitiveServices/{data-plane => dataplane}/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/SentimentBatchResultV2.cs (100%) rename src/SDKs/CognitiveServices/{data-plane => dataplane}/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/TextAnalyticsAPI.cs (100%) rename src/SDKs/CognitiveServices/{data-plane => dataplane}/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/TextAnalyticsAPIExtensions.cs (100%) rename src/SDKs/CognitiveServices/{data-plane => dataplane}/Language/Microsoft.CognitiveServices.Language/Microsoft.CognitiveServices.Language.csproj (100%) rename src/SDKs/CognitiveServices/{data-plane => dataplane}/Vision/Microsoft.CognitiveServices.Vision.Tests/BaseTests.cs (100%) rename src/SDKs/CognitiveServices/{data-plane => dataplane}/Vision/Microsoft.CognitiveServices.Vision.Tests/FaceDetectionTests.cs (100%) rename src/SDKs/CognitiveServices/{data-plane => dataplane}/Vision/Microsoft.CognitiveServices.Vision.Tests/Microsoft.CognitiveServices.Vision.Tests.csproj (100%) rename src/SDKs/CognitiveServices/{data-plane => dataplane}/Vision/Microsoft.CognitiveServices.Vision.Tests/SessionRecords/FaceSDK.Tests.FaceDetectionTests/FaceDetection.json (100%) rename src/SDKs/CognitiveServices/{data-plane => dataplane}/Vision/Microsoft.CognitiveServices.Vision.Tests/TestImages/detection1.jpg (100%) rename src/SDKs/CognitiveServices/{data-plane => dataplane}/Vision/Microsoft.CognitiveServices.Vision.sln (100%) rename src/SDKs/CognitiveServices/{data-plane => dataplane}/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceAPI.cs (100%) rename src/SDKs/CognitiveServices/{data-plane => dataplane}/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceList.cs (100%) rename src/SDKs/CognitiveServices/{data-plane => dataplane}/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceListExtensions.cs (100%) rename src/SDKs/CognitiveServices/{data-plane => dataplane}/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceOperations.cs (100%) rename src/SDKs/CognitiveServices/{data-plane => dataplane}/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceOperationsExtensions.cs (100%) rename src/SDKs/CognitiveServices/{data-plane => dataplane}/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IFaceAPI.cs (100%) rename src/SDKs/CognitiveServices/{data-plane => dataplane}/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IFaceList.cs (100%) rename src/SDKs/CognitiveServices/{data-plane => dataplane}/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IFaceOperations.cs (100%) rename src/SDKs/CognitiveServices/{data-plane => dataplane}/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IPerson.cs (100%) rename src/SDKs/CognitiveServices/{data-plane => dataplane}/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IPersonGroup.cs (100%) rename src/SDKs/CognitiveServices/{data-plane => dataplane}/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/APIError.cs (100%) rename src/SDKs/CognitiveServices/{data-plane => dataplane}/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/APIErrorException.cs (100%) rename src/SDKs/CognitiveServices/{data-plane => dataplane}/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/AzureRegion.cs (100%) rename src/SDKs/CognitiveServices/{data-plane => dataplane}/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreateFaceListRequest.cs (100%) rename src/SDKs/CognitiveServices/{data-plane => dataplane}/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreatePersonGroupRequest.cs (100%) rename src/SDKs/CognitiveServices/{data-plane => dataplane}/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreatePersonRequest.cs (100%) rename src/SDKs/CognitiveServices/{data-plane => dataplane}/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreatePersonResult.cs (100%) rename src/SDKs/CognitiveServices/{data-plane => dataplane}/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/DetectedFace.cs (100%) rename src/SDKs/CognitiveServices/{data-plane => dataplane}/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/EmotionProperties.cs (100%) rename src/SDKs/CognitiveServices/{data-plane => dataplane}/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/Error.cs (100%) rename src/SDKs/CognitiveServices/{data-plane => dataplane}/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FaceAttributes.cs (100%) rename src/SDKs/CognitiveServices/{data-plane => dataplane}/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FaceLandmarks.cs (100%) rename src/SDKs/CognitiveServices/{data-plane => dataplane}/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FaceRectangle.cs (100%) rename src/SDKs/CognitiveServices/{data-plane => dataplane}/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FacialHairProperties.cs (100%) rename src/SDKs/CognitiveServices/{data-plane => dataplane}/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FindSimilarRequest.cs (100%) rename src/SDKs/CognitiveServices/{data-plane => dataplane}/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/GetFaceListResult.cs (100%) rename src/SDKs/CognitiveServices/{data-plane => dataplane}/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/GroupRequest.cs (100%) rename src/SDKs/CognitiveServices/{data-plane => dataplane}/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/GroupResponse.cs (100%) rename src/SDKs/CognitiveServices/{data-plane => dataplane}/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/HeadPoseProperties.cs (100%) rename src/SDKs/CognitiveServices/{data-plane => dataplane}/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/IdentifyRequest.cs (100%) rename src/SDKs/CognitiveServices/{data-plane => dataplane}/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/IdentifyResultCandidate.cs (100%) rename src/SDKs/CognitiveServices/{data-plane => dataplane}/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/IdentifyResultItem.cs (100%) rename src/SDKs/CognitiveServices/{data-plane => dataplane}/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/ImageUrl.cs (100%) rename src/SDKs/CognitiveServices/{data-plane => dataplane}/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/PersonFaceResult.cs (100%) rename src/SDKs/CognitiveServices/{data-plane => dataplane}/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/PersonGroupResult.cs (100%) rename src/SDKs/CognitiveServices/{data-plane => dataplane}/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/PersonResult.cs (100%) rename src/SDKs/CognitiveServices/{data-plane => dataplane}/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/Position.cs (100%) rename src/SDKs/CognitiveServices/{data-plane => dataplane}/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/SimilarFaceResult.cs (100%) rename src/SDKs/CognitiveServices/{data-plane => dataplane}/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/TrainingStatus.cs (100%) rename src/SDKs/CognitiveServices/{data-plane => dataplane}/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/UpdatePersonFaceDataRequest.cs (100%) rename src/SDKs/CognitiveServices/{data-plane => dataplane}/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/VerifyRequest.cs (100%) rename src/SDKs/CognitiveServices/{data-plane => dataplane}/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/VerifyResult.cs (100%) rename src/SDKs/CognitiveServices/{data-plane => dataplane}/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Person.cs (100%) rename src/SDKs/CognitiveServices/{data-plane => dataplane}/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/PersonExtensions.cs (100%) rename src/SDKs/CognitiveServices/{data-plane => dataplane}/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/PersonGroup.cs (100%) rename src/SDKs/CognitiveServices/{data-plane => dataplane}/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/PersonGroupExtensions.cs (100%) rename src/SDKs/CognitiveServices/{data-plane => dataplane}/Vision/Microsoft.CognitiveServices.Vision/Microsoft.CognitiveServices.Vision.csproj (100%) rename src/SDKs/CognitiveServices/{data-plane => dataplane}/dirs.proj (100%) rename src/SDKs/CognitiveServices/{ => management}/CognitiveServices.Tests/CognitiveServices.Tests.csproj (100%) rename src/SDKs/CognitiveServices/{ => management}/CognitiveServices.Tests/Helpers/CognitiveServicesManagementTestUtilities.cs (100%) rename src/SDKs/CognitiveServices/{ => management}/CognitiveServices.Tests/Helpers/RecordedDelegatingHandler.cs (100%) rename src/SDKs/CognitiveServices/{ => management}/CognitiveServices.Tests/Properties/AssemblyInfo.cs (100%) rename src/SDKs/CognitiveServices/{ => management}/CognitiveServices.Tests/SessionRecords/CognitiveServices.Tests.CognitiveServicesAccountTests/CognitiveServicesAccountCreateAllApisTest.json (100%) rename src/SDKs/CognitiveServices/{ => management}/CognitiveServices.Tests/SessionRecords/CognitiveServices.Tests.CognitiveServicesAccountTests/CognitiveServicesAccountCreateAndGetDifferentSkusTest.json (100%) rename src/SDKs/CognitiveServices/{ => management}/CognitiveServices.Tests/SessionRecords/CognitiveServices.Tests.CognitiveServicesAccountTests/CognitiveServicesAccountCreateErrorTest.json (100%) rename src/SDKs/CognitiveServices/{ => management}/CognitiveServices.Tests/SessionRecords/CognitiveServices.Tests.CognitiveServicesAccountTests/CognitiveServicesAccountCreateTest.json (100%) rename src/SDKs/CognitiveServices/{ => management}/CognitiveServices.Tests/SessionRecords/CognitiveServices.Tests.CognitiveServicesAccountTests/CognitiveServicesAccountDeleteTest.json (100%) rename src/SDKs/CognitiveServices/{ => management}/CognitiveServices.Tests/SessionRecords/CognitiveServices.Tests.CognitiveServicesAccountTests/CognitiveServicesAccountEnumerateSkusTest.json (100%) rename src/SDKs/CognitiveServices/{ => management}/CognitiveServices.Tests/SessionRecords/CognitiveServices.Tests.CognitiveServicesAccountTests/CognitiveServicesAccountKeysErrorTest.json (100%) rename src/SDKs/CognitiveServices/{ => management}/CognitiveServices.Tests/SessionRecords/CognitiveServices.Tests.CognitiveServicesAccountTests/CognitiveServicesAccountListByResourceGroupTest.json (100%) rename src/SDKs/CognitiveServices/{ => management}/CognitiveServices.Tests/SessionRecords/CognitiveServices.Tests.CognitiveServicesAccountTests/CognitiveServicesAccountListBySubscriptionTest.json (100%) rename src/SDKs/CognitiveServices/{ => management}/CognitiveServices.Tests/SessionRecords/CognitiveServices.Tests.CognitiveServicesAccountTests/CognitiveServicesAccountListKeysTest.json (100%) rename src/SDKs/CognitiveServices/{ => management}/CognitiveServices.Tests/SessionRecords/CognitiveServices.Tests.CognitiveServicesAccountTests/CognitiveServicesAccountMinMaxNameLengthTest.json (100%) rename src/SDKs/CognitiveServices/{ => management}/CognitiveServices.Tests/SessionRecords/CognitiveServices.Tests.CognitiveServicesAccountTests/CognitiveServicesAccountRegenerateKeyTest.json (100%) rename src/SDKs/CognitiveServices/{ => management}/CognitiveServices.Tests/SessionRecords/CognitiveServices.Tests.CognitiveServicesAccountTests/CognitiveServicesAccountUpdateWithCreateTest.json (100%) rename src/SDKs/CognitiveServices/{ => management}/CognitiveServices.Tests/SessionRecords/CognitiveServices.Tests.CognitiveServicesAccountTests/CognitiveServicesCheckSkuAvailabilityTest.json (100%) rename src/SDKs/CognitiveServices/{ => management}/CognitiveServices.Tests/SessionRecords/CognitiveServices.Tests.CognitiveServicesAccountTests/CognitiveServicesCreateAccountErrorTest.json (100%) rename src/SDKs/CognitiveServices/{ => management}/CognitiveServices.Tests/SessionRecords/CognitiveServices.Tests.CognitiveServicesAccountTests/CognitiveServicesCreateAccountErrorTest2.json (100%) rename src/SDKs/CognitiveServices/{ => management}/CognitiveServices.Tests/SessionRecords/CognitiveServices.Tests.CognitiveServicesAccountTests/CognitiveServicesDeleteAccountErrorTest.json (100%) rename src/SDKs/CognitiveServices/{ => management}/CognitiveServices.Tests/SessionRecords/CognitiveServices.Tests.CognitiveServicesAccountTests/CognitiveServicesEnumerateSkusErrorTest.json (100%) rename src/SDKs/CognitiveServices/{ => management}/CognitiveServices.Tests/SessionRecords/CognitiveServices.Tests.CognitiveServicesAccountTests/CognitiveServicesGetAccountErrorTest.json (100%) rename src/SDKs/CognitiveServices/{ => management}/CognitiveServices.Tests/SessionRecords/CognitiveServices.Tests.CognitiveServicesAccountTests/CognitiveServicesUpdateAccountErrorTest.json (100%) rename src/SDKs/CognitiveServices/{ => management}/CognitiveServices.Tests/Tests/CognitiveServicesAccountTests.cs (100%) rename src/SDKs/CognitiveServices/{ => management}/CognitiveServices.sln (100%) rename src/SDKs/CognitiveServices/{ => management}/Management.CognitiveServices/Generated/AccountsOperations.cs (100%) rename src/SDKs/CognitiveServices/{ => management}/Management.CognitiveServices/Generated/AccountsOperationsExtensions.cs (100%) rename src/SDKs/CognitiveServices/{ => management}/Management.CognitiveServices/Generated/CheckSkuAvailabilityOperations.cs (100%) rename src/SDKs/CognitiveServices/{ => management}/Management.CognitiveServices/Generated/CheckSkuAvailabilityOperationsExtensions.cs (100%) rename src/SDKs/CognitiveServices/{ => management}/Management.CognitiveServices/Generated/CognitiveServicesAccountsOperations.cs (100%) rename src/SDKs/CognitiveServices/{ => management}/Management.CognitiveServices/Generated/CognitiveServicesAccountsOperationsExtensions.cs (100%) rename src/SDKs/CognitiveServices/{ => management}/Management.CognitiveServices/Generated/CognitiveServicesManagementClient.cs (100%) rename src/SDKs/CognitiveServices/{ => management}/Management.CognitiveServices/Generated/IAccountsOperations.cs (100%) rename src/SDKs/CognitiveServices/{ => management}/Management.CognitiveServices/Generated/ICheckSkuAvailabilityOperations.cs (100%) rename src/SDKs/CognitiveServices/{ => management}/Management.CognitiveServices/Generated/ICognitiveServicesAccountsOperations.cs (100%) rename src/SDKs/CognitiveServices/{ => management}/Management.CognitiveServices/Generated/ICognitiveServicesManagementClient.cs (100%) rename src/SDKs/CognitiveServices/{ => management}/Management.CognitiveServices/Generated/IOperations.cs (100%) rename src/SDKs/CognitiveServices/{ => management}/Management.CognitiveServices/Generated/Models/CheckSkuAvailabilityParameter.cs (100%) rename src/SDKs/CognitiveServices/{ => management}/Management.CognitiveServices/Generated/Models/CheckSkuAvailabilityResult.cs (100%) rename src/SDKs/CognitiveServices/{ => management}/Management.CognitiveServices/Generated/Models/CheckSkuAvailabilityResultList.cs (100%) rename src/SDKs/CognitiveServices/{ => management}/Management.CognitiveServices/Generated/Models/CognitiveServicesAccount.cs (100%) rename src/SDKs/CognitiveServices/{ => management}/Management.CognitiveServices/Generated/Models/CognitiveServicesAccountCreateParameters.cs (100%) rename src/SDKs/CognitiveServices/{ => management}/Management.CognitiveServices/Generated/Models/CognitiveServicesAccountEnumerateSkusResult.cs (100%) rename src/SDKs/CognitiveServices/{ => management}/Management.CognitiveServices/Generated/Models/CognitiveServicesAccountKeys.cs (100%) rename src/SDKs/CognitiveServices/{ => management}/Management.CognitiveServices/Generated/Models/CognitiveServicesAccountUpdateParameters.cs (100%) rename src/SDKs/CognitiveServices/{ => management}/Management.CognitiveServices/Generated/Models/CognitiveServicesResourceAndSku.cs (100%) rename src/SDKs/CognitiveServices/{ => management}/Management.CognitiveServices/Generated/Models/Error.cs (100%) rename src/SDKs/CognitiveServices/{ => management}/Management.CognitiveServices/Generated/Models/ErrorBody.cs (100%) rename src/SDKs/CognitiveServices/{ => management}/Management.CognitiveServices/Generated/Models/ErrorException.cs (100%) rename src/SDKs/CognitiveServices/{ => management}/Management.CognitiveServices/Generated/Models/KeyName.cs (100%) rename src/SDKs/CognitiveServices/{ => management}/Management.CognitiveServices/Generated/Models/Kind.cs (100%) rename src/SDKs/CognitiveServices/{ => management}/Management.CognitiveServices/Generated/Models/OperationDisplayInfo.cs (100%) rename src/SDKs/CognitiveServices/{ => management}/Management.CognitiveServices/Generated/Models/OperationEntity.cs (100%) rename src/SDKs/CognitiveServices/{ => management}/Management.CognitiveServices/Generated/Models/Page.cs (100%) rename src/SDKs/CognitiveServices/{ => management}/Management.CognitiveServices/Generated/Models/ProvisioningState.cs (100%) rename src/SDKs/CognitiveServices/{ => management}/Management.CognitiveServices/Generated/Models/RegenerateKeyParameters.cs (100%) rename src/SDKs/CognitiveServices/{ => management}/Management.CognitiveServices/Generated/Models/Sku.cs (100%) rename src/SDKs/CognitiveServices/{ => management}/Management.CognitiveServices/Generated/Models/SkuName.cs (100%) rename src/SDKs/CognitiveServices/{ => management}/Management.CognitiveServices/Generated/Models/SkuTier.cs (100%) rename src/SDKs/CognitiveServices/{ => management}/Management.CognitiveServices/Generated/Operations.cs (100%) rename src/SDKs/CognitiveServices/{ => management}/Management.CognitiveServices/Generated/OperationsExtensions.cs (100%) rename src/SDKs/CognitiveServices/{ => management}/Management.CognitiveServices/Microsoft.Azure.Management.CognitiveServices.csproj (100%) rename src/SDKs/CognitiveServices/{ => management}/Management.CognitiveServices/Properties/AssemblyInfo.cs (100%) rename src/SDKs/CognitiveServices/{ => management}/Management.CognitiveServices/generate.cmd (100%) rename src/SDKs/CognitiveServices/{ => management}/Management.CognitiveServices/notice.txt (100%) diff --git a/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/BaseTests.cs b/src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language.Tests/BaseTests.cs similarity index 100% rename from src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/BaseTests.cs rename to src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language.Tests/BaseTests.cs diff --git a/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/Microsoft.CognitiveServices.Language.Tests.csproj b/src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language.Tests/Microsoft.CognitiveServices.Language.Tests.csproj similarity index 100% rename from src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/Microsoft.CognitiveServices.Language.Tests.csproj rename to src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language.Tests/Microsoft.CognitiveServices.Language.Tests.csproj diff --git a/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/SessionRecords/Language.TextAnalytics.Tests.DetectLanguageTests/DetectLanguage.json b/src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language.Tests/SessionRecords/Language.TextAnalytics.Tests.DetectLanguageTests/DetectLanguage.json similarity index 100% rename from src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/SessionRecords/Language.TextAnalytics.Tests.DetectLanguageTests/DetectLanguage.json rename to src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language.Tests/SessionRecords/Language.TextAnalytics.Tests.DetectLanguageTests/DetectLanguage.json diff --git a/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/SessionRecords/Language.TextAnalytics.Tests.KeyPhrasesTests/KeyPhrases.json b/src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language.Tests/SessionRecords/Language.TextAnalytics.Tests.KeyPhrasesTests/KeyPhrases.json similarity index 100% rename from src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/SessionRecords/Language.TextAnalytics.Tests.KeyPhrasesTests/KeyPhrases.json rename to src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language.Tests/SessionRecords/Language.TextAnalytics.Tests.KeyPhrasesTests/KeyPhrases.json diff --git a/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/SessionRecords/Language.TextAnalytics.Tests.SentimentTests/Sentiment.json b/src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language.Tests/SessionRecords/Language.TextAnalytics.Tests.SentimentTests/Sentiment.json similarity index 100% rename from src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/SessionRecords/Language.TextAnalytics.Tests.SentimentTests/Sentiment.json rename to src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language.Tests/SessionRecords/Language.TextAnalytics.Tests.SentimentTests/Sentiment.json diff --git a/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/TextAnalytics/DetectLanguageTests.cs b/src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language.Tests/TextAnalytics/DetectLanguageTests.cs similarity index 94% rename from src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/TextAnalytics/DetectLanguageTests.cs rename to src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language.Tests/TextAnalytics/DetectLanguageTests.cs index 22a9e2639a9d..3e647529e8ea 100644 --- a/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/TextAnalytics/DetectLanguageTests.cs +++ b/src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language.Tests/TextAnalytics/DetectLanguageTests.cs @@ -21,7 +21,7 @@ public void DetectLanguage() new BatchInputV2( new List() { - new InputV2("id","I love my team mates") + new InputV2("id","I love my team mates") })); Assert.Equal("English", result.Documents[0].DetectedLanguages[0].Name); diff --git a/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/TextAnalytics/KeyPhrasesTests.cs b/src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language.Tests/TextAnalytics/KeyPhrasesTests.cs similarity index 100% rename from src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/TextAnalytics/KeyPhrasesTests.cs rename to src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language.Tests/TextAnalytics/KeyPhrasesTests.cs diff --git a/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/TextAnalytics/SentimentTests.cs b/src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language.Tests/TextAnalytics/SentimentTests.cs similarity index 100% rename from src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.Tests/TextAnalytics/SentimentTests.cs rename to src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language.Tests/TextAnalytics/SentimentTests.cs diff --git a/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.sln b/src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language.sln similarity index 100% rename from src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language.sln rename to src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language.sln diff --git a/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/ITextAnalyticsAPI.cs b/src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/ITextAnalyticsAPI.cs similarity index 100% rename from src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/ITextAnalyticsAPI.cs rename to src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/ITextAnalyticsAPI.cs diff --git a/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/BatchInputV2.cs b/src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/BatchInputV2.cs similarity index 100% rename from src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/BatchInputV2.cs rename to src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/BatchInputV2.cs diff --git a/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/DetectedLanguageV2.cs b/src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/DetectedLanguageV2.cs similarity index 100% rename from src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/DetectedLanguageV2.cs rename to src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/DetectedLanguageV2.cs diff --git a/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/ErrorRecordV2.cs b/src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/ErrorRecordV2.cs similarity index 100% rename from src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/ErrorRecordV2.cs rename to src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/ErrorRecordV2.cs diff --git a/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/ErrorResponse.cs b/src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/ErrorResponse.cs similarity index 100% rename from src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/ErrorResponse.cs rename to src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/ErrorResponse.cs diff --git a/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/ErrorResponseException.cs b/src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/ErrorResponseException.cs similarity index 100% rename from src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/ErrorResponseException.cs rename to src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/ErrorResponseException.cs diff --git a/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/InputV2.cs b/src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/InputV2.cs similarity index 100% rename from src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/InputV2.cs rename to src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/InputV2.cs diff --git a/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/InternalError.cs b/src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/InternalError.cs similarity index 100% rename from src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/InternalError.cs rename to src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/InternalError.cs diff --git a/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/KeyPhraseBatchResultItemV2.cs b/src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/KeyPhraseBatchResultItemV2.cs similarity index 100% rename from src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/KeyPhraseBatchResultItemV2.cs rename to src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/KeyPhraseBatchResultItemV2.cs diff --git a/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/KeyPhraseBatchResultV2.cs b/src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/KeyPhraseBatchResultV2.cs similarity index 100% rename from src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/KeyPhraseBatchResultV2.cs rename to src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/KeyPhraseBatchResultV2.cs diff --git a/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/LanguageBatchResultItemV2.cs b/src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/LanguageBatchResultItemV2.cs similarity index 100% rename from src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/LanguageBatchResultItemV2.cs rename to src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/LanguageBatchResultItemV2.cs diff --git a/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/LanguageBatchResultV2.cs b/src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/LanguageBatchResultV2.cs similarity index 100% rename from src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/LanguageBatchResultV2.cs rename to src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/LanguageBatchResultV2.cs diff --git a/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/MultiLanguageBatchInputV2.cs b/src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/MultiLanguageBatchInputV2.cs similarity index 100% rename from src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/MultiLanguageBatchInputV2.cs rename to src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/MultiLanguageBatchInputV2.cs diff --git a/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/MultiLanguageInputV2.cs b/src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/MultiLanguageInputV2.cs similarity index 100% rename from src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/MultiLanguageInputV2.cs rename to src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/MultiLanguageInputV2.cs diff --git a/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/SentimentBatchResultItemV2.cs b/src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/SentimentBatchResultItemV2.cs similarity index 100% rename from src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/SentimentBatchResultItemV2.cs rename to src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/SentimentBatchResultItemV2.cs diff --git a/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/SentimentBatchResultV2.cs b/src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/SentimentBatchResultV2.cs similarity index 100% rename from src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/SentimentBatchResultV2.cs rename to src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/SentimentBatchResultV2.cs diff --git a/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/TextAnalyticsAPI.cs b/src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/TextAnalyticsAPI.cs similarity index 100% rename from src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/TextAnalyticsAPI.cs rename to src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/TextAnalyticsAPI.cs diff --git a/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/TextAnalyticsAPIExtensions.cs b/src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/TextAnalyticsAPIExtensions.cs similarity index 100% rename from src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/TextAnalyticsAPIExtensions.cs rename to src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/TextAnalyticsAPIExtensions.cs diff --git a/src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Microsoft.CognitiveServices.Language.csproj b/src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language/Microsoft.CognitiveServices.Language.csproj similarity index 100% rename from src/SDKs/CognitiveServices/data-plane/Language/Microsoft.CognitiveServices.Language/Microsoft.CognitiveServices.Language.csproj rename to src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language/Microsoft.CognitiveServices.Language.csproj diff --git a/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision.Tests/BaseTests.cs b/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision.Tests/BaseTests.cs similarity index 100% rename from src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision.Tests/BaseTests.cs rename to src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision.Tests/BaseTests.cs diff --git a/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision.Tests/FaceDetectionTests.cs b/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision.Tests/FaceDetectionTests.cs similarity index 100% rename from src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision.Tests/FaceDetectionTests.cs rename to src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision.Tests/FaceDetectionTests.cs diff --git a/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision.Tests/Microsoft.CognitiveServices.Vision.Tests.csproj b/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision.Tests/Microsoft.CognitiveServices.Vision.Tests.csproj similarity index 100% rename from src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision.Tests/Microsoft.CognitiveServices.Vision.Tests.csproj rename to src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision.Tests/Microsoft.CognitiveServices.Vision.Tests.csproj diff --git a/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision.Tests/SessionRecords/FaceSDK.Tests.FaceDetectionTests/FaceDetection.json b/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision.Tests/SessionRecords/FaceSDK.Tests.FaceDetectionTests/FaceDetection.json similarity index 100% rename from src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision.Tests/SessionRecords/FaceSDK.Tests.FaceDetectionTests/FaceDetection.json rename to src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision.Tests/SessionRecords/FaceSDK.Tests.FaceDetectionTests/FaceDetection.json diff --git a/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision.Tests/TestImages/detection1.jpg b/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision.Tests/TestImages/detection1.jpg similarity index 100% rename from src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision.Tests/TestImages/detection1.jpg rename to src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision.Tests/TestImages/detection1.jpg diff --git a/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision.sln b/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision.sln similarity index 100% rename from src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision.sln rename to src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision.sln diff --git a/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceAPI.cs b/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceAPI.cs similarity index 100% rename from src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceAPI.cs rename to src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceAPI.cs diff --git a/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceList.cs b/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceList.cs similarity index 100% rename from src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceList.cs rename to src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceList.cs diff --git a/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceListExtensions.cs b/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceListExtensions.cs similarity index 100% rename from src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceListExtensions.cs rename to src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceListExtensions.cs diff --git a/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceOperations.cs b/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceOperations.cs similarity index 100% rename from src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceOperations.cs rename to src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceOperations.cs diff --git a/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceOperationsExtensions.cs b/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceOperationsExtensions.cs similarity index 100% rename from src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceOperationsExtensions.cs rename to src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceOperationsExtensions.cs diff --git a/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IFaceAPI.cs b/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IFaceAPI.cs similarity index 100% rename from src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IFaceAPI.cs rename to src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IFaceAPI.cs diff --git a/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IFaceList.cs b/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IFaceList.cs similarity index 100% rename from src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IFaceList.cs rename to src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IFaceList.cs diff --git a/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IFaceOperations.cs b/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IFaceOperations.cs similarity index 100% rename from src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IFaceOperations.cs rename to src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IFaceOperations.cs diff --git a/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IPerson.cs b/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IPerson.cs similarity index 100% rename from src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IPerson.cs rename to src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IPerson.cs diff --git a/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IPersonGroup.cs b/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IPersonGroup.cs similarity index 100% rename from src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IPersonGroup.cs rename to src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IPersonGroup.cs diff --git a/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/APIError.cs b/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/APIError.cs similarity index 100% rename from src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/APIError.cs rename to src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/APIError.cs diff --git a/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/APIErrorException.cs b/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/APIErrorException.cs similarity index 100% rename from src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/APIErrorException.cs rename to src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/APIErrorException.cs diff --git a/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/AzureRegion.cs b/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/AzureRegion.cs similarity index 100% rename from src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/AzureRegion.cs rename to src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/AzureRegion.cs diff --git a/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreateFaceListRequest.cs b/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreateFaceListRequest.cs similarity index 100% rename from src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreateFaceListRequest.cs rename to src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreateFaceListRequest.cs diff --git a/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreatePersonGroupRequest.cs b/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreatePersonGroupRequest.cs similarity index 100% rename from src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreatePersonGroupRequest.cs rename to src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreatePersonGroupRequest.cs diff --git a/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreatePersonRequest.cs b/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreatePersonRequest.cs similarity index 100% rename from src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreatePersonRequest.cs rename to src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreatePersonRequest.cs diff --git a/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreatePersonResult.cs b/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreatePersonResult.cs similarity index 100% rename from src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreatePersonResult.cs rename to src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreatePersonResult.cs diff --git a/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/DetectedFace.cs b/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/DetectedFace.cs similarity index 100% rename from src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/DetectedFace.cs rename to src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/DetectedFace.cs diff --git a/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/EmotionProperties.cs b/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/EmotionProperties.cs similarity index 100% rename from src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/EmotionProperties.cs rename to src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/EmotionProperties.cs diff --git a/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/Error.cs b/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/Error.cs similarity index 100% rename from src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/Error.cs rename to src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/Error.cs diff --git a/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FaceAttributes.cs b/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FaceAttributes.cs similarity index 100% rename from src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FaceAttributes.cs rename to src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FaceAttributes.cs diff --git a/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FaceLandmarks.cs b/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FaceLandmarks.cs similarity index 100% rename from src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FaceLandmarks.cs rename to src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FaceLandmarks.cs diff --git a/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FaceRectangle.cs b/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FaceRectangle.cs similarity index 100% rename from src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FaceRectangle.cs rename to src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FaceRectangle.cs diff --git a/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FacialHairProperties.cs b/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FacialHairProperties.cs similarity index 100% rename from src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FacialHairProperties.cs rename to src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FacialHairProperties.cs diff --git a/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FindSimilarRequest.cs b/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FindSimilarRequest.cs similarity index 100% rename from src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FindSimilarRequest.cs rename to src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FindSimilarRequest.cs diff --git a/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/GetFaceListResult.cs b/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/GetFaceListResult.cs similarity index 100% rename from src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/GetFaceListResult.cs rename to src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/GetFaceListResult.cs diff --git a/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/GroupRequest.cs b/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/GroupRequest.cs similarity index 100% rename from src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/GroupRequest.cs rename to src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/GroupRequest.cs diff --git a/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/GroupResponse.cs b/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/GroupResponse.cs similarity index 100% rename from src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/GroupResponse.cs rename to src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/GroupResponse.cs diff --git a/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/HeadPoseProperties.cs b/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/HeadPoseProperties.cs similarity index 100% rename from src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/HeadPoseProperties.cs rename to src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/HeadPoseProperties.cs diff --git a/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/IdentifyRequest.cs b/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/IdentifyRequest.cs similarity index 100% rename from src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/IdentifyRequest.cs rename to src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/IdentifyRequest.cs diff --git a/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/IdentifyResultCandidate.cs b/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/IdentifyResultCandidate.cs similarity index 100% rename from src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/IdentifyResultCandidate.cs rename to src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/IdentifyResultCandidate.cs diff --git a/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/IdentifyResultItem.cs b/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/IdentifyResultItem.cs similarity index 100% rename from src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/IdentifyResultItem.cs rename to src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/IdentifyResultItem.cs diff --git a/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/ImageUrl.cs b/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/ImageUrl.cs similarity index 100% rename from src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/ImageUrl.cs rename to src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/ImageUrl.cs diff --git a/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/PersonFaceResult.cs b/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/PersonFaceResult.cs similarity index 100% rename from src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/PersonFaceResult.cs rename to src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/PersonFaceResult.cs diff --git a/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/PersonGroupResult.cs b/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/PersonGroupResult.cs similarity index 100% rename from src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/PersonGroupResult.cs rename to src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/PersonGroupResult.cs diff --git a/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/PersonResult.cs b/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/PersonResult.cs similarity index 100% rename from src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/PersonResult.cs rename to src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/PersonResult.cs diff --git a/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/Position.cs b/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/Position.cs similarity index 100% rename from src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/Position.cs rename to src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/Position.cs diff --git a/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/SimilarFaceResult.cs b/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/SimilarFaceResult.cs similarity index 100% rename from src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/SimilarFaceResult.cs rename to src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/SimilarFaceResult.cs diff --git a/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/TrainingStatus.cs b/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/TrainingStatus.cs similarity index 100% rename from src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/TrainingStatus.cs rename to src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/TrainingStatus.cs diff --git a/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/UpdatePersonFaceDataRequest.cs b/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/UpdatePersonFaceDataRequest.cs similarity index 100% rename from src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/UpdatePersonFaceDataRequest.cs rename to src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/UpdatePersonFaceDataRequest.cs diff --git a/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/VerifyRequest.cs b/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/VerifyRequest.cs similarity index 100% rename from src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/VerifyRequest.cs rename to src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/VerifyRequest.cs diff --git a/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/VerifyResult.cs b/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/VerifyResult.cs similarity index 100% rename from src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/VerifyResult.cs rename to src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/VerifyResult.cs diff --git a/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Person.cs b/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Person.cs similarity index 100% rename from src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Person.cs rename to src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Person.cs diff --git a/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/PersonExtensions.cs b/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/PersonExtensions.cs similarity index 100% rename from src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/PersonExtensions.cs rename to src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/PersonExtensions.cs diff --git a/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/PersonGroup.cs b/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/PersonGroup.cs similarity index 100% rename from src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/PersonGroup.cs rename to src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/PersonGroup.cs diff --git a/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/PersonGroupExtensions.cs b/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/PersonGroupExtensions.cs similarity index 100% rename from src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/PersonGroupExtensions.cs rename to src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/PersonGroupExtensions.cs diff --git a/src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Microsoft.CognitiveServices.Vision.csproj b/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Microsoft.CognitiveServices.Vision.csproj similarity index 100% rename from src/SDKs/CognitiveServices/data-plane/Vision/Microsoft.CognitiveServices.Vision/Microsoft.CognitiveServices.Vision.csproj rename to src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Microsoft.CognitiveServices.Vision.csproj diff --git a/src/SDKs/CognitiveServices/data-plane/dirs.proj b/src/SDKs/CognitiveServices/dataplane/dirs.proj similarity index 100% rename from src/SDKs/CognitiveServices/data-plane/dirs.proj rename to src/SDKs/CognitiveServices/dataplane/dirs.proj diff --git a/src/SDKs/CognitiveServices/CognitiveServices.Tests/CognitiveServices.Tests.csproj b/src/SDKs/CognitiveServices/management/CognitiveServices.Tests/CognitiveServices.Tests.csproj similarity index 100% rename from src/SDKs/CognitiveServices/CognitiveServices.Tests/CognitiveServices.Tests.csproj rename to src/SDKs/CognitiveServices/management/CognitiveServices.Tests/CognitiveServices.Tests.csproj diff --git a/src/SDKs/CognitiveServices/CognitiveServices.Tests/Helpers/CognitiveServicesManagementTestUtilities.cs b/src/SDKs/CognitiveServices/management/CognitiveServices.Tests/Helpers/CognitiveServicesManagementTestUtilities.cs similarity index 100% rename from src/SDKs/CognitiveServices/CognitiveServices.Tests/Helpers/CognitiveServicesManagementTestUtilities.cs rename to src/SDKs/CognitiveServices/management/CognitiveServices.Tests/Helpers/CognitiveServicesManagementTestUtilities.cs diff --git a/src/SDKs/CognitiveServices/CognitiveServices.Tests/Helpers/RecordedDelegatingHandler.cs b/src/SDKs/CognitiveServices/management/CognitiveServices.Tests/Helpers/RecordedDelegatingHandler.cs similarity index 100% rename from src/SDKs/CognitiveServices/CognitiveServices.Tests/Helpers/RecordedDelegatingHandler.cs rename to src/SDKs/CognitiveServices/management/CognitiveServices.Tests/Helpers/RecordedDelegatingHandler.cs diff --git a/src/SDKs/CognitiveServices/CognitiveServices.Tests/Properties/AssemblyInfo.cs b/src/SDKs/CognitiveServices/management/CognitiveServices.Tests/Properties/AssemblyInfo.cs similarity index 100% rename from src/SDKs/CognitiveServices/CognitiveServices.Tests/Properties/AssemblyInfo.cs rename to src/SDKs/CognitiveServices/management/CognitiveServices.Tests/Properties/AssemblyInfo.cs diff --git a/src/SDKs/CognitiveServices/CognitiveServices.Tests/SessionRecords/CognitiveServices.Tests.CognitiveServicesAccountTests/CognitiveServicesAccountCreateAllApisTest.json b/src/SDKs/CognitiveServices/management/CognitiveServices.Tests/SessionRecords/CognitiveServices.Tests.CognitiveServicesAccountTests/CognitiveServicesAccountCreateAllApisTest.json similarity index 100% rename from src/SDKs/CognitiveServices/CognitiveServices.Tests/SessionRecords/CognitiveServices.Tests.CognitiveServicesAccountTests/CognitiveServicesAccountCreateAllApisTest.json rename to src/SDKs/CognitiveServices/management/CognitiveServices.Tests/SessionRecords/CognitiveServices.Tests.CognitiveServicesAccountTests/CognitiveServicesAccountCreateAllApisTest.json diff --git a/src/SDKs/CognitiveServices/CognitiveServices.Tests/SessionRecords/CognitiveServices.Tests.CognitiveServicesAccountTests/CognitiveServicesAccountCreateAndGetDifferentSkusTest.json b/src/SDKs/CognitiveServices/management/CognitiveServices.Tests/SessionRecords/CognitiveServices.Tests.CognitiveServicesAccountTests/CognitiveServicesAccountCreateAndGetDifferentSkusTest.json similarity index 100% rename from src/SDKs/CognitiveServices/CognitiveServices.Tests/SessionRecords/CognitiveServices.Tests.CognitiveServicesAccountTests/CognitiveServicesAccountCreateAndGetDifferentSkusTest.json rename to src/SDKs/CognitiveServices/management/CognitiveServices.Tests/SessionRecords/CognitiveServices.Tests.CognitiveServicesAccountTests/CognitiveServicesAccountCreateAndGetDifferentSkusTest.json diff --git a/src/SDKs/CognitiveServices/CognitiveServices.Tests/SessionRecords/CognitiveServices.Tests.CognitiveServicesAccountTests/CognitiveServicesAccountCreateErrorTest.json b/src/SDKs/CognitiveServices/management/CognitiveServices.Tests/SessionRecords/CognitiveServices.Tests.CognitiveServicesAccountTests/CognitiveServicesAccountCreateErrorTest.json similarity index 100% rename from src/SDKs/CognitiveServices/CognitiveServices.Tests/SessionRecords/CognitiveServices.Tests.CognitiveServicesAccountTests/CognitiveServicesAccountCreateErrorTest.json rename to src/SDKs/CognitiveServices/management/CognitiveServices.Tests/SessionRecords/CognitiveServices.Tests.CognitiveServicesAccountTests/CognitiveServicesAccountCreateErrorTest.json diff --git a/src/SDKs/CognitiveServices/CognitiveServices.Tests/SessionRecords/CognitiveServices.Tests.CognitiveServicesAccountTests/CognitiveServicesAccountCreateTest.json b/src/SDKs/CognitiveServices/management/CognitiveServices.Tests/SessionRecords/CognitiveServices.Tests.CognitiveServicesAccountTests/CognitiveServicesAccountCreateTest.json similarity index 100% rename from src/SDKs/CognitiveServices/CognitiveServices.Tests/SessionRecords/CognitiveServices.Tests.CognitiveServicesAccountTests/CognitiveServicesAccountCreateTest.json rename to src/SDKs/CognitiveServices/management/CognitiveServices.Tests/SessionRecords/CognitiveServices.Tests.CognitiveServicesAccountTests/CognitiveServicesAccountCreateTest.json diff --git a/src/SDKs/CognitiveServices/CognitiveServices.Tests/SessionRecords/CognitiveServices.Tests.CognitiveServicesAccountTests/CognitiveServicesAccountDeleteTest.json b/src/SDKs/CognitiveServices/management/CognitiveServices.Tests/SessionRecords/CognitiveServices.Tests.CognitiveServicesAccountTests/CognitiveServicesAccountDeleteTest.json similarity index 100% rename from src/SDKs/CognitiveServices/CognitiveServices.Tests/SessionRecords/CognitiveServices.Tests.CognitiveServicesAccountTests/CognitiveServicesAccountDeleteTest.json rename to src/SDKs/CognitiveServices/management/CognitiveServices.Tests/SessionRecords/CognitiveServices.Tests.CognitiveServicesAccountTests/CognitiveServicesAccountDeleteTest.json diff --git a/src/SDKs/CognitiveServices/CognitiveServices.Tests/SessionRecords/CognitiveServices.Tests.CognitiveServicesAccountTests/CognitiveServicesAccountEnumerateSkusTest.json b/src/SDKs/CognitiveServices/management/CognitiveServices.Tests/SessionRecords/CognitiveServices.Tests.CognitiveServicesAccountTests/CognitiveServicesAccountEnumerateSkusTest.json similarity index 100% rename from src/SDKs/CognitiveServices/CognitiveServices.Tests/SessionRecords/CognitiveServices.Tests.CognitiveServicesAccountTests/CognitiveServicesAccountEnumerateSkusTest.json rename to src/SDKs/CognitiveServices/management/CognitiveServices.Tests/SessionRecords/CognitiveServices.Tests.CognitiveServicesAccountTests/CognitiveServicesAccountEnumerateSkusTest.json diff --git a/src/SDKs/CognitiveServices/CognitiveServices.Tests/SessionRecords/CognitiveServices.Tests.CognitiveServicesAccountTests/CognitiveServicesAccountKeysErrorTest.json b/src/SDKs/CognitiveServices/management/CognitiveServices.Tests/SessionRecords/CognitiveServices.Tests.CognitiveServicesAccountTests/CognitiveServicesAccountKeysErrorTest.json similarity index 100% rename from src/SDKs/CognitiveServices/CognitiveServices.Tests/SessionRecords/CognitiveServices.Tests.CognitiveServicesAccountTests/CognitiveServicesAccountKeysErrorTest.json rename to src/SDKs/CognitiveServices/management/CognitiveServices.Tests/SessionRecords/CognitiveServices.Tests.CognitiveServicesAccountTests/CognitiveServicesAccountKeysErrorTest.json diff --git a/src/SDKs/CognitiveServices/CognitiveServices.Tests/SessionRecords/CognitiveServices.Tests.CognitiveServicesAccountTests/CognitiveServicesAccountListByResourceGroupTest.json b/src/SDKs/CognitiveServices/management/CognitiveServices.Tests/SessionRecords/CognitiveServices.Tests.CognitiveServicesAccountTests/CognitiveServicesAccountListByResourceGroupTest.json similarity index 100% rename from src/SDKs/CognitiveServices/CognitiveServices.Tests/SessionRecords/CognitiveServices.Tests.CognitiveServicesAccountTests/CognitiveServicesAccountListByResourceGroupTest.json rename to src/SDKs/CognitiveServices/management/CognitiveServices.Tests/SessionRecords/CognitiveServices.Tests.CognitiveServicesAccountTests/CognitiveServicesAccountListByResourceGroupTest.json diff --git a/src/SDKs/CognitiveServices/CognitiveServices.Tests/SessionRecords/CognitiveServices.Tests.CognitiveServicesAccountTests/CognitiveServicesAccountListBySubscriptionTest.json b/src/SDKs/CognitiveServices/management/CognitiveServices.Tests/SessionRecords/CognitiveServices.Tests.CognitiveServicesAccountTests/CognitiveServicesAccountListBySubscriptionTest.json similarity index 100% rename from src/SDKs/CognitiveServices/CognitiveServices.Tests/SessionRecords/CognitiveServices.Tests.CognitiveServicesAccountTests/CognitiveServicesAccountListBySubscriptionTest.json rename to src/SDKs/CognitiveServices/management/CognitiveServices.Tests/SessionRecords/CognitiveServices.Tests.CognitiveServicesAccountTests/CognitiveServicesAccountListBySubscriptionTest.json diff --git a/src/SDKs/CognitiveServices/CognitiveServices.Tests/SessionRecords/CognitiveServices.Tests.CognitiveServicesAccountTests/CognitiveServicesAccountListKeysTest.json b/src/SDKs/CognitiveServices/management/CognitiveServices.Tests/SessionRecords/CognitiveServices.Tests.CognitiveServicesAccountTests/CognitiveServicesAccountListKeysTest.json similarity index 100% rename from src/SDKs/CognitiveServices/CognitiveServices.Tests/SessionRecords/CognitiveServices.Tests.CognitiveServicesAccountTests/CognitiveServicesAccountListKeysTest.json rename to src/SDKs/CognitiveServices/management/CognitiveServices.Tests/SessionRecords/CognitiveServices.Tests.CognitiveServicesAccountTests/CognitiveServicesAccountListKeysTest.json diff --git a/src/SDKs/CognitiveServices/CognitiveServices.Tests/SessionRecords/CognitiveServices.Tests.CognitiveServicesAccountTests/CognitiveServicesAccountMinMaxNameLengthTest.json b/src/SDKs/CognitiveServices/management/CognitiveServices.Tests/SessionRecords/CognitiveServices.Tests.CognitiveServicesAccountTests/CognitiveServicesAccountMinMaxNameLengthTest.json similarity index 100% rename from src/SDKs/CognitiveServices/CognitiveServices.Tests/SessionRecords/CognitiveServices.Tests.CognitiveServicesAccountTests/CognitiveServicesAccountMinMaxNameLengthTest.json rename to src/SDKs/CognitiveServices/management/CognitiveServices.Tests/SessionRecords/CognitiveServices.Tests.CognitiveServicesAccountTests/CognitiveServicesAccountMinMaxNameLengthTest.json diff --git a/src/SDKs/CognitiveServices/CognitiveServices.Tests/SessionRecords/CognitiveServices.Tests.CognitiveServicesAccountTests/CognitiveServicesAccountRegenerateKeyTest.json b/src/SDKs/CognitiveServices/management/CognitiveServices.Tests/SessionRecords/CognitiveServices.Tests.CognitiveServicesAccountTests/CognitiveServicesAccountRegenerateKeyTest.json similarity index 100% rename from src/SDKs/CognitiveServices/CognitiveServices.Tests/SessionRecords/CognitiveServices.Tests.CognitiveServicesAccountTests/CognitiveServicesAccountRegenerateKeyTest.json rename to src/SDKs/CognitiveServices/management/CognitiveServices.Tests/SessionRecords/CognitiveServices.Tests.CognitiveServicesAccountTests/CognitiveServicesAccountRegenerateKeyTest.json diff --git a/src/SDKs/CognitiveServices/CognitiveServices.Tests/SessionRecords/CognitiveServices.Tests.CognitiveServicesAccountTests/CognitiveServicesAccountUpdateWithCreateTest.json b/src/SDKs/CognitiveServices/management/CognitiveServices.Tests/SessionRecords/CognitiveServices.Tests.CognitiveServicesAccountTests/CognitiveServicesAccountUpdateWithCreateTest.json similarity index 100% rename from src/SDKs/CognitiveServices/CognitiveServices.Tests/SessionRecords/CognitiveServices.Tests.CognitiveServicesAccountTests/CognitiveServicesAccountUpdateWithCreateTest.json rename to src/SDKs/CognitiveServices/management/CognitiveServices.Tests/SessionRecords/CognitiveServices.Tests.CognitiveServicesAccountTests/CognitiveServicesAccountUpdateWithCreateTest.json diff --git a/src/SDKs/CognitiveServices/CognitiveServices.Tests/SessionRecords/CognitiveServices.Tests.CognitiveServicesAccountTests/CognitiveServicesCheckSkuAvailabilityTest.json b/src/SDKs/CognitiveServices/management/CognitiveServices.Tests/SessionRecords/CognitiveServices.Tests.CognitiveServicesAccountTests/CognitiveServicesCheckSkuAvailabilityTest.json similarity index 100% rename from src/SDKs/CognitiveServices/CognitiveServices.Tests/SessionRecords/CognitiveServices.Tests.CognitiveServicesAccountTests/CognitiveServicesCheckSkuAvailabilityTest.json rename to src/SDKs/CognitiveServices/management/CognitiveServices.Tests/SessionRecords/CognitiveServices.Tests.CognitiveServicesAccountTests/CognitiveServicesCheckSkuAvailabilityTest.json diff --git a/src/SDKs/CognitiveServices/CognitiveServices.Tests/SessionRecords/CognitiveServices.Tests.CognitiveServicesAccountTests/CognitiveServicesCreateAccountErrorTest.json b/src/SDKs/CognitiveServices/management/CognitiveServices.Tests/SessionRecords/CognitiveServices.Tests.CognitiveServicesAccountTests/CognitiveServicesCreateAccountErrorTest.json similarity index 100% rename from src/SDKs/CognitiveServices/CognitiveServices.Tests/SessionRecords/CognitiveServices.Tests.CognitiveServicesAccountTests/CognitiveServicesCreateAccountErrorTest.json rename to src/SDKs/CognitiveServices/management/CognitiveServices.Tests/SessionRecords/CognitiveServices.Tests.CognitiveServicesAccountTests/CognitiveServicesCreateAccountErrorTest.json diff --git a/src/SDKs/CognitiveServices/CognitiveServices.Tests/SessionRecords/CognitiveServices.Tests.CognitiveServicesAccountTests/CognitiveServicesCreateAccountErrorTest2.json b/src/SDKs/CognitiveServices/management/CognitiveServices.Tests/SessionRecords/CognitiveServices.Tests.CognitiveServicesAccountTests/CognitiveServicesCreateAccountErrorTest2.json similarity index 100% rename from src/SDKs/CognitiveServices/CognitiveServices.Tests/SessionRecords/CognitiveServices.Tests.CognitiveServicesAccountTests/CognitiveServicesCreateAccountErrorTest2.json rename to src/SDKs/CognitiveServices/management/CognitiveServices.Tests/SessionRecords/CognitiveServices.Tests.CognitiveServicesAccountTests/CognitiveServicesCreateAccountErrorTest2.json diff --git a/src/SDKs/CognitiveServices/CognitiveServices.Tests/SessionRecords/CognitiveServices.Tests.CognitiveServicesAccountTests/CognitiveServicesDeleteAccountErrorTest.json b/src/SDKs/CognitiveServices/management/CognitiveServices.Tests/SessionRecords/CognitiveServices.Tests.CognitiveServicesAccountTests/CognitiveServicesDeleteAccountErrorTest.json similarity index 100% rename from src/SDKs/CognitiveServices/CognitiveServices.Tests/SessionRecords/CognitiveServices.Tests.CognitiveServicesAccountTests/CognitiveServicesDeleteAccountErrorTest.json rename to src/SDKs/CognitiveServices/management/CognitiveServices.Tests/SessionRecords/CognitiveServices.Tests.CognitiveServicesAccountTests/CognitiveServicesDeleteAccountErrorTest.json diff --git a/src/SDKs/CognitiveServices/CognitiveServices.Tests/SessionRecords/CognitiveServices.Tests.CognitiveServicesAccountTests/CognitiveServicesEnumerateSkusErrorTest.json b/src/SDKs/CognitiveServices/management/CognitiveServices.Tests/SessionRecords/CognitiveServices.Tests.CognitiveServicesAccountTests/CognitiveServicesEnumerateSkusErrorTest.json similarity index 100% rename from src/SDKs/CognitiveServices/CognitiveServices.Tests/SessionRecords/CognitiveServices.Tests.CognitiveServicesAccountTests/CognitiveServicesEnumerateSkusErrorTest.json rename to src/SDKs/CognitiveServices/management/CognitiveServices.Tests/SessionRecords/CognitiveServices.Tests.CognitiveServicesAccountTests/CognitiveServicesEnumerateSkusErrorTest.json diff --git a/src/SDKs/CognitiveServices/CognitiveServices.Tests/SessionRecords/CognitiveServices.Tests.CognitiveServicesAccountTests/CognitiveServicesGetAccountErrorTest.json b/src/SDKs/CognitiveServices/management/CognitiveServices.Tests/SessionRecords/CognitiveServices.Tests.CognitiveServicesAccountTests/CognitiveServicesGetAccountErrorTest.json similarity index 100% rename from src/SDKs/CognitiveServices/CognitiveServices.Tests/SessionRecords/CognitiveServices.Tests.CognitiveServicesAccountTests/CognitiveServicesGetAccountErrorTest.json rename to src/SDKs/CognitiveServices/management/CognitiveServices.Tests/SessionRecords/CognitiveServices.Tests.CognitiveServicesAccountTests/CognitiveServicesGetAccountErrorTest.json diff --git a/src/SDKs/CognitiveServices/CognitiveServices.Tests/SessionRecords/CognitiveServices.Tests.CognitiveServicesAccountTests/CognitiveServicesUpdateAccountErrorTest.json b/src/SDKs/CognitiveServices/management/CognitiveServices.Tests/SessionRecords/CognitiveServices.Tests.CognitiveServicesAccountTests/CognitiveServicesUpdateAccountErrorTest.json similarity index 100% rename from src/SDKs/CognitiveServices/CognitiveServices.Tests/SessionRecords/CognitiveServices.Tests.CognitiveServicesAccountTests/CognitiveServicesUpdateAccountErrorTest.json rename to src/SDKs/CognitiveServices/management/CognitiveServices.Tests/SessionRecords/CognitiveServices.Tests.CognitiveServicesAccountTests/CognitiveServicesUpdateAccountErrorTest.json diff --git a/src/SDKs/CognitiveServices/CognitiveServices.Tests/Tests/CognitiveServicesAccountTests.cs b/src/SDKs/CognitiveServices/management/CognitiveServices.Tests/Tests/CognitiveServicesAccountTests.cs similarity index 100% rename from src/SDKs/CognitiveServices/CognitiveServices.Tests/Tests/CognitiveServicesAccountTests.cs rename to src/SDKs/CognitiveServices/management/CognitiveServices.Tests/Tests/CognitiveServicesAccountTests.cs diff --git a/src/SDKs/CognitiveServices/CognitiveServices.sln b/src/SDKs/CognitiveServices/management/CognitiveServices.sln similarity index 100% rename from src/SDKs/CognitiveServices/CognitiveServices.sln rename to src/SDKs/CognitiveServices/management/CognitiveServices.sln diff --git a/src/SDKs/CognitiveServices/Management.CognitiveServices/Generated/AccountsOperations.cs b/src/SDKs/CognitiveServices/management/Management.CognitiveServices/Generated/AccountsOperations.cs similarity index 100% rename from src/SDKs/CognitiveServices/Management.CognitiveServices/Generated/AccountsOperations.cs rename to src/SDKs/CognitiveServices/management/Management.CognitiveServices/Generated/AccountsOperations.cs diff --git a/src/SDKs/CognitiveServices/Management.CognitiveServices/Generated/AccountsOperationsExtensions.cs b/src/SDKs/CognitiveServices/management/Management.CognitiveServices/Generated/AccountsOperationsExtensions.cs similarity index 100% rename from src/SDKs/CognitiveServices/Management.CognitiveServices/Generated/AccountsOperationsExtensions.cs rename to src/SDKs/CognitiveServices/management/Management.CognitiveServices/Generated/AccountsOperationsExtensions.cs diff --git a/src/SDKs/CognitiveServices/Management.CognitiveServices/Generated/CheckSkuAvailabilityOperations.cs b/src/SDKs/CognitiveServices/management/Management.CognitiveServices/Generated/CheckSkuAvailabilityOperations.cs similarity index 100% rename from src/SDKs/CognitiveServices/Management.CognitiveServices/Generated/CheckSkuAvailabilityOperations.cs rename to src/SDKs/CognitiveServices/management/Management.CognitiveServices/Generated/CheckSkuAvailabilityOperations.cs diff --git a/src/SDKs/CognitiveServices/Management.CognitiveServices/Generated/CheckSkuAvailabilityOperationsExtensions.cs b/src/SDKs/CognitiveServices/management/Management.CognitiveServices/Generated/CheckSkuAvailabilityOperationsExtensions.cs similarity index 100% rename from src/SDKs/CognitiveServices/Management.CognitiveServices/Generated/CheckSkuAvailabilityOperationsExtensions.cs rename to src/SDKs/CognitiveServices/management/Management.CognitiveServices/Generated/CheckSkuAvailabilityOperationsExtensions.cs diff --git a/src/SDKs/CognitiveServices/Management.CognitiveServices/Generated/CognitiveServicesAccountsOperations.cs b/src/SDKs/CognitiveServices/management/Management.CognitiveServices/Generated/CognitiveServicesAccountsOperations.cs similarity index 100% rename from src/SDKs/CognitiveServices/Management.CognitiveServices/Generated/CognitiveServicesAccountsOperations.cs rename to src/SDKs/CognitiveServices/management/Management.CognitiveServices/Generated/CognitiveServicesAccountsOperations.cs diff --git a/src/SDKs/CognitiveServices/Management.CognitiveServices/Generated/CognitiveServicesAccountsOperationsExtensions.cs b/src/SDKs/CognitiveServices/management/Management.CognitiveServices/Generated/CognitiveServicesAccountsOperationsExtensions.cs similarity index 100% rename from src/SDKs/CognitiveServices/Management.CognitiveServices/Generated/CognitiveServicesAccountsOperationsExtensions.cs rename to src/SDKs/CognitiveServices/management/Management.CognitiveServices/Generated/CognitiveServicesAccountsOperationsExtensions.cs diff --git a/src/SDKs/CognitiveServices/Management.CognitiveServices/Generated/CognitiveServicesManagementClient.cs b/src/SDKs/CognitiveServices/management/Management.CognitiveServices/Generated/CognitiveServicesManagementClient.cs similarity index 100% rename from src/SDKs/CognitiveServices/Management.CognitiveServices/Generated/CognitiveServicesManagementClient.cs rename to src/SDKs/CognitiveServices/management/Management.CognitiveServices/Generated/CognitiveServicesManagementClient.cs diff --git a/src/SDKs/CognitiveServices/Management.CognitiveServices/Generated/IAccountsOperations.cs b/src/SDKs/CognitiveServices/management/Management.CognitiveServices/Generated/IAccountsOperations.cs similarity index 100% rename from src/SDKs/CognitiveServices/Management.CognitiveServices/Generated/IAccountsOperations.cs rename to src/SDKs/CognitiveServices/management/Management.CognitiveServices/Generated/IAccountsOperations.cs diff --git a/src/SDKs/CognitiveServices/Management.CognitiveServices/Generated/ICheckSkuAvailabilityOperations.cs b/src/SDKs/CognitiveServices/management/Management.CognitiveServices/Generated/ICheckSkuAvailabilityOperations.cs similarity index 100% rename from src/SDKs/CognitiveServices/Management.CognitiveServices/Generated/ICheckSkuAvailabilityOperations.cs rename to src/SDKs/CognitiveServices/management/Management.CognitiveServices/Generated/ICheckSkuAvailabilityOperations.cs diff --git a/src/SDKs/CognitiveServices/Management.CognitiveServices/Generated/ICognitiveServicesAccountsOperations.cs b/src/SDKs/CognitiveServices/management/Management.CognitiveServices/Generated/ICognitiveServicesAccountsOperations.cs similarity index 100% rename from src/SDKs/CognitiveServices/Management.CognitiveServices/Generated/ICognitiveServicesAccountsOperations.cs rename to src/SDKs/CognitiveServices/management/Management.CognitiveServices/Generated/ICognitiveServicesAccountsOperations.cs diff --git a/src/SDKs/CognitiveServices/Management.CognitiveServices/Generated/ICognitiveServicesManagementClient.cs b/src/SDKs/CognitiveServices/management/Management.CognitiveServices/Generated/ICognitiveServicesManagementClient.cs similarity index 100% rename from src/SDKs/CognitiveServices/Management.CognitiveServices/Generated/ICognitiveServicesManagementClient.cs rename to src/SDKs/CognitiveServices/management/Management.CognitiveServices/Generated/ICognitiveServicesManagementClient.cs diff --git a/src/SDKs/CognitiveServices/Management.CognitiveServices/Generated/IOperations.cs b/src/SDKs/CognitiveServices/management/Management.CognitiveServices/Generated/IOperations.cs similarity index 100% rename from src/SDKs/CognitiveServices/Management.CognitiveServices/Generated/IOperations.cs rename to src/SDKs/CognitiveServices/management/Management.CognitiveServices/Generated/IOperations.cs diff --git a/src/SDKs/CognitiveServices/Management.CognitiveServices/Generated/Models/CheckSkuAvailabilityParameter.cs b/src/SDKs/CognitiveServices/management/Management.CognitiveServices/Generated/Models/CheckSkuAvailabilityParameter.cs similarity index 100% rename from src/SDKs/CognitiveServices/Management.CognitiveServices/Generated/Models/CheckSkuAvailabilityParameter.cs rename to src/SDKs/CognitiveServices/management/Management.CognitiveServices/Generated/Models/CheckSkuAvailabilityParameter.cs diff --git a/src/SDKs/CognitiveServices/Management.CognitiveServices/Generated/Models/CheckSkuAvailabilityResult.cs b/src/SDKs/CognitiveServices/management/Management.CognitiveServices/Generated/Models/CheckSkuAvailabilityResult.cs similarity index 100% rename from src/SDKs/CognitiveServices/Management.CognitiveServices/Generated/Models/CheckSkuAvailabilityResult.cs rename to src/SDKs/CognitiveServices/management/Management.CognitiveServices/Generated/Models/CheckSkuAvailabilityResult.cs diff --git a/src/SDKs/CognitiveServices/Management.CognitiveServices/Generated/Models/CheckSkuAvailabilityResultList.cs b/src/SDKs/CognitiveServices/management/Management.CognitiveServices/Generated/Models/CheckSkuAvailabilityResultList.cs similarity index 100% rename from src/SDKs/CognitiveServices/Management.CognitiveServices/Generated/Models/CheckSkuAvailabilityResultList.cs rename to src/SDKs/CognitiveServices/management/Management.CognitiveServices/Generated/Models/CheckSkuAvailabilityResultList.cs diff --git a/src/SDKs/CognitiveServices/Management.CognitiveServices/Generated/Models/CognitiveServicesAccount.cs b/src/SDKs/CognitiveServices/management/Management.CognitiveServices/Generated/Models/CognitiveServicesAccount.cs similarity index 100% rename from src/SDKs/CognitiveServices/Management.CognitiveServices/Generated/Models/CognitiveServicesAccount.cs rename to src/SDKs/CognitiveServices/management/Management.CognitiveServices/Generated/Models/CognitiveServicesAccount.cs diff --git a/src/SDKs/CognitiveServices/Management.CognitiveServices/Generated/Models/CognitiveServicesAccountCreateParameters.cs b/src/SDKs/CognitiveServices/management/Management.CognitiveServices/Generated/Models/CognitiveServicesAccountCreateParameters.cs similarity index 100% rename from src/SDKs/CognitiveServices/Management.CognitiveServices/Generated/Models/CognitiveServicesAccountCreateParameters.cs rename to src/SDKs/CognitiveServices/management/Management.CognitiveServices/Generated/Models/CognitiveServicesAccountCreateParameters.cs diff --git a/src/SDKs/CognitiveServices/Management.CognitiveServices/Generated/Models/CognitiveServicesAccountEnumerateSkusResult.cs b/src/SDKs/CognitiveServices/management/Management.CognitiveServices/Generated/Models/CognitiveServicesAccountEnumerateSkusResult.cs similarity index 100% rename from src/SDKs/CognitiveServices/Management.CognitiveServices/Generated/Models/CognitiveServicesAccountEnumerateSkusResult.cs rename to src/SDKs/CognitiveServices/management/Management.CognitiveServices/Generated/Models/CognitiveServicesAccountEnumerateSkusResult.cs diff --git a/src/SDKs/CognitiveServices/Management.CognitiveServices/Generated/Models/CognitiveServicesAccountKeys.cs b/src/SDKs/CognitiveServices/management/Management.CognitiveServices/Generated/Models/CognitiveServicesAccountKeys.cs similarity index 100% rename from src/SDKs/CognitiveServices/Management.CognitiveServices/Generated/Models/CognitiveServicesAccountKeys.cs rename to src/SDKs/CognitiveServices/management/Management.CognitiveServices/Generated/Models/CognitiveServicesAccountKeys.cs diff --git a/src/SDKs/CognitiveServices/Management.CognitiveServices/Generated/Models/CognitiveServicesAccountUpdateParameters.cs b/src/SDKs/CognitiveServices/management/Management.CognitiveServices/Generated/Models/CognitiveServicesAccountUpdateParameters.cs similarity index 100% rename from src/SDKs/CognitiveServices/Management.CognitiveServices/Generated/Models/CognitiveServicesAccountUpdateParameters.cs rename to src/SDKs/CognitiveServices/management/Management.CognitiveServices/Generated/Models/CognitiveServicesAccountUpdateParameters.cs diff --git a/src/SDKs/CognitiveServices/Management.CognitiveServices/Generated/Models/CognitiveServicesResourceAndSku.cs b/src/SDKs/CognitiveServices/management/Management.CognitiveServices/Generated/Models/CognitiveServicesResourceAndSku.cs similarity index 100% rename from src/SDKs/CognitiveServices/Management.CognitiveServices/Generated/Models/CognitiveServicesResourceAndSku.cs rename to src/SDKs/CognitiveServices/management/Management.CognitiveServices/Generated/Models/CognitiveServicesResourceAndSku.cs diff --git a/src/SDKs/CognitiveServices/Management.CognitiveServices/Generated/Models/Error.cs b/src/SDKs/CognitiveServices/management/Management.CognitiveServices/Generated/Models/Error.cs similarity index 100% rename from src/SDKs/CognitiveServices/Management.CognitiveServices/Generated/Models/Error.cs rename to src/SDKs/CognitiveServices/management/Management.CognitiveServices/Generated/Models/Error.cs diff --git a/src/SDKs/CognitiveServices/Management.CognitiveServices/Generated/Models/ErrorBody.cs b/src/SDKs/CognitiveServices/management/Management.CognitiveServices/Generated/Models/ErrorBody.cs similarity index 100% rename from src/SDKs/CognitiveServices/Management.CognitiveServices/Generated/Models/ErrorBody.cs rename to src/SDKs/CognitiveServices/management/Management.CognitiveServices/Generated/Models/ErrorBody.cs diff --git a/src/SDKs/CognitiveServices/Management.CognitiveServices/Generated/Models/ErrorException.cs b/src/SDKs/CognitiveServices/management/Management.CognitiveServices/Generated/Models/ErrorException.cs similarity index 100% rename from src/SDKs/CognitiveServices/Management.CognitiveServices/Generated/Models/ErrorException.cs rename to src/SDKs/CognitiveServices/management/Management.CognitiveServices/Generated/Models/ErrorException.cs diff --git a/src/SDKs/CognitiveServices/Management.CognitiveServices/Generated/Models/KeyName.cs b/src/SDKs/CognitiveServices/management/Management.CognitiveServices/Generated/Models/KeyName.cs similarity index 100% rename from src/SDKs/CognitiveServices/Management.CognitiveServices/Generated/Models/KeyName.cs rename to src/SDKs/CognitiveServices/management/Management.CognitiveServices/Generated/Models/KeyName.cs diff --git a/src/SDKs/CognitiveServices/Management.CognitiveServices/Generated/Models/Kind.cs b/src/SDKs/CognitiveServices/management/Management.CognitiveServices/Generated/Models/Kind.cs similarity index 100% rename from src/SDKs/CognitiveServices/Management.CognitiveServices/Generated/Models/Kind.cs rename to src/SDKs/CognitiveServices/management/Management.CognitiveServices/Generated/Models/Kind.cs diff --git a/src/SDKs/CognitiveServices/Management.CognitiveServices/Generated/Models/OperationDisplayInfo.cs b/src/SDKs/CognitiveServices/management/Management.CognitiveServices/Generated/Models/OperationDisplayInfo.cs similarity index 100% rename from src/SDKs/CognitiveServices/Management.CognitiveServices/Generated/Models/OperationDisplayInfo.cs rename to src/SDKs/CognitiveServices/management/Management.CognitiveServices/Generated/Models/OperationDisplayInfo.cs diff --git a/src/SDKs/CognitiveServices/Management.CognitiveServices/Generated/Models/OperationEntity.cs b/src/SDKs/CognitiveServices/management/Management.CognitiveServices/Generated/Models/OperationEntity.cs similarity index 100% rename from src/SDKs/CognitiveServices/Management.CognitiveServices/Generated/Models/OperationEntity.cs rename to src/SDKs/CognitiveServices/management/Management.CognitiveServices/Generated/Models/OperationEntity.cs diff --git a/src/SDKs/CognitiveServices/Management.CognitiveServices/Generated/Models/Page.cs b/src/SDKs/CognitiveServices/management/Management.CognitiveServices/Generated/Models/Page.cs similarity index 100% rename from src/SDKs/CognitiveServices/Management.CognitiveServices/Generated/Models/Page.cs rename to src/SDKs/CognitiveServices/management/Management.CognitiveServices/Generated/Models/Page.cs diff --git a/src/SDKs/CognitiveServices/Management.CognitiveServices/Generated/Models/ProvisioningState.cs b/src/SDKs/CognitiveServices/management/Management.CognitiveServices/Generated/Models/ProvisioningState.cs similarity index 100% rename from src/SDKs/CognitiveServices/Management.CognitiveServices/Generated/Models/ProvisioningState.cs rename to src/SDKs/CognitiveServices/management/Management.CognitiveServices/Generated/Models/ProvisioningState.cs diff --git a/src/SDKs/CognitiveServices/Management.CognitiveServices/Generated/Models/RegenerateKeyParameters.cs b/src/SDKs/CognitiveServices/management/Management.CognitiveServices/Generated/Models/RegenerateKeyParameters.cs similarity index 100% rename from src/SDKs/CognitiveServices/Management.CognitiveServices/Generated/Models/RegenerateKeyParameters.cs rename to src/SDKs/CognitiveServices/management/Management.CognitiveServices/Generated/Models/RegenerateKeyParameters.cs diff --git a/src/SDKs/CognitiveServices/Management.CognitiveServices/Generated/Models/Sku.cs b/src/SDKs/CognitiveServices/management/Management.CognitiveServices/Generated/Models/Sku.cs similarity index 100% rename from src/SDKs/CognitiveServices/Management.CognitiveServices/Generated/Models/Sku.cs rename to src/SDKs/CognitiveServices/management/Management.CognitiveServices/Generated/Models/Sku.cs diff --git a/src/SDKs/CognitiveServices/Management.CognitiveServices/Generated/Models/SkuName.cs b/src/SDKs/CognitiveServices/management/Management.CognitiveServices/Generated/Models/SkuName.cs similarity index 100% rename from src/SDKs/CognitiveServices/Management.CognitiveServices/Generated/Models/SkuName.cs rename to src/SDKs/CognitiveServices/management/Management.CognitiveServices/Generated/Models/SkuName.cs diff --git a/src/SDKs/CognitiveServices/Management.CognitiveServices/Generated/Models/SkuTier.cs b/src/SDKs/CognitiveServices/management/Management.CognitiveServices/Generated/Models/SkuTier.cs similarity index 100% rename from src/SDKs/CognitiveServices/Management.CognitiveServices/Generated/Models/SkuTier.cs rename to src/SDKs/CognitiveServices/management/Management.CognitiveServices/Generated/Models/SkuTier.cs diff --git a/src/SDKs/CognitiveServices/Management.CognitiveServices/Generated/Operations.cs b/src/SDKs/CognitiveServices/management/Management.CognitiveServices/Generated/Operations.cs similarity index 100% rename from src/SDKs/CognitiveServices/Management.CognitiveServices/Generated/Operations.cs rename to src/SDKs/CognitiveServices/management/Management.CognitiveServices/Generated/Operations.cs diff --git a/src/SDKs/CognitiveServices/Management.CognitiveServices/Generated/OperationsExtensions.cs b/src/SDKs/CognitiveServices/management/Management.CognitiveServices/Generated/OperationsExtensions.cs similarity index 100% rename from src/SDKs/CognitiveServices/Management.CognitiveServices/Generated/OperationsExtensions.cs rename to src/SDKs/CognitiveServices/management/Management.CognitiveServices/Generated/OperationsExtensions.cs diff --git a/src/SDKs/CognitiveServices/Management.CognitiveServices/Microsoft.Azure.Management.CognitiveServices.csproj b/src/SDKs/CognitiveServices/management/Management.CognitiveServices/Microsoft.Azure.Management.CognitiveServices.csproj similarity index 100% rename from src/SDKs/CognitiveServices/Management.CognitiveServices/Microsoft.Azure.Management.CognitiveServices.csproj rename to src/SDKs/CognitiveServices/management/Management.CognitiveServices/Microsoft.Azure.Management.CognitiveServices.csproj diff --git a/src/SDKs/CognitiveServices/Management.CognitiveServices/Properties/AssemblyInfo.cs b/src/SDKs/CognitiveServices/management/Management.CognitiveServices/Properties/AssemblyInfo.cs similarity index 100% rename from src/SDKs/CognitiveServices/Management.CognitiveServices/Properties/AssemblyInfo.cs rename to src/SDKs/CognitiveServices/management/Management.CognitiveServices/Properties/AssemblyInfo.cs diff --git a/src/SDKs/CognitiveServices/Management.CognitiveServices/generate.cmd b/src/SDKs/CognitiveServices/management/Management.CognitiveServices/generate.cmd similarity index 100% rename from src/SDKs/CognitiveServices/Management.CognitiveServices/generate.cmd rename to src/SDKs/CognitiveServices/management/Management.CognitiveServices/generate.cmd diff --git a/src/SDKs/CognitiveServices/Management.CognitiveServices/notice.txt b/src/SDKs/CognitiveServices/management/Management.CognitiveServices/notice.txt similarity index 100% rename from src/SDKs/CognitiveServices/Management.CognitiveServices/notice.txt rename to src/SDKs/CognitiveServices/management/Management.CognitiveServices/notice.txt From cf8fee6cfe688b573125ce3f1e311df7c33bbd3c Mon Sep 17 00:00:00 2001 From: "David Li (WINDOWS)" Date: Fri, 8 Sep 2017 14:32:04 -0700 Subject: [PATCH 12/21] Updating csproj and files based on comments. --- .../Microsoft.CognitiveServices.Language.csproj | 11 ++++------- ...Microsoft.CognitiveServices.Vision.Tests.csproj | 14 +++++++------- .../Microsoft.CognitiveServices.Vision.csproj | 11 ++++------- src/SDKs/CognitiveServices/dataplane/dirs.proj | 10 ---------- 4 files changed, 15 insertions(+), 31 deletions(-) delete mode 100644 src/SDKs/CognitiveServices/dataplane/dirs.proj diff --git a/src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language/Microsoft.CognitiveServices.Language.csproj b/src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language/Microsoft.CognitiveServices.Language.csproj index 19ac3a8cf2e7..d5546be7e226 100644 --- a/src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language/Microsoft.CognitiveServices.Language.csproj +++ b/src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language/Microsoft.CognitiveServices.Language.csproj @@ -8,26 +8,23 @@ true Microsoft.CognitiveServices.Language Microsoft Cognitive Services;Cognitive Services;Cognitive Services SDK;Text Analytics API;Text Analytics;REST HTTP client;netcore451511 + For detailed release notes, see: bin\$(Configuration)\$(TargetFramework)\$(AssemblyName).xml net452;netstandard1.4 - True - For detailed release notes, see: - - - - $(DefineConstants);FullNetFx - $(DefineConstants);netstandard14;PORTABLE + $(DefineConstants);netstandard14; + + $(DefineConstants);FullNetFx \ No newline at end of file diff --git a/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision.Tests/Microsoft.CognitiveServices.Vision.Tests.csproj b/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision.Tests/Microsoft.CognitiveServices.Vision.Tests.csproj index 31d9a7cdec75..74e9d3c1dd27 100644 --- a/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision.Tests/Microsoft.CognitiveServices.Vision.Tests.csproj +++ b/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision.Tests/Microsoft.CognitiveServices.Vision.Tests.csproj @@ -6,24 +6,20 @@ Microsoft.CognitiveServices.Vision.Tests 1.0.0-preview + netcoreapp1.1 - + + PreserveNewest - - - - - - Always @@ -32,4 +28,8 @@ + + + + diff --git a/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Microsoft.CognitiveServices.Vision.csproj b/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Microsoft.CognitiveServices.Vision.csproj index eeb20f753e7a..9918379fc7e3 100644 --- a/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Microsoft.CognitiveServices.Vision.csproj +++ b/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Microsoft.CognitiveServices.Vision.csproj @@ -8,26 +8,23 @@ true Microsoft.CognitiveServices.Vision Microsoft Cognitive Services;Cognitive Services;Cognitive Services SDK;Face API;REST HTTP client;Face SDK;netcore451511 + For detailed release notes, see: bin\$(Configuration)\$(TargetFramework)\$(AssemblyName).xml net452;netstandard1.4 - True - For detailed release notes, see: - - - - $(DefineConstants);FullNetFx - $(DefineConstants);netstandard14;PORTABLE + $(DefineConstants);netstandard14; + + $(DefineConstants);FullNetFx \ No newline at end of file diff --git a/src/SDKs/CognitiveServices/dataplane/dirs.proj b/src/SDKs/CognitiveServices/dataplane/dirs.proj deleted file mode 100644 index 271552ced249..000000000000 --- a/src/SDKs/CognitiveServices/dataplane/dirs.proj +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - \ No newline at end of file From 75427ce7929ece9569f25eede45dd9a24576fe4a Mon Sep 17 00:00:00 2001 From: "David Li (WINDOWS)" Date: Fri, 8 Sep 2017 14:44:45 -0700 Subject: [PATCH 13/21] Simplifying csprojects --- .../Microsoft.CognitiveServices.Language.csproj | 8 +------- .../Microsoft.CognitiveServices.Vision.csproj | 11 +++-------- 2 files changed, 4 insertions(+), 15 deletions(-) diff --git a/src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language/Microsoft.CognitiveServices.Language.csproj b/src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language/Microsoft.CognitiveServices.Language.csproj index d5546be7e226..58bb38e8c715 100644 --- a/src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language/Microsoft.CognitiveServices.Language.csproj +++ b/src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language/Microsoft.CognitiveServices.Language.csproj @@ -8,7 +8,7 @@ true Microsoft.CognitiveServices.Language Microsoft Cognitive Services;Cognitive Services;Cognitive Services SDK;Text Analytics API;Text Analytics;REST HTTP client;netcore451511 - For detailed release notes, see: + This is a preview release of the Cognitive Services Language SDK. Included with this release is support for Text Analytics API. bin\$(Configuration)\$(TargetFramework)\$(AssemblyName).xml @@ -16,15 +16,9 @@ net452;netstandard1.4 - - - $(DefineConstants);netstandard14; - - - $(DefineConstants);FullNetFx \ No newline at end of file diff --git a/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Microsoft.CognitiveServices.Vision.csproj b/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Microsoft.CognitiveServices.Vision.csproj index 9918379fc7e3..75447fb0adf8 100644 --- a/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Microsoft.CognitiveServices.Vision.csproj +++ b/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Microsoft.CognitiveServices.Vision.csproj @@ -2,13 +2,13 @@ Microsoft.CognitiveServices.Vision - This client library provides access to the Microsoft Cognitive Services Vision APIs. + This client library provides access to the Microsoft Cognitive Services Vision APIs (Face). 1.0.0 $(DefineConstants);CODESIGN true Microsoft.CognitiveServices.Vision Microsoft Cognitive Services;Cognitive Services;Cognitive Services SDK;Face API;REST HTTP client;Face SDK;netcore451511 - For detailed release notes, see: + This is a preview release of the Cognitive Services Vision SDK. Included with this release is support for Face API. bin\$(Configuration)\$(TargetFramework)\$(AssemblyName).xml @@ -16,15 +16,10 @@ net452;netstandard1.4 - - - $(DefineConstants);netstandard14; - - - $(DefineConstants);FullNetFx + \ No newline at end of file From 9e41f33eeef906c96b1f73ba902c745e02ba9ac7 Mon Sep 17 00:00:00 2001 From: "David Li (WINDOWS)" Date: Mon, 11 Sep 2017 16:17:37 -0700 Subject: [PATCH 14/21] Move to temp directory --- .../BaseTests.cs | 0 ...icrosoft.CognitiveServices.Language.Tests.csproj | 0 .../DetectLanguage.json | 0 .../KeyPhrases.json | 0 .../Sentiment.json | 0 .../TextAnalytics/DetectLanguageTests.cs | 0 .../TextAnalytics/KeyPhrasesTests.cs | 0 .../TextAnalytics/SentimentTests.cs | 0 .../Microsoft.CognitiveServices.Language.sln | 0 .../Generated/TextAnalytics/ITextAnalyticsAPI.cs | 0 .../Generated/TextAnalytics/Models/BatchInputV2.cs | 0 .../TextAnalytics/Models/DetectedLanguageV2.cs | 0 .../Generated/TextAnalytics/Models/ErrorRecordV2.cs | 0 .../Generated/TextAnalytics/Models/ErrorResponse.cs | 0 .../TextAnalytics/Models/ErrorResponseException.cs | 0 .../Generated/TextAnalytics/Models/InputV2.cs | 0 .../Generated/TextAnalytics/Models/InternalError.cs | 0 .../Models/KeyPhraseBatchResultItemV2.cs | 0 .../TextAnalytics/Models/KeyPhraseBatchResultV2.cs | 0 .../Models/LanguageBatchResultItemV2.cs | 0 .../TextAnalytics/Models/LanguageBatchResultV2.cs | 0 .../Models/MultiLanguageBatchInputV2.cs | 0 .../TextAnalytics/Models/MultiLanguageInputV2.cs | 0 .../Models/SentimentBatchResultItemV2.cs | 0 .../TextAnalytics/Models/SentimentBatchResultV2.cs | 0 .../Generated/TextAnalytics/TextAnalyticsAPI.cs | 0 .../TextAnalytics/TextAnalyticsAPIExtensions.cs | 0 .../Microsoft.CognitiveServices.Language.csproj | 0 .../BaseTests.cs | 0 .../FaceDetectionTests.cs | 0 .../Microsoft.CognitiveServices.Vision.Tests.csproj | 0 .../FaceDetection.json | 0 .../TestImages/detection1.jpg | Bin .../Vision/Microsoft.CognitiveServices.Vision.sln | 0 .../Generated/Face/FaceAPI.cs | 0 .../Generated/Face/FaceList.cs | 0 .../Generated/Face/FaceListExtensions.cs | 0 .../Generated/Face/FaceOperations.cs | 0 .../Generated/Face/FaceOperationsExtensions.cs | 0 .../Generated/Face/IFaceAPI.cs | 0 .../Generated/Face/IFaceList.cs | 0 .../Generated/Face/IFaceOperations.cs | 0 .../Generated/Face/IPerson.cs | 0 .../Generated/Face/IPersonGroup.cs | 0 .../Generated/Face/Models/APIError.cs | 0 .../Generated/Face/Models/APIErrorException.cs | 0 .../Generated/Face/Models/AzureRegion.cs | 0 .../Generated/Face/Models/CreateFaceListRequest.cs | 0 .../Face/Models/CreatePersonGroupRequest.cs | 0 .../Generated/Face/Models/CreatePersonRequest.cs | 0 .../Generated/Face/Models/CreatePersonResult.cs | 0 .../Generated/Face/Models/DetectedFace.cs | 0 .../Generated/Face/Models/EmotionProperties.cs | 0 .../Generated/Face/Models/Error.cs | 0 .../Generated/Face/Models/FaceAttributes.cs | 0 .../Generated/Face/Models/FaceLandmarks.cs | 0 .../Generated/Face/Models/FaceRectangle.cs | 0 .../Generated/Face/Models/FacialHairProperties.cs | 0 .../Generated/Face/Models/FindSimilarRequest.cs | 0 .../Generated/Face/Models/GetFaceListResult.cs | 0 .../Generated/Face/Models/GroupRequest.cs | 0 .../Generated/Face/Models/GroupResponse.cs | 0 .../Generated/Face/Models/HeadPoseProperties.cs | 0 .../Generated/Face/Models/IdentifyRequest.cs | 0 .../Face/Models/IdentifyResultCandidate.cs | 0 .../Generated/Face/Models/IdentifyResultItem.cs | 0 .../Generated/Face/Models/ImageUrl.cs | 0 .../Generated/Face/Models/PersonFaceResult.cs | 0 .../Generated/Face/Models/PersonGroupResult.cs | 0 .../Generated/Face/Models/PersonResult.cs | 0 .../Generated/Face/Models/Position.cs | 0 .../Generated/Face/Models/SimilarFaceResult.cs | 0 .../Generated/Face/Models/TrainingStatus.cs | 0 .../Face/Models/UpdatePersonFaceDataRequest.cs | 0 .../Generated/Face/Models/VerifyRequest.cs | 0 .../Generated/Face/Models/VerifyResult.cs | 0 .../Generated/Face/Person.cs | 0 .../Generated/Face/PersonExtensions.cs | 0 .../Generated/Face/PersonGroup.cs | 0 .../Generated/Face/PersonGroupExtensions.cs | 0 .../Microsoft.CognitiveServices.Vision.csproj | 0 81 files changed, 0 insertions(+), 0 deletions(-) rename src/SDKs/CognitiveServices/{dataplane => dataplane1}/Language/Microsoft.CognitiveServices.Language.Tests/BaseTests.cs (100%) rename src/SDKs/CognitiveServices/{dataplane => dataplane1}/Language/Microsoft.CognitiveServices.Language.Tests/Microsoft.CognitiveServices.Language.Tests.csproj (100%) rename src/SDKs/CognitiveServices/{dataplane => dataplane1}/Language/Microsoft.CognitiveServices.Language.Tests/SessionRecords/Language.TextAnalytics.Tests.DetectLanguageTests/DetectLanguage.json (100%) rename src/SDKs/CognitiveServices/{dataplane => dataplane1}/Language/Microsoft.CognitiveServices.Language.Tests/SessionRecords/Language.TextAnalytics.Tests.KeyPhrasesTests/KeyPhrases.json (100%) rename src/SDKs/CognitiveServices/{dataplane => dataplane1}/Language/Microsoft.CognitiveServices.Language.Tests/SessionRecords/Language.TextAnalytics.Tests.SentimentTests/Sentiment.json (100%) rename src/SDKs/CognitiveServices/{dataplane => dataplane1}/Language/Microsoft.CognitiveServices.Language.Tests/TextAnalytics/DetectLanguageTests.cs (100%) rename src/SDKs/CognitiveServices/{dataplane => dataplane1}/Language/Microsoft.CognitiveServices.Language.Tests/TextAnalytics/KeyPhrasesTests.cs (100%) rename src/SDKs/CognitiveServices/{dataplane => dataplane1}/Language/Microsoft.CognitiveServices.Language.Tests/TextAnalytics/SentimentTests.cs (100%) rename src/SDKs/CognitiveServices/{dataplane => dataplane1}/Language/Microsoft.CognitiveServices.Language.sln (100%) rename src/SDKs/CognitiveServices/{dataplane => dataplane1}/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/ITextAnalyticsAPI.cs (100%) rename src/SDKs/CognitiveServices/{dataplane => dataplane1}/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/BatchInputV2.cs (100%) rename src/SDKs/CognitiveServices/{dataplane => dataplane1}/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/DetectedLanguageV2.cs (100%) rename src/SDKs/CognitiveServices/{dataplane => dataplane1}/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/ErrorRecordV2.cs (100%) rename src/SDKs/CognitiveServices/{dataplane => dataplane1}/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/ErrorResponse.cs (100%) rename src/SDKs/CognitiveServices/{dataplane => dataplane1}/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/ErrorResponseException.cs (100%) rename src/SDKs/CognitiveServices/{dataplane => dataplane1}/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/InputV2.cs (100%) rename src/SDKs/CognitiveServices/{dataplane => dataplane1}/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/InternalError.cs (100%) rename src/SDKs/CognitiveServices/{dataplane => dataplane1}/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/KeyPhraseBatchResultItemV2.cs (100%) rename src/SDKs/CognitiveServices/{dataplane => dataplane1}/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/KeyPhraseBatchResultV2.cs (100%) rename src/SDKs/CognitiveServices/{dataplane => dataplane1}/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/LanguageBatchResultItemV2.cs (100%) rename src/SDKs/CognitiveServices/{dataplane => dataplane1}/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/LanguageBatchResultV2.cs (100%) rename src/SDKs/CognitiveServices/{dataplane => dataplane1}/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/MultiLanguageBatchInputV2.cs (100%) rename src/SDKs/CognitiveServices/{dataplane => dataplane1}/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/MultiLanguageInputV2.cs (100%) rename src/SDKs/CognitiveServices/{dataplane => dataplane1}/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/SentimentBatchResultItemV2.cs (100%) rename src/SDKs/CognitiveServices/{dataplane => dataplane1}/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/SentimentBatchResultV2.cs (100%) rename src/SDKs/CognitiveServices/{dataplane => dataplane1}/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/TextAnalyticsAPI.cs (100%) rename src/SDKs/CognitiveServices/{dataplane => dataplane1}/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/TextAnalyticsAPIExtensions.cs (100%) rename src/SDKs/CognitiveServices/{dataplane => dataplane1}/Language/Microsoft.CognitiveServices.Language/Microsoft.CognitiveServices.Language.csproj (100%) rename src/SDKs/CognitiveServices/{dataplane => dataplane1}/Vision/Microsoft.CognitiveServices.Vision.Tests/BaseTests.cs (100%) rename src/SDKs/CognitiveServices/{dataplane => dataplane1}/Vision/Microsoft.CognitiveServices.Vision.Tests/FaceDetectionTests.cs (100%) rename src/SDKs/CognitiveServices/{dataplane => dataplane1}/Vision/Microsoft.CognitiveServices.Vision.Tests/Microsoft.CognitiveServices.Vision.Tests.csproj (100%) rename src/SDKs/CognitiveServices/{dataplane => dataplane1}/Vision/Microsoft.CognitiveServices.Vision.Tests/SessionRecords/FaceSDK.Tests.FaceDetectionTests/FaceDetection.json (100%) rename src/SDKs/CognitiveServices/{dataplane => dataplane1}/Vision/Microsoft.CognitiveServices.Vision.Tests/TestImages/detection1.jpg (100%) rename src/SDKs/CognitiveServices/{dataplane => dataplane1}/Vision/Microsoft.CognitiveServices.Vision.sln (100%) rename src/SDKs/CognitiveServices/{dataplane => dataplane1}/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceAPI.cs (100%) rename src/SDKs/CognitiveServices/{dataplane => dataplane1}/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceList.cs (100%) rename src/SDKs/CognitiveServices/{dataplane => dataplane1}/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceListExtensions.cs (100%) rename src/SDKs/CognitiveServices/{dataplane => dataplane1}/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceOperations.cs (100%) rename src/SDKs/CognitiveServices/{dataplane => dataplane1}/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceOperationsExtensions.cs (100%) rename src/SDKs/CognitiveServices/{dataplane => dataplane1}/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IFaceAPI.cs (100%) rename src/SDKs/CognitiveServices/{dataplane => dataplane1}/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IFaceList.cs (100%) rename src/SDKs/CognitiveServices/{dataplane => dataplane1}/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IFaceOperations.cs (100%) rename src/SDKs/CognitiveServices/{dataplane => dataplane1}/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IPerson.cs (100%) rename src/SDKs/CognitiveServices/{dataplane => dataplane1}/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IPersonGroup.cs (100%) rename src/SDKs/CognitiveServices/{dataplane => dataplane1}/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/APIError.cs (100%) rename src/SDKs/CognitiveServices/{dataplane => dataplane1}/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/APIErrorException.cs (100%) rename src/SDKs/CognitiveServices/{dataplane => dataplane1}/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/AzureRegion.cs (100%) rename src/SDKs/CognitiveServices/{dataplane => dataplane1}/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreateFaceListRequest.cs (100%) rename src/SDKs/CognitiveServices/{dataplane => dataplane1}/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreatePersonGroupRequest.cs (100%) rename src/SDKs/CognitiveServices/{dataplane => dataplane1}/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreatePersonRequest.cs (100%) rename src/SDKs/CognitiveServices/{dataplane => dataplane1}/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreatePersonResult.cs (100%) rename src/SDKs/CognitiveServices/{dataplane => dataplane1}/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/DetectedFace.cs (100%) rename src/SDKs/CognitiveServices/{dataplane => dataplane1}/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/EmotionProperties.cs (100%) rename src/SDKs/CognitiveServices/{dataplane => dataplane1}/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/Error.cs (100%) rename src/SDKs/CognitiveServices/{dataplane => dataplane1}/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FaceAttributes.cs (100%) rename src/SDKs/CognitiveServices/{dataplane => dataplane1}/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FaceLandmarks.cs (100%) rename src/SDKs/CognitiveServices/{dataplane => dataplane1}/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FaceRectangle.cs (100%) rename src/SDKs/CognitiveServices/{dataplane => dataplane1}/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FacialHairProperties.cs (100%) rename src/SDKs/CognitiveServices/{dataplane => dataplane1}/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FindSimilarRequest.cs (100%) rename src/SDKs/CognitiveServices/{dataplane => dataplane1}/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/GetFaceListResult.cs (100%) rename src/SDKs/CognitiveServices/{dataplane => dataplane1}/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/GroupRequest.cs (100%) rename src/SDKs/CognitiveServices/{dataplane => dataplane1}/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/GroupResponse.cs (100%) rename src/SDKs/CognitiveServices/{dataplane => dataplane1}/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/HeadPoseProperties.cs (100%) rename src/SDKs/CognitiveServices/{dataplane => dataplane1}/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/IdentifyRequest.cs (100%) rename src/SDKs/CognitiveServices/{dataplane => dataplane1}/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/IdentifyResultCandidate.cs (100%) rename src/SDKs/CognitiveServices/{dataplane => dataplane1}/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/IdentifyResultItem.cs (100%) rename src/SDKs/CognitiveServices/{dataplane => dataplane1}/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/ImageUrl.cs (100%) rename src/SDKs/CognitiveServices/{dataplane => dataplane1}/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/PersonFaceResult.cs (100%) rename src/SDKs/CognitiveServices/{dataplane => dataplane1}/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/PersonGroupResult.cs (100%) rename src/SDKs/CognitiveServices/{dataplane => dataplane1}/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/PersonResult.cs (100%) rename src/SDKs/CognitiveServices/{dataplane => dataplane1}/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/Position.cs (100%) rename src/SDKs/CognitiveServices/{dataplane => dataplane1}/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/SimilarFaceResult.cs (100%) rename src/SDKs/CognitiveServices/{dataplane => dataplane1}/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/TrainingStatus.cs (100%) rename src/SDKs/CognitiveServices/{dataplane => dataplane1}/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/UpdatePersonFaceDataRequest.cs (100%) rename src/SDKs/CognitiveServices/{dataplane => dataplane1}/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/VerifyRequest.cs (100%) rename src/SDKs/CognitiveServices/{dataplane => dataplane1}/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/VerifyResult.cs (100%) rename src/SDKs/CognitiveServices/{dataplane => dataplane1}/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Person.cs (100%) rename src/SDKs/CognitiveServices/{dataplane => dataplane1}/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/PersonExtensions.cs (100%) rename src/SDKs/CognitiveServices/{dataplane => dataplane1}/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/PersonGroup.cs (100%) rename src/SDKs/CognitiveServices/{dataplane => dataplane1}/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/PersonGroupExtensions.cs (100%) rename src/SDKs/CognitiveServices/{dataplane => dataplane1}/Vision/Microsoft.CognitiveServices.Vision/Microsoft.CognitiveServices.Vision.csproj (100%) diff --git a/src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language.Tests/BaseTests.cs b/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language.Tests/BaseTests.cs similarity index 100% rename from src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language.Tests/BaseTests.cs rename to src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language.Tests/BaseTests.cs diff --git a/src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language.Tests/Microsoft.CognitiveServices.Language.Tests.csproj b/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language.Tests/Microsoft.CognitiveServices.Language.Tests.csproj similarity index 100% rename from src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language.Tests/Microsoft.CognitiveServices.Language.Tests.csproj rename to src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language.Tests/Microsoft.CognitiveServices.Language.Tests.csproj diff --git a/src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language.Tests/SessionRecords/Language.TextAnalytics.Tests.DetectLanguageTests/DetectLanguage.json b/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language.Tests/SessionRecords/Language.TextAnalytics.Tests.DetectLanguageTests/DetectLanguage.json similarity index 100% rename from src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language.Tests/SessionRecords/Language.TextAnalytics.Tests.DetectLanguageTests/DetectLanguage.json rename to src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language.Tests/SessionRecords/Language.TextAnalytics.Tests.DetectLanguageTests/DetectLanguage.json diff --git a/src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language.Tests/SessionRecords/Language.TextAnalytics.Tests.KeyPhrasesTests/KeyPhrases.json b/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language.Tests/SessionRecords/Language.TextAnalytics.Tests.KeyPhrasesTests/KeyPhrases.json similarity index 100% rename from src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language.Tests/SessionRecords/Language.TextAnalytics.Tests.KeyPhrasesTests/KeyPhrases.json rename to src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language.Tests/SessionRecords/Language.TextAnalytics.Tests.KeyPhrasesTests/KeyPhrases.json diff --git a/src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language.Tests/SessionRecords/Language.TextAnalytics.Tests.SentimentTests/Sentiment.json b/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language.Tests/SessionRecords/Language.TextAnalytics.Tests.SentimentTests/Sentiment.json similarity index 100% rename from src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language.Tests/SessionRecords/Language.TextAnalytics.Tests.SentimentTests/Sentiment.json rename to src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language.Tests/SessionRecords/Language.TextAnalytics.Tests.SentimentTests/Sentiment.json diff --git a/src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language.Tests/TextAnalytics/DetectLanguageTests.cs b/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language.Tests/TextAnalytics/DetectLanguageTests.cs similarity index 100% rename from src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language.Tests/TextAnalytics/DetectLanguageTests.cs rename to src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language.Tests/TextAnalytics/DetectLanguageTests.cs diff --git a/src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language.Tests/TextAnalytics/KeyPhrasesTests.cs b/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language.Tests/TextAnalytics/KeyPhrasesTests.cs similarity index 100% rename from src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language.Tests/TextAnalytics/KeyPhrasesTests.cs rename to src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language.Tests/TextAnalytics/KeyPhrasesTests.cs diff --git a/src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language.Tests/TextAnalytics/SentimentTests.cs b/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language.Tests/TextAnalytics/SentimentTests.cs similarity index 100% rename from src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language.Tests/TextAnalytics/SentimentTests.cs rename to src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language.Tests/TextAnalytics/SentimentTests.cs diff --git a/src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language.sln b/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language.sln similarity index 100% rename from src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language.sln rename to src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language.sln diff --git a/src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/ITextAnalyticsAPI.cs b/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/ITextAnalyticsAPI.cs similarity index 100% rename from src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/ITextAnalyticsAPI.cs rename to src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/ITextAnalyticsAPI.cs diff --git a/src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/BatchInputV2.cs b/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/BatchInputV2.cs similarity index 100% rename from src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/BatchInputV2.cs rename to src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/BatchInputV2.cs diff --git a/src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/DetectedLanguageV2.cs b/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/DetectedLanguageV2.cs similarity index 100% rename from src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/DetectedLanguageV2.cs rename to src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/DetectedLanguageV2.cs diff --git a/src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/ErrorRecordV2.cs b/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/ErrorRecordV2.cs similarity index 100% rename from src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/ErrorRecordV2.cs rename to src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/ErrorRecordV2.cs diff --git a/src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/ErrorResponse.cs b/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/ErrorResponse.cs similarity index 100% rename from src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/ErrorResponse.cs rename to src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/ErrorResponse.cs diff --git a/src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/ErrorResponseException.cs b/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/ErrorResponseException.cs similarity index 100% rename from src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/ErrorResponseException.cs rename to src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/ErrorResponseException.cs diff --git a/src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/InputV2.cs b/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/InputV2.cs similarity index 100% rename from src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/InputV2.cs rename to src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/InputV2.cs diff --git a/src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/InternalError.cs b/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/InternalError.cs similarity index 100% rename from src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/InternalError.cs rename to src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/InternalError.cs diff --git a/src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/KeyPhraseBatchResultItemV2.cs b/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/KeyPhraseBatchResultItemV2.cs similarity index 100% rename from src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/KeyPhraseBatchResultItemV2.cs rename to src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/KeyPhraseBatchResultItemV2.cs diff --git a/src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/KeyPhraseBatchResultV2.cs b/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/KeyPhraseBatchResultV2.cs similarity index 100% rename from src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/KeyPhraseBatchResultV2.cs rename to src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/KeyPhraseBatchResultV2.cs diff --git a/src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/LanguageBatchResultItemV2.cs b/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/LanguageBatchResultItemV2.cs similarity index 100% rename from src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/LanguageBatchResultItemV2.cs rename to src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/LanguageBatchResultItemV2.cs diff --git a/src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/LanguageBatchResultV2.cs b/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/LanguageBatchResultV2.cs similarity index 100% rename from src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/LanguageBatchResultV2.cs rename to src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/LanguageBatchResultV2.cs diff --git a/src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/MultiLanguageBatchInputV2.cs b/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/MultiLanguageBatchInputV2.cs similarity index 100% rename from src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/MultiLanguageBatchInputV2.cs rename to src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/MultiLanguageBatchInputV2.cs diff --git a/src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/MultiLanguageInputV2.cs b/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/MultiLanguageInputV2.cs similarity index 100% rename from src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/MultiLanguageInputV2.cs rename to src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/MultiLanguageInputV2.cs diff --git a/src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/SentimentBatchResultItemV2.cs b/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/SentimentBatchResultItemV2.cs similarity index 100% rename from src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/SentimentBatchResultItemV2.cs rename to src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/SentimentBatchResultItemV2.cs diff --git a/src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/SentimentBatchResultV2.cs b/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/SentimentBatchResultV2.cs similarity index 100% rename from src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/SentimentBatchResultV2.cs rename to src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/SentimentBatchResultV2.cs diff --git a/src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/TextAnalyticsAPI.cs b/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/TextAnalyticsAPI.cs similarity index 100% rename from src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/TextAnalyticsAPI.cs rename to src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/TextAnalyticsAPI.cs diff --git a/src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/TextAnalyticsAPIExtensions.cs b/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/TextAnalyticsAPIExtensions.cs similarity index 100% rename from src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/TextAnalyticsAPIExtensions.cs rename to src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/TextAnalyticsAPIExtensions.cs diff --git a/src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language/Microsoft.CognitiveServices.Language.csproj b/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Microsoft.CognitiveServices.Language.csproj similarity index 100% rename from src/SDKs/CognitiveServices/dataplane/Language/Microsoft.CognitiveServices.Language/Microsoft.CognitiveServices.Language.csproj rename to src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Microsoft.CognitiveServices.Language.csproj diff --git a/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision.Tests/BaseTests.cs b/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision.Tests/BaseTests.cs similarity index 100% rename from src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision.Tests/BaseTests.cs rename to src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision.Tests/BaseTests.cs diff --git a/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision.Tests/FaceDetectionTests.cs b/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision.Tests/FaceDetectionTests.cs similarity index 100% rename from src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision.Tests/FaceDetectionTests.cs rename to src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision.Tests/FaceDetectionTests.cs diff --git a/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision.Tests/Microsoft.CognitiveServices.Vision.Tests.csproj b/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision.Tests/Microsoft.CognitiveServices.Vision.Tests.csproj similarity index 100% rename from src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision.Tests/Microsoft.CognitiveServices.Vision.Tests.csproj rename to src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision.Tests/Microsoft.CognitiveServices.Vision.Tests.csproj diff --git a/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision.Tests/SessionRecords/FaceSDK.Tests.FaceDetectionTests/FaceDetection.json b/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision.Tests/SessionRecords/FaceSDK.Tests.FaceDetectionTests/FaceDetection.json similarity index 100% rename from src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision.Tests/SessionRecords/FaceSDK.Tests.FaceDetectionTests/FaceDetection.json rename to src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision.Tests/SessionRecords/FaceSDK.Tests.FaceDetectionTests/FaceDetection.json diff --git a/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision.Tests/TestImages/detection1.jpg b/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision.Tests/TestImages/detection1.jpg similarity index 100% rename from src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision.Tests/TestImages/detection1.jpg rename to src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision.Tests/TestImages/detection1.jpg diff --git a/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision.sln b/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision.sln similarity index 100% rename from src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision.sln rename to src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision.sln diff --git a/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceAPI.cs b/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceAPI.cs similarity index 100% rename from src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceAPI.cs rename to src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceAPI.cs diff --git a/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceList.cs b/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceList.cs similarity index 100% rename from src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceList.cs rename to src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceList.cs diff --git a/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceListExtensions.cs b/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceListExtensions.cs similarity index 100% rename from src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceListExtensions.cs rename to src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceListExtensions.cs diff --git a/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceOperations.cs b/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceOperations.cs similarity index 100% rename from src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceOperations.cs rename to src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceOperations.cs diff --git a/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceOperationsExtensions.cs b/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceOperationsExtensions.cs similarity index 100% rename from src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceOperationsExtensions.cs rename to src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceOperationsExtensions.cs diff --git a/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IFaceAPI.cs b/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IFaceAPI.cs similarity index 100% rename from src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IFaceAPI.cs rename to src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IFaceAPI.cs diff --git a/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IFaceList.cs b/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IFaceList.cs similarity index 100% rename from src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IFaceList.cs rename to src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IFaceList.cs diff --git a/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IFaceOperations.cs b/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IFaceOperations.cs similarity index 100% rename from src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IFaceOperations.cs rename to src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IFaceOperations.cs diff --git a/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IPerson.cs b/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IPerson.cs similarity index 100% rename from src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IPerson.cs rename to src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IPerson.cs diff --git a/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IPersonGroup.cs b/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IPersonGroup.cs similarity index 100% rename from src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IPersonGroup.cs rename to src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IPersonGroup.cs diff --git a/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/APIError.cs b/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/APIError.cs similarity index 100% rename from src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/APIError.cs rename to src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/APIError.cs diff --git a/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/APIErrorException.cs b/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/APIErrorException.cs similarity index 100% rename from src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/APIErrorException.cs rename to src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/APIErrorException.cs diff --git a/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/AzureRegion.cs b/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/AzureRegion.cs similarity index 100% rename from src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/AzureRegion.cs rename to src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/AzureRegion.cs diff --git a/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreateFaceListRequest.cs b/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreateFaceListRequest.cs similarity index 100% rename from src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreateFaceListRequest.cs rename to src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreateFaceListRequest.cs diff --git a/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreatePersonGroupRequest.cs b/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreatePersonGroupRequest.cs similarity index 100% rename from src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreatePersonGroupRequest.cs rename to src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreatePersonGroupRequest.cs diff --git a/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreatePersonRequest.cs b/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreatePersonRequest.cs similarity index 100% rename from src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreatePersonRequest.cs rename to src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreatePersonRequest.cs diff --git a/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreatePersonResult.cs b/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreatePersonResult.cs similarity index 100% rename from src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreatePersonResult.cs rename to src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreatePersonResult.cs diff --git a/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/DetectedFace.cs b/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/DetectedFace.cs similarity index 100% rename from src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/DetectedFace.cs rename to src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/DetectedFace.cs diff --git a/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/EmotionProperties.cs b/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/EmotionProperties.cs similarity index 100% rename from src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/EmotionProperties.cs rename to src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/EmotionProperties.cs diff --git a/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/Error.cs b/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/Error.cs similarity index 100% rename from src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/Error.cs rename to src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/Error.cs diff --git a/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FaceAttributes.cs b/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FaceAttributes.cs similarity index 100% rename from src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FaceAttributes.cs rename to src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FaceAttributes.cs diff --git a/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FaceLandmarks.cs b/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FaceLandmarks.cs similarity index 100% rename from src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FaceLandmarks.cs rename to src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FaceLandmarks.cs diff --git a/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FaceRectangle.cs b/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FaceRectangle.cs similarity index 100% rename from src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FaceRectangle.cs rename to src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FaceRectangle.cs diff --git a/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FacialHairProperties.cs b/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FacialHairProperties.cs similarity index 100% rename from src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FacialHairProperties.cs rename to src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FacialHairProperties.cs diff --git a/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FindSimilarRequest.cs b/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FindSimilarRequest.cs similarity index 100% rename from src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FindSimilarRequest.cs rename to src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FindSimilarRequest.cs diff --git a/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/GetFaceListResult.cs b/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/GetFaceListResult.cs similarity index 100% rename from src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/GetFaceListResult.cs rename to src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/GetFaceListResult.cs diff --git a/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/GroupRequest.cs b/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/GroupRequest.cs similarity index 100% rename from src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/GroupRequest.cs rename to src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/GroupRequest.cs diff --git a/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/GroupResponse.cs b/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/GroupResponse.cs similarity index 100% rename from src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/GroupResponse.cs rename to src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/GroupResponse.cs diff --git a/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/HeadPoseProperties.cs b/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/HeadPoseProperties.cs similarity index 100% rename from src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/HeadPoseProperties.cs rename to src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/HeadPoseProperties.cs diff --git a/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/IdentifyRequest.cs b/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/IdentifyRequest.cs similarity index 100% rename from src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/IdentifyRequest.cs rename to src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/IdentifyRequest.cs diff --git a/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/IdentifyResultCandidate.cs b/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/IdentifyResultCandidate.cs similarity index 100% rename from src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/IdentifyResultCandidate.cs rename to src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/IdentifyResultCandidate.cs diff --git a/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/IdentifyResultItem.cs b/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/IdentifyResultItem.cs similarity index 100% rename from src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/IdentifyResultItem.cs rename to src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/IdentifyResultItem.cs diff --git a/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/ImageUrl.cs b/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/ImageUrl.cs similarity index 100% rename from src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/ImageUrl.cs rename to src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/ImageUrl.cs diff --git a/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/PersonFaceResult.cs b/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/PersonFaceResult.cs similarity index 100% rename from src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/PersonFaceResult.cs rename to src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/PersonFaceResult.cs diff --git a/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/PersonGroupResult.cs b/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/PersonGroupResult.cs similarity index 100% rename from src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/PersonGroupResult.cs rename to src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/PersonGroupResult.cs diff --git a/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/PersonResult.cs b/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/PersonResult.cs similarity index 100% rename from src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/PersonResult.cs rename to src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/PersonResult.cs diff --git a/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/Position.cs b/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/Position.cs similarity index 100% rename from src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/Position.cs rename to src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/Position.cs diff --git a/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/SimilarFaceResult.cs b/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/SimilarFaceResult.cs similarity index 100% rename from src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/SimilarFaceResult.cs rename to src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/SimilarFaceResult.cs diff --git a/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/TrainingStatus.cs b/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/TrainingStatus.cs similarity index 100% rename from src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/TrainingStatus.cs rename to src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/TrainingStatus.cs diff --git a/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/UpdatePersonFaceDataRequest.cs b/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/UpdatePersonFaceDataRequest.cs similarity index 100% rename from src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/UpdatePersonFaceDataRequest.cs rename to src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/UpdatePersonFaceDataRequest.cs diff --git a/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/VerifyRequest.cs b/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/VerifyRequest.cs similarity index 100% rename from src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/VerifyRequest.cs rename to src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/VerifyRequest.cs diff --git a/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/VerifyResult.cs b/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/VerifyResult.cs similarity index 100% rename from src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/VerifyResult.cs rename to src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/VerifyResult.cs diff --git a/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Person.cs b/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Person.cs similarity index 100% rename from src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Person.cs rename to src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Person.cs diff --git a/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/PersonExtensions.cs b/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/PersonExtensions.cs similarity index 100% rename from src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/PersonExtensions.cs rename to src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/PersonExtensions.cs diff --git a/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/PersonGroup.cs b/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/PersonGroup.cs similarity index 100% rename from src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/PersonGroup.cs rename to src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/PersonGroup.cs diff --git a/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/PersonGroupExtensions.cs b/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/PersonGroupExtensions.cs similarity index 100% rename from src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/PersonGroupExtensions.cs rename to src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/PersonGroupExtensions.cs diff --git a/src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Microsoft.CognitiveServices.Vision.csproj b/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Microsoft.CognitiveServices.Vision.csproj similarity index 100% rename from src/SDKs/CognitiveServices/dataplane/Vision/Microsoft.CognitiveServices.Vision/Microsoft.CognitiveServices.Vision.csproj rename to src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Microsoft.CognitiveServices.Vision.csproj From 349f35df539e31053592c712ae6ffb8cbb5c42d4 Mon Sep 17 00:00:00 2001 From: "David Li (WINDOWS)" Date: Mon, 11 Sep 2017 16:18:07 -0700 Subject: [PATCH 15/21] Move back to dataPlane with right casing --- .../BaseTests.cs | 28 - ...ft.CognitiveServices.Language.Tests.csproj | 30 - .../DetectLanguage.json | 55 - .../KeyPhrases.json | 55 - .../Sentiment.json | 55 - .../TextAnalytics/DetectLanguageTests.cs | 34 - .../TextAnalytics/KeyPhrasesTests.cs | 36 - .../TextAnalytics/SentimentTests.cs | 36 - .../Microsoft.CognitiveServices.Language.sln | 28 - .../TextAnalytics/ITextAnalyticsAPI.cs | 125 -- .../TextAnalytics/Models/BatchInputV2.cs | 45 - .../Models/DetectedLanguageV2.cs | 69 - .../TextAnalytics/Models/ErrorRecordV2.cs | 54 - .../TextAnalytics/Models/ErrorResponse.cs | 61 - .../Models/ErrorResponseException.cs | 59 - .../Generated/TextAnalytics/Models/InputV2.cs | 51 - .../TextAnalytics/Models/InternalError.cs | 55 - .../Models/KeyPhraseBatchResultItemV2.cs | 59 - .../Models/KeyPhraseBatchResultV2.cs | 51 - .../Models/LanguageBatchResultItemV2.cs | 56 - .../Models/LanguageBatchResultV2.cs | 51 - .../Models/MultiLanguageBatchInputV2.cs | 45 - .../Models/MultiLanguageInputV2.cs | 63 - .../Models/SentimentBatchResultItemV2.cs | 61 - .../Models/SentimentBatchResultV2.cs | 51 - .../TextAnalytics/TextAnalyticsAPI.cs | 637 ------ .../TextAnalyticsAPIExtensions.cs | 169 -- ...icrosoft.CognitiveServices.Language.csproj | 24 - .../BaseTests.cs | 31 - .../FaceDetectionTests.cs | 30 - ...soft.CognitiveServices.Vision.Tests.csproj | 35 - .../FaceDetection.json | 64 - .../TestImages/detection1.jpg | Bin 365482 -> 0 bytes .../Microsoft.CognitiveServices.Vision.sln | 28 - .../Generated/Face/FaceAPI.cs | 137 -- .../Generated/Face/FaceList.cs | 1400 ------------- .../Generated/Face/FaceListExtensions.cs | 363 ---- .../Generated/Face/FaceOperations.cs | 1263 ------------ .../Face/FaceOperationsExtensions.cs | 368 ---- .../Generated/Face/IFaceAPI.cs | 65 - .../Generated/Face/IFaceList.cs | 227 --- .../Generated/Face/IFaceOperations.cs | 230 --- .../Generated/Face/IPerson.cs | 307 --- .../Generated/Face/IPersonGroup.cs | 189 -- .../Generated/Face/Models/APIError.cs | 46 - .../Face/Models/APIErrorException.cs | 58 - .../Generated/Face/Models/AzureRegion.cs | 22 - .../Face/Models/CreateFaceListRequest.cs | 83 - .../Face/Models/CreatePersonGroupRequest.cs | 83 - .../Face/Models/CreatePersonRequest.cs | 84 - .../Face/Models/CreatePersonResult.cs | 62 - .../Generated/Face/Models/DetectedFace.cs | 87 - .../Face/Models/EmotionProperties.cs | 162 -- .../Generated/Face/Models/Error.cs | 52 - .../Generated/Face/Models/FaceAttributes.cs | 125 -- .../Generated/Face/Models/FaceLandmarks.cs | 320 --- .../Generated/Face/Models/FaceRectangle.cs | 87 - .../Face/Models/FacialHairProperties.cs | 92 - .../Face/Models/FindSimilarRequest.cs | 151 -- .../Face/Models/GetFaceListResult.cs | 105 - .../Generated/Face/Models/GroupRequest.cs | 73 - .../Generated/Face/Models/GroupResponse.cs | 76 - .../Face/Models/HeadPoseProperties.cs | 58 - .../Generated/Face/Models/IdentifyRequest.cs | 122 -- .../Face/Models/IdentifyResultCandidate.cs | 80 - .../Face/Models/IdentifyResultItem.cs | 91 - .../Generated/Face/Models/ImageUrl.cs | 57 - .../Generated/Face/Models/PersonFaceResult.cs | 76 - .../Face/Models/PersonGroupResult.cs | 101 - .../Generated/Face/Models/PersonResult.cs | 93 - .../Generated/Face/Models/Position.cs | 66 - .../Face/Models/SimilarFaceResult.cs | 100 - .../Generated/Face/Models/TrainingStatus.cs | 105 - .../Models/UpdatePersonFaceDataRequest.cs | 69 - .../Generated/Face/Models/VerifyRequest.cs | 100 - .../Generated/Face/Models/VerifyResult.cs | 86 - .../Generated/Face/Person.cs | 1762 ----------------- .../Generated/Face/PersonExtensions.cs | 503 ----- .../Generated/Face/PersonGroup.cs | 1189 ----------- .../Generated/Face/PersonGroupExtensions.cs | 291 --- .../Microsoft.CognitiveServices.Vision.csproj | 25 - 81 files changed, 13622 deletions(-) delete mode 100644 src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language.Tests/BaseTests.cs delete mode 100644 src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language.Tests/Microsoft.CognitiveServices.Language.Tests.csproj delete mode 100644 src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language.Tests/SessionRecords/Language.TextAnalytics.Tests.DetectLanguageTests/DetectLanguage.json delete mode 100644 src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language.Tests/SessionRecords/Language.TextAnalytics.Tests.KeyPhrasesTests/KeyPhrases.json delete mode 100644 src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language.Tests/SessionRecords/Language.TextAnalytics.Tests.SentimentTests/Sentiment.json delete mode 100644 src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language.Tests/TextAnalytics/DetectLanguageTests.cs delete mode 100644 src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language.Tests/TextAnalytics/KeyPhrasesTests.cs delete mode 100644 src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language.Tests/TextAnalytics/SentimentTests.cs delete mode 100644 src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language.sln delete mode 100644 src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/ITextAnalyticsAPI.cs delete mode 100644 src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/BatchInputV2.cs delete mode 100644 src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/DetectedLanguageV2.cs delete mode 100644 src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/ErrorRecordV2.cs delete mode 100644 src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/ErrorResponse.cs delete mode 100644 src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/ErrorResponseException.cs delete mode 100644 src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/InputV2.cs delete mode 100644 src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/InternalError.cs delete mode 100644 src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/KeyPhraseBatchResultItemV2.cs delete mode 100644 src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/KeyPhraseBatchResultV2.cs delete mode 100644 src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/LanguageBatchResultItemV2.cs delete mode 100644 src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/LanguageBatchResultV2.cs delete mode 100644 src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/MultiLanguageBatchInputV2.cs delete mode 100644 src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/MultiLanguageInputV2.cs delete mode 100644 src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/SentimentBatchResultItemV2.cs delete mode 100644 src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/SentimentBatchResultV2.cs delete mode 100644 src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/TextAnalyticsAPI.cs delete mode 100644 src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/TextAnalyticsAPIExtensions.cs delete mode 100644 src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Microsoft.CognitiveServices.Language.csproj delete mode 100644 src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision.Tests/BaseTests.cs delete mode 100644 src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision.Tests/FaceDetectionTests.cs delete mode 100644 src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision.Tests/Microsoft.CognitiveServices.Vision.Tests.csproj delete mode 100644 src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision.Tests/SessionRecords/FaceSDK.Tests.FaceDetectionTests/FaceDetection.json delete mode 100644 src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision.Tests/TestImages/detection1.jpg delete mode 100644 src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision.sln delete mode 100644 src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceAPI.cs delete mode 100644 src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceList.cs delete mode 100644 src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceListExtensions.cs delete mode 100644 src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceOperations.cs delete mode 100644 src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceOperationsExtensions.cs delete mode 100644 src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IFaceAPI.cs delete mode 100644 src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IFaceList.cs delete mode 100644 src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IFaceOperations.cs delete mode 100644 src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IPerson.cs delete mode 100644 src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IPersonGroup.cs delete mode 100644 src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/APIError.cs delete mode 100644 src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/APIErrorException.cs delete mode 100644 src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/AzureRegion.cs delete mode 100644 src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreateFaceListRequest.cs delete mode 100644 src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreatePersonGroupRequest.cs delete mode 100644 src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreatePersonRequest.cs delete mode 100644 src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreatePersonResult.cs delete mode 100644 src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/DetectedFace.cs delete mode 100644 src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/EmotionProperties.cs delete mode 100644 src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/Error.cs delete mode 100644 src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FaceAttributes.cs delete mode 100644 src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FaceLandmarks.cs delete mode 100644 src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FaceRectangle.cs delete mode 100644 src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FacialHairProperties.cs delete mode 100644 src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FindSimilarRequest.cs delete mode 100644 src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/GetFaceListResult.cs delete mode 100644 src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/GroupRequest.cs delete mode 100644 src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/GroupResponse.cs delete mode 100644 src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/HeadPoseProperties.cs delete mode 100644 src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/IdentifyRequest.cs delete mode 100644 src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/IdentifyResultCandidate.cs delete mode 100644 src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/IdentifyResultItem.cs delete mode 100644 src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/ImageUrl.cs delete mode 100644 src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/PersonFaceResult.cs delete mode 100644 src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/PersonGroupResult.cs delete mode 100644 src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/PersonResult.cs delete mode 100644 src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/Position.cs delete mode 100644 src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/SimilarFaceResult.cs delete mode 100644 src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/TrainingStatus.cs delete mode 100644 src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/UpdatePersonFaceDataRequest.cs delete mode 100644 src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/VerifyRequest.cs delete mode 100644 src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/VerifyResult.cs delete mode 100644 src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Person.cs delete mode 100644 src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/PersonExtensions.cs delete mode 100644 src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/PersonGroup.cs delete mode 100644 src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/PersonGroupExtensions.cs delete mode 100644 src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Microsoft.CognitiveServices.Vision.csproj diff --git a/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language.Tests/BaseTests.cs b/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language.Tests/BaseTests.cs deleted file mode 100644 index 29d8cc1141b1..000000000000 --- a/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language.Tests/BaseTests.cs +++ /dev/null @@ -1,28 +0,0 @@ -using Microsoft.CognitiveServices.Language.TextAnalytics; -using System.Net.Http; - -namespace Language.Tests -{ - public abstract class BaseTests - { - public static bool IsTestTenant = false; - private static string SubscriptionKey = ""; - private static string Region = null; - - static BaseTests() - { - // Retrieve the configuration information. - - Region = "WestUS"; - } - - protected ITextAnalyticsAPI GetClient(DelegatingHandler handler) - { - ITextAnalyticsAPI client; - client = new TextAnalyticsAPI(handlers: handler); - client.SubscriptionKey = SubscriptionKey; - - return client; - } - } -} diff --git a/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language.Tests/Microsoft.CognitiveServices.Language.Tests.csproj b/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language.Tests/Microsoft.CognitiveServices.Language.Tests.csproj deleted file mode 100644 index 0100c98c660a..000000000000 --- a/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language.Tests/Microsoft.CognitiveServices.Language.Tests.csproj +++ /dev/null @@ -1,30 +0,0 @@ - - - - Microsoft.CognitiveServices.Language.Tests - Microsoft.CognitiveServices.Language.Tests Class Library - Microsoft.CognitiveServices.Language.Tests - 1.0.0-preview - - - netcoreapp1.1 - Language.Tests - - - - - - - - - PreserveNewest - - - - - - - - - - diff --git a/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language.Tests/SessionRecords/Language.TextAnalytics.Tests.DetectLanguageTests/DetectLanguage.json b/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language.Tests/SessionRecords/Language.TextAnalytics.Tests.DetectLanguageTests/DetectLanguage.json deleted file mode 100644 index 09efd652ef69..000000000000 --- a/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language.Tests/SessionRecords/Language.TextAnalytics.Tests.DetectLanguageTests/DetectLanguage.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "Entries": [ - { - "RequestUri": "/text/analytics/v2.0/languages", - "EncodedRequestUri": "L3RleHQvYW5hbHl0aWNzL3YyLjAvbGFuZ3VhZ2Vz", - "RequestMethod": "POST", - "RequestBody": "{\r\n \"documents\": [\r\n {\r\n \"id\": \"id\",\r\n \"text\": \"I love my team mates\"\r\n }\r\n ]\r\n}", - "RequestHeaders": { - "Content-Type": [ - "application/json; charset=utf-8" - ], - "Content-Length": [ - "98" - ], - "Ocp-Apim-Subscription-Key": [ - "" - ], - "User-Agent": [ - "FxVersion/4.6.25211.01", - "Microsoft.CognitiveServices.Language.TextAnalytics.TextAnalyticsAPI/1.0.0" - ] - }, - "ResponseBody": "{\r\n \"documents\": [\r\n {\r\n \"id\": \"id\",\r\n \"detectedLanguages\": [\r\n {\r\n \"name\": \"English\",\r\n \"iso6391Name\": \"en\",\r\n \"score\": 1.0\r\n }\r\n ]\r\n }\r\n ],\r\n \"errors\": []\r\n}", - "ResponseHeaders": { - "Content-Type": [ - "application/json; charset=utf-8" - ], - "Date": [ - "Wed, 30 Aug 2017 02:11:18 GMT" - ], - "Transfer-Encoding": [ - "chunked" - ], - "x-ms-transaction-count": [ - "1" - ], - "x-aml-ta-request-id": [ - "473e3a1f-cf5e-4230-85b5-68fe2518370f" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "apim-request-id": [ - "69e6aeb0-e601-42ca-9468-f0cfaa408708" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains; preload" - ] - }, - "StatusCode": 200 - } - ], - "Names": {}, - "Variables": {} -} \ No newline at end of file diff --git a/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language.Tests/SessionRecords/Language.TextAnalytics.Tests.KeyPhrasesTests/KeyPhrases.json b/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language.Tests/SessionRecords/Language.TextAnalytics.Tests.KeyPhrasesTests/KeyPhrases.json deleted file mode 100644 index eefb0cd06cd0..000000000000 --- a/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language.Tests/SessionRecords/Language.TextAnalytics.Tests.KeyPhrasesTests/KeyPhrases.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "Entries": [ - { - "RequestUri": "/text/analytics/v2.0/keyPhrases", - "EncodedRequestUri": "L3RleHQvYW5hbHl0aWNzL3YyLjAva2V5UGhyYXNlcw==", - "RequestMethod": "POST", - "RequestBody": "{\r\n \"documents\": [\r\n {\r\n \"language\": \"en\",\r\n \"id\": \"id\",\r\n \"text\": \"I love my team mates\"\r\n }\r\n ]\r\n}", - "RequestHeaders": { - "Content-Type": [ - "application/json; charset=utf-8" - ], - "Content-Length": [ - "123" - ], - "Ocp-Apim-Subscription-Key": [ - "" - ], - "User-Agent": [ - "FxVersion/4.6.25211.01", - "Microsoft.CognitiveServices.Language.TextAnalytics.TextAnalyticsAPI/1.0.0" - ] - }, - "ResponseBody": "{\r\n \"documents\": [\r\n {\r\n \"keyPhrases\": [\r\n \"team mates\"\r\n ],\r\n \"id\": \"id\"\r\n }\r\n ],\r\n \"errors\": []\r\n}", - "ResponseHeaders": { - "Content-Type": [ - "application/json; charset=utf-8" - ], - "Date": [ - "Wed, 30 Aug 2017 02:11:17 GMT" - ], - "Transfer-Encoding": [ - "chunked" - ], - "x-ms-transaction-count": [ - "1" - ], - "x-aml-ta-request-id": [ - "460baaca-7f57-42c1-8cc7-8852957d05b9" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "apim-request-id": [ - "3f09b1c9-fe3b-46bb-badf-98108c599825" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains; preload" - ] - }, - "StatusCode": 200 - } - ], - "Names": {}, - "Variables": {} -} \ No newline at end of file diff --git a/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language.Tests/SessionRecords/Language.TextAnalytics.Tests.SentimentTests/Sentiment.json b/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language.Tests/SessionRecords/Language.TextAnalytics.Tests.SentimentTests/Sentiment.json deleted file mode 100644 index c5f620b0eadf..000000000000 --- a/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language.Tests/SessionRecords/Language.TextAnalytics.Tests.SentimentTests/Sentiment.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "Entries": [ - { - "RequestUri": "/text/analytics/v2.0/sentiment", - "EncodedRequestUri": "L3RleHQvYW5hbHl0aWNzL3YyLjAvc2VudGltZW50", - "RequestMethod": "POST", - "RequestBody": "{\r\n \"documents\": [\r\n {\r\n \"language\": \"en\",\r\n \"id\": \"id\",\r\n \"text\": \"I love my team mates\"\r\n }\r\n ]\r\n}", - "RequestHeaders": { - "Content-Type": [ - "application/json; charset=utf-8" - ], - "Content-Length": [ - "123" - ], - "Ocp-Apim-Subscription-Key": [ - "" - ], - "User-Agent": [ - "FxVersion/4.6.25211.01", - "Microsoft.CognitiveServices.Language.TextAnalytics.TextAnalyticsAPI/1.0.0" - ] - }, - "ResponseBody": "{\r\n \"documents\": [\r\n {\r\n \"score\": 0.97380387783050537,\r\n \"id\": \"id\"\r\n }\r\n ],\r\n \"errors\": []\r\n}", - "ResponseHeaders": { - "Content-Type": [ - "application/json; charset=utf-8" - ], - "Date": [ - "Wed, 30 Aug 2017 02:11:17 GMT" - ], - "Transfer-Encoding": [ - "chunked" - ], - "x-ms-transaction-count": [ - "1" - ], - "x-aml-ta-request-id": [ - "06db056b-1bf0-4994-933a-f08eacf94053" - ], - "X-Content-Type-Options": [ - "nosniff" - ], - "apim-request-id": [ - "63c5b90f-3a35-48c3-bb85-d89218d1202e" - ], - "Strict-Transport-Security": [ - "max-age=31536000; includeSubDomains; preload" - ] - }, - "StatusCode": 200 - } - ], - "Names": {}, - "Variables": {} -} \ No newline at end of file diff --git a/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language.Tests/TextAnalytics/DetectLanguageTests.cs b/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language.Tests/TextAnalytics/DetectLanguageTests.cs deleted file mode 100644 index 3e647529e8ea..000000000000 --- a/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language.Tests/TextAnalytics/DetectLanguageTests.cs +++ /dev/null @@ -1,34 +0,0 @@ -using Language.Tests; -using Microsoft.Azure.Test.HttpRecorder; -using Microsoft.CognitiveServices.Language.TextAnalytics; -using Microsoft.CognitiveServices.Language.TextAnalytics.Models; -using Microsoft.Rest.ClientRuntime.Azure.TestFramework; -using System.Collections.Generic; -using Xunit; - -namespace Language.TextAnalytics.Tests -{ - public class DetectLanguageTests : BaseTests - { - [Fact] - public void DetectLanguage() - { - using (MockContext context = MockContext.Start(this.GetType().FullName)) - { - HttpMockServer.Initialize(this.GetType().FullName, "DetectLanguage"); - ITextAnalyticsAPI client = GetClient(HttpMockServer.CreateInstance()); - LanguageBatchResultV2 result = client.DetectLanguage( - new BatchInputV2( - new List() - { - new InputV2("id","I love my team mates") - })); - - Assert.Equal("English", result.Documents[0].DetectedLanguages[0].Name); - Assert.Equal("en", result.Documents[0].DetectedLanguages[0].Iso6391Name); - Assert.True(result.Documents[0].DetectedLanguages[0].Score > 0.7); - context.Stop(); - } - } - } -} diff --git a/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language.Tests/TextAnalytics/KeyPhrasesTests.cs b/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language.Tests/TextAnalytics/KeyPhrasesTests.cs deleted file mode 100644 index f903b9c4d4b1..000000000000 --- a/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language.Tests/TextAnalytics/KeyPhrasesTests.cs +++ /dev/null @@ -1,36 +0,0 @@ -using Language.Tests; -using Microsoft.Azure.Test.HttpRecorder; -using Microsoft.CognitiveServices.Language.TextAnalytics; -using Microsoft.CognitiveServices.Language.TextAnalytics.Models; -using Microsoft.Rest.ClientRuntime.Azure.TestFramework; -using System.Collections.Generic; -using Xunit; - -namespace Language.TextAnalytics.Tests -{ - public class KeyPhrasesTests : BaseTests - { - [Fact] - public void KeyPhrases() - { - using (MockContext context = MockContext.Start(this.GetType().FullName)) - { - HttpMockServer.Initialize(this.GetType().FullName, "KeyPhrases"); - ITextAnalyticsAPI client = GetClient(HttpMockServer.CreateInstance()); - KeyPhraseBatchResultV2 result = client.KeyPhrases( - new MultiLanguageBatchInputV2( - new List() - { - new MultiLanguageInputV2() - { - Id ="id", - Text ="I love my team mates", - Language ="en" - } - })); - - Assert.Equal("team mates", result.Documents[0].KeyPhrases[0]); - } - } - } -} diff --git a/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language.Tests/TextAnalytics/SentimentTests.cs b/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language.Tests/TextAnalytics/SentimentTests.cs deleted file mode 100644 index d91ba9edada7..000000000000 --- a/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language.Tests/TextAnalytics/SentimentTests.cs +++ /dev/null @@ -1,36 +0,0 @@ -using Language.Tests; -using Microsoft.Azure.Test.HttpRecorder; -using Microsoft.CognitiveServices.Language.TextAnalytics; -using Microsoft.CognitiveServices.Language.TextAnalytics.Models; -using Microsoft.Rest.ClientRuntime.Azure.TestFramework; -using System.Collections.Generic; -using Xunit; - -namespace Language.TextAnalytics.Tests -{ - public class SentimentTests : BaseTests - { - [Fact] - public void Sentiment() - { - using (MockContext context = MockContext.Start(this.GetType().FullName)) - { - HttpMockServer.Initialize(this.GetType().FullName, "Sentiment"); - ITextAnalyticsAPI client = GetClient(HttpMockServer.CreateInstance()); - SentimentBatchResultV2 result = client.Sentiment( - new MultiLanguageBatchInputV2( - new List() - { - new MultiLanguageInputV2() - { - Id ="id", - Text ="I love my team mates", - Language ="en" - } - })); - - Assert.True(result.Documents[0].Score > 0); - } - } - } -} diff --git a/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language.sln b/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language.sln deleted file mode 100644 index eb7dbc626eaa..000000000000 --- a/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language.sln +++ /dev/null @@ -1,28 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.26430.16 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.CognitiveServices.Language", "Microsoft.CognitiveServices.Language\Microsoft.CognitiveServices.Language.csproj", "{6807B854-8528-4FEE-A25D-C43C3AA2D601}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.CognitiveServices.Language.Tests", "Microsoft.CognitiveServices.Language.Tests\Microsoft.CognitiveServices.Language.Tests.csproj", "{5987D97A-E532-450C-BF22-A1F595C927F1}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {6807B854-8528-4FEE-A25D-C43C3AA2D601}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {6807B854-8528-4FEE-A25D-C43C3AA2D601}.Debug|Any CPU.Build.0 = Debug|Any CPU - {6807B854-8528-4FEE-A25D-C43C3AA2D601}.Release|Any CPU.ActiveCfg = Release|Any CPU - {6807B854-8528-4FEE-A25D-C43C3AA2D601}.Release|Any CPU.Build.0 = Release|Any CPU - {5987D97A-E532-450C-BF22-A1F595C927F1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5987D97A-E532-450C-BF22-A1F595C927F1}.Debug|Any CPU.Build.0 = Debug|Any CPU - {5987D97A-E532-450C-BF22-A1F595C927F1}.Release|Any CPU.ActiveCfg = Release|Any CPU - {5987D97A-E532-450C-BF22-A1F595C927F1}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/ITextAnalyticsAPI.cs b/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/ITextAnalyticsAPI.cs deleted file mode 100644 index 24cbe8bc6f7c..000000000000 --- a/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/ITextAnalyticsAPI.cs +++ /dev/null @@ -1,125 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Language.TextAnalytics -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Language; - using Microsoft.Rest; - using Models; - using Newtonsoft.Json; - using System.Collections; - using System.Collections.Generic; - using System.Threading; - using System.Threading.Tasks; - - /// - /// The Text Analytics API is a suite of text analytics web services built - /// with best-in-class Microsoft machine learning algorithms. - /// The API can be used to analyze unstructured text for tasks such as - /// sentiment analysis, key phrase extraction and language detection. - /// No training data is needed to use this API; just bring your text data. - /// This API uses advanced natural language processing techniques to - /// deliver best in class predictions. - /// - /// Further documentation can be found in - /// https://docs.microsoft.com/en-us/azure/cognitive-services/text-analytics/overview - /// - public partial interface ITextAnalyticsAPI : System.IDisposable - { - /// - /// The base URI of the service. - /// - - /// - /// Gets or sets json serialization settings. - /// - JsonSerializerSettings SerializationSettings { get; } - - /// - /// Gets or sets json deserialization settings. - /// - JsonSerializerSettings DeserializationSettings { get; } - - /// - /// Supported Azure regions for Cognitive Services endpoints - /// - string AzureRegion { get; } - - /// - /// Subscription key in header - /// - string SubscriptionKey { get; set; } - - - /// - /// The API returns a list of strings denoting the key talking points - /// in the input text. - /// We employ techniques from Microsoft Office's sophisticated Natural - /// Language Processing toolkit. - /// See the <a - /// href="https://docs.microsoft.com/en-us/azure/cognitive-services/text-analytics/overview#supported-languages">Text - /// Analytics Documentation</a> for details about the languages - /// that are supported by key phrase extraction. - /// - /// - /// Collection of documents to analyze. Documents can now contain a - /// language field to indicate the text language - /// - /// - /// The headers that will be added to request. - /// - /// - /// The cancellation token. - /// - Task> KeyPhrasesWithHttpMessagesAsync(MultiLanguageBatchInputV2 input, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - - /// - /// The API returns the detected language and a numeric score between 0 - /// and 1. - /// Scores close to 1 indicate 100% certainty that the identified - /// language is true. - /// A total of 120 languages are supported. - /// - /// - /// Collection of documents to analyze. - /// - /// - /// (Optional. Deprecated) Number of languages to detect. Set to 1 by - /// default. Irrespective of the value, the language with the highest - /// score is returned. - /// - /// - /// The headers that will be added to request. - /// - /// - /// The cancellation token. - /// - Task> DetectLanguageWithHttpMessagesAsync(BatchInputV2 input, int? numberOfLanguagesToDetect = default(int?), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - - /// - /// The API returns a numeric score between 0 and 1. - /// Scores close to 1 indicate positive sentiment, while scores close - /// to 0 indicate negative sentiment. - /// Sentiment score is generated using classification techniques. - /// The input features to the classifier include n-grams, features - /// generated from part-of-speech tags, and word embeddings. - /// See the <a - /// href="https://docs.microsoft.com/en-us/azure/cognitive-services/text-analytics/overview#supported-languages">Text - /// Analytics Documentation</a> for details about the languages - /// that are supported by sentiment analysis. - /// - /// - /// Collection of documents to analyze. - /// - /// - /// The headers that will be added to request. - /// - /// - /// The cancellation token. - /// - Task> SentimentWithHttpMessagesAsync(MultiLanguageBatchInputV2 input, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - - } -} diff --git a/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/BatchInputV2.cs b/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/BatchInputV2.cs deleted file mode 100644 index 1a0bb77e09d9..000000000000 --- a/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/BatchInputV2.cs +++ /dev/null @@ -1,45 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Language.TextAnalytics.Models -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Language; - using Microsoft.CognitiveServices.Language.TextAnalytics; - using Newtonsoft.Json; - using System.Collections; - using System.Collections.Generic; - using System.Linq; - - public partial class BatchInputV2 - { - /// - /// Initializes a new instance of the BatchInputV2 class. - /// - public BatchInputV2() - { - CustomInit(); - } - - /// - /// Initializes a new instance of the BatchInputV2 class. - /// - public BatchInputV2(IList documents = default(IList)) - { - Documents = documents; - CustomInit(); - } - - /// - /// An initialization method that performs custom operations like setting defaults - /// - partial void CustomInit(); - - /// - /// - [JsonProperty(PropertyName = "documents")] - public IList Documents { get; set; } - - } -} diff --git a/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/DetectedLanguageV2.cs b/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/DetectedLanguageV2.cs deleted file mode 100644 index f2cfea288215..000000000000 --- a/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/DetectedLanguageV2.cs +++ /dev/null @@ -1,69 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Language.TextAnalytics.Models -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Language; - using Microsoft.CognitiveServices.Language.TextAnalytics; - using Newtonsoft.Json; - using System.Linq; - - public partial class DetectedLanguageV2 - { - /// - /// Initializes a new instance of the DetectedLanguageV2 class. - /// - public DetectedLanguageV2() - { - CustomInit(); - } - - /// - /// Initializes a new instance of the DetectedLanguageV2 class. - /// - /// Long name of a detected language (e.g. English, - /// French). - /// A two letter representation of the - /// detected language according to the ISO 639-1 standard (e.g. en, - /// fr). - /// A confidence score between 0 and 1. Scores - /// close to 1 indicate 100% certainty that the identified language is - /// true. - public DetectedLanguageV2(string name = default(string), string iso6391Name = default(string), double? score = default(double?)) - { - Name = name; - Iso6391Name = iso6391Name; - Score = score; - CustomInit(); - } - - /// - /// An initialization method that performs custom operations like setting defaults - /// - partial void CustomInit(); - - /// - /// Gets or sets long name of a detected language (e.g. English, - /// French). - /// - [JsonProperty(PropertyName = "name")] - public string Name { get; set; } - - /// - /// Gets or sets a two letter representation of the detected language - /// according to the ISO 639-1 standard (e.g. en, fr). - /// - [JsonProperty(PropertyName = "iso6391Name")] - public string Iso6391Name { get; set; } - - /// - /// Gets or sets a confidence score between 0 and 1. Scores close to 1 - /// indicate 100% certainty that the identified language is true. - /// - [JsonProperty(PropertyName = "score")] - public double? Score { get; set; } - - } -} diff --git a/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/ErrorRecordV2.cs b/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/ErrorRecordV2.cs deleted file mode 100644 index 508a7e8e9cfd..000000000000 --- a/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/ErrorRecordV2.cs +++ /dev/null @@ -1,54 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Language.TextAnalytics.Models -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Language; - using Microsoft.CognitiveServices.Language.TextAnalytics; - using Newtonsoft.Json; - using System.Linq; - - public partial class ErrorRecordV2 - { - /// - /// Initializes a new instance of the ErrorRecordV2 class. - /// - public ErrorRecordV2() - { - CustomInit(); - } - - /// - /// Initializes a new instance of the ErrorRecordV2 class. - /// - /// Input document unique identifier the error refers - /// to. - /// Error message. - public ErrorRecordV2(string id = default(string), string message = default(string)) - { - Id = id; - Message = message; - CustomInit(); - } - - /// - /// An initialization method that performs custom operations like setting defaults - /// - partial void CustomInit(); - - /// - /// Gets or sets input document unique identifier the error refers to. - /// - [JsonProperty(PropertyName = "id")] - public string Id { get; set; } - - /// - /// Gets or sets error message. - /// - [JsonProperty(PropertyName = "message")] - public string Message { get; set; } - - } -} diff --git a/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/ErrorResponse.cs b/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/ErrorResponse.cs deleted file mode 100644 index bfdec18c125a..000000000000 --- a/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/ErrorResponse.cs +++ /dev/null @@ -1,61 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Language.TextAnalytics.Models -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Language; - using Microsoft.CognitiveServices.Language.TextAnalytics; - using Newtonsoft.Json; - using System.Linq; - - public partial class ErrorResponse - { - /// - /// Initializes a new instance of the ErrorResponse class. - /// - public ErrorResponse() - { - CustomInit(); - } - - /// - /// Initializes a new instance of the ErrorResponse class. - /// - public ErrorResponse(string code = default(string), string message = default(string), string target = default(string), InternalError innerError = default(InternalError)) - { - Code = code; - Message = message; - Target = target; - InnerError = innerError; - CustomInit(); - } - - /// - /// An initialization method that performs custom operations like setting defaults - /// - partial void CustomInit(); - - /// - /// - [JsonProperty(PropertyName = "code")] - public string Code { get; set; } - - /// - /// - [JsonProperty(PropertyName = "message")] - public string Message { get; set; } - - /// - /// - [JsonProperty(PropertyName = "target")] - public string Target { get; set; } - - /// - /// - [JsonProperty(PropertyName = "innerError")] - public InternalError InnerError { get; set; } - - } -} diff --git a/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/ErrorResponseException.cs b/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/ErrorResponseException.cs deleted file mode 100644 index 6f520ac265df..000000000000 --- a/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/ErrorResponseException.cs +++ /dev/null @@ -1,59 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Language.TextAnalytics.Models -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Language; - using Microsoft.CognitiveServices.Language.TextAnalytics; - using Microsoft.Rest; - - /// - /// Exception thrown for an invalid response with ErrorResponse - /// information. - /// - public class ErrorResponseException : RestException - { - /// - /// Gets information about the associated HTTP request. - /// - public HttpRequestMessageWrapper Request { get; set; } - - /// - /// Gets information about the associated HTTP response. - /// - public HttpResponseMessageWrapper Response { get; set; } - - /// - /// Gets or sets the body object. - /// - public ErrorResponse Body { get; set; } - - /// - /// Initializes a new instance of the ErrorResponseException class. - /// - public ErrorResponseException() - { - } - - /// - /// Initializes a new instance of the ErrorResponseException class. - /// - /// The exception message. - public ErrorResponseException(string message) - : this(message, null) - { - } - - /// - /// Initializes a new instance of the ErrorResponseException class. - /// - /// The exception message. - /// Inner exception. - public ErrorResponseException(string message, System.Exception innerException) - : base(message, innerException) - { - } - } -} diff --git a/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/InputV2.cs b/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/InputV2.cs deleted file mode 100644 index ed6712aa2cf9..000000000000 --- a/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/InputV2.cs +++ /dev/null @@ -1,51 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Language.TextAnalytics.Models -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Language; - using Microsoft.CognitiveServices.Language.TextAnalytics; - using Newtonsoft.Json; - using System.Linq; - - public partial class InputV2 - { - /// - /// Initializes a new instance of the InputV2 class. - /// - public InputV2() - { - CustomInit(); - } - - /// - /// Initializes a new instance of the InputV2 class. - /// - /// Unique, non-empty document identifier. - public InputV2(string id = default(string), string text = default(string)) - { - Id = id; - Text = text; - CustomInit(); - } - - /// - /// An initialization method that performs custom operations like setting defaults - /// - partial void CustomInit(); - - /// - /// Gets or sets unique, non-empty document identifier. - /// - [JsonProperty(PropertyName = "id")] - public string Id { get; set; } - - /// - /// - [JsonProperty(PropertyName = "text")] - public string Text { get; set; } - - } -} diff --git a/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/InternalError.cs b/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/InternalError.cs deleted file mode 100644 index a77afaa0ad4d..000000000000 --- a/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/InternalError.cs +++ /dev/null @@ -1,55 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Language.TextAnalytics.Models -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Language; - using Microsoft.CognitiveServices.Language.TextAnalytics; - using Newtonsoft.Json; - using System.Linq; - - public partial class InternalError - { - /// - /// Initializes a new instance of the InternalError class. - /// - public InternalError() - { - CustomInit(); - } - - /// - /// Initializes a new instance of the InternalError class. - /// - public InternalError(string code = default(string), string message = default(string), InternalError innerError = default(InternalError)) - { - Code = code; - Message = message; - InnerError = innerError; - CustomInit(); - } - - /// - /// An initialization method that performs custom operations like setting defaults - /// - partial void CustomInit(); - - /// - /// - [JsonProperty(PropertyName = "code")] - public string Code { get; set; } - - /// - /// - [JsonProperty(PropertyName = "message")] - public string Message { get; set; } - - /// - /// - [JsonProperty(PropertyName = "innerError")] - public InternalError InnerError { get; set; } - - } -} diff --git a/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/KeyPhraseBatchResultItemV2.cs b/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/KeyPhraseBatchResultItemV2.cs deleted file mode 100644 index 5c47442edf2a..000000000000 --- a/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/KeyPhraseBatchResultItemV2.cs +++ /dev/null @@ -1,59 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Language.TextAnalytics.Models -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Language; - using Microsoft.CognitiveServices.Language.TextAnalytics; - using Newtonsoft.Json; - using System.Collections; - using System.Collections.Generic; - using System.Linq; - - public partial class KeyPhraseBatchResultItemV2 - { - /// - /// Initializes a new instance of the KeyPhraseBatchResultItemV2 class. - /// - public KeyPhraseBatchResultItemV2() - { - CustomInit(); - } - - /// - /// Initializes a new instance of the KeyPhraseBatchResultItemV2 class. - /// - /// A list of representative words or phrases. - /// The number of key phrases returned is proportional to the number of - /// words in the input document. - /// Unique document identifier. - public KeyPhraseBatchResultItemV2(IList keyPhrases = default(IList), string id = default(string)) - { - KeyPhrases = keyPhrases; - Id = id; - CustomInit(); - } - - /// - /// An initialization method that performs custom operations like setting defaults - /// - partial void CustomInit(); - - /// - /// Gets or sets a list of representative words or phrases. The number - /// of key phrases returned is proportional to the number of words in - /// the input document. - /// - [JsonProperty(PropertyName = "keyPhrases")] - public IList KeyPhrases { get; set; } - - /// - /// Gets or sets unique document identifier. - /// - [JsonProperty(PropertyName = "id")] - public string Id { get; set; } - - } -} diff --git a/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/KeyPhraseBatchResultV2.cs b/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/KeyPhraseBatchResultV2.cs deleted file mode 100644 index 61a6900fa0f5..000000000000 --- a/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/KeyPhraseBatchResultV2.cs +++ /dev/null @@ -1,51 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Language.TextAnalytics.Models -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Language; - using Microsoft.CognitiveServices.Language.TextAnalytics; - using Newtonsoft.Json; - using System.Collections; - using System.Collections.Generic; - using System.Linq; - - public partial class KeyPhraseBatchResultV2 - { - /// - /// Initializes a new instance of the KeyPhraseBatchResultV2 class. - /// - public KeyPhraseBatchResultV2() - { - CustomInit(); - } - - /// - /// Initializes a new instance of the KeyPhraseBatchResultV2 class. - /// - public KeyPhraseBatchResultV2(IList documents = default(IList), IList errors = default(IList)) - { - Documents = documents; - Errors = errors; - CustomInit(); - } - - /// - /// An initialization method that performs custom operations like setting defaults - /// - partial void CustomInit(); - - /// - /// - [JsonProperty(PropertyName = "documents")] - public IList Documents { get; set; } - - /// - /// - [JsonProperty(PropertyName = "errors")] - public IList Errors { get; set; } - - } -} diff --git a/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/LanguageBatchResultItemV2.cs b/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/LanguageBatchResultItemV2.cs deleted file mode 100644 index 3070ba9e59ec..000000000000 --- a/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/LanguageBatchResultItemV2.cs +++ /dev/null @@ -1,56 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Language.TextAnalytics.Models -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Language; - using Microsoft.CognitiveServices.Language.TextAnalytics; - using Newtonsoft.Json; - using System.Collections; - using System.Collections.Generic; - using System.Linq; - - public partial class LanguageBatchResultItemV2 - { - /// - /// Initializes a new instance of the LanguageBatchResultItemV2 class. - /// - public LanguageBatchResultItemV2() - { - CustomInit(); - } - - /// - /// Initializes a new instance of the LanguageBatchResultItemV2 class. - /// - /// Unique document identifier. - /// A list of extracted - /// languages. - public LanguageBatchResultItemV2(string id = default(string), IList detectedLanguages = default(IList)) - { - Id = id; - DetectedLanguages = detectedLanguages; - CustomInit(); - } - - /// - /// An initialization method that performs custom operations like setting defaults - /// - partial void CustomInit(); - - /// - /// Gets or sets unique document identifier. - /// - [JsonProperty(PropertyName = "id")] - public string Id { get; set; } - - /// - /// Gets or sets a list of extracted languages. - /// - [JsonProperty(PropertyName = "detectedLanguages")] - public IList DetectedLanguages { get; set; } - - } -} diff --git a/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/LanguageBatchResultV2.cs b/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/LanguageBatchResultV2.cs deleted file mode 100644 index 07e07a4bce0a..000000000000 --- a/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/LanguageBatchResultV2.cs +++ /dev/null @@ -1,51 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Language.TextAnalytics.Models -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Language; - using Microsoft.CognitiveServices.Language.TextAnalytics; - using Newtonsoft.Json; - using System.Collections; - using System.Collections.Generic; - using System.Linq; - - public partial class LanguageBatchResultV2 - { - /// - /// Initializes a new instance of the LanguageBatchResultV2 class. - /// - public LanguageBatchResultV2() - { - CustomInit(); - } - - /// - /// Initializes a new instance of the LanguageBatchResultV2 class. - /// - public LanguageBatchResultV2(IList documents = default(IList), IList errors = default(IList)) - { - Documents = documents; - Errors = errors; - CustomInit(); - } - - /// - /// An initialization method that performs custom operations like setting defaults - /// - partial void CustomInit(); - - /// - /// - [JsonProperty(PropertyName = "documents")] - public IList Documents { get; set; } - - /// - /// - [JsonProperty(PropertyName = "errors")] - public IList Errors { get; set; } - - } -} diff --git a/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/MultiLanguageBatchInputV2.cs b/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/MultiLanguageBatchInputV2.cs deleted file mode 100644 index 30b7df6e3ff8..000000000000 --- a/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/MultiLanguageBatchInputV2.cs +++ /dev/null @@ -1,45 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Language.TextAnalytics.Models -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Language; - using Microsoft.CognitiveServices.Language.TextAnalytics; - using Newtonsoft.Json; - using System.Collections; - using System.Collections.Generic; - using System.Linq; - - public partial class MultiLanguageBatchInputV2 - { - /// - /// Initializes a new instance of the MultiLanguageBatchInputV2 class. - /// - public MultiLanguageBatchInputV2() - { - CustomInit(); - } - - /// - /// Initializes a new instance of the MultiLanguageBatchInputV2 class. - /// - public MultiLanguageBatchInputV2(IList documents = default(IList)) - { - Documents = documents; - CustomInit(); - } - - /// - /// An initialization method that performs custom operations like setting defaults - /// - partial void CustomInit(); - - /// - /// - [JsonProperty(PropertyName = "documents")] - public IList Documents { get; set; } - - } -} diff --git a/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/MultiLanguageInputV2.cs b/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/MultiLanguageInputV2.cs deleted file mode 100644 index 802ee5a252d7..000000000000 --- a/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/MultiLanguageInputV2.cs +++ /dev/null @@ -1,63 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Language.TextAnalytics.Models -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Language; - using Microsoft.CognitiveServices.Language.TextAnalytics; - using Newtonsoft.Json; - using System.Linq; - - public partial class MultiLanguageInputV2 - { - /// - /// Initializes a new instance of the MultiLanguageInputV2 class. - /// - public MultiLanguageInputV2() - { - CustomInit(); - } - - /// - /// Initializes a new instance of the MultiLanguageInputV2 class. - /// - /// This is the 2 letter ISO 639-1 - /// representation of a language. - /// For example, use "en" for English; "es" for Spanish etc., - /// Unique, non-empty document identifier. - public MultiLanguageInputV2(string language = default(string), string id = default(string), string text = default(string)) - { - Language = language; - Id = id; - Text = text; - CustomInit(); - } - - /// - /// An initialization method that performs custom operations like setting defaults - /// - partial void CustomInit(); - - /// - /// Gets or sets this is the 2 letter ISO 639-1 representation of a - /// language. - /// For example, use "en" for English; "es" for Spanish etc., - /// - [JsonProperty(PropertyName = "language")] - public string Language { get; set; } - - /// - /// Gets or sets unique, non-empty document identifier. - /// - [JsonProperty(PropertyName = "id")] - public string Id { get; set; } - - /// - /// - [JsonProperty(PropertyName = "text")] - public string Text { get; set; } - - } -} diff --git a/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/SentimentBatchResultItemV2.cs b/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/SentimentBatchResultItemV2.cs deleted file mode 100644 index 1fb51956b4da..000000000000 --- a/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/SentimentBatchResultItemV2.cs +++ /dev/null @@ -1,61 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Language.TextAnalytics.Models -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Language; - using Microsoft.CognitiveServices.Language.TextAnalytics; - using Newtonsoft.Json; - using System.Linq; - - public partial class SentimentBatchResultItemV2 - { - /// - /// Initializes a new instance of the SentimentBatchResultItemV2 class. - /// - public SentimentBatchResultItemV2() - { - CustomInit(); - } - - /// - /// Initializes a new instance of the SentimentBatchResultItemV2 class. - /// - /// A decimal number between 0 and 1 denoting the - /// sentiment of the document. - /// A score above 0.7 usually refers to a positive document while a - /// score below 0.3 normally has a negative connotation. - /// Mid values refer to neutral text. - /// Unique document identifier. - public SentimentBatchResultItemV2(double? score = default(double?), string id = default(string)) - { - Score = score; - Id = id; - CustomInit(); - } - - /// - /// An initialization method that performs custom operations like setting defaults - /// - partial void CustomInit(); - - /// - /// Gets or sets a decimal number between 0 and 1 denoting the - /// sentiment of the document. - /// A score above 0.7 usually refers to a positive document while a - /// score below 0.3 normally has a negative connotation. - /// Mid values refer to neutral text. - /// - [JsonProperty(PropertyName = "score")] - public double? Score { get; set; } - - /// - /// Gets or sets unique document identifier. - /// - [JsonProperty(PropertyName = "id")] - public string Id { get; set; } - - } -} diff --git a/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/SentimentBatchResultV2.cs b/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/SentimentBatchResultV2.cs deleted file mode 100644 index 363b537b84bc..000000000000 --- a/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/SentimentBatchResultV2.cs +++ /dev/null @@ -1,51 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Language.TextAnalytics.Models -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Language; - using Microsoft.CognitiveServices.Language.TextAnalytics; - using Newtonsoft.Json; - using System.Collections; - using System.Collections.Generic; - using System.Linq; - - public partial class SentimentBatchResultV2 - { - /// - /// Initializes a new instance of the SentimentBatchResultV2 class. - /// - public SentimentBatchResultV2() - { - CustomInit(); - } - - /// - /// Initializes a new instance of the SentimentBatchResultV2 class. - /// - public SentimentBatchResultV2(IList documents = default(IList), IList errors = default(IList)) - { - Documents = documents; - Errors = errors; - CustomInit(); - } - - /// - /// An initialization method that performs custom operations like setting defaults - /// - partial void CustomInit(); - - /// - /// - [JsonProperty(PropertyName = "documents")] - public IList Documents { get; set; } - - /// - /// - [JsonProperty(PropertyName = "errors")] - public IList Errors { get; set; } - - } -} diff --git a/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/TextAnalyticsAPI.cs b/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/TextAnalyticsAPI.cs deleted file mode 100644 index 130921c53d8e..000000000000 --- a/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/TextAnalyticsAPI.cs +++ /dev/null @@ -1,637 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Language.TextAnalytics -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Language; - using Microsoft.Rest; - using Microsoft.Rest.Serialization; - using Models; - using Newtonsoft.Json; - using System.Collections; - using System.Collections.Generic; - using System.Net; - using System.Net.Http; - using System.Threading; - using System.Threading.Tasks; - - /// - /// The Text Analytics API is a suite of text analytics web services built - /// with best-in-class Microsoft machine learning algorithms. - /// The API can be used to analyze unstructured text for tasks such as - /// sentiment analysis, key phrase extraction and language detection. - /// No training data is needed to use this API; just bring your text data. - /// This API uses advanced natural language processing techniques to - /// deliver best in class predictions. - /// - /// Further documentation can be found in - /// https://docs.microsoft.com/en-us/azure/cognitive-services/text-analytics/overview - /// - public partial class TextAnalyticsAPI : ServiceClient, ITextAnalyticsAPI - { - /// - /// The base URI of the service. - /// - internal string BaseUri {get; set;} - - /// - /// Gets or sets json serialization settings. - /// - public JsonSerializerSettings SerializationSettings { get; private set; } - - /// - /// Gets or sets json deserialization settings. - /// - public JsonSerializerSettings DeserializationSettings { get; private set; } - - /// - /// Supported Azure regions for Cognitive Services endpoints - /// - public string AzureRegion { get; private set; } - - /// - /// Subscription key in header - /// - public string SubscriptionKey { get; set; } - - /// - /// Initializes a new instance of the TextAnalyticsAPI class. - /// - /// - /// Optional. The delegating handlers to add to the http client pipeline. - /// - public TextAnalyticsAPI(params DelegatingHandler[] handlers) : base(handlers) - { - Initialize(); - } - - /// - /// Initializes a new instance of the TextAnalyticsAPI class. - /// - /// - /// Optional. The http client handler used to handle http transport. - /// - /// - /// Optional. The delegating handlers to add to the http client pipeline. - /// - public TextAnalyticsAPI(HttpClientHandler rootHandler, params DelegatingHandler[] handlers) : base(rootHandler, handlers) - { - Initialize(); - } - - /// - /// An optional partial-method to perform custom initialization. - /// - partial void CustomInitialize(); - /// - /// Initializes client properties. - /// - private void Initialize() - { - BaseUri = "https://{azureRegion}.api.cognitive.microsoft.com/text/analytics"; - AzureRegion = "westus"; - SerializationSettings = new JsonSerializerSettings - { - Formatting = Newtonsoft.Json.Formatting.Indented, - DateFormatHandling = Newtonsoft.Json.DateFormatHandling.IsoDateFormat, - DateTimeZoneHandling = Newtonsoft.Json.DateTimeZoneHandling.Utc, - NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore, - ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Serialize, - ContractResolver = new ReadOnlyJsonContractResolver(), - Converters = new List - { - new Iso8601TimeSpanConverter() - } - }; - DeserializationSettings = new JsonSerializerSettings - { - DateFormatHandling = Newtonsoft.Json.DateFormatHandling.IsoDateFormat, - DateTimeZoneHandling = Newtonsoft.Json.DateTimeZoneHandling.Utc, - NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore, - ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Serialize, - ContractResolver = new ReadOnlyJsonContractResolver(), - Converters = new List - { - new Iso8601TimeSpanConverter() - } - }; - CustomInitialize(); - } - /// - /// The API returns a list of strings denoting the key talking points in the - /// input text. - /// We employ techniques from Microsoft Office's sophisticated Natural Language - /// Processing toolkit. - /// See the <a - /// href="https://docs.microsoft.com/en-us/azure/cognitive-services/text-analytics/overview#supported-languages">Text - /// Analytics Documentation</a> for details about the languages that are - /// supported by key phrase extraction. - /// - /// - /// Collection of documents to analyze. Documents can now contain a language - /// field to indicate the text language - /// - /// - /// Headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when unable to deserialize the response - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// A response object containing the response body and response headers. - /// - public async Task> KeyPhrasesWithHttpMessagesAsync(MultiLanguageBatchInputV2 input, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) - { - if (SubscriptionKey == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.SubscriptionKey"); - } - if (input == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "input"); - } - // Tracing - bool _shouldTrace = ServiceClientTracing.IsEnabled; - string _invocationId = null; - if (_shouldTrace) - { - _invocationId = ServiceClientTracing.NextInvocationId.ToString(); - Dictionary tracingParameters = new Dictionary(); - tracingParameters.Add("input", input); - tracingParameters.Add("cancellationToken", cancellationToken); - ServiceClientTracing.Enter(_invocationId, this, "KeyPhrases", tracingParameters); - } - // Construct URL - var _baseUrl = BaseUri; - var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "v2.0/keyPhrases"; - _url = _url.Replace("{azureRegion}", AzureRegion); - // Create HTTP transport objects - var _httpRequest = new HttpRequestMessage(); - HttpResponseMessage _httpResponse = null; - _httpRequest.Method = new HttpMethod("POST"); - _httpRequest.RequestUri = new System.Uri(_url); - // Set Headers - if (SubscriptionKey != null) - { - if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) - { - _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); - } - _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", SubscriptionKey); - } - - - if (customHeaders != null) - { - foreach(var _header in customHeaders) - { - if (_httpRequest.Headers.Contains(_header.Key)) - { - _httpRequest.Headers.Remove(_header.Key); - } - _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); - } - } - - // Serialize Request - string _requestContent = null; - if(input != null) - { - _requestContent = SafeJsonConvert.SerializeObject(input, SerializationSettings); - _httpRequest.Content = new StringContent(_requestContent, System.Text.Encoding.UTF8); - _httpRequest.Content.Headers.ContentType =System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json; charset=utf-8"); - } - // Send Request - if (_shouldTrace) - { - ServiceClientTracing.SendRequest(_invocationId, _httpRequest); - } - cancellationToken.ThrowIfCancellationRequested(); - _httpResponse = await HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); - if (_shouldTrace) - { - ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); - } - HttpStatusCode _statusCode = _httpResponse.StatusCode; - cancellationToken.ThrowIfCancellationRequested(); - string _responseContent = null; - if ((int)_statusCode != 200) - { - var ex = new ErrorResponseException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); - try - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - ErrorResponse _errorBody = SafeJsonConvert.DeserializeObject(_responseContent, DeserializationSettings); - if (_errorBody != null) - { - ex.Body = _errorBody; - } - } - catch (JsonException) - { - // Ignore the exception - } - ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); - ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); - if (_shouldTrace) - { - ServiceClientTracing.Error(_invocationId, ex); - } - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw ex; - } - // Create Result - var _result = new HttpOperationResponse(); - _result.Request = _httpRequest; - _result.Response = _httpResponse; - // Deserialize Response - if ((int)_statusCode == 200) - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - try - { - _result.Body = SafeJsonConvert.DeserializeObject(_responseContent, DeserializationSettings); - } - catch (JsonException ex) - { - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); - } - } - if (_shouldTrace) - { - ServiceClientTracing.Exit(_invocationId, _result); - } - return _result; - } - - /// - /// The API returns the detected language and a numeric score between 0 and 1. - /// Scores close to 1 indicate 100% certainty that the identified language is - /// true. - /// A total of 120 languages are supported. - /// - /// - /// Collection of documents to analyze. - /// - /// - /// (Optional. Deprecated) Number of languages to detect. Set to 1 by default. - /// Irrespective of the value, the language with the highest score is returned. - /// - /// - /// Headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when unable to deserialize the response - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// A response object containing the response body and response headers. - /// - public async Task> DetectLanguageWithHttpMessagesAsync(BatchInputV2 input, int? numberOfLanguagesToDetect = default(int?), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) - { - if (SubscriptionKey == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.SubscriptionKey"); - } - if (input == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "input"); - } - // Tracing - bool _shouldTrace = ServiceClientTracing.IsEnabled; - string _invocationId = null; - if (_shouldTrace) - { - _invocationId = ServiceClientTracing.NextInvocationId.ToString(); - Dictionary tracingParameters = new Dictionary(); - tracingParameters.Add("input", input); - tracingParameters.Add("numberOfLanguagesToDetect", numberOfLanguagesToDetect); - tracingParameters.Add("cancellationToken", cancellationToken); - ServiceClientTracing.Enter(_invocationId, this, "DetectLanguage", tracingParameters); - } - // Construct URL - var _baseUrl = BaseUri; - var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "v2.0/languages"; - _url = _url.Replace("{azureRegion}", AzureRegion); - List _queryParameters = new List(); - if (numberOfLanguagesToDetect != null) - { - _queryParameters.Add(string.Format("numberOfLanguagesToDetect={0}", System.Uri.EscapeDataString(SafeJsonConvert.SerializeObject(numberOfLanguagesToDetect, SerializationSettings).Trim('"')))); - } - if (_queryParameters.Count > 0) - { - _url += "?" + string.Join("&", _queryParameters); - } - // Create HTTP transport objects - var _httpRequest = new HttpRequestMessage(); - HttpResponseMessage _httpResponse = null; - _httpRequest.Method = new HttpMethod("POST"); - _httpRequest.RequestUri = new System.Uri(_url); - // Set Headers - if (SubscriptionKey != null) - { - if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) - { - _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); - } - _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", SubscriptionKey); - } - - - if (customHeaders != null) - { - foreach(var _header in customHeaders) - { - if (_httpRequest.Headers.Contains(_header.Key)) - { - _httpRequest.Headers.Remove(_header.Key); - } - _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); - } - } - - // Serialize Request - string _requestContent = null; - if(input != null) - { - _requestContent = SafeJsonConvert.SerializeObject(input, SerializationSettings); - _httpRequest.Content = new StringContent(_requestContent, System.Text.Encoding.UTF8); - _httpRequest.Content.Headers.ContentType =System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json; charset=utf-8"); - } - // Send Request - if (_shouldTrace) - { - ServiceClientTracing.SendRequest(_invocationId, _httpRequest); - } - cancellationToken.ThrowIfCancellationRequested(); - _httpResponse = await HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); - if (_shouldTrace) - { - ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); - } - HttpStatusCode _statusCode = _httpResponse.StatusCode; - cancellationToken.ThrowIfCancellationRequested(); - string _responseContent = null; - if ((int)_statusCode != 200) - { - var ex = new ErrorResponseException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); - try - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - ErrorResponse _errorBody = SafeJsonConvert.DeserializeObject(_responseContent, DeserializationSettings); - if (_errorBody != null) - { - ex.Body = _errorBody; - } - } - catch (JsonException) - { - // Ignore the exception - } - ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); - ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); - if (_shouldTrace) - { - ServiceClientTracing.Error(_invocationId, ex); - } - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw ex; - } - // Create Result - var _result = new HttpOperationResponse(); - _result.Request = _httpRequest; - _result.Response = _httpResponse; - // Deserialize Response - if ((int)_statusCode == 200) - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - try - { - _result.Body = SafeJsonConvert.DeserializeObject(_responseContent, DeserializationSettings); - } - catch (JsonException ex) - { - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); - } - } - if (_shouldTrace) - { - ServiceClientTracing.Exit(_invocationId, _result); - } - return _result; - } - - /// - /// The API returns a numeric score between 0 and 1. - /// Scores close to 1 indicate positive sentiment, while scores close to 0 - /// indicate negative sentiment. - /// Sentiment score is generated using classification techniques. - /// The input features to the classifier include n-grams, features generated - /// from part-of-speech tags, and word embeddings. - /// See the <a - /// href="https://docs.microsoft.com/en-us/azure/cognitive-services/text-analytics/overview#supported-languages">Text - /// Analytics Documentation</a> for details about the languages that are - /// supported by sentiment analysis. - /// - /// - /// Collection of documents to analyze. - /// - /// - /// Headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when unable to deserialize the response - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// A response object containing the response body and response headers. - /// - public async Task> SentimentWithHttpMessagesAsync(MultiLanguageBatchInputV2 input, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) - { - if (SubscriptionKey == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.SubscriptionKey"); - } - if (input == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "input"); - } - // Tracing - bool _shouldTrace = ServiceClientTracing.IsEnabled; - string _invocationId = null; - if (_shouldTrace) - { - _invocationId = ServiceClientTracing.NextInvocationId.ToString(); - Dictionary tracingParameters = new Dictionary(); - tracingParameters.Add("input", input); - tracingParameters.Add("cancellationToken", cancellationToken); - ServiceClientTracing.Enter(_invocationId, this, "Sentiment", tracingParameters); - } - // Construct URL - var _baseUrl = BaseUri; - var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "v2.0/sentiment"; - _url = _url.Replace("{azureRegion}", AzureRegion); - // Create HTTP transport objects - var _httpRequest = new HttpRequestMessage(); - HttpResponseMessage _httpResponse = null; - _httpRequest.Method = new HttpMethod("POST"); - _httpRequest.RequestUri = new System.Uri(_url); - // Set Headers - if (SubscriptionKey != null) - { - if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) - { - _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); - } - _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", SubscriptionKey); - } - - - if (customHeaders != null) - { - foreach(var _header in customHeaders) - { - if (_httpRequest.Headers.Contains(_header.Key)) - { - _httpRequest.Headers.Remove(_header.Key); - } - _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); - } - } - - // Serialize Request - string _requestContent = null; - if(input != null) - { - _requestContent = SafeJsonConvert.SerializeObject(input, SerializationSettings); - _httpRequest.Content = new StringContent(_requestContent, System.Text.Encoding.UTF8); - _httpRequest.Content.Headers.ContentType =System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json; charset=utf-8"); - } - // Send Request - if (_shouldTrace) - { - ServiceClientTracing.SendRequest(_invocationId, _httpRequest); - } - cancellationToken.ThrowIfCancellationRequested(); - _httpResponse = await HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); - if (_shouldTrace) - { - ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); - } - HttpStatusCode _statusCode = _httpResponse.StatusCode; - cancellationToken.ThrowIfCancellationRequested(); - string _responseContent = null; - if ((int)_statusCode != 200) - { - var ex = new ErrorResponseException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); - try - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - ErrorResponse _errorBody = SafeJsonConvert.DeserializeObject(_responseContent, DeserializationSettings); - if (_errorBody != null) - { - ex.Body = _errorBody; - } - } - catch (JsonException) - { - // Ignore the exception - } - ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); - ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); - if (_shouldTrace) - { - ServiceClientTracing.Error(_invocationId, ex); - } - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw ex; - } - // Create Result - var _result = new HttpOperationResponse(); - _result.Request = _httpRequest; - _result.Response = _httpResponse; - // Deserialize Response - if ((int)_statusCode == 200) - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - try - { - _result.Body = SafeJsonConvert.DeserializeObject(_responseContent, DeserializationSettings); - } - catch (JsonException ex) - { - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); - } - } - if (_shouldTrace) - { - ServiceClientTracing.Exit(_invocationId, _result); - } - return _result; - } - - } -} diff --git a/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/TextAnalyticsAPIExtensions.cs b/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/TextAnalyticsAPIExtensions.cs deleted file mode 100644 index d8dfcc663f2f..000000000000 --- a/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/TextAnalyticsAPIExtensions.cs +++ /dev/null @@ -1,169 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Language.TextAnalytics -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Language; - using Models; - using System.Threading; - using System.Threading.Tasks; - - /// - /// Extension methods for TextAnalyticsAPI. - /// - public static partial class TextAnalyticsAPIExtensions - { - /// - /// The API returns a list of strings denoting the key talking points in the - /// input text. - /// We employ techniques from Microsoft Office's sophisticated Natural Language - /// Processing toolkit. - /// See the <a - /// href="https://docs.microsoft.com/en-us/azure/cognitive-services/text-analytics/overview#supported-languages">Text - /// Analytics Documentation</a> for details about the languages that are - /// supported by key phrase extraction. - /// - /// - /// The operations group for this extension method. - /// - /// - /// Collection of documents to analyze. Documents can now contain a language - /// field to indicate the text language - /// - public static KeyPhraseBatchResultV2 KeyPhrases(this ITextAnalyticsAPI operations, MultiLanguageBatchInputV2 input) - { - return operations.KeyPhrasesAsync(input).GetAwaiter().GetResult(); - } - - /// - /// The API returns a list of strings denoting the key talking points in the - /// input text. - /// We employ techniques from Microsoft Office's sophisticated Natural Language - /// Processing toolkit. - /// See the <a - /// href="https://docs.microsoft.com/en-us/azure/cognitive-services/text-analytics/overview#supported-languages">Text - /// Analytics Documentation</a> for details about the languages that are - /// supported by key phrase extraction. - /// - /// - /// The operations group for this extension method. - /// - /// - /// Collection of documents to analyze. Documents can now contain a language - /// field to indicate the text language - /// - /// - /// The cancellation token. - /// - public static async Task KeyPhrasesAsync(this ITextAnalyticsAPI operations, MultiLanguageBatchInputV2 input, CancellationToken cancellationToken = default(CancellationToken)) - { - using (var _result = await operations.KeyPhrasesWithHttpMessagesAsync(input, null, cancellationToken).ConfigureAwait(false)) - { - return _result.Body; - } - } - - /// - /// The API returns the detected language and a numeric score between 0 and 1. - /// Scores close to 1 indicate 100% certainty that the identified language is - /// true. - /// A total of 120 languages are supported. - /// - /// - /// The operations group for this extension method. - /// - /// - /// Collection of documents to analyze. - /// - /// - /// (Optional. Deprecated) Number of languages to detect. Set to 1 by default. - /// Irrespective of the value, the language with the highest score is returned. - /// - public static LanguageBatchResultV2 DetectLanguage(this ITextAnalyticsAPI operations, BatchInputV2 input, int? numberOfLanguagesToDetect = default(int?)) - { - return operations.DetectLanguageAsync(input, numberOfLanguagesToDetect).GetAwaiter().GetResult(); - } - - /// - /// The API returns the detected language and a numeric score between 0 and 1. - /// Scores close to 1 indicate 100% certainty that the identified language is - /// true. - /// A total of 120 languages are supported. - /// - /// - /// The operations group for this extension method. - /// - /// - /// Collection of documents to analyze. - /// - /// - /// (Optional. Deprecated) Number of languages to detect. Set to 1 by default. - /// Irrespective of the value, the language with the highest score is returned. - /// - /// - /// The cancellation token. - /// - public static async Task DetectLanguageAsync(this ITextAnalyticsAPI operations, BatchInputV2 input, int? numberOfLanguagesToDetect = default(int?), CancellationToken cancellationToken = default(CancellationToken)) - { - using (var _result = await operations.DetectLanguageWithHttpMessagesAsync(input, numberOfLanguagesToDetect, null, cancellationToken).ConfigureAwait(false)) - { - return _result.Body; - } - } - - /// - /// The API returns a numeric score between 0 and 1. - /// Scores close to 1 indicate positive sentiment, while scores close to 0 - /// indicate negative sentiment. - /// Sentiment score is generated using classification techniques. - /// The input features to the classifier include n-grams, features generated - /// from part-of-speech tags, and word embeddings. - /// See the <a - /// href="https://docs.microsoft.com/en-us/azure/cognitive-services/text-analytics/overview#supported-languages">Text - /// Analytics Documentation</a> for details about the languages that are - /// supported by sentiment analysis. - /// - /// - /// The operations group for this extension method. - /// - /// - /// Collection of documents to analyze. - /// - public static SentimentBatchResultV2 Sentiment(this ITextAnalyticsAPI operations, MultiLanguageBatchInputV2 input) - { - return operations.SentimentAsync(input).GetAwaiter().GetResult(); - } - - /// - /// The API returns a numeric score between 0 and 1. - /// Scores close to 1 indicate positive sentiment, while scores close to 0 - /// indicate negative sentiment. - /// Sentiment score is generated using classification techniques. - /// The input features to the classifier include n-grams, features generated - /// from part-of-speech tags, and word embeddings. - /// See the <a - /// href="https://docs.microsoft.com/en-us/azure/cognitive-services/text-analytics/overview#supported-languages">Text - /// Analytics Documentation</a> for details about the languages that are - /// supported by sentiment analysis. - /// - /// - /// The operations group for this extension method. - /// - /// - /// Collection of documents to analyze. - /// - /// - /// The cancellation token. - /// - public static async Task SentimentAsync(this ITextAnalyticsAPI operations, MultiLanguageBatchInputV2 input, CancellationToken cancellationToken = default(CancellationToken)) - { - using (var _result = await operations.SentimentWithHttpMessagesAsync(input, null, cancellationToken).ConfigureAwait(false)) - { - return _result.Body; - } - } - - } -} diff --git a/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Microsoft.CognitiveServices.Language.csproj b/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Microsoft.CognitiveServices.Language.csproj deleted file mode 100644 index 58bb38e8c715..000000000000 --- a/src/SDKs/CognitiveServices/dataplane1/Language/Microsoft.CognitiveServices.Language/Microsoft.CognitiveServices.Language.csproj +++ /dev/null @@ -1,24 +0,0 @@ - - - - Microsoft.CognitiveServices.Language - This client library provides access to the Microsoft Cognitive Services Language APIs. - 1.0.0 - $(DefineConstants);CODESIGN - true - Microsoft.CognitiveServices.Language - Microsoft Cognitive Services;Cognitive Services;Cognitive Services SDK;Text Analytics API;Text Analytics;REST HTTP client;netcore451511 - This is a preview release of the Cognitive Services Language SDK. Included with this release is support for Text Analytics API. - bin\$(Configuration)\$(TargetFramework)\$(AssemblyName).xml - - - - net452;netstandard1.4 - - - - - - - - \ No newline at end of file diff --git a/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision.Tests/BaseTests.cs b/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision.Tests/BaseTests.cs deleted file mode 100644 index ed03671411aa..000000000000 --- a/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision.Tests/BaseTests.cs +++ /dev/null @@ -1,31 +0,0 @@ -using Microsoft.CognitiveServices.Vision.Face; -using System; -using System.Net.Http; - -namespace FaceSDK.Tests -{ - public abstract class BaseTests - { - public static bool IsTestTenant = false; - private static string SubscriptionKey = ""; - private static string Region = null; - - static BaseTests() - { - // Retrieve the configuration information. - SubscriptionKey = ""; - // Environment.SetEnvironmentVariable("AZURE_TEST_MODE", "Record"); - Region = "WestUS"; - } - - protected IFaceAPI GetClient(DelegatingHandler handler) - { - IFaceAPI client; - client = new FaceAPI(handlers: handler); - client.AzureRegion1 = Region; - client.SubscriptionKey = SubscriptionKey; - - return client; - } - } -} diff --git a/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision.Tests/FaceDetectionTests.cs b/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision.Tests/FaceDetectionTests.cs deleted file mode 100644 index a677c56c135a..000000000000 --- a/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision.Tests/FaceDetectionTests.cs +++ /dev/null @@ -1,30 +0,0 @@ -using Microsoft.Azure.Test.HttpRecorder; -using Microsoft.CognitiveServices.Vision.Face; -using Microsoft.CognitiveServices.Vision.Face.Models; -using Microsoft.Rest.ClientRuntime.Azure.TestFramework; -using System; -using System.Collections.Generic; -using System.IO; -using Xunit; - -namespace FaceSDK.Tests -{ - public class FaceDetectionTests : BaseTests - { - [Fact] - public void FaceDetection() - { - using (MockContext context = MockContext.Start(this.GetType().FullName)) - { - HttpMockServer.Initialize(this.GetType().FullName, "FaceDetection"); - - IFaceAPI client = GetClient(HttpMockServer.CreateInstance()); - using (FileStream stream = new FileStream("TestImages\\detection1.jpg", FileMode.Open)) - { - IList faceList = client.Face.DetectInStream(stream); - Assert.Equal(1, faceList.Count); - } - } - } - } -} diff --git a/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision.Tests/Microsoft.CognitiveServices.Vision.Tests.csproj b/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision.Tests/Microsoft.CognitiveServices.Vision.Tests.csproj deleted file mode 100644 index 74e9d3c1dd27..000000000000 --- a/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision.Tests/Microsoft.CognitiveServices.Vision.Tests.csproj +++ /dev/null @@ -1,35 +0,0 @@ - - - - Microsoft.CognitiveServices.Vision.Tests - Microsoft.CognitiveServices.Vision.Tests Class Library - Microsoft.CognitiveServices.Vision.Tests - 1.0.0-preview - - - - netcoreapp1.1 - - - - - - - - - - PreserveNewest - - - Always - - - Always - - - - - - - - diff --git a/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision.Tests/SessionRecords/FaceSDK.Tests.FaceDetectionTests/FaceDetection.json b/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision.Tests/SessionRecords/FaceSDK.Tests.FaceDetectionTests/FaceDetection.json deleted file mode 100644 index f9f22ecdced2..000000000000 --- a/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision.Tests/SessionRecords/FaceSDK.Tests.FaceDetectionTests/FaceDetection.json +++ /dev/null @@ -1,64 +0,0 @@ -{ - "Entries": [ - { - "RequestUri": "/face/v1.0/detect?returnFaceId=true&returnFaceLandmarks=false", - "EncodedRequestUri": "L2ZhY2UvdjEuMC9kZXRlY3Q/cmV0dXJuRmFjZUlkPXRydWUmcmV0dXJuRmFjZUxhbmRtYXJrcz1mYWxzZQ==", - "RequestMethod": "POST", - "RequestBody": "����\u0000\u0010JFIF\u0000\u0001\u0001\u0001\u0000\u0000\u0000\u0000\u0000\u0000��\u0000\u000eAdobe\u0000d\u0000\u0000\u0000\u0000\u0001��\u0000C\u0000\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003��\u0000C\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0002\u0001\u0001\u0002\u0002\u0002\u0001\u0002\u0002\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003��\u0000\u0011\b\u0002�\u0003�\u0003\u0000\u0011\u0000\u0001\u0011\u0001\u0002\u0011\u0001��\u0000\u001f\u0000\u0000\u0000\u0007\u0001\u0001\u0001\u0001\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0004\u0005\u0003\u0002\u0006\u0001\u0000\u0007\b\t\n\u000b��\u0000�\u0010\u0000\u0002\u0001\u0003\u0003\u0002\u0004\u0002\u0006\u0007\u0003\u0004\u0002\u0006\u0002s\u0001\u0002\u0003\u0011\u0004\u0000\u0005!\u00121AQ\u0006\u0013a\"q�\u00142��\u0007\u0015�B#�R��3\u0016b�$r��%C4S���cs�5D'���6\u0017Tdt���\b&�\t\n\u0018\u0019��EF��V�U(\u001a�������eu��������fv��������7GWgw��������8HXhx��������)9IYiy��������*:JZjz����������\u0000\u001f\u0001\u0000\u0002\u0002\u0003\u0001\u0001\u0001\u0001\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0001\u0000\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b��\u0000�\u0011\u0000\u0002\u0002\u0001\u0002\u0003\u0005\u0005\u0004\u0005\u0006\u0004\b\u0003\u0003m\u0001\u0000\u0002\u0011\u0003\u0004!\u00121A\u0005Q\u0013a\"\u0006q��2���\u0014���#B\u0015Rbr�3$4C�\u0016�S%�c��\u0007s�5�D�\u0017T�\b\t\n\u0018\u0019&6E\u001a'dtU7��()��󄔤�����eu��������FVfv��������GWgw��������8HXhx��������9IYiy��������*:JZjz����������\u0000\u0004\u0000}��\u0000\f\u0003\u0000\u0000\u0001\u0011\u0002\u0011\u0000?\u0000�3kmESN��J���#5\nS�x(�i�P�����\t�0�n\u0007n�qN�k橊E�P\u0002>�� \u000e�\u001b�񭘙w&1�*\nҜiR?g�\u001c�\u001a݈��\u0015\u001c{���n���m��\";�ɕ��\u0001ۭv뷷�+��\u0004�B�Z�jS�_\r�Q�E���\u0005\f)Jm�A����\u0007�A�B \u001cv\u001b֣��Ⴞ�&²���P��\u001a���U\"�\u0010\u0003��o�q�mz�k��w��\u001c\u001b���J���n�N\n��KR]�R�+�J����\rmK�H\u0013Q�iR+ңz{�*1���6��V���\u0015\u0000\u001f\u0003�q\u0011��\u0016�?\u0017M�A\u0003z{�\n�?r\\d�m��oA��׮\u0003Γj~�bi�ۮ�\u0000ۃ��EH�:mو\u001d\u0001�'��Rou/\\\u0003Z�=��~�v#��EuQ{���N�\u001b���9\u001b\u001c�����Ѿ���O\u001c���ע\u0011���\"�����\u0001$��\n�dW~�a����f$�k$\f׃}�u\u001e>\u0004x\n�{���W5�\u0003V�����\u0015Ȓz����H�o�؂{қ�t��\u0012Y�w\u0017�\u0012=�^��M��#j\r�Hno���k��\u0003�\u001c�S�9#ܖ5�~��\u0000�ޙ�eIr�P>*\u001a{u;u��v�\u000ew;\r�{�\u0003l\u0007r\u0013;w�\u000e�\u001dz�cO\u0003�\u0014�~�Qbz\u001a\u0003�ׯ�ڽ|0�hg:\t�\u0000r\u0016�\u0004\u000fQ}�\u0007j�8dH�k���}����\u001f\u000e+��'��a�ד���џj��\u001dv\u001fgƒ�y��\u000e\u001e*\u0007����0\r���*\r<\u0006�\u0000F\u001c|����v\u0003��`=\b�\u000f�Q�js7���#\u0010~\u0003���\u001eHTp87��o�%[n�^\u0001��)mq���\u0000\u001cĐ�v���\u000f�\u0018������\u0000\u0004r�\u000f@��[�Ccڿ,�\u0004\u001f.m�?���\u0000o\u0013��.ç�6�~8V�\u0002=�t����oj耼ң��c�k�*��\u001e=:\u000fq��:�\u0014\u001e\u001e�a����\u0003�������\u0014�w%A�)_����P7�!��\u000f�\u0007�|:俇ɍu\u000b�<6\u001fG���Ȼ�\u0019\u000eK�6\u001f��&\b�ݍ_Ծ�S�m��ôA�E�)_��~]��\u001e(��;���\u0014����\u0003�\u0002(o��\u0000Bi��+Ԟ�\u0015��1\u0012$�a~�\u0007�7\u001d;{\u001e�x�7$Z\u000fr\nS��\u0006�dF��ݏ8���\u0011��n;�9\u0019�\u0005 \u0000��x�2\r�����g'� \u0017;\u0017�o0�;��އ���g6h\u001f{�\u0006�^��?�Vn���=�P~��6\u001d�?{.�\t��S��\u0000��.����7�\u001bg]\u0001�\u0004󴝹���g���\u0012s'\u00106\u0003Y�p\u0006�\u0000�A_s��kZZ����\u0000\u001cy*�Q����rB�Q\u0000�\u001e>�\u001fH\u0018U\u0019\u001fnĚ�}��qTS�\u0000q/���t�ƻ�����0�E�\u0000'�\u0015�ᚽl\u0001��)�1\u0002\u001eo���^;Sa�}���i�\u0003�\u00176�p�\u00129�->Y@Q���z�^�9,��A�I\u0007�\u000b%�,\u00004���o\n\f�N��7%5�~\u0000o�\u0002���eЍn��r����ӿ��{�䪏�\r�>\u000b�j�]\u001d��\u0010�\u0016\u001aI�e\u0014.�`I�����Hz�u\nYu�\u001fH��$S�@���>-�(\u000e!�\u0005{�-�C�>>��a���~Rd~nn3Gw�\u000f�\u0014��6_�1�L�{ V\b�Sl���}�i'���\u001cގM$ٴp�����R����\u0000o�\r\u0002-U�\u0006���X\u0005���SS���\u0000�ڽ��A�&Q�O\u001a���N�\u0003�����\u0000:�\u0019E������\u0000�~\u001f�-3��?��潵�x�\u0000�\u0003���6�������\u000f�Q\u001f�@t�L�;;��� �`\u0001of�����3q���a_���wƾJ7@_�@kN��\u0019\u000fM\u000e��.[<{_?�+@I'�)N�뒌w�\u0007)ޘ���חc��)�������4֋Ƣ�����Ӧ4)\u001c���!X�*\u0006�\u0000��dLz%+d�\"������=6\u0007(�o�4�\u0002Jq�R>U��P?\u0001�ef\u0014~��\\���I�(��74�o\u001c�Rot\b\u001c�N��j\u001ax���z���6��^������dI�z�\n��/�M\u0005��9nŀ�>�\u001af\u001c�*��\u001c�ѲXDP\u001e S�Õ?\u000e�)1��\u0006�6���GT+Ŗ�w�\u000fS�\\�����J��n\u001a�@\r��F��(\u0006D�)B��H��\u0014ҽ:��\u0007�V~����\u001ea�\u0003�P\u0003BH\u0000T��\u001e4�Dm��G����ao\bdQM�/~��A�o��T�O#���N�k�Z\u001e�\u0015ø(M �\u001a�\u001dz�{�w�0��c�mQ�r>_�\u0007=�\nGF��Fԯ^�x{t�WzE�#@i�Z\u001f��\u0019\u0013ܶ�X��}�n�H�r�\u000e{�\u0014��\u000e����\"���ҔҢ�\u0010iӡ��|b\u0002\u0002 oM����\u0000G\\@���\u000fZ�����n��tE|����\u0002>C��N���#e .��kM��ԁ��l\u0004t\b�4[�����S�ݲ>J��w'�>��\u0004b\u0010�XTm�7��\u000f�\u0003�+K�~������\u00015��\t\u0006�\u001f�$\u001e���R0]��ɢ\u0014�P;Ԁz~\u0014�<�}�\u0006a�\u000fj�ޝk�#\"\u0000ݗ\tC=����[���l�\u0019+]T\r����k_\n\u000f��2昍��q�^�F�\u0010h#�\u0015��;�\u001d�۷��p\u0012J�!$��n�(w�>��|�\u0015l�;�2^R�a�rk�|���)*���\t��m���YH\u001d�4��w�'�v�B|r$�)\t-��k�����;ӾW攖[�~��#��dL�}�;�����\u0002N�\u001d��1��\u00147\u0000�ӭG�v������TB0������G���\u0012\u0005�E�ֽ�v����\u000f�|\u0016��M�N���\u0014�ݶ\u0000o���_b��'�k�oo\u0002v�#��A�ۓ;�V���\u001f��\u0006������k\u0004�5�����_�<u�_�)�喋\u0019)�j*��g���\u0000G\u001e==�\u0000Ι���Ap�\u0003\u0012^��a�[Z��R�ă�>������_O�\u000f��N�\u0003홣}�s�F\"ҕ\u001f��\u001c���2�-Z���_��c������\u0000�%�n<(�|���L��a���>7f��\u0015��>tc���,��\u000f�u��}��zo�{W\u0006\u0014�(V�<,F��|��\u0014���l\u0000�^\u001bm�\u0000ڮ�vOjߚ\u0005�r�]�������\u0000��V�w�½�\u001aB��n��;{\u001a�5�Gin�aP5~�\u0000\u001dϿ�J&ϒ?Z�n��I�]O�8o%؏5��|���{�^J���\u000f��\u001f�\u001d���u>����\u0015<׆\u001d\u0001�'������Հ���}|\u00052Vk����x=�)��zm�J�ߘ_%�Ƿ���0z��E��\u0007���>�\u001fF\u001e3�2贵w�~>>#\t=\bby\u001e�\u0017n�����Dէ�@����{d��݀�]Rk��\u001b�����4��\u0002OPʏW�����4���#��h�73\t����ݽ��;��;\u001c�\\��\u001fȶ��/�g\u001b���sa�F�J����+�\u001b���_�v��Z�κ\u0004\fbՕ��>[��A�8��s��\u0006�\u0002�#O���3@�`��\u0000��{�1��4ү��o��5��8���7�:>\u0007�P;vއj~��SC����\u001cg�v?�v�y\u0019�M&&���S^��{��ž=���\u0013��7ע)��z�_�ˆ0#]wb\b�ꁖ���;\u001aҔ��z�f�o�2�\t���\u0002��b\b\u001e��+���&�f�?\\�\u0000z֪7߹�ʦ\u0001��-�i\u000f{vD}�E~�s�\u0004�@V��I��c��\u0000O�W��#ۭ\u0007�`����͈��G�W����:E��?��S�l�;'���$���ͤ�ыz|#���z\u0018�~H���^�?�=��5WI+��\u0000�l\u0016\u0015\u0016�\r�θw*{�+\u0002�G��=��Y��<�=����u־��ߡ�|��\u0016[�/�\u000f=��ť���w�ϰ����\u001f���\u001c�CbGs�[�\u0003��\u0011J\u001bt�]�\u0011��λ�w�}�2w�{A\u001f��}�uL\u0016�����G\u0000]��DV\u0012>g����Xˑx����\u0001W�?����D|�\u001c�Ԕ����Z����6h恻`�\n��n��\u0001!X���;\u0000(~���z�����o���?z&�)`�����Ȓ\u0007>I\u0000�Ȗ(�>�����R��\u0015��s\u001e����)%�e=)��~^�MSY����?,%*\bڣ��o|��>L�ӽlR�#���}>\u0018\u001a���S9_\t�1E�\u001b��[}�EOP7��|\u000eW]y��B�A\u001c|\b\u0014\u001b�J1\u001f�D�6��J���c$��4�=\u0014�\u0000fa�4k�!+�\u0017q,J�\u0004W�;}${e\u0004w�6q\u000f�\u001c���T�ܶ<����\u0019\n\u0000l��[�܁j\u0010�\u0000dt�w\u0019Q��96\u000eH]`G\u001cm�Q�}�\u001bt�'�ߐ�Βe�<�T\u001e��\u0011�������'�F�z�o����c\u0018!y\u00054P(G^��\u001bf�S��ƞ�\u0007���j\u000e؄&\u0011(S҆�;\u000e������$�R\u0001S@;u�<\b\u001bnq\b�lB�Px�Q�1M��}����\r�0\u000e�\u0015~�\u0005=�;w�4�m�@������\u001fö\u001e�m\u0002��Б����\u0015TS۷m����\u0018����{���{\u0002\u001c��PW\u0013�k�v\u0015��t�r$�o�/{\\[�:R����o�\u0005�}�E��=���qR)i�{x�ԏ�Z�B��ޣzx|��� y�\u0015I�ޕ]�G���;2\u0015Hc7�ߩ;\u001a\u0001㑵�>Hv�\u001aқ���F\u0002m#�B4�'�\rj{׶TH\"�\u001f$$��M\b?��鐫�Ğ�<�45�z��X\u0019y�%�\u0015�|G�E>�\fJ�P�t7�c���|��sZ�\f�b�\u001d鷀\u0007�zo�\"LJ�\u001e�[��T��~^�G�VK-�\t=��]�4\u001b�\u0006�\u0004dI�%%���v�����#�T�Y�mS����xR�\u0012/��K��H���~����\u0002<й@�ԝ��\u0002����+�\u0017a[ \n�\u001bv\u001f>����\u0017�Z]�ߨ\u001e�\u001e�e[tg\u0010����zx��ҧ��#��I�+\u001c��2y\u0001��O�;|�@wsb\r3]:��ڂ���>@e���|އ��\u0006�؁��v�;|[�~Y.\u0010$8�ڦo\u0019�>��PD{�\u001fu;���\u0002�}\u001eS�͛j�\u0016�?��3#5p�p��\u0000x@�{w�i����?��\u000e*ؽ.�|`\u000eo�������\u0000:f�t�9�������\u0003\u0011�Us��?�j��\u000e�\u0000�Uxo�|BW�\u001f�}�~\u001ba��P=)Ju\u0003��\u000e�1DP���N�>��\u001d0�\u0003�\u000b�����=:�\u0007k\u000b@*\u0006�_-���1ލ�˃PR��zct��u����\u00001N�B�\u000f�\u0014�\b�Eq^axq�\u001d��sO�\u0018�4\u0013Axq����\u0000\u001e���\u001c��^\u001b������R�n�,k�/\f\u000f�\u0006���\u001f<'���{��Q�\u000e�?\u000f�\u0000���\u000f!�P��G�ݓ\u0013\u0000QM�AL�w�;{{�\u0015��ۚIx�W��v�Z��l��� $y�k��n���L�F�s��\u001eo/�m��֞�;o�9�\u000b��\u0007��E��'0=\u0004�Om�fò�\u0000���Oշs������ڜW�u�\u0017�{e�˭�\u000f����<���*�jo��\u0000:�sZ\u0001��\u0000�����T\u000e���<>�*�\u0012>�\u001ej�C����\b\n�b}\tw;����\u000f�_\u0018~�4��\u000e\u000fQۡ�v�v�~���VcQ\u000fϸ�\u001b����5\u001f÷:qA�h��S������\u0003Gn��6'Q���Os�\u0011Gvdƅ/��J�\u0011��\u0000?�\u0012Y\u0011P��D����O\u0013^����3�Q͇\u0011<��Gr��(7ߥz�;�c�L*�GEwV�[�\u0000�~��\"\u0004�\t�7�_ݨN���\u0000�i�s��@\n<܌`\u0010eՃ�{�T���t����l���6\"�~��<^\u0016Ҭ�z$u�\u001fNtݕ q\n�^�\u0007ܖw\u001f��}���\r�a�4I�o��늢�j��\u0000>��B\u0011q�^�Y�uUy~\u0013����\n�bz<�ϭ]>�\u0015��S�NU��w��r~0y�\u0000o�\r3�j@{�ߍ3�{v�a|�@��\"��O�o��]\u0003O�\u0000�x�\u0000�#:��?���1�v��f婪b�PZ���\u001e�߷�ĢGg�y�C\u001d���O��\u0003��\u001fW�M\u0014�\u0012�Pu\u001d��9-�P�H\u001b�\u0003�e���v돚�2\u000eL�\r{��\u0000a\u0003\u0005u_�\b�N��\u0000��\u001f5ij�+����\u0000�r\u0004uH'�yk=\u0000\u001d@ڇ��q��\u0000��Ď�‚Jֆ�=@�z�0\u0013��!���֨\u0001��A �\u0000�M�'�$_6+2\u00154�ÿo\u000f��8\u0004A\u0014y��_\u0004�d5��Ԝ�W�\ts��nթ�\u00000i��W�$r�%���\u0000���]��F�u]�+��2�n[W���r��B%�*�/�z��~x\u000f.�@]���\u0005$�0�� W�>��+ \r��DȐ\u0007Ҍ�B����F��\r��7땚;7r��H�����\b�/tZ���\u001a��\u0011��G��{˝PH�bZ�:)\u0000�oڴ#}�FB_U��F��z\u0019%&���?�׷�Q�!botc�HT\u0003��O�~����ٰI.2\u0015zһ�>^\u0007�|�Q5��\u0014t7<�^LU@5�����'�h���/�g�\u001bq<��\u0003ʿ�J�L\u0005�)�wsϮ���\u0011N[�'�\u0007����n�T؃E=7\u000b�\u000f��X�\u0010�ą�P\u0003P7���F\u0011�\u00052P{J��N#f5�\"�\u0001�z���m�xm\b�\u001dGN���\u0004TkZ�\u001d��çs�d����P)���Ҕ�\n���M�\u0005+���~xk�\u0016\u001a\u0013Q�N�\u001e�W|n�w��C�)��A�W\u000f�\u0011�jw�\u0019\t\u001bB�ž�\r�:\u001c�B�`+�\u0007o�\u000e��Z��3���޾\u0003��C�Gw ��A��|iOoq�h}�s \rJ���j\u001f�\u0012�t��Ҏ�}���g�D�;�E\b�\u001a��k�۷_��D\u0010wA��\f�P�\u0011��C܎�\u0013D\u0012ʁB<�,\t���=�܁L���\tn7?�S�ڛc�\u0012�.{ףT�o����)|�]�7���\u0015ȓ���@Ksܟ\u001e�W�n�!)^�)|�Dt=(=�?~VM/4�{�WsSۡ�{u�Ri�����&�\n��<\u0006G�ʄ.N����JV�Ws�J�I=�\u0011���#Q��\u0007�h�4\u001b\u0013���W��A\u0000�E�Y=�t��\u0007�EW�_\u0013Z҇��\u001dr��[�^��O\u0012<{TW�ʤ(�ɲ\"�\u001ej����\u000e��7���ё\u0000���g_\u0001J{t�}�1�11�nL�Kܯ��E{u=)�'\u001d��c1�z�#�\u0000L� o�7�bA�ݖ\u0000\t\u0006M9\u0007���}{�d���V��O���p>���5#o6U�\u000f�q�m����g\u001e�|�xǬ��������i�>\u0015����9wS�h?��7�ֿ�G��5�M�a� �;\u0004P������w;��~�;�5|���iks�l�\u0000�>c0�u�a�X�>&���Q�+���n�`��\u000b=\u001di\u0014O���o��>�e�\u0007�\u0004[��w���\u001d��ǐ�ipc�N��\u0007|n�J��c^�\u000fa��Hrے<���kO\u000e�ޟF�\u000fޫ�ץ\u000f�����\u001eI\\\u0018��}�o�\b粪\u0007�Jm��|i��cK�n\u000foz�>�\u001e\\��xr\u0007Z�\u0000����'v,�A^���#z�W\u0005ܖ�����w?}\u0007o�Y惰����o��zt��^���\b��c��\u0003\u00007�5|�\u0003�5;ֽ���\u0011�\u0005\u0004\n^\u001f��i��Pp�\u0000\u000b�o�������\u001d�U\u0007s�Jס#�_�q\b��>����+�7@L��zw�iZ�h!#���nk۽N��\u0000<��� ��\u001du�\u001c\r���\u000fs��h}7�w?\u0018��^6���\u0000oߜ�͹`l�\u001fȦ��/��\u0005~�|3?���\u001eD}��~\u000f�//�\u0000�>>��N�O�l�a��%'f[\u0007m��̬;o��y����'�f``�������8y+���\u001f4+��(?ν�Zc}�Wo�d�\u0000T׾L�\u0007�%�|_�\u00009\u0001�\u0000\u001c{����w�?�k�g�r&�4�\u001e��~w,�7�_�Ӛj��\t��SC�=~�\nd\r�C�!e�*+]�o�l��E�ݥ\u001c�>\u001e��S���\u001b�k��]\u0012Yҝ�w��\u0000o�0K�Zv���o��õy����ڴ�{�+P�\u0006\u0000ר�����\f�U�^��,�7\u0014\u0014�{���'�8s�sT�T԰�v��t\u001f!�\u001ed�o���\u0010�ڮ�v'�\u001fx�r$\t\u000b�\u0013�@B�5:\u000f�_�l��W�R�\\�R\u0018\u001a\u001a\u001e�۷m�\u0011�\u0013�\u001aA4��*Iɹ\u0002\u001b�]����Q�w��� �(�Go\r�\u0000\u000e����{�*�\u0016�aO�n���1ɾm���.����c\\�ݖ�\u0014\u0014�M���\u0000Ͽl�\u0000'�@\\�\u0014*z\u0011�\u0007��#!A!!d\u0001�Ew\u001e\u001bW��\u0019\u0003�P�\u0000����n��@�\u0004}�\u000e�;f�\r����\u0014�ێƒ��2]\u0010�T��m���~�\u000e\u0013�h�\u0004�?%�\u0001����l�J�Zv�@t;}�~�V�dZm�P�\u0007}���#}S��P\u0003Q�\u0013N�\u001f�)�\n���ɾ���T���\u0018w慄��F��M���\b��R�\u001b\u0016�����Q�\u000e��o2\u000f��j{t�e|�c�4\u001b࠭A#n�w�'�}����\rw��:�s�r*B��@kNǽk�pl�,�ޔ'�ޟ��\u00014���O��g�\u001bg\u001d�tB�IJ�_�\u000f���\u000bں�\"��G�v��^��Ss�s�\"e܊�\u0005$�kq���޻\u0011�\\��ܔ\f��Z�)�W����o�y���o��C�S��\u000b\n�KqJ��S�\u0005:О��@Ȏ�J���q�����\u0019\u0002m@��[�;��\u001d<=�\u0005K&�;�:n\t��w9\u0003�R�'�;����ད�t1vj\n�n�������*��~�\u001e����1U�mC�\u0013�:��0sV�m�<{�\u001faЂ2�B���\u0014W�ԑԁ��5�\u001d������S�=����d3�\u0007u�C�_\u0013�����\u001agJ�\u000f�$V���\u001a�9\u0003��)�������\u001f�F\u000ekv����$u���d�\u0016�+;�s�i[�m�}D�c�Y{�Zg�\u001fs�-CA\u0011\u0015�\u000bJ�;�H�[���\u0006��dZ�����\u0015�3�\b\u000e\u001e?���b���խ��A�n����wS�vx�ط�v��G��lG \\�R�O��\u001d�~y.���T�ۢ��n�}��E\u000bꯞ�3G�-χ\u0016�+�f\u000eJ䌜��\u0010Li4����}���q�\u0002�ӭ;�%��5=j~c�ߗX;�]ο?\u0003�>��|L�(\\\u001f���\u001a��\u0011���?\nV��O�lx�U�:�)]�™!��\u000eG����1U���\"���v\u0000�!P5|\u000e�o\u0001O�W�\ru\n�o�����E\u0015^\u001f����\u001e_�iT\u000f��\u001e�m�i��Z>����\u0013O\u001e��%W\u0007�k�ݿ��\u000f#�ix�_\u001f\r�H\u00106�2�\u001c��]�P��m��\u000f�{�����|��[/\u000f���ޟ�\u0010A�)���Q�߯¿-�ص�\u0016}�:��፩;�&}���|��_\"��H�\u001f�s�@�O���U�OTD��W��x�������9���Ͻ�ô^cz۷��ӽ;��Ծ�������\u0000\"MuYv�p)��g6]����Z��~��w�9�o]������\u0015,�\u000e����\u0000�2��V�*�\u001b���\u000fq�l\u0012���\u001b|��aU\u001f��\u00001�$�}?/��ª�_�_�L;%]������\u00001�wtW��\u0000�\u001f�ǿ�ONO��Ӿ`j�Ñ�i�����zWoc��Mʩ�纰���P��4����H;m�iB\u0005Y��#�ɺ\u001fi\tD�\u00145�M���Ms\u0010�\u0003\\��[�m\u0018��I5�\u0000����\"\u0000;0�<$�㐽(è�o��\u001c�2��CL���\u0005��‹��ߦ[\b�-�%Ox��u�x��}�ק�e\u001a�\u0001۹��t\u000b\u0017�\tk�\u0019M+�\u0002���\u0000\u0000�����_���R��J�T\u001f��9��W�\u0010|�����x�x��_�t\u0003�Zb�uޛaB*9i��\u0000?\u0001�ޔ�9z��8�_r �����\u0000_l~�@\u0003��|���\u0017=?�zt�juʲ�Kc��\u0012C�\u0000+wL�\u0000����\u0000[�y�o\u001f�D\u001f�@��o�O�ɇ����\u0000����\u0011��_e��G��-������7m4�\r?���PW�ܑ�z����y\"G���3�n\u0007��S��\u0000�|�\u001d~a�a�(�:R����$����i_�o�=�*<��\u0011O��퍤\u0014D,��H��^��bV�\u001b�\u0007ނ��\u0007���\bd��8n\u0007��\u0000��\b�\\Ӱ٨�\u0017��x{�d6��\u0016\u000f�eā��\u0000\u0000�\u0007��OL\u001c�+޺�+z�6�^����b\u0000a#�\"�MI���=�1\u0015˫\u0004�E�&������d\u001e�dߧ�_?j�Ϛ\t���Iڝ����#C�j���T�n=��Ә��]\u0019�����H_�\u0001���:o�^�PdhS|M��D�\u0010`H��\u0012<}�Г�\"�%W#� ���@k���9\u0003A,GP��J(\u000e��\u000f|L@�=Hi��n�rnR}���\u0000?��eF#�V\u0016y��\u0017��ۦ�L� G$[GA�m���W�cJ�ٸy��M�\u001f���\tw\u0004�\u0002X�:o��x\u000f��F����\u001f_��]�3�Qi$�Cӯ�w\u001d����'����n\u0000;l\t\u0007o��Ƈ5@�Lm8�:\u0001N�=�^�+��$P4߰�>=\u0000��lkz\u001c�v�J\u0011���G�€U���;x\u001e��H8��\n���c��9\u001aM���k�\u001bԁ�����\u001eLm{oJmM��4ڴ��w*\u0007f;���|\u000f�«�N�\u001d\u000f�C�L��S�\u0007o\u0003�|2\u0007��\u0006�pi�\u0010=�}�\u001eV�&c���o����@�\n�O���{P\u001e�ۮ\n�}Y\u001d����\u0007�@Y#�b@!�\u0019�o��\u0004�\u001e��o�\u001e�Cm�^�\u0011�~���\u0013�\u0000\u0003lį�\r�>�\u0011�o�o\u001c��ۯ�O1h\td���~_q�+5V�\u0012�&��O���4��攪[������ӯZ\u001e��@(K&��V���k��B�ĥ\u0012�m�КWj\u001al�،�m�t�\u0013@>�|\u0006��l�J\nI\t\u001e\u0004�\u001a�_ē�dB�\u001eG�7܊�w\u0018�*�\u0004S�nEk�R��N��UUN�|�\u001fgn�Ҙ�����j�\u001bt>\u0015�\u0000?d���\u0006�P\u000e�ߧn�\u001c���<����\u0004S�>\u0003��!�Dy\u0006�ۭF�?P�Ȑ�\u00129sTZ{Sڽ)�9]YH��\u0013\u0018\u0015��\u000f~�|���[/�7�^DP\u0001ҽ��\n�z�J^E��Q\u0010PӮ�=?\u000e���VM\u000eO`�c�vč�D�M7\u0014�NH���TK��-G�Bh>�\u001e?M:fV1�ʝ\u0006scܞ��٩�]�k��\u0007BO�_��#\\�\u0018\u0000&H����e3��\b��*UYB1*È*�\u0002v�0⺱oI��\f>��<��o%Ao�1�ϓ<��Nl����:\u0016��[X��Ս��\";�\n\u0017��\u001f�&�\u0004���.��^6| �}q��v\\2<�ߓ��\u000f��\u001f�ĭ+M�W��\u0000����].\u000fU^�\u001f�o-���\u0004?Y� [k�e�h`���Ղ~�\r\u0006c˷�\u001a1�9�^BD���i�\u0012 F\u0012$����4���/��6��ɢX�\u0000�O�OEv�m\b�'��\u001d\u001e\t%��(-#K�D��,�M(P��i�}��1��ɜ����&3���י\u001c�\u000e�U\u0011�(H\u0001�d�Ͽ�^@�t֟F�ד5e��[�o�y�D�Ym&���9m�d�K9ҍ\u0014��e\f�I�+\u0019���[C6\"H\u0007i\u000eG�ǣ���pA��Hs$ђ�HL�-+\u001bD]����FRGbE3#\u0011��\fH1�����i\u001fz���Wz\u001e��\u001a�9h\u0004�[�\r=�}\u0015�\u000fl4I�w/����X�\u001d�\n�7*�=\u000f��|7�UỂ:\u001fc����|\u0010�?������\u0011�W\u0006�c^���q\\h���4������%�܅@�\u0006�\u0014�~����ip�����\u001bl��/\f;�k���Jm�p��D���ޞ\u001e\u0018i-��>=�>�\u0018���2���C\u001a��@:\u001e��FKa��$l�\"�.Q���\u0000Wڽp\u001f�j�A�Tv���#� �G_ �\u001fõ=��>��ܮ�\u000f;.���~��\u0018�O.I۪��jGC�a\u0018w��k�K�}�4�z\u000f\u001fム\u0001\u0004��I/\u001f�z�\u0000������p{�7>���lh���W��kJv9����3\u0011�{�cz�-C����\u0006s2���og���U�҇�\u0002�wa�\\��V����ߧ\u001e^�\u0000�tg�k�}�\u0019����!�A����\u0000�fN.����>m�{v�\u001f���hق\\�-��\u0010�g�Z��8B�p����;b��iڟ3��2U��U��\u0019�=>[b/p\u0015���\u0000�r5\u0001��R~5�5ڱ�>漿K�o��>!�{����]�);��UI�����\u0002kn�y���%\u000faM�\u0000\u001f�!b�d.�K܂E74��\u0011�Q�\t\u0010:�\tߙQ)]�N�m�\u0000���`\u000e���T\nA��hO��\u0010/�Ǒ$�\u0011�\u0012'$�_��=IˡQ���h���&�?2�m���S�~����$��n0h_T�J\u0000�\u0001��5?I�}�f,9\u000e�nN����G���\u001bl�#�g:.� @o�\u001f{��\u0006��B���}\u0019�Ǘ�Y�\u0006>=<}�p�z\u0011\u000b&�A���¨�����H���j��\u0000����f9��|�%l.�\u0013�_c�U��0_�_��\u0007�晿MEj����}�/8��\u000ed\u0007>��������4�h\u0013�����Gfw\u0016��\u001e����ۮo|ڕ\u0007��Pׂ���ߊ\u000f'���\u000f�\b�S���G���@���}�x�\u0000=�m\u001bך�\u0015�\u0000>�\u0000˜)o�\u000e����\u0015���PRJ�֟w��\u0001G\u0011�\u0013�f \n���\u001ag�)�U�@jz�a�L�o�=�/r^�\t��+�:�\u0000`8� ҙ���6�u�s�Ȑy�B�\u0014��׍O\u001a\u001e�Sb|<7�\u0001Y\u000678�\"��?�\n\fJ\\�_m��\u001f>��;rG$#EɎ�\u001e������ċ�-�ؖ�\u0001�a��\u001d��L\u0001���p���*7ޝ>�{oL����h\u0017\u001b�J *8�9)��\u001e�NB�\u0016Q���&�\u0000F�A�?�2\u0012\u0002���\r�\u0010s'0v�~����\u000fz�\u0016%��:�,\rw۰\u001fָxx�T��c2FEA��#��r�\n\u001b�\u0007B���\u001b�4�'m��\u001aaf\u001b\n�a�}H�s@�\u001bwA�\u0001M���\u0002�'l�\u0004�I�W*u�\u001d�>����\u0000y/T��3�k���o�y\u0004��\"+�קJ�\u0000g�S(׹�6_����\nс�F��\u0015>\u0000�5q\u0017�\u0002vM�\u0002���\u0005v޵ڻT�e\u0012\u0005@\u001f?a�\u001e5'\r!\u0018��v\u001b��AA޽�\u0019\u001aꐨ\u0000,\b��\u0004��\u0007��\u0010)\n�R���}����\u0016�f�w\u001f#�Qڴ퇒\u001bc�\u001bm�W���\u001bO��+�����W\u0003�P�Wo\u0011��L�\u001by�Zw�\u0014�ӿ�|�\bS��j\u0011�}\u0015�\r2(C�\u0000P\u0011@\u001f\u001a�\t�\u001d�\t#|�N��<\u0007o��\u0000\u0005AH„��Wq^�ȞV��\u0007,��ھ\u0000�=6\u0019O��%��M�<7=\u001b�#�+d\r�4��\u0000e�C׵\b��_׋\u000b�OC�a��o\n\u0003��\u0013�\u001f\na�Log�yj\u0005K�BGڞ8��4w4^T�*i_|�E�GV\u0007�>����s\u001f�q��q7F}C��#I��(t�u+(in��5X��#��O�t�$�mD���S\u0013�\u0005��\t�}Oj���\u000e8qgԏ��R#���\f?�\"�~>��keX |3~��G���$���\u0000��5�gP�����m3�:BZ�Zy]��\u0017\u0017^d�5��}Z�U��t�F\r.�;d\"xl\\����ٽ0H�g��{d���l\u000f�1}e#Q\u0006�\b�\u00072N��E�Η\u0018\u00195�%�f�����? �����3�s��'����Jy�A��N�t�J���X��N���k�Z�˘��oi>�\u0004�0,P\\���Y%�)\u0007\u0012H\u001d��\u0001\u001dFL٤c^��᫾Q�\u001d\u0005���!���\u001c81F |N㝞G�/���GG���:k�`׮.��\r���>�\u0006����[�Kao�ދ=GX֯��^�A\u000e�m\u001aE-�3IT`�?\u001ff�� 0��\u0005�H�w\u0016\u000fH�>�>i�\u001e*\u0013�|�\u0015�5V��y�C�\u0005����\u001a��q\u000f��t�7�q~���MF\u0001s��zT+b���O\u0002Ffhe\u0005��*��[ƞ8�K%F1�\"�Fꍝ�27$�St��x�7����\"�#�\u001bS ��\fo�M�k����y�N�,���G�P����\\yvmu\nZ�\u001e�����4�-ī\u000b! �*\u000f�c\u0013\u001cq\u0012��\rt<�X�m�fu\u0007��)c\"5�����q�=KI����h?�\b��u{a\u001f�l�\u001d/�V�;-SM�mth��?J�������%��$\u0000[En��)\u0005�\u0004�v�!�ɋ\u001c��$\f�A��+�\u000f.�\rV�Ʈ�!\t�c��\t��؃}y\u0010+���\u0000\"�T�@~_Y�'�9<ǠG��;X�t�OW�5˭>+'x��u+[��w�\u000e�kpZ(Q[��*��88�;>0��\u001f\u0016\u0013$Q�l{���\u001c�V��\"x4Y�G\u0014%/+\u0004�ؒ+z����\u0017�~��\t�{\r\u000b��B��G�d�b�\u0007�la�[�\u0018b�ŋ��{%��-Ƨf�'x��r�Y�&tF�K\u001f\u0017,�\\1 oBU����:t\u001a���O\u000e��L�\u0000�\u000fuK�����s�\u000f���\u000f�}2\u001dg���\u001a\u0007�t�縳f��Z[�;�4G��u\u001b6U����.\u0016Dq@�\u0006l�ë��\u0005�\u0015�\u0011�bh��cgC�M��L�����˳H\\�~}����\u0018�5^\u001a�|?��k��KM��?/\u001at\u001f�\u0010G4\u0012n��\u001b}�={\u001f�H\u0011�+����5�qC|�_���������gl�A\u000bl\u000bF��߈�y=�\u0013Μ�c�=�k[Q\u001d�H�\u00045\u0015�\u0000X�����ʃT�%(\f~�E>~��Ǘ&��T\u000f�\u001d����\u001e�iܶ�\u001f���逝��ޠ�_\u001f\r�S\r�\u0002f&��\u001f�Oz�6P@�]����{�t��w\u0015�F�7�ڡ����[�9���)���<���jmO���9��!ˋڿ!����u���S�\u0000��l�#���fG���˿�Ϗ�����;H\u000bDz\b��l=���۵s#\u00176��}ɯZt�\u0000?a��1K\\P��~���\n�\u0012|w�J����)�A+��\u001f�\n����\u0000��H\r�*��)?�'o�#k�+�������=9v����\rP<\u0012�tח��J��U��~�A�a|7�g\u0010�4\u001dʔ\u0014��޿�+�\u0003sȦ �J\u0013O@|<\b��m�cd��\u001d�\u0004(o�\u000f\u001b�`\u00015\u001f��FD�j'{\u000bnd�\u000b\n�\u000e�u��\t�\u001e.E�=ϛ�5)�\u0016\u0007z�?�Gzx���-���@\u001b\u0001\u001d�\u0002&���P\r�=����\u001d��g�O���Zֽ\u0017��)��A�{@|T�e�\u0001���X�������&�sG�7������J�[�����O��!$�\n�\u001f��� sDs��}�?s(��;��\u0005��\u0000���\"v�r��K`�/�\u001f̢G�ΚG�\\P���<��v�?�\u001c�������\u0000��_.i�?�@?�\u0007�Λ�\u000f��{ڲ��B�\u0019���@;|�T=��G�\u0019rx���r&�܍�\u0000\u0012=�p���\f�\u001e�\u0004�M����S�)L'.��}����4~(�)�\u0015+��������\u000e��~_��Ōy��\u0018�\u001f\u0010��_o\u001ac���\u0016�H\u0014���_r�M@��'���n��\t��hhI=O���l2\u0007{\u0001,�5RG^�;t��+t�b�m��\u0013ާ\u001f�\rw0){���~�F$�ST,ǽv��o�\u001f>�\b��T�Zw��\"�*�\u00112\u0010��a����ʤ(z~,���Ga%\u0006��N���\\�ߺ��?4�$\f\u0003\u0001J���a��w�ܨ�ے�^$�Z���<:�S+#{��\"�\u0007�\u001c1��{}�\u0011�\u0019raWP�b\u0006è'�o]�\u0012\u0004��{S�:��^����\u001d�\u001a@�[ h�(���\u0002�7�\u001e�\u001d��>�\"\u0000ՠuK!\u001dv�\u001b���o\f�\nd\r[\u000f�O������dH��5�� DAޟv�}?,�cm�#\\��/�[�p��N�\u000e�vU�ٕ?����\u0012ӏM�\u0011�qҙ�\u001c��\u0003��\u001d\u0015\rG���0���XAG.h�N�\u0003���׶JЮ�znE8��:���/����k�O�n�*\f*�z\u0011ڴ�\u0000k�\u0006ʸWrM\u000eæ�~\u0004dI�]\u0011m��;\u0011J\u0011J���\u0004,�\u001d\u0007�^�\u0007�2v\u0002V�W؃�S_\u000e��7��m�zm]�6��2\u001d\u0010����J���\u0000wl\u001eHB;\r�o�q��k㍥\u0004�A��Ӯ��\u0000�D�\u0016�e\u00053UM>�ާzv�����#����[c��kQ�nF�ҹY nY�-.��7�o����۾F�e\u0011I\\�Z����N��p\u0003^�sK����N�\n�S��$�K������\u0007����(���EON���x|�J��\u0012�z�i�jx���\"�;\u000e��}�R=�\u0000^\u0003���\u0006��\u000e��\u000f�:�R�+�>;R��7�\u0012,���ҝ��^����\u0001䪫�m�����T`J�����n�؎�\n�\u0007�)C�g��4\n���DZ���) \b��om�����2\u0017���\b�)�&�h�\u0019\u001b\u001c�\u0007\u0011�+��I��7\u001b��*�ve`�\\*<*>���\"M$�\u001d=[��\u001e\u001d\u0003�\u0011��\u001f�ˡ��\u001c��w�{;M�#&_^Q�\b���][�4Ϫ^�Z��/u\u000f2�w���\r�\\��z�����M&�'�5'�y4۽N��H\u0012�rޗ\u0000�EN�\u0006�O�xx�B0\u0003�ۺ����z�\u0013�\bǂ2\"\"�^��-�,\u001a\u000f�MwXk[}\u000e{\u0003xڔ�eor�\\����\u0005���i�K�\\6��Mi��\u001c\u0014VEF\u0000ն0�c\"�\"w�_����o$\u0007���}��rcG�#B�;;?:�뉧j��\u000b�=\u000fShg��kd��\u0000J+�h���_Mlbu�\u0002�H�r��a�\u000f\r\u0002E~\u0007�D�L�ɫ�`B�����;�����R���`�\\��z\u00176Z��}j-R;�\u0016�uie����\u0014��\t���Y\bq��\t\u000fH\u0000~>V�\u0010�\u0013f[��OQ��+�/����t�:|Q\u000b�KQ՚��h\u0015`�I�\u001a��c\u0003p�X��\u0019�\u00144L\u000e\u0001����l�NS\u001cH��9k\u0010�������\u0000ζ6�]�Y�5I��b�2Kx�iz�m\u00034p�H�\u0002IKW'�P�1�\u001eQ�c[�\\��\u0000Yl��,ٻ��'�yK�Z=F-\u001e�\u001d\u0016�U����?�m21oaei�j�-i&��Yc+��i�Ŕi�\u00062K9=Ce��e\u001fV�U\u0010?O�ށ�� ;�_̳�\u001f�\u001b�X����>[��,mR��TT����k��T���Υ�E�I�K\u0015\f1#�H\\�X�f\u001e\u00148x�\u0000������\b���sJ'�N�?Er���0�MTO5�s�MkJ�Um\u0002�O�]�l��[K\r���Y�wpi�0j:���U����e�\u0014\u000e\u0007\u0016zl^$��\u0019�\r�~��6M���#�7�S�0\u0002\u0006BD\u001a\u001c�\u001e��\u001eD\n�{�\u0000���/��\u0000-�o�o!k^`��ƅt��y�.��(�d�\u001c:��:V�\r�\u0017SX�K[$O?��' �9��h#>\u0019Hpz�1\u0004J�\u0000�\t��ځ-�ȔLs�3�\u0007b\u0006��k� 9�_�W��\u0007�����RY�'��\\��)tx/to:i\u00167:^��\u0017h�\u000b[�i�t�/.m����}Y�]��\u0004�>=^M.C�VL��BdQ��\u0001�\u0015��|�&��e�N�\u0019BD�F�\u0001��~c����\u0005�7\u0010Cqm4S��������\r���\ni�K�:��\u0000�͟d\u0012rʼ�\u001d�=�ӯ/�:1��s����\u0003���:����2�\u001eL\n�����>���f�il���w��B�P=��:�>�=<��p��N����0�揹z����\u001e@�\u0013��?���Oƙ!TJ��\u001e~~\n����H6����#5ڏ��*j��?3����\u001e�v'j�f��\\^G~jR5\u0007�q���;�>Rj�\"7��|�\\��\"�4��\u001fN`ț�-�#쒥j\u0001\u0004��v̬W�]Z�2\rE>��\u001e�mQM���9��\u0000U4�P�\u0013��&�\u001f/�\u00053\u001b \u001f\u0005\u0016vKubR\u0012\u0018n\u0017��zo���F�6�C�y�ԆI�^�\u001f#^��\u0000M�Y;�\u0017?\u0018dZr��\u001d��7�ڔ�|r��{>��\"�\u0000�u�\u0000x���oN�6�f�\u0000���ގV�\u0001��\u0000�X����\u001e9�\u0006�\u001dч��\u0000?�\u000b\u0017~���T���aڟ���&@���{l7�\u0000k�-��A��u��\n���a���e\u0019~�&C�������V�����Q����Tg�v����/\u0019\u0006>O�Oȶ�\u0000�oN�\u0000�1��\u0000#��:N˯\n>欷��->_��7���J%kM�\u0000���*�p+\u0019�\u001f��b�[\u000f7���\u001eLh75�ֿ�%\u000f���́�n�kJ�|����WW\u001c�䆌Q���{��E�� ݼprݒ��+'CO���\u0014U�Qh�~\u001a\nv����\\)�[$crGBG��S�8+�;�[/\u0014;�G��M�\u00120}ʇ[��\u001d7��~�\u0005P�eJ�\u000fO����V+p�1��~��\u0004^� \u0019*@�\u001f*`_4Tq)�(\u0007M��lĬX�)���m]�*+��\u0000\fj�N$�\tEͅb4\u0015n�v\u001fٕ�@�%0��y\u0000�\u000b\u0006��\u000bJ����\u000ecθo��\u0011�Ol\"�ڍ�=<\u0007�yIn���\u0013Y��&�\u0001ڟw�,��K+`w\u0016�\u0001b�u={v��5����8~� ��\u00002zmL�@�\\�\r'\u0011\"��S�n��m��\u0010�\u0014�Gw���ࠨB\u000eǍ{v��q��\u001b�Q��ʴ\u0003n�mA��\u0002� ��]������zӾO�B���iRk^�n�W\u0010�T(�o\n�POZ��\u0018�!��\u001a\u001e�\nz\r����\u0005�ʬ\u0006ð�������V�<�u�8�\u001e\u001d���G�rccK�L�*z�\u000f�\u001f�|� �X{\u0000v\u0003�����\u001a��J��_\u001f\u000f��o�\\\bC�7�v���\u0001ț�M��\u0012F�C�;צ�\u001d���=�K�4\u001b�C�O���#�m���X@�ƌ\u000e�ri���\tr���K�j\u0012A��<:��r��V�Il�)������� \u0001 ����!�V���\u0007SN��\"�\u0012[�&�\u001a��j�\u001b��*;�)��\u0004v�)�;\u001e�`��U-��[m������d\n�\b܊\u000eխ(\u000f��\u001e��TJ��OJ�\u0000n�{x`�)+hh6#�oO`E|1��t�hw߭\b���\u0010�\u0003o\u0002w#q_om�1<�T\n����o�\u001e�\u0015_Jm᷶�\u0007�*�7�ö�:Wj����>�\u0000�@\\7=}���􌌎̆��Sn�7�\u001f��+ꤐ{����\u000f���J�{ҹT���\u001c�\u0012��\u0000�\u0010{����}�&0���\u001b��}�\u0014ȑ{udy<'�rg�r����q'���20>�q>�q&���+Y�o\u0016��1F�'�Mĉ\u001d��Q����\u0015�_\u0016�B�|���Q��\u0011~����\u00169$��J�U�\u0013\u00057i�\u0012œ�\u0019�,��(���`\u0007�\u001f��w�\u00184�D0�v|Ͽ��\u001c�\u0019j~x�+;;m,K�����>�\u0018����B\u0019nf�/�\u0010�E�,\u001a1�\u0003\u0018�P�~\u0001��a���Y��Z��>�q��\\�Ξ�\u001f��L;*$�Q�\t��5��\u0011\u0019m+��9��\u001b�<��[?�5\u001d\u000f��\u0017�\u000b�\u0018#X|�m�j\u0016\u0011\\��]\\��D��L�\t:��TY��E\"r>\u00182�[���~��Do��{Շ�5�{m:�\u0000����b�\u0018HtKk6�o�M'R�����^Ӗ����yj��Ĩ�2[K<�C �ǭ�x#D\u0003V\u000eÞ��?��$e�\u0019HX����U�–��D��K\u0017����hZ��\bt�u�3D���o^ԢI.�FO�;�6�D�+\u001b8x��T\u0016����r\u0011\u0014G\rp˗*6OZ�w\u000eV\u001c�\u0004�D�X��t�O����_��T�\u0000��h�\u0000�����h��\u0017\tmm�ma�Լ��\u000bC�\u0005��M:\"5�)'�`�\u0014&BkǠQ���y�����U\u0001d\u001f.G~��\u000e>���k�sa�Y���C����\u001c�<���6h�����Zkz\u001e�m\r冥f���x��,\r$�P�\u0003��]\u0018\u0010EFgb�\u001c�㉸�>���ˎX��1RN�����\n\u000f��l����pz\n����\u0000�\u001e 9�\u0000�K�������P`�\u0014\u0016��P\u001e��rk�|)�\u0012\u001eT�K���\u0000W��\u001f}*�z\u0000kZ��z}�\u0000�\u0002��b#:)\u001e\u0003�R|~Y�v��P�\u0004���hp�t9�{����$�\u0000z���G�����x0�E�})��*܈�*�(MEk�l�t��C���xI\u0000l�u����\u000eH�S�w�\u00076c\u0000\u0001��I�*�\be\"5�\u0007�\u001e��G�`��\u0013��$㌣�wþi�[\u001dZH�P1z���_\u001c�\u0019�ؾN�<8'�c��Z�\u0006����c��cS�UI\u0015��Dt#�2\u0018�z�RrGk��v����3+��RK�%[������\u001a\u001c��ߢǓε�������|�5��{���nO-�?�a�T���x\f�\"%}-Ά�|���\fܤ��\u0000.�v�~l� ��G��t%��?O<��\u0000\u001c�����w\\�1m���\u000b}��{�\u0000�s3\u0015l�o������]�.�%�?]6�\u0000:��/އo�O���z*�\r�\u0000\u0001�{��r����\u0000�1�J��\u0000u�6�?��\u001e{��\u000fυ�j\u001b���Df\u0016��>��ݿ2����\u001d�\u000f�ol�G�\u0013� gb*{�`w똹l��c|�\nB���\u0012\u000e�\u001a}��\u0002��R�m\u0004rd����w\u0000Ӯۍ���〡�����\u001f/\u000f\u000fq������F�����i��Ϩ�\u001f\nϑbM\u0016#� T=:(�zt=\u0007њ�^:��R��Sˣ����\u0014S�sM�m�M�-9���4�>�\u001b~�\u001b~���9m�\u001e�\\��џ��V�\u0000E�\u0015�\r\u0007�9���\u001e���y?A4��b߷n�o��:A�v�s�i����d���5��\\U��\u0000\u001f���H�m����~>;b�\u0007K���t?�7\u001b��՘�ǥ�~�\u001f��\u0000�Ǐ掜ݿH�O\u000e}<79���?x/�������\u001d�\u000e��oN���?o�\u001e9��Y�q�5�\u001b\u001b��I3�\u0005��D����U�vϮ%\u0012��j5-�V�����������.-\u0000RiZ�@��}9a�\u001c�v1u\u001f\u0007�\u001e#�ppta#G�Z\u0002�\u0015��� ߽\u001d�0�\u0015���}\u0018\u0019!���u����\u0018j���cQC�+��o\u001c\u001c�w�wq����o�8�\t\u0003�ɩ\u0015?�}��#�\u0015��iI_\u001a�\u001e���\u0007ZHK&SZ�ק��8����d\u0003\n\u001d�ڞ��\n\tD$�(i��)Q�Z\u0010��P6�ڝ\u0001�E�T�Y\u000bTn+�����c��E�('\u0000���o�@\u000ev�G���wZ�����Pk�5#p�k@�\u001e���d(��.��{�Q�bw;\u000f\u000f��Crl�Fb�E\u001c��/Z���t��m�!]���˒.(\u0006�\u0000)�����f<��VQ�ل�!n���\u0015���S!�ͳu�1G2��]�ߑ�2\"B�S��\u0012\u001b�4\u0018Y���߷��#w���DŽ\u001d�o�[�2��i_\u000e�.�����r4��s\u0018�٧���|�b�\u0017d3���s�����l;v�P�~�3Tw�H�#�M���wۯl\u0001�=Q��\u0003�ӭ\u0005\u0000;d�$�a�YE\b#���v����D��Tw�����&��k^�\u000f�\\��To�P��}�O���`��\u000e]V���Z\u001e�\u0015��L7fַRa�ҝ�֛�O\u001c��k7j$\r���\u0000��\u0000���H�J�}���~��\u0013��\u0004��(I��?H��Ŋ\u0001�v�i�S�\"��+�M��Kf&�����\u0003� N�9�\r�\u00127]���_qޙY5�g\u001a���X��u������\t_��l\u0006ҹ^��]�S֠��+27h���q^�޵���)��L���Oa�Pu�2�\u000fD��r5�;o�\u000f\u001a��D��\u0019\u0005**\u0006��v߷�\u0015�L\u001fr�J�\u000e� |�v�\u001e��ƠmP\u000fSJ�ڃ��:����7޾��c|�K��\u0007f���\u0007�\u0006<���S�c��˥i�\u0007�U�r7��_��\"�\u0012~�\\6����L\u0016y��ꍉ\u00154����\u0011\u0014|֩^��A��\u0019\u0003\u0012�\u001b\u0015˽6'��\u001di�p7�D�����R�4�O�\u000eVc�ɽ�䊌n��������\u000e�2���?=�\u0000>?.��\u001b?,���������v���^���O�Ai�y�Y������h�&k��˂��\u0011�E�=\u00009���q�\u001cC�<����?�u<�v\u001c2ϐDr�|��������/�\u0017�䗜|�����}�M���\b�G�#�Z��>D�b�oОX��E����%��\u0015K�٨8����\f32�<���~�\u001f.U\u0001�1�9�Iw2�<\u0018F8\n\u0017u����y|�s���2]+�}B�^�yJ\r:Y\u0015��ՙ�\u0012�p��Q�U\n�!���:����\nS�$���ZV�\u001eKyf\u0012\u000bp�Ksp ���|1Ig�X��P���\u001d�Ue\"�a�]�\u001b~��FP��\\�\"g�&��\u0017)�[%��\u001e�����-�!�\u0019&Bm�E�\"�f7\u0001��FU�6�@\"sz(��ov_�\"U��+m;V��x�\"2Y�̷_��b�{�n�UF�?H6�oqe\u0015bu\u00152\n�����!\u001e-����j]&�x�lQj\u0016�o�:@��j�\\��Y^�P\u0017W\u000b$���Lf`�\u0011ւ��9Pԓ*�����\u000b���F�~����W�O�\r*\u0016�ӹdI4ğQ�-N��N,�Im\u0002�e\f�%��\u0015v9lu\u0012��\"��\u001d~�\u0019tg\u0010�\u0013����i���%������ݓ[��\u0006qx���֚b��{)^�մ�\u0018Qd\u001c%��`\u0015�(+g�\"+�?��i�g.@�=R=2].+�>IOִ]&+\t��/�h崷kI��8�W� toE.���%1�\u0003�4L�N�b�\u001c3\u0011�\r��\u000bx�;�\u0000(\"\u001d\"���從�ݥΝ���w\u0016q��6_�����g@�8/o4^�L��-��1\u0002�o��\u0018\r&L��?����ak��\u0016w:�����ؼ��h������5{K��Kh�����2��w\u0017\u0017��bhm��=F���0��ȑu�~��R�\u001c`\u0003@��/J���T��K{motߥ�\r_G�E�4�>Ei\u0015��i:���+^�Y�M,\u0017D4ʱp����ʥr&�N���A��\u0011\u0011|]㻿�ʔ�|��>�gu�+m/I�k(�.�J \u0013�WB[mKI�ic��Il /=�F��-f G�@���\r�����ٜQ��\u0007�g^V�<�c$���k�F��\"�o�^���k��\u0010Gik�y�����b}*���D�hZ0auYVI+�r��cm��������!*7\u0011�~>\u000f����j�:���sH�W\u001eo��9oi>�\u0012�����]ϪIr�H�lD\u0017A䴒D���� 3�L��\u001d��\u0010G:��I�3\u001e^\u001a=v�\u0017]?S�\u001b�pO�s���W̟���6��wS�>�ڕ�����S�����������|��ި�tw\b�Y�\u001d�g=�9�y8��\u001c\\F�\u001b���9ny�\u0005��A�[�Y���/}��\u0011�\\�~������S���M6�\u000b�3U���4��i\u0012{k�;��ky�6d�$��Pv��a\u0019q\u0001(�\u0017��9F\\2�\u001c�'�4�5�x\f��NQ�����\u001d�n\u0006&G\u0014�\u0006�\u000fN�ރ1!���\u001b�m0\u0004&\u0014\u0003s�o�?�\u00072\u0006�M~\u001drr�]�A\u001bW���d��d(�O\u001f:�K�7�zxxS2��ͤ�i@���A�ZnMz�k�T�����`���K\f=!�����\u0000\u001c���+w�(�\u001fO�n�����gc�;\u0007_��5c�/\u001e�?~m�g\u0019�\u001ew\u0015���C_��i�F��m�&;??��i,�ۅV;�E�}��Çha��N�U���&K��h7N*\"j\u001f\u0010~y��v���m]�\\�\u001d�A��uǗ�\u0015I\u00117M�T�Y��j�\u0012��˗g�b7�u�\u0015\r\u0011\u0014��\r�7X;ko���>��rhe\u001b�\u001f�s\u0013�䡃\u000e$\u0003Z�{{�l}���6;�\nX2Gb6y��\u000bo����5:�\t\\�&�@��7�_\u001f�7�4\u001e\u001f֙��'�π���-�9?�8�;S6��o$�=�;�~�y{m:>�/ӷ��1��;i;�Y}�o���̬W�Y�Z���m���%������T\u001bj��O���\u0001�Vxt�ñ\u001e�87UA������c�WET��\u001f��ҕ\u001f�\\\u0014��\t#d\u0007��\u0000=�z�]˽R^���6�����Qe������;�f��UA����\u0000o\"y�\u0000I|�\u0019j:}?����\u0018�2��I\u0010�Ӡ۷�Y\u0015QF���~���\u0006�dH�[L��QAS���W +}�t%^iͤ�J&ۓB\u000fAZ�~����[x4�4\u001c��\u0005*i��2��j\u0015�\u0015�d�\u0000w�z�둮�Jr[�N\u0003�*@�M���(�yC\fմ��uJ\u0002\u000fϧ�l�O1ܦ?'����Jœw?�{\f��@� \u0010k����\u0003\n����l6=h+횺�j�*|\u001d:���{��;�j_%`�#���}�x�Ez���}�|?�\u000fޫ�؊�����ޝ1Ua���AA׷RE2\u001c�H=\u0002�6'�^����@(�m�\u000045����s����(w\"�\u0006���#��q\u0003&4�v��H�\u0000>�eE\u0007}�_v\u0005M(\u0007_~�#��\n 2\u001b\u0004\u0014��A#o�a��\nS@{��#巏\\��L�\u001bJ�m����=�����l�J]+\n֣��\u0015���s�3\u0003o�Y1ٺ���>\u0019]�\u0003��s\u001f\u0002\u0006ƾ\u0007��+��OD%r-jj\u0001#n�\r�߱��P\u000e:\u0013�+���>�c�H@ȣz���ӥ<:�\u0001�^���\u0012H;�\u000e���u�\n�\"��\u0003����\u001e��d\n����Bpo�+\b�:S~�w�x7Wo����q���\u0000V�$\u001a���\u0000\u001f�L\u0005[ߩۡ�>#���h��K�\u0006��M\r����eCnt���\u0011Oo\u0011�*�['f�|7\u001bmJo��\u0000�q$�l\u001b*.ݷܞ�n��9dX��$\no�u�\u0015ރ�l��\u0007fq�iuޣ���7ZƵ}o�h�]�ƣ�jw���i�e�/u{{u3Qc���\u0016c��\u0000܌�.Hb�˔�1�>_�C�g\u0018�r\u0010��\u0013A�i�}�dG�\u00009=��q�\u000f�0�]y\u0017�O��k�n�԰����'�d\u0012�&��ƦC�5���&�Pv~�5KU�\u0015��[2\u0003鏖ީ\u0001���\u0007��\u0018�\r��5�]}�G�����\u0013jW\u0017�\u0016$�71\b�X?-:��_���!�g�$���\u0015�?\u000b\u0003@7��1�Wǯ>MW,�dM��Ωv��Vyt���O�R�g��#Oq9��G\u0018\u0004�WP~\r�C9���rlnj���!�Y[����oq\u0013Q����)���S�Q��P�.3I����]��\u000e`c\u0004H�7\u001a�S�*H\u001bn\u0007�\u0015>\u0007�\\7`�^@ҝ��o�jm\\�\f�L'ޚ[�e�Q^Ɵ���,ϭ��Ɍ0\t��2�,G%4���ᜦ�S,�;��:]?�.�Ox�\u001c\f{\u000e�����3;\u0018\u001e�nn�6<�*��)u�3:���\u001f�g���\u0013�ཋ�\u001aQV@,�O�>��1JW��4͞\u001c' �5HF\u0007�\u001d?�m�\u001f�-w���3+�1�\u001cڸ��G����\u0011�\f�#]��\u001bf�Y�&(�+fB1ɴ�\u0017�\u001em����)Ƅ����s���/�I\u0005�^�\u0012�\u0015l6�yL2\u0003�i�m+�Y��4�\u0012��3Cų�y��`H߭w'z����QW�ۨ#a�����r؁�E���Q�'ø��,\u001c��en\b?���\ne���|��1��\u001fn�h?6$y�o2/�'z\u0006\u001f~�9����i��6\u0016�ke&��\u001eb�\u001b�\u000e>\u0014�h��\u001a�sc���l\u0005%�n��N���2\u0007�a;�_����\u0010\r���^����'��_�Zo��\u001f�����G�\t�L2L\u001a�\u0000?���V�~���Ő�4�)�����\u001ei�3��8����G�^�����g\u001e`�~H~h-2�\u000e���^��?�\u0001�ۢ�\u00029q\u00073\u0016�����{�sO�\u0000�I��\u0019�vW�qi������Ϧt#͡\u0014���6�xWe+��'���\u0007�D�0\r^P��Z�\u001e\u001fFJ\u001c�\u001c�$�/ v�޻�a�\u0019e�G1�\u001bB\\��X\n����ñ\b<��Ů����x֤\u000e��8�ubn�K\u001a���ÿ��q�E��\u0002Ͽ`\b����\u0000ߚ7��\u0013�P\u001f��<>��\\�͊\f��\u000fo���`��\u000b$*:S����<ǒ�8(;n+�|{\u0002py�4-�\u0006\u0004\nT~���-J\u000e8\u0017s��zS�u\u0014���yl���\f�Z\u0012>�S�>�6��!�\u001e,X\nP�^�}�\u001aQ�>hFQBv����hr\u0006�\u0015�Pe�������r\u0007y �;.�\u001d���\u0019���6���$S~�\u0000�+CkbƭJ��������\t�Ӫ\u000e��Ǹ؀O����,\u0010�\u0012\u0005�I���G�OO\u001e���\u00031ro�n�y�O�~(\u0001q�b{�\u0000\f��r8�\u0007��\fI+Z\n}�4��l�mI��h��YISZ�#�OՐ��Y4\u0013�/�\u0010��\u0001�\u001d@��߶Ty�.���V\u0016\u0012� ��^���d�6�эT�����\u000b\b$��ԩ�\u001bu��)�5�PjM\u0010\r��?Ξ\u001b`Z�UPT��a𑹧�|��U~=OJ{Ҟ>Ԡ�\u0002�P\u0000kJ�JWDZ�0o[sV�h)Q�M\u0007���%v%�&��{���� \b\u0005\u0001JJ�\u0007z���l5��i��]jw���G��\r�J,�0�N�\u0000�\u001dG��.��!�`zmА{�8=�\u000e�y e>�S��� 9�����zu��\u0000:�ddw\r�\u00146J�&��6��ׯ�A!\u0001)&�u���\u001d0\u001d��[-iR\u0007J\u0012+R\u000fQ�J\f�[�K�\u0014�~��B\u000fc�xd|���W�\u001dF�`;V��\u0006��\t\u0013�b\u0006�j��S\n��\u0014�Cֻu=�\\��=)@H����t=��\u0002/�z�Yv��\u001aWb)����\u0014�s*�çN��!�ӿ|\n�A���M�(;u8\r�%�\u000e�\u0000}+���\"�>CqP\u0001�J�\u000fΘ\u0015�:u5�ʾ u�\"B�k\u001d��\\�\u0002w��\u0002������$��\fxj7� ��u=ȩ\u0014�R�=��*O\u0010����m����ڸ�P|�\u000bO�h\u0000\u0004�=\u0000�#��+�\u0000�ߛ�\u0017�\u0001�\u00009F��_�p�O�~���/�D2h���\u001a�+h�S���W��IcCs�D��'��\u0002;�m�8\u001e\u0019��ƒ���G$��\u001fL>'r;���Â\u0007S\"F�#�[�um�$wڤ�\u0003�@�\u0000Z�[��A\u0004�l�Τ$�W1\u0006q$�F�\t\u0014���\u000b\u0011�0���\u001e��ݵ�>��\u001dee\u0014�\f������ml���4h�%�.,�\u0013�d���Ŝ\u001d�F�T�I��]�\u001cq\u0001�\u001f��ϙRێ��=��\tn\r�Ǥ��#�7\u001c�\u0012��\n�Q���q*k\\���1\u001d����=�-H�\u0000\u001dk��o��\u0000#,��G���T���+\b�T�i�\r\u0014��\b��oE\r^B��\u0006]�S��k��/Y��C�¿�އ�y?H�ԥl4ج\u0000�՛�q�k�����*��C�\u0012ā�Pf�&\\���K��\u001cZ���d��7�\b*���Wӎ_J�\u001e�*�h��\u0012C������\u0006<���('ux\u0011�\u0006P�İ�H\u0016�&`k!WJ,M\u0019~C���Bji�����wo\f��z��:Ky\u0000��\u0017*�CIu\u0004i\u001b�;�_�Y\n�Ү\u0018��]���s��3��Oc򼰬��I�IԈ�\u0016a4ԥ�I\u000f\u0012�]�\bo��\u0004��)����\u0003��a��z.�c��+=��it޷�-沙d\u0011��A��۲��\\@Ѫ�Z\u000e�PF\b� \u001c\"�#�\u001f\u0017\u0011{W���\u0018�B�4�k�Vp�\\z̞�&C#$�KE�\u0015�Z�P\b(Ð�n���9g�!�q~>���V�lf�S�4P���S�2��I}KK�䬤�#)@\b����m6*>��㓥��\u00126\u000f��}�����4�Q6�i�Zu��~=X\u0012����b��H8K!{��,iƌ@%�PFn����#�#ow_����\t����\u0006�}_�{�|��3��:Mm����h�][��wW����oh\u0016Qr�S\u0003q�Gb\fL�\u001a)=B���\u001b�\u00063�\fb�\u0013W��ח���򽧒:k�)\u0019�I\u001d7志�0\u0005�\u0011���\u0000�*~^y�i�\u001eE��c�1�k�\u0006��{9��=A �5W��?D����M\u001a�\u0016���\u0013\r�\u0016��d�o���<8�ۋ��9\u001f=��RR�d$�D��o鑳��=����c�~Ek�Mּ��7�yJ���\u0000ʶS=����~���T��=k�2]]YEp�5���\\��3N�ʀ,d\u0010%)��$Lc\u000e`~�]w���qr�%\t�\u0007׌�?o��\u000e�e`�c���X�kZ\u0016�\u001e���=�*��_���iks,sI$����V�L�\u0014~���a�\t��D�#�r���U�����M\u0012}c�<���3���\r\u001b�^S��Ҥ����E�Ӛ��٭��<\u0013Eq\u0004����ՓE�t\u001b~7�2�#]1�P�c��Jr��G\u00006Ow�\u000f�\u0001ϑ��\u0006�,R\u0004�\\�U���˯7�s�\r����\u0000��\u0000�O.��E�����N���zU��.�=}!Qye}op�X\f�\u0012Dh��`F��~yq\u001d��\u001b\u001d��o9�\u0004��N9\u0002(�z�\u0011�\u0000ޛ{\u000e�NaDz�Y6�$j���:\u001e��:e�qA\u000b\u001a�\u0010\u0018(\u0004}�'��'\b���\"B�a`�x�_����\u001fid�6��\r\b����� \u0002T\u000e����s��3<�w����\u0001\u0015Ol��c�}\t��\u0000��:m\u0001��5O��\u000f/\n,{xW����鏦�7\u0007/{����\u0001��ߛN�8��\f�b��M�d����{�������nG{��\u0015�Mi����s�%3���\"#����`��\u001e\u0014\u001d�xW;\u001d$�\u0005��\u001e�4t��\u001d�\u000fo\u001e��\u0007kq����\u001f6���.�|,\u0000�}���\u001e�j�\u001c�A~S]9�{��\u0000��4\u001b��R��A������ƈ\u001c�/�\u0007�R���`;S��I�@���'V��+u�n:�z��2�d��.ms\u0014|�\u0014;�a��îeƈ�\u0015�M!\u001d:\u0011�ƽ{\u000f\r��W3�z&H>�O�7�9h�aVl�?2tp|;�ߦ��>��>�3\u0016�\u0007�Z\u000f������\u001e�\u0014\u00034�7#|���-��\u000f�D�c�~��ڣ.\u001c�O'�\u000f���\u001e�?�\r���~�f�\u0000����h/�\u001d7kH�\u0000�֝��s��\u0011mr�S\u0003\u001cԨ����\u000fO�L,[�!�\u0000u�J��?\fUw�!ۃ���ߧ~�\u00126S�X)�#���~8�̓}�̼�?Ю6߃\n}\u0007��ߘ�녲\"�\u000f���ؿ�\"�\u001f�M��^����\u0007�\u000f�\r�k��z|����\u0010S˶\u001f�:�\u000f����P�qi�����~߇o��:\u0011�\u001a\u0011+�|�J��~��O��\u0000>��;Xy��\u000f���\u001d��m�7\u0007*G\u0010~C�N����k@Eȅ��\u0014;\u0011Ҟ\u0004\u001cU���R�\u001fz�\u0014�\u0018N۠�c�RE=�c�\u0006�»�\u0000\u001e�\u0004<[���\u0000��������\u0007�������\u0011�S�)�v�\u0003\u0015I�%��T�t�߿��\tS����q֧���/-�$ܛ����o����L�?�\u0010;|��v�1�R�}ة�Ҕ\u001f�n������%\u0000҄�QҘ\u0017t�A�޿��l�\t�C�߶�޾�x�Ȑ\b�ФP��T׷c��\u0004�&9o�\u001bZ�x�2\u001b���\u0000��l�Uv9RF����*\u0015_.�8\u0005\u0015\u0014�❪\rO��T���n~\nh�Ԉ����;w�@F'����E�t\u0014'q����Ȩ47慐S������\u0001,j��K���q�\u001f\u001a�|�����\u001d��\u0013cO\u0012=���^9Y�NJ�It�:R��Q��\u0000n\u0006@�(\u0019\u0012�\u0014��j���\u0006��жIt�~~�~���+\u0007�`�K%^�~��\u001e\u0018�{ע\nE�^��A�\u0011�!\u0003(�C��\u0007C�\u0007F�*�q޽:\u001fc҃�\u0001�+�\u000e�@ȵ>�a�kN��J�ȃC�P�=�\u001b�\u001d��\u0006ET\r)�\u0006��=��\u0005Zծ�\u000fN��\u00056�R������A�\u001dFGu[�\u001dv�}�\u001e\u0006�)Z�j֠v���b���\u0006���NF[�\bM\u0015�PҽGO�{�)2�-ؐ~\r��׭v_�O���\u0011cuU���;����r��x��^T��D�$j�$��\u0011@,��**��&4\u0019T���\u001f��h�\u0000��9�o�?��\u000f>X�SQ�S�<�c�~\\Ũ�\tR��_�D��\u0000�Ӽq�Gc��\"\f��FJ\r���a)G&��Nl�Q������Ϙ�9�2�F3�\u0003�;�ߜ�~�za@�VwI�O\u001a�\\�b���$�K\u0012\t\u000bH\b�U�\u0012w=sg9z����\u001c�0'w��s�/�����!�����V�Ҝ���mi8��1�]-���\u0014���\rFS�\\7!�\u0007o��\u0019�;D�^O��\u0000�?%��g\u0015�ť�=��\n�!�\u001e;x#\u0002р*�� ��@b�\bڙ��$e��^�E\u0001\u000fH�}K����Ct��\u001e\u0018�r�j%[�#G�T��D��\u0018�ƀ�.&�\u000e�\u0013��\u0015'i�6�~ǜy�L�д�U�NU��\u0003\u0015��B���P��N(�cC�\b\"'\u0010���\u000en/��^�8$I\u0019������\"\u000f&\u000b\f�4��4��N$і�S(͏g#\u0006N\u0019\u0006E\u0005�*$Sz\u0012#1.\\\u0002���\u0000PѣV\u000eAHN�y\u001d�kH�]�$%[�c�O��\u0004�*T\u0018P�\u0010N+!-,5��\r\u000b��\u0005B��}�\u0007w.3\"�6�Ƹm��\b�\n�%�*=(n\n�>�\"OV�E*\b�}���NbK\r���\rEK��zi������k���pc&�\u0018�K\u0015���F���\u0006���We\u000e�kĜ�q��7;&YU�a�>��F��\u0012�\b\u001e��򥖟�H\u0019����\u0015ͳ����l\u0003+�~#�s7\u001e��k�\u0016z�\b��$�\u0007s�l���˷�z��ܖ�-�\u0019�:��Q�\u001c�}XJ�Gh�E�F*� /��a�O\u0011��\u0000q���v\u0016�3�\f��LK� t���|���v�\"%��vP��.��\u0007\u0017��%�\u000bi�\u0017V��W)��Z����(���Ȉ�\u0013\u0015�\u001b�.\u00038�\u001a�u\r��������G�\u000f\u0012�1\u001fN����/柛��W��i/�v��d��mV�9�b&��͗�㷙�z�@�v��\\\u0018�\u000e�GU��c�\u0012=vx�\u001d9{���W��|�H��\u00148OO3}wܑ�~�izp���`�<�#Xk7s��z,����s��{k��`�}`D�̆\u001eW\u0001�\"\u0019�\u000e\bX�Tre�B@G!;Dr������F=6h�,*Q;�U�\u001d+��o��~H][�^ZԤ���5�-_h��V\t{��K\rF\u001b��w6�k\u0005����z]��.\u001e�Z��8T�Jd�lc\f�j;���t�[�f�(��|��^}\u001f�\u001f��oέ5<��˽Z���\u000f3����t��\u001a��ɦ�I��_�Ao\u0015�ͫ�-UHg�.�M9�^�h �ڞ��\u0000Vt�~N\u000e]���}��?��6��\u0017\u0015�y�V\u0007?䟿�sݯ���e����\u0005W������yD���GW�\u0002�WW��\u000f�~Y����'K��GȴR=��mblXq$+��?6%`��߇S�n�?�>��[��ߘ�����\r~��v���\u000b�vﰊ�GJ|�|\u000f���R?\u000f\u001c��\u0006v\u0005s���H�\"O*�\u0001���H�\u0000(���f�9�w]���o���\u001f\"�������ק�L�v\u0007��=�2�yy?Mt5�\u0000q���\r\u000f���ClC��;�SoP+�7����da�\u0007�\u0019\u000e�\rF��\tJ�*O��\\Ȕ�<@�G��ꚥ�Ȓ\u0011ː4ڴ�զF3&\"K!E�ϭ�!�\u0013?��{��,w@>����t�o\u001f���z,�%�����hV[�\u001e�\u0010\u00014\u001bv��Byc\u0000.Uiޯ��|��5�\u0011�r,�5'�Bc���7��\u0017-*�\u000e��O\u000e�|�8�Ք�\t~N_�\u0017WB�.%��ퟠ[\u0004���Zb. ��T�V����T�ݘG�6�Mm\u0003|#�iS���\\��*�ST��3\u001b5%\u0007SA��\u0003נ͆-���6�z�����2�{WDr��\u0016_�m�@\t��\u001b����p߽��`�\u001e{��Ol�kfdK���X\u0015���oQ�Sڽ�[f�2ܹ�3\u000bQ�F�]�\u001bo�lb�߿��\u0010�\u0000�:��s�R\u001dv�\u001c��E��n�N\u0015�!\u0012F@=�S}�2�\b��@�'p�\u0001b�����\u0010�(;{�\\S2 9<0\u0003zc�G\u0018f\u0000.�.��z`\u0012��r^\u0018r@�\u0006��\u0001���q�:���ثcz��\u001a�\t�\u0019f�M{��㨔�PMW�\u001e?#��L�F��������\r|�\u0000b�P\r�0\u001f6�>[�\u000f�R���Õ\u0000\u0000���\u0000�.�^�\u001f�R\r��#m���\u000bF]�A��{\u0001�tΌn��t�ç��PM,��\u0007��>����\u000e���YZ��ˮ1�p���N��aZ\u0001؎�½N[�8��^�\u000e��\u0014�;�*�\\/POZT�Ӡě\u001ejƮ��4\u0007��\\of;��\u0002z����8(�} \u000b��L\"��W��\u0013�ы0:)\\�.����?z\b���X�y\u001a��\u001d�vŏM��:\u001f��5�����(�\r{�\u0000�\u0018\u0013i�3�\"���]�mҘ,3ZAf$���{�=�ڡ.\"!OA��\u001f�L\u0006�%cҨ���|���6�1Z�\u0002�����#]S�Q��\u0006\u001b\u0001Zo^�烘��^,�է\u001aP��}���A4w�5Н�&%\u0010�\"����������91ې[�-������Y\u001eQj$�ir�\u001b����ʈ oȪ%����xSƟFQ x���n\u0010�j˷���\u000e��y\\��C\"���\u001cv\u0014��\u0003ۣ��}Ғ\u0002��V����S!d���!��\u001e3�쟟m��5�n����)\u0012�\u001e�)׾�\u0007�kF�H�Z���S�z�#t�V�{�w\u0007c�^9\u0015C8�O��qZ�\u0010v\u001d1*�A��_\u001f�߫�\u0002���Ek_�?϶GޗS�½��{��rW\u0011N�Pg� N�i\u000b�ֻ��]�}4��oq�\u0007S�O����m����Pk�&���A�ڟHڣ\u0010�rW��#۽jz\u0011��I\u0003d�ξk��^C�Ǟn@k'�G�\u001e`u\"B$m7M���\u001e0Ry\r��\u0004�e_�؎�\u0007[#\r>I��\r|N��-���@\u000f'����Y��\u0017���B�m���\u001a�ƹ{\u001d��Z��[���Ӵ�^O��J��#I\u001cʉB�v;�61�\f1\n�@G�(�9�6h�_���\u0013Mk}?�\u0016�\u0000[�H�.mnnb�O��F��\nh�\f�\u0017�U�s,�\u001bqt\u001d듑�Ug��i��\u0019_2�\u0017�w�gU?�:\u0014Z�\"hVsO��-���2�FH\u0004ole�ՃIr�x�*���\u0015RL2c�ԏ��]�f�3�x�_LM�X�\u001f.��<�7��%���\u0013[5ͫO�\u001c-�\u0000�\u001ah�*)��\u0015�aZ\r\f���6z�:�Q��\u0000�隕����SB.#�����|��-�\u000bT��X��\u000e�x�ȼ���\u0005�I\u0018%�$\u000e\u0011��\rQ0�\u001d�P�_4[\rF[�1rm!�;}R;���E\u0014EQ�\u0010M\u001c���E�\u0016)5�`\n\u0002��<\u00120�@�\\��1�O;�����~y����1mo*@����Ȗ�^�,��,�� ���\u000f�#]腁�\u00190�\u0017+\u0016�\u0013͆Yj�[\\�\\��,�F��\r,�_�\u0007����$�~\u0012B�\u0003�5�V\\}\u001d�\f��'H�I��`2@�4FYϬ�;\u001f��L��Bn^0���\u0016��'5������\u0016_)�$�RE�iR;v���C\u0019���+yex�\u0005�k�B\u001a�\u001d�DI\u000eL$y�c�\u000f<��\u0016�X��\u0007�\"���\u000eR��M\u0014ޭ��\u0006�Z}X��\u001bz��\u0002�\u0004\b�3\u001d\u000b��χs��O$ƑN-�'�K�\u000fїE��h.�\u0017o\"���3�6\ro,1�0\f��N ���\u001c\u0004eFC�lz��p������C���_��\u001e�oo���ڋǒ��gCk-��-Z{g2�|ֱ��gn)\u001cw\nΊ��J[3�\n��/sU�GS�Ww7\u000f.c\b�f\u0003�\u0001�m +��b�;l�C�OӤ�tǺ����]����;\u0016�+K;}9�b�OF;�J\u000b����x�x��j���=�����bdxA\u001c��\u0000\b5�ϟ���K,�Ftc�\u0019��.���\u001bT����~�~S��n�k�����Y�a�x\u0011���c<��o\u0019^pKq\u001d�K*�_�i�bA�G�7F�O_/�7�5�g��MDKz\u0017�W�]�V�[J� T,�\u001c��\u0005���M\b\f-�/ˈ�OQx:Qx3�[\u001cȱ�E�xr���|;�\u001d��_E<3GwI}8Lj�\u0015i9(�o\u0018܈�\u0014Щ5�r\u0006U\u0012\r\u0012YQ��7�g��\u001f����iz���XyG��M7G��+�R\u001d{�\u0016w:N�>���F=O�?��}L\\I\u0015�\u0013�j������\u0012\u0012�<\u0012�>�:�?��\u000b��u1Ɍ�\u0004x�@���A{\u001eo���r\u000bˑh\u001el�����i�H\"�.��1�6�t��ߡ4Xb��C\u0015����0��\fb&.\n�\u0004�e\u0012\u0006:ၽ�پ��og���B\u0000�b ��������\u0017�\u00008���u�{���meuYa�\u0000\ty���d׶�M�-�%�ޔ`�m9Z�5x����$��€1\f�\u0007W�\u00191�\u001b�v��\u000b�o{�\u001d\f���Q?O\u000f����եd>��J�E$\u0010�\u001c�U�e�$~`�+F��\u0012\u0007J��WG!��\u001b�aO\u0011R)�\u0013��\u001fm!⻟\u000f���X1ȠrOm�H'���\u001f\u001d��3w�Go��u3�\u0017�G_\u000f���?���zA��yev��t����η@h8�\u0015ϛ޴!�o��\u0006��ij�p2���>\u0001��\u001f�l�<\u000e)�ļ�+n��l�c���v:>o\u0003Q��~u���Fy9�\u0000�=����^\u000f��,\u0000�׮���������G��)����/כX}!�<�k楬\u0012���_�i�LV9{��\u001e��1�������\u0007�ʧ<����Q��=\u0016\r�o��>f�\u0017��Jn�c�����]�\u0006�����TT����Q���}�{��Q��n*\u0000\u001e���\u0000���{zₕ�M�n\u0006m}���Dw�Y�{ߥ�*\u0001`�@�3�!�ˆw6��O���N�Gc�\u0018F�̰;$��\u0018��=\u0016�bv\u0007�|3�s�8\r�\u001d����&�u��)Q���.\u000b,rm$���\u0000�����O��.�=C_އm;˄�ȿ-��ڝN\u0011\u001d?�U���L��kV\u0012\u0001 cƍJ�;��u\u0010�\u0018\u000e!՜\t�ɼ�\u001c)s\u0010��>4\u00155$v�C\u001f\u000f\u001cD*�h��\u001b�\t��?�RW�C�2Y�^�>Qxߔ:�5���o�L+�����9��2$�v\\Lr\u0002�@\u000bjT�\u001a\u001d�O�f7\u0000\u0000l�$M���*iBGJ�W���\u0013F�@�e�)�/M��E~��͞*\u0001��Ә�\u0003��}=�+\u001a\b�ͩ�Z����r9v��(\u0001��Mx�d=\t�؞��\u0019�귙'�����Ĭw��������x\u0015/'4~�ih\u0005c���F��fO(��z���\u0000�~4�!��_�����e��\u0017�\u000f�j�H\u0001�����s��q��\u001f�a��z�֗�Y\\$\u0017\u0011#\u0018\u0018\n�A��\u001cq�\u0004\u0013�7d\u0007�`����\u0014k�\u0007���Ze�\u0011�n=d�l�oTm��?�\u0016w�}������A_y6�x\u001c5�T�P����(Ʒ;$G!5O��\u00000��wei;��q�\u0012@\u0005j\u0007Z\u001d��j�P��\u0010.F8�\u0010H�����nG����)w\u0015k�\u001b�\u00038���c��9p��~��D�4\u001b*�\u0000���*���l�{+|q�qr�}1\u0018�O����G��\b���OՊ��U\u000e����ı�����HC0�w����q\u001c�<���T�u\u0007����\\s`����w�܏��p�l�{��N��_~���ǒ�\u0013�̒Gn��>�\u0011]z�DeO��u��:\u001c'��[�Ө\u0000u\u001e���#�JUs=z\u001e�\u0000?��8y����$�\u001eLMv����%\u0015A@�?����\u0002HPu���{{t��\u001e�C���x�����}�FB�j��~��ِ�_p\u0003%z���������~X�9\u0003��\u0000?|\bC\u0018�h>U?G~�:��8�P��߸�w뷍r�\b��\u0013\u0013[#��\\\u0016����>9\u0013Ȃ�H�>]�{P\u0005\u0001�ץF�xdkf����\u0004��O��!.UՀR�\u001b~���*?k.\\�@�\u0003�Ԧ��z{\u001c� ���\u001d�L �\u000e��ԓ�\u0000�>G(�ۀ\u001dQ�\u0018H\u0014 .���\b\u0007b�\u0011MNy\u0002��0�U�\u000f��S���ʒY\u0002�+��4�?<�\u001c;t_'���1\u000fUۨ؞��J�s[uɫ�<\n�R�\u0014�AQ_�\"\u0013�R��;q\u001dOJ��\u0011�B�Z\n��B{��c�ކ�Ԛ��{mZ}��\u0002|���A\u0014�4\u001bП�B��\u000b(~\u001d��7��\u001d�ږ���z��\u001e���ZT\t=�G�oƙ\u0019l�A����F���\u001eJ7A9\"�@߰��)�(�\u0011ߚ\t�\f�\u0000m�����<\b\u0019\u001be\u001f4\u001c��Z�;w;���\u000e�=k�/�zu4܃�v����}Y\u0013�u�O\u001a\u000f\u0011^��\u0001�\u0018���\u0004�T����s��\u0019\u0002$,���Ȥ�Zx�M���x\u001c��܂��\u0013^��H�\u0007c���dj�.�W�(\u0001#ؑO�=��R�G_����@�\\���T\u0014�۷S����*\u0012�J\r���|\u0007�'�w�P�Z��+Zx��\u0007\u0012�/Z�W�w�o\u001a�j��$��2\u0000�Sڛ����dI�p\u0014�jh\u000e�>�N\u0003���]O���{\u000f\f��2\u0017��P���G��A�F����E\u0007�<;S�\r�J��ó\u000e����x�\u001b#�^=�\u001ao�_m�Y\u000e-�[���rcY�<��\u00008�����V\u001a&�m�U����\u0002\u0003H�\u0017�T�zu��,\u0018\\]^j\u0013G\u0014q�ɛ�15NjM(�2��\u0000s$�P��͸#)f\u0015�+���\u001b!#�S�,�<���x�\u0018�d��<\u0015�\u0019',�*;��*Y�\u0012\u0014P\f�N�r�\\�G�e���_��=~m;H�R��:5�\u0015�=��pM\u0015��?Z�InPLm,�n�x&!՞GR��A\u001d���n�\u00102�\u0011�{��c�\u0000�\u001f?&&��:~�6��jP��V��p.��Z^Mios�Y�f\u0019'�y�.�b�5ߤӆZ\u0000k2�\u001c6|*����r��C\u001cq�`˯����|��顃���㲉���Eqv\u001a\u0010��[O9\u0004�X�rrƤ\u0013S���g�\u001c��]\u0012\u000f�}�N�QC��m��yo��om�\u0012(�\u001bؒ\u001eq4�X�6�F��ٸz�\"\rLjz�\u001cK*PW,r�h\u0003t:���V\u0001�\u0001�}��:ꗏ��Y&�\u000bKY]�\u0004[\u0017I�Y���0��bJ��\t6Â��]~C� ���ˋ��|�\u0003��$��X�^v�1�:]O(\u0013\u000fޘ$h,�if3\u0018���DE�$������Nf)�n~\u000f\b��X�,���Q\u001cr\\�|#�.�\"@�ˈ�\u0014�Ff�f\u0015 k�pod[����\u001b]=\u001bC�[� \u0012^r�:�5c�Zx���?\u0010W�H@���\r\u0018�9��!|�w�'�\u0001\u0019\u001d�ŤꓬL�\u0000��U={�B\u0018�\u0003!Y�X\u001d\nr�$�V�mJf$�\u001d�;L[�7ѿ�\fg[�\tk�$��\t���{���a\u0003�4FծII\r\u0010�\u000bʥI0�og0\\}�|��^I\u0010���?��l\u0013M���eW���\u0019�����W2}n�ԉ�\u0002�1\u000eUP��-4@���\u0017]��ӛF�)���@�@��������\u001f^���\u001dA��o�%���}����\u000e�k�^]A;��>q$\u0018�\u000e�J&C}����\u000e�����l���M�ք��>�\u0004*�3�����\u0011\u001b6�H��Q_L�٣,`D��9c\u0005�c�vt�c\u0018d��\u001c��6�y|7y���p�L'���\u0003f'�$oB�C��\u0006����k慏H�U�\u001b#��\u0018���\u0018\u001a�\u001b��\u0016�Nh�]\"Ԍ\u00113��?f0����걋\u0002 z�����|�P\u0004��¼\u001a�{�_\u001d��w���I�2܉���)��oU&�C\tuIY�I�+�{i�MvuP\u0018�\u0000�jq&��g~_��!1�8M\n��w_���\u0000M[�)�\t��ݽ{9X<�����\\'\u0012�4� ��iz0��-���Ic9hf��\u0014����}U����o0V��7��\u001d��Y/��+3\u001cHe���\b\u001dN��\u0011���Ǿ�����\u0010�G\u001d�8Eo[��\u0000���7�ycSm[�\u001a��ɪ$z%� ^D<�%�̺��͸��{�t��\u0010��A$��K'.aU\u0018gB2�xI����s��_\u0017C�\u0010�8��ߟ�����\u0000�=�\u0017^c�����/L�y�~]yn[��&��nn~����7��!m��,�R�ny]N1�Q�����8>��\u001f緆lA<.\u001c��'�q���\u0000T�\u0000\u001a懶\u000f�Ϲ�h�?\u0017���\u0000r�x֝��\u0013]����|ޝ`*��\u001d�\u0000�w\u001a.N�72:��P\u001fa���W6��6y8�:�B�\u0019\u000f�\u0003�槴~�<�~-�\u0017�c��H�c�׭;�M��5#��C�?�/�5\b�;�����_c\\�}��*��]�\\F!��\u0011�\\���:\r�\u0019��W\u0011�uX�\u0007�\u001f���r\u0006�o��\u001fNn}�\u0004���y���~��\u0011\u0011a\u001f�\u001fl�Ht�\u001e~i�\tZ��#�~�˱\u001fP,Ic�ճ�t�4\u0007ޠ��.�\u000b\u0014B\u0004�qv�\u001b�[�\u000b\u0012��Vb6=��L�11�QA$��K\u000b�\u001f��N�\u001e���~��\u0014R\u0015����\u0012\u000f�'��\u001e��&�,����䐴���ڵ*�����\tN4bv6��=;�Z,���2q�\u000f�c�R�A�y��$\\����dڟ����\u0007�V���A~T�C[ۺ�\u0000�L�m�Y��٠��o��\u0004rS��a҇���2����lv\u0016�Hb~����\u001c¥�3՘��[\u000fM~*P\u0001Os�o�31ˇ�6�\u0013V�W\u001dj>�|Ȍ��E����#\u0013�����Br�e\u001d^q�\u0010��v��\u0015�۰�-I�\u0013����\u0001�Ŭ\u0000\u0012�w<�n>��1\"l��r�{7�SX����_a�\u0006�vS��?�\t�F?�^��\u0000=�wٟm��\u0001�+勱bc��Ic�\u000bx\u0015�ZtΎq$\t��n�J�u\u000fb��-=\"Z�\u0000\n�r�V�ޝr�q���NG�\u0012\u0017\u001dR�q��o�&�\u0004tɉ��8����_���i��z�\t\u0007�\b�\u0010>�lNK�R�{FA���\u001f��z�l&xk�\t�<�'��q`�w\u001ce�Z�\u001a#\u0002I ��05\u0003\u001d\\\r��\u0019�9\u0017�/�5�o;Z1ZV�\r<\u0017�Ü_l��=�����s���9i�Y\u000f��?��Ώ�Ec����K�4\u001f��s�qՀ�}>\u001f��T��?�Չ4�rbw���Z���\u00061#�'\u000b!?\u0014��+�ؚ��~�kL��旔\"�=z����#k`��u'�}���\fy\u0015���\u0015�|;x�\u0000�LU\u0001u\t �\u0000��\u0004������Z3A�5���ƻ���-��n����6��\u0010=��F,��$\u0004vﷁ�\u0018���\n=P�\u0011���\u0000\u001f�\u0002B�A��ۧ��\u0015���*�;���\u0000���<�Z�ȑZ\u0001�����l��m�W��}��\u001c\u001dY\u00041�#Wn�?���Z���8�ڵ��\u001d\u000eG�����MkҝF�ۿӐ��pi�4-��Q֠W�\u001f�}�\u0013B�\u0019�V7H\u0002}\u0007���eRb\u0014%\u0014?};�{v�\r��[i\t��U09$'�|�iЎ��\u0007Ɵ,Ɛ���\u0015�#n\u0010\u0015o\u0003ч��l\"�%�\u0002)Rj\u0001 S��䜪[rf6\t=۬U\u001bT�)���p\u0018��_���7\u001a��\u0004����*\u000ej���;�-y\u001e\u0004�~[u��A�d�?$#{�\u0000�܏�j�m��!W��7�5鸥>�Uœ�l7����9\"\ry�8�OΛ�'n�\u001b� -,���ר\u001bl\u0001A��G@P�i]��\u0007}���%ϓ#�S ���\u0012;��\u00126ǚ\u0011�\u0004}��Z�j��\u0006�}&��6o\u0011Zw�Żt�\u0013�Pa@£���Ơ�:����'޾;�t\u001b������5�_&�V���c_\u000eԦ\u0000\u0013V|�.)˷J�w>��\"��� %\u001d��O�O�ӕȞC�{g�D�J\u0013�)_aߗc�.��?��h��4[i��\u001bI�}7H��[���5�;}Z\u001bk�h�\u00122��7\f�$\u00171�fpNo�`p�DL$\u00007����� At��(�1\u00162ѣ�c����1ԑA�L�Rյ=>�c���^�4Z|���8/�l�_F�.#�Zk\u0012D�K�24h\u001eFv\u000e�V��\u000e\u0010���?O#�\u0002A>T\u0001\u0003q���\\�)��Dj�ٺ�\u000f\"l�����\u000f��\u0000,�wZA�H�բ�t��İ�8��S�\u001b��G�Gqigg\t�\tr��ү������Fdc5��wF>�f�x�\u001f;t\u001d�g�\u001cc��J��}s��D��\u00126\u0005�)�p���o���t�i�M��pF�v���\u0000W�Y�/^�X�\u0013\u00141��IJ�A\u0003�żw�#���lMm<6�\u001cn��\\���������ߛ��'uuuK��G�T���kp��\u0018��,��7�c:+4n��\u0007�bT�Y��'�D�UW˟��<�>���8��fv'�\u0011����?����'~c�:\u000e���a�wq\u000f��I̞Eь����\u0000�w���ա�����-��r�O(�\u001a\u0019\u0015x�V9V#\u0018��ΤI�\u0011����7���\u0005�a��sQ\u0013�\u0002\"�����GrK�]O[�Y�~�\r����A��B��~��\u001a�����W2Y�o�%�Q(Y%X��\u0000V�Yw�ic\b��\u001b�F��{��y�D�d��\u0007��w�tn�\u0000�/\r��O���:��E�-|���E�\u0006���F�y\u0019�\u0000(Á�Í;g-�7���I󷝝�\u001b���2�S��ݿ��CK!��41�\u0010;}\u0014'�-���!�5e��n:��v��9��5����6u�n��\u001f?��3���'xm��Z\u001bG�\u0003�N�λ@l\u0007\u0016c���t@8��\u0000��:m.�w8\u0019GG����5��|�\u0001�\u0017\u0010�b~g�����������Ǩ{�\u0004���m���Ǧy\u001c���\u001f\u0007���|\u001e����ʿ<�H�t9����\u001e$����6�>��IS�|̵�A�I��sS�\u001b���ݏ��/�e5���F�x|��K��5 y�\u000e�~��-�\u000f]��_M\u000fo\u0013�t������\u001a&��u�U��aȁO��3��s ��m]Ϩ�\u001f`�\u0000I}�L��\r�{W7\u001e΁�K�ӛˠ~�iP�\u0000�'jq�_\u0019���@$\u0005�˃K\u0015E@������e&b�\f����\u0013\u0014*\u001b}�C��]�ċ���7]U�P�\u000fQ�;\u001e�\u000e�Iؔ�#��_����\\w�ֵ�\u001f<\u00112�v�\u0014�T5�M��6���.#jF�\u001e{�\u0000\f�N�ߧo|��\u001c$�3\u0011\u0007qɋX����\u0000Wj{f\u0014\u0000\u0006��9l�lc}��n���̣�H���\u0017�\u0019��w�?�\f�vg2\u0018�oЭ'{8���W�x}\u0019��鶩sL}(�~\u0000{�{���G�~\n�\u0018��k�n��\u000be\u0013\u001c\u0011�\u0000\"o���\u000eJ��\n�&�(�����;x�ps��\u0019�����o\u001fզ\"5\u0014S�{�޽s\u001f?���|A����k_:Z�:^'��<����k��v+1��\u001e��Jh����O��t}����h�v}\u0016��\u001e?w�\u0016�?�\\\u0002;�;�|(��R�\u0002������rb7��n��\u001d�N\u00007p�sJg\u0015_\u001d����.\u001b��M�ic��\"�I�m��2U��X�wN£ߠ�]�\r0V��^�\u0004���4\u0003��??ՁQL��ޛx\u001a��a\fv�\"9t�|:~���D��\u001b\u0001_��{�A���5x\n����7�\u001a{c͜M�a鬊8�O\u001f����ŗ?r�Z\n�>}1_5&�\u0015&�6#Ÿ�`�h(4\u0000֛���^8���\u000f\u0002O_�킺�oj�=T�\u0000\u0007���\"{҅�(���\u001fy���t_dv�6=���|��ْ����w��\u001eƔ��ʶ\n\u000fR�_���R*(;m�p\u0018���.폄5�:�x��\u0019T���w=�~�n�z{�\t\u0000��bUz\u001eT\u0015�i�;ҙ\\���\b\u001e}U�h��u=)M�}�\u001aB�#Ώ4�E\u001c\u0000\u001f֛xxP�Gf���'�8=A��>\u001ax\u0001�#vcm�1�F�vbw�_}�щ�A�����I\u0012l\u0005=ȧQO���f��l�D�C��\u000f���p�(�\u001b�\u0006����@8������ZWƾ��,\u001c@m�\u001dZ�Ơ�[\u001a\u001f\u0011L7ct��Ӹ�]��\u000f��H�i�Sj\u0011^�w镔ʶB:Ձ�sӧ̎��\u0000\f �LojX�ZP�;҂���#�A�|��w�Z֞4��|Rw;��Z\u0003J\r��;bO�\u0003����\u0003Ob{t�;\u000f�r\u0012�@� $_��=����L�\u001d��d\f�ƀ\u001f\u000f\u000e��Ğ�Y\u001e�\f����m�|�$�\u0001Ke�>;\u0013����(\u0006q�w@H��������+���[��%���jH\u001e\u0007��\f� \u000fW$��\u0003�)S�����+*��H�\u0000��u�s�0y\u0005K�\u001d{mP;x��\u000fM��o�4��m�M~�v8\u0015E�:TmM�}�i�&�T\u000fZ\u0003�T\u0001@v�\u000fj\f\u0004���O\u0011Q�\u001d\u000f�`V�5\"���\u0014��W\u0007-�\u0005�?�N��\u0010z�I�\u001d�:���_�)�$�y1�\u0016�\u001d�l\rMH=�v8*�w!r��\u001d�����W#|�Jϒcn�\"�ocA_�l}��|\u0017�\u0000?S�1\u001f�����\u001au�����W��k/�d��(-`\u0012+����0\u0003�\u0005\u0002�R\r3\u00131��{>�\u0018\u000f;�_\u000e��9\u0011�ﭾo�W˫`ڍ��\\K�T�?�s\u001d��\u001a���FD��o\u0012��U`K9S��y\u001a\u0007���\u0004�nO���p����։\u0017�nu�}CNk3\u0015���[����F��D%T������\u0012�H�*�\u001a\u001a�H�̎���{�W��Ʊ�\u0011\u001fI�9|_��\r�8\u000f\u0004���\\�\u0005�IX�f��\\�ꪹ�c$3�p\u0014c��fn\u001a�O>_��s�F^IO�3Ms���ZZ�z�\u001fS�,�(>��\u000bY.&E/\u001c�\u0017�*�\u0019]�3J�:���\u001d�l\\R�\u0011\u0000~��7���iڜ��^�Z\\\t�\u0016�9�\\�mw\bu�����]\u001b)&��v DhA$\u000eY�e�e\u0004�m�4�\r8�\fȡ��\u0017��~jir[=�����=��i�[8g{�Z�*ZD��M:v_M�C ���\u0005\n\u0000p��rp\u001d�ǣ�â�2D���o\u0010�\u0007�,�D�Rٗ��7�a���ȆR]c�ۺĥ>\n�Ո\u0015#4�2�GnoE�1��7���7�ڻ[([�w�O\u0014�u\u001a��H%�s��b\u0001k����w\u0018��,��S�u0�v���};�vr��\u0011}f7�$��(�r.��&vI��\u001e$1P�N�B��o��\u0012�vw\u001a<��ly�+j\u000bkye&�$��\u0015�-=��\fL�\u0006:4�'۵��ۉG\u001cCt4+Lyf<���\u0017�+�V�wډ��nWM�ۜ�_ҍ}\u0016$�\u0018z�'� \f\u0014+��Uj6�bLɧ,z!O�4O1M�.\u001d:�X6����4jR�R����h�6\u0010��Og\n�D\u0019\u0019��+���3qh���<��\u0001������O�S1���=H#��?gG��K��Ҥ\u000bkd�v�s]E��\u0002]�\\ZϥL�\u000f��5%Y�Ƌ�96�\u0016R����J�6�֛Y,`J��\u0013tN۝�\u001d�Ȏ[�\\�s�Ƨ�k\u0017?��\u001dJ�K��n�s�)!v�}wF��1,V��\u0000t�ՠ�2\u001a�\u0011�\f|����>��ݹe�&\u0018�1\u0004C~�yX�����&3j2�=��\\խ5�\bu�Hl�5�Re���Ix%����JE�2���3Tǹ��48!�\u0014q��\u0000~\u000f�x�Fy��)�Q���?�/�Y�[���^�.�<~D�Ź�\u0016�\u0000S��v�E�\u0011�m�\"��G�T-)A�����\u00133�����2\u0010$C/�N�:���R�\f���-2a�FG��}�n�(ʣL�ڜ;��\u001e��}��_��c��{�� �w��\u001c�Ơ�\u0000��h�\u001b��\"�@�ev������η��Ӊ�P{����t�\"���s�Ҹ\u0019yuz\u0004\u0003�b�����l�3�؟�\u0007�;m�'���\u000e�������n\u001e\u0000\b�-���~��R���{��0����\r?���:\u000f՝ބ�\u0017E��$�O�{�xrq%���f?���\u001fs�3U�\u0012�g�\"߈n���\u001c�R\u0001��jw?�sȻfU�\u001d��:]�o���\u0019��\u0000��w�ݶt�Κ#�Xy��\u0007���/#��N���?\f�3�\u0011t�����q�\u000f߹���w��z�����e�a�{\u0014;��WJ��\u0002?���㞋\u0011��\u0003�y�V�n6\u0019n ,0��+\\��j|���:fhkI��GA����UA4\u001dv߯��c��\u0018\u0007a�Q���*�\u0007�����\u000f�QQA�j�=zv��Cz�x'�ݽt�Ϳ�Rv�;~9���7��rc?��'�H��+�\u0000k���`\u0003}\u001d)��Y�����X��(P�(?�o�}�2M��\u0000�*#n\u0005({\n�\u0018�\"U�\u0006\u0017��E\u0001Pv\u0004mӨ>����z��\u0000K��d\u0013/\u0017n��<<<*0\u0001�Im���\u0000-\b�hi�%�K�d\u0016\u0003��K������}I\u0017���xߛ\u0015�r%=wo�}��P�g��\u00053�\u0006�=���=v����]i4l�����Fz\u000ek�7�\u0015�n;0�߽H���/H\u001f���;��޹��>��e�8Q�ۦM��)=�?��+�QЧM�}�\u0000��|Ѿ�Tl)�}��\u00031C��|�\rm��\u0000T��\u0000k1�\u0015�o�`����ij���ۏ�}�)��}��\u0003�w,�,ӝ�zhs��\u0007��q��A�D����\u0019�vV��\u001c|�_\u0017Ш:m�)�q�\u000f6�P:�l}��\n��O��1D�1-B���oQ�>�p\r���\u0002wI��\u0004R��Q�Ah?r\u0006e��ڄ��\u0007��ϫ\u0016?rx�\b�ߩø�\u0014}�(��c]���Ȫ,\u0010\u0014\u0013���߹�\u000e�Io�A�N��lX\u0012R6\u001dw�6�F���X�\r���\u0000?������E#��W�\u0011��[-\u001a�����\u0000/�֘�Ba���\u0005A\u0005%�j{m���\u0000C]\u000f��\u000f��8���%\u0018�w���+�<�\"M:�\u0006��\u0000H4ȥ��T�PWo��bR���\r��\u0000��\t\u000b�#���j\u0005OZ�����ӦD�_��*{����\f\u0007��l��۹\u001c�x-���������\"I��f�F���\u0000B--��jӥG��\u0007��Q#����ꅚ\u0005Vb\u0006�G���eR�i�\u001dJ�J�\b�;{�{W+\"�(���B]�\bh;\u0012|~U\u001e\u0007\"�r`����'�.���\u0007=��n^����S\u00184\u0015�a�b:�V�֙��׹�E\r��R����}�\u000fڃt��\u001e����o\u000f}�J\u0011\u0003ǽ+QM�����\"GU��X���ש߭<\u0007�@���\u00047�7}���B�#�\\j}�ڽ}�w�\n\\jw\u001d\u0001����$P\t+\nu5���ֿ<\u001fr\u00070�+J��\u001a�\u0000g�p2�\u0004+(\u0003j{�=}�=X��C:\u001f\u0000O�s��Y\u0003��H�\u0005E\u000f�z��ִȝ��d\b����\u0003�|:��dJ%� �\u0007sJW�\u001b�\fI�Ր\u0014)/�z\u001a��\u001e�/z�ȓ� \u0000A8�\u0006��\u0004��O�ʤ7���d˹޾>\u0007��8�8HJW0> u�m޻P\f��.���v\u0006��^�\u001f%@J�Clkۯ̟�*���PmU�������*�n�j������'�w\u0000����~�\u0015S5ߵz\u0003S��eik���=)J�\u001f��m!On�����\u001b���{�y��\u000f���:�����]ӥ;P���H���\"��\u001e��{ҹ\r�5i���5=����\u0019w�'�{�_��'������o�4��\u0006�e���}8�\u0017\ri`/<�(���s�C\u001c�\u0014��~\u000eG�\f������v\u0010�\u0012}����\u001a}��]���G@I��,�/SK��em����b�֟��s7��]�\u0000,��\\�\u0011�>(�\u0014%Z��$�V�\u001d�\",J'���_�g�㞵���S����@��k��\u0004P���\b~�moo\u001d�7\b�*�+!\u0005���j@\u001bf\u001ePbM��~�|rx�\u001b\u0001Q�\u000f�|�p��� IE���=XӃ�r-h���J��\ty�M��*��X��Ő��>ݜ\u001c���ry���_�~��\n�O��qɮ�LU�)j��?\n}wU�\u0011'Yu�\"�֪B�ܽR��qg�\u001c���z���{�9xp�\u00027@\u001a;����C�?T󮩫j�V�\u0017�.dy\u0016��oZ\t�b��x#�����$��p\u0017�䐮�XqG�V��9x�ڼ���ϧ��MS[��̲��2G\u0004PN�����h\u000b�\u0005�1\u0012zq�+7 As^U\u0000f�&{�\u0014)�\u0018�������!ܓ\\y��\u000f%��K;\u0004\"\u0006��H�\u0018F\"x�F�~\u001ap5\u0014 �\u0013D�\u0011DF4�%���&W����Ŋ�K�Ld�#�4-\u001e�Ʋ�%_�\u0000�Ƥ\u001f|���H\u001e�e�ɞ\u0007�l=�@�\"/��[f�k�2�꼄�\u0007x\u00168��O:0~�~��͊S��^�G����\u0000\u0013�,<�\u000f�oh�\u001d����\u0015����9�Y�3�R�,�F\u0004�JPTS0��<��\u001e�\u001fI\u000fI�\u001f��y�����\u0011�h.l�Ff{\u000b��$����7k\u000b4��$A�\nP�\f2��r�\u000et�\u0011�3\\��=~g.�m����-�:zG%��DVx\u001aX���:|Bd���$H䢡W �n��\u0018/�ːu\u0012�\u001c2&;Y�m��\u0013c�\u00009\u0003}�n�ұ��]:\tY.��$\u0012̶Ȭ�\u001bEq\u001b���Q�M�\u0019GJs�É�}�\u000f����T�܎�����\u0000����f�-��\\ܥ֐�Ej��,V\u000b�����)��\u00014���2\\�*\u0016\f��ُG���J\u0004J<<�ʫ��'n�V�\u001f\u000e�\u0015�J�q����'����o�63i\u0011�Q�\u0015���U��~V�;\\��'�ͅ�vD�$�9�\f\u0012��\u0000�\u0010\u001d:\r/h�p��FTH�w\u000f.@����h�?[\u0013!2sY;o���}�j��\\���O���\u0007�G��5�ԥ�I5�j�;'����N�\u0000M����D���[�\f�'҈H�VQ^�A�>,@�\\r7�\u001f?wNo\u0019�=�,r\u0007OR\u00065B���<��\u0007���4/3���i�C>�p��4g�v:���A,N�\u0013�\u0014\u000b\u001f�H`�dМ��0�\u001a��|��GE\u001e<7#[}�����ǚ��mc�][�\f�\u00109Kh�\u001bI�\u0016+YZ$�w�&A�?���\u0015�J�`\u0000��0㘢A�#��]�\u0000���-\u001e�xM\u000e��\u0000\u0016\u0007����\u00009���kN���̺.�gy�i�L�q��<�A���\u001b�A\u001e��,G��'\u0004@KrZ\u0003�J#\u0016h���*\u0004��\u0007���_�i�\u0014r�p�k�#ݿ�3���i���5����5;;��'3X�\u000b�e�V�I�۲\\}ynm�*�n�m�jeX�\u0015�tF2�'\u0011Dǿ����Z�(e�$M\u0002y��tv�U��_&y.kҭys�\u001f.�;��\u0011��\u0016��VT�J$L\u0014��I\u001d3��\fr�\u001f��\u0000K��\u0012&���MZ������\u0019�r�h�_\u000fk���,q'0zWsN��=�O\u001c�`~+�g�;.A�\u001a����S��jȁ�\u001e�D9S>�죔]{��Nit��[� �o���C,dx\u000f�A�v\u001d�y8Y\u0006�Ox�\u0007Ÿ!�V��\u0003��6,�\u001a�`\u001f��sf9[�[�?3�\u0000���?��c9��?�>�c��;���4���w=��O\u001c����s۽�@����\u001ay��t�\u0011׶wz\u00128G���\u0000�L�?\u000f�{}����8G�μ�߹��V�\u0005i��Ґ8�<�~\u0011��\u001f�y*�t��x�ld�\u0000\b�\u0015=\u001e�?�|�q�L����)�o��x�7��k\u0004���?�zw��\u000e�\u0000v��g>�]&1�}g�\u00008�\u0017�X���7�\u0007C��f��W��4��:~�iq�e\u001e��O���E���.\t�Y\u0015�5#���FY��\b;�E\\[׷����f5%2�V��\u0007�ۮ*�{C��O�v*��_n��jb��S֝}�_��Ux�{Sj\u0011ӧ��%\u001e{�����kNZm����\u0000Q���\\��{�/��-����u\u001a\n�\u0000�M�\u001f\u0017oj�'�VIwq\u0016��HJ�\u0002� ����\u000e� \u0005\u000f6]T\\\u0002�v\u001f@�J��8\u0006��\u0007��c\u0000�����a�mN<�����Z�Cߵ?]i�]�\bc˚\u001f�%�Mk�o|��x�s0�\u0016\u001bd߽`:\u0007�֣5�>�n`5ɜi�j��S~����̑�\t�L��������.��������Y��d;��::�G�@G��\u001e��c�CD��j�?��X�Lq��\u0000:f6�tQ��}��,���O� ���\u0000���3�]��2E��(�G\u0013�\u000e�<��n>m����o�0�G��\u0003@?Ґ�g���\u001e0�'?\r�A}��@)��m�Wo�9�vQ���8�F�}Q�gF��R���}\u0006\u0015�1�\u000e�\u0011.L+T���#�ڞ��n\u0016d�1?����d�-�~k&�C�?οNZ\t�\u001d\u0014��ū\u0012\t��=��F\u000e~�Ġ��]�\u0000��\u0000w�C��k�@�zu��dZQ9,)]���\u00001��ف�q�\u0000��?��v�~�%R\u0018y\u001f��\u0000\\Y\u0001i�A�~���\u001c\u001c��������׿���KD�\u0006�;l6�v����I۵+�o\u0011�l\u000b`w%7MZЊo���bi��\u001e�I�Q��k��א���\u0013�����>x��w���TnE\u0005>���\u0004��\u0012�E(MG�߬`���me�a�WqZu����\u001f�a�\u0014!�\u000e�5�����Ko{(lm\u0012È�)� @��3$�y����n>�\u0007��v���\u00074��1AJ��dA�\u0000GQ��v�2����L����A+��\u0002J�??��)��nj\t��b���:l\b\u001d��W�WE��lµ\u0018��=\u0007��võSY��\u0000���V��k�}��\u00075��k�\b�5����m�\u0002�z%iS�m�J�?�\b�S��\u0000\u000f���۠��t:������F�\u0018\b��\b����\u001ax����+����'��׷]��\b�L�`\t�M���k�������B~G޽��\u0007�P̪>u4\u001e\u001e�\u0000�\u0017�\u0015֕�v�_�\u0001Z\u0015hV\u0002�t4�\u0005F���!\u0001\u0007 �-�\u001f���_\u0017\bQޗJ�������W\u0001\u001blϘ��t�T�z��{��\u0015a5��/�\n�n�s����w�ܗ�Zo��S�*��e�D�Q^]�O�\b�Q�j�\u0017�4�Ȣ���4�fW�\t|�֢�\u0006��jz��b�\t\u0016��;���ʥޔ���ѵ>!߯jd:*\u0016@zt�Ei�=�\u0001�����w��\u000f�\u0001�L���n�S�\u000f�Ǒ|��oo�k�B�\u001c\u001eh}U�M^�T��L���Ӧ��,��پ�\u001ca�2r��\u0003��=N�\u0006X�\fZ9J��\u0012�\u0003�\u0012y\u0012F������\u0000g4ߒ\u001a��s��\u0019P<1\u001bm\u0011\\���Y?/<�u\u000f=���[Iq���5�3\\K\u0013^ijR�Hn\\��\n �G\u0018Ȝ��H&����@~)��g9�\u0001�'��O�c�����N�΄�-e���W��ۤkio-� !}KY%\u00020�\f6�ns\u0013Q��(��\u0005��\b�\bއ��~e[yF\u0018\u0016��5�������7\u0017\u0013�\u0005��6�4a}(gK�a�� Q^D�\\L��\bz�ȏ�'7\u000e\b�c�zx���Iy������y'k��:��7bK�癣\u0011���a�-�\f���\u001d�D*8�Z��H�$�\u001c�\u0000Iws�2D\u0000��9m�>\u000f�ԟ�^b�5�*�\u0005u�\u0000�?0��/|�e�}\u0002��'H��(����c\u001a�>E����\u0004��\\A4�\u00037 ˜�\u0012͌���4dv\u0000�Y��\u0005��\u001e�x9eS<����������h�����asi{\f��?Y��������'���/\u00042<�\u0005DfRO\u0010F�X�\u000f��\u001f+�Myr���{�����O\r�\u0011^�A�i0�@K��&6��\u0000\u000ful�V�\b�ȯN��8\f���t�1�\"D�(y�X5HUJ��43\u0005_^\u0001\u0014�\\' c\u0012K\u001bpdVZT\u001a���C#\u0013�\u001e�c\u000e\u0019D\u0018�3//�I,���P��ʢ�8W��UǤ�/\r�1��\f$\t\u0003�o�:�-�v��‘�E�\u001cHUޑ��\u0010%?y\u001d\u0006�\u0000\u0011,N��ID��d��^��K;�x\u001d����ͧ+\u001arK����k�\u0000\u0005/t\"r\u0015��\u000fqS�fDrwX�\"�:H�\u00002c��X\u0013[L���\u001f\u0004`�\u0012�\t_ӘK\u001cRP[2\u001f�\u000b�\u000f�W�f`��\u001a.�]������Z�մ���9���FJ0vD2H�Zr�!PX+P\u0013���\u000f.n�G���\u0010�/�\u001f9�zv�wiF�f\r\u0015��k2�\b*�j�\fb��$o� c��[�eG�8���E�����\u000f78�>_\u0006F@�F�����(�\u0000�B�D�\u0000��m����1��׷���\u001a}:�Ao4\u0006�- U�e�#��A�\u001fQC\u0001�4z�\u001265#���w;���\u0006Id��o����H�\u0000.4mg]���|�.ldk�\u0000>�����=A�\u001b��on��帽\u0013��%Ρo�\t����gS\nQ�\u0003�i%!���\u0018�V�ù�u�����2���\u001e_��/^�4�/�\u0013�\u001c�Zn��X\\�\u0002����Cm3�l�ѣI\u0019*��#n��K4e)\u0019���@�\u0004����/�\u000b��\u001c�5\u0015��\u0003��֙�\u001d �w�����*��L�<��pr�\t\n��I�vބo�~O�\u0011���\u0006�w�L\u0016��D�ĩ`T�\u00007��:g\r�$D��7����\u001dve�[��\u0013z�?�ߜ�� �>��\u000b�U����\u0016���\u0019�vd�\u0003��e��������}�~��:�9޺���Q\f�%<>���]�͸;8LW�\u000b���<\u000f����O�Ϲ�辠���\u001a����\u0000\r�:g�d5�{sz���o���q�I��\u0000:{�u�#�{�\u0016��L$?\t�SƝ�����eC�«y��\u001a��N�u�?i�\fr.F\u000eo�2%\n�\u001f\u0011�\u0007�eb�2\u0015����(+֟/�L��\u0014<餒I��\u0002w���Cڔ́D^�M\u0019l��*�4�\u0007�Wm�dm�%�����|\u0000sQ]������\u0002{��;\u0001��\u000f=��}V�\u001fk��\u001d��4 �'�g4\u000f�3+\t�\u0010j:�|?]\u00009|&*����u}��\u00008��D��R��x�=i����\u0019\u001d��7�?Hth�g\u001fO�\r>�����\u0017�\u000b\\��������\u0018V֊D\u0003�n���?\u0014tQ��~�w���\u0014���\u001b�=~�{�@\u001b݈y�Gդ���\u0014���� Cɲ?W��o�F�|�\u0000$ot��\u001b�\u001d�y�m�\f���\u001d�\u0018�o��?�2\u000e�m��t�\u0003�t��o\u001c\\L���;{ڏ՝\u001b��n����UFr\n\u001f�\u0001A>�\r�\n�?�����\u00072\u0003`6�}��l2��B\u0006y��r�ýrU���Ep�k�\u000fN��\u001e[��@u5�ҽ�?\f\u0006ɾ�l�pw�\u001d;���LGr�[ �_\r�zһn#c�&'�\u0010�\u0010O���(<���\t\u001e\u0000�\u0000\r���昞���)J�v�S��6 .�\u0000�\u0000x��(>iK��О�ץ�\u0006�,�j\u0012\\�\u0010+�~\u0018�t[\u0015a\u0003#���\u000f낖��\u0019�a�Oǿl\u0007�|�r�-\u0005{S�o�\u0002�\u0012QaN�ϹŚ&�\tm�����\u0014ȝ�<�!\u001a#;Tm�����\u0001\u0002�}룇�M:�qڟ}6�g��$\u00106;�DY\u0010W�����\u001d\r�]�|R+��5V��N�vD�w\u001c�{�$��r �~��Ҿ9\u0003`�\u0015��-H�j�\u0000\u000e���1�\u001d��r\"GŻ��%A�\u0003q�W��\u0003\u001d�����\u001b�oRJP�M}�o��$w��-����X+�B(7\u001d����M�]Z�\u001b\u000e��\u001bw�}�U\u000e\u000b���WE\u001fx ���Ԍ��\n�z��_\r�#z�諊�v\u0003q�:nG]�8�ן�̿�+�u����#���7;t\u0004TS���C��G�c\u000f�O�x\u000e����Z�������~uȑK�¢������p!\n�����x\u0001�����\n�I�o����\u0018\u000e�\u001eH\u0002��@�)_z���v��|�2�I|�\u0011M�_����\u0011AGz](����}��\u0000`>\\�\t5�J:�\u0002�'�{T\u001e�\u0003�t\tZ]*�Q�}����$z�J_\"�n��������\u0003��R�F�b6�'��m�\u00050�[�_-w�āڴ?�|��]'RN�\u001fq�u�FF�P��mׯ��:\u0001�%\u0006�\u0000g���l>���ڡ��u�~�����L\u0004��\u0012i���\u001f����\u0003�\t�jt\u0004��`}8\u0015�bH=�7�=r\u0012庀/u�)���N��J�\u0019\u0003�גM4\u000e��DZ�#�y1!\u0019\b\u0004���zw\u001ddž\u0002ʸG�%�\b�{i\b�K\u001b��Q\u001c\u001a\u0011�Zx��h�A$�\\�������G��\u0007�����M�\u000e��y������E��3P�y��\u0000��\u00001zZ͉�ln9Y�������\u0016�У1V9��:\\Y�'&�\n�b�8qu�I\u001b�\u0018��\u000b����\u000esä��},�\u0001(ݍ��\"\b�u��]n��5�?��O�?0ZX�\u0007�\u001e{��ҥ\u0010-��k�\u0018�{\u001b�!�����\u0015ʺ�F�<@����'\u0014�����\u001b\u001c��_����I��\u000fjG�1\n�g\u0003�\u001b\u001a�|@�ꎳssc\u0006�wg�Eae�C\u000f��\u0011h�x]���R\"��`���\bUb\u0005\u0004��&�����q������o��{.�j��^��mlm8�\u0014r�\u000b�4�2H�g_E�X�6\u001c��ˍs\u0016B\";���\u000b\u0015\u0011���\u001f4�k�F���^Ҽ���\u001aYi������A�mK�b(})4��̗�^�t��k�DiLNμ\r\u001cW\u00022e�\u001d\u0018��6E��9���W�(��\u0013�}F��\u000f��\u001b�5���o�%�\u0000��Ѽ��\u0015�\u0000>��/U���q'T��\u0000(<�\bY�\u001b?�Mg�\u0011k\u001f�\u001e����E�y��-R�9�I��@�ݜxt����c�q��\u001c� F;B&�#��\u0011\"l�^\u001c\u0019��\u000eʔc��?Q��̓*2 n\u0005��w\u0003ſ��?����W��巚?�\u0012<��3����1yn���>x�����<��Mmf�R�<�|��\u0000�.��ⷪ�\u0010^��\f����(�\n��\u001c\u001d�\u0019D�-V)�xG\b0#�k~[č���O;������:��Ɏb���2\u0007���GJ�|w�\u0001�\u000e�z��8�\\�-��<��)�����Z�V\u001eZ�<���t,��Z��k�+x\u001aY\r��Hah��\u001a�������}\u0006�\u0006 d�NB�\u0000\u0004F�R5ʺu'z\u0002���a�ɒ\\\u0004�\u0014G��F��\u0017���\u0007����\u000e��=v�M���!,�\u0002'�`t�Ua���Ս�&���h�xv\f~�NcxX�b\u00199�ט�����ś>�D\u0003Q�]\u000f���O���`�+VQ!i#Y�q\n�8�\u0018\u0000\n�Xn��X}\u0019�qF<�;���,�De��&��gn���3Hd��^\u0003���\u001aD%Z$��N�i�ny\u0003Ҡ�U��\u0006Q\u001b��gh�� ��_�_�\u001f�z\u001a~_E��\u001ac=��Bt�L�(�eͲK%���\u0005[�\u0002jrq�X��*��1-4<]7�$\u0007\t�}�\u000f>���pǧ�~X\r�����\u0007ݾ�\u0000~������&yk��k��[q\u0010��i}FjK\u0019h�(�!�Q*)�љ\u0005H\u0007b2�\u001e,�\u0018��{8�ыO���8b:�:�\u0018|��%�ͮ�m��ľ���D��i\u0018�#�a����W�[Ÿ\u0014.EEwX4�C���������?\u000f.\u0017[�@��Q��\u0003ϼ�|��|ͩy���v��C�Y����jq�\u001dݎ����=[\u0018�l�\u000b�Ț{q�r�PA&�\u0003q����\u001b�T\ru�/;\u0003g����]1��v���˧\"���q��\u001b�z���h�]���b���X4� �M���=�ZE���S����M�w�`��g\u001b����.\u0016e\u0011*)5\u0019��4��p8�\u0004�\u001f#b���WF�'�\u001ao�cÛ�\u0012��\u001f�{�c\u001f�~�y'�r\u0003�V�\u0014~~�\u001d�����M�]��7��2�.�M[��b����������_����گ�t�.�꟦lf��\u0016�=9\u001a��4gK�d�\u000f���\\Dw�@���'�\u001c����< d�\u001e\u0000�\u001ccx�yq\u0003�>�=�҉��'�<�c���}u\"y���P���\u001cY\\[�y氿�X�O�\u0017\u0011�q^k!,�CZ\u0015ʎ\u0018�#����;��jNl�\u001eh��\u0000�\u0011C���~��\u0000�?y�N��͇��Atn\u0016\b���}\u0014�\u0012,2\tv-[�JI��\u0005��W:M\u001c�\r8���۞�\u0000\u001f.g��{g\u0014\u0006��d�4\u000f 9���7��9�?�˿2A�O���\u0000�\u000f0kP]\\}W˷l�D�[��$k\u001a�\\�@\u0002�$v�1.�ꮃr\u000fJ5\u0010�L��*M�pyX�k��\u000f,~^C`��\u0011�J\u000e�\u001fƹ��I\b��X4*��O���\u0011E���v5޽�G-��\u0018�\u0001y�wT����w��z�Tа�:w�?���ũ6owe��K\u000f.h�#�,�[����٨��,g�v��r\u001e�c�|��\u0015@\u0015�\u0014�_כm7b\f\u0000p��-q��T���B���\u000f�9�ä0�Ş�\u001eL�)�.�\r��\u000f�6\u0003\u0014��\u001c~>���f\"�G\u001am��sW��\u001dDi���\u0018�G/�����H ��޽��~Od��S��v��H�\r�e��Q�\u0014S�����\u000e��\u0001��ɬ\u00126J1��T�5��}�\u0000,Ώe��Hb�ǖ~���\u0018�\u001d�=�\u0000Vcj;\n\u0019�R\u0016\u0019GY\\��'̿���ñ�\u0016aR{ҝ3����\u0000G��'8l7sc��qƢXJ�8���-[���^�图��;K��\u0011���Z̙��6]'��~��s��\u001a\u001e���nr�;���.\u0004e!��ߗ��V�WjA\u0007\n�*�G3{?�qh���2�s$nv}#\u0005��m\u001aS�ҿFt\u001c\u0007¯6�4�ս6B;\u001d���\u0000o%\u0001D\u0011�\u001b&rN������̋6Ƭ�iG�>�n�^\u0015#'���p_R�#��\"�t���}��+}Q�Ij˽p��\u0007�Q�_\u001cl�Q]��y������F^aՇ���d��L�����\u0000�\u001au���\rh9M+HISSS�\u001f����q\u0016��ƫ����\u0000�?颿�jObP���\u0015��H\r�G%8BY'�\u000e��\u000bAֻ.�\u0000?\fc���XA�\u0012P\u000f�\u000b`\u000f��<\u0000���,\u0010\u001d�,\u0010��\"�\u0013��?�)����H�����\u0000�\u0015eC��: �݇������n�u\u000f��m:꼬ի^����\\�h�;�WF�a\u0011\u001ei\u0004_�zR9o�&���#��Y<\u0003v�\u001d�Ma�\u0000�p�\u0010�X���W�g�����@X����%�ߗ?���X��#�\u0005�\u001aw�t�8�1\u001b�����Lq\r�hN�\u000e��\\�c<1\u0003�\u0013�7K�i�7�x���$\\s\u0003޻x��|����^i�2��ӄM=vL\u0015�\u0003���\\�iV�d.�e \u001a��\u0007~�;e\u00191�X\u001d�\u0012��\u001e%�~W���}rKUw\u000e\u0018\u0016@{�l�j{3\u001ebg(�[c���M�\u0006�\u0002\"�E\u001cE\u0000����L��`\u0018��\u0006\u0013�\"��W�\u001f���6�\u0017�\u0000O��|UF`x���?,\u0005�������\u0017�w��\u001c,��i�Ph7�N��O��X��5w4\u0003��X,\r��ϿS����1\u0007}���\u0015�\u0000:\u000f�\u0003]\u0015E�^�O��ĩ4}�I\u0000�?��\u0004�c}�7\u001d�|�{\u0001�>�\u001e^j��o�\u0001[ڎi�:q�~�����\r�\u001b�R���k�Q�7�~�,v@k�z���:���b2�M���2�u�Ym��~�Zu��Y�6�5�\u0001ڂ�\u000f\u000f�>�\u0000!\u001aܐO\u001e��\u001fۃ��\u0005\u0005-�.�������&�W�\u001d\u0001�}����A�H�\u0018%)JR����Ȑj�6JF�\u0005 \u000e�;w��r�\u0003vy���t�T\f\u0001�=~��|� ��Y^_�w\u0015�+��|�ۑ�T$�✘T�jS�V|��7�J�>�*\u0005?\u000e�>�!W��ۨJ�fj��\u001f\u00026��ϒ,��E���]����\u0000\u0005tl������_\u0012�?\u001e����\u000fl��l�<�\"Uz��\u0014��۹\u0019\u001a�'$J.�\u001d�S�Z\u001f���*��U@�l{\u000f\u001f��*�:�����<��\u0015�������z��jh>t��1<��H��{R�+��l0\u0011�M)��ҟ/�\u0015\u0015Ȓ�j,6?2z\u001a��>��&�\u001bA8ڣ�?���w\u0018�B�������\u0003(��9\u0000�\u001f���k��5�H��$�E���W��z������K�^�=v��J}\u001e\u0019Y�\"lZ](ݫ�\u0007m�{��\u0001�&��\u0001�-�S��\u0002�p<\bۡ\u0019I����+ҵۿ_|I\tK&�\u0006���|)�\"�uT\f�ob>����U\u001f%K�^�Ezt�Ɣ\u0015>\u0019\\�$ �~{����[�\u0015\u0006�jl7;�\u001f�LB�\u001f�oo���?\u001c\u0005*\u0007��\u0000/\u0013�Q�\u0000-T�5�7�����ȕq;�$��<=�r\u00199'�Gù�ƛm�\u0007)\u001c�����n�T�:�d�ⴃ^�t+R\b��w�>\u0000�<�;M��d�K�-6����n0\u0005�������?�\u001c�^�\u0000���\u0000�W���,��?;F��G�5�E�}wF�\u0005���73O�I����a\u0015M\u0006Wٹ\u0006��s��Yt�(�\u0006\u001e��M��\u001fB�sQ,���a��-T\"?����\u0014}�@����7��)<��\u0011t�}\u001b�@�t�(`e�P���t���l���d�R��!#s��m�3O�\u0013�Գv��<���\u0001;|^���3��Ǧ4q�B�^:<@yV����\u000b�s\u0014���7n�\u0017����`��\u000bF\u0010��`�[�B\u0015Z�*A\u000b�9�����x!�H\u0001��\u001c�C�5�α<\u00166��D�VG�'��G�h\u0005�Ҵ�G���_\u000eڼ� \u0019H��i4�\u0011Bʝ�����\u0017�Q�kMRĕ������i ��q\u0003L�\u0015�\u001c�!H\u0006:��\u001da�+���e�\u0019#R�|^۫�~y�?+�?)�\u000bm8h�1�5���i�\\L&k�����;`��J�\u001b5^�'2�v�mN�i�p�*߾�\\;'\u0016�V5D��~f��+��y~}SU����G�Y�뗖�h��ɧ,}A,V�o\r�\u0000��J��X��I#5��a/A����\u001f��\u001b�I��Wх^y����4�s�\rJ�\u0000��ZϪ�S�6;�p-�v��؀�)�2D%�Ǔ����]Y���#\u00060\u0001�@\u0001�i_��c��V�?�\u000b#\\,���`�\u0010?�X�e\u0016�E`YT\u0012Y�=s.\u0019!�z��o��\\S���&!�\u0016;�\u000fy��~��\u0000�=�\u0000�<^�\u000f\u0006�s��>\u0012��e\u0010�\\�\u0014\u000f\u0004��2D�I\u0014rz��8��R˱5eˎ8\fbnw��;7��`�\t� �\\�w���˾L���Kaxܯ\u0014$*ʤ:U�����3�GE�o��\u0000������Z���͝���gז�\u0007֤�V��$\u0010\u0000Y��}�u���q��Uϋ���\u0003a\u001et\u000f\u0011;�\rݕ�\u001e\\ �s��\u0010\f e��՘�)\r�Э������\u0000�7~h~h�u���r��\u0007�����\u001f�>m�^�\u000f�?#��ۅ�\u0000�m��F��Ef�\u0000�:��5�Q<���/��̋}s�i��u4���\tT\"ZlZ<إ���9���eU\u0018H��!+$��\u0011ʲuGM��\u0000b84�\b^I�O)��w��ߕ\n�\b�nl5/�ZGs�\\@�ak\u00191��<�z���\u000e�����F�\u001c�4p�\"\rJ[r��t\u0000�!�=��cI=\u0014�C'�)���6�<����hr�~ۿ���>o���\u0000�k�F�i~l\\}cο���l�\u001dį\u001f��M�S\u001a]��\u0011$��\u001b'�m�m����\u0018a�r\u0017,�;r��G��|�ۿ\u000e\u001e������\bG�Dw�7�:k�R��A��\u000f�6�,\u0007@��_�ȡd#�n�����U?�\u001a;nLd������������\u000b�?���ņ���D�6�����\u001a?�!�p^\u000e�t�\u001e�\u0000�U|˧�� ����\u0000/\fxx��#����g�z�x��/���x��/\u0019�vQ�?��O(���~\u001f,kO�DrO�{���=4~�I\u001fp��\u001c\u0017\\!\u001cG�%��M7����}�{a\u0012��\u0017��6����џ`����K\u000fp�qW%�^�\u000fS\u0011���~�\u001cx�\u0014�a��U\u001f�\u001f�+�}8|lc`\u0002��>b�?⟥�?��z\u0005�^�_�哌>�m�7�Ӧ#6\"v��{�\u0002�#��x������U�^~�}z�я'U�����o�\u001c��*�^ۡ��,��ѓ�����\u0001�\u0010Wn}\u0014Ϛ���\u0007m�\u0000\u000f~���=ֶ)i�U���>�v�Ə����6Y���=�\u0014�x��4�\ng͖_��\u001fH�ƈ�kM��ԛ��B����\"�����6\u0012��צ�<�6�,)^�;�|hU�(��M�\u001cu�>|����g�t[\tT�pє\u001a�v�\u0000W��ȝDGr���'�Κ �`\u0014��\u000f�!���\u0000���<��v�>Ň�j\u0007th/܄\u0012���Q.LcP\u0015=��4�\u0000k\u0018�p���E�W����,�h?c\u001d��j�\u000f��㓍����ԃ���F�{��E\u0002\u0007�р�\u000f4����z`�Z�q��Ǹ�\u001a�G�\u0004�ݻ\fhn\u000b\u001fz�%[n�\u001d?����C�:��*6����\u001b�L��d������� ��K�55�\u0000:~\u001d�%��\u000bZ\r���̢~I���\u0004��\n~\u0007\u001a\f�\u001ej\u0013qZ������P�(z�\u0000\u0001�����{�7t���\u0007A��߽;\fOڵ�B\bx\u001d��g�ǮD��d�1\u001d�\u001d�O\u001e��\u000eIJ��\u0014��rM=�~�J4y�`{�m\u0001q��Zo�\u0003\u0001�5\u001b�\u000bp\u001a�S��x�r\u001bXe�>h\u0014Eۦ�\n��\u0010\u000bh���.-�I��\"�\u0003b\u000fzW#*���\u0003�C�)�Ԏ��6���\u001d�̄H=P\u001c\n�+�\r?�+��� �ۓ���j����\t��<@�'5�����PH�e\u0007�\u001bv���\u0015v��]\u0014r_�ڞ?<<����r7����P�U�\u0003u?�U��\u0003�Ǟ��\u001b��Z{�A�S�#b�U\u0015��7��ߨ�D�\bRp\u0006��Fݷ��m�Ǧ��Ws��;w��z�j�^hg�\u001d�M\u0001�j7�\n�[���v4�ӭ)���Q�\u000eM��6��ڤ\u000e��\u0015A������`7[#d�@=��;{|�ʍ�y2\u0006��\u001cS�A\u0002�:\u000e�d}̨\u001d��l�+ڽ���W#3�2<��4��~��L��UK�\u0000֛t;��錁��i,�\u0002hF�|)�C��5�T�Q@{�'n��H땛�R����\u001d~c��VN�}�����x:*\nA���S~�x��W��P�ץ7=zt\u0015�\u0014��D��#�\n\u001av\u001b\\mT��\u0000��\u001d\u0000\u001dpy���>]v���*�/L�?\u0011�\u0011=\u001d\u001e�\u00119\u0001�|��_*�Z��\b�z2�7q����ndA*F�ʞ���\f\\�%iP\u0001$�:�Һ/w���#���)��\u0011�q4�B�Q�RŠ�!_L,L��\u001e ���i�N�\u0018!>W�=�1��\u0000/�y�$q�?\u0012V*F��\u0011\u0014q\u0002F���ݶ=w�uЀ�\u0016S�s�~G�������֋x������\u0010C\u0015���\u0016>J��RA⫲nk���\u001fDA>h\u001e������9~>�u�嗖��?EBβ{�����\r��q%��-4�)�_\\��G\u001d�5���\r�\u0018�9O\u0015<�.[���F\t\u00128�˝�1�B\u0010\u0003\u001e0,�\u0000\n�>��\u0000����+[O��zy��d�H�ɒ�\\8&!l!�Y`��J�r�1��AU�)N~�ç��e/}_��\u000e���\u001a^���d\u000e���\u000f/3�\u001ad\u001f��Mߘ<�o�7�����3\bҟV�t`�%�M����\u0001\u0007z���5��\u001aG4����{�F�� ��8c�\u0011�?�R_�\u0007��\u000f�fп'fw�D���h�%�/���\u0010�\u001e� ��+�rެE�2�\"�T�����`�;��Ȓ,�[\u0000\u0007q\u0015�\u0007}��\u001e��45\u001e�F0� \u000e��$�\u000eF<�T\b��\u0007�S�G@��p/l�ٮ$�{��Y[;\b������\u0011�äd���hA$�8\u0006bn�z�{����:�B2�F�X��{�#�O���͏��_�\u0007��?��;_1����\u0000�\r�[����}\u000e��|��æ��a�[\u0016H����u���r���\u0017���l���Y�zqQ5�a��ǭ;\ti1v��9r\u000e=@�(��D�\u001dǼ��\u001d9�ᇛ��?�\u001f�W�\\��&����[\u001f6�Nu��Y�$�������O\u0017�(d�tY\u0014\u001d�\u0006��=P�K$}$s\u001b��\u0000[\u001c}��\u0004�q0d\u000f�N��'�m�wӿ�_�?�V��\u001d�\u0000�5?/�h���uw\u0012\\-�Y\\�R]i:͚��~AI�j��C��\u0017gj�\u0019lKc[���W�\u001d�\f���\u0015\u0013\u001c�\u001f\"\u0001��w�_�ߒ��c����k�-�q%��������n��-H�\u00164��}r-[L�^Q�qFx�EH\u000bR6�\\�4ؼ= �Eo��?\u0010H'��鵺l�̞6�S��;V9D\u001fu\u0003\u001f\"��0[Z�a\u001b�|ã}zk\u0005e:�N\u001a����4 [�[,S\u0018�\u0004Y\u0001�qV$��&�\f:�e�I�W���峧�i#�\u000f\u0004+�[p�#�_2y����W���w+k}%���\u0014�eqp�o-�'�!�g�[�q<*���B31�b\u000e�9�\f|\u0016\f���_M�y�^\f'�\b�c�s�����_'��ZY�K�/�]yD�\u0014z��q���}[԰���mF�^�\u0014�����\t\n�F\u001cT��O���|LW�D�=�\u0000��7f�]N=<��$�O\u0010ډ�Gut\u001c�7�-�\u0000?_򽦿�\u00009��w�&A\u0004z?�&�%g�����=ŵ������6�$��\u0005�\u0010�I�� \u0013�s݇��e��_hk?�#����\u001c#����G~SG�˃��b1�p@�\u0014*\u0016I�y�����\u00008ݬ\\~@�\u0000�<~H�I��o\u0015��姖<��:�5�V)w��%)G{��z�7��ڜ8�\u0018\u0002\u0011�\u0001���=\\u��kuq7�z�׸\u001e\u0011�=�~z�}}\u0017�\u0000�������\u0007ij�5\u0017L�~y놿�qO\u0019\t�'�\u000f��Z-x���6��o�ե=���%\u001e��wE[\u001f�\u001a��\u0000u\u001f��8N�W�~����W��Z�Z��j�#\u0011���\u0015�^*\u001eM��\rz�D��3���?���F���\u001d�\u0000+�^\u001b�G����`���lx/�C�f�燘\u0006ޙ޻����{[_���\u0010Z<<�O�Go\u0019[%��X48TH\u0016��wy�����\u0000~\u001ax������W`��wy���M��_�k�|�(��[�\u0000+��}�?�0Ҿ\u0007�\u0001��\b߆׈tX;��C���h}S���\u0004����}�$\u0018����x\u0001�\u0010��\u0000�ӹ\u0007��3U��~0k��-��>�:��>lvjD:�\u001fY�k��j���G���.W�;���'�����V���\u0002��0��cJ�ڕ��bv��U��5U\n�j�\u0001\u0012+��CL2ɤ\u0019\u000b\u000eE\u0001���9�b���ݬ�_(�ty�S�ռ�Z��EQV*(OZ��Eښ�� \u000e2.�v$\u000b|޿��cj\u000e\u000b�\u0000#\u001a���\u0019��i�A�\u001f�\b����#��]�?\u001bu��e���\u000f3\u0016*��<�GE������_��g|V�����=��\u000f~o���\u0007�5���{��9����� �Pw��\u001fo���vHj�g��#�%��l��\u0003N\u001di^o��l7��#\u0014q$W_��g^@\u0014�_��\u0000-�J��z����&1{���^,���?O\u001f\u001am��u�s(׹\u0004��N��͠�:liNlzu\u0015��\u0003�՟��?W�\"G�\u0001�~t�b�\u001c�U4���>��0��5Uq�Dy\u0006�rx���$�\u00007l\u000b\u001b{�\u0005\u0018�����\u0000@�3E�_�\u0002��A�91����g�^�Y�w�_OQ�\u0004\u001a\n��x|gl�u��#�sm�P���E��\u0001o�\u00009���%\t�N�\u0002h*�V��/ڛ�d3k��r�\fc�\u0007�4�/�/�ʏ�}[̺\r��la��-��xL9F�W!I��[�.�\u00188�cv?�w��\u0016A����� �k�[B�n����A\u0013�+BJ����2��\u0013�٦B�+��:�4\u0019�Cc����ܥ/��w��XȊ�5}�\u000f�A���\u0018�8�9�!=0���-�`\u0005�q���˛u �����ty\u0003�I\u0014wc�������?,7C}ؔ������t\u001d��\u0003�Cb>T߿�ϣ/{���\u001e\u001f��\bc�)�hH�?�\b�����\u0015��\u0000?��6���#r�@�����\u0016�M�a��\\\u0007˚��\u000f\"�\u0000�`|)������4�>��\u0014��4I���#oն>L���AK(��\u0000/��\u0014q\u0011�^\u0000I�\u0014�}������;*��WĞ����)�+=\u000fQ�����`��A;�F��@�:\u001a��5Ǘ���~�I�FߏN���\u0012�\u0015�\u001c֤\nWq�\u0001�ʏ5PtT$��W��\u001c��$��Pu�\u0000=�VC1.]��Z\u0005z�\r��oA�S�+;6ƥ�b��(�}�\u0015\u0014�ڻ�*�+<��͌΃�\u001d�N�\u0000Ɵ?ՂF��aB�����v��݀ڛ��\u0000fkys��h��\u0015�lOs�n�\u0013�eVPv\u001d@�=�QӦ\u0012\u0015P\u000e�u\u0015�_\u000f��\u0012\u0015q\u001dI\u0003�\u0007~�ۍ�U6_��W���\u0003�\u0015S4\u0000\u000f\u0003_�Ǯƹ\u0012:!M�h\u0000�p{��0\u000e�\u0018t�����_ol�\u001b촢�?\u001a\r���b)��\u0007'�u�?Ϧ\u0004�A����}#���)� ��֝jv��jW\u0012/���}�w%���|�w\u001f�*�3\u0011\u0011�IQQ^��u�oקL�\u0014�m�[7qJĽ��2%��K���Z�S�FU8҃g�/���\u0015ߩ#n�=I�I�ݒ]5*������#�d��}&���'Ƙ\u0000�k�-�nk�������\bP���#�\u0012$\u0000���Y�\u00008��?#�;˗^e�\u0018U����\r��m��u8U|�\u0001��`��^���<\u00021$�iK����CO.P���>|5�w���ǩ�I�1}\u0006\"���!]=D�ߥ\u001f��M��=�6��][�\u0015�b�m�P\u0019���'����)�d5'���\u00109�����\u00100�$z\u0005_^o\u001b�����\u0013��㉾��K�xe�<\\�٦�G��^�ݹr<`�V���\u0017hi�3�y��z���\u001c���\u0017�\u001a����H8\\�.%�#\tX\u0014�I\u0001vF�9@��\r\u0015�\u0012Ēh\u0000\u0019��\u0019\u0007��B���o0t�\rœ\u001boJp\"�K�x��\u0015��\u0011\u0002�>���K\u0002M\u0007\\–9�U\u0010��f�c�K\u000e�<�\u001d�uK�x�G��I\u0002\u0010���1ȵORN ��w\u001e�+džw�nɗ\u0018�<\u00168y��\u001e~Ҽ��O�Ūj���>��gM.���WSpS꘡,�O��\u001d�·K���iΫPn\u0000]~��z\u000f��k5��N�h;<�唫���$�\u0001��s�/�^K�?����y>�ɴ�\u0006�\u001a�q+��׵�=���u�⬷N\u0018\u000e0�\u00122‰AC��f�\u001c�8L<-\u0010>�\u0003\u0019K�\u001f\u0000:\u0007��vwf�1�K(ϭ�d?tc� �I�{�\u0015��4��T�${h��D{���c&���q�\u00008ǤyZ�\u0000�w�Z6�a&��\\yiA��(!\u000e�;\u001b��L%�����2D��H\u0013�G�P}\u0015��\r)�lZ|Q\u0013�Ꮻ�~F��\u0002���S�-^�\u001e�g�jg��o�7�bH�+�MP�[<���[ҿ*\u0002jWv�i�isk\r��\u001cQ\u001d\u0013T�\u0011q{S$ި�����G���7�E\u0006���8� ~bq10�W�N=��B���=�����GN$'\u0019\u0003p���e��\\�b�7�s�?�sC�O�2��~P�Ǟ�\u0019<���{��_\u00176\u001f�5�.\u0013w�跅�4�Y�.\u0016��@�.@c\u001b\u0016S\u001bju}��]����C+�d�*\u0006�b7������޷z>����~���\u001d�\u000e\u001df2'\u0002H��\u0012j9 yL\n���\u001d����>D�\u0000�����i%��oq�Cv�\u0003�����}*#s{mk}u\u001a���\rΦ�J�B�<��*�H\u001c�51��d�~\u0019\u001c$w\u0001�ȋ���y�Fu\u001ac�%x�X s�+\u0003���\u0007a��v�\u0007�|�`5�:�u\r@�f�ɤ=���w\u0002�+�{�>\u0014���L�\u0018\u001f�;x�fr�\u0018fVa\f��\u0017.[r��}l#�LN)\u0010\u0006���8�\u001e.d�W̒:\u0010����\u001fN��\u000b\b53�%��\u0012��W2\b���T\u001f�(�\u000b��X�(=7�����\u0018�3C�e\u00028�7��\u0005\u001eG�\u000e�]_ie�y1�\u0011\u0012\u0000 t\u001b��~�o��\"�KY�i��z\u0013�á��\n\u000eq�YbD���X�� \u0017%�b@<[~�K��\u00182\u0002����|�\u0000]�#!\u0010��G/�+�O\u001b���4�&�����\u000b{�0\\\b`H�\u0007�zQ�,\u0012���I\u001b\u0016�)Ÿ\n\u001c9��\u0018$m:��ǫ��2�\u0007\u001f�`�Ǜ�w�s�\u0005��\u0014?4��Hl��.�pr�jŦj\u0016�q�$�G$w�\u0003 f\u0001#&� f\u0006���I����������<�b��,r\u000e<_���oP�\u001d�Y\u000fƟ&�\u0000�5^�q�\u0000��?�\u001d<��]>!�~R�\u0000�2~G~ck\u0016ml�\u0018ӡ�o�ˣ�;�z�i��X�ؠ\u001e\u0004f��4���c��=Y����!\t\u0001��Y}��N�Š���la5=.�8 ;��2��ul\u0007-���Զ�4��I��3�P\rؐ\u0007@\u0014tΫ�%��3��E�-j؟��O\u001d�_���\u0010s%Ql\u000f`zoߡ���\u001d\u0019��v�V[\u0003���� dƌו �\u000bŎ�\u000e��v����%�27(�J�c�ҽ�H�M�\u001a#�>/�Qlk�+��\u001d�n\u000e\u0011�1a��\u0005�Q>\u0003j���9d�'Gu�+�_Q�A�@��'F\t���z�P�(:nw�\u0000o�\u000f�\r�ŗF���O��t��cc�FB9�\u001ax�\u0007����\u0000(�O�Uk�G��@�o�=�L'��\u001c���ͧ\u000e'��a����|�:1�\u001e$�&\u0011�i���z��\u0014>=Ns��'26=\\�Y\u0007F\u0019\u0005�%c۟a�\u001e���L,���96۝|\u001fT�\u0000�:��z��\u0011����o���v\u000e.\u001dL��\u0001�r&B��T�M\u001a�v�O���=\u000f\b�LN��\u0010�\u0000�ED^�A���ӯ�\u001d?N\u0001��k�\u0016){m��;o�=F�͗c�|uz�)��C��ug9\u0018\r���\u0017�B�{\u0005Y,��0Mc\u0004\u0010W~�Fz\u0006=\u001e8��}4À\u0011���-������M5��V\u0015 p#ǣ\u0000\u00187�횽`i5q�\u0011���oG\u001c���\u000e!��\u0017ʞb�����]�R5=Y@4\u001bl�e�ݨs���6�@I>�_kd3x���i�j:���g\u0017'�UFa�*��;t\u0006�������͘�1g�є���/%\u0000��\u001a}�\u0011�KȰj�����˳�\u0000�o��1�\u0010�$���U�F-1<1\u0006 �;<��\u001f�1ja�p�Y��\u001aW~�\u0001Ɲsw\u000f�\u0005C=�d�/��:���Eŀ��~&�L���^.���W��?Nga�\u0000�\u001e�\u0010g�5�\u0000[�8��\u0000�t9���\u000f�u���\r��\b����$�7܁�#61�\u0000�WgDYɚ�\u0000��\u001a\u000f�\u0013b����X�����{\\���pc��aV4�^���=��\u0000\u0001�\u0006\r\f�YNH�\u0017+s�>ޝ^a�\ff�*�G��\r��������Mx��x�(\u001b�\f������s�,�\u0003�}#M�\u001a�#,9\u0017�C��\u001fF�S�2���������o�n���\u0001D�������Z��)�vp��V ���}���\u0011�>iu�\u0001O@wɊ�2Z���\u0012���A�����mtX%L\rI۾�\u0000=�{�h�hiҢ�;�\u0000�0\u000e�k )�u����l\u0000\u001e�R+�(Ż���\u001dɮ�Hꕰ�\u0002��\fUYF��6�Tv\u0003\u000e��x\u0000T��\u001a��>�c�U@\u0005>G�v�\u0006;ג�8��nh{\u0011�On�2;��Q`�z�O\u0011߾2R�\u0006��ނ�T{��iik���q����G��n��Cڛ�v��\u0001\u0014��B8&��\u0003J����Ȕ}�G�6;u�0\u001d�P.:��X�����[\u0004%��O� �\u000f|��6Yʭ.����\u0007Z��\u0007|�䑹�I\\�h�\n\u0000+�<;�Mm�jEr�ɷJ����{\u000e�N�#or\u0002M��ץ:�ۨ\u001b`J[/zW�\t����z%�u��ڔ�qڛx�\b���M����T���ew�+_$\u0014�*TT\u000f\u001e�����&ʠ$ �\u001bxmA��V�\u0013J��#����'܁�\u000b>��W-ª\n���ڽ�N���Wu{!5�\u001b��ǿ��\u0003(�e�r׏~�5�~�Ȧ\u000e[�J?9�-b���������8�5�?T��\u0012�b?�6�5ݍZ_�+<\u0014��\u0002�i�=���\u001a\u0019�\u001fX\u001cC�\u001d�\u0000[��-t{;�t��o�9\u0000��e��߀�\u000f�,<�ߗ~H�\u0001���z\u001d��\u001b-܂�H��\"E�\u0017?VYd���O�\u0012UkP��Yx��}\fA�V�7��\u0018�Y�Ǘ\u001c�W���ֿ��r\u001a.��\\�[�̴�\u0001��\u0000J (�8����׀\u0000��\u0011\u001f!�X��9�\u001c�\"\u0001\u0007���w�p��\u0001�$\u0011�\u001e��\u00009\u0015�h�\u001eX���Y���\u0016���;��i\u0013�ƟQ���\u001dB���p�\u0018n�D���v��<#��>���9ݗ)���י\u0017f�����G�\u0017#S�\u0016�c\r��\\[�\u0004�R���՜[\\\\:�G\rs\u0019�U�)$�f$�9�D\u0002v{1��\u0001\u0013V�\u001b+���h�$\u00137\b�~L8���n\\J#���_��s\u001eP�~7rp�\u0004F�h�0y�\u001d:���#�F\u000e\u0001\n�iU}%�QUy�Ȑ��I\u001e\u0019n\u001d>�N\u001e���xp�s6�\u0000�D����\u0000 �\u0000>|���N���%�����M���}\bR�dV�m�g����IJ�\rsw�Q,\"91�)��\u0004X4\b��;{�&�Öyc�L�ǖ\u0012�\u0018�\u0012h�}9S�S�r7�s���Zܰ�w\u001e^�4�d���\u0019��!線?�__=�\"(�h#�WUb��yf<�f���<\u0010\u0000��\u0002�\u0000k��=\u0017db�'��g׹\u0017縮|��\u0005)? ����k\u000bm6�T����-&��]^�\tR�b���$�)\u001a0��W��EW٪u���xr�\u0012��;�N���w\u001d�\u001d`���\u0007���N���&�s=ܗ�w2��^�\"���\u0000�|�2E\"i�g�ݬﵽ*)��\u0001%�����R7C�v^be\u0018��ȋ#��Ю�Fƹ�>\u0007���\u0012��-�)zD��Hu�\u0003b/�$\u000e�>�~\\y��:��\u001bYj�sEy\u001c2<�\"�w�]H�r|��\u00009\u000b<�}~�\u000e)s?�\u0011�kU��\u001aMT��Gh�2�|\u0015z�r\u0006�9���\u0012�\u0017+.�A��\u0007S\u0010?�/wW�_��B���{ϟ����\u001f(O����?X���֌�y ��\\�\u0005X+\u0015j�^�(��L���\u0006�\u0003�и�Yx}��ˌܿ3\u00126��U��o���۶\u001a���G����䵋ͪy_�^\\���\u0000�T���%ґ7����5��&�\u0000�\u000e�\u0014dM�k\u000f*�rQ\u001a��4�\u001d�\u0019\u0013�\"L@< �\u0000\b\"#�c\u0018�w��_�\\ׁ؃\u0014b!�[�◘�\t�q\u0012C�Om�PG����@=\u000b���G�:P����\u0000��^�GA��~���'%v��\u0007\u001a�\u0007�+�G�\u0015;\u0005�B:\u000f\u0001�~�� �Ě��Pq��\u0007��~\"�\u001e{tA���T\u0011փ���l��\u000f/��N#�\u0012\u000fo��bh����\u0000R�\r�\u0001��v�\r��H;ST\u001fʻ�l1 ^�\u0004��o\r�o~��\b�O���J\nԞǶ���F�)�k��T/ӹ?�\r��U��v���}���\u001bV\u0019�(!�\u001f��\u0016�pAsp��\u0007HǨ�Ӯ�\u0004\u0003�S9R(��qP��[�\u0003mno���C��f��e�S���A�w���\u0000�����/�$�\u001f\u0017�\u0000�A\u000f�I{�U���更@1�6���\u001d�\"\u0018;�j�az�ԓM\u001d�\u0015i%q\u0012\u0001J�&��H����vD!���~<ܜp�$mO��\u0000!���[[I\u001e\u001a�\u0005wn;�m��Z\u001c��'E�]4`>����H\u0002G���?\u001f'�:]�v��\u0017�>��J�>G7Ѹmlg!�r\u000bo�+[�ޱ�%M6\u0006�G�ñE�w��[�s��XӮ�-�#\u001bЪ�cс\u001b��a�xu8�<�\u0018\u001f��s�DN5�>O�/!��\u0013�/{v�]@�\u0000B��xc�ZT��?e�\u0004t\u0019�2��yX�\u000f��I��!�B�u��y?Q������>\u001eq�Ѩ�\u001d�v\u001d�Ί F��U\u0011_���.4�K�!�J�����\u0010?S\bˤ�o\u0019���ͦ�e:\b\u0014�F\u0000�z�F\u000f\fH�䌘�8�;~(�\u0000�P�^y�ɷW:���K#��Ub�\u0000��\n6$�훾��M.m\\%\u0010\u0000�\u001e��j�a1�&5���\u000f6��DCw\u0003�$D$�!��r7��4�Sv\u001f��,:He \u0012@~d����^<��\u001b�\u0004�/�y�}����%=U�BE\u0001�Nnr�t��D>}��\u001dnY��\u001f��Z�<��8J��:�\t\u0007��3M�1� ������'c��=\u001bJ�L�^��~���4������\"E�e�y{M��s�Td�H�TW��;t���\u001b\nm�����\u001e�������`ZQ���Oξ���N�WP�������`���������G�햆1ډ�im�\u0002�G�N�<��S\\��Jj�����\u001b��}�f^����\u001e�\r�\u000f���;�����\u0005#�2�����\u00001�\u001d�Nԥ< ���+��\u0011�\u001d��.��I\u001f�m��u�\u001d谐\b\u0003���w��\u001b��S#n�}\u001b�w��{�2&��.)_���\u0018��P�((��u�\u0000k\u0001ܯ4\\p\u0006�Rv�\u001f����&�ڝ�z|�ӧS�$G�F�����?�\u0007ܷD\u000e��k����\u000fJ��ɘ6\u0014YiSZ�lh\u0005B�T&ƃ����e\u00125�Lf�ر�\u0007��ȵ!����\u000eܓj/)4�=k^���\u001d핊�ts��\u0001\u001d\u000fs�ۮU \u0007�n��T��%$�M������'��\u001b\t%����\u0007�ۮB�\u0014\u0012O_$�\u0015����5�\u00001��\u0010c�bkp�\u0000����\u0010�~G��ҝs[\u0010��\u0016\u0017�ځG���1V�*\u0006�c���\u000f\u0011�\u0013�my��lG�tژ���U�Ԛ\r�hA\u001f?��?j��{�\u0000�lh*�M�����s��\u0001�T]\u000fZv�\u000f�NƸ�\u001e�C?�RF���?�'z�\u0012v>���DZ�\u001b(ܡ^�}��CM�S�NF��n�)\u0001#�iP{t�A�p\u0010�\u0013����:�}8�[���kO�P}��r\u0006;\u000e�Q4|��\u000f�v\u0007��+;lY}<��EN�ӭ6�é�A�\n�\u0003�_ ߥ*N݅<\b\u001f��U(��d\u0004���A_��{�=�L<:����\u0000\u000e����Y-w����փ\u0001ߗ5Ke�Pv�]+�ҹV�R���E;�҄�N�\u000eC��_!�zlw��S�\u001f��U\u0007#\u0000w��^�|~�\n�?-����}�S#[%����Ɲ��Z��\u0012�\u0017�Φ�\u001d;֟G��G!��ޮ\u001dh@�ï��NF?ο�/3j�\u0011^���z\u000e��\u0003��O>h�vN-�M:���|��`ٰP\u001el�N�!���N����\f\u0006�&��͐��I�u�!��C��_�\u0006��m_Oє�謷�6��Z��F�k�%cќW1�X�K�\u0014\u0007��������3a����3��\f�2\u001e@�\u000b�\u00014Y4_0�?_��\u001b�\u001e[�\u001a��男�W\u0010?\u0019,.=5\u000b\u001f��GPı椃F�\u000e\u0019G�+pC�K\u001cr��c�L���^m�\u001f4O��y�\u0016�H�3@�H�72��Ԛ�7Q2�Q�\u0011KT�bԥ5��y\u000f��pe�1Ɔ�j�2\u0019��{�\u000f.��J�nZ\u0015d��i��H=Sp�4��E\u001c\u001f��-y�j\u0000\u0000����+���x�\u001f\u0014v\u0007�g���\f�\u001d���Əci\f����h�!e�Vh�8�ՊG-C0R(7\u0019�<\u0002C���?0c����]\t�846I�qt߮��\u001d�_:�dy��s��w޿��Zë��Yy{�zv�vl���#�u]o�R\\\\����D\tOD\u0018\u0002�>\u0015\u0019�i�;E�T\t��'��<\u001e�����o�Y\u0018b���\u0017��Y$�ϛ���k�\u000f�sV��q�Z��_XҴ=G�^_��x����\u0016�Y�hKX�Q[Fl��N�O~1�\u0012��L�\u001a�i���|#!�\u0011��\u0013�\u0007}r����{M7iL�g��z�G�R\u0007��P\u0007�2;\u0013~O�/�?�ǯ7yB���H�{�4�'7�rJo�H\u0003��\u0001\u0001`\n�Я6T?\u0017l�)C$�g�O����1@d�r�ֻ��.y#]0�\u0002)C�d�\u0010�h��)����bp\\Kop\u0000x��\u0016�e��~E���\"'�{��_�7�U��yi\u001e��\u0014���G�k���#�\u0004��--d�}8\u0003�q\u0014�+2ȕ\t��9\u0007\u0019�H�n���\u001b�\u0014��rw��/�O�O����,d�.�m58�}+�cz��$Μ�t��)mnSXf2D��g\u0015!�\u0003m��X�o�o{��\u000e���u��'�&I�V�q����\u001d�v���\r��\u0015�V�\u0017������q,�\u0014-7�%���-���x��\\�������S�crG��������I\u0019�`\u0000o��r��]6�sy4>_�\u0000����^����\u0007�t=g�ɩ��\u001b�[����o��:Wt\u0006��ܤ�8\u001a����q��y��Q#��4�#�Y�,��PO�=s�q?�KM�\u0000�z����冚���~)m�+��c���+˩j\u000e�S��ܷ�O��=�=��X�\u0019Krh_By��\u0007o���\u0000��m��>�æ��\u000e+ῧ�l\u000f�\u000b>��\u0000�֝��oԌ�_W����ӭ7���o�rQ��A�U\u0004����\u001f�;W&�%P���ߧ���\u000eɵ�O���фs�$\u000ej��{��|�|��G-�%`kO�Oq�b�e���m�.\u0004\n������ݮ��o\u000f�p\u001e�%����cj����\u001d�Awn��m��~��1#�J���߸�`����\u001d�U?��2@��r؂\r(~cڟN\u001eC�G6'�T�������&�zMn\\� ��?z�\u00003�뿁�g/:�:۝����\u0011�\u0000s��\u001f�+�u\u0019��`\u0006s�\n_�:?�q���c�}������2_\u001a���Iv�\u0000v'�Ht?1��x�m��\u0000�����\"\u0015=O�_����i�B��\u0006��Z�Ss_Ɵ�[�\u0010o�^A{�L��<\r;x\u000f�3� �kdr:\u0011��>G\"B�e���=6�����U�A\tEĽz��n�O�-��s\t\u001a>lf�Zr5�\u001f����~�!{.��Zt�1!�\u0010�n}4sQZ\u001av�؎����ĖQ�\u0011\u0000w�?��X��z�]�\u0019h ~1Uj\u0019���q�̞�ѝ^��\u0013\u0017�\u0007o�sO�p\u000e����s�Ӭm�Gǂ/-�\u001b\u00006\u001dz�‌l �\u0001B���P7�)Jv�_�l���h�޼Iƽw����\u00107�V��r�%�t��\b��>#\u001d�$����Q�$X���Z\r�\u0000��\u001b\u0002�1ӗ�,�\u0005��b@\u0000\u0014�\u001b\u000f���X�Vo���:}\u0002��5��[���\u000b\u001cѲ�\u0001^&�ރ�)����\rVۿ:�,��\b�����_\fR}�\u0015\u0014SМ�=��:�\u0000:�Q�\u0013��e�έ�\u0019�_qg?�5X�\bxa��vO�\\5X\nm��`v.\u0019ò1��\\l?\n�k��>��\fG��+=���W�P���6\u0002����\u0019N����t��\u0003]^Ϥ\n*x��7\u0014?F�~sZ�e��Gkz6�h��qP;W�\u0019��\u001d�\u0003���a�,\b�:��_�'m>[�iw:c�\u0015���#�����?�v���O޽�T�3�m6�0�_�}�?�x}8;|����U�\u001b��Oǿ�\u0014�Jj��W����c-�\r��\f<9\u001f��k�\u000e\u000ej�\u001c.F������\u00190�}\u0014/7CM�\u000f�������cR\u000f���\u0000���\";��o�Z�\u0000�\u0019/�b9�)�\f7Q��ۯߐ�������b\f)Q�u��,�zQ-�-\u0007�ר�\u001b�\u0004�\u001ej�^�\u0015=Oq��_�\fE��\u0018˽&*j��I��h��,a���?FA��q���ol\u00041�\r\u000f��m��p˽\b�e\u0003��~���\u0015�g\u0013^�w��o\r��\u0000V�\u000b>Jm\u001a5h7�ӯZ��\nZ�ʏ\u0006^������`�\u0000��S֕���\u0002<���$2�\u0001߿_�\t�`y����F�r>c��� �\bG����\u0015Roս:d%ʻ�hw>��]�}��ʥݵ/O �w#�}&�Y\u0002�dn9\u0004\f��\u0011�����F�ѕ��Q�\n�װ������\u0005�\u001c�����\rE\u000e�č�\u0003P{�v�hjF��~\u0011Ҕ߿�1Uԥ;�\u000e��'��!���\t�� �\u001e\u001bm�EW\u0011��Z��\u001e��굅;�w\u001d�T=�J�\u001f\rEE)۱��ݑ;I\u001c��\u001d6���J\f#�!\f�\nu�����ȒO�.�v��?M?\u000e�7*�z�����O�\"�#�w�P)�ϧ݀�m�B\u0002@(+�����\u001b�\n��@*+�)���ӶB];�\u0014�@h{{�\u0000fVH�\u0016��%�ҽ~�n>U�\f�$\u001a�It��CN��v=���(�K��ҧ��\u000f��##�#d�n�z����M~��^�(������Ѣ��%m�\u0000x�\u001cV��{4J�I\u000e\t\u0006��'-6!\u001b5M�5���c��m��\u000f���O1~����W\u0016ڜwVZ\u0006�5��_F��\t�5vѽ6��\u0000|��leVKK`Q�;�+�,0��<�\u0000\u001f\u0017;��L��ٺ�χ'�>f�5\u0018���/\u0010)nt�k�k���V�\"��)2�,p�\u001dh��5AZ��� �є�d1\u0004�#g���Ma�$!&�^�\u000b#)�[��n\u0011\u0016I\u0015D��(\fԭ\u0000�A��|\u001d$?\u001f�����\u0007�ʓI<�y��p��$�R��%�X䕖�\u0018xx2�7�ҁ���N)��4G���\u0019B��\u0011\"9\u0017��\u0000�?��\u001ez�t�5������y�/�&OE%ib\u0006D0H9�2P��\\�s\u0010,n\\�zC9\u0002A���>o�\u001fȏʈ<�\u0005��\u0005��zj]�:����k�������K�+�95H'S:J��Ջ\u0007\u0005>-�\u001e\t\u0018�B���\u001e��w\u001e���Ө��\t\b�q<ꯨ����v��i�R|�h�W�Z�F�kwu\u0016�yw\u0015�-��a\r��%ƨ�\\]6�5��E��u�� �x��Ɍ���E\u001a�B��y��q�1#�I�. w$s�w�&�\u001d<ߕ\u001f�z����\r�1^�2�_�\u0015�\f��԰�\u001f=6�)�Id�Q\u0011`��9=����\u001eHd>�����w�����9����\u001a�y���/�7�\rϙ�f����tԭ��\u001f��e'\u000b�;V�Ք%©\"\u0017��\u0018��V+�\u001e�qb\t�ӑ8T������M��F2\u0019�������y\n�\u000e����\u001a�������Y�\u0010:+ZIn��\u0005�����Ѕ�\u000fJ�Z|.��j0�\u0004x����F�Y.\u0000���\u0006�\u0000�~����t��KĒ\u0017��.�\u0017�K�\u0004��i4ҋGӤ\u0011/�(Q�\u0012U\n�1g�\u0015�4\u0001s�\u0000�H�LqH�p�{�\\h��W�f�v\r8\u0011[G\u000e��ʩ#����)\u0004vѼ�E\u0005ſ��\"oI\u0018\u0006m�\"U� ��\u0003�ϛ��~�\u0016L�x��yt�W��\u000f����T����Ӵ;�\u00000�Z����iV\u0017W:���\\�{+\u001b\u0001\f0�up��g2�\u0012/MC=\u0001��!� 8�\u0013�@�v\u001e��\u001b��ig���O]1�I\u0012I�;\n\u0007��\u0000���������P��N���;��>\"�,��Wָ�\u0005*����jmʹ��\u0019�\f!���w�V�Wk����MF�Le-<�\u0012y��\u001a=�����Q_p;~=�r�^\r�������\u0000\u001c�O�;\r¨;{�\u000f\u0011A�֣,����\u0001��>]�1^F׃A޽�^\"�N\u0010����޿�J�LX�ʪ���_\u0000r\\�,\u000f:T\u0007�|?���)�\u001d�:����m�^��\u0001ߗE���'m�ڧ��\r��G�mG��;����~Y\u0012+ul��߽;R�\u0002�H�\\�\u0015\u0001�Gon���\u0001�\"׃��\u000foz\u001d�ƽ$\u0012�Ջj�qa�c�4�߱��o�;�`��Ÿ�J�{\u001e�\u001c��\u001a�2�v�u���W�!�\u0000s���B���N����\u0010}�5}��\u001d\u001c�G���\u001f���\u0019�b��>o��\u0000?)�I?� ��\u0000e���qںۍ�m��#\u0011Q�:���\u001d�W���i�'~���\u001dG�R<\u0006��C\u0019�\ny\\�� #�\u000fO\u0011�)��+�� ��\b\u001d[w\u0014�\u000fo�8M�R��IJ����r;���%��oZ�'�x~9tlr��[n��%٩�ׇM���q��[\u0010��|F��W���\u0000~H\u0016��}s\u0015�\u0015i&�bP:�i�J\f��)NC\u0016=�y9\u0018c�\u0013�\u001fȿ!%���444VbGV�I;V�=s�;+G\u001d.�8��\u0011�p�L�_��F�l���Ƣ�\n�\n֝=����SL͛G�\u0000��^,ik5\u0001��mO���#\u0012B>��<�z�}��J�j)�:\u000f���uO��\u001a����D�o�h�~��\u001e��7�=��#�\u0006��v�4��O�ē�\u0000\u0003�]�\u001e��ț��o���~O�\u000097k�]\u0002��\u000b�o�$���\t%\u001eK���\u0012(�I,ݻ\f��a;\u0012Z�n;\u001bX|�ێ���e���� \u000e�v\u0015��k�>J�\u0000�I���L���v{����̌y\u0017�v��=kV�We�\u001cZx�\u001c\"\"�\u000f�]�?�ù=�̟��P���1x�������������ŤԄ��:Џ��9�@\u0016kg�ѓד�4�*:�xlv\u001d?�i��]�\n��\u0005\fv\u0003����|��\u0013~\u0006S��]ޔ��b��#�����?�v��>��u�ϕ��۴��s�����<{�Mצ�?Ο~r�Mɺ����z�)Jo�zx�\u001d?\f\u001c�ȗ&\u001b�\n�����7����\u0005\u0015A����\u0000\u00022m?zˑ�����t�ܗކ70�������r�k�\u0015�\u0011ң�}�\u0013�\u000e��#U\u0003m^�{P{x��li*m\u000f\u0013B\u0001\u001dO�倃\u0012�e�����'\u0010@*Rk�R{T}�\u0000�\u000e�lJJ�rG�~�\u0018(WNh��Ra��o����W�MY�CI�\u001f�\u0007æ<�,O؇ n|<7�\u000f\\$߽\u001c��\u00040�ϥr>��0F S��\u0000�Ű_TJ\u0010AޛoC�uŖ�d����\u001b��O�\u0002R��'jl\u0005|:b��\u0005�c�Hğ�}�\u000f.�d�A0���O�݃�\u0002�\u000f��a�(w�jz�z��N\n�w\u0015\u0004�?\u0011_~���H�T\u0004�ק��})���\u0012\rr@8�>�S� �\u0019�\u001c��[m \u0007��}��a�M�4w����\b\u0014���]�C�+�k�/6�J\u0001Q�\u0005��A\\}�U�M��m�o�b�\u0003H\u001fGQ߶\u000bV�pGn��Wxl\tޔ�ڕ�4�0\u0006�� �\r������D������+��zdA�\u0011�CI�w�K~���\u0011�\u001f�U\nz��;oJv\u001d�0�ܓ�p<6��\u001fƹ^�i\u0007 \u0003������q�K��*\u0001\u0007��5��UK��6߽z\u000f�D�җL�\u001f~�#��\u0014�HQݜ~Ծ`\b\u0015�J���2\u001c7!ɝ%sni�~�\u0000��0Kp\u000b\u0002wK��O�\u0013��vA�\u0014��~#��PҾ�8.ʥ�֧ƛ�П��\u0003�۹R�I�b\b\u0014��\u000fzu'l��R��*z������^�o�z�Po]�ޝ0U*\u0006AB>g}�<6�D�P�S�w>���\u0005Z����\u0014\u0000�ҕ����[\u001b�x�\u001a������eTJ\u001e�n��>��d��\u0016��\u0015\u0017PH�t�B��ȁ{!8�\u001f\u0018�lO�+��#�g\u000e�e��ֻv�^���\u001aeA��(�'�O}�\u0007�G~��_��\u0000��/'ɦ�m�y�+\"�w�|��^\u001b�Ј[R��>�������#��C^�T��I\u0014~D>�얢2ҝ=�HL�{�'�_斓\u001d�)n ����y\u001c�a�\u000b��\u001c���\rL\u0017�\u0012\u0000CY\u0002�`\b��v,�\u00131$��d��P�\u0003ϗ6#��{R���C�Tx\u0018���@!�6���X�;��\"�π \u001eF�Z���b\u0006\u0007 �\u001c\u001c\u0013#0�/���=;̗-�~^��\u001b_Q���i�qi\u0001�D�+��{yJ��(TP�)\u0002>f�5\u0018�!�\u0018�#!�\u0017i,q�H�D\u000e���_�~d/a��d�m\"�d��0�V�$)#�+�\u0006B\u0014('�R���\u0013��#���c1������_�������\t�a���\u0017����R�⽵�\u0015�\u0000�\u001d�\u001e��\u0000H\u0016œ�\b���f4\u00032��_ig�e�D¯�\u0015�����=��m9�5\u0003,r�=B\u001cDW1�D���\u0000������]C\\��򏑦��ў�P��y�X�&�c\u000f$�Q���DzsJ���\u0001\u001b\u001e*�Xm�.��̑��\u0012��^��?�����A�%��ˊ��xw�@�\u001f\u001eo������ϫ\r���?P�g�\u0013M�O���4�V7V��0^Y�%�\u0019C��\u0003�}�M\u001f�0Ŵ�N!�k�M���d\fF!\u0013˄_���I�]b�S�iN��]��\u0007�-��-!\u0017ʜ\u0004�\u0015~)\r\u0017��\u0005:ҕ�|�8��n#�w��Z~ؖ,��8%>�\r��zޝ�}\u000f�\u0016�\u001dg�qwh�XꚖ�xE�\u0011�\u0011�$��#d�]�#L�\u001b��E)��G�B|P�\u0003\u0003�Ho�����gef�Ǩ�\u0011��1�h��l_��oz���\u0000������� ����5�2�yZ�������\u0014 ���B�ۯ�Hۑ$IR\u001a��\"\u001d��\u001f�N'%u�����K�}\u0011���\u0004��<\u0006���~�g��g����q�[\b4��/ʯ<�\u001eD�)N���\u0012\u000f2i�\u0017FU�����Hc�5A1\u0005�\u0005��'e�Z�8\u001cp�\u0015�\t�߸��:=NN����9�\"y��F��C�|:����^��\u00008��\u00009\u0015�\u0013\u000f�g����t�������Zy����c�,.l5;x�{�k\u000by�Ե��N\u0007\u00164PE�Y��\u0006d�(\u001d�\u0013�;\u001a\u001d�\u0000{��K�nj�@\u001c=�@w\u001fI؞�o��^����K�����u����\u0017�XG$�F�o,(�\u0016 \u0004���V�y!��OR���n\ni�M�Ǘ,�\u0006@w�~~~e����S�\u0018�\u0002|\n>U���\u000f���\u0006�\u0000�T����k]\u000f\\�yt�8���c[�e������%You\u00184뙩5�\u0017H�\u0014�4r�E��\u0012�+6�pqF�=:���\\�vn�y3�\u0013�\u0019�<��χϩ�O������\u001f*O��_�pFu\u0013P�֭$�m�Q\u0015��\u0007Ռ�a$p0�)���l��S\bʱُ���ORt�'/\u0012u�Ml+��xm��|��i�O8��y,���He��c\f\u0016�L�O��\u0018�ʫ_]R�\r\t1�c?�\u00190��s���ο)��_U�\f7\u001al�h���\u001e�/�\u0017���\u001c\u0010/�\u001b��\u0016�\u0014V�fG\u0004׎L@x�����ps�CO \u0001\u0004��G��\u000fߏ���*H-\u000e��Ϧ�g�[�ZY��KavHe)\u0003\u0018��>�\u0012�\u0016��[�·C\u0013/Y\u001b}���%�� ŋ\u001e�&���~\u001d�\u0000\u0012�\u001c�����;|�͐6\u001e\u0019O�jz��O��\b��Yت�z\u000f\u001e�\u001f�d�\r�t-Y\t�ޝ��o\u001d��rV) ��^�ӕ{\u001fn�l��I���M;\u001f�\u001f\u001e��S\u0012{�*)�\u0000k��\u0003\u001a#v&ՇO���\u0000�l�uI$�W\u000f����\u000b)�|W\u000f�~�\u0007�\u001d0�@b\u0005��'}�c%dn���N�\u0000�\\\u0000ٮ�l{�\b�F���a\u001ej�5>}����5�|>�G5��;t�i����H�Hc:�UI�\u0001��}q#�NN\u0001�a��V���M������g!�w�]�\u001d��\u0004���\u00016�\\JMw�~�c�� ���7\u0012\u0011^�޿H�'\u000e�*�\u0016=w&�q�\"�k�헁�6\u0007Ʉ�\u001e�=N��W��F\tˆ\u0016��!�~SyV]\\[�c/\u0014r\u0004�j���w��g�\u0016�Z�A�O���<�S�\u001c��\u0000\u000ee���\u001f/ǧX�T\u0003�\u0002h;�nծz\u0006(�n�#�+��w��t�\u0000:��\u001dU�W�^����\bS�v�?����o�R�\u0014t�~��<2v���\u0012�AO�ڽ��M�F��?���͟(��{��\u0015�5���\u000f�y�e����>]���;ȱ�m�5�N�v�3e���L�\u000e��^a�\t��O���sk��\u0000��r@h�ܼ�\u0017�u\u0002���E6�$�\u0000Ex�n��\u0013�R{\u0007ّ���`=r�|\u0003�>Ж�e\u0007��D��<ߩ�\u0000�qѴѶ�B\t�֊7�\u0019�����~U�qk\b��E��\u000f�x\u00107;�m^�|�g�\r\f}@[���kP\u0000\u0003�_c�9�L�E��b��\f�\u0000O4 Pv?:O�4��z\r>�_r+_4�ď������2\u000f��wĻ}9�\u0000\b�zq��}��0մ��_��?v|���������^����O�~�÷����=;�����\u001e������\\���c~�k���\u001eN\u000e~h\b�M���'&�6�\u0015R{\u0011���$\u0010��\u0018�~���,��nh(U�^��_�\u001eCt\r�i\u0001;\u001e�v��_�\u0012MW�EZ��#�\u001fׂ�u@�P�\n�\u0000�6��B�r�]q\u0011#���\u0000�ӈ ��\u0004�T(MiJ������1�;�ON��\u0000\u000f邨�֑����)�C��AY�V�����\n`P/dLPq#���5�ぐ�>�i#\b*:w�\u0000=�&]7榎\u0005=�\u0005?\u001c\t���JW\u0001_�\rҁ�\u0012��AO��\u001fs\t\u0002X��\\\t\u001b���\u001e>�ƶk?b\t�����dQ}J��F\u0004�\u0018�ԑ��M���\rVʃ�q������D�\u001eT��tK����N�Q'�PvA����t��dH�v@ФM����\u001f���\u0019D�oѴw?����\u0019�W�\u0014\u001bu�{�s����\u001a���KPðؚ�8\u0002����}�Zc�z�7=6�v�;T���9\u0005#�l(\u000fj\u001d�Џ�LA�{�6�'���]�w�%��ڝ�\u0003zw����K��%�:��=7#��\u001a�o�Ѥ$���\u0001��n��\u0018wB��\"��һ�\u001a�`&�*\u000e]�\u001e?w����\u0000\n��H'���{���\u001e>��R�I��H\u0014\u0014\u001bu\u001bPnr����w44���w?v*����뱯zo_\u0013��*\nM�]�h{|��\b=�'�P��7�>=\u0006\u001bU#�{\u0011�\riޟ1��\\\u000e�\u0000:\u000f\u0013C�}�^M�\u001c���)��̊v�i��dI\u0000Q�EDj݅iJ{v\u001b\u001e�\u0010}>l�UuN-�Sv!EEK\u001e;�P\u0006=�㐰7<����w�o埚5ؠ�.\u0016���$�a����i6�Fz�gi(���(6\u0011�C����k�{V���(�?� G�G��\u001cMWi�4q�ϒ1>�վF�/�\u0016�%�s��y�\u0000[�d�:M��\b�\u0010b�����5\"��j\u00107��G�&\u001d\u0018\u0012�BYrw�h��\u0011��It9��ǒƜ�ӟ������\u0000?a������\u0000-�\u0000,<�}���?,<ӪjrE�Ee\u001d����ika���\u001bEo,ޭ�\u0017\u0014rǔ?<����\rQ�k�\u000e\u001e\u001d.� \u0012 P��DO-�K��^�؎߄;|h�+�lr\u0003㏪�@����\u0017�r�ڔ�s4\u0012�����\u0013�A��h!�\u001aH�q��)�G�\u0019��HK\u001ec)\u0003�e�OK�\u0019�ƹ�/��m|����w�m ����)y-���7u������ߒ�T��\u0001RH��y��y7�rc��U���\u0017�\u0017��\r\u001bS��淑���C�~S򥍽���^�5\u000f2��G��\t-\u0016�M���\"xg9���1���,�\u0007O���s\u0006�O\u000f�\r�J�\u0001Խ~��q�hu�~��.��K�\u0010�9K\f0���A#y\b\u0000\u000f�\u001e���\u001f��/���\u000f+���ڬ�]>Q��Zד�\u0000/-�{+O��ri\u0016�WZ��/o��#���V���4 ���z\u0002t9�:��f\u001do\u0011�|�c��\u0000@�I�2;u���^�i����4�-?\u0011�\f�c(\u0002#�O\f#`\u001d�2�4h�͆�\u000f�}��kߞ>s�\u0004��k�/X�V�T��o���]O9Z]j�=�����aej��\u0016\r\u00043\u0005�q���=p�1c��G\u0007\u0017P\u0004�b��Ǟ�\u0019u��b���=>�\u0017���p\u0013:��jGir��u\u000fV���\u0000�.�hi���T������[/-y���>x��֭q,:\u0004j���\u0012�k~����j\u001an�\u0013�/\u0015���(�f�\u0014��u\u0018�3�\u001c����X�\u001c\u0006F\u0017/�ԁ���\t����\u0000������=��͊\u001a|�\u000elXdL��xĠ\t�\tCs���� �\u0000�1�a����r�F�������q�[�o�<�u��-|��\u001dcȰ�<�\u000f�nSO\u001f��W�QKgc\u0010�H�#�H��9t{c\u001f�t��XęF�\u001b��yY;�ݻ����'\u0006=d�ɇ[�?��x�Ê[�f�@\r������������;�+L����|���\u000fq&��~^�V���{��`��֠�\u000bx��\b�$w\f\bj��\b\u0003����j���1\u001a`7�D��G��8�Ҝe����7ׯ{\"�\u0000�@�\u0017�����.�J6��i�vZ�\r@ƶ�Ae5����}nXS�1!�jC��UT����2����@D��\u0000���\u001d&�@\u001d�����-�H�z�h���\u0019�ńwpj\u001e�\\��\"G\u0015���8���x�)��2|`q�\u0013�b$���\u0004���3±��\u0013�[�^O�?2<޺��l#��\u0011�w��m�J�j�}5����YM�Egikj�C���S�\u0019�ҁ\u001cr2�#��u��\u001da�r�\n\u0011\u0004��{��޿!4\u0018��^St{{�KoN�K�\u001fYa\u0002U��X�et�\u001c�@�#ԝ��b�ɔ�Ŋ��w�z�\u0003\u001e#)\u001b������e~N� ~c]~Jy\u0017�Z=��=�t;1��M�Iԭ-/\u0010~��^�Z�w��\u0012A^\u0014�L��^�jq�1��#7\u0004I����\tP�o�\"�\n6:?LcU�5e����F�2Czy\u001bTZP\u001f\u0001A��P��MmT7�߯^��넩=B�=7�^���@X�Y�z�zxu�r?�8\u0007w�9��^�=�T�\u000f�\u0015��g�%a~ǿ���|'�V1k��\u0014>���\u0007_4th�NǦǯ���\u000f��6ݱ&�Wjl\u000e�۞�\u0000,o�P����s�R�N߁�\u0019Q�rC\u0019�\u001ff�����\u001a�]����W�6\u001a\t�\u001a���\u0015�N�H�\u00039�\\~v�}�?![����~ۍ�Uͯe��9m�+�\u0013E5��\u0000�\u001b�m��v�o�,��|}��kg(����˦k���������|�Nǥ\u0010\u0007Zx�B�\u001eN.�t\fۂ:S�oj��*\t�\u0010\fO��ޞƀxd�ʒ7+�]��u�w�ۦJ&�\u001dPw��\u000f<�xm��2�H\u0014\u0018\u0010Ic�s\u0001�\u001e��d�*QV{����}�)�\u001e�I\u0007��tM��\u0011[0;ŗT���ެ�ʩA]��\t'�qe�ŏyH�Ϳ\u0014\t\u0004��~~Hy\u0019,�m\u0018�\u0001UR�\r>{w'=\u0007��cK��\u0018�¤x�Ʃ�����ۤJ)@\u0001�_a�f����b�@���1�&\u001eh�\u001b~9!\\ʓ�.\u0006���j�я;RU��W���ᓽب3{��\u0000��p\u0013�k�r����\u0000�\u000eD�G-فR��\u0005��-���H\u0004�?�p�PH����_���ߚ\u0012h>J�\"���f[Y�\u0003ndu*\b�n�\"b9�\u0005Y;<�njN=<�o�����6&����7R�����kRK4�R�#���m�$����8��v#����|\u0003�y���9S���q-8�Zp\u000bJC\u0016��M\u0007� ���\u0000\\uE������\u001fM~��\u0016�����Ӡ�؎���F햏l���C�SZ\u001a\u0001��\u001bg;��s��9_�9�ڟG��\u0015�5Y�֞F�(�x�Bï��>�s\u000e�\u0016_�w�'����>���?���N֧�\r�\u0000�ڔϕ}�۴A���ײ{�p��#��;�ᜃ�7_\u001a�m��,UJ]���r�0�L�|>?�\u001bd#w���\u0000�}կo�\\�4y/s�h{\u000f�I\t%�[�M��,���\u001dm/U<�v?����J�\u00165�3�Nկ�����Ȏ�M�5��~եiL'�T?��O�!d_z�P��j@\u001fO_z{��$\u0013[�ۭ��=�<>y\u0012H\u001f�\u001c�\u0005�+N�������WT\u001b\n'r7�M���r\"�&(�b�+����\u0003\u001e~��}�A@�\u0003a�3\\\u001d|�<�72S��\u0000?�\u0007��GkBD܉\u0007���y�˛\u0012I=\u0011Ԡ�m�Ϯ\u0016œ\u001a�\u0003�)���`��nҵ;���x����җ\u0004\u001d�5�]2'eRD�\u0000G˾\u0005L��X�|7\u001dk�>��τ�l~�8���G��\u0007+<��'���l�`�<ؔ8\u0015`\rOm�\u0000\u001f�Vy��;F�\u0015?Q���\u0019T���\u001f������\u001dA�\u0002�\u0007�O_|�����\u0011ɹ�4\u001f!����>k����\u000f\u001f\u000e��\u0015z֞$��)҇���P�ޣ���\u0004t��傻���6\u001e���T�}\t&�v�o\u000f\u001e�\u000f4\u000e[4N��Q�������B1������_%C����H\u0007ž\u0015��y!d؝��s�_��\u0010�����:�\u001d�|\u000e%B\u0002N��=\u0006�w��x\u0015.����ާ\"Em�6~)t�rߡ\u0004{x\u0013�\"�l�����N�\u001d^W\"+��j������Z�¾'��B�M�RR�i��;\u001d�~��<�rKe�q�B:t��\u000eiJ硯A��lOѹ�HYJW1ݺ\u0012i_��j��eT�t�\n�\u0014>$\u0001S�\u000fS�����U�ڇ\nx\u001c\u0005P�o]�\u001d:m�}�\u0015B9\u0006����/c����X��q�]��c�鲸u�ޞ\u001dO*w�BM�j�꣛���Y�\u0010+���\n�ו�\u001b'jH��9=c�_��n���-����\u0005n����~�\u00117q�D�n���\u001b,+O\u0016��e{;�}�00��\u0001�)\u0003��c�_`�p�z�.�\u0006y%\u0011^{_w��Z\u0007�ߜ����=��́��lЉ��映���p���\\��Z�\u0006\r�%��q��d�{�\u0007Z\r\rj5����-��\u000eQ�Y�x��ڬ��@8 ?�����ȟ�\u0003����\u0000�5������_��\u0012L��~yg�\u0004&�#���\u0014V��*�\u0007a�=,`����x��@؁E�%)Ng$��C�$���/�s\u0017����q�ȗzg��\u001bΖ�M�.�(}\u0016�e�w|���:G^5�L���hjc���@ܽߵ��,Q�Ժ\u001e�?{����\u0000���%��1�:���j�7��g}JA#L��IX���\u0006`�O\u001d�Բ�{#�{\u00177����\u001a�\u0012�(���U�0j@���`ɭ�����X$\u0006lS��|�����}�GP����k{�{�]�g��\u001bd��U��d\u0013�O\u001c,�[\r2�#\u0018p\u0016��XV��r{A�z���=Odk(��٥�G��<��p�|_����Z�\u0016\r~\u000b��|BQ\u0007�\u0007�?�6>\f\u000f�B)�g��䲝���/�-�U+�C\u0011X�\u0017-I\u0003�� Ҥg/\u001cr�2|��s�|@��L-����.a�\u001e)��[WY䤍j�F(8�\u001f�\u000eb��Q���\t-0�l;�\u0015��\n��X)��g7�p ӥ�6�KƊ\u0018#��֫7�.�zb ~\u0001ː5�F(�c�[��ɆYDr���_��\u0013�cB�ӥ���A\r���X�x�Ad\u001d`�w���s )D\u001cUE75'Y�&�<�Ζ\u0011\u0015÷/������ylj�\\��^�\u001a-䗲�}2�\u0000�SCq�Y�\u00100I$�}T-q\n0\"��-Feh5���\u0007\u00149�K\u001c���Y��h�qm;\u0011������\"����{-ה�\u000b�72�q�����մ}Q��h�ѫo\u0001���\te��\b@,M2�V|\u001a�r��#9\u001b46>~F��N�ͨ���ū�8�6�~��@��O\n�����]���̺�����׿�&{���sy)y��Ə4���V�ҡW߽\u0001\u001a<��BF�n\r_��u}\u001f\u0006^���\u0010��84�s���\u00022���`�\u0010:nh�}�����y���X�ͥ��F�u;�M.-B�/e��?CB�5�B��{ ���F\u000b��\n-\u0000\u0015�6h��e�\"@�W����G��\u0000b�^�X5\u0003�<1�\u001a�s�\u0004�9���c��\u0000�>f���W������yJ-\u001e��\u0004\u0016�\u0000�Z\u0015����/�Dj/��j�֤�P�\"��;\f��sOQ�\u0016=\\�\u0013\b�D� N���˕_��'�>�{=�͟��/M��2'!��s�\u0012\u0011�\u001e��nB���|�����\u0000�*�M��k�,�<��mv-GU��|��?�nu�0j��O�_[[�d�ծf��u7�+<���\u0015=�EغL~&,'&Iu�#\"I�Q?\u0007�=�����Ր��j�h�x�\"\u001aLP�!\b}1��\u0007.(����w���Q�i���^�\u001bA�tm:���:,z-�(b���\u0013�\u00067�m8$�pZr\u0011[�\u0014�v�\\:H�\u0001\u0013�Ƅkh\u000e�_���������ê˒~�����]�\u0000GAA����\"o<�{z�_����YtHR�\"�l���\f�[Ƅ�\u0002��Kn_l\u001e�9M\u0006�X���7\u0013f��^OE�z(�*0��&%�u��������9�^�cw�ǧkz�a��Eye]H\u0018�e��f�\u001dݸc�%�H�\u0000�#3]��<\u0018��5^u��;\u0013O�Lfy8|Q`��{��Y�\u0004:\u000f�ѭ����p��Gr�Fl��*�9A0�K#�W-\"7�h��\u0018�\b\b��3.O\u0012[w����&�\u001c�3K\u0014N���\u0018m�y\u001a2�:����JIB�f`�Uh�rq2�F��5�X�x�7����.��������/K�\"�o�y��B\u0017�\u001eX�cs�U���\u0005�Д*!\u0005��#�SC���݆5��s�\u00124��\u0014��cV\u0007w\u0015�\u0000y�\u0007��ӷ���������\u001fΗ..�#y\u00129\b��K�_�!�]:�\u001fKFӭ���>ӏ��,, ���\u0018Ȩ�\u001d�*\u0007�\u001e��\u000e�G�U��\u0003!�k��v\u001f�r�ˆ[�G�(��-��cKy�q$u��p�C ;zo\u0014�������y;8��s\u0006�\u0011�|����HTN�Oǽ��h�����ɖ]g���F�毬y^Oз���[\u000f�N+�\r\u0019�ju����\u001e9B&g�T��F�����j�O#\u0013�\u0013��n>\u001b>p�O��Ƣ������5��gM\u001f��4�@�\"(�+`�r\u0013Z\u0006t]���-�\u001d�O\"\u0007t������\u001f���Y\u0019wH�\u0000�?n�h|�����<�\u000eV��\u001eU��E�T��ݧ��#nP�v���!\u001d\te�g;�A��\u001bό�`�\u0010�G�0��\"91��Ի���|�\u0013C�\u0002�\b\u001b�Uj��\u001e�m�(\u0007��Ҋ�5\u001fGz��=𣑵@��G^��\u001e{\u0016\u0003���\u0003t��O��\u001b�I��t;W�n�����%D�(h��ù���`N�I�\u0003��Z�ڠ\u001cn�F�F^��:�\u001a��\u0000\\�]��W��ھ>�v��UޯZu��<;\f;\u0011��S�x�m�n�\u0000�\u0005����9*\u001bqZ�\u001b�h.V\u00009�b\t/�\u001b��\u0011�v�[g5!y\u000b���o�+�]�����m��ͷe\u000f�]��?Q�F?��\u0000��׷���\t�g��)��\u0000���\u0000C��qM�r\u001b�W*��W\u000fP6��Gf\u0000v�}��զ`�N7�\u00033�P��������\u0010���J�^5�74���m���y��\u001dÛ~�|*\u0000�҃��-��\u0017����A\\�E�\u000f��B췋�6i1���S7���ޮ��ѓ\u001f0!�*)]��C��g�g6S��!���o ��\u001eo�/#�Q��0�\u0001x��Gzv�Bs��\n\u001cI�\u0000WR�,����V�o_��~�|���u\"��\u001f\u001f~��8zYcm�7���\u0000���+�����\u0000�\\'d\u001e� j��\u0000?s�`\u0007z^j��\u0005�E\u001c���d~�C~���?�\u000f2%���\u0019\u0000�\u001b�^�}\u0019\\�[�$�#�G���\u00009��i<Ⱥ��-oj.\u00117���[�+�\r)L��)�v�h�bE<�lQ�..�;K�\u0003�K�B�]VM���}@i��g��̞\u001d\u0016 z\u0000�G�2�2��_��\u0000�Q��t������[u�?vv�����~{�8��z\u0018��o��\u0015@X�b\u0017m��\u0000�9\rI�C-,E�^��S��\u0001��ҹ��7/O�<���X���i�}�3L��;��7B\u00155�=\u000b/�δ��\u0000^c���R�\u001f�b��\u001f{�?�s[+_�忏��>T���47�s���=Ϩ{\u000f�q�V�UN_���A;\u0016\u0017�\u0011�{�{W�Ȏt98\u0019��N�����G/6��V�~�\u0000���\u0005P�\u0007_n����\u0006J5~j��\u0003�%��\f�ղ9�F��.�\u001f�\\?öʶU\u0000Tw�\u0000:�\u0018�wީd�\u0014����n�\u0005�荂\u001d��$��\u0000�sڔ\u0018��R[�_���\u001dN\u0000\u0005ړ��/a���\u0000�\"9��Y�5\u001a\n��}�\n��\u001cOR�\u0000�G\u001d\u0014�N�\u001d�_��͐\u0015����m�_���߅)����_�\\\u0005���h�\u0002+���\u0000^\u0005\u001d釮\u0002�o���k퇣;\u0007���\u0006\u001f������ly%�D\u001cԎ�|Ƿ߁�\u0006Kz��\u001d<;��� bwZ���\u0002\t;\u0003���ȧ�F�����݀���[6w1���bF����Lk�Y\u0015˚A,n+��o��Ș��r�\u0014*�[���S�S-�bkޜ��c��_\u0010s\u001c�\"\u0002������Н���}����7{5{�у�~���o\n��ޡ\\\n�������prOM��\u0014\n(*@\u001e?Ҙw���\u0003q]��+^���aV���{v�V�\u001b~�M6\u0007n�\u0000v4��ڻ\u001d��{\u0000=�q�מ�\rS���kN��T;R�:�\u0003_c�22\u0004��B\u001d�4��H����+B\nQJ�\r����{\u0011�+It�\u0016�b6��ߵ(1T�^�>T�}��>\u0007\u0001\u001f%Ke�'��`}���\\�B]&�MO\u001d�\u0000U\u000fA�d%\u0011T\u0019\to^iL�)�}�§zSn�Q\n�JiʤPu*;���\"�R[1\"����;�\u001di�wĥ+�һҽ���\u001a�\\�Z�J��^ǯz�\f�s�)t����v߽\b��;�U\u0003%w;lI��{x��*�zV��\u001e\u001d�W y�\f}�*~�����*��NE\u0000b\u0000\fw'���Y���\u0001 +ۿ/!|��ԋP�c򏖝���\f��v�\u0006�F�8�_�\u0007f!#>9���\u0000e�O���G����\u0011�#�M\u0007\u0003S�:M6���\u0017�'���\u001d��e��>��G��\u0007��睿1\\\u001b�DZڴm\u001e��@\u0005��amB`�O��qD�DEY��=_C��M\u0004xq\u0000g�y��\u0000C�j59�R��#-��yDr\u0001�ߗ|��o�\rb�E�n��[�V{���4�9\u000e�\u0007��FO�3q\b\u0003�r\u001f���|;\u0013g���~��Dy_M�\u0000�~����v�+O��Z��-�\u0004��*�8o�+pz(\u0004��]��#\u0014>$7\u000e{s�?\u0018�'2�\u000f͏�mGV�/no\"����O�@�\u001c�\u0011�8\n�\u0000\n)E͟d@b�\"� �by�����_�~z�\u000e���?(�ZWռ��=GO�4P\u000f)��nu��fJ�m��4�\u0011��6�:=v�X4C��~w)���c��\b���\f4�\u0012�e��(�������\f��\u0000�Z��M�\u0000�\u000f����N��j>i�����\u0000�4\u0018VWռ�\u0000��BE��ߟ��2�\u0017^W�n\u001e��*��i��(�_:�g�}\u001e���n��e�X0�r7����\u0000y!�Ď�W<{\u001d��M�\u0003ډiu\u0013�\\����������!�\u0019���o���I�'Д�j-,V�1���[x��\r�ziw\u000423M4PD\u0014p%A$�#`~rϧ��b���\u0007I����M\u0011�\u0013�.��֍\u001dլ�-��O��\u001aMJ�\td��\u0000�Z\\���\u000bV&��q�\u00101Y�]\u0016�_#��92���1[ū[��V���؂[;���jӽ���#�Q��\u001e�!@���=X�괒�`zw�\u001d���1ˆ\u0013�ﻫ��#���}����\u001d\u0016]3Q�y\u0004&\u0014��?W��[���V�� ��\u0004��S�\u001c�H�\u0013鮏W�tD������?X\u0017\u0016z�i}h��R��k\u0000�J�q����1����\r�@:p��q����\u001f�?'i�C&\"2�Hy�^c�#�>\u0016� �%��ڴ�,ҕ�=U*ј�rx��ļXВ\u0005\u0003lM7\u0019��0\u0007\u0010\u0004�~�������{��X�[!�5-V�K\u001a붒*\u0006�!�ci�B�zܸªV�c��5�1�M�\u001a�rs#��\u001d�_��ǻ���\u0000�����K�>M>��jsM[I-��Gw;�RI\u0004�n\u0005���\u0018+q��ըj%�)�cu��\t��b��e ˠ?��'�\u001f�����ޭ-�!%v>����2H�YI\u0017\u000f^�Z\u0010`�3�\u0018�FEs�r\u0000-r�v��Q�D�\u0018�\u0003���A���?fb�rc��J��Y�����Ϳ�C�]!��i��A=��\u001fF�\u001f�zw�\u0013\u0011s$kf)+Ƞ:��9 $GW���HJD��\u001fww����C\u001c��\u0011���\u0012:\u000f.��9��\u0000�EΧ�-�6)�g�!2���-'-4�q�\u0019�i�$\u0002���FGIJ\u0003\u001c��R\u0002\u0001�:_\u001f7\u001f\t��=I�>\r^�v�,8|\u0012EJ���w�����7cqyJ�M{moO�f:I��MN��F�涆\u000b&[�lfR��\n�ď���z���_��\bj8��P�����bh5Y2軧+ހ���ÿ0u\u000b�f�m�I/,��+k$�Q侽���o�c�U���W2J\u0007\u0012�S�Tf\u0011\u001cr��@F\u0011\u00124d7�[1?%A:+������H�1�\u00143��v�34|���\b>�d���'�;�\u0006�Yeg����/h���c r�y�y\u0001ԞB�� ���\u0000��\u001f��~T�a������\u001f:i��V��\"���\u00100�11p��~a��\u0000H��W�\u0016%m�\u0007�\u001d�줻\u0013����LJ_�\u0011��\u0010c�\u000b�\u0019y��\b<�\u001dC���~�Ƿ;l�ҐtzYJ6\r���tGH�;y�`�Š�����f�N,\u0015���=T�E{�-T���,~9:\u001c��p8\r\u0017�w�y����\u0010]�\u001b�8�,&��9�7�8��\\\u0011ZЌ��.�\u0018�9p�#���He�\"$.=�h~s�QFx�]\u000bґ�#����\u0006�ǎa�ќf�\u0007�6��X������ԯ\u0015�\u0001��z����p[�\u0006�T\u0011��8�\u0003���7q�]\r��{����[Q����e��`��UҵH�����!�2C:�rB�iJW|�\u0007b�u��\t@\u0018�bFƚ��ς\u0004�Ty��_���#y\u000b��\u0000�r��\u0012y��\u0011Y�Y�c�\u0019SZ� \u000f7�5��M'�Ҿ���\u0007��S�F���c�>>�ՙ��8'��\u001b\u0003�8��1�\\�<������87Ꭶ<�~�yĝ�}�ǹ��|��\u000f˝S�?�4;�\u001a噖�偟J�Pt�M�\"\u0006��H�����s�u\u001aL�O��<�7���>F���c�J\\\u0006�J�O?�<ņ\"\t��x޻���c�\"\u0017z�����\u001a���X\u001c��wuX_އ�]��\\w<�v�ܤ�{�n\u0001͉C�����|���U\u000356�e\u0019\u0018�\u001e5�9-���@I5��{{��!V�\u0002|?_�Y=Єv���\u0000�5�\u0014��@����\u001f�_}�'Ƞu�մ�s_��={\u0001�‡\u0001>���\r���\u001f�^x{{k�h$�����.�PI\u001b��4���\u001a|~��%�����/\u0016~\u001f�����t�M*�2X���X�cZ�^���ظޫ\u001c�{�v쀄��\u000b�?\u0018��k�Yd\"��\u0006=�OP��SL�K����\u0018��|\u0007�\"?1����?f�\u0000�\u0017c�e`\u0006߻�\u0013�P\u0005�:R�;-T�s�|\u001f�#Z����馍^1���׷�}���<������0Ӆ+N�EF�\u0000F��73��ZYUW&u����›u\u0015\u001dM3Q���ӝ���xV\u000b-�>�\u0019\u0003a]�|�c�œ���`�\u0000\u0018�:q���\u000f乥����\u001fp�s�_n��C�^�#�\u0000\u0019������3�z���\u0000ݜ��l\u0018F���\u0002��m��l�ym���f��\u001a\u0010\u000f]�O�<2���(t���\u0000��H*�����\u0000QO��ǥ�ѕ#je��ͱ\u0002��O�\u001d��u\u0016�5�S��T��Y\u001b�&�\u0007z\u001e���|��h;��R>\u001eǸ��t�Q4<�\u0017bw�:�jก�O�\t������7Y[Q�SR>{�\u0007f�_�\n�l@��)�|N��\u0006d�$�YN�Њ������\u0014�F��;~�\u001cء�k���:`<�o6\u001e'��ڟ�;�V�s��xo�}N+�\"\u0011��v\u0004{m�_�;R|��^D�k��`\n�*(�T����\n�~�U\u0012>\b}�+R=����;�[rK�!\rS�nی\u001e�\u0011ʺ�W6�S�j�?�D�Z��ƤJ9\u001f?����v)��\u0015#�O��\u0000k)�\u0005Ʉ�ߩ����\u001aP/jt\u0007���j��f�H\u0014#�E\u0018�Ǧ*�C�Q�O�=T���6\u001d��S�\\*�\u0006��Q�����Vq�ڿ�޻biV\u0011��j���”Ȫ��\n\u0011�t�M{\n��4���_��\u0000\u001c(C�5�55=:t�w�D�#�\u000f!\u0000P\u001e�����'�\"\u0006�BK�zP��؎���F���K�\u001d)���}q=ʖK�}�����%R�?hu���#�\u001dҖ���Z\u001e�?��ȑ�z%����Z��b{u9Q��ζK$\u0015���\u0004�x��p\u0011��\u0016�Jk�WaӯM��r\f����{u����2��w�!+���oz\nץFC�%Kd;��;\u0003��`?�*�s��x{xu5�|\u0007�J\u0013wx�E/,��(�Vyef�\u0016(�3�S�\u0007\u0007\t$D\u0002fy\u0001�>�\u0010M\u000b;\u0007�y\u001b�/̾m���//�b�R$d����$�\u001b��dH[d�k�R:��Ӳ}��-v?�k��U�|��\u0011�\u001f����{G���������y�ך\u000f�����\u0010\\�>Z��5�eX5-o���]\\oIa�`mm\u0011�Ux�\n����g{3ٚ\u0012?/�\u001c�}r�K�g��\u0000����;ʁ5�?\u0014�\u0007�r��~\u0019�~W\\�K�F�\u000f�2V)`�ukR%���Xp:v� ��֡\u00004�A�l�3��v?�\u0006\\��K��^~��G�W1q�x��'�|��y�?���̿9�a�:滩M=���Kwq;H�ұg�F��v\u001b��1�\u0018�1�p�\u000eN\f!\r�F��R�/yj����+qvf$�\b���^*��U\u0010���f1)\u001f/�Ɍ���b��\u000b�q�cF�\u0017�5K\b��\b�d��+�\\ʠ2�&�+\u001d�:\fs�\u0010�\f.�O>��\n?���\u00009E��d�&�,�\u0004\u0011�c�\u0005!��\bܞJ\u0010���e-�\f��jϹ��A6����M\u001d�zeŴ��R��\u000b{\b�\u001coou\u0019ȵ���\u0000�\u0000�\"r=@l�����M2��\u001d\u001f�#��d\u001eb�It�\u0015�ܚu����g\u0006���ח3�\\]�G��b\u0018%�����\u0003 C���Ƀmlq�C�W�����|_�G?�'�yB�\\���L����餾�#Ѯ������HҮ%��Z_�\u001by�4�=6f���c�́$׈.\\1�\t�UtO��f\f�0�!:ߏ�o�>��\u0006�\u001d���繲��N��R����&�I��\u0017�[�mJC��+\b�S�p$(U�<�L2�yzA��V�7�\u001b�-�|W�����y\u0004�#\u001e�\u0012C��a\u0015�\u0011Fy��MY�d�B�C\u0018,\\ՙ�r�@���\tfᇛ�{�I\u001c@�O?�\u0018��,hg�\u0001�\u001cV�$�ʮ~\u0012jA��F\u001f7Y�0�ϒ�>\u001b]Jv�\u0017q%�P�Hx�ukhx\"CN�,�\n\u0000�\u0011Jr\u00072\fx\u0005����_��}\u001d�_�O���b�Uմ�-��6�IbM5�$�I\u0001��y#H�\u0000�l�B��3\u0007?�WC��]��\u0011��\u001a� |?c�#�qp��\u001a.���pE�.���_[��r4�˸Ⳟ�\u001b���\u0010C\u0016�;�\u00124�Sī\u0003L�O�r��1|7��w\u0007�w�����\ff\u0019e!)p�\"G>�\u0000�$o]�<�ji�˩�b��P��u�q雤E���>SC\u0019��M��hy\u0003$F�����\u0019��A���}����N,�\u00119.0�\u0007��5@��\u0007�=����T�����ׯ��a���kͷ�\u001e\\���\u0012�\u0017�?�l�\u001bO*y��>�\u0014�A��I�{�Am\u0003\b�b��0�;3\u0001�/\u0006B1��}\u000f�cO���s�Y�\u0013�d\u0010\u0007\u000e�\u0001��y\u001e�6���W�>X��򥕌Z���-�^�js٥�W��c�\"�[X\u0015%�Xf��8\nb�F\n�HB�v�rd��\r� m��æ��vD�c��Yp�@\u001d��\u0003��}�s�JUգ���l��F�-D���.�U��\fZ4\u0017�\u0015�)x�h�uBj\u0004��#�켹3�r���{��ܝOk@`94�\u0018\r��l+�}�g��\u0010�,�%��������ީ�yk�gI���\u0017�\u001d��y\u0006����~^�X�y�˶\u001a�Ă�R��/�3�+#�f8٨�>��\u0000���\t���?���\f���c\u001c�\u000f\t�Lӗ�J\u0000�x0\u00113�\n� \u0007�\b?0���\t��\r<;\u001fG(���^g\u0000E��\u0010\u0007�`�\u0019g�G{��WO���q��\u0000��\n����Vi�e\n��]\u00125����n#�\u001bg��{�~9�ʼnu�|{����1��������v�\u0017��-�W11\u000e�\u0001\u001f\u000b�S��'<_1�fq����|vc�>����ϖ�[gJ�\u0011�\u000f\u0011P�(*H5\u0015ͧgKz��>�X$�WK-\u000b2\u001a��m %�\u0013V�\u001f\u0010]I5ڻ\u001c�e\u0002@\u0013�\u0010�:�`�S9��\u0002\u000b;��\u0002ф�`%�&����(�ҙ�\u0018��y�ۤv���g�'��w�N���2(�\f\u0012�SDŽ�\n�\u0019���\u0007(�\u0005j\u000f�w>�ha�vl{�|^���\u0010�Q s��c?�?�v���m6H�K{��f�f�v,\n��-\u0003���:e��vAˣ��=܃_���\u001c�@��(�/�MOLм�ɥy�I��t{؀��Q�.#��i\u0013�Z\t�\u001f�Ы)�\u0011�?g�\bNX�\u0015Ȃ\u0001\u0007�\u000e����\u0019q�1�\u001f�y�7\u0005��������X���M�c����n�\t�~�M\u001bZ���\u0015��>s��Ł��=\u0013�i>��&�~6<�`��׊\u001f���%�\u001f{�SO��MF�Gִ��#V���֛�[�my\u0003)�Z)\u0000�\u0019#�u,�؜�dœ\u0016N\f�1��y���E��\u0019�c�A\u001fw��V�\u0011߯��9]\u0003`�d�i��\u001e��|p{��\r��~u�I\u001b��\u000e�\u0015\n� w\u001fG}�\u001e��\u0001?$���o��E~^4�;ҝ��h1��m۾7�G�P]�G v���'�Q�X��r7\u0015��\u001d��}9���rp٢�\u0012����\u001f\u0010\u001dw���s\u0012�������S�\nz���\u001f+�L�v_��\u0007�<�~�h\u000f�᩶�(�;�k�le����\u0000����s_�^����5]��Q�a�˰|{$�u\u0003j~?p#5�r\r2\u0004��ۋ�}����|�͛k�\u0013��%\u001c�ҧ����ÿ�\u0000�`T��hh({���eD�\u000bA�BI�\u001d�f�t�\u0000k/��n96|�Ʊr�\u001boJT���L���q�o@���t������\\���\\�x�v=6��׳�\u000e9�VA�!�ܺ�N�_��k��\u0016=6�/�� \u001d)�\u001d�3��\n\u0016�H\u0000G�y3S�~��2~m\\�\u0015h��~�(�ꃶ��w?����ꏹY\u0005\u0007������\n��T�zl?������^~j\u000b��t߿�\r�.j�\u0004\"�'슟����Bk���\u000f�\u000f0����H\u0001\n�op2���myd#\u000b�O�?<�\u0012뺝��b���8��N��|Ȧq]���uw\u0003�����lB�r\u001e��\u0007��tu������T\u001an6bzuޙ�>���+\u0019��\"l�n����뫆*(n�\u001d�he;\u0002;��}��$�K\u0003փཻ\u0001<�\u0007}����<\\,�i@8�Ƿ�\r\u0006�\u0006vYM��>!�1�e��ItqE��\"�\u000f\u001c�s�v��i���m8��\u000f���q�L�ͽ\u0016�[\u0002����\u0011��w�횜��\u0000M�n�N�G���\"�t�{���1G�y+���w\u0018k��z\t\u000f���乭�����>ǿM��oo\u0007�w���~ȟ�\u0000<�R\r���3�\u0015[rzﹿ�\u001f�\u0000�P����%��eʘ\u000e�x?��9I=ܜ\f��Ւ��oҀ�\u001f�������5�W��\u0000:�Ɋ�\n��\u001cA�\u0000?��\u000eh(\u0004�+U�c����h �\u001e�m_�\u0004T�=�}�\u000f&[�\t=�O����\b@\\�zw�M��1�j�zl[��~^�\u0000<�\u001a�J;�Zދ��:v�����%�ǾƟ�\u001e�~D���(\u0018��\t�ڿ��\u0012�*\u00121\u001d���7?,\u0014���\t�5��}��ߦ$|��E������\"�'��_v*������ b�-�\rz{x��b��n?��c\u0014������a4�~�\u0005\u0010��/}��\u001fצE�Q�h+��\u000f�4�*�\u0011�OrkS�Sޞ\u0019\u001f���rBΤ�\u0004�u��\u001fNW+�\u0015�O\u0005\t`\u0007��\u0019\u0002\u0018ѵ��U����xe9;�\u0007����\u0018����zf�yrj�tۯ���\u001f�$\u000fxU^;t�q�Q�\u0013Ө>'�\u0011�T\u001cUO�GJ�OՂ�\t ��\u001b�]�쑥C0�\u0007��=�\u0000�dJ�C=)M�J�r:��{�\f}�IO��Z���\u0007\u0013�*]!�F�\u0011һ׿bi�\u00075Kf�����ø鿎BR��-��${�\b�@�@��J^�b\u0007�ξ?-�>E1\u0004�rliA��^��q�es���*��c�}�\u0000Uz\u001a�\u0006��\tT��O���dvA��Pw�Ӷ�{\u0003��h�@\tT��\u0001�ڛv��4镓�,��6-�\u0006���\u0014�+7�\u001f��?0$����Ѽ�g'\rK�\u001a�������\r\u001bR�*>�\u001e\n~���c�\u000e���ŏѤ��z�@\u0011�\u0007R�k5�tB�F}�t���ˎ\u0016^J�Mk_.b��Z��s�����q86�}�/���*w�]�/e�=�.\u0010'5o9o#��\u001fti��K�sjv��t\u001c���{\u001f��X,n5\u001dJboo�3�7�I6�+C��!�r\u0007_՝>P8F8�#����ɳ�y���~|�\u0000�g�\u0000�T������Z�X|ˬ�6�l��Y�t��)�Ӊ2\u000b���R(\u0014\u001c���D�#.[�\u001e�ɫ&Bv\u0015\u001d����/�'�Z�ޫ�O=���y��-\u0018i�i\u0018���G'~D�k�\u0006C\u001d�G�\u0006�b��ՊY[��}\u001cK\r��\u0002E\u0010D�E���K�H�w$�E]ueu���$�\u0000�t����k\u000b��h�Ӡ)q$P�\u0004vJ5\b��;��\\=0�@�j&V(ٻ\u001e��'��~�Z>�\u0016��#)�V��\u0015Q��I\\�U\u0000.��3\u0006Q���{un\u001c X���������^k\u000fX\\��o��\u0005�\u0011<[Eo�m����}�0�\u0017��\u001b\u001f�_��;F�7���Z�\u0001b�e\b\b�6�$�\u0005$~�|4B��è͞�|Ѯ����{�y�\u0000Ϡ|��L�3���\f�o���g�.�\u0006{�=%,�\u001ba&�ҵ�6��'�/�i�E8�L�l��t>@S�����,�\fg�!�-�ߟ�%�慕�j���M\u0012�m\u001c�R��sz�^��\u0016��ne�@䈭\u001cAQ@��N\u0000\t\u0003��\f�p\u001b�O�.�m6���PB�D����:D�\u0001\u0010 �[SNmR�F\u0003�\b�u�!�\u001c;������>�%���\u0015��ެ�\ty�ŤZz[=�Y\\$\u0012�%�ѽ%�H�9���Y�J�\u000eY���^�c�E��DA�>�w韑�\u0000*�\u0000+5=T�\u001a0�u�O̬�4\u0017��F{��,��t��u��}3U�\u001a D�$�W�\u0001�g�8�GpI�\t\u001d7��\u0011�����.�xЁ��_:;�\u000e�n^o������\u0000&�z��^��\u000b[Kx\"�����y�g��ͯ\bb���};�J����gXݢ��C\u0016�s3\u000e�\"G\u0012\u001d7�F���\u0010>�u���0��泒C�4,����rE�V\u000e��O�-CE�/��\t�е�K\u0019���N��\u001a���\f�(���Լ�����&���{�1C�ۂj^a�t��\u0016�Q��M~�X��\u0010k�ZZ��?��2Z\u000b{\rF(��\u000b�\u001bSPgB��Yc�´��\f3Հ1FQ#qߵ|�6��ã��\u0007(���zO\u0014M{�:�x\u001f��g����'�\u000e�\u0000��n����\u00001���U�U�0��m�6�=̞`�^��Zܤ�\u001e��h\u0016��\u000bJU&��E\u0018�\u0006m�d\u000e��v����Fl�����Ѐ��k��P;^���˴����K�ә�\u0018�\u0015)�O�#�\u0000\u0019Y�B�?�?��{='�r\u001b�}\u001b�\u00008��\u00009I�\u0001���T���~��o9hzN�\n\u000bM#L����gH�}�MUg���,I~.�r5l��\u0001��/���U���z�A��\u0004��7��G\u001e(���\u0019�=h����\fݝ��\u000fdGi\u0003/�^���d�\u0016L2H����0�ϡ}a�\u00008c����d�$��IW���ߖ4�1\u001b\u0016ux��.-Pk\u001at�kYl����\u00009��\u0000��bf���M?W���\u001e�w\u0013~a��\u0000�mژ�s���L\\F=ƽC�v\u001eD?`�8C\u001cQ���\u0011���|\u0007~\"��>�\"S2�1����\u0011\u001c��;X�[�IO\u0002�U�\u0003Bv\u0014j��\u0011�:Y�s\u0000�k�\u0019��ຝ��R`��,X\u0012x��\u0011�fQ۶t��X��K��h�w\b+��\r)�\u0015x牽9\u0005?sQ^,�����\u0011\u0013ͷC�Rxc�\u001by?\u001d?�45Y$��d��������bT%�\u0011����=3ٸT�O�^O��|\"G*���|\u001b�\u0005��y���_/jk<�h5�A3FX\"JgP�\u0007�lzV�\u001f,�S���삽\\?e:\u001d6|�s�Q\"�������[�qy���&�\f�:^���zџ�̈\u0018���\u0003��>M�\u0007O��9\n �}�C����c�32�\u00180\u0015SB:\u0006\u001e5�w�o\u0001$\u0011ȹ$���?3���o�\u0018�Þo�\u0016׊��'��\u00168��\u0016��w\u0004�Z\u0016?\u0014\u0012\u0016�׵w\u0017�\u0016\u001a�\u0011���,w�8����=Aڪ��0��>]�}Ǽ?,?4�\u0000.<��I�|��e�_Y\r·�[�&��\u001d7�\u0012�ɛ�O\u0016�x*^'�R\t�V�z<�\u00197��O+�`��\u001dc�b�\u0004섉<;q\u0001ӑ�\u001e_wW�K?]��k���s\u0010�\u0004ud�KuJ��\nt�޸�ZK%����\u0000�\u000fl�*\t��N��O�`|+�ES7�OM��=�}�o���j\u0001�RMF���z��i�㚍q\u0015�r�\n\u001c��W��5n��4����3#S.`�}=�\u00008�u_12��\"|~,�vQ�H��o�~�yvJ�4��W�n����\u000f�E���\u0003�r\u000eJi��)�m�q���Oh���h�����Y��\r=�}��ԙW��\r�@�3\u0012+֝G��r\u001cD�3\u0014\u0010\u00138��\r��^�|#r�㞕�\u0002�P\u001e���=�s+o�P�OE&�\u0005��������\r3\u001b�\u001f��moT���3z���\u0017�+�ʧ\u000e\u0018\u001dNx��/�Ȁ�\u0002O���\u000f&�����⫿\u001aT�)�s�����\u000e(� ?��#��+%� ���U�����F7�:3S�\u0002���=PË�?\\�\u001f�s�9x�8F�n���\t���\u0003�\u001e�W����,�\u0003)\u001e\u0018��?<�\u0000�$\u0015��x)C�UaZ|��E��>�\u0019��P¿�_�/\n\f�ó�c�#��\u0012�X�d�����?��\\m�軕J��QJ�vS�s��=�\u0007�;v\u0015�\u0004u\u001f��-��$}�\u0015�]��49��Y�z�=\u000fM4\u000b�A����&~oG�'�_6s��@{�i�\u001f����}9=\u000e���5Mt�\u0000��\u0001_��:�O��f8\u0017�!��v����?�\u001f_�K\u001a��x~���g����\u0000���?_�\u001eo���\u001fs�q�\u000fa�Nq;�޿�wom���M�P����÷q��S���U�(��o�VU�\u0017\u0003?4]�\u0005G�:�����>�iF�\u0014�߿��˂�7�(v��\u0000=���\u0014\u001d������{��A�-�#�tlK\u0001�u\"�\r�Pz&q�@\u0001�����ᾝS���S��\u0000}�\u0013\\ѵ츺\u0005#�c_\u000f\u001fll\u0004�΁�j\n\u001e�����]�\u001d\u001ca؃Ԏ�u���\u0018~�|�\te�\u0014'o��\u001f��\u001dz%N�[���\u0000Q��\b݊�\r��{�0*����\u00003��\"�����U���ݎ�ۊ��nT\u001a�+�n�v��eK��p+���,\u0004|�lS\b�\b:�J\u001a����\u00074��2�C��6�w�dO��D/�*\t#���ǣ!/�א\u001a�Q���v�ɰ\b����&\u0015S@� �?\u001c��G��\u000e%<�G���\u001c�gj)\u001d�����\u001dF�5�4\u001f���T��\"��\u0015�J\u001a\u0011��?���Q��}�|v�^�c�[*\u000fo�S�\u001d�c�WPѷ޴\u001d>b�zc��h�\t�J\u001aӯ��P�[��U�������\u0005W5$��%hH#��������\r�s���m����\u000eI\u001d��>�Ҵ�F�D\"��|G����\\�\u000b]Pr�|zP}�G�2?r6�I׮������*_(�M����u7��*�I]�@\u001dOѶ�)�*�zR�j\u000bW}�)�ڙUs�F��Zӯ�N���9\\��g�IQ˧�>$�#�\u000b\u0017�$��}��;�ni�\n\n�8*��ܔ�\u001b��z���:�� A�۹)4�\u00103�\u0004QZ�!iM�=�9\u0002\u0000\u0016z+ּ��Z���y��f}#�+Yl4׭���O��+��G$|S\u0010\f�d�����erv�\u001a��\u0012���9K'��a���:^��xi\u0001Â���\bo�o�~\u0016+��W�F��T�i�n�\u0015�zu�*\b�\f2)\u000eM>&�&j�=�A�X��1��!\u0011@r\u0011\u0003�\u0014�:�^|�#3}��ſ(���MM��J�\b\\����3�řE\u000b1;S|�d�1�\b\u000b. �\u0003��Ǹ~x�eZ~]y\"e�u�V����5$f\u0011�\u0000��\u0003��\u0000j�ܳ\u001f\f�ŌO7\u001f�\r��?����j?�v}�>\u000f�O���/T󗙵=R���\\�)�2k���x��N\bZlNt�`0����8��o��'�\n$Ԧ0\t\u001d��Eۓ��2z�jW�Q=�NU�8�>����|'�.�\u0012Hʲ�\u00162��7�\u0000OU\u001drq�+���\f����_�um\u0006���E\u0006�\n��\u0000���Z�\u0004��w>5\u0019d�NǐXP��yo�_�f�ӯza2HM�W��R\u0014�\u0002�\u0005\u0004\u0006�\u001bv�'T\":�A�H�z�=n�\u000fZ]B��Y���Xb~K�\u0013Ș�դ��j�*���$* 6݊�)��Y,��Fv��T�|0��ÜF@\u000bN˱$�r��d���\bu�\u0017Q\"#*�\u0002+�ps�\u0016o.�~c�9�6��\u0000��b-\u001a~�0��sQ�!���FlpB2�(����\u0000�8]�\u0019J<}F1c��\u000f���s�Z�\u001f�ڷ���Eϙ,aT�E\u001c��Ѿ�PZ��n@��\u0019���N�\u001e�B��2\u0011�ޝ�f��ͦ����_��6��\u001f�#�ߒ>J�-��fԼ�a\r� \b�\\�=].�J��\t~�d�V�\u001bzS>\u001e��q��|_�_�_������U��mLy\u001c\u0011\u001c���G��3}j�a\"0W�J��oކ\u0006�\u000b�)\u0017K\n\u0002+�/P\u000ek��0�vy0�\u001f���Ѣ[t\u0013-��'����o3#py\u001e)8q]bVd\u001bt\u0004���i��\u001e�}\u001c�����2\u001f\u0014\n���\\�\u001c��w�m�A��\u0000��\u0005�ȼ��[飺\u001a��(�u4��ƭ=��{\u0019�m�`�젎�\b�1�\u001d�`��w���62a��*�7���\tϙ<�\r���]GEmOH�X���Rҡ��.$��(l�g\u001c2_;�\u001a�Q��gD0;�\u0004\u0018d�\tq\u0011����NLjQ\u0004K��n�?7��]>�4�����O\u001c��\u0019�����)ZV�e�\u0015�[[ij��8RUxՁ��e�\u001b��}d�Dz�>O,>h�����4H�\u0000R'2D~ ���\u0004�D��Bv�׸\u0019��\u0007\u0016��kxE�ٿ,�1�W���BoDp���Gym�Cqn�\u0011��.���4��� �*�Q<\u0006\u001f�c��t��e}w�0C�7���r&\u0015�T�dӮM���ug:�\u0016�w\u0014w\"�}n����&�G�\u0019\u0018zAfF\n@\u000b%\f�BQ\u0017\u0010.���&��s�˫<��ӖW\u0011\u0002\u0005��u|��}��\u001fʯ��-J�/�fi\u000f���=WJ�D1M6�i\fK}y�^���\u0004r�,QMs,V�\f��L%2\t8���Q�\n�\u0005�w\u001c������{����IJ�C\u000eI@�\u0013Dr\u001b\t\r���nvAj\u001f��.����Y4�t�Ϙ�e�e��':>�5\r:K�'�����K{�Ӻ|\u0013�n�Nfy��Jfp�\fx8������t�%�_ٵ�O�Ŗ�a �2�\u0011�5\"\u0001$�\u001f�2\u0000P�`ԇW�^y�_&��ȵ] ���\t�\u001f0�YIq��u-��4���\u0001��=XN-f����\u000b~e٤W\u000b���L���L�4��|D�s�\u000f>`��U�\u0012��ibL�N\"Q\u0017�\u001b� o���}�@_�������\"������\u0011�o� �K�kw�Y-��\u001bk\t'k�Z�9���E���l\ro�\u0002r���G\u0006\u0002(�\"�!�\u000f�\u000e��������í�p'�n1��'�c��@9F������\u0000?���:��o��䅎����A�u�̭oJ�\u000e)��\u0017V�\u000f�&�e4kߨ�J�;���h7\u001e�����G�\u0018G\u0018���=�D��?�\u0000\u0004-G�tz0E�S�G�\u0011�-�O���|_�{O����?�����Mq�Q�_���\u0004V\u001a\\��!��tK�;�q��\u0017�\u001c˶̣>��ڳ��ؾ�`<:���a2=�≗��|K���\u000eПhvFPN\u001e��d\u0003��������\u0000��T�����\u0005��W�p�\u0017�[�\u0017��淒K˝3Q�H\u0018\u0006�).-\u000b�GM��׿�T�i�p����S��+��8�������,���è��\u0015\u0002o���������\u0017��Tմ�\u001b�J��🁃�Vd\u0004H�*\u0019hzvφ{K\u0001��X��~��=.X��\u0019������Q,����@��o�;Wm�[�\u0000�\u000e㛓��2��<\u001b�6��0��RU\u0019�X\u001a�1=�\u000f�4�ΛK!(�L�\u001c�fPA��y\u000f�<�\u000e�\u000b,�=\u001b�\u001aH�\u0002ֵ\u00040^���~�����7�C�{��?\b��\u0000��U�\u00009�,�4\u001b��IW���s\u001b�@��zGt�J�;���!�0����LBq2\u0006�~{|\u001f��Qye��h�\t\"��'-Ճ�V��h�۾z�(\t`��?��x�U����?��ל��O�?�\u001e�D7���ʊI�ЏMU�\u0012��Pw��>W��E�v�Y�\u0007����[�gPrv|#3믻����U�6�ط\u0010\u0001.I\u0000���\u0007�r�\\#%}��4�$�k���*\u000b�fFU�\t�\u000e�@ž·\u0016݇ʹ�h4�@�~\u001au\u001a����@�#H_(~lyb\u000f/����v�\f\fބ:�\u001e���p\t��[����G^�����c��*\u0011��\u0018�Xe�\u0010\b?\u0003��Q�.�E��h�y���N�>#{���?��\u001f(_z�>E�\u001e��\u001b�\u0005���9�Z\f�jQ=F+�YG��v��r�{\u000bI��鸱��\u001b��)6\u0007�_\u0007bNLg�\u001c?���!��\u0017������O�\u001cż�Ț4����ӥ1�<�s]��}\u001a��Gp\u0010����Z\"e�7�\u0014w\u001f\u0011�7� =��\u0019\u001e\u0013q��y\u001ft�������\u001d�-�_�=Mzv�ymK\u001e������2<�G)o�C��kA�}�����k����{�����\u001f�z�j\u0017�+POZӧ|���Gw+\r�)�C~}S�\u000f�M����s3�2<��7���7��!\u001c��U��\u0000k6}�*�Q�m��ߛ�\u0003�3r�7?�����v}̈́>@�\u0000����B�Wr��xxm��x\u001e\u001f���v���Y\u001a���~\u001d)��\u000b߫X��Z�w#���ƹ\u000eGv\u0019w���K5W��|E^�����\u0002U4�54\u0014\u0015�x�׽5�)��!6=�M�<)�F\u0013>\u0018n�\fC���h��H\u000e��&�\u0000�~������)׸��ga�`��\u0001��hq��\u001c�/�m3���\u0007�_�ᚬ�·\u0011�_s=ӆ��\u001f���7�]��l+�6�4�J\u0003Q�O�9��\u000e}��\u0000NU����kҿX���4o՘�����\u0005���.?��ߒ��\u001d��\u000f�9�Ƿ��8�\u0000Y��������A�@��\u001fO�q/`���{�\u0018�ʇ�����> �<�j�g��VQڍN���\"\u0005ݸ\u0019�ѶOTS�v�\u00001��$9��\t�\u001d<>^�\u00190��\rw\u0015T�;t;�\\��HbW(RB7\u001b�q���h\u001b0;\u001f5\u0015�\u0000ـ��Q\"�J���Pw��po\u000f\u000f�5ĭ�l\u0011�{����H\u001b�r����ۿݶ\u0014\u0013�ǥ4\u000f���\u0005 P��ih�\u000e������l\u0014\u0003�$���`��9y���R���\u0000o�EQH�PM}��;\u001d�2\u0016+fȍ�0�R;����\n;l˒��&�\u0003n�\u0000NS=Ž������:��G�;W��9w5\u0014b�}\u0003�Z\n�5���*\u0005<6�{�O����*@�����*�RI�s���w�\u0011���C�>�\u0014�w�*\u00166��&��\u000eJ����O\u0013�\u001e�\u0014�\u001c��@}�m��\\(C1�\"��ʾ>9\u001e|��D4�\u001d�M�{�\u0000\u0012r6F�h\t�������A�)\b\u0019>�nj\u001f�\u0018\u000e�;��z\u001a�\u001d�\u0000�\\�\u001e���v=v�o֣���Q�J_1�k����m�D�d({ҙI�Ԛ}'zu�H��6It�c^��#��r4R�\\:�%��q�aN��بg�V���g�#[�R\u001f-�\u0014��ֽH�x�\u0000��O\u0000]\\�\u001d�\n�7����i��d\u0011�����yG����u}����9\u0003>��\u001d/�_�>@xnM����qRH�\rz$}2�A�{=\u00123贈z4Ũw9�vG��\u001d4�\\��(�/�9\u000f��ƻ�\u001c�\u0007\u000e\u001fLO���_8�t~f�j��Z�|&�0�cVc�TG\u001ck\u0011H�KƅE\u0014v�;�&�\u0018Ȗ1P�~-�<�$��&�\u0013˭\\���5`����\u0015�a1��¯\to��=w�:\u0003\u0011�<#~��ǔ���o��\u0000%R�xl�R\u000e:f����h�r�\u0003s��\u000f ���<�P\u0007%���k{�x@�??��>�\u00006Zmv��6wO��\u001a�yn\t\fde!Y�\u001a�E5\u0000m��\u001f\u0011�,2\u0010!�<5����7⟘�%���+7�#�\u001a��\n*A.\u0007|�e�\b�c�_T��zj�#�h\\\n������\t�Q\u0011\"x�\t�هG��V�\u0014��N�����\u0000�0�\u0007\u0019x�/�\u0005}�s&\u0010�~e�\u0016\u000e�l5;\u001d\u0013I��5\t���m��WzI\u00040\u000fRIرU�U����\u0006\t�@\\�~6m\u0012�}�g��W�V����ƶ�g��˖s�mkd�_�B�T^\\\u0015 �4��f=϶\fP�\u001cr\u001e�~^A��LY�=\u0001�<��v���y�T�д�R$!\u0012��(mb!�&���\u0004P��L��c\u0013�c���W�\fr�kc#��b�[��\u0012\u0015��K0V{�ޔ�\u000fs_�o{\u001a�n=���\u0000\u0007\u001b1���g�?��g����\u001e�Y\u0012k�0y�PE\u0012\u0014\u000b\u001cڍ���4,Ο~K���⿈ȟ�D���3���Ÿ׿�ݔ~y�\u0000�\u0016�\u0012�U\u0010��\u0019�kR�|_\f��[\u0014\u0006NJ\"�v=kZg\u0011��G���y��G7��K\u001e=6Z�\u0003\n�\u0010\u001fƗ����!�����Ʃq$-�o:k�ց\u0012\u0000Mޅ�{�|� ���E3�z}��\u0014ω}��d��2��\u0004\u0013\u0019WB\r�����?e�\u0001�1ɠ�gLܡ38y�[�����ޱ/ @�֑c\u000f\u000f�Ȫ\"pX��5\u0001e \u0010\u00056�'9P^��!%�̨�_\"�&\u0006S),��U$��FI-۽\u0014�\n)C��a�XĶ<ڒ��ᣊ+�i\u0013���)\r͹�y�`����][ %\u001a�'f�Ng�;RZ[���\u0013��wGڝ�\u001eЮ\u0019�s\u001dj���\u0018���ՠ0�1�`���[;�#,ztֶ�\"��H�\u001e����\"��%j\u0002�AL������q����~����\u001b<\u000fhh�ݓ���ơw\u0019\r�!�z\u001f�7���r�^]Lʬ�m*G}l�\u001ea$�\nC\u000b�J&�F`�Ə�O.F�\u0005�&�c�ۢ�D}}�;Ԛy'e�yq#��Iͤp7��}>-\u0011��\u0014<��M�'1��Q<�v\u0012ԉ\u001fO$V��^Z<3Eu\u0015��#�\u001c\n\u001eDi\"v�,��\tJ[�9��k��Te\\\u0004�S�xj\u0004�s״O:I���'��赌�\\N��Fg�e�#��4�� <��P��\u000bT_�\t\u001b�\u0019k\u0007\u000f�����\u001f�����6\u001aN�-�ִ]KM��T{�ؼ���{}\u001fS�5ٞ�/u4��Mb.��?4��Cd�\u00192�\u001e��\u0000>[}ǿg\f걂\u0006�^��u'�\u001eO�d���<�O���$�:?�4w\u0017�hѥ��\f��I��he��o-~��C�\\z���J���\u0006PԻS>�����JB\u0010�\u0018�\u0000\u0014��\u00073��\u000ed�C��{[V4��\tNX��\u000f�\u0017�S����<�/U�?�����L���$�R���g��\u000b�J��Ҵ�ft\u001c�(f�઱�{S��\u000e���\u0015�����}\u0018��\\���\u001f�t\u001d_L�oe���\u000ek�^Ӟ��@�y�c�\u0007��z������\u001b\u000f/i\u0012\\�^��CjXG\u00043A\fe\u000b9���%�d\u0003�)�2=MB���\u0019��\u001cr�\u0007��]����\u0010����\u0000k�\u0018�\u0000����oϯ��?̿0\u001b����mwL�8��M'ˈ�Y#�t��E��\u0017=w�\u001d1����\u0005e�9d=�u\u001b�\u00004\u0007�=���Y�FC���8�(�z9�uȗ���\u0000@�~w\u001f!�k�/�Vګ\r#�/F�<�{i2�Dױ��[�d�\u000f0�\u0010��\u0000�O���c\u001do�}�����\u0007�\u001f�c\"[|>��}�>\u0016]\u0016�\u0012\f5\u00022���#������W�m?/�5�\u0000;��\u000b�m/C���\u001c�X�a�5\u001bѬ���'�\u0016�\u0015d*gֽ���{o����Iz�\u0019{3\u0018���\u001e\t�߮�ŝ�ّ�j�C�A�\u0018��\u0004|�de\u0013�\u001dŸ���\u001eg��w��Ԗm3F��t���j.��I\"\t�-\u001f��õ\b߮|��N�B>&hVL���\fG�7�_g��./\u000f\u0011�b�cg�������W�1M,ֲ�B�R7\r@=IA\nU�B\u0018����<ÊP�rD�\r��=t�\t\u0013\t\n�~����\\�߽��{k�gx�n��5} k��:6tzS\f��H�@�u�D�˄�\b|���\u0005��2���m}$�Q\u001b�N]�J\u000e4,G��:��2�\u0004\u000b�\u000e�T#(�#R'��\u001f���?���:[\u000b�7\u0011�n\u001e�ܒ��r^q��\n�I�㲥�)㇦_e\u000f��:�e�\u00069�(w�\u0004��_s����\u0010��*T\n�;\u000eJY�J�\u000faជ�2��{#��:\u0019��l���\u0000��>r��?.�\u0000C\t}K�\u0019%\u0012rp��\u0000z�#d�V2\b5�ϟ�\u0000��0�� �\u0007���g\u0007\u0000�����L��*-���_���J���#��g�v\\O\u0015G�������|�\u0007���R���6�8�neQ�+\u0018jz�\u0000$Y\"q�z�l�t8��\u001cQ$X�\u0007��)�p�6�|ީ�_�\t���\u000f'\u0007@���s.´�\u0004o^��gii��k��\u000ef�)\u0003~]��}7�y�;��\u000b�RU�\u00028 \u0011�MC\u001f|�h8e�b\u0014]�-_�C&㧗�M�\r+T���/�,�=\"�&����\u000bx�l���Q��`�:0>\u001f,�͆R>�����=�`���G,%\u0013�\u0007����\u0007�o����}�s�y��%㹴�Muw�s�]zS۽L�<��Lx<'�-';\u001d����݃\u0019\u0003�DDg�\u0007h����O�e�\u001f�\u001c�DsJ\u001b\u001b�?�C�(}���榷�M�Y��z��u%���j0=����$���v�)\u0010�\u0004n\t\u0007~3.�\u0016�,�g&\u0019�jQ��D�\u0011�����G\u000eINJ\"�y\u001e�Cjp�����O���G�k���F�=�\ttz�\r��S�w�v��U�f� �X�\u0007\u0014�WT�P��4j�4��7\u0015ڙ��}\u001bSv\u001a�pc�^�jV��N�;S�s\u0012��.x����q���f��0��O~�Nl�._�\u0017�������>���������\u0007�C3�|��\u00009\r5,.\u000fB\b4�7��\u001dX\u0007\u0019���&rj��\u0016�5S��Wo~��?�k�\u0000\u0005�\u001b��\u0012���q���\u000e��\u001a}Úݍ���=V�'����\fm*��Ƿm�����v\u0000<����hzl��mc\u0018,�դ�\u0000V�>��O�z�Lp�X�ܘ\u0000#e�Q�Q�\u0004����!x�(ۥ\u0005+����\u001cX�;\u0000\u0019\u000b �~\u0003��4TZ\u0000�\r�l)��؍�L���h\t#j��?lPl~��\u0000�v���m�\u0001F�*���1'�������%j�\u0005���4�}�A;T���`�ȿ�z���^��kڊ�Z?���5���BF� k~���\u00009���<�t\u0012�R�?��\u0017�����lk<,>\u001c6�/�up�|L��\u000f���&*qڴ�\u001d���3�ŴxC.{�l�X�������~���`�\u0013ߑk��\u001a�\u001f���\u001f\u0015��6�H\t�ڕ�\u0003���0�\u0000\b��\u000f�v����?s�m>���|5�)�5 |�ϣ�\u001a�\u001f%�\u0011)��\u000b�/�*\u001fN+P�S�T\u0001@:T��w\u001fNu�Y�i��\u0001�oi��H���}���Ž>\u0011�ޛf\u001e^�򘾶w`�/��w�sQ�on�\u0000O/H\f�ɇS؃Oc��W�tw�bI\u0005\u0013��\u0005����G�v�_�a�z2P��G�$\u0001�p��`~K��Kc��\u001f�6۾|����\u0000\r7����c���\u0007���T����_q�\u001a�Ɲ�w��=V�H{����>_��\u0007�\u000f/�ʵ�Iz����zb+��j<��{����t�\u0000>�\"w-)�o���O�Z\u0014�J����\u001dr`��bz�tbi�\f�\u001b\u001d�d�F��^���J�\u0014�4�0(zdo�����ح}���n�0��vsV ���\u0000?\u001c\u001c�����\bG~���倓�@�܉��)������\f�s�yC�߷���v��me9)��\u00003�������%\u0017��=(z\u000e��#��� �${x����wb�T\u0016��?��`�傠\u0010:����͘��p�'C�+�q��Ѿ�\u000b�Pw��A��\u0006��m�ߩ�|>~#\u0002,\u0003HF���¿�\u001a�F��\u001a�\u0015�\u0000=����O5%\u0015c��\u0013�\u0018�A����o��\"N��\u0007+�ē�ڿ\"?�U6H�~�=��9D�ɉ��\u0000�����\u0007�QJ|�Oњ�~�h�6�6#��?�0+��D�Sc֣�a�&#�\u0013�T�\u0013���}r<��AէM����q\\zn�6>\u0015��ӷ�=r=7�J-O}��0����*�����ԭj\u0007Z�\fGr���J��7\u0007�hq*�z��}��(i_�푭�\n���A^����#�\u001bB\n_��G����1@KQ^���\u001e\u001fME0�z���W�H��^��o��](��+^�u\u0003*��JW(�]��I�ڟNVMsJU-I�hz����\u0014\u0019\tp�{ \r�4_.�\u001eg�\u001an�jng<}y��vvQW��s�F�7�c�3;?�u���������1���7-:�V\r\u001e?\u0013<�t\u001dK�_+�_�K��\u0014�S�\u001ec��F�\u0002�u��\b�,�\u0018��n��ɍ+�zwd�%���\u001c��˪\u001f�.C�����n���jIç&\u001066�)��|֞]�g��cuz��\u0010��ZV�c���E\u0007m�8�\u0001\u0000D��:fh��?��>h�|�ptۦK��Ԯ�3�W\u0005�\u001d��ْ\u0011�\u000fe�\u001b��d0� \b�\u0001��\u0019ܯ��)�|�oy��,�M�*\t�nn-��vw=\f�IY\u001cl�A\u000b��2\u0011��}\u0001E�f�m��\u0000��yƟ��$�.)p.�J��� �8��4̬0���6�ulד(7\u0018�K�/�[�����^HȢ\u001bI\u001b�\u0015\":!e\u0001O�J\r�]�:�\u000e�dI/�?�ȿ6�y��>h�%�W�\u0000O�H�\r��0�B$�_��Nٗ��\u001cx�\u0003�\\�R&UWӹ��<�\u001arXːͷ.\\���>�S�\u001c���\u0002j�'��j�mB\\�\n4kS\u00132�\u000b)�v#�G|�1��q�G\u0011%��\u0000�\u001b��{��Xm��Uf�A\n�2vA%)O�I��2\"\u0007\t�P���r���\u0000�ߚ�7���2��b��O\u001clc3*�����pPT\u0003A�c��?p�|[��2����|\u001f\u000e�� �7\n�X���w�ٺ����zS%.T�~��\u001e[�]?�R�h�,��h�]_�����߾��5Y�.\u0003\u0005,vQ�L�\u0017!��d��̇>_\u000f�4���\b<��\u001a��Ҵ����3-�\u001f\u0013Z�$7\u000f\u001c���2\\\\)��i�n3m�V'�C�3�\u0014���\\�/�?#me����$pO$B@��X,�\u0017�yT��M}�i\"a\u0001\u0013���R�������������ɚ�R\u0018�W����p�U��H��C4�h���\u0014\r���{M\u0011\u001d^����$\u0006���pc?�\u001f�dy�������o?.?<�?2i��5��k%�\u001d��ow$\u00171�)ȅ\u000b_\u00103�o�?�;`\fg�'�8�'�\u001f����\ti��\u000f�9H�\u00006T_wyg��o�4{]R\t�Ky#Gw\u0000��]:��ډI\brvn�\u0013֙�y1K\f�&7�\u000f�\u001amF=^\u0011�\u0011����\"�/\f3�'��������T\u0000����9V��Sm�\\\u0000Xl'vi����5���p\u0019�(\u001cT�\b!�\u0019\u0015�P��Ű���c�\u001b1�)\u0000Y^��J�la\f\u0013Z�\u0003*�9��py�\"��\n�\u0005A\u000b�\u001d�žC\u0006Y��&\t\u0012\u001dF���٪�C63\tF2�!�\"��\u001d�/����,�b��>�\fhU��ܱ�:�\u001eT\u0005j�\u001d�u\u001a~��G�W�����x#0qǀ\u0001T9<��U�\u000fNt�Z0�qwg���V,~\u0000\u0017⑃>�`((3e\u001dn9�N�/f��n&�Iu\r�գ���\u0019d�-˼��4�\u0005\u0017?\r\n�\n��\u0010U��S@0\f���\u001f����5\u0012���<��1�;]��u,y~)�m�F�n�Ic����(\u0010�R[�j�0�5G\u0016�W���:a�rL�@\u0007�\\�7������Î7ԙ\u001f�\u001fc���C�pK�+\u00147�z�^��k�6X��N�m�=)#�Y��[�u\u000b)���Iw\u0014o\u001a�+\n�����z�K���\u0018�G�}s�\u0012\u0004\"z�og���\u001c�cz���=EKh\u0003�����(�X�}]�_-y{Ț}��t\u001d+A�\"�\u0012�coh\u001d��$\u0016i�@�V���Y&i9G\u001c�&F��\u001eT\u001c���uy�U�ys��L��@{��84z}6�:m\u0016��߉�\u0018�>���26�,��o�@�yE+\"֙����#����Z3B0�sۗ7��V�\u0000�C�~]�Z��]6�꺔�7\u0002\b9�O�M\u000f\bN�n\rl\"�i�\u000efRZ�I\u00076ZlgQ�8�����v��\u001d��˫�\u0000�`j�\u001a������O�Kw�\u000f9y��/o5)\u0012\n�\u001f�jW,ܓ��_�s�ft�Ńo�x�\u0011�O���$��\u0013���Ւr�����\u0007����\u000eO�_��o��/=�,�~�����jii/�(��o`����+ij�N�\u000e��^��h�:��%\u0012\bڲD�_��{L<^�ˌ}P�\u0010޷���mo�_�r��1i_󓿚څ����_�\u0016\u001eC󝭹�c�\u0001�yn���[\u000fH�\t�t�r[�\u0019�ϡ�\u0000�a���\u001chtٱ�����`���r\u0019\u000bߠ�t��\u0017�\b:q��\b:̘2e��GO����&8�\u001b\u0011W\u0013w{���q�K�\u001bR����K��\u001b\\����֖\u0017o��0�%��SC\u0015�ܖ�N\u0007�\u0012��9���\b�,r�\u0001�$�6%\u0013��íw�}\u001f&I��\u0018\u000b4D��'����G̀������ݠvh����,�Z0\u0003\\�%\u001fg�-E�|��\u0000���\u0002(ѯ�����F=�/�|?���Z]^ܛ�K��YȽh�H#��fe���Qab��\u000f�s���\u0012�\u0007\u0001\u0016zmd\u001e�o?�ώ� _=�\u0011О�w����\u0000��ծ��Iu\u000b�a��\u0007�R�c���� �\u0018�\u0000��\u0014��C��\u000e\u0000FO'��JD�\u0010��\"���>1�2M=��\u0002Eħ֑�\ft��H\u0001jq䢣�{g}�1\u0018##��d\u0004́��?J�\u0000�\u00026�<�矩J\u000f���%{y�$O���Ռ�j�A+�j\u0016���s٘��g���,y��\u0000g���g�hH�߷A�o�McO�\u001a}6T�E��Ib���2�\u0012���\u0000��'g�xrm\u0001.}\u000b��,5X�;Ȏ]A|��\u0005���_ZΗ��\u0011M,r3z��\"zƑ�K4m��θ��\fQ��0#�҈JS16\b>h�\u001f\\�N�\u000f��!smp�߾�.8lѠ��0�}�Z��̓�\u0017�1Q\u0015���\u0016J�������z軻�!k�\u0012�ٓajLR�#\u001cD�o)㲟�\u0006��k8a��r��/��f\u001e����_{8�7�a�ch�V�1\u001cdي�ԃ�+�o�k�CK,G��o���\u0015��6�\u001f[��9\fW6��\u001e����e�4y1�S�\u000b�!�v\u0011��lm(����>/�\u0000���\u0000�]�?� l�5�,����\u00008�[n\u0010_M\u001f�����\u0014�\u001aV�\"(g��]P�\u0003\u001a5V�8�l}�\u001d��\u001a�\u001c�.҄w��$\u000f�Y�߃��\u0017,|�\fn'w�}�\u001d\u000e��S\u000e=1>��\u001fӅ�����/�[�\u0002�[�F���[̺}��?/�Ϧkz=����sG�A�H�\bx�Z��2��\u001c�O_�\u000e��u�{7��î�>\u001c��8˘�lA\u0004J2��Q\"B�}�K�ޗ�4���22irDJ2\u001c��\u0004\u001d�<��;��z���\u0004իq��\rw�m�\u0017�A��\u0014'b�\u000fn�9-$L�h\u000eG��ꋨ��Nu�۾�?\u0010sС���\tw�{�\t޿�_��ߝ���'}�#�D\\R��~�w�>/�|��\u001fA�p�\u0003o'�os��߭\t�;�\u001c�\u000e2Qqs���O����)��c�\u0019�h7bv'��@'-��\u0002���ꤊ�ڞ&�mJ�]��*\u0016َ ���s�;�/;E�O\u0011i.\u001c8��\u0014ҟ�u~��#���R��7�z��{���Ǘ�䰲�\u0005\nx�6�l�B�\u0011YK��vZ������e�\u0015\\�1/N�?��\u0003�D\u001a�9�I��ߩ��\u001e=2lW��t��m\nr�:\u000f\nl{aT:�^��2'{�J �Č�\u0014w��a��N��l���;�i��\\��/\u0014sZ�;�m�b��#\u0013#ѧ6N\b�ϐ�}�νOW�\\��/db�����k��F��c����U��K�\r�����\u0004w��F�\u0015\u0014m�SA�{�zd�Q�R�6d7���S܃�\u0011��q/\u0010\tr�����OΏ������EEy���Cנ�m�\u001a\u001f���\u000f�v���\u001d��|]�Y�hO\u001e�ӵ>����\b��ϔ�'��>����Ė”��6?\"G@>]�����`۹�/j!!(��G�_qi�b \b\u0000*���G&�⣴�,���\u0002+��\u0000�Fj�n�MG~�ebzmZ�_��횬���L8�D�D}Z߷���7\u001b�\u001c>���\u0005��#ć����\u0003�X��ۦ�>��\u0015#�F|����\u0000\f?�~��4ހT}ϫ\u00014\u001f!����{?'W�t�\u0006<֐�\u0007�F�)�R�q��y_W�y�RPk��\u00005n\u000e��'Mo�w\u001d(H�\u0000=���n/�㏱���6�\u0007�\\�)F�U5\u0015�i�~y0�d��.}�d��\u0000FYw�\u0012\u0012�\tR>�{\u001c�1�1���\u0002��ڙ^֖��Z���}��p���y�\u0012n����d���G�t(\u001f����r ]�����\u0000?�\u0003�����a^�*\\��>7\u0005hA\u0003�\u001e�:2\u0014wKn�I�����m�X�,1�*G���,h�\u0016Ƈ��\u0000|�^�\u0014s�8�\u000e;\u0000~}i�s��rQ�1M����)�\u0007��r�#~���E�ҧ�>\u0006���\u0013�̀7�#��\u0000o\u0014�<��\u0001V���ND�rE\bv\r֝���L�!�u9\r\u000f_����c͐5�Q\u0004��\u001e�#��*��l�\u000bu��~��r2�\u0000\u00129?�����du�i�GM���\b�&���\u000f�6��\u00064�H\u000b����v�}�rQ��u�P\u0001\u0007�;oӾF��k\b��j\u0001�Ri�<&�I�i���F���L\u0015��M�^��=�\u001e��P���N�\u0007�#�\t�g�\u0015��p)��:W�\u0011d�l(9�{x�Sۦ�\u000e��\bCHw\u0006�ڄW��v��@\u001a�t�\u0001)��7�{S�\t�uG_�]!�_ױ�s޸\bO.|�\u0012�R+�n+�qT�N���?k�;�9\t\u001a\u0016�t���\u0001�o\u001c��\u0010�e^R�\u0015ߚ��\u000b˅���o/\u001b�Nb��ϧ�\\Ea̅��J�s�)����c�=���zI��\u001eu��tL�^X\u001a��à\u001c2�)�\u000f2�'K�򝞕\u001d����A܋���d�x�'�貭��-9\u0017�#QBsԴ�H�v\b�pB\u0018�\u0011��~}I�Oy��u\u001a����)J'pNܺW��\u0006!�_>h�_�\u0016�J��_��\u0014�=@zQ����������]�����\u001c\"\u001bK\t$z\u0012$�8�(꤯��MO�\t�\u0011���m�`��?�>?�'\u000eyG\u0011�/\u0018��g��5f��-ʤ\u0001�\u0013\nz��Q�I��A�\u0007l�K\u001d�\u0003���Q$�u��>e��nn-�偵g�\u0015�J�O��\u0001Ac�\u0004�f?\u0017\f�3\u001b�ya8�\u0011,�8��8�\u0015�#\u0016�YYwb\u001b����8��U\u001a��/�|���\u001f�7�u���uyj�}�l��]�!��dT��jj:d3NJQ�w�}�\u0006@\\��\u000e^e�+�+�on�\u001eB�����;����ɍ7<�v��\u0011B495�\u001e�ό\\'��x�\u001d�\u001c�T���� }������g\u0015r�L�G����5�C;BCCW�\u0014kZ�ICƎ\u0000���e����-���t>b�G�f��WyR#y�Į����K��\u001dAXԑ�X��\u0010\u0000�\fA���w�g���j��D�P/\"�\u001a��X��K�\\P\n\u0013ӶB\u0011&Uվ2\u001c46!�zU�Y�L�}J[9R�f�)�½�-E:d�\u00129���4zn��&k(l-t#\u0005ޯwy�,�kk\"���?+x�/�PۭC7\u0005s֛�\u0019�6j��<�\u0013�r�o|��k������{��%3}J�&�\u001c���|6q\\N^��m��w+ʛ(\u0019��7�\f��\b���\fcg �*>�̾^���[m/I�2�`�3�\u001a/�QJ��\u0014�\\���e�q�x+��\u0014��qu�\u0000>���\u0000IN�j3�{K\u0004�\u0012\u000b?0j$��p�\u0002��\u0019��[\u0010rƇ�X`O���e�����R��\u001b�?�_��}5���W�����,�\u001f���9��\u0005���zs\u001dF;�\u00018����O��/�xR�|��K(��y��\u001a\u0019�ҕU$��\bڠ\u0005$\u0011�����%��\u0003�������\t፛����cXy�\rN+i����yKh�\u00029�FF�\u0018\u0003P\u0001 {횃�P4C���C(�\u001c�f����p\f^�\u0012F�x�*�?�� �c��aM�\r\u000e\u0002,S�\u0019\u000eog�<�\u0019�\u0001Ͱ��_�\u0014��\u0019CVRĩ�dm��v��Q�\u0015�̎S�˕\u001f�\u001d���v6�1�$G\u0016�x=�Ѝ7�\u000b��S��\u0005\u0015��kf�����+�$�[%�r\u0011m\bE\u0015i.dw@\u0001��9�\u001cڙ�I���=4���\u0003�@�M��x7��1༞i�\t#�Y=\t �I\f\u0003uUX^!%��2Hv��\u0019��\u000f\fo��$\u0001]\u001eI�\u000f̦�!&�4��6����Z��yq�q�c���C\u0019�SьF�\u001b��&&`�̴ˇ��r�\u0003�_�s?�bmb)�h/'�)d��\u000b�?{#��$�Y�:����\u0018=�s��kE!�J`����̎\u0013��+�W���o]ύ��\u001a�Q�������\u0003�N�*��\u0011��\u0011�\ns;S�{���R�(�\u0011\u0004�����L�\u001c���\r\u0007�\u001f�w�5+a\u0005��}J{\u00194O1Cp���KM+^�8�L���m����\tV� \n���g��\u001a�K���ߴ��{cQ�:9��\u0003�q#��y?���ɳ{?�\"u˹m�.|��\u00008��\u001b�J��G���P���)n!i@��(���}�w\u0007=��\u0006\u0013�}��0��۹�En\u0004�\u0013_0���\u0000\u0004�d\u001e��^�W�'\u0010$\u001d��9F��w��\"�\u0000+�']GK�9�7��ܢN���d\u001cYT��Q�R\u0007�s_�\u0016\u0011���V&kn��\u00031��\u001co��~^o��˯7Y��NM/PE?�b�P���\u0014ԑ\u0018p��H�x�����g�����\u001d�%�\u0013�����\r\u0006�\u001a�xs�EH}�.a�\u001e~ү����\r���rY����$�\t#�+�\"�M\u0004\u0013P+zl@�x�ӳu8�Zs<��\\U��X�q5X�a�#\tp���\u0017�9�z���\u000f�\u000f��\u0015�<�\u0000��d��_\\�iy\r��!\r��x�S�A�\u000b9���g��P\u0013�w:\u001d.\u0013<\u00190�\u0010\u0005�ؑ�w[���9�3�ώ�5.\u001fP\u0007m�^\u0013]C���r7_�֮��G��\\h��q�\u0017vi\u001a}gJh��xjK�U\u0015䁑�\f�+\t\u0019\u0000<\\3���jg\t�ȅ��\u001d�˿���<�f��咽���}J�Ym#��$���V�r慤\u0010/*P\u0000(3��Fq�\f#\u001e w����r��J\\'�����:f���kyR���_�C��H\u001e�M�uK)l\u001e�Z7�f�I\u001e�'\u0000\u001e-@X��9��ɞ:|�\b\u001e(�l\r��vZ\u001cxr��\u0019q\u001cdѢA\u001eb�����\u0000ȯ�8i�_�v���`��i��\u00177�U�ט,�u�ˍ6\u0019#�#r����A$��2�+��1\u0004\u001eq7�F֜�Ũ�\f��6Er���h׹���Kq���I1�Q����G(x�h]\tW�dU\u0004uR\rw�k�\u00002�%V\"h�9@�8.�\u0001c��\u000fɭ~[mT��!&��\u0016�j��=>5%�\u0005�/^��OL��l\u001e&\b��$si�σ!\u0012������}\"��P�H�eҠ��y4a�\u0010�h�\u0000ӏQ��1CQ�X�^4y;IJX�&?�<�:���[O\u0013�\u001c\u0011� \u0018�W�׹�v\u001d���H6j�z�\u001e\u001f�l}��Q?_C޾�9m�4��ɪ%����\u001cP��zWۦBD\b�N��?y�!��K\u0012(�T��{�5Y���5p��ˬ���@}�t�n���\u001d��@+k\u000f��\u0006���\u001e�:��i\\Ō}\u0019?�]�9^HW>!�����5��>�O�l�[�\b\u001bk\b���\u000f���\u0011=8G�\u001fV�\u0002���3�����ֿ����==6߶���ðD�<��c��o�O��+��,�\u000b[�=8�^����\u0002ϕ���\u0013SQ����fHd��E﷏M�S�\n�\\2�^\u0014�r؛\u001eH<�-\u0018 ��T�����-��K.\u0014�>&��\u0011\u001e����S}�\u0000\u0013\\w��\u0007j*m\u001dz\u000f���� �G����\nc ֔�\u0000?〠sۚ�M���\u0000���\u001a���F�ɯE��ҕ\u0014���\u001b���A��pb�hw����\"\u000e�d\r��\u001f��Z��\u0000>�\u0013�,l��\u000f�R;vژ\u0019U\u001f$0U\f\u0005~T�\u00003��ǣ\u001d����\u00006�Q�6�������(�\u0014��������D���������Mq�i<���|01'�a�������Ǘ��!O���ȝ�{��Q0+�*{�w�\u001c\u001fs!�$\u0015��߿��\u0001i\f�EI���235\u0016Ѱ�3�jo_�\u0006cRA<�����\u001fn���?��0cu]\u001aN��f�\u001d��\u0015�R��tX��Oz�S��\u0007���\u0011��<��y�O�o��ҹ+��Q{�-#�\u000e�\u001b\u001f~�o�\u001c�.�k\u001b��k����&�JM�\u001f}|O�Za�\u001aG܅���0�������B1\u001e=*\r|GS_\u0001�\n�c�j�\\־=���>x\u000e�~l�\u001f�\u0006M��\u001bק�ddT�B=\t;{��J\u000e�\u0001لeė�7\u0015�\u000f�Z|ϾD��dN���w4\u001b��}��ʥ��O��\u000f�Zw�Ho]\u0012̼��}\u001f]���̓H�M�\bR�)��&�tT�Ff\u001f\u00146��9�ܓL�=��j=��&�S��Lg�\u0001�R�g�}����l\u001e��Ä\u0003�[��\u0007�)��u���}\u0012��`��{�\u0017FӐ<���4Y'�\u0011ӍԮ�2��ȩ�,A\u001e����\u001848��\u0000 8Mm�O�^���j�g�d�Cd�/z��\\맗�0�\u00005\"�ִ��=Z;+�-��\u001e�n��̾w�E�$v�6����\u0006����袍��31i�%Ō^S`\u00006\u0003���L�\u001e*�#�O#�G�\u000eL�\u001a����wX�|��/�VY/��)]9X�y\u0004�\ba����IA)�}�\f�O\u001e/\u0000K\u0016��\u001f>�\u0006�ffFO���{����\u001b��ϟSծ�;Xecq�@%�\u00027��\n��s��ҙ=4\u0005]o��D\u001d�+��ʞ{���r_)�k\u0015������Kok�2�|\u0012I�_�]\u001c�\u001b�ol�\u0018L�)ʯ�_���&U�wr/$�ǟR��۫xdv�Bd��^E�RG�b]�\t��AJ��8�+���x�\u001b\u0011J|�.nu�[RVk���<�%DfCBȼ�F��B3\"5�m\u001a`,��w���`���\u0000�<�a'(- \u0013\\��\u0000��P��>�Tn���B&Y�3�~?�rЇ�������-�y��v�wV���ѕ\u0006�J�;u̲v��\u0003�<ظ�\u000b���Ej�ǂ�g�b\rJ���cN���\u001d�n���y-��(�$6��2B���N�G�d;I4c�#D=\u0006XK�)\u001b���jVK��\u001a|<�MVd\u000b\n������\u0002�y�7W^����H��!��S�z�Z�\u000eß��x��SR��}r#i�C\u001c\u0011As\"Ms\u001cq�\t\u0011���\u001e\u0001ݗ���w�\u0014�\u001296��w�M\u0018��39n��\t�z�@\u0015jI�4�H��3�\u0007w��_\\����5\u001e�\f�CW�=\"N$o@[�l�\u000e\"xG�Z�\u001e�\u001f󜺵�\u001e@����<}mZ�\u0000N:���I��I\u001c�ՂY۩���i�\u00000����>B��Mx�\b�\u0010;�\u001f���\u001f6�\\J�yN�)��l\f�}�ع��O��(A\u001f�U9��\\x�/�\u0002��\u001a-�\":?|t듩�\u0000Ϥ����*��y��6wFJ�G$:��\n�Nk \u0002�3���\u001cZ�\u001e�\u0010�\u0011�'\u0011�����C�_{���\u0000����Yh�>h�\u001e\t�4�W\u000f\b�\u000b�\u000bGF�\u0006�$�\u0010WČ��%��r��Dze�^�\u0014\u000f�p�ϱ9�\\y��r�꼎��o�<��\u0013��\u001f��U�;\u0011P+@H\u0003��\b��\u001cd>���\fb\u0006�����ъ(�%��\u0001�#�%\u0003�� \u0010é$�q9��\u0001\u0016�\u001amA\u0014^�i�\u0007�%2We_R\u0012\u0019թ�)\u0006���\u0001N�0�\u001fV��\u001es!l�F�$��Rpf�����`2�P^6�����\u0004\u001f\f\u00061��\u001c�i5��MF\u0000���Pz�\u0012B�\u001fQʅ1�x�\u001dx�(w�\" \u001b����<��La��I����ԐYP�1�Q@v\u0006��\u0007.N\t�\f�e�Q�4����\u0001_�%nh !x�,I�Y\u0014\u000eKPI��ʳD�r���c\u001a�g�^P��[Eeo��\t\u0002B�\b\u000fխ�l\n�'G.\u0018�\f¡\u001b�)�MN\u001d��G7��jG�\u0019\u001b\u001c�wŕ럙2�Z\u0011ij�����ˍI�\u0016�\u000f\bˣJ���H\u0005�*�m�1��5�\u001f'3.��6\u0001'��W>l�n\t��u+\u000b\u000bF��X�n���ZXɔ޾�ޜ64�\r��~��e�j\u0019�?T�\u0003˧�x?��լ:t�z<�H]X�,�!�UTq��������`\u0000�Tu9���Δ�\tf��\u0003����\u0018�x\u000e�I�|;��\u000f�_͟0�kڥ��H�}V$3+u�\u0012\u0017��?\u0013���:q�\u0001�>\u0015�\u0016�Z��I�e��\u0000�\"@�\u001e��ݸ��\u0011�\t�g\u0016�(�\u0001H�B\u0003S��T�S\u0018�l���x=i1#���,�\u0000�\n�V]y��\u001a]+N�,�o$%�j���1�+�/?�^�\u001d&ݙYc�09��&�����\u001e\u0018cԜ�\u0005���x\u001c��n��\u0000nk%�S\bˆ�@�����~����\u00009�$6��^RЭQa��_��[�\u001a\u0005�#�k�OS�X�\n�b\u001d@�F�\u0000��N_d5�������0{�c\u0011�_\u0005�\u0000���}��i��C�q\n�\f̤~o\u0005�\u0006��wc�Җ�3\u0014w\b\u0015�\f�DnU��\u0018�\u0016�\u0006����0�\r\u0001@�\u001d�\u0000�n\u0017dj%�\"VlƸ��|�\u0017ܟ��\u0000�E�h�.�A��d����Ip��N�@3�i��#<��>�\u0011�rc\u001f�#�\u001e�a��g�RYe��剮��˝���������\u0006���KdD��Ǖ8�:�B\u0001\\�{*�Ԝ\u0007hˣ��\"3b\u0013������缽�5�Qӂ\u000b�йj�H�^$��%h)�m���\u0018������}�\u0003ڙ2�Q (D����\u000fȿ���\u0017Lկ-��\fV�j\u00064�K��s*�\u0000f�7�G2*у\u0016�\u001b�i�9ri���t=��uQ�i\u0013鳵�\u0000Hu'�-�;yJ{i��o�8K5\u0004�,�\\)T`\rZy\u0019h\u000bTTW��Jӈ�L\b��<�ʞ{6N\u001c��8O2l���}A��\u001d.��.�4]6�K��[i��Yl�+K�S�{��l���Ts�\u0019s��FXJX��2��6\b�7z\u001d&,\u0012\u0002Y!\tb\"�\u000b�;Q���ޞ_�v��]�s�s]�\u001d���,[C�_]<�j�\fQH'�I�\u0002�}~�V�K�����iBk�\u0016]H�\u0019G<`L\u000f\u0010ڏ>�T|��c� ��1\u001c���\u0012\u0002�ޙ�X�q�>\u000f�<���`jz>�����(-\u0010�^i�MV�\u0014�`�\u0000s��\u0016�-��s0�V,�^#�$�\u0007\u0013��,4P�#1(����Q���\u0011�\u001b���8q\f`�B\u0011���c�=@H�\u001c�� w�\\�\u001a\u0017�7�|����?1k����|ע�)t�t\u001f,���^l�,����t�j����Tg��u�Y\u0005\b釗C�\u0007g����K\u001c��ꌣ#�=j���Lu�s꥗Q\u0013\u000f\u0012$p��(J#���{\\e���\u001f�\u001a梲�X[\\����rO4�^�~d��x�Ң\u000fm��j3$Wv)-�\u001c\u001a�BҁBF�_��\u000e\u001dA\u0010\u001e\u0016.\u0002%\u001a��䁱�\r9zY��\u00002>&N!�+\"��\u0002w\u0000����R�N�g\u0017�n�}�;�*!d���\\�'KmD_Kh4���\u0011n�\"�\u0011�U;��,��R����W�K\u0015v;����~jY\b�En\r�7T{��}�qr�~Y�f���##D9��\u0017\u001c�9`�\u000e�\u0004�(T��l!���\n��\u00008w�ü���\u0000O�\u001e�q�Xj�\u0017�E��=.�=s��������Yn�D��~�o�[��\r��&;�dTxI�e\u001c8��Z|��Z\u0007\u0014on!χ�\\�V�9c��\u0002%�&�[Ѻ\u0012\u001eW���\u001e�a,d�\u0000v�\u001a�m���qJ&�E\u0015�h�ψ!�I�\u0012\u0003��݃�W/�̉�$y\u001e��?�\u000f��?��\u001dS�q���]�b���������O�mU\"+lt���s�ynW\u001f\u0002�^[��(R�����R����?dr{#�va�?�>�,�i�\u001bD�W�\u0001��)J�ߊP�\r��\u001f�����>�B9����\u001cY{�\u0000�d\u001eR�\u0002]�\u0004u\u000f*�ji�W��N�\u000e��h�\u0016�W7͵��\u0000\b7�&y)1�#~���\t�>O��\u0002�N�\u0000�8OO5����55���fDz��ϝ3�~��.Z�'�0']�d\u001c�t��d��|�\u00009\u001f?\u001b\u000b���w�z���s���\n��t\\QE~��5�<��h���\u0006k��cCC�V����\u0002{�#Q­I$\u0001�ܞ�I��\u0003�v(qs\u000f�?\"|��!������#\u0016\u001f\u0010�\b\u0003ڝ���\r\u0017����?{>~\u0004�ڇ7�>�b�V��\u0014<@\u001bmJP��\u001a\u0016y��J�\t�\u001a�݇�ץ2���k�G�\u0017\u0012�\u001f�N(5�Y�E�M���}\u0014�\u0001˽\u000b�\u001d\u0007�|)�\u0006\u001aE��&��ҟ/�\u001fr�PQSS���*�H!��j\u0000��3C��`�e>U��|����İ��>�^(��M��0�\u0019#\b\u0019�`\u0003F|�\"��\u0017�v�.��\\�JI�d\" ߳\u0012��\u001f��j��V�Y�\"v�5�<\u0011\u0011E�GG]�?���cǝ2 ������> �\u0003�ƙ��m��UvS�UTi�6\u0015S���ٳ�T���k�\u0003�k�~q~��f\u001dI�m�>��u�����\n�\u001e��;zU\f��>r���TS�\u0004P�;��қ�d5\u001f:x\u001c#�t{�e~X�H�()EO\u000e�/�t݋?�S�>���Hw\u0017�Zv�����\u0006��\u000fo�6�9>i�R�[2���\u0000\u001f�<�\u0000�����\u0000��*S�\u0019ߵ?����yg�\r\r{����\u0006W�\u001e�\u0016�\u0007�7�=\u0001�~^\u0019\u000f�����eq~ϾdGq��Gs#�:���\u000fz��r\u0004��n߫�1���\u0010�����v�2'r����q=\u000f\u001f\u0013�\u00147^��A�ۯߑ��\u001b�\u0000\u0004S��#��!�\u001f���k\u001a \u0001�?����\u000fC�z �q4�\u000fᇇ���\u0010d\u0018�@}�϶W�G#�W�Y>���\u0004b˘��\u0006S�lh\u000f^������ڸ;uߦ���\u0014�Q~�]�f��0.��4��\"�@�\u0007\\Z�Yķj�?\u001f�]�{���-6��\u0003N�\u0000��`��<�D,��\u0003�~�ؚꞋ�^4\u0007j}�\u0019\u0004��˞�؁C��c\u0010�bP\u001b�\u0000S�t\u0007��2\u0012�|Yq\u0001�L����v�s\u001eV\rRC�����d��\u0007��\u0000�����P\u0015��@�����6�,�\u0016y*\u0011��z��k�q��+��Sj|_/\u0000z�|�D��#�=zv�n���(��7�)ӿJ�Ҟ���T\b��a�zS$��f'�44����6�\u0007�H7���nƇ�\u001e\u001bb9��2.���u?�:SƸ$\t݌e^�\u0014�k_\u0001��>�8HL�Ű��\u0011;\u001f���Q�D��U�B�+AC�c^�~=r������|��\u0014������ʕ�H�6�#�S�V�C�̇�\u000fI�Dy��':�:��i�Y\u0019n����.\u001c���m\u0013��q�4��\n\r\u000b2t�|���t�\fH�ܶ��\u0017W\f��\u0018�\u0007�����?/�;��~Vk~k�ʾ�_>y���E���\u001f�����2j`�r�W\u0010\u0011/��;�I�;h\u0001y�h�0\u0002�eC\u000ea�a� NG�}ѭ�<�\u001b����< |A��#��D���̽3�q'ʞc��ת���?R���\u0016\r\u0001%��k[��yOH�}��\u001a�3;��x[��x��r (Pm�c�Hpb��8�JC�����\u0000x�<��\u0001��\u0001�~�]�'��~��_0-�N��ܐ�R6\u001cJ1�\n�\bB\u000f#�\"�%��%��\u001b���g�,��qcJ�K�S[�\u0004�_ƪ��\u0003nX1F���\n��Sl��80�b���. \u0004��w��\u0016\u0010��\u001dn%��5q\ffIm�\u0014\u0002�S\"�\u000f��\t�Sjf�\u00106O��97H��'ow��m\u0017�+�^L1�ce}�jp2�=�'�\u0015�Ĉҿ��\u0014U�\u0002�'��NP��B�0�hB>���\u000b��\u000f4�~z�=�~�h/ݣ�G�d�}3D�q�C\u0005�\u0007���b\u001c\"��\u001c�S��\u000f7���U�޿c\u0014�\u0011H5}6�R��\u0002Lj^�u�隞ڇ\u0016]?t�!�?���c\u001c�\u0007�\t@�+��~*����$?󏞻F\u0019����\u000bU���\u0013\u0005���\u000b�h\n��jv\u0015�\u001e�\u0000�F�$c�H\u001bé1�d��{��A�#W]�,0>���Ș�?\u001a<��=0܇�\u0015��\u0015bj7�l\u0002U(���W�����\u0000���\u0000�6Z���\u0000���\u0005��\u0000�_��\u0015���R\u000b��/��O7��Z\\\u0015&�mM�\u001c��\u0007\n\u0007Jg]�Ԟ�����k)��^|�G�-�Ϟj u��X!\u001b��\b�z�2�\u0016|�ϥ�$4,?0��/>��e��ʺ֍�[\ty\u0007���e���\u000e%��Mi�\u0010�NJs߿�oؙ{+�\u0006]�2\n˞\u00193�r?��L/��\u0013�/�>�v�.��\u0000�\u0017if�\u001e\u0006,��\u0003�~�\u0011����%��\u001b���{TU����Ttc\u001c�r����\u0018&N���\u0007��s��ٜ�\u0004�nom���Yi�\rG�~}�\nҘ\u0012[y)���\b%��O-�\u0005�f�/g��\u001e�\u0004�\u001d\u001f�~)�����kL�|1 ���߱���i��~M�ْG����Ha��c�n�?x�P{�ϝ��:\u001d\u000fH�}�E���H2���>o�?���\u0014�^\\r\u000b\u001f\u0007�U����|%���힉��n���ſι�/a��@~\u001c�\"(�x5\u000b-G�b+L���$\u001eZ~���?\u0005�/�'�\u0001*#v4�b)�>�$l3����\t\u001d�F�\u0015��ʟ{�A�\u0010ˮ[�K\u0014��u\u001a]H�񲕋�!\u0005$�\u001c\u0012E\u0001�l�=���3�\u001a$~>nװ�\u0019p�����>��o��t�e�{UKB�˚��7ծ$��$�M\u0011o�{��X\u0011J���9Ǐ���n��\u0003�޷$�\t11\u0015F\u0004w��\u001d\u000fO���I#���\u0000���;{�h�~\u001a��[��[�K��ב��o�^ԉ\u0013\u0018\b�\t!��\u0019@�\u001bB@|?\u0007�\u000bյH�\r;���G\r�\u0017��f�/V�\u0013%��\u0015�\u000bo9S\u0019��+�n\u0016^@�\u0004w̬8\fr�\u001b�>�o�u�s٣.c��n���.�^����3�^B����\u001f����=^+��.�eҬ\"�����ݕ�U�o,jn���X�;���J�q��>�Y.����jc�a\u0004\u0018H�>\u0013ӌs\u0003�@�3K��h�����8��\u00138ƥ��\u000eg\u001c�\u0006��\u0018\u0010������\u001dsU�\u000e�\u0005Ρ��E�u��O��~c�����O�WL�Q�}\nK/E��I\u0016�* b��#�:]V�0�#\u0018FdDKiDݑI���݊z�\u001a�<�K$�\u0013#\u0012H����}q���\u0018��UycW\u0011ipɠ�V����ks��Wp_��\u001e�(kk}>�\t\u001e�WIK���\"�*\u0015�s��W���1�M\u001d�;u �ˑ�ݾ�q�\u0004�J2�V\b\"@�*#n|�\u0000A\\4�����e�/\r���h��+\\��M/̴P/�]�°�\u0011��\u0011�81�\"�5��Φ\u0011���żf7⇘�q�^b��0�|f���P;T���R\u001fP;r �z/����2+i��H��~�\u0006D�y2(`O%\u0000�\u0012Nk;bQ�NX�˻��H\u000f\u0000��\u001d�O;�\u0000���\u0000�yӿ�%%��$�A\u001f�4r�g��դ\n$ӼקC#�f�S�Xk��J�e�\u001f�\u0014��i�\u000bO���-\u001eZ�k\u0012�3�\u0019c|\u0012��0��%-�\n�{'�3�n�:�7!DJ?΁����\u001f�\u0001��`E��\u0015ZM��e�Λ���\b��Xj63�k{e:0\f�[���j7�z\u001c��$2�ӜY�a�\u0012�e\u0013�2��\u0003�\"��U�\u001eL�.#Ŋ[���ȱk���\u0000H<�޽;�j�%��{(�\u000f��\u0000�\u001c��\u0000��(j?t���ݖ€��Р���D��\u001di����\u001e9���5Ζ\\�\u001d�\u0000�H�E�߇cۯ�\u0014�]Q\u0007\u001c��-G�=�\t���[�ٮ�\u0006V\u001cR��bI\u0015oտ˶C�eDt���\\ynMZ�R�����&����g�n�����\u001e��?���1$�~�~[y^=:�\nF\u0016����\u0000:�=7O�F\"\u0003�\fMF;s�{I!@P6\u0002�n�fw��B��\"\u000fc����\b\u0006�ysG��+�~��2`U���V=���\u0014����+��;m�\u000e\u001e��۪\t����\u0000�|�\u0002�נ�x����`��H��<Ϫ�����\u000e(I�:d2\u001aI�\u0004�;?9<�.�v�m�����1\r�5=\u0007q���S���#��������!��A�~\u000bĭU�\u0007\u0012\u0000���nzt�g-��_{*���O\u0010I \u000e��w98����OF}��ڻ��\u0014�l˅�\u000fF#i\u0011h�rE]9�v\n�o�O�\\��w�/���Z5&��?9=\u001cJ%\u0015�L�\u001e\u0014-��A���4y\u0002\u001f,��C�%w~��h�\n�^�\u0001���,�}A�r��:`8�>���JCli�-v�m�|)�\u0007a����O\u0003�\\>��}]�s\u0015�|+JoQ�7�7��Uz�0��B�l>���\u0001�����֓��fvd\u00107��|�淠ӑ�Zѭ�[�.\"�����c�3��.x?�����\u001fb�I\u001f�+�\u0001��C�|��\u0000\u00041�\u0019/�?a�\u0010G�|k���}d:\u000f��C<���l���\u0000?�\bU\u0019�\u0000�o���<�.T�3�Pzu?���b)��G�,��QQ�\u001d�\u0004\u001f��{�f�\u001a��\u001e\u001f��!��a\u0012Z��;W��Z\u0015\u0001p+S�)�\u001a(=�$\u0005\u0018\u0002w=?�/�\u0018�\u000b�q�t�O��ӍY�M�� �|DoZ�\u0000��L\u001dXy�Bk���S\",m�I\u0015H����#��\u001e'$M�ީ!\u00167\u0003j�R?�m�<�sf9 e�4�n��\u001di�\u0002���T�4#��v\u001e�\u00004_w$���`���@��O�q�P\u0001\u0014��wߧLY\u0002\u001bb\t��mZw�v��\tq�\u0001�=\u0007��ݏ�ls\bVߗ\")��\u0000WLy{�d)&�\u0002��W�o��ĵ\u001fz\u0016(�*\u00107����\u000eEy�F\b�)\u001d���;v�\u0006�\u0016]\u0010�\u0012��J���>�q�#o�Y*�\u001bu\u0015���;dRP\u000e�T�i��6��|�^��\u0012�\u0017Oa�*w�#9Tv��n��M6?����e\u0012\u0016l$?����\u0018��zu���pߓH�o�\u0010\u0005\u0006��\"��ZW����G���;��H\u001e�>�\u001e�\u000f���H;\u0006�]�O\u001e��\u0011^�q\"�\r�ҧ�^�`&�%I�;���G��&�T[����ݽ��m�)�\u000e���zR��|�\u0011\\���!e\u001f�\u001f�[dA5�D�\u000f>T�q���+�\u001e=2wc~�\u001a<'�\t�ݷ\u0007������YJ<;��\bڻ\u000f�A\\��qܔ$��tڿO��FTl��T�KB+N��a�m�X�oJ�g�u[]*ު�/��\u0005)oj�\u0015��\u0013�\u0014@�^��f�wg��Ml48�q�Q�lz��R�k5X�zijr\u001d�6�=\u0011��0~�����\u0015!���lb���/\u001a�T�\u0006y\t%��N}\u001bظ��CO��(\u000e\u0011�\u001f��\u001eҜ���`x�7����\u00000��[A���N�{6�4���;���\u001fY�ßCM������2��+\u0013]���\u001e=NI���&< yu������e=\u0010\u0010f.��.S�\u001f�\u0006/D#��y��$�nF\u0010p�\u001e&���.�\u0000�]�\u0001�~i~w�T�'�\u0015�X�;}~�����ђ\u001b�5oޤ��K{�R���Έ\b\u001b�N�5\u001f\u000fn0k�m�}�Y.S�G\t ���U�QZ[�G��^������\u000b;U������\u001b9䵁��K.\f$$�@���<�Ī\u001b�~��YĈ��z\u0003���'��k\\�L�j�\u0001�\u000b[�\u00001�����S���J���m0ns\\�>\u000e����Br�n�����|��8�~<�\u0014k�(\u0016h&��is'�Js�´�Y\u0017�#�y�B\u0017\n�~��`H�\u0006�\u0000c��m�~ߏ�+��5�N)H�0�\u001a�*��\b�I@�4P(yD�6��EH�\u0004\u0001��J���G�iZ�/2M\"�S�:�d��\u0002�#����*\n�0�ƽ#� \b<�y�ƍ\u001c�+H^��8���c�RY(y�\u001d��\u0002�\u0003�c\u0012m�5H�k~1¬M@t'�V\u0005�6b\u0000\u0004�|��[��D\u0010�-�Af�!\u001f\u0002�V�U��V\rRMzey\u00012\u0007zL^k�\u0018 ��Fĕz�@�&CRhyP\u001c�Ō��FȐ_-y�WY�b�Ҩ\u0010��'-���$\u000e�2s�\u0018��ǹ%���Do��7�~e\u0000��`t�5�Bo/�\u0012H��\b�O�Y���8#\u0012=s��ի9�ƫ��_\r��?��>�.���}[N�����L�\u000eG��;1��p8�\u001b\b�\u001f\u0000ф�2��\b_���ڝ���<��4K��v4몱P����Ngn�\u0011��M�\u001d��w��\u001f��bܘ�~��\u0007����-s��\u0000�r+�y#��S��4�@A�\u0012ծ<�\"����E�w o��׍��e�1��Ԇ�hk����o�X�\u001d�\u0019}�_,�\u0000�|~@y�Z���މ\u001a�!�g��-�-J�4v��Z\u0005��uW�\u001e9R�Ǫ7.��\u000b��&���Zl\u0003�PN9�X��8ʯ����\u001e��}f-\u001fki��\ra\u0004�F�lAۭ\u001e]��\u001a\u001f,���~b��4��\u0003�z%���\r:�\u000227\u0011�K\u0013�����\bx�BQЂ\u000e|��8�i��\u001eX��&�;\u0010G0G�ȂA\u0004�9ٲœ\u001cr␖9\u000b\u0004n\r��O,7��\u0003B��\\\u0006�\f���\u000e��n;f�r�3V��~\u0011\\/_ө\u0019\r#\u000eL��\u0002���#ܒE@��I\u0018\u001d˴�Ey3\u000b+v����$t+�\u0012�y:�]�er\u0006���Ҙ�����ʈ�˴�B�\u001ah�U�\u0001G%Y�*r\u000e6\f({P�\u0016L���\u000e\u000e��faU\u000eޔ*�Ʉr\u0011�Gj�5'�nݳ\u001cO}܉b�E�Z�v��7=��\u0007�Ei\u001c.��u]���\tL\u001d�fx��.$���B;)�\u0002��H%�)v�\u0015A�TN��B8A�\u0011r2�\u001c\u001b����X�f��A�T�\u000fS���a�Ͷ\fQ\u001d��ڝA7��]f�޵\"�n#h�\u0007�uZ�.w;�|B P��sH���^bWpX}�\u000fͪ(\b��;��߾lq�\u0001A�j\"N�\u0001�\u00142I ��C%���gm\u0004a��sq\"�\u0012F�Ȱ,�\f��x�|�Ō^I\u0010\u0000�'j�����8�R�\u000e~�����\u00008��m\u000e��O�-\u001d�u�M�C��o^k�\u000bq:PR�'����>����4~�h��R�F\u0010\u001edƍ�_��ڇS�:��\u00198�s�y�_ݷ��燒�\u001a���\u00008��g�)%�����ۨ�*}2�.�4//�Py3L��\u0000���=\u0015�:\u0016����b�𕹑\u001bp\\\u000e'�}��\u000fi{;�5]����x��(�ќ�� a���\u0004G�]c�s��\u0000Dz~��\u0016�U����ᘟT\u0006\u001cc���!\tN����E�+�Mb�y���\u00177\u0012H�dֵ�n奔�s4�Ϋu�3���\u001c�7֪��9�N<0\u001d��C�#�8a\u0001�\u000e\u0018\b�:\r����/Tuf�&IL���H�g���~~]]#^G'\u0010a��l�\u001c�2ן�(��p\b ��O���$����9�\u0019!\u001c��5�^\\��wCw��6\u001a���k�nby\u0010�R(�\u000eLw\u001d)N�1���<��irr\u0014G�v}��.)G>3R����7�}��\u00008u��$�C�]�\u0019��D��G�\u001a�\u0002H�H\u0014&��<��\b\u001d�0�9�\u0000.�\u0000\u001f\u0011��=��a�?����X���tz?�埖E�.�\u0014a�X�D�W�\u001a��i���|潗�Y<+�r���o\u0007\u001du��:?��嵎��i:��Eq\u0005��\t�\u0005�h��\u001a6�\u0000\t;��ǣ��a�H\u001d��s癧ÒP��\u0017�:֥\u001d�鸵�\u0002\u001e>�\u0017v�\u0002\u0005\u0014\u0000x��i��\u0011�\u0019ܪ�3N\u0019 8y��'�OT����5]=\u0004��h�\u0000Yx}B\u001ako[�ʊ\u0001�8�W1���r�\u0015����y�YeT8l��\u0003��2���R���#x�\\�\u0013�\u0013/�!vrm�);]�R9)R�x�<�\u0006�C)�y��s�=\u0006}N9�\u0018�T��U��y?@��}\r�宑\u000bH�jS�\u001a�J!�]��Ֆ;�^\u0001d�08>�\u0000\u00105�\u001f���hH�\u0000�\u0004�ϓ�i��\u0007\tK� t�C�\rO�v��\u0005�X��~��}�\u0012�J�Z�q*���JhZ)�_JX�ju�3����1��v=��?��g��1��\f�5G}� \u0011�{\u0010~\u001b���\u0000�k�ǗKK��x|�t�\\\\$���my$?��3���\u0005Z�k9?hq~b\"<$�@�x���y\b\\ć��o��q���}喝�y��>jӯmY4���..��)'�&�ײc2RC\u000f'\u0004T�#9��$4Y�b}`lyw\u0017pDe�ş\u0019\u001e�w\u001c��ߛ�W�\u0017�>F��������̾i�5�s�ڕ����}��{��&���4H�Ӽ—r2;��nC�\\�︖�S����\u001d=�1c�c(��q�ޏX� oʝX�i���f���$�`A���^�8�\u0002D�\f�D��^�w�����_�\u0016R�~i�\u000b�>���O��%��\u0018.>�r����Z��r�,\u0015�@A�^\u001d)�:�$OK`�65[_q���Y��M�pj8H �ѯ�F��7��?QҴ=\u0012ە�mgk\u0007�\u0016A/��coMm��w��h\u0001%��4��yu9�G�M�o������+�ʿ\u001b�=3�W�3�c��\u000bZ�\u0004H�\b�#/U\f~��͢�1�ȃ>���\u00198��\b�N��\u0017����R�ȿ�Zo�痬���ߛ����'\bl���B���\u0005�\u0006�����e��s�E�eGI��C\u0018��<9+��zg�\u0007\t�r�'���n���\u0000\u0007��L�忪?\u0002x��\t\u001d\u001f��m�֨�����۶yfPDͻ�}�O��\u0000�\u001c��\u0000��>�>��:�\u0000nfvnڡ�Vr����3ο��(>\u001b����M�3\\�y>6�\u0000����}��C{w��f\u0016��3|��\u001c<�ӷ7�\u0002�\u0002du�}�ns[v,8�=%�R�\u0019.'�\u0014\u0016geP\u0007rv\u0003��\u001d��;�G#\u001c@\u001b�}��\u000f�\u001f�[[O4_����J�I�\u000fSL�{\u000bE�|\u0002r\u001e�nS:&�'��e��Z��\u0001�\u000fjo�9��F������Qlji���,ٯs�\u0013\u0012�����Y`�V�̫�Z(�߮�\u0003�0�����TA]��7���a�E\rJ�@�>�O�\u001f%�\u0010�T����Q��dXby\u0018�\u0001�������t\f����G淛#���-(\u0014F=hv\u001d~����\u0018�)K�\u0016��f\u0000�\u0006G��\u000b��կ�/�<�i\tZ����\u001fH�\u0007S�Z��,���\u001d\u0018Dp�\u0014u��M���<<:�>\u001dsb$d|�\u001f�ev��~ )�@:{��$\u0000eW��}����P\u000e�|�S��]\u0013J��\u0016U�ڵ�\u001fb{S��|��vٯ�8�����\u00004�:?9>)�kPғM�F��\u0005z����ƌk��\u001d�k\u001c��^Q�AV]��m�﹨�N�_\u0001�x�\u0011\u0012�i����dAoAA�~���뛾�\u001e���7�_B�{O�(���\u0014��\u001d�L�g��KG�#͗X�q\u0015�֝=��s_���l|�u�l;�_��5�GW}�\"�\u0015Ma�i\u0017Z}b/��Q�zg��]�I91��\u000f��7��\u0000B���S�$?\u001c�_�\b�j��g�?a�����\u000f����!��v\u000f�����퇟>KJ\u0013�\u0000v���\u0000��щ\u0016\u001eE�·Ǒ��l\u0010���P���*Z0\u001d�+�����\u001c�ލh��\u001d�}��݂\"�m\b�^�������G���;\u001f����T�Ih�z{��>���\u0003\r�FIyPWn݇��<��\b'\u0015ޝ~��N'ޅ��_���0Ww$�r�B���t4�xE�\u0012��\u0004t�j~���y�՟E�\u00145�p7�����\u001br�@I �E{�Ѷ2�U��\u0011�#���\u0007\u0006�>ha)\u0003j����dO?r�N�-ɮ�����\u0001T��^u*i��G�Gk�T�\u001c�oN�\u0014�\r��\u0003u�5\b���m����\u0012\u0005���`\u0010v��w�̤�-S���ħ`w�\u0000?�L��T\u001aI�e\u0014\u000e�\u0003���^\u0011\u001eW�\u0004�\u0015;�~��O�4A۽#����#J����F2%@i�}6��\u0000f�_�T[���>\u0007��mᒏw�\b�&�O�ҟ�S����)C��؁ֹ!\u00106\u001c�Y�;uB��ڛ�\u0000Q�\u0002��fM�@�S�S�W��)�\u001c�M�_4#�??���d\b�#�-\n���n��2\u0007nm��D f\"��n�������y%����A\"��2<����\u001eF�\u0013M��Z�B.��Ž�e�E���\u0000\u001b(�\r�ï�z����p��Y\u0007�s\u000fO�\u0007/������D��E\u0002x nU�żֈ|�/\u001cr�U�\b޼WyX\u001d�\u000f�\u001a�c^�=\u001bOc\u0001�񼁾+;���\u0000����^:�H$��4t�\u001d�\u0017�%�$\u0011\u0012C\u0013Q�zu�=\u0016O\f�������DL\u0010=�����=\u0015%��ol��E���λc(i#FE�\u0015�\u000f���Q*\u0018l�\u0011 �A�̢\u001a�p\tV\\A\u001d<���.�\u0012:)���<���\u001f��\u0003�\u0014?14��v��~F��5?(y��\u000b˞u�u����Q���W���\u001bM*��|-ia�G\u0004\u0013�\u0014��F'4�&92}9pG'\u0010?겨�U���\u001d�\u0006|8�+�)��]��$��\u001e����y�J��\u0000YѴ���m`���S�<�}n�pڵ��\u0017_�M�hѴ�\"\u001e��R\u000fN�\u0015@\u00041�p�Q�#i��mD\u001f9s?&s\u0006q\u0011�ÿ���ww|^c�y��ʚ]΁��ug�\b<��yV(��S�?�u\u000b��7\u0010h�4E.o����q�\r�,���fd1��\u0006\u001c�\u001d¼����Jq�\"D�^�I>C���\b/�\u000f-k�:6��y��M\u001fX���?����]��\u0019l�/�҅ߙ�ktG�u[�YK\u001b;?F�$��7ff8�,Fo\u000b\r\u0011\u001c|\\^r&��U�����\u0012\u0006��\u0019\u001fM�\u001b\u0012O�o�P\u0015��d򵮇��\r\u0002��\u0016�M���՚%\u0000�jڔ�_M�\u0000���t�\u0012K\u0000�i�g���h\u000f���-S�\f8+pl��\u0000c\u0019��]=4�h�\u00133F�\u001f�q���a�\n7��\f`�б�\n\u0012�!�\u001e��璎\u001aJH�˿\u000e@x\u000e���4-6\u0007>v�(b?_��;\u0014S\f�hC��\u0000\u0015��)�˪�ƞ!�\u0016�\u0013\u0019�B�EO\u001aчB+���D)L��\u0018Y�ND�eܞ���M�o�����.o\u001c���\u0016�gs<�08HC^���&��͎�\u001d\u000e\"}!\u001b��7���˩�77�R��J��\u0005x�\u001e��\u0019��'\u001c�\u001c�\u0014�0���}�\n\u000f(~N�zŨ��Yͯ]-Hs$���'M�x�w�{�&!��c<�\u0011��]n�u\u0019O���>)�~��^p��\u001dy;NһP�##;�\u000f_�?,��+�2Y�LDksA����\u0017�$Kvxn�\u0016XJ)G�m�I����� >X�\u0013:\u001c�\u001f�\u0000�x6�\t\u0003�埗\rк�����N�,'�����\tm����g�nlom�T�����Y\u001d\u0018\u0006V\u0007�|ݖDH��Ǜ�X�x��#��t˂�\u000b��9�\u000e\u0001h�\t�\u0010Ɣ\u0012\u000f�*9\u00004]�z����z��,y\u0001�\"Ĥ:�(t�3\u001e�緡��KO���p<�G��y\u000f����3�b��r\u0007�gKx��~q��W��*d�K�Y�����\u0007�I��hvϲ�OM�v&YLz`,{�/���O���\u0018��z�\u0007m��_c���W嗚�1��󒍩�{U�w�?�\u0006?�\n<��\u0019�\".�0�y��VǗ���o�Ʒ��Xn��^���\u0014rF�U�\n�j����\r\u000fb��@0�mo�C)�j�v4��=���!\u0010n�ȟ3���e�Omu��\f]���\u0000�\u001b�!�7\u0019H\u0010\u00019g�$�����\u0016\b x\u000e�M:.�w��U󕛬�Ѹ\f�\u0013�G���|+ĒEW�a�'�=��Y���P�cwO�֫.�W\u0019���r������}yk���a�Gl�s1�y�Q�]d�\u001aH�ʱ#��x\b�.��1�8G\u0016�\u0000=�i9!�]�e�~(��2��sh�o��\"�6\u0017\u0013\u0000�8�ň`%�JA\u0014���VJ�7\u0006/�j/�;V����S�\u0017)\u001cJ�\u0012\t��(fv,�R�vb�OS\\�0o�y�^A���\u001f�޼t��ާ\u001b��\u000f��%SV����Ȫ*\u0006��\u0015#'�&/\u0013F#[�?\u0015��\b�e;���>��Ay���,6�C\u0005�J��ĒYN��k��.p�\u001d9|Hzm�ve(@�]����|!\u0019���\u000e�����_�Ҵ�I/.R��O���邘��;�]\t*[�(@%$S��1�\u0000�yL\u0000d%dw��:=6\u001c��!\u001b؀\u0001�=6�;���ռ���k��V\u0012K�k�\fSY\u0017a\u001bO\"�\u0018$�2��y2\u0010@#�\\�1�\u0016����\\�\u000b������\u001e��*H�ȱ���{�M�l���k�?!�^�N����L��^�\u0003YLQ�/�'[F��eX�)n&�\r�g;�v��7hg��\u0003\u0018�A��ߴ�����i�\b\u001e)��`W�v#�\u00008�����&��/y��M�i\u001eQ��Vܑ��;\u001b�7VqD�L�����\u0002�\\V�4��Iٺ\u000e\u0018f�׌g�{�lo�v\u0006�\\NLY��>!�Gq_p�O�b�'�?�#t��\u000b��z\u0006��j\u001e^��?/<�\u000e��Z��5�g\"jzc��\u000e���:%�A�\t\u0004�\f:m�xZ�ǔr�̡�L���L�{\u001e�\u000f�z1�\u000fic�5\u001c2�(\\%Vc\"=@�`�o���/1�gy�Iм����\u0007�|ϧYG�\ro��_^��?�;F��\u0015va\u001e��[\u001a�\u0002�@I'6\u001a\u001e���˓8\u001e\u0016��#�Y�B>@��gjf��LJ��Ո��d�=12�FA�?�o���\u001eD�t�vi�/渻�.a���\u001e\u001b�ROY̲��0�7�()��m�c���.�\b�\u0000DV�#�/7��\u001f�4pÜ�e�\"\t�T����FAB�\u0000�\u001aq�\u0017�\u0005GM���Nn�?{�\u000f��_���X�~~���\\j�Bk\u000f�\r\u001dP\u00137-\njj��V�.�<���\u0006r��hη�3�2���\u000f�c���\"c��ir�9����&/�����\u0004���E۫���\u0015`\u0019\b;\u0015aU#�\b?v|�L�}/o\u0000C�?��I?�oN�R*֛\u001a�\u0000S����@�L�w�u|���~�V_��c�;�1�\u001e�^���\u0000�%����#��;��<7�-X�2\u001en&cTz>\t��\u0007}�__�ٯq�\u001e)o������rk�Ż�d�\u000b��j�\u0000\u0001�N��~gT8��5��\u0000�o��_��ˑ��PV5P#Q�hv\u0003o�='\u0006:\u0002#�j���S՜�P}���噎9�jq�Z�ֽOoj��\u0005���tF��k�_�\u0015�@��ǫ�W|Gب�<\u0010v'�|�\u001d�?z\u0010Lji^�\u000e��檋���>g\u0001ߚG�\u0011�^��V�V@8)�'ۯѐ� \u0005\u0005��$��c��s�rjz��\"��f�7\u0012v�N�hz1�[�uV\u0006�\u0007�w>���s�=:<��*��ǧ�a��ٺ�s��,��\u001b\u000f\u0013M�?VY\u0010\u000e�`v5ՑE\u0010\u0000\u000e�~�m�҇�2\u0014�\u0004\r��\u0018�AJ��4�#o�L\u0000Xߛ3W�����5`?v���D�6���q�n.����*/�O��t�\u0001���u\"����3��b\"j>��{|�,��%�z*\u0002��W�JliM�����#\u001d\u000e�����/7�^@\u0014�\u0003�a޵��|��\t�\u0000��D������Q\u001a�J��C�vΞ|�\"�\u001e1��UbF��{נ�����~~����m�,�ͺR����f�(���<��*���\u0000D��3���B�:��\u0018���p\u0017e\u001a�!�`�#�D����T��\u001dF|��\u0000\u0004A�\u0015!�/����1�ω��>��â��\u000f���<������\u001d��׾>�버摟�w?v�#\u001a\u0001\u0007`�?5�\u0014�>�����\u0001��y1\u001d=� ކ�����A�\u000fJӤ�\r�\u0002;��<�\u000b�͍~�l�,⠟n��J�ec�\u0002����~��]5�%\u0011�Θy(���C_��u\u0019\u0013�ȭ�DD\u0007��;}\u0018(�|��n�i*����$\u0005�T��l�p;��S����\u0010k�m\nn��k���m�\u0004�\u0014�|Pr�\u0013�}����\fN�͊\r�5O_���Р�\u00154���>8j���C�A޵�\u0000?\f\u0017��\u001b����`T�\u0014%hEH�o�ߦ\u0014�|׼{q=�~T�1��E�QJm�ڞ\u001e���$�5�J���ژ���nK\u0002ې;w��\"��\"ǑJY�'~�F�\u0012Ys�h`��Bw����\u001c�&��B=��|�\u0013\u0004\u0002Aٗ\u0011���Z���\u0000�l������\u0019�\u001f��\f�;oѢ�tR\u001fz\u001f���8I�|�@��UE*\u000fM���ddH�W�%����_���n�Gz�5\u0007�5���om��\u0002�Rn�����\b��U\u0003M�z���\u000e���4I��(\u001e�A�\u0007���\u000e��\"A��\u000f!�z����?�\u0012\u0005y1\u0006@��\u0004\u0013�t�+�����)�'��A>���������,��h7jW�O\u000f\u001e��)��H �@�Z����o\u001a\f�� �v6\u0012�ڕ��\u000f۽��\u001a��cb=Y+�zq\u0002k�Z\u001d\u001c���Z8�\u0000��\u0007�s'���\u0003K�&y}1\u001b{�=�S�8]-�\u0016��0��QS�m� �\u001e�`�4�N}\u0001��\f\u0018#�\u0014#\u0010\u0000��\u000f�j2�>ie��#e�~h�+#�8����\u001br�\u001f�\u0016��COj���\u001b����\b\u0016{�\r���\n\u0018�P�NN��\u000br�Tx$dr�ضgc�3ېq\t\u0004���^o�\f�\u0016�$2�������b����\u0011C\u00115a%˭\u001c���#�a�R�!1�����@d\u001c=|��\u0000oGƟ󎟝\u001eg��g�����s\u0014�Dּ�r-5�ADv�J�V��k'��\u001eR\u0014�\u001bͩH'F%m�\u001c?�sM�\u0000hh1j4�ˀ^�G�\u0007<����\u001eq?\u0007\u0013I��$�0\u0006���#�3;W�%�C�����q�^o�w�5\u000f ~YyZ��\u0000�zU��%F��_�U���\u0004����\u001fW�մk[\t�Z���\u001cK@�\u001eW\u000e1\u001e)N@c\u0012;����\u000ewT\t�f����\u0001\bD�\u001a\u0017�����5D�!I���\u0000*�-~h~Jy�Z�N����=Ǟ��懍���ht7�|���q{,�3�q����R#@�\u001a��P�GQ�\b\"\u0011�@\u001dx�D��X�h�ɞ,�\u0003��JG�\r�>�;o�<��̗\u001ea���t�2M\u001f��^�8��7\u001a���̤Sf����$n\u000eQ��#Œ��_�e3#��0>}^_�C=ֻ}\u0003����\u0000X��\u001d�� �\u0004\u0001ܟ\u000f\f��\u0011.��L���o:�kmGI����ѣ�UPM\u0001\u0007�$l~Y�b'2\"(\b��Kcw�'�vA Y\u0014�?���ŪQ�^��X�W�\u0007�D�c�\u000f~Ϟ.�Z�ROQi\u001dӵ\u001c\u0006\u0002��V\u0015=k���5\u0012\u000f0�d�y'rZ����\u0000��\u0010�q�@5ߕ\u000fm��&Uհ\r�w\u0011\u001d��[r\u0018\u000eM®:T�x��\bH�\u0006o��6��&��Ki\u000b��\td��m�e���<��\u001dg�Z6�\u001cd���knh�\u0005^h՘\u0013�P��tЌ�Nj����3��HѾ\u0017�_�wq*&�\u0014���[��\bҁb��%B��Ar�|�;8\u0018�ɪ��t{��je�\u001f�'�\u000f\u0010�����\\�„�䑰W`\u0016��\u0004�R�n��\u0018��?��~o�\u0011��^H�\u0017�<��;�\u0004T�\u0011�xw�d��Hcdg�v���q\u0003A�\u000f��ϡ�\u001bD�WO�4�NK�;���\u000bM\"���S�X�X\u0012I�\u0000�d�ȱ��GP�\u000fL�ǭǡ�KQ�>�F���\u000f�u�I��X�\u001cp$��p�f�۸sY>_�����\u0000��&tO���\u000f)y{̿�:ݿ�zuηmi�$�\u001d�N���c���->�\fW�;�+��@9�'��\u0007k�ɟ�a3����E\u0013q>|�+���ϣ�\fz�\u0019f�\t��\u0012\u0004\u0003�?�\rH��z����~\u0019�\u00008�k�%�\u00009W��?'�-��]\u0010����\u0000Lx��7���$\u001aW�nm$�{|_�?��\u000f��\u000b;\u001d3L�\u0000����ҽ\u001d\u0013�\u001a���o�ȝ\u0002�\u0013\u0014\u001e[�ާ\u001fռ���\u001c0�\u0016�W�^\u001f�_�\u0002G�*���>}�\u0000��\u0000���^Џoh\"\u0007fj�x��c�l�.\u001c��ʲ_>!^��\u0000\u0003_i��p\u001e��\u001f��1�\u0013�q\u001d=��Y�]�q��%c�\u0003I%HX׺��~��0M�\u0017T�&!Qz\u0006�}\u001c��g6�B�'\"\u0017�أFhI$oM�ce��n�Lh�\f���\f�]�]c^\u0011��K\r��)�x�+M�9��\fO7w�C���nf��9\u0016H����ӂ�T���\u001c�t��\"%?�\f�7�T���8�\"�n]\f�%��\rF�\u0018�!D�D��H��\u0007�oO\u0017��Q۸t\u001as\bT��a\u001b��|�\u001e>x��`�\u000f����Y��X�,���#O�c��Ҵ��\u001bKX`P\u00128aT\u0015�͹�'>��\u0000�Η\u0011�G\u000e(��Ǐ`6\u0000\r�?1�a��4��H��!�N��/�O�\u0000�\u0016��u�\u0000��O��v�H���mi;Ɓ�K\u001dN��E�H�%X�0jeQ�\u0000\u0013���je�C����)�\u000f�nv��|ӳ2e��f\u0003x�\u001c��\u00008p|\u000f�b���\u00000�\u0000/�|����_1Euj|����y\u0013�\u001ae�1�\u0017�D���\u0006��ˢHG�{�]�ΗP�j���:\u001c�{��ևh�\u000e�C0?�˟4�h�CQ(\u00111�0A��}7��3�\u001d���ď�k1��\u0011�Q:xN&'�\u0006$H^�W�'�\u000f��\u001f�O�?6�tXJ�__K$'�\u0014U���7?F}U�wi~o�qȟ�F\"ߞ����\u0000\u0003[,u��)\u0001��c�d>C�\u001aլ$�ko�[lc�\u001ew���ë0��qr�>����N��(�\u0018\u000f&�NG,O��5N���\u001b\u001e��=���ݪqK�\u001b�]�����y���\r��c��F�?G^�q\u0011���l\n��Ij)\u0005�����=w]��t�z���:9\u001c:�\u0003��Ϟ�����?��~�k�_��\u0017��\u001cBF�}c�U����\u001cH�xG�\u001d�!�Y1�xy�����}�#\u0011��@������\u001f������\u0000��u{H�4�V/Ҷo\u001a�KҞ�\u0006�-�c�\"���]�Ju���O�\u0011��7i5�\u0004�J\u001f���\u0007qa\u0006����\u000f��o�2\u001d\u000b\u0016�\u001a���>_~\u0001\\��sD\u000b}���j�\u0000�0t�\\&���)O�\u001am���#�� \u0001�\n��\u0002�۾=\u0010E!Z&G�_on���ґ\\�\u0018Wm�?��t��r-I!PG]��\u0014ƻ�\u0013ת[-�Zt�O��\r��d�[�\u0013�o��\u000fz�rU')O]�է���{��\u001aH\n\n����\u001c�%2�+O����(�g�z\u001e�/��B}����E�=��l���\u000f����\u0015*>@ֻҝ@�3\f\u001d�4�\"G�qOzx��\u0003�\u000eʸli�6;\nS�8\u0001�]W�p5ۿ���q&¸��w\u001d�ױ��݃�e=�mI��\u000fo��L\u0003ϒ����Ǡ�Z\u001e���4�\u0002@�\u0012�\n�\u0011�۟���s���2�8�4+��3��\u0004d�\u0004\r��В\u000e����ž\u0019\u0019\u0014\u001d��\u001c�>\"���9\u000e����}�\u000eƛ�����\u001e�.�é?�}���;1�g\u001f��5�U�\\�\u0010-��?��u���\u000e�����m\u000f��ɯ���pG�w'���Q������l��i�\\RG~|xՃ\u0013�IJ��\"�����zi�c��y>�v�\u0007a��&^'�К��\u0014��_\fȀ�]\u0011-�o�|�x��A�\bģl�90DS�^j��6\u0018�k��\"�}\u001e\u0003���}彼�n��kyd�𹔯�\u001fn�b )�̨��y���n;L�~g�>N���͖��˥��\u0012\u001b\b���(���1�VJ\u001a�!�[�`\rv�s���\u001eQ������˂\u0013��H\\9����Ϳ'?2u��\u000f\"y��S֛L����І���F��'�v�M������ݛy\u0012\u001dF�\nF��W$Wں,q�=v\r���t����\u0000��y�ߦϓ.)a˶x��A\u0000\u001f ~o��2tm\u000f˞E�ku��o��-'�����[�:d�N���\u001b �oLp%\u0019��H$��,�9\u0007�X\u001e���c\n��;���_�w��=���\u000b�1��\u000bٯ��e �-\"����r�8��m��xQ���\u0000\u001f6���O2\u001b ��=�5�^����\u001c�ıX�I�\u001a��h��20Ƹ|�\\�xW�,�\u000f9��ˀd\u001b�͔�L�\u0005&�{fV\u0012$%]\u000b\u0001`D�e�e��t�YDm�ke/T�\u0001E$\nT�;\u0011�F��\t=Yq\u0010v\u000f���f\"�m�@Ll���Pr\u001b\u0003֛n�ʎ1\u0012X�dy��M����RK*�ǗQ�=��\u001addc$��Z�:\u000f��{�Ag[oJ\u0001�K\\�'�\u00186�lI��e���>����\u0000���ג�v�Vb\u0014�L�ԃR�oԞ����̙s.v9P\u001eOc�\u0000�Ҏ���aq\"z��[�j\u0007�Q N\u0010Tt�c�fV�юy{�@���g�\u0011\u0000���\u001e��\u0003U�5k��\u0001P]2��]C3\u0000T�(\r}�m�8��\u0018�v\u0007���u��27�>��$~��\u001b\b]�~��@�lV�)A�+��\\�L�\u0012(\r�\u0014�ك��2�oܠ���\u0004�5GR(\u0007�\\�i!xg�Z�BsNjav��p�\u0000�\u0016_��\u0000�}\u001b��UmWO}:��S�c+\u001c�P]���6�-�������\u0016��qm��S���{O�G��)�\u000fq\u0007��C��ٝDt�a��!\u001b\u0015�|�\u0010h��+��_���ɸ�6��#��槨�\u0006�W���|�����\\�e��ݝƱi���ޅ���ϬZ\u000fM�#�r���k�\u0013\u0001�-\u0006�4&1i哆;\u0000#U\u0010y�����:�j�ج�\u001c�c�\u001er&W\"H\u0002��2����՛���\u0000=y��q=�\u0000-u�4��\u0000������ܟ��V�ϙ�\b5��O�1iV�^~����\u0016����5��~�\u0015\u0015��BO9\rx~���Z�\u001f�8�1���\fЎ�9\u0007�2+a�3�\u0000w�\u0010t����A��<�9Q�c�b}Dnv'��~Tyc�\u001e~�W�?.�1�U�O�_毕o�����,�&Լ��D��zt�\b�ִ�X�,n\u0000�\r�J���_�ݏ������}�\u001b�8��\u000f0by�FB��C������]������c���������_�?�\u0000�\u000b�z_~Py�����G�,��w��zZ�:o�w���4�A\t\u0002+4yx�c�ق^��>T�\"��O�]���w��vV���eT2@���?���~��s�4��vd;CFF�\u001eF\u0012�\b��|Ѧ�}�%\tE�a\"�\u0011֋H���棽w��rU-���<'nl�\u001b�\u0000.���Z\u001fI��B(B��t\u0002�阹1\u0003ϛ�\u001dMU�.�#\u0010��ZFb\u0003)z�9l��y\u001f݊V�+� ���/�����\u001bJa1|!���[���\u0001C\u0012�x����8yS�sH��9�+XZ0�0v��(@�t\u0000)\u0004+z��Bv�[\u0018�aզYL��f�z�'��XQ��B�֒����}�\u0013�\u0018���n�6j�������ſ:�[~a?��\u0019.���u��mq�������4�\u001f��4y\u001a�]y�U�\u0014�*�A\u0018�%\u0014\u0000{e=�����\u0016^�\u0006?�U׸t$�\u001c���\u001e3�N���>���r\u000fDz����~��������\u000b����A���\u0000�|������V�K��~�\u0000P��\u0000=歩MYnn\u001c�w$��3޴\u0007\u000e�\u0018Ljp∡\u0011��Ԟd����v�S��u\u0019��<���x\u0016��\u0013�%���-��g\f��Lj�$q��8�\u00031�>��\u0000�\bɪϩ՟�\u0010��\\�_c���\u0018���ſ��)|*��̿(��\u00008m��$?�\u00174���\n_2y��\u001f��>Y�\u000e�oe\u0015�I�MG��6��\u000b����m��\u001d\u0013E����\u0016�\u00033T|'��1b�s\u001eL�4��I�c��!�k`\u0001 Qܙr|�\u0000�a\rN�Y\n'U�\u001e1���d9bx\u0000�̄l�\u0002&�}>o�c󆛬ZȆ'���\u001a\u001c���:����^�!P�r�m�6�|���ug��a�7q������y\u001d�z��\u001a�\\�\u00190�ğW�ۏs�G�s��\r4�>i��Ӟ'e�\u000b�q�\u001f��BЇGR>����\u0007\u001d��h�/A����|\u001bۍ\u0010�O�F>�\u001e^a��\u0000���\u0000b���\u0005jh:�� ��\u0019�z��i��ϒ���V,Q\u0003���t�:��򱢜;�Z|��r*\u000f�1�\u0014\u001aq\u0002�\u001c�҉�v�1�r\u0007���_g��vA���?[�&Y\r��j�\u0003��ΫȂ��b8\nP�\u0001�c���Ɗ\u0013\u001b�>�����:�\u0000\u0005H�������m\u001f3y/ɞC���֧qmoqkl.�U\u0002\u000b�\u0015T�H$\u0000�n\r6�\u0017��i�]����\\A�\u000e���by��ɿ��mR�R�\u0019|��^\u001aK�\u001f�����~��B�@�\u0019\u0012S��]�\u001fg��:h\u001f�\u001dTn7�2�?C��he�^�\u0019�\u0001�i$/�p;Y\u001e[\u0013�\u001f�\u000e�u.��^��?L��\u0014��\u0016;(�-A�Ο\f�$#-�.<�,���Ew�������\u0000�̮܄\u001a�ɠ�T��\u000f�m���U�C�p�p?��'C.(��\u001f�'���������\u0019��f�v�X��\u000e��Kn�N���\u0000�/����\u0000�?󐟙��&������E\b�F��\\�s�Z\u0013FWkEoV=��\u0015�W�n/�\u000fj{;���\u0002Y%�\u0003���,�\u00178��?��!�S�\u0014@�q'qݷ0�O�o&C���5�;�GE��X�-m홾����$�t�/^6�{��D�\"4~'�-��Pp�h�2�\u000f�{�ymn?��x��9�8ő�)w\u000b��\u000f��\u0000�\u0019=_��^n�����Z<��\u001f3�7��lv�d�\u0006�~$�I\u001e�v_�ymDF)x\n����W�;4BX�#��G�8\u001fL��,r�u�zn�ל�p\u00139#)\\�T���\u0010\u001da�\u00109l��\u0003~v�q�s�����N�7�/�L�zE�V�M��q����xw\u0012�\u0001\"��\u0007�Ϋ\f����{c]�?� F��m��s��w���f��K\u0011 Р\u0007�\u001a��߬�6���\u001f��,q[��\u0005�q\t!�G��\"�\\\u0001B%n�w�'���\u0014���9�\u001b>��\u0016Hi1\u00000���?_s�4��(*x�U�r\u001a��\\\u000e�\u0000\u0017c���)y9��G�zN�/\u0018׀?\u0018�O�U~�'s�5���#�}�L\r\n�(��e`�;\u0012����\u0001�`d\u0016w�[�\u001c/�{�~������>i��c����V��9D*\u000e����=�3l�Y�0�܁�'�\u0000\u0004�\u001f��zmp6si�\u000f�\f�\u001f�%\u000f��v\u0006[�l\u0007����\u0000\u001f*|�~\u0019��h����x\r�i�ڑ\u0004q\u0015������\u0012\u0006��\u0011�]\u001a���{c��\b�\u0001\u0012��ޝ�6�\u0000}ɪ۪\u0005�?���8�o�dy+Ɵ��]�`;\u001e�C üݬ%���p�\u0011��p\u000f,�$�\u001fbx�E�~k�p��M_T:|2\u001fM\u001fԜ����O���{kTI\u001ah����u�fL�\u0000��y\r��8\u0014�\u0007c�~\u001dFs$��\u000e��f�tLF�q\u0014��\u001e�z��(�ئf�Ŗ�-\u0018T|��~}�2D�/&1��l�\u0011^���w\u0003��ۦL\u001b�����B�v�ƾ\u0015�=w�\u0003�R~J\u001ecxΚ�\u0007��JSï�L�vP���p5�\u001e\u0001�T����#���ej������\u001eÁW��ﴄ�D�\\o8�@�O�6��3�u��\u0007���VS������\u001e\n\u001d�\u000fj����3?�\b�����\u0002L�|_C��q�\u000e�v�cm���'�e����\u000b\u001e���q�5�������2�S�ʝ\u0007�O\n\f��v�Wj��\u0011k���}�G\u001b|��\r��R�B�HX}�$\u000f�\u001c\u0003���\u001b���3�_�#��_��/�\u001e�����>��j~\u0015�\u0000T\u001fÿ|�n@_7�wqOî�MQM�\t�\u0000�m������\t�\u0010^C��@i��\u0014��뒃���0h[���m�6�˓�N�=\u0013G���!���ǹ����xd�w�4�d����\\<���\r�ҵ��O����\"h1?b^\u0005���f>�B6�z���`\u001eIS$��\u001f�C�܄;�AC������[AK%zv�Lko5\u001c���\u0015�zS�{\n�\t����0�M���˜<�D\u001bF�\u0000\"�u�Ja�eA-���E+CN�\u001bcέ�Du\u0015ނ����Y\r���\u0000�@�:��h\u000ek\u00027�+�\u000f�\u0016\u001d+�\u0012t%Iޝ*?�qLX�H�\u000eZ�����\u001e�=Ȫ�w��\u0015\u001b�������\u0003�\u001e�\u0000�\u0002�Yt�\u0013q�c�1Iً�\u0015Y�S���\u001e#\u0013Ɉ\u001b�U�BC{W���\u0019\u0002;�����\u0014�\u0015���w�PF۲\u0002�����\u0011�������\u0007�`\u0001a�\u0012��mZSj����\u001a��AT\u0002����{oL\u0000�W\u001a\u001a���ǒZ=6�\u0007sԝ��`U\u00165�\u0006��}�o\fW����O���G�\u0004^皋\u0011_\u001f�醅���ۢ\u0019�\u001a\u000f�\u000fZ�\u0000L5�ܐeC~hG;\u001e����\u001e�d\b�ވ\u0013�A�>HG;SĆ�\u0000n�#\u0007O6uŹ�H)(I\u001e��=��\u0005\u0003q}\u0012�h*kJ~\u0002�{�\u0019\u0013��*�:={F�m7ʚtJB�w�jW*@���R\u0000OS�%����'�\u001a>��$*s\u001cg�-��|��\u001dG�;N`\u001fLM\u0006\u001b�]\"rT$I�\u000e;\u0005������\u000f�u`\u0013���N�uy6�x$Y\u0014��p�FI;F��\u0013J\u0015r>�]�\"\u0011#�/�4�]\u000b�_>�Ņ��=.\n\u0005���j\"(P\rà��*s;\t��\bj��\u0012{�\u0001�j)u\u0003A�)�T��H��\u0004q�\u001eVq���H�U\u000e�\\�\u0000D�\u001cc!-�\u0003����b�}6In��3ċƾ��b[�Jq�`A'm��_���\u001c�\\6I��b�4\rcO���\u0015�׼�w5Ų)+\t��\r�Əz��2�j�L�8;� ��Sw��\u0001\u0013��Nj\u0006ADw���G\u001b4g*Ɉ��$ym�=�S�&���/��_�mo[��Ҭ��\u0016��_&#�.��0i��\u0015��}\u000b\u0015cc ���~%&��\ry\u0001����'f�\"\r�\u0014��'Ђw\u001f�\u001dG�v\u001a\\��b�\u000e\u001fL��\u001e�\u0000q�^;�yN��O�\u001bu1z���t�xI\nE��cR×�\r�\u0006�\u001c��L�&$�w\u0000|��\u0012�\u001ewϫ�|�k��կ�V����\t*=(\u000b\u0004+�Cnw�\\��\u0015 :sp52�0qת���k�Ել��h�x�ƃ�q0�S}ڠ��B#$�9��\u0019\u0013菕}�cѥ]{ɖ�|/<0(\f�n�\n�'`A\u0007�J\\9(wn�DNj���\u0005�Gq\u0003�` W)B���T\u001d�\u0007,�R�\\�\t��9f�,a�\u0005�a�/�\u0000�6\u0004\n\u00109|�\u0012�\u001a�22\u0004WR�\u000f�ɍX�i�W���{���vWr-�ׂo�|R5~�0\u001e�������\u001a���\r����+\u0018c���M�\u0003\u0012E+Eؖ�۾Q���\u0000�sӍ�^c�\n�O�Y#\u0005�✥oO�Ic�-?���\u0000ZsFl���\u001c�w{��<���}�\f�m�\u001f���%\u001b��82pzm�'~ \u0012�.�Y\u0011DN�8j+\u0003��G�\u0006�L�Ṟ.�J]�^k�\n�:>�\u0018#��ON5�\"I\u0000\u0006\u001b�/n�:-61\u0018�\u000e��8\u0013�Y\u0004�l^%�k��yC͚/�5�F�o\r�W�b.LE~�E�$��x��f\f��b'�.�$NLU\u0010\u000b���\u001do� |���̋�CY򿖭|�'���oz�PX��gQ����RkNIn�9�$*��,tZ\u0010Nt8r`��&8�\u001c�σ�)\u0001u+\u001c\u0003�\u0000-����]O�#(\u001cY}4H\u001cQ �w������\u0000�q���u����K�[��/Ζ���?枝p�Y�v\u001ex�e�d�\u0011��җ�񱢧\u0007\u0007�3ȻGټ��']��c 2a\u0000�3�\u001b�\u0006��\u000b�8;s\u0016�Y�1���0�(\u000fFA� /��w\u0000w�a\u001a7�u?�\u001f���?�?126��o�)��\u001b���5�&ju�<��\u000b>_\u0013�u���cj�B��5�]g�fa�B�p8f\u000f1!������x\u0001Ó×!��ۑ\u001f\nz�����w��\u0000����M��\u0017�SO�\u000b\u001b�|��A���[%ߚ?%�\u00000��Ћ�zdoŵ_*�h�\u0006���\u0011�Z�B�\"0��\u0000n}���O��CY\u000b8�V�'���\u0013��\u0012\u001d��\u001e�k=��\u000f�c��2m�\u001d$;뿸��?�\u001f�ʏ��\u000f�?��_͋��?��,[隕�˩�/�\u001a1�����g�\u0015�i��˯1�%��h�q�Փ2�iғ\u001c�\u0000���[�5݋����!��n:�C�ЗQ��R\u0000��O�]��ݵ�����\t��\u0014Ot�1�_:=���'\u000fQ\u0018,��|&��Z�W5\u001c\"G�7m,���n�X�9\u0004�B\u0001\u0001$*���(zV�:o��c\u0000(��f��\u0019��x�s�9#\u0015\u001cUZ�,���˯Zd�\u0001h9�X�$��\u001d��;1���\u001dd\u0015$KƄ)ܚ�oҹ8���e�#�g��\u0000�1�\u0000�2�d�\u0000�ey�|���6��/-\\E/�?�ռ��yVŘ3�\u001aSȢ\u001d[�\u001a�U\u0016��[Ҩ�^(\u0005z�f����9�L�\r\f+�_o\f{�G/-�ny?h���v.\u000b�GU!��\u001d��K�S�����\u0000�z��ҿ,?+�(4O,�q�q\"�>��j������^\u0011���5^Y\\�W���\u0003�t�4�-��u}��:�d��K�\u0007py'�5f\u0005�v\u000f{r�\u0018b\u001f\u0012BҰD�:}�f;��d�9\u0012\u0004y��\u0015\r�\u001dX���y{W�%\u000b�\r\u0005�[�+ɧ�\u0018�c�l����?�(��Iؘ���bO�>3�\u0000\u0004-t2�<8Y�1}��\u000f�s�|����Mz���M��j��:F�w�k\u001ad�V��K�,g��N���+G$N��x\u0012\u000f�v�ūҝ\u001ex�xf(�@\u0018�׊'b\u000fq\u0004>[���d:�FC,y\u0018�#�\u0011DWx�o���p��s�̿��퇓�8�����o^������m��]�w�\u001d���6VZ��`�N��\u001f���˄MF;��}.��)=\u0005�1��\u0000�\u0010�\u0000�]��=,�W��0��X���\n�=@\u0000�\u001e\u001eQ�@�HP��!d\u0011��{i�A�=��s��:g�#r�\u001d�H܎;78�h\u001e(�\u0010}��\u00009��oi���\u0016����ئ�m�qx�L\u001b�\u000fn���*��A�\u000f�/�\u000f{c&\u0013�y\tℌ\r�\u0015��x\u001b\u001fs��ϳFL9\u0004\u0000�\u0003�Ur<�\u001eb���a�A&�{�?\u0014��y#a�T\u000eW�Ҥ\u0012�|��\u0006h괢B�H����qKK�3�����\u0000o{���~:��5;#!�d��`z\tT�}C\u0019��+\u000e���_\u0013���*�\u000f>�_\u0017�=��u\u001a9ݘJ\"��������M=�_:���xߙ@d�*��M*z�\u0015�9��j<~ˈ\u0016H�~=�%��\fu{�\"|��zϟ���ڵ�\u0015{�\u001e\u0007���?�,1\u0011*�D\u000f��n\b��.I~[�\u001a;D�������݁,Gꌉ�-�|��\u00008����/�lb�&_Оf�>X�\r��=6��\u001a\b'�.�H�\t=�w>�h#�}�5xG�F/P�\u0015�\u0003��.��~O�\u0006<�xS�\t���~\u0003��r���~_�h��C��+-J񬟘X䰚cqdT��4\u0012(\u0004f�3�p�S\u000f�q������\u0011�ĴӮ,d��/o���?�\u001a��1嫫P\u0014��h��x�|\b.R\u001f���vΐ��\u0000Y%>�\u0007�t��u�f5����O���5l\u0013M��\u0012\u0014����� \u0013�d�@U\u0018�R(a޹�}�fu\u0011�7����z�I��<\u001dD\u0007��{\u0010����Z6��渐����5�� �\t��\u001b�\u0002P�uڴ��;����ɏ<\u0000�\u001ew��\u000f#���9c爏�=����M?/��+\u001f���\u0000��.��~������]`�\u0018\u001c��Ɖ\u0015��x2z��wO�T\u001c�r�2��]����{?\u001c~9%��\u001d��{=��\u0003�}~YWR1�\u0002'�1/j��?$�#ygR��:��$�y�κN�{qc$�T_CO��.@X����\u0005��\u0019kŅ3��a����ڠf2_\f\b��\u000f�z�.l\u001d��æ2�b\u0007��2$Y�#\u0013�B��J�&5/�\u001fʻk�5�\\�v�v�����X�}b�\u001a��o`���kl�-��ep��RH\u0015\u0014�g��Moi�\u0006�Xo\u0016\"I\u001d='k\u001d�\u0000c_�z�>�O��hd�\u001e\u0010v�\u0012.TGC�����\u000e|�\u0017�\u0007�\u000e����4)�o:#���U���\u0014$I\u00138\fL��@뚯l�D��ló4�\u0000�z}�r�7ٍ\u0010��̗h���\u00000����z���<��R��)�������\u0006O���m�E��TS9�g\u000e\u001f�F�\u0002\u001d搜���2A�{���E��Ե%�\ba���\u0015٭�]\u0016�S�\u0019��3�\u0012>g<��\n\u001ak�m\u001e������HH}�ù�\f��\u0013�Ic#�\u0013\u0019�/̏�Ǧ��(z��\u0000�}�)�C���\u001eT��~��^7���q��\u0003�\u0000\u000b��;�-�f��yl�O��O}P�k\u0018,Ғ�\u0001�߫1���&\u0011��j�^��\u001b�\u0014�t�2�Q�#3\u0015�h\u000e��Nv���\u001a|\u00025��k��_f�����\u0000 \u0001�ݺ}9��<\"����\u0011�U�&��}��L6Eě\u000e���\u001d�T�=ʜy5\u0007A���\u0000?�\t+�FG\u000e��\u0003���z�n��R\u0000Cͻ\u001au�\u001e�4���b\u0014�=���޽�\t\u000b�\\[[<��cO�;\f���\r�~���\u001eqM>����\u0011�����\u000f��\u001dV�8q\u001c�ڃ���>��u�w>\u0004�i�\u001b�o'$�p��P\u0001m��*�8L��YK$���q�h��\u0000\bM,l�:���{\u000e���E\u001b�~}93�\u001b@\u0002�GM���>��F2��S(�� �\u0000�t\u001d\u0006ۀ\u0007�C�#��v���}m\u0007�6����a�Gs;\b�\b\u0014��ni��9\n\u0014?�\u0011������9�5<\u0018o�\u0000\u000e��7=�^0��\u001d�G�@~w~o?-B \ri3\u0006�\u001fҧ�ϥ=�\u001f�����}���%���`�\u0010��J�\u001fj\u000e���k�ߑ\u000f#���>��H��\u0003�(��C�̾�;:�j�\\C�%�\u0006�k\n\u001at�\u0000>�\u001e\u0019�ϗ�>-?��e�'���\u000f�L��v�cl�Ս+Ooz\r�_1{uv���җj�\u001b1�\u0000\u0019b��0�\u001d��1����ˁ��?�\u000f�?$\u000f�\u001d�6�W���|��\u0000\u0004}�3���~��\n\\]�\u0003��\u001f����+�\u001fA�3��W�W};S��X��7\u000b���_LҞ\u001f�p�[���Ϳd������xa�Μ\u001dG&\u0004\u000e��\u0007��:8>�k���@?���+%�6v�ΐ�A���׶�0Y����rj\u0012{�&�?��\u0019d\r\u0006'Ϛ\u0002\u0018�N����~�#`���}�}���'�4�A9�oý1�<�J_'\u0001��߹\u00187�\u0011�C��ۮD�U*��ӥ~ـ��\u001c��FG!QJ�~�.�\u001d\u0012\t��\\\u0000\b�Q�\u0007O4�\u0010-/'\u0000S���,N�\u001b\rB�h;���\u0010Y\u0003�R9����G�4]��\u0007'�����\u0018��%ďL�V�}�_v>J|��3�\t\u0004u�O��`;�5ӓF%�i׷����\u0006ܕ\u0000�'n��~�\nc�[@�'%4\u0002��郞��҇��������(�\u0017E\u0018\u0007�I\u0015�>�\u0000�ȑ|�}���{#�Ӧ�\u0000>��)�A�%����\u0011�:m_\r�)���x���Rj)Jҧ��\u001b�6�$��\u0014�\u0014�'�Gj�|P���JmP|=�+�%G�56�i]�\u0000�x�N�0tU&=;����1�*d�ۨ\u001bw>�#\t�U\u0016#�\u0004\u001d��\u0000���,dxB\u0019�\u0015���S��rC�6���#�![�:��}Ԩ��\u0017�\u0002\u0002��(9\rA��\u001a���2l�\u0010\u0012�(zmN���w�&����J��MJ���\u001a\u0007��b�z*3\u000en���]Ͼehty5��zL[�r\u001f\u00007'����O��|��G���{6��\u0006���Qj!�\u0004\u000f�᷁E(:)\u000b��=�M\u0018�\fc\u0001�\u0011�ˣ�e,��#̒��\u00000H8�'f�d&��<����\u0015�=�>\u001bs��.[sx�/%j�/6�4t\u0003�5\u0002����H\u001d�3\u0010\u0000\\�D�;ty��͗�l�\u0019\\5�@�۳=Ai\tx�\\�J�2#\u0013\u001f�ǽ���\u0000vy\u0001��O�>���i���8��!�5e,��١�()ԝ��7\u001c�X�ӣL�\bJ��y�����\u001b\u0018��U��p��쐩g���a�M\u0017���,�@�W��by�=\u001e+��gK�@��Q�%n-�\u001cV#\u0017\u001eAwؗ�M*v\u0019����~mY*<�\u0002�+�>p�\u0000�x�̃�c���v�!��t+��h^j�\u0003$�hڪE�$��{i�2[J9\n���b8��c�Վ,<���\u0007�~ƹ����a�DW�\u001d�~;ߧ\u001aw�䯑�\u00003��a���iz���5h��\u001f7y~��mSɾn����[����\u0005�Q-��Y��Qn-�Yw�\u001c�n�͢�~W!\u00062�\tW�\u0012k�|N�9��\f��HY \u001b\u001dD����G�#mt\u000b]\"�RK\u0019���&�\rKI���GP�5�H�˘���R�*h�Fdb��\f2m�2�>D\u001e\u0011E��0�\u0012��DX�\u001f�\u001f0�\u0017��E��I:*�k�;ԃ�1ʃ�\u0001Oߑ�9x��[q�8��\u001fr]�)�\t��4٤\u0004F^2\u001c��ZS�?^:�R�۱�\u0000�P�4����B�ɾ�V��I�˸\u0007cM�i�F�c�]W6!�Y�A\u0019��\u0012�P�J��CPPR�d���#��������\u0017澡�ZIX��\u0006��T���Җ��֥‰/�\u001a��\u000f��\rƀP�A\u001d|3+Wc\u000e8\u000eb;�T]F�!,j��\u00135\b49F}\u001e]f��\u0005\u0019p\u0000o��pk}ŋ��x���<������\b�חWӺW��\u001f�>��.~z�fyj/%~ly�M���\u00000|�h�+�F|��^hVk�}r�2yt��\u0019l\u0019�9��#Z��;[K��]n-\u001fg�~T���\u0012A���'���\u0007�Q]���u�\u0012e�9'�H�EF]�\u000b$G�Y��[���� �6��\u0013*�\u0004�N�\u0010o@=���\"p���GN�k�Y��/�\u001e���O����\u001f�]c�q��rO�6�����ܗ\u00160I(Ӽ���V����,��#{�\u0000(y���0�B�G�$yD^� \u001b��_���=�}���وŔ�\u001a�\u0000�K`O�O-�\u0002�M��\"��\u0006��+�x���\u0013,����R�\u0011�\u001f�&����\u0000�A�lC��&�6!{�qI�tH\u0014+���\u00124E$�vr�%QԜȎ\u001e-��p����J��\u0004�؟���i���5�ʟ��{;���+�\u0016��G�g��\\i?�V7J�i�*��Z�>��\"\u0011#�;�f��ɭ��v��C�\u0014�����r�\u001e(�+�_k�ݏz]5d�\u0013\u0013UDC�^~O�\u001a��ߗ\u001f��C�,?(����?�^Z�[h�\u0016�\u0018�'��\\j:��V�V�o�z�\u0017s�I#\u0012I�\u0000�Lqŧ�0`��\u0018��;��I�M�w|OY��kuGS���i�$�w�V�bi䐙�j����\u0007�D@�O�o�2\u00119%WI�.\u0018�����\u001dO�~s�on�htM&�]K,�biR�P\u0016�\u001a\u0012X�we襪�c��\u0004�n^�$4�iN�\u0011�\u0003�����_;~d��<�����yfyi�\u0006��Q��\u0010G�4+X�j��\u001a휟\u001c�\u0007��\r7fi�\u001a\u001bȟ{�~�c�Md��\u001c1\u001f\u000f���SV�u�YKT$�\u0001?\u0001V.�O\"j�'���.�͞v\u001ek\u0016�\u0006�6�\u0004?Q?$��}fm:\u0019�\\[_��\u001a\u001d���:�,��G 5Y\"�9��#�S��$�\u0007s�?�Ϩ�ub f\u0006���ϟ��\u000f܏����)?� �\u0000�\u0011!���u?Ҟ~�\u0000�r�M��>�5�\u0019�MO����\u001f�ֹ����ᵷ:c�٧�ڧ�5��ڞ���>�C��C�Aڸ���*0�a�\u000e�\u0000\u000f�\füd=\u0006ޫ�Z���ƞ�\\?�4S�\"n��cx$z�\t\t�'o�#����(��0o��>\u0016ג�T)\n��\u001f�a�3ڽ��!����G�\u0005>A�N����\u0011�dh���z=��q�Q�X�m6en\u0010J�m#q\n�ౌ0��}�'u�[�\b\u0018#\f��\u000er��~���,'\u0014��6�\u001e]��\u0000�*��&��K�Z\u0004u��\b�\u0017�\u0014�PKU�$�!�\u0019��'_\u0019i�\t\u001d�����G��2��\u0000��y���;��/�G���9�M��+�w\u000e�1e \u0013@E:��`�C���h�]�\u000eWd�e���y�p���\t�kSy[�چ�3$_Vծm�#��a�cn�=9\u0014\u001d���\u0000�2�>9i�f\u0019!�7��ޯ\f�!��\u0000���t�&S�\u00009��G�.y'�28�\\jZ$z6��h���YRF4��\u0017���cM�X1ٲ��9\u0018����h��5`���D��v+�����p�c��y���b�ϗCr\u001b�u^UQ��m�+�ز������\u001f0��أ\u001e��\b�\u0000\u0014G��\b�\u0000���6�m����\u0013\u000e�i\u0018�T7���'\u0007\u0015�h}���xFx�Nr���v��\f��\u001d�8w�5���_&I,��XH�\u0000�\u001c���\u0005�=\u0007Bzg��\f��.uO!�f\u0013#�%�\u0000~J�-�\u00008��\u00008����m\u000f��/:y�\\O\n�)s'�n�\f�D��ֶe\u001c\u0013F^���\u001d���.��L\u0018�'>LX����m�;=�giq���3同0C6K���'q�h�\u001dBG7���g��1+�\u000f�_ɿ�\u001df����F5����3Z\u000b��+w����{i\u00014Ry\r�5��i�b�e�\u001e��\u0001[��6�]���u\u001f㞃��\u0007ܬ\u000f^��u&���䊏��\u001bfó��.^9\u000fO�k�!�\u000f�v�\u001e�a\u0005\u0010 \u0011��7��;L8�ۣ��T��j�\u0000�ݾ{f[��薵$W\u000f�>}��<\u0013�����|)C�%4���&�\u0015�]�O\u001f\n`�Rd��\u0000({��\u0000/�()[�S�:����\n���;Sm���#�\u0006@_*\f\u0013�z�YZ�9\u0005\b�z�@\u0007�zes�\r��!\u0010\u0016_����b�Z�^�)\u000b�\u000b�%�lX\u001f�\u000fo|��_R'1�r\u0015�Ջ���\u0013�ϭ,�\u0001�����|>��B��@Rs\u0005\u0000\u001dFۊSc؞�%\u0012)h\u001eJμ�\u0013�v�;o�2`��Fԑ��޺{\u0002*=\u00175=��\u0000-����\u001f�������5�����S\u001e�\u0018;\u000f[��jz�\u0000�3�_bkÿ�;�$?tA���<�k'��_��\u001c�5��~t�\u001d����}M�Kh���ï�;��>ly��\u0000j�r�p\u000f{�O�c�O\u000f�9��p��Q��v�,�ȑƕ�|:\u001d�k�n��YU�A���|3\u0002N�\u001f5ک?S������\u0000\\}�\u0018\u0001��.$�¿�\u001fd~H\u001f�8>C���ϕ��3>��/�^����\u000b�ᏹ����=���O�\\+�W�\u0017w�\u0000:����UJm�o���\u0018�h�4���?5���\u0004��d�:�^l\u0000�ۿ����\u0011\u0007�\"Ѧ��{��\u0000�r�n�\nz-���\u001e����'\u0016w�]Mk�T��m���N<��\u000e�d5�\u001e5\u001e\u001e\u0003��}[��\u0013�P}��\u0000L?�O�H�^\u0015�o\u000f\u0001��V%-�����;��\"\u0006�jy�o�}Ϗ��\u0001?o؃ޢ�\u001f\u00105����dv�T�����`����j�Z�X��N���\u0000\u000f\n`���)�> {��C��F5\\����*A؁����Ͱr�[\"�\u001a\nm�\u001f|i4y�P\nkҵ����i\u0000|���\u0014�\u0014�s����\u0007�I%��w����Ȱ��7\u0003��\u0006\u000f�<���n��n����!\u0000�V�w�nGA��1�)Q\u0000\u0010jH�X\u0019�\u0002\u001aV\u0000��i���\u000f*Ꝣ�W&��\u0000��3\u001f�������\u0019�6��������xߗ&�H�=\u0001�M��\u0000O��r@�o��\u0006��:��~�Mr Y�W\u0012\u0001�ߠ�(O�1\u001b\u001d�|��\u000fjT�￾\u0004���ֻ���c�b�$�]�����\u0003&&��ֽ>g~�=��\u0006�u�1�I<��5+�\u001d*)�t鑮d��#�R�c�����^�6�'or�\u001b��B9=�_\u001f�C\\�l\u001e}R�z\u0010\r=�P\u0003��;|Ro�'Oԭ�y�i�+��{�:7�t�N��\u0019//\u001d[��\u0016�>\u0015�K�\u0000��d�VmWh\u0011�\u001c2��B��\u0003��[�\u0003O�\u000e��l����\u0019���\u0004z��Ҕ\u0017Q�\u0018\u0006��Uf�[��\u0002��\u0000�9�~&��˰�����/\f��yv�p.-�4��I\u001a�0���C#��\u0015�M�u\u00036\u0018�A�_\u0014���/��\u0000�>/�\u000f9�zo��O�o��4���j��Ǥ�a�\r\u001b϶6��T��Ŀ��\u0006k\u0013\"\u001f���K\u000f�@P���\u0004�w�\\��\u0015��!�����\u001c����X~�~Q�_��X�:e��{=������J.m/��\roT\u001aU݌�+-�Մ��2�ca��v8���\u0011R\"\u0004�DK�\t\u0003�a�\u0019d�/\u0004Ճ!��q\u001a#ʎ�\u001a��y�ˑ�X(/�D7=�\u0010�f�u\u001e9������a\u000e!\u000e\u0013ί�|��_�����9�0���@X\u0014��\u0004\u0001�P)\u0006��r�\u0012�ٶ�JF@\n���bZ5әc��\u0015\u0010��\u001d\f���J������K<��\u0004z<��A��{Sծ\u0014,66W7E��\u001f��Y\u0001$\n\u0006d\u0003޹��\u0004���mr$���7��<ڧ������{5ơt[y$�i\u001aUB���A�\u0006]-����0�\u0013\u0003��l�r�����P\u0007R�6�j\u0019K\u001a\u001c�c�\u0014��eNO\u001d\u000b/�|�`�>_ӡ��\u0000���c��\u0005EhA����Y�J\u001d(:�o)��\u001f�ܻ��\u0018��'�E*�F��|k�G\u0010\u0006��\n��58�\u0011�U\u0003Չ�F�\u0010�jjKTԏ\f�vLI�G�����\u0012C�D���\u0015i\u0007\u0010�Z�����Z�qLγ\u001dv�&�p2҂y\u0018[Ȅu���z��\\�\n�oRG`\u0016�j\u0002î��wh��������e��\u001a(�\u001d���~��\u0002o�z_��#��F��`��q�o\u00021j�W�W؜�U\u001e9��#�6y�d1\"Q\u001ec������q�G�׸�_T��}�iZsj�����H��6�ݔ�����a�'�\u0012��b\u0015A$\f���s�\u0012?���P�?]�y�37k\u001f\u0002\u0012��\u001c����<��~a�\r��'y~\u001f7G���6�s帿0�4k�\u000e��:k�2��ֶ�\u001a�5\tlt�3��U��O\u0011�\f�_i{WG�\u001d�>���G\f%\u0010$\t�)\u000f��m�}3ٞ��vWf�'hd�L�D�\u0004\b��\"�۞�I�п�^v�m��sq뭌��\u0004�E���9�\u0005\u0018zR|-N���y\u0003��\u001cG��r=���u����f#s����~�~\\5��\r���L��%�J�\\���\b�`�\u001a��^�Rt_���\u0012Ő���~=��Nx�u���>����N\u001a����cp��43[�,%.��R\t��ż�̯\rʹ�J�o:\u0015*h��5�|�=�1ȹ�� \u0011��G�==�į��o��������T���.4o�\u0015\u001f�-J;˧�?�v�lߔ�m֥\r(����]cӭ����Z�H{9EKpcד�/c�7X\f�����D�w�8nI��\u0002�1/U�>�v�e�\u001c��\u001aN�]��c��|��\u00008��\u0000>#�\u0000�P�\u0000�zm\u001f�_�ڭ���/斜�ߍ?^�}\u0007�OF�aV\u0019t�\"��}�V�t\u0005%է�\u0018���fwd{/ٝ�\u0011�c���2� �G����\t��\u0017����=|N-5i��j��G��׺��>|�V\u001be�t�m�����O�l-��4�>��=8-�m-c��N��E\n����P\f��]�+���O\r�R�2���}|��מ55\r*#��2�Y'\u0000�\u0006o��^��^�[�S)wrF\u0002&A\"����ݪ��\u0004\u0017<�\u0015b\u001b�;��fV> 8���e0\u0014\u0006�V�������\u0016�\u0004Q�-��v��\n��M\u001b,F�rƵ��;\u001e�����;\u000by�~\\�dx\u00003?k��W��^��-fԵ}b���#�\\]Hŷ�\"��Ϣ=��\u0013��yKsR?k�\u001e��T��\"\u0011ח��qhA\r2����}��?�u\u0013�$9��\u001d9\u0006�7���~p2k�YM-\r��\\\u0010\u00014�:E+�M\u000b \u0015�A�6�|�6\u0002/�\r:Mf9c�*>������\u0007��\u0000����$���\u0000���ӵK���\u0003�S]�?�Ǜ_�m���\u001a���\u000b_��b����\u0000�1Z8�~\"��-h�g�v�f����vV1Ů�3�����n/\u001e\u0000u��$H;\u0003�&�\u0007���=���v��\u0006�u�����*8�H�C\u0006�b���\u001c�\"_�\u001f�P\u001aօ\u001f�-`o�����\u0004R}h\u001bӞ�A��Ȧ��3Q�oh\u001d.��>�\u001b\u0006��}�\u001e���ӍT\u0001�\u0015-���\u0004\u001e~o\u000f�\u0000�h�u�u�\u0019\tY�c����Z0�S_�h7�|�?� t�r\u0003�5����\u000e&3�\u001c��~���rS��^��x�dOR5��\u0000��$���@\u000es>�j\u000e�SG����c\u0013�rw\u0012\u001f!~N�]i�W֒�\b��J!V\u000e�\r�\u0013EpA�{gU�\u0018�~\u001c��N��r�\u001eN\u00126$���䠛�_�\u001ed�*�m&���\u0004��,���Sr\u0001�����\u000e=����\u001bM)\u001e�6*x�\u001d��މ�]�o�?�\u0007g\u0011��Z��\u0000y\u000f?0yZ�6�,\u001d�x\u0006Ƽ��~y��\u0012\u001d���w\u0011�5�.ϵ�\u0019k�y!�P������\u0000?\u0017��+�$L�\u0004�m.���֠�ڛ�o��)��$\u001d�\u001c�'�\tp��\u0002��\u0017�^GgId�\u0002!f�\n���zV��L�>Ό|\n\u001b�^'W)N^@��o�<��\u000f�q#�q�J�b��g���ˮIa\nO�Xi2k����{H��\"�\u000bdrd��Ƥ��x����\u001fl;O$H\u0007\u0006oM�$�\u000e\u0018���z=�]Tt�����|dʇ�Cė\u0014��wu|�{�j\u001f�>Kׯ/2��>F�Ⱥ���g�՞�\u0000K�פj�k:\u0004wS��������$/\b$�\u0000S/�9��>����\b3��\u0000����\u001bH_.�\"'�ɗC��\u0006c� 6�\u001718��e�ݶ�u{o�o,#<�m�\u000b\u0006����\u0018���=�&9�m��\u0012���_���R\u0006a�,i�4��d�q��V�\u001b@r\u0002#���p�>��?� ��6z|\u0007>�����@�\u0017ګF������� b-�^�B@gi[p\u0005@]�S��Ԟ\f��\u001b;-\u000e/�F�C)��c���e�;�\u0000�\u000f�\u001d\u001f��c\u000b�\u000b;��S�%䞌NZh�Z�j\u0000\u0005N�:�\u001c}����&ďO�����-~�\u001a\\b�O��=\u0007{�:;�;E��-�\r��\u001c0��F�5��P����xs�9O�>�i���+\u001cO�;Zq�y�|����ӥ\rc�\u0001u�\\�\f\"UZ,\tJU���#=7�t�6Q��m\u0011�V\u0019�\\�\u001e3q��\u001f>��m�E \u0000\u0016h�4 �\u0015�Mv�o��aW|���!dX\u001b��|��\u00009G�E�~z�\u0000�+�n��\u001ci?��5����H�\u0006O���B�Kmg\u0001Z�ͨ�ZK\u0012S��f�ێ��ڝ�>��\u0007�)\u0018�\u001f�Pc�#�G\u0000�2�f}�����)Y��e�n��\u0006�ͳ^O���q�B�p�b��Br�E�,R\u0007��J�u�'\u0005\\\u0011P����BoU\u001e�\b<����#���\\��x��﾿.Oޏˆ\u001f�\u0017����ߨ�\u001b��\u001e��^`'�Z��cπ\u0000���M٤P\u0003�L�ޣehֱ\b�hQjE6�l}��6=��d\u0004��$`\"CU�\u0007z�\u0000L�����H!�o����8��\u001c�}WX����u\u00016��+Oվ>䝣g��\u0011�\u0007��/���G�GP�����W\u0001;�����MVq�\f�\u0012\u0001�������\u000b��\u000f�\u0011e����j����f5��Z|��8�NFS��l�r\u001c#�$��\u0014\u0004��\n~>��\b���)��|z��s^��\u0000<��_W_�>�p\u00057��;nK�����C�f�n\r:\n\n\u000e��'�+1fe�1#�:\u001a�n���郒ErVD=i˥|k��]�̥�bA�9�:F��\b\u0014�iL��A���]�\u0015���_烅�#*(\u0004�~u?�>�� ���\u0017�=��\u000eG�o5����\u0016�\u0015�:W~�xg��A����i?� �>��?�k\u0015;q�ר�\r��\u0011���Q\u0012I\u001d8}�z�k��\u000e�\u000f\u001f�&��;�\u001fF�C�9hf ��e�u�iZ�\u001a�\u0000O�03\u0011ד��w�Ojvڻ{��`˛��uT��\u0000�*��Ջ�k��Oz�p�!�\u0012��\u001e(���\u001f{��\u000f����Q��}�+�\u0000�\u001c\u000f����_��������\u0007��\u0001~���#۷A��\u000eO����m�m�7W�?r��ݰ��q�mb�~גy��7j\u001f�c�\u000e\u000e�\u0012\u0018\u0011�:}DZ�e�\u000f/zg��Y\u0000>?��� n���n@z=��\u000e�b/�`�n�Rk���G��\rs���\u0000?\u001c�槸%Q9G�~g疃{��N\u0014��Ǩ\u001b���~_k/>�M�b����R�\u0005\u0000���\u0012�z\u000e�}>?v\u0000(�lN�V�����\u0011G~��\u0002v�\u0001>�Ҹe�y)+�Z��=~_/\u001c�]�\u0014�\tF,\u0000�@\u001f?\u001a�\u0000L�:�\n�BW���>xi�\u0015�r56;\u000e���`��u橽7;V�\u001f�\\l�\u001b\u0006��-�:\u000f�ƽ\u000e(��[z�)�$o�{c���{\u0017����)��x�\u001b5��5#+\u0000G��\u0000:u�<�䃒S]�ԩ\u001e>�\"\u0012w�C�ڝ��u���c]��ԓ���ɘ 4$V��K\u001f���\\�vE\u000ejdi1@h�\u001a��m��R\u001f�����\u0014�\u0002i���|3\u0002���H�4=Mi�߱\u0018\u0000��Pw��\u0007��$\u0007N�ov��\"���?�q� �\u0014�i�P�������*�x�\u0006ǡ�4�'�\u0015C�\u001f\u0013۷q��| �%<�܍��֔�\u000fN��Do�*a~�\u001b�3��ƕ����̱$\u0001�y�C�ݏ]��)�w\u0003#L�.(�\f��\u001d��{���\u0016\u0012�Gr\nM��Q���\u0006{�#�b�\u0000��\t��\u0000,�Ty�h�g�~q�\u0012�/�0��\\�\u001f�\u000fZqU��w;\f���\u0015a3��nR���#�j����=����qj\u000fѧφR�����ߚ�,:l���#7��}I\"J�K7�Y�u!OZm�]\u001f�B2�!^��g�D��b~Dž��_��k:L�G���h�IJ&�B�n\t*j:f�c8�./�\u000f��Ɣ���d���ߘ���\u001a\"���̑��w�\u0016�g\u0011\u001c�w�t�\tB\u0001��db\u0007\u0004�_�\u001e��Le!;\u0011�>���=���\u0013z�\\!I�\u000bo,\u0012V�Czs��~EhE��>ag(�����\u001cC��c���W7�F����;9�;�\u00075>�'\u0010Bt`?\u0001��$%ʔp�g��up��wE��\fK)�Y�<��P\b�\u0003�2���PC�|�\u0004z��s\u000b�3۫�+o�@����J�φn�r��\u001f�\u0018�D���\u0017���������\r��u)�l�{�i���K��ged��񵵔\u0001c���@\u0000�\f=�\u0018�nJ\u0002�q\u0013�L9�WQ)�|&W_��VC�ã/�ͳ�b���\rxT7��\u0016=��{�9)\u0003\u001c��\u0017���L���φ�=3�\u001a�3IJFD�P����\u0007�>,\u0006dD��[C���KK��->3/\t\u000b��m�\u0005��\u0004�]�W�\f��\u000f$�_��x��䎦�\u0007��%R�_��Ң�\"9������W,���M|�RO\u0010\u0011��柖�g�Ĥ��#W\u001f\u000bP=K\u001f\n��ip�\t�m���W��v\u0003P�\r� \u0019A���AO��\u00006�v�kM�\u001bE\u000e<��ݞY�c$s��R��[���?��\u0000D\r�\u0016��;{d�L�e�ю\u001c#}��u���\u0001Y�&qZQ�*Ӄn\u001a��W�C%�\b�\u0000��Do��9�dKf�O�M���\\�vq�u@t��Ց,\u0006�4^:��Ր�J=2Í>��jk������]�\u0000\u001f�g\b��\u0011\u001c�?�¡�t��.\u0001����[1V#��-Р�RC}9�Ōg��\u00003���-��r��S'�\">'g꭛8H�\u0016\"F���\u0010kQ\u0018�Y�7��\u0014\u0004�Tf4�\u0006Y_.\"~���q�8\u00029�>\\޻���:��?,<��r��̿�|�a\u0013��1>�qkc��L��$6��M\u0014D�i�\u001e�S���H\u0006�Tb,�\u001c\b��Y���=?�9�S�_��G��\u0000\u0003�d�؞��O��F�1��6�n!�?Bky\u0013�M\u001c�5_�� ��<�3\u0007x���,fls�z'�|��_���Y\u001e\u0012Z��/N{Iϧ2�-�� ױ\u001bfN� Ǔ�\\�\u001f��ܬ߾�`\u0007�����_���Z��}����N�\"�T�l�o��殄�@�\u0015\u00079n��q�e\t\u000f�=$��\u0001�`��}���\u001bK�\r��\u00167�\u0002β2q��P��7��44�\nu�h�ự����\u0019�]�\"I%��\"K\u001b�#ni�\u0004$}��Ǯ��\u001b�D����\"F�\u0007ʞu�h��sy��ޣ2�7&%���(S��RE:x�D1���\u0019�\u000b\t�\u001aP3�\u0018�^Ak]�z\u0017\u0006�\f��\u0004� \u0016s�\u0019\u001d�!�\u000099�5���tkb�\u0016�K0Z���V5$u`+Rs��Q��p�R��\u0007{���R6�W̝�=_��Y+\r��7\u001f�N���U�ڠ�*[l�\u000fg3\u001c]��\u001f� ��\u001f�`2�s���? ��Q,�\"�4�ؑ�\u0014�ZUz�V���bD\u0011n�8*�mo��\u001c/��^��R\u0018���E��\u0017���NƠ\u0003�\f��&a)\u0011.V>����\u001c\u0000J=A���&����\u001ew��v�U�|ê���۲����]C�h�Lu\u0011�\u0006���҃�棲5���j��\u0000pCZ\u0004�\u001c��Ŕy��r�+��9;G�\\�L&�d�LD��\"q�4�3'�6\u001c`�Sx�hFq���:���3c�\u0003\u0006y�?�G$��� �Z�+����)c�>n���\u0000\u001c3h:���7PcC���y:�\u0018��g��\u0019!�]>\\�sa_��'������\u000b�cB�x�r`c�U*\b��/*�f^�O\bv^�$\u000f�\u0011/vܜij�&�\u001c���#��o�/��?�L7�Q���ycNfm�`�E*6\u0015*\u0005{�{\u0019�N\u0006W�VOC�4LuF2�\u0000Q�����H��\u0011=\u0002��ȶİ�܀\b��j���i#�vx|�JD\u000eCw�7�6�>��k�\u00008t�\u00176�S�W��\u0007L��;�?R�_8�Cuot�U\u001bնr�m�\u0019�}��9�}�<���\u0018��~�b+���^IC\u001fe�\u0003�\u000f$���4�o�g��]�w�˥���O\u001a]���έ�+M#�l�w�\"��Z��B-�m&\u0015*��2�Tf�Ru:��Le�#Q���#��s�;]?�І�G�\u0000Lc�'�ѰD`\u0006㬃ٿ/�ke\u001ex�D�{w�;ʖ�\u0004��ކ)\u0014�����n�\u0001EsW�#}&\r�\u001e����«[�\u0017\"v\u0007{>g�a����s��\u0016�M��7�|�+D\"��\u0018�i?(�\u0003~%*xp\u0014n�|�I�\u0013�H\u001e����W#S��<\u0000q^i\u001f�\u001e���/�?�\u001c<�)�\u0000/���`��5�\u0016Q7\u001f��\u0003��&P�h����i{_$�GU�|_������>ˀ��/���|�aֆ��{���kz��O��I��9��`��OI\u001a�q1�ZG��:�'M�\u000f�s��\u0001~r�\u001eNW�2�>\u000e\r�W�>g����\u0017�`�-!ӭK����P��RMB�e!����s�Dg5���Q#�{Dl\u0007@?[��a�\b\fp�{$�\u0000\u0011�����SR����OVmCQx�M-E\t7��F���;89Jǰ\\��cɨ\u0013�q\u000b�����'a�r5Yg�\u0001�\u001d�L�G����h�\u001fs*�&��G����-�8�������V���Wj�͋x�14p�lv脅�1���+ݵ'Y�\u001fdvI�\u001f�\b|��7�ݗ�����S7���W�~��isE�CY���$�\u0000EM7�\u0010G�\u0018 \"�Go}4�N�3�i�o\u0013��\u000f(H�y�o\u0003~q\"���?ˤq���*�U\u0015\u0007�x��HA�\u001f�vf����>p�<�$��\td\u000bɐ��z\u001f�\u000fE\f��v��N�|$�z{�w�Fh\u0002+�*y\u000b���\u0018R��xّj��*��xls��k�e�|2=?\u001c�~\u0019ѱ����\u001fC��I�\fA�\u0018��ԡ�w�6C$\bؠ\u0011\u001f>�\u0017���Ide\nC2�*H$m�o�\u0015�\u001f\u0017�\u001f�x�<���jZU��O\n;\bb?\u001c�Fʴ�N��0�Z�i0�Q-�E���qu\u0012��\u0018����/�W��w��1�z=픲�W�NK�)?\u0002�j~\u0011M�Fj;?�L\u001a�ÔJ\u0019��?\u0016<��>\u001e\\C�n>�\u0000��\u0012�g�辷�榮�h[��W��o��\u001c���[a����~���\u001em���+�o����$��8d\u0001�k�\u001a�;)\f@�#m�;d\f�\n��<ߛߚɯy�]{[{I$�����\u001d�RO\u0015�p\u0001�w��',�\u0018�\u0011��\u0000c���g {�{\u0000��v�:i�S��~��k\u0005�粜s��dV�S�E?�\u001f~��;�����TR1Ϻ�d�U׶\u0002�ϿOs�uʄe���r\u0014\u0006�\u001eW�\u0000?�\u0003�\u001fM\u000fˮ\u0000\t�\r����vS�|��R�`�\u0014=w�aL5>t�\f�jF/�����$x�\u0000\u0001�\u0007\u0004��\u0011!��*?,�`�b�Ǿ���d:\u001bX�}F�w�<��\tlY\"�ۑ�����w�skٲ��\f�W\u0017[�s�h\u001b�����������\u0018��Ci\u0015g&��\u0000�Ђ\u0012�9�>�v�gh�z�\u000fG�{o�����\b��w��<�B���ѷ�\u00194\u0006\u001b�S&��ӆv\u001a�l�&p�<���=����0L��\u001fX�\u0007�����G\u001d��@��Y}�ڣ�fv\u001f�}�\u0005��n��/g�SS��\u000e!����/��2*'�\u001e�G�+������1���>b�|�e8�<'��2;\"��z�\u001e��{}\u001bf.Oh�,��l���3�@�\u0002V���/^\u0004VҀ\u000f��\u0001�j�<�����Sw&>���\\2�r\"�ɚ���\u0016ƥ�ڧ�\u0013��l��\u0010vlx���\\�^�v�\u0007�~����K�ӭ�K��0E�\u001e%�Zҹ�O���Z�Ӟ#q��b�ٴ�H��*B\u0003�}Z�az\u001f�O�)��<��yS�[{f����D�u��f�������)�s$��\u000f%�W�o���؜�\u0010�{�����]�|>�\f����욓\u000f\u0002@��\u0003�\"vP�m5�ӧ���\u000bh�'\u0000\u0012k�t?ƙ1�|�M\u0019+���\u0000:�%�O4�іJ��r?\f�~��\u000b���\r��=�����I\u001c�rS�Z�m���OO�cv-Hc\u0013�\u0018�w�����\u00071́B1�j�\u001f��2\u001c5�\u0013�\u001c��v�����#t�[m\u001a���ҟ�#Ti ��)v�q޿�\u0006�+��XW�t\u0007���\u001b�D��\r\u001a�M�\u0004|)hR*+���LR\u0002��\u0013���zm��\u001b��r�\u0004Wj\u001e�\u0000�酮R\u0001!��w�:��\u0000F\r�ϕ!\u001c�\u0000\u001e��^أqϝ!_�_��S\u0014�ߢ\u0006R{\u001e�OΟFGܞ�S+/}�7�����ړH�w��7�^�ʦOD�\u0004�A�\u0010z�?vT�X�����r����\u001c����Ԉ\u0015\u001d����~\u0015�g�U\\\t\u0004t��_\u001f�ɍ͡��#�{�\u000f�\tY*;�6��t���\"��yv��\u0000���\u0001�P�\r\u0007N�x����N\u0011�H���\u0000i������\u0006�%��~>hY\u000f_\u001a���w醷h����i\u0018����\u0000��\u0003!!�Ų\u0006�\u0004\u0013�ߨ\u001d�VG�:�h'�7�}P�\u000eB�3\u0006��ߛ��i��ʍ_�w�}]��\u0012G��]��ԖF���������9\u0000��=����;3��\u001a�?^0%]��\u0007ȍ�/�{I�\u001e�Y��e?��\fo�m��\u001a w�\u0001�_���;��ʑ���\u00137�2�g Oo��E�s�\u0018���Z�-ݴ�pd�n��ol�a�Q��?ĵ\u0000��{�ܡ�`l\u0011�y����˧��;k��\u000f(�\u0002���#�\u0007���ϙ|�}�\u001d��w�2\u0017�ɚ�Ժ��uf?���fek9d?\u000e��\rv̍,a���\u001d��b�)��{���\u001by~\u0003���[�%k�:ޖR�G�\u0011���H{[�:UTp�U\b��\u001d��O\u0016;��e�*��e9Hp�4o�B+�\u001e\u0013���\u001b=Z��ϞH?�2J�s\u001c\u0015g��P}[Y�jS��K\u0010�#�L����\u0019�e\u000e8l/��;>E�\u0000\u0011�y\f�>��\u0019ݙ�\u000e9\u0003 ��\u001b�����2�\b�5�F^����_�?-��q�M.!�i�J�w�<��K]{D�R����K���o%+\u001c�\b=k��ˋ&?�f�\u0013׸�Dy���$\u000e9\u001c�\u0000˕\u001eD\u001ec���󦙧Nl5�\u0000.]~��αk�KD�?\f�h�R[k�\u001f\u0014Z��0h.\u0010У��\u0015�&\t��-��Dt���ˆ&�};����\u001eW{3H�!X\u001d�w�A�6\u0014\u000ei�a����|֩��o&\u000eW1�\u0001f�\u0016��\\R�?\u0015\u0015E(\u0006ٹ�\u001b���bO����\u00008y\f_�?��B�R���?J<\u0019�\rg�Bb\u001a�\u0016���5ï���`�\u001f��~�\u001dn�\u0015\u0003�(��#���^���n�w�n\u0011�Չ�T�\u00062x�$�\u001a\u0011@=�G���.1ͻM��\u0002\u0004������׵���:\u0018���P\\�\u0002��n\rG�3\u001e\u0006�@����@��u��Q4.\u0002��α�<�\u0000In�2�m�9d�\u0010<��wlC���\rU�U�#���Y]�w���In�mm����u\u001b\u001fl����[2�*F�|W�8I��!��\u00033\u0005 ��~\u0012+]��0�#z!]��9=ϥ�\u0000.4V��\u0012p\u000f\u0015�[�\u0000շ5;s��z�41�1�)\u001b\r�\rO\b��O����\u001f��(��+\b�-\\q�\r�˿�\u000fђ�\u0004�A���<Ũ�֣\u0015���L��Z\u0012��b�`\u0006��ʠ\f�q3�H�\u0007Zg�ʘ�r�\u001eV�i'ۣ(\u0014\f6$�Q��#z��;�]Lo\u0001�\u0016q\u0012��l�C�*����9#��㴬|����?=�k�|��Mges�k�3��}k${}^��\u0000���*g r\u000b2�-\u0017���\u0019�Z\r^aF�1G�\u0001c�w\u001e��95\u0018 E\u0019\t���j�OH����=Э|����bE��6$��u[�\u0014\t�s��{�RM��\u0001��#�`�&3a\u0015�b����;y��J�����9Q\u001dA�7�Zy����:���~�m!����\u0018�RQ�R�\u000f�a^Cb7\u00070�\\T����4-��\bm��\f�Y�\u0007x�|�k�\\@iFO���f�u��o�5�v\u0019\u0000��͚��\u0011��_�� �Df�Vd�r^�\n�-��ͫ�\t��$�����MXtX�:B${߮\u001eN�d֟�_��k���\u001b�7����/.�GG����]Ec$��<���Z�\u001d8�)���ˏ��9�?�\u0018��ɌFu�\u0000%q��\u0000��/h�rv^�\u0016�K��\u0003<7�\bL�\u0004��y\"?�}]�_���������\u0017\u0017��\u0019�\\�e��*�)\u0015g��U�\u0013�\u000e��qD\u0011�r=�\u0000���\u001fZc�d\u0006Ĩ\u0012:��z\u0007�\u001d��3�\u0016Ō3Z��G���#�4m�;S9]\u00191��N�_�zMX\u0012��G�ÿ�\u001e�\u0000���W��\u0012�E����s�.\u0016��\u0000j\u001dH���ln'bvpa\t�UnM��W���m��<�y\u001cԑ�\r\u0010@8�ִ\u0004�K\u0010:S:\u000e͈�W*D�:�K��\u000b/����O,ܟM5;{�h9I���\u0011=��\u001b��\b�s��C��l�}X�Fu]:���Q�@�p�L|����c�q����J��ӭ\r�K���Ӣ�O���T��z�j��+_l��S\u0001��$�Ն�͇��b�9v�4N����+�\u00170\u001ac|�C�����\u0011:�\u001c�(�-��v�d���Bp>��)@�]�\u0014\u001bV��{~-Da��t\u001f���\u0015̃����r^�Q��{�q\r�\u0002\u0016�<��+\u000b�d�\u0004�����'��Y\u001e$�F`�Pm�p=���u��ef93�#���w������p��82\u0003��e�ׯ7�z6�\u0016��[y�W@�E����;��p�(\r�1D@�C\u001f'�6�v��V�\u001c�C���G�w7��Ϟ9�\u0001�\u0012j7��t�\r����潮��ɫꒈ쭃O�Y��)�+x��J��J�\u001c��\\����;\u0011�c)�D�w\u000f/�}���q[�7��\u001el������\u0017��K�e�Z$D���XYD�R���t$�\u000fhd:L#E��� �\u000e��\u0000�\u001d\u001e8��\u0007W����ו�`\u000e���>����\u0000��������|���Z�Ao/��*œ��肶z\u001e�a\u0017+�[X�j'�\u0002;�54\u001b�:.��N��\u001e�\u000b?���\u0001\u001a���\"u\u0007lq$\u0002~��s2'j\u0000����\u0000�=���/�_�#���o�#����u\u001b��w��Y�Z��P��-s^�5�\u0019�޹#ҩ(���{M�æ�\u001d.�/�\b\u0001�o�'�؞�uz/gsgͦ�ƿ\u0010�9H�\n�K\u001fILt$��}�m�\u000f/%�6V\u001a��׷s\u000bHt�wV�@\u0001.̋�qB��N�ɝ.iD�q#\u001cE�����\u0006�\t��%\u00132h\u0001��\u0003�<����r��=;O�-��[�܁{���?Xu\u0011�v�O�k����\u0017�\u0000�����\fo˙�r0c\u0019�~c��lG��<��\fG�r'��h_�:����^y�V�ה�x\u0006����k�V��R�0Ʈ�t\u000b��a�;&��\u001cY��ǧǗ4�t1�?3C��}���\u0017`��G\u0014�\u0013ł\u0003�yrD\u000f�\u0013�x���\u0000奮���&����-|���%�e\u0005��6t�o\u0000\\�{[��]�u\u0014?���)�_���������_�b#�\u0019.��%���\u0000Z�\u001a\u000e�(=�Q\f~\u0018�E��07y\u0012�_Ia�\u0004�J)B\u0001�}��ɇ�&$\\O�\u001e\u001b݈i���Y��im��Ƒ�\u0005%��<��\u001f�-�K6��r\u0006X��\u0012b?�?��E����-,b���ۧ%��\u000f�3�����;��\fN8��\u001aTS�j��\b`(k�˭\u000efG��\u0018ԁ�>\u0018��|���)X�#\u000f\n�r�*\u0019��;�s_�͛QQ\u0017�w�@�\u0012l�\u0016ߑ\u001a\u0014�$k\b�@A\u0012F���w\f(A�3�r��/��\u0000��4�\u0000��ӕV��N5هΛ\u0011���ŗW�p�D������T��\u001e��hڝ���~\u0015��p}��l�ůՍ�\r��8���\tn�1�U�����'��(��Ҝ`�݊�彛�H����Y����jkL���2w(��\u000f!i�_��?��T\u0018�K�\u0005��{�q~]؏�D{v��d�e{��\u0010*�9?/,��1��?�J`�x#�-\u0014���@�\u0000s\u0018�t\u0003��\u0007\u000f\u0001^\u0018��_ �\u000e���E\u0000�W���5�r��\u000e���4�\u001fOӏ�$�D�\u000f#Y��$�\u0000�\u0015��X|#�D\u0003��%����\u0019\u0014��\u001f�N\"q6\u0018�Gɏ��S��/Y- c^��u��k5\u0010\u0015\u0012�t�$l�\u0015%�����l�\u0004o��L']�;]&:<\u0000،F靿冑\u00158�‡�V�p��^��`5\"k���;+M�q\u0011i��\u0003MZ\u000e\u0010|;}��\u0000k������0\u0015�\\\tv\u000e�����\u0005Ӆ>\b<>���ژ?�.o�\u001a���A��\u0005���p�\u0016\u001al:/o�\u0007�&����\u001d?@\u001d'�t�\u001b\u0003�֕\u001b\u000e�\u0007��>��\"��(�\u0016�\u001b��iz%��\u000b\u0010^>#���9���OXw6���\\zx�\u000535�+�M��mߦ`\u0001�9N���zdH�Sv����}�-��'�V��:�\u001e�\u0015�q��n\u000e�\u001a`\u001d�����戃i\u0017���Oڐ�\u001d)�]�O���� \u000f^����\u001b|�{�e���@PA��=���H\u0014�'��\u0004\n\u0010~�\u0000�n�p�\u000b\f\u000e�\u0011\u0002�\u0004P\u0013O׈\u001bn�}P�\u0007�\u001f\u001aR���0����\u001a�?\u0017ʙ\u0013\u001e�N�{�\u0000��\u0000:\u001c\u001eC��xn:\r�?�+�W}QT�i��;�~��7\u001c�$_EX9Wڿ?~�0\u001e���\u0003\u001a\u0003]�?/�<�M�!V\u0014�~~=qLN�,����~�\u0000F?z�rI����~C\u0012��6)\u0014�MA>>5�\u0000l��ÞÒ\u0011�O���1Q��!\u001f�����\u0002/��\u001f��x�%c�AK��\u001f�iJc��@=���呵拳\u0015j|���r���l[ �\n7�)�t�U�:=y������\u0006\u001d\u0018Pu��O�5��\u001d�H��\u001b�\u000fn�#�8:Z����W�?\u000e�!��\u001d|�f���m���\n�Z\u001e�o��;m���䐰��>_��U\u0016&�ӭk��ڀ�&�U\u00065\u0014�޿O}���w\fH��\u0007!�=�{w�v�O�z��P\u0004�!\u001a��C��^��'\"k�g\u0011 .�o]�w\u001b�\u0000�jS YY>�AH\u0018��pjj)��J�d}'��\u0003.1Γ�5\u0003\u0015֕\u0004mW�\u0017\u0003�\u0018��J5J�Ѐ6ϡ}��ai���a���n��\u0000�,���/\u0000�����4:�\u001f�?��\u001bo8�YGc�\u001f/\\9�ѿ0��\u0013\u0019\u000e��H����`ĵ��R��Ս�\u001dGgk�`�.��\u0001ǡ�l\u0011�\u001c�N\u001f�\"<�\u000e�I�6X�r\u0010�B<;�\u001c����=(�\t���Đ8Ρ�˿�ȟ+j^R�RM+̺w8.t]n\u0015��'��n\f�\u0005ͳRI�\f�bx�E2ѕ�2�\u001d����GS�Bx$6�~�\u000f�|��O�ů���2Ǩ�҄��\u001f1�wJ6%��\u001f�<���\u0000���\\~^�l$�����������:C]��ZjR�%\u0016D���v9�����F\u0007�U��5�'ϸ�k\u0003&�U�Μ�=��{��F����U����X5�(�ѕլVU����E�\\ڨ-\u0019�\u0010V�rz�\u000e)\u0001�f�\u0015�\u0016��O\u001e:7�\u001d�����KȺMͰ�g�nM�5Pd��� ���-F6Wj>(�6=\u001b|x\r�\u00196�𞅁\u0017S��]\u001e�{��K�;����ѵ'�u����Q.Q�P�]�GQZ���\t�\u001f�}���\u0018�\u0018��H<��.��_�\u000fRt�E�5ɛ����&��\u0000�D\u0011�~\u0014Ӽ�\nzl����F;���M���\u0001$�<>c�}�G�ܚ�a2�\u0004k��7[{�B6�z$�͋ZM*Q���t�2�\\8fY\"u;)F\u0004\u001au9VX\u000e.(�\u0012�\u0002~��!��wV:l�\tR\u0003\u0019\u0001\u0014<�|1�:���2��q9̛Y��\u001d5�H�.#��'S�H�\n�hHb|\u000f\\�N\u0006\u001e��\u000e2v\u0015!��O=h��\u0011 ^\t\u000f�ɐ��U4\f�b��}�\u001a�%}�ʄ�\u0019\u0003�'������\u0015��p'\u001c���\u0012?\u00055�\u0019�֟�r%\u0018�WP�dxC�W��^\u001a�\u0000�ם�ca5��q\u0006�k�U\u0012-\"�b��Z\u0017�g�\u0019.\u001f܂\\�S�W7��\u000e��k���Io���\u001d~\u0005��/8T\u001bQ�=\u001c��\u00002\u001axp\u000e9r����=�j�\ns�HW�t��*)�/\u0000w�\u001d2\u001aI֣�����1��\u0014�\toy\u001b1��\u0004�\u000eMZ)\u000b�\u000f�ee���3�O\u0000�9��+\u0007�7�Nj��+�3q$$7R\u001f\u0000w��ٻ:\rI��?�<�o��b��b~E���y��-�7\u0012\u0002һ5�\u0014ݞ���]��\u0003z���\u0015�Ɏ�r\u001a}��\u0000C�??5����ף�v\u0011�z=\u0013��r!\u0004r�,\"�đ�5k�寸�{ڒG�y�\u0013��./�\u0010\u0003�\u000fM��b;[\u001e3U\u0011\u0018�3�d�����\u001f�7\u0012�Z�����E��ڃ�\u0019�\u001e��z\u001a�d\u001a��y���^�&\u0013�\\~���@�\u001d�B���c�\u0001�;m�н/�\u0017�Z_�#\u0017r���r�r�խ�\u000b�\u0014|\u0016��)��b{\u001f�{f�R\u0011��nÖ@Ѿ\u000f���^B�V��\u000f4��U�C5���^����h\f�E�N8Ȓ��1\u0007q�\u0013\u0014a3���|��E�d�1�����{�ѷ��?�:�e�Q4}M�mB�\u0014\u001e��'+�DkGNG��T�\u000f�h5\u0018\u000e,�2\u0006��\u0015�������˼���-(\u0011���2F�jb�\n\t�_�`h���a�\u0002\\�,dz�?��_�V�%��ɖ?BX�#��\u0007��\f+��\u001d)��\u001d;�\u0013�h�\u001f���M3K�\b������*\u000021���z�L�\"\"�V$�b�{�忖 �E���!KH�YE?wA�c؂z\u001a��Dx��r�\r��\u001f�O�?=|��w��� �'Z��D�\n$j���\u0000B�|3>\u00105�\u000f���8���w\u0016Mo�|s�$\r3R�|��\u0007��\u0000��V����J8���7�ZZW��`�r\u0005Næd�c\bd&�D}���\u0019'��\u0001�\u001e��;-RM^]_Q�ﵭj�@V}N�H�\u000fC��9읙��A�w�\u0014~�����Y1��?j&���\u0018\u0011ŕh\u0018�\u001f\t\u0003�w�a��3%ő�S׿\"m�_%\u0018�A(+^5`��!��N1�gQ��T�{��{K\u0013�C\u0018����3�.�I'�\u0019\u001a!u��r�IEx�Hne���\u001d��q$Ш�g7 '��S�c�D�d@.�\f+K\b\n\u0007�\u000f�\r�H�\u0000-�?��V��\u0005��O>\\Z]�\u0010���O���t����\r\u001dhGv�߰�\\\u0013�+�Q����dže�{L\u000e�y��NQ5���\u0005u\t\u0016��K˺�7�rp\b�$�LB\u0011^��\t\u0000\r�ί�4\u0018��B\u000f�G��1��d����\u0017���}���\u0000�\b�����?TpY\u0012n2\u0018&\u000bBK�*m�\f:�\b�=�:/�j\b��W�^�A���H⾻�����^k�kX�c\u0004�\u001e���@���8.^\u0016\u0007c�?\f�!\u0012,�n�\u0014e�{\u0003�yyu~<�vLo<Ϫ\\�V&^���\"�qQ�\u001b\u0001�.��\u0011�ʜh��ۗ��V�s�>y����ฎ�6I��\u0015�\u0005rE\n�zm^���AǚS���=�}tu��\u00020�4�cʬ��\u001f�\u0017�W�?�~T�/��[{í間�\u000f8����(��\b�\u0000X)��QZ���~3���40'�\u0011��\\�gg�K[\f���L\u0001�'��~��\u0000��<�%����b�~�=\u001e�ɏ�\b��Ur\t\u0001T��\u001c�Oa3�Nx�ˈ�_�xe.\f��C�~\u0013�:\u000b�~j�UFS��[�\\�\u0014�p\u0014�P�\u00006?N{>�R0�ڈ��x\f\u0018��\u000b�\u001b�>��\u0000�蹇J��\u0000�|��m����m~��o��y|��xa�$$r�����m��8�g�ǧ�g\u0002�OU\u0001�\u0011��\u0000o7���\u001dF�\rІ�G�\u0019���\u001b[�\t���������ۧ�t�(�\u0015�Z+\u0015^���Ӡ�3B��y\u000e��݇qUQ\u001b\u000fw{\u0010�]c�~f��Mm���m�!��\u001cj�,I;�H�5kҙv\u001c1�\u0003�6�\u0003`�>k�\u0018.��=c�o�\u000fϯ/�R��\u001f����W~w�-��2��OC����\u0000̚�)��\u000f�u��o�_'iӳ\t/n\b/\u0018�\nI!\u000b��\u001e\u0012sK_���D��\u0011\u001d��%�d��r\f�4ئ3�\u001c�}4>�,�GS�L�H�>�h�o�\u0017�^\b,-��lZ0���\u0019Ū�\u0003\n\u0004���\u0005Ac��M\u0016\u001cW)���/˼�\u00045YslG\r�\u0017���1���������-����)�k�\n\\��“iZ,��V�r)=��\\|1�r5z��J=B�\u001d#�)��?77G\u0001�\u0017�֐m)�s�3χ�����_[h�]Gj#,��e�1�\r�\"�D�X�Uh\u0007@\u0000�G(\u0013��}Ydn�{�\u0016#�6�\u0006�r�������y�\u0000�\u001f�ʢ1&��t�j��Rj���ֳ�y;Hs��]��<�N�!�C�\u000fe�Gb�\u0017hv�֣Y��Gx�\u0012�?p\u0000G�^s��g��s��\u0015zm\u001eS���c\u0019CO��)�S���yo�g�c�{�kR���\u000b��qg�^i��������f���$�N\n5>�\n\u001c���]D�v��}1�\u0018\u0018��V�#��q�u�\u0007d�'E_�&o��\u001f1�o��\u00000&�\u0000�_�+PA�E*\u000ej���Ӵ?c\u001b�W���\u0012I\u001eP�*jX��k���k���y1��\u0005�O$�\u0000���\u0002k}\u001eƟ�\r�ڀW\u0007\u0014���5~b\u0015�\r���.��lcb\u000f�A�8�H����\u001a�h/\u001f��]�ȍ|e\u001d=��\u0013*�\u001c4����Q\t���u��T��\u0000v�ݿ�|\u0002R'��\u001dD\u0006�������K���\u0000\u0019@�>9a���jq�v���y�\u0005/c\u001f��k_\u0001�J6w$n�Q�u�=����^��Jm��\u0003�䁡�\u0016����{o�ǧ�K������H\u000b\u0016HG�`6N��۰?��:s\u001d;w�WRj���r\t�?��&��O�1����`\u0000t+��]\u0014�/�;#O���\u001f�$6�-��\u0018�#W�JƔ��W����Lo���LJz!?4l\t?�I�\u0000\u0004?���\u001dy�?��!3��|�()��}��p\u001b�B�c\u001a���e�\u0000-1����?^K~��C���вm�����Z�8�=���{�H���fA�\u0000HS��mO�%]/u������J�*}���\u0003֒s�\r�2���\u0013`:�\u0014\u001f�\r\u001e���5e\r/捊!o����*\u0006�\u000e&�_�c�1MG�H�\f�_D�W�eQO~�L�F\u0002̇.�3\u000e���\u0000�\fN��go۬��\u00005|�\u0011�\u001a�G�5�u����6�j?IA�~��}���\u000f�\u0005\u001a�^�\u0016���\u001e��\u000f�+����7'���\\&Q\u0010��\u0014\u0007z?7�\u001a��y;�0�\u0014�ʲ��H*܆���7�a0z��NV9��\u001c�Ƈ�_�A���2#њ���|���\u0013�u�(��xo�v5�Ey?�����]�e����-Hژ\r+��\u00001�|��\u0015�\u0013\u0012�\n��\u0000?l������M�k�� \u000fN��wFS�QO\n��'��\"&;_\u000f�\b�CQ�Q�������\u001bӿQ�d�\bi\u0014��S�>X9\u0014Q,v�>5���܌\u0015{�<���=G����\u0019\u0011t)\u0007������w�O��\u0013WK檰�#o��G�\u0019\u0013�H\u0006ѐ�C����`e]��̼\t\u001fw����󵐭Œr�h\b�?Ϯ;\">J�I����߾\u0006[�K� $1=�O�\u0012\tٍ�8�\nR��v8�i&�\u0014#n?\u0011N�\u0000�:�����H�EkP�z\r΢�lڍ��ޒ�1���՘\"�f���\u0001�p\u001c�\u001f�a\u0019\b����>(�����ߙ�\u001bY����ߚ����_��\u0019\u0005��f%fp�p�\u0005�+�A2�l6�뛞��\u001dF�Ӵ�\u001eq;��;��\rn�\u000e���9b}3�ӏ�=��ا�\u001ep�ޫ�h��;�r/˶�j�]�l��\u00003t]5��\u0016�J�>gѐKq� B9ʜ�\u0006�\u0015��t\u001a�^�C\u000e����\u0000D���=^�\u0019ū��k�07�Gz\u001d�X���c����m�_�\rr��3�Pyn��kj�{ugo1�\u001d�����7p�m���YGD'�Jg,O����\u0004F��+�����\u0006Ly8���ߝ\u001e�#����睤s�Vֆ�#��|��r\tl�a`)'�,n\u0002�kw\t\u0014G\u0002��9Q11\u0002C�\u0017ȏw�o\u001f���={���2�7hz\u001f��ҞX�'�)qn�\u0002�J��H���u��D�|.:�<\"q���F������>��$\"Lj��?g���\u0000���BսM7Z�C��\u001c��x����Dѣ��TWR:\u0010\u000eW�R����\u000f���D�����\u0016]\u000e�u�}\u001e-N�D|�`ˤy�\u0018Ք\rV\u0018�յ�S������w���l�\\&8��?a�!�Gx>Lr�Fw\u001d�\u000f�w�����o�f��Z\u0010$_NE$�U�Բ�\n<|r1��谖�\u0011��}O�\u00008qq\u000e��\u00008��;\u0003V:\u001f燞�,t,~��跐��TFzw9gh\u0012e��:� �2J�-P�\u0017S\t\u0003^ ��\"v�{��<�s\u0005ͽ�3*�\"��r��r�z�qZ\u001f�\u0019��D���p\u0003 z����WQ\r�c��HЎD2Ƃ���\u0019���3\u000b���\u0001�Ƈ����&�C��+��#�4��BQ�\u0010ZZ�Q\u0017����Ρyu�jo�\\�.��k7z��%�����w:\u000e�� Sj\f�{m���r`\u001fLa\u0011� }��}��=�2K���e�����7��.�\u001a�\"��\u0017�\"�mea\u001c�!&�x�4�\u001f�f\u0018u\u0011��\u0019�t�?�'����<�y����}�\u001d�z��W(��q\u001a�\u001b\u0013�Lr ר؃�cv�#�� 9\u0002�i���g���E�/\u0012T\fhK�^�oN£�k��{�'o���\u0004����\u0000�H���ae-��u�4h����Ҍ�UÚ��-B;�\u0018u1\u0019��w�\u0003�;�\u0000Ac�\u0018��=G���W�G�v���y�G�P��'[�t�\u001d]8�4�A�c�c�������\u001f�?�G�\u001a-���\u0017\u000f\u0003���~\u0018ߪ�#}�L�O\n�Y��\u001d��Mq\u0004\u0013u����T�ҵY|���5��g3\tm��\u0003�\u001a%ͼ��'@\n���1�K<�\u001c�\u0007\f���W�/��*�[\u001b\u0019�t}E�-;^���\n�J���M\u0005y7l�ś�c�pZ�b��OO��\u0006�������\u0000����l�-�蜣�\u001d��PmZR��9�\u0012��e\u0011��0�eF�w�w���\u0003϶�^]�\u0017�u\u0007\u00069C��BJ���\"0F\u0015�֎M=��y<8�}D\r{�7b�\u001eXD��.�n,�h�5Ri֜x�^�\nЊ\u0003J�s�;\u001b��F��x1yN�5�9�o�\u0014�)��!4�N;\n\u0003�OL�4����[��\u0000%��׮O0����\u000b\n/(�ު[m�\u0000�gO؇�s�Z�\u000e�����H}�yF1\u0014&[x#�I�y�5}+�&0�:�ێ�ܐGc�r�R\u0004\u0018����w�]�c�\u001f.�?�}�\u0000�\u00008�W�U�/�nL�|�Yy��)͍��� ѧ�~���P^T$�k��d�G\fu¼1�\u0018���2\u0007��񽿒#U�i_\u001f�r\u000e�\u0011�0>\\�]���V���R��\u0005�2\u001a�7�y\u0000�\u001e��sдZ�����x����-��_��|�\u001f���4�1~�[N��\u0007x�\b�j�$#�:����Y�\u0004x��\u0001�����Ց����*�����w�M{��G�'�n�j~�ylX�S�\u0004g\t���\u0001�2_\b��������\"}kRR��}��v'�\u0017���\\��Ҩ\r�\\��FQ/\u0018�T���:T3K\u001b\u0002Z�x�p��W�A��I�\u00198up?\u000f�������G��>�\u0000�r�D\u001f��L���x%�4��b�V��!�z����H\u001bpH�1���%�(�_\t\u0017��n���x��\u0002\ru��H��d������kh��i�<\u0006i\u00126vh$�yL�:2�\u0018V�3�=��aے�d<\"S��o���+dž�1\u0007��7���t���M'�T\"��\u0004�9ՌEga�Dc]П���={��d���Gh����͈ɪ�z\u0012\u0007��\u001f��5����>]{�};�?�>U����i\u0015̳_][ĭ�,V~[��\u0007�0��\u001c�~�&y�}�?C��\u001f�#��0c���M}��gS�\u0002M�[ծ�t�\u0018\u0002�\u0002�D���\u0005��ۛ*� l7bOJ��81�}Y\u001c�\u001f�\u001aSɔ�5��\u000e��WD����K�_#\tt;{�q��mN�5�Z1��y[G�\u000b����n�B�\u001fP�s\u001315�܎�~n\\#��|�����\u001f\u0017�ߔ�W��\u000b(��|êN�Z��K��Z��5��^��Ժկe�q�\u0005�0�Ȉ6�,��H\\���?\u001d�,��@�:���'���S����z��ե޹os\u0005���5��g\n\\k��Qx#�\u00161��52ܲ�3Y�.��i\u0003G\u001e���q��������ݤJ\u0010�f��\tuIQ�L\u0011�\u0007�,�5��U��\"?���<����n^�y���f��'\u001d����'�6Ns#�\u0004j\u001d�O�|�\u0015����1ī\u001c0G\t���\u0018v��q�>\u000b��\u000bN�9M_\u0004\u0006�I�N䟽��s\u00173�\u0000\u0014\u0000\u001d\u0000�>\u0014���ĵ�\u0016Q�v集�`�\u000b��4mB����m�5�~�\u0014\u00154�HiDbrf��\u001fT���b:ȷK-�1�)�\u0000\b�O��\u0011��z7�4H4d�&�]����׵�N����*\u00073Z�v���N\u0014�\u0015\u0007�5����z�'���LJ\u001czF=��̞�������\u0013ş$��.���\u0003h���_󚟒��3���κ\u001c2/�?+f}oN�ؘ��|��W�:$�w�\u001a�}x�׌�\u00027'<�ڎ�\u001d�����\u0000\u001e����G;\u0003���N\u0003a��0��E��\u001d>�9O�dp��$�}���'��N�ϣ[JX�\u001e�X;\u0013R\u001a0A��\r�6��\u0012;�\u001e��\u0002���r�o�_�d�#�˺3.�OB\u000f|�'�\u001a��qu5þ��NuK����w����J��҇a�=\u0000$ӫ\u0000U��_�\u0000�]�n��i^�t�����~�'ݸV]F�\u0000z]�lzz���JL�\u0011#��W�\u0011\u001e�~\u001a�����iI\u0007���T\u001a���ڜ��\u0017Ň�E�J�d�\u000fs��\u0019(�&4e�ٗXjW@\n�u�����+�\u0006\u0007��h\u0001|�����B��L笝E\u0004o�^,�C\\1 �ڻ����\u0001c!��{���ڽ~�����z^A�N��:��\u001fryl�GȚ�4�\u0005z\u001f\fU\u001f%���M�Cۧ݁��oɊ_/\u0017�\u0007�?�������;��D�T��\n�|�w~k�x�jmZ}5��d\u001bG _����\u0019�4��u���6\u0019�\r^�R��b\u0005\u0007���2B�J�M>}|O��鑳U�v\u0005i�\r�����v����\u0014���c\nB�\u0010\r@5�~��x�\bSr\u000fZ\u000e������Ҩ0��\u0007���q���h��L�\u0018��<�;�nX]��,y���*^y7Q�Q�.-��<\u0000��R�{g�\u001e��x5?�?�K\u001f\b�\u00007o��hL����\u0017�\u0019,�S?(~ai���I�5�+�\u001a�%��6䠐MhP��T|@�S^��k�s�jdb?wf�,�z�k0\u000e��>/1�Ϻ����\u0005��S!��3#���\u001c�\u0005\n:�\t\u0003ƹF\u0011�F��$�(��\u0005�ϙ�ǫ�?X��\u0005��\\K\u0002�����I�X��V\u0003��y��6p8�F���㛄\b\u001c��=���\u001e�{�1~P����Z��I6��A\n^yO]�9\nI�[�s:�\u0012�*f�0O�T��j��xY\u0000Ʉ\u001d����<�i�!\\x��Sݰ��\u001d~�^9�K;}a��j�!�/�W�\u001f�\u001f%Kqq\u001d�\u0003Ev���k:Z1\u001c�\u000b覈t�L��\u000e]�N��%��Q�Ƭ���E��\u0010�\u000f����\u0018\u0005���|�\u001b\\�^�\u0007��h��˦�\f\u001e`��\u0003�\u001dCM\f�ڤ|\u0007�c�?�\\�8�b�w�~\u0007\"\u0012��R��ȃ�R�W\\�杨���|��+Fh�x��U�\u001a\b/-e�2�=\u0015�^Ƕ\nǨ���(\u001c�\u001c�g\u0012\u000f\u0018�y�~��\u00001u�3�'�]�֞_�)�]��$ytk�\t�\u0002���=(n4�XH\u0004�[�a�*����<=O�\u001c����\u0006�����\u000e8�7�������R�\r�VR2��Oc{\n���.�[�Y�D%���֩,71H\u0019X\u001a\u0010k��Gj�9��&$��\u0017ӿ��\f_�ߛ�$,����q�05*���wL�:�8��V���G'\t�.t6\u0000���l\u001a�˚���k ���u�\tV\u001c�4�\u001fz\u0018�~\u0012:\u0010s\"9@���rHۄ�/�?��?��\u001a\r;K�.[�}Ҫ�$�\u0018ZN�\u0016kVbh\u0002�J�����\u000f\u0010>���|\u001ac#\u0019Q�?��_���$\u001a��K\u001cqȌ��Pג:V�˰\u0004f\u00115��n0��S����m\u0007Ͳ����*�+�X$�@�Z)�u\u0014\u0014`j2\u0013�2\u001b\u001bI�������\u0007\u0007䏟���ˢ�A�\u000e|��i\u0012�[��Y^��\"���\u0002�y+��K\u0016A��ys\r�$���\u0000a���}�r�|G��YԼ��\r.�/���\u0016���������Zz�<\t\u0019���08I��\r\u0019!\u0019\u000fO�}y����\u0000��}\u001fFx|���$q\tu=Hz��Ht��\u0011Нڙn|�\bu;�豁��<��G�{��{R5\rA�\u0016SsrC-\n��\u001a�� u�n�A]���\u0000���;X�\u0000�\u0019��U-�FE\u001b�ND\u0006�}�\"�;��o0\u001d�u�l����[U�a_N���U\f����n�\u000f�:^ː�2�<�\u0002~���Pq�8�3�}���\u0017\u0012'�\u001c��\u0017���H\u000eyr��f�3��.W�ݓ��}��\u00008�{-טu\r&@xj���|�'\fC-Ɣ�\u000f���=V��t����ò��vV�\u000e߻�i򏉞)}�\u000f)�\u000e��Y�Ϳ\tÞ\u0007�1�\u001fl\u000b�?2�_O�nĬ����5�\u0018�\u001fd}����:-\u000e���oj�y��|\u0000�v��-3]�ӯ-添h�-'�ԫ\u0015ud~�iB�\u000fћ�Ԏ=f��\"�\u0004���љ��\b������o�����6����m���\u0017c�G�F?\u001f\u0013��\u000fM�y4�ŚQ����\u0014�\u0018�\t�;\u0010l�z��\u0007�Jp�o�b��SA�\u0015\"��QA\u0019�ӝ��\u0012k�w�b�[� �\u0001�^D\r�\u0002i]�*S���G�S��\u0019\u001d踚�c�����q�]\u0016�a�E̗\u0010‰v�\u000f%�s\u000f\t%P��\u0012=>\rV�;S3=��ņR��\u001bt}�#\u001c�\u0019�\u0019W��?.\u0007�\u0019�h�y��.\r\u0012�$�Y���y��(o.{o�\u0004�d��I���t��v�ߠ��)�M�d�m�K{�}bDF�������6\u0012���#p���ag\u0014\"����6�.L��o�q������V\u0010A�$\u0001�\u000f��fG\u0015TG�=�o�]_y��\u001fW��t����sIM��\u000b[$̼�E��R��� �Y�b��k��\u001d��.<�m�׸r\u001f\u0000�tp�*ňp@�\u0002;\r���G��ھJ����\u0017W�-sr\u00028�\u001a��\u0000�$���\u0014T\u001eC�s��d�D`6���0G\u001e g9^�����\u001bX�|�#Zh\u0016�i�����WLR7Px�V�\u0007�f�]��s\u001b.\u001d.�#.��j9�\u000e\u001e��\u0016}V�\\\u001aX��z�=|�:��˚u��\u0018�\u0002Z��\"Ow-\r�ю�Vm�p�EE���ίQ�Rx�}\u0003��?o��Î8}1��2y���մ�oJY&b\u000b����õJ���U��\" l�a����e\u0011�W*�L�$R���\u001bѣ�9\u0014���5\u0005\u001dX�3U��\u001e��\u001f�s��˟*|\u0017a�\u0011�8y���'�i��w\u000f��oї���\u0003�X㔠�\\�]^�:>�˂\u0002�qqDF~�>\u0016G��49<]$L��\u000e\u0013���\"���\u00002<�\u001f�m�!xC�U��>\u0013Q�v=�8��R�\r�e�&p�|��\u0000B�d��X&䚘��M~��l{?\u0000\u0003�\u001c\u001f\u000b�XL��\u0000�v�\u0000�GM�J\u000e�v���\u0019}\"��N\u001b\u001e]��-������T��2����dAk��}��:?��\u001d?c�> k�c]Ϗ�\u0006?���'��\u0001�A�\u00008秨�\u0000xb�A��A��W\u0007��t��o�|\n�ˢ�S�\n��ɤ��:��\u0018\u0004S���M��K\u0004c�\t&X{�\u0001��<�|�|�c��IJ\u001aTo�N�\u001b�U�c ��?w�qr\u0003\t\u0010y�:(iW<��)AZ\u001e��>�(���\u001aއc84�=��;�ǮL\u0012\u0013�-��\u0001ʻmA־�g\u0017C�m<�⴩#�v��=�L�\u001c;��$�i����\u0003�\u0004S��\u0018��\u001d\u0002�KJ�$\u0000OS�Џ\u0002\u000e]U�M\u0012��b��m_���\u0015t�\u0013V�1��ӧZ\u001d���| 1VE�#�����}+V�.\ba'�M2��C��\u0000:������Z\u0002:W��}8,]\u0013�#�Wv܁5�ߦ߉������Ow6:�M=���g��\u0018����j\u0005{����\u001b�ܚ�F�\u0010}��X�\u0013���G�\u0007q9^���|\b��c��\u0012E<\u000f_�J�-^�JV�\u0001H��������\u0011v\u0000\u000056���ϊ�R�_��H�6逩\"���\u0011I$\u0001�����m}i\u0004b�&����o��}�8�޴�؏~��ƒ\u0011/ ���S�\u0018<�ш߭X��Ɵ�s�����@µ����6��ĞC�^���z�\u001d��ԌSZW�u=?�\u0015U��܏���7���h85�\u001d�\u001b\u001d���W3��Ԡ#��ژ:/%&=;lh�zMٹ�E��%[�\u0007 -^��$�ƥKP\u001ax�|3�2\f}���X�῟G��'���{@�Cˑ\u0007�[�ٷ>i���X�[_�\u0014�6�ȳ'\u0005�\f�%\u0010�v�b�\u001a�9�e���\"h�ws�b�Br�&���|�\u0000\u0001�眴\u0015����goY�H�B�oY�A�e$oݘxdq�<���J$>\u001e󇔵]\u001e��V��!���כ/�����P\u0002\u0018\u001d�،�\u0007��pe!\u0003}?\u001fk\u0019����m�\u000fR��/\u0019e\u0003����J����#��Q�2|H��\u0000\u0013����+�O\u001aK�i:-�ķSX�\u000b�\u001c�W�\u001f�=�vx���T���\u0010G�\u001e�$'(�\u001c���p��]�o��<��X��\u001b�p��.\u0016:�ߩ_.y�Ԩ�\u0002���\u0000��\u0012+Sg�|0O\u001e<���#���^,����\u000f����W�5�\u0012�����\u0016�u��ճ�]�Sζp��\u001fVu�$POr���\u0017aFR~x%\txf\u0019�\u001c�O0G�����|�!���\u0011\u0012a���߱\u000f1��_�.�I?-�)�}WC����^\\�̰j��u��y4\u001bG�f:���\t��GzCE\u001fdS7M�\rx\u0018ϨC�7�C�·���FC�}����w�͞U��Чu7zG�4-F�\u001d��\u0013��qf��ІV�+_�/��d��$\u0007ӒQ��]VcZ�'\\R��\u0002G����y5��uy\u0014�M?$�@���\b�\u001a�\u0010��f\u0005q\u001e\u0012=���sޫ�z���KoG��#�\u001c2L���V\bMy\u0002�S�1� z� �Y����r�QkO�}>�\r\u001b_�U�p\rKŦ��r\u000f\u0003J(����\u001cyb:�n9\u0017t����Au�\u0016ER\u001aW\u001b���+W�Z֔ΐ@K\u0018˄�{�O��2%\u0016\u0001~\u0019%�0\u000f\"�F�*;���\u0014�>�F�[�\"O\u0017�\u0001��d?��ز�,�x��t�\"�\u0003M�^�4�\u001a��$��1\"\u0004�-���\u0002\u00016z~�|�f\u001bU�\u0011�\u0005�K�2��\u0005\"��PE7?,���\u001e�\u0019@����㦷�=���G\"�㺷#Ǐ\u0011�\u0005FQ�y�y���oH�\b#J�J\u000e,�F�>\u001a\u0015�)��12���R\u0011����\u001e����\u001f�\u0004�ʐ~\u0010iƥ�*Msq��$b:[\u0003�\"�����O���G���#�h�\u001fʓ��2_kW���7L�n��4�H-e����W楑�4��gb�vi��f\u0004j\"`H���\"G�\u001a�N�'lg��ɋc��w�^å\rȾ��?��\"y��V\u001cWM�~���j�C\nƖ\u0016Q��:\u0013��\n�\u001e\u001eم���d��V\\�?m\u0006�\bc�\u001d\u0013\u0000blS�|ѣ+J���\u0010�X��S�\b�]��\u001cy7�o��\u001eo[���.tY��J�赡��w*\u0003�D\u00073c\u0011�\u0019��\u001d\u001a�d\u0002d���\u001d�\u0000�o����\u001f�h|ɦE�jW\u000e����\u000b$���k\u001f�m�$�����k�D�by��dUs\u0015���oo״�\u000b�\u0019~\u0018�@$�5Yv�����aۭ2�/Kd��E0k�>�\u001bV�}>.h�\u0017�����\u0014?\u000e�c�\u001e�q2��f\u0004G���\u001el�!�^�]�mm���d�pe��8��\t���\b������I�VCB���65i�߮�����S��D�T�\u0005��%-�\u0012%�;�$���L����\u0001\u001c|'i\u0012>��.�f����RJ\u000b��� \u0004\u00143�\u001d\u0007�S����\u0000O�����?K�]��<��T�\u0015t�\u001aP9V;��BOS��su�pJ���kr���-��f2x�*\u00185XDG\u0019Ux�[�l��/\u000e�4G>\u0003�8s�Ǩ�<�\u001f\u0007�y^(����)9��1W �� �^��Ӯs�Ⱦ.��`t}��\u0001s=��\u0017�\u0003:�.�\\Х<�\u0004]w���\u001c�m�ku\u0015Γ��z51�t�_\u0018d����n\u0002X�J���;��K�)�sDޤ7{��[G!aĒ\n\u0002\rz��\u001c�b��=��O(\"2�9S�\u001b��mpeI\nT|g�ù\u001fh\u001e�v��Ϋ��\u0003&#�tc[w�\u0000c��\u0004�1�\"���c�{�m{��i3H���\u0005\u000fR\u0011ׁ��@��������\u0010/����ىi�\u001eo\t�ѵT�.\t<9+һ�bMX��Wa��$e���\u0019c\u0010cO\r�\u0011Gu��`�CҔ����n�?�\u0019x�u�e�]ϥ�'�Kxg�f��A\u0006��`C��$�5(G\u0011�':\u000e��ˢ�ο\u001f��X8a�<_I\u001b�p��ח�\u000f���<���\u001f$y�U#[�\u0007��5�e�*���*\b���w*VK����V]���a�u����1��2p�|�׻���^��ip��f�f�!*��I=�~k���\u00000���\u00008����_���;�y\u0016O�+�'�:e��%޹���Ȧ�<����\"���6�x&p��$,ƀW:�g�OS��gf��œ����\u000f��\u0003��;SNF��%\u0018���'a)\u00028��\u0011r'�\u0002�ǯ����\u001f��ͣi����\u0003��\u0017⾽�T�ƹ�\\�J�w�\u001b`萵����ҵIn��XD��@�\u0004fF����}�)��B�--��p�<���Vk��3�=�����Xy\u0013��mP\u000e#Z��\u001a��$�\rZ0�m�Y�ゞ>9��j�˺�\u001f�6�xbO\u0016Rx���[|�\u0000l���?��\u0000�\u001e|63�v��\u0016Ҩ��:��-�P��F�@�Q�\u0000U\u001f\t�sS��r�\u001e�w�ݮ(b\u0011\u0004���;]��������o�h���V�\r��q;K\u0011�pR\u0018\u0005h��\u0016xUҥkQ��\rv�~\u001e\bKo����m\u0016����b��\u0006)�%A{u�Y�zX�k$�\u000e��N�_��58�\u001e����hz�{\u0013�\u00079K�\u000ba/j#�4t}����\u001d���y�(\u0001c� \u000e��^I�����U����۝n�y\u0013�wM&�����[���\b��.#s��!-�SB���8\u0007�;\u0017\u001c�\u0001�͐zϜG(\u000e��:M.RN~��\u0019e;�P>��c�~`z|��,z�����\u001d�\n�mm��ӆ\u0002�\u0005�$Z'��E(:o�v��.\u0018�g������L��\u0000�A�{��5��\u0017��1B\u0005-��o�}B\fd��\u00103\u0007<|-9���@�dۘ�/\\���Z�^F&\u0003r[�\u0013���\f�O\u001d�'�?���U:�ɑښ>����'z�����kr�����D�W \u001e\u001f����\u0017�v�j�\u0001��\u000b\rJ0>8^\u0016qit�1�b��4�K�\u000eϙ0�\u0018\u000b�\u0011�?-Ɍ��h�l�}����K-�w\u0017���f��A�ƭ�\b�}�\nf�\u0005mn�\\���[@�G�\u0018��F�\u0000/\f�\u0000+���+�\u001cC\u0010��c�����,\u0014=�I(�R.�8���ӯ�ч�@��8�4<\u0013��\u0018v<�����ㆿݧ�\u0006��{\f��+�D\u001e�\u0014'Oj�\u001f�n�<15��d����s�\u00009\u000e\u0000ԭ��#�F�x��޹��=�GK�\u000e\u0006Rx��x��-8��P\u001e���\u0015�`�\u001d>䐦�\u0015\u0003�v4�>Xc�ȡ���l7�;S��\u0010:\u000bM�'��[����A��;tVEb�ڣ�O�qL \u000e�e��]��\u0007-�:t�5�\u0019>|��^��u��oO\u000f���0�:�ȝ�\nïC���n|r�#ɌMH\u0013�P��{�\u001d�;{��j��w\\�٫�R\u0001��Ăc�6�B��NG�nāZ�޸��U��ҕ�\u0007��\u001b\u0013�! ��F�Rm��ꥸ��H�|0J�O�1���O�lo����\u00008�(:6�?�O��\u001bw�3I��\u001e�Nn#��~)\u0001�3_�\u001e=�g�M���s�T�z#S�\u0015���\u00004:��ߩ�\u0000?l�\u001e���}/>��\u00127��{��\u00052�!ד�V7\u000b�\nu��t�Ӂ$m��.�N2Ҥn\u0007��ڹY ���zf�5P\u0002{\f1�a�yuO��O\u001a\u001a���\u001d�:I*\r\r\u000fC��6Ɏ{)Jf��׵MF\\\u0005\r����i4�P���)���{�eW}\u0015.�j��(k���q\\���E+��A��N�ّ�Ǣ�\u0013(\u001b�\r��Ǧ�\u000f^��.ԡ�\u0000҃��\f7|�\u0004���vMw�z��\u00003�\u0005\u0005*�Z��ۦ,\t�G4 ���~�?�O\u000f�y�+�ƒ���\u0006N\u0017� 1��h��N>]\u00114R\\!?\u0016�m���\u0015o�PM(+�{\u0013��^�i�\u001e�x�Ƿ����i�8�}�����R[�\u0013�U�?/\r���9*U2Pm�~�\"yZ����8V\u0003��\u001f�W1�+��b\u0005m�<�P\bާ�w?<���m�<������\u001ba��j�u=sZ\u001aQQ��ޔ�j\u001f��\u0018R�ʦ����#�����y\r���O�ژ��T��;�S�j}�0�4���{�5��{~8�ߪ�q�\u000f^����S�A��Qg�<7\u0003�%VGr\u0001�z\u001aCRk���Gʹ\u0010\n�_%\u0006?\u0015:n~G۽\u0006$P��Eu��\u000b �>\u001b��7\u001e���<��t�m�X�.[N@k��.�\nl]�\u000b\u0003҈�����ri}��g\u001e\u001c�\u0006r�~�_e>a�\u001e�:��<&�\u001d��s�P�e���\b��rޟ&�m�1\nj@ P~��􆰜r\u001c�y���g�n���\u0000����K�X��l\u0001�_�2�@��VK�Q�\u001e��:.�֜q:<�\u0018�\u001e�Qں^9~f;�(�����.��̟�:��5ap�L�\bQ�KD�9 ��\u000b\u0006#��A���\u0019c�\u0000�>�\u0006\u0007.\u0019\u0013[���r������MZ�\u0012�h�S^\u0012����} \u000b��Վ�k�\u0002\\'�{�\u001c���'~��c\u001a��\u0004�Ͳ�t�\u0004��x�f�\u001fM]OFZ\u001d��+�%�w�\u0005\u0013�B�����[��Qi�o����\t��H��!�i\u0010�J/�\u001f\u0011߸�3@�v8�{^)ʸk�>�\u0000�G�ג��P���|�gs\u001a�(�܈�F�:��ڠ���9l@�\u0011[��|���\u0016Uo�'�\u0016r�D\u000b��EOO��!�hhԢ��xg\u0013_“\"E���7Ah��~�i\r�;��u\u0004r\u0000\u000e�\u000b8 7����1�$tn�\u0004P�>8�����\u0017�]կ����\rGG��Xi��|QMm\u001c���sٖ7UaPA\u0007\u0006m(�\u0001��r��e�'�~(����$q� ��\u000eDu�����}�{�?/~{�{���\u0000TMC�\u001eC��'�Mc\r��{�j��\\j\u0016�Rokuq\u0004�@J�3#E\f�M��n\u001b\u0013�#\\��D�:t��WlKO�zl���\u001e �n\"xH\u0017��uן{�\u0003\\+\u0004�E\u0017\t.U��ƅ�����\u0015�v��H\u0000l�pĮ����|��\\}X�IK\u000f��ʠ�*H�\u0002v�\u001d�a�\u0004�=�NK�������\u001d����P�\u0015����\u0002yrw��&��H\"���c7G\u001b�|�_k��\u0013��\u0006�bdբw��e\u0004��c�\u0017pX��\f�\"Dq��\u0000Ÿ�\tN�x�Zi\u0011�w��F��[\u001e+Z��/=�kQ��\u0019��\u0013�˾ܜ[@\u0013�S�O�o2�k�\u0013̫oq�cԮ�cUaE�Ѿ��\u001f�DYV(\u0011�JM�\u0003Ds%��jم�vAQ\u0013�We\u0014\u001f\u001b\u000e����|\u0015�ݎ\u0004\u0002z�\u001bO�_�€\u001f���ҍSO��P\u0012pc�G�2\";������\"��Q\"J\u0002�\u001a�`)��~y^x�\u0000�@\u000e�\u0011��8�*|/���zvW\b\u0018�k#���\u000e �\u0011�j��\u0016�\r\u0001*�q�\u0011�@�\u001fJ�\u0000Ϯt;K��4<�t�/�-KK\u0017\u0012�*��zdڜHz�\u0012�\u0014S�\u000el;g9ä�\"jF�}�����s�#�C�\u0002W*�h��b�/u�5MsS5��S�\u0002��q$�4�ϺrsO\u001c��a����|9\u0019��{%�y\u0005e��\u0016\b\u0011X��\u001d@���\u001f���O�<�\u0000�\tYx�+\u0010��\u001e���lA)��l�訤���FB\u0001�>*�A��{\u0014�����ߧ���k˒,P��d4*z\u001a���E\u0019��\u0011�\u0017�8���έ���\u000e��ysT��kG���&��\u0000b�X�f\u000bq\u0003����!�Bp�'p\u0019c��Q\u001fU��/Q�������dh�\t=Q�M\u0010I���)��7NҶ��͊I���\u0000\u0011nRn6\b�\u0002��\u0018O�\u000e�ÄJ�~ykvl.���\u001a_]�����sȞ�@��>��h\t�?�1� Gȗ̻b�i��s;H\u0012\"d�⤽x�@˽Z�eA\u0019�\u0010#q���H5�[C\n@*g���\u001a����E;�\u0000\r��򙎛-�\f+�A�G�_+���r���\u0010�Jc��_��H\n�f�Z���4�\u0006&����������O\u001e�_#O����%\n�\u0002��ʤ��Q��:\r�Q�]\u0006s�b@�����\u001c�\u001d��L��̩���;YY�;�ֆ�\u0017��G\u0000\r)@h}�{I���\u001dD*��\u0000\u0006�˙�C��_\u0016c��\u0003�s\u0014�\u001b��˯*0$�m��J�\u000e�Qf�9��\u0017\u0004�9\u001e�\u0012PR���RE~��i�\u0004�q�\u001b���\u0000&�Qx�W��s�Aj����'���V�\u0019�����\\�o���3qGW,c�������\u00009��|����~\u000b��?B�_����8��6�qy;Jx#�pc�9\u001d�\u001f\u0012s��SI\u001dW���8I9r��&g�v=���판�(�\u001dyV(mG���\u0000�\u00009S���\u000f��\u0000:�7����c�?��#�z������O:j��4�DW-\u0012K�i�϶��x�Uؽ��G�&�1�r\u001d�\u0000~>.>]NQ�&R�f����\u000e����yGG���\u0018��ͽ�k\u001a�\u0000�ҬM(F�l�|\u0013ɘ��n\u0011���\u0011�~9?@���\rw�\u001e^�u�,~[jz֫���ya�ɧ�y�[܎1O\r�FU�\u0003^���?>�K�S-8�\u0018ㄨ�\u0006�Kv�O��\b�%\t�r�1ؑ�]�힎���>q��k/#y����\u0010�-��ZN�\u0014|�\u0016h�֞���dq뽖���'7\u001c�\u001b�\u000f�9h}�͌\u001c8'\u001cu@�\u0015�\tM-?�\u0012u&��ο��-�⏝�<�p������{{�bs�M5J�V0�֛��>��FX�\u000fGS<�d�\u0007x��_\u0017\u001b�\u00170�v��\u001a\u001b�\u001e�{���7�k}u�u�~\\�Qh\u0010yw��z_��5\u0017�.�O\u0002}cZ�Pz�`֦\u0007Tզvގ�1�(3��1��mI�v�ie�\u001eW�?Տ�\u0011�w�\f�m\u0016!���G\u001e)}U��\u0000ZG�3�5�\u0003��ʽ;X�\r嶭�\u0014�a�v�\u001d:)\u0004�\u0016��@����є��r���\u0016\b�\u0018\r̍�^���4�mFѳ�\u0015������tz�[�zE���\u00040�\n�\u0001�\n�Q(\u0000���T��\u001f^w��!�jU��w=\u000b�v�4k�eif���\f�.\u0011��\u001b���\u000b�����w��\f�\u000e9��S��\u0000=�[e��6>K����\u0007���c����R����u�\u001c�(��cCO���c�@Ak�����V���6߮\u00026�5����r\u001d��`���_��|�\u0000\u001c�v��\u0007Kp2�\u0000x{�\u0003ip\u0013�N�\u001b��q�i㚺�A��-���w�Sj�\u001e��ɁG�ovocx�\u001f\u0017�\u001f\u000f\u001a����7іZ])=��^�?�1\u0004sVQg0�ڽv���$9$rdP\\Ң��(w�k�0�O�5���c߭\r\u0005i�1\u00017ދ[�A����r����eqp\b\"��]��\u000e�:�2��(H�����|?s\u0015\u0016P\u0012��\u0001��^�:�\u0014\f�zd��j\u000f\u000fjx��q�T���\u00065�Wju�u\u001b`��\u001dY\u000b�\u0004�x���\"}�\u0000�ֽ���_�X�&���QuR\rE\t�\u001d����-�T��W�\u001d\u0015��{��~[��3��5\u0013��eos���*\u001ekޣf\u001e\u001diS���{���\u001b�~��\u0000�8�WF���\b��t�L��گ��鷏��x��q�~������\u001b�}oq�}�\u001f�P.@��d�ψ|VIqN����,\u0006��'�ԖM5\t'nԨ������>�ijH\u001bS��\u0000L$w|�J\f�A'�r\u0003m�.������:S��x���z�=B����xS�Ȕ\u000b\u0003�\t-ѥ\u0003m����\f��)ߢ\t�+Z��L\u001fr\u000e�\t$�\u001dOM��y1>��\u0014�o��8\u0018ƺ���ω\u001f��˜��;\\�z��4��N4��ߺ�\u001a�PhO�~\u001d����ۙ�?�zꀑF\u001d;\u001e�Ҹ�Q#�D-�Ȥ�~�֔?�\u001c\u001d\u001b\u0007z\u001aY�\u000f���\u0000mSߦ\u000e�Jg�^[7�v��8\n�d��\u0006�ڟ���\t�Kg��l\u000f����$��_�6 uE��\u0013�P��9r\t�ˣ������MF�\u001d���Q�5�J����\u0003s޾8��W��Ezt��ါ��4��ޛ����\u000f��i\u0001c�\u0002��(G��G݀r�[�~�F�צ�w�ͪ�aއrw��\u001e\u0019 i\u0007qJ%����\u001d6�㇊����Qg�^�PM:��\u0014�M�|�K�\u0018PP�\u0014=:���Q\u0011̠�5;-\u0016�Q׵\"\u0006��۽��\u0004�*�\u0000����Y��ѝ\u001f���>��Z@/\b���װ��S�}�\u000e��d����ه�g��^G�'�L�d������\"��ԦT�w�QT\u0001�\u0019�K\u001e��,�\u0010\u0007\b�\n�\u0000J���Q�_�ë��\u0019�..�\u0000�����_Y<�F!$Z�O��(���3O���K�≾\u001e\\�=���'�<���d�}��^i�YTI\u0017��\f6$�P+�3#�X2GSB�\u001f0�C$e�Gk��?C��0�O�!�K\u000fRh��H�%x݀,�j��ǡ�:�\u0001��\u001ed\u0002�$��$H���0��\u000b�8�J����C�+Y\u001c'�#�(baV�)=A�S)�T$(�8����G��\b�^d�\u001eY�3?�\u0012#)J,�\u0006;|�~��\u0012�}6X�4�4��U���;\u0010�F�qГ�W�\u0007����0\u0002�س���%x�Vq����3B�V-*r߅H\u0014��y\n\u0004ʍ�JvxA/��05'���\u0016�\u0014ây_L��yR[�-ۊ\n\u0001J��_g�'�y�N<���|��;F�R��Q��ڤ��(A�S��v=��n\b��K��˘��\u000b�VrV='L��V\u0015m�-���&�\u0003���sډ\u001f\u0010��\\�Q\u001c\u001b�\u0014�����0]�\u0004)���S�����.d�K����2x+\u0010�p\f�dd$j����V��NJ��S�c�I\u0004ֻn{�$�${ܡ\u001a�g�݃u\u0012��K\u0005�U,��\u0014����آL��!��|�*��\u000b&��r�#*�+0&5\u00145��kZ�r��[\u0001\u001d�D��G�\u000f���?ΝLEirܪ\u001dZ\"\u0001��Gj���gM�p�8���Nf����\u0011�?�\u0019�\u0000�%<�v�#�?5|��\u0001hW՗O�%�<�,Ni�$\u000b$\u0011�\r\u0001l�v�yK�~�y'�\u0000G�����`\u000e\\����<��H�\u0000���*�j��� I,f�/A�\u001f�\b�FaC$j�;Q\u001e\b�-�[�^�3�%)K9\u0014�oY\u001dv?ʔ\u001fvy��\u0012r����\u001d�k�\u0007��P\u0003��:�\u001c'�/�o��\u000b��»\u0011�A���W��!�#V��w�/���b9ʂ\u0012$�𤍶�r@�\u0014�sL�r\u0000h�e\b�\u0001�}\u0005�\u00008�斗NM.y\b�F���\u0004�\r�����I��J�\u0019�`��{4BU�\u000b����ӡ��Ɵ[���l���]ז[V�Ӧ�<����\u0014 �w*����3�ŧ�5\u0004�TE��\u000e-���=3E�%G2\b�>*(C\u00026\fAa��홓�B�L1D�-��:m����\u0016\u000b�[��I\u000f�ddW\u0015�6Y+��q�Y��\u000e\u000e�\\�X\u0001��������:��-6\u000b6!\n�h�\u00157�#؊9�\u0011��\u0017u�\u0002\b��D��~f���\u001c�HZ���\u000f�\u0016��D|�z)�w�c�߫Y�^�~;�\u0000�Jy�|������\u0019,4Rt\u001d8-J��j�H\u0016���\u0004���z�t�Ɏ\u0003�L�����&y��C�M �3/�-\u001d+]��]�;e:�+��$�1=m�l�=�(�K��e�N2U�POS�ݟA�\u001fR�w\u0005��\u0000�|��퐏/��<\u0005%Z�*%RU��\u0005:��S�\u001d:RI,_Z����ۚq��g/@���ˈ=;|��Q��K����\u0000�G����u\u0006��\n����k�\u000b�4�\u001bD�y��~Xq��\f\u0011��%�֑�b\u0019\u001a��\u0000O�\\�\f�T\u001c�v&N\u000e������:�؇\u001fd��e�ҥ\u0012����[��+���z��$l\u001a��w\u0003qC����n\u0018��.\u0000>ǖ�e��nr��\u0000d_\u0004��B��\nP�\u0014Zv5'bI�S\u001c�œ�v99�\u0010��\u0018~��I��q2I���L��:�a�-Њt\u0019��Z��⫠�b�pkk�I��L���5m\n�Q%���P��X�#���6�'\u00100�c���Q\u0000�\u0000\u0017'κ�1��*\u0010�ݸ�jv�j�\u001f�6��\u000b\u001b��d�<���\u0013r��bҏ��`�\u0006�y�\u000f���@ϽiɔR�j��5\u0017.��q!��5���~��/��\u000f�U��\u0017��/�f�+*\b�\u0000*�)|�e\u001b�^�MS�v��D�#��\u0017Q���g!솿\u0016��1�1��ɗo>3@|i���fK]�&R\u0001ៃf�\u0003�=�O{���q�\u001dF����ƫ!��|�4�b��h�<����q9vނ\u0004u�\n�\u0010g�i\"Gg�ɟl��'�-�����\u0012�p�7\u0001?�{��+䶵kdj�`Ic��\u0014�\u0016�\u0003�]ni\f��c[�<\u001ahp���})���O�]\u001f�z_��o?���N�j4�&��8\r奢\u0012���z�}h�\u0011$%I m�9l�����sK\u0004|Y\u001b>g���q\tj\u0006\u0011\u0011�'�\u0011@Y�;�tz�\u0000�7?;5+���\u001f�?��\u0013ij���kW�!��W\u0012�$��&@7\u001b{�\u0012��\t\u0018��\u0010<�\u001b|i�4�\u000f\u0014�;#������y�U֯SM�Z�S���%7r�����0�\u001a�#\u0011�;�ى���*u�\u000fO��㜿�\u001c����c�?�\u001f˻kI!}B��Z�r$�Ii4\u0010Nk�� ���v5�n���\u001dT��b�E\u001fs���>;���;\u000e��~��'����XF���l�IGP]UB��qe�[p?��7U\u0019d�@X��ҘC\u001f\u001c�\u001a�ǟs���s�j�H�y\u0005�,0<�\u0000�}Dݛb�\t\rO]�k5>&\u0011D\u0018�ݖ���I�\u0004Pߟ/��m;�p�\u0001i\f.�\"r�1�\u0000��6�G�|�e�Y�n�9A�s\u0005�:n�}x�\u0018��Y9P*��v\u0004P��\u0018o�̱�.��\u0010&@W&[\u0004W\u000b\u0011V2\u001a�\f�,k�R^�]�\u0002S����# |��!\u0017A��׬<��O�CR��=*�\u001b�\u0006�I��䎳ܑ�'e퓞�U�Ih��������J�y\u0006\u0011å�h�2�L�\u0011�$�>e�^b�����\\�\u000ew,��?t\u0004U��'<�Y!>��a�Ĉ�\u0000�\u0015oq����\u001c\\�'���ֲ\u001a�?�-\u000b-�ZS�_\u001e�\u001f\u001f\u001c��F\u001eK\n�\nx�\u0000m}�y�����W�[a\u0007�E\u001c�a\f����0��wۢ���\u0000�:M�\u0000a�T�7�9\u0019r�d6�����\u0000�����$��*���i�KhǾ�\f�d$���\u001b�i��۵?�f�\u001e�IaxK\u0001QO�:�|\u0000ɂj���ߊ\r�F�4\u001e�;�P��e��*\u0007.�(v�޵&�o��$\t�����Pn=����\u0019;�{\"i��wQ^[\u0010(+��jҵ� w�Pm3��q�_��\b\u0017����O�J����u�/:�PMiO���}�}\u0015\r�Wr��x��_`1@*��Zr\u0007n��\u000e��\r��e\u000b5��۪�\u0001Q�m\rr��W�'ބt��F�\u0014�Y|���)�&5]��Wq^��,��G��4�X\u0016v%���\u00155\u001dH4\u001e {}\u0019-8\b&�Qj\u0002�������g��{�����\u001f��iAM���'\f�B^Q*7#��h�\u0000�g�3i\u001az%]�F\u0002 ,�\r\u0016�|�-�y\u000fI� ��\u001d��Z��q\b��PQ~9\u0001N�h~,��ŗ%p�כq�e־I�u\rwt\"&�\u0002\u0000?\u0013�32\u001a\f�yʏ�bg�Nb�v��\f�4� �\u0001��M��1��c��,\f�\u0012�\u001eN�$�]��t2���j��a��\fd!.b�#��m$sc�ZC,b�c�\u0013q�\u0000\u001b��̈�`(���k91�h�Ċ�S\u000e\u0002�ңjm�\fȖ1�v���4G7��ry��M�c������\u000e\u0005£o\u0015�7)K�p$`\u0014x�Y����=����4�r\u0003XG;����?sĴ}@\u0010(z\u0000\u000f��ʇ4����m��ꁿm�&6E�z\\և���y1�Gإq/!Z�޿?o\u001a�$���\tkIRw\u001b����N\u001b'rz-���\u000e��6����~j��p�1\u0003�=:x���^ԅ\u0006�R����\u0000����M\u0007ʕ�{�$m�(��\u0015c�\u001d6;\u001a���\u0007.H�˪\u0012Kͩ_\u001ao�\\�i\u0006ה�z������$]t�A�+�w����GqЮI=C����>\u0010@\u0012���n�p�0A \u001f\u0011����m��\u000f��#��Y�XSaJ���A��5�ꙮ���\u000bҠ\u0002\t�Q�0{�#*�#����\u000bRC�\u0000�ߦDy$d\u001c�Vں��C�\b��Մ��ݫ&�ˡ�4\u0015���$��\u001bI��\u001b��hi��{u�Fb��hY-�'�$�<\u0006\u0003-�\u000f���r�N�{S�\u001d�Z\r��ޠ=���?\nw8��KCR@?��]�\u0015o���\u0007Q��\u0007�\u0012w]��o~�I���\u0007ު~�+���\u001d{t�\u001ej�e�j�❾��B�H(hN�����y��(s!�R�H�_��62;y�\u0019*\u000e��)�k��\u0003ޞ^���\u0000�N�\r�~YYX,�m�fyu\u000b�]�↱[#�\u001c\u0001��s�/�\u000f�dq䆪@\u001c�����\u001f�|��\bZ�dÓ\u0001$B\u0014\u00071���C�q�T��ǭ\n�B%K]cU�M\tH���NGa�\u0002G�;�j2\tv��6\u0012�\u001f��;\u0004Wd\b�N_{ծ�\u001fR�\u0018�eX�ĮxQ�v�R6�Z\u0019\u0018��m��\u0011��wvR���\u0014?\u001dX��R�wbK����\f�:��|/\u0000�j���+�꨽���c�<5d�=��e8HKj\u001b��>Y�����a�\u000f�#�M\u000b�Q�OM�8��῾��VY\u001a��|��v�G\u0011�e��\u001f_#��:�~��(��7�c���|Y�M'[�.���\u0012��t�6s�\\~#P�㒶���6>$%� q}�p�$8��A\u001f�1��[T��J\u0018��?@�>\u0001UUX\n�\u0000��J\"1�6\u0001���\u001d�\u0000[˼��?PMw\u0004-iq\n��\u0004|d���p�pv�M���=�M�O؈�~��|{��/�g��8��\u0000��bv�#��$�u����g����G;Y�\u0007\u001a홸��t.�>�#����2. \u001c|��\u001d�ˣ�/-�^X���Ǘ��e\u0004ڝ�f4�P��XV4�9>Ԩk���������*�{�\\2\u001e\u0011\fNj\u0015��\r�/�/�q�^Р��ʓͫiB\"}\u0018�,��\u0001<^ݪ�\u0001\u0007�փ!�\u0013\u001b�\u0017���q�\u0004A�\u0015������ݶ���V�`l&\"\"�\u0006�\u001e��\u0001R\u000eT\u0000��\u0002\u000f���3\u0019\u0013`����m+S���\u0000�����\f�&�'�4�W�T*�꾭�+\u0001@\u0007)�Y��X�_\r�\u00122��J&��r�\fY4\u0019������X����\u0016���٦�P\u0019[ӌH\u0000P�T�6��J���LLeE�i���z�\u0000嬄�jE���\u0014��:�R$OR�>\u0016�Q�\u0019#{y�2�\u0000���\u0017��~sw\u000bXe��U�?w\u0005�j��C�:8��\u00008��,|^O%����/\"fGn\f���S�x�֪No2u#g\u0000�C�>��51�~T~a���/o�˛t��^�>�\u001d\u000eʼn�)�s�\"e�\u000e�N�\u0006�6����\u0012*�\u0014��zmW%v'�w��Ę���\u0013�\u0001���$\b�z\u0017*\u00182�\u0000v\u000b��W��:$�ʹK�A�ȼ�h�瘬�c\u0015�ޫIS�c��b�x���6\u0018@nj� \u001c\rI2\u0003\u001c>�^����\u0006)b�\fv1\u0004T\u0003�� �E6%�3_�&z���ے<\u0018�@�\u000f�����$\u0016���\b$$/�\u0018\"����h+� �\u001b\u001c�1\u0011\u001cC���?|�\u0000%�+����\u0000�,���%�K=W]�.4|Ғ�\u001c�y��\u0005�Vo]����I\u0016�%~!�9���\u001c��!�b\u0003\u0018�\u00007y\u001f��l�c��[�;��\u0000s\u0011�\u0011\u0000>i�Áq3�\b�/3���\u0011�H\u0015��?vV%�ts�A\u0015Ր�P\b_]�p9*�\u0004@KJ\u0001ε\u0004|���\u0000���6�\u000fq���{\u000fd����\u0003����/O��\u0007\u0013�(j�6܊�>�g��ˇ��a�\u0007��o6D���\u000e+�jԠo�\u0004���1�#v]�0\b,{�]m\u000b�P�LJ�k\nl\u001d��?XBd� \u0002\b�����N�'q��;���\u0012y+��\u0000�Z�2���w\u0011[WvmBu�m\u0000;\t\u001b�z�\u000e�3 \"\u0005�qr\u0011\u0010Oy�K��\u0000X/s%��H^ie�Y]�]��C#�?�<�\u0013�0�\u0006�nN(�ƇF\u0005�7��\u0014H��P�!\u0003�5���\u0011\u0002U�ɌE�����\u0010\u0001��\u0014ehΥz\u0016�(�\u0015�M�S��}\u000b�,����+x�|��1�ړ=\b\u0007�y��+\u001b�t�䆿�9�MG��9�΃�\u001b\u001ba\u001a�@k�K\u0010~\u000byʀ\u0000?\u001c�ɘ�����\u0017]�ҋ�x�-�\u0003�L�L�w\nAV\bV�\u0014\b���S۶i���\u0011��O��e�󏢓4\u000f.��8=b\r\u0017�g\u0001��\fc�\u0007Q��ȗ\u000fia�ޥ�\bu��/��\u0002�g�\u000fY���Os��i(�K�j̭ʪ�s\u0010G��Es��\t�\n��>\u000f'�@g���/��?<ѨV[���8;�Q�эA'n��J\u001fS��}>o2�Ԗ���u�M��g�+]��=s��\u000f\u0013I,T�g�!�KwԞU�LyV[I%\u0015�1$E�bUhUi�jӾqz�x:�\"9�t e�\u0013�c�yV��-ɕ����\u0002�P-@�۶Y�d\u0010X�\u0006Cg��K��\u0017�4�\u000b E�4�]Y�\u001e1w\u0017�*\b\u0003���~\u001c�rϋ�n��4�G�\u0007ae�g�\u0004�滇�\u0000��~]yR)���g�q��\u0003�7p�\u00042Yh��\u0016�9Q�ui��$�H�\u000b�v���4��oY�\u0019�K��=�u�}ϫi�\u0011��[�\u0007yc��\u0011��0����\u001a���X���)%OԣG5�\u0019�V�҄l{��D�iq��\u0007��\u0006m�3��#����k�\"b�V�z�,\u0007n��f�S\u000e\u001b�LD�\u0015=����[Oo\u0006�j���H\u0012�\r<{ў%z��\u0007l�\u0004��Eˉ��gyt{������o�گ\u0004���.&uEA\u0016��~P��#O�=zf.L���>\u001eÿ�ɔ1����\u0007����I�\u0016��d�z@[����_j�k��\u001a�F������lZ�9��쌺��ڃ�\u000b۾����>\t��G�,�ݿ)8���k?-yJm^��@���_}i&ex�-b�X��ɣt9��:\u001e��G.J�\u001d�;���\u0016����7��\t6z\u0019_���`�S��\u0000�~u��5\u001d\u001e��\u0010=Ĩ���E�ۥ�8�1*]\u0011ww\n���X�\u001d�q����M9�2\u0019%Chz���\u001e{�>�C�Y�9A��\u0000T�\"��;��\u0010\u001f`~\\�\u0017�?��\\���<�u=Rk�u|�PAg#�[��5�n$�\u000b\u001f�*�\u000erZ�V��u\u001cx1p¨qY#�m��G������c�����w!�����]\u000e\t��4�hyL�j\u0013�35\u0018\u0006f$�J7\u0007aC�=���!�Ȁv�S?�-&8�\u00006�}�=�T�����1�m��[�\\�u��\u001fM\u0003\u0015\u0007�⿴8\u001d�3K�=���=yA�z���wh�������CJ�$�� \f\u001bi\u0018�)BA��\u0012sS�Q\u000e��9�qLr�Z'C�\tD���ncc$|��\u0013Z\u0002w#��*�N@���+�\u001cH1�1�yf�\u0007���q\r����BJ?��g��\"!�Y�ӎ�t^�I.=\u001e9E��!�O���������\u0012�\u0015>$x}\u0003�ӖmL}�L��{t��\\��6�\u001f����H<�7UNC�\"����bEo׽w��\r���6M��j\u000f��W\u0019\u000fN˳��ri�^��\u00001ji��\u001f!\\�v���'������:�|�h���Z�S���٩\u001b\u0000>��Є\u0002�O@?�X\t'�\u0000R{\r�Z\u0010�t���\u001a�\u001b��\u000b#���{�N�O��凞�\u001c�,��~�\fw�z�\u000f��\b�՗F_i�\u000f���;���S�Ʉ�\t�_���\u000e�}�8w�Ն�\u0016�jn\b�xx\r�ȍ�b�F]L�\u00007�w���l�ٌ�\u0007$��>�\u000f�Ϯ,7��5���ܒ\u000fs־��޼ۼ�\u0002�\u0013�\u001aw\u0015�\b��=miח�[H9~��zlz��\u0004�D�D�|�����e5\u0014�z��\u0000?�0�u�\u001d��|�u$\u000eKH�\u0007fn4#�k�\u0007-ð\f%��{Ҽ��u����w\r��<��k\u001e��\u0016�[I\u0006�\u001dM\u000b�}*�B1]�Z�x�@�\u001cw9����y\u000f�`!9\u001a�$�I�)�\u0000��:�����\u00004<�,!-\u0014�h�:�a�\u0010�)�%��\u000f~\u0001k�_���a�>\u001c\b�Gs��;\u000fx\u000ed4f$K,�w�����ߗ\u001f�^@��ҭ4�.i��\u000bh�D�*�X��6v���z����~�M\u0010!\u0011}��̻8xq�\u0007�^�-ل��P���j��R�m�37�\u001f\"��F��ʏ2�FYj�����8c\u001e\u001f4�\u0010��y�Y�ҧ�G\u0001�\u0000�é�q�3?\u0016!�ttڜ��h\u0015\b��x��1�7:\n����9?�ēCv���\u0011\u001e���?R�{��s�,��\u0003�����G�-���y=\\�ݝ��nf\u0014P\u0019��i�o��s2<.�\u0014\u0000�����\u001dy�?6���i\u0013��\u0016ܞ�����\u0014q!証N�4Z�qj�H4>\u001f��c&Q��I?o�Eh��x�T�Z�\u0000�l�\u0012��Y\u001d�z\fW��SS��̈s��^���1^�\r��N��-e�tן\u000eƕ�\u0000>�e�������ݕ���\u001b����t�A!%��)Q�}���E7\u0019\u0012~h�\b�e\b�����~�\u001e�i��B!�ꜫ���\u0000>�aRH�$�\u0000�5���Ƕ&�\t�إ��W;�Wƛ��\u0014���a#� l:�2_��j\u001f��\u0018F�R6vB5��^îD��\rYX.��}��:�\u0007m��[�s�k\u0005�\u0011^\\OM�����7;s�z\u000bP�P�\u000b���;o�\rR4w�0��\"����q�O�\u0001a�J]^��\u0013�_��\\\t��]M���@���0u[�K_S`h\u000e�߿Q��W�\"D\u001b\t͍�Bͱ�o]�\u000fz׶B[{��X���-�j���\n?W|Ŕ�!�U����^��\u0005mg�F����\u0007�~C�g]�#F� �7���\n�S�4��\"6��xa�\"���\u0000�5~f[Y\u001b��.��3l�Ds܄f\u0004\u001ce�&1g\u001d����O�.g���m?T�/%�u{)�/a�h.#(�CNJ�e��m�ß\u0016pe��4A؏x���\u001c�%\r9\u0015�\u0015�:o��|���!�X�-Ƞ�\u0003�j\u0013�\u0001\u001f5X&\u0015����:\u0003�bq�[sE��\u0013mץ:�oڞ�����\u000e�\u0000ٿS�c�V�+O\u001d�M��{�\u0017V�S�\b�F����&�O-��(����?$y���\u0000�zv��{y/��=.)簈�=ͼ,L�\u0000WE���\u0002�ǽ3�\u001f�\u001d��\r\u0006->l��3�#�5V|�\u0019��G���Q�\u0019��\u0015w�n��\u001c�1�\u00008Q�\u001d;�\u001f���\u0000�E�mOD�.�i{hO\u001b�b�%ͲK\u0013|q�pA\u0002�:�k0K�\u000e�\u0003�,b�M���t=�(bǓLM��:�\u0001fZw��l�\u001b�\u001ax݌ncH�ejF�FE[�r7�8��&?\u001f���\u0003.\u0013͏y����隡��oJ\rGF�VV,�d�Q%@��&e�:�9���Cć�<��v��% c�\u0007ۻ%Ӥ�\u0000\u001c~]j�%�o\u001e��jM6�;TH\u0017��H\u0005�\fr\u0010M<2ys\u0001�\u001a�'�K�\u0003�\u0012�1���׻�>�E������y\u0014p�q��$\u0014����\b\u0014\u0006���lj\u0003 ;\u0002�<\f���P�?S�\u0019��\u001f.k���<�[�kpѴR��$u��mNc�7�͆<�Ɋ3\u0000\u0011���,S\u0019%\u0012H��og�n���\u0016ɧk�\u001c�\u000e���\u000b\u0012�*o�\u0007��%P���Ӗ98���9\u001e��?�1�Xϩ���gB#��̊��Щ�@�heQ2�A[�N�\u0000��\u0006P |J�\u0000?}�{���\u0017���s��qkqm+���n2ĭP\f�\u000fð�\f�a1�\f\u0007�_\u0017\u0013=���\u0003|&F屨��Q�<�&\"=��\u0011�$~���\u0000��_�|����\u0014z���M��q�F>D}�E�24g�������t����A��WP\u0002n\rx\u0000kZP�\u00053m���nn\u0010�d\u0003�\u000f_���\u001aO�e��U'��]:´+�A\u001b�m�ܰ1�C�4p��w\u0013�� \u0000\u0007#G�_\u0004�1�\u001a�)\u0001U�\u001d�\u0012E\u0001�O\u00103fE�\f�f#b��Ք\u0000�!�\u0015�6�o�\nֽ:��*\u0018ɝ��D�'��oȽ'�:\u0005�\u0000�.��ר�Z���\u0018�,��\u001d��Ճ�'��!�\u001d��qqܳ\u0019\u000f�\n���;��}�nd�I � �dj��_��L����L\u0013�w3!\u0006?'�\u0016>E����������\u0006f�����ށr��WM���SrOٍ4�iX�gQ\u0013\bGė�\u0010d�\u0006_���\"#�\u001b��������4�\u0000�MIk\u001cf��\u0004�G���tjl�g��%��1��T\t\u0002��\u0018��H��9\u0019\u001fyܹ؄D�5����?\u001d_��v���u~&kg\u0010ܦޠ\u0000�,H���F[\u001c��\u0012䋭���~MZ;\u000b��Q\"��\u0010v�\u0001!FĂ[�A��s>�Ç�1\u0019\u001f��\u000fy�84�2�R�|�}4]�$UR�O\u0015^\\H�,>�5\u001f<���Og��+\u001c�U戋\u0007\f�\u001a�ܚ\u0012I��H�$��$�s`x@��\u000f\f�}K\u000b��c`��\\Gs\u001b��աq\"�\n�=W�z��2�\u0014�<�o��(����\"�����a�W��B9\u0003�ݬ\u0012�_�vA�#W��\b=�uZ�&\u0006H�3\u001cC��\u0012\u001c9%\u000e��\u000fv��V\"���\u001e!h7 ����<)��z\u001el�A��W?�C /Z|\n�E\u0000�\u0002\b?M3]!��\u001c� \u0000�_x�M�涶�\u001b��H�T\u0011I\u0012\u0015X�\u0000\b��Z�{�f\u000e\"\u0001�8\u0019D��w\u0013\u0018�\u0000���\u0004���:(�[Ք�^$k�\u0019ҩ\b��\"��s8\n�\u000eN\u001eYH�yo�\u0003��K+ʡ��6�AP�\u0003V��@�~�������\u001a��7X�D�H�H�j�n\\��۰�zv��A�pm���>8�b�w��$�\"je�Q�\u0010 ���\u0007�}\u0001�\u0000\u0003�q�\u001c�H�?h\u000f�{X8u�=N0~O8��\b�pk\u0014F�v�\u0015b\u0001���\u0018��nT��w��\u001d�\u000f�%�]KH�'Պ[&e ң�Z��.`���M\u0018��~�'\t�ݲ�;\u0005�;V2�H>\u0001�c�\u0000h�mJ���L�_;X\u0004����:�`�(\u0016D���U^=���\u0000\u0005��Ɲk��#�|w��\u0007k�K�3G��5�\u0011$}���>�ũk�pDi.n^T�\bY\u0002�\u0003\u0015�U�\u001a�\u0013�X��#�$}��\u001cw2*G��������DvZ��k*�I�p\u0004U��-QS�Ol�\u000e\u0002g��\u000b�ǐ\u001cBq�G��$�wL��\u0006\u001b6δ�ؚ�؍��t}�\b�T>�q�\u001cr�\u0015�����qK\u0002�I:�\\�#\u000b�~\u0019��c]��\u000fm�Ls��y�\u001c�\u001a�\f`K���R\u000f9������\u0003��+nJ��?�]�����ń�+�ɆJ��l���V�Q��I\u00100��Z\u0012��Y�iF�,H\u0003�|�G�x#v/o���`c֑/��}���\u0018��\u0004���*?��O��o��2f�_����\u0018���^F�ͧ�w�Q�$1-���.��>��\u0002�u\u0007<\u000fS����]\u001e�-�Pg�\u0019��\u00011�\u0013� K�7}W�u?��}v�\u001b�t�e\u001e_TD�d\u001e��\u0000G{��/56���YY��j7>�\"��i�גHB\u0000\u0007\u0018!`�\u0002�s��σ&�\u0012�8��>?ڱ�dc\u0001��/?�G��O�=�-5\u000f.~K~a�\u00167B4���C\u0006�+�(�\u0019.\u0010ۃN�\u0016���k�,H�ɔq�����8����\u00118c<=�\u0000������ߑ\u001f�Z������?���Ior�Yo:���5�\u0010�U�B�\u0013S��@:-A�Ӛ�N�\u00068�\u0000�i�呎�P��M���dG.H@^����Q\u0002[�>�д��\u000f˭,Y�?��ߜ'�����\u0003ʒǨk7���'�|�-�����±�ù��^�Oں��)���\u0007o\u0012W\u0018��@o�.vA��\u0013\b��q��\bp�����4�|����_��PI�{�A��7\u0010,K\u001e����O��fx�ACoe��D��\u0012�� r��-Wdks�'��r���<8\u0003��\u0011�.>=N8d\u001f��\u0000kid���]F>�\u001d��=���Ty_F��{-\r�\r.�o��zn��\\�M:\"����v�A\u001b\u0003Z���1��=?�g\u0013\u001e1\u0019\u001d�L�\u001f\u0012_D�����2��I��\u0001\u0013�o,��\u0000��_�m����{�fI�V�Qs#X�j�\u000f�<�uB$ ��w�^���H���c ,������\n\r~\u0010}�M����<���rg\u001c������\u0019�\u0013v�����_��_���E$qP>����u\u0004\r�x|������b�ޒ�}�v��}\u0003\u0005�\u0012�U~=�0���ߩ�����$kv[�]>�\u0012~�*k��3\u001d�w-�=O:e6���5@\u0000�|�y�\"�\u001f�5/754��>\u001eݱ�[�X�eT�\u0000�����Z�2��\u0004\u0000\u0000(\u0004j\u0000�m���ܙqK�1\u0000�^\u0018�\b��R�p�\"D��G\u0011�|��\u00009\u000b�1�y�˗z���p��q�ֳĀJ�(,\u0014��#�#pFk�X�CU�l��\u0011�'���;��P�ߑ7���7W\u0016WV�1�Z�%��нVHث\u0015�jW��2p�qg�\u001c�4$.�1�\u000f��rإ�I�\u001f��CAA\u0014�}J�>\u0019o\u001cj� �9\u001e�\u000bk�\b�#�����H�6j�j��V���/J���]��¦\u001d==\u001b$�v��<�;\u001e\u0015�b�\u001f\u0004�d6���v�\u0003d��\\;o{��Ώ�SB�\u0016��\u0012\u0010��@��S+�p\u0006&���w\u0003�̘�\u0011�\u0004lX��J��\u0015��v��m�]\nU�ťɏT�\u0011˕�r~��\u0014R�;R�&�dO���Plƹ���~g�[i��^V�\u0000\u0018y\\�i�{X�YŜ�\u0013�!\u000f\f�w�)�\u000eS�O(��)\u0001\\�\u001f��P�e\u000e��_q�|'���W�.��Es\u0004���r�a\ntb\u000b+�R���f^=fYF��\u0000�ͦX�\\=<���巜\u000f���.���Kn�im9�L�ƒ\u0001\u0015A5�îd�fXz�\u000e(��u\r3���ؽ���<��f��~i�M?�:tv��dP����Y\u0013��\u001c���\u0013ZT�̌:�\u0013�\u0014I��~=�4��`�ic���-&���o�0]�W���OS�H\u0018,���� ��1*j\u0005{\r�s�Q\r\\<,���\u0005���\u001dvm>L\u0012�1�^\u0011�|\u0007�^]��甮5\r$��_U.��v\u00062�E\u0005\u000b\u0001J\f�$¸��6�[d�#�����\u0000�Mh��\u000f�tMJ��U��'�T�Y\u0003�j0\u0007�e\u0014=�X&%��E�b2\u0013�\tz����\u0000�\u0013Y���e�`K�6\u0011�S^/o\u0012�c=kF���:=L|H�,yJ\u0011?c�21�#!�<���F9���J�I�w\"�C:\b�\u0011Z�w�\u0002�4\u001a�c>NU�!gk|)��\u0017��O1FA,5+�\u0000��i�}�SZe�\u0018�P\u000f.��Mc$u\f����8��\u0015tiR4f#�$\u0000�S���j��˛��cž���\u0000���i�U�\u0016�\u001d��]j:��D�\u001cV�o\u0011#n@;�q�\\P��}y�\\@�B�i�w�\u0000W\u0006�G�|{q$����f�<���w[w\"tH�<ůi�M�c%��Q�\"����N�\u0001W�21�\u0006^N<��\u001cL���q�A�yj�N�U-쬂�\u0001j̊\u0001n#����S�-~A<�c� �,L\"#/�����ϗ���\u000e\r' �Tl�h\u0013܅\u0014�fV�p�W*r����w��_�����s�@�\u0016�\u001f=/��>o�����o͢y{D~}\u0011����)�Uͯh�C�r\u0011�`C�4��\u0001u����D�0�yzF��C���r+�0k/sa`�t�\u000b��w\n�$ӂ�$jEG$#�3�2��z~6s��0��G{��󱺼a��+�\u0015 |+��w۾Vg� \u001c���d^��5\u0013ǣ4�^\u001e�~\u0015o��\u001c�8��R��>���4�\u0000�\u0004~A�\u000eÇ��p��2?3�\u001fC��\"�T��+�y:Ѝ����㜆r8�����7������*�\u001b�\u001a\u001e��i��A�H\u000e^�`�O\b�\u0011�j�\u001bV��?�OJ�O��.�d9[�����3\u0011as�����rL5j�������3����6��;�d��'K�X\u00042���e�ǫ�\u0012��\n#���5j\u0000���J�Nc�6\u001cHH���m.�D�2)�!\u0019N�X�\u0018�Ƈ���jrG��Q&D\u001e��/�8b�њu�ah��H�\u0015�J\u0012�ՍB��fV�7\u0017\u0017PDf@����G��\u001e��_\\�RNQ[+B��\u0015M�N#`�Fٙ:���]p�d$�~��\u0003�,>�ޫ�D�\u0003݉?v�{f�,��v�\u0011����SF`���f�i~��r\u001e9\\M\u001e��8��|������j�\u0007V&[i\u000b\n�x�r���g���|}��\u001d\u0006a����k�Z�f_�#�y\u0006��5���\u0003� BA#p����)��;쀉q\u001e�y�u���j��H�JIh�8^[�s�|\u001e8���6\u001b���'�]8�\u0000Cv�\u0003�$G>\u0014n��A�(\u000f�U��P\u0007`I�pw�H׽��\u0000�R\\G�_,�p����Ӑ�\u0017v7�I\u0011N�\u0004r��\b��fd��\u0018�9������\u000b[\u0011�K�\u0013�L%��ҷ��\u0016%�|ס�Ȧ�E���r�@V�\u000fbч@y5T�I��EǤ2��9Fr��\u0000d^\u001e\u001a��K\u0016LJ�s���׿��A���Ms��H�\u000b��U�L�/f\n���-\u0010\u0002[;�x1���Ƭъ��e�\u0018�$T���N���\n�2q�9I�����˿8�g4&9e-\u0004�8J��\u0001�0\u0014\u0004|�?U���\rJ�|�9���w�������'��\u0000@����Q�'?$e�V]\u0006Gk?�\u000f�\u001fB�����������\u000b%��\u001b�F\"$SF\u001a\u000e���O��y�{0G?i�?����Gp۽���<�O0ͩ�g�D��tA�1=fk�\"�\u001d���\u0001�<���$�\tɤ�[C����?=y���˺\u001cVp�i�>�}�G�mm�ؖF�yt�sJ��,��\u0012w�o�����93��f˟(���'�@��m�\u0000�)���#�\u001e\u001d>�x\u00180�Dat\"\fLG;;�$ݓg��O����]Ь�,� �\u0003�A,�X[[َ-\u001f \u000fգ��랟��c�3\f1���<\\t��O��Dy�/�0\u001f�Z�\u0000,Z���(\fR-B�5���T�P�\u0006�\"�����qH�p�|t/\u001cl��\u001b�B����\tW�@�zʍ�,�o�r����G\t��g-\u0006|c`8;�}�C���R��4�R�k��\u0012s2z�2��Wjl��\rT0nj��:��\u001ax�Ep����s�\u000f�-&�uacz\"��\u0011V}n�(m4�d_ZH\u0004�\u0014f����/�������G!�?����\b��*]Mz@�s}I�?�{-\u0005WIНu\r^��m��X�ꖅy\"���OP\u001a��\u0001�4QNj\u001c6S�\nW-\u001a\u001c�<<^��\n�R�\u0019�\u0007$�\u000b�?&�_ʞH����=>��-�T�\u0004H\u0019���\u0000\u0000��jsg�K\f@B\u0000S�\u0019�\u0011�l>ߋ8�ךG1\u0006\u0004�aJ|���2�\u000e��_�+��X�kי�ɉ��r�>]��(�P\u001b�\bJy8�!­u\u0014%���J�Z�\r:���L��[$!\u0011q6X_�.�K'D���HB�o�Fٛ�\u0011\u0006�'W��d*�\f_��W���\u0013*�\u0014T׭E\u000f|�'�����9LO�Ř�{F��#\u001c�iR?\u001a��M\u0003���L\f'�{�o �6�w�ޭ�R��W\b��\u0003\u001e�#�L9D�]C���<� �)����Y�o2^<�]�e�\u0000GPzR�f<��w�\u0010�CO8UL�K�yq�4�o4O�U\u0001P/�7��jr��\u0018ă��:Pe\u0019G��~?\u001bt\u000f,ZI�2\tU�枱o\u0011�&\u001f�ׁEonI\n;\u000e��4����]�K�pA�ؤE��㾡k!qyrw\u0004׍6�~�\u000f�L��+�1��@vg6?�:����Ĭ\u0000�\u0006���rCG l��?��P)�~Vރ�����|�8&7��i\b�ܿ�׌\u0005e�|���\fR��P���n�V$\\�*|z~\u001bc�z\u0013�c�+6\n_�\u0000*6��&�rO��÷l\u001e\u0014�S�H��؅��\u0016V��7\u001bw����#\f�\u0012J&\u000f]�\u0017�\u001au�nnO�����3�f�4Q\u001b��\u0012�����������\u000e>\u0004��|\u0019\r \u001e�Kn?�\u001f�b���\n����U\u001b�pN����(��Z��U��]}\u000f�t���L��~F\u0015ͨ�\u0000�\u001c�m�\\����\u0000��\u001e8�_'y���\fc��#\"�'��[m�����v$���\u001b��\u001e���p@��\u001bt�C��58�4�Y�\u001f�\u0003�\u0017��\u0000�i�f,//E�\u001d}��)��s\u00127�\f? :\u0014���q~��&�x\tڇ�\u001f�S t�@�����y���\u0000�0k \u001fOS�\u0014\u0014��B~]\u0006>\u000ej�����bt\u0012=vH.�\u0019|Ф�z�o\u0000��t��F� p�\u001bؿq_�Ͽd���?:CB�\u0010Idz@�S�jk��u\u0000\r�Q�<���d��������`�\u0002���U d%\f怀��I�d\u0003���\u0000\u0001y��\u001f[E�a����\u0000��s\u0016X�D�\t|7c��\u001c�f�H���g�.Ț#�i��[������R�\u001a��\u0001�푌3�\u000e(�s����\u000ed�a��2;A�����\n�G\u000e�\u0003m��lŌDS��0�8���� \u001ej���)�)\u00142H�X\u0011�\u0004~��XA\u0004s\n,r|����%�Oy.�\r�A�<��\u0018�T֤R��a\f#\u0004���&Ȯ^i�����C���m\rO�V������\u0011�1苋�@\u0014?V��E\u000f\u001f��\u0011\u00109r^\u0018U&p�UhQR��Oh֟O��xkܠE:����X\u0001�Tۯ��d�yw��ܛ��Q��#�\u0016:�\u0000�%�}v����cQ;�o\u001f�v��_��7�\u0000}�����������o���[\u000b^)i��Xi�R�G��)�\u0000\r���s׽��ؘo���\u001a|��#��\u0019�A!\u001f�!���.�f�����R\u000b~2I\u0013q\u0007��M�\u00155\u001e����\u001b�'�ɹ��\u0007�j7�so-��aic(v��P�.���U�PB'\u0013�\n\u0010Fٺ�{�cp��t�-Kɞ\\���\rv�\u0000����\u0016mit���Z�ܻN��\f���\u0000dri\u00132�\u000eّ\u001c}\u0005\u0018w\u001ew�Z��\\F�=F�w?�̼ۥy���I{��Y�;(�\u0011E�\u000f.]\u001dgK�����ס\u0019���R���\u0005:t\u0019I�\u0011d\\L�\">�y2\u0019A�R\u0003�\u0006��u�y�����Z[5��Mgv$I`Q�R\u000f�^#��\u001eg޴;o��\u0001u.L��\u0014n,����f/%��-d���}$u�B\fQ�\u001b�Yhh\u0019�M?g',2���\u0007��<\u0011�Ƹ�?�}=��O�c�\u001f�:h�N�\u0004R��e�[~&U\u0005��\u001d�\u0005�\u0007�k�\tb�um�{\u0013������\u0000�$��\u000f���f�4xn)y\u001b���\u001eD:ʈ\tHŸ����sƸ2\u0002\u0001\u001b\u0011���,r�&\"���_\u000e��|���\u001b�˶�^�[j���j�D�B��T�G'��\f��%�\u001f� �Dys�?��<�����X�\u0005���F~~�\u001a��\u0016e#��\u0014�O\u0006YC �Q��c�\u0010�l�\r��>\f\u001f���\u001a��5'�$��0�[�K#[S�F�Bj(E8��6g(�\u0013�\u001b\u00008�\u0011��\u001fQ�˻�?:��;<�o��w7�\u0011X�K;�IB/\u0019U� ������\u001c9&$qȚ 7�F�1wD�}ϊ?�\u0011����cI\u0012Th\u001a�\u0013F\tm}+���~\u0019E)���^?e��[�c����5�\u0018�R\u001d\u0007?��ֿȧf��.A!RI�98�z�V�\u001f\u0015\bQJ�Z\u0000�E8��ߐ�/�?2=+�:����eԦnU=�;P����D�nNC�\nz7����g\u0012(i\u000b#T��� �!�UI陚�Q\u0017ʩ��\t����\u000b�\u00009��\u0007�4�(�I�\f�1�U�n\u001eN��U:�N=r=6�u�z8��U\u0017�W\u001a�\u0005�\u0015��\u0000�\u0015�\u0002�k�w͎8�\\��Q��?�q�˲��ߙ�����h-�\u0004,ε~ ��v�e��p�e�[\u000f��2Js�\u001cq�\n����}�����0}0�A]�,;�\u0000X휮rx�\u001d�(\r��|����}^��V(Z8咜���\u0001�3i���wl�*�>@>��\u0000�N�MF��\u00009!��q\u001c�\u0000]�5�-~]h�\u0001O��ZU������o.�VZа\u0007�ev��pa�\b�23�\u0000J(}�ө�0u\u0019�\u001b�Q��f��\u0002�[~r��zD��a���e�ėy�\u0012M\b��NR\u001d9;L\u0017+<�>\b�<�[�27�X<�>�Q��z\u00159���\u0018\u0010|��Ӄ-��\u0000����Ϣ�W�\u0010�\u0006>��+Q��f!\u000e�\n*=�ĻO)ͨ��[����\u0016�N�\u0000�a�\u000eF1\u0017���\u0005�+H��!\u0018�j�\u001b�\u0007��9�<��|C��\u0013��V�\u0002��ۓ0���Z�1>��q��z<\u0007�F?Y��\u001b\u0013�<�\u001f�\u001d��\"=2�rc#[\"�\u0000+|�t_6٫��\u001b�֒U�\u0001Ȇ����\u000e>����sF\u0019�%�LW�q{G\u0019����&ߤ~U���\u0016�N!�\u0001�*��/�|�g��::Lgj/[�5\b�h*�/%��<���kJq�A4�f�<7rc�h?M�\u0000%���wq��W�/\u000b�G'���Τ�i@\f%�\u000e�P�N�5\u000b\u001d�&s뭯��'灐]\\���+7�ǫ�;\u001a���.����DN��\u001b^J���q\u0006B��I;�Z��4�5Y\u000f�nn�\u001e!iM�4���\u000f\u0002AU\u0015aM�yV��\u0007;r\u0004�rڟ\"~j����܊�R�+c\u001f*|E=E�cQJ���\u0000\u0003\u001c��5x��@������:yO'�\b��\t\u000e�Q�J>��\u0010�sJ�Ʀ��Z�����Z\\\u0015Y\u001e�E�:����kG��\u0002\u000e���I�Z'�P�\u0002c��w�G\u0018DH����~�f��/�\u001d�\u000eb���Һ\u0005�6���0h�:�\u0005ij�]E\u0019Aҝs.:�ЀɎB�\u001d�w\u0013>�F\\\u0015`��6���z6��\u001f�\u00008���.�?*��@��)����F\u0001_�)���к���\u0006��=��&\u0006\u0011�\u0007}F\"�\u001d�_�҂'�Q�♿���_��ϕ��>�}�.yK�VP\\/�-4-\u000e��T���`5i�ޤ�U~\u0016\u0013\n��s����J^>I��$���\u001c�F\"8b#C�@�ݿ��~��0y��R򾳦Ϫ6�iqs��\u0017z�ٕ�أ��\\�Z�$\"S��V�\u0011�9.��Ê\u0019\u0004h�I�V;����0'�R22�\u0002O#˄��0_���\u00003/�|��\u00008��Sw,�S��ѯn����\u0018��q\f$1����[[Y���^0G�ޡ~�Z�[�\\����Uaw4\n:\u001aW5\u0013�\u000eN#|`s�\u0007��æ�\u0005�\u001e\u0003�\u000f2w�~/s�����k{�����\u000b��NXdu���sE.��GPH�i���?N�\u0007s��`x�H���W��wˏ�@`���h�}~ծa�2@ZhZ\b�x1�H�(�\u000e3��Yo���M��떖�[�ٌC��e}�I_�Hf�)��?h��LJ\u0011�\u00002��=R>�O����o jZsO\u0016���\rӧ+b�#��3\u0007�+B���@��s��c��@$uv�|�?��%�Ͽ�����w1$��zw`\u0015\u0003�a\rE[c��L�\f��o}��\u0000\u000b~\u001a�~�~�\u0003Y�1�\u0014�GN�\u000e�\u001e�\u001fו吘ߛ(D����Z=��A+\u0010\u0018+-\u000fZ\u0006\u001d\u0000휯l\n�\u000fqz��?������\u0013�%wU��+���w%�LM��\u001bx�q\\��F�U\u000f�)\t�*�zw���\u0000�TBXF��Q�\u0014�ߦX\u0000\u0003Ϛ�l�@�@�Ҟ\u001b�L��\u0016}E+�E|h\u000f߄\u0003V���@�~\u0003��b\u0001U�\u0000T^�A�\u001fw�Q�uk�hhJ'Ҡ�\u0000���W\u000b8�DA���8���UE��\u0000*��Q��0������\u001f��+��Z�J�_�\u0010\u000e�b�mg\u0011?ݥ=�\u0011֘(\u001e���i\n��\u0014�{c@+\u001fԵ�;I~��ZJn\u0000\u0014Q�݇�|��\"�&��O\u000fT�o仜�\u001c\u0015\u0010V�A�����p�w,8�̓�K�u�B\t\u001a�\u001f��\fkJ\u0003��\bD���,�\u0007��3]M#\u00134�$��#Ȋ�G��,�z\u000emr=�-��HG��\u0014�AZW�N�2�#\u0010-��rL�n�v+}\n\u0000��OS��Zl\u000eH��L!�;U\u0004}��5����w�}���x�'p�2F'��L\"�-��IM�#m\"�2�Lhǥ{\n�\u0004��ͨ�<����}�֭�Y�����Q�e��`GJ�_s�ǒQ>�ݛ\f2���1m'L��^uX� ij\u0019\u0005\u0018\u0003�}�2��\u00199l\\\\p��R��#��0D��a�Ӓ8\ni�r�\u0019s\u001c��eǴ'��?1i6���d(ȿ\u001b\u0002F�޾�d��@��џ\u0014\f8�Pc�v�M��\u0003[��\nH\u001bq\u001d=�\u0003~�l���/r�C9��*�_��[in#���qGF�>�-]��P:f6X�\\cɿO�\u0011����\u0019�����L\u001a9�U�O�\u0001\u001fO\to���'\u0013q�0�O^\u0005\u001bl\u0007�>���(��l'� ��_”����۝���Ξ\u0018��\u0001Џ�\\U�\u0005�\u0000?��6�Z0+v�\u0000>�t\u0003\"b\b�ڟ�ǀ�?�r\u0006\u0005V�Tv5�#� ��zc��{���<�A]鯇o�J}$e��\u001caZ�\u0005~]G�xUi�P푖���o���V�T�����\u0010m\u000e�F����\u0019+V�#���ت��>�^��|qU��v�x��?��M��\u0000(��]�U\u0006�C�W��\u001f���J��0�u\u001d)O��x�\u001b`�\n�m*����#��r1��+\u001c֡�-�0Gk\u000b\\:ъ�\"5;\u0012v�C�d\u0018�C��@2�1H�c�e��\u0001x�x �V�Y�Չ�\"D(w�\u0001|�?���ի֟-�����PےU��^�\u0001׶\u0015C����\u0000?Պ\u0007z\u001e�!���\u0002�\b�z\u0013��\u0004����k[�N�x�E!bJ�����Do�V�ځN�Oz�\u0000nLCz*\u0011�2���?�фB��E\u0000H�\u000f���%�\u0004w柽\u001fc(,\u0001�6��\u000fѓ\u0003��\u0001�\u0011C�����1\u0011�j�i�\u0000��տB�c�c�'�ĺ��\u0011M_ⵀT\u000f\u0005�\u0019���\u000e.�����?������}A���\u0003�/����I�CM4ޖ�V�#�I\u001cjO\u0019\u0018׶v\u0010��\u0000tt;H���͟7�ynK\u001d\u0017M\u0011˩�\b $���_�H�\u0012�\u0000u\u0018�\u0010\u0005jٛ��1*��\u0016\u0005�/\r\u0000>�:�>ǘLn�b���ifS��\u0005nH@\u0005W�\u0012G���~�%[it�~��O�;��J\u0010]��\u001c�<���g�\u0012������C����$zז�h-��M�i\u0005�j�H\u0013�$o\u001b�r\u0000PW�2qe\u0006\u001e\u001c���z���O\u0014o�������E�-<ͣ�>�΁�\r�\u0002*��\u0006��c�;�s��`�9#![�\u001c�;���uk�,z��J5\u000b@eK�zG #�\u001c��ȩ�\r+�a�q��\u001fcT�5\u0011�}�_\u0002�W�s\u0017��y��^\u001d|�J�b�u\u0014��nr�\u000fC��s6q��g\u001e\\��˄�߸�>��_��E���g��򼕌���=F% W��-�׈ڟ�����d�C�\t�\u0000'��|�?}���b8r\u000er�\u001fm~��o����ʗWΌ�\u0004�7�z�!\fN��F���-p����\\H\u0012\"\u0007��\u001f$����<�wt�BKr�ǽjL�T�z��W-Ў\u001d��~��\u000e!ʞ��udn/�\u001c*a�Jl��\"�����|:�����}{?7��*��o�\u0000;|�\u0012N\u00194���:\n�T\u0016vq�QZT�$<�\f�I\u0000q�/�;/\u0012@Vϙ>�ӳF�\u001aB�c\b�y\u001e��t!�Ӧl�G����D��[�/�K˟�O$��\u0015.$�o.\b<\\�*�\u001c��,��/��~��*8��;~<�4�,Ҝ��_/>�I�\u000b�Q�\u0018�rpY\\񢊚\u001e��NsS\u001f��'q\u0001\\�\u001d~oݭ��|��goH�Tp\u001b��li�m{<Ԁ��$\u0001�=������J����\u0000�:�E��\u000b\u001d�\u0000��<���v��\u001e:��K\u0014�V\ny%��P��m��؟��\u001b�\u001cc��~�\u0007\u0016)B\u0006�┥�\u001fs\u0017���*_��\u001c$Op�Bܾ\u0019\u001d\u001e�zqD�C�\u001c��\u0002^n~(\u0018�}F����ٵ�4Gn\u0000kx�I��\u0002\b-Ȩ=���\u0003�\\�=��\u0011����\u0001��@a\u0001�F��\u0005��z>��\u001dN�\u0000}\u0010\"r>@�|O'��\u0002�,ui-c\u0005-�nQĭ�U��*:\u0015=�ͧ��\u000f\t��\u001e�ˋ1\u0004lm��7*�Ȼ+S��\t�$n�G��QE���\n�\u000f��G!��Z\u0012D�>�|$��_l��\u0010\u0002@�����ԑ�R\u0018�>þ��=�$ӕ��\u0007���\u0018o\u0011��T��Q��S֢���6C\t\u0003\u001d�,�\u0004�by\u0010�\u001a���\"��.�}\u001b\u0010�C\u0019\"��Ƞ\u0007Zױ\u001f�tөF3\u001c�y�\f'(\u0011����z�0�\u0004�pCP@!~�\u0000u�XWm�3Y���9�\u0018���\u0002�����-��ɍ'P�j\b��35\u0003/�GS�%FĊ�w�1\u0013\u001cQ�\u000e\u001eqr���_�\u001aa�ooZE+W��\u001d\u0000�QQ�_�'�辮\u0007\u0010\u0013 �A��]\u0012��� �Y8�A�E\u0005y���5R\u0015.��\u0018��$}T�\u000bG�r\u000bU\u000e:S�-;x�h]\u000eNL!\u0013\u001b/��\u0000;5�}[[�\u00160+o�V��O��=��~����<�h�{G.� ��1�\u001f�@�|A��I�.����Q\u000exN��~��Iuhn�$\u0015\u0012/�R\r\rG��\u0003�����c͌Hl{�\f�M\u0010��\u00003ήt띹�{\u001a�\u0003���\u001edw\n����ň����\u0002D��\u0003eK�\u001e��:Ɔ*���e��\u0013l�O<<�`~�a2\u0002���h�H�\u000e`�NQ�=���e�Z�Fӡ�V�娱e���Io\f^��@*CJ��7͎�G�|ˇ�\u0018��\u000f�Y�\u00009\u001f�\u001f����$�3��O\tZ\u0005\u001f�,4MbH\u0002�x)�ge�힃����p��\u0007\u0004c��$\u000b�<ޏ\u000f�N}�ډH�q\b����\u001a\u0005�\u0000�\r.�K�NR���\u0011$�ʴ�\u0012V�XliJg)�7�NH\u0012%����\u0004\u0000d\u0005y�?#y�K\u001dHi���p��R=\fw1n\u0010=i�ڵ͎��D�q����뿸�\u0017[����:\u0000\u001b�������\u001e�FR��ԥN�y\n��\u001aWl�:�|�8���3�\u001b_il� K2�U1�V�M\n�ҧ��^1'�r.>L O�T���q+�}[˗��U�[Y�!V\f��ex��X�9\u0000�Ew똺�Gf�eek\u0014�\f�鬌\u0016�۩'����\u0019g�c�;�?\f��-޷���\u0005���ZәmQ�]��2[Z�ک�\\�ݽc��@�'v蠜8�,��6.>�X�D�1�/�\u001f�ߓ�\u0000�~]�z�{W�#��?x�^a�x��F\u0003}K˖�P���\u0003Cr��'n �ӂ8�����=�S=A0�v\u0006�\u001c��zn���{���.^�'K�x�a\"d�0L�7y�\u000123�ݍO|�j3�+\u0003j?\u00177I�\u0015y\r���λ޻�q�1�r��I��\f��moyC)e��f6�Lr�N4o\f���x��`*��1�Q�\u001b \u000e���G忕�өGoom�ūG�\u0019c�*l�A%Vxg�H�8�m�\u0001��^iF6g�\u001d�c���Q�\t�3}<�py+�i�\u0011���U�O��\u0012\u001b+'�K�TaNK\u001f(�D\u0014P�=�O�\\G�\f\t<�����\u001b�.\u0011�ng���8��zO�\u001e��\u0006�[x�T\u000b��ܗ{�+�GVV\u001c�vs����7�K�7��\u001bG�k0�����&�\u0016\f@�.+�^RH��H�M#\u0000�u�a\u0013\u0001���_kh\u00138�\u000f/>j�����%�����O�,̍\u001c��\u0014��F�E!�R�2\u001e�\u000f|�=W�\fH\u00062�|�'��\"Q5?���O���ǯ.��V�&�t�VH�m�\u000fC@x�N٣�LM\u0017g\u0019X��yV~)u\u0019 �\u001b��\u0015=\u0007��f��a~\u001c����\u001c�ˏ�C&i�5�����4���}a\u0000\u001b_�C�uU\u0016�\u0013����&\u0005r[lL���\u0001\u0016�\u0019��\u0007���h+A���G����~�������Z.��?\u0013��%\u0003������\u0003�Oçኮ\rJP�\u0000M�\u0000^*ߩ�l\u000f�*�>��\u0000o\u0015w?\n\n�\u0000�ݎ*�k:�i�rHH�\n�Wj�\u0011�\u0003ݰ�|�0��#}z<�+{���Y��;\u001fs��\u0000d�J�8��I�Ր�m���*�\u001f\u0010���{�*Gz�[H�G:\t\f��%�J��ڜ�܁�\u001c�\u0011��r�+��\u001e�,Z|��'�?�\u001b�\u001b����b�\u001c�8\rܾ��Wk5�!V\u0011�#��V��;��*d�\u00110�\r\u0000V]�[�D�EBw\nWq�\bܜ\"2�\u0003\u0019��#�\u001e�d\u0014���e;P��\u0019le.D4K\u00162x�ԋ����\u0016���Y\u0014���*�\u0000�Jd��`�\u0018�<\u0004\\X泠�Z��h�2\"G����)�J�ˡ�'l��ͧ�}xI\u0000tM��p�\u0001x?z\u000b\u000e\u000f���2\u0001~�M�\\��_��Wk6�j\u0012\u0006a�сfQ�_\u001f\u000fl0&\"�$j#\t�~}R�KO�Y,v�.LÈNu5?>���u+ l���xj\u0012ةhZT\u001fW}\u000ed��\u0013%�;�-�w���2��%~'{f�\u0014\fN\t\n7g��y�K\u001am�Z��\u0010�1��G��fv�\u0003�ʆΟ� a�ý���A0��$b�%\u0005Z���a��Ӵ��_���\u001b=\u0007O\u0000�Bë(���sY���\u001e�MG\fOR\u0013*S��B+CR<:\u001a�+oj���z�}�^�ۊ�O�\nWz��<1U�\u0003�\u001e\u001b�N���E;u܊�\u0003ǵ1V�\u0000�Z�\u000f��\u0011LUk\u0000|7ޞ\u001f�\u0001\u0000��m)_�����u��ߍ{d�A\r䕭��������\u0005A�)�c��[�)����\n��˧��]����Z�T�v\u001dN��xu��1U��5�\u00003LUaQ�Oo���T�1ƥ��\u0000*Y��+�\u0015`zߚ⇝��\u0007~�%~\u0015�S���Ga�/<ԵI#Nm!i�\u0015�Չ=�_\u001e��9\u001f��,�\t4��]RI\u001ez\u0007;��-�~�7w&�����Ez�\r������5�ވ\u0017���\u0000��e�q�Wb?_O뇧���~�\u001fw�\u000e�w�I5�e��z\u0000d�v=����uC��vGh�|Hhk��\u0000�e�&Q�J�Lc ����ܕ|���eYmM7!O��\u0012\u0016�ֲ�h9W���\u0000���W�lG5߰��xt\u0018H�\u001c{U(܈�%�\r�\u00009\u0015�O��\u000f?I\u0014��\\��W�$B+\u0014V�?S�A=O\u0018h\u0006{\u0007�\u0018�\u000e��ď�`��|��r�ݩ�}\u000eY}��\u001f,���\u0010yN��O�c[�n���\u0005�X�^_��*\u0011j�ܜ豎9\\�ζ[m\u001d����4\u000f\"�������&��{�kKWv� @M#$�\u0000穦e���\u001et�.���@��[\u0016�\u0000Q���(G�22�PE\u000b3�Lz�aV��H��Ul&6��`�����d�\u0018��M\u001bF��Uy����h)H�zek���6\u00182��\u001f��?m4�\u0003:\u001b�\u001fruk��]R��K���6�J,Q�y\u0001&�\u0014t(M\u000f�l1�\r\u00109ۏ�\u0001�G�^���ŐX]I\u0011�`V�\"�h�r-ϗ.��3&\u001a�]���˦\u0013�\u001d��\u001e�{�i�wѓD��\u0000��>�*ʶ�Z�����q�w��h�=F�hȨ1�\u0006�0p�\u0019|HH��Wq��]s���K7�a!�\u000e.R�u��|\bD�s���k��W���]=�P|��k���G��i\u001ef\u0003��\u001a�\u0012;�\u0004�����$�@��tEK�\u001eG�M�L\u0000\u0003\rCm�\"k�.�\u0011�GkV�^�g���+�+��8\\Ϧ��nd.�,��Q��m�\u001c��v\u0019�\u001c\u0006#�\u0011\u0013�}9�x�\u000b�,�\f�Q�\u0006��F�\"=�2��7^\\�e�X�mKF���,��\u0006F\u001c\t\u0000��x�\u001e>\"c!D��X�\u0002 �ƅ�wG�I�\u000bV2��\u0010�A�~��[ڝr�\u000b\u0000\u000e�FF$��\b|�����_���\u000bJ��W\u001a\u0005��+�Yf�C2�\u001eÎd�\u001e��\b��L��\u0000}\u001c�^���\u001a��?�~`�\nPj�]�5\u0007�U}Yt��m�⬱�\u0016s���WO��¼��\u001f�I\rݲ�L��G^D�#\u0002HPE*���\r\u001c�(\u0007�s��\u001d=u'fo�ka�Xe��\u0015-\u000f\u0010\u0018�q\u001b�\r�\n\u0015�J�,�JȌy[V�\u0013\u000e#�_m?\n�\u00008<�5��\u000f�\rHH\u0019n|٫*\u001eD�H.Z\u0000܏��=�鿺\u0007�����d=#z\u0003tG䖅'�<�\u0000��H��,�:���!V\r�C�\u0012��AN�ͮ\bă/�pA�n[���\u001f\u0017�\u001e�\u0000E�%��G\u00158�@Lk���C\u001a��G��\u0014�?Q.n�\u0011\u0014��u�Df$�dVH�/^#��\u0010sMW*�]�8�J�u�9��\u0012��:?��G����W��l�T��5k��\u0001�����+ᛮ��Ǘ��u\\�0�*��?l�\\yv��~G���\r\u000fI�<�i�A0�\u0013ŦXGd&���\u001c�\u0013H�HE�3A��\u0000rj�\u001a�f[wt��\t��2�pb\u0017��\u001e>�/��3?1.u\u00166��Ej�\u0013]�5���4\u0005�w�MWgbT\u0010ߴ:u�&mH L؍]|>�+\u0016\tJ\\@Y����\u001bȑ}r��QrV��M�\u0007hW�\u0011�^����<�����\u001dm���h�y��~���7J;?KR\u001f����t\u001f\u000f��\u001eXE[��.}D�#\u001d��e�C\u001e��0�P�Gxn�'&���.�%Y\u000b2:����xoӏ㜶z��ݴMn�u��+F�;�6\by\u0010?��0'��\u001ba)\u0019n�2����4.v�{Wq�����r\"7yK�\u0005�ܰ��o�&�mӫr�[�{�r\bڋ��\u001f23�Ϥ��\u0014\u0013���Ә|k���O������-v:ϰ�U�}äjA�\n��X!��PP���NQ�mH�\u001e��x�\u0000�9��8ф�Q,��M/��w~q���О�\u0006��a\u0017���q5P��@\u001d�s˿�.�eh./�J� ,�T��kV���A\\�C��N�-G%����\u000f�kIcq*J�A~\u001f\u0016�\u0001$\n\u000e�A�̘ɓ��x�\u000fF\u001d�y�B�Ɖ&��p����c�)ڸ�tA'�x������DI��Wq\u0018UgE3@�>\u0011,G��zr�z\\�K�ǩ��c���\u0016�\u0000\n9�,\u00197��b~/�STp�\u0018��\u000e@oB�I\u0005v\u0004��s���\f5\u0018���\u0011 |��y��qNXr\u000f\\\t\u0007���:��R��!\n�`\u0011~��\u001e�q\u0018�p\u000b�\u00122I@B\u001eF7h���4�v��3���k�޽���]><|Q�3\u0016,п��+�\u0000�\u0002h\u0011�os��`��]Ap��ǫiެK\t�\u0007\u0019X;G%\u000e�\u0012+�����U\fy$k���ņ\u0003yd�\u001d�Q��\u001eբ�M�(�_�E}���O2�^�1��tMF\u001b+b� oG�GW\u0012?�\"��l��k$N<\u0018�\u0018��\u0000\u0010��<}�g��ɐ����W��$�\u0000���\u0000�o�oo�H����\t5o0j�W��ޞ��!H\f�hO�k��\u0000%��az��=\"\u0000\u001f��5�\u001cg�\u0004w�qi�\u0000�>a���O2y;R�5�?]�`�\u0017�M�I\u0012�s\u0011����c���@\u0000�t��[7i���%��\u0003�q<��=�]�=&\\�x��\u00118�t<����9���[�[����,����}ڳ�e���f�\u000b\"��0�la�}���\r�.��8��k1J�&=C=�//t�K(��J�G�����0]\u0017x��n��P�\u000f\u0002+A�ф2٘\u0013�\u0014��c�\u0019\u0002\u000b�-\u001b_��tĺ�(����d��ȷ>���\u0005\n�\u00040��h�a�9������NL��̚��\ts\u0007\u0017@É\rZ�{�\u00020C\u0006)\u001a<��Ϟ\u0011��ewz��\u0016�\u000e�d� �:&�]��\u001c�\u0018�\u001c۲��1\f���.�8���\u0018�m�\u0011#��cN5�O�?�d\u000e͔��6\\9v����:s��D\r�\u001a\u001f94飡�\u0012�H�m��W���ɞ���f�r\u0014��H�\"�N�?m�]9qL���G�\fby�9�W�c���2\r�`��<)_���UOM�\u000e�Sï]늨�޿>��V��\u0006�Ǯ*�=:��\u0000u��*�o��\u0015hxR����WEs\u001aC�\\\b?��*��Ε�T��>��\u0015k��WR�:\r��O�\u0015Y�O���U�w�j\u0003���ت�I\u0012\n�$jz�L�����0�C��r�\"�\u0013G\u001a�;\u0007R\u0014(�&�\u0003l\"$�^o�����\u0016��O�i�����&x���\u001bq$\u0011�\u0000�12�#����:��\u0011�eɚF�!vܞ��v�x���iM��4�F�QN�\u0015Ez\n�#+�25�����}rK��|�vm4y���K��N��\u001e*(E�t26�*�qJҕ�� \t\u0011�!n<�\u0006��M���M\u0014p)\"��=�\u001b6F\u0011\u0012�χt6�a�-Nu\u001b�J\u0002-b1�I0\b�F�\u00042\u00155����B�{�\\�%�\u0001'�?����1\u001b��b}\u001fQW\nY����jA���͎(\u000e\u001fO2�S�z����h�M�\u001aw�n�$\u0005�S�jpJ�x��5 �/�$��O`\b��KnxG��#\\e-&8��5����\u0007��D��� \u0001��ё�*A�Oם�m<3a�l�\u001a�,r\u0004\u001a�}%�y�V�\"�����\u0011\u0014�\u0014���6p\u0002�c�\u0005�_\u001c��\u001d��\u001991�nV\rVYDC!����\u001d;�\u001a���#[-\"��)\u0019O��I!�m��Nh�\u0011\u001cWW@�l\u0002r\"\u0003�!���amCT�o9���R��&��.��\u001f\u0006\u0014|\u0018v�o�9����\u000fI����᧗����\u001eg���pi���7�TH�;��W\u0015\u001eٷ\u0003����\u0000\u0014��\u0007]�W�Dr'�k�ȿJ�-$���I8��F�[�\u000b��k�8$�oJg/��\u0014��\u001d�\r��{�/�}n(od�2�`I+AB�\u0003�Pj�똱��~a��*�9�x��݌���\u0000�^S��>���\\Xj�����Y��Ů��\u0016�\u0002MV�M7�\u000flی�����\u001f�8({��/�ը\u0003&h��\u0000\f��ƫ\"A�7�\u000f�\u000e��JuK�Na\u000b�I�՝��Ff����\u0011 n45�\\�3�f<]/o�r�\b�C��Y���u+�m٤�լ�\u000f��\u000e�*H,\u0000��8\u001e��33�,R<\\�GwH���{\u000e���\u00005Y\u0007OH�}O�\u000fj�T�n�\"���\u001f\t�X(�\u0005�'��rR�\u0003��L���{N����(�#A�žL;��M�u�}L�\u0000uA�\u0018�+��\u0006�\u0014h�ZE�\u0018��^����=3���wm�����6�r��r7`Bю�*k˰>\u001dwʘ�\u001e+\u000f\u001b�=�Q�\u000e\u000b�?/�j�r'���+��w+\u0014�\u0016y�j��T��Qh�'�ZnĚ\u0003Q�lq�\u000e�gO7�~Q����1X�A\u0016�\u000f�R�}��o�\u0019�vvJ�E�k��8�e���\u001f��.��VI\u0015�ۂm\u0011\u0004���T�SC�j\u0006�tp�}#S�#�q\u001fΦ�S\u0016s<�\u000b�S\u000b�Dn4�#�T2��M���S�d$z�k�2\u0001\u001e�\u0000'��\u0000��zy��/w\fa�!� �q´\u0003�@\u0019�cn�5\u001d��}��O�@�V�|\t�q!�^_\u0012�FԠ\u0014\u0019��$d߹����C����\u001ek�Q�Ճ\u0002\u001c\u0018��v Pҧ$ :�C'��z�>�\f�\u0006X���5�\u00106�&��9>\u0018כv)Է|��\u0017�\u001b��D���4�<]��ǟl�}���h壙��6;�d{��w{��?�@�\u0001�A����\t.�z�i�a@R\u0012�qBW�\u0003�\b\u000b�;\b�|�zq4GVO����\u0010s�\u0019\u0007�U�fR\u0015[�~���\"$LkO�clY�s�,��G\u0003J�#��M�\u001b%qP����\t���\r‰(\\!^`�R6\u0000�hB�e{\u0006�M�\u0013�\u000bV1�O\u0011#�nM\u001dE\n��E(A���\u0018�E\u0013\u0004���;=TA�Onb��U��\u0004��\u001a��\u000e��\u0010\u000e�g\fO>N\u0014�\u0016�#�,Γ\\�4{vn3���Gg]�C\u001bN�&p;\u001c�Î#�����%��?+��5u=c̟��\u0000�~\\��>���\u001a�K\u001bX�(���H���%i\u0014BR�ƼUI�;�ܒ��O�\u0019dɐ�^`��\u001eoK��1�6�6R#�8��;��y?R�\u0000)<���R�'O��\u0000�y]<1^y�ZwHd�5R��#���Kv�B��W���\u0007�\r6-��G���C���j?5�杈W�w\u000f�^���e�Zkr�/n㙩��Y�HWn<�+Z��䧧�6f\"=�FP��.�����uy��4��\\��Ֆ�;ˡ�Ǔ:��w4���\u001eY.U���BF�\u0000}�<��\"�K�[X���\u0000j�U�\u0003e�KYx�{\u001c�@��\u001e\u0011��0���\u001co�\u001d\u001f��{�\u0019.�`NJ�=��\u0000&�#\u0012\u0016�\u0018\u0002@�m�Db�\u0019�^�&T?�C�k�\u001d29�\u0000�dH�c���O/\u001a\u0003]���sa\r&i��\u0013÷GY�]�\u0004�D\u0002O1����/�s?�S�9�\u001f��̻�/K�A!���֍�\u0016��\u001d��t����h785���;G\u001dkqF`u#w��b�N�'�\u0016N\u0019\u0013��\u0017��=_�_����Ӻ���o�o+��êKoc'�t\u0018���4�!\u0013�c��\u0004L�\u0013��59罵�\u0000\u0003],1�Q�Y�\u001c��F�=i�{7۝O\u001c0v�/\u0013\u001c�q\u00006��w���yw���\u001a�\u001e\u0019!���-�[JP\":L\u0004��aN!�\u0003�q�?k�l�CńN�������k#ςDu��y=�\u0000�?���,���=SLe/�ٹ��QTsE5^\n*\b۶m����X\u00042�\f��c��\u00194\u001a�9��8�w���_����5\rB�W���{+;{G3'\u000fRi�|Q5\u0000a�P��\u0010\u0004�H\u0018�{~���)\u0013\u001c��\u0000n��+Y�\r��ND�\u001a\u001e@l9S~@f�s�*��ȝ�3/,��N�py�����\u0007�O�[�->��v�\u0001���b��c�~h\u0003˄���o��ǰ9��W����\u0010:\u0013�\u001d���j\u000f%+��;�\u0015�v�����V�\u001c�����~�U\u000f#P���׽F*�);{�Ҹ҂�����b���r�M�Z�Ss���A�k���+�&3_��\u0019\u001a�>kߧ���l?zz%�\u0017\u000b\u00023�\u0000\u0000��]}��\u000eh;\r�<�]�f�������v$uݩӑ� ��Ӂ��\u000fZ\u001f��\"}6�u\r\u0014Ly\r��ھ5���&\u0011�P\\,�!^�i��ax�4\u0013pJ\u001a�\u0006�SrI49p���A\u0002��?=�\u0014Ldl��\u001e��Z^��}G�v\u0012��4��j\u0017\u0010\u0002�����\t&�>�\u0003��ٲ�غ�.�j���\u001b\u000e��:�7��=v�Z\r1�>�9D�\u0013�ˢ��D�)\"�$�5?��5b\u0004���0;;}\u001fj�4(�C�g\t�F�\u0007�\u0006;h���#���1ƗO72]�\b<[\u000e�i��x׉؞��m���lg���1�iGc̽/N�\u0004z�\"\u0002> ����k���#}\u000b�����\u001cr\u001b��\u001a�y�\u0014� ��?�1s\u001a\u0001�Ѐdm�B��������\u0003�܎K�4\u0003����1J\u001c1�:S��t�LU\u0012�\u0015�x����qU\u00064��1W!�=����n���oj\fUL1�m�qUB~D�W��+���\u000f�i�{b���G��>g\u0015AI��@?{u\nS�E�&�2\u0002�\u0017�|�\u001b�\u001a��*\rTH�v�\u0004�򌚭. NL�\u0015��8�?�\u0013�b�\u001f�~\\Z�Fk�t��}�i\\ėk�c����\u001b���y����_��՘�\u001a.�\r�o�\u0019o\\�L|#SS�j�\u000e~ސ5��~r�~>ND;>Wyd\u0007�2�i�8<�b��B�8��O�\u001d��\u0013�j��\u000f\u001e�����\"�S\u0018��\u001b�\u0000#��\u0017�1o2�h�i�n��_�F�7����֑�Wr��<�z\u001c�'k��\u0002x�\u001a�\u0006cA�G�\u0013~��E�\u00009o��\u000e�q��\u00002\\[铨�;mF��J;�x��X�?\"A���nә��#�B��K\u0004%������|���\u0000�˯�}7�+���V��ݧ�\u0017�W\u0006�\t���5 \u0006\u000b�\u0015�ͨ���,��\u001d�/��\u001c�\fA\u001d�{�A�\u00009\u0003�+ˏ�\u000f2����+��i��\u000f2�곯?�@&vxe�_��h���4�c6�[�X2\u0018���Y�����ǡ\u000eL�X�8�h\u0001�Ͻ��E����\"�PM\"���BS<�<1��b��w��u=��>�K\f���H�[o�^gU����bd6<��\u0000s��\u000bk�'��w<^�Ա�\f\u0011\u001fQ˷R�`\u0014\u0001ۦt��Mi�-D�D`,���.�]���xi�Fs�����\u001f4j���\u001b/Q�\b�+�\u0003\u0010�+�q��W�\u0006i3O��>��݁G͈O�ܵ�&i\u0004\u0016\u0011���\u0018�\u0011�\u001e�\u001b�'��ț��\u0019F�����������\u0015�\u0000�޽��f�!\n�Ŷ�5ڛ{��\u0018A#u�ꊂj�O���:fDO\u0010�Jk�=d�ѵ|_|\u0004�ϒ��%d=+�ܑ�{u�,���J�\u0004��x�\u0002�IRw�6G��'�jq4a�;\u0018����\u0000L�\u0007�\n�ǯ�]�]\u0014��&��?��$\r��lԯ\"\u001b�m�/n��\u0012z!�~�S5k��;}4�W���\u001f蟹�\t�\u0004����\u00007�P_y���K\"���\u000e�����:��f�ݳܻ2\u0006\u001d��u�a��>5��jr\u0011�㗼n^o>�m�]�ssx��F1���\n�T\u000eGB�m�h\u0013\u0018�\u001b���\u001f��Y\r���W�\f�j�\u00141񚎨\t�\u0011\u0011\u0016�P�\u001dwl��GNh����� ��pJ��\u0012D.a^M+�<��r�d��r d���\u0004Ȁ,rx�������ꚝ��j�\\7\u0012\u001e7Sr1��\" �\u0016��\"(\u001b\u000e�ff,q�\u001b\u0013��x�,��%o�\u001f7�s�u\u001b�gx�I\u001cr0 �\u0005&S0\u0001�\u001f��\u0001\\͎B\u0007\u0010\u0017�@�y�\u0000\u0017^l�M�����\u001e�m���f��\u0000�\u0019&�x�\u0012�X�u\u0004�W'������\bX\u0015l�4�\u0007Eex��g1�0�<��2r�C�-h+ܚ\u0011L�\u001c�A�\r9c�\\1\u0007m�\u0000������mm��`�KK�b�[U�\u0014\b��\b�\u001c�'f\u0014���!��)� �ϟ�FXf#��\u0011��;��_j�S�u42�l��s��L�F�\u0015�0'��٫Ṻ́�%�ͧØQ\u0000�9_�w�j~S�Hg��on X��)X�II�!�����785�'� \u0006��S�Ќ`�\u0019 \u000e������\u0000��\\����[�B�='^����zz��k���MN�\u0000�[{���@�Z\\\u0007.I\r)�\u000b�<�����5>\u0004a��ٖ�Q�\u000fK�\u0007������,|��{\u000b�a��\u001d7Q�Ts�T[�\u0007��\u0015�MU��T��\b�\u0005��Ө=m���f��z��ҟ�o���(K\u001f=�\u0013z�zƱgo/Pl,�=\u0003\"�\u00011�d5Ol��u>\u001fj�C�H\u001f�޾OI=1�٣7�x��ȟ�'�u���k*��e�kV\rO�ւ��;�\u001e�Lxe�u�9DY���ѵjzNZ��Ƅ0?�mB���S�\u0010i���A\u001d�A���h�ߘZ�q\u000b��mZ4;\u0012�[i#\u00145�\u0001���8����%//���:fR\u0000���?7��&Y�E~\\�1M�j+Opk�f�\f��\u000e�>���r�?t�\u0013|�.��Y�14F\u0016�\u0012�]�fM���} M7>��L����\u001c\u0010��B\u0003�wy�P�]M�\u0000c~f�_�G�>mՠ�4��� S�4m_M\u0015T\u0000Ŷ*+��bTO����\u001f\u001d���\u0000�\u001f�\u0010��z�ܓ.�p��\u0002jjN��\u0019^!��\u000e�\u0005و�x��?xF���p\bj\u001a7�49�,�mK�\u001b�\u0011�w˲8p��[�su<4�K�\u000f�cʵ��\u001d,e��\"@���|\t����\t\f3��@�����1b?�_�\u001f5��\\�?B��\u0017\u0002[�{��Yx$Q8شJ~2�S�\\���팺\\G\u001d��C�:\u0000z����=�ٸ�\u0019���T���eL�w�'����%m���);�$�N�N�^O���0���\u001d�\u0016G\"���c� hh\u000fݐ������:�����d,�M\u001b�~\u0010\u001b��k�+߮m�S�=�&�\u0012�LFč��\u001eS�\u000f�i\u000b4�\u000b�\u001f�\u0018+�tbF�j��ٸ�G`b<�N+7���}k�+�F�|�g?�7�\u001d?��\t�W\u0000%6�d\u001a����>\u001c�l�1��E����O�8�X��䩣\u0014u��J�*\\7�^,*H��w�mF�~N�06j�\u001f�~\u001e�\u0000�F�p�\u001eaա)�\u001eva��\tcZ\u001e���<_W�N8��+�.!�o��\u0001��K\u0004�*��(x�5\nG�J\r�\u001d+޹���\u001eA�C$d/���i��\"$ օH��4\u001c�W��H�}\\�O}�<�\\�u=r�\u0005��L��I\u0000\u001e �V'���}8{?�g��CP7�$K�'��s���N\b�4���D\\}��yz�|���\u0012$F�'�\u001aִ`Fԣ\u00023�a�\u0018�\u001d�@ �\u001eO\u0019�V\u000f>H�\u0012�OA�szi\u000b�13\u0002Y���SԂ�e�$��r-r\u0000�gvz�\u0011\u0018�)0�j�\u0005)ӭh)���\u0013�o��d�\f�\u00161��x��\u0000��v�Մ��%�����P:ԛ[��\u0006u=��x\u0012�Q?�:�^\u0019q��\u0010~G�<�D�\r�op����y\u001a�'�q�b2��Y!�,l\u0006��Ej����m�V�JR��7�lŔ�N\\GT�L���\u0010ȪŐ\u0015 \u0010K\u0000jjv�\u000b��\u0011*69��zU��T~2H�Ebw\u0015\r�]��>��\t���d�կ�#�d2=!u%�kB\u0006�\u0015�\u0001����m��˧������Z<\u001es���|�~�5�����>�/\u0002\u000b{]CV�Ԗ�}NAf��:-\rENj51��A��\u0010\u0011�s?\u0007*38t\u001e\u0010�e!\r�m��\u0000���e�UԼ�cyvC?�f�R�(�Q��\u001f\r\u0000?:e��\u0019#bU\u001fw�p� #q�\u0011�۴?��{�\u0018c�\u000f$i���I���\"�zj\fPIE\u001f��(�&d\"\u000f\u0011'��G�Ÿ���\u0000���~Y�wG�E�?>����+$��ZjZ��A\u0001\u000f�\"Ck\bw\u0000uj\f���~��N\u001e/;q��}\u0002G���餂mc�q���+=o�K�7�\u00171�)t�+X�:\u0014S�\b*M��j7\u0011�\u0002�(��A��uя\u001f\u000e�\u0018��̺�\u001c�\u0000g&�\n\u001fu��>�����\u0000�v�^�i�s�\u0017\\���$�\u0006��뿙>f:�Q|B\u000b�V�;+X�֯\u0018]�S5��\u001c�1��\u0003�#�\u000e8�}G��t�L���\u0007���N��[�>UO���\u001f?�\u0005������\u0015���/����_׼�1��c�)\u0016f�ULNE\u0001\u0015�g\u0016oiu�1��)�v<&#�;<��\u0003D\u0004���%!b�ϗ$\u0006���:�Pˬh?��\u0000�������i��1���[w6��I�5\u0014&��0vohg�t��~�\u0004�}��i���}6�O�\u0003�U�=��N[�ʖf�\u001d\u0007�+�Ȧ�X�\\�~^�� ��s��qrY-��B�pٛ\u000fep�L��rH�\u0000:aǗ����Ť���lM�s�ͬ��/���Onc��.*���H#H�*�h�\n\u0002��S1��\u001f��O\t��ND����^$8�[�/j�}K�_�\u0000?\u0005�\"���\\���3�D�Ep��(a%\u0000���+��K�=��(�@\t{�����w��98%q=�������?��\u0007��mM�;�3sX�s\u0014v�1��H�\u0002A1?�^��'[�ηC>\u001cS�v�]���V���ڸq�0��Q��s�}#W�޷l%�gR�\u0012I\u0014n��N���+��\u0006l:�<�8\u0007�ӵœO�7�o&I��I5� !#@����zx\f�v�#\u001c\"z�˸�\u0019f���\u001a\u001f\u0013�v���ޞ\u0015��;�Vf��\u0007���PR7����\n�\u0014{څ������SD�=�\u0000��\u0015A��ޝk^���C�T��)܊\u000f\u0013���D�c�\u00075I/m���R{�s��2q�9r\r3�`Ǵ�-C�\u0000\u001ao�}�9`���h=���l�\u001c�ݪ�=E�����X4yOB�.��\u001ehi��\u001ck���O�M�g.�g��@��{j5��\u001f�K����qo��\rZv���wи�����6�_�z^����E\\\u0006\u0003c�\u001au�s#\u001fg�\u0019\u0003��g�I�\u0010�8�[�1X�S�\u0010�T�@'�z�̈�h�\\�)���:o�K.���)\rc#ePx��\u0007�5̬Z8��i���\u0013�@syw��0�Е�'���1F�\u0019���+(\u001b�+��\u000ff�?�o\u000e<�o�{fZC�D�i\u001a\u0000oj^F�H��׌\u0017�˽���\u001aI$�\u001a�'�B�\u001c��m��f1�\u0011�\u001d��]��\u0019x@FS�N]L�n�F��]��[��q��5�\t�h\u000el\u0019cRؽLtڬ\u00198�ꏽ��5�MJ\u0000�l���:��\b��2�\u0003��\u001c�\u0006mDr� y���V���5��X\u0018�\u001d\\P����k�\u000f\u0011�$�u\u001dDe��F�܏�l�\rV�0�\u0001���A\u0006�$N�� ��;�\u0007Ϟb�j����\u00021�i�\r�\u0000ރ�mp���'C��c9�\\t)�^N�V�!���G�һ�z\nW�1s�$����d\u0011�<^����~�e�؅�,�((C���w\u0007}�_(�2��C��\\y��������K�k�{-�,r\u0002Y\u0007U\fw�3'O�\u0013�=�n���j�V1�|���\u001e�M�d��\u0019 ��\u001b�޲\u001eU\b\u000fS\\��S����C�dz�\f�O�1;��6_)���1'�\u0012(TP;\u0001@v\u001d���\u001f[.nN�ɟ��1;�\u001b�\u0019�\n�D4=h?ʦ�9��18�\u001eE�jqdÓ�\u001fPz\u0017��E�\u001fU��iʻ�����\r^#?��w\u001d��c��ʞ��\\(���i*�~\u001f�i51�{����\f�\f�\u001f�v뷷њ�~\u001a���\u0014�����X�\bH9R���u�qTz2�\u0015#�oኡ�`;��V���\u0012U�*\u0007Θ��2\u0011���G\\UG���C���p�O%cZϚ�t��m��n\b��k\u0003���Q@\u000f����!�\u0012��\u0000���Տ�\u0006��\u001e�[��yn+\u0018[�˩ܬOdzzQ�a����L���~\u0018�䐏ٹD��1��;?�\u0017��ޥ��jj���-/O\u000f^Io�\u001e\u0003�9\u0015;{eS�v�_�q�\u000b�L?�t\u0010ۆr��\u001c���\u0017��[�M#��,�\u0000��\u0014�Rjr���(>>�\u0012|�}�?�zxu�\u000f�\u0019�!/�Z_6����\u001bP��M�����^�JF�\u00001��kd}�#�����SY�����\u001aO/��DyK�a���5��+F�F\u0003����\u0000�mD\r�>3�c!��e��#[��[�0���?΋�\u0012\b�#4R�\u001b�Ԛ8����F#.j;d'�\u001d���\u0006\"oc��\u001b�n���fOu\u000f��\u000f�o���ai���%��@\u0016��9�i����I�S-��޶p#>\\B~BG�5O�\fQ��\u0011���:1{���۝V�ꚟ�M͋�\u0004Ri:|j�A��4���\u001b�Ӷfc�V|5<��X~��8�=���a\u0000<�|����\u00008Y�[�A��槗f�\u0014��k�mլҠ�\u000b=��\u0000A�H\u0015\u001d�2�쮷����\u0000�\f~�q��N {\u0001uП��\u000b���ߚ<�h�_�ߞ�Y�����Rj\r�}:��X���վ�c6�a��i�����\u0006�W\u0007�\u000e���d�\b\u0013����^@�o߷����\u001d\u0011#\u0014@\u0019z\u0019\u001d�T/�w��\u0000�����_���Ҽ����s�v}_��M��7��T5��s[q!\u0003n\b��\u0006l�;����d9N/\u0017RO\u0011�C�o���Et\u0002\"�\r_ok5P1�Sឃ�>C��?�O���t�n�K�ZkK\u0019/��\u0010��(G�!�8�\u0000U\u0015\u0002��it�ɖ\u0010���^O'��dÇ.HK�\u0018�W��|߭�ak�^�TM\"4���\r�X�u\u001b\b�x�\u0000�`\u000b\u0000vT\u0015=p�I�\u000fe�Όo�'wp�\u0017���=_m��;B{a�/~`�m�y\u001b�\u000fz}�-\u000e{�ŔH\u0012�ݹ:5y� ����E�?,��܏���49\u000elJ�ťm� ���\n�ɪwi\u001a�,݇\\���\u001b\"7����������ؕR��\u0002:�\u001a�f\u0019�����K0zo�6����BX���?\u001f���Z*\u0019(E~b�����@V�P�,�To�ݓ��I\b�߷~��\u0000k \u0004��^���\u001d��\u0000���o�,#�6\\\u0014�F�\u000b\n�����9V�h;���e��A�Vޝ�\u0000�]\u0003�ь�s��ԉI�A�>f����s�҆��G��\u001e`��\b\u0010�:\u0006���^����up��\u0011�*��̇x��ߥx�\u0001��bO�\u0012�M��\f�s�L���w���\u00155f{뉧�T\n���\u0003���\u001f��\u001e\u0011�\u0018�\u001f�@|d܉�>�\u0012~{�v֏icqu4�\u0007��FcψzI!\u0000�9�)�2D�\u0003��4\fG̈́��Zn�3���'�\\F]�\u000f$��J\u0002��Sͩ�\u0000́�S=��ɵ|��u��.��o��P�����׋�x-��X���\"қ\u001e����.*c�+�}\u0005�\u000f̿)��\u001b����ʳ�\\@n��e��)�ȰW��(�ÿ�NB�@�@�z���=��V��en�\u001bE�$j���3�Ś��R�O�\u000e\u0019\b�adJ�\u001c��f��s���cR���1R�H(Hۉ����[ԋ\u0019\u0019\u000b�\u000f��5O'^���7���+�\u001d��� �3\u00133|L\n\u0012jN���w�\"�lfe|�\"|��[�cX��\u0019n�,��\u001c�)d��������\u0014�v̙JY\"A;\u0010�\\D���6�{\u001f�/��+�rW�[O�$_�w�Ѣ�y�ڶ�ny�kx\u0017Ⳓ�A��=S�ym�\u0001�[���Oic���*�#�\u000eu��/h�\u001f\u001e��Nh�`\u001a?�\u0007��[�u�R��\u0016��\u000eǓ���VnmX�g�\\ӯ�`��䄯p~�{��S��\u0002A\u001f{�\u000f�mN��ʫ&��\u0016�\u0012_G\f�\u0004!�]T\u0004���D�(\u000bv\u001b�Χ���Z�\u001cd\u001c�6<��_�2D�\u0016%\u0018qo�]}�\u001f\u001a�{yV��G�^�\u0000\u000b�G�7B� Ќ��Ŭ�����Ϻ��oo)�\u001bc��g�ŗ\u0006��.�����;�=6|f6@�\"\b\u0007�5��\u001e����-���\u0006�\\���.�kl�u��,���C�7���ۋ�U���\u001d��q^�g;��d�j��+1�C^Q��WM�E\u0018��Lx�\u0013\u0018D\n�H�|�\u000f��\u001e�u�{��-}5%H��F�Q��\u000f�)���U \u0004�]\u000e�\u001cg���-t�5���\u0005�\u0016��а���P��0���b:�Zf�M�\u0019HǨ L�\u0007���\u0017��vl�D�ü\u00071ֻǗx��y'���\u0000�\u000e��\u00008��h}FCwi\u0005�\u001f��׹�\u0005wڣ4>�c8���d+��������=��#�[�_�������m}|Ϭ�,\u001eI��\u0000�f\f\u000e�{\u000f\u0016������F��q�5���9\u0001�d��&��?@�ޛ�-V->H�q���^B����=�n�}��6�7��,mS�v���E\fH\u0019b�_�\u0015\u001d6%w\u001e9_h�93��UN�E��?�$��}K�9|��n�s\u0011�+\u0000�D\u0010�j�\u0000�Q�u�њ|�Go���.\u0001�TA����p����5U��K��8d\u0011�v����a��w&I�\u0015\u001e�����\u0006\u001c|�\u0000��O7w�p\u000f\u0012c�\u0003c�o�t�~��y�F�\u0000�v���'��\u001bX�/,�R���(\u0002��ֽy\u0011��\f�n${ˆ��f��{O\u000fg��@\b�u�\n�y��I���\u001a�\t��\r���)�_y�R�<թk�Ħk�JS1\u000e��\b�ق-�\u000b\u00189��OV%�!��;���}\u0003O�\u001e�\u0003\u000e!X�H\u001f��#Xz�%�?w0�2F]@b\t\r���^����\u000b>:\u0014\nq��I\b\u000b\u0018���'�#�\u00126̡R���u�/B�1\u0006Y�B��ɪ�J\b���\u0007�3Y��\u001b7c�\u0013���& �W�\u0000~\u001e�;\u0012\u0018�s�k�r�|V��uA'\u0019\b\u001dJ��Em�N�\u001f�)L�I��`���(*\u0019x�իƢ�7~�#!�l�H�����\u0000\u001b4d�\u000f�'v#�\u001fj�L��\u001c\\%ω���^�M\u001f��K� x�^�~�|se���1��?#k��m�$Z\u0004\u0000�*�\u0014\u0007�:1>,`�t�\"D\u000e��#�>g����%T��t�����\u0019��*\u000f�jrTr�����b�h����C�cX��Ut�f�%(�\u0005\u0018�\t\fO&\f�b{��\f��b��u0�[P?o��|s�\u00009s�7��E\u0019<��p*\u001a�rz֤��C�n\u001c�GN���_�y?#|�Y&�q�Q��T\u0002ʼn\u0002����>�Q�'���g`p��y&��y�T\u0005�B��\u0013�;��\fŕp��7\u0011 �;O���h�hP�\fjMj�\r+��0.ɐ��✉�z>\r����1����r\u0012�ڴ���2��z��+�!ҭ\u001b7%\u001d��v&�S��O3s���N�]���r�TI�ކ�5����9�f)\u001d�\u0016o�v`�\u0005)�q�&-E\u001a���b���-�����\u0003U\u0001>���\u0000\u0005���\u001cd\u0018�q'w�_�\t\u0016���� ��9\u0017����\u0000J��q؍�}�6΃�r\u000fX\u001di�e��=/�\u0005�u�4�vj��\u001f\u0002��X\u001d��*\u0006l�O&�F&\u0000u\u0001���:4d�Q�&\u0001���2��\u000e��\u001aR\u0015�7'\u0019\u0000�y7k��y+̐@%EyP�H\"�\u0015{dbjM�#��k=p�J�]�G-VPkA��\u0019|e���P���}\u0006D�� �f��lH�˄���a�g˗���ϐ��?X�ޭ���i�v�gp\b\f�j��p\u0010����\u001dFk���`�)\u0000\t�\u0004_#�n�M�@٨J`y���G��'�p��\u001eh����|���e�����B��w\u0016\u0011A\fG�nX�-;�\u0015^��ʻ3]�יx��6�����=\u0016=\f�\u0011����}�rտ� |�\u0000�����?&4=W�\u001a��\u001b�bM���6�]ֵJ\u001b}#N�~&i\u00181^��\f��><\u0013\u0010�\u001f\u0017Y�\u0001[~�Q�\u0014\f\t�8�Ud�����X�\u0000�6�#�O���\u0000�\u001a���w�\u0007�|�{��l����o�/���e�\\7)4Q�jpϫ���\u0018��(�M�\u001a��m�I۞\u00169�'\u000eL���z\u001e}/�s���\u001d�2J8}X�\u0007��\u0001=@�e���?O���i�\u00008E�]\u001d��_�\u0000�s��LZ�����\u000f2�^q�,��yk\u0000,z���\u0019�v���y3�\u000e܁�>Ɯ��\u001e\r����{$��d\u0007�\u001f���?��<��o6�$�^'���+-\u001eMG�CQ��+)o��+մ���4i$��/�/L���'�:]\u001eMg����\b�T����l\u0013�{\b�ƃ&lx;KC�ˊR\u0011&&Bb�\u0016(�ϧw'�7����\u00008���'[yS��V�\u000f�,m��M�S����6r\u0011H4�ۅ�Q��>@��\u0018.yF�/�Z�Y�h�N���G\u000f\u0011�\u0003c�{�f.��i|\rh���a�I��M�>/���\u001f�\u0012�k�m?-8,4I�ݥ�I�u\u0005{\u001b��\u0014��v\u0002:�\u0002�V����npC���Sˎ#��\u000fx��כ�پ�������\u001eRv��h��`���\u0000�\u0011\"�Q�n4}+�\u001aY�TjZl��C�u��˓\u001a\u0001Zo�+SL�=�\bn\\Qڹr�\u001d�7_�6���\u0010�HҬ\u0012���� \u0013۶ٝ����\u0003\u0000\u0005�N�U�͏ �+�O�7���w�uĮ�\u0003�\u0018�Ҥ\u001d��◇0.�f2e�Ɉ�!�Z֩�Z�:���¥jX{}#6xa�@\u0012\u001d.�6�\u0017�\u001e�n\u001f��1�$��8u\u000b�\u0016�o�O|�=���R\u001c�\b�ֳ\u0017�cf��ƿ��wX�jI$S��|e��\u0003dǶ�#R����}��v��\"oH�����.��y;;�]\u001a.F���y\u0018\u0012\ro�U����y����\u0010}+G/\u000f\u001aU.'j/\"�\u001b�L��#��4���Os�;�]\u000eYv�mGW��ฏ�\u0013׻��J�Xi��-��\u0019\u0006R\u0013��\u001e\u0000\u0013�.���FF���(��\u0002 (\u001d�w�dirX�;\n\u0012j?\u0001�b\u001d\u0016I�9�㴰��)E��\u0015���p\u001c~�*\u000bS����\b����$��9\u001fܚ{\u0007���<ӧ�@d`e,{��x���R��n&) '�n���׾m?*.�..��O')J�\u0019V��\b\u0019���s\u0012\u0004�l\u001f�؂;�Yt�a����2d6����\u0000(y�+�S\u0018p$J\u0010+��\\�j0�\u001bw�]LrD�}OzЯ�֋Ȇ!w\u0004��>X�/7����.t��˖7no#�=Vݘ(��ާ�9,z�G�s-\u0019�X��\u001a#sͫKX#J�\u0015^4�\u0014�Sl�R5a�q��ty\u000f��r���F���q��]��A��\u001eK�\u0005�x���c�Ds'e;]\u0006c\u001cn%\u0010� �4\u0015>?Er�e\u0002�Dtr�\u0012�\u0011ٙ�A4�D�7��(@?��5y�K7 �\u001a,�MF^�\u0006Y\u001e�NʫO�ڹ�t1\u0003wf;^R4\"ԗs\\���׸���|�ZX\r��`�,�q\u0010�Mi�\u001a�\u0017�O`£��4�3?��#�-�\u001d�\u0007�\r�\u0012[��\u0017Ἁ����\u001a�\fž����yq��\br��\u001aB\u0007\u001cd���PJ�s\u0000�܍z��\u0001�GG��U)c��e-v�\u000b\u0017j�\u0015�&K�U�q\u001c\u0000(\u001eŷ'2�vf�G�>R|�+�q2��1��~e_��m;��&���͞-\f!�������,��Cɱ��u=>�5�\u0000>���Vջ�uR��\u001bCI��R*{�V�%��%\u001cW�rc,�'�\u0018����'�\u0006�~5�'���0�G�\u0012MA��������r��\u000emR�OT\u001b�R��\u001e\\kN�\u0011��F\b���'Pb�íK*#�T�JҞ?q�\u001d�[$�}5~����Ol[�j\u0001Pv���Ӱ9h�F^��k�\u0013[�3y�n��\u0019*�\u001a/ \t#���\\�i#\u0003�٦Z�d\u0017\u0013�\u0014��m nL�ԫ.㉭\r\u000eْ0\u0000z8gVd7%����=\u0017\u000eį �Z��\u001f�\u0004Ԛe��x��\\��G\u001f��xg�M�k7�9*�x�\u001f�]wF�Z\u0011�M $�N��&\b۝<�D���\u001d������xt�\t���Vf\b�����F��\u0014��\u00185�\u0005g�~�_�r\u001e�(\u0007�:��]�\u0005\"=��>\u001a�ڒA�a�{g-\":=�ۛ\u0017}j�\nF\u0012YHj��B\u0007\u001a� \u0002X�•��\b\u001b��l7�����v�Xy�\u000f;y\u0017C�\t\rpm���7)wj=)k�ȭ~G13\n��\u001f�@\u0016�\u0013(���~-���@�r%\r(W���}$ȁ�2��\rCS���@��G%{�\u0000O�\u0007&W\\�L���x�t��Ưލ�\b�m������;�rS�m\u0005圱~�\u0012Tw�\u0019\t�\u0015�3Dֺ���\u0015j|�z��l�\f���%�z\u001e�ܡO���2\u0005\u001emG�\u001eo?���\u001ag��\u0005�L��\\y�����6�,\nE(jZZ`0� ?�.1��.>�\\\u001a<�=0���,�U�3\\�����t�x}zl�HԪ\u0006$~�CAǶ{�8�\u0012���D_0)��\u0000���7���yo˱J\u001aWhB�\u0007i\u0003\n�f��\u0011V�~�ّ��g��1�LH\u0000\u000e#܅�?��䶱�\u001a�1����ل\r\"7��zr\u0011�O~M�''\t\u001c\u001f��`!��]����f��\u000b�F9.��/Q��k\u0014q0r\u0014\u001f��qZw>�I�O�F\u0007vQ�:��7��^^�l.'�ԣ���n��쭥\u0006N\u0012�Z\"�P��@$�Q�\u0010�i�\u0000,����2͏\u0010&d\u0000?\u0003�!a��򥰴{�v+[�x�&Xfu�H@&'m�8\u0002��\u0015�A��#�\u0003=��:�2��9^â+�Wu�^�Ѽ�\u0004�J\u0019-d��c\u001f\u001f�졕��ң�]\u000e�ɹ�����=^2c\bJ�=A�GrK}�\u00009\u001f�Igqk�^�ws'$�̺Ep\u0018���ؤ�)V2A�\u0011�s+\u001fdd�G\r�V����;C\u001e8K��� �=�S\u0013�����v����XuF������Κ��\u0016�J��(��PG�Ѕ?d�͹�|ߖ����!���S���w�\u0015\u001f��/�/������ď�{��\u0000:�:������\u0005ޯ�w��k\u0014�y~�e�\\��w�۩�G�6��9[NQ�\u0000t,*G��\u0003�?dkt\u0018�#]�\u0018�J\u0011���].$�A�.�ڞ7����\u001cz��4q2�)��CG1\u001a�'\u001e��G~W^��\u0000�L�\u0000����\u00005��e�]cͶm�-.\u000bX�׾�\u0012��� \u0016�^I}6��\u000e\u000e�w��9����\f���:�.3�\u0019� \u0003Q>^G���������ϓ�*\u0000ny�w�x���/�<������_Ήo!�;�iג4\u0012�n}k\u0014gnJA\f�F���\u0016#\u000e����D\u000f\b�]_#��ω��e��XCk ��G��X�󐷚?�_���n\u000e���0i�\tt�Q]5-Ml��\u0014�5uP�o��G�\u001d\u000e�v��.=�e���@��7���ϛE�\u0004k�\u0011���j��\u001c�\u0012򗞟����^�䷝�Ѯ\u0006���E��qu\u001d��M\u001d��fI�څ�'�z\u001c�}���\u001d���ɦ�\u0007,x�A�_��{�\u0000f�Y�vl���\"pʄ�������\u001f������+�\u0011Q\u001ey\u001b�_\tI��_j�C\n��3�r>\u0018��7!��\u001f�:<�5-sM��m.i�j��m���Iڈ+R\rE3/��]�Ȉ���\u0000����\u0000<<�y�գ��\u0000��T�i6��闞n�\u00125���A��6�{j�y�2�(\b\n�5Wa���\u0016��t\u0018��\u000f\u0010q\u001e�\u0003�ǐ�ۅ���;\u001f����8�\u0004��J�\u0007�\"\\�R\u001fV�[�'G򖉣�c�v���.�n��\n/\u0006\u0010 4�\u0010\u000f�<�9�\u001a�Ĝ�����\u0018���EDw~;���fˬ��Q���\"O㿿��\u001f�:��z{�a\u001c�3�\u0005R$�UX�\t\u0001\u0019��zg1�����\u0012��?+�\u0000�#5��v�L\u001aJ���J�g��\u000e�)?\u0002ׯ�h�f\u0004�\u001eoG�Ә�4\u0007\u0017>+����ŏ#\u000f=~s�2j����X[�>=�\u001e0��`d,\u0010�_ʳ�֟\u0017�\u000b��\n�ڥ:\u001alh<3_������kٖ@��P1PA\u0000\u001a�SZ��9o�\u0006�_j 7d�s�Q\u0011�\u0005`h懍?h\n}�GL�k$Hs��E�l�B0�\u001f�\u0014\u0015\u0005j\u001cq��V�v;S4\u0019nܼd]$�W��hJ�J�\u000f�\u0007��T.���+�d�<�\u0006!�]\u001a8C�T���\u001b�,\t\u0014�\f�'$�\u0002���\u001a��3��\u00107\u0000QO򍺒\u0007\\Ɛ\u0000��D��:]�\u0019��AYG_�\u0003��x�L��hߛ)n+���\u0000$��,�\u0015�P�Ð޴�GN��gE�\\X���\n�H��]'�R[�FRibj�8�@\u0005��M<3\u000bP\u0001ݿn\u000f��S�qs�\u00061�Gauq\rլ�Cnd�F��\u0012��D���$x��E!8Q7/�/'K��\u0012\u000f@N���O��\u0015u�.N�\u0003\",'��i�\nh\u0007c��g�=y�BDa�n��P�;�ʱk\u001dR�1X�\u001d�iU*\r8��̌ƔHX\u001e��\u000f\r�\u001awb� I \u0012jۑ�A�9,\nvX�s!3�\fFG\u0003�\n�H\u001b�n�w;��#}�7'\u001c�|%�\u00009/���g6�d�=KL���\\&�'��U\u0004nQ��ƹ�vfC\n���Ӫ�2I����_3yg�Q�VP_\u0011��9E��\u001a\u001fN�\u000f�Tdb\n�5\"����N 'ר�u��8��\u0017U�~��iZ���\u0016��^h�� ��)�2�j2c4\u000e�\u000e\\Q\u0006�㽒��\u000f�z]���\u00123�\u0013P�_�.��X�\u000f�S�\u0007gj�\u0019\u001bU8y�G�k�C�\u0007ZXe��iJ����\f\u001bw\r\f�FCt5\u0000\r�gW2%\u0000G2\u001d\u001e\u000fD�g��V�� \u001c4�X\u0004d P5?�)�Nx��N-�V\r^(Evo��Q����(�,��{'���D/�̰�G\u001e\"�k�Err�\u0003�ɍ_z�V�7�T�\"���M��mᒌ�q͖H\u0001���=\u001f�P�i�f�Z<���ei\u0015桭�e�̺T\u0011���#�\u0012^3\u0004�~�\\��\u0007�\u0018������i3�^y1��\u0017�\u001c�S�\u000b��q���\u001a�M����������\u0016�h:\u0014�G�?2���D�y\u0005`�Ԩ�'-!$�^�t�Z�ÌxZX� \\��^g����ЌO\u0016C�j\tۺ��\u0016_z�\u0016��\u001f�q����c�����^U��׋a忮��3�{�0y�{[�OT�%j�K'\u0011]�\r��ў��\u0004\u0004\u000e�I6{��\u0000s���Y���P�����%�\u001eQ�\u0000����Д�^e�O��饣\u0019nl�=\u0003��>�ʼy�g�a��*m�H\u001b�6S���O\u0014\u0006|3;qBD~���\u00185�&\u0004��\u0003�L\to�\u0007��\u0015?�+�\u0000�\u0016�� �\u0000���7�\u001f/�\u0014T3J<��{OU�\u0016x�-^��0\u0006�eh|3/\u000e�_�p�v�0\u001dң��G��͇NI��K�B;\u00128���\tl;����^���\u001a|���J�{�0C4�p����C�WZbF\u0003,�ͩ�]6�#a�H_�����.��`��L�g�\u000e\\1�d|�@���\u001aS�Ř~N\u0010����\u001cD�w�����q��G���r��r\u001f˟͋{}3Κ}��zy��#�_Zn-/%;\u0014�4��ُ|�\u001e������sڝ�O�\u0007��=k˸>�ٚ�\u001fnvo�i�˸�\u001dc{_��[���r��q��\u0003�q��mZ\u000bI��\u0000#M;\\Yk�tSMo\fM���\u0007)-[���W�zw����;F#\u001e��z�*W���=��KU��1\u001e.��\u0012\u001f��l��O���\u0000=�>��y3�#U�d��6�szچ�r\u0010��}:��81��a�Ojv'����1�b��\u001c����n��\rg�=�0t�2c��\u0013�z�2���-�w��.-@��~i�\\�_^\u0018�?�|�z�l��\u0005y��p�eq-w*�Mzg�v��\f�i.}���1^��8��\u0000:��������S� v��\u0019%�X�\u0001���$��ay\u0017���q��\u000e\u0018���j\u00167�0W���8�/KO���c\u0014�t\u001459罡�^�vy>$1O\u0010�(ȑ����h;k��@\u000f\u000eS��\u0000�8�Qz�����H�_Zz��D�g�\u0019�+FI#-BP'q�\f��\u0007l�FǦ�o�\u0017fs�|c��;|��<ţ^0�����R�}�C>�U�^��c�\u000e@83K��ш�\t�,#���o/݋�8��>8�X��\u0010�o�L�;Z\u001e\u001c�\u000e�^��f$'�� }��\u0014i��\u0014�\u0019�\u0018�]Գ�>Hiu\u000bp\r\u001c\u001fm��\u0000\n�$0��<���$��_��\u0004�\u0002��5�'/��s>�\u0017'ib��v+{� �g�Z\u001e�����3��������9�\u000fHa׺�rf��w�V�ε͆-0�\u0003�ͬ��M�}[W�t��H��q�?�sk�O\u0018�F�Q����\f9��.VHZf�|%���O�l\u0004q�\u0002�\f�Nťf�R`x��~��ޔ�'/\u00191\u0007\u001f��Ӓ�+mA%V5�D~@rj\u0012\u000fc�\\92@���\u001c3q_*���]6���S�^ƫt\u0014�b\u0005K\u0001�\u000f\u0013ᚙ喛(�\u0013�w8�CY�������R_�_P��u\n�D�m��!�=)]�\\�W���ˏ�n�h�]\u0016S�����2�2yf�V�ׄ)i\u0010� Wz}�1�ډ�<2�����8�|��O#^F%�щ\u0015�B�ӹ���[\u0010E�����E\u0000�\u0007�\u001f͗�V��n�Apŀ� �ǽ\u001b�z\u000fa�~\u001d||yUw>I�?l�쌿��'��\u0006#�/2y�Tվ�\u0015�����n����\u001b\u0011ʍ��x\u001c��ƗK���DN@6\u0014�����uZ�\u001e9\f2>���7�����J����\u0018�\u001eI���%>)\u001d��'<{�rNYe)�Q/�vN,Q��\u0018�#���y�i\u000b\b����;\u0000\u0006�}��N\u001b�ؽ�,�(\u000b�A^yB�T���db[��O�13���mN;���\u0000(\u0005\u0014���9����:}Na�'\u001c�G�%�ጐ:r\u001e\u001e\u001fF\\!\u0018�\u0016�fe��DB�W�&>'}�ֵ��s�kjn�\tu;'���\u0007~�>\u001f>�0�.#���P�o��n��{��aG#ֽ�I\u001d\t�'\u001f�\u000eDdF�0{� Nr�&#d\u001f�+�'�y�\u0006�c�Z��1��8��EI��\u001f\u0003�e��\u000eǛ�<�R+�Y��'�\t4�e�\u0010��\u001eY��,��iM\tj\u000e�Z\u000f��\bD{��C^�Ԍ�\u0002�q\u0003���W�2{|Z̥t6i�\u0005���4\u001d\u0003\u000e���ڹ!\u0003/r��ʒ��X��d\u001f\u0010���MY\u0019\u0001IZJr\u0014�-����P1�a�Ńa3[�i�22;tF<9{)�A��\u0014Cp�%ϚS��9W}���H���''\u000ea� #�<�P�KY}h�\u0005zm�\u0000��cM���\b�WP��r\u0012ڒ��\u0014��Y\"�e���\u001fH#l��6�\u000b�5$]�GD�;�#T�әxO\"��\u0000\u0010: �؃��G�Ǹ�?\u001b�08sƦ*G�O*����ze���/iϐ?/\u0000�N�u\u000f�n>�d���P'RW~LCt�\\�9\u0004c�\fh�\\�[h�\\��ݵ�\u00002���:U�f���H`\u0000=y\u0015v_��\u0000+��\u001eI\fx�ʺ2��\u000e&]6�s1�`��\u001aH�t�&�\u001af�.��\u0006�J���\u0005�O�\u000bT\f��=��4c���\u0005�\u0012;�;G���\u000e.^����$ri��\\�M���[��\u001d�>����O!���\t�K�y�c�C\u0006�<��$��k�f�\u000bs\u001f���C�H�\u00037\u0015^���t:Mg�ڌ~&\\�1\u0001\u0012I3��=��sh�G\u0019�c���!�\u0010zoD\u000e����ח�\u00002l�(���i�S���~A���\u0013O�[�KM������\tg���q\u0012\u0004�8�\u0013\u001f�A\u0015�<�EW-�g>z�\u0000�.�W�嵧��\u0000-�.]<���OOJ��\u0012í_\\'�\r��m\r5[�B詒I\u001a7b�������\u001d_h̝D����\u001d�y\u0000>\u000fQ�M\fzq�I\u0001\fQ�b7��RORw?w�\u000fέ\u000fDҟR1�Х�f{{պV�����V{)B]EZ\u0000���;�\u0004�Lq8O\u0018�ڷ��N� '!��0\u0007ry\u000f�]���7��\u001b\u0017�H�������q�-\u001bL�\u0017���h���'��F�;�U\u001b�c����#>��^���~n�[�\u0013\u001e\u0006�\u0010\u000f���A�\u001e��w�\u0019<��K-��P��V�mb��w��KK`wM>�|\u0011�ڃ�S�z��D\u0013@\u000f�y��7 M��O�\u001c�:\u000f2�\n�c����q�N�F�!$b��\r�0�w�S[��˿�6z\u001d\u000e\u0001\u0018p�;�Y���ƶ��w=��\u0018:/�C(Z�MI\u0006��Rs��g\u0018��k��t�{H}5�\u0000�ߎ�g�\u001dϘu��Z�ɫ:��ƿV�r\t�w\u001d}�N8���]�qp\u000e\u0018]��{����-FO�/�\u000f3��_�v��KѤ�*�\\Y�[G\r\u001dƣž$���f���v�'���;;A\r&\"\u0006�Qg�G����\\���\u001d^�Ę�\u0000\u0005�W�)\u0002I�~�9f��Ur\\1w-���՝�Vfm�Ny�\u001c`\u000f'��A6\u000b�|�k��ej0�iN[S��*Ms7\u0018���\u0019\u0007�\u001eE�Xm��!T^$��G����?FS�����\u0019\u0012^�5А\u0002��*5+(~,\u0018�6��4�%ó��\u0006�V��y\b@� G\u0010I\f���\u0001^���Q!+s�(\"$k�R\u0001@��m�\u0011ـۉ;f�)���\u001d̏$��I\u0014�\f���H\u0018|t\u001d\u0007�'�c�\"w�l�&��\u0010��$8o��\u0015�7��ET��2��䰀\u0005�Z����\n��f)S�\u0014\u0002���\t��\u0001��<�:Q�\u0016 =\u0017�&��+@G�JfN9o��w\u000f�<�~�n\u0001�R����w��v��,�&=\\\u001c��_��-uY��� !\u0007�o��*�k����#��zy\n}��\u00008��'����\u0003\u0013�V�fA(p�Ճ�\u000b'�iQ�2�\f�W@]v�\u001d�(m>���V-�x���k�:gW�\b�\u0015]�K\"�U\fH���3u\u0011�\u001b\u000f=�\r�ߒ���V6\u001a���\u0019EYY�p+͹\u001e��*+�����\u0018ˆ@�'�l�;��ՙ����\u001b�J�t���]����`5*]{$(\u0010\u000eDFV�O\u0001Ҁw$\u001f\u001c�\u0011\u0017}\\����\u001f�v�yc?�C���D_�)�\u001bu*sg��\f���6=ۿ05�?���x��4�RG\u0012!kx���ux��0��\f��5c\u0012\u001e�so��(j�X\u000eb��v$\u0013ҽ�r�r\u0017g�r�\"�E}�hϪ�Ub\u0002�q\u001d\u001856z\u001e�/$\u0018��\u0000���]���oj\u001e��wX-��F�y���E\u0004\u0011ƬҴ�B�\u0002��Q���\u00135������q+�}������\u001d?Κ��n�,.f���������sX\\�y��qs$z5��\u0010����!܀Fg\r�%:�\u0007+�^�{����ǖq��-n#��\u0016v'n[�ߵ�S�\u0000�i����\u001eO���\u001f���4�\u0000���1|��V���\u001dcOOW��s�Z���jbuJw���-\b5�\u0019�y��*���~�S���\u0018���\u00117f6/�� �\u000b�'�\n�{~R�#Tֿ54[�y\u0016k-kJ����\u001a���\"4����!%~�r\u0011��\u001d�\u001f7��-p�)i�g[�BU���_�.�\u0006H�ǘD]�Dȋ#�~R���x�\u0000�O����ѭ��}��Z?�f�?F뺎�h<�.�0O���K\u000b\u001c^����Ѽs��ڝ���������s\u0001��I��Ì���i\u001a�$���y�_\u0005���p\"\u0013=ĞT��x\u00142�\u001dB�9ո�䃈�Q��z�������\u0000�\u0013}�j�\u000e)��\u001a��o���\u000f����\u00008����]A��\u0003B�\u000f�o���\u001aߓ/.�\u0018\u0013�m�&��\u0005��\u001c����vw���\u0015\tϋ\u001ft����˫���\u0019�L�r=y\u0011�#q�p��ɯ�����\u0000��/0i��o�\u001ex�c�\u0018gլ���-��\u0011��h\u0011i��\u0013��[�F۞��ؽ���\f�򏃫��>�{맘tDv�cj<|2�w�>�\u0006�\u000fCg�|�ԗ��w��\u0007�g��ߒ�����\u0000]�,����Zı�\u0017SK\u001f�������#V��q�v��?�;�\u0000��w����ߙ\u001f�Kqo�]J�\u0013�0+\u0015��BX���\u0016=\u0006�\u001b�G���x��ˇS\u0013�V�v�c�No��Hy\u00027�����ߓ�6u._'�?2�4ɢ�Ce}+\u0014��mH�\u0012=\u0003U�О��U�v�5�����2+��<.���\u001cg.\u0000N.g�����\u001b�q\u0003Q���^��U�_�a�-,Zo/jp:Au��O�\\�\u0018#Ւ�vR> �|s���I��r鸎\u0002}C�~\u0007����ټ����5\\?��}\u0004\u0000$A\u001dGR9_7�ߙߓ�o����W���Q��e�K;�\u0018�r^5%(�h�nUߦr�.�ê�s\u0015C����U�ɂ�\u001d�;\u001e�\u0000�s�\u001f�ǟ3Yy������-�\u001d6!\f�e��\u001fQ��\u0005����rݱ�z}W�\u0002N9\u001f���|�\u0001�=�\u0011����K\u0019���m�\u0005Q�v\u00154b@��r��\u0006L�]\u001d��sń�&�!��JT�)��9�\u001c'��r��gz����/��\n�\u001b�����a�P��e�ɩ s݇�j�;\u0016~LM}�v�9��Nkg_�PorIcwz��J+\u0000;t\u001b�n=4F������\u0014<7m �^5\u000e\u0019�\r��]��\u0006��˗z���?\u0000WS�\u001e�\u000e��#A�d��\u0010ů\f�s(�97ߨQ���2��˟'\u000b%��إ6�c�\u0007t�j���\u001d�+Rv˥��\u001b4CU(ؗ&Si|�*��tjn\u0000%\u000fR:oC���\u001a.Tr�\u000b�\u000b8�n\u001e\u0006�h�ґU�P:��0��\u0011]���)F�Ւ�6�z�v���.\"ٻ\u00126\u0004\u0012;f6\td�#��ru\u0003\u001eq\u001c�i�%��͋\u0018d>�\u0015���Qڄ�Ol��\u0019�\u001blՎSŴ�Ʃ?��exd\b$a���\u001f~O\u001cg\u0011}\u0003^S�r1�_7~r~Fi^o����~�`Ի�\u0005�6�F\u0003��η��7g�\u0006\u0007�м'����;oO(�\u001c'�ß��M����\u0016��\"7�ۗ�z�G�����I9���õg)́:��x;\u000e]��\u0018b\u000f�?��>��\u001f�ڄ\u001fᛧf\u0014\u0011��r����ݳ�_�\u0000s�ֽ��\u0013�2'j�lڐ\u0007҄Sj�=I�Zx��N\u0007����\u0001�\u0016\u0011�\u001a��k\u0016�U�i߷�a\u001c|\u0003n��\u0019#��~�\u001eU���Qc�X���\n[�@\u0012� ����zv���&��<27\u0017S�}�\rQ�1m�������!{��NjU�h\u001a݋�J�I��\u001baZv�Ѩ��J�'D4�\u0015�Q\u000bF�\u001d��\\I0���B��R5�}�Nl��Ɉ\u0011\u001b:|��\f�r5+���(������k��\u000b\u001d9+r!��™��h�'ʝ揵qK\u001dqqF��5\u00014�K�cUV\"�R�Pv4�\u0010��\u0000q嗎F}B^9ܽ\u0000��\u0000��Dϖ魽�\u0015��\u0003j���1�e��c�B���Ƌ�(=���\u0018�˛�\u0018\u0001�To��%*�OSߧn�dH�|�8�v��čM\u0005]�y1�8�o�\u001e ���\f�e�Y�v;\u001a��'\u0018\u001e�吞u��%r��ڤ�Z�)Q�했���ei|�Q�)\"���z{S�L\u0002y\u0006�0=�m{\u0000\u00143\n��(*\u000f��9.\t5��<��]Φ�\u0005=N\"�o����W-�0\u0005\u001em2�{��#��\u0018��\u001bS�b�k��Q\\�\u0000�)�y1��F�\u0004��j\u0005\u0012Ws�m�\\1���\u001b&Y\u0003[X�c�ڵҖC��\u0007�W�\u001e��@�\fʆ(}[8ys�xoG��@[�w*x8�O�GĬ\r\t\u0007�l��\u0013�Du\u0013\u0006�NT��te'�\u0014�Qľ�\rM�\u001e����V��\u001b�.\"A\u001bW��gi��D�K\u0015�CT\n�m�)�U\"$n�r1�����&�X\bee,�d�Ĩ?�l\u001e\u0017P6dr�\u0000\t��\u0010�y�x�[���\u0017�X\u0016\u0005��\u0011�~!�p�?�6,\u000e��\u0002\u0001��]w�-.�&.QUQ�Wb6�\u0004\u001e��~J8�D�wh��\u0004�\u001a��\u0018E�%ͦ�\u001c\u0016��4id��\u001d��\u0011��S���QE\u0003m��d�4\r�w�\u0003��#���\u0011�]�(���\r8�\u001a\u0017Px5k\u001c�;\u0018�\u001dS��#\u0018�h�\u001cYdɈܬK�Ɋj?�\u0017���\u0001K�U��Y���W�F]�\u0010�\u0003Ol�ǣ\u0012��٢z�í���?5?�\"?�*�4�5$򾚒�VP�CQ�`�k��%n�]G�R�cH�>\u0004�mٽ��a\u0007S-����^���v״��&4���\u0014g�����O���i�=c�����E�&�9�����9\"\u0006@a[�\u0016�ۆ.-����Q���>��\b\u0019g�B#��������/�~��a8�\u0001��${���\"���E����$�-�#�U�\u0015T\u0002\u0000�)N���P\u0011~�$Y��ܜ\u0019�q(x�4�\n�\u0011�\u000e��\u000e\u0016���\u0001 oѐ�G�\u001b�Im�Y� R��߻,\u0000bK p\rH\u0004\u0003�S+�����\u0010M\u0007�����\u00008��<�����B�j���8f���J�I�D�)��\u001f\u000f\u0014�\u0001���7\r2؉_#_>����q�\u000fL�9\u0001M۰�c��k��̈́V��xT�������8l~?\u0016��I�2�7z5>�D�5$\u0018��L����N���\u001f!���ƈ�A=hA���{t�T�)�r֛�j{S�����[�Z�g$N\u0001�\u0003��\u000f�����c勻)�\u000f_��\u0019�!{;�W\u0000���v\u001d��s2��_\u001c\u0000U\u001f��������O!���̔����t��?H�z�°�BZ�KI�ڔU߶\fxrg�1D\\��X��<������G���\u00009C�\u00009����\u00009\u0007��|��;��&�/\u0013H��e\u001e�ܷ�\u00141Ҿ��}��\u001a\u0000[`+�\u0010�2\r\u0007g�-\\�J]o�=�d�m�\b�u\u001a�u�\b\u0017����\u0000�a�\u0000�S�Gɺn��ϛ���~�\u0014\u0017��S���,Ku\u0013][i���<�G߄�� �v��ƒC\u001c��y5\u0000z�l�\u001f�\u001b�>�n�Y�F#\f\rb��V������ϣ�����\"k�����i�]�v�<�W~f�� �ibc��E�R��^�\u0017�zdD��0�v�&U\fP��G�>��\u001dD��\\�ʰ��E����s�����P~Z�I�]�\u00008��\u0012��oό�U�\u0000�dX�<�o�B?ܧ��٬ �t�\u0007HF�\u0015�M\u001cSJV0\u0019�r��O��\u0012�\u001a����z\u000bq�j�k2K\u000e?H\u001b\u001b<�\u0015r\u0003�G���\u0018�3o��_��#]]��V�x�\u000f�??��z��u+�'�4�[�Q\u001e��1 �\u0000�,\u001bu\u00034����Ny��6�y����sqh�����\"���\u0004�;�'��>������yJ���V�y/�>V��J���(����=6ӴD�=[�ARdx�Nl�#�;�8u:���f�C���<�N�!Ï\u001f�+\u0018cȎ���nOy����\u0000�z�%�����u\b����Y�y�іI$iu?:j�Aqg`.�>'k;K��pc\u0004/(��L��<8�:,��9;FxH\u001d��Mw�C���2��jc�\"8�:9���}\u0005˨��G �����|��o��S���^d׿;�-'K�s5���@�O=\"�&\"�Y��Q\f� �\u0010�Ο�\u0007G\u0006�����pCG>!@�\u0018z�|��\u001e�C�n,�4�L,d��4n������\u001b\u001a\u001d\u0003���q�IO&h�~X�H�~��i\u001a7��Hf�\u001dg\f\u001fY\u0011҂d�Y���Fyߴ\u001a���d�\u001a�YJ�U�^���{#\u0014t�����Q�����>L7�r��v�~Q�$zƛ\f򭤗�|�\u0011��\u0016��md���$��(r�g�\u0013�\u0019�#\u0013�G�\u001e��7\f{b1\u001a|�,D�$��\u0011��\u000f�\u0000�;�k�>���\u0007U��\u0000\u0010ZG�;d�;�[��b�\u0015������a�:\u001d�j\b \u0011��A(d��\u001a����� �\u001eq=��;\u001e2��'�Dj9mGo1�C�\u0007��\u0003�����\u0000;4ۿA�\u0000���\u0000�Bּ����\\�\u0000�P�Z��\u000f:ySC���~D�,�\u000f��/�k��n\"�z���ڞ5�\u0018$\u000fS�{�\b:\u000e���v؎�\\v�&���3?A<�}�}\u001eW�{\u000bU��'�\u0012�\u000es1�@o�5u��Ŏ��V�ݔ3I��OV\u0018�\u0003Fk\n~ɍ�̲DE\u0019H\f�:���X� E�q�Ǘ��}��d��\u001d�>_ڕ���6�e����a��d�Ydq��\u0015F4fb\u0007\u0000����9@\u001b�\u0007^���2��N��\u000fϟ�\t�1��s\u001d�����+�d�O\u001bƉ�72\u000e_\u0010f�\"����f��\u0007G���\u0018�u#�]���;���>R���u�'D�\u001a1{\u0004r��\u0000\f\u0015�4�F�Cn��\u001e�21���]�@qH�\u0000n[��\u0018Dž����ᏼ���z��\u0017�����I�m�ѴH\u0006���X~�J��7\u0012+;x�W<�u�;[����r�����m\u0018�����i��p�c߄n{ʶ�\u0001vP8�\u0014�|\u000f^�j��l�r�{G��5��\u001a�N-Rv�ڵ�3\"1�؎\u0011���Cˏ\u0018�:)I>\u0011A��ӡ\u001b�z�͔ 9�!&a\u0017.\u0000�\u0000n(8�lM?f���g;��I��1G�䌈)���\u000e�'*�\u0004T�I�k�\u001d�ɄA枛k��B\u0000�\u0003NQ8�V�`Đ~\u0013�̡�\u001a鷓\u0010�a�K\u0013E!�)$\u001eۍ�\u0012\u0001\u001b�\u0014�L�I!�]̲\u0017^\u0003�\u0006��P�&��h�v��\u001fQ��&T\u000bȐ�m��@\u0015\tZ}9�8��\u001c��C\u0016��.\u0015�Τ\u001d�P�\"�\t��qK��h�z��n�dQJS~#u4��ؕ\u0003l��'Gw\u001ec����xڊ�\u0002\r@=y\u001a\u001a:�T��3'7\t\rb6�\u000f�\u001f:���@��*/�\u0013\u0006�A��\u0011X�����F�N\t�O�v�N\u0011,fQ�!��5�C�=sJ����%�(.c�\u0005�)Bѹ$�;\u0011�:\\\u0004W;/+�_\u001a��sv��!Zơ*�iQҠ�|�P\u001c�\\�\u0018\u000e�C�/�\u0016o�j��\u000e,%p�\u0006�W`\b�\u0004�Q\u001d���ˆDtaڕ�z�v\u0000�پ\"O��\t\u0007�a�v0܇��naq�55JUȧa��fV�U Q�\u001e\u001f7���W\u0013r��\u0005A4p�e�r\u001dz\u001f\u000f|�ts�qqJ1��\u0000�>���%��tx�y!q\"�\\R��ԅ�G���nsk�\u001b\ty8ҡ2\u0007�^�q������*\u0004�p���A��V\u0004(�T�9V\u001c�\u0002�\u0019\u0003�rx�4�-_\\���6�\u001aҵ�|�\b[V�\u0015u\r2���<\u0016D=ڹ��\u001e�\u0013�4��J{G��\u0003��\\\u001c�&��.�]�\u0016qa�=����~�ߓ�/�\u001f�ϕ<�c��萦�\u001d����[X��U�ՙ'�+��/v&��Nb��)�n(���n�0���\u0002���z��{�9?/4�b�I�o�b�y��\r�RI%��Q�1��&��\"��h�e�: \u0018��v\u0007K\f�&�\r�����$�G�?GY4�\u0000.C�j\u00162@\u001a��\\\u001f]�o���\rB֎\u0011\u001a$�~<К�\u0019���vv@%�\u0013���b<�{��\u0018t���Ә��-��#��\f?]��4�c��o�����m�f)���\u000b�O&����m��^q��E\\4�Hb�f��\u0014:�33\u000e�Y�N3�\t����~�\u001boŌ}c��\"�e���j|\r_�6sˌ�\u0019��9\u000e�=�{y�)�~V˦�\u000f\u001c���>���%��EZ\u000b�\u0018`�!��ս�,\u0019$Fh�\u00180;��\u001a����≈�T����x/�/����w�]��ݾ��=����\u001b�gx��`Ƒ�`\u001b�;�9v>�̀���\u0011�~���hLt9\u000f���~V�l�*�k�\u0000� ��~j�\u0005u\rk���F�����u�F%\u0004.�\u0015�\u0010�\u000b}�����\u001a����?���\u000f�j�(��C����{O��0r���\u0004t=D����wؿ{?�\u0003�\u0000�9t\u001f�O+�?��\u0000����������*��R�\u0003tu\u0001\u0015?þ`��\u001bP��\u0000G���QF���~��\u0019�\u0011����\u0007�\u0007�p� :���?G-�\u0000����c'�'m�\u0004�8�H�}#3ԟ��r;����\u001eY�����MW{\u0004��˳$T\u0011�OV��W@\u000b��ޕݩ]�U؝�5X�(\u0010$y�����fKK�W�r�\u0007������^q���m����]�>d���^yo\\\u0001��m�zJY��-�\u0014p�\rj\u000ez��S��t\u0012��UK \u0014/����\r���C���HxN�� A��yS���\u0000�t������W����\u000f4i���|ͥrC5��!*��?�\u0016�\u001fn6�7�l�oh�3S��j\u001a�Ne�=?\u001d�v7h`��\u0000�5\u0000T��\u001b���\u0013�z����\u0006�\u0013L-�\u0001�(m\u0011�4�\rXMJ�z\u0011��j1괼g�o�׃\u0016L:�\u000eB����_�6�\u0002�7�޵�9�\u001e\u001d\u0000�H�L��2d0\u001e��j�ۭG\"ǩޛ�\u0000fe��_=��ͨ��݁^k��#�P�R�\u0014��͎=4F�-���\u001eD�iS롾\u0019\r\u0003t5?A\u0014�Q�wrq��\u001d�@�x�\u000e|�\u0002�UZ�\u0007ǭ\u0006�lq\u001b�����&V�/�\u001a';�\rw��7�J\u0006ͳ\u0013\u001c�J <�P���\t�\r�p��� \u0019\u001e[lݣ�h���\u0002C�=����1U(�X\u001e?D�����W�=䲡oBCU\u0007�ߵEFlt�!�T��S��M<̣�\u0014��\u001a�֑\u0010P8ݓĎ��V�5X�\r�o�e�H�>��]�W(��\u0007]�;�v���Fj�G.��\u0003k\u001b_4��Z��3\u0015�w\u001b�G��\b�\u000297D�0?R\u000e��H�u��\u0015���e��$h�e����H\u0005ܷ�\n1��\u001f��h_�E#�\u001d�8c\u0018Ś0.\u0007\u0017�v�##�.n�|�f�R�\u0001\u001e��ܸ��^�\u000e��\u0012#��rr��Gr�\u0013�a\u001a����\u0019��X��C�@@\u001c��j\u0005w#|�\u0006�ZMP2�m��hq����\u0015�V\u000f�\u0000��K�'B�ҮY�^�� }�UjTx�\f��\u0019�&_\u0018o\n��v&)��\u001d<�e���\u001eäY\u001b�\"4�d^\\��OA�l�\u0019h�l^�C�ۄ���\u0013�\u001fL����+\u001aHk�e>�k���Dly�m6\t���\u0005�Z��p\u0017�bf��t\u001fw\\•\u001e\\����;I��U�\u0000$[{�&B�T��;�o�r�n�d�B{�5k�% �Im�\u0012C(,�)�kޞ\u0015��{�\"�xc\u0010LEĥ�W�\b�(�u\u0011�\u0014n�÷�d��|�!�0�\u0003�\f��S��T�� W�z|�b���l]�\u001c��y��k�ƛ�k/�\\\")\u0014`�0#qS֞�t٧�vZ��Lz�\\\u0007j|q���I}m8��壊Y\u0015\u0018�+\u001f�m��]���\fjb�|߶�\u0003$edžT\td�O�ͯ�4�����)\u0001���3���\t�\u0014\u001cs�i\u0019͖�C�I�bǹ�{��g��\u0017�5�\u001b\u0011���\u0019�,��Xb���x�X�n:Wo�N��Ir�\b�;\"\u0010�\u0002��½�r�d���q�W��E)��@�DŽ�\u001cz�d�#�I�\u0010)M�oڙ`�Oճ\u0019OJ]$�\u001eD�<\u000b?�=��(5L��\b�\f\u0001����{��h�L\f�R\u0000Kd�I\u0014��iZ���Aב���#\u0002\r�mD�6�Rib�\u0017ӎ\"�~Ny�;�;�����\u0012�\\#�$,�+@̂6\u001b)@)��r�\u000b\u0003 \r�I��c�����j(���K�I1�Z)-ݬ�Z8�V@£�\u0000|H�hVY\u0019\u0001�\r3�#�%�^��\u0010]\u0005�\u0012��h�U=J\n�=��3am��]V�Aּ�i�Inu�\u0013Q��U�M��V\"m䲞���^\\\\�\u001a�Z��A�\u0018�c�b\rLX=;�u:�3ͥˆ3 ��!\u0019\u000e�lA�\b��X�&��&��\u001d/Q���M\u0017�&5�.-���=�\u0012Ws�:���u\u0011��\u0001���h�pi2i�o$�_[\u000f���޿����o�<�f��\u0017����qs(\u0001�젷��^M��\u0018T\t����p\u0003g��\u000b�e��mF�\u0019?����\u000fw�g�*\u001f\u0007��\u0000�?��8h4ݧ0\u000e\\��g���\u001c8@�3�y\u0002���kkO��ىn��id�\u0000}�I-\u0018\u0007sN��N��ߠ6��\u0013.�mh��٦�K�,'\"j�5L\u001e\u0012\"\u0001�����м�\u001dյ��o/�ukmt���ؑ�i�p�Y��m�cw�h�`��%<�!�\u0010H��nٗ\u0012&,s����f6�=\n��\u000e�>;{a<2���$��Yh�Eh�\u000fTz��\tx҇�?��\tq�ă�8�j�\u0000g�>i\u0012�t�\u0019\u0007~�?��|vec�Wwh#�2�\u0000?o�O�,�x}!��^�\u001a��\u0000��#�\u00009-�\u001eS~Xy�\u0007�:\u001d���\u0019\u001dEG\u0018�C&?�i\u0016��t��\u001eg\u0014�\u0000ܗ�\u001d��\u0006��C���\u0000��X#�BA\"��d�Ā��}\u0015\u0019z�G+����\u000f�?4�\u0000���\u0000�W��}\u0017�+r��s��v \u00137\u0006���Ku*֜���\u0006��̍\u000ec�.l��hyw��c\u00125�*�\b�����E�z��|��;Q7�?1�[�-Z����\u0000.y\u0019&n:��\u0002���gx���V�GNy���R�i��?(ܯ�A�\u000f|���VH��\n���\u001f�_�_�V�5;�˘��w�\u001dR��k��?Kŧ��66q���F��H��%Q\u0019U�BF���\r>MLn3�1�5w}�-�v�N\u0000\u000f\u0007\u001cOK\"��\u001b��~���7燝?95���\u000b�?���md�t�KK;�A�\u0015V\b�-��\u000f�c��rN�s�^t�:~�\"1\u001c��D���C���㒵Z�Ŕ�#C�G����\\�z�\u001f�T�?�>S����7��0��T�-�k��t�Y���K��2å��\u001as��)\u0004�\u0014�s�\t�\tH˝�d��g ��8�p������V�o��\u0000-�m4�2�wsY~Jyf�h5\u001de\u0014�s���*�\u0000��藫�c�C2���\u0002\r}8�5+�(�\u0005\u0019�uR�G�\u0007y��\u001f\u0016Bq�=$�(��\u0000L�\u0003�9�|\u0002���n�~�O�m\u001e\u0013mf-!����E����\u0003Ҋ��$<\"�Pjz�6�S���g\u0006)qL��ԟ{�����DbD\f9��\u001c�W�=�p�����ݷ��t3�-;�z\u000e��\u0019\"\u0014[�nt�K�ۡP����h\u0014}���1��S͛,��Ip�(��|܌\u0002\u0011LJ\u000e?L1D\u001d��u$w�9=O�_��D���#��O����\u001f0��\u0016�:,�s�Wz\u001e�$�%����\\��I��N2�Edt%H ���h5z)\rOge�#\u0001Ө�$?�V�\u001e�6�f�\u0006�>\u000e�\u0010�\u0011��)\u001d��/�=A\u001e��^�@hw�Ǚ|�se7�<��o1k\u001eW�&�;��1j�k��_[�ຍ��o,S�\u0000`�ңz5\u001d���q��9x�l��ǐ�%\u0012:Q\u0004\u000f�-7i�9�����♁\u001b\u001d�Q\u001d�=\u000b��|����o%'��ݨ���\u00001�Ko��\u00000�3���s��ۻ'5i��n�)5�q,���\u0001:��W�z��h��xd\u0019@��\u0010.��'i\u000eG���.\u000e��~S<�)d\u00061�0%���\u001b��\u000f��%i~f�\u0000�v�\u0000����������5\t%�t�\u0012���7i3H\u0016�Y򎰿躶�v��E���U�U�\u000f��2h���\tk{&~. \u0000�\u000e�pˬrÜ�!q��z\u000e\u0017I\u001dGa��t��\u0013�(&�^<��v9u\u0007���ȀPߜ���\u0002�)|���䕖����~f�\u0015�j-3��։v\u0017�Isq\u0013\u000b�9�\f�\n\u000fB���44~��\u0016od�T֯\r�\u000eC�\u0004l\b�\u001d��bK��'U��j÷;8^\u001c�\\zH\u001f�'��\u0010zH\u000f;���]g��~U�<��;�5_+��F���mF%P�g8,����\u00176w\u001c�\u00129G*\u0011�\u0013�:�\u001a������h���\f��!�F��\u000f�i�i5�hk4NjM���0~b~H[h����C5�͝�1�^C�ҹ�\u0019���an����׎\u0002ũ@�\u001b�\u0002t �\u001d\u001fb�O���O�7g\u000f��C�\u0019<����O��m>�GQ�F\u001a����?A.�\u0001��\u0005\u001f��\u0000�\u001er�Ϝ<��\t�h�ǔ|��mNm\u000b�/D� �Lմ+�w�hsC B}E\"A*��hYY\tV\u0004���K\u0007i\u0001-$���mdt#�1�\u000fV\u001a\u001d4qb��\u001a6h\u001b�������w�>������)�����\u0019m^�H��]eu��븫);\u0011�3]�2ɭ�\u0011ȗ?.L�}\u001c���X�?��^F�#��@���It�-�уL�ԯ\u0014Ҝb��j|X�}�֍\u000fg�G\u0001���c��>���g��ԝv}�=��ؙ�l��(\u001c@����$�T�g�c�zr{s!L�I�\u0004��>/�m�Gj\u000fי��xq������\u0000.�\u0010c�T��C�uṇm����\u001d��\u0006B��/l�\n�Uj+П��\u001b�ʤ\u000e5\u0019���\u0004�7\u0018�\u0007��t�U���[Ȍ(���\u0015\u0015j(`]\b;��;������ɐEke'\u0015�h�!�3\u0016J�誝��`d�M��O>iŝ��$��H_��BS��@ۋ\f����b�\u0001����\b�>�+5K\u0014PG\u001al\u0007b+�s$\u000b\fb\u0005Թ<�u�$�\"vbvi\u0001S�)�8�c�N@���\u0019ԒvRv\u0004�8�Ҁ�W��Kx���]\u0018İ̲/��K\u0002z\u001aPӗ.��q����m�uj6�Ƅr�G��5#�-<�l2\u000b\f��9\u0005��9v�C��fJfB�k}�$V��Οx&��80<\u0006�[~����A5�fE��~��\u0000�;�b�qimb�qA10\u0007���2z�(����U���\u001e�3���\u0013\u0014\b�\by�~\b��u��\u0017��k̗\u0011�\u0003C'�'��%\u000e�\u0013��\t�I#74\r�'Hlze|V�����j\u0017�!⥜�j�j\u0013�\u0006ہ�k�0�nI��g�y>i�-�V�L�\b�%�ҝA^���4�Q���\u0017�\u000f�t!��4��MT\u0010�t\u0000�\b�e��?\u0016s�G��?4��\u001e���\u0001\rd��T���\u000e lk�7�,�!N\f�h�ȿ8EՋFYciZ9A4?kb�\n�\r�9؈���O:qbI���{\u000b���{�������\u00029\u001e\u0012�ܲI 5\u001c�\u00126�3I qe �.L\u0004�\t��5@��#!��5{Mj߅}XU&\u000b\"����m�g�3��N?X6=�q�5�D�� \u0011/I��\u000f�OJ�\u0001g�\r\u001e���9][Eqa\u0012ѣ2 m�\u001c�\u0010�C�}\u0014;7I�\u0007da�=�d�%\u0019�q$rۘ��|�����<�]G!\u0012��E���z�Oɿɯ���o?��W�;�W:Ϙ�D��𫦇�h�@��k:��Ggd��P�#|*\t�;�hu���:-L\b�9\u001f�#��򧩎�G�O��K�u��������O��_��W��%�t4�i6~j��_E&���m��k��\"\u00034>G�������-���^��\u001e�.(b\u0017��_/�~�O��\u001c���\u0000DŽ\u001e{�\u001e��\u0011Ӿ߳�7�o��4���U�\u00163\\��]pw���'��\\�\u001c�E@9�=h��\u0011���l�\r$�'��D�7�ךMe��?�b����Ct��+_Em/�����DB\u0004`H\u0002�\u0007a�e�\u0016�.#��i���D,rZܤ��$�-\u0004l�\u001cQ�\t*��\u0004�}�,�\\s�ϧ�Ǩ;rv��8K��=]\b�����k_��Q�K���A\u0014���\u001e�\u001c\u0013^��\u0006[V�JO\u0018j����}�_�\u0016,�1���\u00015`{�\u0000Ar��$D�>\u001f\u0010\u000b��\u001d��<�ɟ�����7�O��\u001d?0� 4�s�Zw����/�;�`���U����ssxb\u0006}N���-�r��\t \"�7z����+���\u0007gv�\\}�,�G\u0004w9\u000f��b7�;W٨���~����n�\u0014�\u001c\u0004�!?ݎWuD��b7'�>����%\u001f�t��K�\u000f��~���g�H���Mf�H��\u000e��kW��qs�4�������\u001e\u0014\u0003�׎�ͪ��<2\u001c��ϋ!<���Q\u0014\u0004kaB�7��c�\u001a|}� 1�k\u0018�q��\u0012n�{�4yW*��l��׼�}\u001f�|��k\u0016��t���������@�,�}�����\u001d���\u0000\u001f�\u0006x�\u0015��Gژ5��\b0�\u0000\f���\u0012�F\u0017�&�٣.�.\u0019�yH<_L��\u0010,��%[�:n6\u001by�̟��OԌPGua\u0015�!��\u0016��ד�,S:�#!��\u0000��FtZ}_\u00148�A#r\u000e�n����a1��\u0000E���o����Y���?\"��\u0015���Ο��d����Z�B�E���K��,m���\u0013�=Cҝs�����{C���|.҈��mg��w�<�]��=@�C��屉�W}��]�ؾx��㷗�mA�\u00003�\u0000�\u001bu�q�^x�\u000b�&�y-.�����s\u001d̈́\u0012:�d��\u0000xґ�����=wd�]��8�p�����Chq�CI��\u001cC]ٙ xG�H��9��W07��A�\u00008��?��\u000f�?*���[[�6Zh��:��p�h�;X}&�ۯ)�@�٘��#��<��ۙsh�c����|��]���k�>,z�\t�c\u0001\u0013/�\u000f����\u0000���\u0000�C�4]Fm{I�>���-�ݼ@�%\f�R���E7;u����ݎC\u001c��N;�?{���e��ǎV\u0004��\u000b�Wq\u000f\u0006�\u0000�$���&�;�\u0016��KM;\\�\u000f.��)\u0019�w!��m<�\u0016\n�C!\u0014zT��w��=?ov!�\u0005�\u0002�\u0000h���;���/e��`\u000e������I>f�`��4�3مkk�\u0018���U=iJ�:������2J\u0018e���BD|:>��\u0002y#�\u0015�!��I<㨈o��>-\u0005�����:\u0019\u001b�^�t�xLjyYp���2xq�\"\u001eA�ߖrRM��r\u0015>?<����S�˖W�\t���9��M\b�\t�N�3��'\u0003&Z6Ri�%p�o��T�nź\u0010i�1�cG��-@�1��V���\u0001_��OŰ=�{\u001f�\u0004��c���M�\u001fO��钬�\u0015��z\u0003J\u000e�9��<&�r��\u0014:�1�#zz��4߶VA#͐�Kuib�]n-�O\u001d�\u000e�u�2�c\\2\f�\b�E\u0013����K\u0005W��'Ĕ��P���d1d8r���>(�p_Q����AՊ���*���jG�L���Q�q�<�|M6oN۾�Ѯ\u0006�a\u001d�&�,k� \u0002�\u0002��?^s��\u0004�N\u0019x�ģΓ\u0018�Kʈ�\u001b��\u0018Wr\u0000�\u0010;`\u0000�/�)3\u0013��i\u00068�̶�2Ar�\u0005H�mQ�\u0003Tf|4�Ê\u001f\u0017_,���4�'�\u001dV\u000b��5���M(\rjiJ�\u000e�F\u001c�>\u000f�\u000f��x��d���u�a����Q�\u001e�ޝ)D�����%\u001c��۱�c-<��p�����'�-��7�\u00072E��\u0006�\u001f<����*���jF�l2�À\f`�r4r��Ijd\fw�!���\u001f)��V���+�q�\u001b \u001b}\u0015�&�qO���;7ы��QzW��\u0005]9�\u0002�Y\t�ߧ��5��Œ��֖|8l��ٖy\f�\u0006��\f\u0017�'��s\u001ec�P-�<^�\u0013H�1�\\1\u0000T�����հP;\u0016K�k���;��\t���>y\u0019�!�Ǩ\u0007b�l$�+��EC��ڕ��N�\u0000(�\u0003)\tD\u000f5;'hݨx�5\u0006�����!�ءͳ\fLn�ڮ�t�Q2�&\u0003q]�қЊ�a�\u001eh�j\u000e,|W�yN��]���Zj��M���}���}��f�\u0016(i��z�֣>MfA��\u000e��\u0015\r��@�\u0007rz\u001e��#,�\\�\fB!\u001c\u0019Pt�<\u001d���4\u000éc�]������lD\u00079se�@���b�Ƶ�Mi���0\u0007��\u0007�aZ5\u0006��c_\fh)�n\u0014ZN`r\u0007~�_\n|�,.����T��%G#AZ\nW�oד�\t�с�m���/\u0007&f��\t\n��\u0001�=�r���8�;�:��,A�w�\u0001�\u001e��=��\u0002}�4�^ȓ�F��:U@�o\u001f�\u0014܊�1˪|X������P�Q��֊k�\u0002{\u0001�\u000fՏ\t�7A�?��һ�z\u0016�ՙ�\t#p\u001b���\u001f\u001c�\u0003}ڲ_\u000f���a��j�Fe�yQ�V�bnca_�����^\u001f)uu��\u001e>�d�\u0006���_�KU�n���������2{��C�_��8�Gb�cں�r�J>c�Ӵ_�=\u001b\\�R�N�!�='1���\"��\u001fZ��Y4�Ǽ%����x�F�@�-���\u0012������4�u//�>��E\u001b�e��ʩtW\u0014\u001diL�I�ˋ ǔX-\u001a����1��Rc:��?�\u001f3y&�Y�����gW��g�w!�$�SZ�=3o��%\u001e(�/;���h�W����'��e��d}Vi\u0014,2���݇��9\u0006�<3K�N@�������m�S��{�)��\u0004r���\u001c�\u0018���\u0007���\u0000L�$@��[�@Hqlk��������zƘ^KR��\u001dأ ��7�GC�3�LK�/��j��2\u00191�\u0001�~\nY�\u000f4�j�\u001bI�d�$���\f]v\u001f\t549,،%�\u0016�>Q!�v�D�͉igr>�\"G\u0001��G %\u001fb�ME8��,�%(�y�k�#\t�������O�:�ݕ�\u0013j~Q��n��{�f\u000f,zl1<� \u001b��7\u001e�E��\fϏ\u0006HG 5��F��\u0000\u001b��\u0013�c\rΔ���s\u0011\u001c��>5�����kA��$�Yt��86��b�'�a��UD���>ђ���8�\u0000`*�ǟ���֌�9�1\u0011\u001c<7��;P���~X�t6��=�$yB�MG�^u�,����>܃%��:C\u0010\u001f�\u001c1�H碢�sc=n\u001d\u000e�z�A�8��\u001f�\u0007�4\u0007��GO���F�D\f�:��b����@\u0000wW2{�D?�\u001f����\u001eY�-�WW:6��YjwqD��\u0017v�q�;�?f\u0018dVX��\u0012z��8v�ijr�>c��2�]�l��'��g{#\u0017b�n\u001e��G��\u0018\u0012\u0005\u0003�\u0010>W��}��_^E�DsS\u0010��e��I�\u001a\nԟ��mo�^�nE\u0016b��;zp�,��\u0012D�(d?�#օ\u001b�\u0003���͂�l�墏���ejH��1\f\n�\u0012�\u0007V\r�a����f\t�\u001c���\u0000���>���=L�!?W�M�����+]�q�Lq��\u000e}=�d����\u001f��z����KT\u0016Q�~*���\u0001�`\u0000\u0018g;�\u0013����@m�'Ҿ]�j�$.��/AJ�÷.���c+��FǛ�4_0Gr��c�\u0003���\u001ds/ꍎK�>t�`�;4m�\u0003AO��\u0003ރ����\u0010�C\u0011��\"b|�]�K\u0004ա\u0007����)�\u0012\u000bI�\u0013l\u0006�?ξ9\"�wG�3p&��H��Gj\u001c1&�'p�_�x\r���M�\u001eF y�\u0010��%�\u000b�\u0007�w\u0019\r_���u\u001f��L����/�%�M���i�I\u0005�\u001a�h�ZA�X\u00153\"� v�!̃\f�+KR���\u001f�\u001f\u0018� '�\u0011tv�>\u001b����_����-K��I\u0007����^o���\u001b�������6�\u001e��Z�Gc\u0002�iZ�33C�\rNQ�~�4H�?�\u0011�c�[a�\u0006/\u0012G~�oa|��G�Ꮉ�-��\u0000�\u000f�ʹ:~��\u001e�tKH�ӳ��l�~��X[ �\u001cq�Xƈ\u0000��|�����\u0012��\u001a>��^N>\"NId�\u0002D�/��/�?�g��i���]KAҴ�X,��\u0003�oQҭ#A\u0018\u0010�\u001b[v\u00021�4�K\u0016$��\u0018�~1$�\u0013 ��1�\u000f�\u0010��INXyC�\u0004\u0001[p�H�\u0015\\�u�,����\r��\u0016'��r�0�6��>�\u0010v�yf,��2e���Yc���\r��~����\\��u_+�1����]:�a��^��\u0013\u001ef(X\u0016\"���u��6 a�_Do���X���BX��J������o��\u0000�?Y�}kw�����M�\u000e��[\u0005�-_���a�i\u001a�GY��M��)�=\u0018݇�;@j5:YGW\u001b\u001al��O|�0�<��|�j�\u001c:�p�\u0019f��\u0004wD��GuԼ��,�\u0000���ޡ����\u001f5�[h�\u00009<���\u00003�5��mo<��ԋ�~a����H�p�U$��Nl����?d�����'�q�/�|�\u0010���hp\u001d?k\rDk�>(�wq¢~{\u0015��?�\u001a��WJ���%���i1�\u0002�+�y�Ԟ�K���7S����4\u001aXe�9�\u000fT�/��\u0001]6�z�O\u0006(@]\b�n������'�/����o�4��/�O$i?�~O��\u001a���y��4yC\\{�ik�y[^Ek�\u000bTI=\u0019=H����j�l����=Y�\u000e�˓K�0\u001fT(�Q�0�yN<�'��;jsӍ\u001fh�\u001e�Jw�X�et%\t�Q\u001f\u0014W�痜�0?'<��ggcu&��=cKK[�ǎ�}J+[\u001by���s\u0002�i.-f\u000b+QC�\t۠��oK=\u000fk˵\f��2�\u001fO\t�\b�^�w\u0017;�5X�:\u0001� �*�\"\u000f\u0016��c�����'���?�/6~^k��\u001b�n����W&��ڭ�ci��=J�#�\\?�k����\u0010�\t\u0002\u001b�NM����{���֛�_N@�]��Q�\u000f\u0010\u0007��C�[Ɖ�\u000bAK\u001b(E��C�����:\u0017�PI=��}t�_�g���wP\u001d�\u001c�|�/a���A��\b\r�]u=J���:\u0015,6��n'�\u0010\b\u0007��W�\r\u000eNQ�f�fi�ZTƬ�C0�\u0002\u0007\u0003����#�\u0011\u0003�Y\u0002\\�٠ڲB�\u0012���nH^�V��7���MD�n��\u0011\u0014\u0019�v�[����3���\u001e\u000fP~%�H�ߏL�r$�@��\u0000\u0005�-\u0012�8]\u0016Q=� \u0002�s�6\b\u0001=7��^h�rc (\u0002�+R�Ʊ��+\u0000��88�٪� �\u001b���;\u001a�$\u0000\")�zU��5P�\u001e�8V�B�\u0015Z�LŒ�{�)kzH\u00101�\bՆĩ\u001cy���\u0007���\u0000h��m��z��+!��ּeW�Tv#n�}9�.{rm�K��o�E��>@���|\t\u0002���*�޺91�#f+ud����k_���;�� h��\n{��\u0010��˾��}����w��\u001fRN�Oo �f�I\u0003�o�϶g�\u0016\u000f{�)*Y���IF*\b&��\r��1r�������~m}\u001fRҮ��\u0011�uI\u0005\u001a�F��\u0002N��;�Fٕ��0`K��R�\u000fӾ�|Ϣ������e\u001f·�Z� ��\u001c�ᕎN~\u0019\u0000j/1� ��}\u0015�@i�IJ\u0016&�O\u0013��Q>�r�⍎l\u000fZ�[�e������BkO���su��m��&\"�?:?5��t�v�0�c��h�N=j��\u000fL�43�ſ1��e�*�s\b�56�e�^F\"@\u001b�c+Px����:�\u0003���rq�Q��\u00168u\u0018��1G5�����j�Y\u0011���&��f\u0016\u0019pHK�)˗z�>�\u0000s�\u001f��\u001f��/�O�ɻ-;�~N�6�w�n��|��+�$�G�7,#��oy�O\u0017�\u0016�ܜК-N{�}���fqK1\u0012�r\u0011��w�{�:�ϻc\f�}�� \u0000F���<���\u0007?s���\u0000�w�\u0000�^�O�O�t�#�^�Er���l�\"����f�>\u001eW����C\u0000z��\u0007Ӂh(MI�v�ij;C,�Z�\\�\u0001�1\u001f͏����\u0004c�+\u001dwz���s�\u0013ʾJ�\u000f��Nnm�$0�Io�w4���]ߍ�\u001f<�c���$��\b�%�EѬ4[t�\\�\u000e���\u001c6��V��\u0018��ï�(U\u0013�f�\u001c��\u0004��C\u001f\u000f\u001cG\u0014�-�\b���׻��p��ǖ ��8�F1�גD�\u0005t���\u001c������寖4�\u0000&�7����O>���B\u001fO�v=}�#C\u001b�Z]7K2z6�+Ppg\u001fh�\u0004'\rnyk��L\u0001�u�|���#�]\u0019�\u0019������c#,���_h\u001c�\u0007u�o*��o��+T�o��\u001b�[$���.\u0012h���7�a�\\-x\\[Go6�i;/�^�9�6CQ��\r�H\u001f�����k���~���.t�\u0004���d�;+׍��%�1U��Q�R�\u0011@v^`o\\�-\u0007���۸\u0004��u nF�?ҏ���Mc��/)\u001b�\r�\u0013[���;�=��q7�T����:��A��s,\u0017\u00162�Dwh�$��h�:���i���w\u0007i���\u0000总\u001dߥ��c��ٺ�\u00071#O�b<�c����״�-�py*X�\u0010^�sj\nȥZH��*��Jj~G>�=Gd�+q\u001b}�(ů�o����\b�\u0000���\u0000�m����5M.��$w��\u000b�W�W��ḷ��;�n��GL�����t��#�#q�{Ǒ|ﵻ.X�1�\u0005e�\u001b���;�\u000fܟ�-b��ߒ�@�ԕ��\u0005�����1v\u0016著j�D�@Ew�yoi�a�L�\u001f�'��L����܃_\u0006\u001f�]T����RX-ѷM�\u0002@�\u0010\u0003�T\u001c���<\u0007J����g?��G��_-�Y{ȒZ�\r(�\u0011���l����e\u001dX��P1\u0004�B���~���3!\u0017\u0003,�\"6m��{\"l�\u0011Z0\u001b�\u000e��;�D1���ɖQ\u001b�\u0002?L�Yd)�P0\u0007�\u0000|M2\u0019�b.�-�l���o��t����V,��I\u0014���5��[uvخ>�d���x�\u0002\u0003ҿ\u0017�CۯC�DJ2��W\u0014d\u0005sFZ݋Y\u0010L��A�:���>�\tG�q͔&!+<�$����h�\u0010Q�\u001b}�w��9�(\u0012<ܨ�d\u0000�����kK�/�H�cFn4�=�ߗ�u\u0013��'\u0013]�ǔx��J~G�.t����\u001ff��:\u0006�KY\b�\t\u000e�z\f��Lg��e\u001e`\u0017�2Ǫ�J\n4���;��]pi!\t~�/�y3�K$e��޺w�w�֞l���o��ۺ������kߕ)�\u001c3�\u0012%�d\u001cyK\u001e�\u001cL=9\"Yu�p��42F�ha\u000b��\u0001]�]ώj�\"'w��F1�>\u0019\u000fX\b3vA�v���\u0004�\u0004�ׄ�J���k��yr�P�\u0017��z\u0017�\u0016���R�\u0007��s}�\u0015i�yr��x�YO�Ɠ\u0019�w��[��2�\u0002Z��H\u0011UWj(\u0002���r�3\u0018�dv\u000f�`��\" \u0000&�L������m�d\u0015ZӐ=����`\u0019��x�\t���<�m��U+�\u0012�7�[�z\f��}^T�0Dx`u\u000fW����!>��5h\t=v��\u0006W\"��\f#dg� �*�\u0007!ƣb*7�}�\u000e\"938�!r\u001b�[A�܉mٶ�To��Ƥ��\t��Zp\u0007��M��\u0004��m8��S�Jx\u001fju�H\u0011�m�.(�K�\u0011յ�m\u000267� ��(�\u0015�製O��F\u0012�}#v�����s#���B��2��\u0017�Ϳ�S�d'c�9�Î8#|��瞮W��ђ�o\u0005�h\u0015Gٯ#�jbe)��X�c\u0000\u0000�.�\u0002vۡ��_l\u0002\u0000{�N��[�\u0015\u0000\u0003�\u000e�۩�\u0019la{�j�CʷC\u000b�\u0000��Z��?\u001f��Oþ[5��β����\u0000\u0010:�iS]�>9\u001e\u0013ޝ��\u001e�\u0015A$S�\u001b���p�\u0012X�<��^sV�/\u0013AB:�\u001f�c��8X����W7cj;\u001f�'�#a�\u0001�R\u001d�>�1}t��\u0000��E\t�kԝ��Njn�,�[�c\u0013K�3(�6*Mz�#�2#\u001eA����^_ڃ��D\u0002D+^�V�#c^�\u0003-\u0018�Qa,�\u001e��!\u0017Q�/�8ѪYMC��/j�#UѨf��\u0015�͒ZM�C)n�+M��9L�F�9x͋\u0004_�=�\u000f\u0018�>#QA�tj�v\u0007!{�\u001d�6���y�|���\bޤm\u0005�\u000f\u001b��\u0012��ũ�/���>�$O�����x�:|��\u001d?�ߗw��J��[@y\u0006@]\b\u001d�C�$��7\u0018��U\u001e\u0019�\u0013��}4��H\u001d\u001fD~M�uyo�\u0011��?5M\u0016��\\ �\u0019$q\u0014w\u0013\u0011D�!�\u0015������2��0�q�߱��Wj��\u000f�k����=�^G�x\u000f�g�<��_�Y5�kwԴ[���^�Jq-�pw�b|\u000emt\u0019���B'l�:~���;Q��b'c�?[$�����?�l\u0017M�_\u001d:��ONI.vP�6t�o��Q��t\u001a�R���Kv��4y���\u0014\u0001���\u0007���W�ִ�w�2Zj�ȣ��],�\u001dК�_l����*��ď'y\u001d\u001csb������%��e��Z\u00042X�|�\u0018�*�\u0011�\u0005\b\u0016O\\\u000f=�^��υ�$V��\u001f)?�m���\"��L�k��ʄ�\u0014�1���;\u0000I��6�\u001d㳼iԙ�3���Z֯�/tH[�a��Y\"��\u001b�J�\u0019�_�{��Z���I�\u0003�S���B1o1�\u001d�ɻ$�a�ߧ`|��.�o�m�æ�V7Ri�r}C˾W��W˱�\u001a����r�g���\u001e��,��\u0014n?`�،�7,��\u0000\n\u001b�2\u001cϼr�\u001aF81�0�q����\u001d�K�������址խY�hµ͍�Q\u0004��\u0012�+�j�GPs:\u0017\"\b�~�A�ቔ:s\u001eO�}��9/�'�\u001f��\"��e���B\u0007ɿ�?Z�2_y��\u0013� �m��\u00054}>��J:I+S�q~�v�\f=��[Dx�k��8|7�\u001e��\u0000�o`�_�z�i5P�\u0000\u0005�Da�Ŗb��\u001f���\u001d�\u0014������mj�=ڀ�nA@\u001b�aJ\u001e;��<�4�$\u001eo��� (w3(\u001cƾ�*�N%8��\u001fh�ٙ��S��b@6y��r�\u0005��է<++�\b���F\u001a��� z`;�!\u0016\u001d3��U�X� �\u0018�A�&<\u0004҉AaQ��${er�\n�^�Ț�����s\u001b8xܗ��*�\n���;��,\u000e����\u0000寘do.Y�X�\r�s�-w��\u0005s\u0003W#\u001c���\"\"��\u001b�^ntd��$\n2�h\u0005;\u000fq�x�}�X��u}-��8,��4�\u0011�ܺ�\u0010=�3\u001c�\u000e�\u0000\u0014\u0010\b��z&�\u001c���h:���Nٓ(��\u0001.\u0013E�[܃��o\u0002EkO�r �xO��2 ��,��\u0005A�ڕ�\u0000>�xh�\u000ekv\u0019]����rv�\u0000?\u001a�mH��\"�r\u0006�ר�����(;���ߟ\u001a��g��g̅9ǣ�Y��R�6\f��]�(\t�\u0001r+�jd\u000e\u0003\u0003�R��J#��D0�v9\u001d�\u0000�_�w�o��t\u000bi\u0015��ʋˠ~���z��B9\u0001_�t�>��\u0013\tx_�\u001d�[>'�G�3�^o��拯,~Yi�U�DO1y�\u000b}KV�h. ����T�l���k���\u0006q^����ȝm\u0011���o}\u0004\u0011\u0003V/��r\u0007�����������?�/1ƞ��h�`�'You6*Ha�\u0012��mZW*�<� Ŋ'��?m�\u0011��\u0005\u0013��w��,5\rG��\u0000�|�e$��ipZ�Z�\u001e�̬�k����\u0000$��s#�����x�w\bӑ�\u0014#�s�O��\u0007�\u00008��-�\u0006��7杍Γ\u001b[Z���\u0000!\\r��<�\u000f�=-g_���|�O�#p�7U詹�qd���\u001b^绻��8W�ÎUl\u000f3}Op�K����5\u000b�u{�[�/Y[�-������Y��\u0015c���\n���Q\u0015��j��n8���\u001f����-q��,�����\u001c�������4��\rB{�|��\u00147���)�|��\u0017M�\u0012�&\u001b\u000b_/�ii#?��#V��3G�g����!@\r�\u001e�W��B�L��Qώ�;��-������\u0000\u0003�/�Ǘ-��[�#��7Zk�$FX�f��\u0000�\u0018�W�$7Q�\r,��x\u00123l/���I.����{akv�V�\u000f�MJ�[yl�\fsX��[�)#>��\u0007^5+M���7<�\u0019\b�-3��\u0000�w�o`�V�����\u0007��5����?�V��PӴ�V��Yk\u0013\t�_�v���|ϥ��E2\\iM�D$\u0001�X�!^���1�ٻ?S�œ\u001f\u0000=��\t��:;tp���ˏY��d����Q�\u0000:\u001bo[�t�()<����e���*��K_���\u000f=�wW�\t,w��\u001eq���Q.���m�⻷�u�S��ls�{\u000b]���؞�(��Ĵ�\u0006�2D�O��@�H=\u001fli0��?\u001e�\t\u001e\u001e\"2D��9\r��`�\u000b�O�q���1���ճ5�\u0010�Z�w+k\u001c!��U�S�s\u0004�v�\u0014\u0011^��\u001d��O?H��gc��\u0010G�[�\u001d�\f�mN�BZL�p�o�9�~�\u0000I\u0002���\u0018uq0�cǚ\u0004\u0010FHFv\u000f1�\u0007g����q3�>c\u0012^yZF�^�򰭂=Ɓt�\n\u0016��\b6�BA&\u0007\u001bv���;\u0003�\n��vI�.���\r\u0018�\u0000T<9@��\u0006���|��\u000f�\u0011�-����D�7Y���a'�X�v�0 �>f��\u0000�\u001b4��q8���\\���=��\"ޯ�wF���;�O\u0002\t\u001c\u001a���ڻ#�\n\u001e���c\f��h�D}\u001a���\u0019\u0005��n\u001f\u0012��\u0015�k�22Ǧ\u001a�8?^�Bf��3�8����<�}a(��\u0000L���\u0006_P�X��\u0004�OQ�E׵s�í��!�h���\u0003�\u0019!+�\u0003c����������}F\u0019�bx�\u0010>$W��M)\"�ډ�\u001e}T�\u0003m�Sq���-O\u0018�\u0013^��\u0012��H\u0013�f��2\u0005k��X�r[�O\u0019P��\u0000n�}\u0015�4�7\u0007���-���j�O�\u000e`W��5\u001a�W�7�\f�OP��[����jW�I%��*i�(��ZE\u001f'g\u0003b��[��bX/?���L�\u0000\u0000�>\u001f\u000e���ʍtp����j��z��O�4�\u001bE�4�\u0012)o!����{�x��~\u000b[+9'�}GS�l�&�� fOl�]��OJ2�c,�̃�x @��y<�\u001f3��\u000b��3�~���\u000e�K�\u000e�����r�D\u0007X�lrd=#\u001d��\u0010���_�|��]\u000b�3V�����Ʊ�����D����O7�\u001ay�=��\u000fu{\u0017�/,$oOU[h�㷗��Ǐ H���g�\u0018;R]�\u001c>�h0��\u001f,�FLR��\u001e#Q9\u0004���E\u0018�边�\u0007�\u0003�/K���W���;g\u001e>?\u000f,`#�D\\���xN��\u001b��X/�����\u0000�įϏ�̯;[�O�W�w�i�\u0017V��o�+�W��w�m�A�ˬ�Sp��X\u0011��t���@*\u0015jsڱ�3g�\f\u0018\u0007\u0015��\"?�'��_�r���r�ڇ#���?���n��?�\u000e�\u0000�\n|��\u00008��?�~W�\u001fGӭ�4�Z��\u0000P3YM�y��ש�j~g�\r�\u0017���K2�%`��(\u0000gY�`��\u0018\t�\u001b�\r���=�#�Y�y%��\u0018_�X�y������_�z���n��\u0018��\u0016��\u0002\u0004i~\u001fQTŰ�\"\u000b3\u001f��93���Cz�\u001c��q��\u000f\u0011 y���\u001aE��\fRD�ф)0�\u001at\u0011�\u0004dbG1��.Î�0�cI��3���2t\u0003\u0018��t��\u001e�=�!����\u0000/��x1�8�c�o&�$��\"\tې1�}e�\u000f��?ʭZ�ا� �\r�\tx����B\u001c,��J���\u0005+�n��\u001eЈ�\u0019�\".��G��4~�h�T|>\u000b�},r�����k\u001f���\u001ev�m3Yմ�\u001a��\u001e,f1?\tY8�V��%BI\u00000&����\u001e�h���lj\u0011�5ݷ�vS�.��\u001f\u000f,�\u0013!���;�q��q[�����s�]��ҿ9�������]�Z_���R\u0019��\u001fQյ{h�\rWBV��N����\u0012��c\u001c��-\r@�\u000fi���n��\u0000��}�ͥ͡����!���1�����k����O��\u0013A����W\u0016�\u0016|p��@F^��\u0010\f\f9ƀ�+ �~��}\\�O�^^�\u001f�Ǟ-=_.y�����4�s�k�[B�f�j�WYR�\u0001%@���s�=�Ŭ��pv�fσ]��@�,�D�W'��i�z|������P\r��t*C�����~\\~y~`�+�j/\u000b��\u001d��-��j��\u001e��=\u0012;�>���\u000f�\"�0>�m�g�]��}���b\u0011�1�:�L']<�{�\u0006��Wh�+�bx�8�*&;\tF�H}��|4�5�K�\u0000�[~U���H�K�c��\u0017V��Z�\u0002P�4�K}\u001d�-��p[�d\u0002\u000f_���wo{\u0017�R��'���f\u0006]\u0000?��}66��/�v?�\u001d�������3�\u0018\u001dx��\u0018�P��\u0007~�\u0004~y�\u0000� ��ȓ^y���Uǘt]>o�[y�E�ȕ�\u0005ݴ>�֟s\u0017!�01�p�o����\u001d��\u0011��W!�S!G\u001c�Q�4$\u000b���Z�\t��K\u0013�M\u0003bq�c�\r�E���7�q_�B�г��\u0010̿谤̪�QB�i\u0014�`���7~��{Y�Q\u0013�H\u000fG=��^���ќ�F\u0013��\nߟv�Oi���=�����8-#���\u000f�[:�t\u0003�\"����\u0016�\u00039���OO?\u0006G~��v�!�\u001e$F�C��\u0000.���O,��h�KKd��\u0005\b�\u0016.|8��(�\u0001�:���������i�1�1�=G��Fqwwyp{�����4\u0007��;\u0002=��|�!\u000e\bF\u001c�\u000f��e.9�\\���=U\\\u00196\f\b�xw���fv\u001e\u0011]�U�AbS\u0019BІ]�jw��\u000e��\u001e\u0013��ˎ#������#�nO_�������Kĭ�Z���� 0 |ǎC)ڈ�8\u0005�9�s@�\u0001Uf�\u0011P9w#�4Z�Y�ޛM?H�\f��C��,�k\"c�\u000bP\u0007sO\u0001�f�e�9���?&�\u0019��,I$�im�[\u001dA\u0001��\u001cרڦ�l��8\u0016�\u0019\u0003��\u001c���+�,Gun^H�\u001a�}�^��2\u0018'\u001c��T�N9�\u001cQ�Y�\u001dSN($��j�CN�r�D㟓l'����K�V�H��O�\t\u0018(��\u001bz\u0015,v\u0007�6�t�̀έ���OO��9m}Cג��\"��j;_��L>��\u0007�iP\u0000\u001fN`��\u0017����\u0012j\u001f���?9i���/K#3@PL�/F?���\u0000\u0007�-��:���سh�m�S%�7����(X\u0019�\u001c^�\u000bT\u000f\r�\u00031uzc�^]\u001c����4�C\f�����|�i��s2�-�T����HE\u0003�'34:\f���Dm{�\u0007\u000f��W\u000fgb�,��~ޞ��~Z�7џ7j�]G�\u0013\u001b�эZ�O/��\u0000�\u001a@y\u001c���\"Y?/���b���~n\u0007bh�\fCY��\u001f9�>@��/���,m<1���~�\u000e�휖���}+�H$\n�\u001eږ\u0016ڂ\u000f�}eZFv���\u001f�i��\u000e���\u0018ᗟ��[D[�MV;9(�P\r\u0005;���(�|C�qG$sp\u0017�K}Y\u0005�R��p��\u001f�\u001c�� Ys��Ì�6K�֥�oBB�BXȦ���J�'\u001c|[�a,ӏ���Qv��2 T�\u00127u$T�TT�\u0004�\u0011�\u001b&:�\u0014\u000e�P���\u001d�����\u0018\u000eD����2�2�\u0006�.\u001c|E��w#����pK�Z�\u001d#\u001b��\u0006�^�\u0005*sk�\u0017�\u000f�<�(��o�K�S3�P��U@\u0005\u0002�\u0000^1�y)����P|M��@v��b�I\u0007;�4\u0004�w\u0003߶�\u0018@��&\u0012�J�b��\u0010{�\u001a\u000e����X\rd��^�t�\u0003sN�P�\u0002��'T�)�s�}�\r���*\b��\u0003�\u001e��]��<�\u0004���%{�\u0004}\u0000x\u001c4.�{4.\u0012�\u0017���Z�\u0010q�<@�\u001dVJ\u0004�\n�\u0015&�+_寀=p��*<��9y\u0011%�CJ�����\u001e�v=��6M��H\u001eܨc�kʏ�E\"�h\u000ed\ton'\u000f��\u0000�H�����m�O�B+�2b@�95\u0018HJ�����\u001a\u001b+�duR��Ӱ\u001f\u0017P\u000f�\u0018�q�=\u001a�`\u0013�\u0010S\u001b\b�O�\u0012\u0003)+�|J�w4�R\u0006>��`��d\u000f�6]c.�\u0018�\u0010=���jt��8�\u0014A5����3�rFx�c0F���\u0006����X�~ai��O�-�=3ZH��4̋�L�*�\r��;:R➔��w\u000fa.�\u0007\u001cc��8�(H\u000f�?��\u0011���W���NO4�_��z�L�-\u001d$~!jI\ny\u0012XS�f�G��9xZ�E�k�Xr���\u001e(\u001f���o�|�y�d<�a\u001dȹ�}ԾN�\u0016�3Kom��.�\u0010�_��^\u0005�V����Od��iC�Rsb\"1d2�kQ^��O���7���~<����q\u0000x\r�<��u����F7���\u0000˴򕍦�\f:\u0017�.�I��W\u0015��L�Kx����%#\u001c���Ku'\u001d>\u0019��7�E\u000b�u��j�<\u00191��gU��^gr�������=�\u00001|��U�\u001b�\u0016}BY�<��/�\u0017�|�l�ڞ�9\u001b#�_��I��aN�ghv�{'G-T��i\u001e\u001cq�t��\u001cϓ��h5]��8�/FxsŅ�b�\u001f�dy\r�:ȇ�o�7巖�\u0000.*4_-�f�;\r\u001bM�X��oO�̈ޟ�.�\u0000;�]ȆGv�%�x�ig�M\\�FY\f�G�=}��OҾ��v��{+\u0016�G\u001e\u001d4\u0005Du���O2O2Q�\u0016�\u0019�[��l����Mj\t\u0005k�|�U�� |)߆Ycj��\u0016U����a)gH�\u00007q�-G��c�JQ���ݑP�J��_R�}��\u001f�@ ֵ#\t�d,ry���\f�\u001dbYy����\u001e_gӈP��jO`;�\u0000\u0001{�-ɭ��әGq\u001a�r�X��kɔt \n�Fi��m�A�v��7�Pc���$��.�\u0004rz0 ӑ��}�\u0012D'\u0011�4{��l\r��b��i �2%䡾/n�\u0007A�\u0006�u\u001a7_��)\u0017-����>ex�\u0016\u0012\u0015�R��~���3:\u0012�Ɏ�\u0007��V�7�o\u001b\u0019(�\u0001aZ��f��H��G��\u000fq��\u0000�\u0016a\u0018�\u0001&�\u0003Q���e�1�!+\u001e���wJ�\u001e6����r�M�m�w3+\u000b�U���\f�A���g\f(z�ߨ�\u00001�%&<�\u0012����\u0000���7�˨����\u0000)�\u00000l�\u0000|M+�_Rx�w��1�]�#\r\u000eL��8e��q��a�\u0006xg��\u0000\u0014$>`���+ZE{\u0005�:��4�*���%�������w2��zr�>��!����H\u0003�\u0000����`Ծ���y>/���Uߜ<�{{t��:�Lq\u000f�on\u001bҶ�@61�n�@ڂ���q�<\u0011�����Æ������w|\u001fo�g��S�p�-2\u0017hd�5[Yx��^4Un&��\u0000P���W���/�7�X�G �1��������p�Q�ѿ�&?.|իhz~�\u0016���,l�kd��`��l���u��I��w\u0016���G0��!uSO�3��9�R99J\u0012\u0000�\u00126?����0�< c�\\_�.k��P�̺�}����]^_�sop.\u0018����r8N~��\"�\u0006�\u0001�3><\u0010��-�\u0005�b2\u0012e3d���X.�摢�v\u0016�v���\u0012�^�̋�yDM9U�#��t�H��$&7 ,o���\u0000̚ט�ǤI&��u���`��u�?D���P����\u000fդ�ԍ�e��=+�X�y\u0015�b\rXK\u0011\u0010�\u0019F4vߺWq'�y��Ր\u0012%\u001c��A\u001c;\u001b\u0015����`z\\�ַ��X�5��4\u001b����\u001b%jNuM\u0013ӎ��\n��˫X��N��K���ms\u0018C0�\u000f�2z���\f�\u001d\u001cl\\s����hze]O�E�O�^�{^���i�{x�,��\"��\u0006�W�\u001c�������fD2�Ď���5L\b�\u00127���*�n�]mԀc�Auo�\u0002\u0017��E��:�$�SC�8�!9\u001b�~��fQ�b\u0000�������\u0000�ٟ�v^}���$���jw���s[�V���\u001d��Bk[�\u000e�7�Mi����j�����N�T�#�.ϽD{SMcĨ�#j�\u001d�0z\u0012\u0005_�\u001d�`�>\u0014�?SF\u0011�\u0001�\tm8\u0011�\t�t���\u0016��=c�q���?�~m�nn|�ism��Q����M�c��\\��D��Ԅ��Ј:|�,Rh7#�͔L=��v�\u0003�J#�8\u001b\u001f\u0012#����\u001d�GGY\u0003����;>R�\u0018\"X��?��!}�>�7�}_Q7��3��Ť�Gi�h�3�����\u0019V�[�1�bn\"E+�ñ�h�\u0019�1�w�v#�~>�p%\f�6����\u001e{�{��9m����[����t�x\".�\u0014+\"�����0�u,�\\��,r\u001e\u001c�0�#�y��.(�� k%خ^�\u000fG�h3�3�ʞl�\u000e��h^G���a�<߯�\u001a��i�Y�\u00041�_X���\u001c\u0016\u001d\u001aiݥ��9L\f�\u0018ՈQ�����ŀ�5S\u0011ǧ�꜈\u0000c�)NGa�6$�ۯ=��\u0004��\u001a],%,���E�)\f@�x��\u000eW�\u001f������S̿�Qj�\u0000�?��>a���\u0000�u�#�����]��'���?UKjRE,:���.ݔ4zdn�w���2�\u0018\u000f̾��#7jJ]���勳*Q�ac&`E\u001e\u000eG\u001e\"6�\u0019'\u001b�\u0018�\u0013�W�\u000f�S�졏����3v��P�}X�u\u0007 �(�[�\u0007��q�B�4����\u0018᷶�6j`\f���\u0012��!�(�~�F���V���\u001d< \b�TC�ꑹw�^�R��}X?�$�\u001c����Kq*q�\u0001\u0004�ƈ�~\"z��eum�,\u001d��e\u0012V�FgId����Y9\nFyQC+�\u001b�j\u0010����\u0006\u001e4�%#T�\u0017& �\u001d�I ��r*�\u001a����&\u0014�8�\u0015n�\u0000`��1\u0019%w�\u000f{�߳\u0005q\u0011�%���_I�D�8��\u0000\u000eL��ۂjk˹��(�S9\u0013w�i�Eg�4�mh��nco��E\u001b,̪�����\u0013��Kʎ\u00004\u0000�q��x�zg�\u001b���n��\f�X딽C�l\"�,|�{(��˺T�O�8\u0005�\\eߏ6khcd�i\u001diRTv�M/nv�p�5��c�e�\u001f\"Hu����-p�\u0000\u000b�ir\u001f�I��3y���k�o��O���އ����ج��1Ƿ�d�\u0003�蠵/�%\u0006T��íX��!\r̲�j�I!��|a�h�0R�ŕ���i��\t\u001d�\u0013�\u001b�M�>@�?�I\u001fc�������2��ڭ<��(�\u001f)\u0000k�R�\u000f�o3X����&猄\b]�me�\u0018 S#�-�v��(:��\u000f�\u0011�2`\rN�Q���\u0018L_��K�j?�Yڸ�:MV� �$'����/NѼ�m\u000f���D%V���T�)�\u0000\u00168��ᯈ�����^�f�\u001dA�{�\t��C���\u0007��yp�0�;�䄇�A�\u0013K�&��a5�\u0016\u0017�J\u0019T�6N��%S�<|y3\u001aV�zfT=��1�z�?\u0017����t��d=�Ӄ,����\u001dDD�\\$�����\r�����+���3�\\!&���Ơ\u0010\u0007\\�ͦ�x�e�(�N'�.���x\u0007\u000e�\u0016h\u001f�BC�\u001d\u001eksl���J��YU��\u001d��CB{��\u0018��1'ȃ�1$CyX\u001e`��\u0000m�EP\u001d$\u001ckDVn\"�\n�ԟ�\u001b1��\t\u00063�H#Ȣm���qؒz���6\u0014\u001f�J\u0013��f\"Yf��)�À2��\u0010d~@\u0013�%Z���5r��y7�\u0017r\\�\u0016�4;�I*j\u0018O4QGB\b+�\u001d�Q������?��i�{�ď�6�t���C���t\u001a�\u0013���#�>\u0011_\u0014~��\u00008����H\u001e�K�|�\u0007��\u0000s��\u000b�N¶6�4��!�ISC�9�O�݃�\\\u001aa�Q?�dž?�G��\u001a/�\u0017�Q�\u0002Z�����\u0000>|r\u001f��\u0007���\u001b��Ν?=g�\u001a+I�\u0011\u0017���\u0019\u0004@r�!����\u0001�V\u000b񎙪\u001f�K�BDh�p���d$��\u0007��X�\u0000�=��\u0012�\u000eМ�Q�\u0014@�\\�M|\u001fg�K�?̱�����\u0006��e�e[&b�]����FQ�69o��oj�w\r\u001cq�xf_i�-��\u0003�Ɛ1=l�w��\u0003�\u0018�����\u0015Ʃ?�|�-�����$Z\f�\u000b��GgZ�@j‡.��\u0000\u0005n�\u0018���C9�;�\u001d�������\u0000���9r��Y��\u0010y~�_i�/\u0014��\u0000����5����em�;}*(���\u0000�Zv?\u0003�P\u0002*sK��\nݶO���_�C�]�?�'��*���\u0000��^w�O��F��i�j�>j�����6:��V��\u0006��\u001e{u�KI�6��)4؊���\u0000\u0004�i3c0�\u001d.)\u001d��\u0012e\u001f��\u0012/̂��Lﲘ�\t�.�0\u001b��@@�\u0000[�\u0002Dw�L*��\u00114\u0001��X�����Ax���,m���I\u000b-�ڄ�+��:���W\u00113D̼j�h8�D5=��9�g�u\u0013��S��>�7����'f�=����4�\n\u0003�\u0018�\u0000\u0000�m\n������o��/��_�o��/-�W�{�W\u001a��O�\u0007��a�դK�\\�ӭ�i���k���ӭ�9\u0019f\u000b�� \f�}��\bv�ni=�͗$���\u0011�vI�9�D\u0012}F\"��t]����{��~�O\u0016,y�BG\u000e>Fyj�dk�\u0007r9mO\u0016��\u00006��(�\u000f��toʏ �\u0007�4�&y+K[\u001d2�{�\u001e���a\u001f�u+���\u0019��c,�\u0013��@?A{>z.���K��\u0011�\u0011\u0011\u001cD�Q\u0014.�&�����\u0000��5٥�VD��Fd\u0001\u0011\u0010dx�\u000fyڷ��yc����\u0000�dǨI�M[�zE���ҀR�(�Lb�Y`�:\u001a�e\u0000x�w\u00145$��\u0014/t\"k�VH�\u0006�o�\u000eL�\u0016�*\u000b�ڛ�\\4��F�\r~�F2�N�(��\u0011�.��7%����濒�Ѭi>G�M߮��Q�\u0014����Lj�\u0011�%\u0011��T*�„�֙�k{?>�\f�Y���\u001b�{���a�7����W��l��\u00008�ĺ�~D�w����٥Ǜ&�F�u\"\u0014=����y:�5\u001e�0�p\u0006�@{\u001f'�ߞ���\rB��\u001dr{�G�~�}��j�\u0011&:8��ӏ������]�\u0013�\u00009����o�=k����C����\u0017�K�[�����[Yu�J��cq:���0G\fP��\"\ng��\t������V�=˴|j\u0006��q\u0014*��'����ɫ��i�CD0�\u0001B�I\u001b�#ʀ\u001d�S�\"���\u0017w7s�KIf�\u0007�\u0001�x�\u000f􀒩IU\u0019F��J�I-\u001e<�����^��\u0010��H��4(\u0005̱�\u0018��k\u0003�d%<\u001b='����\u0006>\u001cD�s����x���c�g\u0019\rp�]u���~o\u0004�����\u0017��n���c�j\u0017c�\u001a��u8m$-*�\u0006�{\f�F�gUj,�2�\u0004j\u000f������\f~��^|#�\u0010�\u0012|�=R����jg���q\u001b���\u00146���6\u0007���u�;\u0007Ӓ��_���Ҿ�������({-&�\t�:�\"�D%BZ��Ms��wgBy\f��>\u001c��/k�?\u0003�ϱ�u2�\u0001\u0018d�¢G� \u001d�q��:���-�Ϩ�_D���e��+�w�+\r��*\u0014e�Rӂ-�ԁ��qY\b?k*ǟ�tx�\fYN] �C%���=ۅɃC���O\u0018ǩ�9B���?I�\u0011�Ť�dP[�}\u001d���t7Q!����:�\u000b�\u0011Jj9�J��`�?\u0014�\u0018�N=\u000f��FX�\u00008��z��/�.��:v���\u0013C\u001d����\u000fV��\b�\u000f�\r�e��2��\u001e�W����d8��'׆�{>y�fPL4;Q�ڀ\rϿO�:8����\u0011��ǧoS�b\u001a�\u0000\u001e\u001d?��ܿ��#b�ٔ�Mp��md�ئ�\u001a\u0010v\u0007۸m�\\�J#��!׿2�_����<�����_@�ZMjxڰ�k1QnYI\u0004;-)\\�����}�%-��c�x��\u0007��3�_�D��M�^�!3=\t��?\u0012�9�\u0005�PFQ8�\u0004i\u0014���\u0015T-v�\u0019�z��\u0012\u001fr��82�5����Mj��Y�{\u0006\u0012*�H�\u0007�3O3\u0019\u001b%�\tÔhw�Q\u0016�}e���\u0006���\b��R��Yc��\u0007:9e\u0000$l\u0010��5�sK��Cth\u0004��v��Y�(�!ʆ�'ym>��K�I�r�0Q\u000b#+�5?�~��剌<��HK%˹\u001b�ygR���)�,�[�$�\u001e��\u001e8q�k�r\tɥ�-��e��\u000b�\u001au���щ�Mʻ��'���jp�\u001d\u0001���G��K&�9���\u0019�7�.�Jh�L���\u0000��\u0003OJ\u0014�cص)펏\u0006�)\u001e���K��$J_Q�\u001d���Վ�\r�Goj6\n\u00147�&��>��8�9:���\u001f/О��E\u0019�m@zS�Ԑr< �ѷ�<��\u0012���\u0018�\u001a\u0003N�\u000fN�~�\u001c(\u0019w��%uDd$\u0017sב;W�\u0006�M\u001d�\u001aM\u0017����i�o���\b�XL�ƈ\tL�\n\u0016�Y��C��7��Z\nS�]\u0013r���<�x,Uw�w��!��\u0012���u`\u0016��Q��qA�d�6+f\u001e�6؎]S�G��1G\u0004\u0005�iR����U*��Ï��;��L(�b\u000bB쇐;�\u0015�\u0014=��#q�\u0004H�l\u0002��un��#�Bk�\u001d�\rj\b�s��#G��H��\u001b\u0015#�\u0013\u001bMC�^�s\"�\u0019~8�֧��a��5�����Q�~:!o�7P�$p�A%~\u0010:�ֻဳk#�s��<�'G�m�v��\\DK����7ڃ�3c��N\u0007��.�]�ǒ<`z�r\u001f�:���>�뙬����Ֆ\u0013\u0019��F�\u001e����1�,����נ͓J8D�\u001d�q\u000e�\u0000������ϝ?.�E�-c7\u001a���\u0000Kp\u0005ZIm\u0014}�\u0000\u001d�\\��oiK\u0014��Uˡp;c���-_g\u0001�7�>�f?�|�7�E�\u001d\u001b�'ʺ��G�D���$����]��q��򥌥�ȵqM���/Y�zL�4��?P\u001d�5\u0018��\u000fd�\t��˗\f��������\u001f���\u001eq�<�us1���x%��y>�w\tb�{Gz����M�sq�E���ge\u0015-'\u0014�c^��h\u0000�Č��@e���w�:\u001e��t��R�F6Mw\u000b>�\u0000w{�\u0013�p\u001f�7[����_�\u001f<�\u0018�5�\u00009��u\u0018�\u0014��/yj���ϖ\u0007?�\u0017��Qqr6�,����.��X��i�S\u0003�\u0003��w��瑷�>��\u000fa����\u001a�tk���N@�X�\u001d�b� \u001e9��U���cg\u0006��\u001b5\u0011���(X�R9�k�o���z��\u000eD��)˭�����1a�06\u0011\f\u0018i�6�5ܑ�Ĵt\u000b�\u0006`j\tߠ�;�\u0014e-��l�e��av��%��B�I\r$�؃\u001b/�#\r�MI\u001d�TI\u0007���\u0000鴩���\"��Q\rJ���Y�*���݆Dʙp\u0013���\u0007�<�-�\u000fsY\u0002F���U�#\u0003ZM�p�8\u0006����\u0019Kn��1ރ��H�m�c^.�P�.+��Ӱ��g\u000b�\u0003���?-�\t�Ὂ\u00198�$o��jJ�\t�^�\u000e�阚�<..�}�F3*�{n��\\G\"��GE<����C���\u0016)^�`����N���\u0007�\u0004ަ�Ei�33\u001c�띤����\u0000�>`�\u0004\u001c�\u0000�+��\rs0Y�#�a������v��H��b6��PAڹ��bQ�ۍ�&2�\u000fv�5���g�é��\u001c��f���\u0019uzΝt��ܷ�>YX$\u001a�f|�ޝ)�H1�����!Ԗm2�\u0006�T���&V�-\u0016�i5��F�\u0005g9N�\u0017��̀s�)\u0001�14�\u001fX\u001eo�����.<���\u00009~UK�/0�y��zc�~\u0019#����\rN��\u0006CB\u0012�e�\u0007p�>��sY\u001dg`h��T�8�}�\u0000\u001f�\u0005�V\u0019����\u0011B9�\u0013�\u0012�W���[v�2#�d�;�\u001c����z1(G`:��͎C�rw$9&\"\u0018x�1\u0002�\r�\u0000�����;y3I\u0001����\b觊� zV��O\u0016�\u0000\b\u0001��+$yX|��\u00008��iu/3�\\:�Iđ���\u0011��\u000e�7R�*)ޙ����/\u0014s�g���\u000e\u0001ț���p���e���+++�mJ�)\u001e�7�Ry#��\u0012vPJ0���\u0000R�T��\u0000K\u0011�\u0017\u0010�u�[��)c��\u0014\b\u0007�l`�}5���tm�`�\\\\���ʷ\b\u0015�\u0016yR���JG_��5�Րj�\u001d\u0018�����\u0003c���y�^�\u001e�e\u0006�����e������\u0013C{h��\u0016��'a�BQ�r�\u0018J&\u0019%W}�w|Bg3\u0003b7��}��b:����0�>cѧu��=F/$y���&T�5\u001b\u000b\u0015����R��9��\u0000\u0013�D�\u0019�\u0011^���jW}֚_��Ô\u000e*;u\u0013��\u0007��r{�n��X�h�ܟ�\u001f�}���=� ��;���\u0011�֛��ڡ��3$���\u0013��=\n2�Ѳ\u0018��<=�nD�\u0012}@n\r���-���oh�\u0012)ksʑ\u0016\u0011����\u0007��Tс;8���3��9r�y.8ǟx}-�\u00008����%����?�F�V�u�i�cә�6��Q>��iȩ@�-\u000f��x�\u0012���\u00145�i��\u001f��5}ǜe�l���\u0013�O�j0\u0001�\t]w��\u001f\u0018���s�\u0000��������ݧ�<�}ms���D[ΞZ�r�{�\u000f��R\b���J�g���K�d\u001b%�\u0006�,Fr��u\u001d��☽$�\u0000u��D����l�ؒ�����\u0018�!�xT�\u000f�D����j���&H�i�R�\u0014\ndS#|����\u0010{C���O�KO�\u0010��÷\u0014��9\u001bJ]c\u0001���er~��\u0003�\u0007]�솜jsp�;zQ�f�\u001cw�\u0018A�\u0007#�꟔v|�c��\u0014��K�\u001c\u0018�V�$�B\u0017p*���EC\u001d�t�o9�'���9\b�\u0019n��-��\u001ac,��\u0010\u0012�J�\u0010���E]��J�c�\u000f}�=�^<�+�>��\u0001\u0000��_ґ�\n�\td�����0̊�?\u001al\u0016�8\u0002��\u0002;�#������\u001a�\"H�Q�����g�)DQ=\u00129�i�d��'�7\"�A\u001bT�\u00162�ny�e�%1�<\fi�3\u0014p\u0014�w\n���edeJ:�y\u000f�\u0012\t�4�d2�mF��i*0i�g��\u0014�V���T��D�q��{�b\u0000� ��J\u001djky���})\u0016�\t\u001bԎ\u0015� F!h��\"\u0012T7�5��\u0005f%�d1��k\u000f<\\��/V�+\"ʷ�,���(�\u000b�h����z�\b\u000030\u0004-\u000e�/\u0010���S��Z5�Ky��E\u001c�9Q�\t+\t�p�\u0017�H�u5�A\\4�̨\u0015��K\u00141��\u0018\u001f]4�\u001c�-ܑ���-�\n)H�R��J�ö�A0ۢ>}J�D\u0011�ш�e�\u0014���F\u00008�CX�y�2��\n�\n�\u0001�M2�o�\u0019k���\u0012�Eh �HnL\f���\u000f\u0012\u00005b\u0002\u001a��S�H�`.G��Z\u000f�ﹴ2<���}���\u001b���\u0015����:o�r7b�fE��\u0019���6�4��RK8��Gs\u0012�$�j�K�!x���\u0015^�)ס� z\nc9�lw=?�>�\u001d�]�}K\r*`�\u0012_WL����bt\u0002H]_�*�\u0010\u0010[q�Z�\b���o�\u0012>��Dc�jq��q�H�A`z��w����\u001a��t\u000fR�Q�H,ⳑ$�x�\u0019�Z��T|`�\u0015��21��kiŵY�?�H�J�~g���\n�h4�7��\u0011?8�*!?*\u001b�\"�G�\u0004WA\u001c\u0010���\u0018;;H�E$��֭P�N��=��� ��'��\u0006C����/c�A/�\u0001�'�G�8���M/�>R��\u0002?/i֑�\u0015\b�(\u0007�0*�ck��]�7\u001d�f�\u0014ߞ�\rN��rx���s��R$|#�|\u0000z����ec\u0018{;M�O\u000e^�������$��*��\u0015�)&�f�`\u001e6���\u0018�'��dc\u001a\u001bhM@EZҤ\u001e���\"&�\u0003wa�$�̓�jg�g\u000f\u0015�Җh#E�4����]��)�1\u00052\u001a7��,cCQ\\�\u0012�\u0001�8�[�ar���+�z��P��]2��N��^�\u000bl�(Ѳ���5��\u0012����%�xB9b7?؏\u0006D��ou�\u0014\u0016V\u0017�^���H��\u001f�*U�\u000b#��*�N��I(\u0019~���)ƥ��x��WW\u001aq�\u0011��\u0013\u000fe�]��:�0�(��8?0E\u0003A:��B��Mɠ \u0003��\u000eA�5��D�U_\u0014�I�L�H��\u000b�\\FѼq�Ə#�\u00073\u0000�\u0005PZ���\n�e\u0018qb���d�9^�̜�J\u0004\n\u0000�ߡ�bߚQk_U�X���46�}qdY`�)2U#1�\u0003۲��\rԞ�\r3#S�ÄqD\u000b�u��W$ht��jF�\"�W���?\u001f��'?=u���.\\�\u001eaմ�.鐳X��\u0017QG=���a�V2k\u0014���,��\\r\u0014;�z=^^��\u001d>�\u001e3ʹ�\u000b���4]��Z�q\u0003O\u0011d��G�>L_�}��\u00008��i�����~t~e�\u0000�I�\u0000�=�ߘװ������?�Zv��_-h��i/�Ǖ���_���@�\b#\u001c\u0019�$\u000f��\u0000�U�\u0000\u0003�wai��\u001a�P��S�\u001c8�\f��\n�d\"L�)m{z@���S�\u0000\u0005��!/��gi�<]���2��\f��vE\u0010+`O�s�+��\u0000����jZZCn���U�Sk\t4hƷ\u0010L�^\tiW_�� �����M��\u0011�܎��׽��,��\u0003���G����y����\u00001��]�5p\u001a+\u0014�׿B[Y�\u0010\u001b�\u0001�i�\u0000Y��7�+�\u001cE\u0010T��-P7�\u0004��\u0003�\u0001>W�~0�e�IH4oU�ܯ�ژV����O��\u0000;�+�~V�\u001a\roD�>e���/��Z��4�\u0013]ڵ\u0012�9ݸ<-E~t�6?���p�Þ ��#��~��K&LYaM8���jF}d��𝝄x�ΨP���\u0007����������#�V\t\f�����2G�X�D��H�?�_L�4�L�=��f�|��dF�߻gi�&�\u001fhc�a\\UGm�y?��8h\u001aϖ�Y��e�\u00142ʏ\"��\u000b�`��\t (\u0000�sװ�q�q���;�\f�#DP߭���o�5�g���m�h��b����\"��\b��1�^�Z\u001aZi�KȐ(X`̈́�Q\u0019ʼ(\\����G��t3�b�\u0006���6ں�����q{��u�;X�:������B�8���H�\u000f\u000b\u001bĐPF�t\u0015M}���vί��\u001cq5�y\u001fp�>.wga\u0019�Y\u0017��\u001fq<��g�O�y�Ҽ�t��\ri�Y��\u001c��5ͭ�1߈8���'\u0012ԥ\u000fq�e٧��T\t�ȓ�'o����ӧ1\u0013�\u000f.@]y�|��\u000b�\tn�˦c\r����_`����'�G\u001e�\u0013��=�=ǩ\u001dkn��n����>D��\u0014[_7�r~]�z�HE�\u000f/Z_����c�e�\f\u0011��zR�vRH4͗g䞜f�\t�Z\\�u�HpG��']��=AŎQ���b�ڽ\u0000����U\u0003�{�-�kA\u0007���]u�-�[�[�z���qY&�����O��\u0000��R;��\u0002;\u001c�碔�J4|:�ߖ�롪��\u0019D���\u001b\u001f�6/�v{\u0007������K�ދ�&�6��k\u0014Y\f\u0011]���\u001b�xؔ���јr�H�ǰ�l�\u001cH�Y\u001e��\u001f2��\u0003\u0019�(�I\u0011=�;�<�Y}A�u��i���e׬\u0012��������rLw�\u001cQ,�iʌ��p8�}�];�7�z/��_��A�\"\t\u0003�u�\u001d��Y\u001dn�ǀ\"\u0004��������qy���6�\u0017\u0006\t�t�ޛ+�\u0012�\\��\u0007`:f�Z�iu\"q\u0017\u0001��v\u0007K\u001d^�✸e{y����_�otmB{\u001b�ͽ’\u0010n#�5?m\r(�{���`�cόN\u001bƞKQ�˃)�1�/��1[�Y\u00143\u0002\bކ�=7�6�s&3�p�\t\u0010i(I^\u0006,�\u0015Zr\u0000TnkM��\u001e!W��\u001c�\u0019������� �\u000b\u0000j:\u0013_\u001f\u001c��\u0019�\u0014��\u0019�#�����1�2�\u0003�+\u0000z�q�㜌��� \u001e�\r\u001e��\u0012���SP�\u000f\u001f��\u000eyd�ǣ\f8���\u001e��:Y�\u001c�\u001e\f�1\u0003�=���f\f�Cw0^9\u0003\u001e��I㹶\rU;|Ehw\u001b\u0011��b\u0000c/{��'\u001b�§�-��x�VV\u0014*@W�pzPfn8\u0019Ç����'�\u001d���3g�Y2H�GZ27cM��K\u0014��\u001b��ad�T��͞R�D�M��O�\u001e.\u0002\u0014Z���P$�\u000e ���Z�dѝ?�Jy}WgC\u0007h�Z?��^~iϞ-·>��[\u0011����Q�<`)�9\u0011�\u0014��)�O���F'M,z�[F[\u0014�\rr\u0014���IG�u\u0007\u0016\u0015\u001cMW�1�ZeG\u00117\u0013�\u0017 j\"'\u0019�R\u000f����/̓�1y���B.���OH�--��\u0015�B\n\u0016>�:g�v\u0016�9tإ�z#��\u0007����)huz����������o������oˍ;S�\"�ǚ<�N���H9��߹�XY��E�w�'�\u001a�v��y\u0001�Ch�P��=\u000f���C���ŧ��fAǒ]L��6~/���r�\u0004n��!E\u0013ᧀ\u001dw9�f�\rǘ}?K�����Sj\u0017��L�,��J�\u0012z��hsp�F;\u0000\u001e�NrK\u001cf\t!��_���UW���B�\u0010Q~�湮���h�hi��|��s;��\u001d�q\u0005,��9\u000et��f?�gnP�F� ���\\�mp�z~�\"��*�\u001c��ۨ�?9\u001a�l5���e�\tQ���\u0000�^r��q\u0012\\��%�$�\u0006��:\u0010\u0006[\u0018ir�����˯��@Q\t���E��L�]\b�oH�\u0001B���@�Ms\u00128\f�pÕ���xxL�Հ�\u001b��Y&��>��Jep~�S��\u001d�\u000e��t\u00181zDa�'��1ʪ(9`\r\u0014D�Є\u000fMQ�.�{������F�_�\u0000\b\u001c��)�\\��svSZ�\u001a�Eh\t��H�5�Q\u001eg��M}��\u0004ԎKV����$!�ɪYA7�d_����\n�f�1,\u0002}��v�\u0000\u0002�e�$J���g\u0003�>���V-@\u0006P\u000b5j>$\u0014\u0001:T�\\L\u0001�|Z�I>]ɭ��j�cbO*\u0013О�xS\u0004�J4�>�M�\u000f9)�\u0018�T\f��\u0011�֛�!��ɰ����H4����2\u000e�O%}�\u0004u\u0000x�Em�`$G#�~�\u0000z(�?��\u0002ѢӚ\u001eJX�Y��`1�>e�\u0014�M�\u0001�j:��9J�\u0019\u0001\u001c��n\u000bǧ\u0013�@��\u000b���˗��cc�D�|ŦH�4�@�\u0014(\f\u0019k�ż)�8d\u0006۴�^+��#o֛��̒/��\"����D��x��0��˫p�Aڏre'�Z�\"�A��\u00079U�-�9;�S�\u001c��%d\u001d�;(МG\u000f�O4�4��\u0000YP�\u001e��`+�*\u001a\u0010�9T����b�b�ߏǚ6�P�,&�@�Ry�AZ�2�\u001e�_�/��7����s܊�PY`P�$w�L:x�>\u0004�\u0003\"aR�fQ��\u0017D��Q��QJӓI��\u000f��n\u0019D�A�Ʀ�%ӵF��1\u001a�Ƞ\"���$\u001e���s<�J6��i��[uEK�^i�uM.��c�ꜨT�^;V���<\u0011���7m\u0019rb��\u0013@w��Ͼ@�楼�f�b��_�zG\u001bĺ�_�C��?\u0017�DK@�-�f�\\���˥��k��_\u001a��&�M��+�a\u0003\u001fhG~�?:�.���?��M�������]�6�f����0�\u0007�$��a�d#�1J\u0014U� ҙ�{;���Q�o���'c:����4؀% �UMiG5\u0002��~����.Yĺ~�\u001f\u0011����~���\u0003���S�˨���K\u0004�*)F�]Dd�4ݛ�\u0015�͆\u0012|:���\u000e�\u0000��4��d\u000e��M���]\u000bC�o�{+{��6{k�'�=Y}\u001b�b��H�\u0011�}�Bz�i�M$�􎿏���;s�R˫��4�W$������=J��G\u0007`dCF�)]�2�|\u0014c��w\u0014�4�d�яᔤEv\nU��*H�o߭GrE3\u0018̂o�o\b�\u00009�\u0007�o�/� �n����-<��F�}\u001fSvT�Ǘ��+%�#\u00167pY�Z3\u0019�\u0010�N�+�(\u0019x���Lf;���6�&\u0011\u0007��\u0004�'�_:�\u001d�,��\u001f���_󍿖�l���ιe��%ym���\u000b�.�qw���X�G�Z\u001a�}k_ԯ�Eek\u0018�9�Hјi�K�t}���hv��=\u000e!���\u0007� m�\"\u0007���@\u0004��gvn������ˀɫ�v\u001d\":�_͌{�\u0000I2�����󚿘v�s�R�g����\u0017\u0011~S~R��ϥyB�D�|Ǯ�[]l�,���$�I\u000b���94R@�\u0004(���nl\u00030\u001f\u0004��;\u001cc��\u00105�����#΋6��V�yd��3�.H� ��E:�W���\u0013��\u0006�f�<��\u0019-��Pl�:I\u0003�\u001frv���N\u0018��\u001d����!\u0006�Ȏ�F�i\r�ʉ\u0003\u001e(\u001ed<��\u000f��4EVQ\u0011RK\u001f�Tt�1N\u0019�\u0017&\u0019bcы�U��9C\u0003����;�\u0011\u0001r#\u0010\u0010B~0�Py|\"���HJ�/>�\u0000���C��K|���^E�\f3F��:%�pI�h��Ծ�BEg\u0010���O��\u0010\u001c��\u0014 \f�<\u000e3r\u0017�׿ʝ~� �\u000e\u0018�\u0018<��ٺD6\u001a��\u000e��\\�ͅܔ�+y\u001b���P\u0003��+76�B��]�\u0010Ff�8�x�v?�N�j2b�ś���n�k\u0012y�I�����syb���\u001at�\u001eX��1^7�[]�\u0004��ko�r���� �naY\u001a\u0010ާ\u0006�S�����&Zn\u0011�U\u0019\u0003\\���\\�C�\u00049�58�8�=�w�\u0006�.@������\u0000�W���?�\u0000*|�?.9!u�\u0000+��Q����\u001a\u0012���w��\u0016y�=_�>z�o����Qx}Q4`�,h�\u0000\u000eN=���\u0001�f��\u0011����A]<-�+�be\u0003�[\u001a���V���4zN�͗RE��\u0013���)�ƹ\u0011.\u0019\u000eu��\u0001����7����̟�Z�j\u0016�|u+/!�K,�_��Ff��Xv �\u0013[�F\u0000�N�3�Q��q1��E�3��\u0007�u�>[�WU�2��A�\u0007��X\"D��v\b�d9N�^�y����,jP�]A��iz��Se�h�����4d��kw�}Z����\u0015(��Q�m\u0007ik{3Q\u001dV�6\\Z��\u0012��\u0019\u0003�\u0005���\u001bI��p�q�\"\b�\u0018�A�\u0014���q{�~��\u00009��\u00008flt\rO[?�\u001f�1�\u001c:���\u0000�M��\u001ep�t�V\u0019W��t�=�rě�\u0015�2E9\u000e�����\u001b�r�t~�a�����B���-̀��\u0006�DH�\u0012\u001c�\u0010���\u0003\u001a\u001cі�ٹ�W??\u000e���ˆ���ID�\u001e���\u0017�rW�qs�~\u0011�k�4�<��=#�\u0003I�\r�O�/8\bt��/(^�~�\u0004�D��jvA�\u0011�[��컫u\u0003��7�4=���U�]D5��M\u001c��x��s�>�r����=2!��\u0000��\u0017��\u000fU�\u001e��,\u001a�| ф��q�m?����\u000f�o厡��q\u001biW��1\t}HͣK\u0003qb��D�\u0006��ZT�|\u0019�\u0007\u0018$�񻨘���\u0000\u001c����޽�{�;/8yv[�\u001dV�IEސ���R�\u0004��Y�FP�q'\u001ep<�4N\u0001�RA�i�p�\u0013�1��Ýy}�.�\u001c�(���.��g���\u0007F���b���Y�����\u0002��B�������x��X��\n\u0006�ۂh���B�c�-��ˌB\u0006r�\f�g�s\u0007�[�.����Z��,ZF�o\u001ar\rmh�M8\u001a�����;\u0010��̌y��d4#�'��8FNGr\u0005=7���ɗ~A��%Kk{x���Y�T-�j�\u000eIW�\u001a;\u0015\u001c\u00101\u001c�\u0013�%���G$���n{�u�\u0019�%(����\u0015��&����\\�\u0000�k���ߓ���3]<�Zi��t�sI\u001d4ۘS�\u0012Uv$/��r�l�WDq憫N\u0007q����\u001d@8�1&�\"�\u000e����|��\u00009Q�\u001d\u0016���F�e\u0004b�y��\u0003\u0002��*�/\u001b��}sL� ��=F\t&����\u00177�ʳ�\u0014\bx��\"���$�O�3��\u0014�r�1��{t�o�����p����\u0007�ռ6�R\u001e[�g�\u0017��-2[{����j�����ⶥ\u001a;���/�5\u001b[�7\u0014��\b�vn|��dˏ\u0018 Ѩ��T\u000fM�\u000f�:��G�0�\u001b\u0010Öd\u0011�R�P�Zdu��~��#��B��խ��}0��\bԬb�\rB%��Ki�B�\u000b}d�P3��7 �9�:L�rKr\u0001�5~}<���L��\u0001(�G\b���F�<�K�j�Z�SRӡ��a��e���X�l\u0005���t�ՃHG�,���VNB�B}�o�\u001c�HL�\u0018�$��b7u��ز�11��\u0000\u0003\u001a܉zE}��B���c������vW:\u001e�c��V4�6����3�����r=~Y�����ϗVv�?\u000e����\u001cG\u001c1�A�\u0018���_�\"��\u0000���F��]SG]B���*�M6\u001b�%Y#���Оut�\n=�5=�u�O�\u001fv���qj%\u00023d�\u0011\u0004r��\u000f�<�mt85�0�\u0019i�#\u0011(�|;H��\u001af��r\u0017�;�&��L�󎇧kLUl&�������\u0000\nBd��k#P\n�ɦj��\u0013�/e�gç�=8�\"\t�Ԁ>�6^�{7�Q�\u001dF�\u0018��\u0011��\u0004���Ƶ]+PF�-Ug�X��\"\u001e\u0019cߋ�\u000f�oט����&��\\mN\rDI�:|��s]�9G\u0014���C��\u001e����ŇG�y�\u001e\u0019\u001f�'��F�\u001f�ݘ\u0010*\u0000�=���Z��;ñ�HJ6~��&�\u0006�bR�e�����!�p��;�\u00029�DoO)�t�[�Z�\u0012F�Zs���\u0002�kރ6\u0018�b�c�Ru\u0019q����|_s�4���ly��/\u0010�ۘ4�>#5�D�τ�v�<=N;\u001fRȖm&Y\u0012�1��,~}\t>\u0018�\n��c��\u0000�t��k�Z;�.G\"�O�:�s�\u0011����r\u0003\u0001��\u001c�\u001e����\r����y�b���\u0000��M\u000e͍Η�z\u0017Zө�\u001f�\u000b�X�_�k᝶S��ؑ��ɰ�\u0005��\b�A픨^�\u0000\u0012�u�C��ߧ^[�+kkx��\u0012(� (���U���\u00038\fĎO���=\u001e��?+�w\u001d����m��^�&�f�W��&#�=F�Fg\u0018ϝ���-i֚B�\u001c�\u0019h\u0001U?d��N���2��[��q\u0001\u001d�=b�Y��\fPq^;\u0015\u0014\u0003�c��\u0003\t\u0013gwe\u001c�\"��*��x\u00127\u0012��\u0006�ߧ�Z\n�\u0018dN�u@\u000fW4�<�\u0007Ʊ����t=A�{mL���W\u001cj��$�/֯������1�u��\u001a3\u0001PiJ���\u0004\u001a\u000e\\8'\u0013�ζ��z��c��yup$�����l\u001c��Տ�]�\u0005om�{��O&0H�^C��pǚ��1�:\u0013�|����1O<���\u0012=74%{\u0005_�P3�ņ\u0010\u001c#�yl��d�$�'�r\u0002��^�\u000e$(\u001b�t;�(݉;֝2r�ŵl�\u0019�\r�\f�O�E���rʠlv`Os�\u0002s\u0016Zz<�s1��\"x��Q�,�\u0019%��V�t\u0002�Sr��\u0010�� �2�H��\n0�H�C'�:1\u001cE�r\u00065�R��Ng�D��\u0003=�\u0011�W�\u0006�}�\u0006�Aߑ�\u001e\u001e���R��\u000f\t?\n�@�;�)r= v&�\u000fe�A\\�\u001d\u0000ݪ67��~99�X0��,����Z\u001as�•ǀtS;��p������\u0012�9$\u000b�첕5�\u0010T������27 �U���!FIb�T�j\u001b~�\u001b�8\f\u0005l��c*\u00166d\u0016ژ�\u00142r\u000b�!n,\u0007Q�\\�P ��C5�N�D\u000b�܉\u0016M�\u0015h�ڀ\u001e�åO�\ne�c�\u001d���{\u0019\u0011�V\u0002�\bp\u0005C\u000e�*\u0003\ne\u0013�o���ʿ���\"Mo�@�\tZ''~T**�j�+�\u0006C\u001eyc�H3ͤǚ5\u0012G��7�\u000fU�[�V�S\u0010Z1�8���aѪi�->�\u001c�\tغ\u001d_g�����\u000fwF\u0003���m&A\u001d�\u0000��F�&�N_\u0000c�W�$u�'\u0010ɼyspa�X�\u001d�P��/��f�\u0014p\u0011\u001cܗ���E\u0005\rA��\u0012s\u0007.9c�\r�ƛ6,�B@\u0012Gة��2�\u0002/4yK��\u0011���\u0015'��G���!\rL~��Ye�܀���\u0014{���:֥a ��/D\n\u0012�\u0013'*�-��}��\u000e\u0012�\\A�&3�1B�����\u0000E�)�sV\u0012\n�wGS�T��#12c��i�=\u001e��i�;��l��W��\u000f��W`\u0006�L�'�b=W����R��=\u0006�:\u000e�\u001c���$�LmB(�wVl^���ڽ*�]�a����?K��c⇈\u0001\u0012���y��<�g�\u000b�6�A\u0015�)=����Q$Z��>=�#.\u0003\u001fTw�����]�_P�\u0018��\u000b�\n��X�D��eYA��\u0000u3|\u0006�#��\fljc�/njd�\r\u001d��s���\u0007���{���5_5�.�q�^\u0018�A�w����\u0000�;K���\u001e����d����9��#�\u0014L?�\u0007c���.\u0018�/\u0018�W� D�q=Ǩ=\u001f����=��ן��\u000es��0B���&\u0011Z�\u0012\n�$�gU\u0000nNn��#-?����\u0002ϸn~O\u0015��Rc\u001f�r��2v�̿s��\u0017?(������l�H��[�\u0018��7�Pz�\u001a�լ^���m�\u001dbD;\u0006\r�?�z�v��z��gh��\u0002xG��>��}���]��\u0016�ܕ<��Dm\u001b������e\u0016ʨ����@℀��\u0014��F��9�L��s���r��\u0007���&:�(6\u0005$�օ�0\u0005�3��5�\u0000���Σ�b���OqU<37�\u0015R\u0003�9Ęd�\u001b�=@\"��qj�KO�\u0017� �\u000e�DHs\u001ec��M���W�?$?:�!����ߘ?�:ޫ�u�y\f~�j\u0010Y;\r/[�%A��Y�\u001a+�^�) \u0015�=������}���t��Ƨ\u001f�\u001dq��ˌ��`�1G���,�\u001a�i2_\u001e9\u0011�\u001c�}�QU������g\u001e���\u0007\rǦK3\u0011^���w���-��y�9z�}�Ɠ}mcg\u001d�2\u0005�$X�q�\u0019~#@G�V�\u0001̈΅\u001ei1�ܧu}\rɒ�PD���\u0019 u\u0014n+:�p\n9\u0019�4u=���Œ��ԁ��\u0003�1\"�|��M\u000bS]jm:u�K�)\u0012���dX���F�m��\u0012*\u001d\u0005Z�f���7�8�\u000f\u0012;\u0013�w\u001e�\u001e8�\u001c�e��z���T�I�����+Zk\u001au��-\u0014]\\\\j\u001a|���[�4�8O�\u0004��ǂ\n�[l�gŒF<\u001b�98�ۄ����˼�\u0010�\u00110�\u0003��}��/����\u001b\u001b)!��Ҡ�}9㘙\u00046�P�\u0003�Q�k�t@њ����\u0019Ȟ\u0010x{�v�\u000f���8��q7`�\u0005�\u0016\u001eb�����綸����f�$�#Һ�-!����C\u0018X�]r\t\"�#\u0000\u000f��n��\u0019#��3G`F㸃��\u001f��\u0014cɊF2\u001e��;���1A`D�S2\u0012\r\u0001��򍘶���4��|��6:7\r�m7��ۆ��\u000b\u000be�Y%\u0001Gv�\u000f���Zԝ�S��%\u000bLb:�g�i���?%����a�c���A�����/�\u0007kKQHᲰ��ɨ����Ekn���f\n�nF��{GM��d�k�xZLb�z���\u0014��1\u001c��gv~�Y�:�}���ɬ�j#���zD\r�z\u0007��\u00009\u0005�\u00009!����?�\u000b_4��;�\u0013���3�/���M�-\u0016����z�\u0006\u0011���[�U���-�q�����ɞ�{m���[�\u001b�ٸ�c�v\u0000�d�3.�+�\u0018��/���i=���+&�&�ru��Q�\u0018\u000e��y�\u0017d�ׂ[��q�n�F8�!�E{S<�q���\u0018),��ҭ��E0pо��[�V�~�\u0000G�gQFR\f���\f��O�\u000f�C�ޕ�\u001a>�b{y������+\u0013�T0g�TE4f:Ʊ*\u0001E@MK�k�\u0010��⑵�ɔ~o�\u0011Y�\u000b\u0011d\u001c�ZI�\n\u0005��C/\n�\u0000w�o��l�Y\u0000�o:��!��=NO)Q�\u0014u\u0010��p��SR��\u001f<\u0002\u0000\u001be��0��O��Y�s\u001c��\u0011��鍏\u0005\u0007�)':Ԟm\u001c\u0006Lf�P�\u0006�^��g���I\u0004�dSh�\u0005��a�c�*��-�2T\b�\u0013!Ɏ[w�����r��Vz/�\u001a������2��\u0012�U��_\u000e��ȼ�l�L:Ƌ�Gsmq\u0011h�d�\u0019�I\u0007%��+�i\f�y\u0017c\u0012և�M1\b�.G����Dzy\u0013�w1��ؖOR)\n#��ͪ<�d���\u001e�搤QM\u0014ļN�1q�&�\u0019D�\u001c��E9ҿ1\u0011ob\u001e���<��[Z�,�� ��\u0000���\u001aF�A!ih}\u0019(\u0018\u0001��BD\u001f$��F���y��\u0004��u�����@���-O.J�\u0005,\r�\u0002\u0015�K\u0016�*�\u0012Q.D��ęFGO���\u0000(~c\u000b�6�e� �n\u0004�-P\"� \u0001\u0018�\u0019\u00177�E\u001e��\u0000>!N�f>\u0019o��63�_;��y�2}J��V�Q��O�D\u001a4P��x��,��H�F�܎�����#bc(F�j;|\u000fܘ\u0019�\u0019�5�#��^Q���q�\fq\u001b�2�_Z�7�@�\u0003\b�؉\u001a�c�\u0015Y\u001d�\"�\n\u0007C���|����\u0007?\u0019\u0013\u0003����a��-,#\u001e�8�\u0017&�9�%��\u001a\u000b[�>/L�(-\u001a�\\��ץ�\b߫D��#�l��?���g�E6��Aq�j[x|�i�}^�kw\u001e���iH���,͸%�aRr�y|\"D��������i�x����<�������\u001a�\u0000�\u001e[�����Α�;$�4���y\u0006�s\u0012L'E#�H�\u0012V�G��j�S.x�=\u0003qV+�.�\u0016hF_��N&����//��N���\u000e����W˚\u0016��j�do.k������&Sy\u0012��oz�ń��\u001b֔n[�>^͆�<9#�\u001b��\u001e�7\u001b�#������q���iy\u0011�כ�?8�\u0000�\u0004~_���u�1k^A����\"�l��\u001eW�J�yCv\u001a�Y����DZ0*ji�r��\u001b�D��}��� ���M<�#08��E�\u0000�;|�|�������&����f���\u0000�v\b=K�|��8l��\u001d�\"ca�y�XK8R@\u0001d�]\t\u001bfDF�\u0001NJ[��\u0012\u001f���5~kI�~���!_n���\u001f�g�W����4���\u0000f_�j�W�ᰘ�J1�U���M`\u0016��|:WaL��b\u0007��\tw\u001d��NL\u001cb�.����e�\r\u001d��<Ϣ~g~Wy�\\����򤾷�|��}ZM7]Ӧ��\u0011K%�\u0011�\u0016�\u0011�ki��H��]�������}��Ǵ�\u000bQ,:�(�\u0018�'�g\u0013q�N�\u0019\u0002\rW'���پ���\u0014�}��\u0019qHU\u001e��z�/�D�~��\u0000�&�\u0000��|��\u00009\u0003.��\u00008��\u00009�\u000f��-���\u0007���\u0003M\b�E� ��.�f=e��>�_�\u0019\u001a�xr� >N���\u0007]�켥��qj{\u0014߫�L[�'Cx��\u0006�\u0000�\u001c�<�\u0000������^�r$��J���\u0011x'��j�P̥�劰5\fj�o\f\tܬH\u001a��۟>^��@\u00197\u0000\r�|\u0017�?����\u000f?�(�[o$�בiq�\u000fմ�}��/�\u001aO�\r��ai(?\u0001vY\b�k�l\u001a���Yk���\u0000{�.D1��e��Ǿ���Z���X��m�#F�̚5�:~�-��C�Y���5\u001dZ�\u000f\u0015�\u001ad[\u0015�\f�6��g����k�����\t\u0006\u00167\u0007`z\u0010?\u001f2�\u001f�ߓ�g��?Hy\"��x�\r\u001bN�K\u0019��%���H���\\ ��sqP�%\u0018�����u\u0013�.<��4{�Nh�)��,p��\u0003�ߟF\u0017�Ue��\u0000��>�7�\u001aF��7���V֠H�Ҏ��7�L�J�\u0004��pMh6��왰j1\u0018\u0012\u0004��xpd2�'\u0014bLI�{m_���E�Κo3�V�^%�Z_�������\u0000�V�]��<�!\u0005\rR3N��3#KP�xxe9�\u0000<ˍ0%0d%\bD\u0012I�r|��k)�B�Z�\u0003,�cԆ�%_Ѣ�\u0013r���\u000fM��N#��\u0004o��Ӊ�\u001c8��\u001e\u001f�3�.�\u0017\u0019ӝFQFr�~�|\u0005?g�\fb�п&m��tm�W���.��An��ݯ������\u0003F=9 �����*�\u0007|��ߔ�v����\u001c\u0018�/�\u001c�R�l\u001eDz*\u001a!�U�g���\fv\u001b��e�u�\u0016�\u000e��k0^�,S3���3�?^�\u0004�횈J�FqB�\\��a�q�\f�K\u0004t-��c\u0013�[�>`n����\u001a}�6�i,�x������Z���e\u0014��\u0000x��W\n�\rB�l��\f�FB}'��nc��|r\u00061\u0007�j#z'���\"��Ȟr������\u000f�mJ�Y��닧iZ���ޣyw��/�����巘G\u0007�|�{�ހ8�c�65�Nm{V\u0007\u000e�\u0017f�c�\u0010�_.<�9\u0003�X�G�\u001dOfd\u001959�L�\u001cY&\u0004k���\b����>��=\u0019�Zu��޹��֡�.�e\u0016��f�\fP<�n\u0013Ә,P�JUB�E\u001fFk0�C'\u0004�f#��N�g\u001c�Jx�\u0011���״�MY\u000b�q<��5���.\f:\u0013�ƶ��z�1�����8�h���ڈeq��������4x��/�\\�?��i}͚\f\u0017��\u0012�\u0002\u001bF���{��v�������\u0003���S����֟�\u0003�\u001fRK�3;l�_�g�\u0016�\u0003\u0005텞���Mcͷ(Z2���\u0004�?�\u0002�b�\u0000�w����\u001e����\u000f�\u0018�\u0000%ذ��Ô\u0011�Q.q���\u001e\u0011��ԧ�G�w�}��\u0000��\u0000g{?�=��솳�2�FyqJ<\u0018#�\\\u0012>��\u000e�^8Q�\u0019�G�)��8N�Y4�k�\u000b!�~��?��P��c�'rN}_��\u0000���\u00048�\u0013��u���\u000e��\u0000�&��\u0018�i�\u0011�v\u0004�W�F�\u0000j[\u0007���?1����2[�x���\u001eP��zm \u0004��\u0018��\r��\rWdvGb�n\u0018H�\u001e�[#K�}��b\u0010`�����/g-����e\u0004ס�MsC��<�%�\u0006������Q1/\u001e��?�<�;�ZIsn�U1�T\u0003�3r;GI��\u0013Ry�ٺ�\u0014� �\u0000��O����$K')��\r�lc�[\u0001�7>[ԝ>2�B*\u0014ԍ�\u000e�2\u0003Q\u000bۓ?�d#���I�%�\u0003/0b�7Z3���m�Y�\u0017|�i�\u0002\u0004�����3��xm~�\u000f0�\u001e\t\u001a\u001a1?�Ӡ\u00032t\u001aA�-��n\\\u000e�ם6����\u0003���Kuv�K�<�CPB��H�\u0003�Κ\u00020\u0015\u0011A��O&Be���v���Q�I�t\u0007pí[cL�\"\\�8����®��Bc��hv\u000eYjMz\u000f\u0001\\�\u0000\u0001�6'qF�i�7��;,�J�B�YH�a�\u001a�φB�\u0005\u001b���ϴ�Me\u001e�t�+q�9\u0000�q�t�I@�bَR�5׾�\u0000R0_�)\u0012�\nK\u0015i\u0018�V����}�\u0002\u0005�͜dNǒ\u0010jb6�3)���J�Q�=E\t�11��&G���\u0014��\u001cH��%\\\u0011��UO�AN�\"6�>!�\u001c�\t�R9B���Ģ�\u0004���\u0014�U?A�\u0011m�6�����\u001cU��-~2{\u001f�\u000f�\u0018��\u001dÒh�ې\b���nbjr\u001feK�j�Ȟ.[S \"{�˪4\u001a,q�\u0012]�\u0003\u000fU\u0007�p�ԗ�NB������,��5 \b��A�(�~D�\\K\u0014��Ep9�$�\r:m�'��\u000b\u0000/x�%����R�H2��9�Ȅ�Zn�̢�\u0007L#\f$+�\u000e�6\u0012\t\u0017��0п1�ed�By1ޠ.�\u001a�C|���>�����8���W����V�j�0��U�\u0006\n@\u001f�\n��ߚ��)\u001a�\u000e�\u001e|z�t���|���o�T�T+Y\b�(rH�\u0018v�̽6�$\r\u0013����f\u0019�� �:\u000e��Ǘn���,�M/�ZEe�1\"\u0016\u0002��\u0001Cڄ��i��.:���\f�d\u0006�_?��O/��,\u0010+N\u0018��?��04؜�e��m���4���\u0005��M��\u001df6�ċ#)\u000fƄ\r���\u0000(��eP���ߓ\u000e=H⪓�o|����_O��\u000eLq��\u000f�U�\u0014�s6\u0019�?����g�'\u0011�iv��y�D�\u001a����El��\b�̼>�\u0014\u001b������82K�Gr�)�0Dd�\"#�H!�����n5h\u001a(�+}F\u0003V\n���\u0001�\u0011��ΆQ<8��\u0011\u000eҌ�9F܏�xO�4�#���^E�M[J\u0013*\\�j�%Ǧw)*�� Wc��gc��8f\u0003��D�\u0000�i�\u0014>ߋ��\u00002������y�C^wA��+��zH�\u0005�}3Z�r9�\u0001�6�9f糰╌��\u000f�\u001d/i�3�\u0003&�z������C�<��y5��{\u0018�\\%���D���m�5���5QRh*r9DL�F�uD2�8��\u001a�\u001c�����ߒ4��?��?,k7���/�o��/��\u001c��5I\u0003�4��!��\u000f�2�BG\\��A����#\u0003Y�'�1������v'fö{c\u0016L��>��Lw��q=7��~�����t\rj�#\u0004Y9,|؃p���o�\u001d��g�j\u000f\b��N�qH\u00127�nδ�U卩*�-U��*��\u0010j\u000b�\u0004׮is\u0011)\u0010k���8b\u0013k�a���G\u0019P��\u001cX\n���Z�nk�1�\u0005ӓ}ܘ\u0006�yU.�G,�\u0007VF�*���\u0015^\u0015=�r�ˆ������I��1\\��\u0003\u0013\u0014��!�>ߨ=!�F\b�HV�\u0014�\u0010@d\u000f'�h�'��\u001e2�\u0014�I} �\u0018���nj��ni� ˭6F��\u0000���7�<�\u0018\u000f4Vў?\n�\n\n�\u0000��iֻ��\b\u0016G&@�/'��񦱨��ʼ۠��r��\u0006�~\u0016�̬q\u0017G���Fr�\u0012�At�\u000f��U��\u0012\u0005\u0012�u'ބfTZ%\u001d�{��M��E�/\u0014�����@4�w�a�S}��L��G���!,r~�yCW�\u0015�\f[�J�\n졶\u00155�a�9��շ���}\t�Nm�\"�\\����z���\u0002*6l�\u0013G�L%�'��f��~��kP\u001dO�F�\u001d�&��^:��G^�dzĞ��{�d�1�LԛN��ݧ�ե<�\u000e�\u0000��9�|Xa�<�\u0017]\u000b�L��h�c�_F~[�\"d��ې�2\u0000'�\u001aw�^�fP(L2�w��\b�m��NM3\\��Bʞ��e\u0000����ˈ\u0013��i���p��\u001a\u0006��E\u0013\u0003ʠt�\u0000:f�q�;Xˈ\u0002��\u001f�ߓ�\u0000��]��?1|��y4�\u0005�ݮ���Z��\tRUͬ���\u0012\u0005ȭ7�r�-�\u001fJD8�\u001el?�6�͖!��a���Ѧr�}gŦ�Nڪn#\u0001���̽�g��Ը\u000f�C_�a\u0003)U��w|?cƤ\u0010Y���I�u�$�D^.�v�\u001f���'6\u0019>����Ѻ%ݫݵ��&�X\\��� �!�P!\u0005�D\u0014\u0003�bʆ�[\u000f/6a\u0007��!Ia��kh%\u000b*Z�R8��a\u000b�\u0004q(�\u001b�9���@x��2�\u000e�a��3��}�\u0000���\u001b&9\u0013\\�5��\u0013Q�\u0015��D�\u000b@\u0014��B���~C�l�C��oʷ\u000f`ӯ���}�_Ϟw���}\u000f˖\u0017:��}z�\u001d����>�O1'�\"\u0004\u0005\u0015,�\u0000\u0016 \u001d~�>�O�z�L�M\b�)K�b9��9�hoNV�O�S�\u001a}4%�Q3Q�\u001bȞ��O���r��r�̿�{[�W�'�'�oY���)A��)��G�\u000f0´Y�{�I\u0016�0+e\u0003q_����^��m��-_�4�òq\u0013�\u001e�����G�1�\r�����\u0017��=��9�\u0000K�r\u0001�O��\u0011��N�\u001c����\u0010\u0017�o\u0018��)��}�!�\u0013���r\tJ\u0018�j\u0002T�X�BG\\��<�\u001c�y���伣G�d��w���\f�x�|\\]���v\u0007lN8�V�Y�T6O�5�M$�X@\f�:�4bND\u0006.\u0014�\u0010�V�\u0015ڦ��q�\u000bx�+���,��\u0016e�.8�\u0013\u001a$F�)Ee�F\u0002���\u0005h㩦V!NL5\u0004\u001a\u0004�\u001b_4�\"#q#F�zRq�\u0011\u00071 �\u001d\"��$��@��LJvӨ��;3�\u001b�\u0007D�7I��Y\u0001HnQ\u0019h\u000f\u001eKr\u0007/J\u0016F��\u0003�t�r���1ɷ\u001e�\u0015V���?Q�\u001e���\rֳn�����1#?լB�\u000b4ʥ�zqW&�j\u0003�*\u0002`�6g)�y�&\u000f��\\Yj_\\�t�ln��Fb���qUq�ȳ\b���?\u0010X(\u0004o]��x��e�ƞ�\u0006d��|���-���'J����1�f\u0019&m\"�p� �u\u000b5�r0h\u0002��6��P;�ǘ\u0004�\u000eN�K��|\u0013����O8躴\u00161��\u0004\u000byl-.�y�\u0013qmh�\u0002\u0005�[y\fp]B��#\u0001F�o��\u0013\u0001��1���l>O�u_�\u001f7[_\u0011z��X�hn\u0013�)F��@\u0003��[� � \u0012\rME)\u0004O'\b�r�_�z��3uԚ\u001a�$��\u000b�C}p�A�b�FgJ�\u0017��€*>�,r\u0013��{��\u0019�7\u0011T\u001e�i����<�kIc����H%���1A,ҵ \u0012�oA\u0001fZ��\u0011�1�1�ė0H�Vӿ?�Ǥ�\u001c0�ʶE\u0015�.3�\u0013,��,��D��5�\n�\u0001�l$\u0011ޘe��o�e+��~\"�xn\u001d7�ȶ�y��\u001d�id�/��xҪljY*\b�\u000eDz��V���6@_\u001f��z�m-��{�~�9~�'\u0012\u0015\u0001z0�d �X\u0011֔�r�c\u0003`����/\"���u]OJ�A�Tk���h,��a�\u0002\u0016�ݧe�\u001c�r�\u0001\u000f%]�t���;�\u0013.@n��?�\u0014�\u0000�!���;P�\u0000�|�o��O �ˏ!�Kr��[љyI�\u0019�1�%��X�^B�����\u0011��\u0003!(��x?�����s�\u0019���R���\u000fN�˼\u0007Ț���/�.<Ū��m�ծuM#Q���Q���5\u0003`��XMgs$\\�2��\"�\u0000�\u0004|\u00149���\u0019De�`|�_s��>\u001c勄\u0000w���}ϰ?.�\u0000�?�(��X��c���o%�חu�in�b�]�Ӥ�m `\rP\n���e�E�ᐁ�\u001d\u0006�\u0000��g�\u0011����n�[���?,��T����MՌ\u0017���5*��T��?���\u001eL��S�\u001d�k�g�r\u001fMǦ�\u0000{�LJ?\u0000\u0000�\u001e_-�Sտ+?�!��R��uV>O�4�������o:�{`��ֆ���(���j~��j!�\u0006I\u001cS��鵏1G��ߛ\u0016x�d�e�\u000f��\u001bw��c?�?��\u0000�?��\u001eg׼��s�6�j�\u001f8yJ����w���X�Լ��6����\u0017�M���4\u0015\u0000�c�ӛ�\u0000![�\u0012c�\u001b����lЈ\u00122�'��׸�G�~R�r�\u0000ϫt�;��п(3,n$X�>F�߳6��\\���~�z��[R\u0005ɴ�eK��D��˘�e����\u0006]4�,l�|2\u0015�m���:���恎X�\u0003���\u001d�����I�7�\u000091�\u000093�\u00008]k��\u0000�8�����K�q��<��u�\u00009\u000f��\u0007�\u000b\u0018;^8�\u0007��\u0017k\u0001�\f�,J@l#���\u0019bL�7�q�\u001f�=��\u0000��M&9���̴��2�7�y�$>�\u0011�2\u0002&��U�?� /��\u001d>�Z�ƭ�y�����f���h����MJ��\f�H���H�ʒ�CPi�Œ94�*_N�\u001e��#b\b�A ��0\u001f\u000b/\u0006M�\u0003���\u001eG����_�r6H|�k�/�}H5��B���O��GI�d}\u000e�,�b��+�L\u0012��\u0007SZ�s<厳Nk�b\u0002������u�J'U\u0011��m/#�ݿ�߾�7�/�5\u000b�Z\u001d?T�������Zqka\t/i<5h�-�\u000fUV\u0004+xf��\u0018�6��uV\f�ݑ�܀��?z��e��n�-5\u001b4�8~�u\u0001tEV��DwPE�z-�G��PQ��Q�1!\u0019�W��e�\u001c\u0004�V,��]~���\u0000��e��\u000f)[��\bu\u000f̫�M(��\u000e\u001e^�\u0011�c����D��R\u0010h~)H̄����=8\u0005�\u0000�v�˟��k�\f��,G�Y����\u001a���a�|��K�;�M#ʺp�\u001aα��/Gku\u0001\u0012���8��O�<\u0016v��&PUP��\u000f\u00102�*�l���'�u��6�^�\u001a\u0006����\"�\u001d���\u0000�~}��D�a�4i��D��~IX\u0015a\t�i�\u001d�L\u001d\u0000\f5K�,�\t��+�0�g`��`\u001c�\\�{���\u001b/�X@�H� �:\u001c�6��&��G�\u0000+;R�~���_��.��ܽ>���\u0018c��VSV�A\td=9n6ʿ)\u0018V8\u0000\u000fx\f�j̉��߿q{Xx��?�^��D�^����ϟ�gVҼ�ўW\u001a-��X���;�UX��(�R1�G`\u001a�X#Z� lt�|X���@\u0007M��\u001f��c\u0003�\u0014�5� ��\u001c�s��s!�) \u001f�\u000f���\r��b\u0002\u0007���^�\u0016��i�\u0011k���t�a�y~\u001d\u0013J�7�{��vp�V^Q�Ρ\u0011[=\u001bL��~��o\u0011Zj|b�����u''hK\u0018�J�9\u001fQ�&�\u0003�$�N�m�w\u0018�\u0000s�����^\u0015\u0018F$\u00012\u0005\u0000\f���\u00002\u001ef�g��\u001f��\u001f��C���kM\u000fQ��\u0016�_��R���r,�ׄ�kg��\t\u0010��B��@\u001a�D�z��� ��\r߳^�k;[4���\u001ffȑ�H\u0002v5�\u001dg]7�:���v�o��xc��r�\n<1$\u0003w���\u000f�m<�(n�v��r�Ο�v�k�[�h<�\u0015͞��R�펛���(\u001aѠI\u001e��\b���i\u0018��Ԝ�-/�\u001d�عc�C��0Y\u0019fx�qw�v���\u0014��{wY����d��xq\u0015\u000e\u001e��\r8�O��\u0000�\t?�\u0013�\u0000�)������Z�J�kF\u000b�=�C\u001f��vt�\u0017+#�\u0010��\u0015Z\u0006\u0015��[��\u0000�����LO^\u000fh�?Q-�G��f�[]�\u000f���\u0013�C����~�\u001f�'��_|k��\u0003�O�p#���q�W��V'�n��'��Zy���O��\u0013Z��Kz�+�b\u001coR\u0019\u0005z�=�ٿ�'�/�!\u000e��G\u000fiV�2\u0011\u0019�tI��h�-�o�}��2�M<����\u001d�\u0010\u001dI X���G�\u0000�6�/O���勛X\u0012[f��\u0003�\u000f\u001f\u0016�>!J���3���U�M�����|'��}���?haɥ\u0015������\\�����vVa���I��D��\u0017�QJ\nq�\u0019�\u000e��˩˒Y���_��-N3�\u001e?;|?\u0014���:���t�B���$�H¬;mO���9�b�Ò ��x\u0019�c��#\u0019�ۼ��\u00002�\u00000��s%���y\u001clT}a\u000b\u0006Pi�Spi��\u0000������\"#*���=���Ǩ�\u001c\u0001��L-?=�@����5G7�\u000f���FS����F|A�\u001f�X\f�Q������7�\u0017�\u001a� [�G\u0014�E#f\b�҆�ҹ���ڝ9�\u0002�t����G�2\u0016�_�\u0019Eݼ�К\u001e-�\u000e�%\u001cd�\b�d�G�\u0006�osMF7\u0016҅��}J�Q��]�{�!��f�ز��\u0013��&�\u0005�\u0014�_T��j|\u0014CZ8 �2}��n(Ek�,��\u000fV/��[�$����[~-\u001b��������6�~�+}�\u0017�\u0010\u0006ك�\u0006>��.N\u001c���so\\�W���\u001d7�zf�\u0005c��T��G���\u001d�?LD����5��Ռ���[�/Ϳ?I�y���!�/�+q�E�J������.�_;y���KO��I���?\u0015�\u0000�(�\u00004�0<���\u0000�kK���ɮ·�G#0[8f\u0006@�de��u�\u0011��ϖA��h|_1��?��S\u0016�@��vw�p��E���?���\u001e\\Ѵ�x�PZ�[D��\n�c�QT��\f��ȓ��ѡ�1c�@���Gp��jB��\u0005�r\u0010ӧl���K��\u0015]\u001f`~^�ټv��F4B܈\u0001���8�y����{.\u0010�\"\rl>o�,F�\u001b\u0007aCJ(AU#�>[f�Q�߳���w�y2\u0018�ғ�XD+�e�\u0017�U�\u0000E�\u0019M���\u0005\u0002:Q�\u0018�\u0003+\u001e�?�\u0019D�\r�ظ�ODih�K{�yT\n2�*OHߎΤ�I�\u0019\u0019lF��l\u001b=�\u0000��u�f>��\u0000�n-��,)R�Ҵ4��]c���9}_bU>�k\u001c�y\u0004)^e����v\u0014=\u0000�\b\u001a��n$����\u0016��\u0017�K9�3\u0001\u0011Pw*�CS�\u001e\u000b;����ٔZki$q#�\u0019d\u001b�n\u0007�5\u0015aM��\u0002\u000e��� ��R_�^\u001c҅ɩ`W}����p\u0011�G\u0019�ړ[[�\u001b\u0016kqAB\t�SQJ�mO\f���l�*<�dv��\b��H����=yR�镜f�\u0016���\u0010\u0001L��ݽF�^!\u0007\u0015C˦�%jj\u000e\u000e\t�\u0006C&\u0013+?El�su�za$�\u00187.\\�\u0015�N�lY�:�fSɋ�@���Ǧ�r��)E����!n\u0003�\u0015Ut�N��L�\u0001���xI�����Ml�ot)�Xn\u0012��?���\u0014�O�A�\u001c��\u001c���-��=<Ģn\u0003�g�h��y�D�(��/�\u0016DZ�\u0005��V\u00145��sS8�\u0019w�m�d\u001a�\u0017�tG{�/�}G�~S�Z�R�Du��LP�sB[�\u000et�H�\u000e�b�\u000e8���?_���q��9y�%�~gD@�.\u00169\u000b((?go�Z�\u0014ju�g�<�&�z����{&����\"��\u0005�k!BZ6J�\u0001?��l�ɦ�F��\u000e�Q\u0017+����\f�y���Lѐ\u000e,��A��P��s�\f&>� ���\u0011��}�k�Op-�h�z���\u0005W� �W(ˊ`qGb�i�8��9Q\u0007��?3?+��uW��O��S]�z��\u0000��izʨ�#\u0005�Ol�iu�.1\t\u001a�\u000e^n��t\u0007O��\u0018��%ο����_��`�\u000f��$���?/�{5��{qp�6s�~��YH������X��z\u0007��:�\u001a,}��:���\u0000�����������h̓\u0010y\u0018Տv�_z\"?��O[�����l\u0007�\u001f�缗��\u0003��cvlqL��\u001eSߒ_��X\u000fDG�=_NhV�2\u0010>\"�^G���Fo�`v���I��]l�z,}O?&~��\u00041�\u0001�t�BJ�\b�P\u0010\u0013��\u001d\u0007�jd{���\r��Q|UգE��`PO\u0018>�C�X��#fRz���\u001eR�D_��6`ڭ�v�>0�˻GJz�>\u001f��@�Ej�\u000e�L�����v\u0007{%��2��%��:�\u0011��\u0011\u001b�o���;��r��\\�\u0017�;M�š�\u001b�^�\u001e0�'\u0010O\u0013��V\u001c\u00057�n0�s�I��*��\u00008���渶G�Pd\b���\u0001Tux�jJ��Z\u001a�!�P!\u0003.��l\u0005����������\u001e\u0007�4@\u0002� �fD\u000f\"�򄡿F\u0003ut\"u\u0005J\u001fT !7\r^�\u001bu;fX-\\=_I~Wk0����ef�o@=U#�o\u0014�\\��B�j����Dp��/�4\u001b�E�X�@�\b�����m�XԒ8�i��g��c��\u001c��/��~����l\u0018�X�9\u0001�4�H\u000b�M��9�d�ۼ$�E���h:�H�Wh~\u0019�RX\u001f��5\u00072��dcժ\\�g���Ҽդj$��a[K�\u0003�S��o�f�I\u001e,3�y�u:��꣘}\u0004W�b�\u000b�W�HעU#���\u001b\u000e��M�jo�c\u0011q0�O\u0017\u000e[\u001fN�'��s,:�S�\u0000�Q���z�\u001c�\u0006�#�a�l��\u000b�o$Ɬ�C� \u001c�����<�\u0004A.\"�����=V7\u001b\u0018��ᡨ�B:g;��G/\u000b?��#��ʎ/\u001bx\u001a=�Ry<�o=_�I}9\u0011�\n�d�\u0001Q^�\n�5��<$6O�~�|�q� �(1���\u0010�;���\u0011햌����N\u0003\ts�H\u0011��m� �+��Xg\u0017\u0010H\rLr��\u00106\u0015\u0014�\u001d�r�y��ܲ�9���wRM�]\\j:c��\r�_ق��\\�\u0012\u0012�[�e�_LH\u001b\u0013\u0014�\tێl��_2\u001aN8��k6�C%�\u0013M\f��]ڲ]ƢO��\r\u00196�\u0019\"\u0004\u001a\u000e�xe�os\u0011\u0018�O������\u000bǾ�#!��30P/aPcY\u0011?d=\u001a���v�Yp���\u001e\t���\u0013\u000f%y�G�5��.���-m�ꖳ��;xl\u0005^�=Y\n�M6�7&$ ����l4��Y�ѐ㈢I\u001c�S�+���&�P\u0000\"$�.g����\u0000���\u0000�����]O�&_H��^V�U���s\u0012��_�p�s\"�\u0016_/i\u0013��:5Vy��j\u0002S��%{n{R���?��\u0014�R\u001f�f?����\u000e���a��_�?�:=�\u001f�N�\u0017�ycB'��N�?���\u001fN�ߔ4�uH�\u0015<�\u0002\t�V\u0002��\u0001�c�$Tg��\u0004�}�ɂ1\u0003ntȭ/��c\u000b)��\t\u0014�*�\u0005��\n+B�>y�(\u0010\\�hl��v=?ݑ�J\nT2=\u001b��n�u�\u0015�#U�e\u0010z�F���\u0014�x\r\u0002G%\u0004iO�^���.����\u001b�m�\u0015��*#T1��T��f<�⌿\u0011޽O��H��n�\u000e�\u0011\u0011j\n�����y&�2ʠ\u0016\u000fC��M@5�@���P�,�ڧ�\f�\u0012�\r\\�D�\"�:�\"�;\u001ae^\u001a%+\u00169R\u0015u#4�e��<��ɋp_��W`��\u0012w^��$�\u001d�\u0012\n�����\u0007Y\u0015Kl�:5x��|U���l1\u0011;������$F&\u000fİ\u0002�\\4m\u0017��͸�%:�\u00002;_�e\u0006��[^�fn��\"V@AV�\u0002\bR�G&�@�\f��^�\"knL�L(�4�M\u001c\u0018-�s�8��:�J\u0016�X\rПl2�LI'�4]R\u000bP�̩�\u0002}>h�����YT�\r޵�i\u0000O�x�n���Xx�X�@�0G�r���\u0004�|�!t�\u000e�v�@��=�J�vOl5�Ѥ\fѳ��Ò�V\"�n�9Z8��\r{e�\u0018�Lc��KF���8�\u0010�ʻ?�)\u0013�.�\u0016WB$YM\r(v\u0006�\u0019^La�5\u0014wْ\\k\u0016��+��9�j�ۺ�!V���1\u000eꜫ��:��\u0003�٦�LHmH]\u000f̚ޕ4S���@c���\\��^���R�\u000b�Z�5���9VI��\u00056b����}!���MA\r��L�^�ʶ:�J\u001f�.T;\\��Vv�h\u0007#��+����\u0000w���4�ȍe=\u001f��>M����\u0000.��{\u001d��I���ܱͥ�\u0015Ŭ���G��Ȳu��\u0002�A�#@Fv�A\u0011#��<�������s��F�f�o���b�j~_�����\b�V�:p��[;�n G\u0003\u0016f��B<#�j�\u0007\u0015�>\u001c�ǿ��܌��e\u001e��\u001c�I\u000eo������K\u001a�\u0014�����$\u0012��=�r�}5�&@��\u001a��|�kV\"c!�������l���%��Ra˂�\\Z�Nf:��l\u001bo�#��W\u0000;�7c\u001c�\u0005+�o�wf[�M��\u0018��td7\u0011�ԨG�W\u0013v\u0015��A��\u0016A�p�\u001c����@���W�ȋy\u0000��\u0019`yU&�ab�\u0004�t\u0004�CV�;��7�6\\P=E$�R7�c��u,�ȍo$�y�}X����\n�)\u00017%��<�\u0013���p�(��\b��u\u000b\u001dF\b\u0010�Yʠ�0C\u0018h٣jp�9%�\u000eR+�BՔ\u001a��S`���\u0007#��R�W�g��v���d��4�I��X�(�8�3\u0015*\u001d��G��k��Id>�F��1şę��/�7�\u0000'�5t�\rz{t�=\u000e���_�\u0012������>(gJ��J\u0013�a��5S�����;����GG�T\b\u001b��������i�~Y-��]��\u000bi-�\"��\u0018r�I$\u0007�Ʀ8�e\u0015�)�\u001a^ӎ�f\u0011\u001e�Ϲ�k�.zh��V.���o�g�4v�1_��\u001a\u0005\u0017$�����p�M^���9�r\t\u001fX�\u000e\u00169��.\u0012��;�\u0017��^c�\u0019��mJ8'��V�ӿ�\u0011a�����i�\u001a�}ĠQ�S�ݶ�e\r�\u0014Cv<�c|[�s�t���6i�F��7��+c~�<��H�VW�\f�ЊOV�\u0019E�\"X\u0010�S�O\u0014�%G��;ӗ0�\n��\u000eG����o���8y~��S����P�Aּç������Yl���T�5\u0007��\u0002�ͭ��\u001b��r�8U\u0010qZ\u001c�h�N$z�\u0007���?�'E���.9��x��#[���e���\u0000����`�>��4�|���5��Q�������k^]���M{k�J���]?Q�o�JJ�2ȡ�F�Ohjtٲ�\u0019�\u0013��+�\t�M�s�r{7G���әD�Ox1=\b�A�Gj��5_����m\u0002�V��\u0000�\\�o���o9��}��F^_~��\r��p�,�������\u000f ܩ�����,ؚ�K�;�\u0000d��\u0017�Q\u001d��2�>–цI\u001f\u001b\u0015�����>\u001c�Q�\u000f\r�o�\r=����:\u0011\u001d��я׊18&j�\u001e-�}��w���_���?�ߔ�j�9-|��=\u001ePՎ���}A5-j}&�T7v�:\u001b�^�d0��\u0018��D\u0005EFz�\u0000d�\u0000�ٙja\u001do�43�yaŌ����\u0000w�\u0001�<�\u0000�'��\u001e�R�K\u0006�\r�\u0018�\u000eZ�~\u0016J$�p�Oҝ\u0017�r��\u0000͚?������uޫ�$:���t��5�\u000e�\u0011\u0005��i��oym2�\u001bl�CCPF��t��&�M\u001df�x�h�o\u0019�\"Q'�,\u001a����i�\u0016~���G��W󦻭�v\u0016\u0013K3\u000f%Y7�4Խ�e�)\u0005�}w\u0015�X4ww�\u0002�\u0018\u0014�\u0003�oLqm�{��n�!���\u000b�\u0011&�8G�\u001f���\u001b�0[�\u001a�E����Z_�՜F*:��UA.��Cƃ���!�\u001a�Vk�ҙ���<8���>���޼�F��\td\u0007����ӈ�|M\u0003�^�o}����m�hn�E�lL\u001a�D�q\u0001n\u00066U���U���,�\\B��i9q�'\u0016����%�����o\"��&���e�i��5ť����\u001a����t-:9\rƥ��%\u0016��b\u0005���H����N\u0007&��R�1�S#�u'`ӓ7���\bܻ�E�ka�]��^_�o:h��g�?3�9�\u0017K>g�ⱻ�+ɒ��^_Y�:G��&Hfi��s5܁\u0003^�2I �$dbj��GU�C٦^\u001e;�\u0006��?VR\rnz6 G��c����8\u0006g�MW,`Ǡ�\u0000e+<���o�ͭ&����~M�y5�]#I:f����E��B����mCH�OP�����x�\u0013��j� �q{\u001d�\u000eQ>А9n��\"L���\u0003�e×m�r�\fQ1��q\u0001Q�\u000ew~�Fܟ�Z\u000e���/4jך��>��������{�P�w}u9�G\" #�\bCq�4Q\u0014Q��(\u0000\f��\u001a��4�njD`�\u0000#\n�\u0001�~��y��Q��ɔ�YH�<��m�҃�#ӵ�:��M\u001aM��k\u0014F�K\u00047\u0011;ǻ;�ߍ\u0006�\u0002�v.���\u001cY�\r�n\f��H�I1��o���-#���kV����Ŭ�\u001ch�\u001c�o,\u0013F((�F\f\b�;fT!�.\u001e\u001b������f\u000f\t�������O��o3h0���d�ξQ�V3���ޫ[\u001f�Q\u0019��Q��\u0007j�\u0019����5r\u001a�\u0005�����xw�˛��h5z(KI���9s�1�\u0019t;\u001e^�O�|��\t�\u00008����i�\u0000��\u0000���>Gק���U�L�\u001cZ]� y��\u0005U!��i�+\u001a�\u000f\\��������S�_i�-^�@�f�8�B�uw�e�دf;K[\u000e��\\�E�B���\u001bSkeY\u0014�'v\u0004v��i���4F�n\u001c�\u0015\\����̱𽴅��\u001a�Z��\u001b�\u0000\u001c��\u0000�i���s�\u001d6�VP\u00186��#��Qn\u0002(�:�NH�\u000f\u0013��9���5\u0018��l:�����\u0002\u0005\u0011��\u0007��\u0000-<��;\\�\u001c������-��H�t�ԁ�F���z�����\u001e\u001b�;\u000f��&^.\u000b�>�w$�G�u�,/��\u0002����M�˱�\u000e_���O���i�{G/�5'q���o%y��kRYAv�gx}9\u000b1hԶ�\t\u001b\u0002+�1u�\u0018a�\f�\"���6����'��r�Do�h�\u000fj������4������#��n�ɯ�g\u0018<\u0011\u001d\u0007R~<�з�WҎ�5?f8�SJ\u0010�R��g\u001d>D�ц�\u0007��7C�Q3��B>\u0011M�ڿ�s\u0003<}$\u0000��|�QywU�l�䇂��AerJSf�ֵ\u0019��!!���䏃\u0019D\u0001\">_\u0007��Z��� �d+@\u0011A\u0015a܏\u0001��Сe���%*\u0007���&�i�\u0004��*>*����޵��1�\u0012�ϔdc�\u001e3���ln\u0019o�XㄖP�B)�G~��A��\f|�3!\u0003y\u000eϗ����\u0016�s����.����<�!+5ȭ\u0010P�E��'evI�\u00192��'����a#����Ԏ���Ry�{˻�\u000b��J���UP��/�����\u0018���y\u0018�9$k4\u0015�9\u0001\u0014�HQ�\t\b\u0011���\u0007ߔ�F���q\u000e@�=s�Hb�U\r�37\u0016\b�\u000b7�J�����\\��\u0006^-_QlN��\u0011�M\u001c�!��yqa�a�Bu���#�DWF\u0012�\u0015t\t扇��r]c��\nB\t#n$�naM+Q��N\u0011\r�F^!�����ެp��y�\fX\u000f�H�\"E^�w�s\u0000.UA���'d�-^ic.䆍��.,9| �_\u0013'z�l��^�Y\t\u001b��=�\u0000��F�\\ r��s�q�FZ\n�F�\rv>\u0018� �(�Aɵ\r�K��Ā��dR����4\n��xTQ��$q�@12�?s0ҵ$h֠RE�U�����#T�۶S8Ѱ�c�j��ٝ��0���Ri�\u0017\u000bV��|*���e2�\u0015T�\u0018����s\u0014\\��\u001bL�j�=I\u0016�\u001d�^%k��M��f+j��.���­��ܚ�\u0001�ݾ\u0012J�F\\ nٌ�\u0011ݓ�X�>=:\"\t�\u001e��9\u0002���QU�f�̅���1�,�n�{��Q��6w(bv����Z�{�1����\f�\u001b��,P>�e\u001b�|+�\u0004�\u0017Sfw�~\u0010���\u001d�$�P�(2_�����\u000fg��Ho�~��S����\u00108�6�8ֱ��ԅ;�#���Y�&�L�;�\"8xo�¼��?�\u001f�=U'��[�;����������с\u001e���\u0006�Y\u001a\u001bO�q���og���\u001b�'��}/}q�o��_)�g\f�[y�b-\fS���\t�����2��51���3qH\u001f\u0007�r/C,�>��\u001cP\":��\u0007�>]������\u0000���\u0000˯0\\Y^��\u001cQ4���oF`\u001b�e*8�\u0011���u\u001a|��X��wx�f\f�,�\u000e@c!��ޗh^u���\u0001yDDref�#��N'�_lr`��5ǜ^����{����'D0L��T�\u001e\"9T\n\u0004+�X\f���D�9���,\u001b,�S�/�\u0013c�\n\u0003)�PT��\u0000�b�\u0001۹ʱ���y~>���B���\u000f��r;���\u0005i$����`� ��[\"���u�\u001a3\u0002��O��\u0006U˛+�\u001e�8\u0003 � FF�Z��c�\u0017#�\u0005aAA�j�\u00127G�����`n\u0019\t��sꣳ/\"\\ԽW�\u0005��A�k� ,�n�l+�\u0010�����k�w\u000f\fK镔��\b�3�G]�\u0003���=�Hw~>䰏0�\u0004B5\u0016��-�\u0016%`\\�7�!�P�\u0007r\b5�dI��\u0017@}�\u0000���#]�J�`�0^UwwUr\\�N���ڏ٧Ӈ \u0017�}\u0011��}\u0003V�P���C3��1F\n\u001aN��_M\u001b����\u001b�6I\u0013D��Ď�U��7:E�v���\b��V)�J�ICA�#���C�\u001a\r�a�s\u0013�C|v�9����ƻ\u0013�K{�Q���hh�\u001b\r�ē�/�-�,�\"(}I-�\"��tedU\u001c�\u000e($^�H�R\u000fߗ��k�=�<���W\f\u0012�O;\u0007��DZ����\u0014�l\u0000W_�15�'\u0002k�~>N�I\b�~`���ޣ\u001cs�\u0001zM\u0004����n\t\u001b�\u000bZ\r�m�3Tc28�ǫ��ԾA�8`�Y����>.�ݏm���YI�n\u001c���j\r\r�ժ?7���\u0012��N~.\u0003�\u0000���r�\u0013.\\�L�G�_^�g��\u001a�\u0015-gs\u001c�A�*�\u0007���ћ}\u0019\u0011�ý\u0010�����%�2��{恫G��Zu�\f\u001a��ӎr���6'����$N,�G���ׄ\u0011�����\u000fh�����An\"75��\rG��虉䜢9!\u0003ב~f�s��?/%$�W�<��-G�\u001ev�ƥ}�]�����k�Y|\u00124�D4�F�\u0011�hIބggٞ�g�L\u0018��2F\u001al���_s��}�����E��4I�L�,{�?s�J�\u0000���\u0000�����\u0000����ѿ2�1�\u001b\u000b�<��K�4}2�l��\u001f@{�V�O�b�qu$���+\u0016r\u0007@)��؝���3��\u0007� \u0006r'y\u0011��\u0001�\u001d\u0006�Y��\u0011��O��=;\u0001\u0010#�\u0000��l�ƫ\u000e�a�k\u0016\f�c�A\u001d�e\t�\u000e���\u0007b�iL�\u0006P��:�\rY /�D\u0013�J+��\u0013[lQ�K+Q�\u001an\bm�aM�NB\u0013�L\u0003\u000e�`\"c+\u001c��\u001b��TJ�j\u0014�)a��F�vE4���5�;3G;1�\u0001�����f��cZƙo\n��n\u0005vX��Y�\u0013�,e\\W�s\u000f'd�s���\u000b��������-�C\u0019*�O\u0018�\b�!�^��׿\\Ŗ����H\u0013\u0003����tc�{\u001eLJ��Fo/j�[��Im/�Y�\u001b�9�Y���@c@��캃�\u0006-~}<��$\u0007^��le�ǐz\bH<����Csaxn-\u0011UโG{���Z;��\u0000��xk�х<\t\u0014͉�\u0001�nȌ��9X;p\r�\u0003\u0013^�s*��.+-\u000f\u001a1\rD*>�J���k3vD�.;�m��#*��3��|J�`���c�J0�e\u000b�z��\u001a���ܝ��|?\u0014�0��,��ڙ\u000f5�\u0002D+\u001e�\u0002�q(zr\u0004U�ď�O\u001c�:RO\t\u0016\\Ѫ�G\u0017 ���\nѫ,�mֵ^h�\u0010\u0006 )N��u�\u001c\u0006'��� F�\"\u0013^�\n\u0019\tj\u001d�T�$� lթ�\u001d�8~H9��p�Ɍ\u0019d߁T0\u0005\u0003�@\u0018�Kp�{�o��M��f\u001dQ\u0016��Q�\u0019&R���h\u0015G�\u0014���\u0003P�H��\f��m\u0019`9�)�շI9�@jH\u0018q%�Z\u0012\u0007B����C��.���\u0013ܨ��\u0006`�\u0006@�J$jFA�R�\u001b�+�\u001b�3\u0012\u000f؎ N��;-R>h�\u0014I�B�P#ZT1n��5\u0000\u0012@?t\u000f\u0011�[\"�\u001f̩edR�Č����/�\f�q\u000b*���My\u000f��|\u0012=\u00038\u0001� �]S\"����\n�\u0005��wR�u5ڟ,F\"M��w�\u0018��*\u0017�rW��B֌��K\u0000\u0001�\u0000��rb \u001e[���֜C�!\"4�\u0003!,�+F&5\u001c�\u0019��S`(��,#�@�h�+�\u0012-\tB�Ÿ��!Uf�T���f&H˩g\u0001gvga���8����\\����<\u0007-�\u00005'��,����\u0011\u0001���l�U�2�\u000f ^Uޜ@f<�\u001f����l��7&\u0011�2�\u0012x�XBB\u001f��\u001a���i!e�>�\u0012(>��2\u001c4�G�#R�5\u001f/��\u0019d�Ů\u0015������#\u0014/\u001c{��}���xa�Gf9g(���蟕�\u0000�\u001e`����R��\u001fQ�/bkMgA��I��\u0006�H\f2rT\u0006\u0002}6C�0ڔ̃��T��j������>������)�^��ԍ�����W�\r$GQ���h��\u001b�{�R��Ǜב`6\u0006�C$9яJs��\u0016[�3����E���W��ZňmB��1s\u001a\b�T=K[��\u000e-\"+n�-\u0007��P��\u0016x�K��I������\u000b^iV7�[\u0011!�\u0012#$ʁ芴^(D�KWa�\u0001�\u001e>��\u0019\b��\u0018&��\u000f5��<�铈YEy\u0005��*����*��\f�sZ��Ďn.A�&���%_�?���[��Z_\t���Ij\"��E\u0012��I\r8ր�B6�D�p�ч'\u0016`$�_�/�8j�`�:_�-R�[�x�u\u0018-\u001a�\u001bb\"\u0011�\u0002�B�'%R�\u001c\u0016ޕ\u0000�Zx�\u000b\u001b�\u001c��c��\u0013Q�=�_��\u00003��䛍\r��k)�.o��ƿe����\\\u001f�D�H8�mk\u0002�#9������h���԰ݥ���YJ�4wv֬ޤ6�\u001fBT���J\u0011SS��t��C �\t\u0004\u001d�㛛�Ϥɧ��c�/��\u0013�\u0000�?����+\u001d[ΧL׽-#��G�%��\u0019-��d��9=\u0007t\u0017�L�\u001a�\u0015�EA�o����\u001d~18J<&�m������v^<�\u00004\u0019x$%ű�H��u�����\u0000�8�\u0000�����u�\u00008�K1�\u0007���e�rȥ�����E\u001d�i�h�`�xn\u0000Ү�gH�\u0012de\u001e���n������z�v��z��r\t�\u0001�ÐP5�\u0011�K�З��v�gO��\u001f��$5x�\rL��\u0003d\\2}@���{�?�O�ȟ�_ �\u0000ϻ�\u0000�$���5���GԵO��FK?/^�Vӝ_��W֬\u0012�\u0000��j�M���c���&�R�VX�(+L���\u000fm{\u001b�}����hgå�N(d�M�f�.\u0019����U�\t\u0011�{\u0017�/k}���gje��4%��e\u0019\u0001@�C�$��J�\u0010\u000f��b\u001e\u0003�����\u000f������\u0007����9�\u0018\f��k\u0010iwQh���|\u0017sMactc�K�.�Yb\u0001�E3?W�\u0000\u0004Ogty\u000e,\u0018uZ��\\Q1�2{���<�o$=���@�}F,\u001bم\u0019� w�<��?.���<��\u0000?���K\r\u000f�o��\u0007C����o2\r���\u0012{�\f����㗃\u001d\u0007�H�g�fT\u0007��]v��v\u001f��\u0000���\u0000��'��m;�~e���<�u�ΆMW\\�����g�� �N��\u0000��5%1��\u000fqQ�\u0012�����\u0012�\u001d\\�B�\u0011�a\u001f��\u0002�\u0000\u0016�s�^\u001d8#E�\u001e!�I��\u001d�M|w~��^�\u0000�&y���M~\u0004���?[��w���\u0015a���*�K�]N\t�\nG�x)�)C�\u001eӎj�2\u0019EQ�\u001e�\f4���Ȟ���\u001dR?��Ý\u0003Q�m�[{O%k��W3\\\\�[�>_�Pg-��NM��k�_��DRMS;\u001e����4��=W�F�l\u0001>��螵�\u001f����V� �L_��.t=$��t'�\u0015�\u000b��I�����\f~W����ߗ�Y��Y�\u0005���N\u0017$�}��q�����\n���� g�h�KE�\u001as�C��\u0003c\u0013���(�_s��}.A����\u001a�@�iF���X1��䔣 \b��Km��!��\u0016Ey�\u00008��)kp]j-\u001d������ާ+�=b�\u0019�R�\u0011%X�hMA�KO�6YC�\u0007�WD\u001d���^�\u0010�#�\b\u0002\f�������{g�G�|դΚߖ�+�xaQ{\rΙp.�&\u000e��ĭ��Z�\u0006�\u000f|���cM�����蝈#��]\u0017f䡛O#�x���~F�����{�rfY���|�\u0000j�����7��\f��Y��8��v�*��epd>?fK�/>\u0010C�vW�s\u0003�\u0011�Mˊ����}����'k���y{S���p\n�#��\u000b\u000f��Zg��4��,�u1 ���\r\u001e�\u0003&�q�3�d��ɠ\u001e���*+J�\u0015����b7�>e���\u001b�dU����\b�*\u000fF�Sڵ;nr����Ŕ2J\u0006��4��!��Y5\bc���s�P� �r5���N(\u0019ˆ\u0006����#�7�\t`�>��K�\u000f�H�u\u001dr��Zh��-<\\F�J�ۭ��Z��+^;���dv���\rl�&U�s�>�{9�[�.n��\u000eA\u000b؀8��[��'k7�Z�_H�\u0005�����F�QJ(jsV��4\u001b����qk1��iq㧜�.�C����~\u001e�\u001a���_`�-�����\u000f\u0016�J�T�#�{�#8Z�<�\u0017�$!�N$=4�H#5!�p�**�OCߕsq��{���\u001fG��<��u>J�n\u001c�[��7�u��{�~�Oz�\u001c����Dh�=>O�G�~\u0013���=cU�����_��W�����x�]�3��(��\\rؓ������-V�s\u0016Dq���_���\u0000�\u0000y\\�\u001eM��\u0016�w�\u0000�B�GZ���\u0010�;\u001e��53��d9&I������\u0000)��\u0003φϼ�'̿n������q�;\u001e�\u001e\u0019� �\u000f}��\u0007�z\u0005�ǧ*Ȁ\u001f�\u0012<7\u001d=��(�.\u0004K���b)�^R�4Ԏ?^����h�p;�\n\u0002\u0007ќγ\u0016C-�G��f�#s$Y��y_�,��-I����XqS�u�v�\u0016|FP�wz\u001d>|P�\u0010����w7\u0017wztW6/��#��z\u001a��N�3R\f`H�7r|I�J7����\u0000������\r~��Z\u0013��k�\u001c���\u0018�-m\u0014�\u0011���jB�ԏ\u0013�gavt3c��_�c��y�_ke�O�X?Ƨ�����ާ���a��-s\f\t&�r�=K�B`\u001e�ݻ�)5�w\u001a=7�S�\u001eO\u001d���㎜t���I��\u0017X�\b�(Q�L��G~[�a�fd����N,2\u001b\u001b��_��\u0002y?P��A\u001bPҧ�\u001d+^��q\u0010vr�k\u0002��Ө4NZ6�dj�h�\u0011]��\u001f\f���z(�]V�U֤&i\u0001p_�AT�j;\u0013����p�%�?P�o)��I(�+pS�&�b6\u0019\u0003��<����-�r#.�zo�j\u0018���4\u0007`G\\�P7]\u001b�1\\Q�_2\u0017A�b�(�\u001b��\u0013�'�A���n��A`��hYu�f-��}\u0002���ӍOj9)�~�\u0000b�y�\u0004\u0003'�&�\b$7.���G�=\u0007H��V\u0011s\u00112/\u0010�!*��R�I�(�3\u001e@�@�ˑ���/T���W��y)���\u0016\u0000P\u001a��\u0013׮b�\u0004\r�|d%��Ȗ���\u001bJ����H\u001b�{�\u0003je|1򠤑��\"\u0019���I阧\u0005d$\u0004fZ2TR��\f�}���\u0000�ɿ\u0016R,\u001eg��\u000fL�5\u0016*�8�[�2���Njv�O�b�\u0011��9س�\u00024:~>�ck=���,���U@\f�\u0005Y�?\t%���Y��>N~9b��5w�FI��Hnl&x\\\u000f���k��_���\f�G� ��3�%.<$�t�Ҙ��d��O�t\u0005�ZT��b���K\u0001�x�\u0018d�GbYc�d�韫�L��<�戄7�6�\u0019\u0013���\u0003պ�iZ��^l&�Hre�M�\u0015�1���̵���{+�׼��I��\u0016��*\u000f����M�\u0000>����\u00120�u\u0003�\u0005���(� �h'��\u001d���}GH������̍.\u0018�4���X� *�\b\u0012�\u0003r{�C��ͤ>��2�\u0006�?��X����0?\u0017�~z�r�\u0000�;����yu�.9u=\f��7v�\\\b�J��+���gM��,\u001a��ΆG��>��vq�b8��Dr?����K󖣠\\�BYU��\u00131\n\n\u001f���\u001cϞ�d\u001c�u����\n?��_�^��L�\u0015����\u001d\u0013�\u0011�\u000eՠ�#(M(Z�\u001e�4����v��4��䅎G�_�\u0003�����~�<�\r�\u0017�U�^W�\u0011z��ȢX�Qgp�,W���M\u000e�6\u001a\\�͇®\u001dDy\u0013��;�\u001dv)`����KK[Ǖ����>o���a���Ǵw�/���s��\u0002+��og��Rе56װ�Ȕk�\"`>*rR�����Y�\u0013\u0011\u0003U�\\���\u0007���e\u001d��c$e,�,��ٳ(��\u000fK�������۽N=2�-*yQ�\u0019��x���ȿ���EZY�iQ8��\u001c�\u0016HN\u0007.]�\u0018�o�\u0003{�\u0000�k`4d����\u0004s ���\u0000�/�\u000f�ß���Q?�~V�5���/2J�{���+\t[̚�)2X�P\u001fKD�1� =\bl�N��ϴ��u��f@���\u001d�>#��/�{-�'��\u001f\u001e\u001c��.g���yr\u001e�F�<�}3w4M'��̑0��\\‡ea�X�\u001fy�nA��q��x��\u0013ʙ\u0005��QA\u0003FX�\u0004��`�h7��\u0019}�Z�,�;����\b�\u0004s)\u001d�=���\u000by\u001b�� ��\u0003�9Sfy+Ў�1e*<�nQ��m{S�\u0010Ib]f��Ւ`h��G\u001d�\u001a��<|3\u001e&���P\u001e[���\u0000��vg\u0012W��-\u0010j���}�Gj�l�3j\u0014<���/]\u0013*En�����R\u000f�E}H�\u0003�e�A�L^�a��Ր\u001dK�5�\u0000,YysR�մ��m�7�\t�\u0015z�9#�^jjF�Sj�K\u001c�ز\u0014C�#��V�ᾶ���`\u0013z����qUev�pI\u000b)#�a��pb%\u0010G�\u0013\u001f>O�����XK���FO\u000eD�\u0005�Z���\u0014�@��N�����i�\u001b�>Q�2�d\u0005��G���lʄG\r�h����\u0000�7�\u00177�\u0019�J��1bB4�ۅ\u001d\u0000�7=�\u0017W\u001e\u001ce���7��k�k�Z�J�\u0005��2���2,�!\u001c�O��ٸ\u001f�14�2�a!��H��K�_s�O�\u001dgֲ�W ��様bк�P;�f�Y\n�\u0000ӕ�շ0\u0003�,��`�K��\u00003�?\u0018�R�z�s#\u0007 \u000f*a.v\u001e���nt-R֥�6�:WqA�\n\u0001_��<2���\u0007�p�\u0002�Ly_ɗ�W��\u000b\u001b���)k�\u000fC��!��#�\u001c�ou8%�\u001f\u0014G�n�0�'�-Ŀ\u001f���J�^[ԑ؁b�]D��,.���\u001csZ%ׯ'4zcD��~������o̟��I&�/��/6H�\u001b�0ͨJ��vڑ��{�e������C�|�'�|��2;�q������0���2s�c�\u001eB���+\\���[�.0#]\u001e��\u0007淽ҵ/'���\\i���2;\u0013[Fj�\u001a�\u0000�ߢ�\u0007)�Ƥ3��Xa\u001cP\u0010?T~�I}����~�\u00153�6X�݁�H\u001d�c\t�6��(\u0000w\n�$\u001377��q�<ӹ�j��\u0018����3\u0011\u001ei὇$�V�t�\u0015iA��,��\u0018�J\nV���+�/��\"\u001c�E�\u001e`�\u0000i\u001e)l,�^PE\u001a���*�.=J*F�����{s\u000e��X?y�l@�G����\u0003��h�1ǐ���O�ta�\u001f�ڮ�u,Q\u000b�U��*i�Ku|Һ��\\ݺ7\u0007�n\u0002\u00003��굺�Nl�\u0000�Q�n����@i�\u001a�A���v2?�\u0016.滓V���\u001bj?\u00135��+�ICKÌ&\u0004�?�Q�\u00181<�3U�\t�!�\u0004�\u0019������\"�إ\u001e\u0019��a\u001f��\u0000��\u001aŬVv6څŦ�q\u00037�J�\f\u001a�C,W\tl�ʯ4���ʛպm����v�\u0000H���lc�\u001e���\u00173�a�Ő��rW2v\u001e[�{�?:�6����ou�*�^LX4Hl�\r'QЯR5�!�ӵ\u0012C\u0004��#�\u0012���3�vϟ1���~� �Fq�\u0019��G�\u0012\r���ߦ��C�ݭ��4�!��\rq\u000e/�\n�~���1�6?��d���g��4�֚\u000f�t�w��]j��oi\u0011��>J���Ίz�q�x����)qb\u0012��� Y�~�E�\u0006<�\u0011�\u0012�4\u0001�d�>����O��K�q�S��ɟ����Ϟ����զ�6���k�[��7A��\u0002+Kkk�cY�����z�qzh����\ftZ��\u0014\u000f�\b��o�\u0011�<��\u001d\u001f[��\u000e}���d'�\u0018e���#�fR��<�8ƨG�n��{����1�\u0000��~|�\u0000�s���e�3ΐy��\u0017�j������\t\u001c�b窼�5����,�Ht֍Vc��\"�� ��x=��h��=��H���,\u0012c\u001b$�q�S\u0019U��\u000e^Q�?�?��je������2D�D\u0013U�;�k���\u0017ο�?��m�\u0000;'��;\b�X\\\u0018�kz.��Ȕ�>\u0012>Ҏ������u����r�Q����C��K��2\u0007&H\u0013�s1�\u0001�k���6�b�9ԩV\n��\u0005\fZ�\u0002�t�z��8�\u0019�X�qӛ����4���C����\u0000�/,�0]G$.��U$0�\b(��d\u0014�\\\u001fɸ3G�\u0011\u0004\u001f�͘�����\u0018�����y�0\u001c� ��ܸ���Ԧcϲ��\u0000��ˇm�'9Ra\u001f�K����%\u000fF?��o��t�1�ٔ*��v�%�Z>\u001d|�\u0003�Aj�UA\u0015#}�\u000fA���g�\r�G&:��pS8��B\u000f����\u0012>\u001e]\u0007��>G1��nnF=a��-5�\t'�\u0015�X�mAO\u0002��P\u000e��e��\u001f7*\u001a�\u0013X��$7>\u0005v�wP\u0005\u0019�y\u0015p\u0007�s\u001c஀��$�#$�&��zT(R#n\\�aF5+J\u001e�\u0003!�[��Dy(\rNe�\u0012V\"B\tu�nC�\t�\u0000-\u0007^�/\u000f�ǖ�G`Qq��j8�֔`���,��\u0005\u0014�B|iC�8�2\u0016:�\u00073j����&�\u0000{\u0004`\u0006�\u001d��Ӊ\u0001�\u0004�\u001b���Aa��2G`i<����[Ku\u0000�\u0012�� �P\u0003�:����ʲie(�\u000b~>�\u0003�Ag:_���Z�sj[�2��U`�;Q���I\u0014ڹ��M(o!*����F{FQ2�\u0004[9���\"���!�+��V��\u0000����V�\u001c��8��c�U1-ޕ�곈au\u0006\u0011��@�ЭW����\n\u001aTo���c�}5��Ũ��Ցj���ͫFo\u00038Ee\u001e����9P\u0000EUi�O�#��l��.l�C�y�2�eu��,�\u0019\u0018s%\u0010z���J,nEjG@+��[��K����\u001el���k�u���lu\b'�kvqΎ�,��A��\u0000q�H\u0019q�\fN�Ն\f�\u0016A��Җ��X�������V�Q��W{��\u001ev�f,y<��j�+l69\u001f\u00022\u0000\t��ϏhB\u0012&Q$�7FZ�\u0000�m�~U����g\u0004\"!l-��G���Kz��\u0012@�X~�^]v�:|}M�ތ�� }1�������H��\u001c�^a�!�.na1~����e\u0011�}Gu�f9fr�\u001eT\rJ�r�\u0000�C��˛���\u0013�\u0011�YIc��]k�\u000e�m�^Z��[`�C��\u0011Th\u001a7\u001c\u0004���ܖ\u0014 �u2�\":S\b�L��VR/1�w�G5ԆHn�)��C\u001f�9\fe8\u0015�\u0016�=WaAn\u0012\u0007>�\u001bTe(�W�yw�P���>`�|��@�~�\u0012̑�Z\\ظ��'W�_B�vW�\n��IS����\\�y�<�Dm!��R�\u0000�1�\u0000�����f ��D����5+\t&�X]�\u000b\u0005��ׂ\u0019H��\u0017\u0016Q\u0006��s$�i@�,f*���{\u001d\u000f}w{����F,���\u0011<��O������İyt��\u001f$��W��\b��\u0014b>z��urb���\u001c\fʒ\u001bi\n�‹�r�\"k�j��!9 v����w���8�6�X���\u0002;�\u001b[���s��}��/��K[���\u0000ȋ�\u001b����X\u001a=L\\+C�?̛�H#ht�5�\u0002I4}]�EK]f$cłܣ%\u001di��n��e�q�/e�\u001b���.��#�'�%Q��eDU�\u001d���Y�\u001c]�\u0018�\u001c���9C,F�r\u0019\u0007�=D�)��~m~\\~f~Hy�S�����f���}\u001d�w�k֭\u000b][r�A�h��[\rwC�\b}\u000b�W�\u0019\u0014V��;�\u0006M'hi�\u00005��Ƀ��(���\u0013�%�y�\u0004�ϗ��\u001doe�?'�\u0018�QV\u0001�J?΄�Ӂ�ty_�\u0003���S\"�ʧ`7#o\u0003��6��^�\u001dQ�\u0011�t\u0004ڣu�U�\n��\u001a��\n�Ȇ�u\u001b8�5�;�\u001b�R�����@��wA�7�\u0007�����F\t�.�8�x�LG����?��\u0014{�/�ev\u001f�:�x�����bA\u001a�\u0004Ă�~$�ʆ���\u0019�41���Ȟ�QvX=�9w�\u0007\u0018�\u001b��y;���\u0015]\"�\u0004[�W�b��u��\u0017(�7\u0005��\b�=�K���ؤ|h��wO��Z\u000fh4ـ�\f�\u0017ߵ�{߽�\u0000����-f�@�7凖5�0�>d��\u001eb�m+ʤ��D�V���\u0004���i��F����X`\tB\u001c��P5�\u001c4�\u0011�z����L���C�&�\u001c��}��7����ُl�N1��R\u0017�㥗�%������r\u001f��\u0000X�\u0000���\u0000���&����\u001dGH��ZʝjO-X�J�-'A��i1���j\u0001����\u0005G*\u0000G�{#�\u0019;\u001f�1c�h_i̙�\u001cW\u0011)\u0000��\u0000\u0003W��*�q��h�{.���á\"0�(�\u0001\r���=\\��\u0014�G�����7�,�򯕴\u000f/\\hp�3�hV:v�aq�]��-N�\u001d>��\"-�*\\ F\u0001\u001d%Pj���F c��3�û�\u001e�o�p�d��#,�7W�����\u0003��C���\u0018tX.!v�H�m;�f�%�[�-\u0011y\\i�N��7qZ�Ya�~��EE)�x�\u001b�f�����^��YҘ�\fTc3B\"�#s\u001b�� y�\u0003d��O\u0012\u0014��T��7f��Թ[�4Ja�a��֢)Q�=x�\u0014�6�c���* У��\u001e�\u0012ZC�Ǧ> j�}�|���V�I�nE�_�8�d\u0012�\u001e\u0013�$\u000b!���\u0018g�%�;\u0006Q�,ǩ�E\u001a\u0011�˟��^�\u0019t��\u0011��F�$�|9\u000b᱿���\b���\u0015\u000b\"Mq�\\G\u001f7{�C\\i�:��\u0007���N]iU\u001dv�Ö;�\u001a#������:��e�\u0004DxI \u001a�}hlyo{������A3��t�=8�#>����\r�Tf���$Vu��\u001fQwq\u001a\u001a\u0012\b\u0019��k\u0004EKq|���'Y�L,\u0085��\u001b�\u000f��t|������=yFm\u0017�Z-�����;K$/q�_3��6��\u0006�M&��E�\u0013\u0000���J�M:���=F�U\u001dN�f\u0019\u0007�z�t�)\u000e�w����\u0006)�8f\u0004��W��X\u0013F\u0007ncn�\u001b~\\�s~]y��V\u0015t��R�f�qqo�y��1+̊H�����Ū*t\u0004񖜗�\u0019����z~�<2Ꮎ \u0019B���C�w�\u001d^;_�ɣ\u0003$l錌c\"+�Lt�w��q\u001fʕ�}\n�^���+��N�M5��\f�Q�B�\b`ON����Na\u0003��8�\u0000t\u000f�q��r}��c���(�]j��i\u001f��\u0000.�ki4��S_����,�r7'\u000e��\u0010�����5\u001a��>���a~}��I�.�M)��a��w����\u000b:�����^�~��yZ�Q������cw\u0005�X �f�,�R6sAR<3\u0003\\g�S\b�\"Q��o��f����r�3\t\u0013q\u0004r\u0007�>�׿.�3 ���K�=��n%��\u0017�c8\u000b,��6ic��'j������`�\u0013�\u0001r��p���\u0003��d��[���G�W~gi�1\\�k��\u001a[ߏF+��\bg�\\�GrȩӥGn���=.L�FB2<=*ǽ��f�K��\t���{�?\u001f�o�\u001f,�:�ޑa��{;Ask\u001dю@����\u000f\u0014�\u001a�O�y��\u000e�NX�\b�\u0003]���d�\u001c�h��\u001f�����Uy#IX\u0003U Q��t�'\u0004��<�IN\u0019\t\u0004�Y��5��wg2-�\\����#��\u0014w\u001b����\u0012�'ʹ�j'8i���. @�|�m�1~X��4�Z܍\u0013T\b�\\\u001a�Nv$��B<\b\u0000t�t�pi�GLr�?��O/'�í��.�:]H�\u0000\u0002�\u0005\u0011�]l��\u001d�\u0000��hg�4mn�ҏ�}\u001f\u0015Y\r9\u0005$R�G�[�Ҕ1�\u001c�����H�&�\u001ehרs\u000b�\u0000/<�;۝2�f�~\u0014�T\u0000iN����.�O\u001e?\u0012#g/��R��%w���pI\u001aX��%\u0006��*@,@�ڵà\u0004ʗ^j\u001cR/�_��\u0000�\b��*_\t.�QQܖz\u0005T\u0004�MA�\u0000ίE��/��u�����+��~|��;��$��M����\u0006<$�9\u0002���c�����uq����s���[���\r\u0016MV]��U� Q������V˥ysA�/\u001e\u00166��o�S�{f�r�l�=����\u0001.|#�~�y:A-���\u0015h�~���)�c�k.�\u000f!�OCw\u0011�`�ˏQ�O\u001e��cK{�v0���n5o�'ՖN.j�\r\u0014���s\u000f,a�x�9P��o�?/��9]q^0ʪ�\te\u0004ӿ@G|�;@�\u000b�ϫ��o\u00185�Ty>��5�='GkP�Q�\u0010�@8�'�9�\u0003)��޳\u001c�\u0017\fm�i��yf��F��&Y#�֚&[\u0004,$�\u0001�'U�G\u001cD׶�����ͨ��\u0014�\u0018\"�/�����9ko�9��y_�>g��n�[�i�.d��$�j�R|z��!�\u00146��rK.L�-�����;[Q �Zb�u4.w�:)��j@�\u0001:-\u0017\u000eI^�˖,g���!�� �B2j-5��R(�a��\u000e\u001cX��=2G>Gm�\f�yP\u0003����L�;���>�֦��P�J�[�i�թʃ��\u001ecw��4�`�N��\u001c\u001f�(�J\u0000�,t\u0014P��\u0010\u000f\u000f��^]�<��2MV��Ş\u0004�U�d�y�O�:�5F�\u001c`\u0013T\u001b�f�D�s�\"���.\tT�4>���tnL\b^D��WZҨE@��!f��\u0001м�Wyl��\u001b\u000bEr�\u0002�B\u0010� �:I��*��Q�\\��\u000f4\u001e{�6���\u0014Y�Q�0gW��4�Ї�@\u0014�#�\u0000�\u0011����2vc^t�7p%����\u001eDA����TH$�y��AJV�=2��4?J�~\u000e���\\��s���aF��@���l?w\tv�V�\u0006�Q��U�$���\u000f�o�4������4�h��\u0014~@r*�����-�F\fS�S��3\u0011���Zձ�*�#,�m���iS�?^g㿃�+\u0003�ٷ�w�`���;K�8���\u0019��B������\rM(k�9�x�LG�M�\\�9\u0000�.@�������Mn0�\u0013��\u0001$\u0013�\n�6��M>>=}�2͈�y���?sۿ+�84-E�e�n��\u000e)5j�U€��X|�c�,��T��ؽ25��{$�k���\u0012��\u001c�]��mo'�\u001a�z\u0000\u000e\u001d.N(�\"�~�lrF�ڼ7�[H�^\u000b�iR\u001a6�d�����?��'� ۏ(�D�� ��jSX�8�\u0019���*k_�Jv��3���8\u0003Ѐ�\u0019'(حf\u001f��[��\u001f9�w\\b��<��\\LkB�k�����}����N\u001c�\u0012xd]�uC&�$�\u0011�F\u0007�v\b�N�&���v��u��CZ�\u0013Z���Ĥ�z|/�9�\u0004�\f]��\u001f�p�����\u0006\u0019\u001f\u0012B]h�3�PVK�w\u0004�I��U\u000fߖb�Po���y\u0006�������'V�`c��`�\u001b�-��\b�B+J\u0000yo�fo�5\u0018e\u0019�s�rK\u0006`h\u0011׻������O\fmlU�T�\f�����\b�B�4�$gF�0�e�E(�1�km:�\t/o�J��\u0000^I\u001d�B\u0014m�\u001f�Z�d5\u0019c\b\u0019̈�s'��R�\u0011�\u0002\u0002̞���K�^9��o�k���t�\t%��+�D.\rVK��R��%6\u001b\u001ar=�ڙu �ғ\r?S�R\u001f�y\rܼp�#�0\f�\u001c���E韓q�\r�Zl��R\u0018��\u0019�R��ۧ�$�:��U\r�%@\u000bBO�)�Ŏ0�\u001d��\u0016s�9�cd�����n�\u001f(�5M=彅�4\t�\"Jځ��P���1���H\u0011xE\u0010bb�/s�9g\u0003>\b�{o�����?�\u001b�Dx�A�!u�P���\u000e��P�g�q�I����z\\+o��[Ao\u0012\u0007��\t\u001c%�>��\u0013�O�\u0007��\"�C׀�)�\u0003y\u0001\u0002 ��]y|�\u000e<�\"#�܀�ߟ*\u0017�4A����m:_�\u000f/�\u0011��}��}\"]��\u0006���o�I/�Z�Ԣ�.��M\u001e\u0018��Ŭ\u000e�Nb�I�'���n�u�\u000f��u3)c7�\u0019p���k`<�|�\b��\u00001�%�3Q�\u0006�$��5�\u0011Csg��Zi�G�M��lc�!I\rb�(\n�*��I~_\u001epFP\u0006>����G��&�Xr�\u001c%)F\u0007�R\u0007~3T<��\u0017�i���\u00009\u0011�\u0000>�󾭨i�g��Ӽ�y�\r\u0012�\u001dz�����A�,5=\u0012�u\r6K]v�!���i�D���T\u001e�3���D�e�G�9a(r��f4l\u0010h\u0012\u0007��{\r'n�t�KU�X��q�W\u001c8�\u0018�\u0000�O\":mv�\b?�,?2�\u0000�\u001e|�5_��O����'\u001b�y5��t��3D��d�x\"��|�\r����\u0018�\u0019�\u0004ȌT\u00054�'�#ع�;\\O\u0004�8�\u0011�\f��\u001c2�\"ň���E��\u0000�'d{Aٱ�\u001c���\fbO\u0016�\u0007���\u0007z�b�����_�Ϙ<����R��z\f��:?� �?R��/�\u001dV�u��Ԥ�r��]�E2�f���\u0019��\u0001�� C�����\\�f�\u0003�\u001c������\u0003�ây�����\u001f��\u0000,j:���iڭ嶐c��D\u000ee,�\f�\u001d\u0019�#\f+CU�\r>\fG/�@&����q���@\u0004�_�k�-�?:�:���-��\r��+\u000f9%�(����G <�c<\u0019\u0000�����Y�\u0001-.I�@�A����+\u001e�R9�c�3�\u00107�>הy��q/�\t#i\u001f[�\"\u000ec*�{R�P���c� ���d����,9?|#�=lQ�\u0011_k���\u001d�ˏ�\b�9o��G���O�u��\rs��K\u001d���\u001cQ���'\u0005DF�&\"\u000br��=3��{E��Љ0�O#���g��\u0001$G&09�U^Gv\u0010�M��\u001c�\u000b\u0014��G�AY��#�tjR����:̼f\u001f�7�:�� J�(\u0016ҦO���\u0005G\t*>@\u0002w\u0019x�c;d��a�Z|��\u0014�>+��9\u000bUe.\u0016����]��ȁ�`��&(��\f�d�,{�bUЄr��� \u0019l`������(6�\u0006�\u001a���-\u0016�&�� O��c��K\u0018���ď�cy��oR�44�~9\u0007�zw�vN\u001a��'�\u0017�{6��fyV_P?1��#���\u001a\u0007���D�V7\u0016�H�E~�\u0001���F)<\u0012��~\u0001N�S<�\u0000�{3?f�\u0010�F2�\u0019F�^[�=����]7i��0q\u0002\rJ2���˘=\b��ޝ�Sj�#i\b�ys��jԚ�x��LҚ�w}HJnϤQ�\"K<��\u0003�\u0003@��[�ԡ\u0019\u0018ȃ䎻�nd�[�Hd\u001c\u00122\t���'_P�\u0011D\fWp{���ݢS�,�K����\u000b�)�U*JC$�\u0016�]�\u0015\u0005P\u0001^��M��g�P���ˢm��y�`8\b\u0015�o[g�H$\u0015P���N;��U�7���Vג�o�\u0016�4[y!Y\".�\u0014�,\u0004rP���7J֛�=r�G��y%v��:u��G����}\u001aG!\u000e�\u0017�)^^��#~�ߥ=�\u0002�r�#!���^���}^��\u001d\u0003�:CjN�aK��m�JL\fQ�\u001cQ]\u0017�k�˾W,\u001b����9\u0011֛\u0018�D\u0013�\u0018��'�m�R7\u0002#\t��?��\u0002����\n�0��l2��Xjֶ7Z���;�b�Ks#(��)���Ȓ\n�>\u0013���d�aÓc�6�#��tڌ��\u0000���K�H��L��K;�R�\t�&'�\u0010$��M����yX�y���Z���!�}TbA��W:��w��WMԯt�QG�\bӑ����\u0015S#�\u0005��mm�hVkKk�\u000e=Gi=6�)�trB�\u0000y��1W�\u000eq��l<��O\u00111\"$CU��\u0005}D�B���d�!�+7�\t%��\b��xZ���z\u0016�6��'�\u0003\u0017�s#��\u0005�\u000b�5�a��[# 8�v�;W^�u��qse��\f�8\t�;\u0002,z��D��~H'���kxf������eG���2�{��\u0011���\u001d\u0016\u001a/\u0006\b������J��:��y�4z��B\u0002\u0000\u0003��j�;\u001e�*��\u00169\u0003~�+{�H��s��\u001bԻ�u\u0018.�\u0019��cy\\��\\$�ւ)\nʬ\t�!%H;fx��\u0013�U�~^�Ⱥ��c,$��\u0004�\u0003[��\u001a4+�>/4�ҥ�.l�-c:�7�����dK\u000b�\u0018$R%���kq!\u0006EVS�\u0003�Ќ��ԁ1d�d\u0000E������e���\u0019bI\u001bW.b��(�ξu�-�־b�a����n���n\u001a_��e$��TR�\u000b\u0006��]\u00062E0R6jgQٝ��O\u001c�|<��Q��\u0006�\u001e�����;OE\bBy��(d�����\u001d�t�S�\u0013T�����\u0017�%�i�|������w%ť��~��;HD�6�\n�\u0006���@,w\n\u0001\u00145\u0019�\u001d�۰�xY�c�p\u001e��S\u001fϏ��y���z�\u0019�C�\u0012��\"H#�w�%ϗ)s�M��ݮA�H\"����X\u001e�'�|q�]�\u001980*C�}��x�c���A�j�QOh�\u000f�\u0016���ţ�zG�.���\u0002�\u001e�k\u0004�=�!���_���͏�9G^\"]��]��1�!�,\u0004u�A��~��\u0000B�-���\u0018���\u0004k\u0016��\u0003e\u0003��������d9���b4��\u0014_����-JX;F\u0017v��Q�k����`ḩ�ž�M|F|�\u001a��ڂ��\u0010IH�j\u000eg�Yd\u0006�<;�ͮm\u00068�qxy��E��l��\u0019�\u001f���Yz���-\u001f�\u0003C���#.��[�)�E%>\u0016V\u001b�\u001e��ś.�'\u0014I���`�\u001c\u001e\u0016Q�=ǽ��\u0007���|��yj�k�$�Ή{�y\u0012:�!=j��o�z�q�\u001c��\u001f�<�����M=\u000eM�\r�'�\u001eY�%��h�-�0����AS��w*��:\rN�\u001e|���b� �/��6º\u0015��*𹃒�o��T�|\u0005s_��H�v�;���\u0006�UT���/��?��~S�֑ix�RԌ���G'���^�u\u0015?HΏ.hht�9��oy��2\u0011ɬ� \u0000�\u0012�m���`�X����W�������u��qq#\u001eL�I y\u001d���!�S9NL��I'���\u0011��4��6\u0007�>�o��DӢ� ��%@v\u0006�\u0017�A�/\u0007w�\"\u001c r\u0001�w�q ����P�E^�}��j�eY\r\u001d���\u001azܐ�\u0012���8�;u�l�ӱ��Qzk��6��\u0004�yT\u001a\u0016=)�:���\u001d�\u001b�D��>��\u000e��OedQ��R\u001b���4� �:g!�\\#�C�{\u001e̔��.`��e_�~d.yr���\u001csL�$���\u0018P���»�\u0019��\u001aS�ՈV��v���r0 d;\u000fǗ7�'���ծ�f��#�\u0012K\u0015\u0015��5�M�=���Zx�G\u0018\u0015A�-vs���\u0016܇���\u0015\u0004��\tndj\"(\u0015=Cw��2f8�tqqV9q\u000frM&��p�J��jޝ[vQ�O�ј�\u0000Hw9��Jp'�蓤��$��O V�\u0000\u0013JS�\u0012(�y.=�r��}�M��d�u\u0004%W�ܕa��zeu{�gm��Db2\u0000��EE\u0002�3\u000e���o��b\u0005��\u00155��\"�\u0001V,(õF��b����ޢ\bR��}b���\u0001%XV�w*<\t\u001d�\u0012�\u0004�e\u000b�����$�����P�\r\u000e�|�g�I/\u000b<Σ��\u0001\u0016���j���zuĎ��G؈�Q�c\fȊ�\u000b��OJ�\u001c�V����# y���/2<>�\u000e�8��tj�&�r\u001b�\n��O\u001d�,�:�{{F���@Ud��N\u0011��F�Ĩ�\u001d\u0010��x�1'���k�\u001c���\u0012��-�l����d�7\n90VB�~�\"�\u0002N�3\u000f,/x�-�\u001bH\u001a��Z閭,rEo,M\"�}\u0012\fA�\u000b\u001e;�\u0007��c#TM��\u0007���9)���H.t빴���\u0001����[p}t\u0003�'n����3\\2\u0000ŮB#pxg�����2�W꺓�g�XF���>�Q�/O���\u0019���4\u000b5�o:/�,D� ӷZ����5#N�X�m,b�Q���y�Y]F�Z���anG�\f��\u0006�\u001aTTfn,�>�l\u0017Q�� x��FyO�>K;����-o+�~�<�����޸��\tC���w3����˃Q�2y�a�y�W�򵽶�h>�����\t�5�1\f\u0004�+�\b�z��K�\u001e��r�?'7_�ͣ�u\u0018�ZRn����ޛyw�:o�-c��u~j\u0018��H�}�\u0007��#�I�W��ؤ��a���c�a��\u001a�n�G�>�U�M_1*���\u000f���G�������|�aw����A�|��i�f���\u000b_Yɣ�ZF����킯�I陽���\u0019\f��\u000e������\t/�M��q���\u001a����-\fx�\u0006��G�K�_�[K�\u0000�X�kY9,�X�+�@ \u0006\r�™�\u000e��J\"B\\�_岉r\u0000���L�?�4+�x�/e��B�j����|~��=�u�.;\u001b�X�.lY\u0001\u0007{�y\u0017ھP������#}b;\t��\u0013�����ݪFsڑ��\u000e?�ڽ��\u0015�\u0017��g�]y�\u001dgD��Y���L��\u0006ǜ\u000b\u000e�ц��\nŚ���s��\u0007�=?��)\rՒ��\u0002DJ1\u001c���\u0000xS�Ϳ\u0014�7�\u001f�{�D\u001d���<�����̅xM9w\u0003����i@\t�v\u001d�>,\u0011�t�\u001d����!\u0011���O�)���_�mt�a6�A�-��\u0003��6�A\u0018\u0015���\u0007�:����8�/�$~�\u0006�pdz��D��#��1���-��� bA����pz;N�Ҽ�տV{���iLG�����x��1�?�\t.UT���ޟ\t5\u0003����y=C��h\u0010GW���adbK|L{U�\u0006��޹�Òï�@����\u0007�B�\u0000S���,4+7I5m$�����q��ȚCyu \u0004�H�\u0014\u0001�F�F���I��H�2m�\\��=���\u0019d�\u00017�;\u001b�\u001f|�_~_�h\u000bq�&!��C\b��d����/�HR5E<��H$��\u000b���q\u001a�nmI�3\u001aӉTb:mw�|�N�\u0002 xp��I'�\u0003���n��|��+8��ZL���\n�������\u0001��P�h�mm\u0015�#b�\u0000@��\u0012�\u0014j&��_w��/��\u0011;�\u0010�G\u0015\u0003\u001dǖ�ˠ���΋����Xy�\u001d?�i��ae��E�$}[�3\u000f�r�׸���I`��Aie\u0015\u0003�9��,c�$yl\fI�6��=��+\u0016�Z�\fF�efD�#@\u001a\u0002�\u0006[_\u0015r/q�'׬�Ԗ�Nך�I��6�=9����Q��}�$Cs'\u0018[�\u0001\u0017�[�#\u0003U #�\u000e#ϸ\u000e�y~�n�\u000e9f��D\u0019N\u0000\u0013�ky\u0017��ە��\r��5��\u0017\u001a_�4y\"�\u001b;[�ԯ����e�2M�\u001dV[ʳ\u0017XP�2|D���\u001aeD��\u0012v�}��5�}��Q�%\u0019e�bb8�\tl\u0000>���\u0013�yDr�ug�麅��4���\r\u001cV��#��*�X���q\u0002A\u0019Ҵ�[e!���\u0012\u001a�����L`.���v7ϗu6qN8���L�\u0004euq�'�qVc��ǚ>�_�����\u001e\r&���KW�����\u001f.\bxh�U�9\u0005����\u0011$��$\u0004�R�l͜#\t\f\u0000K���H\u0017�y\n�c������U�y1�R�c��k{�\u0012v�J\u0014#�V�\r��i�\r\"���RӮ�Vy�Q\u0015�z�z|��\u0011;\u0014c,M��>��A��J�jl2\u0002�\b��4A��\u0007N�u�V�B9<)N`衴�\u001bȚ�\u0003�&�\u000f���\u000bJ���\u0012�@�.�\\k~T��x_L���u�/S�%�4r��\u0017�����\u001e�����Y�g�\n��(8��,Z��!�#(�\fk�6\r��N}ː�O�\u0011��#K|s��п�$\u0010\u0005��#�D\u001dߏ����_���:��ڇ���7�'�d���O���6ך��\u001c�C�y<�ǖ�u��\u0004.�\u000b^we�p�@�u^��N�\u0010\u0010����\u0017(�\u000fH��A��(��'���k{{����3�i��eGnD��\u0000v<}�\u0017�;?�\r��,��\u001eb�S��݇�'�\\\u0016�}\u0012)4\u001f8�X*�y��7R\\[�A\"\u0015f����\u0010T\u001d�\u0011�\u001f�>π�c�\u0006���\u0007��C$Gv��{���\u0000���\u001f\u000bQ虯��\u0019_(��\t;\u001d�\u001dϘ����oi}qg�[ϣ��rI\u000e��j1�e{c �{y�.�;�WW����3��\u000e���;匝�7\u001ffߤr}C�}��j��P\u0012=/���}\u0019�~hY�,GQ��,dO��\u0005\u0005��߂9\u0004|�H\f�ˆN�Ŏa�\u0012)��\u0000�ɥ_����]\b��n�\f�\u001a5D�h�v@\u0005~Y����$.�Kb�� \b\u0018�\nI*�\u00052\u0015\u0004�O٠;�I\rg\u0005o���x��y��\r�t��j_��^^�&7�(Y\u0001NeM%\u0011�\u001b*�SZ��1v���ǭ��d\f��4|���\u001b�.jzs2��T�\u0006WB�\u0000�j�\u0001\u0006�\u0006����:|��1�tuy;;.3B�\u0000R\f��\u001f��t�\fR>\rN�q�)�\u0001���� ��h�3@��ʏ��ܯ�X�\u0003\u001e\"�\u0013F�vZ\f\u0011�f�v6�Xqe\u001c2\n\u0003���Rg�^\n����j�E\u001f*凵2��~|�Dz�KrMy~��Eӑ���KP�| �\u0001��LN�S!�\u0000�A���-�t\u001b\u0017.\"��Q��B@$\u000e��+M�q�hg�\u0019�\u0011�g��g\u001fI�9y$s�������\u001dh\fUe�Eh\bߗ�g����@�>n�}��\u00182\u001b�$\u001f�d$F�T��^�\u0005H��G`v��hW\u00106<�q����I��H�\u0012��l�����S~�vb�D��;9GK\u0018�[�K\u0019��\u0014GE+J\u001d���(z\u001e�\u0013��9�-��G`�|�s�yWV��tyM��fH�X��BXz��H��o:���\u001b�����ᖛ>�N�`�#�������ϣ�\u001dF\r���\u001dA�\u0007��7~��/��o�\u0006����-��\u0004V���3)����(�h�YJEc���u\u0004\u000f6�\r.m\u001eo\u0007&�?L�H~�����\u000e�\u000e�\u000f�\r��=c��qEj�tQ\u0010͹@��Ӂ�\r�\u000e�\u0015��)���J��<{\u001a`��*��\u0012a�Χ�\u0006���@\u000bFh�.(���\u0019�\u0011��fG\u0017�ە���\u0003���ȅB4P�7\u0004'����S�\u000f^�(ؕ5��M�������ڕ�l�Yl&��hQD�̲�<�8?�\u0001O�3�1�s�a�\u0019����*9Eǟ�|\u0003���y�@��M������oag3Gˋ��/\u0017�Qvj|;m�]��E��Ŭ�\u0017�Q;�=�\u0000\u0005�k�j�b2�\b�ċ�\u001b\u0011��{ѾN���|�\u0006�\u0012iz��[\u001b�\f&\u001cyHt���nb-�\n\u0007R>�|\u001d��\u001a�\u000e/�Xˣ&����1�'�<�vj�uy?-�ޯ��$y��\u001eR\u001fo��_+�a��M�����a\u0011�qM\u0005�3�^*�Q��z\u0006 ��\u0015��������7wP���\u001f�.�%Ŭ\u0013��ď�\\G1\u0011���I\f\u0010��\u0016�\u0003(.\u000e�5N\t_�w��?��!�ǒ\u001cWÛ��ߪ�\u0000��R���:ǡk�\u000e�dҵ}\u0013P�;�mK�7��Cq�<\u0013�l5}\u0012ko�}>qI�c*�Ɩ\r<3G��\u000fA؎U\\���}�uR��\\\u0006C,M����{�\"\u000f���w���\u0000�q'����&��?�_���~k�~���QԄ���'��wgjҬ�hO(��\u0010��U�\u000fٞ�Ϩ�d�j�ǭ��#�O\u0019�e#�C��;���������f.���\bh5|W\u0000*8���GH\u001b\u0012��\t��!�\u0007�<�6�<\u001af�h�M+\"��\u0011uF����\u0016z�$Tt\u001ds���U\u0010L��K�\u000b&��W�qC�\u0017��\u000e��k�m\u0002fy�\u0016��[��u\u001d��\u0003���om~�)Y\u0004�Dl����:\r\u0006�:r%��H�yw|]v�g4Lq�1;_��~�~_y��BM>�ku��\u0004��K�uKt����Z�{[�ko���������]\u0012�զ�\u0011C��_���xv�+?}��7�r˧�Lx�FS�ߑ�Gw[�\u0015�>��V�d�E\frMj��#�n\u001a{g�ӵ1$��\u001d})`[\u000bk�ų���֗(ܗ�\u0014��\\&\u0013\u0015�n�\u001d�|yp��ӹ�\u001ct�'4\u0000���u��1�I\u001a��\u0017��\u001f�q��ǨY�(N\u0011�~���$Bn��\u001dWI���V�t�6.�H� l�p�H�6�PG1]�cxٖ\\�x'�\u001d\u001d,ɩX�v9\u0011��p�ޛ����,59,��&�4�9,5�$F��H���\r��\u0014���љe�@\t5�,�ɕ��Q�k��\u0000�\u0007ox\u001f���9e��đ��\u0011ߵH�|�\u0014/��4�<-���<\u0017�Z�r��L\u0011,0�z:�PYj�kj}(!���v�z�(�S��W\b\u0011�\u0003\u0018��k��߿�A�/\u001f\u001891�F�D��3�DK�\u0004��93�/1\\�i�t2�P���K\u001bM\u001a\u0014�n�\u000bHG�\u0004�<�\u000bmg�R�����6�Ă�\u0013�#DW\u0010<�\u0017���2��&�!��\u0011)φ\\�>��B�w��$򷙮$�����m�M7Y��t�I��{5��q��z|�\u0004��Ym��Z\u0016h�G #v\u0007/.XLG>򈇨���p�upa�x�\u001d.2bg #@\u0011\u0001��>C�W\u000e�}\u000b������C}k\fp�^Y��V�y\u0018�+���}>\u0016��\u0004!�Ճ(�+\u0010b7�2\u0012����\u0007Q/��a�IO���\\#���vGXn\u0007+;�;�\u000bj\u0011Ʋ\u00194�h�e\u0015���n�N���%��w�g����O��%x�`T�a�/��ۆ6yߔ�Xu��Dd8�\b�zb\u0000\u0002��o��G���a����k����?��FYl�����o��q�q$k{h��֓\u0004%�eSؖΆm�\b\u001c\u0000n\u0001�~c���N�X*P_Ԧ}/N����kp�Y�n\u0000\u0012\u001d>�\"���̚0����i�W�}��^�vx˜x}�\u001d�D\u000f�|�.c���ݥ��^��\u0018`�ɤ\u0002��g� W\t���h_�1y]������F� �9.����h�J(gO�UP7$��Q�~=E���FC�����2�oK\u0004x��y�|ɇ�\u0000+������k򭆛�y�AҮuhQ�l���k\u001b�[�J��q$m$�]�\u0003�8�����9H\u001c\u0019'\bs1\u0004�李��}�.\u0003�c��\u000b���\u0012}�E��>����\u001df�{���R\u0017A\u001c��$���\b ���'�q�\u0004|9D��\u0010�=��̆R6@؎��\u001f����\u0019O\u0014�\u0012���\u0003�w�3��P�xc��/�k�&[��ߦ��G��=�\u0012�\u000e?`����ğ������r3�z�~�U��5 �o\u0017_���W�o��|���d�%>��hQ�ƞ\u0019���\u001e||P5*yc�ˣ�×Ռ\u001d���^\\֞;X�7��;�^��\f�� %2\u000b��2�\u0001\b�0-��\u0017֔#K\u001ap$���#*��\u0003]\u001b�<\u0019G\u0018����\u001f�~M���O8i\t�\u001ea/�1E5m�����.���\u0019O�����h�\u00105�\u0005Hl_\u000f~~�i�鿖֚���p��\u001bz��Ĉ�6=k훭&\u0001\f�m���u��j4x���.�y~-���v~i��p~ij\u001a�����\u0017RC�D\u0018�mŘ4��S��3��y�j|8\u001f���w__�O���zQ�\u00185�\u0017���\u0000;�����kg��6�~�c���4�\u000b\u0001J�i^���U!��f�\u001f�=T���\u000e�\rƇ�Ȯ=x။Wg�\u0002~c.\u0003���I�}�ߥ��>b����~�\u001b� 7��S_c�e�~\u000e�M#(m��/��nb��%\tr�\u001b\u0001�\u0001�\u0011��1��N�\u00195G����4d��h�~��l�_Io\u0014��(^Mi��ALcЌ��\u0005�\"���R��Oi\u0012sx'���eư~`]S��\u001f����[(�#��*�\u001d�ѫ�H�ߝ��ݓ\u001c8��|����\u0000k�o�\u0019��\u001f1�����rW�ޡ�\"\b�jjOC^�j{�k�~o\t\"\u0004�\u0001�b�a�6��\b ;\u0013$�V���\u00056�\u0019^Y\u000f�r�sl�O\r������4R���\u001a�`�S����\u000eBQ�зc�\u0004�}���1Q�~ʵ)]����\tʤ{���dE��[I+��@\u0001N��=���v7��\u000e#�$LV��Y�\u0016#�������\rP\u0007�6P\u001b��.t`�9��+�\u001f\u0011��{\u00103\u001eUϫ`2�(�\u0007o\u0001V2\b�\u001a�\u0019�J\u0011��7'�#�[8��E]dx���\u0004���\u000f�\u0001�$ӭ:S#�\u0013��w�A��a$\u0011\u001e'� @\u0006��\u0013�>\u001e\u0018M��;�d2+2�\r\\qCơ�5ZֵR|0\u000e�ܷ�L�H��\u000e�����~�m��o���+�r<�=���I�Oi���E����Ԫ��+�v#�A�\u0011�/\u0019����#~k\\�72A<�\u0017\u0005T4��!ޔ~$�\b2��h�\u001c�\r��<\u0012ߑ�}��k�/3$6�\u000bln\"@\u0017�*�M\u0017���8�x�U���\u000b�w��2�\u0019Տ����\u00001y\u000emB�\\�n#�\u0002��\u0005\u0016F\u00000F�\n��`���\u001a���j{:S���^o\u0005���SM��7MheG5�!HZ��iĂ�;��\u001c�1q6���X�Ò$\u001bN<��+�y\u0004%ṉH�B@R~\u001eDQ�C/��!�\u0014OFxsN\u0006�>Od�cK��kV\b�\u0003��º3|\\X\u001d�i�����\u0006���\u0011�\u0002��l4ݣ,f�\u000b���v �\u0013�Nj}����/��0�V���\u001f��d��[���~�c2�1H\n+3R�U���Fd�Ï<��F@�7�7\u0003I�ϣ���Ӂ��b�\u0017C��\u001f�����\u0003ͺn��\u000b�K����.��D��d�MC�mBX�-����y�\u001am�Oe���Ίg,�\u001dd\u0007�\u001d����\u0015ۙ{G����1FY;;)�Ln\r�\u001fMr7���_�6�^Q�3���o��~��\u0000NY�K\u0010`\u000f\t#ٌi(\u0012��КW4Y��O����\u001e�\u0000�W�ŪǬ���#�\u001c�?g��\u001eG���yo��]\u0012k�\u001c~h�)%��\u0010T�y\"#����/\u001d��i��ǐ�s.�>�x�8�1\u0013���\u001f.\b15�\u001bW��q��V\u0014q,��->Y��6z�\u0000��1�������B�\u000b��\u0000��\t�x��4\u001e\u0004�1����Lz�B`J����^�V��G\u001c\u0012����Dl�L�>&��@{{f�6�x�2@s���\u001a���y��Zu�GQ�1��9\u001d�\u0002��z�\u0000u��34\u001a��\u0004Ϥ���42D�5����\u0000-t��oN��'���\t�n�28RW�.#��_��PH�(S����c\u0013Ξ�aksmd�\u0010��B����\u0019RP}2��T�/�\t�ճ\u0005\nI���-K˞n����F\u0013t��o�}����9�bˏ6\u0018��:W??'^a(d��}Ϸ�����\u0002�܈��omu\u0001\u0006�\u0017\u0000(k��W:�˙8\"\u0000�M\u0017��(\u0001�F�Kp���_3\\y?�pK�\r>����q���2�\u0016���! �PB��c�=\u0010���t�ކA�o�u��K\u001fg\u0011*m\u001e\u0019˖8�\t�y\u000e����t\u001f�=\u000e/,鮺���GR�~�\u0012E2�\u001ec��i�i�7�.��rx�ri�'8\rj��\u001c��;\u0018yB?͏��3�v0�\f\u0013\u0018c\\@z�|��@��\u0007�ګM\u0004hb\u0011��\bw�\rk<���~�\u0012H\fr^O\u0014EC\u0011E\u0004��`F�,�\u0010\u0011>�6��'ɾ\u0011�\"e+�̹y\u0001���_���Ŕ\u0011\"�mqw�Ck��\"X��u4�!SQ�-!����Ӕ��\u0014sQ�\u0017$���R�M�\u0016{�nV�18�\u001c�\u001f�2h�=�\"�\u0015{��^ۢ��I=���F�\u0006����}�b�u�)gV�u\u0019\u001dO��\u0000GKf�$q�‘ۢ�\u0016��,����`\u001d����=D��v\u000e�9�Ǘ&\u001c�3p��\u0019\u001d�\u001d�\u0000�\u0013\u0001[\u0010\fw\u0004��٬u�y�9��U\u001e��n4�0���D���v�]\u0015yf\u000fm\u001e�glѸt\u0012z��q\u001c\u000bU��d�%p�75��;��?�,'�&\u0018��I�#�\tTl\n��\u000fN�G{;��Ś\u001b}sR�!���-�4�n�q\u000e��V�_\\-mi�_ܮ�}s\u0015�󼃏\u0002�\u0000Rs\u001e3�fS�L�nb���\u001d¹���i�(�Ň\u0017\f�\u0018�\t�N�1\u001dA�\t3�+�Т\f��\\���\u001d��\"k��ƞ�\u0016��-'��-y\f7\u0006Hn����\u0004��6�\u0002:3a\u0002;\f��H�w;t#c�wPy�9r��rqj#�;F<\\����XĎ\u0019\n\"�:�_mSQ�Ҧ{K8���{պ�\u0016�Ǧ�Z3I;ۈ�k}6\u001d:'tZ�\u0019���\tȎ��\u0000\u0010��{�q�;��G\u0017\u001f�\u0013\u0010@�� �F@��1?�!��'���<��\u000b\u000b�[Q�,��n,-��t+Y�m\u0016XG�>ŭYV��\u001b�r���T��$�\u0000fx�G��\u00033D��~�=(�d\u001b�[(�>$�L�pÈ�c��4r\u0001w�*��Kz�\u0014\u0017�O�G���\u000f1�^O&�\u000b�\u0004q�����Ҧ�wqlUom\u0005�q1WE�3k��\t$S23\u0001(����V��@�6�\u0007\u0014�\r�����3#��ǜ\u000b$p�oq�yB@�\u0004�\"\u0007P��yp�Ix�\u0018�]5��\u001a��[G��-���2�+=�4�\u000f�#i\r�\u001b��p�\u0019�v���ʹyo�о���Êr��3�*�@�\u0000(�\u000b�\u0003c\"O���\u001a|����}��q��[4�X�M�YO,\u0016ϧ�\u000b\u0000�D\u0011����f�+�#�\rz�NdL������6�/�n�0�\u0010t�c\u0013(��\u0006��5���\u0003��y��Y�\u0000���\u0000�C����\u0017\r��i>�f�)�y�Lx��6Z[Z���U�u\u0004T���K�\u0002�Er�9\u0010��Nak�\u000b��B>&H�z���\u0010.G�`�g\\��\u0007�eٝ��\u001d�kO�dӂ%G�\u0003�k�\u000e��(\u0017�W����m����;V��C��p]B��k\u00147��X\u0019�\"���A��L�\u000e��C\u0016\t�f���\u0010L?�\u0007x\u0013�#ϣ�]���|��\f��pL���a/�\u0003ΏJb\u001a?烽��v��ܥ›y�uu�Iٝ�}��3��{/�\u001d��B\u0015`ݏ�{�/�:l�\u0018�_�v����S�u�-�I��b�/%f1������{t�D���2Gk�v���9���Œ'�ticDp\u0004���CPS�3~�\n���r��ԁ�A��GS�;\t\u0004Q:\u0016��k\u001a�׏\u001a��\u0001̗�\u0012\u001bDz��2�\u001b�\u0017��y2&3�!��Q�h�� ��\u000bP\u0010D�&�\u0013B\u0002�\u0014�z~���R\u0002��|\u001c<�\u001cYG\u0010�/��w�\f���MS�!\r\n��Ё�\u0004�x�A�Z%��n�S���\u000eI*�\\D�x�ܰ%� |{�J���r�\u0014�x9#�^t��˹N*\u001fb~ɧ�@\u001b�=�~c\u001c\u0005\u0003f�`�-˾�\f\u0005��3�V�¶��X\u0012\u0007s��|Yϑ\u00006�q\u001b\u001b��(��I\u0012)��\u0000\u0006ɰ�ֻ���ƙD�\u001eF����Kn�mi\u001d��\")wߗ\u0000jFޢ;W�\u0000n;�#,�r&����O!hx�Ĺ>��B\t\u0018���B\u0004mѫ^���'-L��'��X�\u0011���0����W^\u0005���Seߏ�F��Q=Q�������J$��ЁVWA^��R�C@\u001b�G���|�q\u001d]�=\u0018�Otxo�\u001b�5m\u0012��/��e�Uy%�$~���݊�q\u0003��\u001a�;�\u001e���b�D��8���=��>n^,R��e�H��|�x�}\t�?i^dX�4�NՒ0�ݥ/\u0005���v��);pj2ҙ���i�\u001cnx��X~���Ŭ�h�J�����~�.���\u0007�uf�ƪ�\u0015j�@C(�u\f\u0001>${W\u001c9\u000e�\\�r��bţ��\u0013�>��&-\b�l��w�\u001d��J��?\u0017O\u001c�\u0000\u0011��q��_#��\u001cRƪ�N%BQš�![b\u0007j�| Q\u0014��M(��\"�ϑeR�(��Q�!�(`���r�\u000b鳏��~w�%�󾫨�}KXV�b\u000b\u0018Y&V�ݺ�!\u0000a^~��,1\u0010�\u0007\u001ey�}\u00127���f��P�X�?%݇\u001e�B@�\u001f\u000f���ٺ\u0019\t;�e�O�E�̇Ԗ(X\u0016~.��L\u0000��M�\u0002F��)��Q��b���%��Γ�;I$��%Ԩ�eX؆�?��)�`\u0000��4���\ff2A�yƏ\u0016䏛�2i\t�`�`���m��S���ll�BB\\�݉y��wc�\u001a��݃�0��������5�Ȃ>T�^�v�=Odaѝ�KQ�\u000f(�&;������ն��^�O\u001c�\u001aS5�6��7�i���xe\u0014S^5\u0004S���:LC\u001f���|�Q>(\b\n���痵��]\u001e��\u001bk�+ԇOՠ�&sl��oIuF� e<�����YU�*�N�$����9+i�����K���6m�� ���t�4iZ��ݛy5-\bj%4���y-�͡]�XIő�$RA�3#Œ\u00027��ֻ����d\u0018p�ɓ\u0015pO꽷�k}��\b�^���e�}m\u0016�P��6�-��\u001cD��[�m4�}�ݺHn/.�l���G䪭\u0002Jc��7~`J\u0002Gi��z|��8�=A�9Di�\u0002f�;ne\\�\u001blk`H��Z7�R��:=��z&��쮮f�W���\u000bNXk�'�r<2�ݽ�Oާ�������c��O\ro���!ɖ��\u0016Ih$\"#���Dy��<\"���B[�����\u0000���\u000e�O��M�ߒ5Rm?H$1i�y^���\u001b8�����Α�&h=Y@v�T!\u001b�\u0000d&xL�I�����F�:��pj��c\f5��%�p�ҷ1�٪6\u0019��3Ήwism�K\r���f���\u0016��ϣM4��[�'�-\u0005ŝ���\u0004tT��G�hm�3Ǿ1wFF��:\u000e�lz��Ǚ���\u001c�Tj\u0010\u0003rA$\u0019\u001e�@��\u000fRӼ�F��y~����lntK�����ޝch�Ƃ�!Hmn5�\u0013P{x����㚆�S)\u00198H��\u0000h�@�jG��\u0013ϧF�\u0019O\u000f����b�k\u0012\u001d,_[\u0011�{�g6�iM\u0003[y �����[�{}y5��iz���Iom-�i�]mn^627׊\u0000\u0006^\fŽ#\u001e3(�\u000b���m˦۸\u001a�28�9\u0006<��.�ۈ\u001d���o}���v�ZlPɧ�pu+�慬yji\u001d��Ģ�#��g�XMF�p�,��\u001cW�AޘF,���*�c� lo����nj��KS�6Ẁ�g�1�J�c�d\u0013�2\u001c�;Р\f��Z��l��/�\u0018\u001bL��y�Ĵ������\u0004w\nfI\u001e�� Y\u00079ב*69���,r�ӛ\u0012��������g�Ōx�\u001e\u001e�@\u001d����\u0000�x\u001f�t�\u000e��[Md򮋨�����{8��8k���\u0018�u����$\u0011�wj�GK��qHBR�\u0018�b7��Hy�^\u001d��\u0007\u0004eq$\b�<��\u0013g����\u000f.�b�淋R�Ӵ�2���ִ�as���ȥ����\u0019���x�\\�\u0007Հ�5#;\u000fe���{7�8�G\u0014#�8�K\u001c��,I�B]��Gn\u0012-�}��m7lir�Y��f\u0004���\u0004�@�����\u0004\u0012\u000b�������������X��Q����w\"K8o�;c��;T��X�\u0013iڵ�G4.\u0006�%:��\\����]\u000e.���&��|C��lvFI`�v�}FxX����\u0017�7Vv�ӛ�9y�͟�7v�>e�&�d��H��ExR�L��b*����T\u0011�\u00002�=��J%�\u001cD$M�\u000f7l{\u001az�a��)Q>����\u001c���w똑�����3�\rL\ff\u0007\u0013í�'�����*�\"&��@;\u001f\n\u0011��#,8��tД�d8�r��慵\u000f��#�v\u0004w\u0014޻a�\u000b�7g�Pcu�9���\\7z\u0006�c;���oMN�b\r\u000fߛ���c�3\u001cã�,�Z|�ɸ�W������\u0000>n-4�'�B�1�j\u0006I53\u0004�\u001c\u0016��d7\u0013P�[�ͯk�#��ڌ��x\u001dO��y��ҝT�g�����|���_��S�kk��U<�>'\u0015,OZ����6\u0014H/J0�{u/��nY�8Ʊ\u0004(�ֻ\u0014 ���f�5`�2\u0013\"�S�\u0003���\u0012E�\u001a��O�\u0014q�*H\n)M����@���-�0�;�[�\u0017�g��י��W�2r�B�\b4����0r\u00197vzi�3\u001eq�>\u000f�t}f�J���ꑲP�aJS�?,�P3��;HHB^��\u001dS[�\u0000�\u001f+i��sq�Y��9\nfJ�\r6\r��:=FM�\r2:�.!œ$@����ߝ^e�v��i�}���mD����\u0005���\u0015�؎%���P�ُ?g1��F\\@�>^J=���.\u0002���S��\u0013�u��\f\u0010\u0018��\u0002���ɓS���O\u0014��ɍ��y�V�\u0005���\u001dyd��m͉�5|������ۥ����\u0005ZףR�;����2'��p��1\u0002�?6^�p\u0016��L \u0011��nA\u0000w���J]o�~8W��&�͈d\u0001�A&��f6IXr#�\u0003\u0005�\u0017\n���PF��\u0004\n�+\u0006�+�F�i6{*@X��\u0001������\u0019�~\u0002�O4��N�ǩ�Q�қ\n�w\u001d�\u001c�E�\u0001\u0001N�э�U��|\u00047Ou\u001d��q\u0007d�\u001aߒ\u0011�}9\u0018( \u0001Z\u001d�o�� ckW�J�\u000b��\t��;�5��ҽpX�\u0013�\u00037��\u0012!cC�~�\u0003u�u`N\u001d�\t'z\f�D�\u0011\\ė2,\u0005޾���*Ӏ\u0005\u0006��5�W1c�(�ߪ�\u0013���,���T�)(J����@�\u001d��`D��a\u0013���cV��]KY� =h�@zP\u001e�w�-�i���E�5]\u001a���N�Q�����q�P�\u0011�&�C-w�r�\u0013�\f�\r��(�\u0018�\t?V?'?5��\u001am���m*ʑ�\u001a�\u0002z�Z\u0013�\u001f���3��h�9\u0019cz���?\u0012#\u001e~�bv��ޮ�����0��iK��\u001b�!ZT�H�Qz{�eɋ�4�g���\u001b�\u001e��\u001el����ԛI�i/6����J�Y��\u0004��v��]�!�Mæ��0�ZsG���~-/�>U�\u0013ѻ���\u0018\u000fN�Fu�\u00014G\u000b���\u001a\u0013�lx��ʀ.��>�.����m�\r�+�v�� �X�$�7�->�doZ�\u0006�\u0005\u000b�ػ�\u001e��DN5 >��i���Dc�&\u0014���EhH;\u001e����8�\u001f4�h�!Z��*�\u0004������\u0000)�6�\u0010}��$>���|ͭi�F���Q}Vf\u0010��n�3~�?E�{�f�\f�o\t����[�Î j�<#��\u0016\u0007�\u000e��3ycJ��X��\u0000J��G���zM:'�\u0015��T�x�+\u0019\u001bs�9��Ç43d��@�\u001f�u3�ͦ˥�\u0004ġq���>5C��\u001b\u000f�5����C.�:s���ֶ���9�H&Z\n\u001f\u0011�7&�e\u0004��\\a�\u00069�3\u00101c��>C�Mٵgh��L�\u0011�\u0003s9\u001a\u0000V���帼���+ː5e���jR�+�s�H}[�Y��OtͿ�3�3j%��-F_�fI�w\u000f*\u001b>���8�~�:Xs\u0011�\u001e�\u001d�|����\u0016�\u0018 I\f���l�\u001b߫\u000f׵��\"g�$$���\u0016�cd\f��!��\u0007%dnj@�d�]�C�_�sl %�����{4���������\u0004���\u0004\u0007�ɬ��Z�\u0010�<���2�O \u000f�\u0002���3!��T��6/B��m��4ee-��\n;8\u0007���\u0001ћ�\r2R�\f�� ,g�2��=}ϵ<���m�Y�\u000e���d3RGP�r\u001f\u0018^D��4Z�\u0001�8�d�:�\u001c9D�;\u0002��.�\"Ӣ���\u0015���Kc�i��\u001eaH\u0015+֔�fYH��=@Q�9�aQ��\u001e|�}k;��@�z=d�\u001f�hkI#�_���\f�<$q\u0006�\b4Y\u000e�k�_�Zj��U,�1W\n�hh���˗\u0006C\u0002E}���\t\u0001!\u0017�.�\u0005ݧ�\\�R�NkG%�\r\u000b|5�����G�7��ڏW��B9�w�S����o��E�\u0000�[�G��r\u0006���K���46QK0\u0007ذ\u001fIΟ��'l�_͌���ݥq�c��s�m���]����\u000b�\u0017��$tڭ\u001b��{T��zƚ~�=�)��+ۓ���t�Zu��\u0013Yt�&j��HV��P)J�\u0012��=x���\u001fH=�=�����������\u0017�:��խ�g\u001e��4mM���۫գּ¼y=9[ZT\n3�h�k�?1�\u0003��\u0018��t�:{�׼��\u0004<\u001e,��IF��;\u0011�/��O��[i:\\�)g��ssq��6�i$\u0012\u0005k{t[�(\u0015�5\u000bP���`K����<\u0006�\u001b�?c�%Z������6k8潲ӹK\u001co{pߣ���B�Y�Vi�YO�\b\n\t&�c$Lx���>=�@}��\u0016\u001c���\u0006�\u0007s]xv�{Y�zw>��|��'U��O���\u001b]9�ڌi\u001dܰ\\�ZE,w\u0011G#-�zl3�f��ff�$n2��\u001c���\u0013\bt=I5^��\n��zlÇ&\f��!\b�|�G\u0011\u0010�Txd.Vw��I�!���i�c��c��'�+�-)o���'��LԚ��Kn����k���cV��\u00161��}�a��3��T\rmT8��F�}Gqss�\"\u0010�i����\u0004\u0001*��.\u001d���`�\u001fN�=\u000bO�/|�����o\u0002���t\u001e]B�n<ׯIy�H�\u0018���g��b\u001d�y\u001a\u0015PTP`��q\b\u0011�\"���P�1և O6���\f�\u0010�Y.;X\u001cd\u0012\b�\u0018��w$�T\u0007s>��\u0005Ƨ\u000e��[=�ͽ��ݬ�<�E}-����^\\�Xc[�Zf�p$��\u0000�\u0002\u0013LG\f�6�!\u001b5�˯}���x\u0007�D\f}1��X��7\"\r\u0002\u0007!\u001a#���{�\u001d2��\u0014Q��5��uu7��/'��f�R�l��\u0012Xn�n%��zj�����f8�\u00141Q\u0012 \n;\u0018��y�|���fd?3�R\u0019��ۊɡ\u0003\u001a�\u001d�\u001b\n��b�\u001f��b�ֵk��R��\u001d\u0007I\u000ee�;\u0018\u0017����̮���ފ۹\b\u0016�'�*ē}�b'k�\u001b�}v���z�>\u0003\u0014ጄ0b#��i�>���]�0(�\u0004D]\u000ew׼��;\u001b\u0003�jw��I<�o�b�\u0001awb��d���@Ю4��U��Ӵ=f����A��\u0006!�c�G\u000f>-��\u0003�~yH,�{c��g�/�L�u;{Y5[�gR��+\bcu��2���~)n�R�r;݆\u001c�\u001b2�'9˂0�\u001b�`\u0006�]}�$|@c�\u0014D�3L�txI�I��>�\"�����.\u001e��/1kw����P��\u0015.o4�k�o�t�Q��\u001dd��2��V]CP�X���\u0012F��9\u0013���\u0007\b⫏�\u0000\b��p�������\tj2��\u001c%\u0018��\u0013�\u0007~)N�\u0002$�\b�|TE�\u0019�\u0015�E}\u001aëEmy=���a���#��Kr�C\u001b�\u001a���8��$�G}���;L2DT�9e\u001bؚ�z�Pk�V���\f�x�\u001fTc.r�\u0004o\b�'�1)]\u0013q Հ@~r~lj�\u0006���3�����y�͚����C,HUo�\u001bߩ�w\u000b1ym�<�<�RK�\u0011��bh\u000e��Oi;7�]\b����A,�\u001e,1�<��BG�\b���*�v\t =g�\u001e����ݡ���RÌ�3ͨ�\u0010N(\u0001ԁ��2\u0000�I��\u0001/4�\u0000���\u0000�]�u�c˷�mM[D�N���^_kZ����^��\u001b���چ���[��4֖���M\u0012IH�K(�H�l��[��\u0001�ڝ��Ŧ�$�\u0019q�l�≌N�����=7M�\u0000\u0000mn\u000f\u0017g�Δ�pG6)�R�|�)\u000b;�j�n�\u0003���\u0000�z~sF�zߔ��e:�/֧��V��]��.-#��܈\fD\u0011R\r;f��\u0000�\u0007�\u001cǏ\t���\u0019����H��;��\u0000\u0001�o�>\u00063\u001a=N8�L��\u0007\u0015yFQ��߳��\u0017�q��r]�h����TX���C��X\u0002��V�����.�Rǧ]�\u0017U����\u0014r��.�d|��!���'�3×M\f�\u001d�q��\u0012?h/@��qo��0��\u0016��IUB�����RN5b�i�0�F��W�҇4q����k\u0007��>p�\u0004�m���ڌ�c�\u001c��%_�E\u001f�\u0018?���Z\\�\f���V\u000bK�t��!t};�\u0002��Ol������+\u0000O��\u001c�O_��1�L9l�^���\u0000C�;7�0��DZ���Kn/�\u00002,BO5�~�\u001b�v�ݧد_^�=6��Jls\u0004��0m\u001cYb\u000fZ���sc��j�LR��}�!��S�*����\"�=Q��\b*w\r$`����;���_�����.\u0006����Lo����\u0014\bW��ȥ��C���\r>&\u0003�'2.Dsp��\"�K�4q��\u00058\u0004��\u001b\u00007��:��\\��7�ߎ\u0002i]ƌ��r%@-U�j�(X�\u000e$��:��kf2Ӓ|���Ǝ#�T�\n\u0016�䊯Ű�0��\u0000\u0019)d�\u0016��G�9�� S\u0017�\u0014z\\Z2�)+��\u0019��j\ri�(�\u001d\b��H����,���\u001eEn&�*�H\u0000Q�c�\u0015ۮQ=M�w5�r��\u0003������c���1+�/R�n,��\r��\u0006N��\u001a��s!�\u0015c�&�A��\"�\u000bsVb~\u0016.��b��\u000eƣ����5 ���ˆ)\r����\u0018@�����\u001cZ&\u0003e;Q�R��\\��r�Ae\u001e�(�ӑ��ų\u0010yT��Ҡ�\u001e4pEE(s7\u0016�@Q-F\u0000��t�6k�2�ou*�*QY'$N��8EuNjŶ\u0015\r�]�K\u000e\u001c��\u0003�^\\���\u0019�\r��\u001f�i�k~_�\u0005ì$��N��\f�!UdC�[Q����֛�\u0000\u0018O\u0006lB�����c�\u000f\u0017\u0016Y�6�q�\tv�o:\\\u0015U�#�\u0003�ѱ\u0014\f�<�9\u000ek۷�\u0018��l�@G�\u0000�\\qoM�\u001b5xP7\u0007\u0002�cڋ�á�X�\u0007��&!?z���\u0000X�+(�$fm�\u0000�\u001e�]��o�|v̂c[8'\u0001��}�\u0006��hͨ�sZ����u��-�\u001c\u000bF~\u0014`\u0015y#6悆�鵺}\u001e��Q�dӑR�\u001d��.��s�p�d0�\u0013b���s�����$\u0012>��{X�5\u000bi���Q�\u0006W�\u000b��SB��\u0004����>��8O\u0018�vI�t�\u0017\u000f2\u0007��]��\u001c\u000e���\f�C���u\"\\<�ON!�7���>ODծ�\u0005�::�_�x�S�-\u0015�O��\u001d\u000f]�G�� +�;���^K���\u0019\"�ViZO�Ռ�d�K�4�ܨ\u0000\u0014��O��<�P@�\u0005�^c�8�GG�\u0014;�4����S��\u001d��dzdg\u0003\u0012(�>O\u0013�\\�\u000e�q�Z���-�5�\u0017PAye�-���I3[�F�9\u0011\\�\u001c�\tb�.$\u0011gj#pO+\u001d׽\u0012�S���2b7F2�v&G��4\u0005\u00126��[��\u0007�-tm[N��-V+)�&�quh�n��7|�b\u000f\"$\u0017\u001a����EW2��%�-ŕ��>Y��6�\u0016�p���\u001b�F.f1$C�g]�\f��(��w7\\��7D\u0011��lc(����F|&�\u001b�#\u001d�_���[�����Z]����V�DԚ��?�~��nt�V9u]?E�7���y�Ge{}n�u�h�D�e\u0015��D�r\u0003\u0019d�et#q�\u0014N� yX��j�\u001e\t�\u0006r!��\u0012�\u001e�\u001e>�zߦW�\t��uw���X\\�k~_���O`�\\V���WPxV��]\u0005�Udv��m\u001a�-�%-�\u0006qȌ�xw�s��ϑ\u0006��ʨ�\u0000\r���ő�����Ú1�.���E\u0012v\u0000\tW���m\u001b�\u0013Q�Tf[����xZ�\u0015�ZQ���`�����d{�F�y\u001a)\u001d80h�\u0007)�NL�x2�\u0001\u0019ʶ��6�?�U\u0010\u000f~�>#=N;2��\u001b\u0000�\u0010%���Q��kq.^~��n_P���[��nf\u0006u��0�\u0017���]��L�\b�SO����Fc\u001ca\n�� $\u001c��#x�\u001cP�/�F����{88�#1\u001c�1�eR�\u0012\b��\u0011�\u0011\u001b�]��=wJ�\r�� ��[��)�C}n�\"_��G�+{��{e������K\u0014�,rF�qo�alfF8d�P�5�ϗA`մN3ɚXDv7�s���w�,�\u0014��uC���]0^=��.���l\u0017����\u0004o\fV\\���sy\f��w�&���q��Y\u0001�7d�\u0007��\u000f���}��\u0015\u0007��\u000b?,a�J���٭�k�}j�P���\u0011�j*f�g���\"��\u0003�|���oK]�fy\t\t� x#_M\r�׺�k�\u0004�\u0002:�1�g������>t\"\u0005>���}>��.���\u0011\"�ڧp6��s��\u0019�\u0018�4���ș��\u000b��Yg�z#�V=�\u001bS��0w;I�;\u001e(�|�s��\u0015ܠJ?}\u001b|OE�\u0003���Feb�\u001b�E��\b�ߘ|�����\u0011�/����\u001a���ۭ\u000em�x��<�F�C\u0011��/�?���\u0000���7��ʺ��wz�\u001b{y��J\u0003J�X*&�,[�:=.,X sf5\b�����˫�DŽ\u001b��;\u001c�����\u0007����~e��[�3�{��H��+\u0017\u0016�j��۠5�E54���V�[-~�Y���DwD~�̽&�B4�\u0004G�����/�#a�S?+\"=�sNH\u0005\u0001���v�C\u000f�\u0000g2\b2}\u0001��H�3}�6�+�b{��\u001f�r��\u0019l�C�k\\7�Yҋ�ޤ\u000f��@�۾]\u0018�6X'\u0019~�]���/�&|�\u0007�u\u0019V�M��C�\u000456�v\u001dv�a὜�Dc����|���~ftH\r� ��\u001f���@m��A̜P�[�ͨ�OIE[���~n~`[�7�m\u0015��\u001f[�*\bO����F�r�g��\u000f\n#��˧�\u0011�0����\u0007߲�Y�����e�VvP(\u0011�\u0002,jX/�p)ɩ��F1����͖RfE}\u0003���c��?#��%H��\u001e\u0000�\u0018dE\u00129�\u0002ȉ�R�m)\u0015\u0014�q9\u0011�R\u0016�O0\u0011\u0016�\u0010b��\u0015�\u001b\u0002\u001b���3\u001cK�\u0012�j3�z�~�!qg\u001e��Ke����t=�\t\u0011��6;��R!g��\u0011�59\u0002@�Sj�)'�tG�ԗLTu���\n�*G}ρ�\u0002w�����]�ٳ\"�Е�w\u001b\u001d�6�\u0019�π��\r<ϤJ�CI\u0006�@j�n���)�u�\u0004�>E\u0005ibͧ�\t���3Q_��\u001a��2P�F��\u0011&\u001eV��OnT4\u0004\u00045�QM�zW�0x��\r�\u001elrk\u0015[�\u0015r\u0012�Z\u001f��\rv8a\"E�a�\u0016��Ku\t�x��UCo���=A�Ǐt\u0012D��I�헡\u001d��AJ�\u00005�\u0019�n(0�%\u0013��b�'�/�%��\u001bJRH\u001c\u0005�X�J�Uo٧\u001c�+��3������5\fKP�N5�8��\u0003P@;\u001e�o�G&a�js[�zs4e)�Aֽ�-Zr��&1<�!-�X{�\u0000�?�=���'׮�h\u000bF\u0007&\f�9\u0005j\u0003�\r��Z�\u0018�x\\�&�\\>�T\u001e�m��4(eUV��g��Gj�F\u001b���s�l�h\r{A�|Ŧ]�_۫�y\u0011�EJ\u0019\"n�h��i\u000e��\u001a\\�p�\u0019 }@��]v\u001d>�\u0011Ŕ\\$7��\u000f\u0006��C�l���r�U��\u0005ƍ{\b���{\u0005��R@�\u0015\n�8�q�=N�Ǘ\u001f\b���\u001fy\u001f����㧏��\u0019ě����`\u001e�r ����sk�V^S���Ե����j�-��%,��Y�\u0011�X�\u0016b\u00168��c_�qYA�s{�yg���(�,G�����<��\u001a�R[��m������{�\\��m�\u0005���ׄ��ܧS^�\"����3����ϻ�1�\u0014��XI\u0007���\u0004-*Ev�Q_�]\n\u0006�� ���\u001eE�Eե�Q�01\u0015�K�%\b;\u0018�B�\u0004��\u001c��!M��\u0013:���ʾs}?Gw[�nFXYU\u0018��v!��� 6�WW���I�w\u0018$c���k>q���\u0012{@c�&I\u001e@�2��\u0010�5�\\X�\"C~I^��yk�-e�5����evS�L�<�\t:�*�����\u001c z�~<�H\u0003����'�����\u0019��L��RH���\\��^�\n���=��\u0018�x���;s\t��� h�>��_���6(�妀������ᖽJX�\u0000�Я?�=\u000f٨\tk�n�\u0004\u000f��\u001d�q�b{��\u001f��̦�\u0002K���\u0000�\t�\u0007~��ȏ��fy6zMֹ��y7M�5����J�5�ۥ��/�\u001bw\u001c�I\u0002��E\u0015%@\u00145�[�u���I@��{F�X��>�k����p'�\u001c�ˣ�<��\\��!��\u0010����.�w�T��>�\u0004��I8u����Z�(7���c\u0019� \u0004���ξ��\u00002ߗ\u001c%#��O�|�u�yz�5�A���h\fv�K\u0013\u001eWs�\u0016�J��\u0014�4�>��x�͵:̠L�κs��ͺa��#V%v{����{��_2�=��z�\\\u0017�^�[2}\u00046����a\u0004��\u0012�\u0012�F�\u0015��Yy�&^\u0011\u00127�E������{ݦ\r<�d�'\u0018&\"ĉ�o��@���y��t�m�KY/&�\u001bX��P\u0002i��\"��4�R�Ү$n?Y��X�E��<�k��s�\u001b#�\"�_x����<�8��\u0016\u0007\t]��ն�&�o=��\\D�Yڳ��X�{醽�3���8�\u0000�vŚ`$cÏ�o\u0013�\u000e�����\u001aU_M�\"��\u0002�\te�Q��\u0003^`o\u0010GRyw���å��S\u0010\u0013���\\D�\u001f��\\놷 WM�v�-y�\u0019�+\r[Q��Z��m��.�nn\u0012�,��'{�x`����K��;���$,KFw\u0019T\u0004q\u00021\u0013\u0010\u0005���c��~\u0015��#bS��\u0005孤��V�6I8���^;]/��]4jd\u0017v��A<1�ǜ<���q��\u0005p��\u001e\u0013dăw#\u0001�t��\u0000�\u0002�̓��%(d���\u0010#0q��r\u0013BD�%\u0013\r�+\u0004ol��\u00003��3c�ͨ�����WVP���[�-@���K�k���T�^_�ί\u0004M3�F�fy�s瑳Ő�7F�(� \u000eۊ66$\u0010\u001dF)\fzHd�8D\u001fQ�c\u0013�؟\u00073@�\u001b��\u00121#�i��X��*{O��;8�\u001f��:���gy\u001c�5\u0011d�[\b���!{��Ie�d�%Um�fv���\u001c\u001b�\u0017\\U���[���v�'�w��4~~�Ե��y�˾N�M��t���WҮb�`�*,QX,�F��)�\u001e�H\u0015�#�\u0000�/ej���@���g\u000b�8hq\b�M�7�'���\u0019��A���<�1�kŒ�#��2����1&�<���X�\u0000��i+�?q�E�\r\u0013�Ry��0Cm�������Y���mm<šj%/��ѵ#,r\u0006A��\u001e�dnC�3v�M/g��#\f��\\cc�t߼t�[�A�{7M�\u0018��(�qN��x} �\u001a<���ڷ�������-^�B���xRXu_�v�S�0�;˧^�\u0012G\u001c�W�1N\fA����\u0019����c\fa�\u001c\u0006H� \u0001�*�����1�~\u001d>�z�>I�!�Ț>C���~c]�\u0000�Ayk�>g:�Z1�&���-�;h\"[K!��A.�\u0012\u0005_P�z%\u0001\\\u000e\u0011�\\�:-&<\u0000\u000b3�������G��\u0019����qG�Gb|���b�����`�\u000bU����^YG�\r�\\'��(�@\u0004XRK0ذ\u0004�ڌ\u0018c\f�N�ڜ�X�_\u0013�W[+��\u0002��\u000b�7T]\u0012��\u0005��ӵ�*��F�k�YQd���\u0017���\u000b\t\u0002)=\u0005:�<\u0012�\u0007���\u000bTr\f����\tU��bk�y����O\u001a5��\u001d�$\u000bR��\u0004{�bYN�>\u00071s\fq'�6�c)��C^���[����42$a\n�\u001a�Hc�Ք�A�+ӥ#$bx�E�K\u0001�\u001e\f�g�\\y/��\u0018j\r���\u000f�e֌��|@�cC؊��Ճ�p·�5W\u0016?y�Il�(ř�\u0017V*x�)�E�?Ux�{a�\u001f\b��䄗I��Z4�H�A�\u0002\u0011\u0018\u0014\"j\u0013��o�GуDŽv��X�G��^]��!cP�Ѻ�\u001f\u0002ב\u0003�\u0015�\u001cz�Z{o�Z���ɜt�#j�u����V6�ޡ=E\u0007�8\u0002%U)CƕT����f6m|D=?_���o��\"BR��{_!�$q�\u0019\u0004�4 ��;QOBY~��&��E�}��`�\u0002ok���E�\u0011\fD�Z�Ō`T\u0005\u0014�񓽒[�!\u0011]Y\u0004ztzm �B�I���;\b������~����5��\u001als�f��\bs'���\u001c�y5��m�\u001b�]��UU��-�5\u000e���n {gQ��KS9^�$a\u001e����\u000f\u0017���I\u000b\u001a<92K����y0=C�3�2����X�@U���FR)EBd�oS^����gGiK)���\u0007I��NԞ�\byp����Sy�Z\n\u0004�b�2��\u001cP��a�ʃޣz�G�\u001d��\u0000\t�^���c�OiO�\u0018�ґ�S\u000f�Y\u001ei�\n\u000b;�Y��dF��`�yG���\u001dhOpAʏ�\u001d����2��h��X�U���g\u001a�u\u001bz����m��e\u000e�d�\u001d��!���\u0001��r�G7\u0012\u0005͜r����T��i����4��E1�\u0018߄��^]$G�\u0013�oC���E�p�k��9\t�0o\u001d��'��;��B�0�b�\u001a���#uumҟ�����\u0006F�?��s�b~\u001f��l�O��e\f&\"�EH�b�-\u001cV�6bTnz��\u000eM4���|5p>�@�o\u001c��д��6֭�F�4��\"�*\u0014�3��V��dzڬ�m@�_�$yt\u0005�{E��jt�9\u0003Lj;���|�?�<�zD\u0011X�\u0013w��ơ�y�8�����P\n|'�l�{C�0j�u\u0018*\u001a��2�����C�=���|\u0006�Syt|���Ry��'�܍�|�e4M0�g�ٝ�K/:��S�\u0005۶a�/Q\t�N&1��ss�]���\f��H�ry���w'�;\n\r�=���z-O�:<\u0018#�<1\u001b<��Q-D���\u0000\u0003˿D\u0006�xW���\u0000vd�rq�\u0010D\u0019��!\u00079\u0014\n�\u0007SN���D\u0002%.\u0011��<�Щ�����`\u001c>6��\u0013�qS�\u00007S^���\u0006+6\u000b�Ϝ\tQ}U�i�������%h�G[�:1�\u000boU*��^�\u0000�C\u0011]��\u0000\u0007_<�Dp�/���PE���%�ա�\t��w{�R2\u0012?���h��\u0001VD��C}��lA�z1��4E�����\u001f5�n�Assi�!�T���Og�P���e��̳^ܣ5����&\u0004\u0000V9�ǹ�������w�c\u001c�p�\u0000��B���Ms�oc򟙴��I�i�`�t������q8V�Q\u0016�%Lځ�\u000e\u001cB��H!@�4��p\t��|:6����`n\u0005���>r?6}��2���ik�ܛ�6�/0�_���Q��3�j\f�2�e�i ��i\u0010�L�7\u0014$\u0010\f�+�<�u��\u000bG�\fljc\u0019�@X?��\u0011W΍�44�b��Q�kk\u000b�\u001a��]&��-���t�e�f�ӧ�io\u000biZ�W12Y��5)W4���9F@B�s'����C\u001c�Q�o,hJ��\u0011d\u000fv�P��y��T}+T�Y[��- ���u�y4�\u001dI\u0002�Z�w\u0016>��^jMy�A+�n_\u0018��\b��\u0012\u0000 \u0019sۨ�]~ּ`B�\t\u0011\r�\u001e����\u001e�g�捶���\u001a������o�Z��N\u000bau�yNx�\r���m��\nY\u001b���wQƟm�f8�?\u0013\u00111�\u001e�|��;����IJ\u0012��\u0013�h��2�\u0000<���p=�]Ҽ�q�iڞ�ک�\u0017u��w\u0016\u0016�p�\u001c���~���L:U��Z]�Ŏ��4��4\\��\u0001�ߎ@�JQ��$\u000f-��\u0011�+�o}\u0007,]N3\u0013�\u0012c�q#�xg�y�.�1\u0003o9\u0007���gy���q}bҭ��G-�v��~i�5�\u0007�\u000b����{�h��,����S\u0019� ��x�\u0000a�\b;w�\u000f=ϑ\u0015�����G&��3;��\u0002*�\fv�^���\u001d�O�oa���,n�ѡ���O,Aq���j\u001e\\�~���U����\u001b�Z�H��C\u000b,�\t��\u001b�ĵ�q�cFw\u0013�\u000e�U\u0019L\n�r�\u000b!ʄ����\u0003�1��;�G�\u0011\u0001�JG�nn�zϒe�Z�M\u001aM��D\"O.���6\"���D��k�[�\u001d�Ķ\u0017��'��Mv�W�\"�rrc�\u000eL�!��<��y#�\u001a\u001b��1��\f\u0013ǎ�8��!\u0010\f�E�Iۄ_J�՝��M�֝�co�jq�����x�fiu\u000bMb�-E�\u0005c�MB��\u00163:J� JQ�\u001e�Y����=2�?��P��*�o�nL3\u0019�QÎ�\u0011\"��j�\u0003y\u0013�\u0012\u0005�n��4\u000b�3ye�g]2���F\u001dR\b���w���\u0006�bnad���\f�9�nؔ�5\tm�\u0019\u0018J&\"@\t\u001a;\u000e{��]�~�F�\u0019�fa�r���Y���\u0002�\u001fQ��ϒ�\u00001�\u001f/��y�Ȟp�}S�z��K�>�{\u0005�n�罶k\u001b�b�}{�Y���ol� \u0000+ۨ~aH\u001d\b���\u0014�1�\u00117F�y��0�Lxre�\u001cx�Db/s�w0o�+`+g��\u0000�\u001en��8~C�h�\u0011iڇ�.4+�$y�M2�k�v�3��n���D%�\u0005�j.�'��ʏĊ\u001d�l��1�\u00112�dx�mR\u001c��\u0000\u000f>w��Ç$�\u001c�@F0�|�ym�\"���u�T�\u0000ϣ(?�,�\u00002|�����?$�������-��g\u001cQ�w����]����SJӼ�#���Q����c���L�/g�\u000b\u000fd\fQϟ\u0018�\u000e\\�χ~���\u000f���\u000e�~�,��]N\u001d@��%\\X�\u000b�\u0019\u0000�BȌD��(�I~��N�\u0000�'~H%����+�5�5�\u0018�/1y�F�z�GJ]E\u001c��DA�Pg\u0003�~��M��=N�Q�\u0011�c��ݶ��\u0007�����a<'>�\u0011��x꺈�\u0003ʢ��.�J�\u0016��\u0014q*�\u001cq��b$�c�5\u0001\u0015B��Pg3(���\u001c˻\u0019%\f�2��{�O0�������\u0015���c]��ex�K\u001f��˽�m\\���O��<�i�����_�k�YM��\u0007в���$��AD�\u0013��9��I\u001fDE��t��t~��U�Jyo�Ť�As��E\u001cz��!��6ޤq\u000f�\\@��̸G\u001fM�n�p�$�BG��ѵDfz��\u0007�����C�\u001e!\u0012�!)F�Nꮔ'u\u001cH��G�+�ߐ�'\u00161���\u001e(��/�p�\r@���e&}��c\u0006�xG���g�Z9KWq@\u001bz\u001c�\t\u0017G����\\�\u0013\u0015+�J.��~��PH_�\u001d�\"����'%�\u0005)�&��n�dc��\u0016��T�45��~� ��L�E�\u0000���,ELr�(+�@zUh2�}'v|�\u000e�XM�L�\u001cL�\u0003>�u�j\u0015j�Zo�>�\u001e]\u0011�'\u0002ѭh�����7�\u0003q�]�O/�cjb�V�)ķ-�`�\u0000x���,�An2���\u0012N��\u000fB[儛���\u000b�}��A���\u0012YXOp�7tA��\u0001�h\f�`\tj{\u0011�Mv�J$�9;�\u000e���\u001d����WS�&�\u0005撒�\u0004EbUD��J�=����xG\u0018�Ð�֜ڃ��0\u000b\u0015�#Ξo\u000f�^��j\u000b\u0016�\t����8e*�U��;(\u001di�=3`{:\u0019#�����ng�?�Dww=^��7��ͼi1�xx*�,=A��<��i)5�:f\u0014�Y����!��\\¥U�~��K.������aGw\u00134%�^=�}6\u001b5\u0001�\u001e�8��S\u0006����Xˏ\t\u0017wV,{���N�tۆh\u001e��N 7�H�\u0003�2\u0013Ò4@ݖ=V\u0019�#KuMCX�?�c1�X��+D��=C��j\u001d�w\u0003p\u0005s/\u00141\u0018�\u00150��ɨ���X��_�IN��\r6��{e���4\u0005$\u000e�!��r���b,~��\u0003C�G\u0016H��4y���2a���{�������\u001e��\u0000�^k�'�5�Z��<��JKX]^��%?R��z�;�\u0019~�)�xxgC��\f�Y��c��nU���ݥ\f�{h�6�7�⼑V�\n�Pzxf�6�(���Ѻ\u0011�a�m��~h�K4\u0016Z���R(\u0015��ݔ��.\u0000�'�Q�P5FCq��[D\u0000;\u0001l�O����76��W�\u000f輈�T\u0006^Hx�Hѱ��!�=\u000fLD��s\t�\u000fI���.���b\u000b��pL�i��h\u0006ǯS��Lߚ�9�V]R�������!�6�|\u0001\u0007���S\u00045�=z(Mg�xi\u000f��_X�Z���Q\u0011��\u0000\u0000�g�{\u001d�ǩ�����G\u0017�==�\u0005�:ib�\u0004P�4{�\u0013����m\b2�+�ăv�g~\n�:�ā힜2w�\u001fc��=\u0018��5��u�/~ZۻV=Q,�t\u0012_�̟Y�\u0018\u0012�\\�j�J\u0007\u0005�\u001eU��2�-t�S�I��\\\\1\u001f�\u001f��I���\r<0h����y���'�70�t�\u001a}�W\u001a��X� ��,\u0010Z[E-(�\u0014Q�\u0004nH��B\u00019nyp\u0019H� lр\tƀ\u001cW�Ŝ\u000f5_�7��Ē\r#L�Y-t��D��^M\f�^�r��q$�[O-\u001eF�Q\u0005\u0014\u0003�͔��#*\u0017C�P\u0015��vx�\u001c\u0018�\u0018ܣ\u0019\u0013[\u0003+6\u001dž�\u0006��\rUV�\u0019�Aa\"[��\u0000�屎\u0018!t��\\܆��*�c\f> )Q�ҙ\u0006�����ϓ}��1�z�\u000e�\u0002\u0007v���ݘYj\u0016���I.=u��K�^\r\nY�_�m)��Y%�� �Ia2��z|�E\t�i\u0019�_U���\u0000W>�$N\u0018��\u0004Y��U���s�E�Y���yf�\u0015�t�,D�0Z�\u0005�Gy��,����\n���w���!&\u0010[��\b7���\u0001�m��~����\u0013\u0003\u0014�J0\u0000�\u0002��4\u0006P/Q�޿����鲉BOm��\u0010_$�����P_\\�\fw&[��F[g3�\"�H�ȧ\u0015V }&Vc�!�������\u0019\f%�8�\u0011C\u0014�\u0007�$\u001b�|$�<��A�>K�)l!���\u0016�6�&�\u001bXLyE�������$���[mN�\u000b;D\u0001dS\nD��Gb��(�JX�r\u0000��\b�\u0006�\u0013���\u001eP�58��\u0005b�\u0016BE�r1&&<Ő\b�m޺�W3ͩ]A5��eq=�Z&�&�M��[\r:x��+;�~W�$J���\u000f�\u0015rxO��8����\"�$\u001a���v$s�g\u001e\u001c\u00076o��efB�\u001b12�3\u0011�8f\u000f\u0010\u0007z�L�R��\u000f5j:��9��a������҂���MK;h\n�֠��p��T��&�8\u0018�\u0001\u001b�\"@�YX\u0007�ʷ\u0007鉪$m�w�ܤ�r�����\u0014s�c��y�\fh�q\u0012���\u0007�F\u001du��.����*Ip�w�Y��G�h�����moa�\\i\u001a���>��:��p\"��\u001e[w+�2��\u0018��2�V@�7�\u0001��O!��:\u001d�S��S\u001c�\u000e\u0003�\u00139qd��\u0019\u0000\u0004c8�6?A�^�\t�K;�|�{�/\"�\u001ec�,�Z�~��4�-�\u000b}6��G�m7O�\u0017/\u0017�e�MR��{i%�I\u0004\f�V��ʗ���c�y\u000e#{��z]\u001d�7��\u0004\u001cML�d��d2�\f�5{�S�_\u00016a)�qQ\u0000\r�r�|?����:-�QOa.�c>��֫\u001d�\u0011�Qۆ�m\u001ex����$d\u000eeAw\rYȐ\u0006�\u0006\\`��0�\u0010\u000f8�A��nWF�q\u000e�\u00190�\u0004j\b�Elx8xMp�e�\u0014I��D�8I{��\u0007�-���y{ʚ��5]Z�WTME�\u0010bԝ����Z��~�n�|7M�@\t�QF�� �\u001b�Y̶\"<@\u000fH��5�\u001c�_���t�e�c�NP1��x@��\t�\u001b\b�[\u0011����!�?��O���˯ϟ.�-���\\k�6rY�cU�/��V���5ƠLՄ%ե�\u0016��T\bУV�)��}���4�Ϩ�\u0006�&�c�����\u0011˥�<�E�:��χK�2dž�|[\u001e)oG�\u0010�*�n�n|��o���-V�I���R�#y��K�7\u0019� �ю$����\u0015b�\u00101+@i�U�^�`ɖ^61\u001cǜ�@��cȟ��݋�\u0000\u0004���a�\f9�t��\u0006K5\\���\u0000wY�\u0012(�\u0000�#<�a,/qiun��G�u\u0006xX��\rq\u00131���C\\�d�\u001f\b63\u001f��A{\u001c?�R��7<\u001cG�9?Ⅳ,�\u0000<仿k�J�x�2<�-�G���Y\u0014�jdg��\u0010\u001e.<@_�((\u001b�\u001f\u0012C�h�8HyR\u0010�R;�ay�0\fL�1�\u000bs\b�\"��X�\u000e�zw�\u001c�uqΒ2恟ɳĪ���nd ����D���\u0000^�O�\u0004��Y�O���2�|��H���\u0011'�\u0001\u0004��=\u0002�iZ�\u0000eR�)r���v!�V�_�㜇X�*\u0001�4B���-V�\u0003\u0013Ԋ\u000f�12�\u0019\u0010I!��\u0018U�5��h�h��U�\u0010�>\u001a�\u0001�d]���B8��m5�\r\u0000���z��$V�J�U�|BYJ�%\u001431\u000e@�\u0006�2��\";�\u001cL�\"%Cr�U׵k�0��ޘ����f�����\u0012�񢳝����\u0019���zOfhqvv\u0003�>��\u0006uD�y\u000e��|���W7kj�l�\u001c?�\u000b$Gϸ��5�ٌ[[A*I�\n���b��=\rh\u0005\u000f�n�\u0018\u001f ���\r₹xm=IQ��Z\u0001���l��`~���Au\u001ej\"d����I{r��g�����}Ā\u0000+����$>\t�p�Y�oy~��R\u001a8\u001c\u001a�}\u0019��B�;\ne�\u0011�&�̃�\u0015K���\u0003�\u0015&���)\u0002�\u0010:Sl�&}�\u001a\f�\u0001Vz��U�\u001f��u6�!���g�����������ᩌ�\u0003��k�#M���pj��\u0003�w\u0018\u001cǟ1����m�{8��i?�O!�\u0003�'��=��K]R�S��lne\u000e��h�+\u001d͜�6,��\u0014\u0001ARW�sy�7U�<9�+�\u001b�{�n�S��4z�džF��*C���\u000fZ�/&�n-%eq-\"y% �\u0007hk�ץ)^�e�]\u001dj#(݃��W�P:Y��S�n-ͺ?\u0015?\u0019^+�r,OCA����a�HF���HNV9Z\u000f�ok\u0019��\u0001)\u0015�\"�~]�\u0010��o\u001cȰE\u0003A��4\u0010��Y�+�\u0014\u001dw��6\u0000w$\u000e�12�\u0015\u0014�\u0001��vR�\u0010Ơ��\u001a�\"��ր�\u001cb�\u0004��Jx\u0010�!�\u0018\u0006J\u0013�@z�Q�\f��1L�6}�\u0019&\b{\u0007��\u0018�Qs|�Z�I�'�9���\u001eBiT\u0012d�&��j�!�B��qF��2\u001d.�W=���z\u0016�t�f4�{�xe�*\u000b)\u0018�qv��\u001a[O\u00194ӯ�%ف���\u0019�\u0001�ߣE�ʇ�s�O+�sSM�o-����ꎖ�7�\u0000�g�z������\"�\u0005C\u0006�T�%�p�;�l�1.\u0012\b\u0000\u001a�7�3+KE�5$\u0016�\u000fVY�9�m�\u0019^H�\u000b�{��\u0010��t$\u001aҫ���3\u0006$O�}��E�b��\"�k+�on���$��\\+\u001b�\u001e�\u0018a�����a�\u00175���ЉRE\u0000F�\u0016�Nc\t�m��˔c8�Q\u0000ǿ��G�q��Qww\r�][�֡��I-t�&�/=���x\f~��{_[��&Wm� dc:\u0006'��ˏ��'��\u0010<��ݸ�uC�\rd.�m�R8�5\u0018Z\u0016�Em\u001d�k\b%�ܡinu8�׭��\u001cL����H�\u0007\u001f�c\u0013^��\u001c�*���ƹw��\u001bL`Ԣ��1,W\u0013M\u001e�c�jW�,�u�ϬZM���5԰�M2�P�5\u0014�N�\n��\u0006��2�M��ۺ�Ah\u0018��G�\u0003�Q �Nj�\u001d�\u0002�\u001f*�ɼ��H�?����!��Q�+�����|�ܫEu\u0004w�J�X�Ak,�凓��A\u0001\t���\u001b\u0011�\u0018��~|���ڌxL&b%�_��q��cȎ��z��<�u�kN7w����1Cm2X���\u0000G�$\u0006m\u0002\u000f�ʩ`\u0002@���q׷i\u001a��4+O��CIӬ5=:��\u001d;�}f��n���t�\bo�ƻ��2��\u0007��� f�\u0006iH�$�:���X��C*5},��V<8\fc+�@� ]\u0012\t>��\u0014yG{\u0014+��\u001a1��u-F�\u001b�k{�'D�N�u��[յ��H�{��-�Z��\rY��n)?\u0017H�aT�fb�\u001cQ�\b\u001cs�@�1ߗA[W/���\u001cy�rH��u�\b�O\u0016׾�.\\�æ�\u000f���z_�<���\u001f�,��k��z|���}�v\u0011I�Mw�X]Gk\u0004�\ty\u0003�j034��P�\u001c\u0005Bs&2~[&L6x@6\u000e�'�� ��[N(�\u001a�G0�\u0014��\u0006$F\u00117\u0011{�-Ƞ{��\u0007��m�wZ�t��,\u0004�4\u001dB'�Z'��$���Kbn��\u0016����E�����\u0005`�ר�LN\u0010\u0011�2���\u001d��\u000e���9�1�,�2��\b�MQ\u0006�@�dO#ʨs~}�zM��W����?-Kag���E�)5�c7\n-�?���\u0011|٤_�,��[�w\u0011>�\u0007&r����m�:����q\u0019\u0018F4DF��\u0011�˧-�qtأ�J\u0018�9\t�zD�d�\u0016y�`��'���\u0017�r7�ߙ?��s�q(ҵ�!6��U=\u0018���\u0000//m�K�v�(�-��\u0000����=^;p�b��CںS\r\u0006)�\u001cN��Ž\u001f!������\u0011�\u0019B\u001cC\u0014�\u0011\u001b��\"��V~\u000f�\u001b����/$f�n,�\u001e��c\u001e\u0000\u0003��s���\\\u001d��|P�!''S�=�\r�I�C\u001d٭vG=����.\u0012`9��D�3\u001b�5u�Ob�x�%4��`rQ\u0011��������!�k������n�~Gc�S�3'\b0��p5��\\|F���͏7G�i׷Sα��\u0012;H�\u0015\u0014F��;Ӧn�p\u0004�\\�#gr\u001f�o��[�r�U����忕�\tWB���^������\u0018��G^��\u000bӶ�wkv����O�\u001fޑ�#�==��\u000e\u0006�G\u001dV�j��\u001d�IHt��ǝ�ې/���\u001d\u001eE�@\b ҝ����\u001dr��^\u000f\u0011&�@ϥ�bh(\u0007�N�P����%A#\t���M)$e��Pt=��CL�\u000eN\u0003M91��NO[��\u001a9���(�\r�ǭ(\u0005{fls\u0010x�7\u0018ጅ\u0011����\u0007�kt�G_N�()Q�z�o�f�\u000e�3\u001c2����5\u001a\u0013\u0019qG�����n�m�V2p%w�|T\u0000�?\u0017cL̎@\\1\u0013�\\߾\u001f��N��?'l��0\u0016�睤{�x�\u0004�`�zQ!m�5G�eၖ#�n-�\f��\u0004��[ �\r�}��\u0015�2�+F�K:�r��V'Ğ�lrD���<3\u0007m���2�b45=@;���\\��/s�|!�6��䚮�\r\nА\u000fs�4��.�mш�vU���*���\u000b\u0006&�\b�^�\u0000�*$\u0002�\b�����2Oe�\u001b�9��|����,�T���l�\u0017\u0013�:8y�3���.�iO�~���w�d�I#�\u0010�}�B\u0007]�V]����M\u001d�`\u001cR�Qz񻶒BP�d��!G\u0003�f���شWו\u0000�:\u001e?i[n@��׶RH�N�B[�iN�� �r\n�ǐ�� V�{�2��4��\u0001��,�|�\r�\t\u0001�Z�Љ r@��?\u0010�wڟv2�~Lc! \u0007P~,�{��c��^�UK�\u001b�<{\u0000r��ͶG�\u00026�m��$^����+B+��6���zw#t����VDST\u0000\u001d��\u0013��x�7L&}\u0006�1�J��:l�A\u0004#H��ڢ��\u0004}�%\u0013E���$�K<�yh�\u0014�|\u001a8���v&�\t\u0014����OQ�_�J1�\u0003\u0019�\u000f��Iv���Փ㉇�\u001b����\b#b�2\\@\u001f0�b�򫴦�F�0\u0012�C+\u000e���J��L���M�aA0d\u001b��x��@S��_|�wy2�\u0000�2=6!\u001c\f�!�\u001e4\u001e\u001d\r\u0005{xd��\u0011\u0010\u0019��5\u0019,�`�$z���s٪\u0001\u001dw?qʤ8�\u0007��eR�����!�Int\u001b ���H��H�Z�)�%d�8���Ô�����.��\u0007\u0001���3_̏�}\u000f�\u001fO7zA�K�\"#t\u0000�;P��\u0018�\u001a��hu�ts���r;S�0��y�\f�U�<��G�����r���jY/��Y��4�\b\u000b[�(\u0001��T���\u001a�I\u0007m��\u000f\u0010Q�my2\u0018N�����~\u001d�C�yX~c~f�\u0007�v:��r���m���&\u0006þ��\u001cd�'ܶ�Xh,�*\u0003<�\u0002l9!HV\u001b��y�1�vzXY�\u0002�L���+{K%���I�G;I��e��!�'l��f;�n�NG\u0015�]%rj\u0017\u0017�%h�\u0015L�I_����\u001aq`�o��\\�N^}vv�\u001d����ݜS�`��\u0004�0�@\b�wX�ػt=��fH��6\u001bv�\f7]��U���ci\u0016�� �Xד*\u0012#��7$\u000e�\tHP\u0004�~�Cr�$\u0017�с4��J#H\u000e�\n�q�\"ҿ\t��cK%y\u0016�U]\u0018�V����.,��\t\u0004�V)�\u000eD��Ą�\f�z�_n���\u001e#���$n��\u0017Q�%�ǭi���qS�ĢM�^c�B�z�(Z�98�+$\\k���bb�0?$���\u001b\u0011{\f�ZI�RVR�I\u0013�!}A���_��t�&�\u001eht\u00042�S\u0003{��}w�w_�������n����ug�u\u000eA�6�\u000bW��@jMi���|�y�}\u0013��@��$rW\u0010\"�����Kq�\u0015��?�\u001d��p\u000f�h8�V�]�-~�vo���h:S�\u0006_\u001c��QP]e�$r%Nۏ��u#m�j�f,���Æ�Cɬ�#�\u0018�\u0001�R\u0005Z�o~^=� d��\u0016\u001e\u001f��O��1C\u0016�\u0005��\\M+5$cON�\u0000/s�k;J\u00123\u0012\u001d\u0003��W\u0007\r�z^�\u0016\n�-�$�\nի�\u001e\u001b�k�\u001a��>S�VH\b����ΞwӴ\tѣ�d�\u0005�5pʿY�vg\u00144�*��:?`ġ�.I\n�������\u001fߎ��\u0001�~Gh�{&�b�y�;���02�<2+�fRU�zm��=C,���v\u0012���<`��x�?Td\u000fɃ�\u001a�u�ͻ��b%5h\u0013j\u0017)e\u0002Q/�\u0015ya���9\u0015d\u0012/�S͚��)�e��Fk?��W��y�3�\u0006��y��{��{}\u001d��������[���~�6��Gl����\u001c���ߍ\"Bۑ��fN�'\u001d_@Ӧ��\b��\u001eդEc���\u0015ܰ�=厔�^6WI&��m�\u0015���5�|l��\u001cH��$�y�_;\u000e΄qU]_26z\u001d�����\tm���V�����\u0019{igw)s\tHc-!AH٦*�~*�N$�dl\u001d��Nf��1\u0011�]\u0002o�ܯϸ.:�����7�oc\u0004am��8��-z����\u0010���D�ϦYW�& �\fC�u}/�#6Lt%�\\_`\u0017g����4���\u001f��z��\tu�9^Q\b����:C,v�Wc}\u0014\u0017R�����x�~�|Y����o&�4Sk��R_�>c�ӌ�¶��;B���^\u0016׉42�����_��p�\u0018�&�\u0013.����c�w�\u001b>l�Vr\b��b#νDJB�\u0018�V�O/@[Ia\u0012i�S���Vf���\u001bP�[[��\tfU�;h���&m/��G�7� !9�Zl398\"e���ymG����5ӗTv��\u0016���Yp���܌�r\\y�DK�1\u0004�P�r��J�=��$���M.�S���\u0016��it�f�̗:�7��֯{�DUe�\u000b�Hܶ�lx�\u0004��DA �ݸ��\u001d��߳��c\u001e\u0013�'�2�d\u00000\u0011\u0013��,�[�\u0004TI\u0002D��|��_:j�]�f\r*imy�;�$����m���\u001d���M'\u0017\")\fe��A���x�-\u00112h\r��\"\u0007p��Kےus\u001e\u0010�q\t�\u001cEJ�r�61;�Q\u0007�\u0019\u0000M�����4\u0010i\u0017��7�k\u0002�Eӗ�\u0017\u000fa��+$���m-���e�2��汓�r��f��i\u00069�3���\u001c����ܨs\u001b��qi�\u001dg�\u0000N\u0007\u0010�����\u0011�0��MP�Q��ߟ?�7ڇ����Ր�\u0016zmީi��[�\u001a}\n�H�V�X�m�\u000b8�K�f�\u001b��F����\u001d('\u0011\u0013��\t\u0004P\"��\u001d�s�˖�'\u001eK�\u0018�\u0018l=f[����Y�\u001b����\u0000�ߝڭ��\r��l��\u001b��Il�F���~�pd���\u0012�K\fh��7��rZ���\r��]\u001cs\u00031�'��F���%Ǫ�\u001e\u0018�y\u0013�ϟ^*�\u001c�?o7���\u000f�Tv��,0�o<�Dt���\u0010�/Q\u0015TEM�M\rCl\u0002�+���\t����ǭ1\"�\"����T�Ӛ/N'Y9�h\u0015�G\"��V�=6�Zm�4��p\u001a�wzmL�.[��]6\u0016�\"b��ғ\u001f\u0006\u001f����YEH\f9�jM\u0014\r��$�\t<�v8��n��\u001c���\u00129!���yTG\u0005�d���v;!���3Sa�3���~�8z��\u0000J\"�_K��,.�m嫋{�nn4�V\n*�`��$�g\"�f\u000ehG-�\\:��^�F\\2�M�ϤR��/��\fHލ��EM؍�v\u0014��$r�0�l�\u0000@�a�OK�����\u0004��ƴ�vS]�ሐ�ⶹL\u0000aՔ�Gy��I\u0013�\u0011+\u0010�\u0015[g�KQ�P��~}3+\u000e��8yc(�9�;G����\u0016�B�Y+';g�$m\u0016�\\\u0019\u001f�nR}���3e�VD]v�\u00008ɱt�\u001d/EX\f\u0016�ѲCj�mtB\u0002\u0007�K� H�1�k�\r��\u001d�̑.\u0010�\t\u0012@���EX,l5=8���B�㔖��K�_ۘZH\u001a������\u0001Ƅֵ8gR�'�\u001fwO�<^\u001eC\u000f�d|\u001d�D����o��_Z��}p\u0012\u0015F�4􈁐���\u0013��\u0014����T\u001a�e�w\"�b��\u001cUc��Լ��\u0013j��\u0000%�\u001e�\u0014�Oslm~8\u0012\u0004da\u001e�6�΁8|\n��Z\u0011D���*�s����ǟ��=\u0017�Z��V��Z.�%�85[�g��.�\u001a1,U%�\u0000z�Iȡ\u0002��15\u0003+�,���e�≪��Ź-����Z:-ݵ��mq!\f�b��o,��\u0019K�\u001a�mo\u0014q�\u0004|D����6\u0014yW�O6���\u0001\u000b�\u0007�Y\u0007��uR��{�Ŋ�\u0004���\u0000J�b�(h��Ed�+����(�!b��Q^8�p�����f\u0006B.��*ۯ�^��\b�\u0016�!\u0001c���T��uF���t\u000bt\b����諪�\n\u0014�DR�ǐ\u001fE�l3�\f\\dTG?w#������L�!��W����\f02�i7z���M�0]�\u001ce�-���7�d$�\u0001\u0019fC×`h��=�n.\u000f�i�lP<5B��\u001e�\u0003�o�t�>�W�.�s�k\u001d����u\u000by-n�k;�{i���quq\u001f�-.M�\u001fX\u0000�|\b#/*�9X�)f��\u0012c��\u001e|��nK��c\u001aXCP#�&v�MY�q\u001d�s��6\u0014�?/kڦ��Oa��\u0004ڊ�\t�y�\bd�7��McN��Th�U�3j�\u0011��S��\u0005 dc\u0012�9�\"��.���?��l.��\u001e4a�\u0014�`n/�#\u0011Ț��\u0007�;Ut{�\u0000�|�>��-\"��Y-5��ӟZ����jw1��W�f���z�o,��n~�%\u0012�B�����3�U�?y�Ȇ��\u0000�\u00038��\u001c�ȍ�\u0003�̏�F�T;��Ia�LR�\u0011\u001f\u0017\u0016�\u0003��&;l}3 �o�������K_�?�_9h�v���\u0010k׾Z���e����?ܕ�L�J��Y����A\u0010��P��\u0004\u0003��^�f�b�r�jDw�W��������{C\u0004�jrFb;K�;�\t\u001b�^�}ܟ�ߔz�����Է�\\Z6�\"ؤ1G5�w�dw1]�Y^F&�����)�{i\u0017�YO\u0013�2��ugM��\u0010G�W��l<#�A(m\"\u0001 u7�t?\u001e��o���W�7�s��n�\u0000H��?�o�!'��\u0000,9�K='I�ciq���(��<���5����X�3Y�\u0013'C�gŔ�\u0002�s\u001e{�\u0017O���\u0002!\u0018�9J5�ho����.֬㿷��h'�rGW�\u0007¹�ÚX���~�}�\u0000�\u0011(Տ� 1���[ȵ4�\u001f�@��\u0018�dK�s(�#(���o�Cm<'���Or\u0007���~9\u001b����.&'qO\u0006�]����;�\u0014\u000e~Э\u0000�N¹��,��w\u0017���\u0000?\u001c�\u0000����l�\u000f˿$]�g�:�R�{5���}��V�B���\u0007s�\rGhc�� �:�\u000fH��>C�p�ϭ�(b�\u0007�{��\u001d��C���n�?*\\�zY�In.%�[��\u0005�i\u001c��3\u0011Vff9ɜ��L�.)\u0013d��p1��#�DDF \u0001�\u0003\u0010�|����\u0010���R��GC_�\"r�M�6v�ɠ�1n\u001d\u0001܏�F\u000f\u0017�L�3Ge8��-&\u0012�\"�r\u0002�����ǾLe\u0017m2��L��٧�MylKT\u0002{m�h2�j��\u0001�\u0011�<��:���h��^�z��6�vP�2�<��\u0011@���l5\u0012��\u001c[�'o7\u001bQ\u001cXpO.m��6@\u001ed�\u0003��\u001f�,�\u0000�\u0004yK�~[�|���f�`�e��7Qh�F�n�� tYb�\u0000wJ��T�3���8\tg�]×�����D��\u000f�\u001eP�!��\u000e���\u000f{�it�m\u0006\u001d7Nѭ����*?F���1\u0015�\b��!�zF\u0006m��� c\u0011P��q3i�'\u00197��\u000e���Z�x�n&1T��\u0015GSN�(�\bq\tA���ta��r,b1�<�.�U5j����D�����.�c\u0012��$�,��\u000f�zo���\u0010[#\"M��Mv4�z�O\u0013Z0\u0015�s�|��[\ru�y<3���As��iJ<\u000e&VZ���T�� 7\u001e\u0019��\u0007���;8\u001a��\u000eQ`�~�Ũ�K��ڎ�\u000e�g*�bm�(T�P�:�'P���庌90�gu�{��9��A�b>��WB;���F���ip�m3�����\u0003w\u0007�\u0014�3\u0013��v\u001cW\u001d�7��0y�\u001b�\u0014�\u0001/\u0010���A\u0003��5�\u001c7˓`�:Q�$���#�9c2).)@G�G�d|09(7w̼^�9���z���*j�\f+�\u000e���fF'�\u001d+�\u001a���vHzx��a���\u0002f�.��0B��IPĆ\u0007�Qh�j�Bz�Gz\u001ei\tҥ��GOR:�6\u001c�cZS��3 \u0019\u0003͙��fB�n�)�Pޝ[�<����Jc,��#kU˚cb��3��P\u000b\u0001V;�j�w\u001b`\u0012\u0005�?7��~r6ڕ��,ή_�=V\u0001��(\tٔ��q�����\u0003!��v^���\u0000I����~��`���QL�.ҧB[n-J\u0002@�M��Ɏ@\u0010^�\u000e�\u001c������\u001e���\u001eb�0궖�\t+�ZTG\u001cB��m�~�\u0018Nx��$Pmˋ\u0016�\u001c9�\b'��|��_���+��뗚R��5�&O�NѢW�R#TB}�7�������\u0004��w��i{3��%,B��\u0003�w>\u0019���\u0000�D���\u001dέ\u000e����̏��>�մ�+�6�1�>�\"(���6�s���Dsc8�\u001cf$Q\u0015���x,���[/�8�FbW\u0013�\u0004�#{׻�\u0017�/��;\u000b�]\u0007Z�k\b,�q\f�FU�\u0007.R�ͺ�J91\u00155�6���H\u001b���i2�$b�@\u000b�~9���s��sL�������橩\u000bTӼ�{,\u001a����պ\u000be\u0007�P��3\u0005@7'+�p��&B\u0006\u001c`ȓ�\u0000,���yv�r�!Qﳰ?k�J�������\u001e��{ˢ!�N��I�F<����\u0012W�\u001f�g2�\u001b9n������f��<0\u0007�;$�\u0000[����\u000e�=���\u001f�8���\\�x�r�/�7�{�?�t\u001d\"��Y�EIm�C�����Nl�.+\u0017��h`\u0004\u0000\u0003k��O�`�\f�\u00127\"A\u0007��\u0014�vZv���%ʺ;�Ca{\u0003ޙ�]������+}\u001c�u�\u0002z�_\u000f����?N�\\�\u001e�`\u0002H�2{�p�A;�����c=\bBE(:���Y\u0003���a�DS;\rxi\u001a[�t��vv^\u0013��*dY\u0015�8'J�o��\u000b>��ـy\u0006\u0005�y�\\��\u0013񺗈\u0016�}�\u001al\u0002r\u0003�]�ݹ\u001c�s����{h\u0004��%Υ�A,\u0012[L'�y\"\u0002$�q�^=\u0019\n����bK$��m�\r��\u0000+k�az�z��\u0018�!\u0010\u0005���Ic-*�\u0000v߉�\u0014�3\u0014�ftM��e@��OE3�6񽾢��\\�G��w�²���EY\u001fb���)��∙������,n\u000f͘�]>֊���p�i\u001d8)�z��\u0014�!�0�;�e3�\r�׺����<;�|�\u0015��2^�ZYf��\t5�3��M!\u0005RF!��d��\u0005w��Tuь�����n�\u0010�?\u0005�r�ø�uH|�����\u000ezߦ��4��YȜ����Ar�oDS��\rF�`\f`�H��G���=���`� x��������^H�\u0000Y+��4�Q��9�\u001d�\u0000\u001d�H�\u001buCK,�\u0010\u001a��4\u0000\r���F�-����1\u0000�M��c >Ķ�P�44�G�������=~\u000fe���_�ܱz��*�) �\"��N���j\u0005㍷`�YO���Y��o��i�AP\u0017�\u0003�\u0001@\u001b\u001e�\u001c\u00180�\u0000�ܧ.l�ϣ�o5��KuI'����5ߑ�ƹ���\u0006ÐuY9�R\u0003��\u001b�+�7�\u001fL���[iZ\u001b�d��Dz$Ҥ\u001e�-��3�d���\u0005�\u0013\u001dTH�!&�\u0000���F���j�ͬj�7�C��v�<ޘ)\u0002��c\u001e� \u0012zf1�����\u0005��\u0007]��2����\u0000\u001f&\u000f�(�KMJ�QE�'�9�֤\u0002V�\u0000ӽ+�.Y\u001d�Ky�W\\谯 YZ\u001f���\u001b�\u0002}kM�4��\t��k=��Kq4\"�VI\u0015���L�1\u001a�j\b��!𳳴�kM�#�\r�{���Kk�RI�IYn��^u(�Ck�<|c����\u0018<@���r$�����l�\u0011��u\u001fҜ���0��G�\u001b{Ԋ\u0018ԘV8�\u001bK�\n ���m��Q���1�\"`�s1�)H\u001e��\u001e��H�iС�\u0012��\u0011\u0000@^in\u0004��@2\u0012\u0014\u0001ʼ@\u0014�3\u001a��~�Bu�\u000f�+}kU����mus$:n�eea\u0018��--.\u001e���\bL^�,s�H}�2K\u001a�$�e<8��4%<22�7#�=�P��\u001bH8�z�\u0013$↨��I\u0000\fwC�~}�m0��\u001f���\r���{oc�0�g\f�I��A�ج9D\u0011��{@\u0011����R��&k\u0007�6�g\u001b=��/G�×O|�.�\u0012&*\u0019@\u000fK�\u0002`d�g�\u0000u�t�b�A۽�K��)�c�c��E�=��4����\u0000��-ݴ,D�ku5�o$��@�U���A��\u0004�P�w��\u001al`W�\u001c\b�X$Yߟ>W˥�izF��D���\u0006�\u0015>���Բ�K$��o�\u001ac��\u0003\u000f\u0010��'��\u0000aٳ)\"D\u000eT�GP�:��\u0002v�(��4�R�S����\u00162�\u0004ҙ��\b�%�\u0003�����䑮i��sy\u0015��;�E\u001d=9\u0010��|\u0002�)R\u0017�\u001cEk�C�\u001czM&i\u0001�\u0016)\u0002h�\"C�-n�Og\u0006l���T�\u0000>�]���1C��Z�\\ʇ\u0011�w�\u0018S��g\u0000����\u001fc�\u0000�M�\u0013�\u0001����\u000e�2���U�\u0000>_���%Ρ\"G}}���jJ\\j���J�\u000ftA\u0000��Q��\u0015�P�}�\u0003�\u0001Ȗ�S���&I������&���t�:ZD�\u001eQʄ�⤊�I;��}F��A�EP\u00016���q\u001e�t,�APAR� �PE\u000elDG\u000f'\u001f \u0007�ks�X�\u0014\u001c-a^\u000b2�\u0010l�Ĩ�\u0003�4\u001a��\u0012�+v\u001a�y��W�P[ưH���2�P�\u001b\u0006cBy$a���vÃ�\u0005�'��\u000f��I�9�`ҽ\u000b�\u0014R�5*�UC\u001aw�s\u000fV7�����C�\u001a,r\u0010�\u0017E-�R#'��0�\u000e��YD\u0016�ֺT/\u00041�ҕ�\u0018\n�U{�S�^\b�7[��\"x�H�k_��\b�c�Ҳ+�\u0014��bIf�\u001d���TMF5L��\u0013W���W���`8�\b�0=A��c\b\u0007*\n�\u0019\u00007ˢbM�\u0005���w1��-Y�B�����k@~���O�=�L�\u0011�7�hֶ��%?�_\u0010O/�R\b-Zw�ܳ�#�$&\u0011����Am\u0002}p,J\u0000�B:�@z\u001f�3p\u0013,W-�D��\"��v�\u0005�,\b\u0010IJ��A��e��V=:e�1;��.F�\u0010�y�zZDM\u0011d2]F�Ř\u0006\"��V�i�=\u000f�bOa�l���:��෴[�\"Hg%X�C�\u0004�ܔZFKw�|8�+\"��\u0013 \u001c�����\u000f�S�1ڢ��&�\u0010H'2�����\u000fx������~�\u00041��\u0002��@@4�\u0001��C����'KKh�!HPG��Jщ�`MH$m��\u00006��\u0010�}��\u0000ʚ}��r\u0006��󉙺�Q̊\u0010AU\u0005Fƒ2��\u0000ve��<���T�3�\u0000-[�uM2OMC�ޫ�\u001c\u0004�\r��$�S��\u001aH��`Wn�̡�\u0014�,t\f�V�X�4���A$��o1.̲Ar����ţ+��v�?f�\u0002M\u0011�fNǭ��\u001e\u0018�V�\u0003 a5ơe'*�V�z��p�vX^\u0004;P�\u001b�z����ʠw<�C�$áZK\u0011)#6�+H\t�d���I�-Լ��$��8����\u0000F�6b&�?�\u00071��\u001d�X��c��\u0016�\u0018�e�\u0019��\u001brReY\n����5Y\t��A�\u0018�d\u000e��i�m#���$i'�!��\u001cm!�\u0012f�\u0001++J���)(\u0018+\u0011�9�\"\t������j\u0012#bx��c�Ol�\u0013WӕQ\u0002��H����/����\u000f��\u0007(\u0003Tq�)���t'��\u0011��L�U�\u0007�*�*��X��\u0000�����F��e)'��\u0000;�Ԅ\u0007zW|�3�w�H˴A\u001d���\u001a4q�7N\u00024\u0002\u000b\u000b�\n�P��msԅ�\u0000�ꤓ1�NlH�4\u0014ʞ� �~��`G�#�?���������}j�)���9(\u0005>���%��W���\u0010�q���BI7┣�\u001c$������D��\b\u0004\t\u001f����wG�G��_y�ː]�f�5�\b�2J�\u001c_V����H�6h�\u0006aFm�MMv8�\u0016Y\u0003��r��\u001b��u\u0019�\u00068F7�ŘU�*3����y��\r���ߔ��w�=�6�G�S\f�F�\u001e%X=1\u001a\u001fMM\u0016��z�\u0018�2J5�\u0003�=�۵yrOE��\"|S\"\t�\u0000\u0010+�G�K����\u0017�\u001a�j7sj\u0016�shV��S=��zM�֙\r����3K\",r\u0010Y�w�X��l�d��\u0013�\u001a�=�>�ߛ��Ȏьoc\u0019K�\u0001\"���\u0014<�I~pY[Y~]�o�Z#[��NE\t\u0014�)\u0002�Β�nVA'����\u000b\u0002\u0019�y\u0013S���)xS��\u0018�7�0\u0004��\u0000����6\"g��7fdly�� @x�������o.�V�\u0012.�w��Y���~�\u001dūؽ�_���$kqFPO��B�(\u0003?�r�ˤ��>$�v������\u0016N\u001cq\u0000F\"�1��wʟ��e���ט\u0012��8�u]8\u0005^T�A�>@�ȣ\u001d��\u0019oh��\u0019\u000f�����ь��HX�O�������3�_�z�������MM:\u000b��{��f�$�[a)\u001c�O%�1\u0004��\u0019N���C�\n1\u0000u�I�C�~e��,�$���-\u000e”�3[=ȷe�`@���\u001eJ\u001fڦK�E�\rw��biUd��l|<3+\u0018\u0014=�\u001ebD�r|\u000f�\u00009\r�k\u001ag�|�yc}-��\u00167�\f�����2\u0015*\u001d\u0019v#�7ZX��[��\"e2y�i�����}w�zM&�y{w%��ә%���7=\u0015@\u001b\u0001@<3���ɗS�&BL���\r�����:L`\n\u00066|��K���ci\u001c�\u0014�\u0001�W�;\u0011�ܝ�\br,2�r����^4k�%A\u001f\u0010��\u0000�}��\u001d��'\u0017��Z\u0018��\b֍���SC��\u0012M��ڒ�ۀ>�T�O]���9\\�!*���c\\�t�bV`\u0010\u0001ˍ*zT��� '.�Ȁ6\u001c�~Ͼ����\u001f�Z3jzm����^���\b\\[܉\u0000\u0013\"׉p\u0007ps��f1˯��,�\u001byY��>�\u001b:h\u001f��Ȏ�\u0018�O�����|íj���}^�X�\u001a\u0010�8��ĩ\u0014�QLJ\u0014�R���<ϩϏ/�DsD\u001dF�kE�[�w#v!+��@�\u0019q�\u0013���\u001d�\u001c�g�2��\u0012õ=F�\u0010ޕ�%A�\u0002o��S��\u0001\"܉NQ5\u0013��)��K�\u0000�\u001f�IP‡��G.�<�x� �w\u0003���5mG׍~�/\u001at�{��O\u001c\f\t#v�\u0013��\u0001&��Ե;�ƗR\r��>Y�\bDՇ:R\"\u00169�\u0004�=�̖\u0013;���\u000f�i^�\u00032qB1�\u0000\u001b8z�H�&��Ϻ\u0006���v�[\u001b����g��\u0010��x�*,���\u001axҹ��\b��\u0011�\u0002\u0000��cK�x;C\u0019�Lx��?x��O0j7���;�PI4\u0001z�������\bw=Ny�\n���ܐ\rB�$r\u000b�C�@\u00186�=G���r�N6�\u000fU���}\u0015�sGu*JB��@$\u001aV�P�1����[�he�VI-�wb\u0015K3'\"~\u0000�U�3[0!/Nۻ�\u000fRuf��\u000f#U�(k�p>��\u000elG3�\f��y~�����c��b1 Ta\"<�s1��b��:y^K\rF{g��-�h�\u0012��Q�$`A\u001fNy�\u0019Hd$\u001d�ު\u0011��D���>|�o�{�qk]��|�b�W���8\u0005�1��좎�6Y9�ҝ\u0016�\tG$��\u0019��p\u0002��KI�\u0012@C�LJk�jz��\u0019�\u0012x�\u000e�\u0000q�y�\u001d\nyG�O3Q\u001c�4\u0015\u0014$\nm�\f��ُ�\u001e��id���ˑ+ӕ\u000f�5\u001b\u001d�9������Ȏ�/�on��G뿦�\u0011dۉ,Z�\u0014�L�������l\u000e��\"���\"�H�\u0016f��&�\nׂx����0�\u0011ϫ`���-Z�-͝-����XВ\u001c��\u0012\u0003\u000e�m�1���s��*��1[j��\u0004i\u0013#�!E\u0003�\u0001�\u001e�(�\u0000\fOV�o�f�\u0014wp�.#�@m���\u0015@���\u0002񯀠�x�q�y���\u0012\r\u000eO*��Ҭ4��*�O�\u0016�o\u0001i��Z�8�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

{Lr#(zOsP($y)w6i#^Nv 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ξ{?=>OIGdU{>vmG-^r?3 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 diff --git a/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision.sln b/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision.sln deleted file mode 100644 index 54d49997b3db..000000000000 --- a/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision.sln +++ /dev/null @@ -1,28 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.26430.16 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.CognitiveServices.Vision", "Microsoft.CognitiveServices.Vision\Microsoft.CognitiveServices.Vision.csproj", "{6807B854-8528-4FEE-A25D-C43C3AA2D601}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.CognitiveServices.Vision.Tests", "Microsoft.CognitiveServices.Vision.Tests\Microsoft.CognitiveServices.Vision.Tests.csproj", "{5987D97A-E532-450C-BF22-A1F595C927F1}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {6807B854-8528-4FEE-A25D-C43C3AA2D601}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {6807B854-8528-4FEE-A25D-C43C3AA2D601}.Debug|Any CPU.Build.0 = Debug|Any CPU - {6807B854-8528-4FEE-A25D-C43C3AA2D601}.Release|Any CPU.ActiveCfg = Release|Any CPU - {6807B854-8528-4FEE-A25D-C43C3AA2D601}.Release|Any CPU.Build.0 = Release|Any CPU - {5987D97A-E532-450C-BF22-A1F595C927F1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5987D97A-E532-450C-BF22-A1F595C927F1}.Debug|Any CPU.Build.0 = Debug|Any CPU - {5987D97A-E532-450C-BF22-A1F595C927F1}.Release|Any CPU.ActiveCfg = Release|Any CPU - {5987D97A-E532-450C-BF22-A1F595C927F1}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceAPI.cs b/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceAPI.cs deleted file mode 100644 index f2bb1b0bc7b6..000000000000 --- a/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceAPI.cs +++ /dev/null @@ -1,137 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Vision.Face -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Vision; - using Microsoft.Rest; - using Microsoft.Rest.Serialization; - using Models; - using Newtonsoft.Json; - using System.Collections; - using System.Collections.Generic; - using System.Net; - using System.Net.Http; - - ///

- /// An API for face detection, verification, and identification. - /// - public partial class FaceAPI : ServiceClient, IFaceAPI - { - /// - /// The base URI of the service. - /// - internal string BaseUri {get; set;} - - /// - /// Gets or sets json serialization settings. - /// - public JsonSerializerSettings SerializationSettings { get; private set; } - - /// - /// Gets or sets json deserialization settings. - /// - public JsonSerializerSettings DeserializationSettings { get; private set; } - - /// - /// Supported Azure regions for Face Detection endpoints. Possible values - /// include: 'westus', 'westeurope', 'southeastasia', 'eastus2', - /// 'westcentralus' - /// - public string AzureRegion1 { get; set; } - - /// - /// Subscription key in header - /// - public string SubscriptionKey { get; set; } - - /// - /// Gets the IFaceOperations. - /// - public virtual IFaceOperations Face { get; private set; } - - /// - /// Gets the IPerson. - /// - public virtual IPerson Person { get; private set; } - - /// - /// Gets the IPersonGroup. - /// - public virtual IPersonGroup PersonGroup { get; private set; } - - /// - /// Gets the IFaceList. - /// - public virtual IFaceList FaceList { get; private set; } - - /// - /// Initializes a new instance of the FaceAPI class. - /// - /// - /// Optional. The delegating handlers to add to the http client pipeline. - /// - public FaceAPI(params DelegatingHandler[] handlers) : base(handlers) - { - Initialize(); - } - - /// - /// Initializes a new instance of the FaceAPI class. - /// - /// - /// Optional. The http client handler used to handle http transport. - /// - /// - /// Optional. The delegating handlers to add to the http client pipeline. - /// - public FaceAPI(HttpClientHandler rootHandler, params DelegatingHandler[] handlers) : base(rootHandler, handlers) - { - Initialize(); - } - - /// - /// An optional partial-method to perform custom initialization. - /// - partial void CustomInitialize(); - /// - /// Initializes client properties. - /// - private void Initialize() - { - Face = new FaceOperations(this); - Person = new Person(this); - PersonGroup = new PersonGroup(this); - FaceList = new FaceList(this); - BaseUri = "https://{azureRegion}.api.cognitive.microsoft.com/face/v1.0"; - SerializationSettings = new JsonSerializerSettings - { - Formatting = Newtonsoft.Json.Formatting.Indented, - DateFormatHandling = Newtonsoft.Json.DateFormatHandling.IsoDateFormat, - DateTimeZoneHandling = Newtonsoft.Json.DateTimeZoneHandling.Utc, - NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore, - ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Serialize, - ContractResolver = new ReadOnlyJsonContractResolver(), - Converters = new List - { - new Iso8601TimeSpanConverter() - } - }; - DeserializationSettings = new JsonSerializerSettings - { - DateFormatHandling = Newtonsoft.Json.DateFormatHandling.IsoDateFormat, - DateTimeZoneHandling = Newtonsoft.Json.DateTimeZoneHandling.Utc, - NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore, - ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Serialize, - ContractResolver = new ReadOnlyJsonContractResolver(), - Converters = new List - { - new Iso8601TimeSpanConverter() - } - }; - CustomInitialize(); - } - } -} diff --git a/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceList.cs b/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceList.cs deleted file mode 100644 index 8715db57cd79..000000000000 --- a/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceList.cs +++ /dev/null @@ -1,1400 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Vision.Face -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Vision; - using Microsoft.Rest; - using Models; - using Newtonsoft.Json; - using System.Collections; - using System.Collections.Generic; - using System.IO; - using System.Net; - using System.Net.Http; - using System.Threading; - using System.Threading.Tasks; - - /// - /// FaceList operations. - /// - public partial class FaceList : IServiceOperations, IFaceList - { - /// - /// Initializes a new instance of the FaceList class. - /// - /// - /// Reference to the service client. - /// - /// - /// Thrown when a required parameter is null - /// - public FaceList(FaceAPI client) - { - if (client == null) - { - throw new System.ArgumentNullException("client"); - } - Client = client; - } - - /// - /// Gets a reference to the FaceAPI - /// - public FaceAPI Client { get; private set; } - - /// - /// Create an empty face list. Up to 64 face lists are allowed to exist in one - /// subscription. - /// - /// - /// Id referencing a particular face list. - /// - /// - /// Name of the face list, maximum length is 128. - /// - /// - /// Optional user defined data for the face list. Length should not exceed - /// 16KB. - /// - /// - /// Headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// A response object containing the response body and response headers. - /// - public async Task CreateWithHttpMessagesAsync(string faceListId, string name = default(string), string userData = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) - { - if (Client.AzureRegion1 == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); - } - if (faceListId == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "faceListId"); - } - if (faceListId != null) - { - if (faceListId.Length > 64) - { - throw new ValidationException(ValidationRules.MaxLength, "faceListId", 64); - } - if (!System.Text.RegularExpressions.Regex.IsMatch(faceListId, "^[a-z0-9-_]+$")) - { - throw new ValidationException(ValidationRules.Pattern, "faceListId", "^[a-z0-9-_]+$"); - } - } - if (Client.SubscriptionKey == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); - } - if (name != null) - { - if (name.Length > 128) - { - throw new ValidationException(ValidationRules.MaxLength, "name", 128); - } - } - if (userData != null) - { - if (userData.Length > 16384) - { - throw new ValidationException(ValidationRules.MaxLength, "userData", 16384); - } - } - CreateFaceListRequest body = new CreateFaceListRequest(); - if (name != null || userData != null) - { - body.Name = name; - body.UserData = userData; - } - // Tracing - bool _shouldTrace = ServiceClientTracing.IsEnabled; - string _invocationId = null; - if (_shouldTrace) - { - _invocationId = ServiceClientTracing.NextInvocationId.ToString(); - Dictionary tracingParameters = new Dictionary(); - tracingParameters.Add("faceListId", faceListId); - tracingParameters.Add("body", body); - tracingParameters.Add("cancellationToken", cancellationToken); - ServiceClientTracing.Enter(_invocationId, this, "Create", tracingParameters); - } - // Construct URL - var _baseUrl = Client.BaseUri; - var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "facelists/{faceListId}"; - _url = _url.Replace("{azureRegion}", Client.AzureRegion1); - _url = _url.Replace("{faceListId}", System.Uri.EscapeDataString(faceListId)); - // Create HTTP transport objects - var _httpRequest = new HttpRequestMessage(); - HttpResponseMessage _httpResponse = null; - _httpRequest.Method = new HttpMethod("PUT"); - _httpRequest.RequestUri = new System.Uri(_url); - // Set Headers - if (Client.SubscriptionKey != null) - { - if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) - { - _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); - } - _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); - } - - - if (customHeaders != null) - { - foreach(var _header in customHeaders) - { - if (_httpRequest.Headers.Contains(_header.Key)) - { - _httpRequest.Headers.Remove(_header.Key); - } - _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); - } - } - - // Serialize Request - string _requestContent = null; - if(body != null) - { - _requestContent = Rest.Serialization.SafeJsonConvert.SerializeObject(body, Client.SerializationSettings); - _httpRequest.Content = new StringContent(_requestContent, System.Text.Encoding.UTF8); - _httpRequest.Content.Headers.ContentType =System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json; charset=utf-8"); - } - // Send Request - if (_shouldTrace) - { - ServiceClientTracing.SendRequest(_invocationId, _httpRequest); - } - cancellationToken.ThrowIfCancellationRequested(); - _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); - if (_shouldTrace) - { - ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); - } - HttpStatusCode _statusCode = _httpResponse.StatusCode; - cancellationToken.ThrowIfCancellationRequested(); - string _responseContent = null; - if ((int)_statusCode != 200) - { - var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); - try - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - if (_errorBody != null) - { - ex.Body = _errorBody; - } - } - catch (JsonException) - { - // Ignore the exception - } - ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); - ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); - if (_shouldTrace) - { - ServiceClientTracing.Error(_invocationId, ex); - } - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw ex; - } - // Create Result - var _result = new HttpOperationResponse(); - _result.Request = _httpRequest; - _result.Response = _httpResponse; - if (_shouldTrace) - { - ServiceClientTracing.Exit(_invocationId, _result); - } - return _result; - } - - /// - /// Retrieve a face list's information. - /// - /// - /// Id referencing a Face List. - /// - /// - /// Headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when unable to deserialize the response - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// A response object containing the response body and response headers. - /// - public async Task> GetWithHttpMessagesAsync(string faceListId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) - { - if (Client.AzureRegion1 == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); - } - if (faceListId == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "faceListId"); - } - if (faceListId != null) - { - if (faceListId.Length > 64) - { - throw new ValidationException(ValidationRules.MaxLength, "faceListId", 64); - } - if (!System.Text.RegularExpressions.Regex.IsMatch(faceListId, "^[a-z0-9-_]+$")) - { - throw new ValidationException(ValidationRules.Pattern, "faceListId", "^[a-z0-9-_]+$"); - } - } - if (Client.SubscriptionKey == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); - } - // Tracing - bool _shouldTrace = ServiceClientTracing.IsEnabled; - string _invocationId = null; - if (_shouldTrace) - { - _invocationId = ServiceClientTracing.NextInvocationId.ToString(); - Dictionary tracingParameters = new Dictionary(); - tracingParameters.Add("faceListId", faceListId); - tracingParameters.Add("cancellationToken", cancellationToken); - ServiceClientTracing.Enter(_invocationId, this, "Get", tracingParameters); - } - // Construct URL - var _baseUrl = Client.BaseUri; - var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "facelists/{faceListId}"; - _url = _url.Replace("{azureRegion}", Client.AzureRegion1); - _url = _url.Replace("{faceListId}", System.Uri.EscapeDataString(faceListId)); - // Create HTTP transport objects - var _httpRequest = new HttpRequestMessage(); - HttpResponseMessage _httpResponse = null; - _httpRequest.Method = new HttpMethod("GET"); - _httpRequest.RequestUri = new System.Uri(_url); - // Set Headers - if (Client.SubscriptionKey != null) - { - if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) - { - _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); - } - _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); - } - - - if (customHeaders != null) - { - foreach(var _header in customHeaders) - { - if (_httpRequest.Headers.Contains(_header.Key)) - { - _httpRequest.Headers.Remove(_header.Key); - } - _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); - } - } - - // Serialize Request - string _requestContent = null; - // Send Request - if (_shouldTrace) - { - ServiceClientTracing.SendRequest(_invocationId, _httpRequest); - } - cancellationToken.ThrowIfCancellationRequested(); - _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); - if (_shouldTrace) - { - ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); - } - HttpStatusCode _statusCode = _httpResponse.StatusCode; - cancellationToken.ThrowIfCancellationRequested(); - string _responseContent = null; - if ((int)_statusCode != 200) - { - var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); - try - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - if (_errorBody != null) - { - ex.Body = _errorBody; - } - } - catch (JsonException) - { - // Ignore the exception - } - ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); - ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); - if (_shouldTrace) - { - ServiceClientTracing.Error(_invocationId, ex); - } - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw ex; - } - // Create Result - var _result = new HttpOperationResponse(); - _result.Request = _httpRequest; - _result.Response = _httpResponse; - // Deserialize Response - if ((int)_statusCode == 200) - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - try - { - _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - } - catch (JsonException ex) - { - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); - } - } - if (_shouldTrace) - { - ServiceClientTracing.Exit(_invocationId, _result); - } - return _result; - } - - /// - /// Update information of a face list. - /// - /// - /// Id referencing a Face List. - /// - /// - /// Name of the face list, maximum length is 128. - /// - /// - /// Optional user defined data for the face list. Length should not exceed - /// 16KB. - /// - /// - /// Headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// A response object containing the response body and response headers. - /// - public async Task UpdateWithHttpMessagesAsync(string faceListId, string name = default(string), string userData = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) - { - if (Client.AzureRegion1 == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); - } - if (faceListId == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "faceListId"); - } - if (faceListId != null) - { - if (faceListId.Length > 64) - { - throw new ValidationException(ValidationRules.MaxLength, "faceListId", 64); - } - if (!System.Text.RegularExpressions.Regex.IsMatch(faceListId, "^[a-z0-9-_]+$")) - { - throw new ValidationException(ValidationRules.Pattern, "faceListId", "^[a-z0-9-_]+$"); - } - } - if (Client.SubscriptionKey == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); - } - if (name != null) - { - if (name.Length > 128) - { - throw new ValidationException(ValidationRules.MaxLength, "name", 128); - } - } - if (userData != null) - { - if (userData.Length > 16384) - { - throw new ValidationException(ValidationRules.MaxLength, "userData", 16384); - } - } - CreateFaceListRequest body = new CreateFaceListRequest(); - if (name != null || userData != null) - { - body.Name = name; - body.UserData = userData; - } - // Tracing - bool _shouldTrace = ServiceClientTracing.IsEnabled; - string _invocationId = null; - if (_shouldTrace) - { - _invocationId = ServiceClientTracing.NextInvocationId.ToString(); - Dictionary tracingParameters = new Dictionary(); - tracingParameters.Add("faceListId", faceListId); - tracingParameters.Add("body", body); - tracingParameters.Add("cancellationToken", cancellationToken); - ServiceClientTracing.Enter(_invocationId, this, "Update", tracingParameters); - } - // Construct URL - var _baseUrl = Client.BaseUri; - var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "facelists/{faceListId}"; - _url = _url.Replace("{azureRegion}", Client.AzureRegion1); - _url = _url.Replace("{faceListId}", System.Uri.EscapeDataString(faceListId)); - // Create HTTP transport objects - var _httpRequest = new HttpRequestMessage(); - HttpResponseMessage _httpResponse = null; - _httpRequest.Method = new HttpMethod("PATCH"); - _httpRequest.RequestUri = new System.Uri(_url); - // Set Headers - if (Client.SubscriptionKey != null) - { - if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) - { - _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); - } - _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); - } - - - if (customHeaders != null) - { - foreach(var _header in customHeaders) - { - if (_httpRequest.Headers.Contains(_header.Key)) - { - _httpRequest.Headers.Remove(_header.Key); - } - _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); - } - } - - // Serialize Request - string _requestContent = null; - if(body != null) - { - _requestContent = Rest.Serialization.SafeJsonConvert.SerializeObject(body, Client.SerializationSettings); - _httpRequest.Content = new StringContent(_requestContent, System.Text.Encoding.UTF8); - _httpRequest.Content.Headers.ContentType =System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json; charset=utf-8"); - } - // Send Request - if (_shouldTrace) - { - ServiceClientTracing.SendRequest(_invocationId, _httpRequest); - } - cancellationToken.ThrowIfCancellationRequested(); - _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); - if (_shouldTrace) - { - ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); - } - HttpStatusCode _statusCode = _httpResponse.StatusCode; - cancellationToken.ThrowIfCancellationRequested(); - string _responseContent = null; - if ((int)_statusCode != 200) - { - var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); - try - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - if (_errorBody != null) - { - ex.Body = _errorBody; - } - } - catch (JsonException) - { - // Ignore the exception - } - ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); - ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); - if (_shouldTrace) - { - ServiceClientTracing.Error(_invocationId, ex); - } - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw ex; - } - // Create Result - var _result = new HttpOperationResponse(); - _result.Request = _httpRequest; - _result.Response = _httpResponse; - if (_shouldTrace) - { - ServiceClientTracing.Exit(_invocationId, _result); - } - return _result; - } - - /// - /// Delete an existing face list according to faceListId. Persisted face images - /// in the face list will also be deleted. - /// - /// - /// Id referencing a Face List. - /// - /// - /// Headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// A response object containing the response body and response headers. - /// - public async Task DeleteWithHttpMessagesAsync(string faceListId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) - { - if (Client.AzureRegion1 == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); - } - if (faceListId == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "faceListId"); - } - if (faceListId != null) - { - if (faceListId.Length > 64) - { - throw new ValidationException(ValidationRules.MaxLength, "faceListId", 64); - } - if (!System.Text.RegularExpressions.Regex.IsMatch(faceListId, "^[a-z0-9-_]+$")) - { - throw new ValidationException(ValidationRules.Pattern, "faceListId", "^[a-z0-9-_]+$"); - } - } - if (Client.SubscriptionKey == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); - } - // Tracing - bool _shouldTrace = ServiceClientTracing.IsEnabled; - string _invocationId = null; - if (_shouldTrace) - { - _invocationId = ServiceClientTracing.NextInvocationId.ToString(); - Dictionary tracingParameters = new Dictionary(); - tracingParameters.Add("faceListId", faceListId); - tracingParameters.Add("cancellationToken", cancellationToken); - ServiceClientTracing.Enter(_invocationId, this, "Delete", tracingParameters); - } - // Construct URL - var _baseUrl = Client.BaseUri; - var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "facelists/{faceListId}"; - _url = _url.Replace("{azureRegion}", Client.AzureRegion1); - _url = _url.Replace("{faceListId}", System.Uri.EscapeDataString(faceListId)); - // Create HTTP transport objects - var _httpRequest = new HttpRequestMessage(); - HttpResponseMessage _httpResponse = null; - _httpRequest.Method = new HttpMethod("DELETE"); - _httpRequest.RequestUri = new System.Uri(_url); - // Set Headers - if (Client.SubscriptionKey != null) - { - if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) - { - _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); - } - _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); - } - - - if (customHeaders != null) - { - foreach(var _header in customHeaders) - { - if (_httpRequest.Headers.Contains(_header.Key)) - { - _httpRequest.Headers.Remove(_header.Key); - } - _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); - } - } - - // Serialize Request - string _requestContent = null; - // Send Request - if (_shouldTrace) - { - ServiceClientTracing.SendRequest(_invocationId, _httpRequest); - } - cancellationToken.ThrowIfCancellationRequested(); - _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); - if (_shouldTrace) - { - ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); - } - HttpStatusCode _statusCode = _httpResponse.StatusCode; - cancellationToken.ThrowIfCancellationRequested(); - string _responseContent = null; - if ((int)_statusCode != 200) - { - var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); - try - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - if (_errorBody != null) - { - ex.Body = _errorBody; - } - } - catch (JsonException) - { - // Ignore the exception - } - ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); - ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); - if (_shouldTrace) - { - ServiceClientTracing.Error(_invocationId, ex); - } - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw ex; - } - // Create Result - var _result = new HttpOperationResponse(); - _result.Request = _httpRequest; - _result.Response = _httpResponse; - if (_shouldTrace) - { - ServiceClientTracing.Exit(_invocationId, _result); - } - return _result; - } - - /// - /// Retrieve information about all existing face lists. Only faceListId, name - /// and userData will be returned. - /// - /// - /// Headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when unable to deserialize the response - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// A response object containing the response body and response headers. - /// - public async Task>> ListWithHttpMessagesAsync(Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) - { - if (Client.AzureRegion1 == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); - } - if (Client.SubscriptionKey == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); - } - // Tracing - bool _shouldTrace = ServiceClientTracing.IsEnabled; - string _invocationId = null; - if (_shouldTrace) - { - _invocationId = ServiceClientTracing.NextInvocationId.ToString(); - Dictionary tracingParameters = new Dictionary(); - tracingParameters.Add("cancellationToken", cancellationToken); - ServiceClientTracing.Enter(_invocationId, this, "List", tracingParameters); - } - // Construct URL - var _baseUrl = Client.BaseUri; - var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "facelists"; - _url = _url.Replace("{azureRegion}", Client.AzureRegion1); - // Create HTTP transport objects - var _httpRequest = new HttpRequestMessage(); - HttpResponseMessage _httpResponse = null; - _httpRequest.Method = new HttpMethod("GET"); - _httpRequest.RequestUri = new System.Uri(_url); - // Set Headers - if (Client.SubscriptionKey != null) - { - if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) - { - _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); - } - _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); - } - - - if (customHeaders != null) - { - foreach(var _header in customHeaders) - { - if (_httpRequest.Headers.Contains(_header.Key)) - { - _httpRequest.Headers.Remove(_header.Key); - } - _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); - } - } - - // Serialize Request - string _requestContent = null; - // Send Request - if (_shouldTrace) - { - ServiceClientTracing.SendRequest(_invocationId, _httpRequest); - } - cancellationToken.ThrowIfCancellationRequested(); - _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); - if (_shouldTrace) - { - ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); - } - HttpStatusCode _statusCode = _httpResponse.StatusCode; - cancellationToken.ThrowIfCancellationRequested(); - string _responseContent = null; - if ((int)_statusCode != 200) - { - var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); - try - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - if (_errorBody != null) - { - ex.Body = _errorBody; - } - } - catch (JsonException) - { - // Ignore the exception - } - ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); - ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); - if (_shouldTrace) - { - ServiceClientTracing.Error(_invocationId, ex); - } - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw ex; - } - // Create Result - var _result = new HttpOperationResponse>(); - _result.Request = _httpRequest; - _result.Response = _httpResponse; - // Deserialize Response - if ((int)_statusCode == 200) - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - try - { - _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject>(_responseContent, Client.DeserializationSettings); - } - catch (JsonException ex) - { - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); - } - } - if (_shouldTrace) - { - ServiceClientTracing.Exit(_invocationId, _result); - } - return _result; - } - - /// - /// Delete an existing face from a face list (given by a persisitedFaceId and a - /// faceListId). Persisted image related to the face will also be deleted. - /// - /// - /// faceListId of an existing face list. - /// - /// - /// persistedFaceId of an existing face. - /// - /// - /// Headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// A response object containing the response body and response headers. - /// - public async Task DeleteFaceWithHttpMessagesAsync(string faceListId, string persistedFaceId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) - { - if (Client.AzureRegion1 == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); - } - if (faceListId == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "faceListId"); - } - if (faceListId != null) - { - if (faceListId.Length > 64) - { - throw new ValidationException(ValidationRules.MaxLength, "faceListId", 64); - } - if (!System.Text.RegularExpressions.Regex.IsMatch(faceListId, "^[a-z0-9-_]+$")) - { - throw new ValidationException(ValidationRules.Pattern, "faceListId", "^[a-z0-9-_]+$"); - } - } - if (persistedFaceId == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "persistedFaceId"); - } - if (Client.SubscriptionKey == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); - } - // Tracing - bool _shouldTrace = ServiceClientTracing.IsEnabled; - string _invocationId = null; - if (_shouldTrace) - { - _invocationId = ServiceClientTracing.NextInvocationId.ToString(); - Dictionary tracingParameters = new Dictionary(); - tracingParameters.Add("faceListId", faceListId); - tracingParameters.Add("persistedFaceId", persistedFaceId); - tracingParameters.Add("cancellationToken", cancellationToken); - ServiceClientTracing.Enter(_invocationId, this, "DeleteFace", tracingParameters); - } - // Construct URL - var _baseUrl = Client.BaseUri; - var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "facelists/{faceListId}/persistedFaces/{persistedFaceId}"; - _url = _url.Replace("{azureRegion}", Client.AzureRegion1); - _url = _url.Replace("{faceListId}", System.Uri.EscapeDataString(faceListId)); - _url = _url.Replace("{persistedFaceId}", System.Uri.EscapeDataString(persistedFaceId)); - // Create HTTP transport objects - var _httpRequest = new HttpRequestMessage(); - HttpResponseMessage _httpResponse = null; - _httpRequest.Method = new HttpMethod("DELETE"); - _httpRequest.RequestUri = new System.Uri(_url); - // Set Headers - if (Client.SubscriptionKey != null) - { - if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) - { - _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); - } - _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); - } - - - if (customHeaders != null) - { - foreach(var _header in customHeaders) - { - if (_httpRequest.Headers.Contains(_header.Key)) - { - _httpRequest.Headers.Remove(_header.Key); - } - _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); - } - } - - // Serialize Request - string _requestContent = null; - // Send Request - if (_shouldTrace) - { - ServiceClientTracing.SendRequest(_invocationId, _httpRequest); - } - cancellationToken.ThrowIfCancellationRequested(); - _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); - if (_shouldTrace) - { - ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); - } - HttpStatusCode _statusCode = _httpResponse.StatusCode; - cancellationToken.ThrowIfCancellationRequested(); - string _responseContent = null; - if ((int)_statusCode != 200) - { - var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); - try - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - if (_errorBody != null) - { - ex.Body = _errorBody; - } - } - catch (JsonException) - { - // Ignore the exception - } - ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); - ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); - if (_shouldTrace) - { - ServiceClientTracing.Error(_invocationId, ex); - } - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw ex; - } - // Create Result - var _result = new HttpOperationResponse(); - _result.Request = _httpRequest; - _result.Response = _httpResponse; - if (_shouldTrace) - { - ServiceClientTracing.Exit(_invocationId, _result); - } - return _result; - } - - /// - /// Add a face to a face list. The input face is specified as an image with a - /// targetFace rectangle. It returns a persistedFaceId representing the added - /// face, and persistedFaceId will not expire. - /// - /// - /// Id referencing a Face List. - /// - /// - /// User-specified data about the face list for any purpose. The maximum - /// length is 1KB. - /// - /// - /// A face rectangle to specify the target face to be added into the face list, - /// in the format of "targetFace=left,top,width,height". E.g. - /// "targetFace=10,10,100,100". If there is more than one face in the image, - /// targetFace is required to specify which face to add. No targetFace means - /// there is only one face detected in the entire image. - /// - /// - /// Headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// A response object containing the response body and response headers. - /// - public async Task AddFaceWithHttpMessagesAsync(string faceListId, string userData = default(string), string targetFace = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) - { - if (Client.AzureRegion1 == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); - } - if (faceListId == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "faceListId"); - } - if (faceListId != null) - { - if (faceListId.Length > 64) - { - throw new ValidationException(ValidationRules.MaxLength, "faceListId", 64); - } - if (!System.Text.RegularExpressions.Regex.IsMatch(faceListId, "^[a-z0-9-_]+$")) - { - throw new ValidationException(ValidationRules.Pattern, "faceListId", "^[a-z0-9-_]+$"); - } - } - if (Client.SubscriptionKey == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); - } - // Tracing - bool _shouldTrace = ServiceClientTracing.IsEnabled; - string _invocationId = null; - if (_shouldTrace) - { - _invocationId = ServiceClientTracing.NextInvocationId.ToString(); - Dictionary tracingParameters = new Dictionary(); - tracingParameters.Add("faceListId", faceListId); - tracingParameters.Add("userData", userData); - tracingParameters.Add("targetFace", targetFace); - tracingParameters.Add("cancellationToken", cancellationToken); - ServiceClientTracing.Enter(_invocationId, this, "AddFace", tracingParameters); - } - // Construct URL - var _baseUrl = Client.BaseUri; - var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "facelists/{faceListId}/persistedFaces"; - _url = _url.Replace("{azureRegion}", Client.AzureRegion1); - _url = _url.Replace("{faceListId}", System.Uri.EscapeDataString(faceListId)); - List _queryParameters = new List(); - if (userData != null) - { - _queryParameters.Add(string.Format("userData={0}", System.Uri.EscapeDataString(userData))); - } - if (targetFace != null) - { - _queryParameters.Add(string.Format("targetFace={0}", System.Uri.EscapeDataString(targetFace))); - } - if (_queryParameters.Count > 0) - { - _url += "?" + string.Join("&", _queryParameters); - } - // Create HTTP transport objects - var _httpRequest = new HttpRequestMessage(); - HttpResponseMessage _httpResponse = null; - _httpRequest.Method = new HttpMethod("POST"); - _httpRequest.RequestUri = new System.Uri(_url); - // Set Headers - if (Client.SubscriptionKey != null) - { - if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) - { - _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); - } - _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); - } - - - if (customHeaders != null) - { - foreach(var _header in customHeaders) - { - if (_httpRequest.Headers.Contains(_header.Key)) - { - _httpRequest.Headers.Remove(_header.Key); - } - _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); - } - } - - // Serialize Request - string _requestContent = null; - // Send Request - if (_shouldTrace) - { - ServiceClientTracing.SendRequest(_invocationId, _httpRequest); - } - cancellationToken.ThrowIfCancellationRequested(); - _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); - if (_shouldTrace) - { - ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); - } - HttpStatusCode _statusCode = _httpResponse.StatusCode; - cancellationToken.ThrowIfCancellationRequested(); - string _responseContent = null; - if ((int)_statusCode != 200) - { - var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); - try - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - if (_errorBody != null) - { - ex.Body = _errorBody; - } - } - catch (JsonException) - { - // Ignore the exception - } - ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); - ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); - if (_shouldTrace) - { - ServiceClientTracing.Error(_invocationId, ex); - } - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw ex; - } - // Create Result - var _result = new HttpOperationResponse(); - _result.Request = _httpRequest; - _result.Response = _httpResponse; - if (_shouldTrace) - { - ServiceClientTracing.Exit(_invocationId, _result); - } - return _result; - } - - /// - /// Add a face to a face list. The input face is specified as an image with a - /// targetFace rectangle. It returns a persistedFaceId representing the added - /// face, and persistedFaceId will not expire. - /// - /// - /// Id referencing a Face List. - /// - /// - /// User-specified data about the face list for any purpose. The maximum - /// length is 1KB. - /// - /// - /// A face rectangle to specify the target face to be added into the face list, - /// in the format of "targetFace=left,top,width,height". E.g. - /// "targetFace=10,10,100,100". If there is more than one face in the image, - /// targetFace is required to specify which face to add. No targetFace means - /// there is only one face detected in the entire image. - /// - /// - /// Headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// A response object containing the response body and response headers. - /// - public async Task AddFaceFromStreamWithHttpMessagesAsync(string faceListId, string userData = default(string), string targetFace = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) - { - if (Client.AzureRegion1 == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); - } - if (faceListId == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "faceListId"); - } - if (faceListId != null) - { - if (faceListId.Length > 64) - { - throw new ValidationException(ValidationRules.MaxLength, "faceListId", 64); - } - if (!System.Text.RegularExpressions.Regex.IsMatch(faceListId, "^[a-z0-9-_]+$")) - { - throw new ValidationException(ValidationRules.Pattern, "faceListId", "^[a-z0-9-_]+$"); - } - } - if (Client.SubscriptionKey == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); - } - // Tracing - bool _shouldTrace = ServiceClientTracing.IsEnabled; - string _invocationId = null; - if (_shouldTrace) - { - _invocationId = ServiceClientTracing.NextInvocationId.ToString(); - Dictionary tracingParameters = new Dictionary(); - tracingParameters.Add("faceListId", faceListId); - tracingParameters.Add("userData", userData); - tracingParameters.Add("targetFace", targetFace); - tracingParameters.Add("cancellationToken", cancellationToken); - ServiceClientTracing.Enter(_invocationId, this, "AddFaceFromStream", tracingParameters); - } - // Construct URL - var _baseUrl = Client.BaseUri; - var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "facelists/{faceListId}/persistedFaces"; - _url = _url.Replace("{azureRegion}", Client.AzureRegion1); - _url = _url.Replace("{faceListId}", System.Uri.EscapeDataString(faceListId)); - List _queryParameters = new List(); - if (userData != null) - { - _queryParameters.Add(string.Format("userData={0}", System.Uri.EscapeDataString(userData))); - } - if (targetFace != null) - { - _queryParameters.Add(string.Format("targetFace={0}", System.Uri.EscapeDataString(targetFace))); - } - if (_queryParameters.Count > 0) - { - _url += "?" + string.Join("&", _queryParameters); - } - // Create HTTP transport objects - var _httpRequest = new HttpRequestMessage(); - HttpResponseMessage _httpResponse = null; - _httpRequest.Method = new HttpMethod("POST"); - _httpRequest.RequestUri = new System.Uri(_url); - // Set Headers - if (Client.SubscriptionKey != null) - { - if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) - { - _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); - } - _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); - } - - - if (customHeaders != null) - { - foreach(var _header in customHeaders) - { - if (_httpRequest.Headers.Contains(_header.Key)) - { - _httpRequest.Headers.Remove(_header.Key); - } - _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); - } - } - - // Serialize Request - string _requestContent = null; - // Send Request - if (_shouldTrace) - { - ServiceClientTracing.SendRequest(_invocationId, _httpRequest); - } - cancellationToken.ThrowIfCancellationRequested(); - _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); - if (_shouldTrace) - { - ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); - } - HttpStatusCode _statusCode = _httpResponse.StatusCode; - cancellationToken.ThrowIfCancellationRequested(); - string _responseContent = null; - if ((int)_statusCode != 200) - { - var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); - try - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - if (_errorBody != null) - { - ex.Body = _errorBody; - } - } - catch (JsonException) - { - // Ignore the exception - } - ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); - ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); - if (_shouldTrace) - { - ServiceClientTracing.Error(_invocationId, ex); - } - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw ex; - } - // Create Result - var _result = new HttpOperationResponse(); - _result.Request = _httpRequest; - _result.Response = _httpResponse; - if (_shouldTrace) - { - ServiceClientTracing.Exit(_invocationId, _result); - } - return _result; - } - - } -} diff --git a/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceListExtensions.cs b/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceListExtensions.cs deleted file mode 100644 index 90a316dad1f6..000000000000 --- a/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceListExtensions.cs +++ /dev/null @@ -1,363 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Vision.Face -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Vision; - using Models; - using System.Collections; - using System.Collections.Generic; - using System.Threading; - using System.Threading.Tasks; - - /// - /// Extension methods for FaceList. - /// - public static partial class FaceListExtensions - { - /// - /// Create an empty face list. Up to 64 face lists are allowed to exist in one - /// subscription. - /// - /// - /// The operations group for this extension method. - /// - /// - /// Id referencing a particular face list. - /// - /// - /// Name of the face list, maximum length is 128. - /// - /// - /// Optional user defined data for the face list. Length should not exceed - /// 16KB. - /// - public static void Create(this IFaceList operations, string faceListId, string name = default(string), string userData = default(string)) - { - operations.CreateAsync(faceListId, name, userData).GetAwaiter().GetResult(); - } - - /// - /// Create an empty face list. Up to 64 face lists are allowed to exist in one - /// subscription. - /// - /// - /// The operations group for this extension method. - /// - /// - /// Id referencing a particular face list. - /// - /// - /// Name of the face list, maximum length is 128. - /// - /// - /// Optional user defined data for the face list. Length should not exceed - /// 16KB. - /// - /// - /// The cancellation token. - /// - public static async Task CreateAsync(this IFaceList operations, string faceListId, string name = default(string), string userData = default(string), CancellationToken cancellationToken = default(CancellationToken)) - { - (await operations.CreateWithHttpMessagesAsync(faceListId, name, userData, null, cancellationToken).ConfigureAwait(false)).Dispose(); - } - - /// - /// Retrieve a face list's information. - /// - /// - /// The operations group for this extension method. - /// - /// - /// Id referencing a Face List. - /// - public static GetFaceListResult Get(this IFaceList operations, string faceListId) - { - return operations.GetAsync(faceListId).GetAwaiter().GetResult(); - } - - /// - /// Retrieve a face list's information. - /// - /// - /// The operations group for this extension method. - /// - /// - /// Id referencing a Face List. - /// - /// - /// The cancellation token. - /// - public static async Task GetAsync(this IFaceList operations, string faceListId, CancellationToken cancellationToken = default(CancellationToken)) - { - using (var _result = await operations.GetWithHttpMessagesAsync(faceListId, null, cancellationToken).ConfigureAwait(false)) - { - return _result.Body; - } - } - - /// - /// Update information of a face list. - /// - /// - /// The operations group for this extension method. - /// - /// - /// Id referencing a Face List. - /// - /// - /// Name of the face list, maximum length is 128. - /// - /// - /// Optional user defined data for the face list. Length should not exceed - /// 16KB. - /// - public static void Update(this IFaceList operations, string faceListId, string name = default(string), string userData = default(string)) - { - operations.UpdateAsync(faceListId, name, userData).GetAwaiter().GetResult(); - } - - /// - /// Update information of a face list. - /// - /// - /// The operations group for this extension method. - /// - /// - /// Id referencing a Face List. - /// - /// - /// Name of the face list, maximum length is 128. - /// - /// - /// Optional user defined data for the face list. Length should not exceed - /// 16KB. - /// - /// - /// The cancellation token. - /// - public static async Task UpdateAsync(this IFaceList operations, string faceListId, string name = default(string), string userData = default(string), CancellationToken cancellationToken = default(CancellationToken)) - { - (await operations.UpdateWithHttpMessagesAsync(faceListId, name, userData, null, cancellationToken).ConfigureAwait(false)).Dispose(); - } - - /// - /// Delete an existing face list according to faceListId. Persisted face images - /// in the face list will also be deleted. - /// - /// - /// The operations group for this extension method. - /// - /// - /// Id referencing a Face List. - /// - public static void Delete(this IFaceList operations, string faceListId) - { - operations.DeleteAsync(faceListId).GetAwaiter().GetResult(); - } - - /// - /// Delete an existing face list according to faceListId. Persisted face images - /// in the face list will also be deleted. - /// - /// - /// The operations group for this extension method. - /// - /// - /// Id referencing a Face List. - /// - /// - /// The cancellation token. - /// - public static async Task DeleteAsync(this IFaceList operations, string faceListId, CancellationToken cancellationToken = default(CancellationToken)) - { - (await operations.DeleteWithHttpMessagesAsync(faceListId, null, cancellationToken).ConfigureAwait(false)).Dispose(); - } - - /// - /// Retrieve information about all existing face lists. Only faceListId, name - /// and userData will be returned. - /// - /// - /// The operations group for this extension method. - /// - public static IList List(this IFaceList operations) - { - return operations.ListAsync().GetAwaiter().GetResult(); - } - - /// - /// Retrieve information about all existing face lists. Only faceListId, name - /// and userData will be returned. - /// - /// - /// The operations group for this extension method. - /// - /// - /// The cancellation token. - /// - public static async Task> ListAsync(this IFaceList operations, CancellationToken cancellationToken = default(CancellationToken)) - { - using (var _result = await operations.ListWithHttpMessagesAsync(null, cancellationToken).ConfigureAwait(false)) - { - return _result.Body; - } - } - - /// - /// Delete an existing face from a face list (given by a persisitedFaceId and a - /// faceListId). Persisted image related to the face will also be deleted. - /// - /// - /// The operations group for this extension method. - /// - /// - /// faceListId of an existing face list. - /// - /// - /// persistedFaceId of an existing face. - /// - public static void DeleteFace(this IFaceList operations, string faceListId, string persistedFaceId) - { - operations.DeleteFaceAsync(faceListId, persistedFaceId).GetAwaiter().GetResult(); - } - - /// - /// Delete an existing face from a face list (given by a persisitedFaceId and a - /// faceListId). Persisted image related to the face will also be deleted. - /// - /// - /// The operations group for this extension method. - /// - /// - /// faceListId of an existing face list. - /// - /// - /// persistedFaceId of an existing face. - /// - /// - /// The cancellation token. - /// - public static async Task DeleteFaceAsync(this IFaceList operations, string faceListId, string persistedFaceId, CancellationToken cancellationToken = default(CancellationToken)) - { - (await operations.DeleteFaceWithHttpMessagesAsync(faceListId, persistedFaceId, null, cancellationToken).ConfigureAwait(false)).Dispose(); - } - - /// - /// Add a face to a face list. The input face is specified as an image with a - /// targetFace rectangle. It returns a persistedFaceId representing the added - /// face, and persistedFaceId will not expire. - /// - /// - /// The operations group for this extension method. - /// - /// - /// Id referencing a Face List. - /// - /// - /// User-specified data about the face list for any purpose. The maximum - /// length is 1KB. - /// - /// - /// A face rectangle to specify the target face to be added into the face list, - /// in the format of "targetFace=left,top,width,height". E.g. - /// "targetFace=10,10,100,100". If there is more than one face in the image, - /// targetFace is required to specify which face to add. No targetFace means - /// there is only one face detected in the entire image. - /// - public static void AddFace(this IFaceList operations, string faceListId, string userData = default(string), string targetFace = default(string)) - { - operations.AddFaceAsync(faceListId, userData, targetFace).GetAwaiter().GetResult(); - } - - /// - /// Add a face to a face list. The input face is specified as an image with a - /// targetFace rectangle. It returns a persistedFaceId representing the added - /// face, and persistedFaceId will not expire. - /// - /// - /// The operations group for this extension method. - /// - /// - /// Id referencing a Face List. - /// - /// - /// User-specified data about the face list for any purpose. The maximum - /// length is 1KB. - /// - /// - /// A face rectangle to specify the target face to be added into the face list, - /// in the format of "targetFace=left,top,width,height". E.g. - /// "targetFace=10,10,100,100". If there is more than one face in the image, - /// targetFace is required to specify which face to add. No targetFace means - /// there is only one face detected in the entire image. - /// - /// - /// The cancellation token. - /// - public static async Task AddFaceAsync(this IFaceList operations, string faceListId, string userData = default(string), string targetFace = default(string), CancellationToken cancellationToken = default(CancellationToken)) - { - (await operations.AddFaceWithHttpMessagesAsync(faceListId, userData, targetFace, null, cancellationToken).ConfigureAwait(false)).Dispose(); - } - - /// - /// Add a face to a face list. The input face is specified as an image with a - /// targetFace rectangle. It returns a persistedFaceId representing the added - /// face, and persistedFaceId will not expire. - /// - /// - /// The operations group for this extension method. - /// - /// - /// Id referencing a Face List. - /// - /// - /// User-specified data about the face list for any purpose. The maximum - /// length is 1KB. - /// - /// - /// A face rectangle to specify the target face to be added into the face list, - /// in the format of "targetFace=left,top,width,height". E.g. - /// "targetFace=10,10,100,100". If there is more than one face in the image, - /// targetFace is required to specify which face to add. No targetFace means - /// there is only one face detected in the entire image. - /// - public static void AddFaceFromStream(this IFaceList operations, string faceListId, string userData = default(string), string targetFace = default(string)) - { - operations.AddFaceFromStreamAsync(faceListId, userData, targetFace).GetAwaiter().GetResult(); - } - - /// - /// Add a face to a face list. The input face is specified as an image with a - /// targetFace rectangle. It returns a persistedFaceId representing the added - /// face, and persistedFaceId will not expire. - /// - /// - /// The operations group for this extension method. - /// - /// - /// Id referencing a Face List. - /// - /// - /// User-specified data about the face list for any purpose. The maximum - /// length is 1KB. - /// - /// - /// A face rectangle to specify the target face to be added into the face list, - /// in the format of "targetFace=left,top,width,height". E.g. - /// "targetFace=10,10,100,100". If there is more than one face in the image, - /// targetFace is required to specify which face to add. No targetFace means - /// there is only one face detected in the entire image. - /// - /// - /// The cancellation token. - /// - public static async Task AddFaceFromStreamAsync(this IFaceList operations, string faceListId, string userData = default(string), string targetFace = default(string), CancellationToken cancellationToken = default(CancellationToken)) - { - (await operations.AddFaceFromStreamWithHttpMessagesAsync(faceListId, userData, targetFace, null, cancellationToken).ConfigureAwait(false)).Dispose(); - } - - } -} diff --git a/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceOperations.cs b/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceOperations.cs deleted file mode 100644 index 95954a94fc0e..000000000000 --- a/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceOperations.cs +++ /dev/null @@ -1,1263 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Vision.Face -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Vision; - using Microsoft.Rest; - using Models; - using Newtonsoft.Json; - using System.Collections; - using System.Collections.Generic; - using System.IO; - using System.Net; - using System.Net.Http; - using System.Threading; - using System.Threading.Tasks; - - /// - /// FaceOperations operations. - /// - public partial class FaceOperations : IServiceOperations, IFaceOperations - { - /// - /// Initializes a new instance of the FaceOperations class. - /// - /// - /// Reference to the service client. - /// - /// - /// Thrown when a required parameter is null - /// - public FaceOperations(FaceAPI client) - { - if (client == null) - { - throw new System.ArgumentNullException("client"); - } - Client = client; - } - - /// - /// Gets a reference to the FaceAPI - /// - public FaceAPI Client { get; private set; } - - /// - /// Given query face's faceId, find the similar-looking faces from a faceId - /// array or a faceListId. - /// - /// - /// FaceId of the query face. User needs to call Face - Detect first to get a - /// valid faceId. Note that this faceId is not persisted and will expire 24 - /// hours after the detection call - /// - /// - /// An existing user-specified unique candidate face list, created in Face List - /// - Create a Face List. Face list contains a set of persistedFaceIds which - /// are persisted and will never expire. Parameter faceListId and faceIds - /// should not be provided at the same time - /// - /// - /// An array of candidate faceIds. All of them are created by Face - Detect and - /// the faceIds will expire 24 hours after the detection call. - /// - /// - /// The number of top similar faces returned. The valid range is [1, 1000]. - /// - /// - /// Similar face searching mode. It can be "matchPerson" or "matchFace". - /// Possible values include: 'matchPerson', 'matchFace' - /// - /// - /// Headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when unable to deserialize the response - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// A response object containing the response body and response headers. - /// - public async Task>> FindSimilarWithHttpMessagesAsync(string faceId, string faceListId = default(string), IList faceIds = default(IList), int? maxNumOfCandidatesReturned = 20, string mode = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) - { - if (Client.AzureRegion1 == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); - } - if (Client.SubscriptionKey == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); - } - if (faceId == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "faceId"); - } - if (faceId != null) - { - if (faceId.Length > 64) - { - throw new ValidationException(ValidationRules.MaxLength, "faceId", 64); - } - } - if (faceListId != null) - { - if (faceListId.Length > 64) - { - throw new ValidationException(ValidationRules.MaxLength, "faceListId", 64); - } - if (!System.Text.RegularExpressions.Regex.IsMatch(faceListId, "^[a-z0-9-_]+$")) - { - throw new ValidationException(ValidationRules.Pattern, "faceListId", "^[a-z0-9-_]+$"); - } - } - if (faceIds != null) - { - if (faceIds.Count > 1000) - { - throw new ValidationException(ValidationRules.MaxItems, "faceIds", 1000); - } - } - if (maxNumOfCandidatesReturned > 1000) - { - throw new ValidationException(ValidationRules.InclusiveMaximum, "maxNumOfCandidatesReturned", 1000); - } - if (maxNumOfCandidatesReturned < 1) - { - throw new ValidationException(ValidationRules.InclusiveMinimum, "maxNumOfCandidatesReturned", 1); - } - FindSimilarRequest body = new FindSimilarRequest(); - if (faceId != null || faceListId != null || faceIds != null || maxNumOfCandidatesReturned != null || mode != null) - { - body.FaceId = faceId; - body.FaceListId = faceListId; - body.FaceIds = faceIds; - body.MaxNumOfCandidatesReturned = maxNumOfCandidatesReturned; - body.Mode = mode; - } - // Tracing - bool _shouldTrace = ServiceClientTracing.IsEnabled; - string _invocationId = null; - if (_shouldTrace) - { - _invocationId = ServiceClientTracing.NextInvocationId.ToString(); - Dictionary tracingParameters = new Dictionary(); - tracingParameters.Add("body", body); - tracingParameters.Add("cancellationToken", cancellationToken); - ServiceClientTracing.Enter(_invocationId, this, "FindSimilar", tracingParameters); - } - // Construct URL - var _baseUrl = Client.BaseUri; - var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "findsimilars"; - _url = _url.Replace("{azureRegion}", Client.AzureRegion1); - // Create HTTP transport objects - var _httpRequest = new HttpRequestMessage(); - HttpResponseMessage _httpResponse = null; - _httpRequest.Method = new HttpMethod("POST"); - _httpRequest.RequestUri = new System.Uri(_url); - // Set Headers - if (Client.SubscriptionKey != null) - { - if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) - { - _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); - } - _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); - } - - - if (customHeaders != null) - { - foreach(var _header in customHeaders) - { - if (_httpRequest.Headers.Contains(_header.Key)) - { - _httpRequest.Headers.Remove(_header.Key); - } - _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); - } - } - - // Serialize Request - string _requestContent = null; - if(body != null) - { - _requestContent = Rest.Serialization.SafeJsonConvert.SerializeObject(body, Client.SerializationSettings); - _httpRequest.Content = new StringContent(_requestContent, System.Text.Encoding.UTF8); - _httpRequest.Content.Headers.ContentType =System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json; charset=utf-8"); - } - // Send Request - if (_shouldTrace) - { - ServiceClientTracing.SendRequest(_invocationId, _httpRequest); - } - cancellationToken.ThrowIfCancellationRequested(); - _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); - if (_shouldTrace) - { - ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); - } - HttpStatusCode _statusCode = _httpResponse.StatusCode; - cancellationToken.ThrowIfCancellationRequested(); - string _responseContent = null; - if ((int)_statusCode != 200) - { - var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); - try - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - if (_errorBody != null) - { - ex.Body = _errorBody; - } - } - catch (JsonException) - { - // Ignore the exception - } - ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); - ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); - if (_shouldTrace) - { - ServiceClientTracing.Error(_invocationId, ex); - } - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw ex; - } - // Create Result - var _result = new HttpOperationResponse>(); - _result.Request = _httpRequest; - _result.Response = _httpResponse; - // Deserialize Response - if ((int)_statusCode == 200) - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - try - { - _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject>(_responseContent, Client.DeserializationSettings); - } - catch (JsonException ex) - { - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); - } - } - if (_shouldTrace) - { - ServiceClientTracing.Exit(_invocationId, _result); - } - return _result; - } - - /// - /// Divide candidate faces into groups based on face similarity. - /// - /// - /// Array of candidate faceId created by Face - Detect. The maximum is 1000 - /// faces - /// - /// - /// Headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when unable to deserialize the response - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// A response object containing the response body and response headers. - /// - public async Task> GroupWithHttpMessagesAsync(IList faceIds, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) - { - if (Client.AzureRegion1 == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); - } - if (Client.SubscriptionKey == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); - } - if (faceIds == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "faceIds"); - } - if (faceIds != null) - { - if (faceIds.Count > 1000) - { - throw new ValidationException(ValidationRules.MaxItems, "faceIds", 1000); - } - } - GroupRequest body = new GroupRequest(); - if (faceIds != null) - { - body.FaceIds = faceIds; - } - // Tracing - bool _shouldTrace = ServiceClientTracing.IsEnabled; - string _invocationId = null; - if (_shouldTrace) - { - _invocationId = ServiceClientTracing.NextInvocationId.ToString(); - Dictionary tracingParameters = new Dictionary(); - tracingParameters.Add("body", body); - tracingParameters.Add("cancellationToken", cancellationToken); - ServiceClientTracing.Enter(_invocationId, this, "Group", tracingParameters); - } - // Construct URL - var _baseUrl = Client.BaseUri; - var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "group"; - _url = _url.Replace("{azureRegion}", Client.AzureRegion1); - // Create HTTP transport objects - var _httpRequest = new HttpRequestMessage(); - HttpResponseMessage _httpResponse = null; - _httpRequest.Method = new HttpMethod("POST"); - _httpRequest.RequestUri = new System.Uri(_url); - // Set Headers - if (Client.SubscriptionKey != null) - { - if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) - { - _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); - } - _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); - } - - - if (customHeaders != null) - { - foreach(var _header in customHeaders) - { - if (_httpRequest.Headers.Contains(_header.Key)) - { - _httpRequest.Headers.Remove(_header.Key); - } - _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); - } - } - - // Serialize Request - string _requestContent = null; - if(body != null) - { - _requestContent = Rest.Serialization.SafeJsonConvert.SerializeObject(body, Client.SerializationSettings); - _httpRequest.Content = new StringContent(_requestContent, System.Text.Encoding.UTF8); - _httpRequest.Content.Headers.ContentType =System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json; charset=utf-8"); - } - // Send Request - if (_shouldTrace) - { - ServiceClientTracing.SendRequest(_invocationId, _httpRequest); - } - cancellationToken.ThrowIfCancellationRequested(); - _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); - if (_shouldTrace) - { - ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); - } - HttpStatusCode _statusCode = _httpResponse.StatusCode; - cancellationToken.ThrowIfCancellationRequested(); - string _responseContent = null; - if ((int)_statusCode != 200) - { - var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); - try - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - if (_errorBody != null) - { - ex.Body = _errorBody; - } - } - catch (JsonException) - { - // Ignore the exception - } - ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); - ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); - if (_shouldTrace) - { - ServiceClientTracing.Error(_invocationId, ex); - } - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw ex; - } - // Create Result - var _result = new HttpOperationResponse(); - _result.Request = _httpRequest; - _result.Response = _httpResponse; - // Deserialize Response - if ((int)_statusCode == 200) - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - try - { - _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - } - catch (JsonException ex) - { - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); - } - } - if (_shouldTrace) - { - ServiceClientTracing.Exit(_invocationId, _result); - } - return _result; - } - - /// - /// Identify unknown faces from a person group. - /// - /// - /// personGroupId of the target person group, created by PersonGroups.Create - /// - /// - /// Array of candidate faceId created by Face - Detect. - /// - /// - /// The number of top similar faces returned. - /// - /// - /// Confidence threshold of identification, used to judge whether one face - /// belong to one person. - /// - /// - /// Headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when unable to deserialize the response - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// A response object containing the response body and response headers. - /// - public async Task>> IdentifyWithHttpMessagesAsync(string personGroupId, IList faceIds, int? maxNumOfCandidatesReturned = 1, double? confidenceThreshold = default(double?), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) - { - if (Client.AzureRegion1 == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); - } - if (Client.SubscriptionKey == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); - } - if (personGroupId == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "personGroupId"); - } - if (faceIds == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "faceIds"); - } - if (faceIds != null) - { - if (faceIds.Count > 1000) - { - throw new ValidationException(ValidationRules.MaxItems, "faceIds", 1000); - } - } - if (maxNumOfCandidatesReturned > 1000) - { - throw new ValidationException(ValidationRules.InclusiveMaximum, "maxNumOfCandidatesReturned", 1000); - } - if (maxNumOfCandidatesReturned < 1) - { - throw new ValidationException(ValidationRules.InclusiveMinimum, "maxNumOfCandidatesReturned", 1); - } - if (confidenceThreshold > 1) - { - throw new ValidationException(ValidationRules.InclusiveMaximum, "confidenceThreshold", 1); - } - if (confidenceThreshold < 0) - { - throw new ValidationException(ValidationRules.InclusiveMinimum, "confidenceThreshold", 0); - } - IdentifyRequest body = new IdentifyRequest(); - if (personGroupId != null || faceIds != null || maxNumOfCandidatesReturned != null || confidenceThreshold != null) - { - body.PersonGroupId = personGroupId; - body.FaceIds = faceIds; - body.MaxNumOfCandidatesReturned = maxNumOfCandidatesReturned; - body.ConfidenceThreshold = confidenceThreshold; - } - // Tracing - bool _shouldTrace = ServiceClientTracing.IsEnabled; - string _invocationId = null; - if (_shouldTrace) - { - _invocationId = ServiceClientTracing.NextInvocationId.ToString(); - Dictionary tracingParameters = new Dictionary(); - tracingParameters.Add("body", body); - tracingParameters.Add("cancellationToken", cancellationToken); - ServiceClientTracing.Enter(_invocationId, this, "Identify", tracingParameters); - } - // Construct URL - var _baseUrl = Client.BaseUri; - var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "identify"; - _url = _url.Replace("{azureRegion}", Client.AzureRegion1); - // Create HTTP transport objects - var _httpRequest = new HttpRequestMessage(); - HttpResponseMessage _httpResponse = null; - _httpRequest.Method = new HttpMethod("POST"); - _httpRequest.RequestUri = new System.Uri(_url); - // Set Headers - if (Client.SubscriptionKey != null) - { - if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) - { - _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); - } - _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); - } - - - if (customHeaders != null) - { - foreach(var _header in customHeaders) - { - if (_httpRequest.Headers.Contains(_header.Key)) - { - _httpRequest.Headers.Remove(_header.Key); - } - _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); - } - } - - // Serialize Request - string _requestContent = null; - if(body != null) - { - _requestContent = Rest.Serialization.SafeJsonConvert.SerializeObject(body, Client.SerializationSettings); - _httpRequest.Content = new StringContent(_requestContent, System.Text.Encoding.UTF8); - _httpRequest.Content.Headers.ContentType =System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json; charset=utf-8"); - } - // Send Request - if (_shouldTrace) - { - ServiceClientTracing.SendRequest(_invocationId, _httpRequest); - } - cancellationToken.ThrowIfCancellationRequested(); - _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); - if (_shouldTrace) - { - ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); - } - HttpStatusCode _statusCode = _httpResponse.StatusCode; - cancellationToken.ThrowIfCancellationRequested(); - string _responseContent = null; - if ((int)_statusCode != 200) - { - var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); - try - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - if (_errorBody != null) - { - ex.Body = _errorBody; - } - } - catch (JsonException) - { - // Ignore the exception - } - ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); - ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); - if (_shouldTrace) - { - ServiceClientTracing.Error(_invocationId, ex); - } - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw ex; - } - // Create Result - var _result = new HttpOperationResponse>(); - _result.Request = _httpRequest; - _result.Response = _httpResponse; - // Deserialize Response - if ((int)_statusCode == 200) - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - try - { - _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject>(_responseContent, Client.DeserializationSettings); - } - catch (JsonException ex) - { - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); - } - } - if (_shouldTrace) - { - ServiceClientTracing.Exit(_invocationId, _result); - } - return _result; - } - - /// - /// Verify whether two faces belong to a same person or whether one face - /// belongs to a person. - /// - /// - /// faceId the face, comes from Face - Detect - /// - /// - /// Specify a certain person in a person group. personId is created in - /// Persons.Create. - /// - /// - /// Using existing personGroupId and personId for fast loading a specified - /// person. personGroupId is created in Person Groups.Create. - /// - /// - /// Headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when unable to deserialize the response - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// A response object containing the response body and response headers. - /// - public async Task> VerifyWithHttpMessagesAsync(string faceId, string personId, string personGroupId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) - { - if (Client.AzureRegion1 == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); - } - if (Client.SubscriptionKey == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); - } - if (faceId == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "faceId"); - } - if (faceId != null) - { - if (faceId.Length > 64) - { - throw new ValidationException(ValidationRules.MaxLength, "faceId", 64); - } - } - if (personId == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "personId"); - } - if (personGroupId == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "personGroupId"); - } - VerifyRequest body = new VerifyRequest(); - if (faceId != null || personId != null || personGroupId != null) - { - body.FaceId = faceId; - body.PersonId = personId; - body.PersonGroupId = personGroupId; - } - // Tracing - bool _shouldTrace = ServiceClientTracing.IsEnabled; - string _invocationId = null; - if (_shouldTrace) - { - _invocationId = ServiceClientTracing.NextInvocationId.ToString(); - Dictionary tracingParameters = new Dictionary(); - tracingParameters.Add("body", body); - tracingParameters.Add("cancellationToken", cancellationToken); - ServiceClientTracing.Enter(_invocationId, this, "Verify", tracingParameters); - } - // Construct URL - var _baseUrl = Client.BaseUri; - var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "verify"; - _url = _url.Replace("{azureRegion}", Client.AzureRegion1); - // Create HTTP transport objects - var _httpRequest = new HttpRequestMessage(); - HttpResponseMessage _httpResponse = null; - _httpRequest.Method = new HttpMethod("POST"); - _httpRequest.RequestUri = new System.Uri(_url); - // Set Headers - if (Client.SubscriptionKey != null) - { - if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) - { - _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); - } - _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); - } - - - if (customHeaders != null) - { - foreach(var _header in customHeaders) - { - if (_httpRequest.Headers.Contains(_header.Key)) - { - _httpRequest.Headers.Remove(_header.Key); - } - _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); - } - } - - // Serialize Request - string _requestContent = null; - if(body != null) - { - _requestContent = Rest.Serialization.SafeJsonConvert.SerializeObject(body, Client.SerializationSettings); - _httpRequest.Content = new StringContent(_requestContent, System.Text.Encoding.UTF8); - _httpRequest.Content.Headers.ContentType =System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json; charset=utf-8"); - } - // Send Request - if (_shouldTrace) - { - ServiceClientTracing.SendRequest(_invocationId, _httpRequest); - } - cancellationToken.ThrowIfCancellationRequested(); - _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); - if (_shouldTrace) - { - ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); - } - HttpStatusCode _statusCode = _httpResponse.StatusCode; - cancellationToken.ThrowIfCancellationRequested(); - string _responseContent = null; - if ((int)_statusCode != 200) - { - var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); - try - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - if (_errorBody != null) - { - ex.Body = _errorBody; - } - } - catch (JsonException) - { - // Ignore the exception - } - ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); - ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); - if (_shouldTrace) - { - ServiceClientTracing.Error(_invocationId, ex); - } - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw ex; - } - // Create Result - var _result = new HttpOperationResponse(); - _result.Request = _httpRequest; - _result.Response = _httpResponse; - // Deserialize Response - if ((int)_statusCode == 200) - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - try - { - _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - } - catch (JsonException ex) - { - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); - } - } - if (_shouldTrace) - { - ServiceClientTracing.Exit(_invocationId, _result); - } - return _result; - } - - /// - /// Detect human faces in an image and returns face locations, and optionally - /// with faceIds, landmarks, and attributes. - /// - /// - /// - /// - /// A value indicating whether the operation should return faceIds of detected - /// faces. - /// - /// - /// A value indicating whether the operation should return landmarks of the - /// detected faces. - /// - /// - /// Analyze and return the one or more specified face attributes in the - /// comma-separated string like "returnFaceAttributes=age,gender". Supported - /// face attributes include age, gender, headPose, smile, facialHair, glasses - /// and emotion. Note that each face attribute analysis has additional - /// computational and time cost. - /// - /// - /// Headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when unable to deserialize the response - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// A response object containing the response body and response headers. - /// - public async Task>> DetectWithHttpMessagesAsync(string url, bool? returnFaceId = true, bool? returnFaceLandmarks = false, string returnFaceAttributes = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) - { - if (Client.AzureRegion1 == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); - } - if (Client.SubscriptionKey == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); - } - if (url == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "url"); - } - ImageUrl imageUrl = new ImageUrl(); - if (url != null) - { - imageUrl.Url = url; - } - // Tracing - bool _shouldTrace = ServiceClientTracing.IsEnabled; - string _invocationId = null; - if (_shouldTrace) - { - _invocationId = ServiceClientTracing.NextInvocationId.ToString(); - Dictionary tracingParameters = new Dictionary(); - tracingParameters.Add("returnFaceId", returnFaceId); - tracingParameters.Add("returnFaceLandmarks", returnFaceLandmarks); - tracingParameters.Add("returnFaceAttributes", returnFaceAttributes); - tracingParameters.Add("imageUrl", imageUrl); - tracingParameters.Add("cancellationToken", cancellationToken); - ServiceClientTracing.Enter(_invocationId, this, "Detect", tracingParameters); - } - // Construct URL - var _baseUrl = Client.BaseUri; - var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "detect"; - _url = _url.Replace("{azureRegion}", Client.AzureRegion1); - List _queryParameters = new List(); - if (returnFaceId != null) - { - _queryParameters.Add(string.Format("returnFaceId={0}", System.Uri.EscapeDataString(Rest.Serialization.SafeJsonConvert.SerializeObject(returnFaceId, Client.SerializationSettings).Trim('"')))); - } - if (returnFaceLandmarks != null) - { - _queryParameters.Add(string.Format("returnFaceLandmarks={0}", System.Uri.EscapeDataString(Rest.Serialization.SafeJsonConvert.SerializeObject(returnFaceLandmarks, Client.SerializationSettings).Trim('"')))); - } - if (returnFaceAttributes != null) - { - _queryParameters.Add(string.Format("returnFaceAttributes={0}", System.Uri.EscapeDataString(returnFaceAttributes))); - } - if (_queryParameters.Count > 0) - { - _url += "?" + string.Join("&", _queryParameters); - } - // Create HTTP transport objects - var _httpRequest = new HttpRequestMessage(); - HttpResponseMessage _httpResponse = null; - _httpRequest.Method = new HttpMethod("POST"); - _httpRequest.RequestUri = new System.Uri(_url); - // Set Headers - if (Client.SubscriptionKey != null) - { - if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) - { - _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); - } - _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); - } - - - if (customHeaders != null) - { - foreach(var _header in customHeaders) - { - if (_httpRequest.Headers.Contains(_header.Key)) - { - _httpRequest.Headers.Remove(_header.Key); - } - _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); - } - } - - // Serialize Request - string _requestContent = null; - if(imageUrl != null) - { - _requestContent = Rest.Serialization.SafeJsonConvert.SerializeObject(imageUrl, Client.SerializationSettings); - _httpRequest.Content = new StringContent(_requestContent, System.Text.Encoding.UTF8); - _httpRequest.Content.Headers.ContentType =System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json; charset=utf-8"); - } - // Send Request - if (_shouldTrace) - { - ServiceClientTracing.SendRequest(_invocationId, _httpRequest); - } - cancellationToken.ThrowIfCancellationRequested(); - _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); - if (_shouldTrace) - { - ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); - } - HttpStatusCode _statusCode = _httpResponse.StatusCode; - cancellationToken.ThrowIfCancellationRequested(); - string _responseContent = null; - if ((int)_statusCode != 200) - { - var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); - try - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - if (_errorBody != null) - { - ex.Body = _errorBody; - } - } - catch (JsonException) - { - // Ignore the exception - } - ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); - ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); - if (_shouldTrace) - { - ServiceClientTracing.Error(_invocationId, ex); - } - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw ex; - } - // Create Result - var _result = new HttpOperationResponse>(); - _result.Request = _httpRequest; - _result.Response = _httpResponse; - // Deserialize Response - if ((int)_statusCode == 200) - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - try - { - _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject>(_responseContent, Client.DeserializationSettings); - } - catch (JsonException ex) - { - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); - } - } - if (_shouldTrace) - { - ServiceClientTracing.Exit(_invocationId, _result); - } - return _result; - } - - /// - /// Detect human faces in an image and returns face locations, and optionally - /// with faceIds, landmarks, and attributes. - /// - /// - /// An image stream. - /// - /// - /// A value indicating whether the operation should return faceIds of detected - /// faces. - /// - /// - /// A value indicating whether the operation should return landmarks of the - /// detected faces. - /// - /// - /// Analyze and return the one or more specified face attributes in the - /// comma-separated string like "returnFaceAttributes=age,gender". Supported - /// face attributes include age, gender, headPose, smile, facialHair, glasses - /// and emotion. Note that each face attribute analysis has additional - /// computational and time cost. - /// - /// - /// Headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when unable to deserialize the response - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// A response object containing the response body and response headers. - /// - public async Task>> DetectInStreamWithHttpMessagesAsync(Stream image, bool? returnFaceId = true, bool? returnFaceLandmarks = false, string returnFaceAttributes = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) - { - if (Client.AzureRegion1 == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); - } - if (Client.SubscriptionKey == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); - } - if (image == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "image"); - } - // Tracing - bool _shouldTrace = ServiceClientTracing.IsEnabled; - string _invocationId = null; - if (_shouldTrace) - { - _invocationId = ServiceClientTracing.NextInvocationId.ToString(); - Dictionary tracingParameters = new Dictionary(); - tracingParameters.Add("returnFaceId", returnFaceId); - tracingParameters.Add("returnFaceLandmarks", returnFaceLandmarks); - tracingParameters.Add("returnFaceAttributes", returnFaceAttributes); - tracingParameters.Add("image", image); - tracingParameters.Add("cancellationToken", cancellationToken); - ServiceClientTracing.Enter(_invocationId, this, "DetectInStream", tracingParameters); - } - // Construct URL - var _baseUrl = Client.BaseUri; - var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "detect"; - _url = _url.Replace("{azureRegion}", Client.AzureRegion1); - List _queryParameters = new List(); - if (returnFaceId != null) - { - _queryParameters.Add(string.Format("returnFaceId={0}", System.Uri.EscapeDataString(Rest.Serialization.SafeJsonConvert.SerializeObject(returnFaceId, Client.SerializationSettings).Trim('"')))); - } - if (returnFaceLandmarks != null) - { - _queryParameters.Add(string.Format("returnFaceLandmarks={0}", System.Uri.EscapeDataString(Rest.Serialization.SafeJsonConvert.SerializeObject(returnFaceLandmarks, Client.SerializationSettings).Trim('"')))); - } - if (returnFaceAttributes != null) - { - _queryParameters.Add(string.Format("returnFaceAttributes={0}", System.Uri.EscapeDataString(returnFaceAttributes))); - } - if (_queryParameters.Count > 0) - { - _url += "?" + string.Join("&", _queryParameters); - } - // Create HTTP transport objects - var _httpRequest = new HttpRequestMessage(); - HttpResponseMessage _httpResponse = null; - _httpRequest.Method = new HttpMethod("POST"); - _httpRequest.RequestUri = new System.Uri(_url); - // Set Headers - if (Client.SubscriptionKey != null) - { - if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) - { - _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); - } - _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); - } - - - if (customHeaders != null) - { - foreach(var _header in customHeaders) - { - if (_httpRequest.Headers.Contains(_header.Key)) - { - _httpRequest.Headers.Remove(_header.Key); - } - _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); - } - } - - // Serialize Request - string _requestContent = null; - if(image == null) - { - throw new System.ArgumentNullException("image"); - } - if (image != null && image != Stream.Null) - { - _httpRequest.Content = new StreamContent(image); - _httpRequest.Content.Headers.ContentType =System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/octet-stream"); - } - // Send Request - if (_shouldTrace) - { - ServiceClientTracing.SendRequest(_invocationId, _httpRequest); - } - cancellationToken.ThrowIfCancellationRequested(); - _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); - if (_shouldTrace) - { - ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); - } - HttpStatusCode _statusCode = _httpResponse.StatusCode; - cancellationToken.ThrowIfCancellationRequested(); - string _responseContent = null; - if ((int)_statusCode != 200) - { - var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); - try - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - if (_errorBody != null) - { - ex.Body = _errorBody; - } - } - catch (JsonException) - { - // Ignore the exception - } - ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); - ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); - if (_shouldTrace) - { - ServiceClientTracing.Error(_invocationId, ex); - } - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw ex; - } - // Create Result - var _result = new HttpOperationResponse>(); - _result.Request = _httpRequest; - _result.Response = _httpResponse; - // Deserialize Response - if ((int)_statusCode == 200) - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - try - { - _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject>(_responseContent, Client.DeserializationSettings); - } - catch (JsonException ex) - { - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); - } - } - if (_shouldTrace) - { - ServiceClientTracing.Exit(_invocationId, _result); - } - return _result; - } - - } -} diff --git a/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceOperationsExtensions.cs b/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceOperationsExtensions.cs deleted file mode 100644 index 3024140abfb7..000000000000 --- a/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceOperationsExtensions.cs +++ /dev/null @@ -1,368 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Vision.Face -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Vision; - using Models; - using System.Collections; - using System.Collections.Generic; - using System.IO; - using System.Threading; - using System.Threading.Tasks; - - /// - /// Extension methods for FaceOperations. - /// - public static partial class FaceOperationsExtensions - { - /// - /// Given query face's faceId, find the similar-looking faces from a faceId - /// array or a faceListId. - /// - /// - /// The operations group for this extension method. - /// - /// - /// FaceId of the query face. User needs to call Face - Detect first to get a - /// valid faceId. Note that this faceId is not persisted and will expire 24 - /// hours after the detection call - /// - /// - /// An existing user-specified unique candidate face list, created in Face List - /// - Create a Face List. Face list contains a set of persistedFaceIds which - /// are persisted and will never expire. Parameter faceListId and faceIds - /// should not be provided at the same time - /// - /// - /// An array of candidate faceIds. All of them are created by Face - Detect and - /// the faceIds will expire 24 hours after the detection call. - /// - /// - /// The number of top similar faces returned. The valid range is [1, 1000]. - /// - /// - /// Similar face searching mode. It can be "matchPerson" or "matchFace". - /// Possible values include: 'matchPerson', 'matchFace' - /// - public static IList FindSimilar(this IFaceOperations operations, string faceId, string faceListId = default(string), IList faceIds = default(IList), int? maxNumOfCandidatesReturned = 20, string mode = default(string)) - { - return operations.FindSimilarAsync(faceId, faceListId, faceIds, maxNumOfCandidatesReturned, mode).GetAwaiter().GetResult(); - } - - /// - /// Given query face's faceId, find the similar-looking faces from a faceId - /// array or a faceListId. - /// - /// - /// The operations group for this extension method. - /// - /// - /// FaceId of the query face. User needs to call Face - Detect first to get a - /// valid faceId. Note that this faceId is not persisted and will expire 24 - /// hours after the detection call - /// - /// - /// An existing user-specified unique candidate face list, created in Face List - /// - Create a Face List. Face list contains a set of persistedFaceIds which - /// are persisted and will never expire. Parameter faceListId and faceIds - /// should not be provided at the same time - /// - /// - /// An array of candidate faceIds. All of them are created by Face - Detect and - /// the faceIds will expire 24 hours after the detection call. - /// - /// - /// The number of top similar faces returned. The valid range is [1, 1000]. - /// - /// - /// Similar face searching mode. It can be "matchPerson" or "matchFace". - /// Possible values include: 'matchPerson', 'matchFace' - /// - /// - /// The cancellation token. - /// - public static async Task> FindSimilarAsync(this IFaceOperations operations, string faceId, string faceListId = default(string), IList faceIds = default(IList), int? maxNumOfCandidatesReturned = 20, string mode = default(string), CancellationToken cancellationToken = default(CancellationToken)) - { - using (var _result = await operations.FindSimilarWithHttpMessagesAsync(faceId, faceListId, faceIds, maxNumOfCandidatesReturned, mode, null, cancellationToken).ConfigureAwait(false)) - { - return _result.Body; - } - } - - /// - /// Divide candidate faces into groups based on face similarity. - /// - /// - /// The operations group for this extension method. - /// - /// - /// Array of candidate faceId created by Face - Detect. The maximum is 1000 - /// faces - /// - public static GroupResponse Group(this IFaceOperations operations, IList faceIds) - { - return operations.GroupAsync(faceIds).GetAwaiter().GetResult(); - } - - /// - /// Divide candidate faces into groups based on face similarity. - /// - /// - /// The operations group for this extension method. - /// - /// - /// Array of candidate faceId created by Face - Detect. The maximum is 1000 - /// faces - /// - /// - /// The cancellation token. - /// - public static async Task GroupAsync(this IFaceOperations operations, IList faceIds, CancellationToken cancellationToken = default(CancellationToken)) - { - using (var _result = await operations.GroupWithHttpMessagesAsync(faceIds, null, cancellationToken).ConfigureAwait(false)) - { - return _result.Body; - } - } - - /// - /// Identify unknown faces from a person group. - /// - /// - /// The operations group for this extension method. - /// - /// - /// personGroupId of the target person group, created by PersonGroups.Create - /// - /// - /// Array of candidate faceId created by Face - Detect. - /// - /// - /// The number of top similar faces returned. - /// - /// - /// Confidence threshold of identification, used to judge whether one face - /// belong to one person. - /// - public static IList Identify(this IFaceOperations operations, string personGroupId, IList faceIds, int? maxNumOfCandidatesReturned = 1, double? confidenceThreshold = default(double?)) - { - return operations.IdentifyAsync(personGroupId, faceIds, maxNumOfCandidatesReturned, confidenceThreshold).GetAwaiter().GetResult(); - } - - /// - /// Identify unknown faces from a person group. - /// - /// - /// The operations group for this extension method. - /// - /// - /// personGroupId of the target person group, created by PersonGroups.Create - /// - /// - /// Array of candidate faceId created by Face - Detect. - /// - /// - /// The number of top similar faces returned. - /// - /// - /// Confidence threshold of identification, used to judge whether one face - /// belong to one person. - /// - /// - /// The cancellation token. - /// - public static async Task> IdentifyAsync(this IFaceOperations operations, string personGroupId, IList faceIds, int? maxNumOfCandidatesReturned = 1, double? confidenceThreshold = default(double?), CancellationToken cancellationToken = default(CancellationToken)) - { - using (var _result = await operations.IdentifyWithHttpMessagesAsync(personGroupId, faceIds, maxNumOfCandidatesReturned, confidenceThreshold, null, cancellationToken).ConfigureAwait(false)) - { - return _result.Body; - } - } - - /// - /// Verify whether two faces belong to a same person or whether one face - /// belongs to a person. - /// - /// - /// The operations group for this extension method. - /// - /// - /// faceId the face, comes from Face - Detect - /// - /// - /// Specify a certain person in a person group. personId is created in - /// Persons.Create. - /// - /// - /// Using existing personGroupId and personId for fast loading a specified - /// person. personGroupId is created in Person Groups.Create. - /// - public static VerifyResult Verify(this IFaceOperations operations, string faceId, string personId, string personGroupId) - { - return operations.VerifyAsync(faceId, personId, personGroupId).GetAwaiter().GetResult(); - } - - /// - /// Verify whether two faces belong to a same person or whether one face - /// belongs to a person. - /// - /// - /// The operations group for this extension method. - /// - /// - /// faceId the face, comes from Face - Detect - /// - /// - /// Specify a certain person in a person group. personId is created in - /// Persons.Create. - /// - /// - /// Using existing personGroupId and personId for fast loading a specified - /// person. personGroupId is created in Person Groups.Create. - /// - /// - /// The cancellation token. - /// - public static async Task VerifyAsync(this IFaceOperations operations, string faceId, string personId, string personGroupId, CancellationToken cancellationToken = default(CancellationToken)) - { - using (var _result = await operations.VerifyWithHttpMessagesAsync(faceId, personId, personGroupId, null, cancellationToken).ConfigureAwait(false)) - { - return _result.Body; - } - } - - /// - /// Detect human faces in an image and returns face locations, and optionally - /// with faceIds, landmarks, and attributes. - /// - /// - /// The operations group for this extension method. - /// - /// - /// - /// - /// A value indicating whether the operation should return faceIds of detected - /// faces. - /// - /// - /// A value indicating whether the operation should return landmarks of the - /// detected faces. - /// - /// - /// Analyze and return the one or more specified face attributes in the - /// comma-separated string like "returnFaceAttributes=age,gender". Supported - /// face attributes include age, gender, headPose, smile, facialHair, glasses - /// and emotion. Note that each face attribute analysis has additional - /// computational and time cost. - /// - public static IList Detect(this IFaceOperations operations, string url, bool? returnFaceId = true, bool? returnFaceLandmarks = false, string returnFaceAttributes = default(string)) - { - return operations.DetectAsync(url, returnFaceId, returnFaceLandmarks, returnFaceAttributes).GetAwaiter().GetResult(); - } - - /// - /// Detect human faces in an image and returns face locations, and optionally - /// with faceIds, landmarks, and attributes. - /// - /// - /// The operations group for this extension method. - /// - /// - /// - /// - /// A value indicating whether the operation should return faceIds of detected - /// faces. - /// - /// - /// A value indicating whether the operation should return landmarks of the - /// detected faces. - /// - /// - /// Analyze and return the one or more specified face attributes in the - /// comma-separated string like "returnFaceAttributes=age,gender". Supported - /// face attributes include age, gender, headPose, smile, facialHair, glasses - /// and emotion. Note that each face attribute analysis has additional - /// computational and time cost. - /// - /// - /// The cancellation token. - /// - public static async Task> DetectAsync(this IFaceOperations operations, string url, bool? returnFaceId = true, bool? returnFaceLandmarks = false, string returnFaceAttributes = default(string), CancellationToken cancellationToken = default(CancellationToken)) - { - using (var _result = await operations.DetectWithHttpMessagesAsync(url, returnFaceId, returnFaceLandmarks, returnFaceAttributes, null, cancellationToken).ConfigureAwait(false)) - { - return _result.Body; - } - } - - /// - /// Detect human faces in an image and returns face locations, and optionally - /// with faceIds, landmarks, and attributes. - /// - /// - /// The operations group for this extension method. - /// - /// - /// An image stream. - /// - /// - /// A value indicating whether the operation should return faceIds of detected - /// faces. - /// - /// - /// A value indicating whether the operation should return landmarks of the - /// detected faces. - /// - /// - /// Analyze and return the one or more specified face attributes in the - /// comma-separated string like "returnFaceAttributes=age,gender". Supported - /// face attributes include age, gender, headPose, smile, facialHair, glasses - /// and emotion. Note that each face attribute analysis has additional - /// computational and time cost. - /// - public static IList DetectInStream(this IFaceOperations operations, Stream image, bool? returnFaceId = true, bool? returnFaceLandmarks = false, string returnFaceAttributes = default(string)) - { - return operations.DetectInStreamAsync(image, returnFaceId, returnFaceLandmarks, returnFaceAttributes).GetAwaiter().GetResult(); - } - - /// - /// Detect human faces in an image and returns face locations, and optionally - /// with faceIds, landmarks, and attributes. - /// - /// - /// The operations group for this extension method. - /// - /// - /// An image stream. - /// - /// - /// A value indicating whether the operation should return faceIds of detected - /// faces. - /// - /// - /// A value indicating whether the operation should return landmarks of the - /// detected faces. - /// - /// - /// Analyze and return the one or more specified face attributes in the - /// comma-separated string like "returnFaceAttributes=age,gender". Supported - /// face attributes include age, gender, headPose, smile, facialHair, glasses - /// and emotion. Note that each face attribute analysis has additional - /// computational and time cost. - /// - /// - /// The cancellation token. - /// - public static async Task> DetectInStreamAsync(this IFaceOperations operations, Stream image, bool? returnFaceId = true, bool? returnFaceLandmarks = false, string returnFaceAttributes = default(string), CancellationToken cancellationToken = default(CancellationToken)) - { - using (var _result = await operations.DetectInStreamWithHttpMessagesAsync(image, returnFaceId, returnFaceLandmarks, returnFaceAttributes, null, cancellationToken).ConfigureAwait(false)) - { - return _result.Body; - } - } - - } -} diff --git a/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IFaceAPI.cs b/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IFaceAPI.cs deleted file mode 100644 index 381fde544fad..000000000000 --- a/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IFaceAPI.cs +++ /dev/null @@ -1,65 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Vision.Face -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Vision; - using Models; - using Newtonsoft.Json; - - /// - /// An API for face detection, verification, and identification. - /// - public partial interface IFaceAPI : System.IDisposable - { - /// - /// The base URI of the service. - /// - - /// - /// Gets or sets json serialization settings. - /// - JsonSerializerSettings SerializationSettings { get; } - - /// - /// Gets or sets json deserialization settings. - /// - JsonSerializerSettings DeserializationSettings { get; } - - /// - /// Supported Azure regions for Face Detection endpoints. Possible - /// values include: 'westus', 'westeurope', 'southeastasia', 'eastus2', - /// 'westcentralus' - /// - string AzureRegion1 { get; set; } - - /// - /// Subscription key in header - /// - string SubscriptionKey { get; set; } - - - /// - /// Gets the IFaceOperations. - /// - IFaceOperations Face { get; } - - /// - /// Gets the IPerson. - /// - IPerson Person { get; } - - /// - /// Gets the IPersonGroup. - /// - IPersonGroup PersonGroup { get; } - - /// - /// Gets the IFaceList. - /// - IFaceList FaceList { get; } - - } -} diff --git a/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IFaceList.cs b/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IFaceList.cs deleted file mode 100644 index 8daaf8386d93..000000000000 --- a/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IFaceList.cs +++ /dev/null @@ -1,227 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Vision.Face -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Vision; - using Microsoft.Rest; - using Models; - using System.Collections; - using System.Collections.Generic; - using System.Threading; - using System.Threading.Tasks; - - /// - /// FaceList operations. - /// - public partial interface IFaceList - { - /// - /// Create an empty face list. Up to 64 face lists are allowed to exist - /// in one subscription. - /// - /// - /// Id referencing a particular face list. - /// - /// - /// Name of the face list, maximum length is 128. - /// - /// - /// Optional user defined data for the face list. Length should not - /// exceed 16KB. - /// - /// - /// The headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when a required parameter is null - /// - Task CreateWithHttpMessagesAsync(string faceListId, string name = default(string), string userData = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - /// - /// Retrieve a face list's information. - /// - /// - /// Id referencing a Face List. - /// - /// - /// The headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when unable to deserialize the response - /// - /// - /// Thrown when a required parameter is null - /// - Task> GetWithHttpMessagesAsync(string faceListId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - /// - /// Update information of a face list. - /// - /// - /// Id referencing a Face List. - /// - /// - /// Name of the face list, maximum length is 128. - /// - /// - /// Optional user defined data for the face list. Length should not - /// exceed 16KB. - /// - /// - /// The headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when a required parameter is null - /// - Task UpdateWithHttpMessagesAsync(string faceListId, string name = default(string), string userData = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - /// - /// Delete an existing face list according to faceListId. Persisted - /// face images in the face list will also be deleted. - /// - /// - /// Id referencing a Face List. - /// - /// - /// The headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when a required parameter is null - /// - Task DeleteWithHttpMessagesAsync(string faceListId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - /// - /// Retrieve information about all existing face lists. Only - /// faceListId, name and userData will be returned. - /// - /// - /// The headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when unable to deserialize the response - /// - /// - /// Thrown when a required parameter is null - /// - Task>> ListWithHttpMessagesAsync(Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - /// - /// Delete an existing face from a face list (given by a - /// persisitedFaceId and a faceListId). Persisted image related to the - /// face will also be deleted. - /// - /// - /// faceListId of an existing face list. - /// - /// - /// persistedFaceId of an existing face. - /// - /// - /// The headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when a required parameter is null - /// - Task DeleteFaceWithHttpMessagesAsync(string faceListId, string persistedFaceId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - /// - /// Add a face to a face list. The input face is specified as an image - /// with a targetFace rectangle. It returns a persistedFaceId - /// representing the added face, and persistedFaceId will not expire. - /// - /// - /// Id referencing a Face List. - /// - /// - /// User-specified data about the face list for any purpose. The - /// maximum length is 1KB. - /// - /// - /// A face rectangle to specify the target face to be added into the - /// face list, in the format of "targetFace=left,top,width,height". - /// E.g. "targetFace=10,10,100,100". If there is more than one face in - /// the image, targetFace is required to specify which face to add. No - /// targetFace means there is only one face detected in the entire - /// image. - /// - /// - /// The headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when a required parameter is null - /// - Task AddFaceWithHttpMessagesAsync(string faceListId, string userData = default(string), string targetFace = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - /// - /// Add a face to a face list. The input face is specified as an image - /// with a targetFace rectangle. It returns a persistedFaceId - /// representing the added face, and persistedFaceId will not expire. - /// - /// - /// Id referencing a Face List. - /// - /// - /// User-specified data about the face list for any purpose. The - /// maximum length is 1KB. - /// - /// - /// A face rectangle to specify the target face to be added into the - /// face list, in the format of "targetFace=left,top,width,height". - /// E.g. "targetFace=10,10,100,100". If there is more than one face in - /// the image, targetFace is required to specify which face to add. No - /// targetFace means there is only one face detected in the entire - /// image. - /// - /// - /// The headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when a required parameter is null - /// - Task AddFaceFromStreamWithHttpMessagesAsync(string faceListId, string userData = default(string), string targetFace = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - } -} diff --git a/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IFaceOperations.cs b/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IFaceOperations.cs deleted file mode 100644 index 42bb76e30712..000000000000 --- a/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IFaceOperations.cs +++ /dev/null @@ -1,230 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Vision.Face -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Vision; - using Microsoft.Rest; - using Models; - using System.Collections; - using System.Collections.Generic; - using System.IO; - using System.Threading; - using System.Threading.Tasks; - - /// - /// FaceOperations operations. - /// - public partial interface IFaceOperations - { - /// - /// Given query face's faceId, find the similar-looking faces from a - /// faceId array or a faceListId. - /// - /// - /// FaceId of the query face. User needs to call Face - Detect first to - /// get a valid faceId. Note that this faceId is not persisted and will - /// expire 24 hours after the detection call - /// - /// - /// An existing user-specified unique candidate face list, created in - /// Face List - Create a Face List. Face list contains a set of - /// persistedFaceIds which are persisted and will never expire. - /// Parameter faceListId and faceIds should not be provided at the same - /// time - /// - /// - /// An array of candidate faceIds. All of them are created by Face - - /// Detect and the faceIds will expire 24 hours after the detection - /// call. - /// - /// - /// The number of top similar faces returned. The valid range is [1, - /// 1000]. - /// - /// - /// Similar face searching mode. It can be "matchPerson" or - /// "matchFace". Possible values include: 'matchPerson', 'matchFace' - /// - /// - /// The headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when unable to deserialize the response - /// - /// - /// Thrown when a required parameter is null - /// - Task>> FindSimilarWithHttpMessagesAsync(string faceId, string faceListId = default(string), IList faceIds = default(IList), int? maxNumOfCandidatesReturned = 20, string mode = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - /// - /// Divide candidate faces into groups based on face similarity. - /// - /// - /// Array of candidate faceId created by Face - Detect. The maximum is - /// 1000 faces - /// - /// - /// The headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when unable to deserialize the response - /// - /// - /// Thrown when a required parameter is null - /// - Task> GroupWithHttpMessagesAsync(IList faceIds, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - /// - /// Identify unknown faces from a person group. - /// - /// - /// personGroupId of the target person group, created by - /// PersonGroups.Create - /// - /// - /// Array of candidate faceId created by Face - Detect. - /// - /// - /// The number of top similar faces returned. - /// - /// - /// Confidence threshold of identification, used to judge whether one - /// face belong to one person. - /// - /// - /// The headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when unable to deserialize the response - /// - /// - /// Thrown when a required parameter is null - /// - Task>> IdentifyWithHttpMessagesAsync(string personGroupId, IList faceIds, int? maxNumOfCandidatesReturned = 1, double? confidenceThreshold = default(double?), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - /// - /// Verify whether two faces belong to a same person or whether one - /// face belongs to a person. - /// - /// - /// faceId the face, comes from Face - Detect - /// - /// - /// Specify a certain person in a person group. personId is created in - /// Persons.Create. - /// - /// - /// Using existing personGroupId and personId for fast loading a - /// specified person. personGroupId is created in Person Groups.Create. - /// - /// - /// The headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when unable to deserialize the response - /// - /// - /// Thrown when a required parameter is null - /// - Task> VerifyWithHttpMessagesAsync(string faceId, string personId, string personGroupId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - /// - /// Detect human faces in an image and returns face locations, and - /// optionally with faceIds, landmarks, and attributes. - /// - /// - /// - /// - /// A value indicating whether the operation should return faceIds of - /// detected faces. - /// - /// - /// A value indicating whether the operation should return landmarks of - /// the detected faces. - /// - /// - /// Analyze and return the one or more specified face attributes in the - /// comma-separated string like "returnFaceAttributes=age,gender". - /// Supported face attributes include age, gender, headPose, smile, - /// facialHair, glasses and emotion. Note that each face attribute - /// analysis has additional computational and time cost. - /// - /// - /// The headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when unable to deserialize the response - /// - /// - /// Thrown when a required parameter is null - /// - Task>> DetectWithHttpMessagesAsync(string url, bool? returnFaceId = true, bool? returnFaceLandmarks = false, string returnFaceAttributes = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - /// - /// Detect human faces in an image and returns face locations, and - /// optionally with faceIds, landmarks, and attributes. - /// - /// - /// An image stream. - /// - /// - /// A value indicating whether the operation should return faceIds of - /// detected faces. - /// - /// - /// A value indicating whether the operation should return landmarks of - /// the detected faces. - /// - /// - /// Analyze and return the one or more specified face attributes in the - /// comma-separated string like "returnFaceAttributes=age,gender". - /// Supported face attributes include age, gender, headPose, smile, - /// facialHair, glasses and emotion. Note that each face attribute - /// analysis has additional computational and time cost. - /// - /// - /// The headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when unable to deserialize the response - /// - /// - /// Thrown when a required parameter is null - /// - Task>> DetectInStreamWithHttpMessagesAsync(Stream image, bool? returnFaceId = true, bool? returnFaceLandmarks = false, string returnFaceAttributes = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - } -} diff --git a/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IPerson.cs b/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IPerson.cs deleted file mode 100644 index a62b1d019db2..000000000000 --- a/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IPerson.cs +++ /dev/null @@ -1,307 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Vision.Face -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Vision; - using Microsoft.Rest; - using Models; - using System.Collections; - using System.Collections.Generic; - using System.Threading; - using System.Threading.Tasks; - - /// - /// Person operations. - /// - public partial interface IPerson - { - /// - /// Create a new person in a specified person group. - /// - /// - /// Specifying the target person group to create the person. - /// - /// - /// Display name of the target person. The maximum length is 128. - /// - /// - /// Optional fields for user-provided data attached to a person. Size - /// limit is 16KB. - /// - /// - /// The headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when unable to deserialize the response - /// - /// - /// Thrown when a required parameter is null - /// - Task> CreateWithHttpMessagesAsync(string personGroupId, string name = default(string), string userData = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - /// - /// List all persons in a person group, and retrieve person information - /// (including personId, name, userData and persistedFaceIds of - /// registered faces of the person). - /// - /// - /// personGroupId of the target person group. - /// - /// - /// The headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when unable to deserialize the response - /// - /// - /// Thrown when a required parameter is null - /// - Task>> ListWithHttpMessagesAsync(string personGroupId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - /// - /// Delete an existing person from a person group. Persisted face - /// images of the person will also be deleted. - /// - /// - /// Specifying the person group containing the person. - /// - /// - /// The target personId to delete. - /// - /// - /// The headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when a required parameter is null - /// - Task DeleteWithHttpMessagesAsync(string personGroupId, string personId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - /// - /// Retrieve a person's information, including registered persisted - /// faces, name and userData. - /// - /// - /// Specifying the person group containing the target person. - /// - /// - /// Specifying the target person. - /// - /// - /// The headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when unable to deserialize the response - /// - /// - /// Thrown when a required parameter is null - /// - Task> GetWithHttpMessagesAsync(string personGroupId, string personId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - /// - /// Update name or userData of a person. - /// - /// - /// Specifying the person group containing the target person. - /// - /// - /// personId of the target person. - /// - /// - /// Display name of the target person. The maximum length is 128. - /// - /// - /// Optional fields for user-provided data attached to a person. Size - /// limit is 16KB. - /// - /// - /// The headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when a required parameter is null - /// - Task UpdateWithHttpMessagesAsync(string personGroupId, string personId, string name = default(string), string userData = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - /// - /// Delete a face from a person. Relative image for the persisted face - /// will also be deleted. - /// - /// - /// Specifying the person group containing the target person. - /// - /// - /// Specifying the person that the target persisted face belong to. - /// - /// - /// The persisted face to remove. - /// - /// - /// The headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when a required parameter is null - /// - Task DeleteFaceWithHttpMessagesAsync(string personGroupId, string personId, string persistedFaceId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - /// - /// Retrieve information about a persisted face (specified by - /// persistedFaceId, personId and its belonging personGroupId). - /// - /// - /// Specifying the person group containing the target person. - /// - /// - /// Specifying the target person that the face belongs to. - /// - /// - /// The persistedFaceId of the target persisted face of the person. - /// - /// - /// The headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when unable to deserialize the response - /// - /// - /// Thrown when a required parameter is null - /// - Task> GetFaceWithHttpMessagesAsync(string personGroupId, string personId, string persistedFaceId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - /// - /// Update a person persisted face's userData field. - /// - /// - /// Specifying the person group containing the target person. - /// - /// - /// personId of the target person. - /// - /// - /// persistedFaceId of target face, which is persisted and will not - /// expire. - /// - /// - /// User-provided data attached to the face. The size limit is 1KB - /// - /// - /// The headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when a required parameter is null - /// - Task UpdateFaceWithHttpMessagesAsync(string personGroupId, string personId, string persistedFaceId, string userData = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - /// - /// Add a representative face to a person for identification. The input - /// face is specified as an image with a targetFace rectangle. - /// - /// - /// Specifying the person group containing the target person. - /// - /// - /// Target person that the face is added to. - /// - /// - /// User-specified data about the target face to add for any purpose. - /// The maximum length is 1KB. - /// - /// - /// A face rectangle to specify the target face to be added to a person - /// in the format of "targetFace=left,top,width,height". E.g. - /// "targetFace=10,10,100,100". If there is more than one face in the - /// image, targetFace is required to specify which face to add. No - /// targetFace means there is only one face detected in the entire - /// image. - /// - /// - /// The headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when a required parameter is null - /// - Task AddFaceWithHttpMessagesAsync(string personGroupId, string personId, string userData = default(string), string targetFace = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - /// - /// Add a representative face to a person for identification. The input - /// face is specified as an image with a targetFace rectangle. - /// - /// - /// Specifying the person group containing the target person. - /// - /// - /// Target person that the face is added to. - /// - /// - /// User-specified data about the target face to add for any purpose. - /// The maximum length is 1KB. - /// - /// - /// A face rectangle to specify the target face to be added to a - /// person, in the format of "targetFace=left,top,width,height". E.g. - /// "targetFace=10,10,100,100". If there is more than one face in the - /// image, targetFace is required to specify which face to add. No - /// targetFace means there is only one face detected in the entire - /// image. - /// - /// - /// The headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when a required parameter is null - /// - Task AddFaceFromStreamWithHttpMessagesAsync(string personGroupId, string personId, string userData = default(string), string targetFace = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - } -} diff --git a/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IPersonGroup.cs b/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IPersonGroup.cs deleted file mode 100644 index cfc666708345..000000000000 --- a/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IPersonGroup.cs +++ /dev/null @@ -1,189 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Vision.Face -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Vision; - using Microsoft.Rest; - using Models; - using System.Collections; - using System.Collections.Generic; - using System.Threading; - using System.Threading.Tasks; - - /// - /// PersonGroup operations. - /// - public partial interface IPersonGroup - { - /// - /// Create a new person group with specified personGroupId, name and - /// user-provided userData. - /// - /// - /// User-provided personGroupId as a string. - /// - /// - /// Name of the face list, maximum length is 128. - /// - /// - /// Optional user defined data for the face list. Length should not - /// exceed 16KB. - /// - /// - /// The headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when a required parameter is null - /// - Task CreateWithHttpMessagesAsync(string personGroupId, string name = default(string), string userData = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - /// - /// Delete an existing person group. Persisted face images of all - /// people in the person group will also be deleted. - /// - /// - /// The personGroupId of the person group to be deleted. - /// - /// - /// The headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when a required parameter is null - /// - Task DeleteWithHttpMessagesAsync(string personGroupId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - /// - /// Retrieve the information of a person group, including its name and - /// userData. - /// - /// - /// personGroupId of the target person group. - /// - /// - /// The headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when unable to deserialize the response - /// - /// - /// Thrown when a required parameter is null - /// - Task> GetWithHttpMessagesAsync(string personGroupId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - /// - /// Update an existing person group's display name and userData. The - /// properties which does not appear in request body will not be - /// updated. - /// - /// - /// personGroupId of the person group to be updated. - /// - /// - /// Name of the face list, maximum length is 128. - /// - /// - /// Optional user defined data for the face list. Length should not - /// exceed 16KB. - /// - /// - /// The headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when a required parameter is null - /// - Task UpdateWithHttpMessagesAsync(string personGroupId, string name = default(string), string userData = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - /// - /// Retrieve the training status of a person group (completed or - /// ongoing). - /// - /// - /// personGroupId of target person group. - /// - /// - /// The headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when unable to deserialize the response - /// - /// - /// Thrown when a required parameter is null - /// - Task> GetTrainingStatusWithHttpMessagesAsync(string personGroupId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - /// - /// List person groups and their information. - /// - /// - /// List person groups from the least personGroupId greater than the - /// "start". - /// - /// - /// The number of person groups to list. - /// - /// - /// The headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when unable to deserialize the response - /// - /// - /// Thrown when a required parameter is null - /// - Task>> ListWithHttpMessagesAsync(string start = default(string), int? top = 1000, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - /// - /// Queue a person group training task, the training task may not be - /// started immediately. - /// - /// - /// Target person group to be trained. - /// - /// - /// The headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when a required parameter is null - /// - Task TrainWithHttpMessagesAsync(string personGroupId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); - } -} diff --git a/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/APIError.cs b/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/APIError.cs deleted file mode 100644 index d72be15ff0fd..000000000000 --- a/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/APIError.cs +++ /dev/null @@ -1,46 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Vision.Face.Models -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Vision; - using Microsoft.CognitiveServices.Vision.Face; - using Newtonsoft.Json; - using System.Linq; - - /// - /// Error information returned by the API - /// - public partial class APIError - { - /// - /// Initializes a new instance of the APIError class. - /// - public APIError() - { - CustomInit(); - } - - /// - /// Initializes a new instance of the APIError class. - /// - public APIError(Error error = default(Error)) - { - Error = error; - CustomInit(); - } - - /// - /// An initialization method that performs custom operations like setting defaults - /// - partial void CustomInit(); - - /// - /// - [JsonProperty(PropertyName = "error")] - public Error Error { get; set; } - - } -} diff --git a/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/APIErrorException.cs b/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/APIErrorException.cs deleted file mode 100644 index 3db32562480e..000000000000 --- a/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/APIErrorException.cs +++ /dev/null @@ -1,58 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Vision.Face.Models -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Vision; - using Microsoft.CognitiveServices.Vision.Face; - using Microsoft.Rest; - - /// - /// Exception thrown for an invalid response with APIError information. - /// - public class APIErrorException : RestException - { - /// - /// Gets information about the associated HTTP request. - /// - public HttpRequestMessageWrapper Request { get; set; } - - /// - /// Gets information about the associated HTTP response. - /// - public HttpResponseMessageWrapper Response { get; set; } - - /// - /// Gets or sets the body object. - /// - public APIError Body { get; set; } - - /// - /// Initializes a new instance of the APIErrorException class. - /// - public APIErrorException() - { - } - - /// - /// Initializes a new instance of the APIErrorException class. - /// - /// The exception message. - public APIErrorException(string message) - : this(message, null) - { - } - - /// - /// Initializes a new instance of the APIErrorException class. - /// - /// The exception message. - /// Inner exception. - public APIErrorException(string message, System.Exception innerException) - : base(message, innerException) - { - } - } -} diff --git a/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/AzureRegion.cs b/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/AzureRegion.cs deleted file mode 100644 index bae1015b5d99..000000000000 --- a/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/AzureRegion.cs +++ /dev/null @@ -1,22 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Vision.Face.Models -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Vision; - using Microsoft.CognitiveServices.Vision.Face; - - /// - /// Defines values for AzureRegion. - /// - public static class AzureRegion - { - public const string Westus = "westus"; - public const string Westeurope = "westeurope"; - public const string Southeastasia = "southeastasia"; - public const string Eastus2 = "eastus2"; - public const string Westcentralus = "westcentralus"; - } -} diff --git a/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreateFaceListRequest.cs b/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreateFaceListRequest.cs deleted file mode 100644 index 34d6fc3624a8..000000000000 --- a/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreateFaceListRequest.cs +++ /dev/null @@ -1,83 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Vision.Face.Models -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Vision; - using Microsoft.CognitiveServices.Vision.Face; - using Microsoft.Rest; - using Newtonsoft.Json; - using System.Linq; - - /// - /// Request to create a face list. - /// - public partial class CreateFaceListRequest - { - /// - /// Initializes a new instance of the CreateFaceListRequest class. - /// - public CreateFaceListRequest() - { - CustomInit(); - } - - /// - /// Initializes a new instance of the CreateFaceListRequest class. - /// - /// Name of the face list, maximum length is - /// 128. - /// Optional user defined data for the face - /// list. Length should not exceed 16KB. - public CreateFaceListRequest(string name = default(string), string userData = default(string)) - { - Name = name; - UserData = userData; - CustomInit(); - } - - /// - /// An initialization method that performs custom operations like setting defaults - /// - partial void CustomInit(); - - /// - /// Gets or sets name of the face list, maximum length is 128. - /// - [JsonProperty(PropertyName = "name")] - public string Name { get; set; } - - /// - /// Gets or sets optional user defined data for the face list. Length - /// should not exceed 16KB. - /// - [JsonProperty(PropertyName = "userData")] - public string UserData { get; set; } - - /// - /// Validate the object. - /// - /// - /// Thrown if validation fails - /// - public virtual void Validate() - { - if (Name != null) - { - if (Name.Length > 128) - { - throw new ValidationException(ValidationRules.MaxLength, "Name", 128); - } - } - if (UserData != null) - { - if (UserData.Length > 16384) - { - throw new ValidationException(ValidationRules.MaxLength, "UserData", 16384); - } - } - } - } -} diff --git a/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreatePersonGroupRequest.cs b/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreatePersonGroupRequest.cs deleted file mode 100644 index 00b0e7bb7110..000000000000 --- a/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreatePersonGroupRequest.cs +++ /dev/null @@ -1,83 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Vision.Face.Models -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Vision; - using Microsoft.CognitiveServices.Vision.Face; - using Microsoft.Rest; - using Newtonsoft.Json; - using System.Linq; - - /// - /// Request to create a person group. - /// - public partial class CreatePersonGroupRequest - { - /// - /// Initializes a new instance of the CreatePersonGroupRequest class. - /// - public CreatePersonGroupRequest() - { - CustomInit(); - } - - /// - /// Initializes a new instance of the CreatePersonGroupRequest class. - /// - /// Name of the face list, maximum length is - /// 128. - /// Optional user defined data for the face - /// list. Length should not exceed 16KB. - public CreatePersonGroupRequest(string name = default(string), string userData = default(string)) - { - Name = name; - UserData = userData; - CustomInit(); - } - - /// - /// An initialization method that performs custom operations like setting defaults - /// - partial void CustomInit(); - - /// - /// Gets or sets name of the face list, maximum length is 128. - /// - [JsonProperty(PropertyName = "name")] - public string Name { get; set; } - - /// - /// Gets or sets optional user defined data for the face list. Length - /// should not exceed 16KB. - /// - [JsonProperty(PropertyName = "userData")] - public string UserData { get; set; } - - /// - /// Validate the object. - /// - /// - /// Thrown if validation fails - /// - public virtual void Validate() - { - if (Name != null) - { - if (Name.Length > 128) - { - throw new ValidationException(ValidationRules.MaxLength, "Name", 128); - } - } - if (UserData != null) - { - if (UserData.Length > 16384) - { - throw new ValidationException(ValidationRules.MaxLength, "UserData", 16384); - } - } - } - } -} diff --git a/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreatePersonRequest.cs b/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreatePersonRequest.cs deleted file mode 100644 index 85565371fc9c..000000000000 --- a/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreatePersonRequest.cs +++ /dev/null @@ -1,84 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Vision.Face.Models -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Vision; - using Microsoft.CognitiveServices.Vision.Face; - using Microsoft.Rest; - using Newtonsoft.Json; - using System.Linq; - - /// - /// Request to create a person object. - /// - public partial class CreatePersonRequest - { - /// - /// Initializes a new instance of the CreatePersonRequest class. - /// - public CreatePersonRequest() - { - CustomInit(); - } - - /// - /// Initializes a new instance of the CreatePersonRequest class. - /// - /// Display name of the target person. The maximum - /// length is 128. - /// Optional fields for user-provided data - /// attached to a person. Size limit is 16KB. - public CreatePersonRequest(string name = default(string), string userData = default(string)) - { - Name = name; - UserData = userData; - CustomInit(); - } - - /// - /// An initialization method that performs custom operations like setting defaults - /// - partial void CustomInit(); - - /// - /// Gets or sets display name of the target person. The maximum length - /// is 128. - /// - [JsonProperty(PropertyName = "name")] - public string Name { get; set; } - - /// - /// Gets or sets optional fields for user-provided data attached to a - /// person. Size limit is 16KB. - /// - [JsonProperty(PropertyName = "userData")] - public string UserData { get; set; } - - /// - /// Validate the object. - /// - /// - /// Thrown if validation fails - /// - public virtual void Validate() - { - if (Name != null) - { - if (Name.Length > 128) - { - throw new ValidationException(ValidationRules.MaxLength, "Name", 128); - } - } - if (UserData != null) - { - if (UserData.Length > 16384) - { - throw new ValidationException(ValidationRules.MaxLength, "UserData", 16384); - } - } - } - } -} diff --git a/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreatePersonResult.cs b/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreatePersonResult.cs deleted file mode 100644 index 31dce8c6b5ca..000000000000 --- a/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreatePersonResult.cs +++ /dev/null @@ -1,62 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Vision.Face.Models -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Vision; - using Microsoft.CognitiveServices.Vision.Face; - using Microsoft.Rest; - using Newtonsoft.Json; - using System.Linq; - - /// - /// Result of creating person. - /// - public partial class CreatePersonResult - { - /// - /// Initializes a new instance of the CreatePersonResult class. - /// - public CreatePersonResult() - { - CustomInit(); - } - - /// - /// Initializes a new instance of the CreatePersonResult class. - /// - /// personID of the new created person. - public CreatePersonResult(string personId) - { - PersonId = personId; - CustomInit(); - } - - /// - /// An initialization method that performs custom operations like setting defaults - /// - partial void CustomInit(); - - /// - /// Gets or sets personID of the new created person. - /// - [JsonProperty(PropertyName = "personId")] - public string PersonId { get; set; } - - /// - /// Validate the object. - /// - /// - /// Thrown if validation fails - /// - public virtual void Validate() - { - if (PersonId == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "PersonId"); - } - } - } -} diff --git a/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/DetectedFace.cs b/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/DetectedFace.cs deleted file mode 100644 index 2d66bad5ef6b..000000000000 --- a/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/DetectedFace.cs +++ /dev/null @@ -1,87 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Vision.Face.Models -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Vision; - using Microsoft.CognitiveServices.Vision.Face; - using Microsoft.Rest; - using Newtonsoft.Json; - using System.Linq; - - /// - /// Detected Face object. - /// - public partial class DetectedFace - { - /// - /// Initializes a new instance of the DetectedFace class. - /// - public DetectedFace() - { - CustomInit(); - } - - /// - /// Initializes a new instance of the DetectedFace class. - /// - public DetectedFace(FaceRectangle faceRectangle, string faceId = default(string), FaceLandmarks faceLandmarks = default(FaceLandmarks)) - { - FaceId = faceId; - FaceRectangle = faceRectangle; - FaceLandmarks = faceLandmarks; - CustomInit(); - } - - /// - /// An initialization method that performs custom operations like setting defaults - /// - partial void CustomInit(); - - /// - /// - [JsonProperty(PropertyName = "faceId")] - public string FaceId { get; set; } - - /// - /// - [JsonProperty(PropertyName = "faceRectangle")] - public FaceRectangle FaceRectangle { get; set; } - - /// - /// - [JsonProperty(PropertyName = "faceLandmarks")] - public FaceLandmarks FaceLandmarks { get; set; } - - /// - /// Validate the object. - /// - /// - /// Thrown if validation fails - /// - public virtual void Validate() - { - if (FaceRectangle == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "FaceRectangle"); - } - if (FaceId != null) - { - if (FaceId.Length > 64) - { - throw new ValidationException(ValidationRules.MaxLength, "FaceId", 64); - } - } - if (FaceRectangle != null) - { - FaceRectangle.Validate(); - } - if (FaceLandmarks != null) - { - FaceLandmarks.Validate(); - } - } - } -} diff --git a/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/EmotionProperties.cs b/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/EmotionProperties.cs deleted file mode 100644 index 32ff00e6800e..000000000000 --- a/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/EmotionProperties.cs +++ /dev/null @@ -1,162 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Vision.Face.Models -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Vision; - using Microsoft.CognitiveServices.Vision.Face; - using Microsoft.Rest; - using Newtonsoft.Json; - using System.Linq; - - /// - /// Properties describing facial emotion. - /// - public partial class EmotionProperties - { - /// - /// Initializes a new instance of the EmotionProperties class. - /// - public EmotionProperties() - { - CustomInit(); - } - - /// - /// Initializes a new instance of the EmotionProperties class. - /// - public EmotionProperties(double? anger = default(double?), double? contempt = default(double?), double? disgust = default(double?), double? fear = default(double?), double? happiness = default(double?), double? neutral = default(double?), double? sadness = default(double?), double? surprise = default(double?)) - { - Anger = anger; - Contempt = contempt; - Disgust = disgust; - Fear = fear; - Happiness = happiness; - Neutral = neutral; - Sadness = sadness; - Surprise = surprise; - CustomInit(); - } - - /// - /// An initialization method that performs custom operations like setting defaults - /// - partial void CustomInit(); - - /// - /// - [JsonProperty(PropertyName = "anger")] - public double? Anger { get; set; } - - /// - /// - [JsonProperty(PropertyName = "contempt")] - public double? Contempt { get; set; } - - /// - /// - [JsonProperty(PropertyName = "disgust")] - public double? Disgust { get; set; } - - /// - /// - [JsonProperty(PropertyName = "fear")] - public double? Fear { get; set; } - - /// - /// - [JsonProperty(PropertyName = "happiness")] - public double? Happiness { get; set; } - - /// - /// - [JsonProperty(PropertyName = "neutral")] - public double? Neutral { get; set; } - - /// - /// - [JsonProperty(PropertyName = "sadness")] - public double? Sadness { get; set; } - - /// - /// - [JsonProperty(PropertyName = "surprise")] - public double? Surprise { get; set; } - - /// - /// Validate the object. - /// - /// - /// Thrown if validation fails - /// - public virtual void Validate() - { - if (Anger > 1) - { - throw new ValidationException(ValidationRules.InclusiveMaximum, "Anger", 1); - } - if (Anger < 0) - { - throw new ValidationException(ValidationRules.InclusiveMinimum, "Anger", 0); - } - if (Contempt > 1) - { - throw new ValidationException(ValidationRules.InclusiveMaximum, "Contempt", 1); - } - if (Contempt < 0) - { - throw new ValidationException(ValidationRules.InclusiveMinimum, "Contempt", 0); - } - if (Disgust > 1) - { - throw new ValidationException(ValidationRules.InclusiveMaximum, "Disgust", 1); - } - if (Disgust < 0) - { - throw new ValidationException(ValidationRules.InclusiveMinimum, "Disgust", 0); - } - if (Fear > 1) - { - throw new ValidationException(ValidationRules.InclusiveMaximum, "Fear", 1); - } - if (Fear < 0) - { - throw new ValidationException(ValidationRules.InclusiveMinimum, "Fear", 0); - } - if (Happiness > 1) - { - throw new ValidationException(ValidationRules.InclusiveMaximum, "Happiness", 1); - } - if (Happiness < 0) - { - throw new ValidationException(ValidationRules.InclusiveMinimum, "Happiness", 0); - } - if (Neutral > 1) - { - throw new ValidationException(ValidationRules.InclusiveMaximum, "Neutral", 1); - } - if (Neutral < 0) - { - throw new ValidationException(ValidationRules.InclusiveMinimum, "Neutral", 0); - } - if (Sadness > 1) - { - throw new ValidationException(ValidationRules.InclusiveMaximum, "Sadness", 1); - } - if (Sadness < 0) - { - throw new ValidationException(ValidationRules.InclusiveMinimum, "Sadness", 0); - } - if (Surprise > 1) - { - throw new ValidationException(ValidationRules.InclusiveMaximum, "Surprise", 1); - } - if (Surprise < 0) - { - throw new ValidationException(ValidationRules.InclusiveMinimum, "Surprise", 0); - } - } - } -} diff --git a/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/Error.cs b/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/Error.cs deleted file mode 100644 index 566c578aa0c5..000000000000 --- a/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/Error.cs +++ /dev/null @@ -1,52 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Vision.Face.Models -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Vision; - using Microsoft.CognitiveServices.Vision.Face; - using Newtonsoft.Json; - using System.Linq; - - /// - /// Error body. - /// - public partial class Error - { - /// - /// Initializes a new instance of the Error class. - /// - public Error() - { - CustomInit(); - } - - /// - /// Initializes a new instance of the Error class. - /// - public Error(string code = default(string), string message = default(string)) - { - Code = code; - Message = message; - CustomInit(); - } - - /// - /// An initialization method that performs custom operations like setting defaults - /// - partial void CustomInit(); - - /// - /// - [JsonProperty(PropertyName = "code")] - public string Code { get; set; } - - /// - /// - [JsonProperty(PropertyName = "message")] - public string Message { get; set; } - - } -} diff --git a/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FaceAttributes.cs b/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FaceAttributes.cs deleted file mode 100644 index b6c46e50f266..000000000000 --- a/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FaceAttributes.cs +++ /dev/null @@ -1,125 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Vision.Face.Models -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Vision; - using Microsoft.CognitiveServices.Vision.Face; - using Microsoft.Rest; - using Newtonsoft.Json; - using System.Linq; - - /// - /// Face Attributes - /// - public partial class FaceAttributes - { - /// - /// Initializes a new instance of the FaceAttributes class. - /// - public FaceAttributes() - { - CustomInit(); - } - - /// - /// Initializes a new instance of the FaceAttributes class. - /// - /// Age in years - /// Gender: male or female. Possible values - /// include: 'male', 'female' - /// Smile intensity, a number between [0,1] - /// - /// Glasses type. Possible values are - /// 'noGlasses', 'readingGlasses', 'sunglasses', 'swimmingGoggles'. - /// Possible values include: 'noGlasses', 'readingGlasses', - /// 'sunglasses', 'swimmingGoggles' - public FaceAttributes(double? age = default(double?), string gender = default(string), double? smile = default(double?), string glasses = default(string), FacialHairProperties facialHair = default(FacialHairProperties), HeadPoseProperties headPose = default(HeadPoseProperties), EmotionProperties emotion = default(EmotionProperties)) - { - Age = age; - Gender = gender; - Smile = smile; - Glasses = glasses; - FacialHair = facialHair; - HeadPose = headPose; - Emotion = emotion; - CustomInit(); - } - - /// - /// An initialization method that performs custom operations like setting defaults - /// - partial void CustomInit(); - - /// - /// Gets or sets age in years - /// - [JsonProperty(PropertyName = "age")] - public double? Age { get; set; } - - /// - /// Gets or sets gender: male or female. Possible values include: - /// 'male', 'female' - /// - [JsonProperty(PropertyName = "gender")] - public string Gender { get; set; } - - /// - /// Gets or sets smile intensity, a number between [0,1] - /// - [JsonProperty(PropertyName = "smile")] - public double? Smile { get; set; } - - /// - /// Gets or sets glasses type. Possible values are 'noGlasses', - /// 'readingGlasses', 'sunglasses', 'swimmingGoggles'. Possible values - /// include: 'noGlasses', 'readingGlasses', 'sunglasses', - /// 'swimmingGoggles' - /// - [JsonProperty(PropertyName = "glasses")] - public string Glasses { get; set; } - - /// - /// - [JsonProperty(PropertyName = "facialHair")] - public FacialHairProperties FacialHair { get; set; } - - /// - /// - [JsonProperty(PropertyName = "headPose")] - public HeadPoseProperties HeadPose { get; set; } - - /// - /// - [JsonProperty(PropertyName = "emotion")] - public EmotionProperties Emotion { get; set; } - - /// - /// Validate the object. - /// - /// - /// Thrown if validation fails - /// - public virtual void Validate() - { - if (Smile > 1) - { - throw new ValidationException(ValidationRules.InclusiveMaximum, "Smile", 1); - } - if (Smile < 0) - { - throw new ValidationException(ValidationRules.InclusiveMinimum, "Smile", 0); - } - if (FacialHair != null) - { - FacialHair.Validate(); - } - if (Emotion != null) - { - Emotion.Validate(); - } - } - } -} diff --git a/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FaceLandmarks.cs b/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FaceLandmarks.cs deleted file mode 100644 index a9af41c0f227..000000000000 --- a/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FaceLandmarks.cs +++ /dev/null @@ -1,320 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Vision.Face.Models -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Vision; - using Microsoft.CognitiveServices.Vision.Face; - using Newtonsoft.Json; - using System.Linq; - - /// - /// A collection of 27-point face landmarks pointing to the important - /// positions of face components. - /// - public partial class FaceLandmarks - { - /// - /// Initializes a new instance of the FaceLandmarks class. - /// - public FaceLandmarks() - { - CustomInit(); - } - - /// - /// Initializes a new instance of the FaceLandmarks class. - /// - public FaceLandmarks(Position pupilLeft = default(Position), Position pupilRight = default(Position), Position noseTip = default(Position), Position mouthLeft = default(Position), Position mouthRight = default(Position), Position eyebrowLeftOuter = default(Position), Position eyebrowLeftInner = default(Position), Position eyeLeftOuter = default(Position), Position eyeLeftTop = default(Position), Position eyeLeftBottom = default(Position), Position eyeLeftInner = default(Position), Position eyebrowRightInner = default(Position), Position eyebrowRightOuter = default(Position), Position eyeRightInner = default(Position), Position eyeRightTop = default(Position), Position eyeRightBottom = default(Position), Position eyeRightOuter = default(Position), Position noseRootLeft = default(Position), Position noseRootRight = default(Position), Position noseLeftAlarTop = default(Position), Position noseRightAlarTop = default(Position), Position noseLeftAlarOutTip = default(Position), Position noseRightAlarOutTip = default(Position), Position upperLipTop = default(Position), Position upperLipBottom = default(Position), Position underLipTop = default(Position), Position underLipBottom = default(Position)) - { - PupilLeft = pupilLeft; - PupilRight = pupilRight; - NoseTip = noseTip; - MouthLeft = mouthLeft; - MouthRight = mouthRight; - EyebrowLeftOuter = eyebrowLeftOuter; - EyebrowLeftInner = eyebrowLeftInner; - EyeLeftOuter = eyeLeftOuter; - EyeLeftTop = eyeLeftTop; - EyeLeftBottom = eyeLeftBottom; - EyeLeftInner = eyeLeftInner; - EyebrowRightInner = eyebrowRightInner; - EyebrowRightOuter = eyebrowRightOuter; - EyeRightInner = eyeRightInner; - EyeRightTop = eyeRightTop; - EyeRightBottom = eyeRightBottom; - EyeRightOuter = eyeRightOuter; - NoseRootLeft = noseRootLeft; - NoseRootRight = noseRootRight; - NoseLeftAlarTop = noseLeftAlarTop; - NoseRightAlarTop = noseRightAlarTop; - NoseLeftAlarOutTip = noseLeftAlarOutTip; - NoseRightAlarOutTip = noseRightAlarOutTip; - UpperLipTop = upperLipTop; - UpperLipBottom = upperLipBottom; - UnderLipTop = underLipTop; - UnderLipBottom = underLipBottom; - CustomInit(); - } - - /// - /// An initialization method that performs custom operations like setting defaults - /// - partial void CustomInit(); - - /// - /// - [JsonProperty(PropertyName = "pupilLeft")] - public Position PupilLeft { get; set; } - - /// - /// - [JsonProperty(PropertyName = "pupilRight")] - public Position PupilRight { get; set; } - - /// - /// - [JsonProperty(PropertyName = "noseTip")] - public Position NoseTip { get; set; } - - /// - /// - [JsonProperty(PropertyName = "mouthLeft")] - public Position MouthLeft { get; set; } - - /// - /// - [JsonProperty(PropertyName = "mouthRight")] - public Position MouthRight { get; set; } - - /// - /// - [JsonProperty(PropertyName = "eyebrowLeftOuter")] - public Position EyebrowLeftOuter { get; set; } - - /// - /// - [JsonProperty(PropertyName = "eyebrowLeftInner")] - public Position EyebrowLeftInner { get; set; } - - /// - /// - [JsonProperty(PropertyName = "eyeLeftOuter")] - public Position EyeLeftOuter { get; set; } - - /// - /// - [JsonProperty(PropertyName = "eyeLeftTop")] - public Position EyeLeftTop { get; set; } - - /// - /// - [JsonProperty(PropertyName = "eyeLeftBottom")] - public Position EyeLeftBottom { get; set; } - - /// - /// - [JsonProperty(PropertyName = "eyeLeftInner")] - public Position EyeLeftInner { get; set; } - - /// - /// - [JsonProperty(PropertyName = "eyebrowRightInner")] - public Position EyebrowRightInner { get; set; } - - /// - /// - [JsonProperty(PropertyName = "eyebrowRightOuter")] - public Position EyebrowRightOuter { get; set; } - - /// - /// - [JsonProperty(PropertyName = "eyeRightInner")] - public Position EyeRightInner { get; set; } - - /// - /// - [JsonProperty(PropertyName = "eyeRightTop")] - public Position EyeRightTop { get; set; } - - /// - /// - [JsonProperty(PropertyName = "eyeRightBottom")] - public Position EyeRightBottom { get; set; } - - /// - /// - [JsonProperty(PropertyName = "eyeRightOuter")] - public Position EyeRightOuter { get; set; } - - /// - /// - [JsonProperty(PropertyName = "noseRootLeft")] - public Position NoseRootLeft { get; set; } - - /// - /// - [JsonProperty(PropertyName = "noseRootRight")] - public Position NoseRootRight { get; set; } - - /// - /// - [JsonProperty(PropertyName = "noseLeftAlarTop")] - public Position NoseLeftAlarTop { get; set; } - - /// - /// - [JsonProperty(PropertyName = "noseRightAlarTop")] - public Position NoseRightAlarTop { get; set; } - - /// - /// - [JsonProperty(PropertyName = "noseLeftAlarOutTip")] - public Position NoseLeftAlarOutTip { get; set; } - - /// - /// - [JsonProperty(PropertyName = "noseRightAlarOutTip")] - public Position NoseRightAlarOutTip { get; set; } - - /// - /// - [JsonProperty(PropertyName = "upperLipTop")] - public Position UpperLipTop { get; set; } - - /// - /// - [JsonProperty(PropertyName = "upperLipBottom")] - public Position UpperLipBottom { get; set; } - - /// - /// - [JsonProperty(PropertyName = "underLipTop")] - public Position UnderLipTop { get; set; } - - /// - /// - [JsonProperty(PropertyName = "underLipBottom")] - public Position UnderLipBottom { get; set; } - - /// - /// Validate the object. - /// - /// - /// Thrown if validation fails - /// - public virtual void Validate() - { - if (PupilLeft != null) - { - PupilLeft.Validate(); - } - if (PupilRight != null) - { - PupilRight.Validate(); - } - if (NoseTip != null) - { - NoseTip.Validate(); - } - if (MouthLeft != null) - { - MouthLeft.Validate(); - } - if (MouthRight != null) - { - MouthRight.Validate(); - } - if (EyebrowLeftOuter != null) - { - EyebrowLeftOuter.Validate(); - } - if (EyebrowLeftInner != null) - { - EyebrowLeftInner.Validate(); - } - if (EyeLeftOuter != null) - { - EyeLeftOuter.Validate(); - } - if (EyeLeftTop != null) - { - EyeLeftTop.Validate(); - } - if (EyeLeftBottom != null) - { - EyeLeftBottom.Validate(); - } - if (EyeLeftInner != null) - { - EyeLeftInner.Validate(); - } - if (EyebrowRightInner != null) - { - EyebrowRightInner.Validate(); - } - if (EyebrowRightOuter != null) - { - EyebrowRightOuter.Validate(); - } - if (EyeRightInner != null) - { - EyeRightInner.Validate(); - } - if (EyeRightTop != null) - { - EyeRightTop.Validate(); - } - if (EyeRightBottom != null) - { - EyeRightBottom.Validate(); - } - if (EyeRightOuter != null) - { - EyeRightOuter.Validate(); - } - if (NoseRootLeft != null) - { - NoseRootLeft.Validate(); - } - if (NoseRootRight != null) - { - NoseRootRight.Validate(); - } - if (NoseLeftAlarTop != null) - { - NoseLeftAlarTop.Validate(); - } - if (NoseRightAlarTop != null) - { - NoseRightAlarTop.Validate(); - } - if (NoseLeftAlarOutTip != null) - { - NoseLeftAlarOutTip.Validate(); - } - if (NoseRightAlarOutTip != null) - { - NoseRightAlarOutTip.Validate(); - } - if (UpperLipTop != null) - { - UpperLipTop.Validate(); - } - if (UpperLipBottom != null) - { - UpperLipBottom.Validate(); - } - if (UnderLipTop != null) - { - UnderLipTop.Validate(); - } - if (UnderLipBottom != null) - { - UnderLipBottom.Validate(); - } - } - } -} diff --git a/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FaceRectangle.cs b/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FaceRectangle.cs deleted file mode 100644 index f7ee305ce802..000000000000 --- a/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FaceRectangle.cs +++ /dev/null @@ -1,87 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Vision.Face.Models -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Vision; - using Microsoft.CognitiveServices.Vision.Face; - using Newtonsoft.Json; - using System.Linq; - - /// - /// A rectangle within which a face can be found - /// - public partial class FaceRectangle - { - /// - /// Initializes a new instance of the FaceRectangle class. - /// - public FaceRectangle() - { - CustomInit(); - } - - /// - /// Initializes a new instance of the FaceRectangle class. - /// - /// The width of the rectangle, in pixels. - /// The height of the rectangle, in - /// pixels. - /// The distance from the left edge if the image to - /// the left edge of the rectangle, in pixels. - /// The distance from the top edge if the image to - /// the top edge of the rectangle, in pixels. - public FaceRectangle(int width, int height, int left, int top) - { - Width = width; - Height = height; - Left = left; - Top = top; - CustomInit(); - } - - /// - /// An initialization method that performs custom operations like setting defaults - /// - partial void CustomInit(); - - /// - /// Gets or sets the width of the rectangle, in pixels. - /// - [JsonProperty(PropertyName = "width")] - public int Width { get; set; } - - /// - /// Gets or sets the height of the rectangle, in pixels. - /// - [JsonProperty(PropertyName = "height")] - public int Height { get; set; } - - /// - /// Gets or sets the distance from the left edge if the image to the - /// left edge of the rectangle, in pixels. - /// - [JsonProperty(PropertyName = "left")] - public int Left { get; set; } - - /// - /// Gets or sets the distance from the top edge if the image to the top - /// edge of the rectangle, in pixels. - /// - [JsonProperty(PropertyName = "top")] - public int Top { get; set; } - - /// - /// Validate the object. - /// - /// - /// Thrown if validation fails - /// - public virtual void Validate() - { - //Nothing to validate - } - } -} diff --git a/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FacialHairProperties.cs b/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FacialHairProperties.cs deleted file mode 100644 index 584608af5922..000000000000 --- a/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FacialHairProperties.cs +++ /dev/null @@ -1,92 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Vision.Face.Models -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Vision; - using Microsoft.CognitiveServices.Vision.Face; - using Microsoft.Rest; - using Newtonsoft.Json; - using System.Linq; - - /// - /// Properties describing facial hair attributes. - /// - public partial class FacialHairProperties - { - /// - /// Initializes a new instance of the FacialHairProperties class. - /// - public FacialHairProperties() - { - CustomInit(); - } - - /// - /// Initializes a new instance of the FacialHairProperties class. - /// - public FacialHairProperties(double? mustache = default(double?), double? beard = default(double?), double? sideburns = default(double?)) - { - Mustache = mustache; - Beard = beard; - Sideburns = sideburns; - CustomInit(); - } - - /// - /// An initialization method that performs custom operations like setting defaults - /// - partial void CustomInit(); - - /// - /// - [JsonProperty(PropertyName = "mustache")] - public double? Mustache { get; set; } - - /// - /// - [JsonProperty(PropertyName = "beard")] - public double? Beard { get; set; } - - /// - /// - [JsonProperty(PropertyName = "sideburns")] - public double? Sideburns { get; set; } - - /// - /// Validate the object. - /// - /// - /// Thrown if validation fails - /// - public virtual void Validate() - { - if (Mustache > 1) - { - throw new ValidationException(ValidationRules.InclusiveMaximum, "Mustache", 1); - } - if (Mustache < 0) - { - throw new ValidationException(ValidationRules.InclusiveMinimum, "Mustache", 0); - } - if (Beard > 1) - { - throw new ValidationException(ValidationRules.InclusiveMaximum, "Beard", 1); - } - if (Beard < 0) - { - throw new ValidationException(ValidationRules.InclusiveMinimum, "Beard", 0); - } - if (Sideburns > 1) - { - throw new ValidationException(ValidationRules.InclusiveMaximum, "Sideburns", 1); - } - if (Sideburns < 0) - { - throw new ValidationException(ValidationRules.InclusiveMinimum, "Sideburns", 0); - } - } - } -} diff --git a/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FindSimilarRequest.cs b/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FindSimilarRequest.cs deleted file mode 100644 index 95e803005ae7..000000000000 --- a/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FindSimilarRequest.cs +++ /dev/null @@ -1,151 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Vision.Face.Models -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Vision; - using Microsoft.CognitiveServices.Vision.Face; - using Microsoft.Rest; - using Newtonsoft.Json; - using System.Collections; - using System.Collections.Generic; - using System.Linq; - - /// - /// Request body for find similar operation. - /// - public partial class FindSimilarRequest - { - /// - /// Initializes a new instance of the FindSimilarRequest class. - /// - public FindSimilarRequest() - { - CustomInit(); - } - - /// - /// Initializes a new instance of the FindSimilarRequest class. - /// - /// FaceId of the query face. User needs to call - /// Face - Detect first to get a valid faceId. Note that this faceId is - /// not persisted and will expire 24 hours after the detection - /// call - /// An existing user-specified unique - /// candidate face list, created in Face List - Create a Face List. - /// Face list contains a set of persistedFaceIds which are persisted - /// and will never expire. Parameter faceListId and faceIds should not - /// be provided at the same time - /// An array of candidate faceIds. All of them - /// are created by Face - Detect and the faceIds will expire 24 hours - /// after the detection call. - /// The number of top similar - /// faces returned. The valid range is [1, 1000]. - /// Similar face searching mode. It can be - /// "matchPerson" or "matchFace". Possible values include: - /// 'matchPerson', 'matchFace' - public FindSimilarRequest(string faceId, string faceListId = default(string), IList faceIds = default(IList), int? maxNumOfCandidatesReturned = default(int?), string mode = default(string)) - { - FaceId = faceId; - FaceListId = faceListId; - FaceIds = faceIds; - MaxNumOfCandidatesReturned = maxNumOfCandidatesReturned; - Mode = mode; - CustomInit(); - } - - /// - /// An initialization method that performs custom operations like setting defaults - /// - partial void CustomInit(); - - /// - /// Gets or sets faceId of the query face. User needs to call Face - - /// Detect first to get a valid faceId. Note that this faceId is not - /// persisted and will expire 24 hours after the detection call - /// - [JsonProperty(PropertyName = "faceId")] - public string FaceId { get; set; } - - /// - /// Gets or sets an existing user-specified unique candidate face list, - /// created in Face List - Create a Face List. Face list contains a set - /// of persistedFaceIds which are persisted and will never expire. - /// Parameter faceListId and faceIds should not be provided at the same - /// time - /// - [JsonProperty(PropertyName = "faceListId")] - public string FaceListId { get; set; } - - /// - /// Gets or sets an array of candidate faceIds. All of them are created - /// by Face - Detect and the faceIds will expire 24 hours after the - /// detection call. - /// - [JsonProperty(PropertyName = "faceIds")] - public IList FaceIds { get; set; } - - /// - /// Gets or sets the number of top similar faces returned. The valid - /// range is [1, 1000]. - /// - [JsonProperty(PropertyName = "maxNumOfCandidatesReturned")] - public int? MaxNumOfCandidatesReturned { get; set; } - - /// - /// Gets or sets similar face searching mode. It can be "matchPerson" - /// or "matchFace". Possible values include: 'matchPerson', 'matchFace' - /// - [JsonProperty(PropertyName = "mode")] - public string Mode { get; set; } - - /// - /// Validate the object. - /// - /// - /// Thrown if validation fails - /// - public virtual void Validate() - { - if (FaceId == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "FaceId"); - } - if (FaceId != null) - { - if (FaceId.Length > 64) - { - throw new ValidationException(ValidationRules.MaxLength, "FaceId", 64); - } - } - if (FaceListId != null) - { - if (FaceListId.Length > 64) - { - throw new ValidationException(ValidationRules.MaxLength, "FaceListId", 64); - } - if (!System.Text.RegularExpressions.Regex.IsMatch(FaceListId, "^[a-z0-9-_]+$")) - { - throw new ValidationException(ValidationRules.Pattern, "FaceListId", "^[a-z0-9-_]+$"); - } - } - if (FaceIds != null) - { - if (FaceIds.Count > 1000) - { - throw new ValidationException(ValidationRules.MaxItems, "FaceIds", 1000); - } - } - if (MaxNumOfCandidatesReturned > 1000) - { - throw new ValidationException(ValidationRules.InclusiveMaximum, "MaxNumOfCandidatesReturned", 1000); - } - if (MaxNumOfCandidatesReturned < 1) - { - throw new ValidationException(ValidationRules.InclusiveMinimum, "MaxNumOfCandidatesReturned", 1); - } - } - } -} diff --git a/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/GetFaceListResult.cs b/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/GetFaceListResult.cs deleted file mode 100644 index 8ba762f2210e..000000000000 --- a/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/GetFaceListResult.cs +++ /dev/null @@ -1,105 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Vision.Face.Models -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Vision; - using Microsoft.CognitiveServices.Vision.Face; - using Microsoft.Rest; - using Newtonsoft.Json; - using System.Linq; - - /// - /// Result of the GetFaceList operation. - /// - public partial class GetFaceListResult - { - /// - /// Initializes a new instance of the GetFaceListResult class. - /// - public GetFaceListResult() - { - CustomInit(); - } - - /// - /// Initializes a new instance of the GetFaceListResult class. - /// - /// faceListId of the target face - /// list. - /// Face list's display name. - /// User-provided data attached to this face - /// list. - public GetFaceListResult(string faceListId, string name = default(string), string userData = default(string)) - { - FaceListId = faceListId; - Name = name; - UserData = userData; - CustomInit(); - } - - /// - /// An initialization method that performs custom operations like setting defaults - /// - partial void CustomInit(); - - /// - /// Gets or sets faceListId of the target face list. - /// - [JsonProperty(PropertyName = "faceListId")] - public string FaceListId { get; set; } - - /// - /// Gets or sets face list's display name. - /// - [JsonProperty(PropertyName = "name")] - public string Name { get; set; } - - /// - /// Gets or sets user-provided data attached to this face list. - /// - [JsonProperty(PropertyName = "userData")] - public string UserData { get; set; } - - /// - /// Validate the object. - /// - /// - /// Thrown if validation fails - /// - public virtual void Validate() - { - if (FaceListId == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "FaceListId"); - } - if (FaceListId != null) - { - if (FaceListId.Length > 64) - { - throw new ValidationException(ValidationRules.MaxLength, "FaceListId", 64); - } - if (!System.Text.RegularExpressions.Regex.IsMatch(FaceListId, "^[a-z0-9-_]+$")) - { - throw new ValidationException(ValidationRules.Pattern, "FaceListId", "^[a-z0-9-_]+$"); - } - } - if (Name != null) - { - if (Name.Length > 128) - { - throw new ValidationException(ValidationRules.MaxLength, "Name", 128); - } - } - if (UserData != null) - { - if (UserData.Length > 16384) - { - throw new ValidationException(ValidationRules.MaxLength, "UserData", 16384); - } - } - } - } -} diff --git a/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/GroupRequest.cs b/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/GroupRequest.cs deleted file mode 100644 index 426fef0c5f5a..000000000000 --- a/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/GroupRequest.cs +++ /dev/null @@ -1,73 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Vision.Face.Models -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Vision; - using Microsoft.CognitiveServices.Vision.Face; - using Microsoft.Rest; - using Newtonsoft.Json; - using System.Collections; - using System.Collections.Generic; - using System.Linq; - - /// - /// Request body for group request. - /// - public partial class GroupRequest - { - /// - /// Initializes a new instance of the GroupRequest class. - /// - public GroupRequest() - { - CustomInit(); - } - - /// - /// Initializes a new instance of the GroupRequest class. - /// - /// Array of candidate faceId created by Face - - /// Detect. The maximum is 1000 faces - public GroupRequest(IList faceIds) - { - FaceIds = faceIds; - CustomInit(); - } - - /// - /// An initialization method that performs custom operations like setting defaults - /// - partial void CustomInit(); - - /// - /// Gets or sets array of candidate faceId created by Face - Detect. - /// The maximum is 1000 faces - /// - [JsonProperty(PropertyName = "faceIds")] - public IList FaceIds { get; set; } - - /// - /// Validate the object. - /// - /// - /// Thrown if validation fails - /// - public virtual void Validate() - { - if (FaceIds == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "FaceIds"); - } - if (FaceIds != null) - { - if (FaceIds.Count > 1000) - { - throw new ValidationException(ValidationRules.MaxItems, "FaceIds", 1000); - } - } - } - } -} diff --git a/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/GroupResponse.cs b/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/GroupResponse.cs deleted file mode 100644 index 4c93668bfd58..000000000000 --- a/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/GroupResponse.cs +++ /dev/null @@ -1,76 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Vision.Face.Models -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Vision; - using Microsoft.CognitiveServices.Vision.Face; - using Microsoft.Rest; - using Newtonsoft.Json; - using System.Collections; - using System.Collections.Generic; - using System.Linq; - - /// - /// An array of face groups based on face similarity. - /// - public partial class GroupResponse - { - /// - /// Initializes a new instance of the GroupResponse class. - /// - public GroupResponse() - { - CustomInit(); - } - - /// - /// Initializes a new instance of the GroupResponse class. - /// - /// A partition of the original faces based on - /// face similarity. Groups are ranked by number of faces - /// Face ids array of faces that cannot find - /// any similar faces from original faces. - public GroupResponse(IList> groups, IList messyGroup = default(IList)) - { - Groups = groups; - MessyGroup = messyGroup; - CustomInit(); - } - - /// - /// An initialization method that performs custom operations like setting defaults - /// - partial void CustomInit(); - - /// - /// Gets or sets a partition of the original faces based on face - /// similarity. Groups are ranked by number of faces - /// - [JsonProperty(PropertyName = "groups")] - public IList> Groups { get; set; } - - /// - /// Gets or sets face ids array of faces that cannot find any similar - /// faces from original faces. - /// - [JsonProperty(PropertyName = "messyGroup")] - public IList MessyGroup { get; set; } - - /// - /// Validate the object. - /// - /// - /// Thrown if validation fails - /// - public virtual void Validate() - { - if (Groups == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "Groups"); - } - } - } -} diff --git a/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/HeadPoseProperties.cs b/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/HeadPoseProperties.cs deleted file mode 100644 index 7cb1bc37aa9b..000000000000 --- a/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/HeadPoseProperties.cs +++ /dev/null @@ -1,58 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Vision.Face.Models -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Vision; - using Microsoft.CognitiveServices.Vision.Face; - using Newtonsoft.Json; - using System.Linq; - - /// - /// Properties indicating head pose of the face. - /// - public partial class HeadPoseProperties - { - /// - /// Initializes a new instance of the HeadPoseProperties class. - /// - public HeadPoseProperties() - { - CustomInit(); - } - - /// - /// Initializes a new instance of the HeadPoseProperties class. - /// - public HeadPoseProperties(double? roll = default(double?), double? yaw = default(double?), double? pitch = default(double?)) - { - Roll = roll; - Yaw = yaw; - Pitch = pitch; - CustomInit(); - } - - /// - /// An initialization method that performs custom operations like setting defaults - /// - partial void CustomInit(); - - /// - /// - [JsonProperty(PropertyName = "roll")] - public double? Roll { get; set; } - - /// - /// - [JsonProperty(PropertyName = "yaw")] - public double? Yaw { get; set; } - - /// - /// - [JsonProperty(PropertyName = "pitch")] - public double? Pitch { get; set; } - - } -} diff --git a/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/IdentifyRequest.cs b/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/IdentifyRequest.cs deleted file mode 100644 index 1772ab5208ee..000000000000 --- a/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/IdentifyRequest.cs +++ /dev/null @@ -1,122 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Vision.Face.Models -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Vision; - using Microsoft.CognitiveServices.Vision.Face; - using Microsoft.Rest; - using Newtonsoft.Json; - using System.Collections; - using System.Collections.Generic; - using System.Linq; - - /// - /// Request body for identify face operation. - /// - public partial class IdentifyRequest - { - /// - /// Initializes a new instance of the IdentifyRequest class. - /// - public IdentifyRequest() - { - CustomInit(); - } - - /// - /// Initializes a new instance of the IdentifyRequest class. - /// - /// personGroupId of the target person - /// group, created by PersonGroups.Create - /// Array of candidate faceId created by Face - - /// Detect. - /// The number of top similar - /// faces returned. - /// Confidence threshold of - /// identification, used to judge whether one face belong to one - /// person. - public IdentifyRequest(string personGroupId, IList faceIds, int? maxNumOfCandidatesReturned = default(int?), double? confidenceThreshold = default(double?)) - { - PersonGroupId = personGroupId; - FaceIds = faceIds; - MaxNumOfCandidatesReturned = maxNumOfCandidatesReturned; - ConfidenceThreshold = confidenceThreshold; - CustomInit(); - } - - /// - /// An initialization method that performs custom operations like setting defaults - /// - partial void CustomInit(); - - /// - /// Gets or sets personGroupId of the target person group, created by - /// PersonGroups.Create - /// - [JsonProperty(PropertyName = "personGroupId")] - public string PersonGroupId { get; set; } - - /// - /// Gets or sets array of candidate faceId created by Face - Detect. - /// - [JsonProperty(PropertyName = "faceIds")] - public IList FaceIds { get; set; } - - /// - /// Gets or sets the number of top similar faces returned. - /// - [JsonProperty(PropertyName = "maxNumOfCandidatesReturned")] - public int? MaxNumOfCandidatesReturned { get; set; } - - /// - /// Gets or sets confidence threshold of identification, used to judge - /// whether one face belong to one person. - /// - [JsonProperty(PropertyName = "confidenceThreshold")] - public double? ConfidenceThreshold { get; set; } - - /// - /// Validate the object. - /// - /// - /// Thrown if validation fails - /// - public virtual void Validate() - { - if (PersonGroupId == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "PersonGroupId"); - } - if (FaceIds == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "FaceIds"); - } - if (FaceIds != null) - { - if (FaceIds.Count > 1000) - { - throw new ValidationException(ValidationRules.MaxItems, "FaceIds", 1000); - } - } - if (MaxNumOfCandidatesReturned > 1000) - { - throw new ValidationException(ValidationRules.InclusiveMaximum, "MaxNumOfCandidatesReturned", 1000); - } - if (MaxNumOfCandidatesReturned < 1) - { - throw new ValidationException(ValidationRules.InclusiveMinimum, "MaxNumOfCandidatesReturned", 1); - } - if (ConfidenceThreshold > 1) - { - throw new ValidationException(ValidationRules.InclusiveMaximum, "ConfidenceThreshold", 1); - } - if (ConfidenceThreshold < 0) - { - throw new ValidationException(ValidationRules.InclusiveMinimum, "ConfidenceThreshold", 0); - } - } - } -} diff --git a/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/IdentifyResultCandidate.cs b/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/IdentifyResultCandidate.cs deleted file mode 100644 index e07214df215d..000000000000 --- a/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/IdentifyResultCandidate.cs +++ /dev/null @@ -1,80 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Vision.Face.Models -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Vision; - using Microsoft.CognitiveServices.Vision.Face; - using Microsoft.Rest; - using Newtonsoft.Json; - using System.Linq; - - /// - /// All possible faces that may qualify. - /// - public partial class IdentifyResultCandidate - { - /// - /// Initializes a new instance of the IdentifyResultCandidate class. - /// - public IdentifyResultCandidate() - { - CustomInit(); - } - - /// - /// Initializes a new instance of the IdentifyResultCandidate class. - /// - /// Id of candidate - /// Confidence level in the candidate person: - /// a float number between 0.0 and 1.0. - public IdentifyResultCandidate(string personId, double confidence) - { - PersonId = personId; - Confidence = confidence; - CustomInit(); - } - - /// - /// An initialization method that performs custom operations like setting defaults - /// - partial void CustomInit(); - - /// - /// Gets or sets id of candidate - /// - [JsonProperty(PropertyName = "personId")] - public string PersonId { get; set; } - - /// - /// Gets or sets confidence level in the candidate person: a float - /// number between 0.0 and 1.0. - /// - [JsonProperty(PropertyName = "confidence")] - public double Confidence { get; set; } - - /// - /// Validate the object. - /// - /// - /// Thrown if validation fails - /// - public virtual void Validate() - { - if (PersonId == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "PersonId"); - } - if (Confidence > 1) - { - throw new ValidationException(ValidationRules.InclusiveMaximum, "Confidence", 1); - } - if (Confidence < 0) - { - throw new ValidationException(ValidationRules.InclusiveMinimum, "Confidence", 0); - } - } - } -} diff --git a/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/IdentifyResultItem.cs b/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/IdentifyResultItem.cs deleted file mode 100644 index 5ab9f1a9c8d4..000000000000 --- a/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/IdentifyResultItem.cs +++ /dev/null @@ -1,91 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Vision.Face.Models -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Vision; - using Microsoft.CognitiveServices.Vision.Face; - using Microsoft.Rest; - using Newtonsoft.Json; - using System.Collections; - using System.Collections.Generic; - using System.Linq; - - /// - /// Response body for identify face operation. - /// - public partial class IdentifyResultItem - { - /// - /// Initializes a new instance of the IdentifyResultItem class. - /// - public IdentifyResultItem() - { - CustomInit(); - } - - /// - /// Initializes a new instance of the IdentifyResultItem class. - /// - /// faceId of the query face - public IdentifyResultItem(string faceId, IList candidates) - { - FaceId = faceId; - Candidates = candidates; - CustomInit(); - } - - /// - /// An initialization method that performs custom operations like setting defaults - /// - partial void CustomInit(); - - /// - /// Gets or sets faceId of the query face - /// - [JsonProperty(PropertyName = "faceId")] - public string FaceId { get; set; } - - /// - /// - [JsonProperty(PropertyName = "candidates")] - public IList Candidates { get; set; } - - /// - /// Validate the object. - /// - /// - /// Thrown if validation fails - /// - public virtual void Validate() - { - if (FaceId == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "FaceId"); - } - if (Candidates == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "Candidates"); - } - if (FaceId != null) - { - if (FaceId.Length > 64) - { - throw new ValidationException(ValidationRules.MaxLength, "FaceId", 64); - } - } - if (Candidates != null) - { - foreach (var element in Candidates) - { - if (element != null) - { - element.Validate(); - } - } - } - } - } -} diff --git a/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/ImageUrl.cs b/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/ImageUrl.cs deleted file mode 100644 index 97766b424e12..000000000000 --- a/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/ImageUrl.cs +++ /dev/null @@ -1,57 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Vision.Face.Models -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Vision; - using Microsoft.CognitiveServices.Vision.Face; - using Microsoft.Rest; - using Newtonsoft.Json; - using System.Linq; - - public partial class ImageUrl - { - /// - /// Initializes a new instance of the ImageUrl class. - /// - public ImageUrl() - { - CustomInit(); - } - - /// - /// Initializes a new instance of the ImageUrl class. - /// - public ImageUrl(string url) - { - Url = url; - CustomInit(); - } - - /// - /// An initialization method that performs custom operations like setting defaults - /// - partial void CustomInit(); - - /// - /// - [JsonProperty(PropertyName = "url")] - public string Url { get; set; } - - /// - /// Validate the object. - /// - /// - /// Thrown if validation fails - /// - public virtual void Validate() - { - if (Url == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "Url"); - } - } - } -} diff --git a/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/PersonFaceResult.cs b/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/PersonFaceResult.cs deleted file mode 100644 index 68e76d97c6d8..000000000000 --- a/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/PersonFaceResult.cs +++ /dev/null @@ -1,76 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Vision.Face.Models -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Vision; - using Microsoft.CognitiveServices.Vision.Face; - using Microsoft.Rest; - using Newtonsoft.Json; - using System.Linq; - - /// - /// PersonFace object. - /// - public partial class PersonFaceResult - { - /// - /// Initializes a new instance of the PersonFaceResult class. - /// - public PersonFaceResult() - { - CustomInit(); - } - - /// - /// Initializes a new instance of the PersonFaceResult class. - /// - /// The persistedFaceId of the target - /// face, which is persisted and will not expire. Different from faceId - /// created by Face - Detect and will expire in 24 hours after the - /// detection call. - /// User-provided data attached to the - /// face. - public PersonFaceResult(string persistedFaceId, string userData = default(string)) - { - PersistedFaceId = persistedFaceId; - UserData = userData; - CustomInit(); - } - - /// - /// An initialization method that performs custom operations like setting defaults - /// - partial void CustomInit(); - - /// - /// Gets or sets the persistedFaceId of the target face, which is - /// persisted and will not expire. Different from faceId created by - /// Face - Detect and will expire in 24 hours after the detection call. - /// - [JsonProperty(PropertyName = "persistedFaceId")] - public string PersistedFaceId { get; set; } - - /// - /// Gets or sets user-provided data attached to the face. - /// - [JsonProperty(PropertyName = "userData")] - public string UserData { get; set; } - - /// - /// Validate the object. - /// - /// - /// Thrown if validation fails - /// - public virtual void Validate() - { - if (PersistedFaceId == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "PersistedFaceId"); - } - } - } -} diff --git a/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/PersonGroupResult.cs b/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/PersonGroupResult.cs deleted file mode 100644 index 4950ac12fd5f..000000000000 --- a/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/PersonGroupResult.cs +++ /dev/null @@ -1,101 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Vision.Face.Models -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Vision; - using Microsoft.CognitiveServices.Vision.Face; - using Microsoft.Rest; - using Newtonsoft.Json; - using System.Linq; - - /// - /// Person group object. - /// - public partial class PersonGroupResult - { - /// - /// Initializes a new instance of the PersonGroupResult class. - /// - public PersonGroupResult() - { - CustomInit(); - } - - /// - /// Initializes a new instance of the PersonGroupResult class. - /// - /// faceListId of the target face - /// list. - /// Face list's display name. - /// User-provided data attached to this face - /// list. - public PersonGroupResult(string personGroupId, string name = default(string), string userData = default(string)) - { - PersonGroupId = personGroupId; - Name = name; - UserData = userData; - CustomInit(); - } - - /// - /// An initialization method that performs custom operations like setting defaults - /// - partial void CustomInit(); - - /// - /// Gets or sets faceListId of the target face list. - /// - [JsonProperty(PropertyName = "personGroupId")] - public string PersonGroupId { get; set; } - - /// - /// Gets or sets face list's display name. - /// - [JsonProperty(PropertyName = "name")] - public string Name { get; set; } - - /// - /// Gets or sets user-provided data attached to this face list. - /// - [JsonProperty(PropertyName = "userData")] - public string UserData { get; set; } - - /// - /// Validate the object. - /// - /// - /// Thrown if validation fails - /// - public virtual void Validate() - { - if (PersonGroupId == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "PersonGroupId"); - } - if (PersonGroupId != null) - { - if (PersonGroupId.Length > 128) - { - throw new ValidationException(ValidationRules.MaxLength, "PersonGroupId", 128); - } - } - if (Name != null) - { - if (Name.Length > 128) - { - throw new ValidationException(ValidationRules.MaxLength, "Name", 128); - } - } - if (UserData != null) - { - if (UserData.Length > 16384) - { - throw new ValidationException(ValidationRules.MaxLength, "UserData", 16384); - } - } - } - } -} diff --git a/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/PersonResult.cs b/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/PersonResult.cs deleted file mode 100644 index 8eb9097bffd0..000000000000 --- a/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/PersonResult.cs +++ /dev/null @@ -1,93 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Vision.Face.Models -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Vision; - using Microsoft.CognitiveServices.Vision.Face; - using Microsoft.Rest; - using Newtonsoft.Json; - using System.Collections; - using System.Collections.Generic; - using System.Linq; - - /// - /// Person object. - /// - public partial class PersonResult - { - /// - /// Initializes a new instance of the PersonResult class. - /// - public PersonResult() - { - CustomInit(); - } - - /// - /// Initializes a new instance of the PersonResult class. - /// - /// personId of the target face list. - /// persistedFaceIds of registered faces - /// in the person. These persistedFaceIds are returned from Person - - /// Add a Person Face, and will not expire. - /// Person's display name. - /// User-provided data attached to this - /// person. - public PersonResult(string personId, IList persistedFaceIds = default(IList), string name = default(string), string userData = default(string)) - { - PersonId = personId; - PersistedFaceIds = persistedFaceIds; - Name = name; - UserData = userData; - CustomInit(); - } - - /// - /// An initialization method that performs custom operations like setting defaults - /// - partial void CustomInit(); - - /// - /// Gets or sets personId of the target face list. - /// - [JsonProperty(PropertyName = "personId")] - public string PersonId { get; set; } - - /// - /// Gets or sets persistedFaceIds of registered faces in the person. - /// These persistedFaceIds are returned from Person - Add a Person - /// Face, and will not expire. - /// - [JsonProperty(PropertyName = "persistedFaceIds")] - public IList PersistedFaceIds { get; set; } - - /// - /// Gets or sets person's display name. - /// - [JsonProperty(PropertyName = "name")] - public string Name { get; set; } - - /// - /// Gets or sets user-provided data attached to this person. - /// - [JsonProperty(PropertyName = "userData")] - public string UserData { get; set; } - - /// - /// Validate the object. - /// - /// - /// Thrown if validation fails - /// - public virtual void Validate() - { - if (PersonId == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "PersonId"); - } - } - } -} diff --git a/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/Position.cs b/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/Position.cs deleted file mode 100644 index 4a20af049ae2..000000000000 --- a/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/Position.cs +++ /dev/null @@ -1,66 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Vision.Face.Models -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Vision; - using Microsoft.CognitiveServices.Vision.Face; - using Newtonsoft.Json; - using System.Linq; - - /// - /// Coordinates within an image - /// - public partial class Position - { - /// - /// Initializes a new instance of the Position class. - /// - public Position() - { - CustomInit(); - } - - /// - /// Initializes a new instance of the Position class. - /// - /// The horizontal component, in pixels. - /// The vertical component, in pixels. - public Position(int x, int y) - { - X = x; - Y = y; - CustomInit(); - } - - /// - /// An initialization method that performs custom operations like setting defaults - /// - partial void CustomInit(); - - /// - /// Gets or sets the horizontal component, in pixels. - /// - [JsonProperty(PropertyName = "x")] - public int X { get; set; } - - /// - /// Gets or sets the vertical component, in pixels. - /// - [JsonProperty(PropertyName = "y")] - public int Y { get; set; } - - /// - /// Validate the object. - /// - /// - /// Thrown if validation fails - /// - public virtual void Validate() - { - //Nothing to validate - } - } -} diff --git a/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/SimilarFaceResult.cs b/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/SimilarFaceResult.cs deleted file mode 100644 index d40e1df84c48..000000000000 --- a/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/SimilarFaceResult.cs +++ /dev/null @@ -1,100 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Vision.Face.Models -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Vision; - using Microsoft.CognitiveServices.Vision.Face; - using Microsoft.Rest; - using Newtonsoft.Json; - using System.Linq; - - /// - /// Response body for find similar face operation. - /// - public partial class SimilarFaceResult - { - /// - /// Initializes a new instance of the SimilarFaceResult class. - /// - public SimilarFaceResult() - { - CustomInit(); - } - - /// - /// Initializes a new instance of the SimilarFaceResult class. - /// - /// faceId of candidate face when find by faceIds. - /// faceId is created by Face - Detect and will expire 24 hours after - /// the detection call - /// persistedFaceId of candidate face - /// when find by faceListId. persistedFaceId in face list is persisted - /// and will not expire. As showed in below response - /// Similarity confidence of the candidate - /// face. The higher confidence, the more similar. Range between - /// [0,1 - public SimilarFaceResult(string faceId, string persistedFaceId, double? confidence = default(double?)) - { - FaceId = faceId; - PersistedFaceId = persistedFaceId; - Confidence = confidence; - CustomInit(); - } - - /// - /// An initialization method that performs custom operations like setting defaults - /// - partial void CustomInit(); - - /// - /// Gets or sets faceId of candidate face when find by faceIds. faceId - /// is created by Face - Detect and will expire 24 hours after the - /// detection call - /// - [JsonProperty(PropertyName = "faceId")] - public string FaceId { get; set; } - - /// - /// Gets or sets persistedFaceId of candidate face when find by - /// faceListId. persistedFaceId in face list is persisted and will not - /// expire. As showed in below response - /// - [JsonProperty(PropertyName = "persistedFaceId")] - public string PersistedFaceId { get; set; } - - /// - /// Gets or sets similarity confidence of the candidate face. The - /// higher confidence, the more similar. Range between [0,1 - /// - [JsonProperty(PropertyName = "confidence")] - public double? Confidence { get; set; } - - /// - /// Validate the object. - /// - /// - /// Thrown if validation fails - /// - public virtual void Validate() - { - if (FaceId == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "FaceId"); - } - if (PersistedFaceId == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "PersistedFaceId"); - } - if (FaceId != null) - { - if (FaceId.Length > 64) - { - throw new ValidationException(ValidationRules.MaxLength, "FaceId", 64); - } - } - } - } -} diff --git a/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/TrainingStatus.cs b/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/TrainingStatus.cs deleted file mode 100644 index 29a37c661584..000000000000 --- a/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/TrainingStatus.cs +++ /dev/null @@ -1,105 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Vision.Face.Models -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Vision; - using Microsoft.CognitiveServices.Vision.Face; - using Microsoft.Rest; - using Newtonsoft.Json; - using System.Linq; - - /// - /// Training status object. - /// - public partial class TrainingStatus - { - /// - /// Initializes a new instance of the TrainingStatus class. - /// - public TrainingStatus() - { - CustomInit(); - } - - /// - /// Initializes a new instance of the TrainingStatus class. - /// - /// Training status: notstarted, running, - /// succeeded, failed. If the training process is waiting to perform, - /// the status is notstarted. If the training is ongoing, the status is - /// running. Status succeed means this person group is ready for Face - - /// Identify. Status failed is often caused by no person or no - /// persisted face exist in the person group. Possible values include: - /// 'nonstarted', 'running', 'succeeded', 'failed' - /// A combined UTC date and time string that - /// describes person group created time. - /// Person group last modify time in the UTC, - /// could be null value when the person group is not successfully - /// trained. - /// Show failure message when training failed - /// (omitted when training succeed). - public TrainingStatus(string status, System.DateTime? created = default(System.DateTime?), System.DateTime? lastAction = default(System.DateTime?), string message = default(string)) - { - Status = status; - Created = created; - LastAction = lastAction; - Message = message; - CustomInit(); - } - - /// - /// An initialization method that performs custom operations like setting defaults - /// - partial void CustomInit(); - - /// - /// Gets or sets training status: notstarted, running, succeeded, - /// failed. If the training process is waiting to perform, the status - /// is notstarted. If the training is ongoing, the status is running. - /// Status succeed means this person group is ready for Face - - /// Identify. Status failed is often caused by no person or no - /// persisted face exist in the person group. Possible values include: - /// 'nonstarted', 'running', 'succeeded', 'failed' - /// - [JsonProperty(PropertyName = "status")] - public string Status { get; set; } - - /// - /// Gets or sets a combined UTC date and time string that describes - /// person group created time. - /// - [JsonProperty(PropertyName = "createdDateTime")] - public System.DateTime? Created { get; set; } - - /// - /// Gets or sets person group last modify time in the UTC, could be - /// null value when the person group is not successfully trained. - /// - [JsonProperty(PropertyName = "lastActionDateTime")] - public System.DateTime? LastAction { get; set; } - - /// - /// Gets or sets show failure message when training failed (omitted - /// when training succeed). - /// - [JsonProperty(PropertyName = "message")] - public string Message { get; set; } - - /// - /// Validate the object. - /// - /// - /// Thrown if validation fails - /// - public virtual void Validate() - { - if (Status == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "Status"); - } - } - } -} diff --git a/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/UpdatePersonFaceDataRequest.cs b/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/UpdatePersonFaceDataRequest.cs deleted file mode 100644 index 080047cf5a51..000000000000 --- a/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/UpdatePersonFaceDataRequest.cs +++ /dev/null @@ -1,69 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Vision.Face.Models -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Vision; - using Microsoft.CognitiveServices.Vision.Face; - using Microsoft.Rest; - using Newtonsoft.Json; - using System.Linq; - - /// - /// Request to update person face data. - /// - public partial class UpdatePersonFaceDataRequest - { - /// - /// Initializes a new instance of the UpdatePersonFaceDataRequest - /// class. - /// - public UpdatePersonFaceDataRequest() - { - CustomInit(); - } - - /// - /// Initializes a new instance of the UpdatePersonFaceDataRequest - /// class. - /// - /// User-provided data attached to the face. The - /// size limit is 1KB - public UpdatePersonFaceDataRequest(string userData = default(string)) - { - UserData = userData; - CustomInit(); - } - - /// - /// An initialization method that performs custom operations like setting defaults - /// - partial void CustomInit(); - - /// - /// Gets or sets user-provided data attached to the face. The size - /// limit is 1KB - /// - [JsonProperty(PropertyName = "userData")] - public string UserData { get; set; } - - /// - /// Validate the object. - /// - /// - /// Thrown if validation fails - /// - public virtual void Validate() - { - if (UserData != null) - { - if (UserData.Length > 1024) - { - throw new ValidationException(ValidationRules.MaxLength, "UserData", 1024); - } - } - } - } -} diff --git a/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/VerifyRequest.cs b/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/VerifyRequest.cs deleted file mode 100644 index 6850dd9836de..000000000000 --- a/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/VerifyRequest.cs +++ /dev/null @@ -1,100 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Vision.Face.Models -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Vision; - using Microsoft.CognitiveServices.Vision.Face; - using Microsoft.Rest; - using Newtonsoft.Json; - using System.Linq; - - /// - /// Request body for verify operation. - /// - public partial class VerifyRequest - { - /// - /// Initializes a new instance of the VerifyRequest class. - /// - public VerifyRequest() - { - CustomInit(); - } - - /// - /// Initializes a new instance of the VerifyRequest class. - /// - /// faceId the face, comes from Face - - /// Detect - /// Specify a certain person in a person group. - /// personId is created in Persons.Create. - /// Using existing personGroupId and - /// personId for fast loading a specified person. personGroupId is - /// created in Person Groups.Create. - public VerifyRequest(string faceId, string personId, string personGroupId) - { - FaceId = faceId; - PersonId = personId; - PersonGroupId = personGroupId; - CustomInit(); - } - - /// - /// An initialization method that performs custom operations like setting defaults - /// - partial void CustomInit(); - - /// - /// Gets or sets faceId the face, comes from Face - Detect - /// - [JsonProperty(PropertyName = "faceId")] - public string FaceId { get; set; } - - /// - /// Gets or sets specify a certain person in a person group. personId - /// is created in Persons.Create. - /// - [JsonProperty(PropertyName = "personId")] - public string PersonId { get; set; } - - /// - /// Gets or sets using existing personGroupId and personId for fast - /// loading a specified person. personGroupId is created in Person - /// Groups.Create. - /// - [JsonProperty(PropertyName = "personGroupId")] - public string PersonGroupId { get; set; } - - /// - /// Validate the object. - /// - /// - /// Thrown if validation fails - /// - public virtual void Validate() - { - if (FaceId == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "FaceId"); - } - if (PersonId == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "PersonId"); - } - if (PersonGroupId == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "PersonGroupId"); - } - if (FaceId != null) - { - if (FaceId.Length > 64) - { - throw new ValidationException(ValidationRules.MaxLength, "FaceId", 64); - } - } - } - } -} diff --git a/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/VerifyResult.cs b/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/VerifyResult.cs deleted file mode 100644 index eb6005a8f075..000000000000 --- a/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/VerifyResult.cs +++ /dev/null @@ -1,86 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Vision.Face.Models -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Vision; - using Microsoft.CognitiveServices.Vision.Face; - using Microsoft.Rest; - using Newtonsoft.Json; - using System.Linq; - - /// - /// Result of the verify operation. - /// - public partial class VerifyResult - { - /// - /// Initializes a new instance of the VerifyResult class. - /// - public VerifyResult() - { - CustomInit(); - } - - /// - /// Initializes a new instance of the VerifyResult class. - /// - /// True if the two faces belong to the same - /// person or the face belongs to the person, otherwise false. - /// "A number indicates the similarity - /// confidence of whether two faces belong to the same person, or - /// whether the face belongs to the person. By default, isIdentical is - /// set to True if similarity confidence is greater than or equal to - /// 0.5. This is useful for advanced users to override "isIdentical" - /// and fine-tune the result on their own data" - public VerifyResult(bool isIdentical, double? confidence = default(double?)) - { - IsIdentical = isIdentical; - Confidence = confidence; - CustomInit(); - } - - /// - /// An initialization method that performs custom operations like setting defaults - /// - partial void CustomInit(); - - /// - /// Gets or sets true if the two faces belong to the same person or the - /// face belongs to the person, otherwise false. - /// - [JsonProperty(PropertyName = "isIdentical")] - public bool IsIdentical { get; set; } - - /// - /// Gets or sets "A number indicates the similarity confidence of - /// whether two faces belong to the same person, or whether the face - /// belongs to the person. By default, isIdentical is set to True if - /// similarity confidence is greater than or equal to 0.5. This is - /// useful for advanced users to override "isIdentical" and fine-tune - /// the result on their own data" - /// - [JsonProperty(PropertyName = "confidence")] - public double? Confidence { get; set; } - - /// - /// Validate the object. - /// - /// - /// Thrown if validation fails - /// - public virtual void Validate() - { - if (Confidence > 1) - { - throw new ValidationException(ValidationRules.InclusiveMaximum, "Confidence", 1); - } - if (Confidence < 0) - { - throw new ValidationException(ValidationRules.InclusiveMinimum, "Confidence", 0); - } - } - } -} diff --git a/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Person.cs b/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Person.cs deleted file mode 100644 index 8a43a4278601..000000000000 --- a/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Person.cs +++ /dev/null @@ -1,1762 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Vision.Face -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Vision; - using Microsoft.Rest; - using Models; - using Newtonsoft.Json; - using System.Collections; - using System.Collections.Generic; - using System.IO; - using System.Net; - using System.Net.Http; - using System.Threading; - using System.Threading.Tasks; - - /// - /// Person operations. - /// - public partial class Person : IServiceOperations, IPerson - { - /// - /// Initializes a new instance of the Person class. - /// - /// - /// Reference to the service client. - /// - /// - /// Thrown when a required parameter is null - /// - public Person(FaceAPI client) - { - if (client == null) - { - throw new System.ArgumentNullException("client"); - } - Client = client; - } - - /// - /// Gets a reference to the FaceAPI - /// - public FaceAPI Client { get; private set; } - - /// - /// Create a new person in a specified person group. - /// - /// - /// Specifying the target person group to create the person. - /// - /// - /// Display name of the target person. The maximum length is 128. - /// - /// - /// Optional fields for user-provided data attached to a person. Size limit is - /// 16KB. - /// - /// - /// Headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when unable to deserialize the response - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// A response object containing the response body and response headers. - /// - public async Task> CreateWithHttpMessagesAsync(string personGroupId, string name = default(string), string userData = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) - { - if (Client.AzureRegion1 == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); - } - if (personGroupId == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "personGroupId"); - } - if (Client.SubscriptionKey == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); - } - if (name != null) - { - if (name.Length > 128) - { - throw new ValidationException(ValidationRules.MaxLength, "name", 128); - } - } - if (userData != null) - { - if (userData.Length > 16384) - { - throw new ValidationException(ValidationRules.MaxLength, "userData", 16384); - } - } - CreatePersonRequest body = new CreatePersonRequest(); - if (name != null || userData != null) - { - body.Name = name; - body.UserData = userData; - } - // Tracing - bool _shouldTrace = ServiceClientTracing.IsEnabled; - string _invocationId = null; - if (_shouldTrace) - { - _invocationId = ServiceClientTracing.NextInvocationId.ToString(); - Dictionary tracingParameters = new Dictionary(); - tracingParameters.Add("personGroupId", personGroupId); - tracingParameters.Add("body", body); - tracingParameters.Add("cancellationToken", cancellationToken); - ServiceClientTracing.Enter(_invocationId, this, "Create", tracingParameters); - } - // Construct URL - var _baseUrl = Client.BaseUri; - var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "persongroups/{personGroupId}/persons"; - _url = _url.Replace("{azureRegion}", Client.AzureRegion1); - _url = _url.Replace("{personGroupId}", System.Uri.EscapeDataString(personGroupId)); - // Create HTTP transport objects - var _httpRequest = new HttpRequestMessage(); - HttpResponseMessage _httpResponse = null; - _httpRequest.Method = new HttpMethod("POST"); - _httpRequest.RequestUri = new System.Uri(_url); - // Set Headers - if (Client.SubscriptionKey != null) - { - if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) - { - _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); - } - _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); - } - - - if (customHeaders != null) - { - foreach(var _header in customHeaders) - { - if (_httpRequest.Headers.Contains(_header.Key)) - { - _httpRequest.Headers.Remove(_header.Key); - } - _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); - } - } - - // Serialize Request - string _requestContent = null; - if(body != null) - { - _requestContent = Rest.Serialization.SafeJsonConvert.SerializeObject(body, Client.SerializationSettings); - _httpRequest.Content = new StringContent(_requestContent, System.Text.Encoding.UTF8); - _httpRequest.Content.Headers.ContentType =System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json; charset=utf-8"); - } - // Send Request - if (_shouldTrace) - { - ServiceClientTracing.SendRequest(_invocationId, _httpRequest); - } - cancellationToken.ThrowIfCancellationRequested(); - _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); - if (_shouldTrace) - { - ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); - } - HttpStatusCode _statusCode = _httpResponse.StatusCode; - cancellationToken.ThrowIfCancellationRequested(); - string _responseContent = null; - if ((int)_statusCode != 200) - { - var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); - try - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - if (_errorBody != null) - { - ex.Body = _errorBody; - } - } - catch (JsonException) - { - // Ignore the exception - } - ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); - ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); - if (_shouldTrace) - { - ServiceClientTracing.Error(_invocationId, ex); - } - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw ex; - } - // Create Result - var _result = new HttpOperationResponse(); - _result.Request = _httpRequest; - _result.Response = _httpResponse; - // Deserialize Response - if ((int)_statusCode == 200) - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - try - { - _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - } - catch (JsonException ex) - { - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); - } - } - if (_shouldTrace) - { - ServiceClientTracing.Exit(_invocationId, _result); - } - return _result; - } - - /// - /// List all persons in a person group, and retrieve person information - /// (including personId, name, userData and persistedFaceIds of registered - /// faces of the person). - /// - /// - /// personGroupId of the target person group. - /// - /// - /// Headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when unable to deserialize the response - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// A response object containing the response body and response headers. - /// - public async Task>> ListWithHttpMessagesAsync(string personGroupId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) - { - if (Client.AzureRegion1 == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); - } - if (personGroupId == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "personGroupId"); - } - if (Client.SubscriptionKey == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); - } - // Tracing - bool _shouldTrace = ServiceClientTracing.IsEnabled; - string _invocationId = null; - if (_shouldTrace) - { - _invocationId = ServiceClientTracing.NextInvocationId.ToString(); - Dictionary tracingParameters = new Dictionary(); - tracingParameters.Add("personGroupId", personGroupId); - tracingParameters.Add("cancellationToken", cancellationToken); - ServiceClientTracing.Enter(_invocationId, this, "List", tracingParameters); - } - // Construct URL - var _baseUrl = Client.BaseUri; - var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "persongroups/{personGroupId}/persons"; - _url = _url.Replace("{azureRegion}", Client.AzureRegion1); - _url = _url.Replace("{personGroupId}", System.Uri.EscapeDataString(personGroupId)); - // Create HTTP transport objects - var _httpRequest = new HttpRequestMessage(); - HttpResponseMessage _httpResponse = null; - _httpRequest.Method = new HttpMethod("GET"); - _httpRequest.RequestUri = new System.Uri(_url); - // Set Headers - if (Client.SubscriptionKey != null) - { - if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) - { - _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); - } - _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); - } - - - if (customHeaders != null) - { - foreach(var _header in customHeaders) - { - if (_httpRequest.Headers.Contains(_header.Key)) - { - _httpRequest.Headers.Remove(_header.Key); - } - _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); - } - } - - // Serialize Request - string _requestContent = null; - // Send Request - if (_shouldTrace) - { - ServiceClientTracing.SendRequest(_invocationId, _httpRequest); - } - cancellationToken.ThrowIfCancellationRequested(); - _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); - if (_shouldTrace) - { - ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); - } - HttpStatusCode _statusCode = _httpResponse.StatusCode; - cancellationToken.ThrowIfCancellationRequested(); - string _responseContent = null; - if ((int)_statusCode != 200) - { - var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); - try - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - if (_errorBody != null) - { - ex.Body = _errorBody; - } - } - catch (JsonException) - { - // Ignore the exception - } - ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); - ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); - if (_shouldTrace) - { - ServiceClientTracing.Error(_invocationId, ex); - } - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw ex; - } - // Create Result - var _result = new HttpOperationResponse>(); - _result.Request = _httpRequest; - _result.Response = _httpResponse; - // Deserialize Response - if ((int)_statusCode == 200) - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - try - { - _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject>(_responseContent, Client.DeserializationSettings); - } - catch (JsonException ex) - { - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); - } - } - if (_shouldTrace) - { - ServiceClientTracing.Exit(_invocationId, _result); - } - return _result; - } - - /// - /// Delete an existing person from a person group. Persisted face images of the - /// person will also be deleted. - /// - /// - /// Specifying the person group containing the person. - /// - /// - /// The target personId to delete. - /// - /// - /// Headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// A response object containing the response body and response headers. - /// - public async Task DeleteWithHttpMessagesAsync(string personGroupId, string personId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) - { - if (Client.AzureRegion1 == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); - } - if (personGroupId == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "personGroupId"); - } - if (personId == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "personId"); - } - if (Client.SubscriptionKey == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); - } - // Tracing - bool _shouldTrace = ServiceClientTracing.IsEnabled; - string _invocationId = null; - if (_shouldTrace) - { - _invocationId = ServiceClientTracing.NextInvocationId.ToString(); - Dictionary tracingParameters = new Dictionary(); - tracingParameters.Add("personGroupId", personGroupId); - tracingParameters.Add("personId", personId); - tracingParameters.Add("cancellationToken", cancellationToken); - ServiceClientTracing.Enter(_invocationId, this, "Delete", tracingParameters); - } - // Construct URL - var _baseUrl = Client.BaseUri; - var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "persongroups/{personGroupId}/persons/{personId}"; - _url = _url.Replace("{azureRegion}", Client.AzureRegion1); - _url = _url.Replace("{personGroupId}", System.Uri.EscapeDataString(personGroupId)); - _url = _url.Replace("{personId}", System.Uri.EscapeDataString(personId)); - // Create HTTP transport objects - var _httpRequest = new HttpRequestMessage(); - HttpResponseMessage _httpResponse = null; - _httpRequest.Method = new HttpMethod("DELETE"); - _httpRequest.RequestUri = new System.Uri(_url); - // Set Headers - if (Client.SubscriptionKey != null) - { - if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) - { - _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); - } - _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); - } - - - if (customHeaders != null) - { - foreach(var _header in customHeaders) - { - if (_httpRequest.Headers.Contains(_header.Key)) - { - _httpRequest.Headers.Remove(_header.Key); - } - _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); - } - } - - // Serialize Request - string _requestContent = null; - // Send Request - if (_shouldTrace) - { - ServiceClientTracing.SendRequest(_invocationId, _httpRequest); - } - cancellationToken.ThrowIfCancellationRequested(); - _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); - if (_shouldTrace) - { - ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); - } - HttpStatusCode _statusCode = _httpResponse.StatusCode; - cancellationToken.ThrowIfCancellationRequested(); - string _responseContent = null; - if ((int)_statusCode != 200) - { - var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); - try - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - if (_errorBody != null) - { - ex.Body = _errorBody; - } - } - catch (JsonException) - { - // Ignore the exception - } - ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); - ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); - if (_shouldTrace) - { - ServiceClientTracing.Error(_invocationId, ex); - } - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw ex; - } - // Create Result - var _result = new HttpOperationResponse(); - _result.Request = _httpRequest; - _result.Response = _httpResponse; - if (_shouldTrace) - { - ServiceClientTracing.Exit(_invocationId, _result); - } - return _result; - } - - /// - /// Retrieve a person's information, including registered persisted faces, name - /// and userData. - /// - /// - /// Specifying the person group containing the target person. - /// - /// - /// Specifying the target person. - /// - /// - /// Headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when unable to deserialize the response - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// A response object containing the response body and response headers. - /// - public async Task> GetWithHttpMessagesAsync(string personGroupId, string personId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) - { - if (Client.AzureRegion1 == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); - } - if (personGroupId == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "personGroupId"); - } - if (personId == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "personId"); - } - if (Client.SubscriptionKey == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); - } - // Tracing - bool _shouldTrace = ServiceClientTracing.IsEnabled; - string _invocationId = null; - if (_shouldTrace) - { - _invocationId = ServiceClientTracing.NextInvocationId.ToString(); - Dictionary tracingParameters = new Dictionary(); - tracingParameters.Add("personGroupId", personGroupId); - tracingParameters.Add("personId", personId); - tracingParameters.Add("cancellationToken", cancellationToken); - ServiceClientTracing.Enter(_invocationId, this, "Get", tracingParameters); - } - // Construct URL - var _baseUrl = Client.BaseUri; - var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "persongroups/{personGroupId}/persons/{personId}"; - _url = _url.Replace("{azureRegion}", Client.AzureRegion1); - _url = _url.Replace("{personGroupId}", System.Uri.EscapeDataString(personGroupId)); - _url = _url.Replace("{personId}", System.Uri.EscapeDataString(personId)); - // Create HTTP transport objects - var _httpRequest = new HttpRequestMessage(); - HttpResponseMessage _httpResponse = null; - _httpRequest.Method = new HttpMethod("GET"); - _httpRequest.RequestUri = new System.Uri(_url); - // Set Headers - if (Client.SubscriptionKey != null) - { - if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) - { - _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); - } - _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); - } - - - if (customHeaders != null) - { - foreach(var _header in customHeaders) - { - if (_httpRequest.Headers.Contains(_header.Key)) - { - _httpRequest.Headers.Remove(_header.Key); - } - _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); - } - } - - // Serialize Request - string _requestContent = null; - // Send Request - if (_shouldTrace) - { - ServiceClientTracing.SendRequest(_invocationId, _httpRequest); - } - cancellationToken.ThrowIfCancellationRequested(); - _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); - if (_shouldTrace) - { - ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); - } - HttpStatusCode _statusCode = _httpResponse.StatusCode; - cancellationToken.ThrowIfCancellationRequested(); - string _responseContent = null; - if ((int)_statusCode != 200) - { - var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); - try - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - if (_errorBody != null) - { - ex.Body = _errorBody; - } - } - catch (JsonException) - { - // Ignore the exception - } - ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); - ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); - if (_shouldTrace) - { - ServiceClientTracing.Error(_invocationId, ex); - } - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw ex; - } - // Create Result - var _result = new HttpOperationResponse(); - _result.Request = _httpRequest; - _result.Response = _httpResponse; - // Deserialize Response - if ((int)_statusCode == 200) - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - try - { - _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - } - catch (JsonException ex) - { - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); - } - } - if (_shouldTrace) - { - ServiceClientTracing.Exit(_invocationId, _result); - } - return _result; - } - - /// - /// Update name or userData of a person. - /// - /// - /// Specifying the person group containing the target person. - /// - /// - /// personId of the target person. - /// - /// - /// Display name of the target person. The maximum length is 128. - /// - /// - /// Optional fields for user-provided data attached to a person. Size limit is - /// 16KB. - /// - /// - /// Headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// A response object containing the response body and response headers. - /// - public async Task UpdateWithHttpMessagesAsync(string personGroupId, string personId, string name = default(string), string userData = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) - { - if (Client.AzureRegion1 == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); - } - if (personGroupId == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "personGroupId"); - } - if (personId == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "personId"); - } - if (Client.SubscriptionKey == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); - } - if (name != null) - { - if (name.Length > 128) - { - throw new ValidationException(ValidationRules.MaxLength, "name", 128); - } - } - if (userData != null) - { - if (userData.Length > 16384) - { - throw new ValidationException(ValidationRules.MaxLength, "userData", 16384); - } - } - CreatePersonRequest body = new CreatePersonRequest(); - if (name != null || userData != null) - { - body.Name = name; - body.UserData = userData; - } - // Tracing - bool _shouldTrace = ServiceClientTracing.IsEnabled; - string _invocationId = null; - if (_shouldTrace) - { - _invocationId = ServiceClientTracing.NextInvocationId.ToString(); - Dictionary tracingParameters = new Dictionary(); - tracingParameters.Add("personGroupId", personGroupId); - tracingParameters.Add("personId", personId); - tracingParameters.Add("body", body); - tracingParameters.Add("cancellationToken", cancellationToken); - ServiceClientTracing.Enter(_invocationId, this, "Update", tracingParameters); - } - // Construct URL - var _baseUrl = Client.BaseUri; - var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "persongroups/{personGroupId}/persons/{personId}"; - _url = _url.Replace("{azureRegion}", Client.AzureRegion1); - _url = _url.Replace("{personGroupId}", System.Uri.EscapeDataString(personGroupId)); - _url = _url.Replace("{personId}", System.Uri.EscapeDataString(personId)); - // Create HTTP transport objects - var _httpRequest = new HttpRequestMessage(); - HttpResponseMessage _httpResponse = null; - _httpRequest.Method = new HttpMethod("PATCH"); - _httpRequest.RequestUri = new System.Uri(_url); - // Set Headers - if (Client.SubscriptionKey != null) - { - if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) - { - _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); - } - _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); - } - - - if (customHeaders != null) - { - foreach(var _header in customHeaders) - { - if (_httpRequest.Headers.Contains(_header.Key)) - { - _httpRequest.Headers.Remove(_header.Key); - } - _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); - } - } - - // Serialize Request - string _requestContent = null; - if(body != null) - { - _requestContent = Rest.Serialization.SafeJsonConvert.SerializeObject(body, Client.SerializationSettings); - _httpRequest.Content = new StringContent(_requestContent, System.Text.Encoding.UTF8); - _httpRequest.Content.Headers.ContentType =System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json; charset=utf-8"); - } - // Send Request - if (_shouldTrace) - { - ServiceClientTracing.SendRequest(_invocationId, _httpRequest); - } - cancellationToken.ThrowIfCancellationRequested(); - _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); - if (_shouldTrace) - { - ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); - } - HttpStatusCode _statusCode = _httpResponse.StatusCode; - cancellationToken.ThrowIfCancellationRequested(); - string _responseContent = null; - if ((int)_statusCode != 200) - { - var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); - try - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - if (_errorBody != null) - { - ex.Body = _errorBody; - } - } - catch (JsonException) - { - // Ignore the exception - } - ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); - ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); - if (_shouldTrace) - { - ServiceClientTracing.Error(_invocationId, ex); - } - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw ex; - } - // Create Result - var _result = new HttpOperationResponse(); - _result.Request = _httpRequest; - _result.Response = _httpResponse; - if (_shouldTrace) - { - ServiceClientTracing.Exit(_invocationId, _result); - } - return _result; - } - - /// - /// Delete a face from a person. Relative image for the persisted face will - /// also be deleted. - /// - /// - /// Specifying the person group containing the target person. - /// - /// - /// Specifying the person that the target persisted face belong to. - /// - /// - /// The persisted face to remove. - /// - /// - /// Headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// A response object containing the response body and response headers. - /// - public async Task DeleteFaceWithHttpMessagesAsync(string personGroupId, string personId, string persistedFaceId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) - { - if (Client.AzureRegion1 == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); - } - if (personGroupId == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "personGroupId"); - } - if (personId == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "personId"); - } - if (persistedFaceId == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "persistedFaceId"); - } - if (Client.SubscriptionKey == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); - } - // Tracing - bool _shouldTrace = ServiceClientTracing.IsEnabled; - string _invocationId = null; - if (_shouldTrace) - { - _invocationId = ServiceClientTracing.NextInvocationId.ToString(); - Dictionary tracingParameters = new Dictionary(); - tracingParameters.Add("personGroupId", personGroupId); - tracingParameters.Add("personId", personId); - tracingParameters.Add("persistedFaceId", persistedFaceId); - tracingParameters.Add("cancellationToken", cancellationToken); - ServiceClientTracing.Enter(_invocationId, this, "DeleteFace", tracingParameters); - } - // Construct URL - var _baseUrl = Client.BaseUri; - var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "persongroups/{personGroupId}/persons/{personId}/persistedFaces/{persistedFaceId}"; - _url = _url.Replace("{azureRegion}", Client.AzureRegion1); - _url = _url.Replace("{personGroupId}", System.Uri.EscapeDataString(personGroupId)); - _url = _url.Replace("{personId}", System.Uri.EscapeDataString(personId)); - _url = _url.Replace("{persistedFaceId}", System.Uri.EscapeDataString(persistedFaceId)); - // Create HTTP transport objects - var _httpRequest = new HttpRequestMessage(); - HttpResponseMessage _httpResponse = null; - _httpRequest.Method = new HttpMethod("DELETE"); - _httpRequest.RequestUri = new System.Uri(_url); - // Set Headers - if (Client.SubscriptionKey != null) - { - if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) - { - _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); - } - _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); - } - - - if (customHeaders != null) - { - foreach(var _header in customHeaders) - { - if (_httpRequest.Headers.Contains(_header.Key)) - { - _httpRequest.Headers.Remove(_header.Key); - } - _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); - } - } - - // Serialize Request - string _requestContent = null; - // Send Request - if (_shouldTrace) - { - ServiceClientTracing.SendRequest(_invocationId, _httpRequest); - } - cancellationToken.ThrowIfCancellationRequested(); - _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); - if (_shouldTrace) - { - ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); - } - HttpStatusCode _statusCode = _httpResponse.StatusCode; - cancellationToken.ThrowIfCancellationRequested(); - string _responseContent = null; - if ((int)_statusCode != 200) - { - var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); - try - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - if (_errorBody != null) - { - ex.Body = _errorBody; - } - } - catch (JsonException) - { - // Ignore the exception - } - ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); - ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); - if (_shouldTrace) - { - ServiceClientTracing.Error(_invocationId, ex); - } - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw ex; - } - // Create Result - var _result = new HttpOperationResponse(); - _result.Request = _httpRequest; - _result.Response = _httpResponse; - if (_shouldTrace) - { - ServiceClientTracing.Exit(_invocationId, _result); - } - return _result; - } - - /// - /// Retrieve information about a persisted face (specified by persistedFaceId, - /// personId and its belonging personGroupId). - /// - /// - /// Specifying the person group containing the target person. - /// - /// - /// Specifying the target person that the face belongs to. - /// - /// - /// The persistedFaceId of the target persisted face of the person. - /// - /// - /// Headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when unable to deserialize the response - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// A response object containing the response body and response headers. - /// - public async Task> GetFaceWithHttpMessagesAsync(string personGroupId, string personId, string persistedFaceId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) - { - if (Client.AzureRegion1 == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); - } - if (personGroupId == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "personGroupId"); - } - if (personId == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "personId"); - } - if (persistedFaceId == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "persistedFaceId"); - } - if (Client.SubscriptionKey == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); - } - // Tracing - bool _shouldTrace = ServiceClientTracing.IsEnabled; - string _invocationId = null; - if (_shouldTrace) - { - _invocationId = ServiceClientTracing.NextInvocationId.ToString(); - Dictionary tracingParameters = new Dictionary(); - tracingParameters.Add("personGroupId", personGroupId); - tracingParameters.Add("personId", personId); - tracingParameters.Add("persistedFaceId", persistedFaceId); - tracingParameters.Add("cancellationToken", cancellationToken); - ServiceClientTracing.Enter(_invocationId, this, "GetFace", tracingParameters); - } - // Construct URL - var _baseUrl = Client.BaseUri; - var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "persongroups/{personGroupId}/persons/{personId}/persistedFaces/{persistedFaceId}"; - _url = _url.Replace("{azureRegion}", Client.AzureRegion1); - _url = _url.Replace("{personGroupId}", System.Uri.EscapeDataString(personGroupId)); - _url = _url.Replace("{personId}", System.Uri.EscapeDataString(personId)); - _url = _url.Replace("{persistedFaceId}", System.Uri.EscapeDataString(persistedFaceId)); - // Create HTTP transport objects - var _httpRequest = new HttpRequestMessage(); - HttpResponseMessage _httpResponse = null; - _httpRequest.Method = new HttpMethod("GET"); - _httpRequest.RequestUri = new System.Uri(_url); - // Set Headers - if (Client.SubscriptionKey != null) - { - if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) - { - _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); - } - _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); - } - - - if (customHeaders != null) - { - foreach(var _header in customHeaders) - { - if (_httpRequest.Headers.Contains(_header.Key)) - { - _httpRequest.Headers.Remove(_header.Key); - } - _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); - } - } - - // Serialize Request - string _requestContent = null; - // Send Request - if (_shouldTrace) - { - ServiceClientTracing.SendRequest(_invocationId, _httpRequest); - } - cancellationToken.ThrowIfCancellationRequested(); - _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); - if (_shouldTrace) - { - ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); - } - HttpStatusCode _statusCode = _httpResponse.StatusCode; - cancellationToken.ThrowIfCancellationRequested(); - string _responseContent = null; - if ((int)_statusCode != 200) - { - var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); - try - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - if (_errorBody != null) - { - ex.Body = _errorBody; - } - } - catch (JsonException) - { - // Ignore the exception - } - ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); - ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); - if (_shouldTrace) - { - ServiceClientTracing.Error(_invocationId, ex); - } - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw ex; - } - // Create Result - var _result = new HttpOperationResponse(); - _result.Request = _httpRequest; - _result.Response = _httpResponse; - // Deserialize Response - if ((int)_statusCode == 200) - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - try - { - _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - } - catch (JsonException ex) - { - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); - } - } - if (_shouldTrace) - { - ServiceClientTracing.Exit(_invocationId, _result); - } - return _result; - } - - /// - /// Update a person persisted face's userData field. - /// - /// - /// Specifying the person group containing the target person. - /// - /// - /// personId of the target person. - /// - /// - /// persistedFaceId of target face, which is persisted and will not expire. - /// - /// - /// User-provided data attached to the face. The size limit is 1KB - /// - /// - /// Headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// A response object containing the response body and response headers. - /// - public async Task UpdateFaceWithHttpMessagesAsync(string personGroupId, string personId, string persistedFaceId, string userData = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) - { - if (Client.AzureRegion1 == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); - } - if (personGroupId == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "personGroupId"); - } - if (personId == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "personId"); - } - if (persistedFaceId == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "persistedFaceId"); - } - if (Client.SubscriptionKey == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); - } - if (userData != null) - { - if (userData.Length > 1024) - { - throw new ValidationException(ValidationRules.MaxLength, "userData", 1024); - } - } - UpdatePersonFaceDataRequest body = new UpdatePersonFaceDataRequest(); - if (userData != null) - { - body.UserData = userData; - } - // Tracing - bool _shouldTrace = ServiceClientTracing.IsEnabled; - string _invocationId = null; - if (_shouldTrace) - { - _invocationId = ServiceClientTracing.NextInvocationId.ToString(); - Dictionary tracingParameters = new Dictionary(); - tracingParameters.Add("personGroupId", personGroupId); - tracingParameters.Add("personId", personId); - tracingParameters.Add("persistedFaceId", persistedFaceId); - tracingParameters.Add("body", body); - tracingParameters.Add("cancellationToken", cancellationToken); - ServiceClientTracing.Enter(_invocationId, this, "UpdateFace", tracingParameters); - } - // Construct URL - var _baseUrl = Client.BaseUri; - var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "persongroups/{personGroupId}/persons/{personId}/persistedFaces/{persistedFaceId}"; - _url = _url.Replace("{azureRegion}", Client.AzureRegion1); - _url = _url.Replace("{personGroupId}", System.Uri.EscapeDataString(personGroupId)); - _url = _url.Replace("{personId}", System.Uri.EscapeDataString(personId)); - _url = _url.Replace("{persistedFaceId}", System.Uri.EscapeDataString(persistedFaceId)); - // Create HTTP transport objects - var _httpRequest = new HttpRequestMessage(); - HttpResponseMessage _httpResponse = null; - _httpRequest.Method = new HttpMethod("PATCH"); - _httpRequest.RequestUri = new System.Uri(_url); - // Set Headers - if (Client.SubscriptionKey != null) - { - if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) - { - _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); - } - _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); - } - - - if (customHeaders != null) - { - foreach(var _header in customHeaders) - { - if (_httpRequest.Headers.Contains(_header.Key)) - { - _httpRequest.Headers.Remove(_header.Key); - } - _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); - } - } - - // Serialize Request - string _requestContent = null; - if(body != null) - { - _requestContent = Rest.Serialization.SafeJsonConvert.SerializeObject(body, Client.SerializationSettings); - _httpRequest.Content = new StringContent(_requestContent, System.Text.Encoding.UTF8); - _httpRequest.Content.Headers.ContentType =System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json; charset=utf-8"); - } - // Send Request - if (_shouldTrace) - { - ServiceClientTracing.SendRequest(_invocationId, _httpRequest); - } - cancellationToken.ThrowIfCancellationRequested(); - _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); - if (_shouldTrace) - { - ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); - } - HttpStatusCode _statusCode = _httpResponse.StatusCode; - cancellationToken.ThrowIfCancellationRequested(); - string _responseContent = null; - if ((int)_statusCode != 200) - { - var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); - try - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - if (_errorBody != null) - { - ex.Body = _errorBody; - } - } - catch (JsonException) - { - // Ignore the exception - } - ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); - ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); - if (_shouldTrace) - { - ServiceClientTracing.Error(_invocationId, ex); - } - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw ex; - } - // Create Result - var _result = new HttpOperationResponse(); - _result.Request = _httpRequest; - _result.Response = _httpResponse; - if (_shouldTrace) - { - ServiceClientTracing.Exit(_invocationId, _result); - } - return _result; - } - - /// - /// Add a representative face to a person for identification. The input face is - /// specified as an image with a targetFace rectangle. - /// - /// - /// Specifying the person group containing the target person. - /// - /// - /// Target person that the face is added to. - /// - /// - /// User-specified data about the target face to add for any purpose. The - /// maximum length is 1KB. - /// - /// - /// A face rectangle to specify the target face to be added to a person in the - /// format of "targetFace=left,top,width,height". E.g. - /// "targetFace=10,10,100,100". If there is more than one face in the image, - /// targetFace is required to specify which face to add. No targetFace means - /// there is only one face detected in the entire image. - /// - /// - /// Headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// A response object containing the response body and response headers. - /// - public async Task AddFaceWithHttpMessagesAsync(string personGroupId, string personId, string userData = default(string), string targetFace = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) - { - if (Client.AzureRegion1 == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); - } - if (personGroupId == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "personGroupId"); - } - if (personId == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "personId"); - } - if (Client.SubscriptionKey == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); - } - // Tracing - bool _shouldTrace = ServiceClientTracing.IsEnabled; - string _invocationId = null; - if (_shouldTrace) - { - _invocationId = ServiceClientTracing.NextInvocationId.ToString(); - Dictionary tracingParameters = new Dictionary(); - tracingParameters.Add("personGroupId", personGroupId); - tracingParameters.Add("personId", personId); - tracingParameters.Add("userData", userData); - tracingParameters.Add("targetFace", targetFace); - tracingParameters.Add("cancellationToken", cancellationToken); - ServiceClientTracing.Enter(_invocationId, this, "AddFace", tracingParameters); - } - // Construct URL - var _baseUrl = Client.BaseUri; - var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "persongroups/{personGroupId}/persons/{personId}/persistedFaces"; - _url = _url.Replace("{azureRegion}", Client.AzureRegion1); - _url = _url.Replace("{personGroupId}", System.Uri.EscapeDataString(personGroupId)); - _url = _url.Replace("{personId}", System.Uri.EscapeDataString(personId)); - List _queryParameters = new List(); - if (userData != null) - { - _queryParameters.Add(string.Format("userData={0}", System.Uri.EscapeDataString(userData))); - } - if (targetFace != null) - { - _queryParameters.Add(string.Format("targetFace={0}", System.Uri.EscapeDataString(targetFace))); - } - if (_queryParameters.Count > 0) - { - _url += "?" + string.Join("&", _queryParameters); - } - // Create HTTP transport objects - var _httpRequest = new HttpRequestMessage(); - HttpResponseMessage _httpResponse = null; - _httpRequest.Method = new HttpMethod("POST"); - _httpRequest.RequestUri = new System.Uri(_url); - // Set Headers - if (Client.SubscriptionKey != null) - { - if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) - { - _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); - } - _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); - } - - - if (customHeaders != null) - { - foreach(var _header in customHeaders) - { - if (_httpRequest.Headers.Contains(_header.Key)) - { - _httpRequest.Headers.Remove(_header.Key); - } - _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); - } - } - - // Serialize Request - string _requestContent = null; - // Send Request - if (_shouldTrace) - { - ServiceClientTracing.SendRequest(_invocationId, _httpRequest); - } - cancellationToken.ThrowIfCancellationRequested(); - _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); - if (_shouldTrace) - { - ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); - } - HttpStatusCode _statusCode = _httpResponse.StatusCode; - cancellationToken.ThrowIfCancellationRequested(); - string _responseContent = null; - if ((int)_statusCode != 200) - { - var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); - try - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - if (_errorBody != null) - { - ex.Body = _errorBody; - } - } - catch (JsonException) - { - // Ignore the exception - } - ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); - ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); - if (_shouldTrace) - { - ServiceClientTracing.Error(_invocationId, ex); - } - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw ex; - } - // Create Result - var _result = new HttpOperationResponse(); - _result.Request = _httpRequest; - _result.Response = _httpResponse; - if (_shouldTrace) - { - ServiceClientTracing.Exit(_invocationId, _result); - } - return _result; - } - - /// - /// Add a representative face to a person for identification. The input face is - /// specified as an image with a targetFace rectangle. - /// - /// - /// Specifying the person group containing the target person. - /// - /// - /// Target person that the face is added to. - /// - /// - /// User-specified data about the target face to add for any purpose. The - /// maximum length is 1KB. - /// - /// - /// A face rectangle to specify the target face to be added to a person, in the - /// format of "targetFace=left,top,width,height". E.g. - /// "targetFace=10,10,100,100". If there is more than one face in the image, - /// targetFace is required to specify which face to add. No targetFace means - /// there is only one face detected in the entire image. - /// - /// - /// Headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// A response object containing the response body and response headers. - /// - public async Task AddFaceFromStreamWithHttpMessagesAsync(string personGroupId, string personId, string userData = default(string), string targetFace = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) - { - if (Client.AzureRegion1 == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); - } - if (personGroupId == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "personGroupId"); - } - if (personId == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "personId"); - } - if (Client.SubscriptionKey == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); - } - // Tracing - bool _shouldTrace = ServiceClientTracing.IsEnabled; - string _invocationId = null; - if (_shouldTrace) - { - _invocationId = ServiceClientTracing.NextInvocationId.ToString(); - Dictionary tracingParameters = new Dictionary(); - tracingParameters.Add("personGroupId", personGroupId); - tracingParameters.Add("personId", personId); - tracingParameters.Add("userData", userData); - tracingParameters.Add("targetFace", targetFace); - tracingParameters.Add("cancellationToken", cancellationToken); - ServiceClientTracing.Enter(_invocationId, this, "AddFaceFromStream", tracingParameters); - } - // Construct URL - var _baseUrl = Client.BaseUri; - var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "persongroups/{personGroupId}/persons/{personId}/persistedFaces"; - _url = _url.Replace("{azureRegion}", Client.AzureRegion1); - _url = _url.Replace("{personGroupId}", System.Uri.EscapeDataString(personGroupId)); - _url = _url.Replace("{personId}", System.Uri.EscapeDataString(personId)); - List _queryParameters = new List(); - if (userData != null) - { - _queryParameters.Add(string.Format("userData={0}", System.Uri.EscapeDataString(userData))); - } - if (targetFace != null) - { - _queryParameters.Add(string.Format("targetFace={0}", System.Uri.EscapeDataString(targetFace))); - } - if (_queryParameters.Count > 0) - { - _url += "?" + string.Join("&", _queryParameters); - } - // Create HTTP transport objects - var _httpRequest = new HttpRequestMessage(); - HttpResponseMessage _httpResponse = null; - _httpRequest.Method = new HttpMethod("POST"); - _httpRequest.RequestUri = new System.Uri(_url); - // Set Headers - if (Client.SubscriptionKey != null) - { - if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) - { - _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); - } - _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); - } - - - if (customHeaders != null) - { - foreach(var _header in customHeaders) - { - if (_httpRequest.Headers.Contains(_header.Key)) - { - _httpRequest.Headers.Remove(_header.Key); - } - _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); - } - } - - // Serialize Request - string _requestContent = null; - // Send Request - if (_shouldTrace) - { - ServiceClientTracing.SendRequest(_invocationId, _httpRequest); - } - cancellationToken.ThrowIfCancellationRequested(); - _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); - if (_shouldTrace) - { - ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); - } - HttpStatusCode _statusCode = _httpResponse.StatusCode; - cancellationToken.ThrowIfCancellationRequested(); - string _responseContent = null; - if ((int)_statusCode != 200) - { - var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); - try - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - if (_errorBody != null) - { - ex.Body = _errorBody; - } - } - catch (JsonException) - { - // Ignore the exception - } - ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); - ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); - if (_shouldTrace) - { - ServiceClientTracing.Error(_invocationId, ex); - } - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw ex; - } - // Create Result - var _result = new HttpOperationResponse(); - _result.Request = _httpRequest; - _result.Response = _httpResponse; - if (_shouldTrace) - { - ServiceClientTracing.Exit(_invocationId, _result); - } - return _result; - } - - } -} diff --git a/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/PersonExtensions.cs b/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/PersonExtensions.cs deleted file mode 100644 index f32deac56774..000000000000 --- a/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/PersonExtensions.cs +++ /dev/null @@ -1,503 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Vision.Face -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Vision; - using Models; - using System.Collections; - using System.Collections.Generic; - using System.Threading; - using System.Threading.Tasks; - - /// - /// Extension methods for Person. - /// - public static partial class PersonExtensions - { - /// - /// Create a new person in a specified person group. - /// - /// - /// The operations group for this extension method. - /// - /// - /// Specifying the target person group to create the person. - /// - /// - /// Display name of the target person. The maximum length is 128. - /// - /// - /// Optional fields for user-provided data attached to a person. Size limit is - /// 16KB. - /// - public static CreatePersonResult Create(this IPerson operations, string personGroupId, string name = default(string), string userData = default(string)) - { - return operations.CreateAsync(personGroupId, name, userData).GetAwaiter().GetResult(); - } - - /// - /// Create a new person in a specified person group. - /// - /// - /// The operations group for this extension method. - /// - /// - /// Specifying the target person group to create the person. - /// - /// - /// Display name of the target person. The maximum length is 128. - /// - /// - /// Optional fields for user-provided data attached to a person. Size limit is - /// 16KB. - /// - /// - /// The cancellation token. - /// - public static async Task CreateAsync(this IPerson operations, string personGroupId, string name = default(string), string userData = default(string), CancellationToken cancellationToken = default(CancellationToken)) - { - using (var _result = await operations.CreateWithHttpMessagesAsync(personGroupId, name, userData, null, cancellationToken).ConfigureAwait(false)) - { - return _result.Body; - } - } - - /// - /// List all persons in a person group, and retrieve person information - /// (including personId, name, userData and persistedFaceIds of registered - /// faces of the person). - /// - /// - /// The operations group for this extension method. - /// - /// - /// personGroupId of the target person group. - /// - public static IList List(this IPerson operations, string personGroupId) - { - return operations.ListAsync(personGroupId).GetAwaiter().GetResult(); - } - - /// - /// List all persons in a person group, and retrieve person information - /// (including personId, name, userData and persistedFaceIds of registered - /// faces of the person). - /// - /// - /// The operations group for this extension method. - /// - /// - /// personGroupId of the target person group. - /// - /// - /// The cancellation token. - /// - public static async Task> ListAsync(this IPerson operations, string personGroupId, CancellationToken cancellationToken = default(CancellationToken)) - { - using (var _result = await operations.ListWithHttpMessagesAsync(personGroupId, null, cancellationToken).ConfigureAwait(false)) - { - return _result.Body; - } - } - - /// - /// Delete an existing person from a person group. Persisted face images of the - /// person will also be deleted. - /// - /// - /// The operations group for this extension method. - /// - /// - /// Specifying the person group containing the person. - /// - /// - /// The target personId to delete. - /// - public static void Delete(this IPerson operations, string personGroupId, string personId) - { - operations.DeleteAsync(personGroupId, personId).GetAwaiter().GetResult(); - } - - /// - /// Delete an existing person from a person group. Persisted face images of the - /// person will also be deleted. - /// - /// - /// The operations group for this extension method. - /// - /// - /// Specifying the person group containing the person. - /// - /// - /// The target personId to delete. - /// - /// - /// The cancellation token. - /// - public static async Task DeleteAsync(this IPerson operations, string personGroupId, string personId, CancellationToken cancellationToken = default(CancellationToken)) - { - (await operations.DeleteWithHttpMessagesAsync(personGroupId, personId, null, cancellationToken).ConfigureAwait(false)).Dispose(); - } - - /// - /// Retrieve a person's information, including registered persisted faces, name - /// and userData. - /// - /// - /// The operations group for this extension method. - /// - /// - /// Specifying the person group containing the target person. - /// - /// - /// Specifying the target person. - /// - public static PersonResult Get(this IPerson operations, string personGroupId, string personId) - { - return operations.GetAsync(personGroupId, personId).GetAwaiter().GetResult(); - } - - /// - /// Retrieve a person's information, including registered persisted faces, name - /// and userData. - /// - /// - /// The operations group for this extension method. - /// - /// - /// Specifying the person group containing the target person. - /// - /// - /// Specifying the target person. - /// - /// - /// The cancellation token. - /// - public static async Task GetAsync(this IPerson operations, string personGroupId, string personId, CancellationToken cancellationToken = default(CancellationToken)) - { - using (var _result = await operations.GetWithHttpMessagesAsync(personGroupId, personId, null, cancellationToken).ConfigureAwait(false)) - { - return _result.Body; - } - } - - /// - /// Update name or userData of a person. - /// - /// - /// The operations group for this extension method. - /// - /// - /// Specifying the person group containing the target person. - /// - /// - /// personId of the target person. - /// - /// - /// Display name of the target person. The maximum length is 128. - /// - /// - /// Optional fields for user-provided data attached to a person. Size limit is - /// 16KB. - /// - public static void Update(this IPerson operations, string personGroupId, string personId, string name = default(string), string userData = default(string)) - { - operations.UpdateAsync(personGroupId, personId, name, userData).GetAwaiter().GetResult(); - } - - /// - /// Update name or userData of a person. - /// - /// - /// The operations group for this extension method. - /// - /// - /// Specifying the person group containing the target person. - /// - /// - /// personId of the target person. - /// - /// - /// Display name of the target person. The maximum length is 128. - /// - /// - /// Optional fields for user-provided data attached to a person. Size limit is - /// 16KB. - /// - /// - /// The cancellation token. - /// - public static async Task UpdateAsync(this IPerson operations, string personGroupId, string personId, string name = default(string), string userData = default(string), CancellationToken cancellationToken = default(CancellationToken)) - { - (await operations.UpdateWithHttpMessagesAsync(personGroupId, personId, name, userData, null, cancellationToken).ConfigureAwait(false)).Dispose(); - } - - /// - /// Delete a face from a person. Relative image for the persisted face will - /// also be deleted. - /// - /// - /// The operations group for this extension method. - /// - /// - /// Specifying the person group containing the target person. - /// - /// - /// Specifying the person that the target persisted face belong to. - /// - /// - /// The persisted face to remove. - /// - public static void DeleteFace(this IPerson operations, string personGroupId, string personId, string persistedFaceId) - { - operations.DeleteFaceAsync(personGroupId, personId, persistedFaceId).GetAwaiter().GetResult(); - } - - /// - /// Delete a face from a person. Relative image for the persisted face will - /// also be deleted. - /// - /// - /// The operations group for this extension method. - /// - /// - /// Specifying the person group containing the target person. - /// - /// - /// Specifying the person that the target persisted face belong to. - /// - /// - /// The persisted face to remove. - /// - /// - /// The cancellation token. - /// - public static async Task DeleteFaceAsync(this IPerson operations, string personGroupId, string personId, string persistedFaceId, CancellationToken cancellationToken = default(CancellationToken)) - { - (await operations.DeleteFaceWithHttpMessagesAsync(personGroupId, personId, persistedFaceId, null, cancellationToken).ConfigureAwait(false)).Dispose(); - } - - /// - /// Retrieve information about a persisted face (specified by persistedFaceId, - /// personId and its belonging personGroupId). - /// - /// - /// The operations group for this extension method. - /// - /// - /// Specifying the person group containing the target person. - /// - /// - /// Specifying the target person that the face belongs to. - /// - /// - /// The persistedFaceId of the target persisted face of the person. - /// - public static PersonFaceResult GetFace(this IPerson operations, string personGroupId, string personId, string persistedFaceId) - { - return operations.GetFaceAsync(personGroupId, personId, persistedFaceId).GetAwaiter().GetResult(); - } - - /// - /// Retrieve information about a persisted face (specified by persistedFaceId, - /// personId and its belonging personGroupId). - /// - /// - /// The operations group for this extension method. - /// - /// - /// Specifying the person group containing the target person. - /// - /// - /// Specifying the target person that the face belongs to. - /// - /// - /// The persistedFaceId of the target persisted face of the person. - /// - /// - /// The cancellation token. - /// - public static async Task GetFaceAsync(this IPerson operations, string personGroupId, string personId, string persistedFaceId, CancellationToken cancellationToken = default(CancellationToken)) - { - using (var _result = await operations.GetFaceWithHttpMessagesAsync(personGroupId, personId, persistedFaceId, null, cancellationToken).ConfigureAwait(false)) - { - return _result.Body; - } - } - - /// - /// Update a person persisted face's userData field. - /// - /// - /// The operations group for this extension method. - /// - /// - /// Specifying the person group containing the target person. - /// - /// - /// personId of the target person. - /// - /// - /// persistedFaceId of target face, which is persisted and will not expire. - /// - /// - /// User-provided data attached to the face. The size limit is 1KB - /// - public static void UpdateFace(this IPerson operations, string personGroupId, string personId, string persistedFaceId, string userData = default(string)) - { - operations.UpdateFaceAsync(personGroupId, personId, persistedFaceId, userData).GetAwaiter().GetResult(); - } - - /// - /// Update a person persisted face's userData field. - /// - /// - /// The operations group for this extension method. - /// - /// - /// Specifying the person group containing the target person. - /// - /// - /// personId of the target person. - /// - /// - /// persistedFaceId of target face, which is persisted and will not expire. - /// - /// - /// User-provided data attached to the face. The size limit is 1KB - /// - /// - /// The cancellation token. - /// - public static async Task UpdateFaceAsync(this IPerson operations, string personGroupId, string personId, string persistedFaceId, string userData = default(string), CancellationToken cancellationToken = default(CancellationToken)) - { - (await operations.UpdateFaceWithHttpMessagesAsync(personGroupId, personId, persistedFaceId, userData, null, cancellationToken).ConfigureAwait(false)).Dispose(); - } - - /// - /// Add a representative face to a person for identification. The input face is - /// specified as an image with a targetFace rectangle. - /// - /// - /// The operations group for this extension method. - /// - /// - /// Specifying the person group containing the target person. - /// - /// - /// Target person that the face is added to. - /// - /// - /// User-specified data about the target face to add for any purpose. The - /// maximum length is 1KB. - /// - /// - /// A face rectangle to specify the target face to be added to a person in the - /// format of "targetFace=left,top,width,height". E.g. - /// "targetFace=10,10,100,100". If there is more than one face in the image, - /// targetFace is required to specify which face to add. No targetFace means - /// there is only one face detected in the entire image. - /// - public static void AddFace(this IPerson operations, string personGroupId, string personId, string userData = default(string), string targetFace = default(string)) - { - operations.AddFaceAsync(personGroupId, personId, userData, targetFace).GetAwaiter().GetResult(); - } - - /// - /// Add a representative face to a person for identification. The input face is - /// specified as an image with a targetFace rectangle. - /// - /// - /// The operations group for this extension method. - /// - /// - /// Specifying the person group containing the target person. - /// - /// - /// Target person that the face is added to. - /// - /// - /// User-specified data about the target face to add for any purpose. The - /// maximum length is 1KB. - /// - /// - /// A face rectangle to specify the target face to be added to a person in the - /// format of "targetFace=left,top,width,height". E.g. - /// "targetFace=10,10,100,100". If there is more than one face in the image, - /// targetFace is required to specify which face to add. No targetFace means - /// there is only one face detected in the entire image. - /// - /// - /// The cancellation token. - /// - public static async Task AddFaceAsync(this IPerson operations, string personGroupId, string personId, string userData = default(string), string targetFace = default(string), CancellationToken cancellationToken = default(CancellationToken)) - { - (await operations.AddFaceWithHttpMessagesAsync(personGroupId, personId, userData, targetFace, null, cancellationToken).ConfigureAwait(false)).Dispose(); - } - - /// - /// Add a representative face to a person for identification. The input face is - /// specified as an image with a targetFace rectangle. - /// - /// - /// The operations group for this extension method. - /// - /// - /// Specifying the person group containing the target person. - /// - /// - /// Target person that the face is added to. - /// - /// - /// User-specified data about the target face to add for any purpose. The - /// maximum length is 1KB. - /// - /// - /// A face rectangle to specify the target face to be added to a person, in the - /// format of "targetFace=left,top,width,height". E.g. - /// "targetFace=10,10,100,100". If there is more than one face in the image, - /// targetFace is required to specify which face to add. No targetFace means - /// there is only one face detected in the entire image. - /// - public static void AddFaceFromStream(this IPerson operations, string personGroupId, string personId, string userData = default(string), string targetFace = default(string)) - { - operations.AddFaceFromStreamAsync(personGroupId, personId, userData, targetFace).GetAwaiter().GetResult(); - } - - /// - /// Add a representative face to a person for identification. The input face is - /// specified as an image with a targetFace rectangle. - /// - /// - /// The operations group for this extension method. - /// - /// - /// Specifying the person group containing the target person. - /// - /// - /// Target person that the face is added to. - /// - /// - /// User-specified data about the target face to add for any purpose. The - /// maximum length is 1KB. - /// - /// - /// A face rectangle to specify the target face to be added to a person, in the - /// format of "targetFace=left,top,width,height". E.g. - /// "targetFace=10,10,100,100". If there is more than one face in the image, - /// targetFace is required to specify which face to add. No targetFace means - /// there is only one face detected in the entire image. - /// - /// - /// The cancellation token. - /// - public static async Task AddFaceFromStreamAsync(this IPerson operations, string personGroupId, string personId, string userData = default(string), string targetFace = default(string), CancellationToken cancellationToken = default(CancellationToken)) - { - (await operations.AddFaceFromStreamWithHttpMessagesAsync(personGroupId, personId, userData, targetFace, null, cancellationToken).ConfigureAwait(false)).Dispose(); - } - - } -} diff --git a/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/PersonGroup.cs b/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/PersonGroup.cs deleted file mode 100644 index 420f59d732eb..000000000000 --- a/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/PersonGroup.cs +++ /dev/null @@ -1,1189 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Vision.Face -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Vision; - using Microsoft.Rest; - using Models; - using Newtonsoft.Json; - using System.Collections; - using System.Collections.Generic; - using System.IO; - using System.Net; - using System.Net.Http; - using System.Threading; - using System.Threading.Tasks; - - /// - /// PersonGroup operations. - /// - public partial class PersonGroup : IServiceOperations, IPersonGroup - { - /// - /// Initializes a new instance of the PersonGroup class. - /// - /// - /// Reference to the service client. - /// - /// - /// Thrown when a required parameter is null - /// - public PersonGroup(FaceAPI client) - { - if (client == null) - { - throw new System.ArgumentNullException("client"); - } - Client = client; - } - - /// - /// Gets a reference to the FaceAPI - /// - public FaceAPI Client { get; private set; } - - /// - /// Create a new person group with specified personGroupId, name and - /// user-provided userData. - /// - /// - /// User-provided personGroupId as a string. - /// - /// - /// Name of the face list, maximum length is 128. - /// - /// - /// Optional user defined data for the face list. Length should not exceed - /// 16KB. - /// - /// - /// Headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// A response object containing the response body and response headers. - /// - public async Task CreateWithHttpMessagesAsync(string personGroupId, string name = default(string), string userData = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) - { - if (Client.AzureRegion1 == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); - } - if (personGroupId == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "personGroupId"); - } - if (personGroupId != null) - { - if (personGroupId.Length > 64) - { - throw new ValidationException(ValidationRules.MaxLength, "personGroupId", 64); - } - if (!System.Text.RegularExpressions.Regex.IsMatch(personGroupId, "^[a-z0-9-_]+$")) - { - throw new ValidationException(ValidationRules.Pattern, "personGroupId", "^[a-z0-9-_]+$"); - } - } - if (Client.SubscriptionKey == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); - } - if (name != null) - { - if (name.Length > 128) - { - throw new ValidationException(ValidationRules.MaxLength, "name", 128); - } - } - if (userData != null) - { - if (userData.Length > 16384) - { - throw new ValidationException(ValidationRules.MaxLength, "userData", 16384); - } - } - CreatePersonGroupRequest body = new CreatePersonGroupRequest(); - if (name != null || userData != null) - { - body.Name = name; - body.UserData = userData; - } - // Tracing - bool _shouldTrace = ServiceClientTracing.IsEnabled; - string _invocationId = null; - if (_shouldTrace) - { - _invocationId = ServiceClientTracing.NextInvocationId.ToString(); - Dictionary tracingParameters = new Dictionary(); - tracingParameters.Add("personGroupId", personGroupId); - tracingParameters.Add("body", body); - tracingParameters.Add("cancellationToken", cancellationToken); - ServiceClientTracing.Enter(_invocationId, this, "Create", tracingParameters); - } - // Construct URL - var _baseUrl = Client.BaseUri; - var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "persongroups/{personGroupId}"; - _url = _url.Replace("{azureRegion}", Client.AzureRegion1); - _url = _url.Replace("{personGroupId}", System.Uri.EscapeDataString(personGroupId)); - // Create HTTP transport objects - var _httpRequest = new HttpRequestMessage(); - HttpResponseMessage _httpResponse = null; - _httpRequest.Method = new HttpMethod("PUT"); - _httpRequest.RequestUri = new System.Uri(_url); - // Set Headers - if (Client.SubscriptionKey != null) - { - if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) - { - _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); - } - _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); - } - - - if (customHeaders != null) - { - foreach(var _header in customHeaders) - { - if (_httpRequest.Headers.Contains(_header.Key)) - { - _httpRequest.Headers.Remove(_header.Key); - } - _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); - } - } - - // Serialize Request - string _requestContent = null; - if(body != null) - { - _requestContent = Rest.Serialization.SafeJsonConvert.SerializeObject(body, Client.SerializationSettings); - _httpRequest.Content = new StringContent(_requestContent, System.Text.Encoding.UTF8); - _httpRequest.Content.Headers.ContentType =System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json; charset=utf-8"); - } - // Send Request - if (_shouldTrace) - { - ServiceClientTracing.SendRequest(_invocationId, _httpRequest); - } - cancellationToken.ThrowIfCancellationRequested(); - _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); - if (_shouldTrace) - { - ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); - } - HttpStatusCode _statusCode = _httpResponse.StatusCode; - cancellationToken.ThrowIfCancellationRequested(); - string _responseContent = null; - if ((int)_statusCode != 200) - { - var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); - try - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - if (_errorBody != null) - { - ex.Body = _errorBody; - } - } - catch (JsonException) - { - // Ignore the exception - } - ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); - ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); - if (_shouldTrace) - { - ServiceClientTracing.Error(_invocationId, ex); - } - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw ex; - } - // Create Result - var _result = new HttpOperationResponse(); - _result.Request = _httpRequest; - _result.Response = _httpResponse; - if (_shouldTrace) - { - ServiceClientTracing.Exit(_invocationId, _result); - } - return _result; - } - - /// - /// Delete an existing person group. Persisted face images of all people in the - /// person group will also be deleted. - /// - /// - /// The personGroupId of the person group to be deleted. - /// - /// - /// Headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// A response object containing the response body and response headers. - /// - public async Task DeleteWithHttpMessagesAsync(string personGroupId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) - { - if (Client.AzureRegion1 == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); - } - if (personGroupId == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "personGroupId"); - } - if (Client.SubscriptionKey == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); - } - // Tracing - bool _shouldTrace = ServiceClientTracing.IsEnabled; - string _invocationId = null; - if (_shouldTrace) - { - _invocationId = ServiceClientTracing.NextInvocationId.ToString(); - Dictionary tracingParameters = new Dictionary(); - tracingParameters.Add("personGroupId", personGroupId); - tracingParameters.Add("cancellationToken", cancellationToken); - ServiceClientTracing.Enter(_invocationId, this, "Delete", tracingParameters); - } - // Construct URL - var _baseUrl = Client.BaseUri; - var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "persongroups/{personGroupId}"; - _url = _url.Replace("{azureRegion}", Client.AzureRegion1); - _url = _url.Replace("{personGroupId}", System.Uri.EscapeDataString(personGroupId)); - // Create HTTP transport objects - var _httpRequest = new HttpRequestMessage(); - HttpResponseMessage _httpResponse = null; - _httpRequest.Method = new HttpMethod("DELETE"); - _httpRequest.RequestUri = new System.Uri(_url); - // Set Headers - if (Client.SubscriptionKey != null) - { - if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) - { - _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); - } - _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); - } - - - if (customHeaders != null) - { - foreach(var _header in customHeaders) - { - if (_httpRequest.Headers.Contains(_header.Key)) - { - _httpRequest.Headers.Remove(_header.Key); - } - _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); - } - } - - // Serialize Request - string _requestContent = null; - // Send Request - if (_shouldTrace) - { - ServiceClientTracing.SendRequest(_invocationId, _httpRequest); - } - cancellationToken.ThrowIfCancellationRequested(); - _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); - if (_shouldTrace) - { - ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); - } - HttpStatusCode _statusCode = _httpResponse.StatusCode; - cancellationToken.ThrowIfCancellationRequested(); - string _responseContent = null; - if ((int)_statusCode != 200) - { - var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); - try - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - if (_errorBody != null) - { - ex.Body = _errorBody; - } - } - catch (JsonException) - { - // Ignore the exception - } - ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); - ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); - if (_shouldTrace) - { - ServiceClientTracing.Error(_invocationId, ex); - } - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw ex; - } - // Create Result - var _result = new HttpOperationResponse(); - _result.Request = _httpRequest; - _result.Response = _httpResponse; - if (_shouldTrace) - { - ServiceClientTracing.Exit(_invocationId, _result); - } - return _result; - } - - /// - /// Retrieve the information of a person group, including its name and - /// userData. - /// - /// - /// personGroupId of the target person group. - /// - /// - /// Headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when unable to deserialize the response - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// A response object containing the response body and response headers. - /// - public async Task> GetWithHttpMessagesAsync(string personGroupId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) - { - if (Client.AzureRegion1 == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); - } - if (personGroupId == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "personGroupId"); - } - if (Client.SubscriptionKey == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); - } - // Tracing - bool _shouldTrace = ServiceClientTracing.IsEnabled; - string _invocationId = null; - if (_shouldTrace) - { - _invocationId = ServiceClientTracing.NextInvocationId.ToString(); - Dictionary tracingParameters = new Dictionary(); - tracingParameters.Add("personGroupId", personGroupId); - tracingParameters.Add("cancellationToken", cancellationToken); - ServiceClientTracing.Enter(_invocationId, this, "Get", tracingParameters); - } - // Construct URL - var _baseUrl = Client.BaseUri; - var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "persongroups/{personGroupId}"; - _url = _url.Replace("{azureRegion}", Client.AzureRegion1); - _url = _url.Replace("{personGroupId}", System.Uri.EscapeDataString(personGroupId)); - // Create HTTP transport objects - var _httpRequest = new HttpRequestMessage(); - HttpResponseMessage _httpResponse = null; - _httpRequest.Method = new HttpMethod("GET"); - _httpRequest.RequestUri = new System.Uri(_url); - // Set Headers - if (Client.SubscriptionKey != null) - { - if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) - { - _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); - } - _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); - } - - - if (customHeaders != null) - { - foreach(var _header in customHeaders) - { - if (_httpRequest.Headers.Contains(_header.Key)) - { - _httpRequest.Headers.Remove(_header.Key); - } - _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); - } - } - - // Serialize Request - string _requestContent = null; - // Send Request - if (_shouldTrace) - { - ServiceClientTracing.SendRequest(_invocationId, _httpRequest); - } - cancellationToken.ThrowIfCancellationRequested(); - _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); - if (_shouldTrace) - { - ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); - } - HttpStatusCode _statusCode = _httpResponse.StatusCode; - cancellationToken.ThrowIfCancellationRequested(); - string _responseContent = null; - if ((int)_statusCode != 200) - { - var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); - try - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - if (_errorBody != null) - { - ex.Body = _errorBody; - } - } - catch (JsonException) - { - // Ignore the exception - } - ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); - ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); - if (_shouldTrace) - { - ServiceClientTracing.Error(_invocationId, ex); - } - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw ex; - } - // Create Result - var _result = new HttpOperationResponse(); - _result.Request = _httpRequest; - _result.Response = _httpResponse; - // Deserialize Response - if ((int)_statusCode == 200) - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - try - { - _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - } - catch (JsonException ex) - { - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); - } - } - if (_shouldTrace) - { - ServiceClientTracing.Exit(_invocationId, _result); - } - return _result; - } - - /// - /// Update an existing person group's display name and userData. The properties - /// which does not appear in request body will not be updated. - /// - /// - /// personGroupId of the person group to be updated. - /// - /// - /// Name of the face list, maximum length is 128. - /// - /// - /// Optional user defined data for the face list. Length should not exceed - /// 16KB. - /// - /// - /// Headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// A response object containing the response body and response headers. - /// - public async Task UpdateWithHttpMessagesAsync(string personGroupId, string name = default(string), string userData = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) - { - if (Client.AzureRegion1 == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); - } - if (personGroupId == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "personGroupId"); - } - if (Client.SubscriptionKey == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); - } - if (name != null) - { - if (name.Length > 128) - { - throw new ValidationException(ValidationRules.MaxLength, "name", 128); - } - } - if (userData != null) - { - if (userData.Length > 16384) - { - throw new ValidationException(ValidationRules.MaxLength, "userData", 16384); - } - } - CreatePersonGroupRequest body = new CreatePersonGroupRequest(); - if (name != null || userData != null) - { - body.Name = name; - body.UserData = userData; - } - // Tracing - bool _shouldTrace = ServiceClientTracing.IsEnabled; - string _invocationId = null; - if (_shouldTrace) - { - _invocationId = ServiceClientTracing.NextInvocationId.ToString(); - Dictionary tracingParameters = new Dictionary(); - tracingParameters.Add("personGroupId", personGroupId); - tracingParameters.Add("body", body); - tracingParameters.Add("cancellationToken", cancellationToken); - ServiceClientTracing.Enter(_invocationId, this, "Update", tracingParameters); - } - // Construct URL - var _baseUrl = Client.BaseUri; - var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "persongroups/{personGroupId}"; - _url = _url.Replace("{azureRegion}", Client.AzureRegion1); - _url = _url.Replace("{personGroupId}", System.Uri.EscapeDataString(personGroupId)); - // Create HTTP transport objects - var _httpRequest = new HttpRequestMessage(); - HttpResponseMessage _httpResponse = null; - _httpRequest.Method = new HttpMethod("PATCH"); - _httpRequest.RequestUri = new System.Uri(_url); - // Set Headers - if (Client.SubscriptionKey != null) - { - if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) - { - _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); - } - _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); - } - - - if (customHeaders != null) - { - foreach(var _header in customHeaders) - { - if (_httpRequest.Headers.Contains(_header.Key)) - { - _httpRequest.Headers.Remove(_header.Key); - } - _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); - } - } - - // Serialize Request - string _requestContent = null; - if(body != null) - { - _requestContent = Rest.Serialization.SafeJsonConvert.SerializeObject(body, Client.SerializationSettings); - _httpRequest.Content = new StringContent(_requestContent, System.Text.Encoding.UTF8); - _httpRequest.Content.Headers.ContentType =System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json; charset=utf-8"); - } - // Send Request - if (_shouldTrace) - { - ServiceClientTracing.SendRequest(_invocationId, _httpRequest); - } - cancellationToken.ThrowIfCancellationRequested(); - _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); - if (_shouldTrace) - { - ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); - } - HttpStatusCode _statusCode = _httpResponse.StatusCode; - cancellationToken.ThrowIfCancellationRequested(); - string _responseContent = null; - if ((int)_statusCode != 200) - { - var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); - try - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - if (_errorBody != null) - { - ex.Body = _errorBody; - } - } - catch (JsonException) - { - // Ignore the exception - } - ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); - ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); - if (_shouldTrace) - { - ServiceClientTracing.Error(_invocationId, ex); - } - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw ex; - } - // Create Result - var _result = new HttpOperationResponse(); - _result.Request = _httpRequest; - _result.Response = _httpResponse; - if (_shouldTrace) - { - ServiceClientTracing.Exit(_invocationId, _result); - } - return _result; - } - - /// - /// Retrieve the training status of a person group (completed or ongoing). - /// - /// - /// personGroupId of target person group. - /// - /// - /// Headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when unable to deserialize the response - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// A response object containing the response body and response headers. - /// - public async Task> GetTrainingStatusWithHttpMessagesAsync(string personGroupId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) - { - if (Client.AzureRegion1 == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); - } - if (personGroupId == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "personGroupId"); - } - if (Client.SubscriptionKey == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); - } - // Tracing - bool _shouldTrace = ServiceClientTracing.IsEnabled; - string _invocationId = null; - if (_shouldTrace) - { - _invocationId = ServiceClientTracing.NextInvocationId.ToString(); - Dictionary tracingParameters = new Dictionary(); - tracingParameters.Add("personGroupId", personGroupId); - tracingParameters.Add("cancellationToken", cancellationToken); - ServiceClientTracing.Enter(_invocationId, this, "GetTrainingStatus", tracingParameters); - } - // Construct URL - var _baseUrl = Client.BaseUri; - var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "persongroups/{personGroupId}/training"; - _url = _url.Replace("{azureRegion}", Client.AzureRegion1); - _url = _url.Replace("{personGroupId}", System.Uri.EscapeDataString(personGroupId)); - // Create HTTP transport objects - var _httpRequest = new HttpRequestMessage(); - HttpResponseMessage _httpResponse = null; - _httpRequest.Method = new HttpMethod("GET"); - _httpRequest.RequestUri = new System.Uri(_url); - // Set Headers - if (Client.SubscriptionKey != null) - { - if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) - { - _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); - } - _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); - } - - - if (customHeaders != null) - { - foreach(var _header in customHeaders) - { - if (_httpRequest.Headers.Contains(_header.Key)) - { - _httpRequest.Headers.Remove(_header.Key); - } - _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); - } - } - - // Serialize Request - string _requestContent = null; - // Send Request - if (_shouldTrace) - { - ServiceClientTracing.SendRequest(_invocationId, _httpRequest); - } - cancellationToken.ThrowIfCancellationRequested(); - _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); - if (_shouldTrace) - { - ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); - } - HttpStatusCode _statusCode = _httpResponse.StatusCode; - cancellationToken.ThrowIfCancellationRequested(); - string _responseContent = null; - if ((int)_statusCode != 200) - { - var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); - try - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - if (_errorBody != null) - { - ex.Body = _errorBody; - } - } - catch (JsonException) - { - // Ignore the exception - } - ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); - ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); - if (_shouldTrace) - { - ServiceClientTracing.Error(_invocationId, ex); - } - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw ex; - } - // Create Result - var _result = new HttpOperationResponse(); - _result.Request = _httpRequest; - _result.Response = _httpResponse; - // Deserialize Response - if ((int)_statusCode == 200) - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - try - { - _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - } - catch (JsonException ex) - { - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); - } - } - if (_shouldTrace) - { - ServiceClientTracing.Exit(_invocationId, _result); - } - return _result; - } - - /// - /// List person groups and their information. - /// - /// - /// List person groups from the least personGroupId greater than the "start". - /// - /// - /// The number of person groups to list. - /// - /// - /// Headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when unable to deserialize the response - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// A response object containing the response body and response headers. - /// - public async Task>> ListWithHttpMessagesAsync(string start = default(string), int? top = 1000, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) - { - if (Client.AzureRegion1 == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); - } - if (start != null) - { - if (start.Length > 64) - { - throw new ValidationException(ValidationRules.MaxLength, "start", 64); - } - } - if (top > 1000) - { - throw new ValidationException(ValidationRules.InclusiveMaximum, "top", 1000); - } - if (top < 1) - { - throw new ValidationException(ValidationRules.InclusiveMinimum, "top", 1); - } - if (Client.SubscriptionKey == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); - } - // Tracing - bool _shouldTrace = ServiceClientTracing.IsEnabled; - string _invocationId = null; - if (_shouldTrace) - { - _invocationId = ServiceClientTracing.NextInvocationId.ToString(); - Dictionary tracingParameters = new Dictionary(); - tracingParameters.Add("start", start); - tracingParameters.Add("top", top); - tracingParameters.Add("cancellationToken", cancellationToken); - ServiceClientTracing.Enter(_invocationId, this, "List", tracingParameters); - } - // Construct URL - var _baseUrl = Client.BaseUri; - var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "persongroups"; - _url = _url.Replace("{azureRegion}", Client.AzureRegion1); - List _queryParameters = new List(); - if (start != null) - { - _queryParameters.Add(string.Format("start={0}", System.Uri.EscapeDataString(start))); - } - if (top != null) - { - _queryParameters.Add(string.Format("top={0}", System.Uri.EscapeDataString(Rest.Serialization.SafeJsonConvert.SerializeObject(top, Client.SerializationSettings).Trim('"')))); - } - if (_queryParameters.Count > 0) - { - _url += "?" + string.Join("&", _queryParameters); - } - // Create HTTP transport objects - var _httpRequest = new HttpRequestMessage(); - HttpResponseMessage _httpResponse = null; - _httpRequest.Method = new HttpMethod("GET"); - _httpRequest.RequestUri = new System.Uri(_url); - // Set Headers - if (Client.SubscriptionKey != null) - { - if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) - { - _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); - } - _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); - } - - - if (customHeaders != null) - { - foreach(var _header in customHeaders) - { - if (_httpRequest.Headers.Contains(_header.Key)) - { - _httpRequest.Headers.Remove(_header.Key); - } - _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); - } - } - - // Serialize Request - string _requestContent = null; - // Send Request - if (_shouldTrace) - { - ServiceClientTracing.SendRequest(_invocationId, _httpRequest); - } - cancellationToken.ThrowIfCancellationRequested(); - _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); - if (_shouldTrace) - { - ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); - } - HttpStatusCode _statusCode = _httpResponse.StatusCode; - cancellationToken.ThrowIfCancellationRequested(); - string _responseContent = null; - if ((int)_statusCode != 200) - { - var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); - try - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - if (_errorBody != null) - { - ex.Body = _errorBody; - } - } - catch (JsonException) - { - // Ignore the exception - } - ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); - ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); - if (_shouldTrace) - { - ServiceClientTracing.Error(_invocationId, ex); - } - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw ex; - } - // Create Result - var _result = new HttpOperationResponse>(); - _result.Request = _httpRequest; - _result.Response = _httpResponse; - // Deserialize Response - if ((int)_statusCode == 200) - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - try - { - _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject>(_responseContent, Client.DeserializationSettings); - } - catch (JsonException ex) - { - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); - } - } - if (_shouldTrace) - { - ServiceClientTracing.Exit(_invocationId, _result); - } - return _result; - } - - /// - /// Queue a person group training task, the training task may not be started - /// immediately. - /// - /// - /// Target person group to be trained. - /// - /// - /// Headers that will be added to request. - /// - /// - /// The cancellation token. - /// - /// - /// Thrown when the operation returned an invalid status code - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// Thrown when a required parameter is null - /// - /// - /// A response object containing the response body and response headers. - /// - public async Task TrainWithHttpMessagesAsync(string personGroupId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) - { - if (Client.AzureRegion1 == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); - } - if (personGroupId == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "personGroupId"); - } - if (Client.SubscriptionKey == null) - { - throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); - } - // Tracing - bool _shouldTrace = ServiceClientTracing.IsEnabled; - string _invocationId = null; - if (_shouldTrace) - { - _invocationId = ServiceClientTracing.NextInvocationId.ToString(); - Dictionary tracingParameters = new Dictionary(); - tracingParameters.Add("personGroupId", personGroupId); - tracingParameters.Add("cancellationToken", cancellationToken); - ServiceClientTracing.Enter(_invocationId, this, "Train", tracingParameters); - } - // Construct URL - var _baseUrl = Client.BaseUri; - var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "persongroups/{personGroupId}/train"; - _url = _url.Replace("{azureRegion}", Client.AzureRegion1); - _url = _url.Replace("{personGroupId}", System.Uri.EscapeDataString(personGroupId)); - // Create HTTP transport objects - var _httpRequest = new HttpRequestMessage(); - HttpResponseMessage _httpResponse = null; - _httpRequest.Method = new HttpMethod("POST"); - _httpRequest.RequestUri = new System.Uri(_url); - // Set Headers - if (Client.SubscriptionKey != null) - { - if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) - { - _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); - } - _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); - } - - - if (customHeaders != null) - { - foreach(var _header in customHeaders) - { - if (_httpRequest.Headers.Contains(_header.Key)) - { - _httpRequest.Headers.Remove(_header.Key); - } - _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); - } - } - - // Serialize Request - string _requestContent = null; - // Send Request - if (_shouldTrace) - { - ServiceClientTracing.SendRequest(_invocationId, _httpRequest); - } - cancellationToken.ThrowIfCancellationRequested(); - _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); - if (_shouldTrace) - { - ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); - } - HttpStatusCode _statusCode = _httpResponse.StatusCode; - cancellationToken.ThrowIfCancellationRequested(); - string _responseContent = null; - if ((int)_statusCode != 202) - { - var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); - try - { - _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); - if (_errorBody != null) - { - ex.Body = _errorBody; - } - } - catch (JsonException) - { - // Ignore the exception - } - ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); - ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); - if (_shouldTrace) - { - ServiceClientTracing.Error(_invocationId, ex); - } - _httpRequest.Dispose(); - if (_httpResponse != null) - { - _httpResponse.Dispose(); - } - throw ex; - } - // Create Result - var _result = new HttpOperationResponse(); - _result.Request = _httpRequest; - _result.Response = _httpResponse; - if (_shouldTrace) - { - ServiceClientTracing.Exit(_invocationId, _result); - } - return _result; - } - - } -} diff --git a/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/PersonGroupExtensions.cs b/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/PersonGroupExtensions.cs deleted file mode 100644 index d0545cdcbe74..000000000000 --- a/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/PersonGroupExtensions.cs +++ /dev/null @@ -1,291 +0,0 @@ -// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 -// Changes may cause incorrect behavior and will be lost if the code is -// regenerated. - -namespace Microsoft.CognitiveServices.Vision.Face -{ - using Microsoft.CognitiveServices; - using Microsoft.CognitiveServices.Vision; - using Models; - using System.Collections; - using System.Collections.Generic; - using System.Threading; - using System.Threading.Tasks; - - /// - /// Extension methods for PersonGroup. - /// - public static partial class PersonGroupExtensions - { - /// - /// Create a new person group with specified personGroupId, name and - /// user-provided userData. - /// - /// - /// The operations group for this extension method. - /// - /// - /// User-provided personGroupId as a string. - /// - /// - /// Name of the face list, maximum length is 128. - /// - /// - /// Optional user defined data for the face list. Length should not exceed - /// 16KB. - /// - public static void Create(this IPersonGroup operations, string personGroupId, string name = default(string), string userData = default(string)) - { - operations.CreateAsync(personGroupId, name, userData).GetAwaiter().GetResult(); - } - - /// - /// Create a new person group with specified personGroupId, name and - /// user-provided userData. - /// - /// - /// The operations group for this extension method. - /// - /// - /// User-provided personGroupId as a string. - /// - /// - /// Name of the face list, maximum length is 128. - /// - /// - /// Optional user defined data for the face list. Length should not exceed - /// 16KB. - /// - /// - /// The cancellation token. - /// - public static async Task CreateAsync(this IPersonGroup operations, string personGroupId, string name = default(string), string userData = default(string), CancellationToken cancellationToken = default(CancellationToken)) - { - (await operations.CreateWithHttpMessagesAsync(personGroupId, name, userData, null, cancellationToken).ConfigureAwait(false)).Dispose(); - } - - /// - /// Delete an existing person group. Persisted face images of all people in the - /// person group will also be deleted. - /// - /// - /// The operations group for this extension method. - /// - /// - /// The personGroupId of the person group to be deleted. - /// - public static void Delete(this IPersonGroup operations, string personGroupId) - { - operations.DeleteAsync(personGroupId).GetAwaiter().GetResult(); - } - - /// - /// Delete an existing person group. Persisted face images of all people in the - /// person group will also be deleted. - /// - /// - /// The operations group for this extension method. - /// - /// - /// The personGroupId of the person group to be deleted. - /// - /// - /// The cancellation token. - /// - public static async Task DeleteAsync(this IPersonGroup operations, string personGroupId, CancellationToken cancellationToken = default(CancellationToken)) - { - (await operations.DeleteWithHttpMessagesAsync(personGroupId, null, cancellationToken).ConfigureAwait(false)).Dispose(); - } - - /// - /// Retrieve the information of a person group, including its name and - /// userData. - /// - /// - /// The operations group for this extension method. - /// - /// - /// personGroupId of the target person group. - /// - public static PersonGroupResult Get(this IPersonGroup operations, string personGroupId) - { - return operations.GetAsync(personGroupId).GetAwaiter().GetResult(); - } - - /// - /// Retrieve the information of a person group, including its name and - /// userData. - /// - /// - /// The operations group for this extension method. - /// - /// - /// personGroupId of the target person group. - /// - /// - /// The cancellation token. - /// - public static async Task GetAsync(this IPersonGroup operations, string personGroupId, CancellationToken cancellationToken = default(CancellationToken)) - { - using (var _result = await operations.GetWithHttpMessagesAsync(personGroupId, null, cancellationToken).ConfigureAwait(false)) - { - return _result.Body; - } - } - - /// - /// Update an existing person group's display name and userData. The properties - /// which does not appear in request body will not be updated. - /// - /// - /// The operations group for this extension method. - /// - /// - /// personGroupId of the person group to be updated. - /// - /// - /// Name of the face list, maximum length is 128. - /// - /// - /// Optional user defined data for the face list. Length should not exceed - /// 16KB. - /// - public static void Update(this IPersonGroup operations, string personGroupId, string name = default(string), string userData = default(string)) - { - operations.UpdateAsync(personGroupId, name, userData).GetAwaiter().GetResult(); - } - - /// - /// Update an existing person group's display name and userData. The properties - /// which does not appear in request body will not be updated. - /// - /// - /// The operations group for this extension method. - /// - /// - /// personGroupId of the person group to be updated. - /// - /// - /// Name of the face list, maximum length is 128. - /// - /// - /// Optional user defined data for the face list. Length should not exceed - /// 16KB. - /// - /// - /// The cancellation token. - /// - public static async Task UpdateAsync(this IPersonGroup operations, string personGroupId, string name = default(string), string userData = default(string), CancellationToken cancellationToken = default(CancellationToken)) - { - (await operations.UpdateWithHttpMessagesAsync(personGroupId, name, userData, null, cancellationToken).ConfigureAwait(false)).Dispose(); - } - - /// - /// Retrieve the training status of a person group (completed or ongoing). - /// - /// - /// The operations group for this extension method. - /// - /// - /// personGroupId of target person group. - /// - public static TrainingStatus GetTrainingStatus(this IPersonGroup operations, string personGroupId) - { - return operations.GetTrainingStatusAsync(personGroupId).GetAwaiter().GetResult(); - } - - /// - /// Retrieve the training status of a person group (completed or ongoing). - /// - /// - /// The operations group for this extension method. - /// - /// - /// personGroupId of target person group. - /// - /// - /// The cancellation token. - /// - public static async Task GetTrainingStatusAsync(this IPersonGroup operations, string personGroupId, CancellationToken cancellationToken = default(CancellationToken)) - { - using (var _result = await operations.GetTrainingStatusWithHttpMessagesAsync(personGroupId, null, cancellationToken).ConfigureAwait(false)) - { - return _result.Body; - } - } - - /// - /// List person groups and their information. - /// - /// - /// The operations group for this extension method. - /// - /// - /// List person groups from the least personGroupId greater than the "start". - /// - /// - /// The number of person groups to list. - /// - public static IList List(this IPersonGroup operations, string start = default(string), int? top = 1000) - { - return operations.ListAsync(start, top).GetAwaiter().GetResult(); - } - - /// - /// List person groups and their information. - /// - /// - /// The operations group for this extension method. - /// - /// - /// List person groups from the least personGroupId greater than the "start". - /// - /// - /// The number of person groups to list. - /// - /// - /// The cancellation token. - /// - public static async Task> ListAsync(this IPersonGroup operations, string start = default(string), int? top = 1000, CancellationToken cancellationToken = default(CancellationToken)) - { - using (var _result = await operations.ListWithHttpMessagesAsync(start, top, null, cancellationToken).ConfigureAwait(false)) - { - return _result.Body; - } - } - - /// - /// Queue a person group training task, the training task may not be started - /// immediately. - /// - /// - /// The operations group for this extension method. - /// - /// - /// Target person group to be trained. - /// - public static void Train(this IPersonGroup operations, string personGroupId) - { - operations.TrainAsync(personGroupId).GetAwaiter().GetResult(); - } - - /// - /// Queue a person group training task, the training task may not be started - /// immediately. - /// - /// - /// The operations group for this extension method. - /// - /// - /// Target person group to be trained. - /// - /// - /// The cancellation token. - /// - public static async Task TrainAsync(this IPersonGroup operations, string personGroupId, CancellationToken cancellationToken = default(CancellationToken)) - { - (await operations.TrainWithHttpMessagesAsync(personGroupId, null, cancellationToken).ConfigureAwait(false)).Dispose(); - } - - } -} diff --git a/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Microsoft.CognitiveServices.Vision.csproj b/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Microsoft.CognitiveServices.Vision.csproj deleted file mode 100644 index 75447fb0adf8..000000000000 --- a/src/SDKs/CognitiveServices/dataplane1/Vision/Microsoft.CognitiveServices.Vision/Microsoft.CognitiveServices.Vision.csproj +++ /dev/null @@ -1,25 +0,0 @@ - - - - Microsoft.CognitiveServices.Vision - This client library provides access to the Microsoft Cognitive Services Vision APIs (Face). - 1.0.0 - $(DefineConstants);CODESIGN - true - Microsoft.CognitiveServices.Vision - Microsoft Cognitive Services;Cognitive Services;Cognitive Services SDK;Face API;REST HTTP client;Face SDK;netcore451511 - This is a preview release of the Cognitive Services Vision SDK. Included with this release is support for Face API. - bin\$(Configuration)\$(TargetFramework)\$(AssemblyName).xml - - - - net452;netstandard1.4 - - - - - - - - - \ No newline at end of file From d394cc10561b32e87525a818141ec71551e93e66 Mon Sep 17 00:00:00 2001 From: "David Li (WINDOWS)" Date: Mon, 11 Sep 2017 16:22:03 -0700 Subject: [PATCH 16/21] Move to dataPlane directory --- .../BaseTests.cs | 28 + ...ft.CognitiveServices.Language.Tests.csproj | 30 + .../DetectLanguage.json | 55 + .../KeyPhrases.json | 55 + .../Sentiment.json | 55 + .../TextAnalytics/DetectLanguageTests.cs | 34 + .../TextAnalytics/KeyPhrasesTests.cs | 36 + .../TextAnalytics/SentimentTests.cs | 36 + .../Microsoft.CognitiveServices.Language.sln | 28 + .../TextAnalytics/ITextAnalyticsAPI.cs | 125 ++ .../TextAnalytics/Models/BatchInputV2.cs | 45 + .../Models/DetectedLanguageV2.cs | 69 + .../TextAnalytics/Models/ErrorRecordV2.cs | 54 + .../TextAnalytics/Models/ErrorResponse.cs | 61 + .../Models/ErrorResponseException.cs | 59 + .../Generated/TextAnalytics/Models/InputV2.cs | 51 + .../TextAnalytics/Models/InternalError.cs | 55 + .../Models/KeyPhraseBatchResultItemV2.cs | 59 + .../Models/KeyPhraseBatchResultV2.cs | 51 + .../Models/LanguageBatchResultItemV2.cs | 56 + .../Models/LanguageBatchResultV2.cs | 51 + .../Models/MultiLanguageBatchInputV2.cs | 45 + .../Models/MultiLanguageInputV2.cs | 63 + .../Models/SentimentBatchResultItemV2.cs | 61 + .../Models/SentimentBatchResultV2.cs | 51 + .../TextAnalytics/TextAnalyticsAPI.cs | 637 ++++++ .../TextAnalyticsAPIExtensions.cs | 169 ++ ...icrosoft.CognitiveServices.Language.csproj | 24 + .../BaseTests.cs | 31 + .../FaceDetectionTests.cs | 30 + ...soft.CognitiveServices.Vision.Tests.csproj | 35 + .../FaceDetection.json | 64 + .../TestImages/detection1.jpg | Bin 0 -> 365482 bytes .../Microsoft.CognitiveServices.Vision.sln | 28 + .../Generated/Face/FaceAPI.cs | 137 ++ .../Generated/Face/FaceList.cs | 1400 +++++++++++++ .../Generated/Face/FaceListExtensions.cs | 363 ++++ .../Generated/Face/FaceOperations.cs | 1263 ++++++++++++ .../Face/FaceOperationsExtensions.cs | 368 ++++ .../Generated/Face/IFaceAPI.cs | 65 + .../Generated/Face/IFaceList.cs | 227 +++ .../Generated/Face/IFaceOperations.cs | 230 +++ .../Generated/Face/IPerson.cs | 307 +++ .../Generated/Face/IPersonGroup.cs | 189 ++ .../Generated/Face/Models/APIError.cs | 46 + .../Face/Models/APIErrorException.cs | 58 + .../Generated/Face/Models/AzureRegion.cs | 22 + .../Face/Models/CreateFaceListRequest.cs | 83 + .../Face/Models/CreatePersonGroupRequest.cs | 83 + .../Face/Models/CreatePersonRequest.cs | 84 + .../Face/Models/CreatePersonResult.cs | 62 + .../Generated/Face/Models/DetectedFace.cs | 87 + .../Face/Models/EmotionProperties.cs | 162 ++ .../Generated/Face/Models/Error.cs | 52 + .../Generated/Face/Models/FaceAttributes.cs | 125 ++ .../Generated/Face/Models/FaceLandmarks.cs | 320 +++ .../Generated/Face/Models/FaceRectangle.cs | 87 + .../Face/Models/FacialHairProperties.cs | 92 + .../Face/Models/FindSimilarRequest.cs | 151 ++ .../Face/Models/GetFaceListResult.cs | 105 + .../Generated/Face/Models/GroupRequest.cs | 73 + .../Generated/Face/Models/GroupResponse.cs | 76 + .../Face/Models/HeadPoseProperties.cs | 58 + .../Generated/Face/Models/IdentifyRequest.cs | 122 ++ .../Face/Models/IdentifyResultCandidate.cs | 80 + .../Face/Models/IdentifyResultItem.cs | 91 + .../Generated/Face/Models/ImageUrl.cs | 57 + .../Generated/Face/Models/PersonFaceResult.cs | 76 + .../Face/Models/PersonGroupResult.cs | 101 + .../Generated/Face/Models/PersonResult.cs | 93 + .../Generated/Face/Models/Position.cs | 66 + .../Face/Models/SimilarFaceResult.cs | 100 + .../Generated/Face/Models/TrainingStatus.cs | 105 + .../Models/UpdatePersonFaceDataRequest.cs | 69 + .../Generated/Face/Models/VerifyRequest.cs | 100 + .../Generated/Face/Models/VerifyResult.cs | 86 + .../Generated/Face/Person.cs | 1762 +++++++++++++++++ .../Generated/Face/PersonExtensions.cs | 503 +++++ .../Generated/Face/PersonGroup.cs | 1189 +++++++++++ .../Generated/Face/PersonGroupExtensions.cs | 291 +++ .../Microsoft.CognitiveServices.Vision.csproj | 25 + 81 files changed, 13622 insertions(+) create mode 100644 src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language.Tests/BaseTests.cs create mode 100644 src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language.Tests/Microsoft.CognitiveServices.Language.Tests.csproj create mode 100644 src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language.Tests/SessionRecords/Language.TextAnalytics.Tests.DetectLanguageTests/DetectLanguage.json create mode 100644 src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language.Tests/SessionRecords/Language.TextAnalytics.Tests.KeyPhrasesTests/KeyPhrases.json create mode 100644 src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language.Tests/SessionRecords/Language.TextAnalytics.Tests.SentimentTests/Sentiment.json create mode 100644 src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language.Tests/TextAnalytics/DetectLanguageTests.cs create mode 100644 src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language.Tests/TextAnalytics/KeyPhrasesTests.cs create mode 100644 src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language.Tests/TextAnalytics/SentimentTests.cs create mode 100644 src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language.sln create mode 100644 src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/ITextAnalyticsAPI.cs create mode 100644 src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/BatchInputV2.cs create mode 100644 src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/DetectedLanguageV2.cs create mode 100644 src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/ErrorRecordV2.cs create mode 100644 src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/ErrorResponse.cs create mode 100644 src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/ErrorResponseException.cs create mode 100644 src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/InputV2.cs create mode 100644 src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/InternalError.cs create mode 100644 src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/KeyPhraseBatchResultItemV2.cs create mode 100644 src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/KeyPhraseBatchResultV2.cs create mode 100644 src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/LanguageBatchResultItemV2.cs create mode 100644 src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/LanguageBatchResultV2.cs create mode 100644 src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/MultiLanguageBatchInputV2.cs create mode 100644 src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/MultiLanguageInputV2.cs create mode 100644 src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/SentimentBatchResultItemV2.cs create mode 100644 src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/SentimentBatchResultV2.cs create mode 100644 src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/TextAnalyticsAPI.cs create mode 100644 src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/TextAnalyticsAPIExtensions.cs create mode 100644 src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language/Microsoft.CognitiveServices.Language.csproj create mode 100644 src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision.Tests/BaseTests.cs create mode 100644 src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision.Tests/FaceDetectionTests.cs create mode 100644 src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision.Tests/Microsoft.CognitiveServices.Vision.Tests.csproj create mode 100644 src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision.Tests/SessionRecords/FaceSDK.Tests.FaceDetectionTests/FaceDetection.json create mode 100644 src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision.Tests/TestImages/detection1.jpg create mode 100644 src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision.sln create mode 100644 src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceAPI.cs create mode 100644 src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceList.cs create mode 100644 src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceListExtensions.cs create mode 100644 src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceOperations.cs create mode 100644 src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceOperationsExtensions.cs create mode 100644 src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IFaceAPI.cs create mode 100644 src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IFaceList.cs create mode 100644 src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IFaceOperations.cs create mode 100644 src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IPerson.cs create mode 100644 src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IPersonGroup.cs create mode 100644 src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/APIError.cs create mode 100644 src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/APIErrorException.cs create mode 100644 src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/AzureRegion.cs create mode 100644 src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreateFaceListRequest.cs create mode 100644 src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreatePersonGroupRequest.cs create mode 100644 src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreatePersonRequest.cs create mode 100644 src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreatePersonResult.cs create mode 100644 src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/DetectedFace.cs create mode 100644 src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/EmotionProperties.cs create mode 100644 src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/Error.cs create mode 100644 src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FaceAttributes.cs create mode 100644 src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FaceLandmarks.cs create mode 100644 src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FaceRectangle.cs create mode 100644 src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FacialHairProperties.cs create mode 100644 src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FindSimilarRequest.cs create mode 100644 src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/GetFaceListResult.cs create mode 100644 src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/GroupRequest.cs create mode 100644 src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/GroupResponse.cs create mode 100644 src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/HeadPoseProperties.cs create mode 100644 src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/IdentifyRequest.cs create mode 100644 src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/IdentifyResultCandidate.cs create mode 100644 src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/IdentifyResultItem.cs create mode 100644 src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/ImageUrl.cs create mode 100644 src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/PersonFaceResult.cs create mode 100644 src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/PersonGroupResult.cs create mode 100644 src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/PersonResult.cs create mode 100644 src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/Position.cs create mode 100644 src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/SimilarFaceResult.cs create mode 100644 src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/TrainingStatus.cs create mode 100644 src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/UpdatePersonFaceDataRequest.cs create mode 100644 src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/VerifyRequest.cs create mode 100644 src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/VerifyResult.cs create mode 100644 src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Person.cs create mode 100644 src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/PersonExtensions.cs create mode 100644 src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/PersonGroup.cs create mode 100644 src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/PersonGroupExtensions.cs create mode 100644 src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Microsoft.CognitiveServices.Vision.csproj diff --git a/src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language.Tests/BaseTests.cs b/src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language.Tests/BaseTests.cs new file mode 100644 index 000000000000..29d8cc1141b1 --- /dev/null +++ b/src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language.Tests/BaseTests.cs @@ -0,0 +1,28 @@ +using Microsoft.CognitiveServices.Language.TextAnalytics; +using System.Net.Http; + +namespace Language.Tests +{ + public abstract class BaseTests + { + public static bool IsTestTenant = false; + private static string SubscriptionKey = ""; + private static string Region = null; + + static BaseTests() + { + // Retrieve the configuration information. + + Region = "WestUS"; + } + + protected ITextAnalyticsAPI GetClient(DelegatingHandler handler) + { + ITextAnalyticsAPI client; + client = new TextAnalyticsAPI(handlers: handler); + client.SubscriptionKey = SubscriptionKey; + + return client; + } + } +} diff --git a/src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language.Tests/Microsoft.CognitiveServices.Language.Tests.csproj b/src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language.Tests/Microsoft.CognitiveServices.Language.Tests.csproj new file mode 100644 index 000000000000..0100c98c660a --- /dev/null +++ b/src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language.Tests/Microsoft.CognitiveServices.Language.Tests.csproj @@ -0,0 +1,30 @@ + + + + Microsoft.CognitiveServices.Language.Tests + Microsoft.CognitiveServices.Language.Tests Class Library + Microsoft.CognitiveServices.Language.Tests + 1.0.0-preview + + + netcoreapp1.1 + Language.Tests + + + + + + + + + PreserveNewest + + + + + + + + + + diff --git a/src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language.Tests/SessionRecords/Language.TextAnalytics.Tests.DetectLanguageTests/DetectLanguage.json b/src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language.Tests/SessionRecords/Language.TextAnalytics.Tests.DetectLanguageTests/DetectLanguage.json new file mode 100644 index 000000000000..09efd652ef69 --- /dev/null +++ b/src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language.Tests/SessionRecords/Language.TextAnalytics.Tests.DetectLanguageTests/DetectLanguage.json @@ -0,0 +1,55 @@ +{ + "Entries": [ + { + "RequestUri": "/text/analytics/v2.0/languages", + "EncodedRequestUri": "L3RleHQvYW5hbHl0aWNzL3YyLjAvbGFuZ3VhZ2Vz", + "RequestMethod": "POST", + "RequestBody": "{\r\n \"documents\": [\r\n {\r\n \"id\": \"id\",\r\n \"text\": \"I love my team mates\"\r\n }\r\n ]\r\n}", + "RequestHeaders": { + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "98" + ], + "Ocp-Apim-Subscription-Key": [ + "" + ], + "User-Agent": [ + "FxVersion/4.6.25211.01", + "Microsoft.CognitiveServices.Language.TextAnalytics.TextAnalyticsAPI/1.0.0" + ] + }, + "ResponseBody": "{\r\n \"documents\": [\r\n {\r\n \"id\": \"id\",\r\n \"detectedLanguages\": [\r\n {\r\n \"name\": \"English\",\r\n \"iso6391Name\": \"en\",\r\n \"score\": 1.0\r\n }\r\n ]\r\n }\r\n ],\r\n \"errors\": []\r\n}", + "ResponseHeaders": { + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Date": [ + "Wed, 30 Aug 2017 02:11:18 GMT" + ], + "Transfer-Encoding": [ + "chunked" + ], + "x-ms-transaction-count": [ + "1" + ], + "x-aml-ta-request-id": [ + "473e3a1f-cf5e-4230-85b5-68fe2518370f" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "apim-request-id": [ + "69e6aeb0-e601-42ca-9468-f0cfaa408708" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains; preload" + ] + }, + "StatusCode": 200 + } + ], + "Names": {}, + "Variables": {} +} \ No newline at end of file diff --git a/src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language.Tests/SessionRecords/Language.TextAnalytics.Tests.KeyPhrasesTests/KeyPhrases.json b/src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language.Tests/SessionRecords/Language.TextAnalytics.Tests.KeyPhrasesTests/KeyPhrases.json new file mode 100644 index 000000000000..eefb0cd06cd0 --- /dev/null +++ b/src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language.Tests/SessionRecords/Language.TextAnalytics.Tests.KeyPhrasesTests/KeyPhrases.json @@ -0,0 +1,55 @@ +{ + "Entries": [ + { + "RequestUri": "/text/analytics/v2.0/keyPhrases", + "EncodedRequestUri": "L3RleHQvYW5hbHl0aWNzL3YyLjAva2V5UGhyYXNlcw==", + "RequestMethod": "POST", + "RequestBody": "{\r\n \"documents\": [\r\n {\r\n \"language\": \"en\",\r\n \"id\": \"id\",\r\n \"text\": \"I love my team mates\"\r\n }\r\n ]\r\n}", + "RequestHeaders": { + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "123" + ], + "Ocp-Apim-Subscription-Key": [ + "" + ], + "User-Agent": [ + "FxVersion/4.6.25211.01", + "Microsoft.CognitiveServices.Language.TextAnalytics.TextAnalyticsAPI/1.0.0" + ] + }, + "ResponseBody": "{\r\n \"documents\": [\r\n {\r\n \"keyPhrases\": [\r\n \"team mates\"\r\n ],\r\n \"id\": \"id\"\r\n }\r\n ],\r\n \"errors\": []\r\n}", + "ResponseHeaders": { + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Date": [ + "Wed, 30 Aug 2017 02:11:17 GMT" + ], + "Transfer-Encoding": [ + "chunked" + ], + "x-ms-transaction-count": [ + "1" + ], + "x-aml-ta-request-id": [ + "460baaca-7f57-42c1-8cc7-8852957d05b9" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "apim-request-id": [ + "3f09b1c9-fe3b-46bb-badf-98108c599825" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains; preload" + ] + }, + "StatusCode": 200 + } + ], + "Names": {}, + "Variables": {} +} \ No newline at end of file diff --git a/src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language.Tests/SessionRecords/Language.TextAnalytics.Tests.SentimentTests/Sentiment.json b/src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language.Tests/SessionRecords/Language.TextAnalytics.Tests.SentimentTests/Sentiment.json new file mode 100644 index 000000000000..c5f620b0eadf --- /dev/null +++ b/src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language.Tests/SessionRecords/Language.TextAnalytics.Tests.SentimentTests/Sentiment.json @@ -0,0 +1,55 @@ +{ + "Entries": [ + { + "RequestUri": "/text/analytics/v2.0/sentiment", + "EncodedRequestUri": "L3RleHQvYW5hbHl0aWNzL3YyLjAvc2VudGltZW50", + "RequestMethod": "POST", + "RequestBody": "{\r\n \"documents\": [\r\n {\r\n \"language\": \"en\",\r\n \"id\": \"id\",\r\n \"text\": \"I love my team mates\"\r\n }\r\n ]\r\n}", + "RequestHeaders": { + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Content-Length": [ + "123" + ], + "Ocp-Apim-Subscription-Key": [ + "" + ], + "User-Agent": [ + "FxVersion/4.6.25211.01", + "Microsoft.CognitiveServices.Language.TextAnalytics.TextAnalyticsAPI/1.0.0" + ] + }, + "ResponseBody": "{\r\n \"documents\": [\r\n {\r\n \"score\": 0.97380387783050537,\r\n \"id\": \"id\"\r\n }\r\n ],\r\n \"errors\": []\r\n}", + "ResponseHeaders": { + "Content-Type": [ + "application/json; charset=utf-8" + ], + "Date": [ + "Wed, 30 Aug 2017 02:11:17 GMT" + ], + "Transfer-Encoding": [ + "chunked" + ], + "x-ms-transaction-count": [ + "1" + ], + "x-aml-ta-request-id": [ + "06db056b-1bf0-4994-933a-f08eacf94053" + ], + "X-Content-Type-Options": [ + "nosniff" + ], + "apim-request-id": [ + "63c5b90f-3a35-48c3-bb85-d89218d1202e" + ], + "Strict-Transport-Security": [ + "max-age=31536000; includeSubDomains; preload" + ] + }, + "StatusCode": 200 + } + ], + "Names": {}, + "Variables": {} +} \ No newline at end of file diff --git a/src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language.Tests/TextAnalytics/DetectLanguageTests.cs b/src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language.Tests/TextAnalytics/DetectLanguageTests.cs new file mode 100644 index 000000000000..3e647529e8ea --- /dev/null +++ b/src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language.Tests/TextAnalytics/DetectLanguageTests.cs @@ -0,0 +1,34 @@ +using Language.Tests; +using Microsoft.Azure.Test.HttpRecorder; +using Microsoft.CognitiveServices.Language.TextAnalytics; +using Microsoft.CognitiveServices.Language.TextAnalytics.Models; +using Microsoft.Rest.ClientRuntime.Azure.TestFramework; +using System.Collections.Generic; +using Xunit; + +namespace Language.TextAnalytics.Tests +{ + public class DetectLanguageTests : BaseTests + { + [Fact] + public void DetectLanguage() + { + using (MockContext context = MockContext.Start(this.GetType().FullName)) + { + HttpMockServer.Initialize(this.GetType().FullName, "DetectLanguage"); + ITextAnalyticsAPI client = GetClient(HttpMockServer.CreateInstance()); + LanguageBatchResultV2 result = client.DetectLanguage( + new BatchInputV2( + new List() + { + new InputV2("id","I love my team mates") + })); + + Assert.Equal("English", result.Documents[0].DetectedLanguages[0].Name); + Assert.Equal("en", result.Documents[0].DetectedLanguages[0].Iso6391Name); + Assert.True(result.Documents[0].DetectedLanguages[0].Score > 0.7); + context.Stop(); + } + } + } +} diff --git a/src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language.Tests/TextAnalytics/KeyPhrasesTests.cs b/src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language.Tests/TextAnalytics/KeyPhrasesTests.cs new file mode 100644 index 000000000000..f903b9c4d4b1 --- /dev/null +++ b/src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language.Tests/TextAnalytics/KeyPhrasesTests.cs @@ -0,0 +1,36 @@ +using Language.Tests; +using Microsoft.Azure.Test.HttpRecorder; +using Microsoft.CognitiveServices.Language.TextAnalytics; +using Microsoft.CognitiveServices.Language.TextAnalytics.Models; +using Microsoft.Rest.ClientRuntime.Azure.TestFramework; +using System.Collections.Generic; +using Xunit; + +namespace Language.TextAnalytics.Tests +{ + public class KeyPhrasesTests : BaseTests + { + [Fact] + public void KeyPhrases() + { + using (MockContext context = MockContext.Start(this.GetType().FullName)) + { + HttpMockServer.Initialize(this.GetType().FullName, "KeyPhrases"); + ITextAnalyticsAPI client = GetClient(HttpMockServer.CreateInstance()); + KeyPhraseBatchResultV2 result = client.KeyPhrases( + new MultiLanguageBatchInputV2( + new List() + { + new MultiLanguageInputV2() + { + Id ="id", + Text ="I love my team mates", + Language ="en" + } + })); + + Assert.Equal("team mates", result.Documents[0].KeyPhrases[0]); + } + } + } +} diff --git a/src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language.Tests/TextAnalytics/SentimentTests.cs b/src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language.Tests/TextAnalytics/SentimentTests.cs new file mode 100644 index 000000000000..d91ba9edada7 --- /dev/null +++ b/src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language.Tests/TextAnalytics/SentimentTests.cs @@ -0,0 +1,36 @@ +using Language.Tests; +using Microsoft.Azure.Test.HttpRecorder; +using Microsoft.CognitiveServices.Language.TextAnalytics; +using Microsoft.CognitiveServices.Language.TextAnalytics.Models; +using Microsoft.Rest.ClientRuntime.Azure.TestFramework; +using System.Collections.Generic; +using Xunit; + +namespace Language.TextAnalytics.Tests +{ + public class SentimentTests : BaseTests + { + [Fact] + public void Sentiment() + { + using (MockContext context = MockContext.Start(this.GetType().FullName)) + { + HttpMockServer.Initialize(this.GetType().FullName, "Sentiment"); + ITextAnalyticsAPI client = GetClient(HttpMockServer.CreateInstance()); + SentimentBatchResultV2 result = client.Sentiment( + new MultiLanguageBatchInputV2( + new List() + { + new MultiLanguageInputV2() + { + Id ="id", + Text ="I love my team mates", + Language ="en" + } + })); + + Assert.True(result.Documents[0].Score > 0); + } + } + } +} diff --git a/src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language.sln b/src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language.sln new file mode 100644 index 000000000000..eb7dbc626eaa --- /dev/null +++ b/src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language.sln @@ -0,0 +1,28 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 15 +VisualStudioVersion = 15.0.26430.16 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.CognitiveServices.Language", "Microsoft.CognitiveServices.Language\Microsoft.CognitiveServices.Language.csproj", "{6807B854-8528-4FEE-A25D-C43C3AA2D601}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.CognitiveServices.Language.Tests", "Microsoft.CognitiveServices.Language.Tests\Microsoft.CognitiveServices.Language.Tests.csproj", "{5987D97A-E532-450C-BF22-A1F595C927F1}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {6807B854-8528-4FEE-A25D-C43C3AA2D601}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6807B854-8528-4FEE-A25D-C43C3AA2D601}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6807B854-8528-4FEE-A25D-C43C3AA2D601}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6807B854-8528-4FEE-A25D-C43C3AA2D601}.Release|Any CPU.Build.0 = Release|Any CPU + {5987D97A-E532-450C-BF22-A1F595C927F1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5987D97A-E532-450C-BF22-A1F595C927F1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5987D97A-E532-450C-BF22-A1F595C927F1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5987D97A-E532-450C-BF22-A1F595C927F1}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/ITextAnalyticsAPI.cs b/src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/ITextAnalyticsAPI.cs new file mode 100644 index 000000000000..24cbe8bc6f7c --- /dev/null +++ b/src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/ITextAnalyticsAPI.cs @@ -0,0 +1,125 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Language.TextAnalytics +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Language; + using Microsoft.Rest; + using Models; + using Newtonsoft.Json; + using System.Collections; + using System.Collections.Generic; + using System.Threading; + using System.Threading.Tasks; + + /// + /// The Text Analytics API is a suite of text analytics web services built + /// with best-in-class Microsoft machine learning algorithms. + /// The API can be used to analyze unstructured text for tasks such as + /// sentiment analysis, key phrase extraction and language detection. + /// No training data is needed to use this API; just bring your text data. + /// This API uses advanced natural language processing techniques to + /// deliver best in class predictions. + /// + /// Further documentation can be found in + /// https://docs.microsoft.com/en-us/azure/cognitive-services/text-analytics/overview + /// + public partial interface ITextAnalyticsAPI : System.IDisposable + { + /// + /// The base URI of the service. + /// + + /// + /// Gets or sets json serialization settings. + /// + JsonSerializerSettings SerializationSettings { get; } + + /// + /// Gets or sets json deserialization settings. + /// + JsonSerializerSettings DeserializationSettings { get; } + + /// + /// Supported Azure regions for Cognitive Services endpoints + /// + string AzureRegion { get; } + + /// + /// Subscription key in header + /// + string SubscriptionKey { get; set; } + + + /// + /// The API returns a list of strings denoting the key talking points + /// in the input text. + /// We employ techniques from Microsoft Office's sophisticated Natural + /// Language Processing toolkit. + /// See the <a + /// href="https://docs.microsoft.com/en-us/azure/cognitive-services/text-analytics/overview#supported-languages">Text + /// Analytics Documentation</a> for details about the languages + /// that are supported by key phrase extraction. + /// + /// + /// Collection of documents to analyze. Documents can now contain a + /// language field to indicate the text language + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + Task> KeyPhrasesWithHttpMessagesAsync(MultiLanguageBatchInputV2 input, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + + /// + /// The API returns the detected language and a numeric score between 0 + /// and 1. + /// Scores close to 1 indicate 100% certainty that the identified + /// language is true. + /// A total of 120 languages are supported. + /// + /// + /// Collection of documents to analyze. + /// + /// + /// (Optional. Deprecated) Number of languages to detect. Set to 1 by + /// default. Irrespective of the value, the language with the highest + /// score is returned. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + Task> DetectLanguageWithHttpMessagesAsync(BatchInputV2 input, int? numberOfLanguagesToDetect = default(int?), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + + /// + /// The API returns a numeric score between 0 and 1. + /// Scores close to 1 indicate positive sentiment, while scores close + /// to 0 indicate negative sentiment. + /// Sentiment score is generated using classification techniques. + /// The input features to the classifier include n-grams, features + /// generated from part-of-speech tags, and word embeddings. + /// See the <a + /// href="https://docs.microsoft.com/en-us/azure/cognitive-services/text-analytics/overview#supported-languages">Text + /// Analytics Documentation</a> for details about the languages + /// that are supported by sentiment analysis. + /// + /// + /// Collection of documents to analyze. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + Task> SentimentWithHttpMessagesAsync(MultiLanguageBatchInputV2 input, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + + } +} diff --git a/src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/BatchInputV2.cs b/src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/BatchInputV2.cs new file mode 100644 index 000000000000..1a0bb77e09d9 --- /dev/null +++ b/src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/BatchInputV2.cs @@ -0,0 +1,45 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Language.TextAnalytics.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Language; + using Microsoft.CognitiveServices.Language.TextAnalytics; + using Newtonsoft.Json; + using System.Collections; + using System.Collections.Generic; + using System.Linq; + + public partial class BatchInputV2 + { + /// + /// Initializes a new instance of the BatchInputV2 class. + /// + public BatchInputV2() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the BatchInputV2 class. + /// + public BatchInputV2(IList documents = default(IList)) + { + Documents = documents; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// + [JsonProperty(PropertyName = "documents")] + public IList Documents { get; set; } + + } +} diff --git a/src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/DetectedLanguageV2.cs b/src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/DetectedLanguageV2.cs new file mode 100644 index 000000000000..f2cfea288215 --- /dev/null +++ b/src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/DetectedLanguageV2.cs @@ -0,0 +1,69 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Language.TextAnalytics.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Language; + using Microsoft.CognitiveServices.Language.TextAnalytics; + using Newtonsoft.Json; + using System.Linq; + + public partial class DetectedLanguageV2 + { + /// + /// Initializes a new instance of the DetectedLanguageV2 class. + /// + public DetectedLanguageV2() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the DetectedLanguageV2 class. + /// + /// Long name of a detected language (e.g. English, + /// French). + /// A two letter representation of the + /// detected language according to the ISO 639-1 standard (e.g. en, + /// fr). + /// A confidence score between 0 and 1. Scores + /// close to 1 indicate 100% certainty that the identified language is + /// true. + public DetectedLanguageV2(string name = default(string), string iso6391Name = default(string), double? score = default(double?)) + { + Name = name; + Iso6391Name = iso6391Name; + Score = score; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets long name of a detected language (e.g. English, + /// French). + /// + [JsonProperty(PropertyName = "name")] + public string Name { get; set; } + + /// + /// Gets or sets a two letter representation of the detected language + /// according to the ISO 639-1 standard (e.g. en, fr). + /// + [JsonProperty(PropertyName = "iso6391Name")] + public string Iso6391Name { get; set; } + + /// + /// Gets or sets a confidence score between 0 and 1. Scores close to 1 + /// indicate 100% certainty that the identified language is true. + /// + [JsonProperty(PropertyName = "score")] + public double? Score { get; set; } + + } +} diff --git a/src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/ErrorRecordV2.cs b/src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/ErrorRecordV2.cs new file mode 100644 index 000000000000..508a7e8e9cfd --- /dev/null +++ b/src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/ErrorRecordV2.cs @@ -0,0 +1,54 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Language.TextAnalytics.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Language; + using Microsoft.CognitiveServices.Language.TextAnalytics; + using Newtonsoft.Json; + using System.Linq; + + public partial class ErrorRecordV2 + { + /// + /// Initializes a new instance of the ErrorRecordV2 class. + /// + public ErrorRecordV2() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the ErrorRecordV2 class. + /// + /// Input document unique identifier the error refers + /// to. + /// Error message. + public ErrorRecordV2(string id = default(string), string message = default(string)) + { + Id = id; + Message = message; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets input document unique identifier the error refers to. + /// + [JsonProperty(PropertyName = "id")] + public string Id { get; set; } + + /// + /// Gets or sets error message. + /// + [JsonProperty(PropertyName = "message")] + public string Message { get; set; } + + } +} diff --git a/src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/ErrorResponse.cs b/src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/ErrorResponse.cs new file mode 100644 index 000000000000..bfdec18c125a --- /dev/null +++ b/src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/ErrorResponse.cs @@ -0,0 +1,61 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Language.TextAnalytics.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Language; + using Microsoft.CognitiveServices.Language.TextAnalytics; + using Newtonsoft.Json; + using System.Linq; + + public partial class ErrorResponse + { + /// + /// Initializes a new instance of the ErrorResponse class. + /// + public ErrorResponse() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the ErrorResponse class. + /// + public ErrorResponse(string code = default(string), string message = default(string), string target = default(string), InternalError innerError = default(InternalError)) + { + Code = code; + Message = message; + Target = target; + InnerError = innerError; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// + [JsonProperty(PropertyName = "code")] + public string Code { get; set; } + + /// + /// + [JsonProperty(PropertyName = "message")] + public string Message { get; set; } + + /// + /// + [JsonProperty(PropertyName = "target")] + public string Target { get; set; } + + /// + /// + [JsonProperty(PropertyName = "innerError")] + public InternalError InnerError { get; set; } + + } +} diff --git a/src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/ErrorResponseException.cs b/src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/ErrorResponseException.cs new file mode 100644 index 000000000000..6f520ac265df --- /dev/null +++ b/src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/ErrorResponseException.cs @@ -0,0 +1,59 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Language.TextAnalytics.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Language; + using Microsoft.CognitiveServices.Language.TextAnalytics; + using Microsoft.Rest; + + /// + /// Exception thrown for an invalid response with ErrorResponse + /// information. + /// + public class ErrorResponseException : RestException + { + /// + /// Gets information about the associated HTTP request. + /// + public HttpRequestMessageWrapper Request { get; set; } + + /// + /// Gets information about the associated HTTP response. + /// + public HttpResponseMessageWrapper Response { get; set; } + + /// + /// Gets or sets the body object. + /// + public ErrorResponse Body { get; set; } + + /// + /// Initializes a new instance of the ErrorResponseException class. + /// + public ErrorResponseException() + { + } + + /// + /// Initializes a new instance of the ErrorResponseException class. + /// + /// The exception message. + public ErrorResponseException(string message) + : this(message, null) + { + } + + /// + /// Initializes a new instance of the ErrorResponseException class. + /// + /// The exception message. + /// Inner exception. + public ErrorResponseException(string message, System.Exception innerException) + : base(message, innerException) + { + } + } +} diff --git a/src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/InputV2.cs b/src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/InputV2.cs new file mode 100644 index 000000000000..ed6712aa2cf9 --- /dev/null +++ b/src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/InputV2.cs @@ -0,0 +1,51 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Language.TextAnalytics.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Language; + using Microsoft.CognitiveServices.Language.TextAnalytics; + using Newtonsoft.Json; + using System.Linq; + + public partial class InputV2 + { + /// + /// Initializes a new instance of the InputV2 class. + /// + public InputV2() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the InputV2 class. + /// + /// Unique, non-empty document identifier. + public InputV2(string id = default(string), string text = default(string)) + { + Id = id; + Text = text; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets unique, non-empty document identifier. + /// + [JsonProperty(PropertyName = "id")] + public string Id { get; set; } + + /// + /// + [JsonProperty(PropertyName = "text")] + public string Text { get; set; } + + } +} diff --git a/src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/InternalError.cs b/src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/InternalError.cs new file mode 100644 index 000000000000..a77afaa0ad4d --- /dev/null +++ b/src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/InternalError.cs @@ -0,0 +1,55 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Language.TextAnalytics.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Language; + using Microsoft.CognitiveServices.Language.TextAnalytics; + using Newtonsoft.Json; + using System.Linq; + + public partial class InternalError + { + /// + /// Initializes a new instance of the InternalError class. + /// + public InternalError() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the InternalError class. + /// + public InternalError(string code = default(string), string message = default(string), InternalError innerError = default(InternalError)) + { + Code = code; + Message = message; + InnerError = innerError; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// + [JsonProperty(PropertyName = "code")] + public string Code { get; set; } + + /// + /// + [JsonProperty(PropertyName = "message")] + public string Message { get; set; } + + /// + /// + [JsonProperty(PropertyName = "innerError")] + public InternalError InnerError { get; set; } + + } +} diff --git a/src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/KeyPhraseBatchResultItemV2.cs b/src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/KeyPhraseBatchResultItemV2.cs new file mode 100644 index 000000000000..5c47442edf2a --- /dev/null +++ b/src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/KeyPhraseBatchResultItemV2.cs @@ -0,0 +1,59 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Language.TextAnalytics.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Language; + using Microsoft.CognitiveServices.Language.TextAnalytics; + using Newtonsoft.Json; + using System.Collections; + using System.Collections.Generic; + using System.Linq; + + public partial class KeyPhraseBatchResultItemV2 + { + /// + /// Initializes a new instance of the KeyPhraseBatchResultItemV2 class. + /// + public KeyPhraseBatchResultItemV2() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the KeyPhraseBatchResultItemV2 class. + /// + /// A list of representative words or phrases. + /// The number of key phrases returned is proportional to the number of + /// words in the input document. + /// Unique document identifier. + public KeyPhraseBatchResultItemV2(IList keyPhrases = default(IList), string id = default(string)) + { + KeyPhrases = keyPhrases; + Id = id; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets a list of representative words or phrases. The number + /// of key phrases returned is proportional to the number of words in + /// the input document. + /// + [JsonProperty(PropertyName = "keyPhrases")] + public IList KeyPhrases { get; set; } + + /// + /// Gets or sets unique document identifier. + /// + [JsonProperty(PropertyName = "id")] + public string Id { get; set; } + + } +} diff --git a/src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/KeyPhraseBatchResultV2.cs b/src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/KeyPhraseBatchResultV2.cs new file mode 100644 index 000000000000..61a6900fa0f5 --- /dev/null +++ b/src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/KeyPhraseBatchResultV2.cs @@ -0,0 +1,51 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Language.TextAnalytics.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Language; + using Microsoft.CognitiveServices.Language.TextAnalytics; + using Newtonsoft.Json; + using System.Collections; + using System.Collections.Generic; + using System.Linq; + + public partial class KeyPhraseBatchResultV2 + { + /// + /// Initializes a new instance of the KeyPhraseBatchResultV2 class. + /// + public KeyPhraseBatchResultV2() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the KeyPhraseBatchResultV2 class. + /// + public KeyPhraseBatchResultV2(IList documents = default(IList), IList errors = default(IList)) + { + Documents = documents; + Errors = errors; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// + [JsonProperty(PropertyName = "documents")] + public IList Documents { get; set; } + + /// + /// + [JsonProperty(PropertyName = "errors")] + public IList Errors { get; set; } + + } +} diff --git a/src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/LanguageBatchResultItemV2.cs b/src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/LanguageBatchResultItemV2.cs new file mode 100644 index 000000000000..3070ba9e59ec --- /dev/null +++ b/src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/LanguageBatchResultItemV2.cs @@ -0,0 +1,56 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Language.TextAnalytics.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Language; + using Microsoft.CognitiveServices.Language.TextAnalytics; + using Newtonsoft.Json; + using System.Collections; + using System.Collections.Generic; + using System.Linq; + + public partial class LanguageBatchResultItemV2 + { + /// + /// Initializes a new instance of the LanguageBatchResultItemV2 class. + /// + public LanguageBatchResultItemV2() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the LanguageBatchResultItemV2 class. + /// + /// Unique document identifier. + /// A list of extracted + /// languages. + public LanguageBatchResultItemV2(string id = default(string), IList detectedLanguages = default(IList)) + { + Id = id; + DetectedLanguages = detectedLanguages; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets unique document identifier. + /// + [JsonProperty(PropertyName = "id")] + public string Id { get; set; } + + /// + /// Gets or sets a list of extracted languages. + /// + [JsonProperty(PropertyName = "detectedLanguages")] + public IList DetectedLanguages { get; set; } + + } +} diff --git a/src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/LanguageBatchResultV2.cs b/src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/LanguageBatchResultV2.cs new file mode 100644 index 000000000000..07e07a4bce0a --- /dev/null +++ b/src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/LanguageBatchResultV2.cs @@ -0,0 +1,51 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Language.TextAnalytics.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Language; + using Microsoft.CognitiveServices.Language.TextAnalytics; + using Newtonsoft.Json; + using System.Collections; + using System.Collections.Generic; + using System.Linq; + + public partial class LanguageBatchResultV2 + { + /// + /// Initializes a new instance of the LanguageBatchResultV2 class. + /// + public LanguageBatchResultV2() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the LanguageBatchResultV2 class. + /// + public LanguageBatchResultV2(IList documents = default(IList), IList errors = default(IList)) + { + Documents = documents; + Errors = errors; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// + [JsonProperty(PropertyName = "documents")] + public IList Documents { get; set; } + + /// + /// + [JsonProperty(PropertyName = "errors")] + public IList Errors { get; set; } + + } +} diff --git a/src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/MultiLanguageBatchInputV2.cs b/src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/MultiLanguageBatchInputV2.cs new file mode 100644 index 000000000000..30b7df6e3ff8 --- /dev/null +++ b/src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/MultiLanguageBatchInputV2.cs @@ -0,0 +1,45 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Language.TextAnalytics.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Language; + using Microsoft.CognitiveServices.Language.TextAnalytics; + using Newtonsoft.Json; + using System.Collections; + using System.Collections.Generic; + using System.Linq; + + public partial class MultiLanguageBatchInputV2 + { + /// + /// Initializes a new instance of the MultiLanguageBatchInputV2 class. + /// + public MultiLanguageBatchInputV2() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the MultiLanguageBatchInputV2 class. + /// + public MultiLanguageBatchInputV2(IList documents = default(IList)) + { + Documents = documents; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// + [JsonProperty(PropertyName = "documents")] + public IList Documents { get; set; } + + } +} diff --git a/src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/MultiLanguageInputV2.cs b/src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/MultiLanguageInputV2.cs new file mode 100644 index 000000000000..802ee5a252d7 --- /dev/null +++ b/src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/MultiLanguageInputV2.cs @@ -0,0 +1,63 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Language.TextAnalytics.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Language; + using Microsoft.CognitiveServices.Language.TextAnalytics; + using Newtonsoft.Json; + using System.Linq; + + public partial class MultiLanguageInputV2 + { + /// + /// Initializes a new instance of the MultiLanguageInputV2 class. + /// + public MultiLanguageInputV2() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the MultiLanguageInputV2 class. + /// + /// This is the 2 letter ISO 639-1 + /// representation of a language. + /// For example, use "en" for English; "es" for Spanish etc., + /// Unique, non-empty document identifier. + public MultiLanguageInputV2(string language = default(string), string id = default(string), string text = default(string)) + { + Language = language; + Id = id; + Text = text; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets this is the 2 letter ISO 639-1 representation of a + /// language. + /// For example, use "en" for English; "es" for Spanish etc., + /// + [JsonProperty(PropertyName = "language")] + public string Language { get; set; } + + /// + /// Gets or sets unique, non-empty document identifier. + /// + [JsonProperty(PropertyName = "id")] + public string Id { get; set; } + + /// + /// + [JsonProperty(PropertyName = "text")] + public string Text { get; set; } + + } +} diff --git a/src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/SentimentBatchResultItemV2.cs b/src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/SentimentBatchResultItemV2.cs new file mode 100644 index 000000000000..1fb51956b4da --- /dev/null +++ b/src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/SentimentBatchResultItemV2.cs @@ -0,0 +1,61 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Language.TextAnalytics.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Language; + using Microsoft.CognitiveServices.Language.TextAnalytics; + using Newtonsoft.Json; + using System.Linq; + + public partial class SentimentBatchResultItemV2 + { + /// + /// Initializes a new instance of the SentimentBatchResultItemV2 class. + /// + public SentimentBatchResultItemV2() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the SentimentBatchResultItemV2 class. + /// + /// A decimal number between 0 and 1 denoting the + /// sentiment of the document. + /// A score above 0.7 usually refers to a positive document while a + /// score below 0.3 normally has a negative connotation. + /// Mid values refer to neutral text. + /// Unique document identifier. + public SentimentBatchResultItemV2(double? score = default(double?), string id = default(string)) + { + Score = score; + Id = id; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets a decimal number between 0 and 1 denoting the + /// sentiment of the document. + /// A score above 0.7 usually refers to a positive document while a + /// score below 0.3 normally has a negative connotation. + /// Mid values refer to neutral text. + /// + [JsonProperty(PropertyName = "score")] + public double? Score { get; set; } + + /// + /// Gets or sets unique document identifier. + /// + [JsonProperty(PropertyName = "id")] + public string Id { get; set; } + + } +} diff --git a/src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/SentimentBatchResultV2.cs b/src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/SentimentBatchResultV2.cs new file mode 100644 index 000000000000..363b537b84bc --- /dev/null +++ b/src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/Models/SentimentBatchResultV2.cs @@ -0,0 +1,51 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Language.TextAnalytics.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Language; + using Microsoft.CognitiveServices.Language.TextAnalytics; + using Newtonsoft.Json; + using System.Collections; + using System.Collections.Generic; + using System.Linq; + + public partial class SentimentBatchResultV2 + { + /// + /// Initializes a new instance of the SentimentBatchResultV2 class. + /// + public SentimentBatchResultV2() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the SentimentBatchResultV2 class. + /// + public SentimentBatchResultV2(IList documents = default(IList), IList errors = default(IList)) + { + Documents = documents; + Errors = errors; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// + [JsonProperty(PropertyName = "documents")] + public IList Documents { get; set; } + + /// + /// + [JsonProperty(PropertyName = "errors")] + public IList Errors { get; set; } + + } +} diff --git a/src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/TextAnalyticsAPI.cs b/src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/TextAnalyticsAPI.cs new file mode 100644 index 000000000000..130921c53d8e --- /dev/null +++ b/src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/TextAnalyticsAPI.cs @@ -0,0 +1,637 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Language.TextAnalytics +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Language; + using Microsoft.Rest; + using Microsoft.Rest.Serialization; + using Models; + using Newtonsoft.Json; + using System.Collections; + using System.Collections.Generic; + using System.Net; + using System.Net.Http; + using System.Threading; + using System.Threading.Tasks; + + /// + /// The Text Analytics API is a suite of text analytics web services built + /// with best-in-class Microsoft machine learning algorithms. + /// The API can be used to analyze unstructured text for tasks such as + /// sentiment analysis, key phrase extraction and language detection. + /// No training data is needed to use this API; just bring your text data. + /// This API uses advanced natural language processing techniques to + /// deliver best in class predictions. + /// + /// Further documentation can be found in + /// https://docs.microsoft.com/en-us/azure/cognitive-services/text-analytics/overview + /// + public partial class TextAnalyticsAPI : ServiceClient, ITextAnalyticsAPI + { + /// + /// The base URI of the service. + /// + internal string BaseUri {get; set;} + + /// + /// Gets or sets json serialization settings. + /// + public JsonSerializerSettings SerializationSettings { get; private set; } + + /// + /// Gets or sets json deserialization settings. + /// + public JsonSerializerSettings DeserializationSettings { get; private set; } + + /// + /// Supported Azure regions for Cognitive Services endpoints + /// + public string AzureRegion { get; private set; } + + /// + /// Subscription key in header + /// + public string SubscriptionKey { get; set; } + + /// + /// Initializes a new instance of the TextAnalyticsAPI class. + /// + /// + /// Optional. The delegating handlers to add to the http client pipeline. + /// + public TextAnalyticsAPI(params DelegatingHandler[] handlers) : base(handlers) + { + Initialize(); + } + + /// + /// Initializes a new instance of the TextAnalyticsAPI class. + /// + /// + /// Optional. The http client handler used to handle http transport. + /// + /// + /// Optional. The delegating handlers to add to the http client pipeline. + /// + public TextAnalyticsAPI(HttpClientHandler rootHandler, params DelegatingHandler[] handlers) : base(rootHandler, handlers) + { + Initialize(); + } + + /// + /// An optional partial-method to perform custom initialization. + /// + partial void CustomInitialize(); + /// + /// Initializes client properties. + /// + private void Initialize() + { + BaseUri = "https://{azureRegion}.api.cognitive.microsoft.com/text/analytics"; + AzureRegion = "westus"; + SerializationSettings = new JsonSerializerSettings + { + Formatting = Newtonsoft.Json.Formatting.Indented, + DateFormatHandling = Newtonsoft.Json.DateFormatHandling.IsoDateFormat, + DateTimeZoneHandling = Newtonsoft.Json.DateTimeZoneHandling.Utc, + NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore, + ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Serialize, + ContractResolver = new ReadOnlyJsonContractResolver(), + Converters = new List + { + new Iso8601TimeSpanConverter() + } + }; + DeserializationSettings = new JsonSerializerSettings + { + DateFormatHandling = Newtonsoft.Json.DateFormatHandling.IsoDateFormat, + DateTimeZoneHandling = Newtonsoft.Json.DateTimeZoneHandling.Utc, + NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore, + ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Serialize, + ContractResolver = new ReadOnlyJsonContractResolver(), + Converters = new List + { + new Iso8601TimeSpanConverter() + } + }; + CustomInitialize(); + } + /// + /// The API returns a list of strings denoting the key talking points in the + /// input text. + /// We employ techniques from Microsoft Office's sophisticated Natural Language + /// Processing toolkit. + /// See the <a + /// href="https://docs.microsoft.com/en-us/azure/cognitive-services/text-analytics/overview#supported-languages">Text + /// Analytics Documentation</a> for details about the languages that are + /// supported by key phrase extraction. + /// + /// + /// Collection of documents to analyze. Documents can now contain a language + /// field to indicate the text language + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task> KeyPhrasesWithHttpMessagesAsync(MultiLanguageBatchInputV2 input, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (SubscriptionKey == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.SubscriptionKey"); + } + if (input == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "input"); + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("input", input); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "KeyPhrases", tracingParameters); + } + // Construct URL + var _baseUrl = BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "v2.0/keyPhrases"; + _url = _url.Replace("{azureRegion}", AzureRegion); + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("POST"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (SubscriptionKey != null) + { + if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) + { + _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); + } + _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", SubscriptionKey); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + if(input != null) + { + _requestContent = SafeJsonConvert.SerializeObject(input, SerializationSettings); + _httpRequest.Content = new StringContent(_requestContent, System.Text.Encoding.UTF8); + _httpRequest.Content.Headers.ContentType =System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json; charset=utf-8"); + } + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new ErrorResponseException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + ErrorResponse _errorBody = SafeJsonConvert.DeserializeObject(_responseContent, DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + // Deserialize Response + if ((int)_statusCode == 200) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + _result.Body = SafeJsonConvert.DeserializeObject(_responseContent, DeserializationSettings); + } + catch (JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); + } + } + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + /// + /// The API returns the detected language and a numeric score between 0 and 1. + /// Scores close to 1 indicate 100% certainty that the identified language is + /// true. + /// A total of 120 languages are supported. + /// + /// + /// Collection of documents to analyze. + /// + /// + /// (Optional. Deprecated) Number of languages to detect. Set to 1 by default. + /// Irrespective of the value, the language with the highest score is returned. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task> DetectLanguageWithHttpMessagesAsync(BatchInputV2 input, int? numberOfLanguagesToDetect = default(int?), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (SubscriptionKey == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.SubscriptionKey"); + } + if (input == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "input"); + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("input", input); + tracingParameters.Add("numberOfLanguagesToDetect", numberOfLanguagesToDetect); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "DetectLanguage", tracingParameters); + } + // Construct URL + var _baseUrl = BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "v2.0/languages"; + _url = _url.Replace("{azureRegion}", AzureRegion); + List _queryParameters = new List(); + if (numberOfLanguagesToDetect != null) + { + _queryParameters.Add(string.Format("numberOfLanguagesToDetect={0}", System.Uri.EscapeDataString(SafeJsonConvert.SerializeObject(numberOfLanguagesToDetect, SerializationSettings).Trim('"')))); + } + if (_queryParameters.Count > 0) + { + _url += "?" + string.Join("&", _queryParameters); + } + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("POST"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (SubscriptionKey != null) + { + if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) + { + _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); + } + _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", SubscriptionKey); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + if(input != null) + { + _requestContent = SafeJsonConvert.SerializeObject(input, SerializationSettings); + _httpRequest.Content = new StringContent(_requestContent, System.Text.Encoding.UTF8); + _httpRequest.Content.Headers.ContentType =System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json; charset=utf-8"); + } + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new ErrorResponseException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + ErrorResponse _errorBody = SafeJsonConvert.DeserializeObject(_responseContent, DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + // Deserialize Response + if ((int)_statusCode == 200) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + _result.Body = SafeJsonConvert.DeserializeObject(_responseContent, DeserializationSettings); + } + catch (JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); + } + } + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + /// + /// The API returns a numeric score between 0 and 1. + /// Scores close to 1 indicate positive sentiment, while scores close to 0 + /// indicate negative sentiment. + /// Sentiment score is generated using classification techniques. + /// The input features to the classifier include n-grams, features generated + /// from part-of-speech tags, and word embeddings. + /// See the <a + /// href="https://docs.microsoft.com/en-us/azure/cognitive-services/text-analytics/overview#supported-languages">Text + /// Analytics Documentation</a> for details about the languages that are + /// supported by sentiment analysis. + /// + /// + /// Collection of documents to analyze. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task> SentimentWithHttpMessagesAsync(MultiLanguageBatchInputV2 input, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (SubscriptionKey == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.SubscriptionKey"); + } + if (input == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "input"); + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("input", input); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "Sentiment", tracingParameters); + } + // Construct URL + var _baseUrl = BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "v2.0/sentiment"; + _url = _url.Replace("{azureRegion}", AzureRegion); + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("POST"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (SubscriptionKey != null) + { + if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) + { + _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); + } + _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", SubscriptionKey); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + if(input != null) + { + _requestContent = SafeJsonConvert.SerializeObject(input, SerializationSettings); + _httpRequest.Content = new StringContent(_requestContent, System.Text.Encoding.UTF8); + _httpRequest.Content.Headers.ContentType =System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json; charset=utf-8"); + } + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new ErrorResponseException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + ErrorResponse _errorBody = SafeJsonConvert.DeserializeObject(_responseContent, DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + // Deserialize Response + if ((int)_statusCode == 200) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + _result.Body = SafeJsonConvert.DeserializeObject(_responseContent, DeserializationSettings); + } + catch (JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); + } + } + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + } +} diff --git a/src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/TextAnalyticsAPIExtensions.cs b/src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/TextAnalyticsAPIExtensions.cs new file mode 100644 index 000000000000..d8dfcc663f2f --- /dev/null +++ b/src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language/Generated/TextAnalytics/TextAnalyticsAPIExtensions.cs @@ -0,0 +1,169 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Language.TextAnalytics +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Language; + using Models; + using System.Threading; + using System.Threading.Tasks; + + /// + /// Extension methods for TextAnalyticsAPI. + /// + public static partial class TextAnalyticsAPIExtensions + { + /// + /// The API returns a list of strings denoting the key talking points in the + /// input text. + /// We employ techniques from Microsoft Office's sophisticated Natural Language + /// Processing toolkit. + /// See the <a + /// href="https://docs.microsoft.com/en-us/azure/cognitive-services/text-analytics/overview#supported-languages">Text + /// Analytics Documentation</a> for details about the languages that are + /// supported by key phrase extraction. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Collection of documents to analyze. Documents can now contain a language + /// field to indicate the text language + /// + public static KeyPhraseBatchResultV2 KeyPhrases(this ITextAnalyticsAPI operations, MultiLanguageBatchInputV2 input) + { + return operations.KeyPhrasesAsync(input).GetAwaiter().GetResult(); + } + + /// + /// The API returns a list of strings denoting the key talking points in the + /// input text. + /// We employ techniques from Microsoft Office's sophisticated Natural Language + /// Processing toolkit. + /// See the <a + /// href="https://docs.microsoft.com/en-us/azure/cognitive-services/text-analytics/overview#supported-languages">Text + /// Analytics Documentation</a> for details about the languages that are + /// supported by key phrase extraction. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Collection of documents to analyze. Documents can now contain a language + /// field to indicate the text language + /// + /// + /// The cancellation token. + /// + public static async Task KeyPhrasesAsync(this ITextAnalyticsAPI operations, MultiLanguageBatchInputV2 input, CancellationToken cancellationToken = default(CancellationToken)) + { + using (var _result = await operations.KeyPhrasesWithHttpMessagesAsync(input, null, cancellationToken).ConfigureAwait(false)) + { + return _result.Body; + } + } + + /// + /// The API returns the detected language and a numeric score between 0 and 1. + /// Scores close to 1 indicate 100% certainty that the identified language is + /// true. + /// A total of 120 languages are supported. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Collection of documents to analyze. + /// + /// + /// (Optional. Deprecated) Number of languages to detect. Set to 1 by default. + /// Irrespective of the value, the language with the highest score is returned. + /// + public static LanguageBatchResultV2 DetectLanguage(this ITextAnalyticsAPI operations, BatchInputV2 input, int? numberOfLanguagesToDetect = default(int?)) + { + return operations.DetectLanguageAsync(input, numberOfLanguagesToDetect).GetAwaiter().GetResult(); + } + + /// + /// The API returns the detected language and a numeric score between 0 and 1. + /// Scores close to 1 indicate 100% certainty that the identified language is + /// true. + /// A total of 120 languages are supported. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Collection of documents to analyze. + /// + /// + /// (Optional. Deprecated) Number of languages to detect. Set to 1 by default. + /// Irrespective of the value, the language with the highest score is returned. + /// + /// + /// The cancellation token. + /// + public static async Task DetectLanguageAsync(this ITextAnalyticsAPI operations, BatchInputV2 input, int? numberOfLanguagesToDetect = default(int?), CancellationToken cancellationToken = default(CancellationToken)) + { + using (var _result = await operations.DetectLanguageWithHttpMessagesAsync(input, numberOfLanguagesToDetect, null, cancellationToken).ConfigureAwait(false)) + { + return _result.Body; + } + } + + /// + /// The API returns a numeric score between 0 and 1. + /// Scores close to 1 indicate positive sentiment, while scores close to 0 + /// indicate negative sentiment. + /// Sentiment score is generated using classification techniques. + /// The input features to the classifier include n-grams, features generated + /// from part-of-speech tags, and word embeddings. + /// See the <a + /// href="https://docs.microsoft.com/en-us/azure/cognitive-services/text-analytics/overview#supported-languages">Text + /// Analytics Documentation</a> for details about the languages that are + /// supported by sentiment analysis. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Collection of documents to analyze. + /// + public static SentimentBatchResultV2 Sentiment(this ITextAnalyticsAPI operations, MultiLanguageBatchInputV2 input) + { + return operations.SentimentAsync(input).GetAwaiter().GetResult(); + } + + /// + /// The API returns a numeric score between 0 and 1. + /// Scores close to 1 indicate positive sentiment, while scores close to 0 + /// indicate negative sentiment. + /// Sentiment score is generated using classification techniques. + /// The input features to the classifier include n-grams, features generated + /// from part-of-speech tags, and word embeddings. + /// See the <a + /// href="https://docs.microsoft.com/en-us/azure/cognitive-services/text-analytics/overview#supported-languages">Text + /// Analytics Documentation</a> for details about the languages that are + /// supported by sentiment analysis. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Collection of documents to analyze. + /// + /// + /// The cancellation token. + /// + public static async Task SentimentAsync(this ITextAnalyticsAPI operations, MultiLanguageBatchInputV2 input, CancellationToken cancellationToken = default(CancellationToken)) + { + using (var _result = await operations.SentimentWithHttpMessagesAsync(input, null, cancellationToken).ConfigureAwait(false)) + { + return _result.Body; + } + } + + } +} diff --git a/src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language/Microsoft.CognitiveServices.Language.csproj b/src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language/Microsoft.CognitiveServices.Language.csproj new file mode 100644 index 000000000000..58bb38e8c715 --- /dev/null +++ b/src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language/Microsoft.CognitiveServices.Language.csproj @@ -0,0 +1,24 @@ + + + + Microsoft.CognitiveServices.Language + This client library provides access to the Microsoft Cognitive Services Language APIs. + 1.0.0 + $(DefineConstants);CODESIGN + true + Microsoft.CognitiveServices.Language + Microsoft Cognitive Services;Cognitive Services;Cognitive Services SDK;Text Analytics API;Text Analytics;REST HTTP client;netcore451511 + This is a preview release of the Cognitive Services Language SDK. Included with this release is support for Text Analytics API. + bin\$(Configuration)\$(TargetFramework)\$(AssemblyName).xml + + + + net452;netstandard1.4 + + + + + + + + \ No newline at end of file diff --git a/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision.Tests/BaseTests.cs b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision.Tests/BaseTests.cs new file mode 100644 index 000000000000..ed03671411aa --- /dev/null +++ b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision.Tests/BaseTests.cs @@ -0,0 +1,31 @@ +using Microsoft.CognitiveServices.Vision.Face; +using System; +using System.Net.Http; + +namespace FaceSDK.Tests +{ + public abstract class BaseTests + { + public static bool IsTestTenant = false; + private static string SubscriptionKey = ""; + private static string Region = null; + + static BaseTests() + { + // Retrieve the configuration information. + SubscriptionKey = ""; + // Environment.SetEnvironmentVariable("AZURE_TEST_MODE", "Record"); + Region = "WestUS"; + } + + protected IFaceAPI GetClient(DelegatingHandler handler) + { + IFaceAPI client; + client = new FaceAPI(handlers: handler); + client.AzureRegion1 = Region; + client.SubscriptionKey = SubscriptionKey; + + return client; + } + } +} diff --git a/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision.Tests/FaceDetectionTests.cs b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision.Tests/FaceDetectionTests.cs new file mode 100644 index 000000000000..a677c56c135a --- /dev/null +++ b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision.Tests/FaceDetectionTests.cs @@ -0,0 +1,30 @@ +using Microsoft.Azure.Test.HttpRecorder; +using Microsoft.CognitiveServices.Vision.Face; +using Microsoft.CognitiveServices.Vision.Face.Models; +using Microsoft.Rest.ClientRuntime.Azure.TestFramework; +using System; +using System.Collections.Generic; +using System.IO; +using Xunit; + +namespace FaceSDK.Tests +{ + public class FaceDetectionTests : BaseTests + { + [Fact] + public void FaceDetection() + { + using (MockContext context = MockContext.Start(this.GetType().FullName)) + { + HttpMockServer.Initialize(this.GetType().FullName, "FaceDetection"); + + IFaceAPI client = GetClient(HttpMockServer.CreateInstance()); + using (FileStream stream = new FileStream("TestImages\\detection1.jpg", FileMode.Open)) + { + IList faceList = client.Face.DetectInStream(stream); + Assert.Equal(1, faceList.Count); + } + } + } + } +} diff --git a/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision.Tests/Microsoft.CognitiveServices.Vision.Tests.csproj b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision.Tests/Microsoft.CognitiveServices.Vision.Tests.csproj new file mode 100644 index 000000000000..74e9d3c1dd27 --- /dev/null +++ b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision.Tests/Microsoft.CognitiveServices.Vision.Tests.csproj @@ -0,0 +1,35 @@ + + + + Microsoft.CognitiveServices.Vision.Tests + Microsoft.CognitiveServices.Vision.Tests Class Library + Microsoft.CognitiveServices.Vision.Tests + 1.0.0-preview + + + + netcoreapp1.1 + + + + + + + + + + PreserveNewest + + + Always + + + Always + + + + + + + + diff --git a/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision.Tests/SessionRecords/FaceSDK.Tests.FaceDetectionTests/FaceDetection.json b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision.Tests/SessionRecords/FaceSDK.Tests.FaceDetectionTests/FaceDetection.json new file mode 100644 index 000000000000..f9f22ecdced2 --- /dev/null +++ b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision.Tests/SessionRecords/FaceSDK.Tests.FaceDetectionTests/FaceDetection.json @@ -0,0 +1,64 @@ +{ + "Entries": [ + { + "RequestUri": "/face/v1.0/detect?returnFaceId=true&returnFaceLandmarks=false", + "EncodedRequestUri": "L2ZhY2UvdjEuMC9kZXRlY3Q/cmV0dXJuRmFjZUlkPXRydWUmcmV0dXJuRmFjZUxhbmRtYXJrcz1mYWxzZQ==", + "RequestMethod": "POST", + "RequestBody": "����\u0000\u0010JFIF\u0000\u0001\u0001\u0001\u0000\u0000\u0000\u0000\u0000\u0000��\u0000\u000eAdobe\u0000d\u0000\u0000\u0000\u0000\u0001��\u0000C\u0000\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0002\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003��\u0000C\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0002\u0001\u0001\u0002\u0002\u0002\u0001\u0002\u0002\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003��\u0000\u0011\b\u0002�\u0003�\u0003\u0000\u0011\u0000\u0001\u0011\u0001\u0002\u0011\u0001��\u0000\u001f\u0000\u0000\u0000\u0007\u0001\u0001\u0001\u0001\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0004\u0005\u0003\u0002\u0006\u0001\u0000\u0007\b\t\n\u000b��\u0000�\u0010\u0000\u0002\u0001\u0003\u0003\u0002\u0004\u0002\u0006\u0007\u0003\u0004\u0002\u0006\u0002s\u0001\u0002\u0003\u0011\u0004\u0000\u0005!\u00121AQ\u0006\u0013a\"q�\u00142��\u0007\u0015�B#�R��3\u0016b�$r��%C4S���cs�5D'���6\u0017Tdt���\b&�\t\n\u0018\u0019��EF��V�U(\u001a�������eu��������fv��������7GWgw��������8HXhx��������)9IYiy��������*:JZjz����������\u0000\u001f\u0001\u0000\u0002\u0002\u0003\u0001\u0001\u0001\u0001\u0001\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0001\u0000\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b��\u0000�\u0011\u0000\u0002\u0002\u0001\u0002\u0003\u0005\u0005\u0004\u0005\u0006\u0004\b\u0003\u0003m\u0001\u0000\u0002\u0011\u0003\u0004!\u00121A\u0005Q\u0013a\"\u0006q��2���\u0014���#B\u0015Rbr�3$4C�\u0016�S%�c��\u0007s�5�D�\u0017T�\b\t\n\u0018\u0019&6E\u001a'dtU7��()��󄔤�����eu��������FVfv��������GWgw��������8HXhx��������9IYiy��������*:JZjz����������\u0000\u0004\u0000}��\u0000\f\u0003\u0000\u0000\u0001\u0011\u0002\u0011\u0000?\u0000�3kmESN��J���#5\nS�x(�i�P�����\t�0�n\u0007n�qN�k橊E�P\u0002>�� \u000e�\u001b�񭘙w&1�*\nҜiR?g�\u001c�\u001a݈��\u0015\u001c{���n���m��\";�ɕ��\u0001ۭv뷷�+��\u0004�B�Z�jS�_\r�Q�E���\u0005\f)Jm�A����\u0007�A�B \u001cv\u001b֣��Ⴞ�&²���P��\u001a���U\"�\u0010\u0003��o�q�mz�k��w��\u001c\u001b���J���n�N\n��KR]�R�+�J����\rmK�H\u0013Q�iR+ңz{�*1���6��V���\u0015\u0000\u001f\u0003�q\u0011��\u0016�?\u0017M�A\u0003z{�\n�?r\\d�m��oA��׮\u0003Γj~�bi�ۮ�\u0000ۃ��EH�:mو\u001d\u0001�'��Rou/\\\u0003Z�=��~�v#��EuQ{���N�\u001b���9\u001b\u001c�����Ѿ���O\u001c���ע\u0011���\"�����\u0001$��\n�dW~�a����f$�k$\f׃}�u\u001e>\u0004x\n�{���W5�\u0003V�����\u0015Ȓz����H�o�؂{қ�t��\u0012Y�w\u0017�\u0012=�^��M��#j\r�Hno���k��\u0003�\u001c�S�9#ܖ5�~��\u0000�ޙ�eIr�P>*\u001a{u;u��v�\u000ew;\r�{�\u0003l\u0007r\u0013;w�\u000e�\u001dz�cO\u0003�\u0014�~�Qbz\u001a\u0003�ׯ�ڽ|0�hg:\t�\u0000r\u0016�\u0004\u000fQ}�\u0007j�8dH�k���}����\u001f\u000e+��'��a�ד���џj��\u001dv\u001fgƒ�y��\u000e\u001e*\u0007����0\r���*\r<\u0006�\u0000F\u001c|����v\u0003��`=\b�\u000f�Q�js7���#\u0010~\u0003���\u001eHTp87��o�%[n�^\u0001��)mq���\u0000\u001cĐ�v���\u000f�\u0018������\u0000\u0004r�\u000f@��[�Ccڿ,�\u0004\u001f.m�?���\u0000o\u0013��.ç�6�~8V�\u0002=�t����oj耼ң��c�k�*��\u001e=:\u000fq��:�\u0014\u001e\u001e�a����\u0003�������\u0014�w%A�)_����P7�!��\u000f�\u0007�|:俇ɍu\u000b�<6\u001fG���Ȼ�\u0019\u000eK�6\u001f��&\b�ݍ_Ծ�S�m��ôA�E�)_��~]��\u001e(��;���\u0014����\u0003�\u0002(o��\u0000Bi��+Ԟ�\u0015��1\u0012$�a~�\u0007�7\u001d;{\u001e�x�7$Z\u000fr\nS��\u0006�dF��ݏ8���\u0011��n;�9\u0019�\u0005 \u0000��x�2\r�����g'� \u0017;\u0017�o0�;��އ���g6h\u001f{�\u0006�^��?�Vn���=�P~��6\u001d�?{.�\t��S��\u0000��.����7�\u001bg]\u0001�\u0004󴝹���g���\u0012s'\u00106\u0003Y�p\u0006�\u0000�A_s��kZZ����\u0000\u001cy*�Q����rB�Q\u0000�\u001e>�\u001fH\u0018U\u0019\u001fnĚ�}��qTS�\u0000q/���t�ƻ�����0�E�\u0000'�\u0015�ᚽl\u0001��)�1\u0002\u001eo���^;Sa�}���i�\u0003�\u00176�p�\u00129�->Y@Q���z�^�9,��A�I\u0007�\u000b%�,\u00004���o\n\f�N��7%5�~\u0000o�\u0002���eЍn��r����ӿ��{�䪏�\r�>\u000b�j�]\u001d��\u0010�\u0016\u001aI�e\u0014.�`I�����Hz�u\nYu�\u001fH��$S�@���>-�(\u000e!�\u0005{�-�C�>>��a���~Rd~nn3Gw�\u000f�\u0014��6_�1�L�{ V\b�Sl���}�i'���\u001cގM$ٴp�����R����\u0000o�\r\u0002-U�\u0006���X\u0005���SS���\u0000�ڽ��A�&Q�O\u001a���N�\u0003�����\u0000:�\u0019E������\u0000�~\u001f�-3��?��潵�x�\u0000�\u0003���6�������\u000f�Q\u001f�@t�L�;;��� �`\u0001of�����3q���a_���wƾJ7@_�@kN��\u0019\u000fM\u000e��.[<{_?�+@I'�)N�뒌w�\u0007)ޘ���חc��)�������4֋Ƣ�����Ӧ4)\u001c���!X�*\u0006�\u0000��dLz%+d�\"������=6\u0007(�o�4�\u0002Jq�R>U��P?\u0001�ef\u0014~��\\���I�(��74�o\u001c�Rot\b\u001c�N��j\u001ax���z���6��^������dI�z�\n��/�M\u0005��9nŀ�>�\u001af\u001c�*��\u001c�ѲXDP\u001e S�Õ?\u000e�)1��\u0006�6���GT+Ŗ�w�\u000fS�\\�����J��n\u001a�@\r��F��(\u0006D�)B��H��\u0014ҽ:��\u0007�V~����\u001ea�\u0003�P\u0003BH\u0000T��\u001e4�Dm��G����ao\bdQM�/~��A�o��T�O#���N�k�Z\u001e�\u0015ø(M �\u001a�\u001dz�{�w�0��c�mQ�r>_�\u0007=�\nGF��Fԯ^�x{t�WzE�#@i�Z\u001f��\u0019\u0013ܶ�X��}�n�H�r�\u000e{�\u0014��\u000e����\"���ҔҢ�\u0010iӡ��|b\u0002\u0002 oM����\u0000G\\@���\u000fZ�����n��tE|����\u0002>C��N���#e .��kM��ԁ��l\u0004t\b�4[�����S�ݲ>J��w'�>��\u0004b\u0010�XTm�7��\u000f�\u0003�+K�~������\u00015��\t\u0006�\u001f�$\u001e���R0]��ɢ\u0014�P;Ԁz~\u0014�<�}�\u0006a�\u000fj�ޝk�#\"\u0000ݗ\tC=����[���l�\u0019+]T\r����k_\n\u000f��2昍��q�^�F�\u0010h#�\u0015��;�\u001d�۷��p\u0012J�!$��n�(w�>��|�\u0015l�;�2^R�a�rk�|���)*���\t��m���YH\u001d�4��w�'�v�B|r$�)\t-��k�����;ӾW攖[�~��#��dL�}�;�����\u0002N�\u001d��1��\u00147\u0000�ӭG�v������TB0������G���\u0012\u0005�E�ֽ�v����\u000f�|\u0016��M�N���\u0014�ݶ\u0000o���_b��'�k�oo\u0002v�#��A�ۓ;�V���\u001f��\u0006������k\u0004�5�����_�<u�_�)�喋\u0019)�j*��g���\u0000G\u001e==�\u0000Ι���Ap�\u0003\u0012^��a�[Z��R�ă�>������_O�\u000f��N�\u0003홣}�s�F\"ҕ\u001f��\u001c���2�-Z���_��c������\u0000�%�n<(�|���L��a���>7f��\u0015��>tc���,��\u000f�u��}��zo�{W\u0006\u0014�(V�<,F��|��\u0014���l\u0000�^\u001bm�\u0000ڮ�vOjߚ\u0005�r�]�������\u0000��V�w�½�\u001aB��n��;{\u001a�5�Gin�aP5~�\u0000\u001dϿ�J&ϒ?Z�n��I�]O�8o%؏5��|���{�^J���\u000f��\u001f�\u001d���u>����\u0015<׆\u001d\u0001�'������Հ���}|\u00052Vk����x=�)��zm�J�ߘ_%�Ƿ���0z��E��\u0007���>�\u001fF\u001e3�2贵w�~>>#\t=\bby\u001e�\u0017n�����Dէ�@����{d��݀�]Rk��\u001b�����4��\u0002OPʏW�����4���#��h�73\t����ݽ��;��;\u001c�\\��\u001fȶ��/�g\u001b���sa�F�J����+�\u001b���_�v��Z�κ\u0004\fbՕ��>[��A�8��s��\u0006�\u0002�#O���3@�`��\u0000��{�1��4ү��o��5��8���7�:>\u0007�P;vއj~��SC����\u001cg�v?�v�y\u0019�M&&���S^��{��ž=���\u0013��7ע)��z�_�ˆ0#]wb\b�ꁖ���;\u001aҔ��z�f�o�2�\t���\u0002��b\b\u001e��+���&�f�?\\�\u0000z֪7߹�ʦ\u0001��-�i\u000f{vD}�E~�s�\u0004�@V��I��c��\u0000O�W��#ۭ\u0007�`����͈��G�W����:E��?��S�l�;'���$���ͤ�ыz|#���z\u0018�~H���^�?�=��5WI+��\u0000�l\u0016\u0015\u0016�\r�θw*{�+\u0002�G��=��Y��<�=����u־��ߡ�|��\u0016[�/�\u000f=��ť���w�ϰ����\u001f���\u001c�CbGs�[�\u0003��\u0011J\u001bt�]�\u0011��λ�w�}�2w�{A\u001f��}�uL\u0016�����G\u0000]��DV\u0012>g����Xˑx����\u0001W�?����D|�\u001c�Ԕ����Z����6h恻`�\n��n��\u0001!X���;\u0000(~���z�����o���?z&�)`�����Ȓ\u0007>I\u0000�Ȗ(�>�����R��\u0015��s\u001e����)%�e=)��~^�MSY����?,%*\bڣ��o|��>L�ӽlR�#���}>\u0018\u001a���S9_\t�1E�\u001b��[}�EOP7��|\u000eW]y��B�A\u001c|\b\u0014\u001b�J1\u001f�D�6��J���c$��4�=\u0014�\u0000fa�4k�!+�\u0017q,J�\u0004W�;}${e\u0004w�6q\u000f�\u001c���T�ܶ<����\u0019\n\u0000l��[�܁j\u0010�\u0000dt�w\u0019Q��96\u000eH]`G\u001cm�Q�}�\u001bt�'�ߐ�Βe�<�T\u001e��\u0011�������'�F�z�o����c\u0018!y\u00054P(G^��\u001bf�S��ƞ�\u0007���j\u000e؄&\u0011(S҆�;\u000e������$�R\u0001S@;u�<\b\u001bnq\b�lB�Px�Q�1M��}����\r�0\u000e�\u0015~�\u0005=�;w�4�m�@������\u001fö\u001e�m\u0002��Б����\u0015TS۷m����\u0018����{���{\u0002\u001c��PW\u0013�k�v\u0015��t�r$�o�/{\\[�:R����o�\u0005�}�E��=���qR)i�{x�ԏ�Z�B��ޣzx|��� y�\u0015I�ޕ]�G���;2\u0015Hc7�ߩ;\u001a\u0001㑵�>Hv�\u001aқ���F\u0002m#�B4�'�\rj{׶TH\"�\u001f$$��M\b?��鐫�Ğ�<�45�z��X\u0019y�%�\u0015�|G�E>�\fJ�P�t7�c���|��sZ�\f�b�\u001d鷀\u0007�zo�\"LJ�\u001e�[��T��~^�G�VK-�\t=��]�4\u001b�\u0006�\u0004dI�%%���v�����#�T�Y�mS����xR�\u0012/��K��H���~����\u0002<й@�ԝ��\u0002����+�\u0017a[ \n�\u001bv\u001f>����\u0017�Z]�ߨ\u001e�\u001e�e[tg\u0010����zx��ҧ��#��I�+\u001c��2y\u0001��O�;|�@wsb\r3]:��ڂ���>@e���|އ��\u0006�؁��v�;|[�~Y.\u0010$8�ڦo\u0019�>��PD{�\u001fu;���\u0002�}\u001eS�͛j�\u0016�?��3#5p�p��\u0000x@�{w�i����?��\u000e*ؽ.�|`\u000eo�������\u0000:f�t�9�������\u0003\u0011�Us��?�j��\u000e�\u0000�Uxo�|BW�\u001f�}�~\u001ba��P=)Ju\u0003��\u000e�1DP���N�>��\u001d0�\u0003�\u000b�����=:�\u0007k\u000b@*\u0006�_-���1ލ�˃PR��zct��u����\u00001N�B�\u000f�\u0014�\b�Eq^axq�\u001d��sO�\u0018�4\u0013Axq����\u0000\u001e���\u001c��^\u001b������R�n�,k�/\f\u000f�\u0006���\u001f<'���{��Q�\u000e�?\u000f�\u0000���\u000f!�P��G�ݓ\u0013\u0000QM�AL�w�;{{�\u0015��ۚIx�W��v�Z��l��� $y�k��n���L�F�s��\u001eo/�m��֞�;o�9�\u000b��\u0007��E��'0=\u0004�Om�fò�\u0000���Oշs������ڜW�u�\u0017�{e�˭�\u000f����<���*�jo��\u0000:�sZ\u0001��\u0000�����T\u000e���<>�*�\u0012>�\u001ej�C����\b\n�b}\tw;����\u000f�_\u0018~�4��\u000e\u000fQۡ�v�v�~���VcQ\u000fϸ�\u001b����5\u001f÷:qA�h��S������\u0003Gn��6'Q���Os�\u0011Gvdƅ/��J�\u0011��\u0000?�\u0012Y\u0011P��D����O\u0013^����3�Q͇\u0011<��Gr��(7ߥz�;�c�L*�GEwV�[�\u0000�~��\"\u0004�\t�7�_ݨN���\u0000�i�s��@\n<܌`\u0010eՃ�{�T���t����l���6\"�~��<^\u0016Ҭ�z$u�\u001fNtݕ q\n�^�\u0007ܖw\u001f��}���\r�a�4I�o��늢�j��\u0000>��B\u0011q�^�Y�uUy~\u0013����\n�bz<�ϭ]>�\u0015��S�NU��w��r~0y�\u0000o�\r3�j@{�ߍ3�{v�a|�@��\"��O�o��]\u0003O�\u0000�x�\u0000�#:��?���1�v��f婪b�PZ���\u001e�߷�ĢGg�y�C\u001d���O��\u0003��\u001fW�M\u0014�\u0012�Pu\u001d��9-�P�H\u001b�\u0003�e���v돚�2\u000eL�\r{��\u0000a\u0003\u0005u_�\b�N��\u0000��\u001f5ij�+����\u0000�r\u0004uH'�yk=\u0000\u001d@ڇ��q��\u0000��Ď�‚Jֆ�=@�z�0\u0013��!���֨\u0001��A �\u0000�M�'�$_6+2\u00154�ÿo\u000f��8\u0004A\u0014y��_\u0004�d5��Ԝ�W�\ts��nթ�\u00000i��W�$r�%���\u0000���]��F�u]�+��2�n[W���r��B%�*�/�z��~x\u000f.�@]���\u0005$�0�� W�>��+ \r��DȐ\u0007Ҍ�B����F��\r��7땚;7r��H�����\b�/tZ���\u001a��\u0011��G��{˝PH�bZ�:)\u0000�oڴ#}�FB_U��F��z\u0019%&���?�׷�Q�!botc�HT\u0003��O�~����ٰI.2\u0015zһ�>^\u0007�|�Q5��\u0014t7<�^LU@5�����'�h���/�g�\u001bq<��\u0003ʿ�J�L\u0005�)�wsϮ���\u0011N[�'�\u0007����n�T؃E=7\u000b�\u000f��X�\u0010�ą�P\u0003P7���F\u0011�\u00052P{J��N#f5�\"�\u0001�z���m�xm\b�\u001dGN���\u0004TkZ�\u001d��çs�d����P)���Ҕ�\n���M�\u0005+���~xk�\u0016\u001a\u0013Q�N�\u001e�W|n�w��C�)��A�W\u000f�\u0011�jw�\u0019\t\u001bB�ž�\r�:\u001c�B�`+�\u0007o�\u000e��Z��3���޾\u0003��C�Gw ��A��|iOoq�h}�s \rJ���j\u001f�\u0012�t��Ҏ�}���g�D�;�E\b�\u001a��k�۷_��D\u0010wA��\f�P�\u0011��C܎�\u0013D\u0012ʁB<�,\t���=�܁L���\tn7?�S�ڛc�\u0012�.{ףT�o����)|�]�7���\u0015ȓ���@Ksܟ\u001e�W�n�!)^�)|�Dt=(=�?~VM/4�{�WsSۡ�{u�Ri�����&�\n��<\u0006G�ʄ.N����JV�Ws�J�I=�\u0011���#Q��\u0007�h�4\u001b\u0013���W��A\u0000�E�Y=�t��\u0007�EW�_\u0013Z҇��\u001dr��[�^��O\u0012<{TW�ʤ(�ɲ\"�\u001ej����\u000e��7���ё\u0000���g_\u0001J{t�}�1�11�nL�Kܯ��E{u=)�'\u001d��c1�z�#�\u0000L� o�7�bA�ݖ\u0000\t\u0006M9\u0007���}{�d���V��O���p>���5#o6U�\u000f�q�m����g\u001e�|�xǬ��������i�>\u0015����9wS�h?��7�ֿ�G��5�M�a� �;\u0004P������w;��~�;�5|���iks�l�\u0000�>c0�u�a�X�>&���Q�+���n�`��\u000b=\u001di\u0014O���o��>�e�\u0007�\u0004[��w���\u001d��ǐ�ipc�N��\u0007|n�J��c^�\u000fa��Hrے<���kO\u000e�ޟF�\u000fޫ�ץ\u000f�����\u001eI\\\u0018��}�o�\b粪\u0007�Jm��|i��cK�n\u000foz�>�\u001e\\��xr\u0007Z�\u0000����'v,�A^���#z�W\u0005ܖ�����w?}\u0007o�Y惰����o��zt��^���\b��c��\u0003\u00007�5|�\u0003�5;ֽ���\u0011�\u0005\u0004\n^\u001f��i��Pp�\u0000\u000b�o�������\u001d�U\u0007s�Jס#�_�q\b��>����+�7@L��zw�iZ�h!#���nk۽N��\u0000<��� ��\u001du�\u001c\r���\u000fs��h}7�w?\u0018��^6���\u0000oߜ�͹`l�\u001fȦ��/��\u0005~�|3?���\u001eD}��~\u000f�//�\u0000�>>��N�O�l�a��%'f[\u0007m��̬;o��y����'�f``�������8y+���\u001f4+��(?ν�Zc}�Wo�d�\u0000T׾L�\u0007�%�|_�\u00009\u0001�\u0000\u001c{����w�?�k�g�r&�4�\u001e��~w,�7�_�Ӛj��\t��SC�=~�\nd\r�C�!e�*+]�o�l��E�ݥ\u001c�>\u001e��S���\u001b�k��]\u0012Yҝ�w��\u0000o�0K�Zv���o��õy����ڴ�{�+P�\u0006\u0000ר�����\f�U�^��,�7\u0014\u0014�{���'�8s�sT�T԰�v��t\u001f!�\u001ed�o���\u0010�ڮ�v'�\u001fx�r$\t\u000b�\u0013�@B�5:\u000f�_�l��W�R�\\�R\u0018\u001a\u001a\u001e�۷m�\u0011�\u0013�\u001aA4��*Iɹ\u0002\u001b�]����Q�w��� �(�Go\r�\u0000\u000e����{�*�\u0016�aO�n���1ɾm���.����c\\�ݖ�\u0014\u0014�M���\u0000Ͽl�\u0000'�@\\�\u0014*z\u0011�\u0007��#!A!!d\u0001�Ew\u001e\u001bW��\u0019\u0003�P�\u0000����n��@�\u0004}�\u000e�;f�\r����\u0014�ێƒ��2]\u0010�T��m���~�\u000e\u0013�h�\u0004�?%�\u0001����l�J�Zv�@t;}�~�V�dZm�P�\u0007}���#}S��P\u0003Q�\u0013N�\u001f�)�\n���ɾ���T���\u0018w慄��F��M���\b��R�\u001b\u0016�����Q�\u000e��o2\u000f��j{t�e|�c�4\u001b࠭A#n�w�'�}����\rw��:�s�r*B��@kNǽk�pl�,�ޔ'�ޟ��\u00014���O��g�\u001bg\u001d�tB�IJ�_�\u000f���\u000bں�\"��G�v��^��Ss�s�\"e܊�\u0005$�kq���޻\u0011�\\��ܔ\f��Z�)�W����o�y���o��C�S��\u000b\n�KqJ��S�\u0005:О��@Ȏ�J���q�����\u0019\u0002m@��[�;��\u001d<=�\u0005K&�;�:n\t��w9\u0003�R�'�;����ད�t1vj\n�n�������*��~�\u001e����1U�mC�\u0013�:��0sV�m�<{�\u001faЂ2�B���\u0014W�ԑԁ��5�\u001d������S�=����d3�\u0007u�C�_\u0013�����\u001agJ�\u000f�$V���\u001a�9\u0003��)�������\u001f�F\u000ekv����$u���d�\u0016�+;�s�i[�m�}D�c�Y{�Zg�\u001fs�-CA\u0011\u0015�\u000bJ�;�H�[���\u0006��dZ�����\u0015�3�\b\u000e\u001e?���b���խ��A�n����wS�vx�ط�v��G��lG \\�R�O��\u001d�~y.���T�ۢ��n�}��E\u000bꯞ�3G�-χ\u0016�+�f\u000eJ䌜��\u0010Li4����}���q�\u0002�ӭ;�%��5=j~c�ߗX;�]ο?\u0003�>��|L�(\\\u001f���\u001a��\u0011���?\nV��O�lx�U�:�)]�™!��\u000eG����1U���\"���v\u0000�!P5|\u000e�o\u0001O�W�\ru\n�o�����E\u0015^\u001f����\u001e_�iT\u000f��\u001e�m�i��Z>����\u0013O\u001e��%W\u0007�k�ݿ��\u000f#�ix�_\u001f\r�H\u00106�2�\u001c��]�P��m��\u000f�{�����|��[/\u000f���ޟ�\u0010A�)���Q�߯¿-�ص�\u0016}�:��፩;�&}���|��_\"��H�\u001f�s�@�O���U�OTD��W��x�������9���Ͻ�ô^cz۷��ӽ;��Ծ�������\u0000\"MuYv�p)��g6]����Z��~��w�9�o]������\u0015,�\u000e����\u0000�2��V�*�\u001b���\u000fq�l\u0012���\u001b|��aU\u001f��\u00001�$�}?/��ª�_�_�L;%]������\u00001�wtW��\u0000�\u001f�ǿ�ONO��Ӿ`j�Ñ�i�����zWoc��Mʩ�纰���P��4����H;m�iB\u0005Y��#�ɺ\u001fi\tD�\u00145�M���Ms\u0010�\u0003\\��[�m\u0018��I5�\u0000����\"\u0000;0�<$�㐽(è�o��\u001c�2��CL���\u0005��‹��ߦ[\b�-�%Ox��u�x��}�ק�e\u001a�\u0001۹��t\u000b\u0017�\tk�\u0019M+�\u0002���\u0000\u0000�����_���R��J�T\u001f��9��W�\u0010|�����x�x��_�t\u0003�Zb�uޛaB*9i��\u0000?\u0001�ޔ�9z��8�_r �����\u0000_l~�@\u0003��|���\u0017=?�zt�juʲ�Kc��\u0012C�\u0000+wL�\u0000����\u0000[�y�o\u001f�D\u001f�@��o�O�ɇ����\u0000����\u0011��_e��G��-������7m4�\r?���PW�ܑ�z����y\"G���3�n\u0007��S��\u0000�|�\u001d~a�a�(�:R����$����i_�o�=�*<��\u0011O��퍤\u0014D,��H��^��bV�\u001b�\u0007ނ��\u0007���\bd��8n\u0007��\u0000��\b�\\Ӱ٨�\u0017��x{�d6��\u0016\u000f�eā��\u0000\u0000�\u0007��OL\u001c�+޺�+z�6�^����b\u0000a#�\"�MI���=�1\u0015˫\u0004�E�&������d\u001e�dߧ�_?j�Ϛ\t���Iڝ����#C�j���T�n=��Ә��]\u0019�����H_�\u0001���:o�^�PdhS|M��D�\u0010`H��\u0012<}�Г�\"�%W#� ���@k���9\u0003A,GP��J(\u000e��\u000f|L@�=Hi��n�rnR}���\u0000?��eF#�V\u0016y��\u0017��ۦ�L� G$[GA�m���W�cJ�ٸy��M�\u001f���\tw\u0004�\u0002X�:o��x\u000f��F����\u001f_��]�3�Qi$�Cӯ�w\u001d����'����n\u0000;l\t\u0007o��Ƈ5@�Lm8�:\u0001N�=�^�+��$P4߰�>=\u0000��lkz\u001c�v�J\u0011���G�€U���;x\u001e��H8��\n���c��9\u001aM���k�\u001bԁ�����\u001eLm{oJmM��4ڴ��w*\u0007f;���|\u000f�«�N�\u001d\u000f�C�L��S�\u0007o\u0003�|2\u0007��\u0006�pi�\u0010=�}�\u001eV�&c���o����@�\n�O���{P\u001e�ۮ\n�}Y\u001d����\u0007�@Y#�b@!�\u0019�o��\u0004�\u001e��o�\u001e�Cm�^�\u0011�~���\u0013�\u0000\u0003lį�\r�>�\u0011�o�o\u001c��ۯ�O1h\td���~_q�+5V�\u0012�&��O���4��攪[������ӯZ\u001e��@(K&��V���k��B�ĥ\u0012�m�КWj\u001al�،�m�t�\u0013@>�|\u0006��l�J\nI\t\u001e\u0004�\u001a�_ē�dB�\u001eG�7܊�w\u0018�*�\u0004S�nEk�R��N��UUN�|�\u001fgn�Ҙ�����j�\u001bt>\u0015�\u0000?d���\u0006�P\u000e�ߧn�\u001c���<����\u0004S�>\u0003��!�Dy\u0006�ۭF�?P�Ȑ�\u00129sTZ{Sڽ)�9]YH��\u0013\u0018\u0015��\u000f~�|���[/�7�^DP\u0001ҽ��\n�z�J^E��Q\u0010PӮ�=?\u000e���VM\u000eO`�c�vč�D�M7\u0014�NH���TK��-G�Bh>�\u001e?M:fV1�ʝ\u0006scܞ��٩�]�k��\u0007BO�_��#\\�\u0018\u0000&H����e3��\b��*UYB1*È*�\u0002v�0⺱oI��\f>��<��o%Ao�1�ϓ<��Nl����:\u0016��[X��Ս��\";�\n\u0017��\u001f�&�\u0004���.��^6| �}q��v\\2<�ߓ��\u000f��\u001f�ĭ+M�W��\u0000����].\u000fU^�\u001f�o-���\u0004?Y� [k�e�h`���Ղ~�\r\u0006c˷�\u001a1�9�^BD���i�\u0012 F\u0012$����4���/��6��ɢX�\u0000�O�OEv�m\b�'��\u001d\u001e\t%��(-#K�D��,�M(P��i�}��1��ɜ����&3���י\u001c�\u000e�U\u0011�(H\u0001�d�Ͽ�^@�t֟F�ד5e��[�o�y�D�Ym&���9m�d�K9ҍ\u0014��e\f�I�+\u0019���[C6\"H\u0007i\u000eG�ǣ���pA��Hs$ђ�HL�-+\u001bD]����FRGbE3#\u0011��\fH1�����i\u001fz���Wz\u001e��\u001a�9h\u0004�[�\r=�}\u0015�\u000fl4I�w/����X�\u001d�\n�7*�=\u000f��|7�UỂ:\u001fc����|\u0010�?������\u0011�W\u0006�c^���q\\h���4������%�܅@�\u0006�\u0014�~����ip�����\u001bl��/\f;�k���Jm�p��D���ޞ\u001e\u0018i-��>=�>�\u0018���2���C\u001a��@:\u001e��FKa��$l�\"�.Q���\u0000Wڽp\u001f�j�A�Tv���#� �G_ �\u001fõ=��>��ܮ�\u000f;.���~��\u0018�O.I۪��jGC�a\u0018w��k�K�}�4�z\u000f\u001fム\u0001\u0004��I/\u001f�z�\u0000������p{�7>���lh���W��kJv9����3\u0011�{�cz�-C����\u0006s2���og���U�҇�\u0002�wa�\\��V����ߧ\u001e^�\u0000�tg�k�}�\u0019����!�A����\u0000�fN.����>m�{v�\u001f���hق\\�-��\u0010�g�Z��8B�p����;b��iڟ3��2U��U��\u0019�=>[b/p\u0015���\u0000�r5\u0001��R~5�5ڱ�>漿K�o��>!�{����]�);��UI�����\u0002kn�y���%\u000faM�\u0000\u001f�!b�d.�K܂E74��\u0011�Q�\t\u0010:�\tߙQ)]�N�m�\u0000���`\u000e���T\nA��hO��\u0010/�Ǒ$�\u0011�\u0012'$�_��=IˡQ���h���&�?2�m���S�~����$��n0h_T�J\u0000�\u0001��5?I�}�f,9\u000e�nN����G���\u001bl�#�g:.� @o�\u001f{��\u0006��B���}\u0019�Ǘ�Y�\u0006>=<}�p�z\u0011\u000b&�A���¨�����H���j��\u0000����f9��|�%l.�\u0013�_c�U��0_�_��\u0007�晿MEj����}�/8��\u000ed\u0007>��������4�h\u0013�����Gfw\u0016��\u001e����ۮo|ڕ\u0007��Pׂ���ߊ\u000f'���\u000f�\b�S���G���@���}�x�\u0000=�m\u001bך�\u0015�\u0000>�\u0000˜)o�\u000e����\u0015���PRJ�֟w��\u0001G\u0011�\u0013�f \n���\u001ag�)�U�@jz�a�L�o�=�/r^�\t��+�:�\u0000`8� ҙ���6�u�s�Ȑy�B�\u0014��׍O\u001a\u001e�Sb|<7�\u0001Y\u000678�\"��?�\n\fJ\\�_m��\u001f>��;rG$#EɎ�\u001e������ċ�-�ؖ�\u0001�a��\u001d��L\u0001���p���*7ޝ>�{oL����h\u0017\u001b�J *8�9)��\u001e�NB�\u0016Q���&�\u0000F�A�?�2\u0012\u0002���\r�\u0010s'0v�~����\u000fz�\u0016%��:�,\rw۰\u001fָxx�T��c2FEA��#��r�\n\u001b�\u0007B���\u001b�4�'m��\u001aaf\u001b\n�a�}H�s@�\u001bwA�\u0001M���\u0002�'l�\u0004�I�W*u�\u001d�>����\u0000y/T��3�k���o�y\u0004��\"+�קJ�\u0000g�S(׹�6_����\nс�F��\u0015>\u0000�5q\u0017�\u0002vM�\u0002���\u0005v޵ڻT�e\u0012\u0005@\u001f?a�\u001e5'\r!\u0018��v\u001b��AA޽�\u0019\u001aꐨ\u0000,\b��\u0004��\u0007��\u0010)\n�R���}����\u0016�f�w\u001f#�Qڴ퇒\u001bc�\u001bm�W���\u001bO��+�����W\u0003�P�Wo\u0011��L�\u001by�Zw�\u0014�ӿ�|�\bS��j\u0011�}\u0015�\r2(C�\u0000P\u0011@\u001f\u001a�\t�\u001d�\t#|�N��<\u0007o��\u0000\u0005AH„��Wq^�ȞV��\u0007,��ھ\u0000�=6\u0019O��%��M�<7=\u001b�#�+d\r�4��\u0000e�C׵\b��_׋\u000b�OC�a��o\n\u0003��\u0013�\u001f\na�Log�yj\u0005K�BGڞ8��4w4^T�*i_|�E�GV\u0007�>����s\u001f�q��q7F}C��#I��(t�u+(in��5X��#��O�t�$�mD���S\u0013�\u0005��\t�}Oj���\u000e8qgԏ��R#���\f?�\"�~>��keX |3~��G���$���\u0000��5�gP�����m3�:BZ�Zy]��\u0017\u0017^d�5��}Z�U��t�F\r.�;d\"xl\\����ٽ0H�g��{d���l\u000f�1}e#Q\u0006�\b�\u00072N��E�Η\u0018\u00195�%�f�����? �����3�s��'����Jy�A��N�t�J���X��N���k�Z�˘��oi>�\u0004�0,P\\���Y%�)\u0007\u0012H\u001d��\u0001\u001dFL٤c^��᫾Q�\u001d\u0005���!���\u001c81F |N㝞G�/���GG���:k�`׮.��\r���>�\u0006����[�Kao�ދ=GX֯��^�A\u000e�m\u001aE-�3IT`�?\u001ff�� 0��\u0005�H�w\u0016\u000fH�>�>i�\u001e*\u0013�|�\u0015�5V��y�C�\u0005����\u001a��q\u000f��t�7�q~���MF\u0001s��zT+b���O\u0002Ffhe\u0005��*��[ƞ8�K%F1�\"�Fꍝ�27$�St��x�7����\"�#�\u001bS ��\fo�M�k����y�N�,���G�P����\\yvmu\nZ�\u001e�����4�-ī\u000b! �*\u000f�c\u0013\u001cq\u0012��\rt<�X�m�fu\u0007��)c\"5�����q�=KI����h?�\b��u{a\u001f�l�\u001d/�V�;-SM�mth��?J�������%��$\u0000[En��)\u0005�\u0004�v�!�ɋ\u001c��$\f�A��+�\u000f.�\rV�Ʈ�!\t�c��\t��؃}y\u0010+���\u0000\"�T�@~_Y�'�9<ǠG��;X�t�OW�5˭>+'x��u+[��w�\u000e�kpZ(Q[��*��88�;>0��\u001f\u0016\u0013$Q�l{���\u001c�V��\"x4Y�G\u0014%/+\u0004�ؒ+z����\u0017�~��\t�{\r\u000b��B��G�d�b�\u0007�la�[�\u0018b�ŋ��{%��-Ƨf�'x��r�Y�&tF�K\u001f\u0017,�\\1 oBU����:t\u001a���O\u000e��L�\u0000�\u000fuK�����s�\u000f���\u000f�}2\u001dg���\u001a\u0007�t�縳f��Z[�;�4G��u\u001b6U����.\u0016Dq@�\u0006l�ë��\u0005�\u0015�\u0011�bh��cgC�M��L�����˳H\\�~}����\u0018�5^\u001a�|?��k��KM��?/\u001at\u001f�\u0010G4\u0012n��\u001b}�={\u001f�H\u0011�+����5�qC|�_���������gl�A\u000bl\u000bF��߈�y=�\u0013Μ�c�=�k[Q\u001d�H�\u00045\u0015�\u0000X�����ʃT�%(\f~�E>~��Ǘ&��T\u000f�\u001d����\u001e�iܶ�\u001f���逝��ޠ�_\u001f\r�S\r�\u0002f&��\u001f�Oz�6P@�]����{�t��w\u0015�F�7�ڡ����[�9���)���<���jmO���9��!ˋڿ!����u���S�\u0000��l�#���fG���˿�Ϗ�����;H\u000bDz\b��l=���۵s#\u00176��}ɯZt�\u0000?a��1K\\P��~���\n�\u0012|w�J����)�A+��\u001f�\n����\u0000��H\r�*��)?�'o�#k�+�������=9v����\rP<\u0012�tח��J��U��~�A�a|7�g\u0010�4\u001dʔ\u0014��޿�+�\u0003sȦ �J\u0013O@|<\b��m�cd��\u001d�\u0004(o�\u000f\u001b�`\u00015\u001f��FD�j'{\u000bnd�\u000b\n�\u000e�u��\t�\u001e.E�=ϛ�5)�\u0016\u0007z�?�Gzx���-���@\u001b\u0001\u001d�\u0002&���P\r�=����\u001d��g�O���Zֽ\u0017��)��A�{@|T�e�\u0001���X�������&�sG�7������J�[�����O��!$�\n�\u001f��� sDs��}�?s(��;��\u0005��\u0000���\"v�r��K`�/�\u001f̢G�ΚG�\\P���<��v�?�\u001c�������\u0000��_.i�?�@?�\u0007�Λ�\u000f��{ڲ��B�\u0019���@;|�T=��G�\u0019rx���r&�܍�\u0000\u0012=�p���\f�\u001e�\u0004�M����S�)L'.��}����4~(�)�\u0015+��������\u000e��~_��Ōy��\u0018�\u001f\u0010��_o\u001ac���\u0016�H\u0014���_r�M@��'���n��\t��hhI=O���l2\u0007{\u0001,�5RG^�;t��+t�b�m��\u0013ާ\u001f�\rw0){���~�F$�ST,ǽv��o�\u001f>�\b��T�Zw��\"�*�\u00112\u0010��a����ʤ(z~,���Ga%\u0006��N���\\�ߺ��?4�$\f\u0003\u0001J���a��w�ܨ�ے�^$�Z���<:�S+#{��\"�\u0007�\u001c1��{}�\u0011�\u0019raWP�b\u0006è'�o]�\u0012\u0004��{S�:��^����\u001d�\u001a@�[ h�(���\u0002�7�\u001e�\u001d��>�\"\u0000ՠuK!\u001dv�\u001b���o\f�\nd\r[\u000f�O������dH��5�� DAޟv�}?,�cm�#\\��/�[�p��N�\u000e�vU�ٕ?����\u0012ӏM�\u0011�qҙ�\u001c��\u0003��\u001d\u0015\rG���0���XAG.h�N�\u0003���׶JЮ�znE8��:���/����k�O�n�*\f*�z\u0011ڴ�\u0000k�\u0006ʸWrM\u000eæ�~\u0004dI�]\u0011m��;\u0011J\u0011J���\u0004,�\u001d\u0007�^�\u0007�2v\u0002V�W؃�S_\u000e��7��m�zm]�6��2\u001d\u0010����J���\u0000wl\u001eHB;\r�o�q��k㍥\u0004�A��Ӯ��\u0000�D�\u0016�e\u00053UM>�ާzv�����#����[c��kQ�nF�ҹY nY�-.��7�o����۾F�e\u0011I\\�Z����N��p\u0003^�sK����N�\n�S��$�K������\u0007����(���EON���x|�J��\u0012�z�i�jx���\"�;\u000e��}�R=�\u0000^\u0003���\u0006��\u000e��\u000f�:�R�+�>;R��7�\u0012,���ҝ��^����\u0001䪫�m�����T`J�����n�؎�\n�\u0007�)C�g��4\n���DZ���) \b��om�����2\u0017���\b�)�&�h�\u0019\u001b\u001c�\u0007\u0011�+��I��7\u001b��*�ve`�\\*<*>���\"M$�\u001d=[��\u001e\u001d\u0003�\u0011��\u001f�ˡ��\u001c��w�{;M�#&_^Q�\b���][�4Ϫ^�Z��/u\u000f2�w���\r�\\��z�����M&�'�5'�y4۽N��H\u0012�rޗ\u0000�EN�\u0006�O�xx�B0\u0003�ۺ����z�\u0013�\bǂ2\"\"�^��-�,\u001a\u000f�MwXk[}\u000e{\u0003xڔ�eor�\\����\u0005���i�K�\\6��Mi��\u001c\u0014VEF\u0000ն0�c\"�\"w�_����o$\u0007���}��rcG�#B�;;?:�뉧j��\u000b�=\u000fShg��kd��\u0000J+�h���_Mlbu�\u0002�H�r��a�\u000f\r\u0002E~\u0007�D�L�ɫ�`B�����;�����R���`�\\��z\u00176Z��}j-R;�\u0016�uie����\u0014��\t���Y\bq��\t\u000fH\u0000~>V�\u0010�\u0013f[��OQ��+�/����t�:|Q\u000b�KQ՚��h\u0015`�I�\u001a��c\u0003p�X��\u0019�\u00144L\u000e\u0001����l�NS\u001cH��9k\u0010�������\u0000ζ6�]�Y�5I��b�2Kx�iz�m\u00034p�H�\u0002IKW'�P�1�\u001eQ�c[�\\��\u0000Yl��,ٻ��'�yK�Z=F-\u001e�\u001d\u0016�U����?�m21oaei�j�-i&��Yc+��i�Ŕi�\u00062K9=Ce��e\u001fV�U\u0010?O�ށ�� ;�_̳�\u001f�\u001b�X����>[��,mR��TT����k��T���Υ�E�I�K\u0015\f1#�H\\�X�f\u001e\u00148x�\u0000������\b���sJ'�N�?Er���0�MTO5�s�MkJ�Um\u0002�O�]�l��[K\r���Y�wpi�0j:���U����e�\u0014\u000e\u0007\u0016zl^$��\u0019�\r�~��6M���#�7�S�0\u0002\u0006BD\u001a\u001c�\u001e��\u001eD\n�{�\u0000���/��\u0000-�o�o!k^`��ƅt��y�.��(�d�\u001c:��:V�\r�\u0017SX�K[$O?��' �9��h#>\u0019Hpz�1\u0004J�\u0000�\t��ځ-�ȔLs�3�\u0007b\u0006��k� 9�_�W��\u0007�����RY�'��\\��)tx/to:i\u00167:^��\u0017h�\u000b[�i�t�/.m����}Y�]��\u0004�>=^M.C�VL��BdQ��\u0001�\u0015��|�&��e�N�\u0019BD�F�\u0001��~c����\u0005�7\u0010Cqm4S��������\r���\ni�K�:��\u0000�͟d\u0012rʼ�\u001d�=�ӯ/�:1��s����\u0003���:����2�\u001eL\n�����>���f�il���w��B�P=��:�>�=<��p��N����0�揹z����\u001e@�\u0013��?���Oƙ!TJ��\u001e~~\n����H6����#5ڏ��*j��?3����\u001e�v'j�f��\\^G~jR5\u0007�q���;�>Rj�\"7��|�\\��\"�4��\u001fN`ț�-�#쒥j\u0001\u0004��v̬W�]Z�2\rE>��\u001e�mQM���9��\u0000U4�P�\u0013��&�\u001f/�\u00053\u001b \u001f\u0005\u0016vKubR\u0012\u0018n\u0017��zo���F�6�C�y�ԆI�^�\u001f#^��\u0000M�Y;�\u0017?\u0018dZr��\u001d��7�ڔ�|r��{>��\"�\u0000�u�\u0000x���oN�6�f�\u0000���ގV�\u0001��\u0000�X����\u001e9�\u0006�\u001dч��\u0000?�\u000b\u0017~���T���aڟ���&@���{l7�\u0000k�-��A��u��\n���a���e\u0019~�&C�������V�����Q����Tg�v����/\u0019\u0006>O�Oȶ�\u0000�oN�\u0000�1��\u0000#��:N˯\n>欷��->_��7���J%kM�\u0000���*�p+\u0019�\u001f��b�[\u000f7���\u001eLh75�ֿ�%\u000f���́�n�kJ�|����WW\u001c�䆌Q���{��E�� ݼprݒ��+'CO���\u0014U�Qh�~\u001a\nv����\\)�[$crGBG��S�8+�;�[/\u0014;�G��M�\u00120}ʇ[��\u001d7��~�\u0005P�eJ�\u000fO����V+p�1��~��\u0004^� \u0019*@�\u001f*`_4Tq)�(\u0007M��lĬX�)���m]�*+��\u0000\fj�N$�\tEͅb4\u0015n�v\u001fٕ�@�%0��y\u0000�\u000b\u0006��\u000bJ����\u000ecθo��\u0011�Ol\"�ڍ�=<\u0007�yIn���\u0013Y��&�\u0001ڟw�,��K+`w\u0016�\u0001b�u={v��5����8~� ��\u00002zmL�@�\\�\r'\u0011\"��S�n��m��\u0010�\u0014�Gw���ࠨB\u000eǍ{v��q��\u001b�Q��ʴ\u0003n�mA��\u0002� ��]������zӾO�B���iRk^�n�W\u0010�T(�o\n�POZ��\u0018�!��\u001a\u001e�\nz\r����\u0005�ʬ\u0006ð�������V�<�u�8�\u001e\u001d���G�rccK�L�*z�\u000f�\u001f�|� �X{\u0000v\u0003�����\u001a��J��_\u001f\u000f��o�\\\bC�7�v���\u0001ț�M��\u0012F�C�;צ�\u001d���=�K�4\u001b�C�O���#�m���X@�ƌ\u000e�ri���\tr���K�j\u0012A��<:��r��V�Il�)������� \u0001 ����!�V���\u0007SN��\"�\u0012[�&�\u001a��j�\u001b��*;�)��\u0004v�)�;\u001e�`��U-��[m������d\n�\b܊\u000eխ(\u000f��\u001e��TJ��OJ�\u0000n�{x`�)+hh6#�oO`E|1��t�hw߭\b���\u0010�\u0003o\u0002w#q_om�1<�T\n����o�\u001e�\u0015_Jm᷶�\u0007�*�7�ö�:Wj����>�\u0000�@\\7=}���􌌎̆��Sn�7�\u001f��+ꤐ{����\u000f���J�{ҹT���\u001c�\u0012��\u0000�\u0010{����}�&0���\u001b��}�\u0014ȑ{udy<'�rg�r����q'���20>�q>�q&���+Y�o\u0016��1F�'�Mĉ\u001d��Q����\u0015�_\u0016�B�|���Q��\u0011~����\u00169$��J�U�\u0013\u00057i�\u0012œ�\u0019�,��(���`\u0007�\u001f��w�\u00184�D0�v|Ͽ��\u001c�\u0019j~x�+;;m,K�����>�\u0018����B\u0019nf�/�\u0010�E�,\u001a1�\u0003\u0018�P�~\u0001��a���Y��Z��>�q��\\�Ξ�\u001f��L;*$�Q�\t��5��\u0011\u0019m+��9��\u001b�<��[?�5\u001d\u000f��\u0017�\u000b�\u0018#X|�m�j\u0016\u0011\\��]\\��D��L�\t:��TY��E\"r>\u00182�[���~��Do��{Շ�5�{m:�\u0000����b�\u0018HtKk6�o�M'R�����^Ӗ����yj��Ĩ�2[K<�C �ǭ�x#D\u0003V\u000eÞ��?��$e�\u0019HX����U�–��D��K\u0017����hZ��\bt�u�3D���o^ԢI.�FO�;�6�D�+\u001b8x��T\u0016����r\u0011\u0014G\rp˗*6OZ�w\u000eV\u001c�\u0004�D�X��t�O����_��T�\u0000��h�\u0000�����h��\u0017\tmm�ma�Լ��\u000bC�\u0005��M:\"5�)'�`�\u0014&BkǠQ���y�����U\u0001d\u001f.G~��\u000e>���k�sa�Y���C����\u001c�<���6h�����Zkz\u001e�m\r冥f���x��,\r$�P�\u0003��]\u0018\u0010EFgb�\u001c�㉸�>���ˎX��1RN�����\n\u000f��l����pz\n����\u0000�\u001e 9�\u0000�K�������P`�\u0014\u0016��P\u001e��rk�|)�\u0012\u001eT�K���\u0000W��\u001f}*�z\u0000kZ��z}�\u0000�\u0002��b#:)\u001e\u0003�R|~Y�v��P�\u0004���hp�t9�{����$�\u0000z���G�����x0�E�})��*܈�*�(MEk�l�t��C���xI\u0000l�u����\u000eH�S�w�\u00076c\u0000\u0001��I�*�\be\"5�\u0007�\u001e��G�`��\u0013��$㌣�wþi�[\u001dZH�P1z���_\u001c�\u0019�ؾN�<8'�c��Z�\u0006����c��cS�UI\u0015��Dt#�2\u0018�z�RrGk��v����3+��RK�%[������\u001a\u001c��ߢǓε�������|�5��{���nO-�?�a�T���x\f�\"%}-Ά�|���\fܤ��\u0000.�v�~l� ��G��t%��?O<��\u0000\u001c�����w\\�1m���\u000b}��{�\u0000�s3\u0015l�o������]�.�%�?]6�\u0000:��/އo�O���z*�\r�\u0000\u0001�{��r����\u0000�1�J��\u0000u�6�?��\u001e{��\u000fυ�j\u001b���Df\u0016��>��ݿ2����\u001d�\u000f�ol�G�\u0013� gb*{�`w똹l��c|�\nB���\u0012\u000e�\u001a}��\u0002��R�m\u0004rd����w\u0000Ӯۍ���〡�����\u001f/\u000f\u000fq������F�����i��Ϩ�\u001f\nϑbM\u0016#� T=:(�zt=\u0007њ�^:��R��Sˣ����\u0014S�sM�m�M�-9���4�>�\u001b~�\u001b~���9m�\u001e�\\��џ��V�\u0000E�\u0015�\r\u0007�9���\u001e���y?A4��b߷n�o��:A�v�s�i����d���5��\\U��\u0000\u001f���H�m����~>;b�\u0007K���t?�7\u001b��՘�ǥ�~�\u001f��\u0000�Ǐ掜ݿH�O\u000e}<79���?x/�������\u001d�\u000e��oN���?o�\u001e9��Y�q�5�\u001b\u001b��I3�\u0005��D����U�vϮ%\u0012��j5-�V�����������.-\u0000RiZ�@��}9a�\u001c�v1u\u001f\u0007�\u001e#�ppta#G�Z\u0002�\u0015��� ߽\u001d�0�\u0015���}\u0018\u0019!���u����\u0018j���cQC�+��o\u001c\u001c�w�wq����o�8�\t\u0003�ɩ\u0015?�}��#�\u0015��iI_\u001a�\u001e���\u0007ZHK&SZ�ק��8����d\u0003\n\u001d�ڞ��\n\tD$�(i��)Q�Z\u0010��P6�ڝ\u0001�E�T�Y\u000bTn+�����c��E�('\u0000���o�@\u000ev�G���wZ�����Pk�5#p�k@�\u001e���d(��.��{�Q�bw;\u000f\u000f��Crl�Fb�E\u001c��/Z���t��m�!]���˒.(\u0006�\u0000)�����f<��VQ�ل�!n���\u0015���S!�ͳu�1G2��]�ߑ�2\"B�S��\u0012\u001b�4\u0018Y���߷��#w���DŽ\u001d�o�[�2��i_\u000e�.�����r4��s\u0018�٧���|�b�\u0017d3���s�����l;v�P�~�3Tw�H�#�M���wۯl\u0001�=Q��\u0003�ӭ\u0005\u0000;d�$�a�YE\b#���v����D��Tw�����&��k^�\u000f�\\��To�P��}�O���`��\u000e]V���Z\u001e�\u0015��L7fַRa�ҝ�֛�O\u001c��k7j$\r���\u0000��\u0000���H�J�}���~��\u0013��\u0004��(I��?H��Ŋ\u0001�v�i�S�\"��+�M��Kf&�����\u0003� N�9�\r�\u00127]���_qޙY5�g\u001a���X��u������\t_��l\u0006ҹ^��]�S֠��+27h���q^�޵���)��L���Oa�Pu�2�\u000fD��r5�;o�\u000f\u001a��D��\u0019\u0005**\u0006��v߷�\u0015�L\u001fr�J�\u000e� |�v�\u001e��ƠmP\u000fSJ�ڃ��:����7޾��c|�K��\u0007f���\u0007�\u0006<���S�c��˥i�\u0007�U�r7��_��\"�\u0012~�\\6����L\u0016y��ꍉ\u00154����\u0011\u0014|֩^��A��\u0019\u0003\u0012�\u001b\u0015˽6'��\u001di�p7�D�����R�4�O�\u000eVc�ɽ�䊌n��������\u000e�2���?=�\u0000>?.��\u001b?,���������v���^���O�Ai�y�Y������h�&k��˂��\u0011�E�=\u00009���q�\u001cC�<����?�u<�v\u001c2ϐDr�|��������/�\u0017�䗜|�����}�M���\b�G�#�Z��>D�b�oОX��E����%��\u0015K�٨8����\f32�<���~�\u001f.U\u0001�1�9�Iw2�<\u0018F8\n\u0017u����y|�s���2]+�}B�^�yJ\r:Y\u0015��ՙ�\u0012�p��Q�U\n�!���:����\nS�$���ZV�\u001eKyf\u0012\u000bp�Ksp ���|1Ig�X��P���\u001d�Ue\"�a�]�\u001b~��FP��\\�\"g�&��\u0017)�[%��\u001e�����-�!�\u0019&Bm�E�\"�f7\u0001��FU�6�@\"sz(��ov_�\"U��+m;V��x�\"2Y�̷_��b�{�n�UF�?H6�oqe\u0015bu\u00152\n�����!\u001e-����j]&�x�lQj\u0016�o�:@��j�\\��Y^�P\u0017W\u000b$���Lf`�\u0011ւ��9Pԓ*�����\u000b���F�~����W�O�\r*\u0016�ӹdI4ğQ�-N��N,�Im\u0002�e\f�%��\u0015v9lu\u0012��\"��\u001d~�\u0019tg\u0010�\u0013����i���%������ݓ[��\u0006qx���֚b��{)^�մ�\u0018Qd\u001c%��`\u0015�(+g�\"+�?��i�g.@�=R=2].+�>IOִ]&+\t��/�h崷kI��8�W� toE.���%1�\u0003�4L�N�b�\u001c3\u0011�\r��\u000bx�;�\u0000(\"\u001d\"���從�ݥΝ���w\u0016q��6_�����g@�8/o4^�L��-��1\u0002�o��\u0018\r&L��?����ak��\u0016w:�����ؼ��h������5{K��Kh�����2��w\u0017\u0017��bhm��=F���0��ȑu�~��R�\u001c`\u0003@��/J���T��K{motߥ�\r_G�E�4�>Ei\u0015��i:���+^�Y�M,\u0017D4ʱp����ʥr&�N���A��\u0011\u0011|]㻿�ʔ�|��>�gu�+m/I�k(�.�J \u0013�WB[mKI�ic��Il /=�F��-f G�@���\r�����ٜQ��\u0007�g^V�<�c$���k�F��\"�o�^���k��\u0010Gik�y�����b}*���D�hZ0auYVI+�r��cm��������!*7\u0011�~>\u000f����j�:���sH�W\u001eo��9oi>�\u0012�����]ϪIr�H�lD\u0017A䴒D���� 3�L��\u001d��\u0010G:��I�3\u001e^\u001a=v�\u0017]?S�\u001b�pO�s���W̟���6��wS�>�ڕ�����S�����������|��ި�tw\b�Y�\u001d�g=�9�y8��\u001c\\F�\u001b���9ny�\u0005��A�[�Y���/}��\u0011�\\�~������S���M6�\u000b�3U���4��i\u0012{k�;��ky�6d�$��Pv��a\u0019q\u0001(�\u0017��9F\\2�\u001c�'�4�5�x\f��NQ�����\u001d�n\u0006&G\u0014�\u0006�\u000fN�ރ1!���\u001b�m0\u0004&\u0014\u0003s�o�?�\u00072\u0006�M~\u001drr�]�A\u001bW���d��d(�O\u001f:�K�7�zxxS2��ͤ�i@���A�ZnMz�k�T�����`���K\f=!�����\u0000\u001c���+w�(�\u001fO�n�����gc�;\u0007_��5c�/\u001e�?~m�g\u0019�\u001ew\u0015���C_��i�F��m�&;??��i,�ۅV;�E�}��Çha��N�U���&K��h7N*\"j\u001f\u0010~y��v���m]�\\�\u001d�A��uǗ�\u0015I\u00117M�T�Y��j�\u0012��˗g�b7�u�\u0015\r\u0011\u0014��\r�7X;ko���>��rhe\u001b�\u001f�s\u0013�䡃\u000e$\u0003Z�{{�l}���6;�\nX2Gb6y��\u000bo����5:�\t\\�&�@��7�_\u001f�7�4\u001e\u001f֙��'�π���-�9?�8�;S6��o$�=�;�~�y{m:>�/ӷ��1��;i;�Y}�o���̬W�Y�Z���m���%������T\u001bj��O���\u0001�Vxt�ñ\u001e�87UA������c�WET��\u001f��ҕ\u001f�\\\u0014��\t#d\u0007��\u0000=�z�]˽R^���6�����Qe������;�f��UA����\u0000o\"y�\u0000I|�\u0019j:}?����\u0018�2��I\u0010�Ӡ۷�Y\u0015QF���~���\u0006�dH�[L��QAS���W +}�t%^iͤ�J&ۓB\u000fAZ�~����[x4�4\u001c��\u0005*i��2��j\u0015�\u0015�d�\u0000w�z�둮�Jr[�N\u0003�*@�M���(�yC\fմ��uJ\u0002\u000fϧ�l�O1ܦ?'����Jœw?�{\f��@� \u0010k����\u0003\n����l6=h+횺�j�*|\u001d:���{��;�j_%`�#���}�x�Ez���}�|?�\u000fޫ�؊�����ޝ1Ua���AA׷RE2\u001c�H=\u0002�6'�^����@(�m�\u000045����s����(w\"�\u0006���#��q\u0003&4�v��H�\u0000>�eE\u0007}�_v\u0005M(\u0007_~�#��\n 2\u001b\u0004\u0014��A#o�a��\nS@{��#巏\\��L�\u001bJ�m����=�����l�J]+\n֣��\u0015���s�3\u0003o�Y1ٺ���>\u0019]�\u0003��s\u001f\u0002\u0006ƾ\u0007��+��OD%r-jj\u0001#n�\r�߱��P\u000e:\u0013�+���>�c�H@ȣz���ӥ<:�\u0001�^���\u0012H;�\u000e���u�\n�\"��\u0003����\u001e��d\n����Bpo�+\b�:S~�w�x7Wo����q���\u0000V�$\u001a���\u0000\u001f�L\u0005[ߩۡ�>#���h��K�\u0006��M\r����eCnt���\u0011Oo\u0011�*�['f�|7\u001bmJo��\u0000�q$�l\u001b*.ݷܞ�n��9dX��$\no�u�\u0015ރ�l��\u0007fq�iuޣ���7ZƵ}o�h�]�ƣ�jw���i�e�/u{{u3Qc���\u0016c��\u0000܌�.Hb�˔�1�>_�C�g\u0018�r\u0010��\u0013A�i�}�dG�\u00009=��q�\u000f�0�]y\u0017�O��k�n�԰����'�d\u0012�&��ƦC�5���&�Pv~�5KU�\u0015��[2\u0003鏖ީ\u0001���\u0007��\u0018�\r��5�]}�G�����\u0013jW\u0017�\u0016$�71\b�X?-:��_���!�g�$���\u0015�?\u000b\u0003@7��1�Wǯ>MW,�dM��Ωv��Vyt���O�R�g��#Oq9��G\u0018\u0004�WP~\r�C9���rlnj���!�Y[����oq\u0013Q����)���S�Q��P�.3I����]��\u000e`c\u0004H�7\u001a�S�*H\u001bn\u0007�\u0015>\u0007�\\7`�^@ҝ��o�jm\\�\f�L'ޚ[�e�Q^Ɵ���,ϭ��Ɍ0\t��2�,G%4���ᜦ�S,�;��:]?�.�Ox�\u001c\f{\u000e�����3;\u0018\u001e�nn�6<�*��)u�3:���\u001f�g���\u0013�ཋ�\u001aQV@,�O�>��1JW��4͞\u001c' �5HF\u0007�\u001d?�m�\u001f�-w���3+�1�\u001cڸ��G����\u0011�\f�#]��\u001bf�Y�&(�+fB1ɴ�\u0017�\u001em����)Ƅ����s���/�I\u0005�^�\u0012�\u0015l6�yL2\u0003�i�m+�Y��4�\u0012��3Cų�y��`H߭w'z����QW�ۨ#a�����r؁�E���Q�'ø��,\u001c��en\b?���\ne���|��1��\u001fn�h?6$y�o2/�'z\u0006\u001f~�9����i��6\u0016�ke&��\u001eb�\u001b�\u000e>\u0014�h��\u001a�sc���l\u0005%�n��N���2\u0007�a;�_����\u0010\r���^����'��_�Zo��\u001f�����G�\t�L2L\u001a�\u0000?���V�~���Ő�4�)�����\u001ei�3��8����G�^�����g\u001e`�~H~h-2�\u000e���^��?�\u0001�ۢ�\u00029q\u00073\u0016�����{�sO�\u0000�I��\u0019�vW�qi������Ϧt#͡\u0014���6�xWe+��'���\u0007�D�0\r^P��Z�\u001e\u001fFJ\u001c�\u001c�$�/ v�޻�a�\u0019e�G1�\u001bB\\��X\n����ñ\b<��Ů����x֤\u000e��8�ubn�K\u001a���ÿ��q�E��\u0002Ͽ`\b����\u0000ߚ7��\u0013�P\u001f��<>��\\�͊\f��\u000fo���`��\u000b$*:S����<ǒ�8(;n+�|{\u0002py�4-�\u0006\u0004\nT~���-J\u000e8\u0017s��zS�u\u0014���yl���\f�Z\u0012>�S�>�6��!�\u001e,X\nP�^�}�\u001aQ�>hFQBv����hr\u0006�\u0015�Pe�������r\u0007y �;.�\u001d���\u0019���6���$S~�\u0000�+CkbƭJ��������\t�Ӫ\u000e��Ǹ؀O����,\u0010�\u0012\u0005�I���G�OO\u001e���\u00031ro�n�y�O�~(\u0001q�b{�\u0000\f��r8�\u0007��\fI+Z\n}�4��l�mI��h��YISZ�#�OՐ��Y4\u0013�/�\u0010��\u0001�\u001d@��߶Ty�.���V\u0016\u0012� ��^���d�6�эT�����\u000b\b$��ԩ�\u001bu��)�5�PjM\u0010\r��?Ξ\u001b`Z�UPT��a𑹧�|��U~=OJ{Ҟ>Ԡ�\u0002�P\u0000kJ�JWDZ�0o[sV�h)Q�M\u0007���%v%�&��{���� \b\u0005\u0001JJ�\u0007z���l5��i��]jw���G��\r�J,�0�N�\u0000�\u001dG��.��!�`zmА{�8=�\u000e�y e>�S��� 9�����zu��\u0000:�ddw\r�\u00146J�&��6��ׯ�A!\u0001)&�u���\u001d0\u001d��[-iR\u0007J\u0012+R\u000fQ�J\f�[�K�\u0014�~��B\u000fc�xd|���W�\u001dF�`;V��\u0006��\t\u0013�b\u0006�j��S\n��\u0014�Cֻu=�\\��=)@H����t=��\u0002/�z�Yv��\u001aWb)����\u0014�s*�çN��!�ӿ|\n�A���M�(;u8\r�%�\u000e�\u0000}+���\"�>CqP\u0001�J�\u000fΘ\u0015�:u5�ʾ u�\"B�k\u001d��\\�\u0002w��\u0002������$��\fxj7� ��u=ȩ\u0014�R�=��*O\u0010����m����ڸ�P|�\u000bO�h\u0000\u0004�=\u0000�#��+�\u0000�ߛ�\u0017�\u0001�\u00009F��_�p�O�~���/�D2h���\u001a�+h�S���W��IcCs�D��'��\u0002;�m�8\u001e\u0019��ƒ���G$��\u001fL>'r;���Â\u0007S\"F�#�[�um�$wڤ�\u0003�@�\u0000Z�[��A\u0004�l�Τ$�W1\u0006q$�F�\t\u0014���\u000b\u0011�0���\u001e��ݵ�>��\u001dee\u0014�\f������ml���4h�%�.,�\u0013�d���Ŝ\u001d�F�T�I��]�\u001cq\u0001�\u001f��ϙRێ��=��\tn\r�Ǥ��#�7\u001c�\u0012��\n�Q���q*k\\���1\u001d����=�-H�\u0000\u001dk��o��\u0000#,��G���T���+\b�T�i�\r\u0014��\b��oE\r^B��\u0006]�S��k��/Y��C�¿�އ�y?H�ԥl4ج\u0000�՛�q�k�����*��C�\u0012ā�Pf�&\\���K��\u001cZ���d��7�\b*���Wӎ_J�\u001e�*�h��\u0012C������\u0006<���('ux\u0011�\u0006P�İ�H\u0016�&`k!WJ,M\u0019~C���Bji�����wo\f��z��:Ky\u0000��\u0017*�CIu\u0004i\u001b�;�_�Y\n�Ү\u0018��]���s��3��Oc򼰬��I�IԈ�\u0016a4ԥ�I\u000f\u0012�]�\bo��\u0004��)����\u0003��a��z.�c��+=��it޷�-沙d\u0011��A��۲��\\@Ѫ�Z\u000e�PF\b� \u001c\"�#�\u001f\u0017\u0011{W���\u0018�B�4�k�Vp�\\z̞�&C#$�KE�\u0015�Z�P\b(Ð�n���9g�!�q~>���V�lf�S�4P���S�2��I}KK�䬤�#)@\b����m6*>��㓥��\u00126\u000f��}�����4�Q6�i�Zu��~=X\u0012����b��H8K!{��,iƌ@%�PFn����#�#ow_����\t����\u0006�}_�{�|��3��:Mm����h�][��wW����oh\u0016Qr�S\u0003q�Gb\fL�\u001a)=B���\u001b�\u00063�\fb�\u0013W��ח���򽧒:k�)\u0019�I\u001d7志�0\u0005�\u0011���\u0000�*~^y�i�\u001eE��c�1�k�\u0006��{9��=A �5W��?D����M\u001a�\u0016���\u0013\r�\u0016��d�o���<8�ۋ��9\u001f=��RR�d$�D��o鑳��=����c�~Ek�Mּ��7�yJ���\u0000ʶS=����~���T��=k�2]]YEp�5���\\��3N�ʀ,d\u0010%)��$Lc\u000e`~�]w���qr�%\t�\u0007׌�?o��\u000e�e`�c���X�kZ\u0016�\u001e���=�*��_���iks,sI$����V�L�\u0014~���a�\t��D�#�r���U�����M\u0012}c�<���3���\r\u001b�^S��Ҥ����E�Ӛ��٭��<\u0013Eq\u0004����ՓE�t\u001b~7�2�#]1�P�c��Jr��G\u00006Ow�\u000f�\u0001ϑ��\u0006�,R\u0004�\\�U���˯7�s�\r����\u0000��\u0000�O.��E�����N���zU��.�=}!Qye}op�X\f�\u0012Dh��`F��~yq\u001d��\u001b\u001d��o9�\u0004��N9\u0002(�z�\u0011�\u0000ޛ{\u000e�NaDz�Y6�$j���:\u001e��:e�qA\u000b\u001a�\u0010\u0018(\u0004}�'��'\b���\"B�a`�x�_����\u001fid�6��\r\b����� \u0002T\u000e����s��3<�w����\u0001\u0015Ol��c�}\t��\u0000��:m\u0001��5O��\u000f/\n,{xW����鏦�7\u0007/{����\u0001��ߛN�8��\f�b��M�d����{�������nG{��\u0015�Mi����s�%3���\"#����`��\u001e\u0014\u001d�xW;\u001d$�\u0005��\u001e�4t��\u001d�\u000fo\u001e��\u0007kq����\u001f6���.�|,\u0000�}���\u001e�j�\u001c�A~S]9�{��\u0000��4\u001b��R��A������ƈ\u001c�/�\u0007�R���`;S��I�@���'V��+u�n:�z��2�d��.ms\u0014|�\u0014;�a��îeƈ�\u0015�M!\u001d:\u0011�ƽ{\u000f\r��W3�z&H>�O�7�9h�aVl�?2tp|;�ߦ��>��>�3\u0016�\u0007�Z\u000f������\u001e�\u0014\u00034�7#|���-��\u000f�D�c�~��ڣ.\u001c�O'�\u000f���\u001e�?�\r���~�f�\u0000����h/�\u001d7kH�\u0000�֝��s��\u0011mr�S\u0003\u001cԨ����\u000fO�L,[�!�\u0000u�J��?\fUw�!ۃ���ߧ~�\u00126S�X)�#���~8�̓}�̼�?Ю6߃\n}\u0007��ߘ�녲\"�\u000f���ؿ�\"�\u001f�M��^����\u0007�\u000f�\r�k��z|����\u0010S˶\u001f�:�\u000f����P�qi�����~߇o��:\u0011�\u001a\u0011+�|�J��~��O��\u0000>��;Xy��\u000f���\u001d��m�7\u0007*G\u0010~C�N����k@Eȅ��\u0014;\u0011Ҟ\u0004\u001cU���R�\u001fz�\u0014�\u0018N۠�c�RE=�c�\u0006�»�\u0000\u001e�\u0004<[���\u0000��������\u0007�������\u0011�S�)�v�\u0003\u0015I�%��T�t�߿��\tS����q֧���/-�$ܛ����o����L�?�\u0010;|��v�1�R�}ة�Ҕ\u001f�n������%\u0000҄�QҘ\u0017t�A�޿��l�\t�C�߶�޾�x�Ȑ\b�ФP��T׷c��\u0004�&9o�\u001bZ�x�2\u001b���\u0000��l�Uv9RF����*\u0015_.�8\u0005\u0015\u0014�❪\rO��T���n~\nh�Ԉ����;w�@F'����E�t\u0014'q����Ȩ47慐S������\u0001,j��K���q�\u001f\u001a�|�����\u001d��\u0013cO\u0012=���^9Y�NJ�It�:R��Q��\u0000n\u0006@�(\u0019\u0012�\u0014��j���\u0006��жIt�~~�~���+\u0007�`�K%^�~��\u001e\u0018�{ע\nE�^��A�\u0011�!\u0003(�C��\u0007C�\u0007F�*�q޽:\u001fc҃�\u0001�+�\u000e�@ȵ>�a�kN��J�ȃC�P�=�\u001b�\u001d��\u0006ET\r)�\u0006��=��\u0005Zծ�\u000fN��\u00056�R������A�\u001dFGu[�\u001dv�}�\u001e\u0006�)Z�j֠v���b���\u0006���NF[�\bM\u0015�PҽGO�{�)2�-ؐ~\r��׭v_�O���\u0011cuU���;����r��x��^T��D�$j�$��\u0011@,��**��&4\u0019T���\u001f��h�\u0000��9�o�?��\u000f>X�SQ�S�<�c�~\\Ũ�\tR��_�D��\u0000�Ӽq�Gc��\"\f��FJ\r���a)G&��Nl�Q������Ϙ�9�2�F3�\u0003�;�ߜ�~�za@�VwI�O\u001a�\\�b���$�K\u0012\t\u000bH\b�U�\u0012w=sg9z����\u001c�0'w��s�/�����!�����V�Ҝ���mi8��1�]-���\u0014���\rFS�\\7!�\u0007o��\u0019�;D�^O��\u0000�?%��g\u0015�ť�=��\n�!�\u001e;x#\u0002р*�� ��@b�\bڙ��$e��^�E\u0001\u000fH�}K����Ct��\u001e\u0018�r�j%[�#G�T��D��\u0018�ƀ�.&�\u000e�\u0013��\u0015'i�6�~ǜy�L�д�U�NU��\u0003\u0015��B���P��N(�cC�\b\"'\u0010���\u000en/��^�8$I\u0019������\"\u000f&\u000b\f�4��4��N$і�S(͏g#\u0006N\u0019\u0006E\u0005�*$Sz\u0012#1.\\\u0002���\u0000PѣV\u000eAHN�y\u001d�kH�]�$%[�c�O��\u0004�*T\u0018P�\u0010N+!-,5��\r\u000b��\u0005B��}�\u0007w.3\"�6�Ƹm��\b�\n�%�*=(n\n�>�\"OV�E*\b�}���NbK\r���\rEK��zi������k���pc&�\u0018�K\u0015���F���\u0006���We\u000e�kĜ�q��7;&YU�a�>��F��\u0012�\b\u001e��򥖟�H\u0019����\u0015ͳ����l\u0003+�~#�s7\u001e��k�\u0016z�\b��$�\u0007s�l���˷�z��ܖ�-�\u0019�:��Q�\u001c�}XJ�Gh�E�F*� /��a�O\u0011��\u0000q���v\u0016�3�\f��LK� t���|���v�\"%��vP��.��\u0007\u0017��%�\u000bi�\u0017V��W)��Z����(���Ȉ�\u0013\u0015�\u001b�.\u00038�\u001a�u\r��������G�\u000f\u0012�1\u001fN����/柛��W��i/�v��d��mV�9�b&��͗�㷙�z�@�v��\\\u0018�\u000e�GU��c�\u0012=vx�\u001d9{���W��|�H��\u00148OO3}wܑ�~�izp���`�<�#Xk7s��z,����s��{k��`�}`D�̆\u001eW\u0001�\"\u0019�\u000e\bX�Tre�B@G!;Dr������F=6h�,*Q;�U�\u001d+��o��~H][�^ZԤ���5�-_h��V\t{��K\rF\u001b��w6�k\u0005����z]��.\u001e�Z��8T�Jd�lc\f�j;���t�[�f�(��|��^}\u001f�\u001f��oέ5<��˽Z���\u000f3����t��\u001a��ɦ�I��_�Ao\u0015�ͫ�-UHg�.�M9�^�h �ڞ��\u0000Vt�~N\u000e]���}��?��6��\u0017\u0015�y�V\u0007?䟿�sݯ���e����\u0005W������yD���GW�\u0002�WW��\u000f�~Y����'K��GȴR=��mblXq$+��?6%`��߇S�n�?�>��[��ߘ�����\r~��v���\u000b�vﰊ�GJ|�|\u000f���R?\u000f\u001c��\u0006v\u0005s���H�\"O*�\u0001���H�\u0000(���f�9�w]���o���\u001f\"�������ק�L�v\u0007��=�2�yy?Mt5�\u0000q���\r\u000f���ClC��;�SoP+�7����da�\u0007�\u0019\u000e�\rF��\tJ�*O��\\Ȕ�<@�G��ꚥ�Ȓ\u0011ː4ڴ�զF3&\"K!E�ϭ�!�\u0013?��{��,w@>����t�o\u001f���z,�%�����hV[�\u001e�\u0010\u00014\u001bv��Byc\u0000.Uiޯ��|��5�\u0011�r,�5'�Bc���7��\u0017-*�\u000e��O\u000e�|�8�Ք�\t~N_�\u0017WB�.%��ퟠ[\u0004���Zb. ��T�V����T�ݘG�6�Mm\u0003|#�iS���\\��*�ST��3\u001b5%\u0007SA��\u0003נ͆-���6�z�����2�{WDr��\u0016_�m�@\t��\u001b����p߽��`�\u001e{��Ol�kfdK���X\u0015���oQ�Sڽ�[f�2ܹ�3\u000bQ�F�]�\u001bo�lb�߿��\u0010�\u0000�:��s�R\u001dv�\u001c��E��n�N\u0015�!\u0012F@=�S}�2�\b��@�'p�\u0001b�����\u0010�(;{�\\S2 9<0\u0003zc�G\u0018f\u0000.�.��z`\u0012��r^\u0018r@�\u0006��\u0001���q�:���ثcz��\u001a�\t�\u0019f�M{��㨔�PMW�\u001e?#��L�F��������\r|�\u0000b�P\r�0\u001f6�>[�\u000f�R���Õ\u0000\u0000���\u0000�.�^�\u001f�R\r��#m���\u000bF]�A��{\u0001�tΌn��t�ç��PM,��\u0007��>����\u000e���YZ��ˮ1�p���N��aZ\u0001؎�½N[�8��^�\u000e��\u0014�;�*�\\/POZT�Ӡě\u001ejƮ��4\u0007��\\of;��\u0002z����8(�} \u000b��L\"��W��\u0013�ы0:)\\�.����?z\b���X�y\u001a��\u001d�vŏM��:\u001f��5�����(�\r{�\u0000�\u0018\u0013i�3�\"���]�mҘ,3ZAf$���{�=�ڡ.\"!OA��\u001f�L\u0006�%cҨ���|���6�1Z�\u0002�����#]S�Q��\u0006\u001b\u0001Zo^�烘��^,�է\u001aP��}���A4w�5Н�&%\u0010�\"����������91ې[�-������Y\u001eQj$�ir�\u001b����ʈ oȪ%����xSƟFQ x���n\u0010�j˷���\u000e��y\\��C\"���\u001cv\u0014��\u0003ۣ��}Ғ\u0002��V����S!d���!��\u001e3�쟟m��5�n����)\u0012�\u001e�)׾�\u0007�kF�H�Z���S�z�#t�V�{�w\u0007c�^9\u0015C8�O��qZ�\u0010v\u001d1*�A��_\u001f�߫�\u0002���Ek_�?϶GޗS�½��{��rW\u0011N�Pg� N�i\u000b�ֻ��]�}4��oq�\u0007S�O����m����Pk�&���A�ڟHڣ\u0010�rW��#۽jz\u0011��I\u0003d�ξk��^C�Ǟn@k'�G�\u001e`u\"B$m7M���\u001e0Ry\r��\u0004�e_�؎�\u0007[#\r>I��\r|N��-���@\u000f'����Y��\u0017���B�m���\u001a�ƹ{\u001d��Z��[���Ӵ�^O��J��#I\u001cʉB�v;�61�\f1\n�@G�(�9�6h�_���\u0013Mk}?�\u0016�\u0000[�H�.mnnb�O��F��\nh�\f�\u0017�U�s,�\u001bqt\u001d듑�Ug��i��\u0019_2�\u0017�w�gU?�:\u0014Z�\"hVsO��-���2�FH\u0004ole�ՃIr�x�*���\u0015RL2c�ԏ��]�f�3�x�_LM�X�\u001f.��<�7��%���\u0013[5ͫO�\u001c-�\u0000�\u001ah�*)��\u0015�aZ\r\f���6z�:�Q��\u0000�隕����SB.#�����|��-�\u000bT��X��\u000e�x�ȼ���\u0005�I\u0018%�$\u000e\u0011��\rQ0�\u001d�P�_4[\rF[�1rm!�;}R;���E\u0014EQ�\u0010M\u001c���E�\u0016)5�`\n\u0002��<\u00120�@�\\��1�O;�����~y����1mo*@����Ȗ�^�,��,�� ���\u000f�#]腁�\u00190�\u0017+\u0016�\u0013͆Yj�[\\�\\��,�F��\r,�_�\u0007����$�~\u0012B�\u0003�5�V\\}\u001d�\f��'H�I��`2@�4FYϬ�;\u001f��L��Bn^0���\u0016��'5������\u0016_)�$�RE�iR;v���C\u0019���+yex�\u0005�k�B\u001a�\u001d�DI\u000eL$y�c�\u000f<��\u0016�X��\u0007�\"���\u000eR��M\u0014ޭ��\u0006�Z}X��\u001bz��\u0002�\u0004\b�3\u001d\u000b��χs��O$ƑN-�'�K�\u000fїE��h.�\u0017o\"���3�6\ro,1�0\f��N ���\u001c\u0004eFC�lz��p������C���_��\u001e�oo���ڋǒ��gCk-��-Z{g2�|ֱ��gn)\u001cw\nΊ��J[3�\n��/sU�GS�Ww7\u000f.c\b�f\u0003�\u0001�m +��b�;l�C�OӤ�tǺ����]����;\u0016�+K;}9�b�OF;�J\u000b����x�x��j���=�����bdxA\u001c��\u0000\b5�ϟ���K,�Ftc�\u0019��.���\u001bT����~�~S��n�k�����Y�a�x\u0011���c<��o\u0019^pKq\u001d�K*�_�i�bA�G�7F�O_/�7�5�g��MDKz\u0017�W�]�V�[J� T,�\u001c��\u0005���M\b\f-�/ˈ�OQx:Qx3�[\u001cȱ�E�xr���|;�\u001d��_E<3GwI}8Lj�\u0015i9(�o\u0018܈�\u0014Щ5�r\u0006U\u0012\r\u0012YQ��7�g��\u001f����iz���XyG��M7G��+�R\u001d{�\u0016w:N�>���F=O�?��}L\\I\u0015�\u0013�j������\u0012\u0012�<\u0012�>�:�?��\u000b��u1Ɍ�\u0004x�@���A{\u001eo���r\u000bˑh\u001el�����i�H\"�.��1�6�t��ߡ4Xb��C\u0015����0��\fb&.\n�\u0004�e\u0012\u0006:ၽ�پ��og���B\u0000�b ��������\u0017�\u00008���u�{���meuYa�\u0000\ty���d׶�M�-�%�ޔ`�m9Z�5x����$��€1\f�\u0007W�\u00191�\u001b�v��\u000b�o{�\u001d\f���Q?O\u000f����եd>��J�E$\u0010�\u001c�U�e�$~`�+F��\u0012\u0007J��WG!��\u001b�aO\u0011R)�\u0013��\u001fm!⻟\u000f���X1ȠrOm�H'���\u001f\u001d��3w�Go��u3�\u0017�G_\u000f���?���zA��yev��t����η@h8�\u0015ϛ޴!�o��\u0006��ij�p2���>\u0001��\u001f�l�<\u000e)�ļ�+n��l�c���v:>o\u0003Q��~u���Fy9�\u0000�=����^\u000f��,\u0000�׮���������G��)����/כX}!�<�k楬\u0012���_�i�LV9{��\u001e��1�������\u0007�ʧ<����Q��=\u0016\r�o��>f�\u0017��Jn�c�����]�\u0006�����TT����Q���}�{��Q��n*\u0000\u001e���\u0000���{zₕ�M�n\u0006m}���Dw�Y�{ߥ�*\u0001`�@�3�!�ˆw6��O���N�Gc�\u0018F�̰;$��\u0018��=\u0016�bv\u0007�|3�s�8\r�\u001d����&�u��)Q���.\u000b,rm$���\u0000�����O��.�=C_އm;˄�ȿ-��ڝN\u0011\u001d?�U���L��kV\u0012\u0001 cƍJ�;��u\u0010�\u0018\u000e!՜\t�ɼ�\u001c)s\u0010��>4\u00155$v�C\u001f\u000f\u001cD*�h��\u001b�\t��?�RW�C�2Y�^�>Qxߔ:�5���o�L+�����9��2$�v\\Lr\u0002�@\u000bjT�\u001a\u001d�O�f7\u0000\u0000l�$M���*iBGJ�W���\u0013F�@�e�)�/M��E~��͞*\u0001��Ә�\u0003��}=�+\u001a\b�ͩ�Z����r9v��(\u0001��Mx�d=\t�؞��\u0019�귙'�����Ĭw��������x\u0015/'4~�ih\u0005c���F��fO(��z���\u0000�~4�!��_�����e��\u0017�\u000f�j�H\u0001�����s��q��\u001f�a��z�֗�Y\\$\u0017\u0011#\u0018\u0018\n�A��\u001cq�\u0004\u0013�7d\u0007�`����\u0014k�\u0007���Ze�\u0011�n=d�l�oTm��?�\u0016w�}������A_y6�x\u001c5�T�P����(Ʒ;$G!5O��\u00000��wei;��q�\u0012@\u0005j\u0007Z\u001d��j�P��\u0010.F8�\u0010H�����nG����)w\u0015k�\u001b�\u00038���c��9p��~��D�4\u001b*�\u0000���*���l�{+|q�qr�}1\u0018�O����G��\b���OՊ��U\u000e����ı�����HC0�w����q\u001c�<���T�u\u0007����\\s`����w�܏��p�l�{��N��_~���ǒ�\u0013�̒Gn��>�\u0011]z�DeO��u��:\u001c'��[�Ө\u0000u\u001e���#�JUs=z\u001e�\u0000?��8y����$�\u001eLMv����%\u0015A@�?����\u0002HPu���{{t��\u001e�C���x�����}�FB�j��~��ِ�_p\u0003%z���������~X�9\u0003��\u0000?|\bC\u0018�h>U?G~�:��8�P��߸�w뷍r�\b��\u0013\u0013[#��\\\u0016����>9\u0013Ȃ�H�>]�{P\u0005\u0001�ץF�xdkf����\u0004��O��!.UՀR�\u001b~���*?k.\\�@�\u0003�Ԧ��z{\u001c� ���\u001d�L �\u000e��ԓ�\u0000�>G(�ۀ\u001dQ�\u0018H\u0014 .���\b\u0007b�\u0011MNy\u0002��0�U�\u000f��S���ʒY\u0002�+��4�?<�\u001c;t_'���1\u000fUۨ؞��J�s[uɫ�<\n�R�\u0014�AQ_�\"\u0013�R��;q\u001dOJ��\u0011�B�Z\n��B{��c�ކ�Ԛ��{mZ}��\u0002|���A\u0014�4\u001bП�B��\u000b(~\u001d��7��\u001d�ږ���z��\u001e���ZT\t=�G�oƙ\u0019l�A����F���\u001eJ7A9\"�@߰��)�(�\u0011ߚ\t�\f�\u0000m�����<\b\u0019\u001be\u001f4\u001c��Z�;w;���\u000e�=k�/�zu4܃�v����}Y\u0013�u�O\u001a\u000f\u0011^��\u0001�\u0018���\u0004�T����s��\u0019\u0002$,���Ȥ�Zx�M���x\u001c��܂��\u0013^��H�\u0007c���dj�.�W�(\u0001#ؑO�=��R�G_����@�\\���T\u0014�۷S����*\u0012�J\r���|\u0007�'�w�P�Z��+Zx��\u0007\u0012�/Z�W�w�o\u001a�j��$��2\u0000�Sڛ����dI�p\u0014�jh\u000e�>�N\u0003���]O���{\u000f\f��2\u0017��P���G��A�F����E\u0007�<;S�\r�J��ó\u000e����x�\u001b#�^=�\u001ao�_m�Y\u000e-�[���rcY�<��\u00008�����V\u001a&�m�U����\u0002\u0003H�\u0017�T�zu��,\u0018\\]^j\u0013G\u0014q�ɛ�15NjM(�2��\u0000s$�P��͸#)f\u0015�+���\u001b!#�S�,�<���x�\u0018�d��<\u0015�\u0019',�*;��*Y�\u0012\u0014P\f�N�r�\\�G�e���_��=~m;H�R��:5�\u0015�=��pM\u0015��?Z�InPLm,�n�x&!՞GR��A\u001d���n�\u00102�\u0011�{��c�\u0000�\u001f?&&��:~�6��jP��V��p.��Z^Mios�Y�f\u0019'�y�.�b�5ߤӆZ\u0000k2�\u001c6|*����r��C\u001cq�`˯����|��顃���㲉���Eqv\u001a\u0010��[O9\u0004�X�rrƤ\u0013S���g�\u001c��]\u0012\u000f�}�N�QC��m��yo��om�\u0012(�\u001bؒ\u001eq4�X�6�F��ٸz�\"\rLjz�\u001cK*PW,r�h\u0003t:���V\u0001�\u0001�}��:ꗏ��Y&�\u000bKY]�\u0004[\u0017I�Y���0��bJ��\t6Â��]~C� ���ˋ��|�\u0003��$��X�^v�1�:]O(\u0013\u000fޘ$h,�if3\u0018���DE�$������Nf)�n~\u000f\b��X�,���Q\u001cr\\�|#�.�\"@�ˈ�\u0014�Ff�f\u0015 k�pod[����\u001b]=\u001bC�[� \u0012^r�:�5c�Zx���?\u0010W�H@���\r\u0018�9��!|�w�'�\u0001\u0019\u001d�ŤꓬL�\u0000��U={�B\u0018�\u0003!Y�X\u001d\nr�$�V�mJf$�\u001d�;L[�7ѿ�\fg[�\tk�$��\t���{���a\u0003�4FծII\r\u0010�\u000bʥI0�og0\\}�|��^I\u0010���?��l\u0013M���eW���\u0019�����W2}n�ԉ�\u0002�1\u000eUP��-4@���\u0017]��ӛF�)���@�@��������\u001f^���\u001dA��o�%���}����\u000e�k�^]A;��>q$\u0018�\u000e�J&C}����\u000e�����l���M�ք��>�\u0004*�3�����\u0011\u001b6�H��Q_L�٣,`D��9c\u0005�c�vt�c\u0018d��\u001c��6�y|7y���p�L'���\u0003f'�$oB�C��\u0006����k慏H�U�\u001b#��\u0018���\u0018\u001a�\u001b��\u0016�Nh�]\"Ԍ\u00113��?f0����걋\u0002 z�����|�P\u0004��¼\u001a�{�_\u001d��w���I�2܉���)��oU&�C\tuIY�I�+�{i�MvuP\u0018�\u0000�jq&��g~_��!1�8M\n��w_���\u0000M[�)�\t��ݽ{9X<�����\\'\u0012�4� ��iz0��-���Ic9hf��\u0014����}U����o0V��7��\u001d��Y/��+3\u001cHe���\b\u001dN��\u0011���Ǿ�����\u0010�G\u001d�8Eo[��\u0000���7�ycSm[�\u001a��ɪ$z%� ^D<�%�̺��͸��{�t��\u0010��A$��K'.aU\u0018gB2�xI����s��_\u0017C�\u0010�8��ߟ�����\u0000�=�\u0017^c�����/L�y�~]yn[��&��nn~����7��!m��,�R�ny]N1�Q�����8>��\u001f緆lA<.\u001c��'�q���\u0000T�\u0000\u001a懶\u000f�Ϲ�h�?\u0017���\u0000r�x֝��\u0013]����|ޝ`*��\u001d�\u0000�w\u001a.N�72:��P\u001fa���W6��6y8�:�B�\u0019\u000f�\u0003�槴~�<�~-�\u0017�c��H�c�׭;�M��5#��C�?�/�5\b�;�����_c\\�}��*��]�\\F!��\u0011�\\���:\r�\u0019��W\u0011�uX�\u0007�\u001f���r\u0006�o��\u001fNn}�\u0004���y���~��\u0011\u0011a\u001f�\u001fl�Ht�\u001e~i�\tZ��#�~�˱\u001fP,Ic�ճ�t�4\u0007ޠ��.�\u000b\u0014B\u0004�qv�\u001b�[�\u000b\u0012��Vb6=��L�11�QA$��K\u000b�\u001f��N�\u001e���~��\u0014R\u0015����\u0012\u000f�'��\u001e��&�,����䐴���ڵ*�����\tN4bv6��=;�Z,���2q�\u000f�c�R�A�y��$\\����dڟ����\u0007�V���A~T�C[ۺ�\u0000�L�m�Y��٠��o��\u0004rS��a҇���2����lv\u0016�Hb~����\u001c¥�3՘��[\u000fM~*P\u0001Os�o�31ˇ�6�\u0013V�W\u001dj>�|Ȍ��E����#\u0013�����Br�e\u001d^q�\u0010��v��\u0015�۰�-I�\u0013����\u0001�Ŭ\u0000\u0012�w<�n>��1\"l��r�{7�SX����_a�\u0006�vS��?�\t�F?�^��\u0000=�wٟm��\u0001�+勱bc��Ic�\u000bx\u0015�ZtΎq$\t��n�J�u\u000fb��-=\"Z�\u0000\n�r�V�ޝr�q���NG�\u0012\u0017\u001dR�q��o�&�\u0004tɉ��8����_���i��z�\t\u0007�\b�\u0010>�lNK�R�{FA���\u001f��z�l&xk�\t�<�'��q`�w\u001ce�Z�\u001a#\u0002I ��05\u0003\u001d\\\r��\u0019�9\u0017�/�5�o;Z1ZV�\r<\u0017�Ü_l��=�����s���9i�Y\u000f��?��Ώ�Ec����K�4\u001f��s�qՀ�}>\u001f��T��?�Չ4�rbw���Z���\u00061#�'\u000b!?\u0014��+�ؚ��~�kL��旔\"�=z����#k`��u'�}���\fy\u0015���\u0015�|;x�\u0000�LU\u0001u\t �\u0000��\u0004������Z3A�5���ƻ���-��n����6��\u0010=��F,��$\u0004vﷁ�\u0018���\n=P�\u0011���\u0000\u001f�\u0002B�A��ۧ��\u0015���*�;���\u0000���<�Z�ȑZ\u0001�����l��m�W��}��\u001c\u001dY\u00041�#Wn�?���Z���8�ڵ��\u001d\u000eG�����MkҝF�ۿӐ��pi�4-��Q֠W�\u001f�}�\u0013B�\u0019�V7H\u0002}\u0007���eRb\u0014%\u0014?};�{v�\r��[i\t��U09$'�|�iЎ��\u0007Ɵ,Ɛ���\u0015�#n\u0010\u0015o\u0003ч��l\"�%�\u0002)Rj\u0001 S��䜪[rf6\t=۬U\u001bT�)���p\u0018��_���7\u001a��\u0004����*\u000ej���;�-y\u001e\u0004�~[u��A�d�?$#{�\u0000�܏�j�m��!W��7�5鸥>�Uœ�l7����9\"\ry�8�OΛ�'n�\u001b� -,���ר\u001bl\u0001A��G@P�i]��\u0007}���%ϓ#�S ���\u0012;��\u00126ǚ\u0011�\u0004}��Z�j��\u0006�}&��6o\u0011Zw�Żt�\u0013�Pa@£���Ơ�:����'޾;�t\u001b������5�_&�V���c_\u000eԦ\u0000\u0013V|�.)˷J�w>��\"��� %\u001d��O�O�ӕȞC�{g�D�J\u0013�)_aߗc�.��?��h��4[i��\u001bI�}7H��[���5�;}Z\u001bk�h�\u00122��7\f�$\u00171�fpNo�`p�DL$\u00007����� At��(�1\u00162ѣ�c����1ԑA�L�Rյ=>�c���^�4Z|���8/�l�_F�.#�Zk\u0012D�K�24h\u001eFv\u000e�V��\u000e\u0010���?O#�\u0002A>T\u0001\u0003q���\\�)��Dj�ٺ�\u000f\"l�����\u000f��\u0000,�wZA�H�բ�t��İ�8��S�\u001b��G�Gqigg\t�\tr��ү������Fdc5��wF>�f�x�\u001f;t\u001d�g�\u001cc��J��}s��D��\u00126\u0005�)�p���o���t�i�M��pF�v���\u0000W�Y�/^�X�\u0013\u00141��IJ�A\u0003�żw�#���lMm<6�\u001cn��\\���������ߛ��'uuuK��G�T���kp��\u0018��,��7�c:+4n��\u0007�bT�Y��'�D�UW˟��<�>���8��fv'�\u0011����?����'~c�:\u000e���a�wq\u000f��I̞Eь����\u0000�w���ա�����-��r�O(�\u001a\u0019\u0015x�V9V#\u0018��ΤI�\u0011����7���\u0005�a��sQ\u0013�\u0002\"�����GrK�]O[�Y�~�\r����A��B��~��\u001a�����W2Y�o�%�Q(Y%X��\u0000V�Yw�ic\b��\u001b�F��{��y�D�d��\u0007��w�tn�\u0000�/\r��O���:��E�-|���E�\u0006���F�y\u0019�\u0000(Á�Í;g-�7���I󷝝�\u001b���2�S��ݿ��CK!��41�\u0010;}\u0014'�-���!�5e��n:��v��9��5����6u�n��\u001f?��3���'xm��Z\u001bG�\u0003�N�λ@l\u0007\u0016c���t@8��\u0000��:m.�w8\u0019GG����5��|�\u0001�\u0017\u0010�b~g�����������Ǩ{�\u0004���m���Ǧy\u001c���\u001f\u0007���|\u001e����ʿ<�H�t9����\u001e$����6�>��IS�|̵�A�I��sS�\u001b���ݏ��/�e5���F�x|��K��5 y�\u000e�~��-�\u000f]��_M\u000fo\u0013�t������\u001a&��u�U��aȁO��3��s ��m]Ϩ�\u001f`�\u0000I}�L��\r�{W7\u001e΁�K�ӛˠ~�iP�\u0000�'jq�_\u0019���@$\u0005�˃K\u0015E@������e&b�\f����\u0013\u0014*\u001b}�C��]�ċ���7]U�P�\u000fQ�;\u001e�\u000e�Iؔ�#��_����\\w�ֵ�\u001f<\u00112�v�\u0014�T5�M��6���.#jF�\u001e{�\u0000\f�N�ߧo|��\u001c$�3\u0011\u0007qɋX����\u0000Wj{f\u0014\u0000\u0006��9l�lc}��n���̣�H���\u0017�\u0019��w�?�\f�vg2\u0018�oЭ'{8���W�x}\u0019��鶩sL}(�~\u0000{�{���G�~\n�\u0018��k�n��\u000be\u0013\u001c\u0011�\u0000\"o���\u000eJ��\n�&�(�����;x�ps��\u0019�����o\u001fզ\"5\u0014S�{�޽s\u001f?���|A����k_:Z�:^'��<����k��v+1��\u001e��Jh����O��t}����h�v}\u0016��\u001e?w�\u0016�?�\\\u0002;�;�|(��R�\u0002������rb7��n��\u001d�N\u00007p�sJg\u0015_\u001d����.\u001b��M�ic��\"�I�m��2U��X�wN£ߠ�]�\r0V��^�\u0004���4\u0003��??ՁQL��ޛx\u001a��a\fv�\"9t�|:~���D��\u001b\u0001_��{�A���5x\n����7�\u001a{c͜M�a鬊8�O\u001f����ŗ?r�Z\n�>}1_5&�\u0015&�6#Ÿ�`�h(4\u0000֛���^8���\u000f\u0002O_�킺�oj�=T�\u0000\u0007���\"{҅�(���\u001fy���t_dv�6=���|��ْ����w��\u001eƔ��ʶ\n\u000fR�_���R*(;m�p\u0018���.폄5�:�x��\u0019T���w=�~�n�z{�\t\u0000��bUz\u001eT\u0015�i�;ҙ\\���\b\u001e}U�h��u=)M�}�\u001aB�#Ώ4�E\u001c\u0000\u001f֛xxP�Gf���'�8=A��>\u001ax\u0001�#vcm�1�F�vbw�_}�щ�A�����I\u0012l\u0005=ȧQO���f��l�D�C��\u000f���p�(�\u001b�\u0006����@8������ZWƾ��,\u001c@m�\u001dZ�Ơ�[\u001a\u001f\u0011L7ct��Ӹ�]��\u000f��H�i�Sj\u0011^�w镔ʶB:Ձ�sӧ̎��\u0000\f �LojX�ZP�;҂���#�A�|��w�Z֞4��|Rw;��Z\u0003J\r��;bO�\u0003����\u0003Ob{t�;\u000f�r\u0012�@� $_��=����L�\u001d��d\f�ƀ\u001f\u000f\u000e��Ğ�Y\u001e�\f����m�|�$�\u0001Ke�>;\u0013����(\u0006q�w@H��������+���[��%���jH\u001e\u0007��\f� \u000fW$��\u0003�)S�����+*��H�\u0000��u�s�0y\u0005K�\u001d{mP;x��\u000fM��o�4��m�M~�v8\u0015E�:TmM�}�i�&�T\u000fZ\u0003�T\u0001@v�\u000fj\f\u0004���O\u0011Q�\u001d\u000f�`V�5\"���\u0014��W\u0007-�\u0005�?�N��\u0010z�I�\u001d�:���_�)�$�y1�\u0016�\u001d�l\rMH=�v8*�w!r��\u001d�����W#|�Jϒcn�\"�ocA_�l}��|\u0017�\u0000?S�1\u001f�����\u001au�����W��k/�d��(-`\u0012+����0\u0003�\u0005\u0002�R\r3\u00131��{>�\u0018\u000f;�_\u000e��9\u0011�ﭾo�W˫`ڍ��\\K�T�?�s\u001d��\u001a���FD��o\u0012��U`K9S��y\u001a\u0007���\u0004�nO���p����։\u0017�nu�}CNk3\u0015���[����F��D%T������\u0012�H�*�\u001a\u001a�H�̎���{�W��Ʊ�\u0011\u001fI�9|_��\r�8\u000f\u0004���\\�\u0005�IX�f��\\�ꪹ�c$3�p\u0014c��fn\u001a�O>_��s�F^IO�3Ms���ZZ�z�\u001fS�,�(>��\u000bY.&E/\u001c�\u0017�*�\u0019]�3J�:���\u001d�l\\R�\u0011\u0000~��7���iڜ��^�Z\\\t�\u0016�9�\\�mw\bu�����]\u001b)&��v DhA$\u000eY�e�e\u0004�m�4�\r8�\fȡ��\u0017��~jir[=�����=��i�[8g{�Z�*ZD��M:v_M�C ���\u0005\n\u0000p��rp\u001d�ǣ�â�2D���o\u0010�\u0007�,�D�Rٗ��7�a���ȆR]c�ۺĥ>\n�Ո\u0015#4�2�GnoE�1��7���7�ڻ[([�w�O\u0014�u\u001a��H%�s��b\u0001k����w\u0018��,��S�u0�v���};�vr��\u0011}f7�$��(�r.��&vI��\u001e$1P�N�B��o��\u0012�vw\u001a<��ly�+j\u000bkye&�$��\u0015�-=��\fL�\u0006:4�'۵��ۉG\u001cCt4+Lyf<���\u0017�+�V�wډ��nWM�ۜ�_ҍ}\u0016$�\u0018z�'� \f\u0014+��Uj6�bLɧ,z!O�4O1M�.\u001d:�X6����4jR�R����h�6\u0010��Og\n�D\u0019\u0019��+���3qh���<��\u0001������O�S1���=H#��?gG��K��Ҥ\u000bkd�v�s]E��\u0002]�\\ZϥL�\u000f��5%Y�Ƌ�96�\u0016R����J�6�֛Y,`J��\u0013tN۝�\u001d�Ȏ[�\\�s�Ƨ�k\u0017?��\u001dJ�K��n�s�)!v�}wF��1,V��\u0000t�ՠ�2\u001a�\u0011�\f|����>��ݹe�&\u0018�1\u0004C~�yX�����&3j2�=��\\խ5�\bu�Hl�5�Re���Ix%����JE�2���3Tǹ��48!�\u0014q��\u0000~\u000f�x�Fy��)�Q���?�/�Y�[���^�.�<~D�Ź�\u0016�\u0000S��v�E�\u0011�m�\"��G�T-)A�����\u00133�����2\u0010$C/�N�:���R�\f���-2a�FG��}�n�(ʣL�ڜ;��\u001e��}��_��c��{�� �w��\u001c�Ơ�\u0000��h�\u001b��\"�@�ev������η��Ӊ�P{����t�\"���s�Ҹ\u0019yuz\u0004\u0003�b�����l�3�؟�\u0007�;m�'���\u000e�������n\u001e\u0000\b�-���~��R���{��0����\r?���:\u000f՝ބ�\u0017E��$�O�{�xrq%���f?���\u001fs�3U�\u0012�g�\"߈n���\u001c�R\u0001��jw?�sȻfU�\u001d��:]�o���\u0019��\u0000��w�ݶt�Κ#�Xy��\u0007���/#��N���?\f�3�\u0011t�����q�\u000f߹���w��z�����e�a�{\u0014;��WJ��\u0002?���㞋\u0011��\u0003�y�V�n6\u0019n ,0��+\\��j|���:fhkI��GA����UA4\u001dv߯��c��\u0018\u0007a�Q���*�\u0007�����\u000f�QQA�j�=zv��Cz�x'�ݽt�Ϳ�Rv�;~9���7��rc?��'�H��+�\u0000k���`\u0003}\u001d)��Y�����X��(P�(?�o�}�2M��\u0000�*#n\u0005({\n�\u0018�\"U�\u0006\u0017��E\u0001Pv\u0004mӨ>����z��\u0000K��d\u0013/\u0017n��<<<*0\u0001�Im���\u0000-\b�hi�%�K�d\u0016\u0003��K������}I\u0017���xߛ\u0015�r%=wo�}��P�g��\u00053�\u0006�=���=v����]i4l�����Fz\u000ek�7�\u0015�n;0�߽H���/H\u001f���;��޹��>��e�8Q�ۦM��)=�?��+�QЧM�}�\u0000��|Ѿ�Tl)�}��\u00031C��|�\rm��\u0000T��\u0000k1�\u0015�o�`����ij���ۏ�}�)��}��\u0003�w,�,ӝ�zhs��\u0007��q��A�D����\u0019�vV��\u001c|�_\u0017Ш:m�)�q�\u000f6�P:�l}��\n��O��1D�1-B���oQ�>�p\r���\u0002wI��\u0004R��Q�Ah?r\u0006e��ڄ��\u0007��ϫ\u0016?rx�\b�ߩø�\u0014}�(��c]���Ȫ,\u0010\u0014\u0013���߹�\u000e�Io�A�N��lX\u0012R6\u001dw�6�F���X�\r���\u0000?������E#��W�\u0011��[-\u001a�����\u0000/�֘�Ba���\u0005A\u0005%�j{m���\u0000C]\u000f��\u000f��8���%\u0018�w���+�<�\"M:�\u0006��\u0000H4ȥ��T�PWo��bR���\r��\u0000��\t\u000b�#���j\u0005OZ�����ӦD�_��*{����\f\u0007��l��۹\u001c�x-���������\"I��f�F���\u0000B--��jӥG��\u0007��Q#����ꅚ\u0005Vb\u0006�G���eR�i�\u001dJ�J�\b�;{�{W+\"�(���B]�\bh;\u0012|~U\u001e\u0007\"�r`����'�.���\u0007=��n^����S\u00184\u0015�a�b:�V�֙��׹�E\r��R����}�\u000fڃt��\u001e����o\u000f}�J\u0011\u0003ǽ+QM�����\"GU��X���ש߭<\u0007�@���\u00047�7}���B�#�\\j}�ڽ}�w�\n\\jw\u001d\u0001����$P\t+\nu5���ֿ<\u001fr\u00070�+J��\u001a�\u0000g�p2�\u0004+(\u0003j{�=}�=X��C:\u001f\u0000O�s��Y\u0003��H�\u0005E\u000f�z��ִȝ��d\b����\u0003�|:��dJ%� �\u0007sJW�\u001b�\fI�Ր\u0014)/�z\u001a��\u001e�/z�ȓ� \u0000A8�\u0006��\u0004��O�ʤ7���d˹޾>\u0007��8�8HJW0> u�m޻P\f��.���v\u0006��^�\u001f%@J�Clkۯ̟�*���PmU�������*�n�j������'�w\u0000����~�\u0015S5ߵz\u0003S��eik���=)J�\u001f��m!On�����\u001b���{�y��\u000f���:�����]ӥ;P���H���\"��\u001e��{ҹ\r�5i���5=����\u0019w�'�{�_��'������o�4��\u0006�e���}8�\u0017\ri`/<�(���s�C\u001c�\u0014��~\u000eG�\f������v\u0010�\u0012}����\u001a}��]���G@I��,�/SK��em����b�֟��s7��]�\u0000,��\\�\u0011�>(�\u0014%Z��$�V�\u001d�\",J'���_�g�㞵���S����@��k��\u0004P���\b~�moo\u001d�7\b�*�+!\u0005���j@\u001bf\u001ePbM��~�|rx�\u001b\u0001Q�\u000f�|�p��� IE���=XӃ�r-h���J��\ty�M��*��X��Ő��>ݜ\u001c���ry���_�~��\n�O��qɮ�LU�)j��?\n}wU�\u0011'Yu�\"�֪B�ܽR��qg�\u001c���z���{�9xp�\u00027@\u001a;����C�?T󮩫j�V�\u0017�.dy\u0016��oZ\t�b��x#�����$��p\u0017�䐮�XqG�V��9x�ڼ���ϧ��MS[��̲��2G\u0004PN�����h\u000b�\u0005�1\u0012zq�+7 As^U\u0000f�&{�\u0014)�\u0018�������!ܓ\\y��\u000f%��K;\u0004\"\u0006��H�\u0018F\"x�F�~\u001ap5\u0014 �\u0013D�\u0011DF4�%���&W����Ŋ�K�Ld�#�4-\u001e�Ʋ�%_�\u0000�Ƥ\u001f|���H\u001e�e�ɞ\u0007�l=�@�\"/��[f�k�2�꼄�\u0007x\u00168��O:0~�~��͊S��^�G����\u0000\u0013�,<�\u000f�oh�\u001d����\u0015����9�Y�3�R�,�F\u0004�JPTS0��<��\u001e�\u001fI\u000fI�\u001f��y�����\u0011�h.l�Ff{\u000b��$����7k\u000b4��$A�\nP�\f2��r�\u000et�\u0011�3\\��=~g.�m����-�:zG%��DVx\u001aX���:|Bd���$H䢡W �n��\u0018/�ːu\u0012�\u001c2&;Y�m��\u0013c�\u00009\u0003}�n�ұ��]:\tY.��$\u0012̶Ȭ�\u001bEq\u001b���Q�M�\u0019GJs�É�}�\u000f����T�܎�����\u0000����f�-��\\ܥ֐�Ej��,V\u000b�����)��\u00014���2\\�*\u0016\f��ُG���J\u0004J<<�ʫ��'n�V�\u001f\u000e�\u0015�J�q����'����o�63i\u0011�Q�\u0015���U��~V�;\\��'�ͅ�vD�$�9�\f\u0012��\u0000�\u0010\u001d:\r/h�p��FTH�w\u000f.@����h�?[\u0013!2sY;o���}�j��\\���O���\u0007�G��5�ԥ�I5�j�;'����N�\u0000M����D���[�\f�'҈H�VQ^�A�>,@�\\r7�\u001f?wNo\u0019�=�,r\u0007OR\u00065B���<��\u0007���4/3���i�C>�p��4g�v:���A,N�\u0013�\u0014\u000b\u001f�H`�dМ��0�\u001a��|��GE\u001e<7#[}�����ǚ��mc�][�\f�\u00109Kh�\u001bI�\u0016+YZ$�w�&A�?���\u0015�J�`\u0000��0㘢A�#��]�\u0000���-\u001e�xM\u000e��\u0000\u0016\u0007����\u00009���kN���̺.�gy�i�L�q��<�A���\u001b�A\u001e��,G��'\u0004@KrZ\u0003�J#\u0016h���*\u0004��\u0007���_�i�\u0014r�p�k�#ݿ�3���i���5����5;;��'3X�\u000b�e�V�I�۲\\}ynm�*�n�m�jeX�\u0015�tF2�'\u0011Dǿ����Z�(e�$M\u0002y��tv�U��_&y.kҭys�\u001f.�;��\u0011��\u0016��VT�J$L\u0014��I\u001d3��\fr�\u001f��\u0000K��\u0012&���MZ������\u0019�r�h�_\u000fk���,q'0zWsN��=�O\u001c�`~+�g�;.A�\u001a����S��jȁ�\u001e�D9S>�죔]{��Nit��[� �o���C,dx\u000f�A�v\u001d�y8Y\u0006�Ox�\u0007Ÿ!�V��\u0003��6,�\u001a�`\u001f��sf9[�[�?3�\u0000���?��c9��?�>�c��;���4���w=��O\u001c����s۽�@����\u001ay��t�\u0011׶wz\u00128G���\u0000�L�?\u000f�{}����8G�μ�߹��V�\u0005i��Ґ8�<�~\u0011��\u001f�y*�t��x�ld�\u0000\b�\u0015=\u001e�?�|�q�L����)�o��x�7��k\u0004���?�zw��\u000e�\u0000v��g>�]&1�}g�\u00008�\u0017�X���7�\u0007C��f��W��4��:~�iq�e\u001e��O���E���.\t�Y\u0015�5#���FY��\b;�E\\[׷����f5%2�V��\u0007�ۮ*�{C��O�v*��_n��jb��S֝}�_��Ux�{Sj\u0011ӧ��%\u001e{�����kNZm����\u0000Q���\\��{�/��-����u\u001a\n�\u0000�M�\u001f\u0017oj�'�VIwq\u0016��HJ�\u0002� ����\u000e� \u0005\u000f6]T\\\u0002�v\u001f@�J��8\u0006��\u0007��c\u0000�����a�mN<�����Z�Cߵ?]i�]�\bc˚\u001f�%�Mk�o|��x�s0�\u0016\u001bd߽`:\u0007�֣5�>�n`5ɜi�j��S~����̑�\t�L��������.��������Y��d;��::�G�@G��\u001e��c�CD��j�?��X�Lq��\u0000:f6�tQ��}��,���O� ���\u0000���3�]��2E��(�G\u0013�\u000e�<��n>m����o�0�G��\u0003@?Ґ�g���\u001e0�'?\r�A}��@)��m�Wo�9�vQ���8�F�}Q�gF��R���}\u0006\u0015�1�\u000e�\u0011.L+T���#�ڞ��n\u0016d�1?����d�-�~k&�C�?οNZ\t�\u001d\u0014��ū\u0012\t��=��F\u000e~�Ġ��]�\u0000��\u0000w�C��k�@�zu��dZQ9,)]���\u00001��ف�q�\u0000��?��v�~�%R\u0018y\u001f��\u0000\\Y\u0001i�A�~���\u001c\u001c��������׿���KD�\u0006�;l6�v����I۵+�o\u0011�l\u000b`w%7MZЊo���bi��\u001e�I�Q��k��א���\u0013�����>x��w���TnE\u0005>���\u0004��\u0012�E(MG�߬`���me�a�WqZu����\u001f�a�\u0014!�\u000e�5�����Ko{(lm\u0012È�)� @��3$�y����n>�\u0007��v���\u00074��1AJ��dA�\u0000GQ��v�2����L����A+��\u0002J�??��)��nj\t��b���:l\b\u001d��W�WE��lµ\u0018��=\u0007��võSY��\u0000���V��k�}��\u00075��k�\b�5����m�\u0002�z%iS�m�J�?�\b�S��\u0000\u000f���۠��t:������F�\u0018\b��\b����\u001ax����+����'��׷]��\b�L�`\t�M���k�������B~G޽��\u0007�P̪>u4\u001e\u001e�\u0000�\u0017�\u0015֕�v�_�\u0001Z\u0015hV\u0002�t4�\u0005F���!\u0001\u0007 �-�\u001f���_\u0017\bQޗJ�������W\u0001\u001blϘ��t�T�z��{��\u0015a5��/�\n�n�s����w�ܗ�Zo��S�*��e�D�Q^]�O�\b�Q�j�\u0017�4�Ȣ���4�fW�\t|�֢�\u0006��jz��b�\t\u0016��;���ʥޔ���ѵ>!߯jd:*\u0016@zt�Ei�=�\u0001�����w��\u000f�\u0001�L���n�S�\u000f�Ǒ|��oo�k�B�\u001c\u001eh}U�M^�T��L���Ӧ��,��پ�\u001ca�2r��\u0003��=N�\u0006X�\fZ9J��\u0012�\u0003�\u0012y\u0012F������\u0000g4ߒ\u001a��s��\u0019P<1\u001bm\u0011\\���Y?/<�u\u000f=���[Iq���5�3\\K\u0013^ijR�Hn\\��\n �G\u0018Ȝ��H&����@~)��g9�\u0001�'��O�c�����N�΄�-e���W��ۤkio-� !}KY%\u00020�\f6�ns\u0013Q��(��\u0005��\b�\bއ��~e[yF\u0018\u0016��5�������7\u0017\u0013�\u0005��6�4a}(gK�a�� Q^D�\\L��\bz�ȏ�'7\u000e\b�c�zx���Iy������y'k��:��7bK�癣\u0011���a�-�\f���\u001d�D*8�Z��H�$�\u001c�\u0000Iws�2D\u0000��9m�>\u000f�ԟ�^b�5�*�\u0005u�\u0000�?0��/|�e�}\u0002��'H��(����c\u001a�>E����\u0004��\\A4�\u00037 ˜�\u0012͌���4dv\u0000�Y��\u0005��\u001e�x9eS<����������h�����asi{\f��?Y��������'���/\u00042<�\u0005DfRO\u0010F�X�\u000f��\u001f+�Myr���{�����O\r�\u0011^�A�i0�@K��&6��\u0000\u000ful�V�\b�ȯN��8\f���t�1�\"D�(y�X5HUJ��43\u0005_^\u0001\u0014�\\' c\u0012K\u001bpdVZT\u001a���C#\u0013�\u001e�c\u000e\u0019D\u0018�3//�I,���P��ʢ�8W��UǤ�/\r�1��\f$\t\u0003�o�:�-�v��‘�E�\u001cHUޑ��\u0010%?y\u001d\u0006�\u0000\u0011,N��ID��d��^��K;�x\u001d����ͧ+\u001arK����k�\u0000\u0005/t\"r\u0015��\u000fqS�fDrwX�\"�:H�\u00002c��X\u0013[L���\u001f\u0004`�\u0012�\t_ӘK\u001cRP[2\u001f�\u000b�\u000f�W�f`��\u001a.�]������Z�մ���9���FJ0vD2H�Zr�!PX+P\u0013���\u000f.n�G���\u0010�/�\u001f9�zv�wiF�f\r\u0015��k2�\b*�j�\fb��$o� c��[�eG�8���E�����\u000f78�>_\u0006F@�F�����(�\u0000�B�D�\u0000��m����1��׷���\u001a}:�Ao4\u0006�- U�e�#��A�\u001fQC\u0001�4z�\u001265#���w;���\u0006Id��o����H�\u0000.4mg]���|�.ldk�\u0000>�����=A�\u001b��on��帽\u0013��%Ρo�\t����gS\nQ�\u0003�i%!���\u0018�V�ù�u�����2���\u001e_��/^�4�/�\u0013�\u001c�Zn��X\\�\u0002����Cm3�l�ѣI\u0019*��#n��K4e)\u0019���@�\u0004����/�\u000b��\u001c�5\u0015��\u0003��֙�\u001d �w�����*��L�<��pr�\t\n��I�vބo�~O�\u0011���\u0006�w�L\u0016��D�ĩ`T�\u00007��:g\r�$D��7����\u001dve�[��\u0013z�?�ߜ�� �>��\u000b�U����\u0016���\u0019�vd�\u0003��e��������}�~��:�9޺���Q\f�%<>���]�͸;8LW�\u000b���<\u000f����O�Ϲ�辠���\u001a����\u0000\r�:g�d5�{sz���o���q�I��\u0000:{�u�#�{�\u0016��L$?\t�SƝ�����eC�«y��\u001a��N�u�?i�\fr.F\u000eo�2%\n�\u001f\u0011�\u0007�eb�2\u0015����(+֟/�L��\u0014<餒I��\u0002w���Cڔ́D^�M\u0019l��*�4�\u0007�Wm�dm�%�����|\u0000sQ]������\u0002{��;\u0001��\u000f=��}V�\u001fk��\u001d��4 �'�g4\u000f�3+\t�\u0010j:�|?]\u00009|&*����u}��\u00008��D��R��x�=i����\u0019\u001d��7�?Hth�g\u001fO�\r>�����\u0017�\u000b\\��������\u0018V֊D\u0003�n���?\u0014tQ��~�w���\u0014���\u001b�=~�{�@\u001b݈y�Gդ���\u0014���� Cɲ?W��o�F�|�\u0000$ot��\u001b�\u001d�y�m�\f���\u001d�\u0018�o��?�2\u000e�m��t�\u0003�t��o\u001c\\L���;{ڏ՝\u001b��n����UFr\n\u001f�\u0001A>�\r�\n�?�����\u00072\u0003`6�}��l2��B\u0006y��r�ýrU���Ep�k�\u000fN��\u001e[��@u5�ҽ�?\f\u0006ɾ�l�pw�\u001d;���LGr�[ �_\r�zһn#c�&'�\u0010�\u0010O���(<���\t\u001e\u0000�\u0000\r���昞���)J�v�S��6 .�\u0000�\u0000x��(>iK��О�ץ�\u0006�,�j\u0012\\�\u0010+�~\u0018�t[\u0015a\u0003#���\u000f낖��\u0019�a�Oǿl\u0007�|�r�-\u0005{S�o�\u0002�\u0012QaN�ϹŚ&�\tm�����\u0014ȝ�<�!\u001a#;Tm�����\u0001\u0002�}룇�M:�qڟ}6�g��$\u00106;�DY\u0010W�����\u001d\r�]�|R+��5V��N�vD�w\u001c�{�$��r �~��Ҿ9\u0003`�\u0015��-H�j�\u0000\u000e���1�\u001d��r\"GŻ��%A�\u0003q�W��\u0003\u001d�����\u001b�oRJP�M}�o��$w��-����X+�B(7\u001d����M�]Z�\u001b\u000e��\u001bw�}�U\u000e\u000b���WE\u001fx ���Ԍ��\n�z��_\r�#z�諊�v\u0003q�:nG]�8�ן�̿�+�u����#���7;t\u0004TS���C��G�c\u000f�O�x\u000e����Z�������~uȑK�¢������p!\n�����x\u0001�����\n�I�o����\u0018\u000e�\u001eH\u0002��@�)_z���v��|�2�I|�\u0011M�_����\u0011AGz](����}��\u0000`>\\�\t5�J:�\u0002�'�{T\u001e�\u0003�t\tZ]*�Q�}����$z�J_\"�n��������\u0003��R�F�b6�'��m�\u00050�[�_-w�āڴ?�|��]'RN�\u001fq�u�FF�P��mׯ��:\u0001�%\u0006�\u0000g���l>���ڡ��u�~�����L\u0004��\u0012i���\u001f����\u0003�\t�jt\u0004��`}8\u0015�bH=�7�=r\u0012庀/u�)���N��J�\u0019\u0003�גM4\u000e��DZ�#�y1!\u0019\b\u0004���zw\u001ddž\u0002ʸG�%�\b�{i\b�K\u001b��Q\u001c\u001a\u0011�Zx��h�A$�\\�������G��\u0007�����M�\u000e��y������E��3P�y��\u0000��\u00001zZ͉�ln9Y�������\u0016�У1V9��:\\Y�'&�\n�b�8qu�I\u001b�\u0018��\u000b����\u000esä��},�\u0001(ݍ��\"\b�u��]n��5�?��O�?0ZX�\u0007�\u001e{��ҥ\u0010-��k�\u0018�{\u001b�!�����\u0015ʺ�F�<@����'\u0014�����\u001b\u001c��_����I��\u000fjG�1\n�g\u0003�\u001b\u001a�|@�ꎳssc\u0006�wg�Eae�C\u000f��\u0011h�x]���R\"��`���\bUb\u0005\u0004��&�����q������o��{.�j��^��mlm8�\u0014r�\u000b�4�2H�g_E�X�6\u001c��ˍs\u0016B\";���\u000b\u0015\u0011���\u001f4�k�F���^Ҽ���\u001aYi������A�mK�b(})4��̗�^�t��k�DiLNμ\r\u001cW\u00022e�\u001d\u0018��6E��9���W�(��\u0013�}F��\u000f��\u001b�5���o�%�\u0000��Ѽ��\u0015�\u0000>��/U���q'T��\u0000(<�\bY�\u001b?�Mg�\u0011k\u001f�\u001e����E�y��-R�9�I��@�ݜxt����c�q��\u001c� F;B&�#��\u0011\"l�^\u001c\u0019��\u000eʔc��?Q��̓*2 n\u0005��w\u0003ſ��?����W��巚?�\u0012<��3����1yn���>x�����<��Mmf�R�<�|��\u0000�.��ⷪ�\u0010^��\f����(�\n��\u001c\u001d�\u0019D�-V)�xG\b0#�k~[č���O;������:��Ɏb���2\u0007���GJ�|w�\u0001�\u000e�z��8�\\�-��<��)�����Z�V\u001eZ�<���t,��Z��k�+x\u001aY\r��Hah��\u001a�������}\u0006�\u0006 d�NB�\u0000\u0004F�R5ʺu'z\u0002���a�ɒ\\\u0004�\u0014G��F��\u0017���\u0007����\u000e��=v�M���!,�\u0002'�`t�Ua���Ս�&���h�xv\f~�NcxX�b\u00199�ט�����ś>�D\u0003Q�]\u000f���O���`�+VQ!i#Y�q\n�8�\u0018\u0000\n�Xn��X}\u0019�qF<�;���,�De��&��gn���3Hd��^\u0003���\u001aD%Z$��N�i�ny\u0003Ҡ�U��\u0006Q\u001b��gh�� ��_�_�\u001f�z\u001a~_E��\u001ac=��Bt�L�(�eͲK%���\u0005[�\u0002jrq�X��*��1-4<]7�$\u0007\t�}�\u000f>���pǧ�~X\r�����\u0007ݾ�\u0000~������&yk��k��[q\u0010��i}FjK\u0019h�(�!�Q*)�љ\u0005H\u0007b2�\u001e,�\u0018��{8�ыO���8b:�:�\u0018|��%�ͮ�m��ľ���D��i\u0018�#�a����W�[Ÿ\u0014.EEwX4�C���������?\u000f.\u0017[�@��Q��\u0003ϼ�|��|ͩy���v��C�Y����jq�\u001dݎ����=[\u0018�l�\u000b�Ț{q�r�PA&�\u0003q����\u001b�T\ru�/;\u0003g����]1��v���˧\"���q��\u001b�z���h�]���b���X4� �M���=�ZE���S����M�w�`��g\u001b����.\u0016e\u0011*)5\u0019��4��p8�\u0004�\u001f#b���WF�'�\u001ao�cÛ�\u0012��\u001f�{�c\u001f�~�y'�r\u0003�V�\u0014~~�\u001d�����M�]��7��2�.�M[��b����������_����گ�t�.�꟦lf��\u0016�=9\u001a��4gK�d�\u000f���\\Dw�@���'�\u001c����< d�\u001e\u0000�\u001ccx�yq\u0003�>�=�҉��'�<�c���}u\"y���P���\u001cY\\[�y氿�X�O�\u0017\u0011�q^k!,�CZ\u0015ʎ\u0018�#����;��jNl�\u001eh��\u0000�\u0011C���~��\u0000�?y�N��͇��Atn\u0016\b���}\u0014�\u0012,2\tv-[�JI��\u0005��W:M\u001c�\r8���۞�\u0000\u001f.g��{g\u0014\u0006��d�4\u000f 9���7��9�?�˿2A�O���\u0000�\u000f0kP]\\}W˷l�D�[��$k\u001a�\\�@\u0002�$v�1.�ꮃr\u000fJ5\u0010�L��*M�pyX�k��\u000f,~^C`��\u0011�J\u000e�\u001fƹ��I\b��X4*��O���\u0011E���v5޽�G-��\u0018�\u0001y�wT����w��z�Tа�:w�?���ũ6owe��K\u000f.h�#�,�[����٨��,g�v��r\u001e�c�|��\u0015@\u0015�\u0014�_כm7b\f\u0000p��-q��T���B���\u000f�9�ä0�Ş�\u001eL�)�.�\r��\u000f�6\u0003\u0014��\u001c~>���f\"�G\u001am��sW��\u001dDi���\u0018�G/�����H ��޽��~Od��S��v��H�\r�e��Q�\u0014S�����\u000e��\u0001��ɬ\u00126J1��T�5��}�\u0000,Ώe��Hb�ǖ~���\u0018�\u001d�=�\u0000Vcj;\n\u0019�R\u0016\u0019GY\\��'̿���ñ�\u0016aR{ҝ3����\u0000G��'8l7sc��qƢXJ�8���-[���^�图��;K��\u0011���Z̙��6]'��~��s��\u001a\u001e���nr�;���.\u0004e!��ߗ��V�WjA\u0007\n�*�G3{?�qh���2�s$nv}#\u0005��m\u001aS�ҿFt\u001c\u0007¯6�4�ս6B;\u001d���\u0000o%\u0001D\u0011�\u001b&rN������̋6Ƭ�iG�>�n�^\u0015#'���p_R�#��\"�t���}��+}Q�Ij˽p��\u0007�Q�_\u001cl�Q]��y������F^aՇ���d��L�����\u0000�\u001au���\rh9M+HISSS�\u001f����q\u0016��ƫ����\u0000�?颿�jObP���\u0015��H\r�G%8BY'�\u000e��\u000bAֻ.�\u0000?\fc���XA�\u0012P\u000f�\u000b`\u000f��<\u0000���,\u0010\u001d�,\u0010��\"�\u0013��?�)����H�����\u0000�\u0015eC��: �݇������n�u\u000f��m:꼬ի^����\\�h�;�WF�a\u0011\u001ei\u0004_�zR9o�&���#��Y<\u0003v�\u001d�Ma�\u0000�p�\u0010�X���W�g�����@X����%�ߗ?���X��#�\u0005�\u001aw�t�8�1\u001b�����Lq\r�hN�\u000e��\\�c<1\u0003�\u0013�7K�i�7�x���$\\s\u0003޻x��|����^i�2��ӄM=vL\u0015�\u0003���\\�iV�d.�e \u001a��\u0007~�;e\u00191�X\u001d�\u0012��\u001e%�~W���}rKUw\u000e\u0018\u0016@{�l�j{3\u001ebg(�[c���M�\u0006�\u0002\"�E\u001cE\u0000����L��`\u0018��\u0006\u0013�\"��W�\u001f���6�\u0017�\u0000O��|UF`x���?,\u0005�������\u0017�w��\u001c,��i�Ph7�N��O��X��5w4\u0003��X,\r��ϿS����1\u0007}���\u0015�\u0000:\u000f�\u0003]\u0015E�^�O��ĩ4}�I\u0000�?��\u0004�c}�7\u001d�|�{\u0001�>�\u001e^j��o�\u0001[ڎi�:q�~�����\r�\u001b�R���k�Q�7�~�,v@k�z���:���b2�M���2�u�Ym��~�Zu��Y�6�5�\u0001ڂ�\u000f\u000f�>�\u0000!\u001aܐO\u001e��\u001fۃ��\u0005\u0005-�.�������&�W�\u001d\u0001�}����A�H�\u0018%)JR����Ȑj�6JF�\u0005 \u000e�;w��r�\u0003vy���t�T\f\u0001�=~��|� ��Y^_�w\u0015�+��|�ۑ�T$�✘T�jS�V|��7�J�>�*\u0005?\u000e�>�!W��ۨJ�fj��\u001f\u00026��ϒ,��E���]����\u0000\u0005tl������_\u0012�?\u001e����\u000fl��l�<�\"Uz��\u0014��۹\u0019\u001a�'$J.�\u001d�S�Z\u001f���*��U@�l{\u000f\u001f��*�:�����<��\u0015�������z��jh>t��1<��H��{R�+��l0\u0011�M)��ҟ/�\u0015\u0015Ȓ�j,6?2z\u001a��>��&�\u001bA8ڣ�?���w\u0018�B�������\u0003(��9\u0000�\u001f���k��5�H��$�E���W��z������K�^�=v��J}\u001e\u0019Y�\"lZ](ݫ�\u0007m�{��\u0001�&��\u0001�-�S��\u0002�p<\bۡ\u0019I����+ҵۿ_|I\tK&�\u0006���|)�\"�uT\f�ob>����U\u001f%K�^�Ezt�Ɣ\u0015>\u0019\\�$ �~{����[�\u0015\u0006�jl7;�\u001f�LB�\u001f�oo���?\u001c\u0005*\u0007��\u0000/\u0013�Q�\u0000-T�5�7�����ȕq;�$��<=�r\u00199'�Gù�ƛm�\u0007)\u001c�����n�T�:�d�ⴃ^�t+R\b��w�>\u0000�<�;M��d�K�-6����n0\u0005�������?�\u001c�^�\u0000���\u0000�W���,��?;F��G�5�E�}wF�\u0005���73O�I����a\u0015M\u0006Wٹ\u0006��s��Yt�(�\u0006\u001e��M��\u001fB�sQ,���a��-T\"?����\u0014}�@����7��)<��\u0011t�}\u001b�@�t�(`e�P���t���l���d�R��!#s��m�3O�\u0013�Գv��<���\u0001;|^���3��Ǧ4q�B�^:<@yV����\u000b�s\u0014���7n�\u0017����`��\u000bF\u0010��`�[�B\u0015Z�*A\u000b�9�����x!�H\u0001��\u001c�C�5�α<\u00166��D�VG�'��G�h\u0005�Ҵ�G���_\u000eڼ� \u0019H��i4�\u0011Bʝ�����\u0017�Q�kMRĕ������i ��q\u0003L�\u0015�\u001c�!H\u0006:��\u001da�+���e�\u0019#R�|^۫�~y�?+�?)�\u000bm8h�1�5���i�\\L&k�����;`��J�\u001b5^�'2�v�mN�i�p�*߾�\\;'\u0016�V5D��~f��+��y~}SU����G�Y�뗖�h��ɧ,}A,V�o\r�\u0000��J��X��I#5��a/A����\u001f��\u001b�I��Wх^y����4�s�\rJ�\u0000��ZϪ�S�6;�p-�v��؀�)�2D%�Ǔ����]Y���#\u00060\u0001�@\u0001�i_��c��V�?�\u000b#\\,���`�\u0010?�X�e\u0016�E`YT\u0012Y�=s.\u0019!�z��o��\\S���&!�\u0016;�\u000fy��~��\u0000�=�\u0000�<^�\u000f\u0006�s��>\u0012��e\u0010�\\�\u0014\u000f\u0004��2D�I\u0014rz��8��R˱5eˎ8\fbnw��;7��`�\t� �\\�w���˾L���Kaxܯ\u0014$*ʤ:U�����3�GE�o��\u0000������Z���͝���gז�\u0007֤�V��$\u0010\u0000Y��}�u���q��Uϋ���\u0003a\u001et\u000f\u0011;�\rݕ�\u001e\\ �s��\u0010\f e��՘�)\r�Э������\u0000�7~h~h�u���r��\u0007�����\u001f�>m�^�\u000f�?#��ۅ�\u0000�m��F��Ef�\u0000�:��5�Q<���/��̋}s�i��u4���\tT\"ZlZ<إ���9���eU\u0018H��!+$��\u0011ʲuGM��\u0000b84�\b^I�O)��w��ߕ\n�\b�nl5/�ZGs�\\@�ak\u00191��<�z���\u000e�����F�\u001c�4p�\"\rJ[r��t\u0000�!�=��cI=\u0014�C'�)���6�<����hr�~ۿ���>o���\u0000�k�F�i~l\\}cο���l�\u001dį\u001f��M�S\u001a]��\u0011$��\u001b'�m�m����\u0018a�r\u0017,�;r��G��|�ۿ\u000e\u001e������\bG�Dw�7�:k�R��A��\u000f�6�,\u0007@��_�ȡd#�n�����U?�\u001a;nLd������������\u000b�?���ņ���D�6�����\u001a?�!�p^\u000e�t�\u001e�\u0000�U|˧�� ����\u0000/\fxx��#����g�z�x��/���x��/\u0019�vQ�?��O(���~\u001f,kO�DrO�{���=4~�I\u001fp��\u001c\u0017\\!\u001cG�%��M7����}�{a\u0012��\u0017��6����џ`����K\u000fp�qW%�^�\u000fS\u0011���~�\u001cx�\u0014�a��U\u001f�\u001f�+�}8|lc`\u0002��>b�?⟥�?��z\u0005�^�_�哌>�m�7�Ӧ#6\"v��{�\u0002�#��x������U�^~�}z�я'U�����o�\u001c��*�^ۡ��,��ѓ�����\u0001�\u0010Wn}\u0014Ϛ���\u0007m�\u0000\u000f~���=ֶ)i�U���>�v�Ə����6Y���=�\u0014�x��4�\ng͖_��\u001fH�ƈ�kM��ԛ��B����\"�����6\u0012��צ�<�6�,)^�;�|hU�(��M�\u001cu�>|����g�t[\tT�pє\u001a�v�\u0000W��ȝDGr���'�Κ �`\u0014��\u000f�!���\u0000���<��v�>Ň�j\u0007th/܄\u0012���Q.LcP\u0015=��4�\u0000k\u0018�p���E�W����,�h?c\u001d��j�\u000f��㓍����ԃ���F�{��E\u0002\u0007�р�\u000f4����z`�Z�q��Ǹ�\u001a�G�\u0004�ݻ\fhn\u000b\u001fz�%[n�\u001d?����C�:��*6����\u001b�L��d������� ��K�55�\u0000:~\u001d�%��\u000bZ\r���̢~I���\u0004��\n~\u0007\u001a\f�\u001ej\u0013qZ������P�(z�\u0000\u0001�����{�7t���\u0007A��߽;\fOڵ�B\bx\u001d��g�ǮD��d�1\u001d�\u001d�O\u001e��\u000eIJ��\u0014��rM=�~�J4y�`{�m\u0001q��Zo�\u0003\u0001�5\u001b�\u000bp\u001a�S��x�r\u001bXe�>h\u0014Eۦ�\n��\u0010\u000bh���.-�I��\"�\u0003b\u000fzW#*���\u0003�C�)�Ԏ��6���\u001d�̄H=P\u001c\n�+�\r?�+��� �ۓ���j����\t��<@�'5�����PH�e\u0007�\u001bv���\u0015v��]\u0014r_�ڞ?<<����r7����P�U�\u0003u?�U��\u0003�Ǟ��\u001b��Z{�A�S�#b�U\u0015��7��ߨ�D�\bRp\u0006��Fݷ��m�Ǧ��Ws��;w��z�j�^hg�\u001d�M\u0001�j7�\n�[���v4�ӭ)���Q�\u000eM��6��ڤ\u000e��\u0015A������`7[#d�@=��;{|�ʍ�y2\u0006��\u001cS�A\u0002�:\u000e�d}̨\u001d��l�+ڽ���W#3�2<��4��~��L��UK�\u0000֛t;��錁��i,�\u0002hF�|)�C��5�T�Q@{�'n��H땛�R����\u001d~c��VN�}�����x:*\nA���S~�x��W��P�ץ7=zt\u0015�\u0014��D��#�\n\u001av\u001b\\mT��\u0000��\u001d\u0000\u001dpy���>]v���*�/L�?\u0011�\u0011=\u001d\u001e�\u00119\u0001�|��_*�Z��\b�z2�7q����ndA*F�ʞ���\f\\�%iP\u0001$�:�Һ/w���#���)��\u0011�q4�B�Q�RŠ�!_L,L��\u001e ���i�N�\u0018!>W�=�1��\u0000/�y�$q�?\u0012V*F��\u0011\u0014q\u0002F���ݶ=w�uЀ�\u0016S�s�~G�������֋x������\u0010C\u0015���\u0016>J��RA⫲nk���\u001fDA>h\u001e������9~>�u�嗖��?EBβ{�����\r��q%��-4�)�_\\��G\u001d�5���\r�\u0018�9O\u0015<�.[���F\t\u00128�˝�1�B\u0010\u0003\u001e0,�\u0000\n�>��\u0000����+[O��zy��d�H�ɒ�\\8&!l!�Y`��J�r�1��AU�)N~�ç��e/}_��\u000e���\u001a^���d\u000e���\u000f/3�\u001ad\u001f��Mߘ<�o�7�����3\bҟV�t`�%�M����\u0001\u0007z���5��\u001aG4����{�F�� ��8c�\u0011�?�R_�\u0007��\u000f�fп'fw�D���h�%�/���\u0010�\u001e� ��+�rެE�2�\"�T�����`�;��Ȓ,�[\u0000\u0007q\u0015�\u0007}��\u001e��45\u001e�F0� \u000e��$�\u000eF<�T\b��\u0007�S�G@��p/l�ٮ$�{��Y[;\b������\u0011�äd���hA$�8\u0006bn�z�{����:�B2�F�X��{�#�O���͏��_�\u0007��?��;_1����\u0000�\r�[����}\u000e��|��æ��a�[\u0016H����u���r���\u0017���l���Y�zqQ5�a��ǭ;\ti1v��9r\u000e=@�(��D�\u001dǼ��\u001d9�ᇛ��?�\u001f�W�\\��&����[\u001f6�Nu��Y�$�������O\u0017�(d�tY\u0014\u001d�\u0006��=P�K$}$s\u001b��\u0000[\u001c}��\u0004�q0d\u000f�N��'�m�wӿ�_�?�V��\u001d�\u0000�5?/�h���uw\u0012\\-�Y\\�R]i:͚��~AI�j��C��\u0017gj�\u0019lKc[���W�\u001d�\f���\u0015\u0013\u001c�\u001f\"\u0001��w�_�ߒ��c����k�-�q%��������n��-H�\u00164��}r-[L�^Q�qFx�EH\u000bR6�\\�4ؼ= �Eo��?\u0010H'��鵺l�̞6�S��;V9D\u001fu\u0003\u001f\"��0[Z�a\u001b�|ã}zk\u0005e:�N\u001a����4 [�[,S\u0018�\u0004Y\u0001�qV$��&�\f:�e�I�W���峧�i#�\u000f\u0004+�[p�#�_2y����W���w+k}%���\u0014�eqp�o-�'�!�g�[�q<*���B31�b\u000e�9�\f|\u0016\f���_M�y�^\f'�\b�c�s�����_'��ZY�K�/�]yD�\u0014z��q���}[԰���mF�^�\u0014�����\t\n�F\u001cT��O���|LW�D�=�\u0000��7f�]N=<��$�O\u0010ډ�Gut\u001c�7�-�\u0000?_򽦿�\u00009��w�&A\u0004z?�&�%g�����=ŵ������6�$��\u0005�\u0010�I�� \u0013�s݇��e��_hk?�#����\u001c#����G~SG�˃��b1�p@�\u0014*\u0016I�y�����\u00008ݬ\\~@�\u0000�<~H�I��o\u0015��姖<��:�5�V)w��%)G{��z�7��ڜ8�\u0018\u0002\u0011�\u0001���=\\u��kuq7�z�׸\u001e\u0011�=�~z�}}\u0017�\u0000�������\u0007ij�5\u0017L�~y놿�qO\u0019\t�'�\u000f��Z-x���6��o�ե=���%\u001e��wE[\u001f�\u001a��\u0000u\u001f��8N�W�~����W��Z�Z��j�#\u0011���\u0015�^*\u001eM��\rz�D��3���?���F���\u001d�\u0000+�^\u001b�G����`���lx/�C�f�燘\u0006ޙ޻����{[_���\u0010Z<<�O�Go\u0019[%��X48TH\u0016��wy�����\u0000~\u001ax������W`��wy���M��_�k�|�(��[�\u0000+��}�?�0Ҿ\u0007�\u0001��\b߆׈tX;��C���h}S���\u0004����}�$\u0018����x\u0001�\u0010��\u0000�ӹ\u0007��3U��~0k��-��>�:��>lvjD:�\u001fY�k��j���G���.W�;���'�����V���\u0002��0��cJ�ڕ��bv��U��5U\n�j�\u0001\u0012+��CL2ɤ\u0019\u000b\u000eE\u0001���9�b���ݬ�_(�ty�S�ռ�Z��EQV*(OZ��Eښ�� \u000e2.�v$\u000b|޿��cj\u000e\u000b�\u0000#\u001a���\u0019��i�A�\u001f�\b����#��]�?\u001bu��e���\u000f3\u0016*��<�GE������_��g|V�����=��\u000f~o���\u0007�5���{��9����� �Pw��\u001fo���vHj�g��#�%��l��\u0003N\u001di^o��l7��#\u0014q$W_��g^@\u0014�_��\u0000-�J��z����&1{���^,���?O\u001f\u001am��u�s(׹\u0004��N��͠�:liNlzu\u0015��\u0003�՟��?W�\"G�\u0001�~t�b�\u001c�U4���>��0��5Uq�Dy\u0006�rx���$�\u00007l\u000b\u001b{�\u0005\u0018�����\u0000@�3E�_�\u0002��A�91����g�^�Y�w�_OQ�\u0004\u001a\n��x|gl�u��#�sm�P���E��\u0001o�\u00009���%\t�N�\u0002h*�V��/ڛ�d3k��r�\fc�\u0007�4�/�/�ʏ�}[̺\r��la��-��xL9F�W!I��[�.�\u00188�cv?�w��\u0016A����� �k�[B�n����A\u0013�+BJ����2��\u0013�٦B�+��:�4\u0019�Cc����ܥ/��w��XȊ�5}�\u000f�A���\u0018�8�9�!=0���-�`\u0005�q���˛u �����ty\u0003�I\u0014wc�������?,7C}ؔ������t\u001d��\u0003�Cb>T߿�ϣ/{���\u001e\u001f��\bc�)�hH�?�\b�����\u0015��\u0000?��6���#r�@�����\u0016�M�a��\\\u0007˚��\u000f\"�\u0000�`|)������4�>��\u0014��4I���#oն>L���AK(��\u0000/��\u0014q\u0011�^\u0000I�\u0014�}������;*��WĞ����)�+=\u000fQ�����`��A;�F��@�:\u001a��5Ǘ���~�I�FߏN���\u0012�\u0015�\u001c֤\nWq�\u0001�ʏ5PtT$��W��\u001c��$��Pu�\u0000=�VC1.]��Z\u0005z�\r��oA�S�+;6ƥ�b��(�}�\u0015\u0014�ڻ�*�+<��͌΃�\u001d�N�\u0000Ɵ?ՂF��aB�����v��݀ڛ��\u0000fkys��h��\u0015�lOs�n�\u0013�eVPv\u001d@�=�QӦ\u0012\u0015P\u000e�u\u0015�_\u000f��\u0012\u0015q\u001dI\u0003�\u0007~�ۍ�U6_��W���\u0003�\u0015S4\u0000\u000f\u0003_�Ǯƹ\u0012:!M�h\u0000�p{��0\u000e�\u0018t�����_ol�\u001b촢�?\u001a\r���b)��\u0007'�u�?Ϧ\u0004�A����}#���)� ��֝jv��jW\u0012/���}�w%���|�w\u001f�*�3\u0011\u0011�IQQ^��u�oקL�\u0014�m�[7qJĽ��2%��K���Z�S�FU8҃g�/���\u0015ߩ#n�=I�I�ݒ]5*������#�d��}&���'Ƙ\u0000�k�-�nk�������\bP���#�\u0012$\u0000���Y�\u00008��?#�;˗^e�\u0018U����\r��m��u8U|�\u0001��`��^���<\u00021$�iK����CO.P���>|5�w���ǩ�I�1}\u0006\"���!]=D�ߥ\u001f��M��=�6��][�\u0015�b�m�P\u0019���'����)�d5'���\u00109�����\u00100�$z\u0005_^o\u001b�����\u0013��㉾��K�xe�<\\�٦�G��^�ݹr<`�V���\u0017hi�3�y��z���\u001c���\u0017�\u001a����H8\\�.%�#\tX\u0014�I\u0001vF�9@��\r\u0015�\u0012Ēh\u0000\u0019��\u0019\u0007��B���o0t�\rœ\u001boJp\"�K�x��\u0015��\u0011\u0002�>���K\u0002M\u0007\\–9�U\u0010��f�c�K\u000e�<�\u001d�uK�x�G��I\u0002\u0010���1ȵORN ��w\u001e�+džw�nɗ\u0018�<\u00168y��\u001e~Ҽ��O�Ūj���>��gM.���WSpS꘡,�O��\u001d�·K���iΫPn\u0000]~��z\u000f��k5��N�h;<�唫���$�\u0001��s�/�^K�?����y>�ɴ�\u0006�\u001a�q+��׵�=���u�⬷N\u0018\u000e0�\u00122‰AC��f�\u001c�8L<-\u0010>�\u0003\u0019K�\u001f\u0000:\u0007��vwf�1�K(ϭ�d?tc� �I�{�\u0015��4��T�${h��D{���c&���q�\u00008ǤyZ�\u0000�w�Z6�a&��\\yiA��(!\u000e�;\u001b��L%�����2D��H\u0013�G�P}\u0015��\r)�lZ|Q\u0013�Ꮻ�~F��\u0002���S�-^�\u001e�g�jg��o�7�bH�+�MP�[<���[ҿ*\u0002jWv�i�isk\r��\u001cQ\u001d\u0013T�\u0011q{S$ި�����G���7�E\u0006���8� ~bq10�W�N=��B���=�����GN$'\u0019\u0003p���e��\\�b�7�s�?�sC�O�2��~P�Ǟ�\u0019<���{��_\u00176\u001f�5�.\u0013w�跅�4�Y�.\u0016��@�.@c\u001b\u0016S\u001bju}��]����C+�d�*\u0006�b7������޷z>����~���\u001d�\u000e\u001df2'\u0002H��\u0012j9 yL\n���\u001d����>D�\u0000�����i%��oq�Cv�\u0003�����}*#s{mk}u\u001a���\rΦ�J�B�<��*�H\u001c�51��d�~\u0019\u001c$w\u0001�ȋ���y�Fu\u001ac�%x�X s�+\u0003���\u0007a��v�\u0007�|�`5�:�u\r@�f�ɤ=���w\u0002�+�{�>\u0014���L�\u0018\u001f�;x�fr�\u0018fVa\f��\u0017.[r��}l#�LN)\u0010\u0006���8�\u001e.d�W̒:\u0010����\u001fN��\u000b\b53�%��\u0012��W2\b���T\u001f�(�\u000b��X�(=7�����\u0018�3C�e\u00028�7��\u0005\u001eG�\u000e�]_ie�y1�\u0011\u0012\u0000 t\u001b��~�o��\"�KY�i��z\u0013�á��\n\u000eq�YbD���X�� \u0017%�b@<[~�K��\u00182\u0002����|�\u0000]�#!\u0010��G/�+�O\u001b���4�&�����\u000b{�0\\\b`H�\u0007�zQ�,\u0012���I\u001b\u0016�)Ÿ\n\u001c9��\u0018$m:��ǫ��2�\u0007\u001f�`�Ǜ�w�s�\u0005��\u0014?4��Hl��.�pr�jŦj\u0016�q�$�G$w�\u0003 f\u0001#&� f\u0006���I����������<�b��,r\u000e<_���oP�\u001d�Y\u000fƟ&�\u0000�5^�q�\u0000��?�\u001d<��]>!�~R�\u0000�2~G~ck\u0016ml�\u0018ӡ�o�ˣ�;�z�i��X�ؠ\u001e\u0004f��4���c��=Y����!\t\u0001��Y}��N�Š���la5=.�8 ;��2��ul\u0007-���Զ�4��I��3�P\rؐ\u0007@\u0014tΫ�%��3��E�-j؟��O\u001d�_���\u0010s%Ql\u000f`zoߡ���\u001d\u0019��v�V[\u0003���� dƌו �\u000bŎ�\u000e��v����%�27(�J�c�ҽ�H�M�\u001a#�>/�Qlk�+��\u001d�n\u000e\u0011�1a��\u0005�Q>\u0003j���9d�'Gu�+�_Q�A�@��'F\t���z�P�(:nw�\u0000o�\u000f�\r�ŗF���O��t��cc�FB9�\u001ax�\u0007����\u0000(�O�Uk�G��@�o�=�L'��\u001c���ͧ\u000e'��a����|�:1�\u001e$�&\u0011�i���z��\u0014>=Ns��'26=\\�Y\u0007F\u0019\u0005�%c۟a�\u001e���L,���96۝|\u001fT�\u0000�:��z��\u0011����o���v\u000e.\u001dL��\u0001�r&B��T�M\u001a�v�O���=\u000f\b�LN��\u0010�\u0000�ED^�A���ӯ�\u001d?N\u0001��k�\u0016){m��;o�=F�͗c�|uz�)��C��ug9\u0018\r���\u0017�B�{\u0005Y,��0Mc\u0004\u0010W~�Fz\u0006=\u001e8��}4À\u0011���-������M5��V\u0015 p#ǣ\u0000\u00187�횽`i5q�\u0011���oG\u001c���\u000e!��\u0017ʞb�����]�R5=Y@4\u001bl�e�ݨs���6�@I>�_kd3x���i�j:���g\u0017'�UFa�*��;t\u0006�������͘�1g�є���/%\u0000��\u001a}�\u0011�KȰj�����˳�\u0000�o��1�\u0010�$���U�F-1<1\u0006 �;<��\u001f�1ja�p�Y��\u001aW~�\u0001Ɲsw\u000f�\u0005C=�d�/��:���Eŀ��~&�L���^.���W��?Nga�\u0000�\u001e�\u0010g�5�\u0000[�8��\u0000�t9���\u000f�u���\r��\b����$�7܁�#61�\u0000�WgDYɚ�\u0000��\u001a\u000f�\u0013b����X�����{\\���pc��aV4�^���=��\u0000\u0001�\u0006\r\f�YNH�\u0017+s�>ޝ^a�\ff�*�G��\r��������Mx��x�(\u001b�\f������s�,�\u0003�}#M�\u001a�#,9\u0017�C��\u001fF�S�2���������o�n���\u0001D�������Z��)�vp��V ���}���\u0011�>iu�\u0001O@wɊ�2Z���\u0012���A�����mtX%L\rI۾�\u0000=�{�h�hiҢ�;�\u0000�0\u000e�k )�u����l\u0000\u001e�R+�(Ż���\u001dɮ�Hꕰ�\u0002��\fUYF��6�Tv\u0003\u000e��x\u0000T��\u001a��>�c�U@\u0005>G�v�\u0006;ג�8��nh{\u0011�On�2;��Q`�z�O\u0011߾2R�\u0006��ނ�T{��iik���q����G��n��Cڛ�v��\u0001\u0014��B8&��\u0003J����Ȕ}�G�6;u�0\u001d�P.:��X�����[\u0004%��O� �\u000f|��6Yʭ.����\u0007Z��\u0007|�䑹�I\\�h�\n\u0000+�<;�Mm�jEr�ɷJ����{\u000e�N�#or\u0002M��ץ:�ۨ\u001b`J[/zW�\t����z%�u��ڔ�qڛx�\b���M����T���ew�+_$\u0014�*TT\u000f\u001e�����&ʠ$ �\u001bxmA��V�\u0013J��#����'܁�\u000b>��W-ª\n���ڽ�N���Wu{!5�\u001b��ǿ��\u0003(�e�r׏~�5�~�Ȧ\u000e[�J?9�-b���������8�5�?T��\u0012�b?�6�5ݍZ_�+<\u0014��\u0002�i�=���\u001a\u0019�\u001fX\u001cC�\u001d�\u0000[��-t{;�t��o�9\u0000��e��߀�\u000f�,<�ߗ~H�\u0001���z\u001d��\u001b-܂�H��\"E�\u0017?VYd���O�\u0012UkP��Yx��}\fA�V�7��\u0018�Y�Ǘ\u001c�W���ֿ��r\u001a.��\\�[�̴�\u0001��\u0000J (�8����׀\u0000��\u0011\u001f!�X��9�\u001c�\"\u0001\u0007���w�p��\u0001�$\u0011�\u001e��\u00009\u0015�h�\u001eX���Y���\u0016���;��i\u0013�ƟQ���\u001dB���p�\u0018n�D���v��<#��>���9ݗ)���י\u0017f�����G�\u0017#S�\u0016�c\r��\\[�\u0004�R���՜[\\\\:�G\rs\u0019�U�)$�f$�9�D\u0002v{1��\u0001\u0013V�\u001b+���h�$\u00137\b�~L8���n\\J#���_��s\u001eP�~7rp�\u0004F�h�0y�\u001d:���#�F\u000e\u0001\n�iU}%�QUy�Ȑ��I\u001e\u0019n\u001d>�N\u001e���xp�s6�\u0000�D����\u0000 �\u0000>|���N���%�����M���}\bR�dV�m�g����IJ�\rsw�Q,\"91�)��\u0004X4\b��;{�&�Öyc�L�ǖ\u0012�\u0018�\u0012h�}9S�S�r7�s���Zܰ�w\u001e^�4�d���\u0019��!線?�__=�\"(�h#�WUb��yf<�f���<\u0010\u0000��\u0002�\u0000k��=\u0017db�'��g׹\u0017縮|��\u0005)? ����k\u000bm6�T����-&��]^�\tR�b���$�)\u001a0��W��EW٪u���xr�\u0012��;�N���w\u001d�\u001d`���\u0007���N���&�s=ܗ�w2��^�\"���\u0000�|�2E\"i�g�ݬﵽ*)��\u0001%�����R7C�v^be\u0018��ȋ#��Ю�Fƹ�>\u0007���\u0012��-�)zD��Hu�\u0003b/�$\u000e�>�~\\y��:��\u001bYj�sEy\u001c2<�\"�w�]H�r|��\u00009\u000b<�}~�\u000e)s?�\u0011�kU��\u001aMT��Gh�2�|\u0015z�r\u0006�9���\u0012�\u0017+.�A��\u0007S\u0010?�/wW�_��B���{ϟ����\u001f(O����?X���֌�y ��\\�\u0005X+\u0015j�^�(��L���\u0006�\u0003�и�Yx}��ˌܿ3\u00126��U��o���۶\u001a���G����䵋ͪy_�^\\���\u0000�T���%ґ7����5��&�\u0000�\u000e�\u0014dM�k\u000f*�rQ\u001a��4�\u001d�\u0019\u0013�\"L@< �\u0000\b\"#�c\u0018�w��_�\\ׁ؃\u0014b!�[�◘�\t�q\u0012C�Om�PG����@=\u000b���G�:P����\u0000��^�GA��~���'%v��\u0007\u001a�\u0007�+�G�\u0015;\u0005�B:\u000f\u0001�~�� �Ě��Pq��\u0007��~\"�\u001e{tA���T\u0011փ���l��\u000f/��N#�\u0012\u000fo��bh����\u0000R�\r�\u0001��v�\r��H;ST\u001fʻ�l1 ^�\u0004��o\r�o~��\b�O���J\nԞǶ���F�)�k��T/ӹ?�\r��U��v���}���\u001bV\u0019�(!�\u001f��\u0016�pAsp��\u0007HǨ�Ӯ�\u0004\u0003�S9R(��qP��[�\u0003mno���C��f��e�S���A�w���\u0000�����/�$�\u001f\u0017�\u0000�A\u000f�I{�U���更@1�6���\u001d�\"\u0018;�j�az�ԓM\u001d�\u0015i%q\u0012\u0001J�&��H����vD!���~<ܜp�$mO��\u0000!���[[I\u001e\u001a�\u0005wn;�m��Z\u001c��'E�]4`>����H\u0002G���?\u001f'�:]�v��\u0017�>��J�>G7Ѹmlg!�r\u000bo�+[�ޱ�%M6\u0006�G�ñE�w��[�s��XӮ�-�#\u001bЪ�cс\u001b��a�xu8�<�\u0018\u001f��s�DN5�>O�/!��\u0013�/{v�]@�\u0000B��xc�ZT��?e�\u0004t\u0019�2��yX�\u000f��I��!�B�u��y?Q������>\u001eq�Ѩ�\u001d�v\u001d�Ί F��U\u0011_���.4�K�!�J�����\u0010?S\bˤ�o\u0019���ͦ�e:\b\u0014�F\u0000�z�F\u000f\fH�䌘�8�;~(�\u0000�P�^y�ɷW:���K#��Ub�\u0000��\n6$�훾��M.m\\%\u0010\u0000�\u001e��j�a1�&5���\u000f6��DCw\u0003�$D$�!��r7��4�Sv\u001f��,:He \u0012@~d����^<��\u001b�\u0004�/�y�}����%=U�BE\u0001�Nnr�t��D>}��\u001dnY��\u001f��Z�<��8J��:�\t\u0007��3M�1� ������'c��=\u001bJ�L�^��~���4������\"E�e�y{M��s�Td�H�TW��;t���\u001b\nm�����\u001e�������`ZQ���Oξ���N�WP�������`���������G�햆1ډ�im�\u0002�G�N�<��S\\��Jj�����\u001b��}�f^����\u001e�\r�\u000f���;�����\u0005#�2�����\u00001�\u001d�Nԥ< ���+��\u0011�\u001d��.��I\u001f�m��u�\u001d谐\b\u0003���w��\u001b��S#n�}\u001b�w��{�2&��.)_���\u0018��P�((��u�\u0000k\u0001ܯ4\\p\u0006�Rv�\u001f����&�ڝ�z|�ӧS�$G�F�����?�\u0007ܷD\u000e��k����\u000fJ��ɘ6\u0014YiSZ�lh\u0005B�T&ƃ����e\u00125�Lf�ر�\u0007��ȵ!����\u000eܓj/)4�=k^���\u001d핊�ts��\u0001\u001d\u000fs�ۮU \u0007�n��T��%$�M������'��\u001b\t%����\u0007�ۮB�\u0014\u0012O_$�\u0015����5�\u00001��\u0010c�bkp�\u0000����\u0010�~G��ҝs[\u0010��\u0016\u0017�ځG���1V�*\u0006�c���\u000f\u0011�\u0013�my��lG�tژ���U�Ԛ\r�hA\u001f?��?j��{�\u0000�lh*�M�����s��\u0001�T]\u000fZv�\u000f�NƸ�\u001e�C?�RF���?�'z�\u0012v>���DZ�\u001b(ܡ^�}��CM�S�NF��n�)\u0001#�iP{t�A�p\u0010�\u0013����:�}8�[���kO�P}��r\u0006;\u000e�Q4|��\u000f�v\u0007��+;lY}<��EN�ӭ6�é�A�\n�\u0003�_ ߥ*N݅<\b\u001f��U(��d\u0004���A_��{�=�L<:����\u0000\u000e����Y-w����փ\u0001ߗ5Ke�Pv�]+�ҹV�R���E;�҄�N�\u000eC��_!�zlw��S�\u001f��U\u0007#\u0000w��^�|~�\n�?-����}�S#[%����Ɲ��Z��\u0012�\u0017�Φ�\u001d;֟G��G!��ޮ\u001dh@�ï��NF?ο�/3j�\u0011^���z\u000e��\u0003��O>h�vN-�M:���|��`ٰP\u001el�N�!���N����\f\u0006�&��͐��I�u�!��C��_�\u0006��m_Oє�謷�6��Z��F�k�%cќW1�X�K�\u0014\u0007��������3a����3��\f�2\u001e@�\u000b�\u00014Y4_0�?_��\u001b�\u001e[�\u001a��男�W\u0010?\u0019,.=5\u000b\u001f��GPı椃F�\u000e\u0019G�+pC�K\u001cr��c�L���^m�\u001f4O��y�\u0016�H�3@�H�72��Ԛ�7Q2�Q�\u0011KT�bԥ5��y\u000f��pe�1Ɔ�j�2\u0019��{�\u000f.��J�nZ\u0015d��i��H=Sp�4��E\u001c\u001f��-y�j\u0000\u0000����+���x�\u001f\u0014v\u0007�g���\f�\u001d���Əci\f����h�!e�Vh�8�ՊG-C0R(7\u0019�<\u0002C���?0c����]\t�846I�qt߮��\u001d�_:�dy��s��w޿��Zë��Yy{�zv�vl���#�u]o�R\\\\����D\tOD\u0018\u0002�>\u0015\u0019�i�;E�T\t��'��<\u001e�����o�Y\u0018b���\u0017��Y$�ϛ���k�\u000f�sV��q�Z��_XҴ=G�^_��x����\u0016�Y�hKX�Q[Fl��N�O~1�\u0012��L�\u001a�i���|#!�\u0011��\u0013�\u0007}r����{M7iL�g��z�G�R\u0007��P\u0007�2;\u0013~O�/�?�ǯ7yB���H�{�4�'7�rJo�H\u0003��\u0001\u0001`\n�Я6T?\u0017l�)C$�g�O����1@d�r�ֻ��.y#]0�\u0002)C�d�\u0010�h��)����bp\\Kop\u0000x��\u0016�e��~E���\"'�{��_�7�U��yi\u001e��\u0014���G�k���#�\u0004��--d�}8\u0003�q\u0014�+2ȕ\t��9\u0007\u0019�H�n���\u001b�\u0014��rw��/�O�O����,d�.�m58�}+�cz��$Μ�t��)mnSXf2D��g\u0015!�\u0003m��X�o�o{��\u000e���u��'�&I�V�q����\u001d�v���\r��\u0015�V�\u0017������q,�\u0014-7�%���-���x��\\�������S�crG��������I\u0019�`\u0000o��r��]6�sy4>_�\u0000����^����\u0007�t=g�ɩ��\u001b�[����o��:Wt\u0006��ܤ�8\u001a����q��y��Q#��4�#�Y�,��PO�=s�q?�KM�\u0000�z����冚���~)m�+��c���+˩j\u000e�S��ܷ�O��=�=��X�\u0019Krh_By��\u0007o���\u0000��m��>�æ��\u000e+ῧ�l\u000f�\u000b>��\u0000�֝��oԌ�_W����ӭ7���o�rQ��A�U\u0004����\u001f�;W&�%P���ߧ���\u000eɵ�O���фs�$\u000ej��{��|�|��G-�%`kO�Oq�b�e���m�.\u0004\n������ݮ��o\u000f�p\u001e�%����cj����\u001d�Awn��m��~��1#�J���߸�`����\u001d�U?��2@��r؂\r(~cڟN\u001eC�G6'�T�������&�zMn\\� ��?z�\u00003�뿁�g/:�:۝����\u0011�\u0000s��\u001f�+�u\u0019��`\u0006s�\n_�:?�q���c�}������2_\u001a���Iv�\u0000v'�Ht?1��x�m��\u0000�����\"\u0015=O�_����i�B��\u0006��Z�Ss_Ɵ�[�\u0010o�^A{�L��<\r;x\u000f�3� �kdr:\u0011��>G\"B�e���=6�����U�A\tEĽz��n�O�-��s\t\u001a>lf�Zr5�\u001f����~�!{.��Zt�1!�\u0010�n}4sQZ\u001av�؎����ĖQ�\u0011\u0000w�?��X��z�]�\u0019h ~1Uj\u0019���q�̞�ѝ^��\u0013\u0017�\u0007o�sO�p\u000e����s�Ӭm�Gǂ/-�\u001b\u00006\u001dz�‌l �\u0001B���P7�)Jv�_�l���h�޼Iƽw����\u00107�V��r�%�t��\b��>#\u001d�$����Q�$X���Z\r�\u0000��\u001b\u0002�1ӗ�,�\u0005��b@\u0000\u0014�\u001b\u000f���X�Vo���:}\u0002��5��[���\u000b\u001cѲ�\u0001^&�ރ�)����\rVۿ:�,��\b�����_\fR}�\u0015\u0014SМ�=��:�\u0000:�Q�\u0013��e�έ�\u0019�_qg?�5X�\bxa��vO�\\5X\nm��`v.\u0019ò1��\\l?\n�k��>��\fG��+=���W�P���6\u0002����\u0019N����t��\u0003]^Ϥ\n*x��7\u0014?F�~sZ�e��Gkz6�h��qP;W�\u0019��\u001d�\u0003���a�,\b�:��_�'m>[�iw:c�\u0015���#�����?�v���O޽�T�3�m6�0�_�}�?�x}8;|����U�\u001b��Oǿ�\u0014�Jj��W����c-�\r��\f<9\u001f��k�\u000e\u000ej�\u001c.F������\u00190�}\u0014/7CM�\u000f�������cR\u000f���\u0000���\";��o�Z�\u0000�\u0019/�b9�)�\f7Q��ۯߐ�������b\f)Q�u��,�zQ-�-\u0007�ר�\u001b�\u0004�\u001ej�^�\u0015=Oq��_�\fE��\u0018˽&*j��I��h��,a���?FA��q���ol\u00041�\r\u000f��m��p˽\b�e\u0003��~���\u0015�g\u0013^�w��o\r��\u0000V�\u000b>Jm\u001a5h7�ӯZ��\nZ�ʏ\u0006^������`�\u0000��S֕���\u0002<���$2�\u0001߿_�\t�`y����F�r>c��� �\bG����\u0015Roս:d%ʻ�hw>��]�}��ʥݵ/O �w#�}&�Y\u0002�dn9\u0004\f��\u0011�����F�ѕ��Q�\n�װ������\u0005�\u001c�����\rE\u000e�č�\u0003P{�v�hjF��~\u0011Ҕ߿�1Uԥ;�\u000e��'��!���\t�� �\u001e\u001bm�EW\u0011��Z��\u001e��굅;�w\u001d�T=�J�\u001f\rEE)۱��ݑ;I\u001c��\u001d6���J\f#�!\f�\nu�����ȒO�.�v��?M?\u000e�7*�z�����O�\"�#�w�P)�ϧ݀�m�B\u0002@(+�����\u001b�\n��@*+�)���ӶB];�\u0014�@h{{�\u0000fVH�\u0016��%�ҽ~�n>U�\f�$\u001a�It��CN��v=���(�K��ҧ��\u000f��##�#d�n�z����M~��^�(������Ѣ��%m�\u0000x�\u001cV��{4J�I\u000e\t\u0006��'-6!\u001b5M�5���c��m��\u000f���O1~����W\u0016ڜwVZ\u0006�5��_F��\t�5vѽ6��\u0000|��leVKK`Q�;�+�,0��<�\u0000\u001f\u0017;��L��ٺ�χ'�>f�5\u0018���/\u0010)nt�k�k���V�\"��)2�,p�\u001dh��5AZ��� �є�d1\u0004�#g���Ma�$!&�^�\u000b#)�[��n\u0011\u0016I\u0015D��(\fԭ\u0000�A��|\u001d$?\u001f�����\u0007�ʓI<�y��p��$�R��%�X䕖�\u0018xx2�7�ҁ���N)��4G���\u0019B��\u0011\"9\u0017��\u0000�?��\u001ez�t�5������y�/�&OE%ib\u0006D0H9�2P��\\�s\u0010,n\\�zC9\u0002A���>o�\u001fȏʈ<�\u0005��\u0005��zj]�:����k�������K�+�95H'S:J��Ջ\u0007\u0005>-�\u001e\t\u0018�B���\u001e��w\u001e���Ө��\t\b�q<ꯨ����v��i�R|�h�W�Z�F�kwu\u0016�yw\u0015�-��a\r��%ƨ�\\]6�5��E��u�� �x��Ɍ���E\u001a�B��y��q�1#�I�. w$s�w�&�\u001d<ߕ\u001f�z����\r�1^�2�_�\u0015�\f��԰�\u001f=6�)�Id�Q\u0011`��9=����\u001eHd>�����w�����9����\u001a�y���/�7�\rϙ�f����tԭ��\u001f��e'\u000b�;V�Ք%©\"\u0017��\u0018��V+�\u001e�qb\t�ӑ8T������M��F2\u0019�������y\n�\u000e����\u001a�������Y�\u0010:+ZIn��\u0005�����Ѕ�\u000fJ�Z|.��j0�\u0004x����F�Y.\u0000���\u0006�\u0000�~����t��KĒ\u0017��.�\u0017�K�\u0004��i4ҋGӤ\u0011/�(Q�\u0012U\n�1g�\u0015�4\u0001s�\u0000�H�LqH�p�{�\\h��W�f�v\r8\u0011[G\u000e��ʩ#����)\u0004vѼ�E\u0005ſ��\"oI\u0018\u0006m�\"U� ��\u0003�ϛ��~�\u0016L�x��yt�W��\u000f����T����Ӵ;�\u00000�Z����iV\u0017W:���\\�{+\u001b\u0001\f0�up��g2�\u0012/MC=\u0001��!� 8�\u0013�@�v\u001e��\u001b��ig���O]1�I\u0012I�;\n\u0007��\u0000���������P��N���;��>\"�,��Wָ�\u0005*����jmʹ��\u0019�\f!���w�V�Wk����MF�Le-<�\u0012y��\u001a=�����Q_p;~=�r�^\r�������\u0000\u001c�O�;\r¨;{�\u000f\u0011A�֣,����\u0001��>]�1^F׃A޽�^\"�N\u0010����޿�J�LX�ʪ���_\u0000r\\�,\u000f:T\u0007�|?���)�\u001d�:����m�^��\u0001ߗE���'m�ڧ��\r��G�mG��;����~Y\u0012+ul��߽;R�\u0002�H�\\�\u0015\u0001�Gon���\u0001�\"׃��\u000foz\u001d�ƽ$\u0012�Ջj�qa�c�4�߱��o�;�`��Ÿ�J�{\u001e�\u001c��\u001a�2�v�u���W�!�\u0000s���B���N����\u0010}�5}��\u001d\u001c�G���\u001f���\u0019�b��>o��\u0000?)�I?� ��\u0000e���qںۍ�m��#\u0011Q�:���\u001d�W���i�'~���\u001dG�R<\u0006��C\u0019�\ny\\�� #�\u000fO\u0011�)��+�� ��\b\u001d[w\u0014�\u000fo�8M�R��IJ����r;���%��oZ�'�x~9tlr��[n��%٩�ׇM���q��[\u0010��|F��W���\u0000~H\u0016��}s\u0015�\u0015i&�bP:�i�J\f��)NC\u0016=�y9\u0018c�\u0013�\u001fȿ!%���444VbGV�I;V�=s�;+G\u001d.�8��\u0011�p�L�_��F�l���Ƣ�\n�\n֝=����SL͛G�\u0000��^,ik5\u0001��mO���#\u0012B>��<�z�}��J�j)�:\u000f���uO��\u001a����D�o�h�~��\u001e��7�=��#�\u0006��v�4��O�ē�\u0000\u0003�]�\u001e��ț��o���~O�\u000097k�]\u0002��\u000b�o�$���\t%\u001eK���\u0012(�I,ݻ\f��a;\u0012Z�n;\u001bX|�ێ���e���� \u000e�v\u0015��k�>J�\u0000�I���L���v{����̌y\u0017�v��=kV�We�\u001cZx�\u001c\"\"�\u000f�]�?�ù=�̟��P���1x�������������ŤԄ��:Џ��9�@\u0016kg�ѓד�4�*:�xlv\u001d?�i��]�\n��\u0005\fv\u0003����|��\u0013~\u0006S��]ޔ��b��#�����?�v��>��u�ϕ��۴��s�����<{�Mצ�?Ο~r�Mɺ����z�)Jo�zx�\u001d?\f\u001c�ȗ&\u001b�\n�����7����\u0005\u0015A����\u0000\u00022m?zˑ�����t�ܗކ70�������r�k�\u0015�\u0011ң�}�\u0013�\u000e��#U\u0003m^�{P{x��li*m\u000f\u0013B\u0001\u001dO�倃\u0012�e�����'\u0010@*Rk�R{T}�\u0000�\u000e�lJJ�rG�~�\u0018(WNh��Ra��o����W�MY�CI�\u001f�\u0007æ<�,O؇ n|<7�\u000f\\$߽\u001c��\u00040�ϥr>��0F S��\u0000�Ű_TJ\u0010AޛoC�uŖ�d����\u001b��O�\u0002R��'jl\u0005|:b��\u0005�c�Hğ�}�\u000f.�d�A0���O�݃�\u0002�\u000f��a�(w�jz�z��N\n�w\u0015\u0004�?\u0011_~���H�T\u0004�ק��})���\u0012\rr@8�>�S� �\u0019�\u001c��[m \u0007��}��a�M�4w����\b\u0014���]�C�+�k�/6�J\u0001Q�\u0005��A\\}�U�M��m�o�b�\u0003H\u001fGQ߶\u000bV�pGn��Wxl\tޔ�ڕ�4�0\u0006�� �\r������D������+��zdA�\u0011�CI�w�K~���\u0011�\u001f�U\nz��;oJv\u001d�0�ܓ�p<6��\u001fƹ^�i\u0007 \u0003������q�K��*\u0001\u0007��5��UK��6߽z\u000f�D�җL�\u001f~�#��\u0014�HQݜ~Ծ`\b\u0015�J���2\u001c7!ɝ%sni�~�\u0000��0Kp\u000b\u0002wK��O�\u0013��vA�\u0014��~#��PҾ�8.ʥ�֧ƛ�П��\u0003�۹R�I�b\b\u0014��\u000fzu'l��R��*z������^�o�z�Po]�ޝ0U*\u0006AB>g}�<6�D�P�S�w>���\u0005Z����\u0014\u0000�ҕ����[\u001b�x�\u001a������eTJ\u001e�n��>��d��\u0016��\u0015\u0017PH�t�B��ȁ{!8�\u001f\u0018�lO�+��#�g\u000e�e��ֻv�^���\u001aeA��(�'�O}�\u0007�G~��_��\u0000��/'ɦ�m�y�+\"�w�|��^\u001b�Ј[R��>�������#��C^�T��I\u0014~D>�얢2ҝ=�HL�{�'�_斓\u001d�)n ����y\u001c�a�\u000b��\u001c���\rL\u0017�\u0012\u0000CY\u0002�`\b��v,�\u00131$��d��P�\u0003ϗ6#��{R���C�Tx\u0018���@!�6���X�;��\"�π \u001eF�Z���b\u0006\u0007 �\u001c\u001c\u0013#0�/���=;̗-�~^��\u001b_Q���i�qi\u0001�D�+��{yJ��(TP�)\u0002>f�5\u0018�!�\u0018�#!�\u0017i,q�H�D\u000e���_�~d/a��d�m\"�d��0�V�$)#�+�\u0006B\u0014('�R���\u0013��#���c1������_�������\t�a���\u0017����R�⽵�\u0015�\u0000�\u001d�\u001e��\u0000H\u0016œ�\b���f4\u00032��_ig�e�D¯�\u0015�����=��m9�5\u0003,r�=B\u001cDW1�D���\u0000������]C\\��򏑦��ў�P��y�X�&�c\u000f$�Q���DzsJ���\u0001\u001b\u001e*�Xm�.��̑��\u0012��^��?�����A�%��ˊ��xw�@�\u001f\u001eo������ϫ\r���?P�g�\u0013M�O���4�V7V��0^Y�%�\u0019C��\u0003�}�M\u001f�0Ŵ�N!�k�M���d\fF!\u0013˄_���I�]b�S�iN��]��\u0007�-��-!\u0017ʜ\u0004�\u0015~)\r\u0017��\u0005:ҕ�|�8��n#�w��Z~ؖ,��8%>�\r��zޝ�}\u000f�\u0016�\u001dg�qwh�XꚖ�xE�\u0011�\u0011�$��#d�]�#L�\u001b��E)��G�B|P�\u0003\u0003�Ho�����gef�Ǩ�\u0011��1�h��l_��oz���\u0000������� ����5�2�yZ�������\u0014 ���B�ۯ�Hۑ$IR\u001a��\"\u001d��\u001f�N'%u�����K�}\u0011���\u0004��<\u0006���~�g��g����q�[\b4��/ʯ<�\u001eD�)N���\u0012\u000f2i�\u0017FU�����Hc�5A1\u0005�\u0005��'e�Z�8\u001cp�\u0015�\t�߸��:=NN����9�\"y��F��C�|:����^��\u00008��\u00009\u0015�\u0013\u000f�g����t�������Zy����c�,.l5;x�{�k\u000by�Ե��N\u0007\u00164PE�Y��\u0006d�(\u001d�\u0013�;\u001a\u001d�\u0000{��K�nj�@\u001c=�@w\u001fI؞�o��^����K�����u����\u0017�XG$�F�o,(�\u0016 \u0004���V�y!��OR���n\ni�M�Ǘ,�\u0006@w�~~~e����S�\u0018�\u0002|\n>U���\u000f���\u0006�\u0000�T����k]\u000f\\�yt�8���c[�e������%You\u00184뙩5�\u0017H�\u0014�4r�E��\u0012�+6�pqF�=:���\\�vn�y3�\u0013�\u0019�<��χϩ�O������\u001f*O��_�pFu\u0013P�֭$�m�Q\u0015��\u0007Ռ�a$p0�)���l��S\bʱُ���ORt�'/\u0012u�Ml+��xm��|��i�O8��y,���He��c\f\u0016�L�O��\u0018�ʫ_]R�\r\t1�c?�\u00190��s���ο)��_U�\f7\u001al�h���\u001e�/�\u0017���\u001c\u0010/�\u001b��\u0016�\u0014V�fG\u0004׎L@x�����ps�CO \u0001\u0004��G��\u000fߏ���*H-\u000e��Ϧ�g�[�ZY��KavHe)\u0003\u0018��>�\u0012�\u0016��[�·C\u0013/Y\u001b}���%�� ŋ\u001e�&���~\u001d�\u0000\u0012�\u001c�����;|�͐6\u001e\u0019O�jz��O��\b��Yت�z\u000f\u001e�\u001f�d�\r�t-Y\t�ޝ��o\u001d��rV) ��^�ӕ{\u001fn�l��I���M;\u001f�\u001f\u001e��S\u0012{�*)�\u0000k��\u0003\u001a#v&ՇO���\u0000�l�uI$�W\u000f����\u000b)�|W\u000f�~�\u0007�\u001d0�@b\u0005��'}�c%dn���N�\u0000�\\\u0000ٮ�l{�\b�F���a\u001ej�5>}����5�|>�G5��;t�i����H�Hc:�UI�\u0001��}q#�NN\u0001�a��V���M������g!�w�]�\u001d��\u0004���\u00016�\\JMw�~�c�� ���7\u0012\u0011^�޿H�'\u000e�*�\u0016=w&�q�\"�k�헁�6\u0007Ʉ�\u001e�=N��W��F\tˆ\u0016��!�~SyV]\\[�c/\u0014r\u0004�j���w��g�\u0016�Z�A�O���<�S�\u001c��\u0000\u000ee���\u001f/ǧX�T\u0003�\u0002h;�nծz\u0006(�n�#�+��w��t�\u0000:��\u001dU�W�^����\bS�v�?����o�R�\u0014t�~��<2v���\u0012�AO�ڽ��M�F��?���͟(��{��\u0015�5���\u000f�y�e����>]���;ȱ�m�5�N�v�3e���L�\u000e��^a�\t��O���sk��\u0000��r@h�ܼ�\u0017�u\u0002���E6�$�\u0000Ex�n��\u0013�R{\u0007ّ���`=r�|\u0003�>Ж�e\u0007��D��<ߩ�\u0000�qѴѶ�B\t�֊7�\u0019�����~U�qk\b��E��\u000f�x\u00107;�m^�|�g�\r\f}@[���kP\u0000\u0003�_c�9�L�E��b��\f�\u0000O4 Pv?:O�4��z\r>�_r+_4�ď������2\u000f��wĻ}9�\u0000\b�zq��}��0մ��_��?v|���������^����O�~�÷����=;�����\u001e������\\���c~�k���\u001eN\u000e~h\b�M���'&�6�\u0015R{\u0011���$\u0010��\u0018�~���,��nh(U�^��_�\u001eCt\r�i\u0001;\u001e�v��_�\u0012MW�EZ��#�\u001fׂ�u@�P�\n�\u0000�6��B�r�]q\u0011#���\u0000�ӈ ��\u0004�T(MiJ������1�;�ON��\u0000\u000f邨�֑����)�C��AY�V�����\n`P/dLPq#���5�ぐ�>�i#\b*:w�\u0000=�&]7榎\u0005=�\u0005?\u001c\t���JW\u0001_�\rҁ�\u0012��AO��\u001fs\t\u0002X��\\\t\u001b���\u001e>�ƶk?b\t�����dQ}J��F\u0004�\u0018�ԑ��M���\rVʃ�q������D�\u001eT��tK����N�Q'�PvA����t��dH�v@ФM����\u001f���\u0019D�oѴw?����\u0019�W�\u0014\u001bu�{�s����\u001a���KPðؚ�8\u0002����}�Zc�z�7=6�v�;T���9\u0005#�l(\u000fj\u001d�Џ�LA�{�6�'���]�w�%��ڝ�\u0003zw����K��%�:��=7#��\u001a�o�Ѥ$���\u0001��n��\u0018wB��\"��һ�\u001a�`&�*\u000e]�\u001e?w����\u0000\n��H'���{���\u001e>��R�I��H\u0014\u0014\u001bu\u001bPnr����w44���w?v*����뱯zo_\u0013��*\nM�]�h{|��\b=�'�P��7�>=\u0006\u001bU#�{\u0011�\riޟ1��\\\u000e�\u0000:\u000f\u0013C�}�^M�\u001c���)��̊v�i��dI\u0000Q�EDj݅iJ{v\u001b\u001e�\u0010}>l�UuN-�Sv!EEK\u001e;�P\u0006=�㐰7<����w�o埚5ؠ�.\u0016���$�a����i6�Fz�gi(���(6\u0011�C����k�{V���(�?� G�G��\u001cMWi�4q�ϒ1>�վF�/�\u0016�%�s��y�\u0000[�d�:M��\b�\u0010b�����5\"��j\u00107��G�&\u001d\u0018\u0012�BYrw�h��\u0011��It9��ǒƜ�ӟ������\u0000?a������\u0000-�\u0000,<�}���?,<ӪjrE�Ee\u001d����ika���\u001bEo,ޭ�\u0017\u0014rǔ?<����\rQ�k�\u000e\u001e\u001d.� \u0012 P��DO-�K��^�؎߄;|h�+�lr\u0003㏪�@����\u0017�r�ڔ�s4\u0012�����\u0013�A��h!�\u001aH�q��)�G�\u0019��HK\u001ec)\u0003�e�OK�\u0019�ƹ�/��m|����w�m ����)y-���7u������ߒ�T��\u0001RH��y��y7�rc��U���\u0017�\u0017��\r\u001bS��淑���C�~S򥍽���^�5\u000f2��G��\t-\u0016�M���\"xg9���1���,�\u0007O���s\u0006�O\u000f�\r�J�\u0001Խ~��q�hu�~��.��K�\u0010�9K\f0���A#y\b\u0000\u000f�\u001e���\u001f��/���\u000f+���ڬ�]>Q��Zד�\u0000/-�{+O��ri\u0016�WZ��/o��#���V���4 ���z\u0002t9�:��f\u001do\u0011�|�c��\u0000@�I�2;u���^�i����4�-?\u0011�\f�c(\u0002#�O\f#`\u001d�2�4h�͆�\u000f�}��kߞ>s�\u0004��k�/X�V�T��o���]O9Z]j�=�����aej��\u0016\r\u00043\u0005�q���=p�1c��G\u0007\u0017P\u0004�b��Ǟ�\u0019u��b���=>�\u0017���p\u0013:��jGir��u\u000fV���\u0000�.�hi���T������[/-y���>x��֭q,:\u0004j���\u0012�k~����j\u001an�\u0013�/\u0015���(�f�\u0014��u\u0018�3�\u001c����X�\u001c\u0006F\u0017/�ԁ���\t����\u0000������=��͊\u001a|�\u000elXdL��xĠ\t�\tCs���� �\u0000�1�a����r�F�������q�[�o�<�u��-|��\u001dcȰ�<�\u000f�nSO\u001f��W�QKgc\u0010�H�#�H��9t{c\u001f�t��XęF�\u001b��yY;�ݻ����'\u0006=d�ɇ[�?��x�Ê[�f�@\r������������;�+L����|���\u000fq&��~^�V���{��`��֠�\u000bx��\b�$w\f\bj��\b\u0003����j���1\u001a`7�D��G��8�Ҝe����7ׯ{\"�\u0000�@�\u0017�����.�J6��i�vZ�\r@ƶ�Ae5����}nXS�1!�jC��UT����2����@D��\u0000���\u001d&�@\u001d�����-�H�z�h���\u0019�ńwpj\u001e�\\��\"G\u0015���8���x�)��2|`q�\u0013�b$���\u0004���3±��\u0013�[�^O�?2<޺��l#��\u0011�w��m�J�j�}5����YM�Egikj�C���S�\u0019�ҁ\u001cr2�#��u��\u001da�r�\n\u0011\u0004��{��޿!4\u0018��^St{{�KoN�K�\u001fYa\u0002U��X�et�\u001c�@�#ԝ��b�ɔ�Ŋ��w�z�\u0003\u001e#)\u001b������e~N� ~c]~Jy\u0017�Z=��=�t;1��M�Iԭ-/\u0010~��^�Z�w��\u0012A^\u0014�L��^�jq�1��#7\u0004I����\tP�o�\"�\n6:?LcU�5e����F�2Czy\u001bTZP\u001f\u0001A��P��MmT7�߯^��넩=B�=7�^���@X�Y�z�zxu�r?�8\u0007w�9��^�=�T�\u000f�\u0015��g�%a~ǿ���|'�V1k��\u0014>���\u0007_4th�NǦǯ���\u000f��6ݱ&�Wjl\u000e�۞�\u0000,o�P����s�R�N߁�\u0019Q�rC\u0019�\u001ff�����\u001a�]����W�6\u001a\t�\u001a���\u0015�N�H�\u00039�\\~v�}�?![����~ۍ�Uͯe��9m�+�\u0013E5��\u0000�\u001b�m��v�o�,��|}��kg(����˦k���������|�Nǥ\u0010\u0007Zx�B�\u001eN.�t\fۂ:S�oj��*\t�\u0010\fO��ޞƀxd�ʒ7+�]��u�w�ۦJ&�\u001dPw��\u000f<�xm��2�H\u0014\u0018\u0010Ic�s\u0001�\u001e��d�*QV{����}�)�\u001e�I\u0007��tM��\u0011[0;ŗT���ެ�ʩA]��\t'�qe�ŏyH�Ϳ\u0014\t\u0004��~~Hy\u0019,�m\u0018�\u0001UR�\r>{w'=\u0007��cK��\u0018�¤x�Ʃ�����ۤJ)@\u0001�_a�f����b�@���1�&\u001eh�\u001b~9!\\ʓ�.\u0006���j�я;RU��W���ᓽب3{��\u0000��p\u0013�k�r����\u0000�\u000eD�G-فR��\u0005��-���H\u0004�?�p�PH����_���ߚ\u0012h>J�\"���f[Y�\u0003ndu*\b�n�\"b9�\u0005Y;<�njN=<�o�����6&����7R�����kRK4�R�#���m�$����8��v#����|\u0003�y���9S���q-8�Zp\u000bJC\u0016��M\u0007� ���\u0000\\uE������\u001fM~��\u0016�����Ӡ�؎���F햏l���C�SZ\u001a\u0001��\u001bg;��s��9_�9�ڟG��\u0015�5Y�֞F�(�x�Bï��>�s\u000e�\u0016_�w�'����>���?���N֧�\r�\u0000�ڔϕ}�۴A���ײ{�p��#��;�ᜃ�7_\u001a�m��,UJ]���r�0�L�|>?�\u001bd#w���\u0000�}կo�\\�4y/s�h{\u000f�I\t%�[�M��,���\u001dm/U<�v?����J�\u00165�3�Nկ�����Ȏ�M�5��~եiL'�T?��O�!d_z�P��j@\u001fO_z{��$\u0013[�ۭ��=�<>y\u0012H\u001f�\u001c�\u0005�+N�������WT\u001b\n'r7�M���r\"�&(�b�+����\u0003\u001e~��}�A@�\u0003a�3\\\u001d|�<�72S��\u0000?�\u0007��GkBD܉\u0007���y�˛\u0012I=\u0011Ԡ�m�Ϯ\u0016œ\u001a�\u0003�)���`��nҵ;���x����җ\u0004\u001d�5�]2'eRD�\u0000G˾\u0005L��X�|7\u001dk�>��τ�l~�8���G��\u0007+<��'���l�`�<ؔ8\u0015`\rOm�\u0000\u001f�Vy��;F�\u0015?Q���\u0019T���\u001f������\u001dA�\u0002�\u0007�O_|�����\u0011ɹ�4\u001f!����>k����\u000f\u001f\u000e��\u0015z֞$��)҇���P�ޣ���\u0004t��傻���6\u001e���T�}\t&�v�o\u000f\u001e�\u000f4\u000e[4N��Q�������B1������_%C����H\u0007ž\u0015��y!d؝��s�_��\u0010�����:�\u001d�|\u000e%B\u0002N��=\u0006�w��x\u0015.����ާ\"Em�6~)t�rߡ\u0004{x\u0013�\"�l�����N�\u001d^W\"+��j������Z�¾'��B�M�RR�i��;\u001d�~��<�rKe�q�B:t��\u000eiJ硯A��lOѹ�HYJW1ݺ\u0012i_��j��eT�t�\n�\u0014>$\u0001S�\u000fS�����U�ڇ\nx\u001c\u0005P�o]�\u001d:m�}�\u0015B9\u0006����/c����X��q�]��c�鲸u�ޞ\u001dO*w�BM�j�꣛���Y�\u0010+���\n�ו�\u001b'jH��9=c�_��n���-����\u0005n����~�\u00117q�D�n���\u001b,+O\u0016��e{;�}�00��\u0001�)\u0003��c�_`�p�z�.�\u0006y%\u0011^{_w��Z\u0007�ߜ����=��́��lЉ��映���p���\\��Z�\u0006\r�%��q��d�{�\u0007Z\r\rj5����-��\u000eQ�Y�x��ڬ��@8 ?�����ȟ�\u0003����\u0000�5������_��\u0012L��~yg�\u0004&�#���\u0014V��*�\u0007a�=,`����x��@؁E�%)Ng$��C�$���/�s\u0017����q�ȗzg��\u001bΖ�M�.�(}\u0016�e�w|���:G^5�L���hjc���@ܽߵ��,Q�Ժ\u001e�?{����\u0000���%��1�:���j�7��g}JA#L��IX���\u0006`�O\u001d�Բ�{#�{\u00177����\u001a�\u0012�(���U�0j@���`ɭ�����X$\u0006lS��|�����}�GP����k{�{�]�g��\u001bd��U��d\u0013�O\u001c,�[\r2�#\u0018p\u0016��XV��r{A�z���=Odk(��٥�G��<��p�|_����Z�\u0016\r~\u000b��|BQ\u0007�\u0007�?�6>\f\u000f�B)�g��䲝���/�-�U+�C\u0011X�\u0017-I\u0003�� Ҥg/\u001cr�2|��s�|@��L-����.a�\u001e)��[WY䤍j�F(8�\u001f�\u000eb��Q���\t-0�l;�\u0015��\n��X)��g7�p ӥ�6�KƊ\u0018#��֫7�.�zb ~\u0001ː5�F(�c�[��ɆYDr���_��\u0013�cB�ӥ���A\r���X�x�Ad\u001d`�w���s )D\u001cUE75'Y�&�<�Ζ\u0011\u0015÷/������ylj�\\��^�\u001a-䗲�}2�\u0000�SCq�Y�\u00100I$�}T-q\n0\"��-Feh5���\u0007\u00149�K\u001c���Y��h�qm;\u0011������\"����{-ה�\u000b�72�q�����մ}Q��h�ѫo\u0001���\te��\b@,M2�V|\u001a�r��#9\u001b46>~F��N�ͨ���ū�8�6�~��@��O\n�����]���̺�����׿�&{���sy)y��Ə4���V�ҡW߽\u0001\u001a<��BF�n\r_��u}\u001f\u0006^���\u0010��84�s���\u00022���`�\u0010:nh�}�����y���X�ͥ��F�u;�M.-B�/e��?CB�5�B��{ ���F\u000b��\n-\u0000\u0015�6h��e�\"@�W����G��\u0000b�^�X5\u0003�<1�\u001a�s�\u0004�9���c��\u0000�>f���W������yJ-\u001e��\u0004\u0016�\u0000�Z\u0015����/�Dj/��j�֤�P�\"��;\f��sOQ�\u0016=\\�\u0013\b�D� N���˕_��'�>�{=�͟��/M��2'!��s�\u0012\u0011�\u001e��nB���|�����\u0000�*�M��k�,�<��mv-GU��|��?�nu�0j��O�_[[�d�ծf��u7�+<���\u0015=�EغL~&,'&Iu�#\"I�Q?\u0007�=�����Ր��j�h�x�\"\u001aLP�!\b}1��\u0007.(����w���Q�i���^�\u001bA�tm:���:,z-�(b���\u0013�\u00067�m8$�pZr\u0011[�\u0014�v�\\:H�\u0001\u0013�Ƅkh\u000e�_���������ê˒~�����]�\u0000GAA����\"o<�{z�_����YtHR�\"�l���\f�[Ƅ�\u0002��Kn_l\u001e�9M\u0006�X���7\u0013f��^OE�z(�*0��&%�u��������9�^�cw�ǧkz�a��Eye]H\u0018�e��f�\u001dݸc�%�H�\u0000�#3]��<\u0018��5^u��;\u0013O�Lfy8|Q`��{��Y�\u0004:\u000f�ѭ����p��Gr�Fl��*�9A0�K#�W-\"7�h��\u0018�\b\b��3.O\u0012[w����&�\u001c�3K\u0014N���\u0018m�y\u001a2�:����JIB�f`�Uh�rq2�F��5�X�x�7����.��������/K�\"�o�y��B\u0017�\u001eX�cs�U���\u0005�Д*!\u0005��#�SC���݆5��s�\u00124��\u0014��cV\u0007w\u0015�\u0000y�\u0007��ӷ���������\u001fΗ..�#y\u00129\b��K�_�!�]:�\u001fKFӭ���>ӏ��,, ���\u0018Ȩ�\u001d�*\u0007�\u001e��\u000e�G�U��\u0003!�k��v\u001f�r�ˆ[�G�(��-��cKy�q$u��p�C ;zo\u0014�������y;8��s\u0006�\u0011�|����HTN�Oǽ��h�����ɖ]g���F�毬y^Oз���[\u000f�N+�\r\u0019�ju����\u001e9B&g�T��F�����j�O#\u0013�\u0013��n>\u001b>p�O��Ƣ������5��gM\u001f��4�@�\"(�+`�r\u0013Z\u0006t]���-�\u001d�O\"\u0007t������\u001f���Y\u0019wH�\u0000�?n�h|�����<�\u000eV��\u001eU��E�T��ݧ��#nP�v���!\u001d\te�g;�A��\u001bό�`�\u0010�G�0��\"91��Ի���|�\u0013C�\u0002�\b\u001b�Uj��\u001e�m�(\u0007��Ҋ�5\u001fGz��=𣑵@��G^��\u001e{\u0016\u0003���\u0003t��O��\u001b�I��t;W�n�����%D�(h��ù���`N�I�\u0003��Z�ڠ\u001cn�F�F^��:�\u001a��\u0000\\�]��W��ھ>�v��UޯZu��<;\f;\u0011��S�x�m�n�\u0000�\u0005����9*\u001bqZ�\u001b�h.V\u00009�b\t/�\u001b��\u0011�v�[g5!y\u000b���o�+�]�����m��ͷe\u000f�]��?Q�F?��\u0000��׷���\t�g��)��\u0000���\u0000C��qM�r\u001b�W*��W\u000fP6��Gf\u0000v�}��զ`�N7�\u00033�P��������\u0010���J�^5�74���m���y��\u001dÛ~�|*\u0000�҃��-��\u0017����A\\�E�\u000f��B췋�6i1���S7���ޮ��ѓ\u001f0!�*)]��C��g�g6S��!���o ��\u001eo�/#�Q��0�\u0001x��Gzv�Bs��\n\u001cI�\u0000WR�,����V�o_��~�|���u\"��\u001f\u001f~��8zYcm�7���\u0000���+�����\u0000�\\'d\u001e� j��\u0000?s�`\u0007z^j��\u0005�E\u001c���d~�C~���?�\u000f2%���\u0019\u0000�\u001b�^�}\u0019\\�[�$�#�G���\u00009��i<Ⱥ��-oj.\u00117���[�+�\r)L��)�v�h�bE<�lQ�..�;K�\u0003�K�B�]VM���}@i��g��̞\u001d\u0016 z\u0000�G�2�2��_��\u0000�Q��t������[u�?vv�����~{�8��z\u0018��o��\u0015@X�b\u0017m��\u0000�9\rI�C-,E�^��S��\u0001��ҹ��7/O�<���X���i�}�3L��;��7B\u00155�=\u000b/�δ��\u0000^c���R�\u001f�b��\u001f{�?�s[+_�忏��>T���47�s���=Ϩ{\u000f�q�V�UN_���A;\u0016\u0017�\u0011�{�{W�Ȏt98\u0019��N�����G/6��V�~�\u0000���\u0005P�\u0007_n����\u0006J5~j��\u0003�%��\f�ղ9�F��.�\u001f�\\?öʶU\u0000Tw�\u0000:�\u0018�wީd�\u0014����n�\u0005�荂\u001d��$��\u0000�sڔ\u0018��R[�_���\u001dN\u0000\u0005ړ��/a���\u0000�\"9��Y�5\u001a\n��}�\n��\u001cOR�\u0000�G\u001d\u0014�N�\u001d�_��͐\u0015����m�_���߅)����_�\\\u0005���h�\u0002+���\u0000^\u0005\u001d釮\u0002�o���k퇣;\u0007���\u0006\u001f������ly%�D\u001cԎ�|Ƿ߁�\u0006Kz��\u001d<;��� bwZ���\u0002\t;\u0003���ȧ�F�����݀���[6w1���bF����Lk�Y\u0015˚A,n+��o��Ș��r�\u0014*�[���S�S-�bkޜ��c��_\u0010s\u001c�\"\u0002������Н���}����7{5{�у�~���o\n��ޡ\\\n�������prOM��\u0014\n(*@\u001e?Ҙw���\u0003q]��+^���aV���{v�V�\u001b~�M6\u0007n�\u0000v4��ڻ\u001d��{\u0000=�q�מ�\rS���kN��T;R�:�\u0003_c�22\u0004��B\u001d�4��H����+B\nQJ�\r����{\u0011�+It�\u0016�b6��ߵ(1T�^�>T�}��>\u0007\u0001\u001f%Ke�'��`}���\\�B]&�MO\u001d�\u0000U\u000fA�d%\u0011T\u0019\to^iL�)�}�§zSn�Q\n�JiʤPu*;���\"�R[1\"����;�\u001di�wĥ+�һҽ���\u001a�\\�Z�J��^ǯz�\f�s�)t����v߽\b��;�U\u0003%w;lI��{x��*�zV��\u001e\u001d�W y�\f}�*~�����*��NE\u0000b\u0000\fw'���Y���\u0001 +ۿ/!|��ԋP�c򏖝���\f��v�\u0006�F�8�_�\u0007f!#>9���\u0000e�O���G����\u0011�#�M\u0007\u0003S�:M6���\u0017�'���\u001d��e��>��G��\u0007��睿1\\\u001b�DZڴm\u001e��@\u0005��amB`�O��qD�DEY��=_C��M\u0004xq\u0000g�y��\u0000C�j59�R��#-��yDr\u0001�ߗ|��o�\rb�E�n��[�V{���4�9\u000e�\u0007��FO�3q\b\u0003�r\u001f���|;\u0013g���~��Dy_M�\u0000�~����v�+O��Z��-�\u0004��*�8o�+pz(\u0004��]��#\u0014>$7\u000e{s�?\u0018�'2�\u000f͏�mGV�/no\"����O�@�\u001c�\u0011�8\n�\u0000\n)E͟d@b�\"� �by�����_�~z�\u000e���?(�ZWռ��=GO�4P\u000f)��nu��fJ�m��4�\u0011��6�:=v�X4C��~w)���c��\b���\f4�\u0012�e��(�������\f��\u0000�Z��M�\u0000�\u000f����N��j>i�����\u0000�4\u0018VWռ�\u0000��BE��ߟ��2�\u0017^W�n\u001e��*��i��(�_:�g�}\u001e���n��e�X0�r7����\u0000y!�Ď�W<{\u001d��M�\u0003ډiu\u0013�\\����������!�\u0019���o���I�'Д�j-,V�1���[x��\r�ziw\u000423M4PD\u0014p%A$�#`~rϧ��b���\u0007I����M\u0011�\u0013�.��֍\u001dլ�-��O��\u001aMJ�\td��\u0000�Z\\���\u000bV&��q�\u00101Y�]\u0016�_#��92���1[ū[��V���؂[;���jӽ���#�Q��\u001e�!@���=X�괒�`zw�\u001d���1ˆ\u0013�ﻫ��#���}����\u001d\u0016]3Q�y\u0004&\u0014��?W��[���V�� ��\u0004��S�\u001c�H�\u0013鮏W�tD������?X\u0017\u0016z�i}h��R��k\u0000�J�q����1����\r�@:p��q����\u001f�?'i�C&\"2�Hy�^c�#�>\u0016� �%��ڴ�,ҕ�=U*ј�rx��ļXВ\u0005\u0003lM7\u0019��0\u0007\u0010\u0004�~�������{��X�[!�5-V�K\u001a붒*\u0006�!�ci�B�zܸªV�c��5�1�M�\u001a�rs#��\u001d�_��ǻ���\u0000�����K�>M>��jsM[I-��Gw;�RI\u0004�n\u0005���\u0018+q��ըj%�)�cu��\t��b��e ˠ?��'�\u001f�����ޭ-�!%v>����2H�YI\u0017\u000f^�Z\u0010`�3�\u0018�FEs�r\u0000-r�v��Q�D�\u0018�\u0003���A���?fb�rc��J��Y�����Ϳ�C�]!��i��A=��\u001fF�\u001f�zw�\u0013\u0011s$kf)+Ƞ:��9 $GW���HJD��\u001fww����C\u001c��\u0011���\u0012:\u000f.��9��\u0000�EΧ�-�6)�g�!2���-'-4�q�\u0019�i�$\u0002���FGIJ\u0003\u001c��R\u0002\u0001�:_\u001f7\u001f\t��=I�>\r^�v�,8|\u0012EJ���w�����7cqyJ�M{moO�f:I��MN��F�涆\u000b&[�lfR��\n�ď���z���_��\bj8��P�����bh5Y2軧+ހ���ÿ0u\u000b�f�m�I/,��+k$�Q侽���o�c�U���W2J\u0007\u0012�S�Tf\u0011\u001cr��@F\u0011\u00124d7�[1?%A:+������H�1�\u00143��v�34|���\b>�d���'�;�\u0006�Yeg����/h���c r�y�y\u0001ԞB�� ���\u0000��\u001f��~T�a������\u001f:i��V��\"���\u00100�11p��~a��\u0000H��W�\u0016%m�\u0007�\u001d�줻\u0013����LJ_�\u0011��\u0010c�\u000b�\u0019y��\b<�\u001dC���~�Ƿ;l�ҐtzYJ6\r���tGH�;y�`�Š�����f�N,\u0015���=T�E{�-T���,~9:\u001c��p8\r\u0017�w�y����\u0010]�\u001b�8�,&��9�7�8��\\\u0011ZЌ��.�\u0018�9p�#���He�\"$.=�h~s�QFx�]\u000bґ�#����\u0006�ǎa�ќf�\u0007�6��X������ԯ\u0015�\u0001��z����p[�\u0006�T\u0011��8�\u0003���7q�]\r��{����[Q����e��`��UҵH�����!�2C:�rB�iJW|�\u0007b�u��\t@\u0018�bFƚ��ς\u0004�Ty��_���#y\u000b��\u0000�r��\u0012y��\u0011Y�Y�c�\u0019SZ� \u000f7�5��M'�Ҿ���\u0007��S�F���c�>>�ՙ��8'��\u001b\u0003�8��1�\\�<������87Ꭶ<�~�yĝ�}�ǹ��|��\u000f˝S�?�4;�\u001a噖�偟J�Pt�M�\"\u0006��H�����s�u\u001aL�O��<�7���>F���c�J\\\u0006�J�O?�<ņ\"\t��x޻���c�\"\u0017z�����\u001a���X\u001c��wuX_އ�]��\\w<�v�ܤ�{�n\u0001͉C�����|���U\u000356�e\u0019\u0018�\u001e5�9-���@I5��{{��!V�\u0002|?_�Y=Єv���\u0000�5�\u0014��@����\u001f�_}�'Ƞu�մ�s_��={\u0001�‡\u0001>���\r���\u001f�^x{{k�h$�����.�PI\u001b��4���\u001a|~��%�����/\u0016~\u001f�����t�M*�2X���X�cZ�^���ظޫ\u001c�{�v쀄��\u000b�?\u0018��k�Yd\"��\u0006=�OP��SL�K����\u0018��|\u0007�\"?1����?f�\u0000�\u0017c�e`\u0006߻�\u0013�P\u0005�:R�;-T�s�|\u001f�#Z����馍^1���׷�}���<������0Ӆ+N�EF�\u0000F��73��ZYUW&u����›u\u0015\u001dM3Q���ӝ���xV\u000b-�>�\u0019\u0003a]�|�c�œ���`�\u0000\u0018�:q���\u000f乥����\u001fp�s�_n��C�^�#�\u0000\u0019������3�z���\u0000ݜ��l\u0018F���\u0002��m��l�ym���f��\u001a\u0010\u000f]�O�<2���(t���\u0000��H*�����\u0000QO��ǥ�ѕ#je��ͱ\u0002��O�\u001d��u\u0016�5�S��T��Y\u001b�&�\u0007z\u001e���|��h;��R>\u001eǸ��t�Q4<�\u0017bw�:�jก�O�\t������7Y[Q�SR>{�\u0007f�_�\n�l@��)�|N��\u0006d�$�YN�Њ������\u0014�F��;~�\u001cء�k���:`<�o6\u001e'��ڟ�;�V�s��xo�}N+�\"\u0011��v\u0004{m�_�;R|��^D�k��`\n�*(�T����\n�~�U\u0012>\b}�+R=����;�[rK�!\rS�nی\u001e�\u0011ʺ�W6�S�j�?�D�Z��ƤJ9\u001f?����v)��\u0015#�O��\u0000k)�\u0005Ʉ�ߩ����\u001aP/jt\u0007���j��f�H\u0014#�E\u0018�Ǧ*�C�Q�O�=T���6\u001d��S�\\*�\u0006��Q�����Vq�ڿ�޻biV\u0011��j���”Ȫ��\n\u0011�t�M{\n��4���_��\u0000\u001c(C�5�55=:t�w�D�#�\u000f!\u0000P\u001e�����'�\"\u0006�BK�zP��؎���F���K�\u001d)���}q=ʖK�}�����%R�?hu���#�\u001dҖ���Z\u001e�?��ȑ�z%����Z��b{u9Q��ζK$\u0015���\u0004�x��p\u0011��\u0016�Jk�WaӯM��r\f����{u����2��w�!+���oz\nץFC�%Kd;��;\u0003��`?�*�s��x{xu5�|\u0007�J\u0013wx�E/,��(�Vyef�\u0016(�3�S�\u0007\u0007\t$D\u0002fy\u0001�>�\u0010M\u000b;\u0007�y\u001b�/̾m���//�b�R$d����$�\u001b��dH[d�k�R:��Ӳ}��-v?�k��U�|��\u0011�\u001f����{G���������y�ך\u000f�����\u0010\\�>Z��5�eX5-o���]\\oIa�`mm\u0011�Ux�\n����g{3ٚ\u0012?/�\u001c�}r�K�g��\u0000����;ʁ5�?\u0014�\u0007�r��~\u0019�~W\\�K�F�\u000f�2V)`�ukR%���Xp:v� ��֡\u00004�A�l�3��v?�\u0006\\��K��^~��G�W1q�x��'�|��y�?���̿9�a�:滩M=���Kwq;H�ұg�F��v\u001b��1�\u0018�1�p�\u000eN\f!\r�F��R�/yj����+qvf$�\b���^*��U\u0010���f1)\u001f/�Ɍ���b��\u000b�q�cF�\u0017�5K\b��\b�d��+�\\ʠ2�&�+\u001d�:\fs�\u0010�\f.�O>��\n?���\u00009E��d�&�,�\u0004\u0011�c�\u0005!��\bܞJ\u0010���e-�\f��jϹ��A6����M\u001d�zeŴ��R��\u000b{\b�\u001coou\u0019ȵ���\u0000�\u0000�\"r=@l�����M2��\u001d\u001f�#��d\u001eb�It�\u0015�ܚu����g\u0006���ח3�\\]�G��b\u0018%�����\u0003 C���Ƀmlq�C�W�����|_�G?�'�yB�\\���L����餾�#Ѯ������HҮ%��Z_�\u001by�4�=6f���c�́$׈.\\1�\t�UtO��f\f�0�!:ߏ�o�>��\u0006�\u001d���繲��N��R����&�I��\u0017�[�mJC��+\b�S�p$(U�<�L2�yzA��V�7�\u001b�-�|W�����y\u0004�#\u001e�\u0012C��a\u0015�\u0011Fy��MY�d�B�C\u0018,\\ՙ�r�@���\tfᇛ�{�I\u001c@�O?�\u0018��,hg�\u0001�\u001cV�$�ʮ~\u0012jA��F\u001f7Y�0�ϒ�>\u001b]Jv�\u0017q%�P�Hx�ukhx\"CN�,�\n\u0000�\u0011Jr\u00072\fx\u0005����_��}\u001d�_�O���b�Uմ�-��6�IbM5�$�I\u0001��y#H�\u0000�l�B��3\u0007?�WC��]��\u0011��\u001a� |?c�#�qp��\u001a.���pE�.���_[��r4�˸Ⳟ�\u001b���\u0010C\u0016�;�\u00124�Sī\u0003L�O�r��1|7��w\u0007�w�����\ff\u0019e!)p�\"G>�\u0000�$o]�<�ji�˩�b��P��u�q雤E���>SC\u0019��M��hy\u0003$F�����\u0019��A���}����N,�\u00119.0�\u0007��5@��\u0007�=����T�����ׯ��a���kͷ�\u001e\\���\u0012�\u0017�?�l�\u001bO*y��>�\u0014�A��I�{�Am\u0003\b�b��0�;3\u0001�/\u0006B1��}\u000f�cO���s�Y�\u0013�d\u0010\u0007\u000e�\u0001��y\u001e�6���W�>X��򥕌Z���-�^�js٥�W��c�\"�[X\u0015%�Xf��8\nb�F\n�HB�v�rd��\r� m��æ��vD�c��Yp�@\u001d��\u0003��}�s�JUգ���l��F�-D���.�U��\fZ4\u0017�\u0015�)x�h�uBj\u0004��#�켹3�r���{��ܝOk@`94�\u0018\r��l+�}�g��\u0010�,�%��������ީ�yk�gI���\u0017�\u001d��y\u0006����~^�X�y�˶\u001a�Ă�R��/�3�+#�f8٨�>��\u0000���\t���?���\f���c\u001c�\u000f\t�Lӗ�J\u0000�x0\u00113�\n� \u0007�\b?0���\t��\r<;\u001fG(���^g\u0000E��\u0010\u0007�`�\u0019g�G{��WO���q��\u0000��\n����Vi�e\n��]\u00125����n#�\u001bg��{�~9�ʼnu�|{����1��������v�\u0017��-�W11\u000e�\u0001\u001f\u000b�S��'<_1�fq����|vc�>����ϖ�[gJ�\u0011�\u000f\u0011P�(*H5\u0015ͧgKz��>�X$�WK-\u000b2\u001a��m %�\u0013V�\u001f\u0010]I5ڻ\u001c�e\u0002@\u0013�\u0010�:�`�S9��\u0002\u000b;��\u0002ф�`%�&����(�ҙ�\u0018��y�ۤv���g�'��w�N���2(�\f\u0012�SDŽ�\n�\u0019���\u0007(�\u0005j\u000f�w>�ha�vl{�|^���\u0010�Q s��c?�?�v���m6H�K{��f�f�v,\n��-\u0003���:e��vAˣ��=܃_���\u001c�@��(�/�MOLм�ɥy�I��t{؀��Q�.#��i\u0013�Z\t�\u001f�Ы)�\u0011�?g�\bNX�\u0015Ȃ\u0001\u0007�\u000e����\u0019q�1�\u001f�y�7\u0005��������X���M�c����n�\t�~�M\u001bZ���\u0015��>s��Ł��=\u0013�i>��&�~6<�`��׊\u001f���%�\u001f{�SO��MF�Gִ��#V���֛�[�my\u0003)�Z)\u0000�\u0019#�u,�؜�dœ\u0016N\f�1��y���E��\u0019�c�A\u001fw��V�\u0011߯��9]\u0003`�d�i��\u001e��|p{��\r��~u�I\u001b��\u000e�\u0015\n� w\u001fG}�\u001e��\u0001?$���o��E~^4�;ҝ��h1��m۾7�G�P]�G v���'�Q�X��r7\u0015��\u001d��}9���rp٢�\u0012����\u001f\u0010\u001dw���s\u0012�������S�\nz���\u001f+�L�v_��\u0007�<�~�h\u000f�᩶�(�;�k�le����\u0000����s_�^����5]��Q�a�˰|{$�u\u0003j~?p#5�r\r2\u0004��ۋ�}����|�͛k�\u0013��%\u001c�ҧ����ÿ�\u0000�`T��hh({���eD�\u000bA�BI�\u001d�f�t�\u0000k/��n96|�Ʊr�\u001boJT���L���q�o@���t������\\���\\�x�v=6��׳�\u000e9�VA�!�ܺ�N�_��k��\u0016=6�/�� \u001d)�\u001d�3��\n\u0016�H\u0000G�y3S�~��2~m\\�\u0015h��~�(�ꃶ��w?����ꏹY\u0005\u0007������\n��T�zl?������^~j\u000b��t߿�\r�.j�\u0004\"�'슟����Bk���\u000f�\u000f0����H\u0001\n�op2���myd#\u000b�O�?<�\u0012뺝��b���8��N��|Ȧq]���uw\u0003�����lB�r\u001e��\u0007��tu������T\u001an6bzuޙ�>���+\u0019��\"l�n����뫆*(n�\u001d�he;\u0002;��}��$�K\u0003փཻ\u0001<�\u0007}����<\\,�i@8�Ƿ�\r\u0006�\u0006vYM��>!�1�e��ItqE��\"�\u000f\u001c�s�v��i���m8��\u000f���q�L�ͽ\u0016�[\u0002����\u0011��w�횜��\u0000M�n�N�G���\"�t�{���1G�y+���w\u0018k��z\t\u000f���乭�����>ǿM��oo\u0007�w���~ȟ�\u0000<�R\r���3�\u0015[rzﹿ�\u001f�\u0000�P����%��eʘ\u000e�x?��9I=ܜ\f��Ւ��oҀ�\u001f�������5�W��\u0000:�Ɋ�\n��\u001cA�\u0000?��\u000eh(\u0004�+U�c����h �\u001e�m_�\u0004T�=�}�\u000f&[�\t=�O����\b@\\�zw�M��1�j�zl[��~^�\u0000<�\u001a�J;�Zދ��:v�����%�ǾƟ�\u001e�~D���(\u0018��\t�ڿ��\u0012�*\u00121\u001d���7?,\u0014���\t�5��}��ߦ$|��E������\"�'��_v*������ b�-�\rz{x��b��n?��c\u0014������a4�~�\u0005\u0010��/}��\u001fצE�Q�h+��\u000f�4�*�\u0011�OrkS�Sޞ\u0019\u001f���rBΤ�\u0004�u��\u001fNW+�\u0015�O\u0005\t`\u0007��\u0019\u0002\u0018ѵ��U����xe9;�\u0007����\u0018����zf�yrj�tۯ���\u001f�$\u000fxU^;t�q�Q�\u0013Ө>'�\u0011�T\u001cUO�GJ�OՂ�\t ��\u001b�]�쑥C0�\u0007��=�\u0000�dJ�C=)M�J�r:��{�\f}�IO��Z���\u0007\u0013�*]!�F�\u0011һ׿bi�\u00075Kf�����ø鿎BR��-��${�\b�@�@��J^�b\u0007�ξ?-�>E1\u0004�rliA��^��q�es���*��c�}�\u0000Uz\u001a�\u0006��\tT��O���dvA��Pw�Ӷ�{\u0003��h�@\tT��\u0001�ڛv��4镓�,��6-�\u0006���\u0014�+7�\u001f��?0$����Ѽ�g'\rK�\u001a�������\r\u001bR�*>�\u001e\n~���c�\u000e���ŏѤ��z�@\u0011�\u0007R�k5�tB�F}�t���ˎ\u0016^J�Mk_.b��Z��s�����q86�}�/���*w�]�/e�=�.\u0010'5o9o#��\u001fti��K�sjv��t\u001c���{\u001f��X,n5\u001dJboo�3�7�I6�+C��!�r\u0007_՝>P8F8�#����ɳ�y���~|�\u0000�g�\u0000�T������Z�X|ˬ�6�l��Y�t��)�Ӊ2\u000b���R(\u0014\u001c���D�#.[�\u001e�ɫ&Bv\u0015\u001d����/�'�Z�ޫ�O=���y��-\u0018i�i\u0018���G'~D�k�\u0006C\u001d�G�\u0006�b��ՊY[��}\u001cK\r��\u0002E\u0010D�E���K�H�w$�E]ueu���$�\u0000�t����k\u000b��h�Ӡ)q$P�\u0004vJ5\b��;��\\=0�@�j&V(ٻ\u001e��'��~�Z>�\u0016��#)�V��\u0015Q��I\\�U\u0000.��3\u0006Q���{un\u001c X���������^k\u000fX\\��o��\u0005�\u0011<[Eo�m����}�0�\u0017��\u001b\u001f�_��;F�7���Z�\u0001b�e\b\b�6�$�\u0005$~�|4B��è͞�|Ѯ����{�y�\u0000Ϡ|��L�3���\f�o���g�.�\u0006{�=%,�\u001ba&�ҵ�6��'�/�i�E8�L�l��t>@S�����,�\fg�!�-�ߟ�%�慕�j���M\u0012�m\u001c�R��sz�^��\u0016��ne�@䈭\u001cAQ@��N\u0000\t\u0003��\f�p\u001b�O�.�m6���PB�D����:D�\u0001\u0010 �[SNmR�F\u0003�\b�u�!�\u001c;������>�%���\u0015��ެ�\ty�ŤZz[=�Y\\$\u0012�%�ѽ%�H�9���Y�J�\u000eY���^�c�E��DA�>�w韑�\u0000*�\u0000+5=T�\u001a0�u�O̬�4\u0017��F{��,��t��u��}3U�\u001a D�$�W�\u0001�g�8�GpI�\t\u001d7��\u0011�����.�xЁ��_:;�\u000e�n^o������\u0000&�z��^��\u000b[Kx\"�����y�g��ͯ\bb���};�J����gXݢ��C\u0016�s3\u000e�\"G\u0012\u001d7�F���\u0010>�u���0��泒C�4,����rE�V\u000e��O�-CE�/��\t�е�K\u0019���N��\u001a���\f�(���Լ�����&���{�1C�ۂj^a�t��\u0016�Q��M~�X��\u0010k�ZZ��?��2Z\u000b{\rF(��\u000b�\u001bSPgB��Yc�´��\f3Հ1FQ#qߵ|�6��ã��\u0007(���zO\u0014M{�:�x\u001f��g����'�\u000e�\u0000��n����\u00001���U�U�0��m�6�=̞`�^��Zܤ�\u001e��h\u0016��\u000bJU&��E\u0018�\u0006m�d\u000e��v����Fl�����Ѐ��k��P;^���˴����K�ә�\u0018�\u0015)�O�#�\u0000\u0019Y�B�?�?��{='�r\u001b�}\u001b�\u00008��\u00009I�\u0001���T���~��o9hzN�\n\u000bM#L����gH�}�MUg���,I~.�r5l��\u0001��/���U���z�A��\u0004��7��G\u001e(���\u0019�=h����\fݝ��\u000fdGi\u0003/�^���d�\u0016L2H����0�ϡ}a�\u00008c����d�$��IW���ߖ4�1\u001b\u0016ux��.-Pk\u001at�kYl����\u00009��\u0000��bf���M?W���\u001e�w\u0013~a��\u0000�mژ�s���L\\F=ƽC�v\u001eD?`�8C\u001cQ���\u0011���|\u0007~\"��>�\"S2�1����\u0011\u001c��;X�[�IO\u0002�U�\u0003Bv\u0014j��\u0011�:Y�s\u0000�k�\u0019��ຝ��R`��,X\u0012x��\u0011�fQ۶t��X��K��h�w\b+��\r)�\u0015x牽9\u0005?sQ^,�����\u0011\u0013ͷC�Rxc�\u001by?\u001d?�45Y$��d��������bT%�\u0011����=3ٸT�O�^O��|\"G*���|\u001b�\u0005��y���_/jk<�h5�A3FX\"JgP�\u0007�lzV�\u001f,�S���삽\\?e:\u001d6|�s�Q\"�������[�qy���&�\f�:^���zџ�̈\u0018���\u0003��>M�\u0007O��9\n �}�C����c�32�\u00180\u0015SB:\u0006\u001e5�w�o\u0001$\u0011ȹ$���?3���o�\u0018�Þo�\u0016׊��'��\u00168��\u0016��w\u0004�Z\u0016?\u0014\u0012\u0016�׵w\u0017�\u0016\u001a�\u0011���,w�8����=Aڪ��0��>]�}Ǽ?,?4�\u0000.<��I�|��e�_Y\r·�[�&��\u001d7�\u0012�ɛ�O\u0016�x*^'�R\t�V�z<�\u00197��O+�`��\u001dc�b�\u0004섉<;q\u0001ӑ�\u001e_wW�K?]��k���s\u0010�\u0004ud�KuJ��\nt�޸�ZK%����\u0000�\u000fl�*\t��N��O�`|+�ES7�OM��=�}�o���j\u0001�RMF���z��i�㚍q\u0015�r�\n\u001c��W��5n��4����3#S.`�}=�\u00008�u_12��\"|~,�vQ�H��o�~�yvJ�4��W�n����\u000f�E���\u0003�r\u000eJi��)�m�q���Oh���h�����Y��\r=�}��ԙW��\r�@�3\u0012+֝G��r\u001cD�3\u0014\u0010\u00138��\r��^�|#r�㞕�\u0002�P\u001e���=�s+o�P�OE&�\u0005��������\r3\u001b�\u001f��moT���3z���\u0017�+�ʧ\u000e\u0018\u001dNx��/�Ȁ�\u0002O���\u000f&�����⫿\u001aT�)�s�����\u000e(� ?��#��+%� ���U�����F7�:3S�\u0002���=PË�?\\�\u001f�s�9x�8F�n���\t���\u0003�\u001e�W����,�\u0003)\u001e\u0018��?<�\u0000�$\u0015��x)C�UaZ|��E��>�\u0019��P¿�_�/\n\f�ó�c�#��\u0012�X�d�����?��\\m�軕J��QJ�vS�s��=�\u0007�;v\u0015�\u0004u\u001f��-��$}�\u0015�]��49��Y�z�=\u000fM4\u000b�A����&~oG�'�_6s��@{�i�\u001f����}9=\u000e���5Mt�\u0000��\u0001_��:�O��f8\u0017�!��v����?�\u001f_�K\u001a��x~���g����\u0000���?_�\u001eo���\u001fs�q�\u000fa�Nq;�޿�wom���M�P����÷q��S���U�(��o�VU�\u0017\u0003?4]�\u0005G�:�����>�iF�\u0014�߿��˂�7�(v��\u0000=���\u0014\u001d������{��A�-�#�tlK\u0001�u\"�\r�Pz&q�@\u0001�����ᾝS���S��\u0000}�\u0013\\ѵ츺\u0005#�c_\u000f\u001fll\u0004�΁�j\n\u001e�����]�\u001d\u001ca؃Ԏ�u���\u0018~�|�\te�\u0014'o��\u001f��\u001dz%N�[���\u0000Q��\b݊�\r��{�0*����\u00003��\"�����U���ݎ�ۊ��nT\u001a�+�n�v��eK��p+���,\u0004|�lS\b�\b:�J\u001a����\u00074��2�C��6�w�dO��D/�*\t#���ǣ!/�א\u001a�Q���v�ɰ\b����&\u0015S@� �?\u001c��G��\u000e%<�G���\u001c�gj)\u001d�����\u001dF�5�4\u001f���T��\"��\u0015�J\u001a\u0011��?���Q��}�|v�^�c�[*\u000fo�S�\u001d�c�WPѷ޴\u001d>b�zc��h�\t�J\u001aӯ��P�[��U�������\u0005W5$��%hH#��������\r�s���m����\u000eI\u001d��>�Ҵ�F�D\"��|G����\\�\u000b]Pr�|zP}�G�2?r6�I׮������*_(�M����u7��*�I]�@\u001dOѶ�)�*�zR�j\u000bW}�)�ڙUs�F��Zӯ�N���9\\��g�IQ˧�>$�#�\u000b\u0017�$��}��;�ni�\n\n�8*��ܔ�\u001b��z���:�� A�۹)4�\u00103�\u0004QZ�!iM�=�9\u0002\u0000\u0016z+ּ��Z���y��f}#�+Yl4׭���O��+��G$|S\u0010\f�d�����erv�\u001a��\u0012���9K'��a���:^��xi\u0001Â���\bo�o�~\u0016+��W�F��T�i�n�\u0015�zu�*\b�\f2)\u000eM>&�&j�=�A�X��1��!\u0011@r\u0011\u0003�\u0014�:�^|�#3}��ſ(���MM��J�\b\\����3�řE\u000b1;S|�d�1�\b\u000b. �\u0003��Ǹ~x�eZ~]y\"e�u�V����5$f\u0011�\u0000��\u0003��\u0000j�ܳ\u001f\f�ŌO7\u001f�\r��?����j?�v}�>\u000f�O���/T󗙵=R���\\�)�2k���x��N\bZlNt�`0����8��o��'�\n$Ԧ0\t\u001d��Eۓ��2z�jW�Q=�NU�8�>����|'�.�\u0012Hʲ�\u00162��7�\u0000OU\u001drq�+���\f����_�um\u0006���E\u0006�\n��\u0000���Z�\u0004��w>5\u0019d�NǐXP��yo�_�f�ӯza2HM�W��R\u0014�\u0002�\u0005\u0004\u0006�\u001bv�'T\":�A�H�z�=n�\u000fZ]B��Y���Xb~K�\u0013Ș�դ��j�*���$* 6݊�)��Y,��Fv��T�|0��ÜF@\u000bN˱$�r��d���\bu�\u0017Q\"#*�\u0002+�ps�\u0016o.�~c�9�6��\u0000��b-\u001a~�0��sQ�!���FlpB2�(����\u0000�8]�\u0019J<}F1c��\u000f���s�Z�\u001f�ڷ���Eϙ,aT�E\u001c��Ѿ�PZ��n@��\u0019���N�\u001e�B��2\u0011�ޝ�f��ͦ����_��6��\u001f�#�ߒ>J�-��fԼ�a\r� \b�\\�=].�J��\t~�d�V�\u001bzS>\u001e��q��|_�_�_������U��mLy\u001c\u0011\u001c���G��3}j�a\"0W�J��oކ\u0006�\u000b�)\u0017K\n\u0002+�/P\u000ek��0�vy0�\u001f���Ѣ[t\u0013-��'����o3#py\u001e)8q]bVd\u001bt\u0004���i��\u001e�}\u001c�����2\u001f\u0014\n���\\�\u001c��w�m�A��\u0000��\u0005�ȼ��[飺\u001a��(�u4��ƭ=��{\u0019�m�`�젎�\b�1�\u001d�`��w���62a��*�7���\tϙ<�\r���]GEmOH�X���Rҡ��.$��(l�g\u001c2_;�\u001a�Q��gD0;�\u0004\u0018d�\tq\u0011����NLjQ\u0004K��n�?7��]>�4�����O\u001c��\u0019�����)ZV�e�\u0015�[[ij��8RUxՁ��e�\u001b��}d�Dz�>O,>h�����4H�\u0000R'2D~ ���\u0004�D��Bv�׸\u0019��\u0007\u0016��kxE�ٿ,�1�W���BoDp���Gym�Cqn�\u0011��.���4��� �*�Q<\u0006\u001f�c��t��e}w�0C�7���r&\u0015�T�dӮM���ug:�\u0016�w\u0014w\"�}n����&�G�\u0019\u0018zAfF\n@\u000b%\f�BQ\u0017\u0010.���&��s�˫<��ӖW\u0011\u0002\u0005��u|��}��\u001fʯ��-J�/�fi\u000f���=WJ�D1M6�i\fK}y�^���\u0004r�,QMs,V�\f��L%2\t8���Q�\n�\u0005�w\u001c������{����IJ�C\u000eI@�\u0013Dr\u001b\t\r���nvAj\u001f��.����Y4�t�Ϙ�e�e��':>�5\r:K�'�����K{�Ӻ|\u0013�n�Nfy��Jfp�\fx8������t�%�_ٵ�O�Ŗ�a �2�\u0011�5\"\u0001$�\u001f�2\u0000P�`ԇW�^y�_&��ȵ] ���\t�\u001f0�YIq��u-��4���\u0001��=XN-f����\u000b~e٤W\u000b���L���L�4��|D�s�\u000f>`��U�\u0012��ibL�N\"Q\u0017�\u001b� o���}�@_�������\"������\u0011�o� �K�kw�Y-��\u001bk\t'k�Z�9���E���l\ro�\u0002r���G\u0006\u0002(�\"�!�\u000f�\u000e��������í�p'�n1��'�c��@9F������\u0000?���:��o��䅎����A�u�̭oJ�\u000e)��\u0017V�\u000f�&�e4kߨ�J�;���h7\u001e�����G�\u0018G\u0018���=�D��?�\u0000\u0004-G�tz0E�S�G�\u0011�-�O���|_�{O����?�����Mq�Q�_���\u0004V\u001a\\��!��tK�;�q��\u0017�\u001c˶̣>��ڳ��ؾ�`<:���a2=�≗��|K���\u000eПhvFPN\u001e��d\u0003��������\u0000��T�����\u0005��W�p�\u0017�[�\u0017��淒K˝3Q�H\u0018\u0006�).-\u000b�GM��׿�T�i�p����S��+��8�������,���è��\u0015\u0002o���������\u0017��Tմ�\u001b�J��🁃�Vd\u0004H�*\u0019hzvφ{K\u0001��X��~��=.X��\u0019������Q,����@��o�;Wm�[�\u0000�\u000e㛓��2��<\u001b�6��0��RU\u0019�X\u001a�1=�\u000f�4�ΛK!(�L�\u001c�fPA��y\u000f�<�\u000e�\u000b,�=\u001b�\u001aH�\u0002ֵ\u00040^���~�����7�C�{��?\b��\u0000��U�\u00009�,�4\u001b��IW���s\u001b�@��zGt�J�;���!�0����LBq2\u0006�~{|\u001f��Qye��h�\t\"��'-Ճ�V��h�۾z�(\t`��?��x�U����?��ל��O�?�\u001e�D7���ʊI�ЏMU�\u0012��Pw��>W��E�v�Y�\u0007����[�gPrv|#3믻����U�6�ط\u0010\u0001.I\u0000���\u0007�r�\\#%}��4�$�k���*\u000b�fFU�\t�\u000e�@ž·\u0016݇ʹ�h4�@�~\u001au\u001a����@�#H_(~lyb\u000f/����v�\f\fބ:�\u001e���p\t��[����G^�����c��*\u0011��\u0018�Xe�\u0010\b?\u0003��Q�.�E��h�y���N�>#{���?��\u001f(_z�>E�\u001e��\u001b�\u0005���9�Z\f�jQ=F+�YG��v��r�{\u000bI��鸱��\u001b��)6\u0007�_\u0007bNLg�\u001c?���!��\u0017������O�\u001cż�Ț4����ӥ1�<�s]��}\u001a��Gp\u0010����Z\"e�7�\u0014w\u001f\u0011�7� =��\u0019\u001e\u0013q��y\u001ft�������\u001d�-�_�=Mzv�ymK\u001e������2<�G)o�C��kA�}�����k����{�����\u001f�z�j\u0017�+POZӧ|���Gw+\r�)�C~}S�\u000f�M����s3�2<��7���7��!\u001c��U��\u0000k6}�*�Q�m��ߛ�\u0003�3r�7?�����v}̈́>@�\u0000����B�Wr��xxm��x\u001e\u001f���v���Y\u001a���~\u001d)��\u000b߫X��Z�w#���ƹ\u000eGv\u0019w���K5W��|E^�����\u0002U4�54\u0014\u0015�x�׽5�)��!6=�M�<)�F\u0013>\u0018n�\fC���h��H\u000e��&�\u0000�~������)׸��ga�`��\u0001��hq��\u001c�/�m3���\u0007�_�ᚬ�·\u0011�_s=ӆ��\u001f���7�]��l+�6�4�J\u0003Q�O�9��\u000e}��\u0000NU����kҿX���4o՘�����\u0005���.?��ߒ��\u001d��\u000f�9�Ƿ��8�\u0000Y��������A�@��\u001fO�q/`���{�\u0018�ʇ�����> �<�j�g��VQڍN���\"\u0005ݸ\u0019�ѶOTS�v�\u00001��$9��\t�\u001d<>^�\u00190��\rw\u0015T�;t;�\\��HbW(RB7\u001b�q���h\u001b0;\u001f5\u0015�\u0000ـ��Q\"�J���Pw��po\u000f\u000f�5ĭ�l\u0011�{����H\u001b�r����ۿݶ\u0014\u0013�ǥ4\u000f���\u0005 P��ih�\u000e������l\u0014\u0003�$���`��9y���R���\u0000o�EQH�PM}��;\u001d�2\u0016+fȍ�0�R;����\n;l˒��&�\u0003n�\u0000NS=Ž������:��G�;W��9w5\u0014b�}\u0003�Z\n�5���*\u0005<6�{�O����*@�����*�RI�s���w�\u0011���C�>�\u0014�w�*\u00166��&��\u000eJ����O\u0013�\u001e�\u0014�\u001c��@}�m��\\(C1�\"��ʾ>9\u001e|��D4�\u001d�M�{�\u0000\u0012r6F�h\t�������A�)\b\u0019>�nj\u001f�\u0018\u000e�;��z\u001a�\u001d�\u0000�\\�\u001e���v=v�o֣���Q�J_1�k����m�D�d({ҙI�Ԛ}'zu�H��6It�c^��#��r4R�\\:�%��q�aN��بg�V���g�#[�R\u001f-�\u0014��ֽH�x�\u0000��O\u0000]\\�\u001d�\n�7����i��d\u0011�����yG����u}����9\u0003>��\u001d/�_�>@xnM����qRH�\rz$}2�A�{=\u00123贈z4Ũw9�vG��\u001d4�\\��(�/�9\u000f��ƻ�\u001c�\u0007\u000e\u001fLO���_8�t~f�j��Z�|&�0�cVc�TG\u001ck\u0011H�KƅE\u0014v�;�&�\u0018Ȗ1P�~-�<�$��&�\u0013˭\\���5`����\u0015�a1��¯\to��=w�:\u0003\u0011�<#~��ǔ���o��\u0000%R�xl�R\u000e:f����h�r�\u0003s��\u000f ���<�P\u0007%���k{�x@�??��>�\u00006Zmv��6wO��\u001a�yn\t\fde!Y�\u001a�E5\u0000m��\u001f\u0011�,2\u0010!�<5����7⟘�%���+7�#�\u001a��\n*A.\u0007|�e�\b�c�_T��zj�#�h\\\n������\t�Q\u0011\"x�\t�هG��V�\u0014��N�����\u0000�0�\u0007\u0019x�/�\u0005}�s&\u0010�~e�\u0016\u000e�l5;\u001d\u0013I��5\t���m��WzI\u00040\u000fRIرU�U����\u0006\t�@\\�~6m\u0012�}�g��W�V����ƶ�g��˖s�mkd�_�B�T^\\\u0015 �4��f=϶\fP�\u001cr\u001e�~^A��LY�=\u0001�<��v���y�T�д�R$!\u0012��(mb!�&���\u0004P��L��c\u0013�c���W�\fr�kc#��b�[��\u0012\u0015��K0V{�ޔ�\u000fs_�o{\u001a�n=���\u0000\u0007\u001b1���g�?��g����\u001e�Y\u0012k�0y�PE\u0012\u0014\u000b\u001cڍ���4,Ο~K���⿈ȟ�D���3���Ÿ׿�ݔ~y�\u0000�\u0016�\u0012�U\u0010��\u0019�kR�|_\f��[\u0014\u0006NJ\"�v=kZg\u0011��G���y��G7��K\u001e=6Z�\u0003\n�\u0010\u001fƗ����!�����Ʃq$-�o:k�ց\u0012\u0000Mޅ�{�|� ���E3�z}��\u0014ω}��d��2��\u0004\u0013\u0019WB\r�����?e�\u0001�1ɠ�gLܡ38y�[�����ޱ/ @�֑c\u000f\u000f�Ȫ\"pX��5\u0001e \u0010\u00056�'9P^��!%�̨�_\"�&\u0006S),��U$��FI-۽\u0014�\n)C��a�XĶ<ڒ��ᣊ+�i\u0013���)\r͹�y�`����][ %\u001a�'f�Ng�;RZ[���\u0013��wGڝ�\u001eЮ\u0019�s\u001dj���\u0018���ՠ0�1�`���[;�#,ztֶ�\"��H�\u001e����\"��%j\u0002�AL������q����~����\u001b<\u000fhh�ݓ���ơw\u0019\r�!�z\u001f�7���r�^]Lʬ�m*G}l�\u001ea$�\nC\u000b�J&�F`�Ə�O.F�\u0005�&�c�ۢ�D}}�;Ԛy'e�yq#��Iͤp7��}>-\u0011��\u0014<��M�'1��Q<�v\u0012ԉ\u001fO$V��^Z<3Eu\u0015��#�\u001c\n\u001eDi\"v�,��\tJ[�9��k��Te\\\u0004�S�xj\u0004�s״O:I���'��赌�\\N��Fg�e�#��4�� <��P��\u000bT_�\t\u001b�\u0019k\u0007\u000f�����\u001f�����6\u001aN�-�ִ]KM��T{�ؼ���{}\u001fS�5ٞ�/u4��Mb.��?4��Cd�\u00192�\u001e��\u0000>[}ǿg\f걂\u0006�^��u'�\u001eO�d���<�O���$�:?�4w\u0017�hѥ��\f��I��he��o-~��C�\\z���J���\u0006PԻS>�����JB\u0010�\u0018�\u0000\u0014��\u00073��\u000ed�C��{[V4��\tNX��\u000f�\u0017�S����<�/U�?�����L���$�R���g��\u000b�J��Ҵ�ft\u001c�(f�઱�{S��\u000e���\u0015�����}\u0018��\\���\u001f�t\u001d_L�oe���\u000ek�^Ӟ��@�y�c�\u0007��z������\u001b\u000f/i\u0012\\�^��CjXG\u00043A\fe\u000b9���%�d\u0003�)�2=MB���\u0019��\u001cr�\u0007��]����\u0010����\u0000k�\u0018�\u0000����oϯ��?̿0\u001b����mwL�8��M'ˈ�Y#�t��E��\u0017=w�\u001d1����\u0005e�9d=�u\u001b�\u00004\u0007�=���Y�FC���8�(�z9�uȗ���\u0000@�~w\u001f!�k�/�Vګ\r#�/F�<�{i2�Dױ��[�d�\u000f0�\u0010��\u0000�O���c\u001do�}�����\u0007�\u001f�c\"[|>��}�>\u0016]\u0016�\u0012\f5\u00022���#������W�m?/�5�\u0000;��\u000b�m/C���\u001c�X�a�5\u001bѬ���'�\u0016�\u0015d*gֽ���{o����Iz�\u0019{3\u0018���\u001e\t�߮�ŝ�ّ�j�C�A�\u0018��\u0004|�de\u0013�\u001dŸ���\u001eg��w��Ԗm3F��t���j.��I\"\t�-\u001f��õ\b߮|��N�B>&hVL���\fG�7�_g��./\u000f\u0011�b�cg�������W�1M,ֲ�B�R7\r@=IA\nU�B\u0018����<ÊP�rD�\r��=t�\t\u0013\t\n�~����\\�߽��{k�gx�n��5} k��:6tzS\f��H�@�u�D�˄�\b|���\u0005��2���m}$�Q\u001b�N]�J\u000e4,G��:��2�\u0004\u000b�\u000e�T#(�#R'��\u001f���?���:[\u000b�7\u0011�n\u001e�ܒ��r^q��\n�I�㲥�)㇦_e\u000f��:�e�\u00069�(w�\u0004��_s����\u0010��*T\n�;\u000eJY�J�\u000faជ�2��{#��:\u0019��l���\u0000��>r��?.�\u0000C\t}K�\u0019%\u0012rp��\u0000z�#d�V2\b5�ϟ�\u0000��0�� �\u0007���g\u0007\u0000�����L��*-���_���J���#��g�v\\O\u0015G�������|�\u0007���R���6�8�neQ�+\u0018jz�\u0000$Y\"q�z�l�t8��\u001cQ$X�\u0007��)�p�6�|ީ�_�\t���\u000f'\u0007@���s.´�\u0004o^��gii��k��\u000ef�)\u0003~]��}7�y�;��\u000b�RU�\u00028 \u0011�MC\u001f|�h8e�b\u0014]�-_�C&㧗�M�\r+T���/�,�=\"�&����\u000bx�l���Q��`�:0>\u001f,�͆R>�����=�`���G,%\u0013�\u0007����\u0007�o����}�s�y��%㹴�Muw�s�]zS۽L�<��Lx<'�-';\u001d����݃\u0019\u0003�DDg�\u0007h����O�e�\u001f�\u001c�DsJ\u001b\u001b�?�C�(}���榷�M�Y��z��u%���j0=����$���v�)\u0010�\u0004n\t\u0007~3.�\u0016�,�g&\u0019�jQ��D�\u0011�����G\u000eINJ\"�y\u001e�Cjp�����O���G�k���F�=�\ttz�\r��S�w�v��U�f� �X�\u0007\u0014�WT�P��4j�4��7\u0015ڙ��}\u001bSv\u001a�pc�^�jV��N�;S�s\u0012��.x����q���f��0��O~�Nl�._�\u0017�������>���������\u0007�C3�|��\u00009\r5,.\u000fB\b4�7��\u001dX\u0007\u0019���&rj��\u0016�5S��Wo~��?�k�\u0000\u0005�\u001b��\u0012���q���\u000e��\u001a}Úݍ���=V�'����\fm*��Ƿm�����v\u0000<����hzl��mc\u0018,�դ�\u0000V�>��O�z�Lp�X�ܘ\u0000#e�Q�Q�\u0004����!x�(ۥ\u0005+����\u001cX�;\u0000\u0019\u000b �~\u0003��4TZ\u0000�\r�l)��؍�L���h\t#j��?lPl~��\u0000�v���m�\u0001F�*���1'�������%j�\u0005���4�}�A;T���`�ȿ�z���^��kڊ�Z?���5���BF� k~���\u00009���<�t\u0012�R�?��\u0017�����lk<,>\u001c6�/�up�|L��\u000f���&*qڴ�\u001d���3�ŴxC.{�l�X�������~���`�\u0013ߑk��\u001a�\u001f���\u001f\u0015��6�H\t�ڕ�\u0003���0�\u0000\b��\u000f�v����?s�m>���|5�)�5 |�ϣ�\u001a�\u001f%�\u0011)��\u000b�/�*\u001fN+P�S�T\u0001@:T��w\u001fNu�Y�i��\u0001�oi��H���}���Ž>\u0011�ޛf\u001e^�򘾶w`�/��w�sQ�on�\u0000O/H\f�ɇS؃Oc��W�tw�bI\u0005\u0013��\u0005����G�v�_�a�z2P��G�$\u0001�p��`~K��Kc��\u001f�6۾|����\u0000\r7����c���\u0007���T����_q�\u001a�Ɲ�w��=V�H{����>_��\u0007�\u000f/�ʵ�Iz����zb+��j<��{����t�\u0000>�\"w-)�o���O�Z\u0014�J����\u001dr`��bz�tbi�\f�\u001b\u001d�d�F��^���J�\u0014�4�0(zdo�����ح}���n�0��vsV ���\u0000?\u001c\u001c�����\bG~���倓�@�܉��)������\f�s�yC�߷���v��me9)��\u00003�������%\u0017��=(z\u000e��#��� �${x����wb�T\u0016��?��`�傠\u0010:����͘��p�'C�+�q��Ѿ�\u000b�Pw��A��\u0006��m�ߩ�|>~#\u0002,\u0003HF���¿�\u001a�F��\u001a�\u0015�\u0000=����O5%\u0015c��\u0013�\u0018�A����o��\"N��\u0007+�ē�ڿ\"?�U6H�~�=��9D�ɉ��\u0000�����\u0007�QJ|�Oњ�~�h�6�6#��?�0+��D�Sc֣�a�&#�\u0013�T�\u0013���}r<��AէM����q\\zn�6>\u0015��ӷ�=r=7�J-O}��0����*�����ԭj\u0007Z�\fGr���J��7\u0007�hq*�z��}��(i_�푭�\n���A^����#�\u001bB\n_��G����1@KQ^���\u001e\u001fME0�z���W�H��^��o��](��+^�u\u0003*��JW(�]��I�ڟNVMsJU-I�hz����\u0014\u0019\tp�{ \r�4_.�\u001eg�\u001an�jng<}y��vvQW��s�F�7�c�3;?�u���������1���7-:�V\r\u001e?\u0013<�t\u001dK�_+�_�K��\u0014�S�\u001ec��F�\u0002�u��\b�,�\u0018��n��ɍ+�zwd�%���\u001c��˪\u001f�.C�����n���jIç&\u001066�)��|֞]�g��cuz��\u0010��ZV�c���E\u0007m�8�\u0001\u0000D��:fh��?��>h�|�ptۦK��Ԯ�3�W\u0005�\u001d��ْ\u0011�\u000fe�\u001b��d0� \b�\u0001��\u0019ܯ��)�|�oy��,�M�*\t�nn-��vw=\f�IY\u001cl�A\u000b��2\u0011��}\u0001E�f�m��\u0000��yƟ��$�.)p.�J��� �8��4̬0���6�ulד(7\u0018�K�/�[�����^HȢ\u001bI\u001b�\u0015\":!e\u0001O�J\r�]�:�\u000e�dI/�?�ȿ6�y��>h�%�W�\u0000O�H�\r��0�B$�_��Nٗ��\u001cx�\u0003�\\�R&UWӹ��<�\u001arXːͷ.\\���>�S�\u001c���\u0002j�'��j�mB\\�\n4kS\u00132�\u000b)�v#�G|�1��q�G\u0011%��\u0000�\u001b��{��Xm��Uf�A\n�2vA%)O�I��2\"\u0007\t�P���r���\u0000�ߚ�7���2��b��O\u001clc3*�����pPT\u0003A�c��?p�|[��2����|\u001f\u000e�� �7\n�X���w�ٺ����zS%.T�~��\u001e[�]?�R�h�,��h�]_�����߾��5Y�.\u0003\u0005,vQ�L�\u0017!��d��̇>_\u000f�4���\b<��\u001a��Ҵ����3-�\u001f\u0013Z�$7\u000f\u001c���2\\\\)��i�n3m�V'�C�3�\u0014���\\�/�?#me����$pO$B@��X,�\u0017�yT��M}�i\"a\u0001\u0013���R�������������ɚ�R\u0018�W����p�U��H��C4�h���\u0014\r���{M\u0011\u001d^����$\u0006���pc?�\u001f�dy�������o?.?<�?2i��5��k%�\u001d��ow$\u00171�)ȅ\u000b_\u00103�o�?�;`\fg�'�8�'�\u001f����\ti��\u000f�9H�\u00006T_wyg��o�4{]R\t�Ky#Gw\u0000��]:��ډI\brvn�\u0013֙�y1K\f�&7�\u000f�\u001amF=^\u0011�\u0011����\"�/\f3�'��������T\u0000����9V��Sm�\\\u0000Xl'vi����5���p\u0019�(\u001cT�\b!�\u0019\u0015�P��Ű���c�\u001b1�)\u0000Y^��J�la\f\u0013Z�\u0003*�9��py�\"��\n�\u0005A\u000b�\u001d�žC\u0006Y��&\t\u0012\u001dF���٪�C63\tF2�!�\"��\u001d�/����,�b��>�\fhU��ܱ�:�\u001eT\u0005j�\u001d�u\u001a~��G�W�����x#0qǀ\u0001T9<��U�\u000fNt�Z0�qwg���V,~\u0000\u0017⑃>�`((3e\u001dn9�N�/f��n&�Iu\r�գ���\u0019d�-˼��4�\u0005\u0017?\r\n�\n��\u0010U��S@0\f���\u001f����5\u0012���<��1�;]��u,y~)�m�F�n�Ic����(\u0010�R[�j�0�5G\u0016�W���:a�rL�@\u0007�\\�7������Î7ԙ\u001f�\u001fc���C�pK�+\u00147�z�^��k�6X��N�m�=)#�Y��[�u\u000b)���Iw\u0014o\u001a�+\n�����z�K���\u0018�G�}s�\u0012\u0004\"z�og���\u001c�cz���=EKh\u0003�����(�X�}]�_-y{Ț}��t\u001d+A�\"�\u0012�coh\u001d��$\u0016i�@�V���Y&i9G\u001c�&F��\u001eT\u001c���uy�U�ys��L��@{��84z}6�:m\u0016��߉�\u0018�>���26�,��o�@�yE+\"֙����#����Z3B0�sۗ7��V�\u0000�C�~]�Z��]6�꺔�7\u0002\b9�O�M\u000f\bN�n\rl\"�i�\u000efRZ�I\u00076ZlgQ�8�����v��\u001d��˫�\u0000�`j�\u001a������O�Kw�\u000f9y��/o5)\u0012\n�\u001f�jW,ܓ��_�s�ft�Ńo�x�\u0011�O���$��\u0013���Ւr�����\u0007����\u000eO�_��o��/=�,�~�����jii/�(��o`����+ij�N�\u000e��^��h�:��%\u0012\bڲD�_��{L<^�ˌ}P�\u0010޷���mo�_�r��1i_󓿚څ����_�\u0016\u001eC󝭹�c�\u0001�yn���[\u000fH�\t�t�r[�\u0019�ϡ�\u0000�a���\u001chtٱ�����`���r\u0019\u000bߠ�t��\u0017�\b:q��\b:̘2e��GO����&8�\u001b\u0011W\u0013w{���q�K�\u001bR����K��\u001b\\����֖\u0017o��0�%��SC\u0015�ܖ�N\u0007�\u0012��9���\b�,r�\u0001�$�6%\u0013��íw�}\u001f&I��\u0018\u000b4D��'����G̀������ݠvh����,�Z0\u0003\\�%\u001fg�-E�|��\u0000���\u0002(ѯ�����F=�/�|?���Z]^ܛ�K��YȽh�H#��fe���Qab��\u000f�s���\u0012�\u0007\u0001\u0016zmd\u001e�o?�ώ� _=�\u0011О�w����\u0000��ծ��Iu\u000b�a��\u0007�R�c���� �\u0018�\u0000��\u0014��C��\u000e\u0000FO'��JD�\u0010��\"���>1�2M=��\u0002Eħ֑�\ft��H\u0001jq䢣�{g}�1\u0018##��d\u0004́��?J�\u0000�\u00026�<�矩J\u000f���%{y�$O���Ռ�j�A+�j\u0016���s٘��g���,y��\u0000g���g�hH�߷A�o�McO�\u001a}6T�E��Ib���2�\u0012���\u0000��'g�xrm\u0001.}\u000b��,5X�;Ȏ]A|��\u0005���_ZΗ��\u0011M,r3z��\"zƑ�K4m��θ��\fQ��0#�҈JS16\b>h�\u001f\\�N�\u000f��!smp�߾�.8lѠ��0�}�Z��̓�\u0017�1Q\u0015���\u0016J�������z軻�!k�\u0012�ٓajLR�#\u001cD�o)㲟�\u0006��k8a��r��/��f\u001e����_{8�7�a�ch�V�1\u001cdي�ԃ�+�o�k�CK,G��o���\u0015��6�\u001f[��9\fW6��\u001e����e�4y1�S�\u000b�!�v\u0011��lm(����>/�\u0000���\u0000�]�?� l�5�,����\u00008�[n\u0010_M\u001f�����\u0014�\u001aV�\"(g��]P�\u0003\u001a5V�8�l}�\u001d��\u001a�\u001c�.҄w��$\u000f�Y�߃��\u0017,|�\fn'w�}�\u001d\u000e��S\u000e=1>��\u001fӅ�����/�[�\u0002�[�F���[̺}��?/�Ϧkz=����sG�A�H�\bx�Z��2��\u001c�O_�\u000e��u�{7��î�>\u001c��8˘�lA\u0004J2��Q\"B�}�K�ޗ�4���22irDJ2\u001c��\u0004\u001d�<��;��z���\u0004իq��\rw�m�\u0017�A��\u0014'b�\u000fn�9-$L�h\u000eG��ꋨ��Nu�۾�?\u0010sС���\tw�{�\t޿�_��ߝ���'}�#�D\\R��~�w�>/�|��\u001fA�p�\u0003o'�os��߭\t�;�\u001c�\u000e2Qqs���O����)��c�\u0019�h7bv'��@'-��\u0002���ꤊ�ڞ&�mJ�]��*\u0016َ ���s�;�/;E�O\u0011i.\u001c8��\u0014ҟ�u~��#���R��7�z��{���Ǘ�䰲�\u0005\nx�6�l�B�\u0011YK��vZ������e�\u0015\\�1/N�?��\u0003�D\u001a�9�I��ߩ��\u001e=2lW��t��m\nr�:\u000f\nl{aT:�^��2'{�J �Č�\u0014w��a��N��l���;�i��\\��/\u0014sZ�;�m�b��#\u0013#ѧ6N\b�ϐ�}�νOW�\\��/db�����k��F��c����U��K�\r�����\u0004w��F�\u0015\u0014m�SA�{�zd�Q�R�6d7���S܃�\u0011��q/\u0010\tr�����OΏ������EEy���Cנ�m�\u001a\u001f���\u000f�v���\u001d��|]�Y�hO\u001e�ӵ>����\b��ϔ�'��>����Ė”��6?\"G@>]�����`۹�/j!!(��G�_qi�b \b\u0000*���G&�⣴�,���\u0002+��\u0000�Fj�n�MG~�ebzmZ�_��횬���L8�D�D}Z߷���7\u001b�\u001c>���\u0005��#ć����\u0003�X��ۦ�>��\u0015#�F|����\u0000\f?�~��4ހT}ϫ\u00014\u001f!����{?'W�t�\u0006<֐�\u0007�F�)�R�q��y_W�y�RPk��\u00005n\u000e��'Mo�w\u001d(H�\u0000=���n/�㏱���6�\u0007�\\�)F�U5\u0015�i�~y0�d��.}�d��\u0000FYw�\u0012\u0012�\tR>�{\u001c�1�1���\u0002��ڙ^֖��Z���}��p���y�\u0012n����d���G�t(\u001f����r ]�����\u0000?�\u0003�����a^�*\\��>7\u0005hA\u0003�\u001e�:2\u0014wKn�I�����m�X�,1�*G���,h�\u0016Ƈ��\u0000|�^�\u0014s�8�\u000e;\u0000~}i�s��rQ�1M����)�\u0007��r�#~���E�ҧ�>\u0006���\u0013�̀7�#��\u0000o\u0014�<��\u0001V���ND�rE\bv\r֝���L�!�u9\r\u000f_����c͐5�Q\u0004��\u001e�#��*��l�\u000bu��~��r2�\u0000\u00129?�����du�i�GM���\b�&���\u000f�6��\u00064�H\u000b����v�}�rQ��u�P\u0001\u0007�;oӾF��k\b��j\u0001�Ri�<&�I�i���F���L\u0015��M�^��=�\u001e��P���N�\u0007�#�\t�g�\u0015��p)��:W�\u0011d�l(9�{x�Sۦ�\u000e��\bCHw\u0006�ڄW��v��@\u001a�t�\u0001)��7�{S�\t�uG_�]!�_ױ�s޸\bO.|�\u0012�R+�n+�qT�N���?k�;�9\t\u001a\u0016�t���\u0001�o\u001c��\u0010�e^R�\u0015ߚ��\u000b˅���o/\u001b�Nb��ϧ�\\Ea̅��J�s�)����c�=���zI��\u001eu��tL�^X\u001a��à\u001c2�)�\u000f2�'K�򝞕\u001d����A܋���d�x�'�貭��-9\u0017�#QBsԴ�H�v\b�pB\u0018�\u0011��~}I�Oy��u\u001a����)J'pNܺW��\u0006!�_>h�_�\u0016�J��_��\u0014�=@zQ����������]�����\u001c\"\u001bK\t$z\u0012$�8�(꤯��MO�\t�\u0011���m�`��?�>?�'\u000eyG\u0011�/\u0018��g��5f��-ʤ\u0001�\u0013\nz��Q�I��A�\u0007l�K\u001d�\u0003���Q$�u��>e��nn-�偵g�\u0015�J�O��\u0001Ac�\u0004�f?\u0017\f�3\u001b�ya8�\u0011,�8��8�\u0015�#\u0016�YYwb\u001b����8��U\u001a��/�|���\u001f�7�u���uyj�}�l��]�!��dT��jj:d3NJQ�w�}�\u0006@\\��\u000e^e�+�+�on�\u001eB�����;����ɍ7<�v��\u0011B495�\u001e�ό\\'��x�\u001d�\u001c�T���� }������g\u0015r�L�G����5�C;BCCW�\u0014kZ�ICƎ\u0000���e����-���t>b�G�f��WyR#y�Į����K��\u001dAXԑ�X��\u0010\u0000�\fA���w�g���j��D�P/\"�\u001a��X��K�\\P\n\u0013ӶB\u0011&Uվ2\u001c46!�zU�Y�L�}J[9R�f�)�½�-E:d�\u00129���4zn��&k(l-t#\u0005ޯwy�,�kk\"���?+x�/�PۭC7\u0005s֛�\u0019�6j��<�\u0013�r�o|��k������{��%3}J�&�\u001c���|6q\\N^��m��w+ʛ(\u0019��7�\f��\b���\fcg �*>�̾^���[m/I�2�`�3�\u001a/�QJ��\u0014�\\���e�q�x+��\u0014��qu�\u0000>���\u0000IN�j3�{K\u0004�\u0012\u000b?0j$��p�\u0002��\u0019��[\u0010rƇ�X`O���e�����R��\u001b�?�_��}5���W�����,�\u001f���9��\u0005���zs\u001dF;�\u00018����O��/�xR�|��K(��y��\u001a\u0019�ҕU$��\bڠ\u0005$\u0011�����%��\u0003�������\t፛����cXy�\rN+i����yKh�\u00029�FF�\u0018\u0003P\u0001 {횃�P4C���C(�\u001c�f����p\f^�\u0012F�x�*�?�� �c��aM�\r\u000e\u0002,S�\u0019\u000eog�<�\u0019�\u0001Ͱ��_�\u0014��\u0019CVRĩ�dm��v��Q�\u0015�̎S�˕\u001f�\u001d���v6�1�$G\u0016�x=�Ѝ7�\u000b��S��\u0005\u0015��kf�����+�$�[%�r\u0011m\bE\u0015i.dw@\u0001��9�\u001cڙ�I���=4���\u0003�@�M��x7��1༞i�\t#�Y=\t �I\f\u0003uUX^!%��2Hv��\u0019��\u000f\fo��$\u0001]\u001eI�\u000f̦�!&�4��6����Z��yq�q�c���C\u0019�SьF�\u001b��&&`�̴ˇ��r�\u0003�_�s?�bmb)�h/'�)d��\u000b�?{#��$�Y�:����\u0018=�s��kE!�J`����̎\u0013��+�W���o]ύ��\u001a�Q�������\u0003�N�*��\u0011��\u0011�\ns;S�{���R�(�\u0011\u0004�����L�\u001c���\r\u0007�\u001f�w�5+a\u0005��}J{\u00194O1Cp���KM+^�8�L���m����\tV� \n���g��\u001a�K���ߴ��{cQ�:9��\u0003�q#��y?���ɳ{?�\"u˹m�.|��\u00008��\u001b�J��G���P���)n!i@��(���}�w\u0007=��\u0006\u0013�}��0��۹�En\u0004�\u0013_0���\u0000\u0004�d\u001e��^�W�'\u0010$\u001d��9F��w��\"�\u0000+�']GK�9�7��ܢN���d\u001cYT��Q�R\u0007�s_�\u0016\u0011���V&kn��\u00031��\u001co��~^o��˯7Y��NM/PE?�b�P���\u0014ԑ\u0018p��H�x�����g�����\u001d�%�\u0013�����\r\u0006�\u001a�xs�EH}�.a�\u001e~ү����\r���rY����$�\t#�+�\"�M\u0004\u0013P+zl@�x�ӳu8�Zs<��\\U��X�q5X�a�#\tp���\u0017�9�z���\u000f�\u000f��\u0015�<�\u0000��d��_\\�iy\r��!\r��x�S�A�\u000b9���g��P\u0013�w:\u001d.\u0013<\u00190�\u0010\u0005�ؑ�w[���9�3�ώ�5.\u001fP\u0007m�^\u0013]C���r7_�֮��G��\\h��q�\u0017vi\u001a}gJh��xjK�U\u0015䁑�\f�+\t\u0019\u0000<\\3���jg\t�ȅ��\u001d�˿���<�f��咽���}J�Ym#��$���V�r慤\u0010/*P\u0000(3��Fq�\f#\u001e w����r��J\\'�����:f���kyR���_�C��H\u001e�M�uK)l\u001e�Z7�f�I\u001e�'\u0000\u001e-@X��9��ɞ:|�\b\u001e(�l\r��vZ\u001cxr��\u0019q\u001cdѢA\u001eb�����\u0000ȯ�8i�_�v���`��i��\u00177�U�ט,�u�ˍ6\u0019#�#r����A$��2�+��1\u0004\u001eq7�F֜�Ũ�\f��6Er���h׹���Kq���I1�Q����G(x�h]\tW�dU\u0004uR\rw�k�\u00002�%V\"h�9@�8.�\u0001c��\u000fɭ~[mT��!&��\u0016�j��=>5%�\u0005�/^��OL��l\u001e&\b��$si�σ!\u0012������}\"��P�H�eҠ��y4a�\u0010�h�\u0000ӏQ��1CQ�X�^4y;IJX�&?�<�:���[O\u0013�\u001c\u0011� \u0018�W�׹�v\u001d���H6j�z�\u001e\u001f�l}��Q?_C޾�9m�4��ɪ%����\u001cP��zWۦBD\b�N��?y�!��K\u0012(�T��{�5Y���5p��ˬ���@}�t�n���\u001d��@+k\u000f��\u0006���\u001e�:��i\\Ō}\u0019?�]�9^HW>!�����5��>�O�l�[�\b\u001bk\b���\u000f���\u0011=8G�\u001fV�\u0002���3�����ֿ����==6߶���ðD�<��c��o�O��+��,�\u000b[�=8�^����\u0002ϕ���\u0013SQ����fHd��E﷏M�S�\n�\\2�^\u0014�r؛\u001eH<�-\u0018 ��T�����-��K.\u0014�>&��\u0011\u001e����S}�\u0000\u0013\\w��\u0007j*m\u001dz\u000f���� �G����\nc ֔�\u0000?〠sۚ�M���\u0000���\u001a���F�ɯE��ҕ\u0014���\u001b���A��pb�hw����\"\u000e�d\r��\u001f��Z��\u0000>�\u0013�,l��\u000f�R;vژ\u0019U\u001f$0U\f\u0005~T�\u00003��ǣ\u001d����\u00006�Q�6�������(�\u0014��������D���������Mq�i<���|01'�a�������Ǘ��!O���ȝ�{��Q0+�*{�w�\u001c\u001fs!�$\u0015��߿��\u0001i\f�EI���235\u0016Ѱ�3�jo_�\u0006cRA<�����\u001fn���?��0cu]\u001aN��f�\u001d��\u0015�R��tX��Oz�S��\u0007���\u0011��<��y�O�o��ҹ+��Q{�-#�\u000e�\u001b\u001f~�o�\u001c�.�k\u001b��k����&�JM�\u001f}|O�Za�\u001aG܅���0�������B1\u001e=*\r|GS_\u0001�\n�c�j�\\־=���>x\u000e�~l�\u001f�\u0006M��\u001bק�ddT�B=\t;{��J\u000e�\u0001لeė�7\u0015�\u000f�Z|ϾD��dN���w4\u001b��}��ʥ��O��\u000f�Zw�Ho]\u0012̼��}\u001f]���̓H�M�\bR�)��&�tT�Ff\u001f\u00146��9�ܓL�=��j=��&�S��Lg�\u0001�R�g�}����l\u001e��Ä\u0003�[��\u0007�)��u���}\u0012��`��{�\u0017FӐ<���4Y'�\u0011ӍԮ�2��ȩ�,A\u001e����\u001848��\u0000 8Mm�O�^���j�g�d�Cd�/z��\\맗�0�\u00005\"�ִ��=Z;+�-��\u001e�n��̾w�E�$v�6����\u0006����袍��31i�%Ō^S`\u00006\u0003���L�\u001e*�#�O#�G�\u000eL�\u001a����wX�|��/�VY/��)]9X�y\u0004�\ba����IA)�}�\f�O\u001e/\u0000K\u0016��\u001f>�\u0006�ffFO���{����\u001b��ϟSծ�;Xecq�@%�\u00027��\n��s��ҙ=4\u0005]o��D\u001d�+��ʞ{���r_)�k\u0015������Kok�2�|\u0012I�_�]\u001c�\u001b�ol�\u0018L�)ʯ�_���&U�wr/$�ǟR��۫xdv�Bd��^E�RG�b]�\t��AJ��8�+���x�\u001b\u0011J|�.nu�[RVk���<�%DfCBȼ�F��B3\"5�m\u001a`,��w���`���\u0000�<�a'(- \u0013\\��\u0000��P��>�Tn���B&Y�3�~?�rЇ�������-�y��v�wV���ѕ\u0006�J�;u̲v��\u0003�<ظ�\u000b���Ej�ǂ�g�b\rJ���cN���\u001d�n���y-��(�$6��2B���N�G�d;I4c�#D=\u0006XK�)\u001b���jVK��\u001a|<�MVd\u000b\n������\u0002�y�7W^����H��!��S�z�Z�\u000eß��x��SR��}r#i�C\u001c\u0011As\"Ms\u001cq�\t\u0011���\u001e\u0001ݗ���w�\u0014�\u001296��w�M\u0018��39n��\t�z�@\u0015jI�4�H��3�\u0007w��_\\����5\u001e�\f�CW�=\"N$o@[�l�\u000e\"xG�Z�\u001e�\u001f󜺵�\u001e@����<}mZ�\u0000N:���I��I\u001c�ՂY۩���i�\u00000����>B��Mx�\b�\u0010;�\u001f���\u001f6�\\J�yN�)��l\f�}�ع��O��(A\u001f�U9��\\x�/�\u0002��\u001a-�\":?|t듩�\u0000Ϥ����*��y��6wFJ�G$:��\n�Nk \u0002�3���\u001cZ�\u001e�\u0010�\u0011�'\u0011�����C�_{���\u0000����Yh�>h�\u001e\t�4�W\u000f\b�\u000b�\u000bGF�\u0006�$�\u0010WČ��%��r��Dze�^�\u0014\u000f�p�ϱ9�\\y��r�꼎��o�<��\u0013��\u001f��U�;\u0011P+@H\u0003��\b��\u001cd>���\fb\u0006�����ъ(�%��\u0001�#�%\u0003�� \u0010é$�q9��\u0001\u0016�\u001amA\u0014^�i�\u0007�%2We_R\u0012\u0019թ�)\u0006���\u0001N�0�\u001fV��\u001es!l�F�$��Rpf�����`2�P^6�����\u0004\u001f\f\u00061��\u001c�i5��MF\u0000���Pz�\u0012B�\u001fQʅ1�x�\u001dx�(w�\" \u001b����<��La��I����ԐYP�1�Q@v\u0006��\u0007.N\t�\f�e�Q�4����\u0001_�%nh !x�,I�Y\u0014\u000eKPI��ʳD�r���c\u001a�g�^P��[Eeo��\t\u0002B�\b\u000fխ�l\n�'G.\u0018�\f¡\u001b�)�MN\u001d��G7��jG�\u0019\u001b\u001c�wŕ럙2�Z\u0011ij�����ˍI�\u0016�\u000f\bˣJ���H\u0005�*�m�1��5�\u001f'3.��6\u0001'��W>l�n\t��u+\u000b\u000bF��X�n���ZXɔ޾�ޜ64�\r��~��e�j\u0019�?T�\u0003˧�x?��լ:t�z<�H]X�,�!�UTq��������`\u0000�Tu9���Δ�\tf��\u0003����\u0018�x\u000e�I�|;��\u000f�_͟0�kڥ��H�}V$3+u�\u0012\u0017��?\u0013���:q�\u0001�>\u0015�\u0016�Z��I�e��\u0000�\"@�\u001e��ݸ��\u0011�\t�g\u0016�(�\u0001H�B\u0003S��T�S\u0018�l���x=i1#���,�\u0000�\n�V]y��\u001a]+N�,�o$%�j���1�+�/?�^�\u001d&ݙYc�09��&�����\u001e\u0018cԜ�\u0005���x\u001c��n��\u0000nk%�S\bˆ�@�����~����\u00009�$6��^RЭQa��_��[�\u001a\u0005�#�k�OS�X�\n�b\u001d@�F�\u0000��N_d5�������0{�c\u0011�_\u0005�\u0000���}��i��C�q\n�\f̤~o\u0005�\u0006��wc�Җ�3\u0014w\b\u0015�\f�DnU��\u0018�\u0016�\u0006����0�\r\u0001@�\u001d�\u0000�n\u0017dj%�\"VlƸ��|�\u0017ܟ��\u0000�E�h�.�A��d����Ip��N�@3�i��#<��>�\u0011�rc\u001f�#�\u001e�a��g�RYe��剮��˝���������\u0006���KdD��Ǖ8�:�B\u0001\\�{*�Ԝ\u0007hˣ��\"3b\u0013������缽�5�Qӂ\u000b�йj�H�^$��%h)�m���\u0018������}�\u0003ڙ2�Q (D����\u000fȿ���\u0017Lկ-��\fV�j\u00064�K��s*�\u0000f�7�G2*у\u0016�\u001b�i�9ri���t=��uQ�i\u0013鳵�\u0000Hu'�-�;yJ{i��o�8K5\u0004�,�\\)T`\rZy\u0019h\u000bTTW��Jӈ�L\b��<�ʞ{6N\u001c��8O2l���}A��\u001d.��.�4]6�K��[i��Yl�+K�S�{��l���Ts�\u0019s��FXJX��2��6\b�7z\u001d&,\u0012\u0002Y!\tb\"�\u000b�;Q���ޞ_�v��]�s�s]�\u001d���,[C�_]<�j�\fQH'�I�\u0002�}~�V�K�����iBk�\u0016]H�\u0019G<`L\u000f\u0010ڏ>�T|��c� ��1\u001c���\u0012\u0002�ޙ�X�q�>\u000f�<���`jz>�����(-\u0010�^i�MV�\u0014�`�\u0000s��\u0016�-��s0�V,�^#�$�\u0007\u0013��,4P�#1(����Q���\u0011�\u001b���8q\f`�B\u0011���c�=@H�\u001c�� w�\\�\u001a\u0017�7�|����?1k����|ע�)t�t\u001f,���^l�,����t�j����Tg��u�Y\u0005\b釗C�\u0007g����K\u001c��ꌣ#�=j���Lu�s꥗Q\u0013\u000f\u0012$p��(J#���{\\e���\u001f�\u001a梲�X[\\����rO4�^�~d��x�Ң\u000fm��j3$Wv)-�\u001c\u001a�BҁBF�_��\u000e\u001dA\u0010\u001e\u0016.\u0002%\u001a��䁱�\r9zY��\u00002>&N!�+\"��\u0002w\u0000����R�N�g\u0017�n�}�;�*!d���\\�'KmD_Kh4���\u0011n�\"�\u0011�U;��,��R����W�K\u0015v;����~jY\b�En\r�7T{��}�qr�~Y�f���##D9��\u0017\u001c�9`�\u000e�\u0004�(T��l!���\n��\u00008w�ü���\u0000O�\u001e�q�Xj�\u0017�E��=.�=s��������Yn�D��~�o�[��\r��&;�dTxI�e\u001c8��Z|��Z\u0007\u0014on!χ�\\�V�9c��\u0002%�&�[Ѻ\u0012\u001eW���\u001e�a,d�\u0000v�\u001a�m���qJ&�E\u0015�h�ψ!�I�\u0012\u0003��݃�W/�̉�$y\u001e��?�\u000f��?��\u001dS�q���]�b���������O�mU\"+lt���s�ynW\u001f\u0002�^[��(R�����R����?dr{#�va�?�>�,�i�\u001bD�W�\u0001��)J�ߊP�\r��\u001f�����>�B9����\u001cY{�\u0000�d\u001eR�\u0002]�\u0004u\u000f*�ji�W��N�\u000e��h�\u0016�W7͵��\u0000\b7�&y)1�#~���\t�>O��\u0002�N�\u0000�8OO5����55���fDz��ϝ3�~��.Z�'�0']�d\u001c�t��d��|�\u00009\u001f?\u001b\u000b���w�z���s���\n��t\\QE~��5�<��h���\u0006k��cCC�V����\u0002{�#Q­I$\u0001�ܞ�I��\u0003�v(qs\u000f�?\"|��!������#\u0016\u001f\u0010�\b\u0003ڝ���\r\u0017����?{>~\u0004�ڇ7�>�b�V��\u0014<@\u001bmJP��\u001a\u0016y��J�\t�\u001a�݇�ץ2���k�G�\u0017\u0012�\u001f�N(5�Y�E�M���}\u0014�\u0001˽\u000b�\u001d\u0007�|)�\u0006\u001aE��&��ҟ/�\u001fr�PQSS���*�H!��j\u0000��3C��`�e>U��|����İ��>�^(��M��0�\u0019#\b\u0019�`\u0003F|�\"��\u0017�v�.��\\�JI�d\" ߳\u0012��\u001f��j��V�Y�\"v�5�<\u0011\u0011E�GG]�?���cǝ2 ������> �\u0003�ƙ��m��UvS�UTi�6\u0015S���ٳ�T���k�\u0003�k�~q~��f\u001dI�m�>��u�����\n�\u001e��;zU\f��>r���TS�\u0004P�;��қ�d5\u001f:x\u001c#�t{�e~X�H�()EO\u000e�/�t݋?�S�>���Hw\u0017�Zv�����\u0006��\u000fo�6�9>i�R�[2���\u0000\u001f�<�\u0000�����\u0000��*S�\u0019ߵ?����yg�\r\r{����\u0006W�\u001e�\u0016�\u0007�7�=\u0001�~^\u0019\u000f�����eq~ϾdGq��Gs#�:���\u000fz��r\u0004��n߫�1���\u0010�����v�2'r����q=\u000f\u001f\u0013�\u00147^��A�ۯߑ��\u001b�\u0000\u0004S��#��!�\u001f���k\u001a \u0001�?����\u000fC�z �q4�\u000fᇇ���\u0010d\u0018�@}�϶W�G#�W�Y>���\u0004b˘��\u0006S�lh\u000f^������ڸ;uߦ���\u0014�Q~�]�f��0.��4��\"�@�\u0007\\Z�Yķj�?\u001f�]�{���-6��\u0003N�\u0000��`��<�D,��\u0003�~�ؚꞋ�^4\u0007j}�\u0019\u0004��˞�؁C��c\u0010�bP\u001b�\u0000S�t\u0007��2\u0012�|Yq\u0001�L����v�s\u001eV\rRC�����d��\u0007��\u0000�����P\u0015��@�����6�,�\u0016y*\u0011��z��k�q��+��Sj|_/\u0000z�|�D��#�=zv�n���(��7�)ӿJ�Ҟ���T\b��a�zS$��f'�44����6�\u0007�H7���nƇ�\u001e\u001bb9��2.���u?�:SƸ$\t݌e^�\u0014�k_\u0001��>�8HL�Ű��\u0011;\u001f���Q�D��U�B�+AC�c^�~=r������|��\u0014������ʕ�H�6�#�S�V�C�̇�\u000fI�Dy��':�:��i�Y\u0019n����.\u001c���m\u0013��q�4��\n\r\u000b2t�|���t�\fH�ܶ��\u0017W\f��\u0018�\u0007�����?/�;��~Vk~k�ʾ�_>y���E���\u001f�����2j`�r�W\u0010\u0011/��;�I�;h\u0001y�h�0\u0002�eC\u000ea�a� NG�}ѭ�<�\u001b����< |A��#��D���̽3�q'ʞc��ת���?R���\u0016\r\u0001%��k[��yOH�}��\u001a�3;��x[��x��r (Pm�c�Hpb��8�JC�����\u0000x�<��\u0001��\u0001�~�]�'��~��_0-�N��ܐ�R6\u001cJ1�\n�\bB\u000f#�\"�%��%��\u001b���g�,��qcJ�K�S[�\u0004�_ƪ��\u0003nX1F���\n��Sl��80�b���. \u0004��w��\u0016\u0010��\u001dn%��5q\ffIm�\u0014\u0002�S\"�\u000f��\t�Sjf�\u00106O��97H��'ow��m\u0017�+�^L1�ce}�jp2�=�'�\u0015�Ĉҿ��\u0014U�\u0002�'��NP��B�0�hB>���\u000b��\u000f4�~z�=�~�h/ݣ�G�d�}3D�q�C\u0005�\u0007���b\u001c\"��\u001c�S��\u000f7���U�޿c\u0014�\u0011H5}6�R��\u0002Lj^�u�隞ڇ\u0016]?t�!�?���c\u001c�\u0007�\t@�+��~*����$?󏞻F\u0019����\u000bU���\u0013\u0005���\u000b�h\n��jv\u0015�\u001e�\u0000�F�$c�H\u001bé1�d��{��A�#W]�,0>���Ș�?\u001a<��=0܇�\u0015��\u0015bj7�l\u0002U(���W�����\u0000���\u0000�6Z���\u0000���\u0005��\u0000�_��\u0015���R\u000b��/��O7��Z\\\u0015&�mM�\u001c��\u0007\n\u0007Jg]�Ԟ�����k)��^|�G�-�Ϟj u��X!\u001b��\b�z�2�\u0016|�ϥ�$4,?0��/>��e��ʺ֍�[\ty\u0007���e���\u000e%��Mi�\u0010�NJs߿�oؙ{+�\u0006]�2\n˞\u00193�r?��L/��\u0013�/�>�v�.��\u0000�\u0017if�\u001e\u0006,��\u0003�~�\u0011����%��\u001b���{TU����Ttc\u001c�r����\u0018&N���\u0007��s��ٜ�\u0004�nom���Yi�\rG�~}�\nҘ\u0012[y)���\b%��O-�\u0005�f�/g��\u001e�\u0004�\u001d\u001f�~)�����kL�|1 ���߱���i��~M�ْG����Ha��c�n�?x�P{�ϝ��:\u001d\u000fH�}�E���H2���>o�?���\u0014�^\\r\u000b\u001f\u0007�U����|%���힉��n���ſι�/a��@~\u001c�\"(�x5\u000b-G�b+L���$\u001eZ~���?\u0005�/�'�\u0001*#v4�b)�>�$l3����\t\u001d�F�\u0015��ʟ{�A�\u0010ˮ[�K\u0014��u\u001a]H�񲕋�!\u0005$�\u001c\u0012E\u0001�l�=���3�\u001a$~>nװ�\u0019p�����>��o��t�e�{UKB�˚��7ծ$��$�M\u0011o�{��X\u0011J���9Ǐ���n��\u0003�޷$�\t11\u0015F\u0004w��\u001d\u000fO���I#���\u0000���;{�h�~\u001a��[��[�K��ב��o�^ԉ\u0013\u0018\b�\t!��\u0019@�\u001bB@|?\u0007�\u000bյH�\r;���G\r�\u0017��f�/V�\u0013%��\u0015�\u000bo9S\u0019��+�n\u0016^@�\u0004w̬8\fr�\u001b�>�o�u�s٣.c��n���.�^����3�^B����\u001f����=^+��.�eҬ\"�����ݕ�U�o,jn���X�;���J�q��>�Y.����jc�a\u0004\u0018H�>\u0013ӌs\u0003�@�3K��h�����8��\u00138ƥ��\u000eg\u001c�\u0006��\u0018\u0010������\u001dsU�\u000e�\u0005Ρ��E�u��O��~c�����O�WL�Q�}\nK/E��I\u0016�* b��#�:]V�0�#\u0018FdDKiDݑI���݊z�\u001a�<�K$�\u0013#\u0012H����}q���\u0018��UycW\u0011ipɠ�V����ks��Wp_��\u001e�(kk}>�\t\u001e�WIK���\"�*\u0015�s��W���1�M\u001d�;u �ˑ�ݾ�q�\u0004�J2�V\b\"@�*#n|�\u0000A\\4�����e�/\r���h��+\\��M/̴P/�]�°�\u0011��\u0011�81�\"�5��Φ\u0011���żf7⇘�q�^b��0�|f���P;T���R\u001fP;r �z/����2+i��H��~�\u0006D�y2(`O%\u0000�\u0012Nk;bQ�NX�˻��H\u000f\u0000��\u001d�O;�\u0000���\u0000�yӿ�%%��$�A\u001f�4r�g��դ\n$ӼקC#�f�S�Xk��J�e�\u001f�\u0014��i�\u000bO���-\u001eZ�k\u0012�3�\u0019c|\u0012��0��%-�\n�{'�3�n�:�7!DJ?΁����\u001f�\u0001��`E��\u0015ZM��e�Λ���\b��Xj63�k{e:0\f�[���j7�z\u001c��$2�ӜY�a�\u0012�e\u0013�2��\u0003�\"��U�\u001eL�.#Ŋ[���ȱk���\u0000H<�޽;�j�%��{(�\u000f��\u0000�\u001c��\u0000��(j?t���ݖ€��Р���D��\u001di����\u001e9���5Ζ\\�\u001d�\u0000�H�E�߇cۯ�\u0014�]Q\u0007\u001c��-G�=�\t���[�ٮ�\u0006V\u001cR��bI\u0015oտ˶C�eDt���\\ynMZ�R�����&����g�n�����\u001e��?���1$�~�~[y^=:�\nF\u0016����\u0000:�=7O�F\"\u0003�\fMF;s�{I!@P6\u0002�n�fw��B��\"\u000fc����\b\u0006�ysG��+�~��2`U���V=���\u0014����+��;m�\u000e\u001e��۪\t����\u0000�|�\u0002�נ�x����`��H��<Ϫ�����\u000e(I�:d2\u001aI�\u0004�;?9<�.�v�m�����1\r�5=\u0007q���S���#��������!��A�~\u000bĭU�\u0007\u0012\u0000���nzt�g-��_{*���O\u0010I \u000e��w98����OF}��ڻ��\u0014�l˅�\u000fF#i\u0011h�rE]9�v\n�o�O�\\��w�/���Z5&��?9=\u001cJ%\u0015�L�\u001e\u0014-��A���4y\u0002\u001f,��C�%w~��h�\n�^�\u0001���,�}A�r��:`8�>���JCli�-v�m�|)�\u0007a����O\u0003�\\>��}]�s\u0015�|+JoQ�7�7��Uz�0��B�l>���\u0001�����֓��fvd\u00107��|�淠ӑ�Zѭ�[�.\"�����c�3��.x?�����\u001fb�I\u001f�+�\u0001��C�|��\u0000\u00041�\u0019/�?a�\u0010G�|k���}d:\u000f��C<���l���\u0000?�\bU\u0019�\u0000�o���<�.T�3�Pzu?���b)��G�,��QQ�\u001d�\u0004\u001f��{�f�\u001a��\u001e\u001f��!��a\u0012Z��;W��Z\u0015\u0001p+S�)�\u001a(=�$\u0005\u0018\u0002w=?�/�\u0018�\u000b�q�t�O��ӍY�M�� �|DoZ�\u0000��L\u001dXy�Bk���S\",m�I\u0015H����#��\u001e'$M�ީ!\u00167\u0003j�R?�m�<�sf9 e�4�n��\u001di�\u0002���T�4#��v\u001e�\u00004_w$���`���@��O�q�P\u0001\u0014��wߧLY\u0002\u001bb\t��mZw�v��\tq�\u0001�=\u0007��ݏ�ls\bVߗ\")��\u0000WLy{�d)&�\u0002��W�o��ĵ\u001fz\u0016(�*\u00107����\u000eEy�F\b�)\u001d���;v�\u0006�\u0016]\u0010�\u0012��J���>�q�#o�Y*�\u001bu\u0015���;dRP\u000e�T�i��6��|�^��\u0012�\u0017Oa�*w�#9Tv��n��M6?����e\u0012\u0016l$?����\u0018��zu���pߓH�o�\u0010\u0005\u0006��\"��ZW����G���;��H\u001e�>�\u001e�\u000f���H;\u0006�]�O\u001e��\u0011^�q\"�\r�ҧ�^�`&�%I�;���G��&�T[����ݽ��m�)�\u000e���zR��|�\u0011\\���!e\u001f�\u001f�[dA5�D�\u000f>T�q���+�\u001e=2wc~�\u001a<'�\t�ݷ\u0007������YJ<;��\bڻ\u000f�A\\��qܔ$��tڿO��FTl��T�KB+N��a�m�X�oJ�g�u[]*ު�/��\u0005)oj�\u0015��\u0013�\u0014@�^��f�wg��Ml48�q�Q�lz��R�k5X�zijr\u001d�6�=\u0011��0~�����\u0015!���lb���/\u001a�T�\u0006y\t%��N}\u001bظ��CO��(\u000e\u0011�\u001f��\u001eҜ���`x�7����\u00000��[A���N�{6�4���;���\u001fY�ßCM������2��+\u0013]���\u001e=NI���&< yu������e=\u0010\u0010f.��.S�\u001f�\u0006/D#��y��$�nF\u0010p�\u001e&���.�\u0000�]�\u0001�~i~w�T�'�\u0015�X�;}~�����ђ\u001b�5oޤ��K{�R���Έ\b\u001b�N�5\u001f\u000fn0k�m�}�Y.S�G\t ���U�QZ[�G��^������\u000b;U������\u001b9䵁��K.\f$$�@���<�Ī\u001b�~��YĈ��z\u0003���'��k\\�L�j�\u0001�\u000b[�\u00001�����S���J���m0ns\\�>\u000e����Br�n�����|��8�~<�\u0014k�(\u0016h&��is'�Js�´�Y\u0017�#�y�B\u0017\n�~��`H�\u0006�\u0000c��m�~ߏ�+��5�N)H�0�\u001a�*��\b�I@�4P(yD�6��EH�\u0004\u0001��J���G�iZ�/2M\"�S�:�d��\u0002�#����*\n�0�ƽ#� \b<�y�ƍ\u001c�+H^��8���c�RY(y�\u001d��\u0002�\u0003�c\u0012m�5H�k~1¬M@t'�V\u0005�6b\u0000\u0004�|��[��D\u0010�-�Af�!\u001f\u0002�V�U��V\rRMzey\u00012\u0007zL^k�\u0018 ��Fĕz�@�&CRhyP\u001c�Ō��FȐ_-y�WY�b�Ҩ\u0010��'-���$\u000e�2s�\u0018��ǹ%���Do��7�~e\u0000��`t�5�Bo/�\u0012H��\b�O�Y���8#\u0012=s��ի9�ƫ��_\r��?��>�.���}[N�����L�\u000eG��;1��p8�\u001b\b�\u001f\u0000ф�2��\b_���ڝ���<��4K��v4몱P����Ngn�\u0011��M�\u001d��w��\u001f��bܘ�~��\u0007����-s��\u0000�r+�y#��S��4�@A�\u0012ծ<�\"����E�w o��׍��e�1��Ԇ�hk����o�X�\u001d�\u0019}�_,�\u0000�|~@y�Z���މ\u001a�!�g��-�-J�4v��Z\u0005��uW�\u001e9R�Ǫ7.��\u000b��&���Zl\u0003�PN9�X��8ʯ����\u001e��}f-\u001fki��\ra\u0004�F�lAۭ\u001e]��\u001a\u001f,���~b��4��\u0003�z%���\r:�\u000227\u0011�K\u0013�����\bx�BQЂ\u000e|��8�i��\u001eX��&�;\u0010G0G�ȂA\u0004�9ٲœ\u001cr␖9\u000b\u0004n\r��O,7��\u0003B��\\\u0006�\f���\u000e��n;f�r�3V��~\u0011\\/_ө\u0019\r#\u000eL��\u0002���#ܒE@��I\u0018\u001d˴�Ey3\u000b+v����$t+�\u0012�y:�]�er\u0006���Ҙ�����ʈ�˴�B�\u001ah�U�\u0001G%Y�*r\u000e6\f({P�\u0016L���\u000e\u000e��faU\u000eޔ*�Ʉr\u0011�Gj�5'�nݳ\u001cO}܉b�E�Z�v��7=��\u0007�Ei\u001c.��u]���\tL\u001d�fx��.$���B;)�\u0002��H%�)v�\u0015A�TN��B8A�\u0011r2�\u001c\u001b����X�f��A�T�\u000fS���a�Ͷ\fQ\u001d��ڝA7��]f�޵\"�n#h�\u0007�uZ�.w;�|B P��sH���^bWpX}�\u000fͪ(\b��;��߾lq�\u0001A�j\"N�\u0001�\u00142I ��C%���gm\u0004a��sq\"�\u0012F�Ȱ,�\f��x�|�Ō^I\u0010\u0000�'j�����8�R�\u000e~�����\u00008��m\u000e��O�-\u001d�u�M�C��o^k�\u000bq:PR�'����>����4~�h��R�F\u0010\u001edƍ�_��ڇS�:��\u00198�s�y�_ݷ��燒�\u001a���\u00008��g�)%�����ۨ�*}2�.�4//�Py3L��\u0000���=\u0015�:\u0016����b�𕹑\u001bp\\\u000e'�}��\u000fi{;�5]����x��(�ќ�� a���\u0004G�]c�s��\u0000Dz~��\u0016�U����ᘟT\u0006\u001cc���!\tN����E�+�Mb�y���\u00177\u0012H�dֵ�n奔�s4�Ϋu�3���\u001c�7֪��9�N<0\u001d��C�#�8a\u0001�\u000e\u0018\b�:\r����/Tuf�&IL���H�g���~~]]#^G'\u0010a��l�\u001c�2ן�(��p\b ��O���$����9�\u0019!\u001c��5�^\\��wCw��6\u001a���k�nby\u0010�R(�\u000eLw\u001d)N�1���<��irr\u0014G�v}��.)G>3R����7�}��\u00008u��$�C�]�\u0019��D��G�\u001a�\u0002H�H\u0014&��<��\b\u001d�0�9�\u0000.�\u0000\u001f\u0011��=��a�?����X���tz?�埖E�.�\u0014a�X�D�W�\u001a��i���|潗�Y<+�r���o\u0007\u001du��:?��嵎��i:��Eq\u0005��\t�\u0005�h��\u001a6�\u0000\t;��ǣ��a�H\u001d��s癧ÒP��\u0017�:֥\u001d�鸵�\u0002\u001e>�\u0017v�\u0002\u0005\u0014\u0000x��i��\u0011�\u0019ܪ�3N\u0019 8y��'�OT����5]=\u0004��h�\u0000Yx}B\u001ako[�ʊ\u0001�8�W1���r�\u0015����y�YeT8l��\u0003��2���R���#x�\\�\u0013�\u0013/�!vrm�);]�R9)R�x�<�\u0006�C)�y��s�=\u0006}N9�\u0018�T��U��y?@��}\r�宑\u000bH�jS�\u001a�J!�]��Ֆ;�^\u0001d�08>�\u0000\u00105�\u001f���hH�\u0000�\u0004�ϓ�i��\u0007\tK� t�C�\rO�v��\u0005�X��~��}�\u0012�J�Z�q*���JhZ)�_JX�ju�3����1��v=��?��g��1��\f�5G}� \u0011�{\u0010~\u001b���\u0000�k�ǗKK��x|�t�\\\\$���my$?��3���\u0005Z�k9?hq~b\"<$�@�x���y\b\\ć��o��q���}喝�y��>jӯmY4���..��)'�&�ײc2RC\u000f'\u0004T�#9��$4Y�b}`lyw\u0017pDe�ş\u0019\u001e�w\u001c��ߛ�W�\u0017�>F��������̾i�5�s�ڕ����}��{��&���4H�Ӽ—r2;��nC�\\�︖�S����\u001d=�1c�c(��q�ޏX� oʝX�i���f���$�`A���^�8�\u0002D�\f�D��^�w�����_�\u0016R�~i�\u000b�>���O��%��\u0018.>�r����Z��r�,\u0015�@A�^\u001d)�:�$OK`�65[_q���Y��M�pj8H �ѯ�F��7��?QҴ=\u0012ە�mgk\u0007�\u0016A/��coMm��w��h\u0001%��4��yu9�G�M�o������+�ʿ\u001b�=3�W�3�c��\u000bZ�\u0004H�\b�#/U\f~��͢�1�ȃ>���\u00198��\b�N��\u0017����R�ȿ�Zo�痬���ߛ����'\bl���B���\u0005�\u0006�����e��s�E�eGI��C\u0018��<9+��zg�\u0007\t�r�'���n���\u0000\u0007��L�忪?\u0002x��\t\u001d\u001f��m�֨�����۶yfPDͻ�}�O��\u0000�\u001c��\u0000��>�>��:�\u0000nfvnڡ�Vr����3ο��(>\u001b����M�3\\�y>6�\u0000����}��C{w��f\u0016��3|��\u001c<�ӷ7�\u0002�\u0002du�}�ns[v,8�=%�R�\u0019.'�\u0014\u0016geP\u0007rv\u0003��\u001d��;�G#\u001c@\u001b�}��\u000f�\u001f�[[O4_����J�I�\u000fSL�{\u000bE�|\u0002r\u001e�nS:&�'��e��Z��\u0001�\u000fjo�9��F������Qlji���,ٯs�\u0013\u0012�����Y`�V�̫�Z(�߮�\u0003�0�����TA]��7���a�E\rJ�@�>�O�\u001f%�\u0010�T����Q��dXby\u0018�\u0001�������t\f����G淛#���-(\u0014F=hv\u001d~����\u0018�)K�\u0016��f\u0000�\u0006G��\u000b��կ�/�<�i\tZ����\u001fH�\u0007S�Z��,���\u001d\u0018Dp�\u0014u��M���<<:�>\u001dsb$d|�\u001f�ev��~ )�@:{��$\u0000eW��}����P\u000e�|�S��]\u0013J��\u0016U�ڵ�\u001fb{S��|��vٯ�8�����\u00004�:?9>)�kPғM�F��\u0005z����ƌk��\u001d�k\u001c��^Q�AV]��m�﹨�N�_\u0001�x�\u0011\u0012�i����dAoAA�~���뛾�\u001e���7�_B�{O�(���\u0014��\u001d�L�g��KG�#͗X�q\u0015�֝=��s_���l|�u�l;�_��5�GW}�\"�\u0015Ma�i\u0017Z}b/��Q�zg��]�I91��\u000f��7��\u0000B���S�$?\u001c�_�\b�j��g�?a�����\u000f����!��v\u000f�����퇟>KJ\u0013�\u0000v���\u0000��щ\u0016\u001eE�·Ǒ��l\u0010���P���*Z0\u001d�+�����\u001c�ލh��\u001d�}��݂\"�m\b�^�������G���;\u001f����T�Ih�z{��>���\u0003\r�FIyPWn݇��<��\b'\u0015ޝ~��N'ޅ��_���0Ww$�r�B���t4�xE�\u0012��\u0004t�j~���y�՟E�\u00145�p7�����\u001br�@I �E{�Ѷ2�U��\u0011�#���\u0007\u0006�>ha)\u0003j����dO?r�N�-ɮ�����\u0001T��^u*i��G�Gk�T�\u001c�oN�\u0014�\r��\u0003u�5\b���m����\u0012\u0005���`\u0010v��w�̤�-S���ħ`w�\u0000?�L��T\u001aI�e\u0014\u000e�\u0003���^\u0011\u001eW�\u0004�\u0015;�~��O�4A۽#����#J����F2%@i�}6��\u0000f�_�T[���>\u0007��mᒏw�\b�&�O�ҟ�S����)C��؁ֹ!\u00106\u001c�Y�;uB��ڛ�\u0000Q�\u0002��fM�@�S�S�W��)�\u001c�M�_4#�??���d\b�#�-\n���n��2\u0007nm��D f\"��n�������y%����A\"��2<����\u001eF�\u0013M��Z�B.��Ž�e�E���\u0000\u001b(�\r�ï�z����p��Y\u0007�s\u000fO�\u0007/������D��E\u0002x nU�żֈ|�/\u001cr�U�\b޼WyX\u001d�\u000f�\u001a�c^�=\u001bOc\u0001�񼁾+;���\u0000����^:�H$��4t�\u001d�\u0017�%�$\u0011\u0012C\u0013Q�zu�=\u0016O\f�������DL\u0010=�����=\u0015%��ol��E���λc(i#FE�\u0015�\u000f���Q*\u0018l�\u0011 �A�̢\u001a�p\tV\\A\u001d<���.�\u0012:)���<���\u001f��\u0003�\u0014?14��v��~F��5?(y��\u000b˞u�u����Q���W���\u001bM*��|-ia�G\u0004\u0013�\u0014��F'4�&92}9pG'\u0010?겨�U���\u001d�\u0006|8�+�)��]��$��\u001e����y�J��\u0000YѴ���m`���S�<�}n�pڵ��\u0017_�M�hѴ�\"\u001e��R\u000fN�\u0015@\u00041�p�Q�#i��mD\u001f9s?&s\u0006q\u0011�ÿ���ww|^c�y��ʚ]΁��ug�\b<��yV(��S�?�u\u000b��7\u0010h�4E.o����q�\r�,���fd1��\u0006\u001c�\u001d¼����Jq�\"D�^�I>C���\b/�\u000f-k�:6��y��M\u001fX���?����]��\u0019l�/�҅ߙ�ktG�u[�YK\u001b;?F�$��7ff8�,Fo\u000b\r\u0011\u001c|\\^r&��U�����\u0012\u0006��\u0019\u001fM�\u001b\u0012O�o�P\u0015��d򵮇��\r\u0002��\u0016�M���՚%\u0000�jڔ�_M�\u0000���t�\u0012K\u0000�i�g���h\u000f���-S�\f8+pl��\u0000c\u0019��]=4�h�\u00133F�\u001f�q���a�\n7��\f`�б�\n\u0012�!�\u001e��璎\u001aJH�˿\u000e@x\u000e���4-6\u0007>v�(b?_��;\u0014S\f�hC��\u0000\u0015��)�˪�ƞ!�\u0016�\u0013\u0019�B�EO\u001aчB+���D)L��\u0018Y�ND�eܞ���M�o�����.o\u001c���\u0016�gs<�08HC^���&��͎�\u001d\u000e\"}!\u001b��7���˩�77�R��J��\u0005x�\u001e��\u0019��'\u001c�\u001c�\u0014�0���}�\n\u000f(~N�zŨ��Yͯ]-Hs$���'M�x�w�{�&!��c<�\u0011��]n�u\u0019O���>)�~��^p��\u001dy;NһP�##;�\u000f_�?,��+�2Y�LDksA����\u0017�$Kvxn�\u0016XJ)G�m�I����� >X�\u0013:\u001c�\u001f�\u0000�x6�\t\u0003�埗\rк�����N�,'�����\tm����g�nlom�T�����Y\u001d\u0018\u0006V\u0007�|ݖDH��Ǜ�X�x��#��t˂�\u000b��9�\u000e\u0001h�\t�\u0010Ɣ\u0012\u000f�*9\u00004]�z����z��,y\u0001�\"Ĥ:�(t�3\u001e�緡��KO���p<�G��y\u000f����3�b��r\u0007�gKx��~q��W��*d�K�Y�����\u0007�I��hvϲ�OM�v&YLz`,{�/���O���\u0018��z�\u0007m��_c���W嗚�1��󒍩�{U�w�?�\u0006?�\n<��\u0019�\".�0�y��VǗ���o�Ʒ��Xn��^���\u0014rF�U�\n�j����\r\u000fb��@0�mo�C)�j�v4��=���!\u0010n�ȟ3���e�Omu��\f]���\u0000�\u001b�!�7\u0019H\u0010\u00019g�$�����\u0016\b x\u000e�M:.�w��U󕛬�Ѹ\f�\u0013�G���|+ĒEW�a�'�=��Y���P�cwO�֫.�W\u0019���r������}yk���a�Gl�s1�y�Q�]d�\u001aH�ʱ#��x\b�.��1�8G\u0016�\u0000=�i9!�]�e�~(��2��sh�o��\"�6\u0017\u0013\u0000�8�ň`%�JA\u0014���VJ�7\u0006/�j/�;V����S�\u0017)\u001cJ�\u0012\t��(fv,�R�vb�OS\\�0o�y�^A���\u001f�޼t��ާ\u001b��\u000f��%SV����Ȫ*\u0006��\u0015#'�&/\u0013F#[�?\u0015��\b�e;���>��Ay���,6�C\u0005�J��ĒYN��k��.p�\u001d9|Hzm�ve(@�]����|!\u0019���\u000e�����_�Ҵ�I/.R��O���邘��;�]\t*[�(@%$S��1�\u0000�yL\u0000d%dw��:=6\u001c��!\u001b؀\u0001�=6�;���ռ���k��V\u0012K�k�\fSY\u0017a\u001bO\"�\u0018$�2��y2\u0010@#�\\�1�\u0016����\\�\u000b������\u001e��*H�ȱ���{�M�l���k�?!�^�N����L��^�\u0003YLQ�/�'[F��eX�)n&�\r�g;�v��7hg��\u0003\u0018�A��ߴ�����i�\b\u001e)��`W�v#�\u00008�����&��/y��M�i\u001eQ��Vܑ��;\u001b�7VqD�L�����\u0002�\\V�4��Iٺ\u000e\u0018f�׌g�{�lo�v\u0006�\\NLY��>!�Gq_p�O�b�'�?�#t��\u000b��z\u0006��j\u001e^��?/<�\u000e��Z��5�g\"jzc��\u000e���:%�A�\t\u0004�\f:m�xZ�ǔr�̡�L���L�{\u001e�\u000f�z1�\u000fic�5\u001c2�(\\%Vc\"=@�`�o���/1�gy�Iм����\u0007�|ϧYG�\ro��_^��?�;F��\u0015va\u001e��[\u001a�\u0002�@I'6\u001a\u001e���˓8\u001e\u0016��#�Y�B>@��gjf��LJ��Ո��d�=12�FA�?�o���\u001eD�t�vi�/渻�.a���\u001e\u001b�ROY̲��0�7�()��m�c���.�\b�\u0000DV�#�/7��\u001f�4pÜ�e�\"\t�T����FAB�\u0000�\u001aq�\u0017�\u0005GM���Nn�?{�\u000f��_���X�~~���\\j�Bk\u000f�\r\u001dP\u00137-\njj��V�.�<���\u0006r��hη�3�2���\u000f�c���\"c��ir�9����&/�����\u0004���E۫���\u0015`\u0019\b;\u0015aU#�\b?v|�L�}/o\u0000C�?��I?�oN�R*֛\u001a�\u0000S����@�L�w�u|���~�V_��c�;�1�\u001e�^���\u0000�%����#��;��<7�-X�2\u001en&cTz>\t��\u0007}�__�ٯq�\u001e)o������rk�Ż�d�\u000b��j�\u0000\u0001�N��~gT8��5��\u0000�o��_��ˑ��PV5P#Q�hv\u0003o�='\u0006:\u0002#�j���S՜�P}���噎9�jq�Z�ֽOoj��\u0005���tF��k�_�\u0015�@��ǫ�W|Gب�<\u0010v'�|�\u001d�?z\u0010Lji^�\u000e��檋���>g\u0001ߚG�\u0011�^��V�V@8)�'ۯѐ� \u0005\u0005��$��c��s�rjz��\"��f�7\u0012v�N�hz1�[�uV\u0006�\u0007�w>���s�=:<��*��ǧ�a��ٺ�s��,��\u001b\u000f\u0013M�?VY\u0010\u000e�`v5ՑE\u0010\u0000\u000e�~�m�҇�2\u0014�\u0004\r��\u0018�AJ��4�#o�L\u0000Xߛ3W�����5`?v���D�6���q�n.����*/�O��t�\u0001���u\"����3��b\"j>��{|�,��%�z*\u0002��W�JliM�����#\u001d\u000e�����/7�^@\u0014�\u0003�a޵��|��\t�\u0000��D������Q\u001a�J��C�vΞ|�\"�\u001e1��UbF��{נ�����~~����m�,�ͺR����f�(���<��*���\u0000D��3���B�:��\u0018���p\u0017e\u001a�!�`�#�D����T��\u001dF|��\u0000\u0004A�\u0015!�/����1�ω��>��â��\u000f���<������\u001d��׾>�버摟�w?v�#\u001a\u0001\u0007`�?5�\u0014�>�����\u0001��y1\u001d=� ކ�����A�\u000fJӤ�\r�\u0002;��<�\u000b�͍~�l�,⠟n��J�ec�\u0002����~��]5�%\u0011�Θy(���C_��u\u0019\u0013�ȭ�DD\u0007��;}\u0018(�|��n�i*����$\u0005�T��l�p;��S����\u0010k�m\nn��k���m�\u0004�\u0014�|Pr�\u0013�}����\fN�͊\r�5O_���Р�\u00154���>8j���C�A޵�\u0000?\f\u0017��\u001b����`T�\u0014%hEH�o�ߦ\u0014�|׼{q=�~T�1��E�QJm�ڞ\u001e���$�5�J���ژ���nK\u0002ې;w��\"��\"ǑJY�'~�F�\u0012Ys�h`��Bw����\u001c�&��B=��|�\u0013\u0004\u0002Aٗ\u0011���Z���\u0000�l������\u0019�\u001f��\f�;oѢ�tR\u001fz\u001f���8I�|�@��UE*\u000fM���ddH�W�%����_���n�Gz�5\u0007�5���om��\u0002�Rn�����\b��U\u0003M�z���\u000e���4I��(\u001e�A�\u0007���\u000e��\"A��\u000f!�z����?�\u0012\u0005y1\u0006@��\u0004\u0013�t�+�����)�'��A>���������,��h7jW�O\u000f\u001e��)��H �@�Z����o\u001a\f�� �v6\u0012�ڕ��\u000f۽��\u001a��cb=Y+�zq\u0002k�Z\u001d\u001c���Z8�\u0000��\u0007�s'���\u0003K�&y}1\u001b{�=�S�8]-�\u0016��0��QS�m� �\u001e�`�4�N}\u0001��\f\u0018#�\u0014#\u0010\u0000��\u000f�j2�>ie��#e�~h�+#�8����\u001br�\u001f�\u0016��COj���\u001b����\b\u0016{�\r���\n\u0018�P�NN��\u000br�Tx$dr�ضgc�3ېq\t\u0004���^o�\f�\u0016�$2�������b����\u0011C\u00115a%˭\u001c���#�a�R�!1�����@d\u001c=|��\u0000oGƟ󎟝\u001eg��g�����s\u0014�Dּ�r-5�ADv�J�V��k'��\u001eR\u0014�\u001bͩH'F%m�\u001c?�sM�\u0000hh1j4�ˀ^�G�\u0007<����\u001eq?\u0007\u0013I��$�0\u0006���#�3;W�%�C�����q�^o�w�5\u000f ~YyZ��\u0000�zU��%F��_�U���\u0004����\u001fW�մk[\t�Z���\u001cK@�\u001eW\u000e1\u001e)N@c\u0012;����\u000ewT\t�f����\u0001\bD�\u001a\u0017�����5D�!I���\u0000*�-~h~Jy�Z�N����=Ǟ��懍���ht7�|���q{,�3�q����R#@�\u001a��P�GQ�\b\"\u0011�@\u001dx�D��X�h�ɞ,�\u0003��JG�\r�>�;o�<��̗\u001ea���t�2M\u001f��^�8��7\u001a���̤Sf����$n\u000eQ��#Œ��_�e3#��0>}^_�C=ֻ}\u0003����\u0000X��\u001d�� �\u0004\u0001ܟ\u000f\f��\u0011.��L���o:�kmGI����ѣ�UPM\u0001\u0007�$l~Y�b'2\"(\b��Kcw�'�vA Y\u0014�?���ŪQ�^��X�W�\u0007�D�c�\u000f~Ϟ.�Z�ROQi\u001dӵ\u001c\u0006\u0002��V\u0015=k���5\u0012\u000f0�d�y'rZ����\u0000��\u0010�q�@5ߕ\u000fm��&Uհ\r�w\u0011\u001d��[r\u0018\u000eM®:T�x��\bH�\u0006o��6��&��Ki\u000b��\td��m�e���<��\u001dg�Z6�\u001cd���knh�\u0005^h՘\u0013�P��tЌ�Nj����3��HѾ\u0017�_�wq*&�\u0014���[��\bҁb��%B��Ar�|�;8\u0018�ɪ��t{��je�\u001f�'�\u000f\u0010�����\\�„�䑰W`\u0016��\u0004�R�n��\u0018��?��~o�\u0011��^H�\u0017�<��;�\u0004T�\u0011�xw�d��Hcdg�v���q\u0003A�\u000f��ϡ�\u001bD�WO�4�NK�;���\u000bM\"���S�X�X\u0012I�\u0000�d�ȱ��GP�\u000fL�ǭǡ�KQ�>�F���\u000f�u�I��X�\u001cp$��p�f�۸sY>_�����\u0000��&tO���\u000f)y{̿�:ݿ�zuηmi�$�\u001d�N���c���->�\fW�;�+��@9�'��\u0007k�ɟ�a3����E\u0013q>|�+���ϣ�\fz�\u0019f�\t��\u0012\u0004\u0003�?�\rH��z����~\u0019�\u00008�k�%�\u00009W��?'�-��]\u0010����\u0000Lx��7���$\u001aW�nm$�{|_�?��\u000f��\u000b;\u001d3L�\u0000����ҽ\u001d\u0013�\u001a���o�ȝ\u0002�\u0013\u0014\u001e[�ާ\u001fռ���\u001c0�\u0016�W�^\u001f�_�\u0002G�*���>}�\u0000��\u0000���^Џoh\"\u0007fj�x��c�l�.\u001c��ʲ_>!^��\u0000\u0003_i��p\u001e��\u001f��1�\u0013�q\u001d=��Y�]�q��%c�\u0003I%HX׺��~��0M�\u0017T�&!Qz\u0006�}\u001c��g6�B�'\"\u0017�أFhI$oM�ce��n�Lh�\f���\f�]�]c^\u0011��K\r��)�x�+M�9��\fO7w�C���nf��9\u0016H����ӂ�T���\u001c�t��\"%?�\f�7�T���8�\"�n]\f�%��\rF�\u0018�!D�D��H��\u0007�oO\u0017��Q۸t\u001as\bT��a\u001b��|�\u001e>x��`�\u000f����Y��X�,���#O�c��Ҵ��\u001bKX`P\u00128aT\u0015�͹�'>��\u0000�Η\u0011�G\u000e(��Ǐ`6\u0000\r�?1�a��4��H��!�N��/�O�\u0000�\u0016��u�\u0000��O��v�H���mi;Ɓ�K\u001dN��E�H�%X�0jeQ�\u0000\u0013���je�C����)�\u000f�nv��|ӳ2e��f\u0003x�\u001c��\u00008p|\u000f�b���\u00000�\u0000/�|����_1Euj|����y\u0013�\u001ae�1�\u0017�D���\u0006��ˢHG�{�]�ΗP�j���:\u001c�{��ևh�\u000e�C0?�˟4�h�CQ(\u00111�0A��}7��3�\u001d���ď�k1��\u0011�Q:xN&'�\u0006$H^�W�'�\u000f��\u001f�O�?6�tXJ�__K$'�\u0014U���7?F}U�wi~o�qȟ�F\"ߞ����\u0000\u0003[,u��)\u0001��c�d>C�\u001aլ$�ko�[lc�\u001ew���ë0��qr�>����N��(�\u0018\u000f&�NG,O��5N���\u001b\u001e��=���ݪqK�\u001b�]�����y���\r��c��F�?G^�q\u0011���l\n��Ij)\u0005�����=w]��t�z���:9\u001c:�\u0003��Ϟ�����?��~�k�_��\u0017��\u001cBF�}c�U����\u001cH�xG�\u001d�!�Y1�xy�����}�#\u0011��@������\u001f������\u0000��u{H�4�V/Ҷo\u001a�KҞ�\u0006�-�c�\"���]�Ju���O�\u0011��7i5�\u0004�J\u001f���\u0007qa\u0006����\u000f��o�2\u001d\u000b\u0016�\u001a���>_~\u0001\\��sD\u000b}���j�\u0000�0t�\\&���)O�\u001am���#�� \u0001�\n��\u0002�۾=\u0010E!Z&G�_on���ґ\\�\u0018Wm�?��t��r-I!PG]��\u0014ƻ�\u0013ת[-�Zt�O��\r��d�[�\u0013�o��\u000fz�rU')O]�է���{��\u001aH\n\n����\u001c�%2�+O����(�g�z\u001e�/��B}����E�=��l���\u000f����\u0015*>@ֻҝ@�3\f\u001d�4�\"G�qOzx��\u0003�\u000eʸli�6;\nS�8\u0001�]W�p5ۿ���q&¸��w\u001d�ױ��݃�e=�mI��\u000fo��L\u0003ϒ����Ǡ�Z\u001e���4�\u0002@�\u0012�\n�\u0011�۟���s���2�8�4+��3��\u0004d�\u0004\r��В\u000e����ž\u0019\u0019\u0014\u001d��\u001c�>\"���9\u000e����}�\u000eƛ�����\u001e�.�é?�}���;1�g\u001f��5�U�\\�\u0010-��?��u���\u000e�����m\u000f��ɯ���pG�w'���Q������l��i�\\RG~|xՃ\u0013�IJ��\"�����zi�c��y>�v�\u0007a��&^'�К��\u0014��_\fȀ�]\u0011-�o�|�x��A�\bģl�90DS�^j��6\u0018�k��\"�}\u001e\u0003���}彼�n��kyd�𹔯�\u001fn�b )�̨��y���n;L�~g�>N���͖��˥��\u0012\u001b\b���(���1�VJ\u001a�!�[�`\rv�s���\u001eQ������˂\u0013��H\\9����Ϳ'?2u��\u000f\"y��S֛L����І���F��'�v�M������ݛy\u0012\u001dF�\nF��W$Wں,q�=v\r���t����\u0000��y�ߦϓ.)a˶x��A\u0000\u001f ~o��2tm\u000f˞E�ku��o��-'�����[�:d�N���\u001b �oLp%\u0019��H$��,�9\u0007�X\u001e���c\n��;���_�w��=���\u000b�1��\u000bٯ��e �-\"����r�8��m��xQ���\u0000\u001f6���O2\u001b ��=�5�^����\u001c�ıX�I�\u001a��h��20Ƹ|�\\�xW�,�\u000f9��ˀd\u001b�͔�L�\u0005&�{fV\u0012$%]\u000b\u0001`D�e�e��t�YDm�ke/T�\u0001E$\nT�;\u0011�F��\t=Yq\u0010v\u000f���f\"�m�@Ll���Pr\u001b\u0003֛n�ʎ1\u0012X�dy��M����RK*�ǗQ�=��\u001addc$��Z�:\u000f��{�Ag[oJ\u0001�K\\�'�\u00186�lI��e���>����\u0000���ג�v�Vb\u0014�L�ԃR�oԞ����̙s.v9P\u001eOc�\u0000�Ҏ���aq\"z��[�j\u0007�Q N\u0010Tt�c�fV�юy{�@���g�\u0011\u0000���\u001e��\u0003U�5k��\u0001P]2��]C3\u0000T�(\r}�m�8��\u0018�v\u0007���u��27�>��$~��\u001b\b]�~��@�lV�)A�+��\\�L�\u0012(\r�\u0014�ك��2�oܠ���\u0004�5GR(\u0007�\\�i!xg�Z�BsNjav��p�\u0000�\u0016_��\u0000�}\u001b��UmWO}:��S�c+\u001c�P]���6�-�������\u0016��qm��S���{O�G��)�\u000fq\u0007��C��ٝDt�a��!\u001b\u0015�|�\u0010h��+��_���ɸ�6��#��槨�\u0006�W���|�����\\�e��ݝƱi���ޅ���ϬZ\u000fM�#�r���k�\u0013\u0001�-\u0006�4&1i哆;\u0000#U\u0010y�����:�j�ج�\u001c�c�\u001er&W\"H\u0002��2����՛���\u0000=y��q=�\u0000-u�4��\u0000������ܟ��V�ϙ�\b5��O�1iV�^~����\u0016����5��~�\u0015\u0015��BO9\rx~���Z�\u001f�8�1���\fЎ�9\u0007�2+a�3�\u0000w�\u0010t����A��<�9Q�c�b}Dnv'��~Tyc�\u001e~�W�?.�1�U�O�_毕o�����,�&Լ��D��zt�\b�ִ�X�,n\u0000�\r�J���_�ݏ������}�\u001b�8��\u000f0by�FB��C������]������c���������_�?�\u0000�\u000b�z_~Py�����G�,��w��zZ�:o�w���4�A\t\u0002+4yx�c�ق^��>T�\"��O�]���w��vV���eT2@���?���~��s�4��vd;CFF�\u001eF\u0012�\b��|Ѧ�}�%\tE�a\"�\u0011֋H���棽w��rU-���<'nl�\u001b�\u0000.���Z\u001fI��B(B��t\u0002�阹1\u0003ϛ�\u001dMU�.�#\u0010��ZFb\u0003)z�9l��y\u001f݊V�+� ���/�����\u001bJa1|!���[���\u0001C\u0012�x����8yS�sH��9�+XZ0�0v��(@�t\u0000)\u0004+z��Bv�[\u0018�aզYL��f�z�'��XQ��B�֒����}�\u0013�\u0018���n�6j�������ſ:�[~a?��\u0019.���u��mq�������4�\u001f��4y\u001a�]y�U�\u0014�*�A\u0018�%\u0014\u0000{e=�����\u0016^�\u0006?�U׸t$�\u001c���\u001e3�N���>���r\u000fDz����~��������\u000b����A���\u0000�|������V�K��~�\u0000P��\u0000=歩MYnn\u001c�w$��3޴\u0007\u000e�\u0018Ljp∡\u0011��Ԟd����v�S��u\u0019��<���x\u0016��\u0013�%���-��g\f��Lj�$q��8�\u00031�>��\u0000�\bɪϩ՟�\u0010��\\�_c���\u0018���ſ��)|*��̿(��\u00008m��$?�\u00174���\n_2y��\u001f��>Y�\u000e�oe\u0015�I�MG��6��\u000b����m��\u001d\u0013E����\u0016�\u00033T|'��1b�s\u001eL�4��I�c��!�k`\u0001 Qܙr|�\u0000�a\rN�Y\n'U�\u001e1���d9bx\u0000�̄l�\u0002&�}>o�c󆛬ZȆ'���\u001a\u001c���:����^�!P�r�m�6�|���ug��a�7q������y\u001d�z��\u001a�\\�\u00190�ğW�ۏs�G�s��\r4�>i��Ӟ'e�\u000b�q�\u001f��BЇGR>����\u0007\u001d��h�/A����|\u001bۍ\u0010�O�F>�\u001e^a��\u0000���\u0000b���\u0005jh:�� ��\u0019�z��i��ϒ���V,Q\u0003���t�:��򱢜;�Z|��r*\u000f�1�\u0014\u001aq\u0002�\u001c�҉�v�1�r\u0007���_g��vA���?[�&Y\r��j�\u0003��ΫȂ��b8\nP�\u0001�c���Ɗ\u0013\u001b�>�����:�\u0000\u0005H�������m\u001f3y/ɞC���֧qmoqkl.�U\u0002\u000b�\u0015T�H$\u0000�n\r6�\u0017��i�]����\\A�\u000e���by��ɿ��mR�R�\u0019|��^\u001aK�\u001f�����~��B�@�\u0019\u0012S��]�\u001fg��:h\u001f�\u001dTn7�2�?C��he�^�\u0019�\u0001�i$/�p;Y\u001e[\u0013�\u001f�\u000e�u.��^��?L��\u0014��\u0016;(�-A�Ο\f�$#-�.<�,���Ew�������\u0000�̮܄\u001a�ɠ�T��\u000f�m���U�C�p�p?��'C.(��\u001f�'���������\u0019��f�v�X��\u000e��Kn�N���\u0000�/����\u0000�?󐟙��&������E\b�F��\\�s�Z\u0013FWkEoV=��\u0015�W�n/�\u000fj{;���\u0002Y%�\u0003���,�\u00178��?��!�S�\u0014@�q'qݷ0�O�o&C���5�;�GE��X�-m홾����$�t�/^6�{��D�\"4~'�-��Pp�h�2�\u000f�{�ymn?��x��9�8ő�)w\u000b��\u000f��\u0000�\u0019=_��^n�����Z<��\u001f3�7��lv�d�\u0006�~$�I\u001e�v_�ymDF)x\n����W�;4BX�#��G�8\u001fL��,r�u�zn�ל�p\u00139#)\\�T���\u0010\u001da�\u00109l��\u0003~v�q�s�����N�7�/�L�zE�V�M��q����xw\u0012�\u0001\"��\u0007�Ϋ\f����{c]�?� F��m��s��w���f��K\u0011 Р\u0007�\u001a��߬�6���\u001f��,q[��\u0005�q\t!�G��\"�\\\u0001B%n�w�'���\u0014���9�\u001b>��\u0016Hi1\u00000���?_s�4��(*x�U�r\u001a��\\\u000e�\u0000\u0017c���)y9��G�zN�/\u0018׀?\u0018�O�U~�'s�5���#�}�L\r\n�(��e`�;\u0012����\u0001�`d\u0016w�[�\u001c/�{�~������>i��c����V��9D*\u000e����=�3l�Y�0�܁�'�\u0000\u0004�\u001f��zmp6si�\u000f�\f�\u001f�%\u000f��v\u0006[�l\u0007����\u0000\u001f*|�~\u0019��h����x\r�i�ڑ\u0004q\u0015������\u0012\u0006��\u0011�]\u001a���{c��\b�\u0001\u0012��ޝ�6�\u0000}ɪ۪\u0005�?���8�o�dy+Ɵ��]�`;\u001e�C üݬ%���p�\u0011��p\u000f,�$�\u001fbx�E�~k�p��M_T:|2\u001fM\u001fԜ����O���{kTI\u001ah����u�fL�\u0000��y\r��8\u0014�\u0007c�~\u001dFs$��\u000e��f�tLF�q\u0014��\u001e�z��(�ئf�Ŗ�-\u0018T|��~}�2D�/&1��l�\u0011^���w\u0003��ۦL\u001b�����B�v�ƾ\u0015�=w�\u0003�R~J\u001ecxΚ�\u0007��JSï�L�vP���p5�\u001e\u0001�T����#���ej������\u001eÁW��ﴄ�D�\\o8�@�O�6��3�u��\u0007���VS������\u001e\n\u001d�\u000fj����3?�\b�����\u0002L�|_C��q�\u000e�v�cm���'�e����\u000b\u001e���q�5�������2�S�ʝ\u0007�O\n\f��v�Wj��\u0011k���}�G\u001b|��\r��R�B�HX}�$\u000f�\u001c\u0003���\u001b���3�_�#��_��/�\u001e�����>��j~\u0015�\u0000T\u001fÿ|�n@_7�wqOî�MQM�\t�\u0000�m������\t�\u0010^C��@i��\u0014��뒃���0h[���m�6�˓�N�=\u0013G���!���ǹ����xd�w�4�d����\\<���\r�ҵ��O����\"h1?b^\u0005���f>�B6�z���`\u001eIS$��\u001f�C�܄;�AC������[AK%zv�Lko5\u001c���\u0015�zS�{\n�\t����0�M���˜<�D\u001bF�\u0000\"�u�Ja�eA-���E+CN�\u001bcέ�Du\u0015ނ����Y\r���\u0000�@�:��h\u000ek\u00027�+�\u000f�\u0016\u001d+�\u0012t%Iޝ*?�qLX�H�\u000eZ�����\u001e�=Ȫ�w��\u0015\u001b�������\u0003�\u001e�\u0000�\u0002�Yt�\u0013q�c�1Iً�\u0015Y�S���\u001e#\u0013Ɉ\u001b�U�BC{W���\u0019\u0002;�����\u0014�\u0015���w�PF۲\u0002�����\u0011�������\u0007�`\u0001a�\u0012��mZSj����\u001a��AT\u0002����{oL\u0000�W\u001a\u001a���ǒZ=6�\u0007sԝ��`U\u00165�\u0006��}�o\fW����O���G�\u0004^皋\u0011_\u001f�醅���ۢ\u0019�\u001a\u000f�\u000fZ�\u0000L5�ܐeC~hG;\u001e����\u001e�d\b�ވ\u0013�A�>HG;SĆ�\u0000n�#\u0007O6uŹ�H)(I\u001e��=��\u0005\u0003q}\u0012�h*kJ~\u0002�{�\u0019\u0013��*�:={F�m7ʚtJB�w�jW*@���R\u0000OS�%����'�\u001a>��$*s\u001cg�-��|��\u001dG�;N`\u001fLM\u0006\u001b�]\"rT$I�\u000e;\u0005������\u000f�u`\u0013���N�uy6�x$Y\u0014��p�FI;F��\u0013J\u0015r>�]�\"\u0011#�/�4�]\u000b�_>�Ņ��=.\n\u0005���j\"(P\rà��*s;\t��\bj��\u0012{�\u0001�j)u\u0003A�)�T��H��\u0004q�\u001eVq���H�U\u000e�\\�\u0000D�\u001cc!-�\u0003����b�}6In��3ċƾ��b[�Jq�`A'm��_���\u001c�\\6I��b�4\rcO���\u0015�׼�w5Ų)+\t��\r�Əz��2�j�L�8;� ��Sw��\u0001\u0013��Nj\u0006ADw���G\u001b4g*Ɉ��$ym�=�S�&���/��_�mo[��Ҭ��\u0016��_&#�.��0i��\u0015��}\u000b\u0015cc ���~%&��\ry\u0001����'f�\"\r�\u0014��'Ђw\u001f�\u001dG�v\u001a\\��b�\u000e\u001fL��\u001e�\u0000q�^;�yN��O�\u001bu1z���t�xI\nE��cR×�\r�\u0006�\u001c��L�&$�w\u0000|��\u0012�\u001ewϫ�|�k��կ�V����\t*=(\u000b\u0004+�Cnw�\\��\u0015 :sp52�0qת���k�Ել��h�x�ƃ�q0�S}ڠ��B#$�9��\u0019\u0013菕}�cѥ]{ɖ�|/<0(\f�n�\n�'`A\u0007�J\\9(wn�DNj���\u0005�Gq\u0003�` W)B���T\u001d�\u0007,�R�\\�\t��9f�,a�\u0005�a�/�\u0000�6\u0004\n\u00109|�\u0012�\u001a�22\u0004WR�\u000f�ɍX�i�W���{���vWr-�ׂo�|R5~�0\u001e�������\u001a���\r����+\u0018c���M�\u0003\u0012E+Eؖ�۾Q���\u0000�sӍ�^c�\n�O�Y#\u0005�✥oO�Ic�-?���\u0000ZsFl���\u001c�w{��<���}�\f�m�\u001f���%\u001b��82pzm�'~ \u0012�.�Y\u0011DN�8j+\u0003��G�\u0006�L�Ṟ.�J]�^k�\n�:>�\u0018#��ON5�\"I\u0000\u0006\u001b�/n�:-61\u0018�\u000e��8\u0013�Y\u0004�l^%�k��yC͚/�5�F�o\r�W�b.LE~�E�$��x��f\f��b'�.�$NLU\u0010\u000b���\u001do� |���̋�CY򿖭|�'���oz�PX��gQ����RkNIn�9�$*��,tZ\u0010Nt8r`��&8�\u001c�σ�)\u0001u+\u001c\u0003�\u0000-����]O�#(\u001cY}4H\u001cQ �w������\u0000�q���u����K�[��/Ζ���?枝p�Y�v\u001ex�e�d�\u0011��җ�񱢧\u0007\u0007�3ȻGټ��']��c 2a\u0000�3�\u001b�\u0006��\u000b�8;s\u0016�Y�1���0�(\u000fFA� /��w\u0000w�a\u001a7�u?�\u001f���?�?126��o�)��\u001b���5�&ju�<��\u000b>_\u0013�u���cj�B��5�]g�fa�B�p8f\u000f1!������x\u0001Ó×!��ۑ\u001f\nz�����w��\u0000����M��\u0017�SO�\u000b\u001b�|��A���[%ߚ?%�\u00000��Ћ�zdoŵ_*�h�\u0006���\u0011�Z�B�\"0��\u0000n}���O��CY\u000b8�V�'���\u0013��\u0012\u001d��\u001e�k=��\u000f�c��2m�\u001d$;뿸��?�\u001f�ʏ��\u000f�?��_͋��?��,[隕�˩�/�\u001a1�����g�\u0015�i��˯1�%��h�q�Փ2�iғ\u001c�\u0000���[�5݋����!��n:�C�ЗQ��R\u0000��O�]��ݵ�����\t��\u0014Ot�1�_:=���'\u000fQ\u0018,��|&��Z�W5\u001c\"G�7m,���n�X�9\u0004�B\u0001\u0001$*���(zV�:o��c\u0000(��f��\u0019��x�s�9#\u0015\u001cUZ�,���˯Zd�\u0001h9�X�$��\u001d��;1���\u001dd\u0015$KƄ)ܚ�oҹ8���e�#�g��\u0000�1�\u0000�2�d�\u0000�ey�|���6��/-\\E/�?�ռ��yVŘ3�\u001aSȢ\u001d[�\u001a�U\u0016��[Ҩ�^(\u0005z�f����9�L�\r\f+�_o\f{�G/-�ny?h���v.\u000b�GU!��\u001d��K�S�����\u0000�z��ҿ,?+�(4O,�q�q\"�>��j������^\u0011���5^Y\\�W���\u0003�t�4�-��u}��:�d��K�\u0007py'�5f\u0005�v\u000f{r�\u0018b\u001f\u0012BҰD�:}�f;��d�9\u0012\u0004y��\u0015\r�\u001dX���y{W�%\u000b�\r\u0005�[�+ɧ�\u0018�c�l����?�(��Iؘ���bO�>3�\u0000\u0004-t2�<8Y�1}��\u000f�s�|����Mz���M��j��:F�w�k\u001ad�V��K�,g��N���+G$N��x\u0012\u000f�v�ūҝ\u001ex�xf(�@\u0018�׊'b\u000fq\u0004>[���d:�FC,y\u0018�#�\u0011DWx�o���p��s�̿��퇓�8�����o^������m��]�w�\u001d���6VZ��`�N��\u001f���˄MF;��}.��)=\u0005�1��\u0000�\u0010�\u0000�]��=,�W��0��X���\n�=@\u0000�\u001e\u001eQ�@�HP��!d\u0011��{i�A�=��s��:g�#r�\u001d�H܎;78�h\u001e(�\u0010}��\u00009��oi���\u0016����ئ�m�qx�L\u001b�\u000fn���*��A�\u000f�/�\u000f{c&\u0013�y\tℌ\r�\u0015��x\u001b\u001fs��ϳFL9\u0004\u0000�\u0003�Ur<�\u001eb���a�A&�{�?\u0014��y#a�T\u000eW�Ҥ\u0012�|��\u0006h괢B�H����qKK�3�����\u0000o{���~:��5;#!�d��`z\tT�}C\u0019��+\u000e���_\u0013���*�\u000f>�_\u0017�=��u\u001a9ݘJ\"��������M=�_:���xߙ@d�*��M*z�\u0015�9��j<~ˈ\u0016H�~=�%��\fu{�\"|��zϟ���ڵ�\u0015{�\u001e\u0007���?�,1\u0011*�D\u000f��n\b��.I~[�\u001a;D�������݁,Gꌉ�-�|��\u00008����/�lb�&_Оf�>X�\r��=6��\u001a\b'�.�H�\t=�w>�h#�}�5xG�F/P�\u0015�\u0003��.��~O�\u0006<�xS�\t���~\u0003��r���~_�h��C��+-J񬟘X䰚cqdT��4\u0012(\u0004f�3�p�S\u000f�q������\u0011�ĴӮ,d��/o���?�\u001a��1嫫P\u0014��h��x�|\b.R\u001f���vΐ��\u0000Y%>�\u0007�t��u�f5����O���5l\u0013M��\u0012\u0014����� \u0013�d�@U\u0018�R(a޹�}�fu\u0011�7����z�I��<\u001dD\u0007��{\u0010����Z6��渐����5�� �\t��\u001b�\u0002P�uڴ��;����ɏ<\u0000�\u001ew��\u000f#���9c爏�=����M?/��+\u001f���\u0000��.��~������]`�\u0018\u001c��Ɖ\u0015��x2z��wO�T\u001c�r�2��]����{?\u001c~9%��\u001d��{=��\u0003�}~YWR1�\u0002'�1/j��?$�#ygR��:��$�y�κN�{qc$�T_CO��.@X����\u0005��\u0019kŅ3��a����ڠf2_\f\b��\u000f�z�.l\u001d��æ2�b\u0007��2$Y�#\u0013�B��J�&5/�\u001fʻk�5�\\�v�v�����X�}b�\u001a��o`���kl�-��ep��RH\u0015\u0014�g��Moi�\u0006�Xo\u0016\"I\u001d='k\u001d�\u0000c_�z�>�O��hd�\u001e\u0010v�\u0012.TGC�����\u000e|�\u0017�\u0007�\u000e����4)�o:#���U���\u0014$I\u00138\fL��@뚯l�D��ló4�\u0000�z}�r�7ٍ\u0010��̗h���\u00000����z���<��R��)�������\u0006O���m�E��TS9�g\u000e\u001f�F�\u0002\u001d搜���2A�{���E��Ե%�\ba���\u0015٭�]\u0016�S�\u0019��3�\u0012>g<��\n\u001ak�m\u001e������HH}�ù�\f��\u0013�Ic#�\u0013\u0019�/̏�Ǧ��(z��\u0000�}�)�C���\u001eT��~��^7���q��\u0003�\u0000\u000b��;�-�f��yl�O��O}P�k\u0018,Ғ�\u0001�߫1���&\u0011��j�^��\u001b�\u0014�t�2�Q�#3\u0015�h\u000e��Nv���\u001a|\u00025��k��_f�����\u0000 \u0001�ݺ}9��<\"����\u0011�U�&��}��L6Eě\u000e���\u001d�T�=ʜy5\u0007A���\u0000?�\t+�FG\u000e��\u0003���z�n��R\u0000Cͻ\u001au�\u001e�4���b\u0014�=���޽�\t\u000b�\\[[<��cO�;\f���\r�~���\u001eqM>����\u0011�����\u000f��\u001dV�8q\u001c�ڃ���>��u�w>\u0004�i�\u001b�o'$�p��P\u0001m��*�8L��YK$���q�h��\u0000\bM,l�:���{\u000e���E\u001b�~}93�\u001b@\u0002�GM���>��F2��S(�� �\u0000�t\u001d\u0006ۀ\u0007�C�#��v���}m\u0007�6����a�Gs;\b�\b\u0014��ni��9\n\u0014?�\u0011������9�5<\u0018o�\u0000\u000e��7=�^0��\u001d�G�@~w~o?-B \ri3\u0006�\u001fҧ�ϥ=�\u001f�����}���%���`�\u0010��J�\u001fj\u000e���k�ߑ\u000f#���>��H��\u0003�(��C�̾�;:�j�\\C�%�\u0006�k\n\u001at�\u0000>�\u001e\u0019�ϗ�>-?��e�'���\u000f�L��v�cl�Ս+Ooz\r�_1{uv���җj�\u001b1�\u0000\u0019b��0�\u001d��1����ˁ��?�\u000f�?$\u000f�\u001d�6�W���|��\u0000\u0004}�3���~��\n\\]�\u0003��\u001f����+�\u001fA�3��W�W};S��X��7\u000b���_LҞ\u001f�p�[���Ϳd������xa�Μ\u001dG&\u0004\u000e��\u0007��:8>�k���@?���+%�6v�ΐ�A���׶�0Y����rj\u0012{�&�?��\u0019d\r\u0006'Ϛ\u0002\u0018�N����~�#`���}�}���'�4�A9�oý1�<�J_'\u0001��߹\u00187�\u0011�C��ۮD�U*��ӥ~ـ��\u001c��FG!QJ�~�.�\u001d\u0012\t��\\\u0000\b�Q�\u0007O4�\u0010-/'\u0000S���,N�\u001b\rB�h;���\u0010Y\u0003�R9����G�4]��\u0007'�����\u0018��%ďL�V�}�_v>J|��3�\t\u0004u�O��`;�5ӓF%�i׷����\u0006ܕ\u0000�'n��~�\nc�[@�'%4\u0002��郞��҇��������(�\u0017E\u0018\u0007�I\u0015�>�\u0000�ȑ|�}���{#�Ӧ�\u0000>��)�A�%����\u0011�:m_\r�)���x���Rj)Jҧ��\u001b�6�$��\u0014�\u0014�'�Gj�|P���JmP|=�+�%G�56�i]�\u0000�x�N�0tU&=;����1�*d�ۨ\u001bw>�#\t�U\u0016#�\u0004\u001d��\u0000���,dxB\u0019�\u0015���S��rC�6���#�![�:��}Ԩ��\u0017�\u0002\u0002��(9\rA��\u001a���2l�\u0010\u0012�(zmN���w�&����J��MJ���\u001a\u0007��b�z*3\u000en���]Ͼehty5��zL[�r\u001f\u00007'����O��|��G���{6��\u0006���Qj!�\u0004\u000f�᷁E(:)\u000b��=�M\u0018�\fc\u0001�\u0011�ˣ�e,��#̒��\u00000H8�'f�d&��<����\u0015�=�>\u001bs��.[sx�/%j�/6�4t\u0003�5\u0002����H\u001d�3\u0010\u0000\\�D�;ty��͗�l�\u0019\\5�@�۳=Ai\tx�\\�J�2#\u0013\u001f�ǽ���\u0000vy\u0001��O�>���i���8��!�5e,��١�()ԝ��7\u001c�X�ӣL�\bJ��y�����\u001b\u0018��U��p��쐩g���a�M\u0017���,�@�W��by�=\u001e+��gK�@��Q�%n-�\u001cV#\u0017\u001eAwؗ�M*v\u0019����~mY*<�\u0002�+�>p�\u0000�x�̃�c���v�!��t+��h^j�\u0003$�hڪE�$��{i�2[J9\n���b8��c�Վ,<���\u0007�~ƹ����a�DW�\u001d�~;ߧ\u001aw�䯑�\u00003��a���iz���5h��\u001f7y~��mSɾn����[����\u0005�Q-��Y��Qn-�Yw�\u001c�n�͢�~W!\u00062�\tW�\u0012k�|N�9��\f��HY \u001b\u001dD����G�#mt\u000b]\"�RK\u0019���&�\rKI���GP�5�H�˘���R�*h�Fdb��\f2m�2�>D\u001e\u0011E��0�\u0012��DX�\u001f�\u001f0�\u0017��E��I:*�k�;ԃ�1ʃ�\u0001Oߑ�9x��[q�8��\u001fr]�)�\t��4٤\u0004F^2\u001c��ZS�?^:�R�۱�\u0000�P�4����B�ɾ�V��I�˸\u0007cM�i�F�c�]W6!�Y�A\u0019��\u0012�P�J��CPPR�d���#��������\u0017澡�ZIX��\u0006��T���Җ��֥‰/�\u001a��\u000f��\rƀP�A\u001d|3+Wc\u000e8\u000eb;�T]F�!,j��\u00135\b49F}\u001e]f��\u0005\u0019p\u0000o��pk}ŋ��x���<������\b�חWӺW��\u001f�>��.~z�fyj/%~ly�M���\u00000|�h�+�F|��^hVk�}r�2yt��\u0019l\u0019�9��#Z��;[K��]n-\u001fg�~T���\u0012A���'���\u0007�Q]���u�\u0012e�9'�H�EF]�\u000b$G�Y��[���� �6��\u0013*�\u0004�N�\u0010o@=���\"p���GN�k�Y��/�\u001e���O����\u001f�]c�q��rO�6�����ܗ\u00160I(Ӽ���V����,��#{�\u0000(y���0�B�G�$yD^� \u001b��_���=�}���وŔ�\u001a�\u0000�K`O�O-�\u0002�M��\"��\u0006��+�x���\u0013,����R�\u0011�\u001f�&����\u0000�A�lC��&�6!{�qI�tH\u0014+���\u00124E$�vr�%QԜȎ\u001e-��p����J��\u0004�؟���i���5�ʟ��{;���+�\u0016��G�g��\\i?�V7J�i�*��Z�>��\"\u0011#�;�f��ɭ��v��C�\u0014�����r�\u001e(�+�_k�ݏz]5d�\u0013\u0013UDC�^~O�\u001a��ߗ\u001f��C�,?(����?�^Z�[h�\u0016�\u0018�'��\\j:��V�V�o�z�\u0017s�I#\u0012I�\u0000�Lqŧ�0`��\u0018��;��I�M�w|OY��kuGS���i�$�w�V�bi䐙�j����\u0007�D@�O�o�2\u00119%WI�.\u0018�����\u001dO�~s�on�htM&�]K,�biR�P\u0016�\u001a\u0012X�we襪�c��\u0004�n^�$4�iN�\u0011�\u0003�����_;~d��<�����yfyi�\u0006��Q��\u0010G�4+X�j��\u001a휟\u001c�\u0007��\r7fi�\u001a\u001bȟ{�~�c�Md��\u001c1\u001f\u000f���SV�u�YKT$�\u0001?\u0001V.�O\"j�'���.�͞v\u001ek\u0016�\u0006�6�\u0004?Q?$��}fm:\u0019�\\[_��\u001a\u001d���:�,��G 5Y\"�9��#�S��$�\u0007s�?�Ϩ�ub f\u0006���ϟ��\u000f܏����)?� �\u0000�\u0011!���u?Ҟ~�\u0000�r�M��>�5�\u0019�MO����\u001f�ֹ����ᵷ:c�٧�ڧ�5��ڞ���>�C��C�Aڸ���*0�a�\u000e�\u0000\u000f�\füd=\u0006ޫ�Z���ƞ�\\?�4S�\"n��cx$z�\t\t�'o�#����(��0o��>\u0016ג�T)\n��\u001f�a�3ڽ��!����G�\u0005>A�N����\u0011�dh���z=��q�Q�X�m6en\u0010J�m#q\n�ౌ0��}�'u�[�\b\u0018#\f��\u000er��~���,'\u0014��6�\u001e]��\u0000�*��&��K�Z\u0004u��\b�\u0017�\u0014�PKU�$�!�\u0019��'_\u0019i�\t\u001d�����G��2��\u0000��y���;��/�G���9�M��+�w\u000e�1e \u0013@E:��`�C���h�]�\u000eWd�e���y�p���\t�kSy[�چ�3$_Vծm�#��a�cn�=9\u0014\u001d���\u0000�2�>9i�f\u0019!�7��ޯ\f�!��\u0000���t�&S�\u00009��G�.y'�28�\\jZ$z6��h���YRF4��\u0017���cM�X1ٲ��9\u0018����h��5`���D��v+�����p�c��y���b�ϗCr\u001b�u^UQ��m�+�ز������\u001f0��أ\u001e��\b�\u0000\u0014G��\b�\u0000���6�m����\u0013\u000e�i\u0018�T7���'\u0007\u0015�h}���xFx�Nr���v��\f��\u001d�8w�5���_&I,��XH�\u0000�\u001c���\u0005�=\u0007Bzg��\f��.uO!�f\u0013#�%�\u0000~J�-�\u00008��\u00008����m\u000f��/:y�\\O\n�)s'�n�\f�D��ֶe\u001c\u0013F^���\u001d���.��L\u0018�'>LX����m�;=�giq���3同0C6K���'q�h�\u001dBG7���g��1+�\u000f�_ɿ�\u001df����F5����3Z\u000b��+w����{i\u00014Ry\r�5��i�b�e�\u001e��\u0001[��6�]���u\u001f㞃��\u0007ܬ\u000f^��u&���䊏��\u001bfó��.^9\u000fO�k�!�\u000f�v�\u001e�a\u0005\u0010 \u0011��7��;L8�ۣ��T��j�\u0000�ݾ{f[��薵$W\u000f�>}��<\u0013�����|)C�%4���&�\u0015�]�O\u001f\n`�Rd��\u0000({��\u0000/�()[�S�:����\n���;Sm���#�\u0006@_*\f\u0013�z�YZ�9\u0005\b�z�@\u0007�zes�\r��!\u0010\u0016_����b�Z�^�)\u000b�\u000b�%�lX\u001f�\u000fo|��_R'1�r\u0015�Ջ���\u0013�ϭ,�\u0001�����|>��B��@Rs\u0005\u0000\u001dFۊSc؞�%\u0012)h\u001eJμ�\u0013�v�;o�2`��Fԑ��޺{\u0002*=\u00175=��\u0000-����\u001f�������5�����S\u001e�\u0018;\u000f[��jz�\u0000�3�_bkÿ�;�$?tA���<�k'��_��\u001c�5��~t�\u001d����}M�Kh���ï�;��>ly��\u0000j�r�p\u000f{�O�c�O\u000f�9��p��Q��v�,�ȑƕ�|:\u001d�k�n��YU�A���|3\u0002N�\u001f5ک?S������\u0000\\}�\u0018\u0001��.$�¿�\u001fd~H\u001f�8>C���ϕ��3>��/�^����\u000b�ᏹ����=���O�\\+�W�\u0017w�\u0000:����UJm�o���\u0018�h�4���?5���\u0004��d�:�^l\u0000�ۿ����\u0011\u0007�\"Ѧ��{��\u0000�r�n�\nz-���\u001e����'\u0016w�]Mk�T��m���N<��\u000e�d5�\u001e5\u001e\u001e\u0003��}[��\u0013�P}��\u0000L?�O�H�^\u0015�o\u000f\u0001��V%-�����;��\"\u0006�jy�o�}Ϗ��\u0001?o؃ޢ�\u001f\u00105����dv�T�����`����j�Z�X��N���\u0000\u000f\n`���)�> {��C��F5\\����*A؁����Ͱr�[\"�\u001a\nm�\u001f|i4y�P\nkҵ����i\u0000|���\u0014�\u0014�s����\u0007�I%��w����Ȱ��7\u0003��\u0006\u000f�<���n��n����!\u0000�V�w�nGA��1�)Q\u0000\u0010jH�X\u0019�\u0002\u001aV\u0000��i���\u000f*Ꝣ�W&��\u0000��3\u001f�������\u0019�6��������xߗ&�H�=\u0001�M��\u0000O��r@�o��\u0006��:��~�Mr Y�W\u0012\u0001�ߠ�(O�1\u001b\u001d�|��\u000fjT�￾\u0004���ֻ���c�b�$�]�����\u0003&&��ֽ>g~�=��\u0006�u�1�I<��5+�\u001d*)�t鑮d��#�R�c�����^�6�'or�\u001b��B9=�_\u001f�C\\�l\u001e}R�z\u0010\r=�P\u0003��;|Ro�'Oԭ�y�i�+��{�:7�t�N��\u0019//\u001d[��\u0016�>\u0015�K�\u0000��d�VmWh\u0011�\u001c2��B��\u0003��[�\u0003O�\u000e��l����\u0019���\u0004z��Ҕ\u0017Q�\u0018\u0006��Uf�[��\u0002��\u0000�9�~&��˰�����/\f��yv�p.-�4��I\u001a�0���C#��\u0015�M�u\u00036\u0018�A�_\u0014���/��\u0000�>/�\u000f9�zo��O�o��4���j��Ǥ�a�\r\u001b϶6��T��Ŀ��\u0006k\u0013\"\u001f���K\u000f�@P���\u0004�w�\\��\u0015��!�����\u001c����X~�~Q�_��X�:e��{=������J.m/��\roT\u001aU݌�+-�Մ��2�ca��v8���\u0011R\"\u0004�DK�\t\u0003�a�\u0019d�/\u0004Ճ!��q\u001a#ʎ�\u001a��y�ˑ�X(/�D7=�\u0010�f�u\u001e9������a\u000e!\u000e\u0013ί�|��_�����9�0���@X\u0014��\u0004\u0001�P)\u0006��r�\u0012�ٶ�JF@\n���bZ5әc��\u0015\u0010��\u001d\f���J������K<��\u0004z<��A��{Sծ\u0014,66W7E��\u001f��Y\u0001$\n\u0006d\u0003޹��\u0004���mr$���7��<ڧ������{5ơt[y$�i\u001aUB���A�\u0006]-����0�\u0013\u0003��l�r�����P\u0007R�6�j\u0019K\u001a\u001c�c�\u0014��eNO\u001d\u000b/�|�`�>_ӡ��\u0000���c��\u0005EhA����Y�J\u001d(:�o)��\u001f�ܻ��\u0018��'�E*�F��|k�G\u0010\u0006��\n��58�\u0011�U\u0003Չ�F�\u0010�jjKTԏ\f�vLI�G�����\u0012C�D���\u0015i\u0007\u0010�Z�����Z�qLγ\u001dv�&�p2҂y\u0018[Ȅu���z��\\�\n�oRG`\u0016�j\u0002î��wh��������e��\u001a(�\u001d���~��\u0002o�z_��#��F��`��q�o\u00021j�W�W؜�U\u001e9��#�6y�d1\"Q\u001ec������q�G�׸�_T��}�iZsj�����H��6�ݔ�����a�'�\u0012��b\u0015A$\f���s�\u0012?���P�?]�y�37k\u001f\u0002\u0012��\u001c����<��~a�\r��'y~\u001f7G���6�s帿0�4k�\u000e��:k�2��ֶ�\u001a�5\tlt�3��U��O\u0011�\f�_i{WG�\u001d�>���G\f%\u0010$\t�)\u000f��m�}3ٞ��vWf�'hd�L�D�\u0004\b��\"�۞�I�п�^v�m��sq뭌��\u0004�E���9�\u0005\u0018zR|-N���y\u0003��\u001cG��r=���u����f#s����~�~\\5��\r���L��%�J�\\���\b�`�\u001a��^�Rt_���\u0012Ő���~=��Nx�u���>����N\u001a����cp��43[�,%.��R\t��ż�̯\rʹ�J�o:\u0015*h��5�|�=�1ȹ�� \u0011��G�==�į��o��������T���.4o�\u0015\u001f�-J;˧�?�v�lߔ�m֥\r(����]cӭ����Z�H{9EKpcד�/c�7X\f�����D�w�8nI��\u0002�1/U�>�v�e�\u001c��\u001aN�]��c��|��\u00008��\u0000>#�\u0000�P�\u0000�zm\u001f�_�ڭ���/斜�ߍ?^�}\u0007�OF�aV\u0019t�\"��}�V�t\u0005%է�\u0018���fwd{/ٝ�\u0011�c���2� �G����\t��\u0017����=|N-5i��j��G��׺��>|�V\u001be�t�m�����O�l-��4�>��=8-�m-c��N��E\n����P\f��]�+���O\r�R�2���}|��מ55\r*#��2�Y'\u0000�\u0006o��^��^�[�S)wrF\u0002&A\"����ݪ��\u0004\u0017<�\u0015b\u001b�;��fV> 8���e0\u0014\u0006�V�������\u0016�\u0004Q�-��v��\n��M\u001b,F�rƵ��;\u001e�����;\u000by�~\\�dx\u00003?k��W��^��-fԵ}b���#�\\]Hŷ�\"��Ϣ=��\u0013��yKsR?k�\u001e��T��\"\u0011ח��qhA\r2����}��?�u\u0013�$9��\u001d9\u0006�7���~p2k�YM-\r��\\\u0010\u00014�:E+�M\u000b \u0015�A�6�|�6\u0002/�\r:Mf9c�*>������\u0007��\u0000����$���\u0000���ӵK���\u0003�S]�?�Ǜ_�m���\u001a���\u000b_��b����\u0000�1Z8�~\"��-h�g�v�f����vV1Ů�3�����n/\u001e\u0000u��$H;\u0003�&�\u0007���=���v��\u0006�u�����*8�H�C\u0006�b���\u001c�\"_�\u001f�P\u001aօ\u001f�-`o�����\u0004R}h\u001bӞ�A��Ȧ��3Q�oh\u001d.��>�\u001b\u0006��}�\u001e���ӍT\u0001�\u0015-���\u0004\u001e~o\u000f�\u0000�h�u�u�\u0019\tY�c����Z0�S_�h7�|�?� t�r\u0003�5����\u000e&3�\u001c��~���rS��^��x�dOR5��\u0000��$���@\u000es>�j\u000e�SG����c\u0013�rw\u0012\u001f!~N�]i�W֒�\b��J!V\u000e�\r�\u0013EpA�{gU�\u0018�~\u001c��N��r�\u001eN\u00126$���䠛�_�\u001ed�*�m&���\u0004��,���Sr\u0001�����\u000e=����\u001bM)\u001e�6*x�\u001d��މ�]�o�?�\u0007g\u0011��Z��\u0000y\u000f?0yZ�6�,\u001d�x\u0006Ƽ��~y��\u0012\u001d���w\u0011�5�.ϵ�\u0019k�y!�P������\u0000?\u0017��+�$L�\u0004�m.���֠�ڛ�o��)��$\u001d�\u001c�'�\tp��\u0002��\u0017�^GgId�\u0002!f�\n���zV��L�>Ό|\n\u001b�^'W)N^@��o�<��\u000f�q#�q�J�b��g���ˮIa\nO�Xi2k����{H��\"�\u000bdrd��Ƥ��x����\u001fl;O$H\u0007\u0006oM�$�\u000e\u0018���z=�]Tt�����|dʇ�Cė\u0014��wu|�{�j\u001f�>Kׯ/2��>F�Ⱥ���g�՞�\u0000K�פj�k:\u0004wS��������$/\b$�\u0000S/�9��>����\b3��\u0000����\u001bH_.�\"'�ɗC��\u0006c� 6�\u001718��e�ݶ�u{o�o,#<�m�\u000b\u0006����\u0018���=�&9�m��\u0012���_���R\u0006a�,i�4��d�q��V�\u001b@r\u0002#���p�>��?� ��6z|\u0007>�����@�\u0017ګF������� b-�^�B@gi[p\u0005@]�S��Ԟ\f��\u001b;-\u000e/�F�C)��c���e�;�\u0000�\u000f�\u001d\u001f��c\u000b�\u000b;��S�%䞌NZh�Z�j\u0000\u0005N�:�\u001c}����&ďO�����-~�\u001a\\b�O��=\u0007{�:;�;E��-�\r��\u001c0��F�5��P����xs�9O�>�i���+\u001cO�;Zq�y�|����ӥ\rc�\u0001u�\\�\f\"UZ,\tJU���#=7�t�6Q��m\u0011�V\u0019�\\�\u001e3q��\u001f>��m�E \u0000\u0016h�4 �\u0015�Mv�o��aW|���!dX\u001b��|��\u00009G�E�~z�\u0000�+�n��\u001ci?��5����H�\u0006O���B�Kmg\u0001Z�ͨ�ZK\u0012S��f�ێ��ڝ�>��\u0007�)\u0018�\u001f�Pc�#�G\u0000�2�f}�����)Y��e�n��\u0006�ͳ^O���q�B�p�b��Br�E�,R\u0007��J�u�'\u0005\\\u0011P����BoU\u001e�\b<����#���\\��x��﾿.Oޏˆ\u001f�\u0017����ߨ�\u001b��\u001e��^`'�Z��cπ\u0000���M٤P\u0003�L�ޣehֱ\b�hQjE6�l}��6=��d\u0004��$`\"CU�\u0007z�\u0000L�����H!�o����8��\u001c�}WX����u\u00016��+Oվ>䝣g��\u0011�\u0007��/���G�GP�����W\u0001;�����MVq�\f�\u0012\u0001�������\u000b��\u000f�\u0011e����j����f5��Z|��8�NFS��l�r\u001c#�$��\u0014\u0004��\n~>��\b���)��|z��s^��\u0000<��_W_�>�p\u00057��;nK�����C�f�n\r:\n\n\u000e��'�+1fe�1#�:\u001a�n���郒ErVD=i˥|k��]�̥�bA�9�:F��\b\u0014�iL��A���]�\u0015���_烅�#*(\u0004�~u?�>�� ���\u0017�=��\u000eG�o5����\u0016�\u0015�:W~�xg��A����i?� �>��?�k\u0015;q�ר�\r��\u0011���Q\u0012I\u001d8}�z�k��\u000e�\u000f\u001f�&��;�\u001fF�C�9hf ��e�u�iZ�\u001a�\u0000O�03\u0011ד��w�Ojvڻ{��`˛��uT��\u0000�*��Ջ�k��Oz�p�!�\u0012��\u001e(���\u001f{��\u000f����Q��}�+�\u0000�\u001c\u000f����_��������\u0007��\u0001~���#۷A��\u000eO����m�m�7W�?r��ݰ��q�mb�~גy��7j\u001f�c�\u000e\u000e�\u0012\u0018\u0011�:}DZ�e�\u000f/zg��Y\u0000>?��� n���n@z=��\u000e�b/�`�n�Rk���G��\rs���\u0000?\u001c�槸%Q9G�~g疃{��N\u0014��Ǩ\u001b���~_k/>�M�b����R�\u0005\u0000���\u0012�z\u000e�}>?v\u0000(�lN�V�����\u0011G~��\u0002v�\u0001>�Ҹe�y)+�Z��=~_/\u001c�]�\u0014�\tF,\u0000�@\u001f?\u001a�\u0000L�:�\n�BW���>xi�\u0015�r56;\u000e���`��u橽7;V�\u001f�\\l�\u001b\u0006��-�:\u000f�ƽ\u000e(��[z�)�$o�{c���{\u0017����)��x�\u001b5��5#+\u0000G��\u0000:u�<�䃒S]�ԩ\u001e>�\"\u0012w�C�ڝ��u���c]��ԓ���ɘ 4$V��K\u001f���\\�vE\u000ejdi1@h�\u001a��m��R\u001f�����\u0014�\u0002i���|3\u0002���H�4=Mi�߱\u0018\u0000��Pw��\u0007��$\u0007N�ov��\"���?�q� �\u0014�i�P�������*�x�\u0006ǡ�4�'�\u0015C�\u001f\u0013۷q��| �%<�܍��֔�\u000fN��Do�*a~�\u001b�3��ƕ����̱$\u0001�y�C�ݏ]��)�w\u0003#L�.(�\f��\u001d��{���\u0016\u0012�Gr\nM��Q���\u0006{�#�b�\u0000��\t��\u0000,�Ty�h�g�~q�\u0012�/�0��\\�\u001f�\u000fZqU��w;\f���\u0015a3��nR���#�j����=����qj\u000fѧφR�����ߚ�,:l���#7��}I\"J�K7�Y�u!OZm�]\u001f�B2�!^��g�D��b~Dž��_��k:L�G���h�IJ&�B�n\t*j:f�c8�./�\u000f��Ɣ���d���ߘ���\u001a\"���̑��w�\u0016�g\u0011\u001c�w�t�\tB\u0001��db\u0007\u0004�_�\u001e��Le!;\u0011�>���=���\u0013z�\\!I�\u000bo,\u0012V�Czs��~EhE��>ag(�����\u001cC��c���W7�F����;9�;�\u00075>�'\u0010Bt`?\u0001��$%ʔp�g��up��wE��\fK)�Y�<��P\b�\u0003�2���PC�|�\u0004z��s\u000b�3۫�+o�@����J�φn�r��\u001f�\u0018�D���\u0017���������\r��u)�l�{�i���K��ged��񵵔\u0001c���@\u0000�\f=�\u0018�nJ\u0002�q\u0013�L9�WQ)�|&W_��VC�ã/�ͳ�b���\rxT7��\u0016=��{�9)\u0003\u001c��\u0017���L���φ�=3�\u001a�3IJFD�P����\u0007�>,\u0006dD��[C���KK��->3/\t\u000b��m�\u0005��\u0004�]�W�\f��\u000f$�_��x��䎦�\u0007��%R�_��Ң�\"9������W,���M|�RO\u0010\u0011��柖�g�Ĥ��#W\u001f\u000bP=K\u001f\n��ip�\t�m���W��v\u0003P�\r� \u0019A���AO��\u00006�v�kM�\u001bE\u000e<��ݞY�c$s��R��[���?��\u0000D\r�\u0016��;{d�L�e�ю\u001c#}��u���\u0001Y�&qZQ�*Ӄn\u001a��W�C%�\b�\u0000��Do��9�dKf�O�M���\\�vq�u@t��Ց,\u0006�4^:��Ր�J=2Í>��jk������]�\u0000\u001f�g\b��\u0011\u001c�?�¡�t��.\u0001����[1V#��-Р�RC}9�Ōg��\u00003���-��r��S'�\">'g꭛8H�\u0016\"F���\u0010kQ\u0018�Y�7��\u0014\u0004�Tf4�\u0006Y_.\"~���q�8\u00029�>\\޻���:��?,<��r��̿�|�a\u0013��1>�qkc��L��$6��M\u0014D�i�\u001e�S���H\u0006�Tb,�\u001c\b��Y���=?�9�S�_��G��\u0000\u0003�d�؞��O��F�1��6�n!�?Bky\u0013�M\u001c�5_�� ��<�3\u0007x���,fls�z'�|��_���Y\u001e\u0012Z��/N{Iϧ2�-�� ױ\u001bfN� Ǔ�\\�\u001f��ܬ߾�`\u0007�����_���Z��}����N�\"�T�l�o��殄�@�\u0015\u00079n��q�e\t\u000f�=$��\u0001�`��}���\u001bK�\r��\u00167�\u0002β2q��P��7��44�\nu�h�ự����\u0019�]�\"I%��\"K\u001b�#ni�\u0004$}��Ǯ��\u001b�D����\"F�\u0007ʞu�h��sy��ޣ2�7&%���(S��RE:x�D1���\u0019�\u000b\t�\u001aP3�\u0018�^Ak]�z\u0017\u0006�\f��\u0004� \u0016s�\u0019\u001d�!�\u000099�5���tkb�\u0016�K0Z���V5$u`+Rs��Q��p�R��\u0007{���R6�W̝�=_��Y+\r��7\u001f�N���U�ڠ�*[l�\u000fg3\u001c]��\u001f� ��\u001f�`2�s���? ��Q,�\"�4�ؑ�\u0014�ZUz�V���bD\u0011n�8*�mo��\u001c/��^��R\u0018���E��\u0017���NƠ\u0003�\f��&a)\u0011.V>����\u001c\u0000J=A���&����\u001ew��v�U�|ê���۲����]C�h�Lu\u0011�\u0006���҃�棲5���j��\u0000pCZ\u0004�\u001c��Ŕy��r�+��9;G�\\�L&�d�LD��\"q�4�3'�6\u001c`�Sx�hFq���:���3c�\u0003\u0006y�?�G$��� �Z�+����)c�>n���\u0000\u001c3h:���7PcC���y:�\u0018��g��\u0019!�]>\\�sa_��'������\u000b�cB�x�r`c�U*\b��/*�f^�O\bv^�$\u000f�\u0011/vܜij�&�\u001c���#��o�/��?�L7�Q���ycNfm�`�E*6\u0015*\u0005{�{\u0019�N\u0006W�VOC�4LuF2�\u0000Q�����H��\u0011=\u0002��ȶİ�܀\b��j���i#�vx|�JD\u000eCw�7�6�>��k�\u00008t�\u00176�S�W��\u0007L��;�?R�_8�Cuot�U\u001bնr�m�\u0019�}��9�}�<���\u0018��~�b+���^IC\u001fe�\u0003�\u000f$���4�o�g��]�w�˥���O\u001a]���έ�+M#�l�w�\"��Z��B-�m&\u0015*��2�Tf�Ru:��Le�#Q���#��s�;]?�І�G�\u0000Lc�'�ѰD`\u0006㬃ٿ/�ke\u001ex�D�{w�;ʖ�\u0004��ކ)\u0014�����n�\u0001EsW�#}&\r�\u001e����«[�\u0017\"v\u0007{>g�a����s��\u0016�M��7�|�+D\"��\u0018�i?(�\u0003~%*xp\u0014n�|�I�\u0013�H\u001e����W#S��<\u0000q^i\u001f�\u001e���/�?�\u001c<�)�\u0000/���`��5�\u0016Q7\u001f��\u0003��&P�h����i{_$�GU�|_������>ˀ��/���|�aֆ��{���kz��O��I��9��`��OI\u001a�q1�ZG��:�'M�\u000f�s��\u0001~r�\u001eNW�2�>\u000e\r�W�>g����\u0017�`�-!ӭK����P��RMB�e!����s�Dg5���Q#�{Dl\u0007@?[��a�\b\fp�{$�\u0000\u0011�����SR����OVmCQx�M-E\t7��F���;89Jǰ\\��cɨ\u0013�q\u000b�����'a�r5Yg�\u0001�\u001d�L�G����h�\u001fs*�&��G����-�8�������V���Wj�͋x�14p�lv脅�1���+ݵ'Y�\u001fdvI�\u001f�\b|��7�ݗ�����S7���W�~��isE�CY���$�\u0000EM7�\u0010G�\u0018 \"�Go}4�N�3�i�o\u0013��\u000f(H�y�o\u0003~q\"���?ˤq���*�U\u0015\u0007�x��HA�\u001f�vf����>p�<�$��\td\u000bɐ��z\u001f�\u000fE\f��v��N�|$�z{�w�Fh\u0002+�*y\u000b���\u0018R��xّj��*��xls��k�e�|2=?\u001c�~\u0019ѱ����\u001fC��I�\fA�\u0018��ԡ�w�6C$\bؠ\u0011\u001f>�\u0017���Ide\nC2�*H$m�o�\u0015�\u001f\u0017�\u001f�x�<���jZU��O\n;\bb?\u001c�Fʴ�N��0�Z�i0�Q-�E���qu\u0012��\u0018����/�W��w��1�z=픲�W�NK�)?\u0002�j~\u0011M�Fj;?�L\u001a�ÔJ\u0019��?\u0016<��>\u001e\\C�n>�\u0000��\u0012�g�辷�榮�h[��W��o��\u001c���[a����~���\u001em���+�o����$��8d\u0001�k�\u001a�;)\f@�#m�;d\f�\n��<ߛߚɯy�]{[{I$�����\u001d�RO\u0015�p\u0001�w��',�\u0018�\u0011��\u0000c���g {�{\u0000��v�:i�S��~��k\u0005�粜s��dV�S�E?�\u001f~��;�����TR1Ϻ�d�U׶\u0002�ϿOs�uʄe���r\u0014\u0006�\u001eW�\u0000?�\u0003�\u001fM\u000fˮ\u0000\t�\r����vS�|��R�`�\u0014=w�aL5>t�\f�jF/�����$x�\u0000\u0001�\u0007\u0004��\u0011!��*?,�`�b�Ǿ���d:\u001bX�}F�w�<��\tlY\"�ۑ�����w�skٲ��\f�W\u0017[�s�h\u001b�����������\u0018��Ci\u0015g&��\u0000�Ђ\u0012�9�>�v�gh�z�\u000fG�{o�����\b��w��<�B���ѷ�\u00194\u0006\u001b�S&��ӆv\u001a�l�&p�<���=����0L��\u001fX�\u0007�����G\u001d��@��Y}�ڣ�fv\u001f�}�\u0005��n��/g�SS��\u000e!����/��2*'�\u001e�G�+������1���>b�|�e8�<'��2;\"��z�\u001e��{}\u001bf.Oh�,��l���3�@�\u0002V���/^\u0004VҀ\u000f��\u0001�j�<�����Sw&>���\\2�r\"�ɚ���\u0016ƥ�ڧ�\u0013��l��\u0010vlx���\\�^�v�\u0007�~����K�ӭ�K��0E�\u001e%�Zҹ�O���Z�Ӟ#q��b�ٴ�H��*B\u0003�}Z�az\u001f�O�)��<��yS�[{f����D�u��f�������)�s$��\u000f%�W�o���؜�\u0010�{�����]�|>�\f����욓\u000f\u0002@��\u0003�\"vP�m5�ӧ���\u000bh�'\u0000\u0012k�t?ƙ1�|�M\u0019+���\u0000:�%�O4�іJ��r?\f�~��\u000b���\r��=�����I\u001c�rS�Z�m���OO�cv-Hc\u0013�\u0018�w�����\u00071́B1�j�\u001f��2\u001c5�\u0013�\u001c��v�����#t�[m\u001a���ҟ�#Ti ��)v�q޿�\u0006�+��XW�t\u0007���\u001b�D��\r\u001a�M�\u0004|)hR*+���LR\u0002��\u0013���zm��\u001b��r�\u0004Wj\u001e�\u0000�酮R\u0001!��w�:��\u0000F\r�ϕ!\u001c�\u0000\u001e��^أqϝ!_�_��S\u0014�ߢ\u0006R{\u001e�OΟFGܞ�S+/}�7�����ړH�w��7�^�ʦOD�\u0004�A�\u0010z�?vT�X�����r����\u001c����Ԉ\u0015\u001d����~\u0015�g�U\\\t\u0004t��_\u001f�ɍ͡��#�{�\u000f�\tY*;�6��t���\"��yv��\u0000���\u0001�P�\r\u0007N�x����N\u0011�H���\u0000i������\u0006�%��~>hY\u000f_\u001a���w醷h����i\u0018����\u0000��\u0003!!�Ų\u0006�\u0004\u0013�ߨ\u001d�VG�:�h'�7�}P�\u000eB�3\u0006��ߛ��i��ʍ_�w�}]��\u0012G��]��ԖF���������9\u0000��=����;3��\u001a�?^0%]��\u0007ȍ�/�{I�\u001e�Y��e?��\fo�m��\u001a w�\u0001�_���;��ʑ���\u00137�2�g Oo��E�s�\u0018���Z�-ݴ�pd�n��ol�a�Q��?ĵ\u0000��{�ܡ�`l\u0011�y����˧��;k��\u000f(�\u0002���#�\u0007���ϙ|�}�\u001d��w�2\u0017�ɚ�Ժ��uf?���fek9d?\u000e��\rv̍,a���\u001d��b�)��{���\u001by~\u0003���[�%k�:ޖR�G�\u0011���H{[�:UTp�U\b��\u001d��O\u0016;��e�*��e9Hp�4o�B+�\u001e\u0013���\u001b=Z��ϞH?�2J�s\u001c\u0015g��P}[Y�jS��K\u0010�#�L����\u0019�e\u000e8l/��;>E�\u0000\u0011�y\f�>��\u0019ݙ�\u000e9\u0003 ��\u001b�����2�\b�5�F^����_�?-��q�M.!�i�J�w�<��K]{D�R����K���o%+\u001c�\b=k��ˋ&?�f�\u0013׸�Dy���$\u000e9\u001c�\u0000˕\u001eD\u001ec���󦙧Nl5�\u0000.]~��αk�KD�?\f�h�R[k�\u001f\u0014Z��0h.\u0010У��\u0015�&\t��-��Dt���ˆ&�};����\u001eW{3H�!X\u001d�w�A�6\u0014\u000ei�a����|֩��o&\u000eW1�\u0001f�\u0016��\\R�?\u0015\u0015E(\u0006ٹ�\u001b���bO����\u00008y\f_�?��B�R���?J<\u0019�\rg�Bb\u001a�\u0016���5ï���`�\u001f��~�\u001dn�\u0015\u0003�(��#���^���n�w�n\u0011�Չ�T�\u00062x�$�\u001a\u0011@=�G���.1ͻM��\u0002\u0004������׵���:\u0018���P\\�\u0002��n\rG�3\u001e\u0006�@����@��u��Q4.\u0002��α�<�\u0000In�2�m�9d�\u0010<��wlC���\rU�U�#���Y]�w���In�mm����u\u001b\u001fl����[2�*F�|W�8I��!��\u00033\u0005 ��~\u0012+]��0�#z!]��9=ϥ�\u0000.4V��\u0012p\u000f\u0015�[�\u0000շ5;s��z�41�1�)\u001b\r�\rO\b��O����\u001f��(��+\b�-\\q�\r�˿�\u000fђ�\u0004�A���<Ũ�֣\u0015���L��Z\u0012��b�`\u0006��ʠ\f�q3�H�\u0007Zg�ʘ�r�\u001eV�i'ۣ(\u0014\f6$�Q��#z��;�]Lo\u0001�\u0016q\u0012��l�C�*����9#��㴬|����?=�k�|��Mges�k�3��}k${}^��\u0000���*g r\u000b2�-\u0017���\u0019�Z\r^aF�1G�\u0001c�w\u001e��95\u0018 E\u0019\t���j�OH����=Э|����bE��6$��u[�\u0014\t�s��{�RM��\u0001��#�`�&3a\u0015�b����;y��J�����9Q\u001dA�7�Zy����:���~�m!����\u0018�RQ�R�\u000f�a^Cb7\u00070�\\T����4-��\bm��\f�Y�\u0007x�|�k�\\@iFO���f�u��o�5�v\u0019\u0000��͚��\u0011��_�� �Df�Vd�r^�\n�-��ͫ�\t��$�����MXtX�:B${߮\u001eN�d֟�_��k���\u001b�7����/.�GG����]Ec$��<���Z�\u001d8�)���ˏ��9�?�\u0018��ɌFu�\u0000%q��\u0000��/h�rv^�\u0016�K��\u0003<7�\bL�\u0004��y\"?�}]�_���������\u0017\u0017��\u0019�\\�e��*�)\u0015g��U�\u0013�\u000e��qD\u0011�r=�\u0000���\u001fZc�d\u0006Ĩ\u0012:��z\u0007�\u001d��3�\u0016Ō3Z��G���#�4m�;S9]\u00191��N�_�zMX\u0012��G�ÿ�\u001e�\u0000���W��\u0012�E����s�.\u0016��\u0000j\u001dH���ln'bvpa\t�UnM��W���m��<�y\u001cԑ�\r\u0010@8�ִ\u0004�K\u0010:S:\u000e͈�W*D�:�K��\u000b/����O,ܟM5;{�h9I���\u0011=��\u001b��\b�s��C��l�}X�Fu]:���Q�@�p�L|����c�q����J��ӭ\r�K���Ӣ�O���T��z�j��+_l��S\u0001��$�Ն�͇��b�9v�4N����+�\u00170\u001ac|�C�����\u0011:�\u001c�(�-��v�d���Bp>��)@�]�\u0014\u001bV��{~-Da��t\u001f���\u0015̃����r^�Q��{�q\r�\u0002\u0016�<��+\u000b�d�\u0004�����'��Y\u001e$�F`�Pm�p=���u��ef93�#���w������p��82\u0003��e�ׯ7�z6�\u0016��[y�W@�E����;��p�(\r�1D@�C\u001f'�6�v��V�\u001c�C���G�w7��Ϟ9�\u0001�\u0012j7��t�\r����潮��ɫꒈ쭃O�Y��)�+x��J��J�\u001c��\\����;\u0011�c)�D�w\u000f/�}���q[�7��\u001el������\u0017��K�e�Z$D���XYD�R���t$�\u000fhd:L#E��� �\u000e��\u0000�\u001d\u001e8��\u0007W����ו�`\u000e���>����\u0000��������|���Z�Ao/��*œ��肶z\u001e�a\u0017+�[X�j'�\u0002;�54\u001b�:.��N��\u001e�\u000b?���\u0001\u001a���\"u\u0007lq$\u0002~��s2'j\u0000����\u0000�=���/�_�#���o�#����u\u001b��w��Y�Z��P��-s^�5�\u0019�޹#ҩ(���{M�æ�\u001d.�/�\b\u0001�o�'�؞�uz/gsgͦ�ƿ\u0010�9H�\n�K\u001fILt$��}�m�\u000f/%�6V\u001a��׷s\u000bHt�wV�@\u0001.̋�qB��N�ɝ.iD�q#\u001cE�����\u0006�\t��%\u00132h\u0001��\u0003�<����r��=;O�-��[�܁{���?Xu\u0011�v�O�k����\u0017�\u0000�����\fo˙�r0c\u0019�~c��lG��<��\fG�r'��h_�:����^y�V�ה�x\u0006����k�V��R�0Ʈ�t\u000b��a�;&��\u001cY��ǧǗ4�t1�?3C��}���\u0017`��G\u0014�\u0013ł\u0003�yrD\u000f�\u0013�x���\u0000奮���&����-|���%�e\u0005��6t�o\u0000\\�{[��]�u\u0014?���)�_���������_�b#�\u0019.��%���\u0000Z�\u001a\u000e�(=�Q\f~\u0018�E��07y\u0012�_Ia�\u0004�J)B\u0001�}��ɇ�&$\\O�\u001e\u001b݈i���Y��im��Ƒ�\u0005%��<��\u001f�-�K6��r\u0006X��\u0012b?�?��E����-,b���ۧ%��\u000f�3�����;��\fN8��\u001aTS�j��\b`(k�˭\u000efG��\u0018ԁ�>\u0018��|���)X�#\u000f\n�r�*\u0019��;�s_�͛QQ\u0017�w�@�\u0012l�\u0016ߑ\u001a\u0014�$k\b�@A\u0012F���w\f(A�3�r��/��\u0000��4�\u0000��ӕV��N5هΛ\u0011���ŗW�p�D������T��\u001e��hڝ���~\u0015��p}��l�ůՍ�\r��8���\tn�1�U�����'��(��Ҝ`�݊�彛�H����Y����jkL���2w(��\u000f!i�_��?��T\u0018�K�\u0005��{�q~]؏�D{v��d�e{��\u0010*�9?/,��1��?�J`�x#�-\u0014���@�\u0000s\u0018�t\u0003��\u0007\u000f\u0001^\u0018��_ �\u000e���E\u0000�W���5�r��\u000e���4�\u001fOӏ�$�D�\u000f#Y��$�\u0000�\u0015��X|#�D\u0003��%����\u0019\u0014��\u001f�N\"q6\u0018�Gɏ��S��/Y- c^��u��k5\u0010\u0015\u0012�t�$l�\u0015%�����l�\u0004o��L']�;]&:<\u0000،F靿冑\u00158�‡�V�p��^��`5\"k���;+M�q\u0011i��\u0003MZ\u000e\u0010|;}��\u0000k������0\u0015�\\\tv\u000e�����\u0005Ӆ>\b<>���ژ?�.o�\u001a���A��\u0005���p�\u0016\u001al:/o�\u0007�&����\u001d?@\u001d'�t�\u001b\u0003�֕\u001b\u000e�\u0007��>��\"��(�\u0016�\u001b��iz%��\u000b\u0010^>#���9���OXw6���\\zx�\u000535�+�M��mߦ`\u0001�9N���zdH�Sv����}�-��'�V��:�\u001e�\u0015�q��n\u000e�\u001a`\u001d�����戃i\u0017���Oڐ�\u001d)�]�O���� \u000f^����\u001b|�{�e���@PA��=���H\u0014�'��\u0004\n\u0010~�\u0000�n�p�\u000b\f\u000e�\u0011\u0002�\u0004P\u0013O׈\u001bn�}P�\u0007�\u001f\u001aR���0����\u001a�?\u0017ʙ\u0013\u001e�N�{�\u0000��\u0000:\u001c\u001eC��xn:\r�?�+�W}QT�i��;�~��7\u001c�$_EX9Wڿ?~�0\u001e���\u0003\u001a\u0003]�?/�<�M�!V\u0014�~~=qLN�,����~�\u0000F?z�rI����~C\u0012��6)\u0014�MA>>5�\u0000l��ÞÒ\u0011�O���1Q��!\u001f�����\u0002/��\u001f��x�%c�AK��\u001f�iJc��@=���呵拳\u0015j|���r���l[ �\n7�)�t�U�:=y������\u0006\u001d\u0018Pu��O�5��\u001d�H��\u001b�\u000fn�#�8:Z����W�?\u000e�!��\u001d|�f���m���\n�Z\u001e�o��;m���䐰��>_��U\u0016&�ӭk��ڀ�&�U\u00065\u0014�޿O}���w\fH��\u0007!�=�{w�v�O�z��P\u0004�!\u001a��C��^��'\"k�g\u0011 .�o]�w\u001b�\u0000�jS YY>�AH\u0018��pjj)��J�d}'��\u0003.1Γ�5\u0003\u0015֕\u0004mW�\u0017\u0003�\u0018��J5J�Ѐ6ϡ}��ai���a���n��\u0000�,���/\u0000�����4:�\u001f�?��\u001bo8�YGc�\u001f/\\9�ѿ0��\u0013\u0019\u000e��H����`ĵ��R��Ս�\u001dGgk�`�.��\u0001ǡ�l\u0011�\u001c�N\u001f�\"<�\u000e�I�6X�r\u0010�B<;�\u001c����=(�\t���Đ8Ρ�˿�ȟ+j^R�RM+̺w8.t]n\u0015��'��n\f�\u0005ͳRI�\f�bx�E2ѕ�2�\u001d����GS�Bx$6�~�\u000f�|��O�ů���2Ǩ�҄��\u001f1�wJ6%��\u001f�<���\u0000���\\~^�l$�����������:C]��ZjR�%\u0016D���v9�����F\u0007�U��5�'ϸ�k\u0003&�U�Μ�=��{��F����U����X5�(�ѕլVU����E�\\ڨ-\u0019�\u0010V�rz�\u000e)\u0001�f�\u0015�\u0016��O\u001e:7�\u001d�����KȺMͰ�g�nM�5Pd��� ���-F6Wj>(�6=\u001b|x\r�\u00196�𞅁\u0017S��]\u001e�{��K�;����ѵ'�u����Q.Q�P�]�GQZ���\t�\u001f�}���\u0018�\u0018��H<��.��_�\u000fRt�E�5ɛ����&��\u0000�D\u0011�~\u0014Ӽ�\nzl����F;���M���\u0001$�<>c�}�G�ܚ�a2�\u0004k��7[{�B6�z$�͋ZM*Q���t�2�\\8fY\"u;)F\u0004\u001au9VX\u000e.(�\u0012�\u0002~��!��wV:l�\tR\u0003\u0019\u0001\u0014<�|1�:���2��q9̛Y��\u001d5�H�.#��'S�H�\n�hHb|\u000f\\�N\u0006\u001e��\u000e2v\u0015!��O=h��\u0011 ^\t\u000f�ɐ��U4\f�b��}�\u001a�%}�ʄ�\u0019\u0003�'������\u0015��p'\u001c���\u0012?\u00055�\u0019�֟�r%\u0018�WP�dxC�W��^\u001a�\u0000�ם�ca5��q\u0006�k�U\u0012-\"�b��Z\u0017�g�\u0019.\u001f܂\\�S�W7��\u000e��k���Io���\u001d~\u0005��/8T\u001bQ�=\u001c��\u00002\u001axp\u000e9r����=�j�\ns�HW�t��*)�/\u0000w�\u001d2\u001aI֣�����1��\u0014�\toy\u001b1��\u0004�\u000eMZ)\u000b�\u000f�ee���3�O\u0000�9��+\u0007�7�Nj��+�3q$$7R\u001f\u0000w��ٻ:\rI��?�<�o��b��b~E���y��-�7\u0012\u0002һ5�\u0014ݞ���]��\u0003z���\u0015�Ɏ�r\u001a}��\u0000C�??5����ף�v\u0011�z=\u0013��r!\u0004r�,\"�đ�5k�寸�{ڒG�y�\u0013��./�\u0010\u0003�\u000fM��b;[\u001e3U\u0011\u0018�3�d�����\u001f�7\u0012�Z�����E��ڃ�\u0019�\u001e��z\u001a�d\u001a��y���^�&\u0013�\\~���@�\u001d�B���c�\u0001�;m�н/�\u0017�Z_�#\u0017r���r�r�խ�\u000b�\u0014|\u0016��)��b{\u001f�{f�R\u0011��nÖ@Ѿ\u000f���^B�V��\u000f4��U�C5���^����h\f�E�N8Ȓ��1\u0007q�\u0013\u0014a3���|��E�d�1�����{�ѷ��?�:�e�Q4}M�mB�\u0014\u001e��'+�DkGNG��T�\u000f�h5\u0018\u000e,�2\u0006��\u0015�������˼���-(\u0011���2F�jb�\n\t�_�`h���a�\u0002\\�,dz�?��_�V�%��ɖ?BX�#��\u0007��\f+��\u001d)��\u001d;�\u0013�h�\u001f���M3K�\b������*\u000021���z�L�\"\"�V$�b�{�忖 �E���!KH�YE?wA�c؂z\u001a��Dx��r�\r��\u001f�O�?=|��w��� �'Z��D�\n$j���\u0000B�|3>\u00105�\u000f���8���w\u0016Mo�|s�$\r3R�|��\u0007��\u0000��V����J8���7�ZZW��`�r\u0005Næd�c\bd&�D}���\u0019'��\u0001�\u001e��;-RM^]_Q�ﵭj�@V}N�H�\u000fC��9읙��A�w�\u0014~�����Y1��?j&���\u0018\u0011ŕh\u0018�\u001f\t\u0003�w�a��3%ő�S׿\"m�_%\u0018�A(+^5`��!��N1�gQ��T�{��{K\u0013�C\u0018����3�.�I'�\u0019\u001a!u��r�IEx�Hne���\u001d��q$Ш�g7 '��S�c�D�d@.�\f+K\b\n\u0007�\u000f�\r�H�\u0000-�?��V��\u0005��O>\\Z]�\u0010���O���t����\r\u001dhGv�߰�\\\u0013�+�Q����dže�{L\u000e�y��NQ5���\u0005u\t\u0016��K˺�7�rp\b�$�LB\u0011^��\t\u0000\r�ί�4\u0018��B\u000f�G��1��d����\u0017���}���\u0000�\b�����?TpY\u0012n2\u0018&\u000bBK�*m�\f:�\b�=�:/�j\b��W�^�A���H⾻�����^k�kX�c\u0004�\u001e���@���8.^\u0016\u0007c�?\f�!\u0012,�n�\u0014e�{\u0003�yyu~<�vLo<Ϫ\\�V&^���\"�qQ�\u001b\u0001�.��\u0011�ʜh��ۗ��V�s�>y����ฎ�6I��\u0015�\u0005rE\n�zm^���AǚS���=�}tu��\u00020�4�cʬ��\u001f�\u0017�W�?�~T�/��[{í間�\u000f8����(��\b�\u0000X)��QZ���~3���40'�\u0011��\\�gg�K[\f���L\u0001�'��~��\u0000��<�%����b�~�=\u001e�ɏ�\b��Ur\t\u0001T��\u001c�Oa3�Nx�ˈ�_�xe.\f��C�~\u0013�:\u000b�~j�UFS��[�\\�\u0014�p\u0014�P�\u00006?N{>�R0�ڈ��x\f\u0018��\u000b�\u001b�>��\u0000�蹇J��\u0000�|��m����m~��o��y|��xa�$$r�����m��8�g�ǧ�g\u0002�OU\u0001�\u0011��\u0000o7���\u001dF�\rІ�G�\u0019���\u001b[�\t���������ۧ�t�(�\u0015�Z+\u0015^���Ӡ�3B��y\u000e��݇qUQ\u001b\u000fw{\u0010�]c�~f��Mm���m�!��\u001cj�,I;�H�5kҙv\u001c1�\u0003�6�\u0003`�>k�\u0018.��=c�o�\u000fϯ/�R��\u001f����W~w�-��2��OC����\u0000̚�)��\u000f�u��o�_'iӳ\t/n\b/\u0018�\nI!\u000b��\u001e\u0012sK_���D��\u0011\u001d��%�d��r\f�4ئ3�\u001c�}4>�,�GS�L�H�>�h�o�\u0017�^\b,-��lZ0���\u0019Ū�\u0003\n\u0004���\u0005Ac��M\u0016\u001cW)���/˼�\u00045YslG\r�\u0017���1���������-����)�k�\n\\��“iZ,��V�r)=��\\|1�r5z��J=B�\u001d#�)��?77G\u0001�\u0017�֐m)�s�3χ�����_[h�]Gj#,��e�1�\r�\"�D�X�Uh\u0007@\u0000�G(\u0013��}Ydn�{�\u0016#�6�\u0006�r�������y�\u0000�\u001f�ʢ1&��t�j��Rj���ֳ�y;Hs��]��<�N�!�C�\u000fe�Gb�\u0017hv�֣Y��Gx�\u0012�?p\u0000G�^s��g��s��\u0015zm\u001eS���c\u0019CO��)�S���yo�g�c�{�kR���\u000b��qg�^i��������f���$�N\n5>�\n\u001c���]D�v��}1�\u0018\u0018��V�#��q�u�\u0007d�'E_�&o��\u001f1�o��\u00000&�\u0000�_�+PA�E*\u000ej���Ӵ?c\u001b�W���\u0012I\u001eP�*jX��k���k���y1��\u0005�O$�\u0000���\u0002k}\u001eƟ�\r�ڀW\u0007\u0014���5~b\u0015�\r���.��lcb\u000f�A�8�H����\u001a�h/\u001f��]�ȍ|e\u001d=��\u0013*�\u001c4����Q\t���u��T��\u0000v�ݿ�|\u0002R'��\u001dD\u0006�������K���\u0000\u0019@�>9a���jq�v���y�\u0005/c\u001f��k_\u0001�J6w$n�Q�u�=����^��Jm��\u0003�䁡�\u0016����{o�ǧ�K������H\u000b\u0016HG�`6N��۰?��:s\u001d;w�WRj���r\t�?��&��O�1����`\u0000t+��]\u0014�/�;#O���\u001f�$6�-��\u0018�#W�JƔ��W����Lo���LJz!?4l\t?�I�\u0000\u0004?���\u001dy�?��!3��|�()��}��p\u001b�B�c\u001a���e�\u0000-1����?^K~��C���вm�����Z�8�=���{�H���fA�\u0000HS��mO�%]/u������J�*}���\u0003֒s�\r�2���\u0013`:�\u0014\u001f�\r\u001e���5e\r/捊!o����*\u0006�\u000e&�_�c�1MG�H�\f�_D�W�eQO~�L�F\u0002̇.�3\u000e���\u0000�\fN��go۬��\u00005|�\u0011�\u001a�G�5�u����6�j?IA�~��}���\u000f�\u0005\u001a�^�\u0016���\u001e��\u000f�+����7'���\\&Q\u0010��\u0014\u0007z?7�\u001a��y;�0�\u0014�ʲ��H*܆���7�a0z��NV9��\u001c�Ƈ�_�A���2#њ���|���\u0013�u�(��xo�v5�Ey?�����]�e����-Hژ\r+��\u00001�|��\u0015�\u0013\u0012�\n��\u0000?l������M�k�� \u000fN��wFS�QO\n��'��\"&;_\u000f�\b�CQ�Q�������\u001bӿQ�d�\bi\u0014��S�>X9\u0014Q,v�>5���܌\u0015{�<���=G����\u0019\u0011t)\u0007������w�O��\u0013WK檰�#o��G�\u0019\u0013�H\u0006ѐ�C����`e]��̼\t\u001fw����󵐭Œr�h\b�?Ϯ;\">J�I����߾\u0006[�K� $1=�O�\u0012\tٍ�8�\nR��v8�i&�\u0014#n?\u0011N�\u0000�:�����H�EkP�z\r΢�lڍ��ޒ�1���՘\"�f���\u0001�p\u001c�\u001f�a\u0019\b����>(�����ߙ�\u001bY����ߚ����_��\u0019\u0005��f%fp�p�\u0005�+�A2�l6�뛞��\u001dF�Ӵ�\u001eq;��;��\rn�\u000e���9b}3�ӏ�=��ا�\u001ep�ޫ�h��;�r/˶�j�]�l��\u00003t]5��\u0016�J�>gѐKq� B9ʜ�\u0006�\u0015��t\u001a�^�C\u000e����\u0000D���=^�\u0019ū��k�07�Gz\u001d�X���c����m�_�\rr��3�Pyn��kj�{ugo1�\u001d�����7p�m���YGD'�Jg,O����\u0004F��+�����\u0006Ly8���ߝ\u001e�#����睤s�Vֆ�#��|��r\tl�a`)'�,n\u0002�kw\t\u0014G\u0002��9Q11\u0002C�\u0017ȏw�o\u001f���={���2�7hz\u001f��ҞX�'�)qn�\u0002�J��H���u��D�|.:�<\"q���F������>��$\"Lj��?g���\u0000���BսM7Z�C��\u001c��x����Dѣ��TWR:\u0010\u000eW�R����\u000f���D�����\u0016]\u000e�u�}\u001e-N�D|�`ˤy�\u0018Ք\rV\u0018�յ�S������w���l�\\&8��?a�!�Gx>Lr�Fw\u001d�\u000f�w�����o�f��Z\u0010$_NE$�U�Բ�\n<|r1��谖�\u0011��}O�\u00008qq\u000e��\u00008��;\u0003V:\u001f燞�,t,~��跐��TFzw9gh\u0012e��:� �2J�-P�\u0017S\t\u0003^ ��\"v�{��<�s\u0005ͽ�3*�\"��r��r�z�qZ\u001f�\u0019��D���p\u0003 z����WQ\r�c��HЎD2Ƃ���\u0019���3\u000b���\u0001�Ƈ����&�C��+��#�4��BQ�\u0010ZZ�Q\u0017����Ρyu�jo�\\�.��k7z��%�����w:\u000e�� Sj\f�{m���r`\u001fLa\u0011� }��}��=�2K���e�����7��.�\u001a�\"��\u0017�\"�mea\u001c�!&�x�4�\u001f�f\u0018u\u0011��\u0019�t�?�'����<�y����}�\u001d�z��W(��q\u001a�\u001b\u0013�Lr ר؃�cv�#�� 9\u0002�i���g���E�/\u0012T\fhK�^�oN£�k��{�'o���\u0004����\u0000�H���ae-��u�4h����Ҍ�UÚ��-B;�\u0018u1\u0019��w�\u0003�;�\u0000Ac�\u0018��=G���W�G�v���y�G�P��'[�t�\u001d]8�4�A�c�c�������\u001f�?�G�\u001a-���\u0017\u000f\u0003���~\u0018ߪ�#}�L�O\n�Y��\u001d��Mq\u0004\u0013u����T�ҵY|���5��g3\tm��\u0003�\u001a%ͼ��'@\n���1�K<�\u001c�\u0007\f���W�/��*�[\u001b\u0019�t}E�-;^���\n�J���M\u0005y7l�ś�c�pZ�b��OO��\u0006�������\u0000����l�-�蜣�\u001d��PmZR��9�\u0012��e\u0011��0�eF�w�w���\u0003϶�^]�\u0017�u\u0007\u00069C��BJ���\"0F\u0015�֎M=��y<8�}D\r{�7b�\u001eXD��.�n,�h�5Ri֜x�^�\nЊ\u0003J�s�;\u001b��F��x1yN�5�9�o�\u0014�)��!4�N;\n\u0003�OL�4����[��\u0000%��׮O0����\u000b\n/(�ު[m�\u0000�gO؇�s�Z�\u000e�����H}�yF1\u0014&[x#�I�y�5}+�&0�:�ێ�ܐGc�r�R\u0004\u0018����w�]�c�\u001f.�?�}�\u0000�\u00008�W�U�/�nL�|�Yy��)͍��� ѧ�~���P^T$�k��d�G\fu¼1�\u0018���2\u0007��񽿒#U�i_\u001f�r\u000e�\u0011�0>\\�]���V���R��\u0005�2\u001a�7�y\u0000�\u001e��sдZ�����x����-��_��|�\u001f���4�1~�[N��\u0007x�\b�j�$#�:����Y�\u0004x��\u0001�����Ց����*�����w�M{��G�'�n�j~�ylX�S�\u0004g\t���\u0001�2_\b��������\"}kRR��}��v'�\u0017���\\��Ҩ\r�\\��FQ/\u0018�T���:T3K\u001b\u0002Z�x�p��W�A��I�\u00198up?\u000f�������G��>�\u0000�r�D\u001f��L���x%�4��b�V��!�z����H\u001bpH�1���%�(�_\t\u0017��n���x��\u0002\ru��H��d������kh��i�<\u0006i\u00126vh$�yL�:2�\u0018V�3�=��aے�d<\"S��o���+dž�1\u0007��7���t���M'�T\"��\u0004�9ՌEga�Dc]П���={��d���Gh����͈ɪ�z\u0012\u0007��\u001f��5����>]{�};�?�>U����i\u0015̳_][ĭ�,V~[��\u0007�0��\u001c�~�&y�}�?C��\u001f�#��0c���M}��gS�\u0002M�[ծ�t�\u0018\u0002�\u0002�D���\u0005��ۛ*� l7bOJ��81�}Y\u001c�\u001f�\u001aSɔ�5��\u000e��WD����K�_#\tt;{�q��mN�5�Z1��y[G�\u000b����n�B�\u001fP�s\u001315�܎�~n\\#��|�����\u001f\u0017�ߔ�W��\u000b(��|êN�Z��K��Z��5��^��Ժկe�q�\u0005�0�Ȉ6�,��H\\���?\u001d�,��@�:���'���S����z��ե޹os\u0005���5��g\n\\k��Qx#�\u00161��52ܲ�3Y�.��i\u0003G\u001e���q��������ݤJ\u0010�f��\tuIQ�L\u0011�\u0007�,�5��U��\"?���<����n^�y���f��'\u001d����'�6Ns#�\u0004j\u001d�O�|�\u0015����1ī\u001c0G\t���\u0018v��q�>\u000b��\u000bN�9M_\u0004\u0006�I�N䟽��s\u00173�\u0000\u0014\u0000\u001d\u0000�>\u0014���ĵ�\u0016Q�v集�`�\u000b��4mB����m�5�~�\u0014\u00154�HiDbrf��\u001fT���b:ȷK-�1�)�\u0000\b�O��\u0011��z7�4H4d�&�]����׵�N����*\u00073Z�v���N\u0014�\u0015\u0007�5����z�'���LJ\u001czF=��̞�������\u0013ş$��.���\u0003h���_󚟒��3���κ\u001c2/�?+f}oN�ؘ��|��W�:$�w�\u001a�}x�׌�\u00027'<�ڎ�\u001d�����\u0000\u001e����G;\u0003���N\u0003a��0��E��\u001d>�9O�dp��$�}���'��N�ϣ[JX�\u001e�X;\u0013R\u001a0A��\r�6��\u0012;�\u001e��\u0002���r�o�_�d�#�˺3.�OB\u000f|�'�\u001a��qu5þ��NuK����w����J��҇a�=\u0000$ӫ\u0000U��_�\u0000�]�n��i^�t�����~�'ݸV]F�\u0000z]�lzz���JL�\u0011#��W�\u0011\u001e�~\u001a�����iI\u0007���T\u001a���ڜ��\u0017Ň�E�J�d�\u000fs��\u0019(�&4e�ٗXjW@\n�u�����+�\u0006\u0007��h\u0001|�����B��L笝E\u0004o�^,�C\\1 �ڻ����\u0001c!��{���ڽ~�����z^A�N��:��\u001fryl�GȚ�4�\u0005z\u001f\fU\u001f%���M�Cۧ݁��oɊ_/\u0017�\u0007�?�������;��D�T��\n�|�w~k�x�jmZ}5��d\u001bG _����\u0019�4��u���6\u0019�\r^�R��b\u0005\u0007���2B�J�M>}|O��鑳U�v\u0005i�\r�����v����\u0014���c\nB�\u0010\r@5�~��x�\bSr\u000fZ\u000e������Ҩ0��\u0007���q���h��L�\u0018��<�;�nX]��,y���*^y7Q�Q�.-��<\u0000��R�{g�\u001e��x5?�?�K\u001f\b�\u00007o��hL����\u0017�\u0019,�S?(~ai���I�5�+�\u001a�%��6䠐MhP��T|@�S^��k�s�jdb?wf�,�z�k0\u000e��>/1�Ϻ����\u0005��S!��3#���\u001c�\u0005\n:�\t\u0003ƹF\u0011�F��$�(��\u0005�ϙ�ǫ�?X��\u0005��\\K\u0002�����I�X��V\u0003��y��6p8�F���㛄\b\u001c��=���\u001e�{�1~P����Z��I6��A\n^yO]�9\nI�[�s:�\u0012�*f�0O�T��j��xY\u0000Ʉ\u001d����<�i�!\\x��Sݰ��\u001d~�^9�K;}a��j�!�/�W�\u001f�\u001f%Kqq\u001d�\u0003Ev���k:Z1\u001c�\u000b覈t�L��\u000e]�N��%��Q�Ƭ���E��\u0010�\u000f����\u0018\u0005���|�\u001b\\�^�\u0007��h��˦�\f\u001e`��\u0003�\u001dCM\f�ڤ|\u0007�c�?�\\�8�b�w�~\u0007\"\u0012��R��ȃ�R�W\\�杨���|��+Fh�x��U�\u001a\b/-e�2�=\u0015�^Ƕ\nǨ���(\u001c�\u001c�g\u0012\u000f\u0018�y�~��\u00001u�3�'�]�֞_�)�]��$ytk�\t�\u0002���=(n4�XH\u0004�[�a�*����<=O�\u001c����\u0006�����\u000e8�7�������R�\r�VR2��Oc{\n���.�[�Y�D%���֩,71H\u0019X\u001a\u0010k��Gj�9��&$��\u0017ӿ��\f_�ߛ�$,����q�05*���wL�:�8��V���G'\t�.t6\u0000���l\u001a�˚���k ���u�\tV\u001c�4�\u001fz\u0018�~\u0012:\u0010s\"9@���rHۄ�/�?��?��\u001a\r;K�.[�}Ҫ�$�\u0018ZN�\u0016kVbh\u0002�J�����\u000f\u0010>���|\u001ac#\u0019Q�?��_���$\u001a��K\u001cqȌ��Pג:V�˰\u0004f\u00115��n0��S����m\u0007Ͳ����*�+�X$�@�Z)�u\u0014\u0014`j2\u0013�2\u001b\u001bI�������\u0007\u0007䏟���ˢ�A�\u000e|��i\u0012�[��Y^��\"���\u0002�y+��K\u0016A��ys\r�$���\u0000a���}�r�|G��YԼ��\r.�/���\u0016���������Zz�<\t\u0019���08I��\r\u0019!\u0019\u000fO�}y����\u0000��}\u001fFx|���$q\tu=Hz��Ht��\u0011Нڙn|�\bu;�豁��<��G�{��{R5\rA�\u0016SsrC-\n��\u001a�� u�n�A]���\u0000���;X�\u0000�\u0019��U-�FE\u001b�ND\u0006�}�\"�;��o0\u001d�u�l����[U�a_N���U\f����n�\u000f�:^ː�2�<�\u0002~���Pq�8�3�}���\u0017\u0012'�\u001c��\u0017���H\u000eyr��f�3��.W�ݓ��}��\u00008�{-טu\r&@xj���|�'\fC-Ɣ�\u000f���=V��t����ò��vV�\u000e߻�i򏉞)}�\u000f)�\u000e��Y�Ϳ\tÞ\u0007�1�\u001fl\u000b�?2�_O�nĬ����5�\u0018�\u001fd}����:-\u000e���oj�y��|\u0000�v��-3]�ӯ-添h�-'�ԫ\u0015ud~�iB�\u000fћ�Ԏ=f��\"�\u0004���љ��\b������o�����6����m���\u0017c�G�F?\u001f\u0013��\u000fM�y4�ŚQ����\u0014�\u0018�\t�;\u0010l�z��\u0007�Jp�o�b��SA�\u0015\"��QA\u0019�ӝ��\u0012k�w�b�[� �\u0001�^D\r�\u0002i]�*S���G�S��\u0019\u001d踚�c�����q�]\u0016�a�E̗\u0010‰v�\u000f%�s\u000f\t%P��\u0012=>\rV�;S3=��ņR��\u001bt}�#\u001c�\u0019�\u0019W��?.\u0007�\u0019�h�y��.\r\u0012�$�Y���y��(o.{o�\u0004�d��I���t��v�ߠ��)�M�d�m�K{�}bDF�������6\u0012���#p���ag\u0014\"����6�.L��o�q������V\u0010A�$\u0001�\u000f��fG\u0015TG�=�o�]_y��\u001fW��t����sIM��\u000b[$̼�E��R��� �Y�b��k��\u001d��.<�m�׸r\u001f\u0000�tp�*ňp@�\u0002;\r���G��ھJ����\u0017W�-sr\u00028�\u001a��\u0000�$���\u0014T\u001eC�s��d�D`6���0G\u001e g9^�����\u001bX�|�#Zh\u0016�i�����WLR7Px�V�\u0007�f�]��s\u001b.\u001d.�#.��j9�\u000e\u001e��\u0016}V�\\\u001aX��z�=|�:��˚u��\u0018�\u0002Z��\"Ow-\r�ю�Vm�p�EE���ίQ�Rx�}\u0003��?o��Î8}1��2y���մ�oJY&b\u000b����õJ���U��\" l�a����e\u0011�W*�L�$R���\u001bѣ�9\u0014���5\u0005\u001dX�3U��\u001e��\u001f�s��˟*|\u0017a�\u0011�8y���'�i��w\u000f��oї���\u0003�X㔠�\\�]^�:>�˂\u0002�qqDF~�>\u0016G��49<]$L��\u000e\u0013���\"���\u00002<�\u001f�m�!xC�U��>\u0013Q�v=�8��R�\r�e�&p�|��\u0000B�d��X&䚘��M~��l{?\u0000\u0003�\u001c\u001f\u000b�XL��\u0000�v�\u0000�GM�J\u000e�v���\u0019}\"��N\u001b\u001e]��-������T��2����dAk��}��:?��\u001d?c�> k�c]Ϗ�\u0006?���'��\u0001�A�\u00008秨�\u0000xb�A��A��W\u0007��t��o�|\n�ˢ�S�\n��ɤ��:��\u0018\u0004S���M��K\u0004c�\t&X{�\u0001��<�|�|�c��IJ\u001aTo�N�\u001b�U�c ��?w�qr\u0003\t\u0010y�:(iW<��)AZ\u001e��>�(���\u001aއc84�=��;�ǮL\u0012\u0013�-��\u0001ʻmA־�g\u0017C�m<�⴩#�v��=�L�\u001c;��$�i����\u0003�\u0004S��\u0018��\u001d\u0002�KJ�$\u0000OS�Џ\u0002\u000e]U�M\u0012��b��m_���\u0015t�\u0013V�1��ӧZ\u001d���| 1VE�#�����}+V�.\ba'�M2��C��\u0000:������Z\u0002:W��}8,]\u0013�#�Wv܁5�ߦ߉������Ow6:�M=���g��\u0018����j\u0005{����\u001b�ܚ�F�\u0010}��X�\u0013���G�\u0007q9^���|\b��c��\u0012E<\u000f_�J�-^�JV�\u0001H��������\u0011v\u0000\u000056���ϊ�R�_��H�6逩\"���\u0011I$\u0001�����m}i\u0004b�&����o��}�8�޴�؏~��ƒ\u0011/ ���S�\u0018<�ш߭X��Ɵ�s�����@µ����6��ĞC�^���z�\u001d��ԌSZW�u=?�\u0015U��܏���7���h85�\u001d�\u001b\u001d���W3��Ԡ#��ژ:/%&=;lh�zMٹ�E��%[�\u0007 -^��$�ƥKP\u001ax�|3�2\f}���X�῟G��'���{@�Cˑ\u0007�[�ٷ>i���X�[_�\u0014�6�ȳ'\u0005�\f�%\u0010�v�b�\u001a�9�e���\"h�ws�b�Br�&���|�\u0000\u0001�眴\u0015����goY�H�B�oY�A�e$oݘxdq�<���J$>\u001e󇔵]\u001e��V��!���כ/�����P\u0002\u0018\u001d�،�\u0007��pe!\u0003}?\u001fk\u0019����m�\u000fR��/\u0019e\u0003����J����#��Q�2|H��\u0000\u0013����+�O\u001aK�i:-�ķSX�\u000b�\u001c�W�\u001f�=�vx���T���\u0010G�\u001e�$'(�\u001c���p��]�o��<��X��\u001b�p��.\u0016:�ߩ_.y�Ԩ�\u0002���\u0000��\u0012+Sg�|0O\u001e<���#���^,����\u000f����W�5�\u0012�����\u0016�u��ճ�]�Sζp��\u001fVu�$POr���\u0017aFR~x%\txf\u0019�\u001c�O0G�����|�!���\u0011\u0012a���߱\u000f1��_�.�I?-�)�}WC����^\\�̰j��u��y4\u001bG�f:���\t��GzCE\u001fdS7M�\rx\u0018ϨC�7�C�·���FC�}����w�͞U��Чu7zG�4-F�\u001d��\u0013��qf��ІV�+_�/��d��$\u0007ӒQ��]VcZ�'\\R��\u0002G����y5��uy\u0014�M?$�@���\b�\u001a�\u0010��f\u0005q\u001e\u0012=���sޫ�z���KoG��#�\u001c2L���V\bMy\u0002�S�1� z� �Y����r�QkO�}>�\r\u001b_�U�p\rKŦ��r\u000f\u0003J(����\u001cyb:�n9\u0017t����Au�\u0016ER\u001aW\u001b���+W�Z֔ΐ@K\u0018˄�{�O��2%\u0016\u0001~\u0019%�0\u000f\"�F�*;���\u0014�>�F�[�\"O\u0017�\u0001��d?��ز�,�x��t�\"�\u0003M�^�4�\u001a��$��1\"\u0004�-���\u0002\u00016z~�|�f\u001bU�\u0011�\u0005�K�2��\u0005\"��PE7?,���\u001e�\u0019@����㦷�=���G\"�㺷#Ǐ\u0011�\u0005FQ�y�y���oH�\b#J�J\u000e,�F�>\u001a\u0015�)��12���R\u0011����\u001e����\u001f�\u0004�ʐ~\u0010iƥ�*Msq��$b:[\u0003�\"�����O���G���#�h�\u001fʓ��2_kW���7L�n��4�H-e����W楑�4��gb�vi��f\u0004j\"`H���\"G�\u001a�N�'lg��ɋc��w�^å\rȾ��?��\"y��V\u001cWM�~���j�C\nƖ\u0016Q��:\u0013��\n�\u001e\u001eم���d��V\\�?m\u0006�\bc�\u001d\u0013\u0000blS�|ѣ+J���\u0010�X��S�\b�]��\u001cy7�o��\u001eo[���.tY��J�赡��w*\u0003�D\u00073c\u0011�\u0019��\u001d\u001a�d\u0002d���\u001d�\u0000�o����\u001f�h|ɦE�jW\u000e����\u000b$���k\u001f�m�$�����k�D�by��dUs\u0015���oo״�\u000b�\u0019~\u0018�@$�5Yv�����aۭ2�/Kd��E0k�>�\u001bV�}>.h�\u0017�����\u0014?\u000e�c�\u001e�q2��f\u0004G���\u001el�!�^�]�mm���d�pe��8��\t���\b������I�VCB���65i�߮�����S��D�T�\u0005��%-�\u0012%�;�$���L����\u0001\u001c|'i\u0012>��.�f����RJ\u000b��� \u0004\u00143�\u001d\u0007�S����\u0000O�����?K�]��<��T�\u0015t�\u001aP9V;��BOS��su�pJ���kr���-��f2x�*\u00185XDG\u0019Ux�[�l��/\u000e�4G>\u0003�8s�Ǩ�<�\u001f\u0007�y^(����)9��1W �� �^��Ӯs�Ⱦ.��`t}��\u0001s=��\u0017�\u0003:�.�\\Х<�\u0004]w���\u001c�m�ku\u0015Γ��z51�t�_\u0018d����n\u0002X�J���;��K�)�sDޤ7{��[G!aĒ\n\u0002\rz��\u001c�b��=��O(\"2�9S�\u001b��mpeI\nT|g�ù\u001fh\u001e�v��Ϋ��\u0003&#�tc[w�\u0000c��\u0004�1�\"���c�{�m{��i3H���\u0005\u000fR\u0011ׁ��@��������\u0010/����ىi�\u001eo\t�ѵT�.\t<9+һ�bMX��Wa��$e���\u0019c\u0010cO\r�\u0011Gu��`�CҔ����n�?�\u0019x�u�e�]ϥ�'�Kxg�f��A\u0006��`C��$�5(G\u0011�':\u000e��ˢ�ο\u001f��X8a�<_I\u001b�p��ח�\u000f���<���\u001f$y�U#[�\u0007��5�e�*���*\b���w*VK����V]���a�u����1��2p�|�׻���^��ip��f�f�!*��I=�~k���\u00000���\u00008����_���;�y\u0016O�+�'�:e��%޹���Ȧ�<����\"���6�x&p��$,ƀW:�g�OS��gf��œ����\u000f��\u0003��;SNF��%\u0018���'a)\u00028��\u0011r'�\u0002�ǯ����\u001f��ͣi����\u0003��\u0017⾽�T�ƹ�\\�J�w�\u001b`萵����ҵIn��XD��@�\u0004fF����}�)��B�--��p�<���Vk��3�=�����Xy\u0013��mP\u000e#Z��\u001a��$�\rZ0�m�Y�ゞ>9��j�˺�\u001f�6�xbO\u0016Rx���[|�\u0000l���?��\u0000�\u001e|63�v��\u0016Ҩ��:��-�P��F�@�Q�\u0000U\u001f\t�sS��r�\u001e�w�ݮ(b\u0011\u0004���;]��������o�h���V�\r��q;K\u0011�pR\u0018\u0005h��\u0016xUҥkQ��\rv�~\u001e\bKo����m\u0016����b��\u0006)�%A{u�Y�zX�k$�\u000e��N�_��58�\u001e����hz�{\u0013�\u00079K�\u000ba/j#�4t}����\u001d���y�(\u0001c� \u000e��^I�����U����۝n�y\u0013�wM&�����[���\b��.#s��!-�SB���8\u0007�;\u0017\u001c�\u0001�͐zϜG(\u000e��:M.RN~��\u0019e;�P>��c�~`z|��,z�����\u001d�\n�mm��ӆ\u0002�\u0005�$Z'��E(:o�v��.\u0018�g������L��\u0000�A�{��5��\u0017��1B\u0005-��o�}B\fd��\u00103\u0007<|-9���@�dۘ�/\\���Z�^F&\u0003r[�\u0013���\f�O\u001d�'�?���U:�ɑښ>����'z�����kr�����D�W \u001e\u001f����\u0017�v�j�\u0001��\u000b\rJ0>8^\u0016qit�1�b��4�K�\u000eϙ0�\u0018\u000b�\u0011�?-Ɍ��h�l�}����K-�w\u0017���f��A�ƭ�\b�}�\nf�\u0005mn�\\���[@�G�\u0018��F�\u0000/\f�\u0000+���+�\u001cC\u0010��c�����,\u0014=�I(�R.�8���ӯ�ч�@��8�4<\u0013��\u0018v<�����ㆿݧ�\u0006��{\f��+�D\u001e�\u0014'Oj�\u001f�n�<15��d����s�\u00009\u000e\u0000ԭ��#�F�x��޹��=�GK�\u000e\u0006Rx��x��-8��P\u001e���\u0015�`�\u001d>䐦�\u0015\u0003�v4�>Xc�ȡ���l7�;S��\u0010:\u000bM�'��[����A��;tVEb�ڣ�O�qL \u000e�e��]��\u0007-�:t�5�\u0019>|��^��u��oO\u000f���0�:�ȝ�\nïC���n|r�#ɌMH\u0013�P��{�\u001d�;{��j��w\\�٫�R\u0001��Ăc�6�B��NG�nāZ�޸��U��ҕ�\u0007��\u001b\u0013�! ��F�Rm��ꥸ��H�|0J�O�1���O�lo����\u00008�(:6�?�O��\u001bw�3I��\u001e�Nn#��~)\u0001�3_�\u001e=�g�M���s�T�z#S�\u0015���\u00004:��ߩ�\u0000?l�\u001e���}/>��\u00127��{��\u00052�!ד�V7\u000b�\nu��t�Ӂ$m��.�N2Ҥn\u0007��ڹY ���zf�5P\u0002{\f1�a�yuO��O\u001a\u001a���\u001d�:I*\r\r\u000fC��6Ɏ{)Jf��׵MF\\\u0005\r����i4�P���)���{�eW}\u0015.�j��(k���q\\���E+��A��N�ّ�Ǣ�\u0013(\u001b�\r��Ǧ�\u000f^��.ԡ�\u0000҃��\f7|�\u0004���vMw�z��\u00003�\u0005\u0005*�Z��ۦ,\t�G4 ���~�?�O\u000f�y�+�ƒ���\u0006N\u0017� 1��h��N>]\u00114R\\!?\u0016�m���\u0015o�PM(+�{\u0013��^�i�\u001e�x�Ƿ����i�8�}�����R[�\u0013�U�?/\r���9*U2Pm�~�\"yZ����8V\u0003��\u001f�W1�+��b\u0005m�<�P\bާ�w?<���m�<������\u001ba��j�u=sZ\u001aQQ��ޔ�j\u001f��\u0018R�ʦ����#�����y\r���O�ژ��T��;�S�j}�0�4���{�5��{~8�ߪ�q�\u000f^����S�A��Qg�<7\u0003�%VGr\u0001�z\u001aCRk���Gʹ\u0010\n�_%\u0006?\u0015:n~G۽\u0006$P��Eu��\u000b �>\u001b��7\u001e���<��t�m�X�.[N@k��.�\nl]�\u000b\u0003҈�����ri}��g\u001e\u001c�\u0006r�~�_e>a�\u001e�:��<&�\u001d��s�P�e���\b��rޟ&�m�1\nj@ P~��􆰜r\u001c�y���g�n���\u0000����K�X��l\u0001�_�2�@��VK�Q�\u001e��:.�֜q:<�\u0018�\u001e�Qں^9~f;�(�����.��̟�:��5ap�L�\bQ�KD�9 ��\u000b\u0006#��A���\u0019c�\u0000�>�\u0006\u0007.\u0019\u0013[���r������MZ�\u0012�h�S^\u0012����} \u000b��Վ�k�\u0002\\'�{�\u001c���'~��c\u001a��\u0004�Ͳ�t�\u0004��x�f�\u001fM]OFZ\u001d��+�%�w�\u0005\u0013�B�����[��Qi�o����\t��H��!�i\u0010�J/�\u001f\u0011߸�3@�v8�{^)ʸk�>�\u0000�G�ג��P���|�gs\u001a�(�܈�F�:��ڠ���9l@�\u0011[��|���\u0016Uo�'�\u0016r�D\u000b��EOO��!�hhԢ��xg\u0013_“\"E���7Ah��~�i\r�;��u\u0004r\u0000\u000e�\u000b8 7����1�$tn�\u0004P�>8�����\u0017�]կ����\rGG��Xi��|QMm\u001c���sٖ7UaPA\u0007\u0006m(�\u0001��r��e�'�~(����$q� ��\u000eDu�����}�{�?/~{�{���\u0000TMC�\u001eC��'�Mc\r��{�j��\\j\u0016�Rokuq\u0004�@J�3#E\f�M��n\u001b\u0013�#\\��D�:t��WlKO�zl���\u001e �n\"xH\u0017��uן{�\u0003\\+\u0004�E\u0017\t.U��ƅ�����\u0015�v��H\u0000l�pĮ����|��\\}X�IK\u000f��ʠ�*H�\u0002v�\u001d�a�\u0004�=�NK�������\u001d����P�\u0015����\u0002yrw��&��H\"���c7G\u001b�|�_k��\u0013��\u0006�bdբw��e\u0004��c�\u0017pX��\f�\"Dq��\u0000Ÿ�\tN�x�Zi\u0011�w��F��[\u001e+Z��/=�kQ��\u0019��\u0013�˾ܜ[@\u0013�S�O�o2�k�\u0013̫oq�cԮ�cUaE�Ѿ��\u001f�DYV(\u0011�JM�\u0003Ds%��jم�vAQ\u0013�We\u0014\u001f\u001b\u000e����|\u0015�ݎ\u0004\u0002z�\u001bO�_�€\u001f���ҍSO��P\u0012pc�G�2\";������\"��Q\"J\u0002�\u001a�`)��~y^x�\u0000�@\u000e�\u0011��8�*|/���zvW\b\u0018�k#���\u000e �\u0011�j��\u0016�\r\u0001*�q�\u0011�@�\u001fJ�\u0000Ϯt;K��4<�t�/�-KK\u0017\u0012�*��zdڜHz�\u0012�\u0014S�\u000el;g9ä�\"jF�}�����s�#�C�\u0002W*�h��b�/u�5MsS5��S�\u0002��q$�4�ϺrsO\u001c��a����|9\u0019��{%�y\u0005e��\u0016\b\u0011X��\u001d@���\u001f���O�<�\u0000�\tYx�+\u0010��\u001e���lA)��l�訤���FB\u0001�>*�A��{\u0014�����ߧ���k˒,P��d4*z\u001a���E\u0019��\u0011�\u0017�8���έ���\u000e��ysT��kG���&��\u0000b�X�f\u000bq\u0003����!�Bp�'p\u0019c��Q\u001fU��/Q�������dh�\t=Q�M\u0010I���)��7NҶ��͊I���\u0000\u0011nRn6\b�\u0002��\u0018O�\u000e�ÄJ�~ykvl.���\u001a_]�����sȞ�@��>��h\t�?�1� Gȗ̻b�i��s;H\u0012\"d�⤽x�@˽Z�eA\u0019�\u0010#q���H5�[C\n@*g���\u001a����E;�\u0000\r��򙎛-�\f+�A�G�_+���r���\u0010�Jc��_��H\n�f�Z���4�\u0006&����������O\u001e�_#O����%\n�\u0002��ʤ��Q��:\r�Q�]\u0006s�b@�����\u001c�\u001d��L��̩���;YY�;�ֆ�\u0017��G\u0000\r)@h}�{I���\u001dD*��\u0000\u0006�˙�C��_\u0016c��\u0003�s\u0014�\u001b��˯*0$�m��J�\u000e�Qf�9��\u0017\u0004�9\u001e�\u0012PR���RE~��i�\u0004�q�\u001b���\u0000&�Qx�W��s�Aj����'���V�\u0019�����\\�o���3qGW,c�������\u00009��|����~\u000b��?B�_����8��6�qy;Jx#�pc�9\u001d�\u001f\u0012s��SI\u001dW���8I9r��&g�v=���판�(�\u001dyV(mG���\u0000�\u00009S���\u000f��\u0000:�7����c�?��#�z������O:j��4�DW-\u0012K�i�϶��x�Uؽ��G�&�1�r\u001d�\u0000~>.>]NQ�&R�f����\u000e����yGG���\u0018��ͽ�k\u001a�\u0000�ҬM(F�l�|\u0013ɘ��n\u0011���\u0011�~9?@���\rw�\u001e^�u�,~[jz֫���ya�ɧ�y�[܎1O\r�FU�\u0003^���?>�K�S-8�\u0018ㄨ�\u0006�Kv�O��\b�%\t�r�1ؑ�]�힎���>q��k/#y����\u0010�-��ZN�\u0014|�\u0016h�֞���dq뽖���'7\u001c�\u001b�\u000f�9h}�͌\u001c8'\u001cu@�\u0015�\tM-?�\u0012u&��ο��-�⏝�<�p������{{�bs�M5J�V0�֛��>��FX�\u000fGS<�d�\u0007x��_\u0017\u001b�\u00170�v��\u001a\u001b�\u001e�{���7�k}u�u�~\\�Qh\u0010yw��z_��5\u0017�.�O\u0002}cZ�Pz�`֦\u0007Tզvގ�1�(3��1��mI�v�ie�\u001eW�?Տ�\u0011�w�\f�m\u0016!���G\u001e)}U��\u0000ZG�3�5�\u0003��ʽ;X�\r嶭�\u0014�a�v�\u001d:)\u0004�\u0016��@����є��r���\u0016\b�\u0018\r̍�^���4�mFѳ�\u0015������tz�[�zE���\u00040�\n�\u0001�\n�Q(\u0000���T��\u001f^w��!�jU��w=\u000b�v�4k�eif���\f�.\u0011��\u001b���\u000b�����w��\f�\u000e9��S��\u0000=�[e��6>K����\u0007���c����R����u�\u001c�(��cCO���c�@Ak�����V���6߮\u00026�5����r\u001d��`���_��|�\u0000\u001c�v��\u0007Kp2�\u0000x{�\u0003ip\u0013�N�\u001b��q�i㚺�A��-���w�Sj�\u001e��ɁG�ovocx�\u001f\u0017�\u001f\u000f\u001a����7іZ])=��^�?�1\u0004sVQg0�ڽv���$9$rdP\\Ң��(w�k�0�O�5���c߭\r\u0005i�1\u00017ދ[�A����r����eqp\b\"��]��\u000e�:�2��(H�����|?s\u0015\u0016P\u0012��\u0001��^�:�\u0014\f�zd��j\u000f\u000fjx��q�T���\u00065�Wju�u\u001b`��\u001dY\u000b�\u0004�x���\"}�\u0000�ֽ���_�X�&���QuR\rE\t�\u001d����-�T��W�\u001d\u0015��{��~[��3��5\u0013��eos���*\u001ekޣf\u001e\u001diS���{���\u001b�~��\u0000�8�WF���\b��t�L��گ��鷏��x��q�~������\u001b�}oq�}�\u001f�P.@��d�ψ|VIqN����,\u0006��'�ԖM5\t'nԨ������>�ijH\u001bS��\u0000L$w|�J\f�A'�r\u0003m�.������:S��x���z�=B����xS�Ȕ\u000b\u0003�\t-ѥ\u0003m����\f��)ߢ\t�+Z��L\u001fr\u000e�\t$�\u001dOM��y1>��\u0014�o��8\u0018ƺ���ω\u001f��˜��;\\�z��4��N4��ߺ�\u001a�PhO�~\u001d����ۙ�?�zꀑF\u001d;\u001e�Ҹ�Q#�D-�Ȥ�~�֔?�\u001c\u001d\u001b\u0007z\u001aY�\u000f���\u0000mSߦ\u000e�Jg�^[7�v��8\n�d��\u0006�ڟ���\t�Kg��l\u000f����$��_�6 uE��\u0013�P��9r\t�ˣ������MF�\u001d���Q�5�J����\u0003s޾8��W��Ezt��ါ��4��ޛ����\u000f��i\u0001c�\u0002��(G��G݀r�[�~�F�צ�w�ͪ�aއrw��\u001e\u0019 i\u0007qJ%����\u001d6�㇊����Qg�^�PM:��\u0014�M�|�K�\u0018PP�\u0014=:���Q\u0011̠�5;-\u0016�Q׵\"\u0006��۽��\u0004�*�\u0000����Y��ѝ\u001f���>��Z@/\b���װ��S�}�\u000e��d����ه�g��^G�'�L�d������\"��ԦT�w�QT\u0001�\u0019�K\u001e��,�\u0010\u0007\b�\n�\u0000J���Q�_�ë��\u0019�..�\u0000�����_Y<�F!$Z�O��(���3O���K�≾\u001e\\�=���'�<���d�}��^i�YTI\u0017��\f6$�P+�3#�X2GSB�\u001f0�C$e�Gk��?C��0�O�!�K\u000fRh��H�%x݀,�j��ǡ�:�\u0001��\u001ed\u0002�$��$H���0��\u000b�8�J����C�+Y\u001c'�#�(baV�)=A�S)�T$(�8����G��\b�^d�\u001eY�3?�\u0012#)J,�\u0006;|�~��\u0012�}6X�4�4��U���;\u0010�F�qГ�W�\u0007����0\u0002�س���%x�Vq����3B�V-*r߅H\u0014��y\n\u0004ʍ�JvxA/��05'���\u0016�\u0014ây_L��yR[�-ۊ\n\u0001J��_g�'�y�N<���|��;F�R��Q��ڤ��(A�S��v=��n\b��K��˘��\u000b�VrV='L��V\u0015m�-���&�\u0003���sډ\u001f\u0010��\\�Q\u001c\u001b�\u0014�����0]�\u0004)���S�����.d�K����2x+\u0010�p\f�dd$j����V��NJ��S�c�I\u0004ֻn{�$�${ܡ\u001a�g�݃u\u0012��K\u0005�U,��\u0014����آL��!��|�*��\u000b&��r�#*�+0&5\u00145��kZ�r��[\u0001\u001d�D��G�\u000f���?ΝLEirܪ\u001dZ\"\u0001��Gj���gM�p�8���Nf����\u0011�?�\u0019�\u0000�%<�v�#�?5|��\u0001hW՗O�%�<�,Ni�$\u000b$\u0011�\r\u0001l�v�yK�~�y'�\u0000G�����`\u000e\\����<��H�\u0000���*�j��� I,f�/A�\u001f�\b�FaC$j�;Q\u001e\b�-�[�^�3�%)K9\u0014�oY\u001dv?ʔ\u001fvy��\u0012r����\u001d�k�\u0007��P\u0003��:�\u001c'�/�o��\u000b��»\u0011�A���W��!�#V��w�/���b9ʂ\u0012$�𤍶�r@�\u0014�sL�r\u0000h�e\b�\u0001�}\u0005�\u00008�斗NM.y\b�F���\u0004�\r�����I��J�\u0019�`��{4BU�\u000b����ӡ��Ɵ[���l���]ז[V�Ӧ�<����\u0014 �w*����3�ŧ�5\u0004�TE��\u000e-���=3E�%G2\b�>*(C\u00026\fAa��홓�B�L1D�-��:m����\u0016\u000b�[��I\u000f�ddW\u0015�6Y+��q�Y��\u000e\u000e�\\�X\u0001��������:��-6\u000b6!\n�h�\u00157�#؊9�\u0011��\u0017u�\u0002\b��D��~f���\u001c�HZ���\u000f�\u0016��D|�z)�w�c�߫Y�^�~;�\u0000�Jy�|������\u0019,4Rt\u001d8-J��j�H\u0016���\u0004���z�t�Ɏ\u0003�L�����&y��C�M �3/�-\u001d+]��]�;e:�+��$�1=m�l�=�(�K��e�N2U�POS�ݟA�\u001fR�w\u0005��\u0000�|��퐏/��<\u0005%Z�*%RU��\u0005:��S�\u001d:RI,_Z����ۚq��g/@���ˈ=;|��Q��K����\u0000�G����u\u0006��\n����k�\u000b�4�\u001bD�y��~Xq��\f\u0011��%�֑�b\u0019\u001a��\u0000O�\\�\f�T\u001c�v&N\u000e������:�؇\u001fd��e�ҥ\u0012����[��+���z��$l\u001a��w\u0003qC����n\u0018��.\u0000>ǖ�e��nr��\u0000d_\u0004��B��\nP�\u0014Zv5'bI�S\u001c�œ�v99�\u0010��\u0018~��I��q2I���L��:�a�-Њt\u0019��Z��⫠�b�pkk�I��L���5m\n�Q%���P��X�#���6�'\u00100�c���Q\u0000�\u0000\u0017'κ�1��*\u0010�ݸ�jv�j�\u001f�6��\u000b\u001b��d�<���\u0013r��bҏ��`�\u0006�y�\u000f���@ϽiɔR�j��5\u0017.��q!��5���~��/��\u000f�U��\u0017��/�f�+*\b�\u0000*�)|�e\u001b�^�MS�v��D�#��\u0017Q���g!솿\u0016��1�1��ɗo>3@|i���fK]�&R\u0001ៃf�\u0003�=�O{���q�\u001dF����ƫ!��|�4�b��h�<����q9vނ\u0004u�\n�\u0010g�i\"Gg�ɟl��'�-�����\u0012�p�7\u0001?�{��+䶵kdj�`Ic��\u0014�\u0016�\u0003�]ni\f��c[�<\u001ahp���})���O�]\u001f�z_��o?���N�j4�&��8\r奢\u0012���z�}h�\u0011$%I m�9l�����sK\u0004|Y\u001b>g���q\tj\u0006\u0011\u0011�'�\u0011@Y�;�tz�\u0000�7?;5+���\u001f�?��\u0013ij���kW�!��W\u0012�$��&@7\u001b{�\u0012��\t\u0018��\u0010<�\u001b|i�4�\u000f\u0014�;#������y�U֯SM�Z�S���%7r�����0�\u001a�#\u0011�;�ى���*u�\u000fO��㜿�\u001c����c�?�\u001f˻kI!}B��Z�r$�Ii4\u0010Nk�� ���v5�n���\u001dT��b�E\u001fs���>;���;\u000e��~��'����XF���l�IGP]UB��qe�[p?��7U\u0019d�@X��ҘC\u001f\u001c�\u001a�ǟs���s�j�H�y\u0005�,0<�\u0000�}Dݛb�\t\rO]�k5>&\u0011D\u0018�ݖ���I�\u0004Pߟ/��m;�p�\u0001i\f.�\"r�1�\u0000��6�G�|�e�Y�n�9A�s\u0005�:n�}x�\u0018��Y9P*��v\u0004P��\u0018o�̱�.��\u0010&@W&[\u0004W\u000b\u0011V2\u001a�\f�,k�R^�]�\u0002S����# |��!\u0017A��׬<��O�CR��=*�\u001b�\u0006�I��䎳ܑ�'e퓞�U�Ih��������J�y\u0006\u0011å�h�2�L�\u0011�$�>e�^b�����\\�\u000ew,��?t\u0004U��'<�Y!>��a�Ĉ�\u0000�\u0015oq����\u001c\\�'���ֲ\u001a�?�-\u000b-�ZS�_\u001e�\u001f\u001f\u001c��F\u001eK\n�\nx�\u0000m}�y�����W�[a\u0007�E\u001c�a\f����0��wۢ���\u0000�:M�\u0000a�T�7�9\u0019r�d6�����\u0000�����$��*���i�KhǾ�\f�d$���\u001b�i��۵?�f�\u001e�IaxK\u0001QO�:�|\u0000ɂj���ߊ\r�F�4\u001e�;�P��e��*\u0007.�(v�޵&�o��$\t�����Pn=����\u0019;�{\"i��wQ^[\u0010(+��jҵ� w�Pm3��q�_��\b\u0017����O�J����u�/:�PMiO���}�}\u0015\r�Wr��x��_`1@*��Zr\u0007n��\u000e��\r��e\u000b5��۪�\u0001Q�m\rr��W�'ބt��F�\u0014�Y|���)�&5]��Wq^��,��G��4�X\u0016v%���\u00155\u001dH4\u001e {}\u0019-8\b&�Qj\u0002�������g��{�����\u001f��iAM���'\f�B^Q*7#��h�\u0000�g�3i\u001az%]�F\u0002 ,�\r\u0016�|�-�y\u000fI� ��\u001d��Z��q\b��PQ~9\u0001N�h~,��ŗ%p�כq�e־I�u\rwt\"&�\u0002\u0000?\u0013�32\u001a\f�yʏ�bg�Nb�v��\f�4� �\u0001��M��1��c��,\f�\u0012�\u001eN�$�]��t2���j��a��\fd!.b�#��m$sc�ZC,b�c�\u0013q�\u0000\u001b��̈�`(���k91�h�Ċ�S\u000e\u0002�ңjm�\fȖ1�v���4G7��ry��M�c������\u000e\u0005£o\u0015�7)K�p$`\u0014x�Y����=����4�r\u0003XG;����?sĴ}@\u0010(z\u0000\u000f��ʇ4����m��ꁿm�&6E�z\\և���y1�Gإq/!Z�޿?o\u001a�$���\tkIRw\u001b����N\u001b'rz-���\u000e��6����~j��p�1\u0003�=:x���^ԅ\u0006�R����\u0000����M\u0007ʕ�{�$m�(��\u0015c�\u001d6;\u001a���\u0007.H�˪\u0012Kͩ_\u001ao�\\�i\u0006ה�z������$]t�A�+�w����GqЮI=C����>\u0010@\u0012���n�p�0A \u001f\u0011����m��\u000f��#��Y�XSaJ���A��5�ꙮ���\u000bҠ\u0002\t�Q�0{�#*�#����\u000bRC�\u0000�ߦDy$d\u001c�Vں��C�\b��Մ��ݫ&�ˡ�4\u0015���$��\u001bI��\u001b��hi��{u�Fb��hY-�'�$�<\u0006\u0003-�\u000f���r�N�{S�\u001d�Z\r��ޠ=���?\nw8��KCR@?��]�\u0015o���\u0007Q��\u0007�\u0012w]��o~�I���\u0007ު~�+���\u001d{t�\u001ej�e�j�❾��B�H(hN�����y��(s!�R�H�_��62;y�\u0019*\u000e��)�k��\u0003ޞ^���\u0000�N�\r�~YYX,�m�fyu\u000b�]�↱[#�\u001c\u0001��s�/�\u000f�dq䆪@\u001c�����\u001f�|��\bZ�dÓ\u0001$B\u0014\u00071���C�q�T��ǭ\n�B%K]cU�M\tH���NGa�\u0002G�;�j2\tv��6\u0012�\u001f��;\u0004Wd\b�N_{ծ�\u001fR�\u0018�eX�ĮxQ�v�R6�Z\u0019\u0018��m��\u0011��wvR���\u0014?\u001dX��R�wbK����\f�:��|/\u0000�j���+�꨽���c�<5d�=��e8HKj\u001b��>Y�����a�\u000f�#�M\u000b�Q�OM�8��῾��VY\u001a��|��v�G\u0011�e��\u001f_#��:�~��(��7�c���|Y�M'[�.���\u0012��t�6s�\\~#P�㒶���6>$%� q}�p�$8��A\u001f�1��[T��J\u0018��?@�>\u0001UUX\n�\u0000��J\"1�6\u0001���\u001d�\u0000[˼��?PMw\u0004-iq\n��\u0004|d���p�pv�M���=�M�O؈�~��|{��/�g��8��\u0000��bv�#��$�u����g����G;Y�\u0007\u001a홸��t.�>�#����2. \u001c|��\u001d�ˣ�/-�^X���Ǘ��e\u0004ڝ�f4�P��XV4�9>Ԩk���������*�{�\\2\u001e\u0011\fNj\u0015��\r�/�/�q�^Р��ʓͫiB\"}\u0018�,��\u0001<^ݪ�\u0001\u0007�փ!�\u0013\u001b�\u0017���q�\u0004A�\u0015������ݶ���V�`l&\"\"�\u0006�\u001e��\u0001R\u000eT\u0000��\u0002\u000f���3\u0019\u0013`����m+S���\u0000�����\f�&�'�4�W�T*�꾭�+\u0001@\u0007)�Y��X�_\r�\u00122��J&��r�\fY4\u0019������X����\u0016���٦�P\u0019[ӌH\u0000P�T�6��J���LLeE�i���z�\u0000嬄�jE���\u0014��:�R$OR�>\u0016�Q�\u0019#{y�2�\u0000���\u0017��~sw\u000bXe��U�?w\u0005�j��C�:8��\u00008��,|^O%����/\"fGn\f���S�x�֪No2u#g\u0000�C�>��51�~T~a���/o�˛t��^�>�\u001d\u000eʼn�)�s�\"e�\u000e�N�\u0006�6����\u0012*�\u0014��zmW%v'�w��Ę���\u0013�\u0001���$\b�z\u0017*\u00182�\u0000v\u000b��W��:$�ʹK�A�ȼ�h�瘬�c\u0015�ޫIS�c��b�x���6\u0018@nj� \u001c\rI2\u0003\u001c>�^����\u0006)b�\fv1\u0004T\u0003�� �E6%�3_�&z���ے<\u0018�@�\u000f�����$\u0016���\b$$/�\u0018\"����h+� �\u001b\u001c�1\u0011\u001cC���?|�\u0000%�+����\u0000�,���%�K=W]�.4|Ғ�\u001c�y��\u0005�Vo]����I\u0016�%~!�9���\u001c��!�b\u0003\u0018�\u00007y\u001f��l�c��[�;��\u0000s\u0011�\u0011\u0000>i�Áq3�\b�/3���\u0011�H\u0015��?vV%�ts�A\u0015Ր�P\b_]�p9*�\u0004@KJ\u0001ε\u0004|���\u0000���6�\u000fq���{\u000fd����\u0003����/O��\u0007\u0013�(j�6܊�>�g��ˇ��a�\u0007��o6D���\u000e+�jԠo�\u0004���1�#v]�0\b,{�]m\u000b�P�LJ�k\nl\u001d��?XBd� \u0002\b�����N�'q��;���\u0012y+��\u0000�Z�2���w\u0011[WvmBu�m\u0000;\t\u001b�z�\u000e�3 \"\u0005�qr\u0011\u0010Oy�K��\u0000X/s%��H^ie�Y]�]��C#�?�<�\u0013�0�\u0006�nN(�ƇF\u0005�7��\u0014H��P�!\u0003�5���\u0011\u0002U�ɌE�����\u0010\u0001��\u0014ehΥz\u0016�(�\u0015�M�S��}\u000b�,����+x�|��1�ړ=\b\u0007�y��+\u001b�t�䆿�9�MG��9�΃�\u001b\u001ba\u001a�@k�K\u0010~\u000byʀ\u0000?\u001c�ɘ�����\u0017]�ҋ�x�-�\u0003�L�L�w\nAV\bV�\u0014\b���S۶i���\u0011��O��e�󏢓4\u000f.��8=b\r\u0017�g\u0001��\fc�\u0007Q��ȗ\u000fia�ޥ�\bu��/��\u0002�g�\u000fY���Os��i(�K�j̭ʪ�s\u0010G��Es��\t�\n��>\u000f'�@g���/��?<ѨV[���8;�Q�эA'n��J\u001fS��}>o2�Ԗ���u�M��g�+]��=s��\u000f\u0013I,T�g�!�KwԞU�LyV[I%\u0015�1$E�bUhUi�jӾqz�x:�\"9�t e�\u0013�c�yV��-ɕ����\u0002�P-@�۶Y�d\u0010X�\u0006Cg��K��\u0017�4�\u000b E�4�]Y�\u001e1w\u0017�*\b\u0003���~\u001c�rϋ�n��4�G�\u0007ae�g�\u0004�滇�\u0000��~]yR)���g�q��\u0003�7p�\u00042Yh��\u0016�9Q�ui��$�H�\u000b�v���4��oY�\u0019�K��=�u�}ϫi�\u0011��[�\u0007yc��\u0011��0����\u001a���X���)%OԣG5�\u0019�V�҄l{��D�iq��\u0007��\u0006m�3��#����k�\"b�V�z�,\u0007n��f�S\u000e\u001b�LD�\u0015=����[Oo\u0006�j���H\u0012�\r<{ў%z��\u0007l�\u0004��Eˉ��gyt{������o�گ\u0004���.&uEA\u0016��~P��#O�=zf.L���>\u001eÿ�ɔ1����\u0007����I�\u0016��d�z@[����_j�k��\u001a�F������lZ�9��쌺��ڃ�\u000b۾����>\t��G�,�ݿ)8���k?-yJm^��@���_}i&ex�-b�X��ɣt9��:\u001e��G.J�\u001d�;���\u0016����7��\t6z\u0019_���`�S��\u0000�~u��5\u001d\u001e��\u0010=Ĩ���E�ۥ�8�1*]\u0011ww\n���X�\u001d�q����M9�2\u0019%Chz���\u001e{�>�C�Y�9A��\u0000T�\"��;��\u0010\u001f`~\\�\u0017�?��\\���<�u=Rk�u|�PAg#�[��5�n$�\u000b\u001f�*�\u000erZ�V��u\u001cx1p¨qY#�m��G������c�����w!�����]\u000e\t��4�hyL�j\u0013�35\u0018\u0006f$�J7\u0007aC�=���!�Ȁv�S?�-&8�\u00006�}�=�T�����1�m��[�\\�u��\u001fM\u0003\u0015\u0007�⿴8\u001d�3K�=���=yA�z���wh�������CJ�$�� \f\u001bi\u0018�)BA��\u0012sS�Q\u000e��9�qLr�Z'C�\tD���ncc$|��\u0013Z\u0002w#��*�N@���+�\u001cH1�1�yf�\u0007���q\r����BJ?��g��\"!�Y�ӎ�t^�I.=\u001e9E��!�O���������\u0012�\u0015>$x}\u0003�ӖmL}�L��{t��\\��6�\u001f����H<�7UNC�\"����bEo׽w��\r���6M��j\u000f��W\u0019\u000fN˳��ri�^��\u00001ji��\u001f!\\�v���'������:�|�h���Z�S���٩\u001b\u0000>��Є\u0002�O@?�X\t'�\u0000R{\r�Z\u0010�t���\u001a�\u001b��\u000b#���{�N�O��凞�\u001c�,��~�\fw�z�\u000f��\b�՗F_i�\u000f���;���S�Ʉ�\t�_���\u000e�}�8w�Ն�\u0016�jn\b�xx\r�ȍ�b�F]L�\u00007�w���l�ٌ�\u0007$��>�\u000f�Ϯ,7��5���ܒ\u000fs־��޼ۼ�\u0002�\u0013�\u001aw\u0015�\b��=miח�[H9~��zlz��\u0004�D�D�|�����e5\u0014�z��\u0000?�0�u�\u001d��|�u$\u000eKH�\u0007fn4#�k�\u0007-ð\f%��{Ҽ��u����w\r��<��k\u001e��\u0016�[I\u0006�\u001dM\u000b�}*�B1]�Z�x�@�\u001cw9����y\u000f�`!9\u001a�$�I�)�\u0000��:�����\u00004<�,!-\u0014�h�:�a�\u0010�)�%��\u000f~\u0001k�_���a�>\u001c\b�Gs��;\u000fx\u000ed4f$K,�w�����ߗ\u001f�^@��ҭ4�.i��\u000bh�D�*�X��6v���z����~�M\u0010!\u0011}��̻8xq�\u0007�^�-ل��P���j��R�m�37�\u001f\"��F��ʏ2�FYj�����8c\u001e\u001f4�\u0010��y�Y�ҧ�G\u0001�\u0000�é�q�3?\u0016!�ttڜ��h\u0015\b��x��1�7:\n����9?�ēCv���\u0011\u001e���?R�{��s�,��\u0003�����G�-���y=\\�ݝ��nf\u0014P\u0019��i�o��s2<.�\u0014\u0000�����\u001dy�?6���i\u0013��\u0016ܞ�����\u0014q!証N�4Z�qj�H4>\u001f��c&Q��I?o�Eh��x�T�Z�\u0000�l�\u0012��Y\u001d�z\fW��SS��̈s��^���1^�\r��N��-e�tן\u000eƕ�\u0000>�e�������ݕ���\u001b����t�A!%��)Q�}���E7\u0019\u0012~h�\b�e\b�����~�\u001e�i��B!�ꜫ���\u0000>�aRH�$�\u0000�5���Ƕ&�\t�إ��W;�Wƛ��\u0014���a#� l:�2_��j\u001f��\u0018F�R6vB5��^îD��\rYX.��}��:�\u0007m��[�s�k\u0005�\u0011^\\OM�����7;s�z\u000bP�P�\u000b���;o�\rR4w�0��\"����q�O�\u0001a�J]^��\u0013�_��\\\t��]M���@���0u[�K_S`h\u000e�߿Q��W�\"D\u001b\t͍�Bͱ�o]�\u000fz׶B[{��X���-�j���\n?W|Ŕ�!�U����^��\u0005mg�F����\u0007�~C�g]�#F� �7���\n�S�4��\"6��xa�\"���\u0000�5~f[Y\u001b��.��3l�Ds܄f\u0004\u001ce�&1g\u001d����O�.g���m?T�/%�u{)�/a�h.#(�CNJ�e��m�ß\u0016pe��4A؏x���\u001c�%\r9\u0015�\u0015�:o��|���!�X�-Ƞ�\u0003�j\u0013�\u0001\u001f5X&\u0015����:\u0003�bq�[sE��\u0013mץ:�oڞ�����\u000e�\u0000ٿS�c�V�+O\u001d�M��{�\u0017V�S�\b�F����&�O-��(����?$y���\u0000�zv��{y/��=.)簈�=ͼ,L�\u0000WE���\u0002�ǽ3�\u001f�\u001d��\r\u0006->l��3�#�5V|�\u0019��G���Q�\u0019��\u0015w�n��\u001c�1�\u00008Q�\u001d;�\u001f���\u0000�E�mOD�.�i{hO\u001b�b�%ͲK\u0013|q�pA\u0002�:�k0K�\u000e�\u0003�,b�M���t=�(bǓLM��:�\u0001fZw��l�\u001b�\u001ax݌ncH�ejF�FE[�r7�8��&?\u001f���\u0003.\u0013͏y����隡��oJ\rGF�VV,�d�Q%@��&e�:�9���Cć�<��v��% c�\u0007ۻ%Ӥ�\u0000\u001c~]j�%�o\u001e��jM6�;TH\u0017��H\u0005�\fr\u0010M<2ys\u0001�\u001a�'�K�\u0003�\u0012�1���׻�>�E������y\u0014p�q��$\u0014����\b\u0014\u0006���lj\u0003 ;\u0002�<\f���P�?S�\u0019��\u001f.k���<�[�kpѴR��$u��mNc�7�͆<�Ɋ3\u0000\u0011���,S\u0019%\u0012H��og�n���\u0016ɧk�\u001c�\u000e���\u000b\u0012�*o�\u0007��%P���Ӗ98���9\u001e��?�1�Xϩ���gB#��̊��Щ�@�heQ2�A[�N�\u0000��\u0006P |J�\u0000?}�{���\u0017���s��qkqm+���n2ĭP\f�\u000fð�\f�a1�\f\u0007�_\u0017\u0013=���\u0003|&F屨��Q�<�&\"=��\u0011�$~���\u0000��_�|����\u0014z���M��q�F>D}�E�24g�������t����A��WP\u0002n\rx\u0000kZP�\u00053m���nn\u0010�d\u0003�\u000f_���\u001aO�e��U'��]:´+�A\u001b�m�ܰ1�C�4p��w\u0013�� \u0000\u0007#G�_\u0004�1�\u001a�)\u0001U�\u001d�\u0012E\u0001�O\u00103fE�\f�f#b��Ք\u0000�!�\u0015�6�o�\nֽ:��*\u0018ɝ��D�'��oȽ'�:\u0005�\u0000�.��ר�Z���\u0018�,��\u001d��Ճ�'��!�\u001d��qqܳ\u0019\u000f�\n���;��}�nd�I � �dj��_��L����L\u0013�w3!\u0006?'�\u0016>E����������\u0006f�����ށr��WM���SrOٍ4�iX�gQ\u0013\bGė�\u0010d�\u0006_���\"#�\u001b��������4�\u0000�MIk\u001cf��\u0004�G���tjl�g��%��1��T\t\u0002��\u0018��H��9\u0019\u001fyܹ؄D�5����?\u001d_��v���u~&kg\u0010ܦޠ\u0000�,H���F[\u001c��\u0012䋭���~MZ;\u000b��Q\"��\u0010v�\u0001!FĂ[�A��s>�Ç�1\u0019\u001f��\u000fy�84�2�R�|�}4]�$UR�O\u0015^\\H�,>�5\u001f<���Og��+\u001c�U戋\u0007\f�\u001a�ܚ\u0012I��H�$��$�s`x@��\u000f\f�}K\u000b��c`��\\Gs\u001b��աq\"�\n�=W�z��2�\u0014�<�o��(����\"�����a�W��B9\u0003�ݬ\u0012�_�vA�#W��\b=�uZ�&\u0006H�3\u001cC��\u0012\u001c9%\u000e��\u000fv��V\"���\u001e!h7 ����<)��z\u001el�A��W?�C /Z|\n�E\u0000�\u0002\b?M3]!��\u001c� \u0000�_x�M�涶�\u001b��H�T\u0011I\u0012\u0015X�\u0000\b��Z�{�f\u000e\"\u0001�8\u0019D��w\u0013\u0018�\u0000���\u0004���:(�[Ք�^$k�\u0019ҩ\b��\"��s8\n�\u000eN\u001eYH�yo�\u0003��K+ʡ��6�AP�\u0003V��@�~�������\u001a��7X�D�H�H�j�n\\��۰�zv��A�pm���>8�b�w��$�\"je�Q�\u0010 ���\u0007�}\u0001�\u0000\u0003�q�\u001c�H�?h\u000f�{X8u�=N0~O8��\b�pk\u0014F�v�\u0015b\u0001���\u0018��nT��w��\u001d�\u000f�%�]KH�'Պ[&e ң�Z��.`���M\u0018��~�'\t�ݲ�;\u0005�;V2�H>\u0001�c�\u0000h�mJ���L�_;X\u0004����:�`�(\u0016D���U^=���\u0000\u0005��Ɲk��#�|w��\u0007k�K�3G��5�\u0011$}���>�ũk�pDi.n^T�\bY\u0002�\u0003\u0015�U�\u001a�\u0013�X��#�$}��\u001cw2*G��������DvZ��k*�I�p\u0004U��-QS�Ol�\u000e\u0002g��\u000b�ǐ\u001cBq�G��$�wL��\u0006\u001b6δ�ؚ�؍��t}�\b�T>�q�\u001cr�\u0015�����qK\u0002�I:�\\�#\u000b�~\u0019��c]��\u000fm�Ls��y�\u001c�\u001a�\f`K���R\u000f9������\u0003��+nJ��?�]�����ń�+�ɆJ��l���V�Q��I\u00100��Z\u0012��Y�iF�,H\u0003�|�G�x#v/o���`c֑/��}���\u0018��\u0004���*?��O��o��2f�_����\u0018���^F�ͧ�w�Q�$1-���.��>��\u0002�u\u0007<\u000fS����]\u001e�-�Pg�\u0019��\u00011�\u0013� K�7}W�u?��}v�\u001b�t�e\u001e_TD�d\u001e��\u0000G{��/56���YY��j7>�\"��i�גHB\u0000\u0007\u0018!`�\u0002�s��σ&�\u0012�8��>?ڱ�dc\u0001��/?�G��O�=�-5\u000f.~K~a�\u00167B4���C\u0006�+�(�\u0019.\u0010ۃN�\u0016���k�,H�ɔq�����8����\u00118c<=�\u0000������ߑ\u001f�Z������?���Ior�Yo:���5�\u0010�U�B�\u0013S��@:-A�Ӛ�N�\u00068�\u0000�i�呎�P��M���dG.H@^����Q\u0002[�>�д��\u000f˭,Y�?��ߜ'�����\u0003ʒǨk7���'�|�-�����±�ù��^�Oں��)���\u0007o\u0012W\u0018��@o�.vA��\u0013\b��q��\bp�����4�|����_��PI�{�A��7\u0010,K\u001e����O��fx�ACoe��D��\u0012�� r��-Wdks�'��r���<8\u0003��\u0011�.>=N8d\u001f��\u0000kid���]F>�\u001d��=���Ty_F��{-\r�\r.�o��zn��\\�M:\"����v�A\u001b\u0003Z���1��=?�g\u0013\u001e1\u0019\u001d�L�\u001f\u0012_D�����2��I��\u0001\u0013�o,��\u0000��_�m����{�fI�V�Qs#X�j�\u000f�<�uB$ ��w�^���H���c ,������\n\r~\u0010}�M����<���rg\u001c������\u0019�\u0013v�����_��_���E$qP>����u\u0004\r�x|������b�ޒ�}�v��}\u0003\u0005�\u0012�U~=�0���ߩ�����$kv[�]>�\u0012~�*k��3\u001d�w-�=O:e6���5@\u0000�|�y�\"�\u001f�5/754��>\u001eݱ�[�X�eT�\u0000�����Z�2��\u0004\u0000\u0000(\u0004j\u0000�m���ܙqK�1\u0000�^\u0018�\b��R�p�\"D��G\u0011�|��\u00009\u000b�1�y�˗z���p��q�ֳĀJ�(,\u0014��#�#pFk�X�CU�l��\u0011�'���;��P�ߑ7���7W\u0016WV�1�Z�%��нVHث\u0015�jW��2p�qg�\u001c�4$.�1�\u000f��rإ�I�\u001f��CAA\u0014�}J�>\u0019o\u001cj� �9\u001e�\u000bk�\b�#�����H�6j�j��V���/J���]��¦\u001d==\u001b$�v��<�;\u001e\u0015�b�\u001f\u0004�d6���v�\u0003d��\\;o{��Ώ�SB�\u0016��\u0012\u0010��@��S+�p\u0006&���w\u0003�̘�\u0011�\u0004lX��J��\u0015��v��m�]\nU�ťɏT�\u0011˕�r~��\u0014R�;R�&�dO���Plƹ���~g�[i��^V�\u0000\u0018y\\�i�{X�YŜ�\u0013�!\u000f\f�w�)�\u000eS�O(��)\u0001\\�\u001f��P�e\u000e��_q�|'���W�.��Es\u0004���r�a\ntb\u000b+�R���f^=fYF��\u0000�ͦX�\\=<���巜\u000f���.���Kn�im9�L�ƒ\u0001\u0015A5�îd�fXz�\u000e(��u\r3���ؽ���<��f��~i�M?�:tv��dP����Y\u0013��\u001c���\u0013ZT�̌:�\u0013�\u0014I��~=�4��`�ic���-&���o�0]�W���OS�H\u0018,���� ��1*j\u0005{\r�s�Q\r\\<,���\u0005���\u001dvm>L\u0012�1�^\u0011�|\u0007�^]��甮5\r$��_U.��v\u00062�E\u0005\u000b\u0001J\f�$¸��6�[d�#�����\u0000�Mh��\u000f�tMJ��U��'�T�Y\u0003�j0\u0007�e\u0014=�X&%��E�b2\u0013�\tz����\u0000�\u0013Y���e�`K�6\u0011�S^/o\u0012�c=kF���:=L|H�,yJ\u0011?c�21�#!�<���F9���J�I�w\"�C:\b�\u0011Z�w�\u0002�4\u001a�c>NU�!gk|)��\u0017��O1FA,5+�\u0000��i�}�SZe�\u0018�P\u000f.��Mc$u\f����8��\u0015tiR4f#�$\u0000�S���j��˛��cž���\u0000���i�U�\u0016�\u001d��]j:��D�\u001cV�o\u0011#n@;�q�\\P��}y�\\@�B�i�w�\u0000W\u0006�G�|{q$����f�<���w[w\"tH�<ůi�M�c%��Q�\"����N�\u0001W�21�\u0006^N<��\u001cL���q�A�yj�N�U-쬂�\u0001j̊\u0001n#����S�-~A<�c� �,L\"#/�����ϗ���\u000e\r' �Tl�h\u0013܅\u0014�fV�p�W*r����w��_�����s�@�\u0016�\u001f=/��>o�����o͢y{D~}\u0011����)�Uͯh�C�r\u0011�`C�4��\u0001u����D�0�yzF��C���r+�0k/sa`�t�\u000b��w\n�$ӂ�$jEG$#�3�2��z~6s��0��G{��󱺼a��+�\u0015 |+��w۾Vg� \u001c���d^��5\u0013ǣ4�^\u001e�~\u0015o��\u001c�8��R��>���4�\u0000�\u0004~A�\u000eÇ��p��2?3�\u001fC��\"�T��+�y:Ѝ����㜆r8�����7������*�\u001b�\u001a\u001e��i��A�H\u000e^�`�O\b�\u0011�j�\u001bV��?�OJ�O��.�d9[�����3\u0011as�����rL5j�������3����6��;�d��'K�X\u00042���e�ǫ�\u0012��\n#���5j\u0000���J�Nc�6\u001cHH���m.�D�2)�!\u0019N�X�\u0018�Ƈ���jrG��Q&D\u001e��/�8b�њu�ah��H�\u0015�J\u0012�ՍB��fV�7\u0017\u0017PDf@����G��\u001e��_\\�RNQ[+B��\u0015M�N#`�Fٙ:���]p�d$�~��\u0003�,>�ޫ�D�\u0003݉?v�{f�,��v�\u0011����SF`���f�i~��r\u001e9\\M\u001e��8��|������j�\u0007V&[i\u000b\n�x�r���g���|}��\u001d\u0006a����k�Z�f_�#�y\u0006��5���\u0003� BA#p����)��;쀉q\u001e�y�u���j��H�JIh�8^[�s�|\u001e8���6\u001b���'�]8�\u0000Cv�\u0003�$G>\u0014n��A�(\u000f�U��P\u0007`I�pw�H׽��\u0000�R\\G�_,�p����Ӑ�\u0017v7�I\u0011N�\u0004r��\b��fd��\u0018�9������\u000b[\u0011�K�\u0013�L%��ҷ��\u0016%�|ס�Ȧ�E���r�@V�\u000fbч@y5T�I��EǤ2��9Fr��\u0000d^\u001e\u001a��K\u0016LJ�s���׿��A���Ms��H�\u000b��U�L�/f\n���-\u0010\u0002[;�x1���Ƭъ��e�\u0018�$T���N���\n�2q�9I�����˿8�g4&9e-\u0004�8J��\u0001�0\u0014\u0004|�?U���\rJ�|�9���w�������'��\u0000@����Q�'?$e�V]\u0006Gk?�\u000f�\u001fB�����������\u000b%��\u001b�F\"$SF\u001a\u000e���O��y�{0G?i�?����Gp۽���<�O0ͩ�g�D��tA�1=fk�\"�\u001d���\u0001�<���$�\tɤ�[C����?=y���˺\u001cVp�i�>�}�G�mm�ؖF�yt�sJ��,��\u0012w�o�����93��f˟(���'�@��m�\u0000�)���#�\u001e\u001d>�x\u00180�Dat\"\fLG;;�$ݓg��O����]Ь�,� �\u0003�A,�X[[َ-\u001f \u000fգ��랟��c�3\f1���<\\t��O��Dy�/�0\u001f�Z�\u0000,Z���(\fR-B�5���T�P�\u0006�\"�����qH�p�|t/\u001cl��\u001b�B����\tW�@�zʍ�,�o�r����G\t��g-\u0006|c`8;�}�C���R��4�R�k��\u0012s2z�2��Wjl��\rT0nj��:��\u001ax�Ep����s�\u000f�-&�uacz\"��\u0011V}n�(m4�d_ZH\u0004�\u0014f����/�������G!�?����\b��*]Mz@�s}I�?�{-\u0005WIНu\r^��m��X�ꖅy\"���OP\u001a��\u0001�4QNj\u001c6S�\nW-\u001a\u001c�<<^��\n�R�\u0019�\u0007$�\u000b�?&�_ʞH����=>��-�T�\u0004H\u0019���\u0000\u0000��jsg�K\f@B\u0000S�\u0019�\u0011�l>ߋ8�ךG1\u0006\u0004�aJ|���2�\u000e��_�+��X�kי�ɉ��r�>]��(�P\u001b�\bJy8�!­u\u0014%���J�Z�\r:���L��[$!\u0011q6X_�.�K'D���HB�o�Fٛ�\u0011\u0006�'W��d*�\f_��W���\u0013*�\u0014T׭E\u000f|�'�����9LO�Ř�{F��#\u001c�iR?\u001a��M\u0003���L\f'�{�o �6�w�ޭ�R��W\b��\u0003\u001e�#�L9D�]C���<� �)����Y�o2^<�]�e�\u0000GPzR�f<��w�\u0010�CO8UL�K�yq�4�o4O�U\u0001P/�7��jr��\u0018ă��:Pe\u0019G��~?\u001bt\u000f,ZI�2\tU�枱o\u0011�&\u001f�ׁEonI\n;\u000e��4����]�K�pA�ؤE��㾡k!qyrw\u0004׍6�~�\u000f�L��+�1��@vg6?�:����Ĭ\u0000�\u0006���rCG l��?��P)�~Vރ�����|�8&7��i\b�ܿ�׌\u0005e�|���\fR��P���n�V$\\�*|z~\u001bc�z\u0013�c�+6\n_�\u0000*6��&�rO��÷l\u001e\u0014�S�H��؅��\u0016V��7\u001bw����#\f�\u0012J&\u000f]�\u0017�\u001au�nnO�����3�f�4Q\u001b��\u0012�����������\u000e>\u0004��|\u0019\r \u001e�Kn?�\u001f�b���\n����U\u001b�pN����(��Z��U��]}\u000f�t���L��~F\u0015ͨ�\u0000�\u001c�m�\\����\u0000��\u001e8�_'y���\fc��#\"�'��[m�����v$���\u001b��\u001e���p@��\u001bt�C��58�4�Y�\u001f�\u0003�\u0017��\u0000�i�f,//E�\u001d}��)��s\u00127�\f? :\u0014���q~��&�x\tڇ�\u001f�S t�@�����y���\u0000�0k \u001fOS�\u0014\u0014��B~]\u0006>\u000ej�����bt\u0012=vH.�\u0019|Ф�z�o\u0000��t��F� p�\u001bؿq_�Ͽd���?:CB�\u0010Idz@�S�jk��u\u0000\r�Q�<���d��������`�\u0002���U d%\f怀��I�d\u0003���\u0000\u0001y��\u001f[E�a����\u0000��s\u0016X�D�\t|7c��\u001c�f�H���g�.Ț#�i��[������R�\u001a��\u0001�푌3�\u000e(�s����\u000ed�a��2;A�����\n�G\u000e�\u0003m��lŌDS��0�8���� \u001ej���)�)\u00142H�X\u0011�\u0004~��XA\u0004s\n,r|����%�Oy.�\r�A�<��\u0018�T֤R��a\f#\u0004���&Ȯ^i�����C���m\rO�V������\u0011�1苋�@\u0014?V��E\u000f\u001f��\u0011\u00109r^\u0018U&p�UhQR��Oh֟O��xkܠE:����X\u0001�Tۯ��d�yw��ܛ��Q��#�\u0016:�\u0000�%�}v����cQ;�o\u001f�v��_��7�\u0000}�����������o���[\u000b^)i��Xi�R�G��)�\u0000\r���s׽��ؘo���\u001a|��#��\u0019�A!\u001f�!���.�f�����R\u000b~2I\u0013q\u0007��M�\u00155\u001e����\u001b�'�ɹ��\u0007�j7�so-��aic(v��P�.���U�PB'\u0013�\n\u0010Fٺ�{�cp��t�-Kɞ\\���\rv�\u0000����\u0016mit���Z�ܻN��\f���\u0000dri\u00132�\u000eّ\u001c}\u0005\u0018w\u001ew�Z��\\F�=F�w?�̼ۥy���I{��Y�;(�\u0011E�\u000f.]\u001dgK�����ס\u0019���R���\u0005:t\u0019I�\u0011d\\L�\">�y2\u0019A�R\u0003�\u0006��u�y�����Z[5��Mgv$I`Q�R\u000f�^#��\u001eg޴;o��\u0001u.L��\u0014n,����f/%��-d���}$u�B\fQ�\u001b�Yhh\u0019�M?g',2���\u0007��<\u0011�Ƹ�?�}=��O�c�\u001f�:h�N�\u0004R��e�[~&U\u0005��\u001d�\u0005�\u0007�k�\tb�um�{\u0013������\u0000�$��\u000f���f�4xn)y\u001b���\u001eD:ʈ\tHŸ����sƸ2\u0002\u0001\u001b\u0011���,r�&\"���_\u000e��|���\u001b�˶�^�[j���j�D�B��T�G'��\f��%�\u001f� �Dys�?��<�����X�\u0005���F~~�\u001a��\u0016e#��\u0014�O\u0006YC �Q��c�\u0010�l�\r��>\f\u001f���\u001a��5'�$��0�[�K#[S�F�Bj(E8��6g(�\u0013�\u001b\u00008�\u0011��\u001fQ�˻�?:��;<�o��w7�\u0011X�K;�IB/\u0019U� ������\u001c9&$qȚ 7�F�1wD�}ϊ?�\u0011����cI\u0012Th\u001a�\u0013F\tm}+���~\u0019E)���^?e��[�c����5�\u0018�R\u001d\u0007?��ֿȧf��.A!RI�98�z�V�\u001f\u0015\bQJ�Z\u0000�E8��ߐ�/�?2=+�:����eԦnU=�;P����D�nNC�\nz7����g\u0012(i\u000b#T��� �!�UI陚�Q\u0017ʩ��\t����\u000b�\u00009��\u0007�4�(�I�\f�1�U�n\u001eN��U:�N=r=6�u�z8��U\u0017�W\u001a�\u0005�\u0015��\u0000�\u0015�\u0002�k�w͎8�\\��Q��?�q�˲��ߙ�����h-�\u0004,ε~ ��v�e��p�e�[\u000f��2Js�\u001cq�\n����}�����0}0�A]�,;�\u0000X휮rx�\u001d�(\r��|����}^��V(Z8咜���\u0001�3i���wl�*�>@>��\u0000�N�MF��\u00009!��q\u001c�\u0000]�5�-~]h�\u0001O��ZU������o.�VZа\u0007�ev��pa�\b�23�\u0000J(}�ө�0u\u0019�\u001b�Q��f��\u0002�[~r��zD��a���e�ėy�\u0012M\b��NR\u001d9;L\u0017+<�>\b�<�[�27�X<�>�Q��z\u00159���\u0018\u0010|��Ӄ-��\u0000����Ϣ�W�\u0010�\u0006>��+Q��f!\u000e�\n*=�ĻO)ͨ��[����\u0016�N�\u0000�a�\u000eF1\u0017���\u0005�+H��!\u0018�j�\u001b�\u0007��9�<��|C��\u0013��V�\u0002��ۓ0���Z�1>��q��z<\u0007�F?Y��\u001b\u0013�<�\u001f�\u001d��\"=2�rc#[\"�\u0000+|�t_6٫��\u001b�֒U�\u0001Ȇ����\u000e>����sF\u0019�%�LW�q{G\u0019����&ߤ~U���\u0016�N!�\u0001�*��/�|�g��::Lgj/[�5\b�h*�/%��<���kJq�A4�f�<7rc�h?M�\u0000%���wq��W�/\u000b�G'���Τ�i@\f%�\u000e�P�N�5\u000b\u001d�&s뭯��'灐]\\���+7�ǫ�;\u001a���.����DN��\u001b^J���q\u0006B��I;�Z��4�5Y\u000f�nn�\u001e!iM�4���\u000f\u0002AU\u0015aM�yV��\u0007;r\u0004�rڟ\"~j����܊�R�+c\u001f*|E=E�cQJ���\u0000\u0003\u001c��5x��@������:yO'�\b��\t\u000e�Q�J>��\u0010�sJ�Ʀ��Z�����Z\\\u0015Y\u001e�E�:����kG��\u0002\u000e���I�Z'�P�\u0002c��w�G\u0018DH����~�f��/�\u001d�\u000eb���Һ\u0005�6���0h�:�\u0005ij�]E\u0019Aҝs.:�ЀɎB�\u001d�w\u0013>�F\\\u0015`��6���z6��\u001f�\u00008���.�?*��@��)����F\u0001_�)���к���\u0006��=��&\u0006\u0011�\u0007}F\"�\u001d�_�҂'�Q�♿���_��ϕ��>�}�.yK�VP\\/�-4-\u000e��T���`5i�ޤ�U~\u0016\u0013\n��s����J^>I��$���\u001c�F\"8b#C�@�ݿ��~��0y��R򾳦Ϫ6�iqs��\u0017z�ٕ�أ��\\�Z�$\"S��V�\u0011�9.��Ê\u0019\u0004h�I�V;����0'�R22�\u0002O#˄��0_���\u00003/�|��\u00008��Sw,�S��ѯn����\u0018��q\f$1����[[Y���^0G�ޡ~�Z�[�\\����Uaw4\n:\u001aW5\u0013�\u000eN#|`s�\u0007��æ�\u0005�\u001e\u0003�\u000f2w�~/s�����k{�����\u000b��NXdu���sE.��GPH�i���?N�\u0007s��`x�H���W��wˏ�@`���h�}~ծa�2@ZhZ\b�x1�H�(�\u000e3��Yo���M��떖�[�ٌC��e}�I_�Hf�)��?h��LJ\u0011�\u00002��=R>�O����o jZsO\u0016���\rӧ+b�#��3\u0007�+B���@��s��c��@$uv�|�?��%�Ͽ�����w1$��zw`\u0015\u0003�a\rE[c��L�\f��o}��\u0000\u000b~\u001a�~�~�\u0003Y�1�\u0014�GN�\u000e�\u001e�\u001fו吘ߛ(D����Z=��A+\u0010\u0018+-\u000fZ\u0006\u001d\u0000휯l\n�\u000fqz��?������\u0013�%wU��+���w%�LM��\u001bx�q\\��F�U\u000f�)\t�*�zw���\u0000�TBXF��Q�\u0014�ߦX\u0000\u0003Ϛ�l�@�@�Ҟ\u001b�L��\u0016}E+�E|h\u000f߄\u0003V���@�~\u0003��b\u0001U�\u0000T^�A�\u001fw�Q�uk�hhJ'Ҡ�\u0000���W\u000b8�DA���8���UE��\u0000*��Q��0������\u001f��+��Z�J�_�\u0010\u000e�b�mg\u0011?ݥ=�\u0011֘(\u001e���i\n��\u0014�{c@+\u001fԵ�;I~��ZJn\u0000\u0014Q�݇�|��\"�&��O\u000fT�o仜�\u001c\u0015\u0010V�A�����p�w,8�̓�K�u�B\t\u001a�\u001f��\fkJ\u0003��\bD���,�\u0007��3]M#\u00134�$��#Ȋ�G��,�z\u000emr=�-��HG��\u0014�AZW�N�2�#\u0010-��rL�n�v+}\n\u0000��OS��Zl\u000eH��L!�;U\u0004}��5����w�}���x�'p�2F'��L\"�-��IM�#m\"�2�Lhǥ{\n�\u0004��ͨ�<����}�֭�Y�����Q�e��`GJ�_s�ǒQ>�ݛ\f2���1m'L��^uX� ij\u0019\u0005\u0018\u0003�}�2��\u00199l\\\\p��R��#��0D��a�Ӓ8\ni�r�\u0019s\u001c��eǴ'��?1i6���d(ȿ\u001b\u0002F�޾�d��@��џ\u0014\f8�Pc�v�M��\u0003[��\nH\u001bq\u001d=�\u0003~�l���/r�C9��*�_��[in#���qGF�>�-]��P:f6X�\\cɿO�\u0011����\u0019�����L\u001a9�U�O�\u0001\u001fO\to���'\u0013q�0�O^\u0005\u001bl\u0007�>���(��l'� ��_”����۝���Ξ\u0018��\u0001Џ�\\U�\u0005�\u0000?��6�Z0+v�\u0000>�t\u0003\"b\b�ڟ�ǀ�?�r\u0006\u0005V�Tv5�#� ��zc��{���<�A]鯇o�J}$e��\u001caZ�\u0005~]G�xUi�P푖���o���V�T�����\u0010m\u000e�F����\u0019+V�#���ت��>�^��|qU��v�x��?��M��\u0000(��]�U\u0006�C�W��\u001f���J��0�u\u001d)O��x�\u001b`�\n�m*����#��r1��+\u001c֡�-�0Gk\u000b\\:ъ�\"5;\u0012v�C�d\u0018�C��@2�1H�c�e��\u0001x�x �V�Y�Չ�\"D(w�\u0001|�?���ի֟-�����PےU��^�\u0001׶\u0015C����\u0000?Պ\u0007z\u001e�!���\u0002�\b�z\u0013��\u0004����k[�N�x�E!bJ�����Do�V�ځN�Oz�\u0000nLCz*\u0011�2���?�фB��E\u0000H�\u000f���%�\u0004w柽\u001fc(,\u0001�6��\u000fѓ\u0003��\u0001�\u0011C�����1\u0011�j�i�\u0000��տB�c�c�'�ĺ��\u0011M_ⵀT\u000f\u0005�\u0019���\u000e.�����?������}A���\u0003�/����I�CM4ޖ�V�#�I\u001cjO\u0019\u0018׶v\u0010��\u0000tt;H���͟7�ynK\u001d\u0017M\u0011˩�\b $���_�H�\u0012�\u0000u\u0018�\u0010\u0005jٛ��1*��\u0016\u0005�/\r\u0000>�:�>ǘLn�b���ifS��\u0005nH@\u0005W�\u0012G���~�%[it�~��O�;��J\u0010]��\u001c�<���g�\u0012������C����$zז�h-��M�i\u0005�j�H\u0013�$o\u001b�r\u0000PW�2qe\u0006\u001e\u001c���z���O\u0014o�������E�-<ͣ�>�΁�\r�\u0002*��\u0006��c�;�s��`�9#![�\u001c�;���uk�,z��J5\u000b@eK�zG #�\u001c��ȩ�\r+�a�q��\u001fcT�5\u0011�}�_\u0002�W�s\u0017��y��^\u001d|�J�b�u\u0014��nr�\u000fC��s6q��g\u001e\\��˄�߸�>��_��E���g��򼕌���=F% W��-�׈ڟ�����d�C�\t�\u0000'��|�?}���b8r\u000er�\u001fm~��o����ʗWΌ�\u0004�7�z�!\fN��F���-p����\\H\u0012\"\u0007��\u001f$����<�wt�BKr�ǽjL�T�z��W-Ў\u001d��~��\u000e!ʞ��udn/�\u001c*a�Jl��\"�����|:�����}{?7��*��o�\u0000;|�\u0012N\u00194���:\n�T\u0016vq�QZT�$<�\f�I\u0000q�/�;/\u0012@Vϙ>�ӳF�\u001aB�c\b�y\u001e��t!�Ӧl�G����D��[�/�K˟�O$��\u0015.$�o.\b<\\�*�\u001c��,��/��~��*8��;~<�4�,Ҝ��_/>�I�\u000b�Q�\u0018�rpY\\񢊚\u001e��NsS\u001f��'q\u0001\\�\u001d~oݭ��|��goH�Tp\u001b��li�m{<Ԁ��$\u0001�=������J����\u0000�:�E��\u000b\u001d�\u0000��<���v��\u001e:��K\u0014�V\ny%��P��m��؟��\u001b�\u001cc��~�\u0007\u0016)B\u0006�┥�\u001fs\u0017���*_��\u001c$Op�Bܾ\u0019\u001d\u001e�zqD�C�\u001c��\u0002^n~(\u0018�}F����ٵ�4Gn\u0000kx�I��\u0002\b-Ȩ=���\u0003�\\�=��\u0011����\u0001��@a\u0001�F��\u0005��z>��\u001dN�\u0000}\u0010\"r>@�|O'��\u0002�,ui-c\u0005-�nQĭ�U��*:\u0015=�ͧ��\u000f\t��\u001e�ˋ1\u0004lm��7*�Ȼ+S��\t�$n�G��QE���\n�\u000f��G!��Z\u0012D�>�|$��_l��\u0010\u0002@�����ԑ�R\u0018�>þ��=�$ӕ��\u0007���\u0018o\u0011��T��Q��S֢���6C\t\u0003\u001d�,�\u0004�by\u0010�\u001a���\"��.�}\u001b\u0010�C\u0019\"��Ƞ\u0007Zױ\u001f�tөF3\u001c�y�\f'(\u0011����z�0�\u0004�pCP@!~�\u0000u�XWm�3Y���9�\u0018���\u0002�����-��ɍ'P�j\b��35\u0003/�GS�%FĊ�w�1\u0013\u001cQ�\u000e\u001eqr���_�\u001aa�ooZE+W��\u001d\u0000�QQ�_�'�辮\u0007\u0010\u0013 �A��]\u0012��� �Y8�A�E\u0005y���5R\u0015.��\u0018��$}T�\u000bG�r\u000bU\u000e:S�-;x�h]\u000eNL!\u0013\u001b/��\u0000;5�}[[�\u00160+o�V��O��=��~����<�h�{G.� ��1�\u001f�@�|A��I�.����Q\u000exN��~��Iuhn�$\u0015\u0012/�R\r\rG��\u0003�����c͌Hl{�\f�M\u0010��\u00003ήt띹�{\u001a�\u0003���\u001edw\n����ň����\u0002D��\u0003eK�\u001e��:Ɔ*���e��\u0013l�O<<�`~�a2\u0002���h�H�\u000e`�NQ�=���e�Z�Fӡ�V�娱e���Io\f^��@*CJ��7͎�G�|ˇ�\u0018��\u000f�Y�\u00009\u001f�\u001f����$�3��O\tZ\u0005\u001f�,4MbH\u0002�x)�ge�힃����p��\u0007\u0004c��$\u000b�<ޏ\u000f�N}�ډH�q\b����\u001a\u0005�\u0000�\r.�K�NR���\u0011$�ʴ�\u0012V�XliJg)�7�NH\u0012%����\u0004\u0000d\u0005y�?#y�K\u001dHi���p��R=\fw1n\u0010=i�ڵ͎��D�q����뿸�\u0017[����:\u0000\u001b�������\u001e�FR��ԥN�y\n��\u001aWl�:�|�8���3�\u001b_il� K2�U1�V�M\n�ҧ��^1'�r.>L O�T���q+�}[˗��U�[Y�!V\f��ex��X�9\u0000�Ew똺�Gf�eek\u0014�\f�鬌\u0016�۩'����\u0019g�c�;�?\f��-޷���\u0005���ZәmQ�]��2[Z�ک�\\�ݽc��@�'v蠜8�,��6.>�X�D�1�/�\u001f�ߓ�\u0000�~]�z�{W�#��?x�^a�x��F\u0003}K˖�P���\u0003Cr��'n �ӂ8�����=�S=A0�v\u0006�\u001c��zn���{���.^�'K�x�a\"d�0L�7y�\u000123�ݍO|�j3�+\u0003j?\u00177I�\u0015y\r���λ޻�q�1�r��I��\f��moyC)e��f6�Lr�N4o\f���x��`*��1�Q�\u001b \u000e���G忕�өGoom�ūG�\u0019c�*l�A%Vxg�H�8�m�\u0001��^iF6g�\u001d�c���Q�\t�3}<�py+�i�\u0011���U�O��\u0012\u001b+'�K�TaNK\u001f(�D\u0014P�=�O�\\G�\f\t<�����\u001b�.\u0011�ng���8��zO�\u001e��\u0006�[x�T\u000b��ܗ{�+�GVV\u001c�vs����7�K�7��\u001bG�k0�����&�\u0016\f@�.+�^RH��H�M#\u0000�u�a\u0013\u0001���_kh\u00138�\u000f/>j�����%�����O�,̍\u001c��\u0014��F�E!�R�2\u001e�\u000f|�=W�\fH\u00062�|�'��\"Q5?���O���ǯ.��V�&�t�VH�m�\u000fC@x�N٣�LM\u0017g\u0019X��yV~)u\u0019 �\u001b��\u0015=\u0007��f��a~\u001c����\u001c�ˏ�C&i�5�����4���}a\u0000\u001b_�C�uU\u0016�\u0013����&\u0005r[lL���\u0001\u0016�\u0019��\u0007���h+A���G����~�������Z.��?\u0013��%\u0003������\u0003�Oçኮ\rJP�\u0000M�\u0000^*ߩ�l\u000f�*�>��\u0000o\u0015w?\n\n�\u0000�ݎ*�k:�i�rHH�\n�Wj�\u0011�\u0003ݰ�|�0��#}z<�+{���Y��;\u001fs��\u0000d�J�8��I�Ր�m���*�\u001f\u0010���{�*Gz�[H�G:\t\f��%�J��ڜ�܁�\u001c�\u0011��r�+��\u001e�,Z|��'�?�\u001b�\u001b����b�\u001c�8\rܾ��Wk5�!V\u0011�#��V��;��*d�\u00110�\r\u0000V]�[�D�EBw\nWq�\bܜ\"2�\u0003\u0019��#�\u001e�d\u0014���e;P��\u0019le.D4K\u00162x�ԋ����\u0016���Y\u0014���*�\u0000�Jd��`�\u0018�<\u0004\\X泠�Z��h�2\"G����)�J�ˡ�'l��ͧ�}xI\u0000tM��p�\u0001x?z\u000b\u000e\u000f���2\u0001~�M�\\��_��Wk6�j\u0012\u0006a�сfQ�_\u001f\u000fl0&\"�$j#\t�~}R�KO�Y,v�.LÈNu5?>���u+ l���xj\u0012ةhZT\u001fW}\u000ed��\u0013%�;�-�w���2��%~'{f�\u0014\fN\t\n7g��y�K\u001am�Z��\u0010�1��G��fv�\u0003�ʆΟ� a�ý���A0��$b�%\u0005Z���a��Ӵ��_���\u001b=\u0007O\u0000�Bë(���sY���\u001e�MG\fOR\u0013*S��B+CR<:\u001a�+oj���z�}�^�ۊ�O�\nWz��<1U�\u0003�\u001e\u001b�N���E;u܊�\u0003ǵ1V�\u0000�Z�\u000f��\u0011LUk\u0000|7ޞ\u001f�\u0001\u0000��m)_�����u��ߍ{d�A\r䕭��������\u0005A�)�c��[�)����\n��˧��]����Z�T�v\u001dN��xu��1U��5�\u00003LUaQ�Oo���T�1ƥ��\u0000*Y��+�\u0015`zߚ⇝��\u0007~�%~\u0015�S���Ga�/<ԵI#Nm!i�\u0015�Չ=�_\u001e��9\u001f��,�\t4��]RI\u001ez\u0007;��-�~�7w&�����Ez�\r������5�ވ\u0017���\u0000��e�q�Wb?_O뇧���~�\u001fw�\u000e�w�I5�e��z\u0000d�v=����uC��vGh�|Hhk��\u0000�e�&Q�J�Lc ����ܕ|���eYmM7!O��\u0012\u0016�ֲ�h9W���\u0000���W�lG5߰��xt\u0018H�\u001c{U(܈�%�\r�\u00009\u0015�O��\u000f?I\u0014��\\��W�$B+\u0014V�?S�A=O\u0018h\u0006{\u0007�\u0018�\u000e��ď�`��|��r�ݩ�}\u000eY}��\u001f,���\u0010yN��O�c[�n���\u0005�X�^_��*\u0011j�ܜ豎9\\�ζ[m\u001d����4\u000f\"�������&��{�kKWv� @M#$�\u0000穦e���\u001et�.���@��[\u0016�\u0000Q���(G�22�PE\u000b3�Lz�aV��H��Ul&6��`�����d�\u0018��M\u001bF��Uy����h)H�zek���6\u00182��\u001f��?m4�\u0003:\u001b�\u001fruk��]R��K���6�J,Q�y\u0001&�\u0014t(M\u000f�l1�\r\u00109ۏ�\u0001�G�^���ŐX]I\u0011�`V�\"�h�r-ϗ.��3&\u001a�]���˦\u0013�\u001d��\u001e�{�i�wѓD��\u0000��>�*ʶ�Z�����q�w��h�=F�hȨ1�\u0006�0p�\u0019|HH��Wq��]s���K7�a!�\u000e.R�u��|\bD�s���k��W���]=�P|��k���G��i\u001ef\u0003��\u001a�\u0012;�\u0004�����$�@��tEK�\u001eG�M�L\u0000\u0003\rCm�\"k�.�\u0011�GkV�^�g���+�+��8\\Ϧ��nd.�,��Q��m�\u001c��v\u0019�\u001c\u0006#�\u0011\u0013�}9�x�\u000b�,�\f�Q�\u0006��F�\"=�2��7^\\�e�X�mKF���,��\u0006F\u001c\t\u0000��x�\u001e>\"c!D��X�\u0002 �ƅ�wG�I�\u000bV2��\u0010�A�~��[ڝr�\u000b\u0000\u000e�FF$��\b|�����_���\u000bJ��W\u001a\u0005��+�Yf�C2�\u001eÎd�\u001e��\b��L��\u0000}\u001c�^���\u001a��?�~`�\nPj�]�5\u0007�U}Yt��m�⬱�\u0016s���WO��¼��\u001f�I\rݲ�L��G^D�#\u0002HPE*���\r\u001c�(\u0007�s��\u001d=u'fo�ka�Xe��\u0015-\u000f\u0010\u0018�q\u001b�\r�\n\u0015�J�,�JȌy[V�\u0013\u000e#�_m?\n�\u00008<�5��\u000f�\rHH\u0019n|٫*\u001eD�H.Z\u0000܏��=�鿺\u0007�����d=#z\u0003tG䖅'�<�\u0000��H��,�:���!V\r�C�\u0012��AN�ͮ\bă/�pA�n[���\u001f\u0017�\u001e�\u0000E�%��G\u00158�@Lk���C\u001a��G��\u0014�?Q.n�\u0011\u0014��u�Df$�dVH�/^#��\u0010sMW*�]�8�J�u�9��\u0012��:?��G����W��l�T��5k��\u0001�����+ᛮ��Ǘ��u\\�0�*��?l�\\yv��~G���\r\u000fI�<�i�A0�\u0013ŦXGd&���\u001c�\u0013H�HE�3A��\u0000rj�\u001a�f[wt��\t��2�pb\u0017��\u001e>�/��3?1.u\u00166��Ej�\u0013]�5���4\u0005�w�MWgbT\u0010ߴ:u�&mH L؍]|>�+\u0016\tJ\\@Y����\u001bȑ}r��QrV��M�\u0007hW�\u0011�^����<�����\u001dm���h�y��~���7J;?KR\u001f����t\u001f\u000f��\u001eXE[��.}D�#\u001d��e�C\u001e��0�P�Gxn�'&���.�%Y\u000b2:����xoӏ㜶z��ݴMn�u��+F�;�6\by\u0010?��0'��\u001ba)\u0019n�2����4.v�{Wq�����r\"7yK�\u0005�ܰ��o�&�mӫr�[�{�r\bڋ��\u001f23�Ϥ��\u0014\u0013���Ә|k���O������-v:ϰ�U�}äjA�\n��X!��PP���NQ�mH�\u001e��x�\u0000�9��8ф�Q,��M/��w~q���О�\u0006��a\u0017���q5P��@\u001d�s˿�.�eh./�J� ,�T��kV���A\\�C��N�-G%����\u000f�kIcq*J�A~\u001f\u0016�\u0001$\n\u000e�A�̘ɓ��x�\u000fF\u001d�y�B�Ɖ&��p����c�)ڸ�tA'�x������DI��Wq\u0018UgE3@�>\u0011,G��zr�z\\�K�ǩ��c���\u0016�\u0000\n9�,\u00197��b~/�STp�\u0018��\u000e@oB�I\u0005v\u0004��s���\f5\u0018���\u0011 |��y��qNXr\u000f\\\t\u0007���:��R��!\n�`\u0011~��\u001e�q\u0018�p\u000b�\u00122I@B\u001eF7h���4�v��3���k�޽���]><|Q�3\u0016,п��+�\u0000�\u0002h\u0011�os��`��]Ap��ǫiެK\t�\u0007\u0019X;G%\u000e�\u0012+�����U\fy$k���ņ\u0003yd�\u001d�Q��\u001eբ�M�(�_�E}���O2�^�1��tMF\u001b+b� oG�GW\u0012?�\"��l��k$N<\u0018�\u0018��\u0000\u0010��<}�g��ɐ����W��$�\u0000���\u0000�o�oo�H����\t5o0j�W��ޞ��!H\f�hO�k��\u0000%��az��=\"\u0000\u001f��5�\u001cg�\u0004w�qi�\u0000�>a���O2y;R�5�?]�`�\u0017�M�I\u0012�s\u0011����c���@\u0000�t��[7i���%��\u0003�q<��=�]�=&\\�x��\u00118�t<����9���[�[����,����}ڳ�e���f�\u000b\"��0�la�}���\r�.��8��k1J�&=C=�//t�K(��J�G�����0]\u0017x��n��P�\u000f\u0002+A�ф2٘\u0013�\u0014��c�\u0019\u0002\u000b�-\u001b_��tĺ�(����d��ȷ>���\u0005\n�\u00040��h�a�9������NL��̚��\ts\u0007\u0017@É\rZ�{�\u00020C\u0006)\u001a<��Ϟ\u0011��ewz��\u0016�\u000e�d� �:&�]��\u001c�\u0018�\u001c۲��1\f���.�8���\u0018�m�\u0011#��cN5�O�?�d\u000e͔��6\\9v����:s��D\r�\u001a\u001f94飡�\u0012�H�m��W���ɞ���f�r\u0014��H�\"�N�?m�]9qL���G�\fby�9�W�c���2\r�`��<)_���UOM�\u000e�Sï]늨�޿>��V��\u0006�Ǯ*�=:��\u0000u��*�o��\u0015hxR����WEs\u001aC�\\\b?��*��Ε�T��>��\u0015k��WR�:\r��O�\u0015Y�O���U�w�j\u0003���ت�I\u0012\n�$jz�L�����0�C��r�\"�\u0013G\u001a�;\u0007R\u0014(�&�\u0003l\"$�^o�����\u0016��O�i�����&x���\u001bq$\u0011�\u0000�12�#����:��\u0011�eɚF�!vܞ��v�x���iM��4�F�QN�\u0015Ez\n�#+�25�����}rK��|�vm4y���K��N��\u001e*(E�t26�*�qJҕ�� \t\u0011�!n<�\u0006��M���M\u0014p)\"��=�\u001b6F\u0011\u0012�χt6�a�-Nu\u001b�J\u0002-b1�I0\b�F�\u00042\u00155����B�{�\\�%�\u0001'�?����1\u001b��b}\u001fQW\nY����jA���͎(\u000e\u001fO2�S�z����h�M�\u001aw�n�$\u0005�S�jpJ�x��5 �/�$��O`\b��KnxG��#\\e-&8��5����\u0007��D��� \u0001��ё�*A�Oם�m<3a�l�\u001a�,r\u0004\u001a�}%�y�V�\"�����\u0011\u0014�\u0014���6p\u0002�c�\u0005�_\u001c��\u001d��\u001991�nV\rVYDC!����\u001d;�\u001a���#[-\"��)\u0019O��I!�m��Nh�\u0011\u001cWW@�l\u0002r\"\u0003�!���amCT�o9���R��&��.��\u001f\u0006\u0014|\u0018v�o�9����\u000fI����᧗����\u001eg���pi���7�TH�;��W\u0015\u001eٷ\u0003����\u0000\u0014��\u0007]�W�Dr'�k�ȿJ�-$���I8��F�[�\u000b��k�8$�oJg/��\u0014��\u001d�\r��{�/�}n(od�2�`I+AB�\u0003�Pj�똱��~a��*�9�x��݌���\u0000�^S��>���\\Xj�����Y��Ů��\u0016�\u0002MV�M7�\u000flی�����\u001f�8({��/�ը\u0003&h��\u0000\f��ƫ\"A�7�\u000f�\u000e��JuK�Na\u000b�I�՝��Ff����\u0011 n45�\\�3�f<]/o�r�\b�C��Y���u+�m٤�լ�\u000f��\u000e�*H,\u0000��8\u001e��33�,R<\\�GwH���{\u000e���\u00005Y\u0007OH�}O�\u000fj�T�n�\"���\u001f\t�X(�\u0005�'��rR�\u0003��L���{N����(�#A�žL;��M�u�}L�\u0000uA�\u0018�+��\u0006�\u0014h�ZE�\u0018��^����=3���wm�����6�r��r7`Bю�*k˰>\u001dwʘ�\u001e+\u000f\u001b�=�Q�\u000e\u000b�?/�j�r'���+��w+\u0014�\u0016y�j��T��Qh�'�ZnĚ\u0003Q�lq�\u000e�gO7�~Q����1X�A\u0016�\u000f�R�}��o�\u0019�vvJ�E�k��8�e���\u001f��.��VI\u0015�ۂm\u0011\u0004���T�SC�j\u0006�tp�}#S�#�q\u001fΦ�S\u0016s<�\u000b�S\u000b�Dn4�#�T2��M���S�d$z�k�2\u0001\u001e�\u0000'��\u0000��zy��/w\fa�!� �q´\u0003�@\u0019�cn�5\u001d��}��O�@�V�|\t�q!�^_\u0012�FԠ\u0014\u0019��$d߹����C����\u001ek�Q�Ճ\u0002\u001c\u0018��v Pҧ$ :�C'��z�>�\f�\u0006X���5�\u00106�&��9>\u0018כv)Է|��\u0017�\u001b��D���4�<]��ǟl�}���h壙��6;�d{��w{��?�@�\u0001�A����\t.�z�i�a@R\u0012�qBW�\u0003�\b\u000b�;\b�|�zq4GVO����\u0010s�\u0019\u0007�U�fR\u0015[�~���\"$LkO�clY�s�,��G\u0003J�#��M�\u001b%qP����\t���\r‰(\\!^`�R6\u0000�hB�e{\u0006�M�\u0013�\u000bV1�O\u0011#�nM\u001dE\n��E(A���\u0018�E\u0013\u0004���;=TA�Onb��U��\u0004��\u001a��\u000e��\u0010\u000e�g\fO>N\u0014�\u0016�#�,Γ\\�4{vn3���Gg]�C\u001bN�&p;\u001c�Î#�����%��?+��5u=c̟��\u0000�~\\��>���\u001a�K\u001bX�(���H���%i\u0014BR�ƼUI�;�ܒ��O�\u0019dɐ�^`��\u001eoK��1�6�6R#�8��;��y?R�\u0000)<���R�'O��\u0000�y]<1^y�ZwHd�5R��#���Kv�B��W���\u0007�\r6-��G���C���j?5�杈W�w\u000f�^���e�Zkr�/n㙩��Y�HWn<�+Z��䧧�6f\"=�FP��.�����uy��4��\\��Ֆ�;ˡ�Ǔ:��w4���\u001eY.U���BF�\u0000}�<��\"�K�[X���\u0000j�U�\u0003e�KYx�{\u001c�@��\u001e\u0011��0���\u001co�\u001d\u001f��{�\u0019.�`NJ�=��\u0000&�#\u0012\u0016�\u0018\u0002@�m�Db�\u0019�^�&T?�C�k�\u001d29�\u0000�dH�c���O/\u001a\u0003]���sa\r&i��\u0013÷GY�]�\u0004�D\u0002O1����/�s?�S�9�\u001f��̻�/K�A!���֍�\u0016��\u001d��t����h785���;G\u001dkqF`u#w��b�N�'�\u0016N\u0019\u0013��\u0017��=_�_����Ӻ���o�o+��êKoc'�t\u0018���4�!\u0013�c��\u0004L�\u0013��59罵�\u0000\u0003],1�Q�Y�\u001c��F�=i�{7۝O\u001c0v�/\u0013\u001c�q\u00006��w���yw���\u001a�\u001e\u0019!���-�[JP\":L\u0004��aN!�\u0003�q�?k�l�CńN�������k#ςDu��y=�\u0000�?���,���=SLe/�ٹ��QTsE5^\n*\b۶m����X\u00042�\f��c��\u00194\u001a�9��8�w���_����5\rB�W���{+;{G3'\u000fRi�|Q5\u0000a�P��\u0010\u0004�H\u0018�{~���)\u0013\u001c��\u0000n��+Y�\r��ND�\u001a\u001e@l9S~@f�s�*��ȝ�3/,��N�py�����\u0007�O�[�->��v�\u0001���b��c�~h\u0003˄���o��ǰ9��W����\u0010:\u0013�\u001d���j\u000f%+��;�\u0015�v�����V�\u001c�����~�U\u000f#P���׽F*�);{�Ҹ҂�����b���r�M�Z�Ss���A�k���+�&3_��\u0019\u001a�>kߧ���l?zz%�\u0017\u000b\u00023�\u0000\u0000��]}��\u000eh;\r�<�]�f�������v$uݩӑ� ��Ӂ��\u000fZ\u001f��\"}6�u\r\u0014Ly\r��ھ5���&\u0011�P\\,�!^�i��ax�4\u0013pJ\u001a�\u0006�SrI49p���A\u0002��?=�\u0014Ldl��\u001e��Z^��}G�v\u0012��4��j\u0017\u0010\u0002�����\t&�>�\u0003��ٲ�غ�.�j���\u001b\u000e��:�7��=v�Z\r1�>�9D�\u0013�ˢ��D�)\"�$�5?��5b\u0004���0;;}\u001fj�4(�C�g\t�F�\u0007�\u0006;h���#���1ƗO72]�\b<[\u000e�i��x׉؞��m���lg���1�iGc̽/N�\u0004z�\"\u0002> ����k���#}\u000b�����\u001cr\u001b��\u001a�y�\u0014� ��?�1s\u001a\u0001�Ѐdm�B��������\u0003�܎K�4\u0003����1J\u001c1�:S��t�LU\u0012�\u0015�x����qU\u00064��1W!�=����n���oj\fUL1�m�qUB~D�W��+���\u000f�i�{b���G��>g\u0015AI��@?{u\nS�E�&�2\u0002�\u0017�|�\u001b�\u001a��*\rTH�v�\u0004�򌚭. NL�\u0015��8�?�\u0013�b�\u001f�~\\Z�Fk�t��}�i\\ėk�c����\u001b���y����_��՘�\u001a.�\r�o�\u0019o\\�L|#SS�j�\u000e~ސ5��~r�~>ND;>Wyd\u0007�2�i�8<�b��B�8��O�\u001d��\u0013�j��\u000f\u001e�����\"�S\u0018��\u001b�\u0000#��\u0017�1o2�h�i�n��_�F�7����֑�Wr��<�z\u001c�'k��\u0002x�\u001a�\u0006cA�G�\u0013~��E�\u00009o��\u000e�q��\u00002\\[铨�;mF��J;�x��X�?\"A���nә��#�B��K\u0004%������|���\u0000�˯�}7�+���V��ݧ�\u0017�W\u0006�\t���5 \u0006\u000b�\u0015�ͨ���,��\u001d�/��\u001c�\fA\u001d�{�A�\u00009\u0003�+ˏ�\u000f2����+��i��\u000f2�곯?�@&vxe�_��h���4�c6�[�X2\u0018���Y�����ǡ\u000eL�X�8�h\u0001�Ͻ��E����\"�PM\"���BS<�<1��b��w��u=��>�K\f���H�[o�^gU����bd6<��\u0000s��\u000bk�'��w<^�Ա�\f\u0011\u001fQ˷R�`\u0014\u0001ۦt��Mi�-D�D`,���.�]���xi�Fs�����\u001f4j���\u001b/Q�\b�+�\u0003\u0010�+�q��W�\u0006i3O��>��݁G͈O�ܵ�&i\u0004\u0016\u0011���\u0018�\u0011�\u001e�\u001b�'��ț��\u0019F�����������\u0015�\u0000�޽��f�!\n�Ŷ�5ڛ{��\u0018A#u�ꊂj�O���:fDO\u0010�Jk�=d�ѵ|_|\u0004�ϒ��%d=+�ܑ�{u�,���J�\u0004��x�\u0002�IRw�6G��'�jq4a�;\u0018����\u0000L�\u0007�\n�ǯ�]�]\u0014��&��?��$\r��lԯ\"\u001b�m�/n��\u0012z!�~�S5k��;}4�W���\u001f蟹�\t�\u0004����\u00007�P_y���K\"���\u000e�����:��f�ݳܻ2\u0006\u001d��u�a��>5��jr\u0011�㗼n^o>�m�]�ssx��F1���\n�T\u000eGB�m�h\u0013\u0018�\u001b���\u001f��Y\r���W�\f�j�\u00141񚎨\t�\u0011\u0011\u0016�P�\u001dwl��GNh����� ��pJ��\u0012D.a^M+�<��r�d��r d���\u0004Ȁ,rx�������ꚝ��j�\\7\u0012\u001e7Sr1��\" �\u0016��\"(\u001b\u000e�ff,q�\u001b\u0013��x�,��%o�\u001f7�s�u\u001b�gx�I\u001cr0 �\u0005&S0\u0001�\u001f��\u0001\\͎B\u0007\u0010\u0017�@�y�\u0000\u0017^l�M�����\u001e�m���f��\u0000�\u0019&�x�\u0012�X�u\u0004�W'������\bX\u0015l�4�\u0007Eex��g1�0�<��2r�C�-h+ܚ\u0011L�\u001c�A�\r9c�\\1\u0007m�\u0000������mm��`�KK�b�[U�\u0014\b��\b�\u001c�'f\u0014���!��)� �ϟ�FXf#��\u0011��;��_j�S�u42�l��s��L�F�\u0015�0'��٫Ṻ́�%�ͧØQ\u0000�9_�w�j~S�Hg��on X��)X�II�!�����785�'� \u0006��S�Ќ`�\u0019 \u000e������\u0000��\\����[�B�='^����zz��k���MN�\u0000�[{���@�Z\\\u0007.I\r)�\u000b�<�����5>\u0004a��ٖ�Q�\u000fK�\u0007������,|��{\u000b�a��\u001d7Q�Ts�T[�\u0007��\u0015�MU��T��\b�\u0005��Ө=m���f��z��ҟ�o���(K\u001f=�\u0013z�zƱgo/Pl,�=\u0003\"�\u00011�d5Ol��u>\u001fj�C�H\u001f�޾OI=1�٣7�x��ȟ�'�u���k*��e�kV\rO�ւ��;�\u001e�Lxe�u�9DY���ѵjzNZ��Ƅ0?�mB���S�\u0010i���A\u001d�A���h�ߘZ�q\u000b��mZ4;\u0012�[i#\u00145�\u0001���8����%//���:fR\u0000���?7��&Y�E~\\�1M�j+Opk�f�\f��\u000e�>���r�?t�\u0013|�.��Y�14F\u0016�\u0012�]�fM���} M7>��L����\u001c\u0010��B\u0003�wy�P�]M�\u0000c~f�_�G�>mՠ�4��� S�4m_M\u0015T\u0000Ŷ*+��bTO����\u001f\u001d���\u0000�\u001f�\u0010��z�ܓ.�p��\u0002jjN��\u0019^!��\u000e�\u0005و�x��?xF���p\bj\u001a7�49�,�mK�\u001b�\u0011�w˲8p��[�su<4�K�\u000f�cʵ��\u001d,e��\"@���|\t����\t\f3��@�����1b?�_�\u001f5��\\�?B��\u0017\u0002[�{��Yx$Q8شJ~2�S�\\���팺\\G\u001d��C�:\u0000z����=�ٸ�\u0019���T���eL�w�'����%m���);�$�N�N�^O���0���\u001d�\u0016G\"���c� hh\u000fݐ������:�����d,�M\u001b�~\u0010\u001b��k�+߮m�S�=�&�\u0012�LFč��\u001eS�\u000f�i\u000b4�\u000b�\u001f�\u0018+�tbF�j��ٸ�G`b<�N+7���}k�+�F�|�g?�7�\u001d?��\t�W\u0000%6�d\u001a����>\u001c�l�1��E����O�8�X��䩣\u0014u��J�*\\7�^,*H��w�mF�~N�06j�\u001f�~\u001e�\u0000�F�p�\u001eaա)�\u001eva��\tcZ\u001e���<_W�N8��+�.!�o��\u0001��K\u0004�*��(x�5\nG�J\r�\u001d+޹���\u001eA�C$d/���i��\"$ օH��4\u001c�W��H�}\\�O}�<�\\�u=r�\u0005��L��I\u0000\u001e �V'���}8{?�g��CP7�$K�'��s���N\b�4���D\\}��yz�|���\u0012$F�'�\u001aִ`Fԣ\u00023�a�\u0018�\u001d�@ �\u001eO\u0019�V\u000f>H�\u0012�OA�szi\u000b�13\u0002Y���SԂ�e�$��r-r\u0000�gvz�\u0011\u0018�)0�j�\u0005)ӭh)���\u0013�o��d�\f�\u00161��x��\u0000��v�Մ��%�����P:ԛ[��\u0006u=��x\u0012�Q?�:�^\u0019q��\u0010~G�<�D�\r�op����y\u001a�'�q�b2��Y!�,l\u0006��Ej����m�V�JR��7�lŔ�N\\GT�L���\u0010ȪŐ\u0015 \u0010K\u0000jjv�\u000b��\u0011*69��zU��T~2H�Ebw\u0015\r�]��>��\t���d�կ�#�d2=!u%�kB\u0006�\u0015�\u0001����m��˧������Z<\u001es���|�~�5�����>�/\u0002\u000b{]CV�Ԗ�}NAf��:-\rENj51��A��\u0010\u0011�s?\u0007*38t\u001e\u0010�e!\r�m��\u0000���e�UԼ�cyvC?�f�R�(�Q��\u001f\r\u0000?:e��\u0019#bU\u001fw�p� #q�\u0011�۴?��{�\u0018c�\u000f$i���I���\"�zj\fPIE\u001f��(�&d\"\u000f\u0011'��G�Ÿ���\u0000���~Y�wG�E�?>����+$��ZjZ��A\u0001\u000f�\"Ck\bw\u0000uj\f���~��N\u001e/;q��}\u0002G���餂mc�q���+=o�K�7�\u00171�)t�+X�:\u0014S�\b*M��j7\u0011�\u0002�(��A��uя\u001f\u000e�\u0018��̺�\u001c�\u0000g&�\n\u001fu��>�����\u0000�v�^�i�s�\u0017\\���$�\u0006��뿙>f:�Q|B\u000b�V�;+X�֯\u0018]�S5��\u001c�1��\u0003�#�\u000e8�}G��t�L���\u0007���N��[�>UO���\u001f?�\u0005������\u0015���/����_׼�1��c�)\u0016f�ULNE\u0001\u0015�g\u0016oiu�1��)�v<&#�;<��\u0003D\u0004���%!b�ϗ$\u0006���:�Pˬh?��\u0000�������i��1���[w6��I�5\u0014&��0vohg�t��~�\u0004�}��i���}6�O�\u0003�U�=��N[�ʖf�\u001d\u0007�+�Ȧ�X�\\�~^�� ��s��qrY-��B�pٛ\u000fep�L��rH�\u0000:aǗ����Ť���lM�s�ͬ��/���Onc��.*���H#H�*�h�\n\u0002��S1��\u001f��O\t��ND����^$8�[�/j�}K�_�\u0000?\u0005�\"���\\���3�D�Ep��(a%\u0000���+��K�=��(�@\t{�����w��98%q=�������?��\u0007��mM�;�3sX�s\u0014v�1��H�\u0002A1?�^��'[�ηC>\u001cS�v�]���V���ڸq�0��Q��s�}#W�޷l%�gR�\u0012I\u0014n��N���+��\u0006l:�<�8\u0007�ӵœO�7�o&I��I5� !#@����zx\f�v�#\u001c\"z�˸�\u0019f���\u001a\u001f\u0013�v���ޞ\u0015��;�Vf��\u0007���PR7����\n�\u0014{څ������SD�=�\u0000��\u0015A��ޝk^���C�T��)܊\u000f\u0013���D�c�\u00075I/m���R{�s��2q�9r\r3�`Ǵ�-C�\u0000\u001ao�}�9`���h=���l�\u001c�ݪ�=E�����X4yOB�.��\u001ehi��\u001ck���O�M�g.�g��@��{j5��\u001f�K����qo��\rZv���wи�����6�_�z^����E\\\u0006\u0003c�\u001au�s#\u001fg�\u0019\u0003��g�I�\u0010�8�[�1X�S�\u0010�T�@'�z�̈�h�\\�)���:o�K.���)\rc#ePx��\u0007�5̬Z8��i���\u0013�@syw��0�Е�'���1F�\u0019���+(\u001b�+��\u000ff�?�o\u000e<�o�{fZC�D�i\u001a\u0000oj^F�H��׌\u0017�˽���\u001aI$�\u001a�'�B�\u001c��m��f1�\u0011�\u001d��]��\u0019x@FS�N]L�n�F��]��[��q��5�\t�h\u000el\u0019cRؽLtڬ\u00198�ꏽ��5�MJ\u0000�l���:��\b��2�\u0003��\u001c�\u0006mDr� y���V���5��X\u0018�\u001d\\P����k�\u000f\u0011�$�u\u001dDe��F�܏�l�\rV�0�\u0001���A\u0006�$N�� ��;�\u0007Ϟb�j����\u00021�i�\r�\u0000ރ�mp���'C��c9�\\t)�^N�V�!���G�һ�z\nW�1s�$����d\u0011�<^����~�e�؅�,�((C���w\u0007}�_(�2��C��\\y��������K�k�{-�,r\u0002Y\u0007U\fw�3'O�\u0013�=�n���j�V1�|���\u001e�M�d��\u0019 ��\u001b�޲\u001eU\b\u000fS\\��S����C�dz�\f�O�1;��6_)���1'�\u0012(TP;\u0001@v\u001d���\u001f[.nN�ɟ��1;�\u001b�\u0019�\n�D4=h?ʦ�9��18�\u001eE�jqdÓ�\u001fPz\u0017��E�\u001fU��iʻ�����\r^#?��w\u001d��c��ʞ��\\(���i*�~\u001f�i51�{����\f�\f�\u001f�v뷷њ�~\u001a���\u0014�����X�\bH9R���u�qTz2�\u0015#�oኡ�`;��V���\u0012U�*\u0007Θ��2\u0011���G\\UG���C���p�O%cZϚ�t��m��n\b��k\u0003���Q@\u000f����!�\u0012��\u0000���Տ�\u0006��\u001e�[��yn+\u0018[�˩ܬOdzzQ�a����L���~\u0018�䐏ٹD��1��;?�\u0017��ޥ��jj���-/O\u000f^Io�\u001e\u0003�9\u0015;{eS�v�_�q�\u000b�L?�t\u0010ۆr��\u001c���\u0017��[�M#��,�\u0000��\u0014�Rjr���(>>�\u0012|�}�?�zxu�\u000f�\u0019�!/�Z_6����\u001bP��M�����^�JF�\u00001��kd}�#�����SY�����\u001aO/��DyK�a���5��+F�F\u0003����\u0000�mD\r�>3�c!��e��#[��[�0���?΋�\u0012\b�#4R�\u001b�Ԛ8����F#.j;d'�\u001d���\u0006\"oc��\u001b�n���fOu\u000f��\u000f�o���ai���%��@\u0016��9�i����I�S-��޶p#>\\B~BG�5O�\fQ��\u0011���:1{���۝V�ꚟ�M͋�\u0004Ri:|j�A��4���\u001b�Ӷfc�V|5<��X~��8�=���a\u0000<�|����\u00008Y�[�A��槗f�\u0014��k�mլҠ�\u000b=��\u0000A�H\u0015\u001d�2�쮷����\u0000�\f~�q��N {\u0001uП��\u000b���ߚ<�h�_�ߞ�Y�����Rj\r�}:��X���վ�c6�a��i�����\u0006�W\u0007�\u000e���d�\b\u0013����^@�o߷����\u001d\u0011#\u0014@\u0019z\u0019\u001d�T/�w��\u0000�����_���Ҽ����s�v}_��M��7��T5��s[q!\u0003n\b��\u0006l�;����d9N/\u0017RO\u0011�C�o���Et\u0002\"�\r_ok5P1�Sឃ�>C��?�O���t�n�K�ZkK\u0019/��\u0010��(G�!�8�\u0000U\u0015\u0002��it�ɖ\u0010���^O'��dÇ.HK�\u0018�W��|߭�ak�^�TM\"4���\r�X�u\u001b\b�x�\u0000�`\u000b\u0000vT\u0015=p�I�\u000fe�Όo�'wp�\u0017���=_m��;B{a�/~`�m�y\u001b�\u000fz}�-\u000e{�ŔH\u0012�ݹ:5y� ����E�?,��܏���49\u000elJ�ťm� ���\n�ɪwi\u001a�,݇\\���\u001b\"7����������ؕR��\u0002:�\u001a�f\u0019�����K0zo�6����BX���?\u001f���Z*\u0019(E~b�����@V�P�,�To�ݓ��I\b�߷~��\u0000k \u0004��^���\u001d��\u0000���o�,#�6\\\u0014�F�\u000b\n�����9V�h;���e��A�Vޝ�\u0000�]\u0003�ь�s��ԉI�A�>f����s�҆��G��\u001e`��\b\u0010�:\u0006���^����up��\u0011�*��̇x��ߥx�\u0001��bO�\u0012�M��\f�s�L���w���\u00155f{뉧�T\n���\u0003���\u001f��\u001e\u0011�\u0018�\u001f�@|d܉�>�\u0012~{�v֏icqu4�\u0007��FcψzI!\u0000�9�)�2D�\u0003��4\fG̈́��Zn�3���'�\\F]�\u000f$��J\u0002��Sͩ�\u0000́�S=��ɵ|��u��.��o��P�����׋�x-��X���\"қ\u001e����.*c�+�}\u0005�\u000f̿)��\u001b����ʳ�\\@n��e��)�ȰW��(�ÿ�NB�@�@�z���=��V��en�\u001bE�$j���3�Ś��R�O�\u000e\u0019\b�adJ�\u001c��f��s���cR���1R�H(Hۉ����[ԋ\u0019\u0019\u000b�\u000f��5O'^���7���+�\u001d��� �3\u00133|L\n\u0012jN���w�\"�lfe|�\"|��[�cX��\u0019n�,��\u001c�)d��������\u0014�v̙JY\"A;\u0010�\\D���6�{\u001f�/��+�rW�[O�$_�w�Ѣ�y�ڶ�ny�kx\u0017Ⳓ�A��=S�ym�\u0001�[���Oic���*�#�\u000eu��/h�\u001f\u001e��Nh�`\u001a?�\u0007��[�u�R��\u0016��\u000eǓ���VnmX�g�\\ӯ�`��䄯p~�{��S��\u0002A\u001f{�\u000f�mN��ʫ&��\u0016�\u0012_G\f�\u0004!�]T\u0004���D�(\u000bv\u001b�Χ���Z�\u001cd\u001c�6<��_�2D�\u0016%\u0018qo�]}�\u001f\u001a�{yV��G�^�\u0000\u000b�G�7B� Ќ��Ŭ�����Ϻ��oo)�\u001bc��g�ŗ\u0006��.�����;�=6|f6@�\"\b\u0007�5��\u001e����-���\u0006�\\���.�kl�u��,���C�7���ۋ�U���\u001d��q^�g;��d�j��+1�C^Q��WM�E\u0018��Lx�\u0013\u0018D\n�H�|�\u000f��\u001e�u�{��-}5%H��F�Q��\u000f�)���U \u0004�]\u000e�\u001cg���-t�5���\u0005�\u0016��а���P��0���b:�Zf�M�\u0019HǨ L�\u0007���\u0017��vl�D�ü\u00071ֻǗx��y'���\u0000�\u000e��\u00008��h}FCwi\u0005�\u001f��׹�\u0005wڣ4>�c8���d+��������=��#�[�_�������m}|Ϭ�,\u001eI��\u0000�f\f\u000e�{\u000f\u0016������F��q�5���9\u0001�d��&��?@�ޛ�-V->H�q���^B����=�n�}��6�7��,mS�v���E\fH\u0019b�_�\u0015\u001d6%w\u001e9_h�93��UN�E��?�$��}K�9|��n�s\u0011�+\u0000�D\u0010�j�\u0000�Q�u�њ|�Go���.\u0001�TA����p����5U��K��8d\u0011�v����a��w&I�\u0015\u001e�����\u0006\u001c|�\u0000��O7w�p\u000f\u0012c�\u0003c�o�t�~��y�F�\u0000�v���'��\u001bX�/,�R���(\u0002��ֽy\u0011��\f�n${ˆ��f��{O\u000fg��@\b�u�\n�y��I���\u001a�\t��\r���)�_y�R�<թk�Ħk�JS1\u000e��\b�ق-�\u000b\u00189��OV%�!��;���}\u0003O�\u001e�\u0003\u000e!X�H\u001f��#Xz�%�?w0�2F]@b\t\r���^����\u000b>:\u0014\nq��I\b\u000b\u0018���'�#�\u00126̡R���u�/B�1\u0006Y�B��ɪ�J\b���\u0007�3Y��\u001b7c�\u0013���& �W�\u0000~\u001e�;\u0012\u0018�s�k�r�|V��uA'\u0019\b\u001dJ��Em�N�\u001f�)L�I��`���(*\u0019x�իƢ�7~�#!�l�H�����\u0000\u001b4d�\u000f�'v#�\u001fj�L��\u001c\\%ω���^�M\u001f��K� x�^�~�|se���1��?#k��m�$Z\u0004\u0000�*�\u0014\u0007�:1>,`�t�\"D\u000e��#�>g����%T��t�����\u0019��*\u000f�jrTr�����b�h����C�cX��Ut�f�%(�\u0005\u0018�\t\fO&\f�b{��\f��b��u0�[P?o��|s�\u00009s�7��E\u0019<��p*\u001a�rz֤��C�n\u001c�GN���_�y?#|�Y&�q�Q��T\u0002ʼn\u0002����>�Q�'���g`p��y&��y�T\u0005�B��\u0013�;��\fŕp��7\u0011 �;O���h�hP�\fjMj�\r+��0.ɐ��✉�z>\r����1����r\u0012�ڴ���2��z��+�!ҭ\u001b7%\u001d��v&�S��O3s���N�]���r�TI�ކ�5����9�f)\u001d�\u0016o�v`�\u0005)�q�&-E\u001a���b���-�����\u0003U\u0001>���\u0000\u0005���\u001cd\u0018�q'w�_�\t\u0016���� ��9\u0017����\u0000J��q؍�}�6΃�r\u000fX\u001di�e��=/�\u0005�u�4�vj��\u001f\u0002��X\u001d��*\u0006l�O&�F&\u0000u\u0001���:4d�Q�&\u0001���2��\u000e��\u001aR\u0015�7'\u0019\u0000�y7k��y+̐@%EyP�H\"�\u0015{dbjM�#��k=p�J�]�G-VPkA��\u0019|e���P���}\u0006D�� �f��lH�˄���a�g˗���ϐ��?X�ޭ���i�v�gp\b\f�j��p\u0010����\u001dFk���`�)\u0000\t�\u0004_#�n�M�@٨J`y���G��'�p��\u001eh����|���e�����B��w\u0016\u0011A\fG�nX�-;�\u0015^��ʻ3]�יx��6�����=\u0016=\f�\u0011����}�rտ� |�\u0000�����?&4=W�\u001a��\u001b�bM���6�]ֵJ\u001b}#N�~&i\u00181^��\f��><\u0013\u0010�\u001f\u0017Y�\u0001[~�Q�\u0014\f\t�8�Ud�����X�\u0000�6�#�O���\u0000�\u001a���w�\u0007�|�{��l����o�/���e�\\7)4Q�jpϫ���\u0018��(�M�\u001a��m�I۞\u00169�'\u000eL���z\u001e}/�s���\u001d�2J8}X�\u0007��\u0001=@�e���?O���i�\u00008E�]\u001d��_�\u0000�s��LZ�����\u000f2�^q�,��yk\u0000,z���\u0019�v���y3�\u000e܁�>Ɯ��\u001e\r����{$��d\u0007�\u001f���?��<��o6�$�^'���+-\u001eMG�CQ��+)o��+մ���4i$��/�/L���'�:]\u001eMg����\b�T����l\u0013�{\b�ƃ&lx;KC�ˊR\u0011&&Bb�\u0016(�ϧw'�7����\u00008���'[yS��V�\u000f�,m��M�S����6r\u0011H4�ۅ�Q��>@��\u0018.yF�/�Z�Y�h�N���G\u000f\u0011�\u0003c�{�f.��i|\rh���a�I��M�>/���\u001f�\u0012�k�m?-8,4I�ݥ�I�u\u0005{\u001b��\u0014��v\u0002:�\u0002�V����npC���Sˎ#��\u000fx��כ�پ�������\u001eRv��h��`���\u0000�\u0011\"�Q�n4}+�\u001aY�TjZl��C�u��˓\u001a\u0001Zo�+SL�=�\bn\\Qڹr�\u001d�7_�6���\u0010�HҬ\u0012���� \u0013۶ٝ����\u0003\u0000\u0005�N�U�͏ �+�O�7���w�uĮ�\u0003�\u0018�Ҥ\u001d��◇0.�f2e�Ɉ�!�Z֩�Z�:���¥jX{}#6xa�@\u0012\u001d.�6�\u0017�\u001e�n\u001f��1�$��8u\u000b�\u0016�o�O|�=���R\u001c�\b�ֳ\u0017�cf��ƿ��wX�jI$S��|e��\u0003dǶ�#R����}��v��\"oH�����.��y;;�]\u001a.F���y\u0018\u0012\ro�U����y����\u0010}+G/\u000f\u001aU.'j/\"�\u001b�L��#��4���Os�;�]\u000eYv�mGW��ฏ�\u0013׻��J�Xi��-��\u0019\u0006R\u0013��\u001e\u0000\u0013�.���FF���(��\u0002 (\u001d�w�dirX�;\n\u0012j?\u0001�b\u001d\u0016I�9�㴰��)E��\u0015���p\u001c~�*\u000bS����\b����$��9\u001fܚ{\u0007���<ӧ�@d`e,{��x���R��n&) '�n���׾m?*.�..��O')J�\u0019V��\b\u0019���s\u0012\u0004�l\u001f�؂;�Yt�a����2d6����\u0000(y�+�S\u0018p$J\u0010+��\\�j0�\u001bw�]LrD�}OzЯ�֋Ȇ!w\u0004��>X�/7����.t��˖7no#�=Vݘ(��ާ�9,z�G�s-\u0019�X��\u001a#sͫKX#J�\u0015^4�\u0014�Sl�R5a�q��ty\u000f��r���F���q��]��A��\u001eK�\u0005�x���c�Ds'e;]\u0006c\u001cn%\u0010� �4\u0015>?Er�e\u0002�Dtr�\u0012�\u0011ٙ�A4�D�7��(@?��5y�K7 �\u001a,�MF^�\u0006Y\u001e�NʫO�ڹ�t1\u0003wf;^R4\"ԗs\\���׸���|�ZX\r��`�,�q\u0010�Mi�\u001a�\u0017�O`£��4�3?��#�-�\u001d�\u0007�\r�\u0012[��\u0017Ἁ����\u001a�\fž����yq��\br��\u001aB\u0007\u001cd���PJ�s\u0000�܍z��\u0001�GG��U)c��e-v�\u000b\u0017j�\u0015�&K�U�q\u001c\u0000(\u001eŷ'2�vf�G�>R|�+�q2��1��~e_��m;��&���͞-\f!�������,��Cɱ��u=>�5�\u0000>���Vջ�uR��\u001bCI��R*{�V�%��%\u001cW�rc,�'�\u0018����'�\u0006�~5�'���0�G�\u0012MA��������r��\u000emR�OT\u001b�R��\u001e\\kN�\u0011��F\b���'Pb�íK*#�T�JҞ?q�\u001d�[$�}5~����Ol[�j\u0001Pv���Ӱ9h�F^��k�\u0013[�3y�n��\u0019*�\u001a/ \t#���\\�i#\u0003�٦Z�d\u0017\u0013�\u0014��m nL�ԫ.㉭\r\u000eْ0\u0000z8gVd7%����=\u0017\u000eį �Z��\u001f�\u0004Ԛe��x��\\��G\u001f��xg�M�k7�9*�x�\u001f�]wF�Z\u0011�M $�N��&\b۝<�D���\u001d������xt�\t���Vf\b�����F��\u0014��\u00185�\u0005g�~�_�r\u001e�(\u0007�:��]�\u0005\"=��>\u001a�ڒA�a�{g-\":=�ۛ\u0017}j�\nF\u0012YHj��B\u0007\u001a� \u0002X�•��\b\u001b��l7�����v�Xy�\u000f;y\u0017C�\t\rpm���7)wj=)k�ȭ~G13\n��\u001f�@\u0016�\u0013(���~-���@�r%\r(W���}$ȁ�2��\rCS���@��G%{�\u0000O�\u0007&W\\�L���x�t��Ưލ�\b�m������;�rS�m\u0005圱~�\u0012Tw�\u0019\t�\u0015�3Dֺ���\u0015j|�z��l�\f���%�z\u001e�ܡO���2\u0005\u001emG�\u001eo?���\u001ag��\u0005�L��\\y�����6�,\nE(jZZ`0� ?�.1��.>�\\\u001a<�=0���,�U�3\\�����t�x}zl�HԪ\u0006$~�CAǶ{�8�\u0012���D_0)��\u0000���7���yo˱J\u001aWhB�\u0007i\u0003\n�f��\u0011V�~�ّ��g��1�LH\u0000\u000e#܅�?��䶱�\u001a�1����ل\r\"7��zr\u0011�O~M�''\t\u001c\u001f��`!��]����f��\u000b�F9.��/Q��k\u0014q0r\u0014\u001f��qZw>�I�O�F\u0007vQ�:��7��^^�l.'�ԣ���n��쭥\u0006N\u0012�Z\"�P��@$�Q�\u0010�i�\u0000,����2͏\u0010&d\u0000?\u0003�!a��򥰴{�v+[�x�&Xfu�H@&'m�8\u0002��\u0015�A��#�\u0003=��:�2��9^â+�Wu�^�Ѽ�\u0004�J\u0019-d��c\u001f\u001f�졕��ң�]\u000e�ɹ�����=^2c\bJ�=A�GrK}�\u00009\u001f�Igqk�^�ws'$�̺Ep\u0018���ؤ�)V2A�\u0011�s+\u001fdd�G\r�V����;C\u001e8K��� �=�S\u0013�����v����XuF������Κ��\u0016�J��(��PG�Ѕ?d�͹�|ߖ����!���S���w�\u0015\u001f��/�/������ď�{��\u0000:�:������\u0005ޯ�w��k\u0014�y~�e�\\��w�۩�G�6��9[NQ�\u0000t,*G��\u0003�?dkt\u0018�#]�\u0018�J\u0011���].$�A�.�ڞ7����\u001cz��4q2�)��CG1\u001a�'\u001e��G~W^��\u0000�L�\u0000����\u00005��e�]cͶm�-.\u000bX�׾�\u0012��� \u0016�^I}6��\u000e\u000e�w��9����\f���:�.3�\u0019� \u0003Q>^G���������ϓ�*\u0000ny�w�x���/�<������_Ήo!�;�iג4\u0012�n}k\u0014gnJA\f�F���\u0016#\u000e����D\u000f\b�]_#��ω��e��XCk ��G��X�󐷚?�_���n\u000e���0i�\tt�Q]5-Ml��\u0014�5uP�o��G�\u001d\u000e�v��.=�e���@��7���ϛE�\u0004k�\u0011���j��\u001c�\u0012򗞟����^�䷝�Ѯ\u0006���E��qu\u001d��M\u001d��fI�څ�'�z\u001c�}���\u001d���ɦ�\u0007,x�A�_��{�\u0000f�Y�vl���\"pʄ�������\u001f������+�\u0011Q\u001ey\u001b�_\tI��_j�C\n��3�r>\u0018��7!��\u001f�:<�5-sM��m.i�j��m���Iڈ+R\rE3/��]�Ȉ���\u0000����\u0000<<�y�գ��\u0000��T�i6��闞n�\u00125���A��6�{j�y�2�(\b\n�5Wa���\u0016��t\u0018��\u000f\u0010q\u001e�\u0003�ǐ�ۅ���;\u001f����8�\u0004��J�\u0007�\"\\�R\u001fV�[�'G򖉣�c�v���.�n��\n/\u0006\u0010 4�\u0010\u000f�<�9�\u001a�Ĝ�����\u0018���EDw~;���fˬ��Q���\"O㿿��\u001f�:��z{�a\u001c�3�\u0005R$�UX�\t\u0001\u0019��zg1�����\u0012��?+�\u0000�#5��v�L\u001aJ���J�g��\u000e�)?\u0002ׯ�h�f\u0004�\u001eoG�Ә�4\u0007\u0017>+����ŏ#\u000f=~s�2j����X[�>=�\u001e0��`d,\u0010�_ʳ�֟\u0017�\u000b��\n�ڥ:\u001alh<3_������kٖ@��P1PA\u0000\u001a�SZ��9o�\u0006�_j 7d�s�Q\u0011�\u0005`h懍?h\n}�GL�k$Hs��E�l�B0�\u001f�\u0014\u0015\u0005j\u001cq��V�v;S4\u0019nܼd]$�W��hJ�J�\u000f�\u0007��T.���+�d�<�\u0006!�]\u001a8C�T���\u001b�,\t\u0014�\f�'$�\u0002���\u001a��3��\u00107\u0000QO򍺒\u0007\\Ɛ\u0000��D��:]�\u0019��AYG_�\u0003��x�L��hߛ)n+���\u0000$��,�\u0015�P�Ð޴�GN��gE�\\X���\n�H��]'�R[�FRibj�8�@\u0005��M<3\u000bP\u0001ݿn\u000f��S�qs�\u00061�Gauq\rլ�Cnd�F��\u0012��D���$x��E!8Q7/�/'K��\u0012\u000f@N���O��\u0015u�.N�\u0003\",'��i�\nh\u0007c��g�=y�BDa�n��P�;�ʱk\u001dR�1X�\u001d�iU*\r8��̌ƔHX\u001e��\u000f\r�\u001awb� I \u0012jۑ�A�9,\nvX�s!3�\fFG\u0003�\n�H\u001b�n�w;��#}�7'\u001c�|%�\u00009/���g6�d�=KL���\\&�'��U\u0004nQ��ƹ�vfC\n���Ӫ�2I����_3yg�Q�VP_\u0011��9E��\u001a\u001fN�\u000f�Tdb\n�5\"����N 'ר�u��8��\u0017U�~��iZ���\u0016��^h�� ��)�2�j2c4\u000e�\u000e\\Q\u0006�㽒��\u000f�z]���\u00123�\u0013P�_�.��X�\u000f�S�\u0007gj�\u0019\u001bU8y�G�k�C�\u0007ZXe��iJ����\f\u001bw\r\f�FCt5\u0000\r�gW2%\u0000G2\u001d\u001e\u000fD�g��V�� \u001c4�X\u0004d P5?�)�Nx��N-�V\r^(Evo��Q����(�,��{'���D/�̰�G\u001e\"�k�Err�\u0003�ɍ_z�V�7�T�\"���M��mᒌ�q͖H\u0001���=\u001f�P�i�f�Z<���ei\u0015桭�e�̺T\u0011���#�\u0012^3\u0004�~�\\��\u0007�\u0018������i3�^y1��\u0017�\u001c�S�\u000b��q���\u001a�M����������\u0016�h:\u0014�G�?2���D�y\u0005`�Ԩ�'-!$�^�t�Z�ÌxZX� \\��^g����ЌO\u0016C�j\tۺ��\u0016_z�\u0016��\u001f�q����c�����^U��׋a忮��3�{�0y�{[�OT�%j�K'\u0011]�\r��ў��\u0004\u0004\u000e�I6{��\u0000s���Y���P�����%�\u001eQ�\u0000����Д�^e�O��饣\u0019nl�=\u0003��>�ʼy�g�a��*m�H\u001b�6S���O\u0014\u0006|3;qBD~���\u00185�&\u0004��\u0003�L\to�\u0007��\u0015?�+�\u0000�\u0016�� �\u0000���7�\u001f/�\u0014T3J<��{OU�\u0016x�-^��0\u0006�eh|3/\u000e�_�p�v�0\u001dң��G��͇NI��K�B;\u00128���\tl;����^���\u001a|���J�{�0C4�p����C�WZbF\u0003,�ͩ�]6�#a�H_�����.��`��L�g�\u000e\\1�d|�@���\u001aS�Ř~N\u0010����\u001cD�w�����q��G���r��r\u001f˟͋{}3Κ}��zy��#�_Zn-/%;\u0014�4��ُ|�\u001e������sڝ�O�\u0007��=k˸>�ٚ�\u001fnvo�i�˸�\u001dc{_��[���r��q��\u0003�q��mZ\u000bI��\u0000#M;\\Yk�tSMo\fM���\u0007)-[���W�zw����;F#\u001e��z�*W���=��KU��1\u001e.��\u0012\u001f��l��O���\u0000=�>��y3�#U�d��6�szچ�r\u0010��}:��81��a�Ojv'����1�b��\u001c����n��\rg�=�0t�2c��\u0013�z�2���-�w��.-@��~i�\\�_^\u0018�?�|�z�l��\u0005y��p�eq-w*�Mzg�v��\f�i.}���1^��8��\u0000:��������S� v��\u0019%�X�\u0001���$��ay\u0017���q��\u000e\u0018���j\u00167�0W���8�/KO���c\u0014�t\u001459罡�^�vy>$1O\u0010�(ȑ����h;k��@\u000f\u000eS��\u0000�8�Qz�����H�_Zz��D�g�\u0019�+FI#-BP'q�\f��\u0007l�FǦ�o�\u0017fs�|c��;|��<ţ^0�����R�}�C>�U�^��c�\u000e@83K��ш�\t�,#���o/݋�8��>8�X��\u0010�o�L�;Z\u001e\u001c�\u000e�^��f$'�� }��\u0014i��\u0014�\u0019�\u0018�]Գ�>Hiu\u000bp\r\u001c\u001fm��\u0000\n�$0��<���$��_��\u0004�\u0002��5�'/��s>�\u0017'ib��v+{� �g�Z\u001e�����3��������9�\u000fHa׺�rf��w�V�ε͆-0�\u0003�ͬ��M�}[W�t��H��q�?�sk�O\u0018�F�Q����\f9��.VHZf�|%���O�l\u0004q�\u0002�\f�Nťf�R`x��~��ޔ�'/\u00191\u0007\u001f��Ӓ�+mA%V5�D~@rj\u0012\u000fc�\\92@���\u001c3q_*���]6���S�^ƫt\u0014�b\u0005K\u0001�\u000f\u0013ᚙ喛(�\u0013�w8�CY�������R_�_P��u\n�D�m��!�=)]�\\�W���ˏ�n�h�]\u0016S�����2�2yf�V�ׄ)i\u0010� Wz}�1�ډ�<2�����8�|��O#^F%�щ\u0015�B�ӹ���[\u0010E�����E\u0000�\u0007�\u001f͗�V��n�Apŀ� �ǽ\u001b�z\u000fa�~\u001d||yUw>I�?l�쌿��'��\u0006#�/2y�Tվ�\u0015�����n����\u001b\u0011ʍ��x\u001c��ƗK���DN@6\u0014�����uZ�\u001e9\f2>���7�����J����\u0018�\u001eI���%>)\u001d��'<{�rNYe)�Q/�vN,Q��\u0018�#���y�i\u000b\b����;\u0000\u0006�}��N\u001b�ؽ�,�(\u000b�A^yB�T���db[��O�13���mN;���\u0000(\u0005\u0014���9����:}Na�'\u001c�G�%�ጐ:r\u001e\u001e\u001fF\\!\u0018�\u0016�fe��DB�W�&>'}�ֵ��s�kjn�\tu;'���\u0007~�>\u001f>�0�.#���P�o��n��{��aG#ֽ�I\u001d\t�'\u001f�\u000eDdF�0{� Nr�&#d\u001f�+�'�y�\u0006�c�Z��1��8��EI��\u001f\u0003�e��\u000eǛ�<�R+�Y��'�\t4�e�\u0010��\u001eY��,��iM\tj\u000e�Z\u000f��\bD{��C^�Ԍ�\u0002�q\u0003���W�2{|Z̥t6i�\u0005���4\u001d\u0003\u000e���ڹ!\u0003/r��ʒ��X��d\u001f\u0010���MY\u0019\u0001IZJr\u0014�-����P1�a�Ńa3[�i�22;tF<9{)�A��\u0014Cp�%ϚS��9W}���H���''\u000ea� #�<�P�KY}h�\u0005zm�\u0000��cM���\b�WP��r\u0012ڒ��\u0014��Y\"�e���\u001fH#l��6�\u000b�5$]�GD�;�#T�әxO\"��\u0000\u0010: �؃��G�Ǹ�?\u001b�08sƦ*G�O*����ze���/iϐ?/\u0000�N�u\u000f�n>�d���P'RW~LCt�\\�9\u0004c�\fh�\\�[h�\\��ݵ�\u00002���:U�f���H`\u0000=y\u0015v_��\u0000+��\u001eI\fx�ʺ2��\u000e&]6�s1�`��\u001aH�t�&�\u001af�.��\u0006�J���\u0005�O�\u000bT\f��=��4c���\u0005�\u0012;�;G���\u000e.^����$ri��\\�M���[��\u001d�>����O!���\t�K�y�c�C\u0006�<��$��k�f�\u000bs\u001f���C�H�\u00037\u0015^���t:Mg�ڌ~&\\�1\u0001\u0012I3��=��sh�G\u0019�c���!�\u0010zoD\u000e����ח�\u00002l�(���i�S���~A���\u0013O�[�KM������\tg���q\u0012\u0004�8�\u0013\u001f�A\u0015�<�EW-�g>z�\u0000�.�W�嵧��\u0000-�.]<���OOJ��\u0012í_\\'�\r��m\r5[�B詒I\u001a7b�������\u001d_h̝D����\u001d�y\u0000>\u000fQ�M\fzq�I\u0001\fQ�b7��RORw?w�\u000fέ\u000fDҟR1�Х�f{{պV�����V{)B]EZ\u0000���;�\u0004�Lq8O\u0018�ڷ��N� '!��0\u0007ry\u000f�]���7��\u001b\u0017�H�������q�-\u001bL�\u0017���h���'��F�;�U\u001b�c����#>��^���~n�[�\u0013\u001e\u0006�\u0010\u000f���A�\u001e��w�\u0019<��K-��P��V�mb��w��KK`wM>�|\u0011�ڃ�S�z��D\u0013@\u000f�y��7 M��O�\u001c�:\u000f2�\n�c����q�N�F�!$b��\r�0�w�S[��˿�6z\u001d\u000e\u0001\u0018p�;�Y���ƶ��w=��\u0018:/�C(Z�MI\u0006��Rs��g\u0018��k��t�{H}5�\u0000�ߎ�g�\u001dϘu��Z�ɫ:��ƿV�r\t�w\u001d}�N8���]�qp\u000e\u0018]��{����-FO�/�\u000f3��_�v��KѤ�*�\\Y�[G\r\u001dƣž$���f���v�'���;;A\r&\"\u0006�Qg�G����\\���\u001d^�Ę�\u0000\u0005�W�)\u0002I�~�9f��Ur\\1w-���՝�Vfm�Ny�\u001c`\u000f'��A6\u000b�|�k��ej0�iN[S��*Ms7\u0018���\u0019\u0007�\u001eE�Xm��!T^$��G����?FS�����\u0019\u0012^�5А\u0002��*5+(~,\u0018�6��4�%ó��\u0006�V��y\b@� G\u0010I\f���\u0001^���Q!+s�(\"$k�R\u0001@��m�\u0011ـۉ;f�)���\u001d̏$��I\u0014�\f���H\u0018|t\u001d\u0007�'�c�\"w�l�&��\u0010��$8o��\u0015�7��ET��2��䰀\u0005�Z����\n��f)S�\u0014\u0002���\t��\u0001��<�:Q�\u0016 =\u0017�&��+@G�JfN9o��w\u000f�<�~�n\u0001�R����w��v��,�&=\\\u001c��_��-uY��� !\u0007�o��*�k����#��zy\n}��\u00008��'����\u0003\u0013�V�fA(p�Ճ�\u000b'�iQ�2�\f�W@]v�\u001d�(m>���V-�x���k�:gW�\b�\u0015]�K\"�U\fH���3u\u0011�\u001b\u000f=�\r�ߒ���V6\u001a���\u0019EYY�p+͹\u001e��*+�����\u0018ˆ@�'�l�;��ՙ����\u001b�J�t���]����`5*]{$(\u0010\u000eDFV�O\u0001Ҁw$\u001f\u001c�\u0011\u0017}\\����\u001f�v�yc?�C���D_�)�\u001bu*sg��\f���6=ۿ05�?���x��4�RG\u0012!kx���ux��0��\f��5c\u0012\u001e�so��(j�X\u000eb��v$\u0013ҽ�r�r\u0017g�r�\"�E}�hϪ�Ub\u0002�q\u001d\u001856z\u001e�/$\u0018��\u0000���]���oj\u001e��wX-��F�y���E\u0004\u0011ƬҴ�B�\u0002��Q���\u00135������q+�}������\u001d?Κ��n�,.f���������sX\\�y��qs$z5��\u0010����!܀Fg\r�%:�\u0007+�^�{����ǖq��-n#��\u0016v'n[�ߵ�S�\u0000�i����\u001eO���\u001f���4�\u0000���1|��V���\u001dcOOW��s�Z���jbuJw���-\b5�\u0019�y��*���~�S���\u0018���\u00117f6/�� �\u000b�'�\n�{~R�#Tֿ54[�y\u0016k-kJ����\u001a���\"4����!%~�r\u0011��\u001d�\u001f7��-p�)i�g[�BU���_�.�\u0006H�ǘD]�Dȋ#�~R���x�\u0000�O����ѭ��}��Z?�f�?F뺎�h<�.�0O���K\u000b\u001c^����Ѽs��ڝ���������s\u0001��I��Ì���i\u001a�$���y�_\u0005���p\"\u0013=ĞT��x\u00142�\u001dB�9ո�䃈�Q��z�������\u0000�\u0013}�j�\u000e)��\u001a��o���\u000f����\u00008����]A��\u0003B�\u000f�o���\u001aߓ/.�\u0018\u0013�m�&��\u0005��\u001c����vw���\u0015\tϋ\u001ft����˫���\u0019�L�r=y\u0011�#q�p��ɯ�����\u0000��/0i��o�\u001ex�c�\u0018gլ���-��\u0011��h\u0011i��\u0013��[�F۞��ؽ���\f�򏃫��>�{맘tDv�cj<|2�w�>�\u0006�\u000fCg�|�ԗ��w��\u0007�g��ߒ�����\u0000]�,����Zı�\u0017SK\u001f�������#V��q�v��?�;�\u0000��w����ߙ\u001f�Kqo�]J�\u0013�0+\u0015��BX���\u0016=\u0006�\u001b�G���x��ˇS\u0013�V�v�c�No��Hy\u00027�����ߓ�6u._'�?2�4ɢ�Ce}+\u0014��mH�\u0012=\u0003U�О��U�v�5�����2+��<.���\u001cg.\u0000N.g�����\u001b�q\u0003Q���^��U�_�a�-,Zo/jp:Au��O�\\�\u0018#Ւ�vR> �|s���I��r鸎\u0002}C�~\u0007����ټ����5\\?��}\u0004\u0000$A\u001dGR9_7�ߙߓ�o����W���Q��e�K;�\u0018�r^5%(�h�nUߦr�.�ê�s\u0015C����U�ɂ�\u001d�;\u001e�\u0000�s�\u001f�ǟ3Yy������-�\u001d6!\f�e��\u001fQ��\u0005����rݱ�z}W�\u0002N9\u001f���|�\u0001�=�\u0011����K\u0019���m�\u0005Q�v\u00154b@��r��\u0006L�]\u001d��sń�&�!��JT�)��9�\u001c'��r��gz����/��\n�\u001b�����a�P��e�ɩ s݇�j�;\u0016~LM}�v�9��Nkg_�PorIcwz��J+\u0000;t\u001b�n=4F������\u0014<7m �^5\u000e\u0019�\r��]��\u0006��˗z���?\u0000WS�\u001e�\u000e��#A�d��\u0010ů\f�s(�97ߨQ���2��˟'\u000b%��إ6�c�\u0007t�j���\u001d�+Rv˥��\u001b4CU(ؗ&Si|�*��tjn\u0000%\u000fR:oC���\u001a.Tr�\u000b�\u000b8�n\u001e\u0006�h�ґU�P:��0��\u0011]���)F�Ւ�6�z�v���.\"ٻ\u00126\u0004\u0012;f6\td�#��ru\u0003\u001eq\u001c�i�%��͋\u0018d>�\u0015���Qڄ�Ol��\u0019�\u001blՎSŴ�Ʃ?��exd\b$a���\u001f~O\u001cg\u0011}\u0003^S�r1�_7~r~Fi^o����~�`Ի�\u0005�6�F\u0003��η��7g�\u0006\u0007�м'����;oO(�\u001c'�ß��M����\u0016��\"7�ۗ�z�G�����I9���õg)́:��x;\u000e]��\u0018b\u000f�?��>��\u001f�ڄ\u001fᛧf\u0014\u0011��r����ݳ�_�\u0000s�ֽ��\u0013�2'j�lڐ\u0007҄Sj�=I�Zx��N\u0007����\u0001�\u0016\u0011�\u001a��k\u0016�U�i߷�a\u001c|\u0003n��\u0019#��~�\u001eU���Qc�X���\n[�@\u0012� ����zv���&��<27\u0017S�}�\rQ�1m�������!{��NjU�h\u001a݋�J�I��\u001baZv�Ѩ��J�'D4�\u0015�Q\u000bF�\u001d��\\I0���B��R5�}�Nl��Ɉ\u0011\u001b:|��\f�r5+���(������k��\u000b\u001d9+r!��™��h�'ʝ揵qK\u001dqqF��5\u00014�K�cUV\"�R�Pv4�\u0010��\u0000q嗎F}B^9ܽ\u0000��\u0000��Dϖ魽�\u0015��\u0003j���1�e��c�B���Ƌ�(=���\u0018�˛�\u0018\u0001�To��%*�OSߧn�dH�|�8�v��čM\u0005]�y1�8�o�\u001e ���\f�e�Y�v;\u001a��'\u0018\u001e�吞u��%r��ڤ�Z�)Q�했���ei|�Q�)\"���z{S�L\u0002y\u0006�0=�m{\u0000\u00143\n��(*\u000f��9.\t5��<��]Φ�\u0005=N\"�o����W-�0\u0005\u001em2�{��#��\u0018��\u001bS�b�k��Q\\�\u0000�)�y1��F�\u0004��j\u0005\u0012Ws�m�\\1���\u001b&Y\u0003[X�c�ڵҖC��\u0007�W�\u001e��@�\fʆ(}[8ys�xoG��@[�w*x8�O�GĬ\r\t\u0007�l��\u0013�Du\u0013\u0006�NT��te'�\u0014�Qľ�\rM�\u001e����V��\u001b�.\"A\u001bW��gi��D�K\u0015�CT\n�m�)�U\"$n�r1�����&�X\bee,�d�Ĩ?�l\u001e\u0017P6dr�\u0000\t��\u0010�y�x�[���\u0017�X\u0016\u0005��\u0011�~!�p�?�6,\u000e��\u0002\u0001��]w�-.�&.QUQ�Wb6�\u0004\u001e��~J8�D�wh��\u0004�\u001a��\u0018E�%ͦ�\u001c\u0016��4id��\u001d��\u0011��S���QE\u0003m��d�4\r�w�\u0003��#���\u0011�]�(���\r8�\u001a\u0017Px5k\u001c�;\u0018�\u001dS��#\u0018�h�\u001cYdɈܬK�Ɋj?�\u0017���\u0001K�U��Y���W�F]�\u0010�\u0003Ol�ǣ\u0012��٢z�í���?5?�\"?�*�4�5$򾚒�VP�CQ�`�k��%n�]G�R�cH�>\u0004�mٽ��a\u0007S-����^���v״��&4���\u0014g�����O���i�=c�����E�&�9�����9\"\u0006@a[�\u0016�ۆ.-����Q���>��\b\u0019g�B#��������/�~��a8�\u0001��${���\"���E����$�-�#�U�\u0015T\u0002\u0000�)N���P\u0011~�$Y��ܜ\u0019�q(x�4�\n�\u0011�\u000e��\u000e\u0016���\u0001 oѐ�G�\u001b�Im�Y� R��߻,\u0000bK p\rH\u0004\u0003�S+�����\u0010M\u0007�����\u00008��<�����B�j���8f���J�I�D�)��\u001f\u000f\u0014�\u0001���7\r2؉_#_>����q�\u000fL�9\u0001M۰�c��k��̈́V��xT�������8l~?\u0016��I�2�7z5>�D�5$\u0018��L����N���\u001f!���ƈ�A=hA���{t�T�)�r֛�j{S�����[�Z�g$N\u0001�\u0003��\u000f�����c勻)�\u000f_��\u0019�!{;�W\u0000���v\u001d��s2��_\u001c\u0000U\u001f��������O!���̔����t��?H�z�°�BZ�KI�ڔU߶\fxrg�1D\\��X��<������G���\u00009C�\u00009����\u00009\u0007��|��;��&�/\u0013H��e\u001e�ܷ�\u00141Ҿ��}��\u001a\u0000[`+�\u0010�2\r\u0007g�-\\�J]o�=�d�m�\b�u\u001a�u�\b\u0017����\u0000�a�\u0000�S�Gɺn��ϛ���~�\u0014\u0017��S���,Ku\u0013][i���<�G߄�� �v��ƒC\u001c��y5\u0000z�l�\u001f�\u001b�>�n�Y�F#\f\rb��V������ϣ�����\"k�����i�]�v�<�W~f�� �ibc��E�R��^�\u0017�zdD��0�v�&U\fP��G�>��\u001dD��\\�ʰ��E����s�����P~Z�I�]�\u00008��\u0012��oό�U�\u0000�dX�<�o�B?ܧ��٬ �t�\u0007HF�\u0015�M\u001cSJV0\u0019�r��O��\u0012�\u001a����z\u000bq�j�k2K\u000e?H\u001b\u001b<�\u0015r\u0003�G���\u0018�3o��_��#]]��V�x�\u000f�??��z��u+�'�4�[�Q\u001e��1 �\u0000�,\u001bu\u00034����Ny��6�y����sqh�����\"���\u0004�;�'��>������yJ���V�y/�>V��J���(����=6ӴD�=[�ARdx�Nl�#�;�8u:���f�C���<�N�!Ï\u001f�+\u0018cȎ���nOy����\u0000�z�%�����u\b����Y�y�іI$iu?:j�Aqg`.�>'k;K��pc\u0004/(��L��<8�:,��9;FxH\u001d��Mw�C���2��jc�\"8�:9���}\u0005˨��G �����|��o��S���^d׿;�-'K�s5���@�O=\"�&\"�Y��Q\f� �\u0010�Ο�\u0007G\u0006�����pCG>!@�\u0018z�|��\u001e�C�n,�4�L,d��4n������\u001b\u001a\u001d\u0003���q�IO&h�~X�H�~��i\u001a7��Hf�\u001dg\f\u001fY\u0011҂d�Y���Fyߴ\u001a���d�\u001a�YJ�U�^���{#\u0014t�����Q�����>L7�r��v�~Q�$zƛ\f򭤗�|�\u0011��\u0016��md���$��(r�g�\u0013�\u0019�#\u0013�G�\u001e��7\f{b1\u001a|�,D�$��\u0011��\u000f�\u0000�;�k�>���\u0007U��\u0000\u0010ZG�;d�;�[��b�\u0015������a�:\u001d�j\b \u0011��A(d��\u001a����� �\u001eq=��;\u001e2��'�Dj9mGo1�C�\u0007��\u0003�����\u0000;4ۿA�\u0000���\u0000�Bּ����\\�\u0000�P�Z��\u000f:ySC���~D�,�\u000f��/�k��n\"�z���ڞ5�\u0018$\u000fS�{�\b:\u000e���v؎�\\v�&���3?A<�}�}\u001eW�{\u000bU��'�\u0012�\u000es1�@o�5u��Ŏ��V�ݔ3I��OV\u0018�\u0003Fk\n~ɍ�̲DE\u0019H\f�:���X� E�q�Ǘ��}��d��\u001d�>_ڕ���6�e����a��d�Ydq��\u0015F4fb\u0007\u0000����9@\u001b�\u0007^���2��N��\u000fϟ�\t�1��s\u001d�����+�d�O\u001bƉ�72\u000e_\u0010f�\"����f��\u0007G���\u0018�u#�]���;���>R���u�'D�\u001a1{\u0004r��\u0000\f\u0015�4�F�Cn��\u001e�21���]�@qH�\u0000n[��\u0018Dž����ᏼ���z��\u0017�����I�m�ѴH\u0006���X~�J��7\u0012+;x�W<�u�;[����r�����m\u0018�����i��p�c߄n{ʶ�\u0001vP8�\u0014�|\u000f^�j��l�r�{G��5��\u001a�N-Rv�ڵ�3\"1�؎\u0011���Cˏ\u0018�:)I>\u0011A��ӡ\u001b�z�͔ 9�!&a\u0017.\u0000�\u0000n(8�lM?f���g;��I��1G�䌈)���\u000e�'*�\u0004T�I�k�\u001d�ɄA枛k��B\u0000�\u0003NQ8�V�`Đ~\u0013�̡�\u001a鷓\u0010�a�K\u0013E!�)$\u001eۍ�\u0012\u0001\u001b�\u0014�L�I!�]̲\u0017^\u0003�\u0006��P�&��h�v��\u001fQ��&T\u000bȐ�m��@\u0015\tZ}9�8��\u001c��C\u0016��.\u0015�Τ\u001d�P�\"�\t��qK��h�z��n�dQJS~#u4��ؕ\u0003l��'Gw\u001ec����xڊ�\u0002\r@=y\u001a\u001a:�T��3'7\t\rb6�\u000f�\u001f:���@��*/�\u0013\u0006�A��\u0011X�����F�N\t�O�v�N\u0011,fQ�!��5�C�=sJ����%�(.c�\u0005�)Bѹ$�;\u0011�:\\\u0004W;/+�_\u001a��sv��!Zơ*�iQҠ�|�P\u001c�\\�\u0018\u000e�C�/�\u0016o�j��\u000e,%p�\u0006�W`\b�\u0004�Q\u001d���ˆDtaڕ�z�v\u0000�پ\"O��\t\u0007�a�v0܇��naq�55JUȧa��fV�U Q�\u001e\u001f7���W\u0013r��\u0005A4p�e�r\u001dz\u001f\u000f|�ts�qqJ1��\u0000�>���%��tx�y!q\"�\\R��ԅ�G���nsk�\u001b\ty8ҡ2\u0007�^�q������*\u0004�p���A��V\u0004(�T�9V\u001c�\u0002�\u0019\u0003�rx�4�-_\\���6�\u001aҵ�|�\b[V�\u0015u\r2���<\u0016D=ڹ��\u001e�\u0013�4��J{G��\u0003��\\\u001c�&��.�]�\u0016qa�=����~�ߓ�/�\u001f�ϕ<�c��萦�\u001d����[X��U�ՙ'�+��/v&��Nb��)�n(���n�0���\u0002���z��{�9?/4�b�I�o�b�y��\r�RI%��Q�1��&��\"��h�e�: \u0018��v\u0007K\f�&�\r�����$�G�?GY4�\u0000.C�j\u00162@\u001a��\\\u001f]�o���\rB֎\u0011\u001a$�~<К�\u0019���vv@%�\u0013���b<�{��\u0018t���Ә��-��#��\f?]��4�c��o�����m�f)���\u000b�O&����m��^q��E\\4�Hb�f��\u0014:�33\u000e�Y�N3�\t����~�\u001boŌ}c��\"�e���j|\r_�6sˌ�\u0019��9\u000e�=�{y�)�~V˦�\u000f\u001c���>���%��EZ\u000b�\u0018`�!��ս�,\u0019$Fh�\u00180;��\u001a����≈�T����x/�/����w�]��ݾ��=����\u001b�gx��`Ƒ�`\u001b�;�9v>�̀���\u0011�~���hLt9\u000f���~V�l�*�k�\u0000� ��~j�\u0005u\rk���F�����u�F%\u0004.�\u0015�\u0010�\u000b}�����\u001a����?���\u000f�j�(��C����{O��0r���\u0004t=D����wؿ{?�\u0003�\u0000�9t\u001f�O+�?��\u0000����������*��R�\u0003tu\u0001\u0015?þ`��\u001bP��\u0000G���QF���~��\u0019�\u0011����\u0007�\u0007�p� :���?G-�\u0000����c'�'m�\u0004�8�H�}#3ԟ��r;����\u001eY�����MW{\u0004��˳$T\u0011�OV��W@\u000b��ޕݩ]�U؝�5X�(\u0010$y�����fKK�W�r�\u0007������^q���m����]�>d���^yo\\\u0001��m�zJY��-�\u0014p�\rj\u000ez��S��t\u0012��UK \u0014/����\r���C���HxN�� A��yS���\u0000�t������W����\u000f4i���|ͥrC5��!*��?�\u0016�\u001fn6�7�l�oh�3S��j\u001a�Ne�=?\u001d�v7h`��\u0000�5\u0000T��\u001b���\u0013�z����\u0006�\u0013L-�\u0001�(m\u0011�4�\rXMJ�z\u0011��j1괼g�o�׃\u0016L:�\u000eB����_�6�\u0002�7�޵�9�\u001e\u001d\u0000�H�L��2d0\u001e��j�ۭG\"ǩޛ�\u0000fe��_=��ͨ��݁^k��#�P�R�\u0014��͎=4F�-���\u001eD�iS롾\u0019\r\u0003t5?A\u0014�Q�wrq��\u001d�@�x�\u000e|�\u0002�UZ�\u0007ǭ\u0006�lq\u001b�����&V�/�\u001a';�\rw��7�J\u0006ͳ\u0013\u001c�J <�P���\t�\r�p��� \u0019\u001e[lݣ�h���\u0002C�=����1U(�X\u001e?D�����W�=䲡oBCU\u0007�ߵEFlt�!�T��S��M<̣�\u0014��\u001a�֑\u0010P8ݓĎ��V�5X�\r�o�e�H�>��]�W(��\u0007]�;�v���Fj�G.��\u0003k\u001b_4��Z��3\u0015�w\u001b�G��\b�\u000297D�0?R\u000e��H�u��\u0015���e��$h�e����H\u0005ܷ�\n1��\u001f��h_�E#�\u001d�8c\u0018Ś0.\u0007\u0017�v�##�.n�|�f�R�\u0001\u001e��ܸ��^�\u000e��\u0012#��rr��Gr�\u0013�a\u001a����\u0019��X��C�@@\u001c��j\u0005w#|�\u0006�ZMP2�m��hq����\u0015�V\u000f�\u0000��K�'B�ҮY�^�� }�UjTx�\f��\u0019�&_\u0018o\n��v&)��\u001d<�e���\u001eäY\u001b�\"4�d^\\��OA�l�\u0019h�l^�C�ۄ���\u0013�\u001fL����+\u001aHk�e>�k���Dly�m6\t���\u0005�Z��p\u0017�bf��t\u001fw\\•\u001e\\����;I��U�\u0000$[{�&B�T��;�o�r�n�d�B{�5k�% �Im�\u0012C(,�)�kޞ\u0015��{�\"�xc\u0010LEĥ�W�\b�(�u\u0011�\u0014n�÷�d��|�!�0�\u0003�\f��S��T�� W�z|�b���l]�\u001c��y��k�ƛ�k/�\\\")\u0014`�0#qS֞�t٧�vZ��Lz�\\\u0007j|q���I}m8��壊Y\u0015\u0018�+\u001f�m��]���\fjb�|߶�\u0003$edžT\td�O�ͯ�4�����)\u0001���3���\t�\u0014\u001cs�i\u0019͖�C�I�bǹ�{��g��\u0017�5�\u001b\u0011���\u0019�,��Xb���x�X�n:Wo�N��Ir�\b�;\"\u0010�\u0002��½�r�d���q�W��E)��@�DŽ�\u001cz�d�#�I�\u0010)M�oڙ`�Oճ\u0019OJ]$�\u001eD�<\u000b?�=��(5L��\b�\f\u0001����{��h�L\f�R\u0000Kd�I\u0014��iZ���Aב���#\u0002\r�mD�6�Rib�\u0017ӎ\"�~Ny�;�;�����\u0012�\\#�$,�+@̂6\u001b)@)��r�\u000b\u0003 \r�I��c�����j(���K�I1�Z)-ݬ�Z8�V@£�\u0000|H�hVY\u0019\u0001�\r3�#�%�^��\u0010]\u0005�\u0012��h�U=J\n�=��3am��]V�Aּ�i�Inu�\u0013Q��U�M��V\"m䲞���^\\\\�\u001a�Z��A�\u0018�c�b\rLX=;�u:�3ͥˆ3 ��!\u0019\u000e�lA�\b��X�&��&��\u001d/Q���M\u0017�&5�.-���=�\u0012Ws�:���u\u0011��\u0001���h�pi2i�o$�_[\u000f���޿����o�<�f��\u0017����qs(\u0001�젷��^M��\u0018T\t����p\u0003g��\u000b�e��mF�\u0019?����\u000fw�g�*\u001f\u0007��\u0000�?��8h4ݧ0\u000e\\��g���\u001c8@�3�y\u0002���kkO��ىn��id�\u0000}�I-\u0018\u0007sN��N��ߠ6��\u0013.�mh��٦�K�,'\"j�5L\u001e\u0012\"\u0001�����м�\u001dյ��o/�ukmt���ؑ�i�p�Y��m�cw�h�`��%<�!�\u0010H��nٗ\u0012&,s����f6�=\n��\u000e�>;{a<2���$��Yh�Eh�\u000fTz��\tx҇�?��\tq�ă�8�j�\u0000g�>i\u0012�t�\u0019\u0007~�?��|vec�Wwh#�2�\u0000?o�O�,�x}!��^�\u001a��\u0000��#�\u00009-�\u001eS~Xy�\u0007�:\u001d���\u0019\u001dEG\u0018�C&?�i\u0016��t��\u001eg\u0014�\u0000ܗ�\u001d��\u0006��C���\u0000��X#�BA\"��d�Ā��}\u0015\u0019z�G+����\u000f�?4�\u0000���\u0000�W��}\u0017�+r��s��v \u00137\u0006���Ku*֜���\u0006��̍\u000ec�.l��hyw��c\u00125�*�\b�����E�z��|��;Q7�?1�[�-Z����\u0000.y\u0019&n:��\u0002���gx���V�GNy���R�i��?(ܯ�A�\u000f|���VH��\n���\u001f�_�_�V�5;�˘��w�\u001dR��k��?Kŧ��66q���F��H��%Q\u0019U�BF���\r>MLn3�1�5w}�-�v�N\u0000\u000f\u0007\u001cOK\"��\u001b��~���7燝?95���\u000b�?���md�t�KK;�A�\u0015V\b�-��\u000f�c��rN�s�^t�:~�\"1\u001c��D���C���㒵Z�Ŕ�#C�G����\\�z�\u001f�T�?�>S����7��0��T�-�k��t�Y���K��2å��\u001as��)\u0004�\u0014�s�\t�\tH˝�d��g ��8�p������V�o��\u0000-�m4�2�wsY~Jyf�h5\u001de\u0014�s���*�\u0000��藫�c�C2���\u0002\r}8�5+�(�\u0005\u0019�uR�G�\u0007y��\u001f\u0016Bq�=$�(��\u0000L�\u0003�9�|\u0002���n�~�O�m\u001e\u0013mf-!����E����\u0003Ҋ��$<\"�Pjz�6�S���g\u0006)qL��ԟ{�����DbD\f9��\u001c�W�=�p�����ݷ��t3�-;�z\u000e��\u0019\"\u0014[�nt�K�ۡP����h\u0014}���1��S͛,��Ip�(��|܌\u0002\u0011LJ\u000e?L1D\u001d��u$w�9=O�_��D���#��O����\u001f0��\u0016�:,�s�Wz\u001e�$�%����\\��I��N2�Edt%H ���h5z)\rOge�#\u0001Ө�$?�V�\u001e�6�f�\u0006�>\u000e�\u0010�\u0011��)\u001d��/�=A\u001e��^�@hw�Ǚ|�se7�<��o1k\u001eW�&�;��1j�k��_[�ຍ��o,S�\u0000`�ңz5\u001d���q��9x�l��ǐ�%\u0012:Q\u0004\u000f�-7i�9�����♁\u001b\u001d�Q\u001d�=\u000b��|����o%'��ݨ���\u00001�Ko��\u00000�3���s��ۻ'5i��n�)5�q,���\u0001:��W�z��h��xd\u0019@��\u0010.��'i\u000eG���.\u000e��~S<�)d\u00061�0%���\u001b��\u000f��%i~f�\u0000�v�\u0000����������5\t%�t�\u0012���7i3H\u0016�Y򎰿躶�v��E���U�U�\u000f��2h���\tk{&~. \u0000�\u000e�pˬrÜ�!q��z\u000e\u0017I\u001dGa��t��\u0013�(&�^<��v9u\u0007���ȀPߜ���\u0002�)|���䕖����~f�\u0015�j-3��։v\u0017�Isq\u0013\u000b�9�\f�\n\u000fB���44~��\u0016od�T֯\r�\u000eC�\u0004l\b�\u001d��bK��'U��j÷;8^\u001c�\\zH\u001f�'��\u0010zH\u000f;���]g��~U�<��;�5_+��F���mF%P�g8,����\u00176w\u001c�\u00129G*\u0011�\u0013�:�\u001a������h���\f��!�F��\u000f�i�i5�hk4NjM���0~b~H[h����C5�͝�1�^C�ҹ�\u0019���an����׎\u0002ũ@�\u001b�\u0002t �\u001d\u001fb�O���O�7g\u000f��C�\u0019<����O��m>�GQ�F\u001a����?A.�\u0001��\u0005\u001f��\u0000�\u001er�Ϝ<��\t�h�ǔ|��mNm\u000b�/D� �Lմ+�w�hsC B}E\"A*��hYY\tV\u0004���K\u0007i\u0001-$���mdt#�1�\u000fV\u001a\u001d4qb��\u001a6h\u001b�������w�>������)�����\u0019m^�H��]eu��븫);\u0011�3]�2ɭ�\u0011ȗ?.L�}\u001c���X�?��^F�#��@���It�-�уL�ԯ\u0014Ҝb��j|X�}�֍\u000fg�G\u0001���c��>���g��ԝv}�=��ؙ�l��(\u001c@����$�T�g�c�zr{s!L�I�\u0004��>/�m�Gj\u000fי��xq������\u0000.�\u0010c�T��C�uṇm����\u001d��\u0006B��/l�\n�Uj+П��\u001b�ʤ\u000e5\u0019���\u0004�7\u0018�\u0007��t�U���[Ȍ(���\u0015\u0015j(`]\b;��;������ɐEke'\u0015�h�!�3\u0016J�誝��`d�M��O>iŝ��$��H_��BS��@ۋ\f����b�\u0001����\b�>�+5K\u0014PG\u001al\u0007b+�s$\u000b\fb\u0005Թ<�u�$�\"vbvi\u0001S�)�8�c�N@���\u0019ԒvRv\u0004�8�Ҁ�W��Kx���]\u0018İ̲/��K\u0002z\u001aPӗ.��q����m�uj6�Ƅr�G��5#�-<�l2\u000b\f��9\u0005��9v�C��fJfB�k}�$V��Οx&��80<\u0006�[~����A5�fE��~��\u0000�;�b�qimb�qA10\u0007���2z�(����U���\u001e�3���\u0013\u0014\b�\by�~\b��u��\u0017��k̗\u0011�\u0003C'�'��%\u000e�\u0013��\t�I#74\r�'Hlze|V�����j\u0017�!⥜�j�j\u0013�\u0006ہ�k�0�nI��g�y>i�-�V�L�\b�%�ҝA^���4�Q���\u0017�\u000f�t!��4��MT\u0010�t\u0000�\b�e��?\u0016s�G��?4��\u001e���\u0001\rd��T���\u000e lk�7�,�!N\f�h�ȿ8EՋFYciZ9A4?kb�\n�\r�9؈���O:qbI���{\u000b���{�������\u00029\u001e\u0012�ܲI 5\u001c�\u00126�3I qe �.L\u0004�\t��5@��#!��5{Mj߅}XU&\u000b\"����m�g�3��N?X6=�q�5�D�� \u0011/I��\u000f�OJ�\u0001g�\r\u001e���9][Eqa\u0012ѣ2 m�\u001c�\u0010�C�}\u0014;7I�\u0007da�=�d�%\u0019�q$rۘ��|�����<�]G!\u0012��E���z�Oɿɯ���o?��W�;�W:Ϙ�D��𫦇�h�@��k:��Ggd��P�#|*\t�;�hu���:-L\b�9\u001f�#��򧩎�G�O��K�u��������O��_��W��%�t4�i6~j��_E&���m��k��\"\u00034>G�������-���^��\u001e�.(b\u0017��_/�~�O��\u001c���\u0000DŽ\u001e{�\u001e��\u0011Ӿ߳�7�o��4���U�\u00163\\��]pw���'��\\�\u001c�E@9�=h��\u0011���l�\r$�'��D�7�ךMe��?�b����Ct��+_Em/�����DB\u0004`H\u0002�\u0007a�e�\u0016�.#��i���D,rZܤ��$�-\u0004l�\u001cQ�\t*��\u0004�}�,�\\s�ϧ�Ǩ;rv��8K��=]\b�����k_��Q�K���A\u0014���\u001e�\u001c\u0013^��\u0006[V�JO\u0018j����}�_�\u0016,�1���\u00015`{�\u0000Ar��$D�>\u001f\u0010\u000b��\u001d��<�ɟ�����7�O��\u001d?0� 4�s�Zw����/�;�`���U����ssxb\u0006}N���-�r��\t \"�7z����+���\u0007gv�\\}�,�G\u0004w9\u000f��b7�;W٨���~����n�\u0014�\u001c\u0004�!?ݎWuD��b7'�>����%\u001f�t��K�\u000f��~���g�H���Mf�H��\u000e��kW��qs�4�������\u001e\u0014\u0003�׎�ͪ��<2\u001c��ϋ!<���Q\u0014\u0004kaB�7��c�\u001a|}� 1�k\u0018�q��\u0012n�{�4yW*��l��׼�}\u001f�|��k\u0016��t���������@�,�}�����\u001d���\u0000\u001f�\u0006x�\u0015��Gژ5��\b0�\u0000\f���\u0012�F\u0017�&�٣.�.\u0019�yH<_L��\u0010,��%[�:n6\u001by�̟��OԌPGua\u0015�!��\u0016��ד�,S:�#!��\u0000��FtZ}_\u00148�A#r\u000e�n����a1��\u0000E���o����Y���?\"��\u0015���Ο��d����Z�B�E���K��,m���\u0013�=Cҝs�����{C���|.҈��mg��w�<�]��=@�C��屉�W}��]�ؾx��㷗�mA�\u00003�\u0000�\u001bu�q�^x�\u000b�&�y-.�����s\u001d̈́\u0012:�d��\u0000xґ�����=wd�]��8�p�����Chq�CI��\u001cC]ٙ xG�H��9��W07��A�\u00008��?��\u000f�?*���[[�6Zh��:��p�h�;X}&�ۯ)�@�٘��#��<��ۙsh�c����|��]���k�>,z�\t�c\u0001\u0013/�\u000f����\u0000���\u0000�C�4]Fm{I�>���-�ݼ@�%\f�R���E7;u����ݎC\u001c��N;�?{���e��ǎV\u0004��\u000b�Wq\u000f\u0006�\u0000�$���&�;�\u0016��KM;\\�\u000f.��)\u0019�w!��m<�\u0016\n�C!\u0014zT��w��=?ov!�\u0005�\u0002�\u0000h���;���/e��`\u000e������I>f�`��4�3مkk�\u0018���U=iJ�:������2J\u0018e���BD|:>��\u0002y#�\u0015�!��I<㨈o��>-\u0005�����:\u0019\u001b�^�t�xLjyYp���2xq�\"\u001eA�ߖrRM��r\u0015>?<����S�˖W�\t���9��M\b�\t�N�3��'\u0003&Z6Ri�%p�o��T�nź\u0010i�1�cG��-@�1��V���\u0001_��OŰ=�{\u001f�\u0004��c���M�\u001fO��钬�\u0015��z\u0003J\u000e�9��<&�r��\u0014:�1�#zz��4߶VA#͐�Kuib�]n-�O\u001d�\u000e�u�2�c\\2\f�\b�E\u0013����K\u0005W��'Ĕ��P���d1d8r���>(�p_Q����AՊ���*���jG�L���Q�q�<�|M6oN۾�Ѯ\u0006�a\u001d�&�,k� \u0002�\u0002��?^s��\u0004�N\u0019x�ģΓ\u0018�Kʈ�\u001b��\u0018Wr\u0000�\u0010;`\u0000�/�)3\u0013��i\u00068�̶�2Ar�\u0005H�mQ�\u0003Tf|4�Ê\u001f\u0017_,���4�'�\u001dV\u000b��5���M(\rjiJ�\u000e�F\u001c�>\u000f�\u000f��x��d���u�a����Q�\u001e�ޝ)D�����%\u001c��۱�c-<��p�����'�-��7�\u00072E��\u0006�\u001f<����*���jF�l2�À\f`�r4r��Ijd\fw�!���\u001f)��V���+�q�\u001b \u001b}\u0015�&�qO���;7ы��QzW��\u0005]9�\u0002�Y\t�ߧ��5��Œ��֖|8l��ٖy\f�\u0006��\f\u0017�'��s\u001ec�P-�<^�\u0013H�1�\\1\u0000T�����հP;\u0016K�k���;��\t���>y\u0019�!�Ǩ\u0007b�l$�+��EC��ڕ��N�\u0000(�\u0003)\tD\u000f5;'hݨx�5\u0006�����!�ءͳ\fLn�ڮ�t�Q2�&\u0003q]�қЊ�a�\u001eh�j\u000e,|W�yN��]���Zj��M���}���}��f�\u0016(i��z�֣>MfA��\u000e��\u0015\r��@�\u0007rz\u001e��#,�\\�\fB!\u001c\u0019Pt�<\u001d���4\u000éc�]������lD\u00079se�@���b�Ƶ�Mi���0\u0007��\u0007�aZ5\u0006��c_\fh)�n\u0014ZN`r\u0007~�_\n|�,.����T��%G#AZ\nW�oד�\t�с�m���/\u0007&f��\t\n��\u0001�=�r���8�;�:��,A�w�\u0001�\u001e��=��\u0002}�4�^ȓ�F��:U@�o\u001f�\u0014܊�1˪|X������P�Q��֊k�\u0002{\u0001�\u000fՏ\t�7A�?��һ�z\u0016�ՙ�\t#p\u001b���\u001f\u001c�\u0003}ڲ_\u000f���a��j�Fe�yQ�V�bnca_�����^\u001f)uu��\u001e>�d�\u0006���_�KU�n���������2{��C�_��8�Gb�cں�r�J>c�Ӵ_�=\u001b\\�R�N�!�='1���\"��\u001fZ��Y4�Ǽ%����x�F�@�-���\u0012������4�u//�>��E\u001b�e��ʩtW\u0014\u001diL�I�ˋ ǔX-\u001a����1��Rc:��?�\u001f3y&�Y�����gW��g�w!�$�SZ�=3o��%\u001e(�/;���h�W����'��e��d}Vi\u0014,2���݇��9\u0006�<3K�N@�������m�S��{�)��\u0004r���\u001c�\u0018���\u0007���\u0000L�$@��[�@Hqlk��������zƘ^KR��\u001dأ ��7�GC�3�LK�/��j��2\u00191�\u0001�~\nY�\u000f4�j�\u001bI�d�$���\f]v\u001f\t549,،%�\u0016�>Q!�v�D�͉igr>�\"G\u0001��G %\u001fb�ME8��,�%(�y�k�#\t�������O�:�ݕ�\u0013j~Q��n��{�f\u000f,zl1<� \u001b��7\u001e�E��\fϏ\u0006HG 5��F��\u0000\u001b��\u0013�c\rΔ���s\u0011\u001c��>5�����kA��$�Yt��86��b�'�a��UD���>ђ���8�\u0000`*�ǟ���֌�9�1\u0011\u001c<7��;P���~X�t6��=�$yB�MG�^u�,����>܃%��:C\u0010\u001f�\u001c1�H碢�sc=n\u001d\u000e�z�A�8��\u001f�\u0007�4\u0007��GO���F�D\f�:��b����@\u0000wW2{�D?�\u001f����\u001eY�-�WW:6��YjwqD��\u0017v�q�;�?f\u0018dVX��\u0012z��8v�ijr�>c��2�]�l��'��g{#\u0017b�n\u001e��G��\u0018\u0012\u0005\u0003�\u0010>W��}��_^E�DsS\u0010��e��I�\u001a\nԟ��mo�^�nE\u0016b��;zp�,��\u0012D�(d?�#օ\u001b�\u0003���͂�l�墏���ejH��1\f\n�\u0012�\u0007V\r�a����f\t�\u001c���\u0000���>���=L�!?W�M�����+]�q�Lq��\u000e}=�d����\u001f��z����KT\u0016Q�~*���\u0001�`\u0000\u0018g;�\u0013����@m�'Ҿ]�j�$.��/AJ�÷.���c+��FǛ�4_0Gr��c�\u0003���\u001ds/ꍎK�>t�`�;4m�\u0003AO��\u0003ރ����\u0010�C\u0011��\"b|�]�K\u0004ա\u0007����)�\u0012\u000bI�\u0013l\u0006�?ξ9\"�wG�3p&��H��Gj\u001c1&�'p�_�x\r���M�\u001eF y�\u0010��%�\u000b�\u0007�w\u0019\r_���u\u001f��L����/�%�M���i�I\u0005�\u001a�h�ZA�X\u00153\"� v�!̃\f�+KR���\u001f�\u001f\u0018� '�\u0011tv�>\u001b����_����-K��I\u0007����^o���\u001b�������6�\u001e��Z�Gc\u0002�iZ�33C�\rNQ�~�4H�?�\u0011�c�[a�\u0006/\u0012G~�oa|��G�Ꮉ�-��\u0000�\u000f�ʹ:~��\u001e�tKH�ӳ��l�~��X[ �\u001cq�Xƈ\u0000��|�����\u0012��\u001a>��^N>\"NId�\u0002D�/��/�?�g��i���]KAҴ�X,��\u0003�oQҭ#A\u0018\u0010�\u001b[v\u00021�4�K\u0016$��\u0018�~1$�\u0013 ��1�\u000f�\u0010��INXyC�\u0004\u0001[p�H�\u0015\\�u�,����\r��\u0016'��r�0�6��>�\u0010v�yf,��2e���Yc���\r��~����\\��u_+�1����]:�a��^��\u0013\u001ef(X\u0016\"���u��6 a�_Do���X���BX��J������o��\u0000�?Y�}kw�����M�\u000e��[\u0005�-_���a�i\u001a�GY��M��)�=\u0018݇�;@j5:YGW\u001b\u001al��O|�0�<��|�j�\u001c:�p�\u0019f��\u0004wD��GuԼ��,�\u0000���ޡ����\u001f5�[h�\u00009<���\u00003�5��mo<��ԋ�~a����H�p�U$��Nl����?d�����'�q�/�|�\u0010���hp\u001d?k\rDk�>(�wq¢~{\u0015��?�\u001a��WJ���%���i1�\u0002�+�y�Ԟ�K���7S����4\u001aXe�9�\u000fT�/��\u0001]6�z�O\u0006(@]\b�n������'�/����o�4��/�O$i?�~O��\u001a���y��4yC\\{�ik�y[^Ek�\u000bTI=\u0019=H����j�l����=Y�\u000e�˓K�0\u001fT(�Q�0�yN<�'��;jsӍ\u001fh�\u001e�Jw�X�et%\t�Q\u001f\u0014W�痜�0?'<��ggcu&��=cKK[�ǎ�}J+[\u001by���s\u0002�i.-f\u000b+QC�\t۠��oK=\u000fk˵\f��2�\u001fO\t�\b�^�w\u0017;�5X�:\u0001� �*�\"\u000f\u0016��c�����'���?�/6~^k��\u001b�n����W&��ڭ�ci��=J�#�\\?�k����\u0010�\t\u0002\u001b�NM����{���֛�_N@�]��Q�\u000f\u0010\u0007��C�[Ɖ�\u000bAK\u001b(E��C�����:\u0017�PI=��}t�_�g���wP\u001d�\u001c�|�/a���A��\b\r�]u=J���:\u0015,6��n'�\u0010\b\u0007��W�\r\u000eNQ�f�fi�ZTƬ�C0�\u0002\u0007\u0003����#�\u0011\u0003�Y\u0002\\�٠ڲB�\u0012���nH^�V��7���MD�n��\u0011\u0014\u0019�v�[����3���\u001e\u000fP~%�H�ߏL�r$�@��\u0000\u0005�-\u0012�8]\u0016Q=� \u0002�s�6\b\u0001=7��^h�rc (\u0002�+R�Ʊ��+\u0000��88�٪� �\u001b���;\u001a�$\u0000\")�zU��5P�\u001e�8V�B�\u0015Z�LŒ�{�)kzH\u00101�\bՆĩ\u001cy���\u0007���\u0000h��m��z��+!��ּeW�Tv#n�}9�.{rm�K��o�E��>@���|\t\u0002���*�޺91�#f+ud����k_���;�� h��\n{��\u0010��˾��}����w��\u001fRN�Oo �f�I\u0003�o�϶g�\u0016\u000f{�)*Y���IF*\b&��\r��1r�������~m}\u001fRҮ��\u0011�uI\u0005\u001a�F��\u0002N��;�Fٕ��0`K��R�\u000fӾ�|Ϣ������e\u001f·�Z� ��\u001c�ᕎN~\u0019\u0000j/1� ��}\u0015�@i�IJ\u0016&�O\u0013��Q>�r�⍎l\u000fZ�[�e������BkO���su��m��&\"�?:?5��t�v�0�c��h�N=j��\u000fL�43�ſ1��e�*�s\b�56�e�^F\"@\u001b�c+Px����:�\u0003���rq�Q��\u00168u\u0018��1G5�����j�Y\u0011���&��f\u0016\u0019pHK�)˗z�>�\u0000s�\u001f��\u001f��/�O�ɻ-;�~N�6�w�n��|��+�$�G�7,#��oy�O\u0017�\u0016�ܜК-N{�}���fqK1\u0012�r\u0011��w�{�:�ϻc\f�}�� \u0000F���<���\u0007?s���\u0000�w�\u0000�^�O�O�t�#�^�Er���l�\"����f�>\u001eW����C\u0000z��\u0007Ӂh(MI�v�ij;C,�Z�\\�\u0001�1\u001f͏����\u0004c�+\u001dwz���s�\u0013ʾJ�\u000f��Nnm�$0�Io�w4���]ߍ�\u001f<�c���$��\b�%�EѬ4[t�\\�\u000e���\u001c6��V��\u0018��ï�(U\u0013�f�\u001c��\u0004��C\u001f\u000f\u001cG\u0014�-�\b���׻��p��ǖ ��8�F1�גD�\u0005t���\u001c������寖4�\u0000&�7����O>���B\u001fO�v=}�#C\u001b�Z]7K2z6�+Ppg\u001fh�\u0004'\rnyk��L\u0001�u�|���#�]\u0019�\u0019������c#,���_h\u001c�\u0007u�o*��o��+T�o��\u001b�[$���.\u0012h���7�a�\\-x\\[Go6�i;/�^�9�6CQ��\r�H\u001f�����k���~���.t�\u0004���d�;+׍��%�1U��Q�R�\u0011@v^`o\\�-\u0007���۸\u0004��u nF�?ҏ���Mc��/)\u001b�\r�\u0013[���;�=��q7�T����:��A��s,\u0017\u00162�Dwh�$��h�:���i���w\u0007i���\u0000总\u001dߥ��c��ٺ�\u00071#O�b<�c����״�-�py*X�\u0010^�sj\nȥZH��*��Jj~G>�=Gd�+q\u001b}�(ů�o����\b�\u0000���\u0000�m����5M.��$w��\u000b�W�W��ḷ��;�n��GL�����t��#�#q�{Ǒ|ﵻ.X�1�\u0005e�\u001b���;�\u000fܟ�-b��ߒ�@�ԕ��\u0005�����1v\u0016著j�D�@Ew�yoi�a�L�\u001f�'��L����܃_\u0006\u001f�]T����RX-ѷM�\u0002@�\u0010\u0003�T\u001c���<\u0007J����g?��G��_-�Y{ȒZ�\r(�\u0011���l����e\u001dX��P1\u0004�B���~���3!\u0017\u0003,�\"6m��{\"l�\u0011Z0\u001b�\u000e��;�D1���ɖQ\u001b�\u0002?L�Yd)�P0\u0007�\u0000|M2\u0019�b.�-�l���o��t����V,��I\u0014���5��[uvخ>�d���x�\u0002\u0003ҿ\u0017�CۯC�DJ2��W\u0014d\u0005sFZ݋Y\u0010L��A�:���>�\tG�q͔&!+<�$����h�\u0010Q�\u001b}�w��9�(\u0012<ܨ�d\u0000�����kK�/�H�cFn4�=�ߗ�u\u0013��'\u0013]�ǔx��J~G�.t����\u001ff��:\u0006�KY\b�\t\u000e�z\f��Lg��e\u001e`\u0017�2Ǫ�J\n4���;��]pi!\t~�/�y3�K$e��޺w�w�֞l���o��ۺ������kߕ)�\u001c3�\u0012%�d\u001cyK\u001e�\u001cL=9\"Yu�p��42F�ha\u000b��\u0001]�]ώj�\"'w��F1�>\u0019\u000fX\b3vA�v���\u0004�\u0004�ׄ�J���k��yr�P�\u0017��z\u0017�\u0016���R�\u0007��s}�\u0015i�yr��x�YO�Ɠ\u0019�w��[��2�\u0002Z��H\u0011UWj(\u0002���r�3\u0018�dv\u000f�`��\" \u0000&�L������m�d\u0015ZӐ=����`\u0019��x�\t���<�m��U+�\u0012�7�[�z\f��}^T�0Dx`u\u000fW����!>��5h\t=v��\u0006W\"��\f#dg� �*�\u0007!ƣb*7�}�\u000e\"938�!r\u001b�[A�܉mٶ�To��Ƥ��\t��Zp\u0007��M��\u0004��m8��S�Jx\u001fju�H\u0011�m�.(�K�\u0011յ�m\u000267� ��(�\u0015�製O��F\u0012�}#v�����s#���B��2��\u0017�Ϳ�S�d'c�9�Î8#|��瞮W��ђ�o\u0005�h\u0015Gٯ#�jbe)��X�c\u0000\u0000�.�\u0002vۡ��_l\u0002\u0000{�N��[�\u0015\u0000\u0003�\u000e�۩�\u0019la{�j�CʷC\u000b�\u0000��Z��?\u001f��Oþ[5��β����\u0000\u0010:�iS]�>9\u001e\u0013ޝ��\u001e�\u0015A$S�\u001b���p�\u0012X�<��^sV�/\u0013AB:�\u001f�c��8X����W7cj;\u001f�'�#a�\u0001�R\u001d�>�1}t��\u0000��E\t�kԝ��Njn�,�[�c\u0013K�3(�6*Mz�#�2#\u001eA����^_ڃ��D\u0002D+^�V�#c^�\u0003-\u0018�Qa,�\u001e��!\u0017Q�/�8ѪYMC��/j�#UѨf��\u0015�͒ZM�C)n�+M��9L�F�9x͋\u0004_�=�\u000f\u0018�>#QA�tj�v\u0007!{�\u001d�6���y�|���\bޤm\u0005�\u000f\u001b��\u0012��ũ�/���>�$O�����x�:|��\u001d?�ߗw��J��[@y\u0006@]\b\u001d�C�$��7\u0018��U\u001e\u0019�\u0013��}4��H\u001d\u001fD~M�uyo�\u0011��?5M\u0016��\\ �\u0019$q\u0014w\u0013\u0011D�!�\u0015������2��0�q�߱��Wj��\u000f�k����=�^G�x\u000f�g�<��_�Y5�kwԴ[���^�Jq-�pw�b|\u000emt\u0019���B'l�:~���;Q��b'c�?[$�����?�l\u0017M�_\u001d:��ONI.vP�6t�o��Q��t\u001a�R���Kv��4y���\u0014\u0001���\u0007���W�ִ�w�2Zj�ȣ��],�\u001dК�_l����*��ď'y\u001d\u001csb������%��e��Z\u00042X�|�\u0018�*�\u0011�\u0005\b\u0016O\\\u000f=�^��υ�$V��\u001f)?�m���\"��L�k��ʄ�\u0014�1���;\u0000I��6�\u001d㳼iԙ�3���Z֯�/tH[�a��Y\"��\u001b�J�\u0019�_�{��Z���I�\u0003�S���B1o1�\u001d�ɻ$�a�ߧ`|��.�o�m�æ�V7Ri�r}C˾W��W˱�\u001a����r�g���\u001e��,��\u0014n?`�،�7,��\u0000\n\u001b�2\u001cϼr�\u001aF81�0�q����\u001d�K�������址խY�hµ͍�Q\u0004��\u0012�+�j�GPs:\u0017\"\b�~�A�ቔ:s\u001eO�}��9/�'�\u001f��\"��e���B\u0007ɿ�?Z�2_y��\u0013� �m��\u00054}>��J:I+S�q~�v�\f=��[Dx�k��8|7�\u001e��\u0000�o`�_�z�i5P�\u0000\u0005�Da�Ŗb��\u001f���\u001d�\u0014������mj�=ڀ�nA@\u001b�aJ\u001e;��<�4�$\u001eo��� (w3(\u001cƾ�*�N%8��\u001fh�ٙ��S��b@6y��r�\u0005��է<++�\b���F\u001a��� z`;�!\u0016\u001d3��U�X� �\u0018�A�&<\u0004҉AaQ��${er�\n�^�Ț�����s\u001b8xܗ��*�\n���;��,\u000e����\u0000寘do.Y�X�\r�s�-w��\u0005s\u0003W#\u001c���\"\"��\u001b�^ntd��$\n2�h\u0005;\u000fq�x�}�X��u}-��8,��4�\u0011�ܺ�\u0010=�3\u001c�\u000e�\u0000\u0014\u0010\b��z&�\u001c���h:���Nٓ(��\u0001.\u0013E�[܃��o\u0002EkO�r �xO��2 ��,��\u0005A�ڕ�\u0000>�xh�\u000ekv\u0019]����rv�\u0000?\u001a�mH��\"�r\u0006�ר�����(;���ߟ\u001a��g��g̅9ǣ�Y��R�6\f��]�(\t�\u0001r+�jd\u000e\u0003\u0003�R��J#��D0�v9\u001d�\u0000�_�w�o��t\u000bi\u0015��ʋˠ~���z��B9\u0001_�t�>��\u0013\tx_�\u001d�[>'�G�3�^o��拯,~Yi�U�DO1y�\u000b}KV�h. ����T�l���k���\u0006q^����ȝm\u0011���o}\u0004\u0011\u0003V/��r\u0007�����������?�/1ƞ��h�`�'You6*Ha�\u0012��mZW*�<� Ŋ'��?m�\u0011��\u0005\u0013��w��,5\rG��\u0000�|�e$��ipZ�Z�\u001e�̬�k����\u0000$��s#�����x�w\bӑ�\u0014#�s�O��\u0007�\u00008��-�\u0006��7杍Γ\u001b[Z���\u0000!\\r��<�\u000f�=-g_���|�O�#p�7U詹�qd���\u001b^绻��8W�ÎUl\u000f3}Op�K����5\u000b�u{�[�/Y[�-������Y��\u0015c���\n���Q\u0015��j��n8���\u001f����-q��,�����\u001c�������4��\rB{�|��\u00147���)�|��\u0017M�\u0012�&\u001b\u000b_/�ii#?��#V��3G�g����!@\r�\u001e�W��B�L��Qώ�;��-������\u0000\u0003�/�Ǘ-��[�#��7Zk�$FX�f��\u0000�\u0018�W�$7Q�\r,��x\u00123l/���I.����{akv�V�\u000f�MJ�[yl�\fsX��[�)#>��\u0007^5+M���7<�\u0019\b�-3��\u0000�w�o`�V�����\u0007��5����?�V��PӴ�V��Yk\u0013\t�_�v���|ϥ��E2\\iM�D$\u0001�X�!^���1�ٻ?S�œ\u001f\u0000=��\t��:;tp���ˏY��d����Q�\u0000:\u001bo[�t�()<����e���*��K_���\u000f=�wW�\t,w��\u001eq���Q.���m�⻷�u�S��ls�{\u000b]���؞�(��Ĵ�\u0006�2D�O��@�H=\u001fli0��?\u001e�\t\u001e\u001e\"2D��9\r��`�\u000b�O�q���1���ճ5�\u0010�Z�w+k\u001c!��U�S�s\u0004�v�\u0014\u0011^��\u001d��O?H��gc��\u0010G�[�\u001d�\f�mN�BZL�p�o�9�~�\u0000I\u0002���\u0018uq0�cǚ\u0004\u0010FHFv\u000f1�\u0007g����q3�>c\u0012^yZF�^�򰭂=Ɓt�\n\u0016��\b6�BA&\u0007\u001bv���;\u0003�\n��vI�.���\r\u0018�\u0000T<9@��\u0006���|��\u000f�\u0011�-����D�7Y���a'�X�v�0 �>f��\u0000�\u001b4��q8���\\���=��\"ޯ�wF���;�O\u0002\t\u001c\u001a���ڻ#�\n\u001e���c\f��h�D}\u001a���\u0019\u0005��n\u001f\u0012��\u0015�k�22Ǧ\u001a�8?^�Bf��3�8����<�}a(��\u0000L���\u0006_P�X��\u0004�OQ�E׵s�í��!�h���\u0003�\u0019!+�\u0003c����������}F\u0019�bx�\u0010>$W��M)\"�ډ�\u001e}T�\u0003m�Sq���-O\u0018�\u0013^��\u0012��H\u0013�f��2\u0005k��X�r[�O\u0019P��\u0000n�}\u0015�4�7\u0007���-���j�O�\u000e`W��5\u001a�W�7�\f�OP��[����jW�I%��*i�(��ZE\u001f'g\u0003b��[��bX/?���L�\u0000\u0000�>\u001f\u000e���ʍtp����j��z��O�4�\u001bE�4�\u0012)o!����{�x��~\u000b[+9'�}GS�l�&�� fOl�]��OJ2�c,�̃�x @��y<�\u001f3��\u000b��3�~���\u000e�K�\u000e�����r�D\u0007X�lrd=#\u001d��\u0010���_�|��]\u000b�3V�����Ʊ�����D����O7�\u001ay�=��\u000fu{\u0017�/,$oOU[h�㷗��Ǐ H���g�\u0018;R]�\u001c>�h0��\u001f,�FLR��\u001e#Q9\u0004���E\u0018�边�\u0007�\u0003�/K���W���;g\u001e>?\u000f,`#�D\\���xN��\u001b��X/�����\u0000�įϏ�̯;[�O�W�w�i�\u0017V��o�+�W��w�m�A�ˬ�Sp��X\u0011��t���@*\u0015jsڱ�3g�\f\u0018\u0007\u0015��\"?�'��_�r���r�ڇ#���?���n��?�\u000e�\u0000�\n|��\u00008��?�~W�\u001fGӭ�4�Z��\u0000P3YM�y��ש�j~g�\r�\u0017���K2�%`��(\u0000gY�`��\u0018\t�\u001b�\r���=�#�Y�y%��\u0018_�X�y������_�z���n��\u0018��\u0016��\u0002\u0004i~\u001fQTŰ�\"\u000b3\u001f��93���Cz�\u001c��q��\u000f\u0011 y���\u001aE��\fRD�ф)0�\u001at\u0011�\u0004dbG1��.Î�0�cI��3���2t\u0003\u0018��t��\u001e�=�!����\u0000/��x1�8�c�o&�$��\"\tې1�}e�\u000f��?ʭZ�ا� �\r�\tx����B\u001c,��J���\u0005+�n��\u001eЈ�\u0019�\".��G��4~�h�T|>\u000b�},r�����k\u001f���\u001ev�m3Yմ�\u001a��\u001e,f1?\tY8�V��%BI\u00000&����\u001e�h���lj\u0011�5ݷ�vS�.��\u001f\u000f,�\u0013!���;�q��q[�����s�]��ҿ9�������]�Z_���R\u0019��\u001fQյ{h�\rWBV��N����\u0012��c\u001c��-\r@�\u000fi���n��\u0000��}�ͥ͡����!���1�����k����O��\u0013A����W\u0016�\u0016|p��@F^��\u0010\f\f9ƀ�+ �~��}\\�O�^^�\u001f�Ǟ-=_.y�����4�s�k�[B�f�j�WYR�\u0001%@���s�=�Ŭ��pv�fσ]��@�,�D�W'��i�z|������P\r��t*C�����~\\~y~`�+�j/\u000b��\u001d��-��j��\u001e��=\u0012;�>���\u000f�\"�0>�m�g�]��}���b\u0011�1�:�L']<�{�\u0006��Wh�+�bx�8�*&;\tF�H}��|4�5�K�\u0000�[~U���H�K�c��\u0017V��Z�\u0002P�4�K}\u001d�-��p[�d\u0002\u000f_���wo{\u0017�R��'���f\u0006]\u0000?��}66��/�v?�\u001d�������3�\u0018\u001dx��\u0018�P��\u0007~�\u0004~y�\u0000� ��ȓ^y���Uǘt]>o�[y�E�ȕ�\u0005ݴ>�֟s\u0017!�01�p�o����\u001d��\u0011��W!�S!G\u001c�Q�4$\u000b���Z�\t��K\u0013�M\u0003bq�c�\r�E���7�q_�B�г��\u0010̿谤̪�QB�i\u0014�`���7~��{Y�Q\u0013�H\u000fG=��^���ќ�F\u0013��\nߟv�Oi���=�����8-#���\u000f�[:�t\u0003�\"����\u0016�\u00039���OO?\u0006G~��v�!�\u001e$F�C��\u0000.���O,��h�KKd��\u0005\b�\u0016.|8��(�\u0001�:���������i�1�1�=G��Fqwwyp{�����4\u0007��;\u0002=��|�!\u000e\bF\u001c�\u000f��e.9�\\���=U\\\u00196\f\b�xw���fv\u001e\u0011]�U�AbS\u0019BІ]�jw��\u000e��\u001e\u0013��ˎ#������#�nO_�������Kĭ�Z���� 0 |ǎC)ڈ�8\u0005�9�s@�\u0001Uf�\u0011P9w#�4Z�Y�ޛM?H�\f��C��,�k\"c�\u000bP\u0007sO\u0001�f�e�9���?&�\u0019��,I$�im�[\u001dA\u0001��\u001cרڦ�l��8\u0016�\u0019\u0003��\u001c���+�,Gun^H�\u001a�}�^��2\u0018'\u001c��T�N9�\u001cQ�Y�\u001dSN($��j�CN�r�D㟓l'����K�V�H��O�\t\u0018(��\u001bz\u0015,v\u0007�6�t�̀έ���OO��9m}Cג��\"��j;_��L>��\u0007�iP\u0000\u001fN`��\u0017����\u0012j\u001f���?9i���/K#3@PL�/F?���\u0000\u0007�-��:���سh�m�S%�7����(X\u0019�\u001c^�\u000bT\u000f\r�\u00031uzc�^]\u001c����4�C\f�����|�i��s2�-�T����HE\u0003�'34:\f���Dm{�\u0007\u000f��W\u000fgb�,��~ޞ��~Z�7џ7j�]G�\u0013\u001b�эZ�O/��\u0000�\u001a@y\u001c���\"Y?/���b���~n\u0007bh�\fCY��\u001f9�>@��/���,m<1���~�\u000e�휖���}+�H$\n�\u001eږ\u0016ڂ\u000f�}eZFv���\u001f�i��\u000e���\u0018ᗟ��[D[�MV;9(�P\r\u0005;���(�|C�qG$sp\u0017�K}Y\u0005�R��p��\u001f�\u001c�� Ys��Ì�6K�֥�oBB�BXȦ���J�'\u001c|[�a,ӏ���Qv��2 T�\u00127u$T�TT�\u0004�\u0011�\u001b&:�\u0014\u000e�P���\u001d�����\u0018\u000eD����2�2�\u0006�.\u001c|E��w#����pK�Z�\u001d#\u001b��\u0006�^�\u0005*sk�\u0017�\u000f�<�(��o�K�S3�P��U@\u0005\u0002�\u0000^1�y)����P|M��@v��b�I\u0007;�4\u0004�w\u0003߶�\u0018@��&\u0012�J�b��\u0010{�\u001a\u000e����X\rd��^�t�\u0003sN�P�\u0002��'T�)�s�}�\r���*\b��\u0003�\u001e��]��<�\u0004���%{�\u0004}\u0000x\u001c4.�{4.\u0012�\u0017���Z�\u0010q�<@�\u001dVJ\u0004�\n�\u0015&�+_寀=p��*<��9y\u0011%�CJ�����\u001e�v=��6M��H\u001eܨc�kʏ�E\"�h\u000ed\ton'\u000f��\u0000�H�����m�O�B+�2b@�95\u0018HJ�����\u001a\u001b+�duR��Ӱ\u001f\u0017P\u000f�\u0018�q�=\u001a�`\u0013�\u0010S\u001b\b�O�\u0012\u0003)+�|J�w4�R\u0006>��`��d\u000f�6]c.�\u0018�\u0010=���jt��8�\u0014A5����3�rFx�c0F���\u0006����X�~ai��O�-�=3ZH��4̋�L�*�\r��;:R➔��w\u000fa.�\u0007\u001cc��8�(H\u000f�?��\u0011���W���NO4�_��z�L�-\u001d$~!jI\ny\u0012XS�f�G��9xZ�E�k�Xr���\u001e(\u001f���o�|�y�d<�a\u001dȹ�}ԾN�\u0016�3Kom��.�\u0010�_��^\u0005�V����Od��iC�Rsb\"1d2�kQ^��O���7���~<����q\u0000x\r�<��u����F7���\u0000˴򕍦�\f:\u0017�.�I��W\u0015��L�Kx����%#\u001c���Ku'\u001d>\u0019��7�E\u000b�u��j�<\u00191��gU��^gr�������=�\u00001|��U�\u001b�\u0016}BY�<��/�\u0017�|�l�ڞ�9\u001b#�_��I��aN�ghv�{'G-T��i\u001e\u001cq�t��\u001cϓ��h5]��8�/FxsŅ�b�\u001f�dy\r�:ȇ�o�7巖�\u0000.*4_-�f�;\r\u001bM�X��oO�̈ޟ�.�\u0000;�]ȆGv�%�x�ig�M\\�FY\f�G�=}��OҾ��v��{+\u0016�G\u001e\u001d4\u0005Du���O2O2Q�\u0016�\u0019�[��l����Mj\t\u0005k�|�U�� |)߆Ycj��\u0016U����a)gH�\u00007q�-G��c�JQ���ݑP�J��_R�}��\u001f�@ ֵ#\t�d,ry���\f�\u001dbYy����\u001e_gӈP��jO`;�\u0000\u0001{�-ɭ��әGq\u001a�r�X��kɔt \n�Fi��m�A�v��7�Pc���$��.�\u0004rz0 ӑ��}�\u0012D'\u0011�4{��l\r��b��i �2%䡾/n�\u0007A�\u0006�u\u001a7_��)\u0017-����>ex�\u0016\u0012\u0015�R��~���3:\u0012�Ɏ�\u0007��V�7�o\u001b\u0019(�\u0001aZ��f��H��G��\u000fq��\u0000�\u0016a\u0018�\u0001&�\u0003Q���e�1�!+\u001e���wJ�\u001e6����r�M�m�w3+\u000b�U���\f�A���g\f(z�ߨ�\u00001�%&<�\u0012����\u0000���7�˨����\u0000)�\u00000l�\u0000|M+�_Rx�w��1�]�#\r\u000eL��8e��q��a�\u0006xg��\u0000\u0014$>`���+ZE{\u0005�:��4�*���%�������w2��zr�>��!����H\u0003�\u0000����`Ծ���y>/���Uߜ<�{{t��:�Lq\u000f�on\u001bҶ�@61�n�@ڂ���q�<\u0011�����Æ������w|\u001fo�g��S�p�-2\u0017hd�5[Yx��^4Un&��\u0000P���W���/�7�X�G �1��������p�Q�ѿ�&?.|իhz~�\u0016���,l�kd��`��l���u��I��w\u0016���G0��!uSO�3��9�R99J\u0012\u0000�\u00126?����0�< c�\\_�.k��P�̺�}����]^_�sop.\u0018����r8N~��\"�\u0006�\u0001�3><\u0010��-�\u0005�b2\u0012e3d���X.�摢�v\u0016�v���\u0012�^�̋�yDM9U�#��t�H��$&7 ,o���\u0000̚ט�ǤI&��u���`��u�?D���P����\u000fդ�ԍ�e��=+�X�y\u0015�b\rXK\u0011\u0010�\u0019F4vߺWq'�y��Ր\u0012%\u001c��A\u001c;\u001b\u0015����`z\\�ַ��X�5��4\u001b����\u001b%jNuM\u0013ӎ��\n��˫X��N��K���ms\u0018C0�\u000f�2z���\f�\u001d\u001cl\\s����hze]O�E�O�^�{^���i�{x�,��\"��\u0006�W�\u001c�������fD2�Ď���5L\b�\u00127���*�n�]mԀc�Auo�\u0002\u0017��E��:�$�SC�8�!9\u001b�~��fQ�b\u0000�������\u0000�ٟ�v^}���$���jw���s[�V���\u001d��Bk[�\u000e�7�Mi����j�����N�T�#�.ϽD{SMcĨ�#j�\u001d�0z\u0012\u0005_�\u001d�`�>\u0014�?SF\u0011�\u0001�\tm8\u0011�\t�t���\u0016��=c�q���?�~m�nn|�ism��Q����M�c��\\��D��Ԅ��Ј:|�,Rh7#�͔L=��v�\u0003�J#�8\u001b\u001f\u0012#����\u001d�GGY\u0003����;>R�\u0018\"X��?��!}�>�7�}_Q7��3��Ť�Gi�h�3�����\u0019V�[�1�bn\"E+�ñ�h�\u0019�1�w�v#�~>�p%\f�6����\u001e{�{��9m����[����t�x\".�\u0014+\"�����0�u,�\\��,r\u001e\u001c�0�#�y��.(�� k%خ^�\u000fG�h3�3�ʞl�\u000e��h^G���a�<߯�\u001a��i�Y�\u00041�_X���\u001c\u0016\u001d\u001aiݥ��9L\f�\u0018ՈQ�����ŀ�5S\u0011ǧ�꜈\u0000c�)NGa�6$�ۯ=��\u0004��\u001a],%,���E�)\f@�x��\u000eW�\u001f������S̿�Qj�\u0000�?��>a���\u0000�u�#�����]��'���?UKjRE,:���.ݔ4zdn�w���2�\u0018\u000f̾��#7jJ]���勳*Q�ac&`E\u001e\u000eG\u001e\"6�\u0019'\u001b�\u0018�\u0013�W�\u000f�S�졏����3v��P�}X�u\u0007 �(�[�\u0007��q�B�4����\u0018᷶�6j`\f���\u0012��!�(�~�F���V���\u001d< \b�TC�ꑹw�^�R��}X?�$�\u001c����Kq*q�\u0001\u0004�ƈ�~\"z��eum�,\u001d��e\u0012V�FgId����Y9\nFyQC+�\u001b�j\u0010����\u0006\u001e4�%#T�\u0017& �\u001d�I ��r*�\u001a����&\u0014�8�\u0015n�\u0000`��1\u0019%w�\u000f{�߳\u0005q\u0011�%���_I�D�8��\u0000\u000eL��ۂjk˹��(�S9\u0013w�i�Eg�4�mh��nco��E\u001b,̪�����\u0013��Kʎ\u00004\u0000�q��x�zg�\u001b���n��\f�X딽C�l\"�,|�{(��˺T�O�8\u0005�\\eߏ6khcd�i\u001diRTv�M/nv�p�5��c�e�\u001f\"Hu����-p�\u0000\u000b�ir\u001f�I��3y���k�o��O���އ����ج��1Ƿ�d�\u0003�蠵/�%\u0006T��íX��!\r̲�j�I!��|a�h�0R�ŕ���i��\t\u001d�\u0013�\u001b�M�>@�?�I\u001fc�������2��ڭ<��(�\u001f)\u0000k�R�\u000f�o3X����&猄\b]�me�\u0018 S#�-�v��(:��\u000f�\u0011�2`\rN�Q���\u0018L_��K�j?�Yڸ�:MV� �$'����/NѼ�m\u000f���D%V���T�)�\u0000\u00168��ᯈ�����^�f�\u001dA�{�\t��C���\u0007��yp�0�;�䄇�A�\u0013K�&��a5�\u0016\u0017�J\u0019T�6N��%S�<|y3\u001aV�zfT=��1�z�?\u0017����t��d=�Ӄ,����\u001dDD�\\$�����\r�����+���3�\\!&���Ơ\u0010\u0007\\�ͦ�x�e�(�N'�.���x\u0007\u000e�\u0016h\u001f�BC�\u001d\u001eksl���J��YU��\u001d��CB{��\u0018��1'ȃ�1$CyX\u001e`��\u0000m�EP\u001d$\u001ckDVn\"�\n�ԟ�\u001b1��\t\u00063�H#Ȣm���qؒz���6\u0014\u001f�J\u0013��f\"Yf��)�À2��\u0010d~@\u0013�%Z���5r��y7�\u0017r\\�\u0016�4;�I*j\u0018O4QGB\b+�\u001d�Q������?��i�{�ď�6�t���C���t\u001a�\u0013���#�>\u0011_\u0014~��\u00008����H\u001e�K�|�\u0007��\u0000s��\u000b�N¶6�4��!�ISC�9�O�݃�\\\u001aa�Q?�dž?�G��\u001a/�\u0017�Q�\u0002Z�����\u0000>|r\u001f��\u0007���\u001b��Ν?=g�\u001a+I�\u0011\u0017���\u0019\u0004@r�!����\u0001�V\u000b񎙪\u001f�K�BDh�p���d$��\u0007��X�\u0000�=��\u0012�\u000eМ�Q�\u0014@�\\�M|\u001fg�K�?̱�����\u0006��e�e[&b�]����FQ�69o��oj�w\r\u001cq�xf_i�-��\u0003�Ɛ1=l�w��\u0003�\u0018�����\u0015Ʃ?�|�-�����$Z\f�\u000b��GgZ�@j‡.��\u0000\u0005n�\u0018���C9�;�\u001d�������\u0000���9r��Y��\u0010y~�_i�/\u0014��\u0000����5����em�;}*(���\u0000�Zv?\u0003�P\u0002*sK��\nݶO���_�C�]�?�'��*���\u0000��^w�O��F��i�j�>j�����6:��V��\u0006��\u001e{u�KI�6��)4؊���\u0000\u0004�i3c0�\u001d.)\u001d��\u0012e\u001f��\u0012/̂��Lﲘ�\t�.�0\u001b��@@�\u0000[�\u0002Dw�L*��\u00114\u0001��X�����Ax���,m���I\u000b-�ڄ�+��:���W\u00113D̼j�h8�D5=��9�g�u\u0013��S��>�7����'f�=����4�\n\u0003�\u0018�\u0000\u0000�m\n������o��/��_�o��/-�W�{�W\u001a��O�\u0007��a�դK�\\�ӭ�i���k���ӭ�9\u0019f\u000b�� \f�}��\bv�ni=�͗$���\u0011�vI�9�D\u0012}F\"��t]����{��~�O\u0016,y�BG\u000e>Fyj�dk�\u0007r9mO\u0016��\u00006��(�\u000f��toʏ �\u0007�4�&y+K[\u001d2�{�\u001e���a\u001f�u+���\u0019��c,�\u0013��@?A{>z.���K��\u0011�\u0011\u0011\u001cD�Q\u0014.�&�����\u0000��5٥�VD��Fd\u0001\u0011\u0010dx�\u000fyڷ��yc����\u0000�dǨI�M[�zE���ҀR�(�Lb�Y`�:\u001a�e\u0000x�w\u00145$��\u0014/t\"k�VH�\u0006�o�\u000eL�\u0016�*\u000b�ڛ�\\4��F�\r~�F2�N�(��\u0011�.��7%����濒�Ѭi>G�M߮��Q�\u0014����Lj�\u0011�%\u0011��T*�„�֙�k{?>�\f�Y���\u001b�{���a�7����W��l��\u00008�ĺ�~D�w����٥Ǜ&�F�u\"\u0014=����y:�5\u001e�0�p\u0006�@{\u001f'�ߞ���\rB��\u001dr{�G�~�}��j�\u0011&:8��ӏ������]�\u0013�\u00009����o�=k����C����\u0017�K�[�����[Yu�J��cq:���0G\fP��\"\ng��\t������V�=˴|j\u0006��q\u0014*��'����ɫ��i�CD0�\u0001B�I\u001b�#ʀ\u001d�S�\"���\u0017w7s�KIf�\u0007�\u0001�x�\u000f􀒩IU\u0019F��J�I-\u001e<�����^��\u0010��H��4(\u0005̱�\u0018��k\u0003�d%<\u001b='����\u0006>\u001cD�s����x���c�g\u0019\rp�]u���~o\u0004�����\u0017��n���c�j\u0017c�\u001a��u8m$-*�\u0006�{\f�F�gUj,�2�\u0004j\u000f������\f~��^|#�\u0010�\u0012|�=R����jg���q\u001b���\u00146���6\u0007���u�;\u0007Ӓ��_���Ҿ�������({-&�\t�:�\"�D%BZ��Ms��wgBy\f��>\u001c��/k�?\u0003�ϱ�u2�\u0001\u0018d�¢G� \u001d�q��:���-�Ϩ�_D���e��+�w�+\r��*\u0014e�Rӂ-�ԁ��qY\b?k*ǟ�tx�\fYN] �C%���=ۅɃC���O\u0018ǩ�9B���?I�\u0011�Ť�dP[�}\u001d���t7Q!����:�\u000b�\u0011Jj9�J��`�?\u0014�\u0018�N=\u000f��FX�\u00008��z��/�.��:v���\u0013C\u001d����\u000fV��\b�\u000f�\r�e��2��\u001e�W����d8��'׆�{>y�fPL4;Q�ڀ\rϿO�:8����\u0011��ǧoS�b\u001a�\u0000\u001e\u001d?��ܿ��#b�ٔ�Mp��md�ئ�\u001a\u0010v\u0007۸m�\\�J#��!׿2�_����<�����_@�ZMjxڰ�k1QnYI\u0004;-)\\�����}�%-��c�x��\u0007��3�_�D��M�^�!3=\t��?\u0012�9�\u0005�PFQ8�\u0004i\u0014���\u0015T-v�\u0019�z��\u0012\u001fr��82�5����Mj��Y�{\u0006\u0012*�H�\u0007�3O3\u0019\u001b%�\tÔhw�Q\u0016�}e���\u0006���\b��R��Yc��\u0007:9e\u0000$l\u0010��5�sK��Cth\u0004��v��Y�(�!ʆ�'ym>��K�I�r�0Q\u000b#+�5?�~��剌<��HK%˹\u001b�ygR���)�,�[�$�\u001e��\u001e8q�k�r\tɥ�-��e��\u000b�\u001au���щ�Mʻ��'���jp�\u001d\u0001���G��K&�9���\u0019�7�.�Jh�L���\u0000��\u0003OJ\u0014�cص)펏\u0006�)\u001e���K��$J_Q�\u001d���Վ�\r�Goj6\n\u00147�&��>��8�9:���\u001f/О��E\u0019�m@zS�Ԑr< �ѷ�<��\u0012���\u0018�\u001a\u0003N�\u000fN�~�\u001c(\u0019w��%uDd$\u0017sב;W�\u0006�M\u001d�\u001aM\u0017����i�o���\b�XL�ƈ\tL�\n\u0016�Y��C��7��Z\nS�]\u0013r���<�x,Uw�w��!��\u0012���u`\u0016��Q��qA�d�6+f\u001e�6؎]S�G��1G\u0004\u0005�iR����U*��Ï��;��L(�b\u000bB쇐;�\u0015�\u0014=��#q�\u0004H�l\u0002��un��#�Bk�\u001d�\rj\b�s��#G��H��\u001b\u0015#�\u0013\u001bMC�^�s\"�\u0019~8�֧��a��5�����Q�~:!o�7P�$p�A%~\u0010:�ֻဳk#�s��<�'G�m�v��\\DK����7ڃ�3c��N\u0007��.�]�ǒ<`z�r\u001f�:���>�뙬����Ֆ\u0013\u0019��F�\u001e����1�,����נ͓J8D�\u001d�q\u000e�\u0000������ϝ?.�E�-c7\u001a���\u0000Kp\u0005ZIm\u0014}�\u0000\u001d�\\��oiK\u0014��Uˡp;c���-_g\u0001�7�>�f?�|�7�E�\u001d\u001b�'ʺ��G�D���$����]��q��򥌥�ȵqM���/Y�zL�4��?P\u001d�5\u0018��\u000fd�\t��˗\f��������\u001f���\u001eq�<�us1���x%��y>�w\tb�{Gz����M�sq�E���ge\u0015-'\u0014�c^��h\u0000�Č��@e���w�:\u001e��t��R�F6Mw\u000b>�\u0000w{�\u0013�p\u001f�7[����_�\u001f<�\u0018�5�\u00009��u\u0018�\u0014��/yj���ϖ\u0007?�\u0017��Qqr6�,����.��X��i�S\u0003�\u0003��w��瑷�>��\u000fa����\u001a�tk���N@�X�\u001d�b� \u001e9��U���cg\u0006��\u001b5\u0011���(X�R9�k�o���z��\u000eD��)˭�����1a�06\u0011\f\u0018i�6�5ܑ�Ĵt\u000b�\u0006`j\tߠ�;�\u0014e-��l�e��av��%��B�I\r$�؃\u001b/�#\r�MI\u001d�TI\u0007���\u0000鴩���\"��Q\rJ���Y�*���݆Dʙp\u0013���\u0007�<�-�\u000fsY\u0002F���U�#\u0003ZM�p�8\u0006����\u0019Kn��1ރ��H�m�c^.�P�.+��Ӱ��g\u000b�\u0003���?-�\t�Ὂ\u00198�$o��jJ�\t�^�\u000e�阚�<..�}�F3*�{n��\\G\"��GE<����C���\u0016)^�`����N���\u0007�\u0004ަ�Ei�33\u001c�띤����\u0000�>`�\u0004\u001c�\u0000�+��\rs0Y�#�a������v��H��b6��PAڹ��bQ�ۍ�&2�\u000fv�5���g�é��\u001c��f���\u0019uzΝt��ܷ�>YX$\u001a�f|�ޝ)�H1�����!Ԗm2�\u0006�T���&V�-\u0016�i5��F�\u0005g9N�\u0017��̀s�)\u0001�14�\u001fX\u001eo�����.<���\u00009~UK�/0�y��zc�~\u0019#����\rN��\u0006CB\u0012�e�\u0007p�>��sY\u001dg`h��T�8�}�\u0000\u001f�\u0005�V\u0019����\u0011B9�\u0013�\u0012�W���[v�2#�d�;�\u001c����z1(G`:��͎C�rw$9&\"\u0018x�1\u0002�\r�\u0000�����;y3I\u0001����\b觊� zV��O\u0016�\u0000\b\u0001��+$yX|��\u00008��iu/3�\\:�Iđ���\u0011��\u000e�7R�*)ޙ����/\u0014s�g���\u000e\u0001ț���p���e���+++�mJ�)\u001e�7�Ry#��\u0012vPJ0���\u0000R�T��\u0000K\u0011�\u0017\u0010�u�[��)c��\u0014\b\u0007�l`�}5���tm�`�\\\\���ʷ\b\u0015�\u0016yR���JG_��5�Րj�\u001d\u0018�����\u0003c���y�^�\u001e�e\u0006�����e������\u0013C{h��\u0016��'a�BQ�r�\u0018J&\u0019%W}�w|Bg3\u0003b7��}��b:����0�>cѧu��=F/$y���&T�5\u001b\u000b\u0015����R��9��\u0000\u0013�D�\u0019�\u0011^���jW}֚_��Ô\u000e*;u\u0013��\u0007��r{�n��X�h�ܟ�\u001f�}���=� ��;���\u0011�֛��ڡ��3$���\u0013��=\n2�Ѳ\u0018��<=�nD�\u0012}@n\r���-���oh�\u0012)ksʑ\u0016\u0011����\u0007��Tс;8���3��9r�y.8ǟx}-�\u00008����%����?�F�V�u�i�cә�6��Q>��iȩ@�-\u000f��x�\u0012���\u00145�i��\u001f��5}ǜe�l���\u0013�O�j0\u0001�\t]w��\u001f\u0018���s�\u0000��������ݧ�<�}ms���D[ΞZ�r�{�\u000f��R\b���J�g���K�d\u001b%�\u0006�,Fr��u\u001d��☽$�\u0000u��D����l�ؒ�����\u0018�!�xT�\u000f�D����j���&H�i�R�\u0014\ndS#|����\u0010{C���O�KO�\u0010��÷\u0014��9\u001bJ]c\u0001���er~��\u0003�\u0007]�솜jsp�;zQ�f�\u001cw�\u0018A�\u0007#�꟔v|�c��\u0014��K�\u001c\u0018�V�$�B\u0017p*���EC\u001d�t�o9�'���9\b�\u0019n��-��\u001ac,��\u0010\u0012�J�\u0010���E]��J�c�\u000f}�=�^<�+�>��\u0001\u0000��_ґ�\n�\td�����0̊�?\u001al\u0016�8\u0002��\u0002;�#������\u001a�\"H�Q�����g�)DQ=\u00129�i�d��'�7\"�A\u001bT�\u00162�ny�e�%1�<\fi�3\u0014p\u0014�w\n���edeJ:�y\u000f�\u0012\t�4�d2�mF��i*0i�g��\u0014�V���T��D�q��{�b\u0000� ��J\u001djky���})\u0016�\t\u001bԎ\u0015� F!h��\"\u0012T7�5��\u0005f%�d1��k\u000f<\\��/V�+\"ʷ�,���(�\u000b�h����z�\b\u000030\u0004-\u000e�/\u0010���S��Z5�Ky��E\u001c�9Q�\t+\t�p�\u0017�H�u5�A\\4�̨\u0015��K\u00141��\u0018\u001f]4�\u001c�-ܑ���-�\n)H�R��J�ö�A0ۢ>}J�D\u0011�ш�e�\u0014���F\u00008�CX�y�2��\n�\n�\u0001�M2�o�\u0019k���\u0012�Eh �HnL\f���\u000f\u0012\u00005b\u0002\u001a��S�H�`.G��Z\u000f�ﹴ2<���}���\u001b���\u0015����:o�r7b�fE��\u0019���6�4��RK8��Gs\u0012�$�j�K�!x���\u0015^�)ס� z\nc9�lw=?�>�\u001d�]�}K\r*`�\u0012_WL����bt\u0002H]_�*�\u0010\u0010[q�Z�\b���o�\u0012>��Dc�jq��q�H�A`z��w����\u001a��t\u000fR�Q�H,ⳑ$�x�\u0019�Z��T|`�\u0015��21��kiŵY�?�H�J�~g���\n�h4�7��\u0011?8�*!?*\u001b�\"�G�\u0004WA\u001c\u0010���\u0018;;H�E$��֭P�N��=��� ��'��\u0006C����/c�A/�\u0001�'�G�8���M/�>R��\u0002?/i֑�\u0015\b�(\u0007�0*�ck��]�7\u001d�f�\u0014ߞ�\rN��rx���s��R$|#�|\u0000z����ec\u0018{;M�O\u000e^�������$��*��\u0015�)&�f�`\u001e6���\u0018�'��dc\u001a\u001bhM@EZҤ\u001e���\"&�\u0003wa�$�̓�jg�g\u000f\u0015�Җh#E�4����]��)�1\u00052\u001a7��,cCQ\\�\u0012�\u0001�8�[�ar���+�z��P��]2��N��^�\u000bl�(Ѳ���5��\u0012����%�xB9b7?؏\u0006D��ou�\u0014\u0016V\u0017�^���H��\u001f�*U�\u000b#��*�N��I(\u0019~���)ƥ��x��WW\u001aq�\u0011��\u0013\u000fe�]��:�0�(��8?0E\u0003A:��B��Mɠ \u0003��\u000eA�5��D�U_\u0014�I�L�H��\u000b�\\FѼq�Ə#�\u00073\u0000�\u0005PZ���\n�e\u0018qb���d�9^�̜�J\u0004\n\u0000�ߡ�bߚQk_U�X���46�}qdY`�)2U#1�\u0003۲��\rԞ�\r3#S�ÄqD\u000b�u��W$ht��jF�\"�W���?\u001f��'?=u���.\\�\u001eaմ�.鐳X��\u0017QG=���a�V2k\u0014���,��\\r\u0014;�z=^^��\u001d>�\u001e3ʹ�\u000b���4]��Z�q\u0003O\u0011d��G�>L_�}��\u00008��i�����~t~e�\u0000�I�\u0000�=�ߘװ������?�Zv��_-h��i/�Ǖ���_���@�\b#\u001c\u0019�$\u000f��\u0000�U�\u0000\u0003�wai��\u001a�P��S�\u001c8�\f��\n�d\"L�)m{z@���S�\u0000\u0005��!/��gi�<]���2��\f��vE\u0010+`O�s�+��\u0000����jZZCn���U�Sk\t4hƷ\u0010L�^\tiW_�� �����M��\u0011�܎��׽��,��\u0003���G����y����\u00001��]�5p\u001a+\u0014�׿B[Y�\u0010\u001b�\u0001�i�\u0000Y��7�+�\u001cE\u0010T��-P7�\u0004��\u0003�\u0001>W�~0�e�IH4oU�ܯ�ژV����O��\u0000;�+�~V�\u001a\roD�>e���/��Z��4�\u0013]ڵ\u0012�9ݸ<-E~t�6?���p�Þ ��#��~��K&LYaM8���jF}d��𝝄x�ΨP���\u0007����������#�V\t\f�����2G�X�D��H�?�_L�4�L�=��f�|��dF�߻gi�&�\u001fhc�a\\UGm�y?��8h\u001aϖ�Y��e�\u00142ʏ\"��\u000b�`��\t (\u0000�sװ�q�q���;�\f�#DP߭���o�5�g���m�h��b����\"��\b��1�^�Z\u001aZi�KȐ(X`̈́�Q\u0019ʼ(\\����G��t3�b�\u0006���6ں�����q{��u�;X�:������B�8���H�\u000f\u000b\u001bĐPF�t\u0015M}���vί��\u001cq5�y\u001fp�>.wga\u0019�Y\u0017��\u001fq<��g�O�y�Ҽ�t��\ri�Y��\u001c��5ͭ�1߈8���'\u0012ԥ\u000fq�e٧��T\t�ȓ�'o����ӧ1\u0013�\u000f.@]y�|��\u000b�\tn�˦c\r����_`����'�G\u001e�\u0013��=�=ǩ\u001dkn��n����>D��\u0014[_7�r~]�z�HE�\u000f/Z_����c�e�\f\u0011��zR�vRH4͗g䞜f�\t�Z\\�u�HpG��']��=AŎQ���b�ڽ\u0000����U\u0003�{�-�kA\u0007���]u�-�[�[�z���qY&�����O��\u0000��R;��\u0002;\u001c�碔�J4|:�ߖ�롪��\u0019D���\u001b\u001f�6/�v{\u0007������K�ދ�&�6��k\u0014Y\f\u0011]���\u001b�xؔ���јr�H�ǰ�l�\u001cH�Y\u001e��\u001f2��\u0003\u0019�(�I\u0011=�;�<�Y}A�u��i���e׬\u0012��������rLw�\u001cQ,�iʌ��p8�}�];�7�z/��_��A�\"\t\u0003�u�\u001d��Y\u001dn�ǀ\"\u0004��������qy���6�\u0017\u0006\t�t�ޛ+�\u0012�\\��\u0007`:f�Z�iu\"q\u0017\u0001��v\u0007K\u001d^�✸e{y����_�otmB{\u001b�ͽ’\u0010n#�5?m\r(�{���`�cόN\u001bƞKQ�˃)�1�/��1[�Y\u00143\u0002\bކ�=7�6�s&3�p�\t\u0010i(I^\u0006,�\u0015Zr\u0000TnkM��\u001e!W��\u001c�\u0019������� �\u000b\u0000j:\u0013_\u001f\u001c��\u0019�\u0014��\u0019�#�����1�2�\u0003�+\u0000z�q�㜌��� \u001e�\r\u001e��\u0012���SP�\u000f\u001f��\u000eyd�ǣ\f8���\u001e��:Y�\u001c�\u001e\f�1\u0003�=���f\f�Cw0^9\u0003\u001e��I㹶\rU;|Ehw\u001b\u0011��b\u0000c/{��'\u001b�§�-��x�VV\u0014*@W�pzPfn8\u0019Ç����'�\u001d���3g�Y2H�GZ27cM��K\u0014��\u001b��ad�T��͞R�D�M��O�\u001e.\u0002\u0014Z���P$�\u000e ���Z�dѝ?�Jy}WgC\u0007h�Z?��^~iϞ-·>��[\u0011����Q�<`)�9\u0011�\u0014��)�O���F'M,z�[F[\u0014�\rr\u0014���IG�u\u0007\u0016\u0015\u001cMW�1�ZeG\u00117\u0013�\u0017 j\"'\u0019�R\u000f����/̓�1y���B.���OH�--��\u0015�B\n\u0016>�:g�v\u0016�9tإ�z#��\u0007����)huz����������o������oˍ;S�\"�ǚ<�N���H9��߹�XY��E�w�'�\u001a�v��y\u0001�Ch�P��=\u000f���C���ŧ��fAǒ]L��6~/���r�\u0004n��!E\u0013ᧀ\u001dw9�f�\rǘ}?K�����Sj\u0017��L�,��J�\u0012z��hsp�F;\u0000\u001e�NrK\u001cf\t!��_���UW���B�\u0010Q~�湮���h�hi��|��s;��\u001d�q\u0005,��9\u000et��f?�gnP�F� ���\\�mp�z~�\"��*�\u001c��ۨ�?9\u001a�l5���e�\tQ���\u0000�^r��q\u0012\\��%�$�\u0006��:\u0010\u0006[\u0018ir�����˯��@Q\t���E��L�]\b�oH�\u0001B���@�Ms\u00128\f�pÕ���xxL�Հ�\u001b��Y&��>��Jep~�S��\u001d�\u000e��t\u00181zDa�'��1ʪ(9`\r\u0014D�Є\u000fMQ�.�{������F�_�\u0000\b\u001c��)�\\��svSZ�\u001a�Eh\t��H�5�Q\u001eg��M}��\u0004ԎKV����$!�ɪYA7�d_����\n�f�1,\u0002}��v�\u0000\u0002�e�$J���g\u0003�>���V-@\u0006P\u000b5j>$\u0014\u0001:T�\\L\u0001�|Z�I>]ɭ��j�cbO*\u0013О�xS\u0004�J4�>�M�\u000f9)�\u0018�T\f��\u0011�֛�!��ɰ����H4����2\u000e�O%}�\u0004u\u0000x�Em�`$G#�~�\u0000z(�?��\u0002ѢӚ\u001eJX�Y��`1�>e�\u0014�M�\u0001�j:��9J�\u0019\u0001\u001c��n\u000bǧ\u0013�@��\u000b���˗��cc�D�|ŦH�4�@�\u0014(\f\u0019k�ż)�8d\u0006۴�^+��#o֛��̒/��\"����D��x��0��˫p�Aڏre'�Z�\"�A��\u00079U�-�9;�S�\u001c��%d\u001d�;(МG\u000f�O4�4��\u0000YP�\u001e��`+�*\u001a\u0010�9T����b�b�ߏǚ6�P�,&�@�Ry�AZ�2�\u001e�_�/��7����s܊�PY`P�$w�L:x�>\u0004�\u0003\"aR�fQ��\u0017D��Q��QJӓI��\u000f��n\u0019D�A�Ʀ�%ӵF��1\u001a�Ƞ\"���$\u001e���s<�J6��i��[uEK�^i�uM.��c�ꜨT�^;V���<\u0011���7m\u0019rb��\u0013@w��Ͼ@�楼�f�b��_�zG\u001bĺ�_�C��?\u0017�DK@�-�f�\\���˥��k��_\u001a��&�M��+�a\u0003\u001fhG~�?:�.���?��M�������]�6�f����0�\u0007�$��a�d#�1J\u0014U� ҙ�{;���Q�o���'c:����4؀% �UMiG5\u0002��~����.Yĺ~�\u001f\u0011����~���\u0003���S�˨���K\u0004�*)F�]Dd�4ݛ�\u0015�͆\u0012|:���\u000e�\u0000��4��d\u000e��M���]\u000bC�o�{+{��6{k�'�=Y}\u001b�b��H�\u0011�}�Bz�i�M$�􎿏���;s�R˫��4�W$������=J��G\u0007`dCF�)]�2�|\u0014c��w\u0014�4�d�яᔤEv\nU��*H�o߭GrE3\u0018̂o�o\b�\u00009�\u0007�o�/� �n����-<��F�}\u001fSvT�Ǘ��+%�#\u00167pY�Z3\u0019�\u0010�N�+�(\u0019x���Lf;���6�&\u0011\u0007��\u0004�'�_:�\u001d�,��\u001f���_󍿖�l���ιe��%ym���\u000b�.�qw���X�G�Z\u001a�}k_ԯ�Eek\u0018�9�Hјi�K�t}���hv��=\u000e!���\u0007� m�\"\u0007���@\u0004��gvn������ˀɫ�v\u001d\":�_͌{�\u0000I2�����󚿘v�s�R�g����\u0017\u0011~S~R��ϥyB�D�|Ǯ�[]l�,���$�I\u000b���94R@�\u0004(���nl\u00030\u001f\u0004��;\u001cc��\u00105�����#΋6��V�yd��3�.H� ��E:�W���\u0013��\u0006�f�<��\u0019-��Pl�:I\u0003�\u001frv���N\u0018��\u001d����!\u0006�Ȏ�F�i\r�ʉ\u0003\u001e(\u001ed<��\u000f��4EVQ\u0011RK\u001f�Tt�1N\u0019�\u0017&\u0019bcы�U��9C\u0003����;�\u0011\u0001r#\u0010\u0010B~0�Py|\"���HJ�/>�\u0000���C��K|���^E�\f3F��:%�pI�h��Ծ�BEg\u0010���O��\u0010\u001c��\u0014 \f�<\u000e3r\u0017�׿ʝ~� �\u000e\u0018�\u0018<��ٺD6\u001a��\u000e��\\�ͅܔ�+y\u001b���P\u0003��+76�B��]�\u0010Ff�8�x�v?�N�j2b�ś���n�k\u0012y�I�����syb���\u001at�\u001eX��1^7�[]�\u0004��ko�r���� �naY\u001a\u0010ާ\u0006�S�����&Zn\u0011�U\u0019\u0003\\���\\�C�\u00049�58�8�=�w�\u0006�.@������\u0000�W���?�\u0000*|�?.9!u�\u0000+��Q����\u001a\u0012���w��\u0016y�=_�>z�o����Qx}Q4`�,h�\u0000\u000eN=���\u0001�f��\u0011����A]<-�+�be\u0003�[\u001a���V���4zN�͗RE��\u0013���)�ƹ\u0011.\u0019\u000eu��\u0001����7����̟�Z�j\u0016�|u+/!�K,�_��Ff��Xv �\u0013[�F\u0000�N�3�Q��q1��E�3��\u0007�u�>[�WU�2��A�\u0007��X\"D��v\b�d9N�^�y����,jP�]A��iz��Se�h�����4d��kw�}Z����\u0015(��Q�m\u0007ik{3Q\u001dV�6\\Z��\u0012��\u0019\u0003�\u0005���\u001bI��p�q�\"\b�\u0018�A�\u0014���q{�~��\u00009��\u00008flt\rO[?�\u001f�1�\u001c:���\u0000�M��\u001ep�t�V\u0019W��t�=�rě�\u0015�2E9\u000e�����\u001b�r�t~�a�����B���-̀��\u0006�DH�\u0012\u001c�\u0010���\u0003\u001a\u001cі�ٹ�W??\u000e���ˆ���ID�\u001e���\u0017�rW�qs�~\u0011�k�4�<��=#�\u0003I�\r�O�/8\bt��/(^�~�\u0004�D��jvA�\u0011�[��컫u\u0003��7�4=���U�]D5��M\u001c��x��s�>�r����=2!��\u0000��\u0017��\u000fU�\u001e��,\u001a�| ф��q�m?����\u000f�o厡��q\u001biW��1\t}HͣK\u0003qb��D�\u0006��ZT�|\u0019�\u0007\u0018$�񻨘���\u0000\u001c����޽�{�;/8yv[�\u001dV�IEސ���R�\u0004��Y�FP�q'\u001ep<�4N\u0001�RA�i�p�\u0013�1��Ýy}�.�\u001c�(���.��g���\u0007F���b���Y�����\u0002��B�������x��X��\n\u0006�ۂh���B�c�-��ˌB\u0006r�\f�g�s\u0007�[�.����Z��,ZF�o\u001ar\rmh�M8\u001a�����;\u0010��̌y��d4#�'��8FNGr\u0005=7���ɗ~A��%Kk{x���Y�T-�j�\u000eIW�\u001a;\u0015\u001c\u00101\u001c�\u0013�%���G$���n{�u�\u0019�%(����\u0015��&����\\�\u0000�k���ߓ���3]<�Zi��t�sI\u001d4ۘS�\u0012Uv$/��r�l�WDq憫N\u0007q����\u001d@8�1&�\"�\u000e����|��\u00009Q�\u001d\u0016���F�e\u0004b�y��\u0003\u0002��*�/\u001b��}sL� ��=F\t&����\u00177�ʳ�\u0014\bx��\"���$�O�3��\u0014�r�1��{t�o�����p����\u0007�ռ6�R\u001e[�g�\u0017��-2[{����j�����ⶥ\u001a;���/�5\u001b[�7\u0014��\b�vn|��dˏ\u0018 Ѩ��T\u000fM�\u000f�:��G�0�\u001b\u0010Öd\u0011�R�P�Zdu��~��#��B��խ��}0��\bԬb�\rB%��Ki�B�\u000b}d�P3��7 �9�:L�rKr\u0001�5~}<���L��\u0001(�G\b���F�<�K�j�Z�SRӡ��a��e���X�l\u0005���t�ՃHG�,���VNB�B}�o�\u001c�HL�\u0018�$��b7u��ز�11��\u0000\u0003\u001a܉zE}��B���c������vW:\u001e�c��V4�6����3�����r=~Y�����ϗVv�?\u000e����\u001cG\u001c1�A�\u0018���_�\"��\u0000���F��]SG]B���*�M6\u001b�%Y#���Оut�\n=�5=�u�O�\u001fv���qj%\u00023d�\u0011\u0004r��\u000f�<�mt85�0�\u0019i�#\u0011(�|;H��\u001af��r\u0017�;�&��L�󎇧kLUl&�������\u0000\nBd��k#P\n�ɦj��\u0013�/e�gç�=8�\"\t�Ԁ>�6^�{7�Q�\u001dF�\u0018��\u0011��\u0004���Ƶ]+PF�-Ug�X��\"\u001e\u0019cߋ�\u000f�oט����&��\\mN\rDI�:|��s]�9G\u0014���C��\u001e����ŇG�y�\u001e\u0019\u001f�'��F�\u001f�ݘ\u0010*\u0000�=���Z��;ñ�HJ6~��&�\u0006�bR�e�����!�p��;�\u00029�DoO)�t�[�Z�\u0012F�Zs���\u0002�kރ6\u0018�b�c�Ru\u0019q����|_s�4���ly��/\u0010�ۘ4�>#5�D�τ�v�<=N;\u001fRȖm&Y\u0012�1��,~}\t>\u0018�\n��c��\u0000�t��k�Z;�.G\"�O�:�s�\u0011����r\u0003\u0001��\u001c�\u001e����\r����y�b���\u0000��M\u000e͍Η�z\u0017Zө�\u001f�\u000b�X�_�k᝶S��ؑ��ɰ�\u0005��\b�A픨^�\u0000\u0012�u�C��ߧ^[�+kkx��\u0012(� (���U���\u00038\fĎO���=\u001e��?+�w\u001d����m��^�&�f�W��&#�=F�Fg\u0018ϝ���-i֚B�\u001c�\u0019h\u0001U?d��N���2��[��q\u0001\u001d�=b�Y��\fPq^;\u0015\u0014\u0003�c��\u0003\t\u0013gwe\u001c�\"��*��x\u00127\u0012��\u0006�ߧ�Z\n�\u0018dN�u@\u000fW4�<�\u0007Ʊ����t=A�{mL���W\u001cj��$�/֯������1�u��\u001a3\u0001PiJ���\u0004\u001a\u000e\\8'\u0013�ζ��z��c��yup$�����l\u001c��Տ�]�\u0005om�{��O&0H�^C��pǚ��1�:\u0013�|����1O<���\u0012=74%{\u0005_�P3�ņ\u0010\u001c#�yl��d�$�'�r\u0002��^�\u000e$(\u001b�t;�(݉;֝2r�ŵl�\u0019�\r�\f�O�E���rʠlv`Os�\u0002s\u0016Zz<�s1��\"x��Q�,�\u0019%��V�t\u0002�Sr��\u0010�� �2�H��\n0�H�C'�:1\u001cE�r\u00065�R��Ng�D��\u0003=�\u0011�W�\u0006�}�\u0006�Aߑ�\u001e\u001e���R��\u000f\t?\n�@�;�)r= v&�\u000fe�A\\�\u001d\u0000ݪ67��~99�X0��,����Z\u001as�•ǀtS;��p������\u0012�9$\u000b�첕5�\u0010T������27 �U���!FIb�T�j\u001b~�\u001b�8\f\u0005l��c*\u00166d\u0016ژ�\u00142r\u000b�!n,\u0007Q�\\�P ��C5�N�D\u000b�܉\u0016M�\u0015h�ڀ\u001e�åO�\ne�c�\u001d���{\u0019\u0011�V\u0002�\bp\u0005C\u000e�*\u0003\ne\u0013�o���ʿ���\"Mo�@�\tZ''~T**�j�+�\u0006C\u001eyc�H3ͤǚ5\u0012G��7�\u000fU�[�V�S\u0010Z1�8���aѪi�->�\u001c�\tغ\u001d_g�����\u000fwF\u0003���m&A\u001d�\u0000��F�&�N_\u0000c�W�$u�'\u0010ɼyspa�X�\u001d�P��/��f�\u0014p\u0011\u001cܗ���E\u0005\rA��\u0012s\u0007.9c�\r�ƛ6,�B@\u0012Gة��2�\u0002/4yK��\u0011���\u0015'��G���!\rL~��Ye�܀���\u0014{���:֥a ��/D\n\u0012�\u0013'*�-��}��\u000e\u0012�\\A�&3�1B�����\u0000E�)�sV\u0012\n�wGS�T��#12c��i�=\u001e��i�;��l��W��\u000f��W`\u0006�L�'�b=W����R��=\u0006�:\u000e�\u001c���$�LmB(�wVl^���ڽ*�]�a����?K��c⇈\u0001\u0012���y��<�g�\u000b�6�A\u0015�)=����Q$Z��>=�#.\u0003\u001fTw�����]�_P�\u0018��\u000b�\n��X�D��eYA��\u0000u3|\u0006�#��\fljc�/njd�\r\u001d��s���\u0007���{���5_5�.�q�^\u0018�A�w����\u0000�;K���\u001e����d����9��#�\u0014L?�\u0007c���.\u0018�/\u0018�W� D�q=Ǩ=\u001f����=��ן��\u000es��0B���&\u0011Z�\u0012\n�$�gU\u0000nNn��#-?����\u0002ϸn~O\u0015��Rc\u001f�r��2v�̿s��\u0017?(������l�H��[�\u0018��7�Pz�\u001a�լ^���m�\u001dbD;\u0006\r�?�z�v��z��gh��\u0002xG��>��}���]��\u0016�ܕ<��Dm\u001b������e\u0016ʨ����@℀��\u0014��F��9�L��s���r��\u0007���&:�(6\u0005$�օ�0\u0005�3��5�\u0000���Σ�b���OqU<37�\u0015R\u0003�9Ęd�\u001b�=@\"��qj�KO�\u0017� �\u000e�DHs\u001ec��M���W�?$?:�!����ߘ?�:ޫ�u�y\f~�j\u0010Y;\r/[�%A��Y�\u001a+�^�) \u0015�=������}���t��Ƨ\u001f�\u001dq��ˌ��`�1G���,�\u001a�i2_\u001e9\u0011�\u001c�}�QU������g\u001e���\u0007\rǦK3\u0011^���w���-��y�9z�}�Ɠ}mcg\u001d�2\u0005�$X�q�\u0019~#@G�V�\u0001̈΅\u001ei1�ܧu}\rɒ�PD���\u0019 u\u0014n+:�p\n9\u0019�4u=���Œ��ԁ��\u0003�1\"�|��M\u000bS]jm:u�K�)\u0012���dX���F�m��\u0012*\u001d\u0005Z�f���7�8�\u000f\u0012;\u0013�w\u001e�\u001e8�\u001c�e��z���T�I�����+Zk\u001au��-\u0014]\\\\j\u001a|���[�4�8O�\u0004��ǂ\n�[l�gŒF<\u001b�98�ۄ����˼�\u0010�\u00110�\u0003��}��/����\u001b\u001b)!��Ҡ�}9㘙\u00046�P�\u0003�Q�k�t@њ����\u0019Ȟ\u0010x{�v�\u000f���8��q7`�\u0005�\u0016\u001eb�����綸����f�$�#Һ�-!����C\u0018X�]r\t\"�#\u0000\u000f��n��\u0019#��3G`F㸃��\u001f��\u0014cɊF2\u001e��;���1A`D�S2\u0012\r\u0001��򍘶���4��|��6:7\r�m7��ۆ��\u000b\u000be�Y%\u0001Gv�\u000f���Zԝ�S��%\u000bLb:�g�i���?%����a�c���A�����/�\u0007kKQHᲰ��ɨ����Ekn���f\n�nF��{GM��d�k�xZLb�z���\u0014��1\u001c��gv~�Y�:�}���ɬ�j#���zD\r�z\u0007��\u00009\u0005�\u00009!����?�\u000b_4��;�\u0013���3�/���M�-\u0016����z�\u0006\u0011���[�U���-�q�����ɞ�{m���[�\u001b�ٸ�c�v\u0000�d�3.�+�\u0018��/���i=���+&�&�ru��Q�\u0018\u000e��y�\u0017d�ׂ[��q�n�F8�!�E{S<�q���\u0018),��ҭ��E0pо��[�V�~�\u0000G�gQFR\f���\f��O�\u000f�C�ޕ�\u001a>�b{y������+\u0013�T0g�TE4f:Ʊ*\u0001E@MK�k�\u0010��⑵�ɔ~o�\u0011Y�\u000b\u0011d\u001c�ZI�\n\u0005��C/\n�\u0000w�o��l�Y\u0000�o:��!��=NO)Q�\u0014u\u0010��p��SR��\u001f<\u0002\u0000\u001be��0��O��Y�s\u001c��\u0011��鍏\u0005\u0007�)':Ԟm\u001c\u0006Lf�P�\u0006�^��g���I\u0004�dSh�\u0005��a�c�*��-�2T\b�\u0013!Ɏ[w�����r��Vz/�\u001a������2��\u0012�U��_\u000e��ȼ�l�L:Ƌ�Gsmq\u0011h�d�\u0019�I\u0007%��+�i\f�y\u0017c\u0012և�M1\b�.G����Dzy\u0013�w1��ؖOR)\n#��ͪ<�d���\u001e�搤QM\u0014ļN�1q�&�\u0019D�\u001c��E9ҿ1\u0011ob\u001e���<��[Z�,�� ��\u0000���\u001aF�A!ih}\u0019(\u0018\u0001��BD\u001f$��F���y��\u0004��u�����@���-O.J�\u0005,\r�\u0002\u0015�K\u0016�*�\u0012Q.D��ęFGO���\u0000(~c\u000b�6�e� �n\u0004�-P\"� \u0001\u0018�\u0019\u00177�E\u001e��\u0000>!N�f>\u0019o��63�_;��y�2}J��V�Q��O�D\u001a4P��x��,��H�F�܎�����#bc(F�j;|\u000fܘ\u0019�\u0019�5�#��^Q���q�\fq\u001b�2�_Z�7�@�\u0003\b�؉\u001a�c�\u0015Y\u001d�\"�\n\u0007C���|����\u0007?\u0019\u0013\u0003����a��-,#\u001e�8�\u0017&�9�%��\u001a\u000b[�>/L�(-\u001a�\\��ץ�\b߫D��#�l��?���g�E6��Aq�j[x|�i�}^�kw\u001e���iH���,͸%�aRr�y|\"D��������i�x����<�������\u001a�\u0000�\u001e[�����Α�;$�4���y\u0006�s\u0012L'E#�H�\u0012V�G��j�S.x�=\u0003qV+�.�\u0016hF_��N&����//��N���\u000e����W˚\u0016��j�do.k������&Sy\u0012��oz�ń��\u001b֔n[�>^͆�<9#�\u001b��\u001e�7\u001b�#������q���iy\u0011�כ�?8�\u0000�\u0004~_���u�1k^A����\"�l��\u001eW�J�yCv\u001a�Y����DZ0*ji�r��\u001b�D��}��� ���M<�#08��E�\u0000�;|�|�������&����f���\u0000�v\b=K�|��8l��\u001d�\"ca�y�XK8R@\u0001d�]\t\u001bfDF�\u0001NJ[��\u0012\u001f���5~kI�~���!_n���\u001f�g�W����4���\u0000f_�j�W�ᰘ�J1�U���M`\u0016��|:WaL��b\u0007��\tw\u001d��NL\u001cb�.����e�\r\u001d��<Ϣ~g~Wy�\\����򤾷�|��}ZM7]Ӧ��\u0011K%�\u0011�\u0016�\u0011�ki��H��]�������}��Ǵ�\u000bQ,:�(�\u0018�'�g\u0013q�N�\u0019\u0002\rW'���پ���\u0014�}��\u0019qHU\u001e��z�/�D�~��\u0000�&�\u0000��|��\u00009\u0003.��\u00008��\u00009�\u000f��-���\u0007���\u0003M\b�E� ��.�f=e��>�_�\u0019\u001a�xr� >N���\u0007]�켥��qj{\u0014߫�L[�'Cx��\u0006�\u0000�\u001c�<�\u0000������^�r$��J���\u0011x'��j�P̥�劰5\fj�o\f\tܬH\u001a��۟>^��@\u00197\u0000\r�|\u0017�?����\u000f?�(�[o$�בiq�\u000fմ�}��/�\u001aO�\r��ai(?\u0001vY\b�k�l\u001a���Yk���\u0000{�.D1��e��Ǿ���Z���X��m�#F�̚5�:~�-��C�Y���5\u001dZ�\u000f\u0015�\u001ad[\u0015�\f�6��g����k�����\t\u0006\u00167\u0007`z\u0010?\u001f2�\u001f�ߓ�g��?Hy\"��x�\r\u001bN�K\u0019��%���H���\\ ��sqP�%\u0018�����u\u0013�.<��4{�Nh�)��,p��\u0003�ߟF\u0017�Ue��\u0000��>�7�\u001aF��7���V֠H�Ҏ��7�L�J�\u0004��pMh6��왰j1\u0018\u0012\u0004��xpd2�'\u0014bLI�{m_���E�Κo3�V�^%�Z_�������\u0000�V�]��<�!\u0005\rR3N��3#KP�xxe9�\u0000<ˍ0%0d%\bD\u0012I�r|��k)�B�Z�\u0003,�cԆ�%_Ѣ�\u0013r���\u000fM��N#��\u0004o��Ӊ�\u001c8��\u001e\u001f�3�.�\u0017\u0019ӝFQFr�~�|\u0005?g�\fb�п&m��tm�W���.��An��ݯ������\u0003F=9 �����*�\u0007|��ߔ�v����\u001c\u0018�/�\u001c�R�l\u001eDz*\u001a!�U�g���\fv\u001b��e�u�\u0016�\u000e��k0^�,S3���3�?^�\u0004�횈J�FqB�\\��a�q�\f�K\u0004t-��c\u0013�[�>`n����\u001a}�6�i,�x������Z���e\u0014��\u0000x��W\n�\rB�l��\f�FB}'��nc��|r\u00061\u0007�j#z'���\"��Ȟr������\u000f�mJ�Y��닧iZ���ޣyw��/�����巘G\u0007�|�{�ހ8�c�65�Nm{V\u0007\u000e�\u0017f�c�\u0010�_.<�9\u0003�X�G�\u001dOfd\u001959�L�\u001cY&\u0004k���\b����>��=\u0019�Zu��޹��֡�.�e\u0016��f�\fP<�n\u0013Ә,P�JUB�E\u001fFk0�C'\u0004�f#��N�g\u001c�Jx�\u0011���״�MY\u000b�q<��5���.\f:\u0013�ƶ��z�1�����8�h���ڈeq��������4x��/�\\�?��i}͚\f\u0017��\u0012�\u0002\u001bF���{��v�������\u0003���S����֟�\u0003�\u001fRK�3;l�_�g�\u0016�\u0003\u0005텞���Mcͷ(Z2���\u0004�?�\u0002�b�\u0000�w����\u001e����\u000f�\u0018�\u0000%ذ��Ô\u0011�Q.q���\u001e\u0011��ԧ�G�w�}��\u0000��\u0000g{?�=��솳�2�FyqJ<\u0018#�\\\u0012>��\u000e�^8Q�\u0019�G�)��8N�Y4�k�\u000b!�~��?��P��c�'rN}_��\u0000���\u00048�\u0013��u���\u000e��\u0000�&��\u0018�i�\u0011�v\u0004�W�F�\u0000j[\u0007���?1����2[�x���\u001eP��zm \u0004��\u0018��\r��\rWdvGb�n\u0018H�\u001e�[#K�}��b\u0010`�����/g-����e\u0004ס�MsC��<�%�\u0006������Q1/\u001e��?�<�;�ZIsn�U1�T\u0003�3r;GI��\u0013Ry�ٺ�\u0014� �\u0000��O����$K')��\r�lc�[\u0001�7>[ԝ>2�B*\u0014ԍ�\u000e�2\u0003Q\u000bۓ?�d#���I�%�\u0003/0b�7Z3���m�Y�\u0017|�i�\u0002\u0004�����3��xm~�\u000f0�\u001e\t\u001a\u001a1?�Ӡ\u00032t\u001aA�-��n\\\u000e�ם6����\u0003���Kuv�K�<�CPB��H�\u0003�Κ\u00020\u0015\u0011A��O&Be���v���Q�I�t\u0007pí[cL�\"\\�8����®��Bc��hv\u000eYjMz\u000f\u0001\\�\u0000\u0001�6'qF�i�7��;,�J�B�YH�a�\u001a�φB�\u0005\u001b���ϴ�Me\u001e�t�+q�9\u0000�q�t�I@�bَR�5׾�\u0000R0_�)\u0012�\nK\u0015i\u0018�V����}�\u0002\u0005�͜dNǒ\u0010jb6�3)���J�Q�=E\t�11��&G���\u0014��\u001cH��%\\\u0011��UO�AN�\"6�>!�\u001c�\t�R9B���Ģ�\u0004���\u0014�U?A�\u0011m�6�����\u001cU��-~2{\u001f�\u000f�\u0018��\u001dÒh�ې\b���nbjr\u001feK�j�Ȟ.[S \"{�˪4\u001a,q�\u0012]�\u0003\u000fU\u0007�p�ԗ�NB������,��5 \b��A�(�~D�\\K\u0014��Ep9�$�\r:m�'��\u000b\u0000/x�%����R�H2��9�Ȅ�Zn�̢�\u0007L#\f$+�\u000e�6\u0012\t\u0017��0п1�ed�By1ޠ.�\u001a�C|���>�����8���W����V�j�0��U�\u0006\n@\u001f�\n��ߚ��)\u001a�\u000e�\u001e|z�t���|���o�T�T+Y\b�(rH�\u0018v�̽6�$\r\u0013����f\u0019�� �:\u000e��Ǘn���,�M/�ZEe�1\"\u0016\u0002��\u0001Cڄ��i��.:���\f�d\u0006�_?��O/��,\u0010+N\u0018��?��04؜�e��m���4���\u0005��M��\u001df6�ċ#)\u000fƄ\r���\u0000(��eP���ߓ\u000e=H⪓�o|����_O��\u000eLq��\u000f�U�\u0014�s6\u0019�?����g�'\u0011�iv��y�D�\u001a����El��\b�̼>�\u0014\u001b������82K�Gr�)�0Dd�\"#�H!�����n5h\u001a(�+}F\u0003V\n���\u0001�\u0011��ΆQ<8��\u0011\u000eҌ�9F܏�xO�4�#���^E�M[J\u0013*\\�j�%Ǧw)*�� Wc��gc��8f\u0003��D�\u0000�i�\u0014>ߋ��\u00002������y�C^wA��+��zH�\u0005�}3Z�r9�\u0001�6�9f糰╌��\u000f�\u001d/i�3�\u0003&�z������C�<��y5��{\u0018�\\%���D���m�5���5QRh*r9DL�F�uD2�8��\u001a�\u001c�����ߒ4��?��?,k7���/�o��/��\u001c��5I\u0003�4��!��\u000f�2�BG\\��A����#\u0003Y�'�1������v'fö{c\u0016L��>��Lw��q=7��~�����t\rj�#\u0004Y9,|؃p���o�\u001d��g�j\u000f\b��N�qH\u00127�nδ�U卩*�-U��*��\u0010j\u000b�\u0004׮is\u0011)\u0010k���8b\u0013k�a���G\u0019P��\u001cX\n���Z�nk�1�\u0005ӓ}ܘ\u0006�yU.�G,�\u0007VF�*���\u0015^\u0015=�r�ˆ������I��1\\��\u0003\u0013\u0014��!�>ߨ=!�F\b�HV�\u0014�\u0010@d\u000f'�h�'��\u001e2�\u0014�I} �\u0018���nj��ni� ˭6F��\u0000���7�<�\u0018\u000f4Vў?\n�\n\n�\u0000��iֻ��\b\u0016G&@�/'��񦱨��ʼ۠��r��\u0006�~\u0016�̬q\u0017G���Fr�\u0012�At�\u000f��U��\u0012\u0005\u0012�u'ބfTZ%\u001d�{��M��E�/\u0014�����@4�w�a�S}��L��G���!,r~�yCW�\u0015�\f[�J�\n졶\u00155�a�9��շ���}\t�Nm�\"�\\����z���\u0002*6l�\u0013G�L%�'��f��~��kP\u001dO�F�\u001d�&��^:��G^�dzĞ��{�d�1�LԛN��ݧ�ե<�\u000e�\u0000��9�|Xa�<�\u0017]\u000b�L��h�c�_F~[�\"d��ې�2\u0000'�\u001aw�^�fP(L2�w��\b�m��NM3\\��Bʞ��e\u0000����ˈ\u0013��i���p��\u001a\u0006��E\u0013\u0003ʠt�\u0000:f�q�;Xˈ\u0002��\u001f�ߓ�\u0000��]��?1|��y4�\u0005�ݮ���Z��\tRUͬ���\u0012\u0005ȭ7�r�-�\u001fJD8�\u001el?�6�͖!��a���Ѧr�}gŦ�Nڪn#\u0001���̽�g��Ը\u000f�C_�a\u0003)U��w|?cƤ\u0010Y���I�u�$�D^.�v�\u001f���'6\u0019>����Ѻ%ݫݵ��&�X\\��� �!�P!\u0005�D\u0014\u0003�bʆ�[\u000f/6a\u0007��!Ia��kh%\u000b*Z�R8��a\u000b�\u0004q(�\u001b�9���@x��2�\u000e�a��3��}�\u0000���\u001b&9\u0013\\�5��\u0013Q�\u0015��D�\u000b@\u0014��B���~C�l�C��oʷ\u000f`ӯ���}�_Ϟw���}\u000f˖\u0017:��}z�\u001d����>�O1'�\"\u0004\u0005\u0015,�\u0000\u0016 \u001d~�>�O�z�L�M\b�)K�b9��9�hoNV�O�S�\u001a}4%�Q3Q�\u001bȞ��O���r��r�̿�{[�W�'�'�oY���)A��)��G�\u000f0´Y�{�I\u0016�0+e\u0003q_����^��m��-_�4�òq\u0013�\u001e�����G�1�\r�����\u0017��=��9�\u0000K�r\u0001�O��\u0011��N�\u001c����\u0010\u0017�o\u0018��)��}�!�\u0013���r\tJ\u0018�j\u0002T�X�BG\\��<�\u001c�y���伣G�d��w���\f�x�|\\]���v\u0007lN8�V�Y�T6O�5�M$�X@\f�:�4bND\u0006.\u0014�\u0010�V�\u0015ڦ��q�\u000bx�+���,��\u0016e�.8�\u0013\u001a$F�)Ee�F\u0002���\u0005h㩦V!NL5\u0004\u001a\u0004�\u001b_4�\"#q#F�zRq�\u0011\u00071 �\u001d\"��$��@��LJvӨ��;3�\u001b�\u0007D�7I��Y\u0001HnQ\u0019h\u000f\u001eKr\u0007/J\u0016F��\u0003�t�r���1ɷ\u001e�\u0015V���?Q�\u001e���\rֳn�����1#?լB�\u000b4ʥ�zqW&�j\u0003�*\u0002`�6g)�y�&\u000f��\\Yj_\\�t�ln��Fb���qUq�ȳ\b���?\u0010X(\u0004o]��x��e�ƞ�\u0006d��|���-���'J����1�f\u0019&m\"�p� �u\u000b5�r0h\u0002��6��P;�ǘ\u0004�\u000eN�K��|\u0013����O8躴\u00161��\u0004\u000byl-.�y�\u0013qmh�\u0002\u0005�[y\fp]B��#\u0001F�o��\u0013\u0001��1���l>O�u_�\u001f7[_\u0011z��X�hn\u0013�)F��@\u0003��[� � \u0012\rME)\u0004O'\b�r�_�z��3uԚ\u001a�$��\u000b�C}p�A�b�FgJ�\u0017��€*>�,r\u0013��{��\u0019�7\u0011T\u001e�i����<�kIc����H%���1A,ҵ \u0012�oA\u0001fZ��\u0011�1�1�ė0H�Vӿ?�Ǥ�\u001c0�ʶE\u0015�.3�\u0013,��,��D��5�\n�\u0001�l$\u0011ޘe��o�e+��~\"�xn\u001d7�ȶ�y��\u001d�id�/��xҪljY*\b�\u000eDz��V���6@_\u001f��z�m-��{�~�9~�'\u0012\u0015\u0001z0�d �X\u0011֔�r�c\u0003`����/\"���u]OJ�A�Tk���h,��a�\u0002\u0016�ݧe�\u001c�r�\u0001\u000f%]�t���;�\u0013.@n��?�\u0014�\u0000�!���;P�\u0000�|�o��O �ˏ!�Kr��[љyI�\u0019�1�%��X�^B�����\u0011��\u0003!(��x?�����s�\u0019���R���\u000fN�˼\u0007Ț���/�.<Ū��m�ծuM#Q���Q���5\u0003`��XMgs$\\�2��\"�\u0000�\u0004|\u00149���\u0019De�`|�_s��>\u001c勄\u0000w���}ϰ?.�\u0000�?�(��X��c���o%�חu�in�b�]�Ӥ�m `\rP\n���e�E�ᐁ�\u001d\u0006�\u0000��g�\u0011����n�[���?,��T����MՌ\u0017���5*��T��?���\u001eL��S�\u001d�k�g�r\u001fMǦ�\u0000{�LJ?\u0000\u0000�\u001e_-�Sտ+?�!��R��uV>O�4�������o:�{`��ֆ���(���j~��j!�\u0006I\u001cS��鵏1G��ߛ\u0016x�d�e�\u000f��\u001bw��c?�?��\u0000�?��\u001eg׼��s�6�j�\u001f8yJ����w���X�Լ��6����\u0017�M���4\u0015\u0000�c�ӛ�\u0000![�\u0012c�\u001b����lЈ\u00122�'��׸�G�~R�r�\u0000ϫt�;��п(3,n$X�>F�߳6��\\���~�z��[R\u0005ɴ�eK��D��˘�e����\u0006]4�,l�|2\u0015�m���:���恎X�\u0003���\u001d�����I�7�\u000091�\u000093�\u00008]k��\u0000�8�����K�q��<��u�\u00009\u000f��\u0007�\u000b\u0018;^8�\u0007��\u0017k\u0001�\f�,J@l#���\u0019bL�7�q�\u001f�=��\u0000��M&9���̴��2�7�y�$>�\u0011�2\u0002&��U�?� /��\u001d>�Z�ƭ�y�����f���h����MJ��\f�H���H�ʒ�CPi�Œ94�*_N�\u001e��#b\b�A ��0\u001f\u000b/\u0006M�\u0003���\u001eG����_�r6H|�k�/�}H5��B���O��GI�d}\u000e�,�b��+�L\u0012��\u0007SZ�s<厳Nk�b\u0002������u�J'U\u0011��m/#�ݿ�߾�7�/�5\u000b�Z\u001d?T�������Zqka\t/i<5h�-�\u000fUV\u0004+xf��\u0018�6��uV\f�ݑ�܀��?z��e��n�-5\u001b4�8~�u\u0001tEV��DwPE�z-�G��PQ��Q�1!\u0019�W��e�\u001c\u0004�V,��]~���\u0000��e��\u000f)[��\bu\u000f̫�M(��\u000e\u001e^�\u0011�c����D��R\u0010h~)H̄����=8\u0005�\u0000�v�˟��k�\f��,G�Y����\u001a���a�|��K�;�M#ʺp�\u001aα��/Gku\u0001\u0012���8��O�<\u0016v��&PUP��\u000f\u00102�*�l���'�u��6�^�\u001a\u0006����\"�\u001d���\u0000�~}��D�a�4i��D��~IX\u0015a\t�i�\u001d�L\u001d\u0000\f5K�,�\t��+�0�g`��`\u001c�\\�{���\u001b/�X@�H� �:\u001c�6��&��G�\u0000+;R�~���_��.��ܽ>���\u0018c��VSV�A\td=9n6ʿ)\u0018V8\u0000\u000fx\f�j̉��߿q{Xx��?�^��D�^����ϟ�gVҼ�ўW\u001a-��X���;�UX��(�R1�G`\u001a�X#Z� lt�|X���@\u0007M��\u001f��c\u0003�\u0014�5� ��\u001c�s��s!�) \u001f�\u000f���\r��b\u0002\u0007���^�\u0016��i�\u0011k���t�a�y~\u001d\u0013J�7�{��vp�V^Q�Ρ\u0011[=\u001bL��~��o\u0011Zj|b�����u''hK\u0018�J�9\u001fQ�&�\u0003�$�N�m�w\u0018�\u0000s�����^\u0015\u0018F$\u00012\u0005\u0000\f���\u00002\u001ef�g��\u001f��\u001f��C���kM\u000fQ��\u0016�_��R���r,�ׄ�kg��\t\u0010��B��@\u001a�D�z��� ��\r߳^�k;[4���\u001ffȑ�H\u0002v5�\u001dg]7�:���v�o��xc��r�\n<1$\u0003w���\u000f�m<�(n�v��r�Ο�v�k�[�h<�\u0015͞��R�펛���(\u001aѠI\u001e��\b���i\u0018��Ԝ�-/�\u001d�عc�C��0Y\u0019fx�qw�v���\u0014��{wY����d��xq\u0015\u000e\u001e��\r8�O��\u0000�\t?�\u0013�\u0000�)������Z�J�kF\u000b�=�C\u001f��vt�\u0017+#�\u0010��\u0015Z\u0006\u0015��[��\u0000�����LO^\u000fh�?Q-�G��f�[]�\u000f���\u0013�C����~�\u001f�'��_|k��\u0003�O�p#���q�W��V'�n��'��Zy���O��\u0013Z��Kz�+�b\u001coR\u0019\u0005z�=�ٿ�'�/�!\u000e��G\u000fiV�2\u0011\u0019�tI��h�-�o�}��2�M<����\u001d�\u0010\u001dI X���G�\u0000�6�/O���勛X\u0012[f��\u0003�\u000f\u001f\u0016�>!J���3���U�M�����|'��}���?haɥ\u0015������\\�����vVa���I��D��\u0017�QJ\nq�\u0019�\u000e��˩˒Y���_��-N3�\u001e?;|?\u0014���:���t�B���$�H¬;mO���9�b�Ò ��x\u0019�c��#\u0019�ۼ��\u00002�\u00000��s%���y\u001clT}a\u000b\u0006Pi�Spi��\u0000������\"#*���=���Ǩ�\u001c\u0001��L-?=�@����5G7�\u000f���FS����F|A�\u001f�X\f�Q������7�\u0017�\u001a� [�G\u0014�E#f\b�҆�ҹ���ڝ9�\u0002�t����G�2\u0016�_�\u0019Eݼ�К\u001e-�\u000e�%\u001cd�\b�d�G�\u0006�osMF7\u0016҅��}J�Q��]�{�!��f�ز��\u0013��&�\u0005�\u0014�_T��j|\u0014CZ8 �2}��n(Ek�,��\u000fV/��[�$����[~-\u001b��������6�~�+}�\u0017�\u0010\u0006ك�\u0006>��.N\u001c���so\\�W���\u001d7�zf�\u0005c��T��G���\u001d�?LD����5��Ռ���[�/Ϳ?I�y���!�/�+q�E�J������.�_;y���KO��I���?\u0015�\u0000�(�\u00004�0<���\u0000�kK���ɮ·�G#0[8f\u0006@�de��u�\u0011��ϖA��h|_1��?��S\u0016�@��vw�p��E���?���\u001e\\Ѵ�x�PZ�[D��\n�c�QT��\f��ȓ��ѡ�1c�@���Gp��jB��\u0005�r\u0010ӧl���K��\u0015]\u001f`~^�ټv��F4B܈\u0001���8�y����{.\u0010�\"\rl>o�,F�\u001b\u0007aCJ(AU#�>[f�Q�߳���w�y2\u0018�ғ�XD+�e�\u0017�U�\u0000E�\u0019M���\u0005\u0002:Q�\u0018�\u0003+\u001e�?�\u0019D�\r�ظ�ODih�K{�yT\n2�*OHߎΤ�I�\u0019\u0019lF��l\u001b=�\u0000��u�f>��\u0000�n-��,)R�Ҵ4��]c���9}_bU>�k\u001c�y\u0004)^e����v\u0014=\u0000�\b\u001a��n$����\u0016��\u0017�K9�3\u0001\u0011Pw*�CS�\u001e\u000b;����ٔZki$q#�\u0019d\u001b�n\u0007�5\u0015aM��\u0002\u000e��� ��R_�^\u001c҅ɩ`W}����p\u0011�G\u0019�ړ[[�\u001b\u0016kqAB\t�SQJ�mO\f���l�*<�dv��\b��H����=yR�镜f�\u0016���\u0010\u0001L��ݽF�^!\u0007\u0015C˦�%jj\u000e\u000e\t�\u0006C&\u0013+?El�su�za$�\u00187.\\�\u0015�N�lY�:�fSɋ�@���Ǧ�r��)E����!n\u0003�\u0015Ut�N��L�\u0001���xI�����Ml�ot)�Xn\u0012��?���\u0014�O�A�\u001c��\u001c���-��=<Ģn\u0003�g�h��y�D�(��/�\u0016DZ�\u0005��V\u00145��sS8�\u0019w�m�d\u001a�\u0017�tG{�/�}G�~S�Z�R�Du��LP�sB[�\u000et�H�\u000e�b�\u000e8���?_���q��9y�%�~gD@�.\u00169\u000b((?go�Z�\u0014ju�g�<�&�z����{&����\"��\u0005�k!BZ6J�\u0001?��l�ɦ�F��\u000e�Q\u0017+����\f�y���Lѐ\u000e,��A��P��s�\f&>� ���\u0011��}�k�Op-�h�z���\u0005W� �W(ˊ`qGb�i�8��9Q\u0007��?3?+��uW��O��S]�z��\u0000��izʨ�#\u0005�Ol�iu�.1\t\u001a�\u000e^n��t\u0007O��\u0018��%ο����_��`�\u000f��$���?/�{5��{qp�6s�~��YH������X��z\u0007��:�\u001a,}��:���\u0000�����������h̓\u0010y\u0018Տv�_z\"?��O[�����l\u0007�\u001f�缗��\u0003��cvlqL��\u001eSߒ_��X\u000fDG�=_NhV�2\u0010>\"�^G���Fo�`v���I��]l�z,}O?&~��\u00041�\u0001�t�BJ�\b�P\u0010\u0013��\u001d\u0007�jd{���\r��Q|UգE��`PO\u0018>�C�X��#fRz���\u001eR�D_��6`ڭ�v�>0�˻GJz�>\u001f��@�Ej�\u000e�L�����v\u0007{%��2��%��:�\u0011��\u0011\u001b�o���;��r��\\�\u0017�;M�š�\u001b�^�\u001e0�'\u0010O\u0013��V\u001c\u00057�n0�s�I��*��\u00008���渶G�Pd\b���\u0001Tux�jJ��Z\u001a�!�P!\u0003.��l\u0005����������\u001e\u0007�4@\u0002� �fD\u000f\"�򄡿F\u0003ut\"u\u0005J\u001fT !7\r^�\u001bu;fX-\\=_I~Wk0����ef�o@=U#�o\u0014�\\��B�j����Dp��/�4\u001b�E�X�@�\b�����m�XԒ8�i��g��c��\u001c��/��~����l\u0018�X�9\u0001�4�H\u000b�M��9�d�ۼ$�E���h:�H�Wh~\u0019�RX\u001f��5\u00072��dcժ\\�g���Ҽդj$��a[K�\u0003�S��o�f�I\u001e,3�y�u:��꣘}\u0004W�b�\u000b�W�HעU#���\u001b\u000e��M�jo�c\u0011q0�O\u0017\u000e[\u001fN�'��s,:�S�\u0000�Q���z�\u001c�\u0006�#�a�l��\u000b�o$Ɬ�C� \u001c�����<�\u0004A.\"�����=V7\u001b\u0018��ᡨ�B:g;��G/\u000b?��#��ʎ/\u001bx\u001a=�Ry<�o=_�I}9\u0011�\n�d�\u0001Q^�\n�5��<$6O�~�|�q� �(1���\u0010�;���\u0011햌����N\u0003\ts�H\u0011��m� �+��Xg\u0017\u0010H\rLr��\u00106\u0015\u0014�\u001d�r�y��ܲ�9���wRM�]\\j:c��\r�_ق��\\�\u0012\u0012�[�e�_LH\u001b\u0013\u0014�\tێl��_2\u001aN8��k6�C%�\u0013M\f��]ڲ]ƢO��\r\u00196�\u0019\"\u0004\u001a\u000e�xe�os\u0011\u0018�O������\u000bǾ�#!��30P/aPcY\u0011?d=\u001a���v�Yp���\u001e\t���\u0013\u000f%y�G�5��.���-m�ꖳ��;xl\u0005^�=Y\n�M6�7&$ ����l4��Y�ѐ㈢I\u001c�S�+���&�P\u0000\"$�.g����\u0000���\u0000�����]O�&_H��^V�U���s\u0012��_�p�s\"�\u0016_/i\u0013��:5Vy��j\u0002S��%{n{R���?��\u0014�R\u001f�f?����\u000e���a��_�?�:=�\u001f�N�\u0017�ycB'��N�?���\u001fN�ߔ4�uH�\u0015<�\u0002\t�V\u0002��\u0001�c�$Tg��\u0004�}�ɂ1\u0003ntȭ/��c\u000b)��\t\u0014�*�\u0005��\n+B�>y�(\u0010\\�hl��v=?ݑ�J\nT2=\u001b��n�u�\u0015�#U�e\u0010z�F���\u0014�x\r\u0002G%\u0004iO�^���.����\u001b�m�\u0015��*#T1��T��f<�⌿\u0011޽O��H��n�\u000e�\u0011\u0011j\n�����y&�2ʠ\u0016\u000fC��M@5�@���P�,�ڧ�\f�\u0012�\r\\�D�\"�:�\"�;\u001ae^\u001a%+\u00169R\u0015u#4�e��<��ɋp_��W`��\u0012w^��$�\u001d�\u0012\n�����\u0007Y\u0015Kl�:5x��|U���l1\u0011;������$F&\u000fİ\u0002�\\4m\u0017��͸�%:�\u00002;_�e\u0006��[^�fn��\"V@AV�\u0002\bR�G&�@�\f��^�\"knL�L(�4�M\u001c\u0018-�s�8��:�J\u0016�X\rПl2�LI'�4]R\u000bP�̩�\u0002}>h�����YT�\r޵�i\u0000O�x�n���Xx�X�@�0G�r���\u0004�|�!t�\u000e�v�@��=�J�vOl5�Ѥ\fѳ��Ò�V\"�n�9Z8��\r{e�\u0018�Lc��KF���8�\u0010�ʻ?�)\u0013�.�\u0016WB$YM\r(v\u0006�\u0019^La�5\u0014wْ\\k\u0016��+��9�j�ۺ�!V���1\u000eꜫ��:��\u0003�٦�LHmH]\u000f̚ޕ4S���@c���\\��^���R�\u000b�Z�5���9VI��\u00056b����}!���MA\r��L�^�ʶ:�J\u001f�.T;\\��Vv�h\u0007#��+����\u0000w���4�ȍe=\u001f��>M����\u0000.��{\u001d��I���ܱͥ�\u0015Ŭ���G��Ȳu��\u0002�A�#@Fv�A\u0011#��<�������s��F�f�o���b�j~_�����\b�V�:p��[;�n G\u0003\u0016f��B<#�j�\u0007\u0015�>\u001c�ǿ��܌��e\u001e��\u001c�I\u000eo������K\u001a�\u0014�����$\u0012��=�r�}5�&@��\u001a��|�kV\"c!�������l���%��Ra˂�\\Z�Nf:��l\u001bo�#��W\u0000;�7c\u001c�\u0005+�o�wf[�M��\u0018��td7\u0011�ԨG�W\u0013v\u0015��A��\u0016A�p�\u001c����@���W�ȋy\u0000��\u0019`yU&�ab�\u0004�t\u0004�CV�;��7�6\\P=E$�R7�c��u,�ȍo$�y�}X����\n�)\u00017%��<�\u0013���p�(��\b��u\u000b\u001dF\b\u0010�Yʠ�0C\u0018h٣jp�9%�\u000eR+�BՔ\u001a��S`���\u0007#��R�W�g��v���d��4�I��X�(�8�3\u0015*\u001d��G��k��Id>�F��1şę��/�7�\u0000'�5t�\rz{t�=\u000e���_�\u0012������>(gJ��J\u0013�a��5S�����;����GG�T\b\u001b��������i�~Y-��]��\u000bi-�\"��\u0018r�I$\u0007�Ʀ8�e\u0015�)�\u001a^ӎ�f\u0011\u001e�Ϲ�k�.zh��V.���o�g�4v�1_��\u001a\u0005\u0017$�����p�M^���9�r\t\u001fX�\u000e\u00169��.\u0012��;�\u0017��^c�\u0019��mJ8'��V�ӿ�\u0011a�����i�\u001a�}ĠQ�S�ݶ�e\r�\u0014Cv<�c|[�s�t���6i�F��7��+c~�<��H�VW�\f�ЊOV�\u0019E�\"X\u0010�S�O\u0014�%G��;ӗ0�\n��\u000eG����o���8y~��S����P�Aּç������Yl���T�5\u0007��\u0002�ͭ��\u001b��r�8U\u0010qZ\u001c�h�N$z�\u0007���?�'E���.9��x��#[���e���\u0000����`�>��4�|���5��Q�������k^]���M{k�J���]?Q�o�JJ�2ȡ�F�Ohjtٲ�\u0019�\u0013��+�\t�M�s�r{7G���әD�Ox1=\b�A�Gj��5_����m\u0002�V��\u0000�\\�o���o9��}��F^_~��\r��p�,�������\u000f ܩ�����,ؚ�K�;�\u0000d��\u0017�Q\u001d��2�>–цI\u001f\u001b\u0015�����>\u001c�Q�\u000f\r�o�\r=����:\u0011\u001d��я׊18&j�\u001e-�}��w���_���?�ߔ�j�9-|��=\u001ePՎ���}A5-j}&�T7v�:\u001b�^�d0��\u0018��D\u0005EFz�\u0000d�\u0000�ٙja\u001do�43�yaŌ����\u0000w�\u0001�<�\u0000�'��\u001e�R�K\u0006�\r�\u0018�\u000eZ�~\u0016J$�p�Oҝ\u0017�r��\u0000͚?������uޫ�$:���t��5�\u000e�\u0011\u0005��i��oym2�\u001bl�CCPF��t��&�M\u001df�x�h�o\u0019�\"Q'�,\u001a����i�\u0016~���G��W󦻭�v\u0016\u0013K3\u000f%Y7�4Խ�e�)\u0005�}w\u0015�X4ww�\u0002�\u0018\u0014�\u0003�oLqm�{��n�!���\u000b�\u0011&�8G�\u001f���\u001b�0[�\u001a�E����Z_�՜F*:��UA.��Cƃ���!�\u001a�Vk�ҙ���<8���>���޼�F��\td\u0007����ӈ�|M\u0003�^�o}����m�hn�E�lL\u001a�D�q\u0001n\u00066U���U���,�\\B��i9q�'\u0016����%�����o\"��&���e�i��5ť����\u001a����t-:9\rƥ��%\u0016��b\u0005���H����N\u0007&��R�1�S#�u'`ӓ7���\bܻ�E�ka�]��^_�o:h��g�?3�9�\u0017K>g�ⱻ�+ɒ��^_Y�:G��&Hfi��s5܁\u0003^�2I �$dbj��GU�C٦^\u001e;�\u0006��?VR\rnz6 G��c����8\u0006g�MW,`Ǡ�\u0000e+<���o�ͭ&����~M�y5�]#I:f����E��B����mCH�OP�����x�\u0013��j� �q{\u001d�\u000eQ>А9n��\"L���\u0003�e×m�r�\fQ1��q\u0001Q�\u000ew~�Fܟ�Z\u000e���/4jך��>��������{�P�w}u9�G\" #�\bCq�4Q\u0014Q��(\u0000\f��\u001a��4�njD`�\u0000#\n�\u0001�~��y��Q��ɔ�YH�<��m�҃�#ӵ�:��M\u001aM��k\u0014F�K\u00047\u0011;ǻ;�ߍ\u0006�\u0002�v.���\u001cY�\r�n\f��H�I1��o���-#���kV����Ŭ�\u001ch�\u001c�o,\u0013F((�F\f\b�;fT!�.\u001e\u001b������f\u000f\t�������O��o3h0���d�ξQ�V3���ޫ[\u001f�Q\u0019��Q��\u0007j�\u0019����5r\u001a�\u0005�����xw�˛��h5z(KI���9s�1�\u0019t;\u001e^�O�|��\t�\u00008����i�\u0000��\u0000���>Gק���U�L�\u001cZ]� y��\u0005U!��i�+\u001a�\u000f\\��������S�_i�-^�@�f�8�B�uw�e�دf;K[\u000e��\\�E�B���\u001bSkeY\u0014�'v\u0004v��i���4F�n\u001c�\u0015\\����̱𽴅��\u001a�Z��\u001b�\u0000\u001c��\u0000�i���s�\u001d6�VP\u00186��#��Qn\u0002(�:�NH�\u000f\u0013��9���5\u0018��l:�����\u0002\u0005\u0011��\u0007��\u0000-<��;\\�\u001c������-��H�t�ԁ�F���z�����\u001e\u001b�;\u000f��&^.\u000b�>�w$�G�u�,/��\u0002����M�˱�\u000e_���O���i�{G/�5'q���o%y��kRYAv�gx}9\u000b1hԶ�\t\u001b\u0002+�1u�\u0018a�\f�\"���6����'��r�Do�h�\u000fj������4������#��n�ɯ�g\u0018<\u0011\u001d\u0007R~<�з�WҎ�5?f8�SJ\u0010�R��g\u001d>D�ц�\u0007��7C�Q3��B>\u0011M�ڿ�s\u0003<}$\u0000��|�QywU�l�䇂��AerJSf�ֵ\u0019��!!���䏃\u0019D\u0001\">_\u0007��Z��� �d+@\u0011A\u0015a܏\u0001��Сe���%*\u0007���&�i�\u0004��*>*����޵��1�\u0012�ϔdc�\u001e3���ln\u0019o�XㄖP�B)�G~��A��\f|�3!\u0003y\u000eϗ����\u0016�s����.����<�!+5ȭ\u0010P�E��'evI�\u00192��'����a#����Ԏ���Ry�{˻�\u000b��J���UP��/�����\u0018���y\u0018�9$k4\u0015�9\u0001\u0014�HQ�\t\b\u0011���\u0007ߔ�F���q\u000e@�=s�Hb�U\r�37\u0016\b�\u000b7�J�����\\��\u0006^-_QlN��\u0011�M\u001c�!��yqa�a�Bu���#�DWF\u0012�\u0015t\t扇��r]c��\nB\t#n$�naM+Q��N\u0011\r�F^!�����ެp��y�\fX\u000f�H�\"E^�w�s\u0000.UA���'d�-^ic.䆍��.,9| �_\u0013'z�l��^�Y\t\u001b��=�\u0000��F�\\ r��s�q�FZ\n�F�\rv>\u0018� �(�Aɵ\r�K��Ā��dR����4\n��xTQ��$q�@12�?s0ҵ$h֠RE�U�����#T�۶S8Ѱ�c�j��ٝ��0���Ri�\u0017\u000bV��|*���e2�\u0015T�\u0018����s\u0014\\��\u001bL�j�=I\u0016�\u001d�^%k��M��f+j��.���­��ܚ�\u0001�ݾ\u0012J�F\\ nٌ�\u0011ݓ�X�>=:\"\t�\u001e��9\u0002���QU�f�̅���1�,�n�{��Q��6w(bv����Z�{�1����\f�\u001b��,P>�e\u001b�|+�\u0004�\u0017Sfw�~\u0010���\u001d�$�P�(2_�����\u000fg��Ho�~��S����\u00108�6�8ֱ��ԅ;�#���Y�&�L�;�\"8xo�¼��?�\u001f�=U'��[�;����������с\u001e���\u0006�Y\u001a\u001bO�q���og���\u001b�'��}/}q�o��_)�g\f�[y�b-\fS���\t�����2��51���3qH\u001f\u0007�r/C,�>��\u001cP\":��\u0007�>]������\u0000���\u0000˯0\\Y^��\u001cQ4���oF`\u001b�e*8�\u0011���u\u001a|��X��wx�f\f�,�\u000e@c!��ޗh^u���\u0001yDDref�#��N'�_lr`��5ǜ^����{����'D0L��T�\u001e\"9T\n\u0004+�X\f���D�9���,\u001b,�S�/�\u0013c�\n\u0003)�PT��\u0000�b�\u0001۹ʱ���y~>���B���\u000f��r;���\u0005i$����`� ��[\"���u�\u001a3\u0002��O��\u0006U˛+�\u001e�8\u0003 � FF�Z��c�\u0017#�\u0005aAA�j�\u00127G�����`n\u0019\t��sꣳ/\"\\ԽW�\u0005��A�k� ,�n�l+�\u0010�����k�w\u000f\fK镔��\b�3�G]�\u0003���=�Hw~>䰏0�\u0004B5\u0016��-�\u0016%`\\�7�!�P�\u0007r\b5�dI��\u0017@}�\u0000���#]�J�`�0^UwwUr\\�N���ڏ٧Ӈ \u0017�}\u0011��}\u0003V�P���C3��1F\n\u001aN��_M\u001b����\u001b�6I\u0013D��Ď�U��7:E�v���\b��V)�J�ICA�#���C�\u001a\r�a�s\u0013�C|v�9����ƻ\u0013�K{�Q���hh�\u001b\r�ē�/�-�,�\"(}I-�\"��tedU\u001c�\u000e($^�H�R\u000fߗ��k�=�<���W\f\u0012�O;\u0007��DZ����\u0014�l\u0000W_�15�'\u0002k�~>N�I\b�~`���ޣ\u001cs�\u0001zM\u0004����n\t\u001b�\u000bZ\r�m�3Tc28�ǫ��ԾA�8`�Y����>.�ݏm���YI�n\u001c���j\r\r�ժ?7���\u0012��N~.\u0003�\u0000���r�\u0013.\\�L�G�_^�g��\u001a�\u0015-gs\u001c�A�*�\u0007���ћ}\u0019\u0011�ý\u0010�����%�2��{恫G��Zu�\f\u001a��ӎr���6'����$N,�G���ׄ\u0011�����\u000fh�����An\"75��\rG��虉䜢9!\u0003ב~f�s��?/%$�W�<��-G�\u001ev�ƥ}�]�����k�Y|\u00124�D4�F�\u0011�hIބggٞ�g�L\u0018��2F\u001al���_s��}�����E��4I�L�,{�?s�J�\u0000���\u0000�����\u0000����ѿ2�1�\u001b\u000b�<��K�4}2�l��\u001f@{�V�O�b�qu$���+\u0016r\u0007@)��؝���3��\u0007� \u0006r'y\u0011��\u0001�\u001d\u0006�Y��\u0011��O��=;\u0001\u0010#�\u0000��l�ƫ\u000e�a�k\u0016\f�c�A\u001d�e\t�\u000e���\u0007b�iL�\u0006P��:�\rY /�D\u0013�J+��\u0013[lQ�K+Q�\u001an\bm�aM�NB\u0013�L\u0003\u000e�`\"c+\u001c��\u001b��TJ�j\u0014�)a��F�vE4���5�;3G;1�\u0001�����f��cZƙo\n��n\u0005vX��Y�\u0013�,e\\W�s\u000f'd�s���\u000b��������-�C\u0019*�O\u0018�\b�!�^��׿\\Ŗ����H\u0013\u0003����tc�{\u001eLJ��Fo/j�[��Im/�Y�\u001b�9�Y���@c@��캃�\u0006-~}<��$\u0007^��le�ǐz\bH<����Csaxn-\u0011UโG{���Z;��\u0000��xk�х<\t\u0014͉�\u0001�nȌ��9X;p\r�\u0003\u0013^�s*��.+-\u000f\u001a1\rD*>�J���k3vD�.;�m��#*��3��|J�`���c�J0�e\u000b�z��\u001a���ܝ��|?\u0014�0��,��ڙ\u000f5�\u0002D+\u001e�\u0002�q(zr\u0004U�ď�O\u001c�:RO\t\u0016\\Ѫ�G\u0017 ���\nѫ,�mֵ^h�\u0010\u0006 )N��u�\u001c\u0006'��� F�\"\u0013^�\n\u0019\tj\u001d�T�$� lթ�\u001d�8~H9��p�Ɍ\u0019d߁T0\u0005\u0003�@\u0018�Kp�{�o��M��f\u001dQ\u0016��Q�\u0019&R���h\u0015G�\u0014���\u0003P�H��\f��m\u0019`9�)�շI9�@jH\u0018q%�Z\u0012\u0007B����C��.���\u0013ܨ��\u0006`�\u0006@�J$jFA�R�\u001b�+�\u001b�3\u0012\u000f؎ N��;-R>h�\u0014I�B�P#ZT1n��5\u0000\u0012@?t\u000f\u0011�[\"�\u001f̩edR�Č����/�\f�q\u000b*���My\u000f��|\u0012=\u00038\u0001� �]S\"����\n�\u0005��wR�u5ڟ,F\"M��w�\u0018��*\u0017�rW��B֌��K\u0000\u0001�\u0000��rb \u001e[���֜C�!\"4�\u0003!,�+F&5\u001c�\u0019��S`(��,#�@�h�+�\u0012-\tB�Ÿ��!Uf�T���f&H˩g\u0001gvga���8����\\����<\u0007-�\u00005'��,����\u0011\u0001���l�U�2�\u000f ^Uޜ@f<�\u001f����l��7&\u0011�2�\u0012x�XBB\u001f��\u001a���i!e�>�\u0012(>��2\u001c4�G�#R�5\u001f/��\u0019d�Ů\u0015������#\u0014/\u001c{��}���xa�Gf9g(���蟕�\u0000�\u001e`����R��\u001fQ�/bkMgA��I��\u0006�H\f2rT\u0006\u0002}6C�0ڔ̃��T��j������>������)�^��ԍ�����W�\r$GQ���h��\u001b�{�R��Ǜב`6\u0006�C$9яJs��\u0016[�3����E���W��ZňmB��1s\u001a\b�T=K[��\u000e-\"+n�-\u0007��P��\u0016x�K��I������\u000b^iV7�[\u0011!�\u0012#$ʁ芴^(D�KWa�\u0001�\u001e>��\u0019\b��\u0018&��\u000f5��<�铈YEy\u0005��*����*��\f�sZ��Ďn.A�&���%_�?���[��Z_\t���Ij\"��E\u0012��I\r8ր�B6�D�p�ч'\u0016`$�_�/�8j�`�:_�-R�[�x�u\u0018-\u001a�\u001bb\"\u0011�\u0002�B�'%R�\u001c\u0016ޕ\u0000�Zx�\u000b\u001b�\u001c��c��\u0013Q�=�_��\u00003��䛍\r��k)�.o��ƿe����\\\u001f�D�H8�mk\u0002�#9������h���԰ݥ���YJ�4wv֬ޤ6�\u001fBT���J\u0011SS��t��C �\t\u0004\u001d�㛛�Ϥɧ��c�/��\u0013�\u0000�?����+\u001d[ΧL׽-#��G�%��\u0019-��d��9=\u0007t\u0017�L�\u001a�\u0015�EA�o����\u001d~18J<&�m������v^<�\u00004\u0019x$%ű�H��u�����\u0000�8�\u0000�����u�\u00008�K1�\u0007���e�rȥ�����E\u001d�i�h�`�xn\u0000Ү�gH�\u0012de\u001e���n������z�v��z��r\t�\u0001�ÐP5�\u0011�K�З��v�gO��\u001f��$5x�\rL��\u0003d\\2}@���{�?�O�ȟ�_ �\u0000ϻ�\u0000�$���5���GԵO��FK?/^�Vӝ_��W֬\u0012�\u0000��j�M���c���&�R�VX�(+L���\u000fm{\u001b�}����hgå�N(d�M�f�.\u0019����U�\t\u0011�{\u0017�/k}���gje��4%��e\u0019\u0001@�C�$��J�\u0010\u000f��b\u001e\u0003�����\u000f������\u0007����9�\u0018\f��k\u0010iwQh���|\u0017sMactc�K�.�Yb\u0001�E3?W�\u0000\u0004Ogty\u000e,\u0018uZ��\\Q1�2{���<�o$=���@�}F,\u001bم\u0019� w�<��?.���<��\u0000?���K\r\u000f�o��\u0007C����o2\r���\u0012{�\f����㗃\u001d\u0007�H�g�fT\u0007��]v��v\u001f��\u0000���\u0000��'��m;�~e���<�u�ΆMW\\�����g�� �N��\u0000��5%1��\u000fqQ�\u0012�����\u0012�\u001d\\�B�\u0011�a\u001f��\u0002�\u0000\u0016�s�^\u001d8#E�\u001e!�I��\u001d�M|w~��^�\u0000�&y���M~\u0004���?[��w���\u0015a���*�K�]N\t�\nG�x)�)C�\u001eӎj�2\u0019EQ�\u001e�\f4���Ȟ���\u001dR?��Ý\u0003Q�m�[{O%k��W3\\\\�[�>_�Pg-��NM��k�_��DRMS;\u001e����4��=W�F�l\u0001>��螵�\u001f����V� �L_��.t=$��t'�\u0015�\u000b��I�����\f~W����ߗ�Y��Y�\u0005���N\u0017$�}��q�����\n���� g�h�KE�\u001as�C��\u0003c\u0013���(�_s��}.A����\u001a�@�iF���X1��䔣 \b��Km��!��\u0016Ey�\u00008��)kp]j-\u001d������ާ+�=b�\u0019�R�\u0011%X�hMA�KO�6YC�\u0007�WD\u001d���^�\u0010�#�\b\u0002\f�������{g�G�|դΚߖ�+�xaQ{\rΙp.�&\u000e��ĭ��Z�\u0006�\u000f|���cM�����蝈#��]\u0017f䡛O#�x���~F�����{�rfY���|�\u0000j�����7��\f��Y��8��v�*��epd>?fK�/>\u0010C�vW�s\u0003�\u0011�Mˊ����}����'k���y{S���p\n�#��\u000b\u000f��Zg��4��,�u1 ���\r\u001e�\u0003&�q�3�d��ɠ\u001e���*+J�\u0015����b7�>e���\u001b�dU����\b�*\u000fF�Sڵ;nr����Ŕ2J\u0006��4��!��Y5\bc���s�P� �r5���N(\u0019ˆ\u0006����#�7�\t`�>��K�\u000f�H�u\u001dr��Zh��-<\\F�J�ۭ��Z��+^;���dv���\rl�&U�s�>�{9�[�.n��\u000eA\u000b؀8��[��'k7�Z�_H�\u0005�����F�QJ(jsV��4\u001b����qk1��iq㧜�.�C����~\u001e�\u001a���_`�-�����\u000f\u0016�J�T�#�{�#8Z�<�\u0017�$!�N$=4�H#5!�p�**�OCߕsq��{���\u001fG��<��u>J�n\u001c�[��7�u��{�~�Oz�\u001c����Dh�=>O�G�~\u0013���=cU�����_��W�����x�]�3��(��\\rؓ������-V�s\u0016Dq���_���\u0000�\u0000y\\�\u001eM��\u0016�w�\u0000�B�GZ���\u0010�;\u001e��53��d9&I������\u0000)��\u0003φϼ�'̿n������q�;\u001e�\u001e\u0019� �\u000f}��\u0007�z\u0005�ǧ*Ȁ\u001f�\u0012<7\u001d=��(�.\u0004K���b)�^R�4Ԏ?^����h�p;�\n\u0002\u0007ќγ\u0016C-�G��f�#s$Y��y_�,��-I����XqS�u�v�\u0016|FP�wz\u001d>|P�\u0010����w7\u0017wztW6/��#��z\u001a��N�3R\f`H�7r|I�J7����\u0000������\r~��Z\u0013��k�\u001c���\u0018�-m\u0014�\u0011���jB�ԏ\u0013�gavt3c��_�c��y�_ke�O�X?Ƨ�����ާ���a��-s\f\t&�r�=K�B`\u001e�ݻ�)5�w\u001a=7�S�\u001eO\u001d���㎜t���I��\u0017X�\b�(Q�L��G~[�a�fd����N,2\u001b\u001b��_��\u0002y?P��A\u001bPҧ�\u001d+^��q\u0010vr�k\u0002��Ө4NZ6�dj�h�\u0011]��\u001f\f���z(�]V�U֤&i\u0001p_�AT�j;\u0013����p�%�?P�o)��I(�+pS�&�b6\u0019\u0003��<����-�r#.�zo�j\u0018���4\u0007`G\\�P7]\u001b�1\\Q�_2\u0017A�b�(�\u001b��\u0013�'�A���n��A`��hYu�f-��}\u0002���ӍOj9)�~�\u0000b�y�\u0004\u0003'�&�\b$7.���G�=\u0007H��V\u0011s\u00112/\u0010�!*��R�I�(�3\u001e@�@�ˑ���/T���W��y)���\u0016\u0000P\u001a��\u0013׮b�\u0004\r�|d%��Ȗ���\u001bJ����H\u001b�{�\u0003je|1򠤑��\"\u0019���I阧\u0005d$\u0004fZ2TR��\f�}���\u0000�ɿ\u0016R,\u001eg��\u000fL�5\u0016*�8�[�2���Njv�O�b�\u0011��9س�\u00024:~>�ck=���,���U@\f�\u0005Y�?\t%���Y��>N~9b��5w�FI��Hnl&x\\\u000f���k��_���\f�G� ��3�%.<$�t�Ҙ��d��O�t\u0005�ZT��b���K\u0001�x�\u0018d�GbYc�d�韫�L��<�戄7�6�\u0019\u0013���\u0003պ�iZ��^l&�Hre�M�\u0015�1���̵���{+�׼��I��\u0016��*\u000f����M�\u0000>����\u00120�u\u0003�\u0005���(� �h'��\u001d���}GH������̍.\u0018�4���X� *�\b\u0012�\u0003r{�C��ͤ>��2�\u0006�?��X����0?\u0017�~z�r�\u0000�;����yu�.9u=\f��7v�\\\b�J��+���gM��,\u001a��ΆG��>��vq�b8��Dr?����K󖣠\\�BYU��\u00131\n\n\u001f���\u001cϞ�d\u001c�u����\n?��_�^��L�\u0015����\u001d\u0013�\u0011�\u000eՠ�#(M(Z�\u001e�4����v��4��䅎G�_�\u0003�����~�<�\r�\u0017�U�^W�\u0011z��ȢX�Qgp�,W���M\u000e�6\u001a\\�͇®\u001dDy\u0013��;�\u001dv)`����KK[Ǖ����>o���a���Ǵw�/���s��\u0002+��og��Rе56װ�Ȕk�\"`>*rR�����Y�\u0013\u0011\u0003U�\\���\u0007���e\u001d��c$e,�,��ٳ(��\u000fK�������۽N=2�-*yQ�\u0019��x���ȿ���EZY�iQ8��\u001c�\u0016HN\u0007.]�\u0018�o�\u0003{�\u0000�k`4d����\u0004s ���\u0000�/�\u000f�ß���Q?�~V�5���/2J�{���+\t[̚�)2X�P\u001fKD�1� =\bl�N��ϴ��u��f@���\u001d�>#��/�{-�'��\u001f\u001e\u001c��.g���yr\u001e�F�<�}3w4M'��̑0��\\‡ea�X�\u001fy�nA��q��x��\u0013ʙ\u0005��QA\u0003FX�\u0004��`�h7��\u0019}�Z�,�;����\b�\u0004s)\u001d�=���\u000by\u001b�� ��\u0003�9Sfy+Ў�1e*<�nQ��m{S�\u0010Ib]f��Ւ`h��G\u001d�\u001a��<|3\u001e&���P\u001e[���\u0000��vg\u0012W��-\u0010j���}�Gj�l�3j\u0014<���/]\u0013*En�����R\u000f�E}H�\u0003�e�A�L^�a��Ր\u001dK�5�\u0000,YysR�մ��m�7�\t�\u0015z�9#�^jjF�Sj�K\u001c�ز\u0014C�#��V�ᾶ���`\u0013z����qUev�pI\u000b)#�a��pb%\u0010G�\u0013\u001f>O�����XK���FO\u000eD�\u0005�Z���\u0014�@��N�����i�\u001b�>Q�2�d\u0005��G���lʄG\r�h����\u0000�7�\u00177�\u0019�J��1bB4�ۅ\u001d\u0000�7=�\u0017W\u001e\u001ce���7��k�k�Z�J�\u0005��2���2,�!\u001c�O��ٸ\u001f�14�2�a!��H��K�_s�O�\u001dgֲ�W ��様bк�P;�f�Y\n�\u0000ӕ�շ0\u0003�,��`�K��\u00003�?\u0018�R�z�s#\u0007 \u000f*a.v\u001e���nt-R֥�6�:WqA�\n\u0001_��<2���\u0007�p�\u0002�Ly_ɗ�W��\u000b\u001b���)k�\u000fC��!��#�\u001c�ou8%�\u001f\u0014G�n�0�'�-Ŀ\u001f���J�^[ԑ؁b�]D��,.���\u001csZ%ׯ'4zcD��~������o̟��I&�/��/6H�\u001b�0ͨJ��vڑ��{�e������C�|�'�|��2;�q������0���2s�c�\u001eB���+\\���[�.0#]\u001e��\u0007淽ҵ/'���\\i���2;\u0013[Fj�\u001a�\u0000�ߢ�\u0007)�Ƥ3��Xa\u001cP\u0010?T~�I}����~�\u00153�6X�݁�H\u001d�c\t�6��(\u0000w\n�$\u001377��q�<ӹ�j��\u0018����3\u0011\u001ei὇$�V�t�\u0015iA��,��\u0018�J\nV���+�/��\"\u001c�E�\u001e`�\u0000i\u001e)l,�^PE\u001a���*�.=J*F�����{s\u000e��X?y�l@�G����\u0003��h�1ǐ���O�ta�\u001f�ڮ�u,Q\u000b�U��*i�Ku|Һ��\\ݺ7\u0007�n\u0002\u00003��굺�Nl�\u0000�Q�n����@i�\u001a�A���v2?�\u0016.滓V���\u001bj?\u00135��+�ICKÌ&\u0004�?�Q�\u00181<�3U�\t�!�\u0004�\u0019������\"�إ\u001e\u0019��a\u001f��\u0000��\u001aŬVv6څŦ�q\u00037�J�\f\u001a�C,W\tl�ʯ4���ʛպm����v�\u0000H���lc�\u001e���\u00173�a�Ő��rW2v\u001e[�{�?:�6����ou�*�^LX4Hl�\r'QЯR5�!�ӵ\u0012C\u0004��#�\u0012���3�vϟ1���~� �Fq�\u0019��G�\u0012\r���ߦ��C�ݭ��4�!��\rq\u000e/�\n�~���1�6?��d���g��4�֚\u000f�t�w��]j��oi\u0011��>J���Ίz�q�x����)qb\u0012��� Y�~�E�\u0006<�\u0011�\u0012�4\u0001�d�>����O��K�q�S��ɟ����Ϟ����զ�6���k�[��7A��\u0002+Kkk�cY�����z�qzh����\ftZ��\u0014\u000f�\b��o�\u0011�<��\u001d\u001f[��\u000e}���d'�\u0018e���#�fR��<�8ƨG�n��{����1�\u0000��~|�\u0000�s���e�3ΐy��\u0017�j������\t\u001c�b窼�5����,�Ht֍Vc��\"�� ��x=��h��=��H���,\u0012c\u001b$�q�S\u0019U��\u000e^Q�?�?��je������2D�D\u0013U�;�k���\u0017ο�?��m�\u0000;'��;\b�X\\\u0018�kz.��Ȕ�>\u0012>Ҏ������u����r�Q����C��K��2\u0007&H\u0013�s1�\u0001�k���6�b�9ԩV\n��\u0005\fZ�\u0002�t�z��8�\u0019�X�qӛ����4���C����\u0000�/,�0]G$.��U$0�\b(��d\u0014�\\\u001fɸ3G�\u0011\u0004\u001f�͘�����\u0018�����y�0\u001c� ��ܸ���Ԧcϲ��\u0000��ˇm�'9Ra\u001f�K����%\u000fF?��o��t�1�ٔ*��v�%�Z>\u001d|�\u0003�Aj�UA\u0015#}�\u000fA���g�\r�G&:��pS8��B\u000f����\u0012>\u001e]\u0007��>G1��nnF=a��-5�\t'�\u0015�X�mAO\u0002��P\u000e��e��\u001f7*\u001a�\u0013X��$7>\u0005v�wP\u0005\u0019�y\u0015p\u0007�s\u001c஀��$�#$�&��zT(R#n\\�aF5+J\u001e�\u0003!�[��Dy(\rNe�\u0012V\"B\tu�nC�\t�\u0000-\u0007^�/\u000f�ǖ�G`Qq��j8�֔`���,��\u0005\u0014�B|iC�8�2\u0016:�\u00073j����&�\u0000{\u0004`\u0006�\u001d��Ӊ\u0001�\u0004�\u001b���Aa��2G`i<����[Ku\u0000�\u0012�� �P\u0003�:����ʲie(�\u000b~>�\u0003�Ag:_���Z�sj[�2��U`�;Q���I\u0014ڹ��M(o!*����F{FQ2�\u0004[9���\"���!�+��V��\u0000����V�\u001c��8��c�U1-ޕ�곈au\u0006\u0011��@�ЭW����\n\u001aTo���c�}5��Ũ��Ցj���ͫFo\u00038Ee\u001e����9P\u0000EUi�O�#��l��.l�C�y�2�eu��,�\u0019\u0018s%\u0010z���J,nEjG@+��[��K����\u001el���k�u���lu\b'�kvqΎ�,��A��\u0000q�H\u0019q�\fN�Ն\f�\u0016A��Җ��X�������V�Q��W{��\u001ev�f,y<��j�+l69\u001f\u00022\u0000\t��ϏhB\u0012&Q$�7FZ�\u0000�m�~U����g\u0004\"!l-��G���Kz��\u0012@�X~�^]v�:|}M�ތ�� }1�������H��\u001c�^a�!�.na1~����e\u0011�}Gu�f9fr�\u001eT\rJ�r�\u0000�C��˛���\u0013�\u0011�YIc��]k�\u000e�m�^Z��[`�C��\u0011Th\u001a7\u001c\u0004���ܖ\u0014 �u2�\":S\b�L��VR/1�w�G5ԆHn�)��C\u001f�9\fe8\u0015�\u0016�=WaAn\u0012\u0007>�\u001bTe(�W�yw�P���>`�|��@�~�\u0012̑�Z\\ظ��'W�_B�vW�\n��IS����\\�y�<�Dm!��R�\u0000�1�\u0000�����f ��D����5+\t&�X]�\u000b\u0005��ׂ\u0019H��\u0017\u0016Q\u0006��s$�i@�,f*���{\u001d\u000f}w{����F,���\u0011<��O������İyt��\u001f$��W��\b��\u0014b>z��urb���\u001c\fʒ\u001bi\n�‹�r�\"k�j��!9 v����w���8�6�X���\u0002;�\u001b[���s��}��/��K[���\u0000ȋ�\u001b����X\u001a=L\\+C�?̛�H#ht�5�\u0002I4}]�EK]f$cłܣ%\u001di��n��e�q�/e�\u001b���.��#�'�%Q��eDU�\u001d���Y�\u001c]�\u0018�\u001c���9C,F�r\u0019\u0007�=D�)��~m~\\~f~Hy�S�����f���}\u001d�w�k֭\u000b][r�A�h��[\rwC�\b}\u000b�W�\u0019\u0014V��;�\u0006M'hi�\u00005��Ƀ��(���\u0013�%�y�\u0004�ϗ��\u001doe�?'�\u0018�QV\u0001�J?΄�Ӂ�ty_�\u0003���S\"�ʧ`7#o\u0003��6��^�\u001dQ�\u0011�t\u0004ڣu�U�\n��\u001a��\n�Ȇ�u\u001b8�5�;�\u001b�R�����@��wA�7�\u0007�����F\t�.�8�x�LG����?��\u0014{�/�ev\u001f�:�x�����bA\u001a�\u0004Ă�~$�ʆ���\u0019�41���Ȟ�QvX=�9w�\u0007\u0018�\u001b��y;���\u0015]\"�\u0004[�W�b��u��\u0017(�7\u0005��\b�=�K���ؤ|h��wO��Z\u000fh4ـ�\f�\u0017ߵ�{߽�\u0000����-f�@�7凖5�0�>d��\u001eb�m+ʤ��D�V���\u0004���i��F����X`\tB\u001c��P5�\u001c4�\u0011�z����L���C�&�\u001c��}��7����ُl�N1��R\u0017�㥗�%������r\u001f��\u0000X�\u0000���\u0000���&����\u001dGH��ZʝjO-X�J�-'A��i1���j\u0001����\u0005G*\u0000G�{#�\u0019;\u001f�1c�h_i̙�\u001cW\u0011)\u0000��\u0000\u0003W��*�q��h�{.���á\"0�(�\u0001\r���=\\��\u0014�G�����7�,�򯕴\u000f/\\hp�3�hV:v�aq�]��-N�\u001d>��\"-�*\\ F\u0001\u001d%Pj���F c��3�û�\u001e�o�p�d��#,�7W�����\u0003��C���\u0018tX.!v�H�m;�f�%�[�-\u0011y\\i�N��7qZ�Ya�~��EE)�x�\u001b�f�����^��YҘ�\fTc3B\"�#s\u001b�� y�\u0003d��O\u0012\u0014��T��7f��Թ[�4Ja�a��֢)Q�=x�\u0014�6�c���* У��\u001e�\u0012ZC�Ǧ> j�}�|���V�I�nE�_�8�d\u0012�\u001e\u0013�$\u000b!���\u0018g�%�;\u0006Q�,ǩ�E\u001a\u0011�˟��^�\u0019t��\u0011��F�$�|9\u000b᱿���\b���\u0015\u000b\"Mq�\\G\u001f7{�C\\i�:��\u0007���N]iU\u001dv�Ö;�\u001a#������:��e�\u0004DxI \u001a�}hlyo{������A3��t�=8�#>����\r�Tf���$Vu��\u001fQwq\u001a\u001a\u0012\b\u0019��k\u0004EKq|���'Y�L,\u0085��\u001b�\u000f��t|������=yFm\u0017�Z-�����;K$/q�_3��6��\u0006�M&��E�\u0013\u0000���J�M:���=F�U\u001dN�f\u0019\u0007�z�t�)\u000e�w����\u0006)�8f\u0004��W��X\u0013F\u0007ncn�\u001b~\\�s~]y��V\u0015t��R�f�qqo�y��1+̊H�����Ū*t\u0004񖜗�\u0019����z~�<2Ꮎ \u0019B���C�w�\u001d^;_�ɣ\u0003$l錌c\"+�Lt�w��q\u001fʕ�}\n�^���+��N�M5��\f�Q�B�\b`ON����Na\u0003��8�\u0000t\u000f�q��r}��c���(�]j��i\u001f��\u0000.�ki4��S_����,�r7'\u000e��\u0010�����5\u001a��>���a~}��I�.�M)��a��w����\u000b:�����^�~��yZ�Q������cw\u0005�X �f�,�R6sAR<3\u0003\\g�S\b�\"Q��o��f����r�3\t\u0013q\u0004r\u0007�>�׿.�3 ���K�=��n%��\u0017�c8\u000b,��6ic��'j������`�\u0013�\u0001r��p���\u0003��d��[���G�W~gi�1\\�k��\u001a[ߏF+��\bg�\\�GrȩӥGn���=.L�FB2<=*ǽ��f�K��\t���{�?\u001f�o�\u001f,�:�ޑa��{;Ask\u001dю@����\u000f\u0014�\u001a�O�y��\u000e�NX�\b�\u0003]���d�\u001c�h��\u001f�����Uy#IX\u0003U Q��t�'\u0004��<�IN\u0019\t\u0004�Y��5��wg2-�\\����#��\u0014w\u001b����\u0012�'ʹ�j'8i���. @�|�m�1~X��4�Z܍\u0013T\b�\\\u001a�Nv$��B<\b\u0000t�t�pi�GLr�?��O/'�í��.�:]H�\u0000\u0002�\u0005\u0011�]l��\u001d�\u0000��hg�4mn�ҏ�}\u001f\u0015Y\r9\u0005$R�G�[�Ҕ1�\u001c�����H�&�\u001ehרs\u000b�\u0000/<�;۝2�f�~\u0014�T\u0000iN����.�O\u001e?\u0012#g/��R��%w���pI\u001aX��%\u0006��*@,@�ڵà\u0004ʗ^j\u001cR/�_��\u0000�\b��*_\t.�QQܖz\u0005T\u0004�MA�\u0000ίE��/��u�����+��~|��;��$��M����\u0006<$�9\u0002���c�����uq����s���[���\r\u0016MV]��U� Q������V˥ysA�/\u001e\u00166��o�S�{f�r�l�=����\u0001.|#�~�y:A-���\u0015h�~���)�c�k.�\u000f!�OCw\u0011�`�ˏQ�O\u001e��cK{�v0���n5o�'ՖN.j�\r\u0014���s\u000f,a�x�9P��o�?/��9]q^0ʪ�\te\u0004ӿ@G|�;@�\u000b�ϫ��o\u00185�Ty>��5�='GkP�Q�\u0010�@8�'�9�\u0003)��޳\u001c�\u0017\fm�i��yf��F��&Y#�֚&[\u0004,$�\u0001�'U�G\u001cD׶�����ͨ��\u0014�\u0018\"�/�����9ko�9��y_�>g��n�[�i�.d��$�j�R|z��!�\u00146��rK.L�-�����;[Q �Zb�u4.w�:)��j@�\u0001:-\u0017\u000eI^�˖,g���!�� �B2j-5��R(�a��\u000e\u001cX��=2G>Gm�\f�yP\u0003����L�;���>�֦��P�J�[�i�թʃ��\u001ecw��4�`�N��\u001c\u001f�(�J\u0000�,t\u0014P��\u0010\u000f\u000f��^]�<��2MV��Ş\u0004�U�d�y�O�:�5F�\u001c`\u0013T\u001b�f�D�s�\"���.\tT�4>���tnL\b^D��WZҨE@��!f��\u0001м�Wyl��\u001b\u000bEr�\u0002�B\u0010� �:I��*��Q�\\��\u000f4\u001e{�6���\u0014Y�Q�0gW��4�Ї�@\u0014�#�\u0000�\u0011����2vc^t�7p%����\u001eDA����TH$�y��AJV�=2��4?J�~\u000e���\\��s���aF��@���l?w\tv�V�\u0006�Q��U�$���\u000f�o�4������4�h��\u0014~@r*�����-�F\fS�S��3\u0011���Zձ�*�#,�m���iS�?^g㿃�+\u0003�ٷ�w�`���;K�8���\u0019��B������\rM(k�9�x�LG�M�\\�9\u0000�.@�������Mn0�\u0013��\u0001$\u0013�\n�6��M>>=}�2͈�y���?sۿ+�84-E�e�n��\u000e)5j�U€��X|�c�,��T��ؽ25��{$�k���\u0012��\u001c�]��mo'�\u001a�z\u0000\u000e\u001d.N(�\"�~�lrF�ڼ7�[H�^\u000b�iR\u001a6�d�����?��'� ۏ(�D�� ��jSX�8�\u0019���*k_�Jv��3���8\u0003Ѐ�\u0019'(حf\u001f��[��\u001f9�w\\b��<��\\LkB�k�����}����N\u001c�\u0012xd]�uC&�$�\u0011�F\u0007�v\b�N�&���v��u��CZ�\u0013Z���Ĥ�z|/�9�\u0004�\f]��\u001f�p�����\u0006\u0019\u001f\u0012B]h�3�PVK�w\u0004�I��U\u000fߖb�Po���y\u0006�������'V�`c��`�\u001b�-��\b�B+J\u0000yo�fo�5\u0018e\u0019�s�rK\u0006`h\u0011׻������O\fmlU�T�\f�����\b�B�4�$gF�0�e�E(�1�km:�\t/o�J��\u0000^I\u001d�B\u0014m�\u001f�Z�d5\u0019c\b\u0019̈�s'��R�\u0011�\u0002\u0002̞���K�^9��o�k���t�\t%��+�D.\rVK��R��%6\u001b\u001ar=�ڙu �ғ\r?S�R\u001f�y\rܼp�#�0\f�\u001c���E韓q�\r�Zl��R\u0018��\u0019�R��ۧ�$�:��U\r�%@\u000bBO�)�Ŏ0�\u001d��\u0016s�9�cd�����n�\u001f(�5M=彅�4\t�\"Jځ��P���1���H\u0011xE\u0010bb�/s�9g\u0003>\b�{o�����?�\u001b�Dx�A�!u�P���\u000e��P�g�q�I����z\\+o��[Ao\u0012\u0007��\t\u001c%�>��\u0013�O�\u0007��\"�C׀�)�\u0003y\u0001\u0002 ��]y|�\u000e<�\"#�܀�ߟ*\u0017�4A����m:_�\u000f/�\u0011��}��}\"]��\u0006���o�I/�Z�Ԣ�.��M\u001e\u0018��Ŭ\u000e�Nb�I�'���n�u�\u000f��u3)c7�\u0019p���k`<�|�\b��\u00001�%�3Q�\u0006�$��5�\u0011Csg��Zi�G�M��lc�!I\rb�(\n�*��I~_\u001epFP\u0006>����G��&�Xr�\u001c%)F\u0007�R\u0007~3T<��\u0017�i���\u00009\u0011�\u0000>�󾭨i�g��Ӽ�y�\r\u0012�\u001dz�����A�,5=\u0012�u\r6K]v�!���i�D���T\u001e�3���D�e�G�9a(r��f4l\u0010h\u0012\u0007��{\r'n�t�KU�X��q�W\u001c8�\u0018�\u0000�O\":mv�\b?�,?2�\u0000�\u001e|�5_��O����'\u001b�y5��t��3D��d�x\"��|�\r����\u0018�\u0019�\u0004ȌT\u00054�'�#ع�;\\O\u0004�8�\u0011�\f��\u001c2�\"ň���E��\u0000�'d{Aٱ�\u001c���\fbO\u0016�\u0007���\u0007z�b�����_�Ϙ<����R��z\f��:?� �?R��/�\u001dV�u��Ԥ�r��]�E2�f���\u0019��\u0001�� C�����\\�f�\u0003�\u001c������\u0003�ây�����\u001f��\u0000,j:���iڭ嶐c��D\u000ee,�\f�\u001d\u0019�#\f+CU�\r>\fG/�@&����q���@\u0004�_�k�-�?:�:���-��\r��+\u000f9%�(����G <�c<\u0019\u0000�����Y�\u0001-.I�@�A����+\u001e�R9�c�3�\u00107�>הy��q/�\t#i\u001f[�\"\u000ec*�{R�P���c� ���d����,9?|#�=lQ�\u0011_k���\u001d�ˏ�\b�9o��G���O�u��\rs��K\u001d���\u001cQ���'\u0005DF�&\"\u000br��=3��{E��Љ0�O#���g��\u0001$G&09�U^Gv\u0010�M��\u001c�\u000b\u0014��G�AY��#�tjR����:̼f\u001f�7�:�� J�(\u0016ҦO���\u0005G\t*>@\u0002w\u0019x�c;d��a�Z|��\u0014�>+��9\u000bUe.\u0016����]��ȁ�`��&(��\f�d�,{�bUЄr��� \u0019l`������(6�\u0006�\u001a���-\u0016�&�� O��c��K\u0018���ď�cy��oR�44�~9\u0007�zw�vN\u001a��'�\u0017�{6��fyV_P?1��#���\u001a\u0007���D�V7\u0016�H�E~�\u0001���F)<\u0012��~\u0001N�S<�\u0000�{3?f�\u0010�F2�\u0019F�^[�=����]7i��0q\u0002\rJ2���˘=\b��ޝ�Sj�#i\b�ys��jԚ�x��LҚ�w}HJnϤQ�\"K<��\u0003�\u0003@��[�ԡ\u0019\u0018ȃ䎻�nd�[�Hd\u001c\u00122\t���'_P�\u0011D\fWp{���ݢS�,�K����\u000b�)�U*JC$�\u0016�]�\u0015\u0005P\u0001^��M��g�P���ˢm��y�`8\b\u0015�o[g�H$\u0015P���N;��U�7���Vג�o�\u0016�4[y!Y\".�\u0014�,\u0004rP���7J֛�=r�G��y%v��:u��G����}\u001aG!\u000e�\u0017�)^^��#~�ߥ=�\u0002�r�#!���^���}^��\u001d\u0003�:CjN�aK��m�JL\fQ�\u001cQ]\u0017�k�˾W,\u001b����9\u0011֛\u0018�D\u0013�\u0018��'�m�R7\u0002#\t��?��\u0002����\n�0��l2��Xjֶ7Z���;�b�Ks#(��)���Ȓ\n�>\u0013���d�aÓc�6�#��tڌ��\u0000���K�H��L��K;�R�\t�&'�\u0010$��M����yX�y���Z���!�}TbA��W:��w��WMԯt�QG�\bӑ����\u0015S#�\u0005��mm�hVkKk�\u000e=Gi=6�)�trB�\u0000y��1W�\u000eq��l<��O\u00111\"$CU��\u0005}D�B���d�!�+7�\t%��\b��xZ���z\u0016�6��'�\u0003\u0017�s#��\u0005�\u000b�5�a��[# 8�v�;W^�u��qse��\f�8\t�;\u0002,z��D��~H'���kxf������eG���2�{��\u0011���\u001d\u0016\u001a/\u0006\b������J��:��y�4z��B\u0002\u0000\u0003��j�;\u001e�*��\u00169\u0003~�+{�H��s��\u001bԻ�u\u0018.�\u0019��cy\\��\\$�ւ)\nʬ\t�!%H;fx��\u0013�U�~^�Ⱥ��c,$��\u0004�\u0003[��\u001a4+�>/4�ҥ�.l�-c:�7�����dK\u000b�\u0018$R%���kq!\u0006EVS�\u0003�Ќ��ԁ1d�d\u0000E������e���\u0019bI\u001bW.b��(�ξu�-�־b�a����n���n\u001a_��e$��TR�\u000b\u0006��]\u00062E0R6jgQٝ��O\u001c�|<��Q��\u0006�\u001e�����;OE\bBy��(d�����\u001d�t�S�\u0013T�����\u0017�%�i�|������w%ť��~��;HD�6�\n�\u0006���@,w\n\u0001\u00145\u0019�\u001d�۰�xY�c�p\u001e��S\u001fϏ��y���z�\u0019�C�\u0012��\"H#�w�%ϗ)s�M��ݮA�H\"����X\u001e�'�|q�]�\u001980*C�}��x�c���A�j�QOh�\u000f�\u0016���ţ�zG�.���\u0002�\u001e�k\u0004�=�!���_���͏�9G^\"]��]��1�!�,\u0004u�A��~��\u0000B�-���\u0018���\u0004k\u0016��\u0003e\u0003��������d9���b4��\u0014_����-JX;F\u0017v��Q�k����`ḩ�ž�M|F|�\u001a��ڂ��\u0010IH�j\u000eg�Yd\u0006�<;�ͮm\u00068�qxy��E��l��\u0019�\u001f���Yz���-\u001f�\u0003C���#.��[�)�E%>\u0016V\u001b�\u001e��ś.�'\u0014I���`�\u001c\u001e\u0016Q�=ǽ��\u0007���|��yj�k�$�Ή{�y\u0012:�!=j��o�z�q�\u001c��\u001f�<�����M=\u000eM�\r�'�\u001eY�%��h�-�0����AS��w*��:\rN�\u001e|���b� �/��6º\u0015��*𹃒�o��T�|\u0005s_��H�v�;���\u0006�UT���/��?��~S�֑ix�RԌ���G'���^�u\u0015?HΏ.hht�9��oy��2\u0011ɬ� \u0000�\u0012�m���`�X����W�������u��qq#\u001eL�I y\u001d���!�S9NL��I'���\u0011��4��6\u0007�>�o��DӢ� ��%@v\u0006�\u0017�A�/\u0007w�\"\u001c r\u0001�w�q ����P�E^�}��j�eY\r\u001d���\u001azܐ�\u0012���8�;u�l�ӱ��Qzk��6��\u0004�yT\u001a\u0016=)�:���\u001d�\u001b�D��>��\u000e��OedQ��R\u001b���4� �:g!�\\#�C�{\u001e̔��.`��e_�~d.yr���\u001csL�$���\u0018P���»�\u0019��\u001aS�ՈV��v���r0 d;\u000fǗ7�'���ծ�f��#�\u0012K\u0015\u0015��5�M�=���Zx�G\u0018\u0015A�-vs���\u0016܇���\u0015\u0004��\tndj\"(\u0015=Cw��2f8�tqqV9q\u000frM&��p�J��jޝ[vQ�O�ј�\u0000Hw9��Jp'�蓤��$��O V�\u0000\u0013JS�\u0012(�y.=�r��}�M��d�u\u0004%W�ܕa��zeu{�gm��Db2\u0000��EE\u0002�3\u000e���o��b\u0005��\u00155��\"�\u0001V,(õF��b����ޢ\bR��}b���\u0001%XV�w*<\t\u001d�\u0012�\u0004�e\u000b�����$�����P�\r\u000e�|�g�I/\u000b<Σ��\u0001\u0016���j���zuĎ��G؈�Q�c\fȊ�\u000b��OJ�\u001c�V����# y���/2<>�\u000e�8��tj�&�r\u001b�\n��O\u001d�,�:�{{F���@Ud��N\u0011��F�Ĩ�\u001d\u0010��x�1'���k�\u001c���\u0012��-�l����d�7\n90VB�~�\"�\u0002N�3\u000f,/x�-�\u001bH\u001a��Z閭,rEo,M\"�}\u0012\fA�\u000b\u001e;�\u0007��c#TM��\u0007���9)���H.t빴���\u0001����[p}t\u0003�'n����3\\2\u0000ŮB#pxg�����2�W꺓�g�XF���>�Q�/O���\u0019���4\u000b5�o:/�,D� ӷZ����5#N�X�m,b�Q���y�Y]F�Z���anG�\f��\u0006�\u001aTTfn,�>�l\u0017Q�� x��FyO�>K;����-o+�~�<�����޸��\tC���w3����˃Q�2y�a�y�W�򵽶�h>�����\t�5�1\f\u0004�+�\b�z��K�\u001e��r�?'7_�ͣ�u\u0018�ZRn����ޛyw�:o�-c��u~j\u0018��H�}�\u0007��#�I�W��ؤ��a���c�a��\u001a�n�G�>�U�M_1*���\u000f���G�������|�aw����A�|��i�f���\u000b_Yɣ�ZF����킯�I陽���\u0019\f��\u000e������\t/�M��q���\u001a����-\fx�\u0006��G�K�_�[K�\u0000�X�kY9,�X�+�@ \u0006\r�™�\u000e��J\"B\\�_岉r\u0000���L�?�4+�x�/e��B�j����|~��=�u�.;\u001b�X�.lY\u0001\u0007{�y\u0017ھP������#}b;\t��\u0013�����ݪFsڑ��\u000e?�ڽ��\u0015�\u0017��g�]y�\u001dgD��Y���L��\u0006ǜ\u000b\u000e�ц��\nŚ���s��\u0007�=?��)\rՒ��\u0002DJ1\u001c���\u0000xS�Ϳ\u0014�7�\u001f�{�D\u001d���<�����̅xM9w\u0003����i@\t�v\u001d�>,\u0011�t�\u001d����!\u0011���O�)���_�mt�a6�A�-��\u0003��6�A\u0018\u0015���\u0007�:����8�/�$~�\u0006�pdz��D��#��1���-��� bA����pz;N�Ҽ�տV{���iLG�����x��1�?�\t.UT���ޟ\t5\u0003����y=C��h\u0010GW���adbK|L{U�\u0006��޹�Òï�@����\u0007�B�\u0000S���,4+7I5m$�����q��ȚCyu \u0004�H�\u0014\u0001�F�F���I��H�2m�\\��=���\u0019d�\u00017�;\u001b�\u001f|�_~_�h\u000bq�&!��C\b��d����/�HR5E<��H$��\u000b���q\u001a�nmI�3\u001aӉTb:mw�|�N�\u0002 xp��I'�\u0003���n��|��+8��ZL���\n�������\u0001��P�h�mm\u0015�#b�\u0000@��\u0012�\u0014j&��_w��/��\u0011;�\u0010�G\u0015\u0003\u001dǖ�ˠ���΋����Xy�\u001d?�i��ae��E�$}[�3\u000f�r�׸���I`��Aie\u0015\u0003�9��,c�$yl\fI�6��=��+\u0016�Z�\fF�efD�#@\u001a\u0002�\u0006[_\u0015r/q�'׬�Ԗ�Nך�I��6�=9����Q��}�$Cs'\u0018[�\u0001\u0017�[�#\u0003U #�\u000e#ϸ\u000e�y~�n�\u000e9f��D\u0019N\u0000\u0013�ky\u0017��ە��\r��5��\u0017\u001a_�4y\"�\u001b;[�ԯ����e�2M�\u001dV[ʳ\u0017XP�2|D���\u001aeD��\u0012v�}��5�}��Q�%\u0019e�bb8�\tl\u0000>���\u0013�yDr�ug�麅��4���\r\u001cV��#��*�X���q\u0002A\u0019Ҵ�[e!���\u0012\u001a�����L`.���v7ϗu6qN8���L�\u0004euq�'�qVc��ǚ>�_�����\u001e\r&���KW�����\u001f.\bxh�U�9\u0005����\u0011$��$\u0004�R�l͜#\t\f\u0000K���H\u0017�y\n�c������U�y1�R�c��k{�\u0012v�J\u0014#�V�\r��i�\r\"���RӮ�Vy�Q\u0015�z�z|��\u0011;\u0014c,M��>��A��J�jl2\u0002�\b��4A��\u0007N�u�V�B9<)N`衴�\u001bȚ�\u0003�&�\u000f���\u000bJ���\u0012�@�.�\\k~T��x_L���u�/S�%�4r��\u0017�����\u001e�����Y�g�\n��(8��,Z��!�#(�\fk�6\r��N}ː�O�\u0011��#K|s��п�$\u0010\u0005��#�D\u001dߏ����_���:��ڇ���7�'�d���O���6ך��\u001c�C�y<�ǖ�u��\u0004.�\u000b^we�p�@�u^��N�\u0010\u0010����\u0017(�\u000fH��A��(��'���k{{����3�i��eGnD��\u0000v<}�\u0017�;?�\r��,��\u001eb�S��݇�'�\\\u0016�}\u0012)4\u001f8�X*�y��7R\\[�A\"\u0015f����\u0010T\u001d�\u0011�\u001f�>π�c�\u0006���\u0007��C$Gv��{���\u0000���\u001f\u000bQ虯��\u0019_(��\t;\u001d�\u001dϘ����oi}qg�[ϣ��rI\u000e��j1�e{c �{y�.�;�WW����3��\u000e���;匝�7\u001ffߤr}C�}��j��P\u0012=/���}\u0019�~hY�,GQ��,dO��\u0005\u0005��߂9\u0004|�H\f�ˆN�Ŏa�\u0012)��\u0000�ɥ_����]\b��n�\f�\u001a5D�h�v@\u0005~Y����$.�Kb�� \b\u0018�\nI*�\u00052\u0015\u0004�O٠;�I\rg\u0005o���x��y��\r�t��j_��^^�&7�(Y\u0001NeM%\u0011�\u001b*�SZ��1v���ǭ��d\f��4|���\u001b�.jzs2��T�\u0006WB�\u0000�j�\u0001\u0006�\u0006����:|��1�tuy;;.3B�\u0000R\f��\u001f��t�\fR>\rN�q�)�\u0001���� ��h�3@��ʏ��ܯ�X�\u0003\u001e\"�\u0013F�vZ\f\u0011�f�v6�Xqe\u001c2\n\u0003���Rg�^\n����j�E\u001f*凵2��~|�Dz�KrMy~��Eӑ���KP�| �\u0001��LN�S!�\u0000�A���-�t\u001b\u0017.\"��Q��B@$\u000e��+M�q�hg�\u0019�\u0011�g��g\u001fI�9y$s�������\u001dh\fUe�Eh\bߗ�g����@�>n�}��\u00182\u001b�$\u001f�d$F�T��^�\u0005H��G`v��hW\u00106<�q����I��H�\u0012��l�����S~�vb�D��;9GK\u0018�[�K\u0019��\u0014GE+J\u001d���(z\u001e�\u0013��9�-��G`�|�s�yWV��tyM��fH�X��BXz��H��o:���\u001b�����ᖛ>�N�`�#�������ϣ�\u001dF\r���\u001dA�\u0007��7~��/��o�\u0006����-��\u0004V���3)����(�h�YJEc���u\u0004\u000f6�\r.m\u001eo\u0007&�?L�H~�����\u000e�\u000e�\u000f�\r��=c��qEj�tQ\u0010͹@��Ӂ�\r�\u000e�\u0015��)���J��<{\u001a`��*��\u0012a�Χ�\u0006���@\u000bFh�.(���\u0019�\u0011��fG\u0017�ە���\u0003���ȅB4P�7\u0004'����S�\u000f^�(ؕ5��M�������ڕ�l�Yl&��hQD�̲�<�8?�\u0001O�3�1�s�a�\u0019����*9Eǟ�|\u0003���y�@��M������oag3Gˋ��/\u0017�Qvj|;m�]��E��Ŭ�\u0017�Q;�=�\u0000\u0005�k�j�b2�\b�ċ�\u001b\u0011��{ѾN���|�\u0006�\u0012iz��[\u001b�\f&\u001cyHt���nb-�\n\u0007R>�|\u001d��\u001a�\u000e/�Xˣ&����1�'�<�vj�uy?-�ޯ��$y��\u001eR\u001fo��_+�a��M�����a\u0011�qM\u0005�3�^*�Q��z\u0006 ��\u0015��������7wP���\u001f�.�%Ŭ\u0013��ď�\\G1\u0011���I\f\u0010��\u0016�\u0003(.\u000e�5N\t_�w��?��!�ǒ\u001cWÛ��ߪ�\u0000��R���:ǡk�\u000e�dҵ}\u0013P�;�mK�7��Cq�<\u0013�l5}\u0012ko�}>qI�c*�Ɩ\r<3G��\u000fA؎U\\���}�uR��\\\u0006C,M����{�\"\u000f���w���\u0000�q'����&��?�_���~k�~���QԄ���'��wgjҬ�hO(��\u0010��U�\u000fٞ�Ϩ�d�j�ǭ��#�O\u0019�e#�C��;���������f.���\bh5|W\u0000*8���GH\u001b\u0012��\t��!�\u0007�<�6�<\u001af�h�M+\"��\u0011uF����\u0016z�$Tt\u001ds���U\u0010L��K�\u000b&��W�qC�\u0017��\u000e��k�m\u0002fy�\u0016��[��u\u001d��\u0003���om~�)Y\u0004�Dl����:\r\u0006�:r%��H�yw|]v�g4Lq�1;_��~�~_y��BM>�ku��\u0004��K�uKt����Z�{[�ko���������]\u0012�զ�\u0011C��_���xv�+?}��7�r˧�Lx�FS�ߑ�Gw[�\u0015�>��V�d�E\frMj��#�n\u001a{g�ӵ1$��\u001d})`[\u000bk�ų���֗(ܗ�\u0014��\\&\u0013\u0015�n�\u001d�|yp��ӹ�\u001ct�'4\u0000���u��1�I\u001a��\u0017��\u001f�q��ǨY�(N\u0011�~���$Bn��\u001dWI���V�t�6.�H� l�p�H�6�PG1]�cxٖ\\�x'�\u001d\u001d,ɩX�v9\u0011��p�ޛ����,59,��&�4�9,5�$F��H���\r��\u0014���љe�@\t5�,�ɕ��Q�k��\u0000�\u0007ox\u001f���9e��đ��\u0011ߵH�|�\u0014/��4�<-���<\u0017�Z�r��L\u0011,0�z:�PYj�kj}(!���v�z�(�S��W\b\u0011�\u0003\u0018��k��߿�A�/\u001f\u001891�F�D��3�DK�\u0004��93�/1\\�i�t2�P���K\u001bM\u001a\u0014�n�\u000bHG�\u0004�<�\u000bmg�R�����6�Ă�\u0013�#DW\u0010<�\u0017���2��&�!��\u0011)φ\\�>��B�w��$򷙮$�����m�M7Y��t�I��{5��q��z|�\u0004��Ym��Z\u0016h�G #v\u0007/.XLG>򈇨���p�upa�x�\u001d.2bg #@\u0011\u0001��>C�W\u000e�}\u000b������C}k\fp�^Y��V�y\u0018�+���}>\u0016��\u0004!�Ճ(�+\u0010b7�2\u0012����\u0007Q/��a�IO���\\#���vGXn\u0007+;�;�\u000bj\u0011Ʋ\u00194�h�e\u0015���n�N���%��w�g����O��%x�`T�a�/��ۆ6yߔ�Xu��Dd8�\b�zb\u0000\u0002��o��G���a����k����?��FYl�����o��q�q$k{h��֓\u0004%�eSؖΆm�\b\u001c\u0000n\u0001�~c���N�X*P_Ԧ}/N����kp�Y�n\u0000\u0012\u001d>�\"���̚0����i�W�}��^�vx˜x}�\u001d�D\u000f�|�.c���ݥ��^��\u0018`�ɤ\u0002��g� W\t���h_�1y]������F� �9.����h�J(gO�UP7$��Q�~=E���FC�����2�oK\u0004x��y�|ɇ�\u0000+������k򭆛�y�AҮuhQ�l���k\u001b�[�J��q$m$�]�\u0003�8�����9H\u001c\u0019'\bs1\u0004�李��}�.\u0003�c��\u000b���\u0012}�E��>����\u001df�{���R\u0017A\u001c��$���\b ���'�q�\u0004|9D��\u0010�=��̆R6@؎��\u001f����\u0019O\u0014�\u0012���\u0003�w�3��P�xc��/�k�&[��ߦ��G��=�\u0012�\u000e?`����ğ������r3�z�~�U��5 �o\u0017_���W�o��|���d�%>��hQ�ƞ\u0019���\u001e||P5*yc�ˣ�×Ռ\u001d���^\\֞;X�7��;�^��\f�� %2\u000b��2�\u0001\b�0-��\u0017֔#K\u001ap$���#*��\u0003]\u001b�<\u0019G\u0018����\u001f�~M���O8i\t�\u001ea/�1E5m�����.���\u0019O�����h�\u00105�\u0005Hl_\u000f~~�i�鿖֚���p��\u001bz��Ĉ�6=k훭&\u0001\f�m���u��j4x���.�y~-���v~i��p~ij\u001a�����\u0017RC�D\u0018�mŘ4��S��3��y�j|8\u001f���w__�O���zQ�\u00185�\u0017���\u0000;�����kg��6�~�c���4�\u000b\u0001J�i^���U!��f�\u001f�=T���\u000e�\rƇ�Ȯ=x။Wg�\u0002~c.\u0003���I�}�ߥ��>b����~�\u001b� 7��S_c�e�~\u000e�M#(m��/��nb��%\tr�\u001b\u0001�\u0001�\u0011��1��N�\u00195G����4d��h�~��l�_Io\u0014��(^Mi��ALcЌ��\u0005�\"���R��Oi\u0012sx'���eư~`]S��\u001f����[(�#��*�\u001d�ѫ�H�ߝ��ݓ\u001c8��|����\u0000k�o�\u0019��\u001f1�����rW�ޡ�\"\b�jjOC^�j{�k�~o\t\"\u0004�\u0001�b�a�6��\b ;\u0013$�V���\u00056�\u0019^Y\u000f�r�sl�O\r������4R���\u001a�`�S����\u000eBQ�зc�\u0004�}���1Q�~ʵ)]����\tʤ{���dE��[I+��@\u0001N��=���v7��\u000e#�$LV��Y�\u0016#�������\rP\u0007�6P\u001b��.t`�9��+�\u001f\u0011��{\u00103\u001eUϫ`2�(�\u0007o\u0001V2\b�\u001a�\u0019�J\u0011��7'�#�[8��E]dx���\u0004���\u000f�\u0001�$ӭ:S#�\u0013��w�A��a$\u0011\u001e'� @\u0006��\u0013�>\u001e\u0018M��;�d2+2�\r\\qCơ�5ZֵR|0\u000e�ܷ�L�H��\u000e�����~�m��o���+�r<�=���I�Oi���E����Ԫ��+�v#�A�\u0011�/\u0019����#~k\\�72A<�\u0017\u0005T4��!ޔ~$�\b2��h�\u001c�\r��<\u0012ߑ�}��k�/3$6�\u000bln\"@\u0017�*�M\u0017���8�x�U���\u000b�w��2�\u0019Տ����\u00001y\u000emB�\\�n#�\u0002��\u0005\u0016F\u00000F�\n��`���\u001a���j{:S���^o\u0005���SM��7MheG5�!HZ��iĂ�;��\u001c�1q6���X�Ò$\u001bN<��+�y\u0004%ṉH�B@R~\u001eDQ�C/��!�\u0014OFxsN\u0006�>Od�cK��kV\b�\u0003��º3|\\X\u001d�i�����\u0006���\u0011�\u0002��l4ݣ,f�\u000b���v �\u0013�Nj}����/��0�V���\u001f��d��[���~�c2�1H\n+3R�U���Fd�Ï<��F@�7�7\u0003I�ϣ���Ӂ��b�\u0017C��\u001f�����\u0003ͺn��\u000b�K����.��D��d�MC�mBX�-����y�\u001am�Oe���Ίg,�\u001dd\u0007�\u001d����\u0015ۙ{G����1FY;;)�Ln\r�\u001fMr7���_�6�^Q�3���o��~��\u0000NY�K\u0010`\u000f\t#ٌi(\u0012��КW4Y��O����\u001e�\u0000�W�ŪǬ���#�\u001c�?g��\u001eG���yo��]\u0012k�\u001c~h�)%��\u0010T�y\"#����/\u001d��i��ǐ�s.�>�x�8�1\u0013���\u001f.\b15�\u001bW��q��V\u0014q,��->Y��6z�\u0000��1�������B�\u000b��\u0000��\t�x��4\u001e\u0004�1����Lz�B`J����^�V��G\u001c\u0012����Dl�L�>&��@{{f�6�x�2@s���\u001a���y��Zu�GQ�1��9\u001d�\u0002��z�\u0000u��34\u001a��\u0004Ϥ���42D�5����\u0000-t��oN��'���\t�n�28RW�.#��_��PH�(S����c\u0013Ξ�aksmd�\u0010��B����\u0019RP}2��T�/�\t�ճ\u0005\nI���-K˞n����F\u0013t��o�}����9�bˏ6\u0018��:W??'^a(d��}Ϸ�����\u0002�܈��omu\u0001\u0006�\u0017\u0000(k��W:�˙8\"\u0000�M\u0017��(\u0001�F�Kp���_3\\y?�pK�\r>����q���2�\u0016���! �PB��c�=\u0010���t�ކA�o�u��K\u001fg\u0011*m\u001e\u0019˖8�\t�y\u000e����t\u001f�=\u000e/,鮺���GR�~�\u0012E2�\u001ec��i�i�7�.��rx�ri�'8\rj��\u001c��;\u0018yB?͏��3�v0�\f\u0013\u0018c\\@z�|��@��\u0007�ګM\u0004hb\u0011��\bw�\rk<���~�\u0012H\fr^O\u0014EC\u0011E\u0004��`F�,�\u0010\u0011>�6��'ɾ\u0011�\"e+�̹y\u0001���_���Ŕ\u0011\"�mqw�Ck��\"X��u4�!SQ�-!����Ӕ��\u0014sQ�\u0017$���R�M�\u0016{�nV�18�\u001c�\u001f�2h�=�\"�\u0015{��^ۢ��I=���F�\u0006����}�b�u�)gV�u\u0019\u001dO��\u0000GKf�$q�‘ۢ�\u0016��,����`\u001d����=D��v\u000e�9�Ǘ&\u001c�3p��\u0019\u001d�\u001d�\u0000�\u0013\u0001[\u0010\fw\u0004��٬u�y�9��U\u001e��n4�0���D���v�]\u0015yf\u000fm\u001e�glѸt\u0012z��q\u001c\u000bU��d�%p�75��;��?�,'�&\u0018��I�#�\tTl\n��\u000fN�G{;��Ś\u001b}sR�!���-�4�n�q\u000e��V�_\\-mi�_ܮ�}s\u0015�󼃏\u0002�\u0000Rs\u001e3�fS�L�nb���\u001d¹���i�(�Ň\u0017\f�\u0018�\t�N�1\u001dA�\t3�+�Т\f��\\���\u001d��\"k��ƞ�\u0016��-'��-y\f7\u0006Hn����\u0004��6�\u0002:3a\u0002;\f��H�w;t#c�wPy�9r��rqj#�;F<\\����XĎ\u0019\n\"�:�_mSQ�Ҧ{K8���{պ�\u0016�Ǧ�Z3I;ۈ�k}6\u001d:'tZ�\u0019���\tȎ��\u0000\u0010��{�q�;��G\u0017\u001f�\u0013\u0010@�� �F@��1?�!��'���<��\u000b\u000b�[Q�,��n,-��t+Y�m\u0016XG�>ŭYV��\u001b�r���T��$�\u0000fx�G��\u00033D��~�=(�d\u001b�[(�>$�L�pÈ�c��4r\u0001w�*��Kz�\u0014\u0017�O�G���\u000f1�^O&�\u000b�\u0004q�����Ҧ�wqlUom\u0005�q1WE�3k��\t$S23\u0001(����V��@�6�\u0007\u0014�\r�����3#��ǜ\u000b$p�oq�yB@�\u0004�\"\u0007P��yp�Ix�\u0018�]5��\u001a��[G��-���2�+=�4�\u000f�#i\r�\u001b��p�\u0019�v���ʹyo�о���Êr��3�*�@�\u0000(�\u000b�\u0003c\"O���\u001a|����}��q��[4�X�M�YO,\u0016ϧ�\u000b\u0000�D\u0011����f�+�#�\rz�NdL������6�/�n�0�\u0010t�c\u0013(��\u0006��5���\u0003��y��Y�\u0000���\u0000�C����\u0017\r��i>�f�)�y�Lx��6Z[Z���U�u\u0004T���K�\u0002�Er�9\u0010��Nak�\u000b��B>&H�z���\u0010.G�`�g\\��\u0007�eٝ��\u001d�kO�dӂ%G�\u0003�k�\u000e��(\u0017�W����m����;V��C��p]B��k\u00147��X\u0019�\"���A��L�\u000e��C\u0016\t�f���\u0010L?�\u0007x\u0013�#ϣ�]���|��\f��pL���a/�\u0003ΏJb\u001a?烽��v��ܥ›y�uu�Iٝ�}��3��{/�\u001d��B\u0015`ݏ�{�/�:l�\u0018�_�v����S�u�-�I��b�/%f1������{t�D���2Gk�v���9���Œ'�ticDp\u0004���CPS�3~�\n���r��ԁ�A��GS�;\t\u0004Q:\u0016��k\u001a�׏\u001a��\u0001̗�\u0012\u001bDz��2�\u001b�\u0017��y2&3�!��Q�h�� ��\u000bP\u0010D�&�\u0013B\u0002�\u0014�z~���R\u0002��|\u001c<�\u001cYG\u0010�/��w�\f���MS�!\r\n��Ё�\u0004�x�A�Z%��n�S���\u000eI*�\\D�x�ܰ%� |{�J���r�\u0014�x9#�^t��˹N*\u001fb~ɧ�@\u001b�=�~c\u001c\u0005\u0003f�`�-˾�\f\u0005��3�V�¶��X\u0012\u0007s��|Yϑ\u00006�q\u001b\u001b��(��I\u0012)��\u0000\u0006ɰ�ֻ���ƙD�\u001eF����Kn�mi\u001d��\")wߗ\u0000jFޢ;W�\u0000n;�#,�r&����O!hx�Ĺ>��B\t\u0018���B\u0004mѫ^���'-L��'��X�\u0011���0����W^\u0005���Seߏ�F��Q=Q�������J$��ЁVWA^��R�C@\u001b�G���|�q\u001d]�=\u0018�Otxo�\u001b�5m\u0012��/��e�Uy%�$~���݊�q\u0003��\u001a�;�\u001e���b�D��8���=��>n^,R��e�H��|�x�}\t�?i^dX�4�NՒ0�ݥ/\u0005���v��);pj2ҙ���i�\u001cnx��X~���Ŭ�h�J�����~�.���\u0007�uf�ƪ�\u0015j�@C(�u\f\u0001>${W\u001c9\u000e�\\�r��bţ��\u0013�>��&-\b�l��w�\u001d��J��?\u0017O\u001c�\u0000\u0011��q��_#��\u001cRƪ�N%BQš�![b\u0007j�| Q\u0014��M(��\"�ϑeR�(��Q�!�(`���r�\u000b鳏��~w�%�󾫨�}KXV�b\u000b\u0018Y&V�ݺ�!\u0000a^~��,1\u0010�\u0007\u001ey�}\u00127���f��P�X�?%݇\u001e�B@�\u001f\u000f���ٺ\u0019\t;�e�O�E�̇Ԗ(X\u0016~.��L\u0000��M�\u0002F��)��Q��b���%��Γ�;I$��%Ԩ�eX؆�?��)�`\u0000��4���\ff2A�yƏ\u0016䏛�2i\t�`�`���m��S���ll�BB\\�݉y��wc�\u001a��݃�0��������5�Ȃ>T�^�v�=Odaѝ�KQ�\u000f(�&;������ն��^�O\u001c�\u001aS5�6��7�i���xe\u0014S^5\u0004S���:LC\u001f���|�Q>(\b\n���痵��]\u001e��\u001bk�+ԇOՠ�&sl��oIuF� e<�����YU�*�N�$����9+i�����K���6m�� ���t�4iZ��ݛy5-\bj%4���y-�͡]�XIő�$RA�3#Œ\u00027��ֻ����d\u0018p�ɓ\u0015pO꽷�k}��\b�^���e�}m\u0016�P��6�-��\u001cD��[�m4�}�ݺHn/.�l���G䪭\u0002Jc��7~`J\u0002Gi��z|��8�=A�9Di�\u0002f�;ne\\�\u001blk`H��Z7�R��:=��z&��쮮f�W���\u000bNXk�'�r<2�ݽ�Oާ�������c��O\ro���!ɖ��\u0016Ih$\"#���Dy��<\"���B[�����\u0000���\u000e�O��M�ߒ5Rm?H$1i�y^���\u001b8�����Α�&h=Y@v�T!\u001b�\u0000d&xL�I�����F�:��pj��c\f5��%�p�ҷ1�٪6\u0019��3Ήwism�K\r���f���\u0016��ϣM4��[�'�-\u0005ŝ���\u0004tT��G�hm�3Ǿ1wFF��:\u000e�lz��Ǚ���\u001c�Tj\u0010\u0003rA$\u0019\u001e�@��\u000fRӼ�F��y~����lntK�����ޝch�Ƃ�!Hmn5�\u0013P{x����㚆�S)\u00198H��\u0000h�@�jG��\u0013ϧF�\u0019O\u000f����b�k\u0012\u001d,_[\u0011�{�g6�iM\u0003[y �����[�{}y5��iz���Iom-�i�]mn^627׊\u0000\u0006^\fŽ#\u001e3(�\u000b���m˦۸\u001a�28�9\u0006<��.�ۈ\u001d���o}���v�ZlPɧ�pu+�慬yji\u001d��Ģ�#��g�XMF�p�,��\u001cW�AޘF,���*�c� lo����nj��KS�6Ẁ�g�1�J�c�d\u0013�2\u001c�;Р\f��Z��l��/�\u0018\u001bL��y�Ĵ������\u0004w\nfI\u001e�� Y\u00079ב*69���,r�ӛ\u0012��������g�Ōx�\u001e\u001e�@\u001d����\u0000�x\u001f�t�\u000e��[Md򮋨�����{8��8k���\u0018�u����$\u0011�wj�GK��qHBR�\u0018�b7��Hy�^\u001d��\u0007\u0004eq$\b�<��\u0013g����\u000f.�b�淋R�Ӵ�2���ִ�as���ȥ����\u0019���x�\\�\u0007Հ�5#;\u000fe���{7�8�G\u0014#�8�K\u001c��,I�B]��Gn\u0012-�}��m7lir�Y��f\u0004���\u0004�@�����\u0004\u0012\u000b�������������X��Q����w\"K8o�;c��;T��X�\u0013iڵ�G4.\u0006�%:��\\����]\u000e.���&��|C��lvFI`�v�}FxX����\u0017�7Vv�ӛ�9y�͟�7v�>e�&�d��H��ExR�L��b*����T\u0011�\u00002�=��J%�\u001cD$M�\u000f7l{\u001az�a��)Q>����\u001c���w똑�����3�\rL\ff\u0007\u0013í�'�����*�\"&��@;\u001f\n\u0011��#,8��tД�d8�r��慵\u000f��#�v\u0004w\u0014޻a�\u000b�7g�Pcu�9���\\7z\u0006�c;���oMN�b\r\u000fߛ���c�3\u001cã�,�Z|�ɸ�W������\u0000>n-4�'�B�1�j\u0006I53\u0004�\u001c\u0016��d7\u0013P�[�ͯk�#��ڌ��x\u001dO��y��ҝT�g�����|���_��S�kk��U<�>'\u0015,OZ����6\u0014H/J0�{u/��nY�8Ʊ\u0004(�ֻ\u0014 ���f�5`�2\u0013\"�S�\u0003���\u0012E�\u001a��O�\u0014q�*H\n)M����@���-�0�;�[�\u0017�g��י��W�2r�B�\b4����0r\u00197vzi�3\u001eq�>\u000f�t}f�J���ꑲP�aJS�?,�P3��;HHB^��\u001dS[�\u0000�\u001f+i��sq�Y��9\nfJ�\r6\r��:=FM�\r2:�.!œ$@����ߝ^e�v��i�}���mD����\u0005���\u0015�؎%���P�ُ?g1��F\\@�>^J=���.\u0002���S��\u0013�u��\f\u0010\u0018��\u0002���ɓS���O\u0014��ɍ��y�V�\u0005���\u001dyd��m͉�5|������ۥ����\u0005ZףR�;����2'��p��1\u0002�?6^�p\u0016��L \u0011��nA\u0000w���J]o�~8W��&�͈d\u0001�A&��f6IXr#�\u0003\u0005�\u0017\n���PF��\u0004\n�+\u0006�+�F�i6{*@X��\u0001������\u0019�~\u0002�O4��N�ǩ�Q�қ\n�w\u001d�\u001c�E�\u0001\u0001N�э�U��|\u00047Ou\u001d��q\u0007d�\u001aߒ\u0011�}9\u0018( \u0001Z\u001d�o�� ckW�J�\u000b��\t��;�5��ҽpX�\u0013�\u00037��\u0012!cC�~�\u0003u�u`N\u001d�\t'z\f�D�\u0011\\ė2,\u0005޾���*Ӏ\u0005\u0006��5�W1c�(�ߪ�\u0013���,���T�)(J����@�\u001d��`D��a\u0013���cV��]KY� =h�@zP\u001e�w�-�i���E�5]\u001a���N�Q�����q�P�\u0011�&�C-w�r�\u0013�\f�\r��(�\u0018�\t?V?'?5��\u001am���m*ʑ�\u001a�\u0002z�Z\u0013�\u001f���3��h�9\u0019cz���?\u0012#\u001e~�bv��ޮ�����0��iK��\u001b�!ZT�H�Qz{�eɋ�4�g���\u001b�\u001e��\u001el����ԛI�i/6����J�Y��\u0004��v��]�!�Mæ��0�ZsG���~-/�>U�\u0013ѻ���\u0018\u000fN�Fu�\u00014G\u000b���\u001a\u0013�lx��ʀ.��>�.����m�\r�+�v�� �X�$�7�->�doZ�\u0006�\u0005\u000b�ػ�\u001e��DN5 >��i���Dc�&\u0014���EhH;\u001e����8�\u001f4�h�!Z��*�\u0004������\u0000)�6�\u0010}��$>���|ͭi�F���Q}Vf\u0010��n�3~�?E�{�f�\f�o\t����[�Î j�<#��\u0016\u0007�\u000e��3ycJ��X��\u0000J��G���zM:'�\u0015��T�x�+\u0019\u001bs�9��Ç43d��@�\u001f�u3�ͦ˥�\u0004ġq���>5C��\u001b\u000f�5����C.�:s���ֶ���9�H&Z\n\u001f\u0011�7&�e\u0004��\\a�\u00069�3\u00101c��>C�Mٵgh��L�\u0011�\u0003s9\u001a\u0000V���帼���+ː5e���jR�+�s�H}[�Y��OtͿ�3�3j%��-F_�fI�w\u000f*\u001b>���8�~�:Xs\u0011�\u001e�\u001d�|����\u0016�\u0018 I\f���l�\u001b߫\u000f׵��\"g�$$���\u0016�cd\f��!��\u0007%dnj@�d�]�C�_�sl %�����{4���������\u0004���\u0004\u0007�ɬ��Z�\u0010�<���2�O \u000f�\u0002���3!��T��6/B��m��4ee-��\n;8\u0007���\u0001ћ�\r2R�\f�� ,g�2��=}ϵ<���m�Y�\u000e���d3RGP�r\u001f\u0018^D��4Z�\u0001�8�d�:�\u001c9D�;\u0002��.�\"Ӣ���\u0015���Kc�i��\u001eaH\u0015+֔�fYH��=@Q�9�aQ��\u001e|�}k;��@�z=d�\u001f�hkI#�_���\f�<$q\u0006�\b4Y\u000e�k�_�Zj��U,�1W\n�hh���˗\u0006C\u0002E}���\t\u0001!\u0017�.�\u0005ݧ�\\�R�NkG%�\r\u000b|5�����G�7��ڏW��B9�w�S����o��E�\u0000�[�G��r\u0006���K���46QK0\u0007ذ\u001fIΟ��'l�_͌���ݥq�c��s�m���]����\u000b�\u0017��$tڭ\u001b��{T��zƚ~�=�)��+ۓ���t�Zu��\u0013Yt�&j��HV��P)J�\u0012��=x���\u001fH=�=�����������\u0017�:��խ�g\u001e��4mM���۫գּ¼y=9[ZT\n3�h�k�?1�\u0003��\u0018��t�:{�׼��\u0004<\u001e,��IF��;\u0011�/��O��[i:\\�)g��ssq��6�i$\u0012\u0005k{t[�(\u0015�5\u000bP���`K����<\u0006�\u001b�?c�%Z������6k8潲ӹK\u001co{pߣ���B�Y�Vi�YO�\b\n\t&�c$Lx���>=�@}��\u0016\u001c���\u0006�\u0007s]xv�{Y�zw>��|��'U��O���\u001b]9�ڌi\u001dܰ\\�ZE,w\u0011G#-�zl3�f��ff�$n2��\u001c���\u0013\bt=I5^��\n��zlÇ&\f��!\b�|�G\u0011\u0010�Txd.Vw��I�!���i�c��c��'�+�-)o���'��LԚ��Kn����k���cV��\u00161��}�a��3��T\rmT8��F�}Gqss�\"\u0010�i����\u0004\u0001*��.\u001d���`�\u001fN�=\u000bO�/|�����o\u0002���t\u001e]B�n<ׯIy�H�\u0018���g��b\u001d�y\u001a\u0015PTP`��q\b\u0011�\"���P�1և O6���\f�\u0010�Y.;X\u001cd\u0012\b�\u0018��w$�T\u0007s>��\u0005Ƨ\u000e��[=�ͽ��ݬ�<�E}-����^\\�Xc[�Zf�p$��\u0000�\u0002\u0013LG\f�6�!\u001b5�˯}���x\u0007�D\f}1��X��7\"\r\u0002\u0007!\u001a#���{�\u001d2��\u0014Q��5��uu7��/'��f�R�l��\u0012Xn�n%��zj�����f8�\u00141Q\u0012 \n;\u0018��y�|���fd?3�R\u0019��ۊɡ\u0003\u001a�\u001d�\u001b\n��b�\u001f��b�ֵk��R��\u001d\u0007I\u000ee�;\u0018\u0017����̮���ފ۹\b\u0016�'�*ē}�b'k�\u001b�}v���z�>\u0003\u0014ጄ0b#��i�>���]�0(�\u0004D]\u000ew׼��;\u001b\u0003�jw��I<�o�b�\u0001awb��d���@Ю4��U��Ӵ=f����A��\u0006!�c�G\u000f>-��\u0003�~yH,�{c��g�/�L�u;{Y5[�gR��+\bcu��2���~)n�R�r;݆\u001c�\u001b2�'9˂0�\u001b�`\u0006�]}�$|@c�\u0014D�3L�txI�I��>�\"�����.\u001e��/1kw����P��\u0015.o4�k�o�t�Q��\u001dd��2��V]CP�X���\u0012F��9\u0013���\u0007\b⫏�\u0000\b��p�������\tj2��\u001c%\u0018��\u0013�\u0007~)N�\u0002$�\b�|TE�\u0019�\u0015�E}\u001aëEmy=���a���#��Kr�C\u001b�\u001a���8��$�G}���;L2DT�9e\u001bؚ�z�Pk�V���\f�x�\u001fTc.r�\u0004o\b�'�1)]\u0013q Հ@~r~lj�\u0006���3�����y�͚����C,HUo�\u001bߩ�w\u000b1ym�<�<�RK�\u0011��bh\u000e��Oi;7�]\b����A,�\u001e,1�<��BG�\b���*�v\t =g�\u001e����ݡ���RÌ�3ͨ�\u0010N(\u0001ԁ��2\u0000�I��\u0001/4�\u0000���\u0000�]�u�c˷�mM[D�N���^_kZ����^��\u001b���چ���[��4֖���M\u0012IH�K(�H�l��[��\u0001�ڝ��Ŧ�$�\u0019q�l�≌N�����=7M�\u0000\u0000mn\u000f\u0017g�Δ�pG6)�R�|�)\u000b;�j�n�\u0003���\u0000�z~sF�zߔ��e:�/֧��V��]��.-#��܈\fD\u0011R\r;f��\u0000�\u0007�\u001cǏ\t���\u0019����H��;��\u0000\u0001�o�>\u00063\u001a=N8�L��\u0007\u0015yFQ��߳��\u0017�q��r]�h����TX���C��X\u0002��V�����.�Rǧ]�\u0017U����\u0014r��.�d|��!���'�3×M\f�\u001d�q��\u0012?h/@��qo��0��\u0016��IUB�����RN5b�i�0�F��W�҇4q����k\u0007��>p�\u0004�m���ڌ�c�\u001c��%_�E\u001f�\u0018?���Z\\�\f���V\u000bK�t��!t};�\u0002��Ol������+\u0000O��\u001c�O_��1�L9l�^���\u0000C�;7�0��DZ���Kn/�\u00002,BO5�~�\u001b�v�ݧد_^�=6��Jls\u0004��0m\u001cYb\u000fZ���sc��j�LR��}�!��S�*����\"�=Q��\b*w\r$`����;���_�����.\u0006����Lo����\u0014\bW��ȥ��C���\r>&\u0003�'2.Dsp��\"�K�4q��\u00058\u0004��\u001b\u00007��:��\\��7�ߎ\u0002i]ƌ��r%@-U�j�(X�\u000e$��:��kf2Ӓ|���Ǝ#�T�\n\u0016�䊯Ű�0��\u0000\u0019)d�\u0016��G�9�� S\u0017�\u0014z\\Z2�)+��\u0019��j\ri�(�\u001d\b��H����,���\u001eEn&�*�H\u0000Q�c�\u0015ۮQ=M�w5�r��\u0003������c���1+�/R�n,��\r��\u0006N��\u001a��s!�\u0015c�&�A��\"�\u000bsVb~\u0016.��b��\u000eƣ����5 ���ˆ)\r����\u0018@�����\u001cZ&\u0003e;Q�R��\\��r�Ae\u001e�(�ӑ��ų\u0010yT��Ҡ�\u001e4pEE(s7\u0016�@Q-F\u0000��t�6k�2�ou*�*QY'$N��8EuNjŶ\u0015\r�]�K\u000e\u001c��\u0003�^\\���\u0019�\r��\u001f�i�k~_�\u0005ì$��N��\f�!UdC�[Q����֛�\u0000\u0018O\u0006lB�����c�\u000f\u0017\u0016Y�6�q�\tv�o:\\\u0015U�#�\u0003�ѱ\u0014\f�<�9\u000ek۷�\u0018��l�@G�\u0000�\\qoM�\u001b5xP7\u0007\u0002�cڋ�á�X�\u0007��&!?z���\u0000X�+(�$fm�\u0000�\u001e�]��o�|v̂c[8'\u0001��}�\u0006��hͨ�sZ����u��-�\u001c\u000bF~\u0014`\u0015y#6悆�鵺}\u001e��Q�dӑR�\u001d��.��s�p�d0�\u0013b���s�����$\u0012>��{X�5\u000bi���Q�\u0006W�\u000b��SB��\u0004����>��8O\u0018�vI�t�\u0017\u000f2\u0007��]��\u001c\u000e���\f�C���u\"\\<�ON!�7���>ODծ�\u0005�::�_�x�S�-\u0015�O��\u001d\u000f]�G�� +�;���^K���\u0019\"�ViZO�Ռ�d�K�4�ܨ\u0000\u0014��O��<�P@�\u0005�^c�8�GG�\u0014;�4����S��\u001d��dzdg\u0003\u0012(�>O\u0013�\\�\u000e�q�Z���-�5�\u0017PAye�-���I3[�F�9\u0011\\�\u001c�\tb�.$\u0011gj#pO+\u001d׽\u0012�S���2b7F2�v&G��4\u0005\u00126��[��\u0007�-tm[N��-V+)�&�quh�n��7|�b\u000f\"$\u0017\u001a����EW2��%�-ŕ��>Y��6�\u0016�p���\u001b�F.f1$C�g]�\f��(��w7\\��7D\u0011��lc(����F|&�\u001b�#\u001d�_���[�����Z]����V�DԚ��?�~��nt�V9u]?E�7���y�Ge{}n�u�h�D�e\u0015��D�r\u0003\u0019d�et#q�\u0014N� yX��j�\u001e\t�\u0006r!��\u0012�\u001e�\u001e>�zߦW�\t��uw���X\\�k~_���O`�\\V���WPxV��]\u0005�Udv��m\u001a�-�%-�\u0006qȌ�xw�s��ϑ\u0006��ʨ�\u0000\r���ő�����Ú1�.���E\u0012v\u0000\tW���m\u001b�\u0013Q�Tf[����xZ�\u0015�ZQ���`�����d{�F�y\u001a)\u001d80h�\u0007)�NL�x2�\u0001\u0019ʶ��6�?�U\u0010\u000f~�>#=N;2��\u001b\u0000�\u0010%���Q��kq.^~��n_P���[��nf\u0006u��0�\u0017���]��L�\b�SO����Fc\u001ca\n�� $\u001c��#x�\u001cP�/�F����{88�#1\u001c�1�eR�\u0012\b��\u0011�\u0011\u001b�]��=wJ�\r�� ��[��)�C}n�\"_��G�+{��{e������K\u0014�,rF�qo�alfF8d�P�5�ϗA`մN3ɚXDv7�s���w�,�\u0014��uC���]0^=��.���l\u0017����\u0004o\fV\\���sy\f��w�&���q��Y\u0001�7d�\u0007��\u000f���}��\u0015\u0007��\u000b?,a�J���٭�k�}j�P���\u0011�j*f�g���\"��\u0003�|���oK]�fy\t\t� x#_M\r�׺�k�\u0004�\u0002:�1�g������>t\"\u0005>���}>��.���\u0011\"�ڧp6��s��\u0019�\u0018�4���ș��\u000b��Yg�z#�V=�\u001bS��0w;I�;\u001e(�|�s��\u0015ܠJ?}\u001b|OE�\u0003���Feb�\u001b�E��\b�ߘ|�����\u0011�/����\u001a���ۭ\u000em�x��<�F�C\u0011��/�?���\u0000���7��ʺ��wz�\u001b{y��J\u0003J�X*&�,[�:=.,X sf5\b�����˫�DŽ\u001b��;\u001c�����\u0007����~e��[�3�{��H��+\u0017\u0016�j��۠5�E54���V�[-~�Y���DwD~�̽&�B4�\u0004G�����/�#a�S?+\"=�sNH\u0005\u0001���v�C\u000f�\u0000g2\b2}\u0001��H�3}�6�+�b{��\u001f�r��\u0019l�C�k\\7�Yҋ�ޤ\u000f��@�۾]\u0018�6X'\u0019~�]���/�&|�\u0007�u\u0019V�M��C�\u000456�v\u001dv�a὜�Dc����|���~ftH\r� ��\u001f���@m��A̜P�[�ͨ�OIE[���~n~`[�7�m\u0015��\u001f[�*\bO����F�r�g��\u000f\n#��˧�\u0011�0����\u0007߲�Y�����e�VvP(\u0011�\u0002,jX/�p)ɩ��F1����͖RfE}\u0003���c��?#��%H��\u001e\u0000�\u0018dE\u00129�\u0002ȉ�R�m)\u0015\u0014�q9\u0011�R\u0016�O0\u0011\u0016�\u0010b��\u0015�\u001b\u0002\u001b���3\u001cK�\u0012�j3�z�~�!qg\u001e��Ke����t=�\t\u0011��6;��R!g��\u0011�59\u0002@�Sj�)'�tG�ԗLTu���\n�*G}ρ�\u0002w�����]�ٳ\"�Е�w\u001b\u001d�6�\u0019�π��\r<ϤJ�CI\u0006�@j�n���)�u�\u0004�>E\u0005ibͧ�\t���3Q_��\u001a��2P�F��\u0011&\u001eV��OnT4\u0004\u00045�QM�zW�0x��\r�\u001elrk\u0015[�\u0015r\u0012�Z\u001f��\rv8a\"E�a�\u0016��Ku\t�x��UCo���=A�Ǐt\u0012D��I�헡\u001d��AJ�\u00005�\u0019�n(0�%\u0013��b�'�/�%��\u001bJRH\u001c\u0005�X�J�Uo٧\u001c�+��3������5\fKP�N5�8��\u0003P@;\u001e�o�G&a�js[�zs4e)�Aֽ�-Zr��&1<�!-�X{�\u0000�?�=���'׮�h\u000bF\u0007&\f�9\u0005j\u0003�\r��Z�\u0018�x\\�&�\\>�T\u001e�m��4(eUV��g��Gj�F\u001b���s�l�h\r{A�|Ŧ]�_۫�y\u0011�EJ\u0019\"n�h��i\u000e��\u001a\\�p�\u0019 }@��]v\u001d>�\u0011Ŕ\\$7��\u000f\u0006��C�l���r�U��\u0005ƍ{\b���{\u0005��R@�\u0015\n�8�q�=N�Ǘ\u001f\b���\u001fy\u001f����㧏��\u0019ě����`\u001e�r ����sk�V^S���Ե����j�-��%,��Y�\u0011�X�\u0016b\u00168��c_�qYA�s{�yg���(�,G�����<��\u001a�R[��m������{�\\��m�\u0005���ׄ��ܧS^�\"����3����ϻ�1�\u0014��XI\u0007���\u0004-*Ev�Q_�]\n\u0006�� ���\u001eE�Eե�Q�01\u0015�K�%\b;\u0018�B�\u0004��\u001c��!M��\u0013:���ʾs}?Gw[�nFXYU\u0018��v!��� 6�WW���I�w\u0018$c���k>q���\u0012{@c�&I\u001e@�2��\u0010�5�\\X�\"C~I^��yk�-e�5����evS�L�<�\t:�*�����\u001c z�~<�H\u0003����'�����\u0019��L��RH���\\��^�\n���=��\u0018�x���;s\t��� h�>��_���6(�妀������ᖽJX�\u0000�Я?�=\u000f٨\tk�n�\u0004\u000f��\u001d�q�b{��\u001f��̦�\u0002K���\u0000�\t�\u0007~��ȏ��fy6zMֹ��y7M�5����J�5�ۥ��/�\u001bw\u001c�I\u0002��E\u0015%@\u00145�[�u���I@��{F�X��>�k����p'�\u001c�ˣ�<��\\��!��\u0010����.�w�T��>�\u0004��I8u����Z�(7���c\u0019� \u0004���ξ��\u00002ߗ\u001c%#��O�|�u�yz�5�A���h\fv�K\u0013\u001eWs�\u0016�J��\u0014�4�>��x�͵:̠L�κs��ͺa��#V%v{����{��_2�=��z�\\\u0017�^�[2}\u00046����a\u0004��\u0012�\u0012�F�\u0015��Yy�&^\u0011\u00127�E������{ݦ\r<�d�'\u0018&\"ĉ�o��@���y��t�m�KY/&�\u001bX��P\u0002i��\"��4�R�Ү$n?Y��X�E��<�k��s�\u001b#�\"�_x����<�8��\u0016\u0007\t]��ն�&�o=��\\D�Yڳ��X�{醽�3���8�\u0000�vŚ`$cÏ�o\u0013�\u000e�����\u001aU_M�\"��\u0002�\te�Q��\u0003^`o\u0010GRyw���å��S\u0010\u0013���\\D�\u001f��\\놷 WM�v�-y�\u0019�+\r[Q��Z��m��.�nn\u0012�,��'{�x`����K��;���$,KFw\u0019T\u0004q\u00021\u0013\u0010\u0005���c��~\u0015��#bS��\u0005孤��V�6I8���^;]/��]4jd\u0017v��A<1�ǜ<���q��\u0005p��\u001e\u0013dăw#\u0001�t��\u0000�\u0002�̓��%(d���\u0010#0q��r\u0013BD�%\u0013\r�+\u0004ol��\u00003��3c�ͨ�����WVP���[�-@���K�k���T�^_�ί\u0004M3�F�fy�s瑳Ő�7F�(� \u000eۊ66$\u0010\u001dF)\fzHd�8D\u001fQ�c\u0013�؟\u00073@�\u001b��\u00121#�i��X��*{O��;8�\u001f��:���gy\u001c�5\u0011d�[\b���!{��Ie�d�%Um�fv���\u001c\u001b�\u0017\\U���[���v�'�w��4~~�Ե��y�˾N�M��t���WҮb�`�*,QX,�F��)�\u001e�H\u0015�#�\u0000�/ej���@���g\u000b�8hq\b�M�7�'���\u0019��A���<�1�kŒ�#��2����1&�<���X�\u0000��i+�?q�E�\r\u0013�Ry��0Cm�������Y���mm<šj%/��ѵ#,r\u0006A��\u001e�dnC�3v�M/g��#\f��\\cc�t߼t�[�A�{7M�\u0018��(�qN��x} �\u001a<���ڷ�������-^�B���xRXu_�v�S�0�;˧^�\u0012G\u001c�W�1N\fA����\u0019����c\fa�\u001c\u0006H� \u0001�*�����1�~\u001d>�z�>I�!�Ț>C���~c]�\u0000�Ayk�>g:�Z1�&���-�;h\"[K!��A.�\u0012\u0005_P�z%\u0001\\\u000e\u0011�\\�:-&<\u0000\u000b3�������G��\u0019����qG�Gb|���b�����`�\u000bU����^YG�\r�\\'��(�@\u0004XRK0ذ\u0004�ڌ\u0018c\f�N�ڜ�X�_\u0013�W[+��\u0002��\u000b�7T]\u0012��\u0005��ӵ�*��F�k�YQd���\u0017���\u000b\t\u0002)=\u0005:�<\u0012�\u0007���\u000bTr\f����\tU��bk�y����O\u001a5��\u001d�$\u000bR��\u0004{�bYN�>\u00071s\fq'�6�c)��C^���[����42$a\n�\u001a�Hc�Ք�A�+ӥ#$bx�E�K\u0001�\u001e\f�g�\\y/��\u0018j\r���\u000f�e֌��|@�cC؊��Ճ�p·�5W\u0016?y�Il�(ř�\u0017V*x�)�E�?Ux�{a�\u001f\b��䄗I��Z4�H�A�\u0002\u0011\u0018\u0014\"j\u0013��o�GуDŽv��X�G��^]��!cP�Ѻ�\u001f\u0002ב\u0003�\u0015�\u001cz�Z{o�Z���ɜt�#j�u����V6�ޡ=E\u0007�8\u0002%U)CƕT����f6m|D=?_���o��\"BR��{_!�$q�\u0019\u0004�4 ��;QOBY~��&��E�}��`�\u0002ok���E�\u0011\fD�Z�Ō`T\u0005\u0014�񓽒[�!\u0011]Y\u0004ztzm �B�I���;\b������~����5��\u001als�f��\bs'���\u001c�y5��m�\u001b�]��UU��-�5\u000e���n {gQ��KS9^�$a\u001e����\u000f\u0017���I\u000b\u001a<92K����y0=C�3�2����X�@U���FR)EBd�oS^����gGiK)���\u0007I��NԞ�\byp����Sy�Z\n\u0004�b�2��\u001cP��a�ʃޣz�G�\u001d��\u0000\t�^���c�OiO�\u0018�ґ�S\u000f�Y\u001ei�\n\u000b;�Y��dF��`�yG���\u001dhOpAʏ�\u001d����2��h��X�U���g\u001a�u\u001bz����m��e\u000e�d�\u001d��!���\u0001��r�G7\u0012\u0005͜r����T��i����4��E1�\u0018߄��^]$G�\u0013�oC���E�p�k��9\t�0o\u001d��'��;��B�0�b�\u001a���#uumҟ�����\u0006F�?��s�b~\u001f��l�O��e\f&\"�EH�b�-\u001cV�6bTnz��\u000eM4���|5p>�@�o\u001c��д��6֭�F�4��\"�*\u0014�3��V��dzڬ�m@�_�$yt\u0005�{E��jt�9\u0003Lj;���|�?�<�zD\u0011X�\u0013w��ơ�y�8�����P\n|'�l�{C�0j�u\u0018*\u001a��2�����C�=���|\u0006�Syt|���Ry��'�܍�|�e4M0�g�ٝ�K/:��S�\u0005۶a�/Q\t�N&1��ss�]���\f��H�ry���w'�;\n\r�=���z-O�:<\u0018#�<1\u001b<��Q-D���\u0000\u0003˿D\u0006�xW���\u0000vd�rq�\u0010D\u0019��!\u00079\u0014\n�\u0007SN���D\u0002%.\u0011��<�Щ�����`\u001c>6��\u0013�qS�\u00007S^���\u0006+6\u000b�Ϝ\tQ}U�i�������%h�G[�:1�\u000boU*��^�\u0000�C\u0011]��\u0000\u0007_<�Dp�/���PE���%�ա�\t��w{�R2\u0012?���h��\u0001VD��C}��lA�z1��4E�����\u001f5�n�Assi�!�T���Og�P���e��̳^ܣ5����&\u0004\u0000V9�ǹ�������w�c\u001c�p�\u0000��B���Ms�oc򟙴��I�i�`�t������q8V�Q\u0016�%Lځ�\u000e\u001cB��H!@�4��p\t��|:6����`n\u0005���>r?6}��2���ik�ܛ�6�/0�_���Q��3�j\f�2�e�i ��i\u0010�L�7\u0014$\u0010\f�+�<�u��\u000bG�\fljc\u0019�@X?��\u0011W΍�44�b��Q�kk\u000b�\u001a��]&��-���t�e�f�ӧ�io\u000biZ�W12Y��5)W4���9F@B�s'����C\u001c�Q�o,hJ��\u0011d\u000fv�P��y��T}+T�Y[��- ���u�y4�\u001dI\u0002�Z�w\u0016>��^jMy�A+�n_\u0018��\b��\u0012\u0000 \u0019sۨ�]~ּ`B�\t\u0011\r�\u001e����\u001e�g�捶���\u001a������o�Z��N\u000bau�yNx�\r���m��\nY\u001b���wQƟm�f8�?\u0013\u00111�\u001e�|��;����IJ\u0012��\u0013�h��2�\u0000<���p=�]Ҽ�q�iڞ�ک�\u0017u��w\u0016\u0016�p�\u001c���~���L:U��Z]�Ŏ��4��4\\��\u0001�ߎ@�JQ��$\u000f-��\u0011�+�o}\u0007,]N3\u0013�\u0012c�q#�xg�y�.�1\u0003o9\u0007���gy���q}bҭ��G-�v��~i�5�\u0007�\u000b����{�h��,����S\u0019� ��x�\u0000a�\b;w�\u000f=ϑ\u0015�����G&��3;��\u0002*�\fv�^���\u001d�O�oa���,n�ѡ���O,Aq���j\u001e\\�~���U����\u001b�Z�H��C\u000b,�\t��\u001b�ĵ�q�cFw\u0013�\u000e�U\u0019L\n�r�\u000b!ʄ����\u0003�1��;�G�\u0011\u0001�JG�nn�zϒe�Z�M\u001aM��D\"O.���6\"���D��k�[�\u001d�Ķ\u0017��'��Mv�W�\"�rrc�\u000eL�!��<��y#�\u001a\u001b��1��\f\u0013ǎ�8��!\u0010\f�E�Iۄ_J�՝��M�֝�co�jq�����x�fiu\u000bMb�-E�\u0005c�MB��\u00163:J� JQ�\u001e�Y����=2�?��P��*�o�nL3\u0019�QÎ�\u0011\"��j�\u0003y\u0013�\u0012\u0005�n��4\u000b�3ye�g]2���F\u001dR\b���w���\u0006�bnad���\f�9�nؔ�5\tm�\u0019\u0018J&\"@\t\u001a;\u000e{��]�~�F�\u0019�fa�r���Y���\u0002�\u001fQ��ϒ�\u00001�\u001f/��y�Ȟp�}S�z��K�>�{\u0005�n�罶k\u001b�b�}{�Y���ol� \u0000+ۨ~aH\u001d\b���\u0014�1�\u00117F�y��0�Lxre�\u001cx�Db/s�w0o�+`+g��\u0000�\u001en��8~C�h�\u0011iڇ�.4+�$y�M2�k�v�3��n���D%�\u0005�j.�'��ʏĊ\u001d�l��1�\u00112�dx�mR\u001c��\u0000\u000f>w��Ç$�\u001c�@F0�|�ym�\"���u�T�\u0000ϣ(?�,�\u00002|�����?$�������-��g\u001cQ�w����]����SJӼ�#���Q����c���L�/g�\u000b\u000fd\fQϟ\u0018�\u000e\\�χ~���\u000f���\u000e�~�,��]N\u001d@��%\\X�\u000b�\u0019\u0000�BȌD��(�I~��N�\u0000�'~H%����+�5�5�\u0018�/1y�F�z�GJ]E\u001c��DA�Pg\u0003�~��M��=N�Q�\u0011�c��ݶ��\u0007�����a<'>�\u0011��x꺈�\u0003ʢ��.�J�\u0016��\u0014q*�\u001cq��b$�c�5\u0001\u0015B��Pg3(���\u001c˻\u0019%\f�2��{�O0�������\u0015���c]��ex�K\u001f��˽�m\\���O��<�i�����_�k�YM��\u0007в���$��AD�\u0013��9��I\u001fDE��t��t~��U�Jyo�Ť�As��E\u001cz��!��6ޤq\u000f�\\@��̸G\u001fM�n�p�$�BG��ѵDfz��\u0007�����C�\u001e!\u0012�!)F�Nꮔ'u\u001cH��G�+�ߐ�'\u00161���\u001e(��/�p�\r@���e&}��c\u0006�xG���g�Z9KWq@\u001bz\u001c�\t\u0017G����\\�\u0013\u0015+�J.��~��PH_�\u001d�\"����'%�\u0005)�&��n�dc��\u0016��T�45��~� ��L�E�\u0000���,ELr�(+�@zUh2�}'v|�\u000e�XM�L�\u001cL�\u0003>�u�j\u0015j�Zo�>�\u001e]\u0011�'\u0002ѭh�����7�\u0003q�]�O/�cjb�V�)ķ-�`�\u0000x���,�An2���\u0012N��\u000fB[儛���\u000b�}��A���\u0012YXOp�7tA��\u0001�h\f�`\tj{\u0011�Mv�J$�9;�\u000e���\u001d����WS�&�\u0005撒�\u0004EbUD��J�=����xG\u0018�Ð�֜ڃ��0\u000b\u0015�#Ξo\u000f�^��j\u000b\u0016�\t����8e*�U��;(\u001di�=3`{:\u0019#�����ng�?�Dww=^��7��ͼi1�xx*�,=A��<��i)5�:f\u0014�Y����!��\\¥U�~��K.������aGw\u00134%�^=�}6\u001b5\u0001�\u001e�8��S\u0006����Xˏ\t\u0017wV,{���N�tۆh\u001e��N 7�H�\u0003�2\u0013Ò4@ݖ=V\u0019�#KuMCX�?�c1�X��+D��=C��j\u001d�w\u0003p\u0005s/\u00141\u0018�\u00150��ɨ���X��_�IN��\r6��{e���4\u0005$\u000e�!��r���b,~��\u0003C�G\u0016H��4y���2a���{�������\u001e��\u0000�^k�'�5�Z��<��JKX]^��%?R��z�;�\u0019~�)�xxgC��\f�Y��c��nU���ݥ\f�{h�6�7�⼑V�\n�Pzxf�6�(���Ѻ\u0011�a�m��~h�K4\u0016Z���R(\u0015��ݔ��.\u0000�'�Q�P5FCq��[D\u0000;\u0001l�O����76��W�\u000f輈�T\u0006^Hx�Hѱ��!�=\u000fLD��s\t�\u000fI���.���b\u000b��pL�i��h\u0006ǯS��Lߚ�9�V]R�������!�6�|\u0001\u0007���S\u00045�=z(Mg�xi\u000f��_X�Z���Q\u0011��\u0000\u0000�g�{\u001d�ǩ�����G\u0017�==�\u0005�:ib�\u0004P�4{�\u0013����m\b2�+�ăv�g~\n�:�ā힜2w�\u001fc��=\u0018��5��u�/~ZۻV=Q,�t\u0012_�̟Y�\u0018\u0012�\\�j�J\u0007\u0005�\u001eU��2�-t�S�I��\\\\1\u001f�\u001f��I���\r<0h����y���'�70�t�\u001a}�W\u001a��X� ��,\u0010Z[E-(�\u0014Q�\u0004nH��B\u00019nyp\u0019H� lр\tƀ\u001cW�Ŝ\u000f5_�7��Ē\r#L�Y-t��D��^M\f�^�r��q$�[O-\u001eF�Q\u0005\u0014\u0003�͔��#*\u0017C�P\u0015��vx�\u001c\u0018�\u0018ܣ\u0019\u0013[\u0003+6\u001dž�\u0006��\rUV�\u0019�Aa\"[��\u0000�屎\u0018!t��\\܆��*�c\f> )Q�ҙ\u0006�����ϓ}��1�z�\u000e�\u0002\u0007v���ݘYj\u0016���I.=u��K�^\r\nY�_�m)��Y%�� �Ia2��z|�E\t�i\u0019�_U���\u0000W>�$N\u0018��\u0004Y��U���s�E�Y���yf�\u0015�t�,D�0Z�\u0005�Gy��,����\n���w���!&\u0010[��\b7���\u0001�m��~����\u0013\u0003\u0014�J0\u0000�\u0002��4\u0006P/Q�޿����鲉BOm��\u0010_$�����P_\\�\fw&[��F[g3�\"�H�ȧ\u0015V }&Vc�!�������\u0019\f%�8�\u0011C\u0014�\u0007�$\u001b�|$�<��A�>K�)l!���\u0016�6�&�\u001bXLyE�������$���[mN�\u000b;D\u0001dS\nD��Gb��(�JX�r\u0000��\b�\u0006�\u0013���\u001eP�58��\u0005b�\u0016BE�r1&&<Ő\b�m޺�W3ͩ]A5��eq=�Z&�&�M��[\r:x��+;�~W�$J���\u000f�\u0015rxO��8����\"�$\u001a���v$s�g\u001e\u001c\u00076o��efB�\u001b12�3\u0011�8f\u000f\u0010\u0007z�L�R��\u000f5j:��9��a������҂���MK;h\n�֠��p��T��&�8\u0018�\u0001\u001b�\"@�YX\u0007�ʷ\u0007鉪$m�w�ܤ�r�����\u0014s�c��y�\fh�q\u0012���\u0007�F\u001du��.����*Ip�w�Y��G�h�����moa�\\i\u001a���>��:��p\"��\u001e[w+�2��\u0018��2�V@�7�\u0001��O!��:\u001d�S��S\u001c�\u000e\u0003�\u00139qd��\u0019\u0000\u0004c8�6?A�^�\t�K;�|�{�/\"�\u001ec�,�Z�~��4�-�\u000b}6��G�m7O�\u0017/\u0017�e�MR��{i%�I\u0004\f�V��ʗ���c�y\u000e#{��z]\u001d�7��\u0004\u001cML�d��d2�\f�5{�S�_\u00016a)�qQ\u0000\r�r�|?����:-�QOa.�c>��֫\u001d�\u0011�Qۆ�m\u001ex����$d\u000eeAw\rYȐ\u0006�\u0006\\`��0�\u0010\u000f8�A��nWF�q\u000e�\u00190�\u0004j\b�Elx8xMp�e�\u0014I��D�8I{��\u0007�-���y{ʚ��5]Z�WTME�\u0010bԝ����Z��~�n�|7M�@\t�QF�� �\u001b�Y̶\"<@\u000fH��5�\u001c�_���t�e�c�NP1��x@��\t�\u001b\b�[\u0011����!�?��O���˯ϟ.�-���\\k�6rY�cU�/��V���5ƠLՄ%ե�\u0016��T\bУV�)��}���4�Ϩ�\u0006�&�c�����\u0011˥�<�E�:��χK�2dž�|[\u001e)oG�\u0010�*�n�n|��o���-V�I���R�#y��K�7\u0019� �ю$����\u0015b�\u00101+@i�U�^�`ɖ^61\u001cǜ�@��cȟ��݋�\u0000\u0004���a�\f9�t��\u0006K5\\���\u0000wY�\u0012(�\u0000�#<�a,/qiun��G�u\u0006xX��\rq\u00131���C\\�d�\u001f\b63\u001f��A{\u001c?�R��7<\u001cG�9?Ⅳ,�\u0000<仿k�J�x�2<�-�G���Y\u0014�jdg��\u0010\u001e.<@_�((\u001b�\u001f\u0012C�h�8HyR\u0010�R;�ay�0\fL�1�\u000bs\b�\"��X�\u000e�zw�\u001c�uqΒ2恟ɳĪ���nd ����D���\u0000^�O�\u0004��Y�O���2�|��H���\u0011'�\u0001\u0004��=\u0002�iZ�\u0000eR�)r���v!�V�_�㜇X�*\u0001�4B���-V�\u0003\u0013Ԋ\u000f�12�\u0019\u0010I!��\u0018U�5��h�h��U�\u0010�>\u001a�\u0001�d]���B8��m5�\r\u0000���z��$V�J�U�|BYJ�%\u001431\u000e@�\u0006�2��\";�\u001cL�\"%Cr�U׵k�0��ޘ����f�����\u0012�񢳝����\u0019���zOfhqvv\u0003�>��\u0006uD�y\u000e��|���W7kj�l�\u001c?�\u000b$Gϸ��5�ٌ[[A*I�\n���b��=\rh\u0005\u000f�n�\u0018\u001f ���\r₹xm=IQ��Z\u0001���l��`~���Au\u001ej\"d����I{r��g�����}Ā\u0000+����$>\t�p�Y�oy~��R\u001a8\u001c\u001a�}\u0019��B�;\ne�\u0011�&�̃�\u0015K���\u0003�\u0015&���)\u0002�\u0010:Sl�&}�\u001a\f�\u0001Vz��U�\u001f��u6�!���g�����������ᩌ�\u0003��k�#M���pj��\u0003�w\u0018\u001cǟ1����m�{8��i?�O!�\u0003�'��=��K]R�S��lne\u000e��h�+\u001d͜�6,��\u0014\u0001ARW�sy�7U�<9�+�\u001b�{�n�S��4z�džF��*C���\u000fZ�/&�n-%eq-\"y% �\u0007hk�ץ)^�e�]\u001dj#(݃��W�P:Y��S�n-ͺ?\u0015?\u0019^+�r,OCA����a�HF���HNV9Z\u000f�ok\u0019��\u0001)\u0015�\"�~]�\u0010��o\u001cȰE\u0003A��4\u0010��Y�+�\u0014\u001dw��6\u0000w$\u000e�12�\u0015\u0014�\u0001��vR�\u0010Ơ��\u001a�\"��ր�\u001cb�\u0004��Jx\u0010�!�\u0018\u0006J\u0013�@z�Q�\f��1L�6}�\u0019&\b{\u0007��\u0018�Qs|�Z�I�'�9���\u001eBiT\u0012d�&��j�!�B��qF��2\u001d.�W=���z\u0016�t�f4�{�xe�*\u000b)\u0018�qv��\u001a[O\u00194ӯ�%ف���\u0019�\u0001�ߣE�ʇ�s�O+�sSM�o-����ꎖ�7�\u0000�g�z������\"�\u0005C\u0006�T�%�p�;�l�1.\u0012\b\u0000\u001a�7�3+KE�5$\u0016�\u000fVY�9�m�\u0019^H�\u000b�{��\u0010��t$\u001aҫ���3\u0006$O�}��E�b��\"�k+�on���$��\\+\u001b�\u001e�\u0018a�����a�\u00175���ЉRE\u0000F�\u0016�Nc\t�m��˔c8�Q\u0000ǿ��G�q��Qww\r�][�֡��I-t�&�/=���x\f~��{_[��&Wm� dc:\u0006'��ˏ��'��\u0010<��ݸ�uC�\rd.�m�R8�5\u0018Z\u0016�Em\u001d�k\b%�ܡinu8�׭��\u001cL����H�\u0007\u001f�c\u0013^��\u001c�*���ƹw��\u001bL`Ԣ��1,W\u0013M\u001e�c�jW�,�u�ϬZM���5԰�M2�P�5\u0014�N�\n��\u0006��2�M��ۺ�Ah\u0018��G�\u0003�Q �Nj�\u001d�\u0002�\u001f*�ɼ��H�?����!��Q�+�����|�ܫEu\u0004w�J�X�Ak,�凓��A\u0001\t���\u001b\u0011�\u0018��~|���ڌxL&b%�_��q��cȎ��z��<�u�kN7w����1Cm2X���\u0000G�$\u0006m\u0002\u000f�ʩ`\u0002@���q׷i\u001a��4+O��CIӬ5=:��\u001d;�}f��n���t�\bo�ƻ��2��\u0007��� f�\u0006iH�$�:���X��C*5},��V<8\fc+�@� ]\u0012\t>��\u0014yG{\u0014+��\u001a1��u-F�\u001b�k{�'D�N�u��[յ��H�{��-�Z��\rY��n)?\u0017H�aT�fb�\u001cQ�\b\u001cs�@�1ߗA[W/���\u001cy�rH��u�\b�O\u0016׾�.\\�æ�\u000f���z_�<���\u001f�,��k��z|���}�v\u0011I�Mw�X]Gk\u0004�\ty\u0003�j034��P�\u001c\u0005Bs&2~[&L6x@6\u000e�'�� ��[N(�\u001a�G0�\u0014��\u0006$F\u00117\u0011{�-Ƞ{��\u0007��m�wZ�t��,\u0004�4\u001dB'�Z'��$���Kbn��\u0016����E�����\u0005`�ר�LN\u0010\u0011�2���\u001d��\u000e���9�1�,�2��\b�MQ\u0006�@�dO#ʨs~}�zM��W����?-Kag���E�)5�c7\n-�?���\u0011|٤_�,��[�w\u0011>�\u0007&r����m�:����q\u0019\u0018F4DF��\u0011�˧-�qtأ�J\u0018�9\t�zD�d�\u0016y�`��'���\u0017�r7�ߙ?��s�q(ҵ�!6��U=\u0018���\u0000//m�K�v�(�-��\u0000����=^;p�b��CںS\r\u0006)�\u001cN��Ž\u001f!������\u0011�\u0019B\u001cC\u0014�\u0011\u001b��\"��V~\u000f�\u001b����/$f�n,�\u001e��c\u001e\u0000\u0003��s���\\\u001d��|P�!''S�=�\r�I�C\u001d٭vG=����.\u0012`9��D�3\u001b�5u�Ob�x�%4��`rQ\u0011��������!�k������n�~Gc�S�3'\b0��p5��\\|F���͏7G�i׷Sα��\u0012;H�\u0015\u0014F��;Ӧn�p\u0004�\\�#gr\u001f�o��[�r�U����忕�\tWB���^������\u0018��G^��\u000bӶ�wkv����O�\u001fޑ�#�==��\u000e\u0006�G\u001dV�j��\u001d�IHt��ǝ�ې/���\u001d\u001eE�@\b ҝ����\u001dr��^\u000f\u0011&�@ϥ�bh(\u0007�N�P����%A#\t���M)$e��Pt=��CL�\u000eN\u0003M91��NO[��\u001a9���(�\r�ǭ(\u0005{fls\u0010x�7\u0018ጅ\u0011����\u0007�kt�G_N�()Q�z�o�f�\u000e�3\u001c2����5\u001a\u0013\u0019qG�����n�m�V2p%w�|T\u0000�?\u0017cL̎@\\1\u0013�\\߾\u001f��N��?'l��0\u0016�睤{�x�\u0004�`�zQ!m�5G�eၖ#�n-�\f��\u0004��[ �\r�}��\u0015�2�+F�K:�r��V'Ğ�lrD���<3\u0007m���2�b45=@;���\\��/s�|!�6��䚮�\r\nА\u000fs�4��.�mш�vU���*���\u000b\u0006&�\b�^�\u0000�*$\u0002�\b�����2Oe�\u001b�9��|����,�T���l�\u0017\u0013�:8y�3���.�iO�~���w�d�I#�\u0010�}�B\u0007]�V]����M\u001d�`\u001cR�Qz񻶒BP�d��!G\u0003�f���شWו\u0000�:\u001e?i[n@��׶RH�N�B[�iN�� �r\n�ǐ�� V�{�2��4��\u0001��,�|�\r�\t\u0001�Z�Љ r@��?\u0010�wڟv2�~Lc! \u0007P~,�{��c��^�UK�\u001b�<{\u0000r��ͶG�\u00026�m��$^����+B+��6���zw#t����VDST\u0000\u001d��\u0013��x�7L&}\u0006�1�J��:l�A\u0004#H��ڢ��\u0004}�%\u0013E���$�K<�yh�\u0014�|\u001a8���v&�\t\u0014����OQ�_�J1�\u0003\u0019�\u000f��Iv���Փ㉇�\u001b����\b#b�2\\@\u001f0�b�򫴦�F�0\u0012�C+\u000e���J��L���M�aA0d\u001b��x��@S��_|�wy2�\u0000�2=6!\u001c\f�!�\u001e4\u001e\u001d\r\u0005{xd��\u0011\u0010\u0019��5\u0019,�`�$z���s٪\u0001\u001dw?qʤ8�\u0007��eR�����!�Int\u001b ���H��H�Z�)�%d�8���Ô�����.��\u0007\u0001���3_̏�}\u000f�\u001fO7zA�K�\"#t\u0000�;P��\u0018�\u001a��hu�ts���r;S�0��y�\f�U�<��G�����r���jY/��Y��4�\b\u000b[�(\u0001��T���\u001a�I\u0007m��\u000f\u0010Q�my2\u0018N�����~\u001d�C�yX~c~f�\u0007�v:��r���m���&\u0006þ��\u001cd�'ܶ�Xh,�*\u0003<�\u0002l9!HV\u001b��y�1�vzXY�\u0002�L���+{K%���I�G;I��e��!�'l��f;�n�NG\u0015�]%rj\u0017\u0017�%h�\u0015L�I_����\u001aq`�o��\\�N^}vv�\u001d����ݜS�`��\u0004�0�@\b�wX�ػt=��fH��6\u001bv�\f7]��U���ci\u0016�� �Xד*\u0012#��7$\u000e�\tHP\u0004�~�Cr�$\u0017�с4��J#H\u000e�\n�q�\"ҿ\t��cK%y\u0016�U]\u0018�V����.,��\t\u0004�V)�\u000eD��Ą�\f�z�_n���\u001e#���$n��\u0017Q�%�ǭi���qS�ĢM�^c�B�z�(Z�98�+$\\k���bb�0?$���\u001b\u0011{\f�ZI�RVR�I\u0013�!}A���_��t�&�\u001eht\u00042�S\u0003{��}w�w_�������n����ug�u\u000eA�6�\u000bW��@jMi���|�y�}\u0013��@��$rW\u0010\"�����Kq�\u0015��?�\u001d��p\u000f�h8�V�]�-~�vo���h:S�\u0006_\u001c��QP]e�$r%Nۏ��u#m�j�f,���Æ�Cɬ�#�\u0018�\u0001�R\u0005Z�o~^=� d��\u0016\u001e\u001f��O��1C\u0016�\u0005��\\M+5$cON�\u0000/s�k;J\u00123\u0012\u001d\u0003��W\u0007\r�z^�\u0016\n�-�$�\nի�\u001e\u001b�k�\u001a��>S�VH\b����ΞwӴ\tѣ�d�\u0005�5pʿY�vg\u00144�*��:?`ġ�.I\n�������\u001fߎ��\u0001�~Gh�{&�b�y�;���02�<2+�fRU�zm��=C,���v\u0012���<`��x�?Td\u000fɃ�\u001a�u�ͻ��b%5h\u0013j\u0017)e\u0002Q/�\u0015ya���9\u0015d\u0012/�S͚��)�e��Fk?��W��y�3�\u0006��y��{��{}\u001d��������[���~�6��Gl����\u001c���ߍ\"Bۑ��fN�'\u001d_@Ӧ��\b��\u001eդEc���\u0015ܰ�=厔�^6WI&��m�\u0015���5�|l��\u001cH��$�y�_;\u000e΄qU]_26z\u001d�����\tm���V�����\u0019{igw)s\tHc-!AH٦*�~*�N$�dl\u001d��Nf��1\u0011�]\u0002o�ܯϸ.:�����7�oc\u0004am��8��-z����\u0010���D�ϦYW�& �\fC�u}/�#6Lt%�\\_`\u0017g����4���\u001f��z��\tu�9^Q\b����:C,v�Wc}\u0014\u0017R�����x�~�|Y����o&�4Sk��R_�>c�ӌ�¶��;B���^\u0016׉42�����_��p�\u0018�&�\u0013.����c�w�\u001b>l�Vr\b��b#νDJB�\u0018�V�O/@[Ia\u0012i�S���Vf���\u001bP�[[��\tfU�;h���&m/��G�7� !9�Zl398\"e���ymG����5ӗTv��\u0016���Yp���܌�r\\y�DK�1\u0004�P�r��J�=��$���M.�S���\u0016��it�f�̗:�7��֯{�DUe�\u000b�Hܶ�lx�\u0004��DA �ݸ��\u001d��߳��c\u001e\u0013�'�2�d\u00000\u0011\u0013��,�[�\u0004TI\u0002D��|��_:j�]�f\r*imy�;�$����m���\u001d���M'\u0017\")\fe��A���x�-\u00112h\r��\"\u0007p��Kےus\u001e\u0010�q\t�\u001cEJ�r�61;�Q\u0007�\u0019\u0000M�����4\u0010i\u0017��7�k\u0002�Eӗ�\u0017\u000fa��+$���m-���e�2��汓�r��f��i\u00069�3���\u001c����ܨs\u001b��qi�\u001dg�\u0000N\u0007\u0010�����\u0011�0��MP�Q��ߟ?�7ڇ����Ր�\u0016zmީi��[�\u001a}\n�H�V�X�m�\u000b8�K�f�\u001b��F����\u001d('\u0011\u0013��\t\u0004P\"��\u001d�s�˖�'\u001eK�\u0018�\u0018l=f[����Y�\u001b����\u0000�ߝڭ��\r��l��\u001b��Il�F���~�pd���\u0012�K\fh��7��rZ���\r��]\u001cs\u00031�'��F���%Ǫ�\u001e\u0018�y\u0013�ϟ^*�\u001c�?o7���\u000f�Tv��,0�o<�Dt���\u0010�/Q\u0015TEM�M\rCl\u0002�+���\t����ǭ1\"�\"����T�Ӛ/N'Y9�h\u0015�G\"��V�=6�Zm�4��p\u001a�wzmL�.[��]6\u0016�\"b��ғ\u001f\u0006\u001f����YEH\f9�jM\u0014\r��$�\t<�v8��n��\u001c���\u00129!���yTG\u0005�d���v;!���3Sa�3���~�8z��\u0000J\"�_K��,.�m嫋{�nn4�V\n*�`��$�g\"�f\u000ehG-�\\:��^�F\\2�M�ϤR��/��\fHލ��EM؍�v\u0014��$r�0�l�\u0000@�a�OK�����\u0004��ƴ�vS]�ሐ�ⶹL\u0000aՔ�Gy��I\u0013�\u0011+\u0010�\u0015[g�KQ�P��~}3+\u000e��8yc(�9�;G����\u0016�B�Y+';g�$m\u0016�\\\u0019\u001f�nR}���3e�VD]v�\u00008ɱt�\u001d/EX\f\u0016�ѲCj�mtB\u0002\u0007�K� H�1�k�\r��\u001d�̑.\u0010�\t\u0012@���EX,l5=8���B�㔖��K�_ۘZH\u001a������\u0001Ƅֵ8gR�'�\u001fwO�<^\u001eC\u000f�d|\u001d�D����o��_Z��}p\u0012\u0015F�4􈁐���\u0013��\u0014����T\u001a�e�w\"�b��\u001cUc��Լ��\u0013j��\u0000%�\u001e�\u0014�Oslm~8\u0012\u0004da\u001e�6�΁8|\n��Z\u0011D���*�s����ǟ��=\u0017�Z��V��Z.�%�85[�g��.�\u001a1,U%�\u0000z�Iȡ\u0002��15\u0003+�,���e�≪��Ź-����Z:-ݵ��mq!\f�b��o,��\u0019K�\u001a�mo\u0014q�\u0004|D����6\u0014yW�O6���\u0001\u000b�\u0007�Y\u0007��uR��{�Ŋ�\u0004���\u0000J�b�(h��Ed�+����(�!b��Q^8�p�����f\u0006B.��*ۯ�^��\b�\u0016�!\u0001c���T��uF���t\u000bt\b����諪�\n\u0014�DR�ǐ\u001fE�l3�\f\\dTG?w#������L�!��W����\f02�i7z���M�0]�\u001ce�-���7�d$�\u0001\u0019fC×`h��=�n.\u000f�i�lP<5B��\u001e�\u0003�o�t�>�W�.�s�k\u001d����u\u000by-n�k;�{i���quq\u001f�-.M�\u001fX\u0000�|\b#/*�9X�)f��\u0012c��\u001e|��nK��c\u001aXCP#�&v�MY�q\u001d�s��6\u0014�?/kڦ��Oa��\u0004ڊ�\t�y�\bd�7��McN��Th�U�3j�\u0011��S��\u0005 dc\u0012�9�\"��.���?��l.��\u001e4a�\u0014�`n/�#\u0011Ț��\u0007�;Ut{�\u0000�|�>��-\"��Y-5��ӟZ����jw1��W�f���z�o,��n~�%\u0012�B�����3�U�?y�Ȇ��\u0000�\u00038��\u001c�ȍ�\u0003�̏�F�T;��Ia�LR�\u0011\u001f\u0017\u0016�\u0003��&;l}3 �o�������K_�?�_9h�v���\u0010k׾Z���e����?ܕ�L�J��Y����A\u0010��P��\u0004\u0003��^�f�b�r�jDw�W��������{C\u0004�jrFb;K�;�\t\u001b�^�}ܟ�ߔz�����Է�\\Z6�\"ؤ1G5�w�dw1]�Y^F&�����)�{i\u0017�YO\u0013�2��ugM��\u0010G�W��l<#�A(m\"\u0001 u7�t?\u001e��o���W�7�s��n�\u0000H��?�o�!'��\u0000,9�K='I�ciq���(��<���5����X�3Y�\u0013'C�gŔ�\u0002�s\u001e{�\u0017O���\u0002!\u0018�9J5�ho����.֬㿷��h'�rGW�\u0007¹�ÚX���~�}�\u0000�\u0011(Տ� 1���[ȵ4�\u001f�@��\u0018�dK�s(�#(���o�Cm<'���Or\u0007���~9\u001b����.&'qO\u0006�]����;�\u0014\u000e~Э\u0000�N¹��,��w\u0017���\u0000?\u001c�\u0000����l�\u000f˿$]�g�:�R�{5���}��V�B���\u0007s�\rGhc�� �:�\u000fH��>C�p�ϭ�(b�\u0007�{��\u001d��C���n�?*\\�zY�In.%�[��\u0005�i\u001c��3\u0011Vff9ɜ��L�.)\u0013d��p1��#�DDF \u0001�\u0003\u0010�|����\u0010���R��GC_�\"r�M�6v�ɠ�1n\u001d\u0001܏�F\u000f\u0017�L�3Ge8��-&\u0012�\"�r\u0002�����ǾLe\u0017m2��L��٧�MylKT\u0002{m�h2�j��\u0001�\u0011�<��:���h��^�z��6�vP�2�<��\u0011@���l5\u0012��\u001c[�'o7\u001bQ\u001cXpO.m��6@\u001ed�\u0003��\u001f�,�\u0000�\u0004yK�~[�|���f�`�e��7Qh�F�n�� tYb�\u0000wJ��T�3���8\tg�]×�����D��\u000f�\u001eP�!��\u000e���\u000f{�it�m\u0006\u001d7Nѭ����*?F���1\u0015�\b��!�zF\u0006m��� c\u0011P��q3i�'\u00197��\u000e���Z�x�n&1T��\u0015GSN�(�\bq\tA���ta��r,b1�<�.�U5j����D�����.�c\u0012��$�,��\u000f�zo���\u0010[#\"M��Mv4�z�O\u0013Z0\u0015�s�|��[\ru�y<3���As��iJ<\u000e&VZ���T�� 7\u001e\u0019��\u0007���;8\u001a��\u000eQ`�~�Ũ�K��ڎ�\u000e�g*�bm�(T�P�:�'P���庌90�gu�{��9��A�b>��WB;���F���ip�m3�����\u0003w\u0007�\u0014�3\u0013��v\u001cW\u001d�7��0y�\u001b�\u0014�\u0001/\u0010���A\u0003��5�\u001c7˓`�:Q�$���#�9c2).)@G�G�d|09(7w̼^�9���z���*j�\f+�\u000e���fF'�\u001d+�\u001a���vHzx��a���\u0002f�.��0B��IPĆ\u0007�Qh�j�Bz�Gz\u001ei\tҥ��GOR:�6\u001c�cZS��3 \u0019\u0003͙��fB�n�)�Pޝ[�<����Jc,��#kU˚cb��3��P\u000b\u0001V;�j�w\u001b`\u0012\u0005�?7��~r6ڕ��,ή_�=V\u0001��(\tٔ��q�����\u0003!��v^���\u0000I����~��`���QL�.ҧB[n-J\u0002@�M��Ɏ@\u0010^�\u000e�\u001c������\u001e���\u001eb�0궖�\t+�ZTG\u001cB��m�~�\u0018Nx��$Pmˋ\u0016�\u001c9�\b'��|��_���+��뗚R��5�&O�NѢW�R#TB}�7�������\u0004��w��i{3��%,B��\u0003�w>\u0019���\u0000�D���\u001dέ\u000e����̏��>�մ�+�6�1�>�\"(���6�s���Dsc8�\u001cf$Q\u0015���x,���[/�8�FbW\u0013�\u0004�#{׻�\u0017�/��;\u000b�]\u0007Z�k\b,�q\f�FU�\u0007.R�ͺ�J91\u00155�6���H\u001b���i2�$b�@\u000b�~9���s��sL�������橩\u000bTӼ�{,\u001a����պ\u000be\u0007�P��3\u0005@7'+�p��&B\u0006\u001c`ȓ�\u0000,���yv�r�!Qﳰ?k�J�������\u001e��{ˢ!�N��I�F<����\u0012W�\u001f�g2�\u001b9n������f��<0\u0007�;$�\u0000[����\u000e�=���\u001f�8���\\�x�r�/�7�{�?�t\u001d\"��Y�EIm�C�����Nl�.+\u0017��h`\u0004\u0000\u0003k��O�`�\f�\u00127\"A\u0007��\u0014�vZv���%ʺ;�Ca{\u0003ޙ�]������+}\u001c�u�\u0002z�_\u000f����?N�\\�\u001e�`\u0002H�2{�p�A;�����c=\bBE(:���Y\u0003���a�DS;\rxi\u001a[�t��vv^\u0013��*dY\u0015�8'J�o��\u000b>��ـy\u0006\u0005�y�\\��\u0013񺗈\u0016�}�\u001al\u0002r\u0003�]�ݹ\u001c�s����{h\u0004��%Υ�A,\u0012[L'�y\"\u0002$�q�^=\u0019\n����bK$��m�\r��\u0000+k�az�z��\u0018�!\u0010\u0005���Ic-*�\u0000v߉�\u0014�3\u0014�ftM��e@��OE3�6񽾢��\\�G��w�²���EY\u001fb���)��∙������,n\u000f͘�]>֊���p�i\u001d8)�z��\u0014�!�0�;�e3�\r�׺����<;�|�\u0015��2^�ZYf��\t5�3��M!\u0005RF!��d��\u0005w��Tuь�����n�\u0010�?\u0005�r�ø�uH|�����\u000ezߦ��4��YȜ����Ar�oDS��\rF�`\f`�H��G���=���`� x��������^H�\u0000Y+��4�Q��9�\u001d�\u0000\u001d�H�\u001buCK,�\u0010\u001a��4\u0000\r���F�-����1\u0000�M��c >Ķ�P�44�G�������=~\u000fe���_�ܱz��*�) �\"��N���j\u0005㍷`�YO���Y��o��i�AP\u0017�\u0003�\u0001@\u001b\u001e�\u001c\u00180�\u0000�ܧ.l�ϣ�o5��KuI'����5ߑ�ƹ���\u0006ÐuY9�R\u0003��\u001b�+�7�\u001fL���[iZ\u001b�d��Dz$Ҥ\u001e�-��3�d���\u0005�\u0013\u001dTH�!&�\u0000���F���j�ͬj�7�C��v�<ޘ)\u0002��c\u001e� \u0012zf1�����\u0005��\u0007]��2����\u0000\u001f&\u000f�(�KMJ�QE�'�9�֤\u0002V�\u0000ӽ+�.Y\u001d�Ky�W\\谯 YZ\u001f���\u001b�\u0002}kM�4��\t��k=��Kq4\"�VI\u0015���L�1\u001a�j\b��!𳳴�kM�#�\r�{���Kk�RI�IYn��^u(�Ck�<|c����\u0018<@���r$�����l�\u0011��u\u001fҜ���0��G�\u001b{Ԋ\u0018ԘV8�\u001bK�\n ���m��Q���1�\"`�s1�)H\u001e��\u001e��H�iС�\u0012��\u0011\u0000@^in\u0004��@2\u0012\u0014\u0001ʼ@\u0014�3\u001a��~�Bu�\u000f�+}kU����mus$:n�eea\u0018��--.\u001e���\bL^�,s�H}�2K\u001a�$�e<8��4%<22�7#�=�P��\u001bH8�z�\u0013$↨��I\u0000\fwC�~}�m0��\u001f���\r���{oc�0�g\f�I��A�ج9D\u0011��{@\u0011����R��&k\u0007�6�g\u001b=��/G�×O|�.�\u0012&*\u0019@\u000fK�\u0002`d�g�\u0000u�t�b�A۽�K��)�c�c��E�=��4����\u0000��-ݴ,D�ku5�o$��@�U���A��\u0004�P�w��\u001al`W�\u001c\b�X$Yߟ>W˥�izF��D���\u0006�\u0015>���Բ�K$��o�\u001ac��\u0003\u000f\u0010��'��\u0000aٳ)\"D\u000eT�GP�:��\u0002v�(��4�R�S����\u00162�\u0004ҙ��\b�%�\u0003�����䑮i��sy\u0015��;�E\u001d=9\u0010��|\u0002�)R\u0017�\u001cEk�C�\u001czM&i\u0001�\u0016)\u0002h�\"C�-n�Og\u0006l���T�\u0000>�]���1C��Z�\\ʇ\u0011�w�\u0018S��g\u0000����\u001fc�\u0000�M�\u0013�\u0001����\u000e�2���U�\u0000>_���%Ρ\"G}}���jJ\\j���J�\u000ftA\u0000��Q��\u0015�P�}�\u0003�\u0001Ȗ�S���&I������&���t�:ZD�\u001eQʄ�⤊�I;��}F��A�EP\u00016���q\u001e�t,�APAR� �PE\u000elDG\u000f'\u001f \u0007�ks�X�\u0014\u001c-a^\u000b2�\u0010l�Ĩ�\u0003�4\u001a��\u0012�+v\u001a�y��W�P[ưH���2�P�\u001b\u0006cBy$a���vÃ�\u0005�'��\u000f��I�9�`ҽ\u000b�\u0014R�5*�UC\u001aw�s\u000fV7�����C�\u001a,r\u0010�\u0017E-�R#'��0�\u000e��YD\u0016�ֺT/\u00041�ҕ�\u0018\n�U{�S�^\b�7[��\"x�H�k_��\b�c�Ҳ+�\u0014��bIf�\u001d���TMF5L��\u0013W���W���`8�\b�0=A��c\b\u0007*\n�\u0019\u00007ˢbM�\u0005���w1��-Y�B�����k@~���O�=�L�\u0011�7�hֶ��%?�_\u0010O/�R\b-Zw�ܳ�#�$&\u0011����Am\u0002}p,J\u0000�B:�@z\u001f�3p\u0013,W-�D��\"��v�\u0005�,\b\u0010IJ��A��e��V=:e�1;��.F�\u0010�y�zZDM\u0011d2]F�Ř\u0006\"��V�i�=\u000f�bOa�l���:��෴[�\"Hg%X�C�\u0004�ܔZFKw�|8�+\"��\u0013 \u001c�����\u000f�S�1ڢ��&�\u0010H'2�����\u000fx������~�\u00041��\u0002��@@4�\u0001��C����'KKh�!HPG��Jщ�`MH$m��\u00006��\u0010�}��\u0000ʚ}��r\u0006��󉙺�Q̊\u0010AU\u0005Fƒ2��\u0000ve��<���T�3�\u0000-[�uM2OMC�ޫ�\u001c\u0004�\r��$�S��\u001aH��`Wn�̡�\u0014�,t\f�V�X�4���A$��o1.̲Ar����ţ+��v�?f�\u0002M\u0011�fNǭ��\u001e\u0018�V�\u0003 a5ơe'*�V�z��p�vX^\u0004;P�\u001b�z����ʠw<�C�$áZK\u0011)#6�+H\t�d���I�-Լ��$��8����\u0000F�6b&�?�\u00071��\u001d�X��c��\u0016�\u0018�e�\u0019��\u001brReY\n����5Y\t��A�\u0018�d\u000e��i�m#���$i'�!��\u001cm!�\u0012f�\u0001++J���)(\u0018+\u0011�9�\"\t������j\u0012#bx��c�Ol�\u0013WӕQ\u0002��H����/����\u000f��\u0007(\u0003Tq�)���t'��\u0011��L�U�\u0007�*�*��X��\u0000�����F��e)'��\u0000;�Ԅ\u0007zW|�3�w�H˴A\u001d���\u001a4q�7N\u00024\u0002\u000b\u000b�\n�P��msԅ�\u0000�ꤓ1�NlH�4\u0014ʞ� �~��`G�#�?���������}j�)���9(\u0005>���%��W���\u0010�q���BI7┣�\u001c$������D��\b\u0004\t\u001f����wG�G��_y�ː]�f�5�\b�2J�\u001c_V����H�6h�\u0006aFm�MMv8�\u0016Y\u0003��r��\u001b��u\u0019�\u00068F7�ŘU�*3����y��\r���ߔ��w�=�6�G�S\f�F�\u001e%X=1\u001a\u001fMM\u0016��z�\u0018�2J5�\u0003�=�۵yrOE��\"|S\"\t�\u0000\u0010+�G�K����\u0017�\u001a�j7sj\u0016�shV��S=��zM�֙\r����3K\",r\u0010Y�w�X��l�d��\u0013�\u001a�=�>�ߛ��Ȏьoc\u0019K�\u0001\"���\u0014<�I~pY[Y~]�o�Z#[��NE\t\u0014�)\u0002�Β�nVA'����\u000b\u0002\u0019�y\u0013S���)xS��\u0018�7�0\u0004��\u0000����6\"g��7fdly�� @x�������o.�V�\u0012.�w��Y���~�\u001dūؽ�_���$kqFPO��B�(\u0003?�r�ˤ��>$�v������\u0016N\u001cq\u0000F\"�1��wʟ��e���ט\u0012��8�u]8\u0005^T�A�>@�ȣ\u001d��\u0019oh��\u0019\u000f�����ь��HX�O�������3�_�z�������MM:\u000b��{��f�$�[a)\u001c�O%�1\u0004��\u0019N���C�\n1\u0000u�I�C�~e��,�$���-\u000e”�3[=ȷe�`@���\u001eJ\u001fڦK�E�\rw��biUd��l|<3+\u0018\u0014=�\u001ebD�r|\u000f�\u00009\r�k\u001ag�|�yc}-��\u00167�\f�����2\u0015*\u001d\u0019v#�7ZX��[��\"e2y�i�����}w�zM&�y{w%��ә%���7=\u0015@\u001b\u0001@<3���ɗS�&BL���\r�����:L`\n\u00066|��K���ci\u001c�\u0014�\u0001�W�;\u0011�ܝ�\br,2�r����^4k�%A\u001f\u0010��\u0000�}��\u001d��'\u0017��Z\u0018��\b֍���SC��\u0012M��ڒ�ۀ>�T�O]���9\\�!*���c\\�t�bV`\u0010\u0001ˍ*zT��� '.�Ȁ6\u001c�~Ͼ����\u001f�Z3jzm����^���\b\\[܉\u0000\u0013\"׉p\u0007ps��f1˯��,�\u001byY��>�\u001b:h\u001f��Ȏ�\u0018�O�����|íj���}^�X�\u001a\u0010�8��ĩ\u0014�QLJ\u0014�R���<ϩϏ/�DsD\u001dF�kE�[�w#v!+��@�\u0019q�\u0013���\u001d�\u001c�g�2��\u0012õ=F�\u0010ޕ�%A�\u0002o��S��\u0001\"܉NQ5\u0013��)��K�\u0000�\u001f�IP‡��G.�<�x� �w\u0003���5mG׍~�/\u001at�{��O\u001c\f\t#v�\u0013��\u0001&��Ե;�ƗR\r��>Y�\bDՇ:R\"\u00169�\u0004�=�̖\u0013;���\u000f�i^�\u00032qB1�\u0000\u001b8z�H�&��Ϻ\u0006���v�[\u001b����g��\u0010��x�*,���\u001axҹ��\b��\u0011�\u0002\u0000��cK�x;C\u0019�Lx��?x��O0j7���;�PI4\u0001z�������\bw=Ny�\n���ܐ\rB�$r\u000b�C�@\u00186�=G���r�N6�\u000fU���}\u0015�sGu*JB��@$\u001aV�P�1����[�he�VI-�wb\u0015K3'\"~\u0000�U�3[0!/Nۻ�\u000fRuf��\u000f#U�(k�p>��\u000elG3�\f��y~�����c��b1 Ta\"<�s1��b��:y^K\rF{g��-�h�\u0012��Q�$`A\u001fNy�\u0019Hd$\u001d�ު\u0011��D���>|�o�{�qk]��|�b�W���8\u0005�1��좎�6Y9�ҝ\u0016�\tG$��\u0019��p\u0002��KI�\u0012@C�LJk�jz��\u0019�\u0012x�\u000e�\u0000q�y�\u001d\nyG�O3Q\u001c�4\u0015\u0014$\nm�\f��ُ�\u001e��id���ˑ+ӕ\u000f�5\u001b\u001d�9������Ȏ�/�on��G뿦�\u0011dۉ,Z�\u0014�L�������l\u000e��\"���\"�H�\u0016f��&�\nׂx����0�\u0011ϫ`���-Z�-͝-����XВ\u001c��\u0012\u0003\u000e�m�1���s��*��1[j��\u0004i\u0013#�!E\u0003�\u0001�\u001e�(�\u0000\fOV�o�f�\u0014wp�.#�@m���\u0015@���\u0002񯀠�x�q�y���\u0012\r\u000eO*��Ҭ4��*�O�\u0016�o\u0001i��Z�8�gB$IP0$R^Ce9yX)qid+xhupS{mJo;aQZoHo)k)B~`v zumJw69d82owA~?3o&wze^PA-u3%K{6tN*`^^?xiKz zuiR6#N-u733;3mUUn-;IoAL!~_rT841+J@c+&mXAy~@(u|)#R6c?(f@83^8_3F36B4^i=WwnY08Nc%#-X~ zY-~Qv4*YEF|1s-?1=B1JznCI!Sokg{7T3hjnQ!++Ao7($Z zhYOs8+Fx|UgoB0tm8{Os$0C=n{%S}m95Y9E3KsTk+K8i0v#nww|NNHHeZn`qh{%}` z(zLKp$@IKYJ+{XeWy-UQd0^?(Yl)CU8SN70vAjMH#tqI|GXrtr*Z`a8N8`ryYP+G9tUTDHF#o>A~89`)GT zV*oZTCr;O(U)5*wjR?z@RM(s(B@9ravgnN3Aj~z|4M1ero7HU=Egr2||O^ zg8I?HZ}>vgc#ohAHg8Ut|5>$=X})ohaEzN78%7`|YTx2XxF8!51AjAxh`5#f;<+mK zF~I-)7(37+@-?R?{f@gqs@DL0Br;}+P6zSHk@2lk6$7q&n2e&K<&gr2Z==ra> zSKU#S1LC6#}6bh^Sj~bKk+EDk|Tx3wsh-vlP@)|BPt>(Yq!W?FNAF6zNm&O&~Gt)B~}$KAS&A9 zy1U;w!q#5A1sm$=!U*6(u4vO_T*%n1E_0Rf%WWyZJkIF|)g@FyUsBM?b#-Ns{>;wr z-uCrNd=GvogD|+OT=O$YE@Q|-E2U-;E+b8 zvo*0wL;8;aIv!=Ea%1_k=ZKr~XC$}sU8D9mOI1YFprW|Y4i!mzpg)fl^#{kHyWVfg zOv;_%m5dqwpKZQsyLT_qPly3_h@mtE-u5^W`S7{al-LEe3uwr#A8N?m*@PAn<+<_; z5Hyox$eEU;xoPX0wb!B1W*!AcDT{p6gx)yfo}^kW9|I_{H})3MODfw!&z)G-*va4X zS{o`*&kOOpX9A>7E3-XXFMr8&YJ#>)!0w8dy*+{0e8_ZEnCvGDVsjI2#b0OK0j;HDZ=QI68>uQBWnwAZJg~s#I&6gq#Fle<#g% zx%~tbeSP;{78qPYcir6`jIwl(^7Xx~AF>Wy66nAyyKE=RAHa;)p<=dN6f5tf3{qsS zhty^Xepq-m*+g>k`^!{V0ctV*(6Xxfh`C;ecv-L8#Be0g7!OZm()+Efk~@w8AEyxe zzqC_1lao&F!Yi6+~lG=rN#^ zE$z*OGW`RstY~-xNV5RZv;v978)|AtEd^q~9#MgSY)U|KclMUCL=kA-|DE zDq1dyT3)6FotJ0;(JRqqiZa3zgJYK;Zpbnh#p0Kab>c?@{s zI6@a`gTjp8ikKnmA--0O;bd;4nyuF8>F$h4NB)+b}m?Dxbe+-{|k}6^n_i| zJg9<^fINt4{b6+f3}4YqCr{eI^jKKkJx2 z*=<-VT~ec>h=mBpSV981gsV-naGrvpq`F>AIQ+w`a$=@){Hx?wj5c?}!tf@Z)sdSC zCMTlj?)r8|uYn5$p9wF>QX7P6BMlGln~REBEtGX;Y4VlG$Zyg(ekp&cAJey%>;CX1 zqy}g;?^vCX6SrfOKj|x2s>R!Kptnnv=D43Iql5TjkkltIicrl*aK_t4)ntsUin_+K z^_sKk7yzvI3PlzB?)$9#(l0q4rn*A7+$~HdZbrRp)*gf86k3zbBoY$iOh0=y+l$Vg z>uixW5qmF47YWaS9)wVD6_&WY_p!kFgI&;^8gV@OdWF$?V{qqJq0qoSyKvnS2`!IB zdrk`!IU<1KGF<^Am|7RWJI8;cH)5+J0hk408-xFUd_uLI0n%ZwJjFZVlAMz@Z%1Wish0~6@W-6O%EzSCAwQHePH*z`3yG?8wascrA_Q!6 zH0|XXqr=ORt<$~;>5xM3VoyZMIq!6}R0U_tM%QM4uicc0n5>Od8QFYF4L6?RgCg`k zG7!NlQf5L5rMiOgIuZVoyE5F@yZ5|k?J>xOd^I%EZYA@B!-uFNiUjS*-S}1HdbZlP zL<(-2)wD|_epP;ON(%&_?JSp6ks_|-uKv;tZBz`n&S7S5OhHabo8$p}h z9A9z{Xw?Z`?1xHAjE$oLmqT?}(2h%<3}*SmyGt^|p0e=D=WVS_CyHul90UG-%Kkj9 z{j#3zjPvB7>$Zda{(&W`D=rzFzgoIMJ}PuE!vd#!Okc4PKb1r#1k~w?k7j`|)50GU zs}yM0?dciKE`0vqvFm&QgU5dIj)#<*tV55OwV4wlZXZGr>cP{_q= zDWkyDpyZXvN_seim;klo5THuKY;o$>^p>y@)Lnt2O0+ki!CA=X7%)|f3pVq_<(x?I z-*jRm?N8H=(17o7+tLv1F9hM0pw8T)@7}r^RB%_RPv670(bZfj>KGt0glaOnI+U(y zU+9}zYDjl7i@pPaU71Kxnm>v_78F9~osAN4W5AM4P^U;%9X1HuNuy%Usbk_rSQt{} z>s_Qa`oMT}C5aIkaYDh?E1?+E7phSuGfxlqK^pbpKDu0)?`clhqTUKG+0>@Nto!~1>YVzYJcngc=@JQKWvIfgSxjw&qS{}S$dTp z2-TG*;C2+dNUUb&{V8_Ygu$&=ieh;aPU3U(i#V9dZSMM|9YWI#;%%uKW>Zag#j#@_ z)Z0{6ev|fGh(1OQaGlg68ztk{>2kwD^qwArJwg<|cjMmX&I%c`YvGqT#jlZuZ+hr2Z0 zm;d?`10G6Zqog1uNAiW_FDMzGdQGFVTF6?BNoS6T>gYhbdgjlmywcvwf5PFrsFgq z{9ly{u64VjzlDGP>FpIYP`dtEB!`bwB ziCT>qd{fh-zivlcB=)N6W_M|}zqf*Wud7KNeN2(e7}+2E(mC=jJVJs-Cx>6mk22WH zE_cq?Owy<;P_i?Wn?42fh7gD94p(#c*FYarU~h!q-+Q7Tu|# z-$*DB?}X&1?EP*37V;|ck3z^UR2#I)i2N30d>&1sBN+Msr*!&#+cV(jH0oUT=)-}u zP$UwEXR)i)>_C(H?nitU?itH`^OG=dpBzmYP=2uz)Bd=MhlurEDd=Ij{1AcOQ3FUv zkzikz!b@si)n`J;J%gIzSI1-?zltGKwtCY!!G?hJ-Vf5V;MiPD$FOBIa5Tc(@=$_+p+7E87d3K@Ig6-WigKBAjtC4lVyV=~ROMK9L?*$DT^qv9>%kCPm3up!c=Ce7pvZ1QX z0(`YOGPeaP1ek#Jt_ydzyzX0};gxs?=6WzQS0T+r@Yy+q!CQ4!w1p$M1cWk-nELp6y)PgqDxrBWExW0SqM4N}E!Yrur zCdH|d1)uQKyz964cF#r8PiX9`g={N!`D|(-t73DBBQQ{BlW4UMYvc5A+8Bk{vR!u0 z+6vq3Ln)7ET&$uVB|;PTCZMb^;kQTTc4xc28iUVm(F1GzCDS3rH=&LWrK*-CYZF8i z1a;y|WR)(ZLZfMm=4UD6kqQkx7)u$qpVN7pJzEkU8qq$677L@DGc29Wa(b-~E5t0P zsVST@a8sGWRjLWHET%QKgAIZ|3y$V8kT^Y7ABlAx#W5*Z99qQW6)abu$q(WM55pWD_XL z$AD0+O=!rnM`>dXEK75!hfj6_aU(9`F(0I&2G;Vfe3F@nJnIOg++8arqOqO$eKvlo zO#nSzv(FQ~$9D`+H*;Q&I6BN?kR3&74hP2o$F9CQKnlfoTIl^Fw>b0D031om$|I0F{fX>*wqm>Q^U1 z!3LO-FQzD-)eiOBA?zLlL_gAdg};)Wg}O*s{QiXHN8j#iUZpor0pD<-lJ`LBQu#DA z^!uO%7RFbg2`mQ`mJxxM56yQs^qXfgn7M@sS=*Q%!cc=k-=Ax&$L1J@?%8cG1QYCc zao+FW&WlNg?KFS%f^VUGzn7zpSK9U71k~k)>Dd_r_zo!Pl-u-lPX_>Q*p<7Rv zx~0KRF!O19*4c0j_>uk7Y`i&O_uIfKGm1}rhS|aLgHkWNgFc-es5ycG$&^2T)H~KN zvTI0B2$|`>l>mDdW^`-Bkcv9Tt@*}qN9tgj>>TV2cth0l?Y)B(GM0N2gav68TxmF6ZON_MShh)DH^lbHff+!fid)3lQ@B^6RmxpvDoh)T zj{)C3&;cL%wRqI0-#w&p z&_2jCa3)L4k7v^v#X0>U1k{oenfQK|m*P6EXh?-%VPryL@u(-|7yxEW=~rr674GpMi_cI?()=vZsL+| z|AhwsaEIuT!KAQeh zvx5jZ;2WgaAwuy^-*oH^1!sFf}LX(1yw zn2?h5MS;(Fh8N0w;9S{G1i2u%2q@EB=8O%2lsr7Y$~7GwF=+#T_8qJ3-7;wuY?v-7Eq(9|K1Cxu4siZr# zE$Cr`oRD(GuN2U}4tAYuRDTpg=gNj``^{hB^qHto;Efe6r^HR#3CX5g&68qwrQo3< zIWb;p)BWC5&e8YDI%Th75PIViyo3c6LROBNivJ2e)gUGs-V4j)>bMzbpHNmM_->59 zg{I%T3?0ZbH)wle|4mf}Fb0|WE)hx7({Zth{iTQ42)}gY>X)27%>hhvvPJskCy+q5 zX#;DvmU6SPsQ16OIwtE3Zz!A#A8p?NJ9CytR9Pr3^$G;4sDE)bw$W0;&m(6DS^ZKO zFFq0aZjL`+74lP$O=RmwVU3oIPaMi*hXf4OW@LQhH+4Wued9bHrGE1LZaopFtD$mo z0r+O{Ve#otU9a2C+00eS6NdHp`%WmBLt#er8B>X8N(k{`7EJi-{c;~hs1H}8h`woi z5|tF2$!_gszst-sJIezS+@pWMyUk@VH2i302Ty7>$t3B7TwT$6RH#?gdBL+5i>64? zBfALStdNwHdz&&Sl=f>oU;~UF=NYnfiCai#;a7eSjCV~{I7a8wW4Sp_$PYexz5QY3 z?Ohy%{*jl|D0 zo+Iz)s(sPr8Wqgz_NvD=yQJ0LKOLf7)OQMPp2Lq@y*Hiw>FoV8{V_V~W7oLpX&V}Z z=@{dp553&JDw;&A<*8h^mDn?fH=vjjYc%9bL29>5M7C2WOoge7oa@bKB5Z0s2$(Kl z8U*)^yDa1UQzoMMexQc5#!t;CTa%lL4bV2b04r<}6&loS=~4T(sCMsaI}fE)okRaa z|En9OjH6+qk!`MBK$_7nLyamJKeg$nghl-zXWxrTMWM43v?DuGzcv7;JNZbXJ#d@C zxg4)+w+nYUYd@OMwJYLZ{M}*EIj-F7j5^fXZma)`G_kKi{I#fOB7%CvSFobeJG?xS z2FRSkJa=I+f(DjGR>)7t%VT|waSx{9$#h+4kcJFeN~C$mO@1dFmMw7%Fm4iq462kr z(Jr6)0N~~@xy!k^ycr2yb}vksv5iBSA(4|W!S&N?N)ixdo3FrKKeSIJhDOMKE}9mx z(GuG8HEnty-rvbc@j!sj;dcn>U3WvQMqg;Qqg2NJp{Dg26-rxhlW(pxu|qX>^P@WY zZcS5vh*~8ride6fq7-p>nB(CUFzkH{SOL4;Y6#kK&3t$OzM9tY!D3!61(D*L`#5Iz zq=txxfEnT^6|zGGuRm?#Y-M+d+Xy+#Zxo?y^`y>tymVVMEkELn@Xav#obBd}1-jza z$_)Im>FU`DYhGr2d$R?4oxs`ZPE08h69;m&l|IX8_&^QzTLDGUvy&RJZ|-!R;-`RjFthul9t8P(ADyUtE^> zkwNkG!Xiu=Oi1&->VsG;StO`Jn72J~6BzIr_aagS6QX&s{FAdXk%2+Cc_05ETC!*#XBW`OpY%FJq-jD2CiUOi<-aH2MfWZX~rZ}?!?+sV_#1*M$4xB!f zpb! zSYwdJBb)_S$Pq5bfV(VA`W;G-p<_e#HIuy>pHuv=9xASgrjepTt|3(5F4^cD&$@+b z?k0lOy;hB=6drfp_K#6Eo1WC+*X+P|0` zPJ=-fXC5c<2xonGyeC}IS;CVs`n^2f>E*|H8b^j8w$S>FpgFN_dD86TpNaAl133s?aP|?pxa^p!H!?`GV#taVBiNd zG(tl4?;okolt_+CqRWmm=j&!=V^NHGWC3~mV!rXyzIo9XAUs>mJy1`Rk^1LTIJ=B9 zl~x!$s0VvxV0v)}Tl_xxk;hxJ**IxK29q@V77^xeix7-6MVLf6wat|>H!I)8uHY>! zww5*P#r?GA=9FknP4cC)Lw%`IA6GvAY>UCw0K<PG=sC=DiMKf_ljEt6LAg*as7_dyt)>u3A4bmo*)fjcQK+1|+*yEaR_W4Gl+ zK|#@7X0EuypL7->sIAz&Cu`W($|_Xhgr_#NT1 ziObrTFT1l;>4u03*}+;Em)Kg&j{(PMYK?DPl2!$KI=-_j$QQ5Jw>7Vo@u<@Kxma=r2dlYJtFYx>Z# zR_J^Yp@)RGSZw0^Pzq51HZ6KW0}r1@G`TVJ$vGy{lJG@^Af<95X_+(Kydg!Uss#ZH z{<1o8D5gHsgYas6>HX?j%50`o{cOQ7hDEXIb-Edu{(L!0=()&Xpw9QM29iq`aKEGM z|lDDbK`_n04e}0{&YHV@`NPL%Ws-Unr-KAb}S=JXP(N)uuqp6w!`kl z#X%CoN_VCq`<3?&tWfbMd9ok)86~w@)tpcr&d;jV>P>!YRN4ynYb8?gJC|5}w7#@C z6sjFiMAS9@o_KJzU2RjQK%B$Cpb~f_X!C; zv9&-3bohW)w;d6i>~Ir^T*S>5RG-#9kU`ciTQuR|zfjlfCK^l6NB&SH5$BUC)e5gh zBJjHrh&mVXa-snVG#9X;1ve|)BgEQtm|5S?Xtw)Acpuud(0;%yQ^DM=9iAOR40e8Z zb_>TgC(oe~YMABEW5}Ar*0_v`V}Q6x(4%1dOPQTQ`g3Kc4Ej?0zJ1A7RPJF2BFaqMaIUtYi)eRB{b&tt5BbBi;-Ot%3Y?xfPSC6&+Kn)3q|zoyV`)58L~W1G9gm) zCYkc9su$)m;!sV>ZTFz?W~OE(a5VCv1KHXokr8}rHG`1uXk12FFHTldvW}po*J_a-;GU1ZLT5T8(0>a$~?P)D_K$guWVSNek?C-~b zgN}l2{#Ih1%hQ4x{prr@G0Wd(e!>S-d=x8qnPk**jJX|dI&CAIh}l~R6W1Tz!riX% z<)n65F-e?)h)j_v*LBw&X_~5K9tDq;9HA7=c(`Ok#x&w()ekH9&B!ET(iegI*BTcL z;LXl)drxffLTj9}v4|g>$k_uf_eSC!U(P?rfcyh4q$9d+vI2i$XfG6+cDmHD z)lbVXa7kl%Q(3ACX?E@~cYk3OVKPp>KXCf7L0QKc^+>{SMw*D|s;lj*sZqo;Zj*|z7yDmpJTw_?i< zjj>|-k`DUX6rW-AfgRG#=)3T#K}Wo#~G4uM<> z&`u4vcPu<4@%Pa1#t;$4XLz;L@ffw$7og_N%|z*ozY~Ep09{Ebn`oz$~w05_e#!h%^cV^$HLwX>30g#y9nn2vYP%c|p8GUrRcmHXxjmnZJ4ry^fb*sV6fY{!65Ox z562ie>*nGuPMf1^cQrKmKBoS%HQ_URyz|425Zsl7xL<0bB0x1YpfvVcKOo?)>u>42 z0QZV&ny5arl_z}b&*KPio6aYsjZRjgoL+kkZ*c0E#k=JHk#PKc5pdODWe?T=^fngD zm9`{n^GHWtw)2f_2W#-st%bIFh+!f86gUo}PF#Xq(S|VO$wL|H9zV4ncqX~nve3t9K7&PTVFgr__8}58#T_$;Wp5GBq+ad zchOnrKCQCOqw$QG-WkcAiOrvisKbMsw0Y&`>b~NKOo`l#VWu0LZ7yPzrcS5dSpz7($ltPhj);Qu!8$P9{F5ltnA$Nfx9O@xI3C8kl6k7)DOcYxl8-; zu@3i?#SJ(;`1IjDB?;+-m)hj|_N7*X0LhW`VFTmJ>vBT(onqVCcJwUupXlC};D7u3 zl!1H^3h{5i0~G$@Xv{8L^!uUU-rX1M8_5n$yc$Q5=O%#OiiV{jHw*Lk)?g2@B1oPV z6-VPjreRea0SeVC%W;tBw0N9N>SzLi6&2z-?>MnGL_nA>GE?TlpFbb-eWiS{=FzSw zePOnTJAD(;lO|ct-+M+%a@VDcqG32tWRa8~^I~>-;%c*|LYEH)H*M7%br@IiQ8GW- z_tpy+>t-WB9}8|lNz)J;dGzesUA|3U(;+nMut&f2b%l^ON`moR^+vy#7UUZUN*ds( z`JsbA{fWFZ+>@R0XyqdZSVKLM_7WG)fAT7wIenC06)nq@qiuuLl{b5yOtGV&m$v=v zE_N`2e8u|)Z1F6~#SLkbk#Wl<$>rlF=gP__l!>k|QqjpGZd=F zUstMp7z7X4=}irb*J%|QtP!$QoXMceN0pH>16-S)*`yi6rB|r&*q>R{LXUvR}+uw&*ZHi$^m21Ltg0M@sM22fiO3%mrF4$@(89lD8bn5YG z3q|h*VV7SUICDBtNhny!uNLJ4S?bvdtLAA{+D=>Sg~;Eri12-Oo?R(f@#eLvXe-Yk zB5C24a>z{^ymRB>t^jHH$X!{uwLI!grX?3%+w2)wXioww=gym=NbLqZCEUX_a*>EG zn0F^v&F+o59%Ms!*y;|?4ug1H3C57;@G#F44{~+%r}FRoEK&?nbhciT^>B&E)ZNgx z<-~)R2;_D~0Epp-V)&`(McyM> zvnyh)&b~g8@{9XVq?spvcarap-}AAQxgJZ2_BXgwnt#RfqQHOtc|Cn77I8bO) zG)r-JEUg6_uO?2DI_K3z$F zwx2w5NY)gi{UoQ*=(iaGSh7@pRu$~8QCO!o8fQ8dIAb)lgL_!NV_Hx(;ZlHH#ZI|(&D`-_O7f#C$ugX03`A01v54pyPkwQ8{*gXkjkK5-IYAs*yIeLrFMLN{ zPb|W8F)v?#<7NhqtgqkJKvwlaKE~AE_|eT3#v`QKu<7Jr|JHh3R$9%z6Ae*k+dz7~}|TNlxE?m)>l zYcee19{I%B@UMS@WodrEj~js~6@p(>;`qu36FruI^7U|QxhMa~GiI!M&t5z|@tG<+ zM|Sv~e~0|wik|#JoA{vKdQx7Bf{G-?DzKqHv`ZzeYGFZ~^iiTx$V#l8ds{3+FN;;k0;Ao|3j3W| zSmzB?Z+nRIdHXDgGqF_0OI%yAUd$J{IcWP^ z?Yfl-#wYN__dHFb9eQRn8rO4WF7ZGT;GpZ9pCNN1n|(jH;PPVMJK=_O$y3GJSsQZM zz#C1xwts%tE?wsCa;sY6eoLN+iwrw0m%GL!K45>XVSlxvTprCxWy9{O_Y~@XNm6@= z4xBNw`=>Ne1D2BtT|fuPIV}7Onc^$*dTB3h;gCy~-PpQwXHpG(D{TOD{;Z_MYj0@B zw>sf&TUx7lsN$m%eSs@C<=Dv+>2l%q?YrN0E-<37tK5xH-jn22ohFq2xI6j@nKQ%N zway{;;uC83yU8Bt6=dG^-{sHNE2Kh~@)rHyKZ?B?sMr1gbm3aEqr4bI$L8PBj|9~~ z!P?#qGrsIM#*=_eV9kL%#;8o&A{<%RAdhtw{|f_$ypE)q1n9T^=9>fNqmLoO~F7={Aqo~GrrmJLXoo?P|ybh z{t-C>8oQ-b<99Ej(&a zGHrlhS7M@phhqnGA1jIdan^lTq)$b~>Vl)_eLdM%+ep?xiU=cao?I(h>M`9^1cH+& z_~^Whf!RW$3y8PfinogO*;T|_(5hMZoU*yrdb(5H!uSOAC~&(YabNK0G{mKE^&lU8+fLl zyGs~AZ4af;-w=stHG`8q4O}&o-Wtf14Qyk8#0BNzw#YuXeIPThbp6yW|G?3lh>OZ3 zV0kLfM1;VNlG;fNGU?iK)w>{K84qbGYmSM&VB|6b-Zt6#SsBeSDaZ#2FN)kEY-ofr zPoinu4c?yE`@?Ilex^1MlfBlw0yo+{vLS3nk+pMNBUA>SpH5U1>CY6v;bu{Axiq$b z-ZHTaqqAmO5$asHP9H*(n|t4|NG`iHWDqEn{g_4FY?gD5tJdxe#MiiE(|9rAu>l*d zumX#(_){-Z^J=x3YrWO(Em#S(x}kS}*i#C6(${_dBu_NoQP6%rcZKK;-47Z=xkE}a z@6L0E(=@mA!$UuJ3|xP+wyGt>B2vbBHLhvSocFcHK78w^NM-wTycumV7gl8d4{@QE zE<;(>o`h;eSd*SoS;`A`A0iTFsNcS%T>TWFAFBdy-p7zSjSvpYSQ>+7mNRu(a+;?A zRIuAE7H~hHcr)_1W`Oi28K#D!p6ERWB;pw2!8HHRs0WWXZ}x!x6zi}2&C#bjn(s4U zJ?fO^;6IwR!Y#=qZ3WCSpfr-p4UZYk7A?&=&aJ<>-+-G7(5Z%`0-efB$g)f=wTNwN z4Gcwp`Q0V|P|BxF|EpQkNymUQ8apqMpQle9iSDx#Oxj=t+kIBaGR9IjzL!QO)Ey-& zMoCj-2F}SftHO6_hFg;F7|>>6YKFV5J9)irHS+X1_DKe#J4W~ zNhVrlvr^^zq&VNITJGAPFJ2gGn6;2vI=mG)p)A)>N|yT0S!#iYOLBo3PbPdis?W}r z!$2jxA-80p@I^)xPEWGZ%KBOlA{dKijBo6X$Y3>npzlAGhMNRO)qqoB-+z+ zHq}*+tmGu1YklHloE5_Ic;<^ikv;tFm;7Dr%wIp@=&X>ULYx}TupfPfTE(m8B{6)XLQefhU3CC{GHco^ zPe4z*8`QKZ#f^#G*Pbm1#ztyhD|Yk2N;p!BZhm!m`?8T>dc=ncwrQEn(mei0ojik1 zF&X10Hv5f!suqS)&{>XPU)UhMUAR88JatxUcS=m<83e zosOGTRfVNqjb=l>IN4LO?cw}WOg7c4lcT@I&fkQuv+O8}S+MxciQlJbOpV`&-)Nsg zjAp-9B*KYvMsltw1hd-a*iFQttX%kJc2sbKK84{vP8G^WKNLhx7cY_OiAH(Mgfzrk z)Idj#cOUZ3k2>hJm{iJ6)W%ZLwX?^7`1?8M8=s!IZDRtCnJo_w-s@jkZ1#^L-S3{YKWB$~2^fK*nN`dOx4?8#)fzClcowradb!*_@Y310FPQ z)$TH11L0Y=%FC1_Kfvte&yKHg&S&mqQA(v-GShX7pX)X5sU0H_Q7}$to+rWy-RC)+UX3ShQ+(^N_7y)&I7W7sCyi zI6D65?3fqyjuW!J$~hBs>a<*cS5kZ8xAj{dT~Bjto<*}Ri>vBM_($T-Kiqmcc;l43 zf@U%TG&Dq8hR_%o^36Yj@rb2kz+tzLhFU+v@LP)I2t*wZJDvNtZRFXlr0_AP->$=o z9i?`8R`r3hNXVYxhcHEE9Yz19!5QKg z|JiInqOK{L7(9mt2TWp2cwxd4MN_gwpF|M9i1#$5~=ULKqFNa7z zC|l@MX5~|ee~x1gVhMj@Zg|gQ@4@OvN97OyOg!*|!UDFsdVuk!TO)4bec~ZFm*ky! z21JsxJQWu?H0ST8PnOV0R8!Mbog%y~_pF;fd87ffdhxs^(aSyS7+@r~^`f{5>0;vj zBq*JA#UR(eY{E4G$jho5#krVq|C@1tUo{Q(SZCt!_rF=S_JXg6J(f-1#vi|NoSF&0 zplts>J<{{KrP}6sQjo{f@{dTkK-F*VqSW3;Tz=U9=Q}IaDW^S>&w9 z_1!FP_?{DpP>rxSNqk^2p2Jvpaqe-8;gVoJ+>PyJ&cpW=mudwRjrmv--@c)Fe=@Za zHfV?6^*TMZM$JphXOf9c$~dQtNB@)z8QDLe=r_6Yyu!>0HWpJq_QYWToT>YaJC ze2J*Vdp8H7BeU%9k#}a%aPKVgq$+(Zt$JX|pC^#l*`f!N!Mmz%0&b$Gd*k;Q=qQ zsO-^t$V-pxTb`=Xd80O;zBDgAO%mYaJRk1uEZNX?sh77js=7+qWQM#Tv8&Q)m41tr zL+8Gr@N3byQqlW7JJ4gmash4W=I3L;bvR@Xa@ouI@y_7y*MZsfVdFO%lcYP{-wCTO z{Zq9?@n&AIdYJyeLDEd~e^7MZ;cUKb7^YfUEn1~jd+$-ZHnl0S)t+tb)ZPizT19NN zsa>l^ZAn{u)rcLWikPv9B;xnw`@@mH%FlG(hqZ~{ zCT zp}VA~^lb|ftGta(Z`P9y|?d3bUTTyRqtDWF=J0@cIBpK;s+=iK-POt-@MU@=l^JK8D;@}mT_;J zcS7nd+$uDsW{b+^)#l{00OOZ#YKV5|Ql

{Lr#(zOsP($y)w6i#^Nv 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ξ{?=>OIGdU{>vmG-^r?3 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 literal 0 HcmV?d00001 diff --git a/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision.sln b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision.sln new file mode 100644 index 000000000000..54d49997b3db --- /dev/null +++ b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision.sln @@ -0,0 +1,28 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 15 +VisualStudioVersion = 15.0.26430.16 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.CognitiveServices.Vision", "Microsoft.CognitiveServices.Vision\Microsoft.CognitiveServices.Vision.csproj", "{6807B854-8528-4FEE-A25D-C43C3AA2D601}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.CognitiveServices.Vision.Tests", "Microsoft.CognitiveServices.Vision.Tests\Microsoft.CognitiveServices.Vision.Tests.csproj", "{5987D97A-E532-450C-BF22-A1F595C927F1}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {6807B854-8528-4FEE-A25D-C43C3AA2D601}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6807B854-8528-4FEE-A25D-C43C3AA2D601}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6807B854-8528-4FEE-A25D-C43C3AA2D601}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6807B854-8528-4FEE-A25D-C43C3AA2D601}.Release|Any CPU.Build.0 = Release|Any CPU + {5987D97A-E532-450C-BF22-A1F595C927F1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5987D97A-E532-450C-BF22-A1F595C927F1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5987D97A-E532-450C-BF22-A1F595C927F1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5987D97A-E532-450C-BF22-A1F595C927F1}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceAPI.cs b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceAPI.cs new file mode 100644 index 000000000000..f2bb1b0bc7b6 --- /dev/null +++ b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceAPI.cs @@ -0,0 +1,137 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.Rest; + using Microsoft.Rest.Serialization; + using Models; + using Newtonsoft.Json; + using System.Collections; + using System.Collections.Generic; + using System.Net; + using System.Net.Http; + + ///

+ /// An API for face detection, verification, and identification. + /// + public partial class FaceAPI : ServiceClient, IFaceAPI + { + /// + /// The base URI of the service. + /// + internal string BaseUri {get; set;} + + /// + /// Gets or sets json serialization settings. + /// + public JsonSerializerSettings SerializationSettings { get; private set; } + + /// + /// Gets or sets json deserialization settings. + /// + public JsonSerializerSettings DeserializationSettings { get; private set; } + + /// + /// Supported Azure regions for Face Detection endpoints. Possible values + /// include: 'westus', 'westeurope', 'southeastasia', 'eastus2', + /// 'westcentralus' + /// + public string AzureRegion1 { get; set; } + + /// + /// Subscription key in header + /// + public string SubscriptionKey { get; set; } + + /// + /// Gets the IFaceOperations. + /// + public virtual IFaceOperations Face { get; private set; } + + /// + /// Gets the IPerson. + /// + public virtual IPerson Person { get; private set; } + + /// + /// Gets the IPersonGroup. + /// + public virtual IPersonGroup PersonGroup { get; private set; } + + /// + /// Gets the IFaceList. + /// + public virtual IFaceList FaceList { get; private set; } + + /// + /// Initializes a new instance of the FaceAPI class. + /// + /// + /// Optional. The delegating handlers to add to the http client pipeline. + /// + public FaceAPI(params DelegatingHandler[] handlers) : base(handlers) + { + Initialize(); + } + + /// + /// Initializes a new instance of the FaceAPI class. + /// + /// + /// Optional. The http client handler used to handle http transport. + /// + /// + /// Optional. The delegating handlers to add to the http client pipeline. + /// + public FaceAPI(HttpClientHandler rootHandler, params DelegatingHandler[] handlers) : base(rootHandler, handlers) + { + Initialize(); + } + + /// + /// An optional partial-method to perform custom initialization. + /// + partial void CustomInitialize(); + /// + /// Initializes client properties. + /// + private void Initialize() + { + Face = new FaceOperations(this); + Person = new Person(this); + PersonGroup = new PersonGroup(this); + FaceList = new FaceList(this); + BaseUri = "https://{azureRegion}.api.cognitive.microsoft.com/face/v1.0"; + SerializationSettings = new JsonSerializerSettings + { + Formatting = Newtonsoft.Json.Formatting.Indented, + DateFormatHandling = Newtonsoft.Json.DateFormatHandling.IsoDateFormat, + DateTimeZoneHandling = Newtonsoft.Json.DateTimeZoneHandling.Utc, + NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore, + ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Serialize, + ContractResolver = new ReadOnlyJsonContractResolver(), + Converters = new List + { + new Iso8601TimeSpanConverter() + } + }; + DeserializationSettings = new JsonSerializerSettings + { + DateFormatHandling = Newtonsoft.Json.DateFormatHandling.IsoDateFormat, + DateTimeZoneHandling = Newtonsoft.Json.DateTimeZoneHandling.Utc, + NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore, + ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Serialize, + ContractResolver = new ReadOnlyJsonContractResolver(), + Converters = new List + { + new Iso8601TimeSpanConverter() + } + }; + CustomInitialize(); + } + } +} diff --git a/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceList.cs b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceList.cs new file mode 100644 index 000000000000..8715db57cd79 --- /dev/null +++ b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceList.cs @@ -0,0 +1,1400 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.Rest; + using Models; + using Newtonsoft.Json; + using System.Collections; + using System.Collections.Generic; + using System.IO; + using System.Net; + using System.Net.Http; + using System.Threading; + using System.Threading.Tasks; + + /// + /// FaceList operations. + /// + public partial class FaceList : IServiceOperations, IFaceList + { + /// + /// Initializes a new instance of the FaceList class. + /// + /// + /// Reference to the service client. + /// + /// + /// Thrown when a required parameter is null + /// + public FaceList(FaceAPI client) + { + if (client == null) + { + throw new System.ArgumentNullException("client"); + } + Client = client; + } + + /// + /// Gets a reference to the FaceAPI + /// + public FaceAPI Client { get; private set; } + + /// + /// Create an empty face list. Up to 64 face lists are allowed to exist in one + /// subscription. + /// + /// + /// Id referencing a particular face list. + /// + /// + /// Name of the face list, maximum length is 128. + /// + /// + /// Optional user defined data for the face list. Length should not exceed + /// 16KB. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task CreateWithHttpMessagesAsync(string faceListId, string name = default(string), string userData = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.AzureRegion1 == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); + } + if (faceListId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "faceListId"); + } + if (faceListId != null) + { + if (faceListId.Length > 64) + { + throw new ValidationException(ValidationRules.MaxLength, "faceListId", 64); + } + if (!System.Text.RegularExpressions.Regex.IsMatch(faceListId, "^[a-z0-9-_]+$")) + { + throw new ValidationException(ValidationRules.Pattern, "faceListId", "^[a-z0-9-_]+$"); + } + } + if (Client.SubscriptionKey == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); + } + if (name != null) + { + if (name.Length > 128) + { + throw new ValidationException(ValidationRules.MaxLength, "name", 128); + } + } + if (userData != null) + { + if (userData.Length > 16384) + { + throw new ValidationException(ValidationRules.MaxLength, "userData", 16384); + } + } + CreateFaceListRequest body = new CreateFaceListRequest(); + if (name != null || userData != null) + { + body.Name = name; + body.UserData = userData; + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("faceListId", faceListId); + tracingParameters.Add("body", body); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "Create", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "facelists/{faceListId}"; + _url = _url.Replace("{azureRegion}", Client.AzureRegion1); + _url = _url.Replace("{faceListId}", System.Uri.EscapeDataString(faceListId)); + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("PUT"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.SubscriptionKey != null) + { + if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) + { + _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); + } + _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + if(body != null) + { + _requestContent = Rest.Serialization.SafeJsonConvert.SerializeObject(body, Client.SerializationSettings); + _httpRequest.Content = new StringContent(_requestContent, System.Text.Encoding.UTF8); + _httpRequest.Content.Headers.ContentType =System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json; charset=utf-8"); + } + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + /// + /// Retrieve a face list's information. + /// + /// + /// Id referencing a Face List. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task> GetWithHttpMessagesAsync(string faceListId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.AzureRegion1 == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); + } + if (faceListId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "faceListId"); + } + if (faceListId != null) + { + if (faceListId.Length > 64) + { + throw new ValidationException(ValidationRules.MaxLength, "faceListId", 64); + } + if (!System.Text.RegularExpressions.Regex.IsMatch(faceListId, "^[a-z0-9-_]+$")) + { + throw new ValidationException(ValidationRules.Pattern, "faceListId", "^[a-z0-9-_]+$"); + } + } + if (Client.SubscriptionKey == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("faceListId", faceListId); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "Get", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "facelists/{faceListId}"; + _url = _url.Replace("{azureRegion}", Client.AzureRegion1); + _url = _url.Replace("{faceListId}", System.Uri.EscapeDataString(faceListId)); + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("GET"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.SubscriptionKey != null) + { + if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) + { + _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); + } + _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + // Deserialize Response + if ((int)_statusCode == 200) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + } + catch (JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); + } + } + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + /// + /// Update information of a face list. + /// + /// + /// Id referencing a Face List. + /// + /// + /// Name of the face list, maximum length is 128. + /// + /// + /// Optional user defined data for the face list. Length should not exceed + /// 16KB. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task UpdateWithHttpMessagesAsync(string faceListId, string name = default(string), string userData = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.AzureRegion1 == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); + } + if (faceListId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "faceListId"); + } + if (faceListId != null) + { + if (faceListId.Length > 64) + { + throw new ValidationException(ValidationRules.MaxLength, "faceListId", 64); + } + if (!System.Text.RegularExpressions.Regex.IsMatch(faceListId, "^[a-z0-9-_]+$")) + { + throw new ValidationException(ValidationRules.Pattern, "faceListId", "^[a-z0-9-_]+$"); + } + } + if (Client.SubscriptionKey == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); + } + if (name != null) + { + if (name.Length > 128) + { + throw new ValidationException(ValidationRules.MaxLength, "name", 128); + } + } + if (userData != null) + { + if (userData.Length > 16384) + { + throw new ValidationException(ValidationRules.MaxLength, "userData", 16384); + } + } + CreateFaceListRequest body = new CreateFaceListRequest(); + if (name != null || userData != null) + { + body.Name = name; + body.UserData = userData; + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("faceListId", faceListId); + tracingParameters.Add("body", body); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "Update", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "facelists/{faceListId}"; + _url = _url.Replace("{azureRegion}", Client.AzureRegion1); + _url = _url.Replace("{faceListId}", System.Uri.EscapeDataString(faceListId)); + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("PATCH"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.SubscriptionKey != null) + { + if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) + { + _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); + } + _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + if(body != null) + { + _requestContent = Rest.Serialization.SafeJsonConvert.SerializeObject(body, Client.SerializationSettings); + _httpRequest.Content = new StringContent(_requestContent, System.Text.Encoding.UTF8); + _httpRequest.Content.Headers.ContentType =System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json; charset=utf-8"); + } + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + /// + /// Delete an existing face list according to faceListId. Persisted face images + /// in the face list will also be deleted. + /// + /// + /// Id referencing a Face List. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task DeleteWithHttpMessagesAsync(string faceListId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.AzureRegion1 == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); + } + if (faceListId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "faceListId"); + } + if (faceListId != null) + { + if (faceListId.Length > 64) + { + throw new ValidationException(ValidationRules.MaxLength, "faceListId", 64); + } + if (!System.Text.RegularExpressions.Regex.IsMatch(faceListId, "^[a-z0-9-_]+$")) + { + throw new ValidationException(ValidationRules.Pattern, "faceListId", "^[a-z0-9-_]+$"); + } + } + if (Client.SubscriptionKey == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("faceListId", faceListId); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "Delete", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "facelists/{faceListId}"; + _url = _url.Replace("{azureRegion}", Client.AzureRegion1); + _url = _url.Replace("{faceListId}", System.Uri.EscapeDataString(faceListId)); + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("DELETE"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.SubscriptionKey != null) + { + if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) + { + _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); + } + _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + /// + /// Retrieve information about all existing face lists. Only faceListId, name + /// and userData will be returned. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task>> ListWithHttpMessagesAsync(Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.AzureRegion1 == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); + } + if (Client.SubscriptionKey == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "List", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "facelists"; + _url = _url.Replace("{azureRegion}", Client.AzureRegion1); + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("GET"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.SubscriptionKey != null) + { + if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) + { + _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); + } + _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse>(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + // Deserialize Response + if ((int)_statusCode == 200) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject>(_responseContent, Client.DeserializationSettings); + } + catch (JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); + } + } + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + /// + /// Delete an existing face from a face list (given by a persisitedFaceId and a + /// faceListId). Persisted image related to the face will also be deleted. + /// + /// + /// faceListId of an existing face list. + /// + /// + /// persistedFaceId of an existing face. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task DeleteFaceWithHttpMessagesAsync(string faceListId, string persistedFaceId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.AzureRegion1 == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); + } + if (faceListId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "faceListId"); + } + if (faceListId != null) + { + if (faceListId.Length > 64) + { + throw new ValidationException(ValidationRules.MaxLength, "faceListId", 64); + } + if (!System.Text.RegularExpressions.Regex.IsMatch(faceListId, "^[a-z0-9-_]+$")) + { + throw new ValidationException(ValidationRules.Pattern, "faceListId", "^[a-z0-9-_]+$"); + } + } + if (persistedFaceId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "persistedFaceId"); + } + if (Client.SubscriptionKey == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("faceListId", faceListId); + tracingParameters.Add("persistedFaceId", persistedFaceId); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "DeleteFace", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "facelists/{faceListId}/persistedFaces/{persistedFaceId}"; + _url = _url.Replace("{azureRegion}", Client.AzureRegion1); + _url = _url.Replace("{faceListId}", System.Uri.EscapeDataString(faceListId)); + _url = _url.Replace("{persistedFaceId}", System.Uri.EscapeDataString(persistedFaceId)); + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("DELETE"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.SubscriptionKey != null) + { + if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) + { + _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); + } + _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + /// + /// Add a face to a face list. The input face is specified as an image with a + /// targetFace rectangle. It returns a persistedFaceId representing the added + /// face, and persistedFaceId will not expire. + /// + /// + /// Id referencing a Face List. + /// + /// + /// User-specified data about the face list for any purpose. The maximum + /// length is 1KB. + /// + /// + /// A face rectangle to specify the target face to be added into the face list, + /// in the format of "targetFace=left,top,width,height". E.g. + /// "targetFace=10,10,100,100". If there is more than one face in the image, + /// targetFace is required to specify which face to add. No targetFace means + /// there is only one face detected in the entire image. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task AddFaceWithHttpMessagesAsync(string faceListId, string userData = default(string), string targetFace = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.AzureRegion1 == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); + } + if (faceListId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "faceListId"); + } + if (faceListId != null) + { + if (faceListId.Length > 64) + { + throw new ValidationException(ValidationRules.MaxLength, "faceListId", 64); + } + if (!System.Text.RegularExpressions.Regex.IsMatch(faceListId, "^[a-z0-9-_]+$")) + { + throw new ValidationException(ValidationRules.Pattern, "faceListId", "^[a-z0-9-_]+$"); + } + } + if (Client.SubscriptionKey == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("faceListId", faceListId); + tracingParameters.Add("userData", userData); + tracingParameters.Add("targetFace", targetFace); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "AddFace", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "facelists/{faceListId}/persistedFaces"; + _url = _url.Replace("{azureRegion}", Client.AzureRegion1); + _url = _url.Replace("{faceListId}", System.Uri.EscapeDataString(faceListId)); + List _queryParameters = new List(); + if (userData != null) + { + _queryParameters.Add(string.Format("userData={0}", System.Uri.EscapeDataString(userData))); + } + if (targetFace != null) + { + _queryParameters.Add(string.Format("targetFace={0}", System.Uri.EscapeDataString(targetFace))); + } + if (_queryParameters.Count > 0) + { + _url += "?" + string.Join("&", _queryParameters); + } + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("POST"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.SubscriptionKey != null) + { + if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) + { + _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); + } + _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + /// + /// Add a face to a face list. The input face is specified as an image with a + /// targetFace rectangle. It returns a persistedFaceId representing the added + /// face, and persistedFaceId will not expire. + /// + /// + /// Id referencing a Face List. + /// + /// + /// User-specified data about the face list for any purpose. The maximum + /// length is 1KB. + /// + /// + /// A face rectangle to specify the target face to be added into the face list, + /// in the format of "targetFace=left,top,width,height". E.g. + /// "targetFace=10,10,100,100". If there is more than one face in the image, + /// targetFace is required to specify which face to add. No targetFace means + /// there is only one face detected in the entire image. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task AddFaceFromStreamWithHttpMessagesAsync(string faceListId, string userData = default(string), string targetFace = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.AzureRegion1 == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); + } + if (faceListId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "faceListId"); + } + if (faceListId != null) + { + if (faceListId.Length > 64) + { + throw new ValidationException(ValidationRules.MaxLength, "faceListId", 64); + } + if (!System.Text.RegularExpressions.Regex.IsMatch(faceListId, "^[a-z0-9-_]+$")) + { + throw new ValidationException(ValidationRules.Pattern, "faceListId", "^[a-z0-9-_]+$"); + } + } + if (Client.SubscriptionKey == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("faceListId", faceListId); + tracingParameters.Add("userData", userData); + tracingParameters.Add("targetFace", targetFace); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "AddFaceFromStream", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "facelists/{faceListId}/persistedFaces"; + _url = _url.Replace("{azureRegion}", Client.AzureRegion1); + _url = _url.Replace("{faceListId}", System.Uri.EscapeDataString(faceListId)); + List _queryParameters = new List(); + if (userData != null) + { + _queryParameters.Add(string.Format("userData={0}", System.Uri.EscapeDataString(userData))); + } + if (targetFace != null) + { + _queryParameters.Add(string.Format("targetFace={0}", System.Uri.EscapeDataString(targetFace))); + } + if (_queryParameters.Count > 0) + { + _url += "?" + string.Join("&", _queryParameters); + } + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("POST"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.SubscriptionKey != null) + { + if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) + { + _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); + } + _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + } +} diff --git a/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceListExtensions.cs b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceListExtensions.cs new file mode 100644 index 000000000000..90a316dad1f6 --- /dev/null +++ b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceListExtensions.cs @@ -0,0 +1,363 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Models; + using System.Collections; + using System.Collections.Generic; + using System.Threading; + using System.Threading.Tasks; + + /// + /// Extension methods for FaceList. + /// + public static partial class FaceListExtensions + { + /// + /// Create an empty face list. Up to 64 face lists are allowed to exist in one + /// subscription. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Id referencing a particular face list. + /// + /// + /// Name of the face list, maximum length is 128. + /// + /// + /// Optional user defined data for the face list. Length should not exceed + /// 16KB. + /// + public static void Create(this IFaceList operations, string faceListId, string name = default(string), string userData = default(string)) + { + operations.CreateAsync(faceListId, name, userData).GetAwaiter().GetResult(); + } + + /// + /// Create an empty face list. Up to 64 face lists are allowed to exist in one + /// subscription. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Id referencing a particular face list. + /// + /// + /// Name of the face list, maximum length is 128. + /// + /// + /// Optional user defined data for the face list. Length should not exceed + /// 16KB. + /// + /// + /// The cancellation token. + /// + public static async Task CreateAsync(this IFaceList operations, string faceListId, string name = default(string), string userData = default(string), CancellationToken cancellationToken = default(CancellationToken)) + { + (await operations.CreateWithHttpMessagesAsync(faceListId, name, userData, null, cancellationToken).ConfigureAwait(false)).Dispose(); + } + + /// + /// Retrieve a face list's information. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Id referencing a Face List. + /// + public static GetFaceListResult Get(this IFaceList operations, string faceListId) + { + return operations.GetAsync(faceListId).GetAwaiter().GetResult(); + } + + /// + /// Retrieve a face list's information. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Id referencing a Face List. + /// + /// + /// The cancellation token. + /// + public static async Task GetAsync(this IFaceList operations, string faceListId, CancellationToken cancellationToken = default(CancellationToken)) + { + using (var _result = await operations.GetWithHttpMessagesAsync(faceListId, null, cancellationToken).ConfigureAwait(false)) + { + return _result.Body; + } + } + + /// + /// Update information of a face list. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Id referencing a Face List. + /// + /// + /// Name of the face list, maximum length is 128. + /// + /// + /// Optional user defined data for the face list. Length should not exceed + /// 16KB. + /// + public static void Update(this IFaceList operations, string faceListId, string name = default(string), string userData = default(string)) + { + operations.UpdateAsync(faceListId, name, userData).GetAwaiter().GetResult(); + } + + /// + /// Update information of a face list. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Id referencing a Face List. + /// + /// + /// Name of the face list, maximum length is 128. + /// + /// + /// Optional user defined data for the face list. Length should not exceed + /// 16KB. + /// + /// + /// The cancellation token. + /// + public static async Task UpdateAsync(this IFaceList operations, string faceListId, string name = default(string), string userData = default(string), CancellationToken cancellationToken = default(CancellationToken)) + { + (await operations.UpdateWithHttpMessagesAsync(faceListId, name, userData, null, cancellationToken).ConfigureAwait(false)).Dispose(); + } + + /// + /// Delete an existing face list according to faceListId. Persisted face images + /// in the face list will also be deleted. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Id referencing a Face List. + /// + public static void Delete(this IFaceList operations, string faceListId) + { + operations.DeleteAsync(faceListId).GetAwaiter().GetResult(); + } + + /// + /// Delete an existing face list according to faceListId. Persisted face images + /// in the face list will also be deleted. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Id referencing a Face List. + /// + /// + /// The cancellation token. + /// + public static async Task DeleteAsync(this IFaceList operations, string faceListId, CancellationToken cancellationToken = default(CancellationToken)) + { + (await operations.DeleteWithHttpMessagesAsync(faceListId, null, cancellationToken).ConfigureAwait(false)).Dispose(); + } + + /// + /// Retrieve information about all existing face lists. Only faceListId, name + /// and userData will be returned. + /// + /// + /// The operations group for this extension method. + /// + public static IList List(this IFaceList operations) + { + return operations.ListAsync().GetAwaiter().GetResult(); + } + + /// + /// Retrieve information about all existing face lists. Only faceListId, name + /// and userData will be returned. + /// + /// + /// The operations group for this extension method. + /// + /// + /// The cancellation token. + /// + public static async Task> ListAsync(this IFaceList operations, CancellationToken cancellationToken = default(CancellationToken)) + { + using (var _result = await operations.ListWithHttpMessagesAsync(null, cancellationToken).ConfigureAwait(false)) + { + return _result.Body; + } + } + + /// + /// Delete an existing face from a face list (given by a persisitedFaceId and a + /// faceListId). Persisted image related to the face will also be deleted. + /// + /// + /// The operations group for this extension method. + /// + /// + /// faceListId of an existing face list. + /// + /// + /// persistedFaceId of an existing face. + /// + public static void DeleteFace(this IFaceList operations, string faceListId, string persistedFaceId) + { + operations.DeleteFaceAsync(faceListId, persistedFaceId).GetAwaiter().GetResult(); + } + + /// + /// Delete an existing face from a face list (given by a persisitedFaceId and a + /// faceListId). Persisted image related to the face will also be deleted. + /// + /// + /// The operations group for this extension method. + /// + /// + /// faceListId of an existing face list. + /// + /// + /// persistedFaceId of an existing face. + /// + /// + /// The cancellation token. + /// + public static async Task DeleteFaceAsync(this IFaceList operations, string faceListId, string persistedFaceId, CancellationToken cancellationToken = default(CancellationToken)) + { + (await operations.DeleteFaceWithHttpMessagesAsync(faceListId, persistedFaceId, null, cancellationToken).ConfigureAwait(false)).Dispose(); + } + + /// + /// Add a face to a face list. The input face is specified as an image with a + /// targetFace rectangle. It returns a persistedFaceId representing the added + /// face, and persistedFaceId will not expire. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Id referencing a Face List. + /// + /// + /// User-specified data about the face list for any purpose. The maximum + /// length is 1KB. + /// + /// + /// A face rectangle to specify the target face to be added into the face list, + /// in the format of "targetFace=left,top,width,height". E.g. + /// "targetFace=10,10,100,100". If there is more than one face in the image, + /// targetFace is required to specify which face to add. No targetFace means + /// there is only one face detected in the entire image. + /// + public static void AddFace(this IFaceList operations, string faceListId, string userData = default(string), string targetFace = default(string)) + { + operations.AddFaceAsync(faceListId, userData, targetFace).GetAwaiter().GetResult(); + } + + /// + /// Add a face to a face list. The input face is specified as an image with a + /// targetFace rectangle. It returns a persistedFaceId representing the added + /// face, and persistedFaceId will not expire. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Id referencing a Face List. + /// + /// + /// User-specified data about the face list for any purpose. The maximum + /// length is 1KB. + /// + /// + /// A face rectangle to specify the target face to be added into the face list, + /// in the format of "targetFace=left,top,width,height". E.g. + /// "targetFace=10,10,100,100". If there is more than one face in the image, + /// targetFace is required to specify which face to add. No targetFace means + /// there is only one face detected in the entire image. + /// + /// + /// The cancellation token. + /// + public static async Task AddFaceAsync(this IFaceList operations, string faceListId, string userData = default(string), string targetFace = default(string), CancellationToken cancellationToken = default(CancellationToken)) + { + (await operations.AddFaceWithHttpMessagesAsync(faceListId, userData, targetFace, null, cancellationToken).ConfigureAwait(false)).Dispose(); + } + + /// + /// Add a face to a face list. The input face is specified as an image with a + /// targetFace rectangle. It returns a persistedFaceId representing the added + /// face, and persistedFaceId will not expire. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Id referencing a Face List. + /// + /// + /// User-specified data about the face list for any purpose. The maximum + /// length is 1KB. + /// + /// + /// A face rectangle to specify the target face to be added into the face list, + /// in the format of "targetFace=left,top,width,height". E.g. + /// "targetFace=10,10,100,100". If there is more than one face in the image, + /// targetFace is required to specify which face to add. No targetFace means + /// there is only one face detected in the entire image. + /// + public static void AddFaceFromStream(this IFaceList operations, string faceListId, string userData = default(string), string targetFace = default(string)) + { + operations.AddFaceFromStreamAsync(faceListId, userData, targetFace).GetAwaiter().GetResult(); + } + + /// + /// Add a face to a face list. The input face is specified as an image with a + /// targetFace rectangle. It returns a persistedFaceId representing the added + /// face, and persistedFaceId will not expire. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Id referencing a Face List. + /// + /// + /// User-specified data about the face list for any purpose. The maximum + /// length is 1KB. + /// + /// + /// A face rectangle to specify the target face to be added into the face list, + /// in the format of "targetFace=left,top,width,height". E.g. + /// "targetFace=10,10,100,100". If there is more than one face in the image, + /// targetFace is required to specify which face to add. No targetFace means + /// there is only one face detected in the entire image. + /// + /// + /// The cancellation token. + /// + public static async Task AddFaceFromStreamAsync(this IFaceList operations, string faceListId, string userData = default(string), string targetFace = default(string), CancellationToken cancellationToken = default(CancellationToken)) + { + (await operations.AddFaceFromStreamWithHttpMessagesAsync(faceListId, userData, targetFace, null, cancellationToken).ConfigureAwait(false)).Dispose(); + } + + } +} diff --git a/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceOperations.cs b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceOperations.cs new file mode 100644 index 000000000000..95954a94fc0e --- /dev/null +++ b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceOperations.cs @@ -0,0 +1,1263 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.Rest; + using Models; + using Newtonsoft.Json; + using System.Collections; + using System.Collections.Generic; + using System.IO; + using System.Net; + using System.Net.Http; + using System.Threading; + using System.Threading.Tasks; + + /// + /// FaceOperations operations. + /// + public partial class FaceOperations : IServiceOperations, IFaceOperations + { + /// + /// Initializes a new instance of the FaceOperations class. + /// + /// + /// Reference to the service client. + /// + /// + /// Thrown when a required parameter is null + /// + public FaceOperations(FaceAPI client) + { + if (client == null) + { + throw new System.ArgumentNullException("client"); + } + Client = client; + } + + /// + /// Gets a reference to the FaceAPI + /// + public FaceAPI Client { get; private set; } + + /// + /// Given query face's faceId, find the similar-looking faces from a faceId + /// array or a faceListId. + /// + /// + /// FaceId of the query face. User needs to call Face - Detect first to get a + /// valid faceId. Note that this faceId is not persisted and will expire 24 + /// hours after the detection call + /// + /// + /// An existing user-specified unique candidate face list, created in Face List + /// - Create a Face List. Face list contains a set of persistedFaceIds which + /// are persisted and will never expire. Parameter faceListId and faceIds + /// should not be provided at the same time + /// + /// + /// An array of candidate faceIds. All of them are created by Face - Detect and + /// the faceIds will expire 24 hours after the detection call. + /// + /// + /// The number of top similar faces returned. The valid range is [1, 1000]. + /// + /// + /// Similar face searching mode. It can be "matchPerson" or "matchFace". + /// Possible values include: 'matchPerson', 'matchFace' + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task>> FindSimilarWithHttpMessagesAsync(string faceId, string faceListId = default(string), IList faceIds = default(IList), int? maxNumOfCandidatesReturned = 20, string mode = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.AzureRegion1 == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); + } + if (Client.SubscriptionKey == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); + } + if (faceId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "faceId"); + } + if (faceId != null) + { + if (faceId.Length > 64) + { + throw new ValidationException(ValidationRules.MaxLength, "faceId", 64); + } + } + if (faceListId != null) + { + if (faceListId.Length > 64) + { + throw new ValidationException(ValidationRules.MaxLength, "faceListId", 64); + } + if (!System.Text.RegularExpressions.Regex.IsMatch(faceListId, "^[a-z0-9-_]+$")) + { + throw new ValidationException(ValidationRules.Pattern, "faceListId", "^[a-z0-9-_]+$"); + } + } + if (faceIds != null) + { + if (faceIds.Count > 1000) + { + throw new ValidationException(ValidationRules.MaxItems, "faceIds", 1000); + } + } + if (maxNumOfCandidatesReturned > 1000) + { + throw new ValidationException(ValidationRules.InclusiveMaximum, "maxNumOfCandidatesReturned", 1000); + } + if (maxNumOfCandidatesReturned < 1) + { + throw new ValidationException(ValidationRules.InclusiveMinimum, "maxNumOfCandidatesReturned", 1); + } + FindSimilarRequest body = new FindSimilarRequest(); + if (faceId != null || faceListId != null || faceIds != null || maxNumOfCandidatesReturned != null || mode != null) + { + body.FaceId = faceId; + body.FaceListId = faceListId; + body.FaceIds = faceIds; + body.MaxNumOfCandidatesReturned = maxNumOfCandidatesReturned; + body.Mode = mode; + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("body", body); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "FindSimilar", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "findsimilars"; + _url = _url.Replace("{azureRegion}", Client.AzureRegion1); + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("POST"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.SubscriptionKey != null) + { + if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) + { + _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); + } + _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + if(body != null) + { + _requestContent = Rest.Serialization.SafeJsonConvert.SerializeObject(body, Client.SerializationSettings); + _httpRequest.Content = new StringContent(_requestContent, System.Text.Encoding.UTF8); + _httpRequest.Content.Headers.ContentType =System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json; charset=utf-8"); + } + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse>(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + // Deserialize Response + if ((int)_statusCode == 200) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject>(_responseContent, Client.DeserializationSettings); + } + catch (JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); + } + } + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + /// + /// Divide candidate faces into groups based on face similarity. + /// + /// + /// Array of candidate faceId created by Face - Detect. The maximum is 1000 + /// faces + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task> GroupWithHttpMessagesAsync(IList faceIds, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.AzureRegion1 == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); + } + if (Client.SubscriptionKey == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); + } + if (faceIds == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "faceIds"); + } + if (faceIds != null) + { + if (faceIds.Count > 1000) + { + throw new ValidationException(ValidationRules.MaxItems, "faceIds", 1000); + } + } + GroupRequest body = new GroupRequest(); + if (faceIds != null) + { + body.FaceIds = faceIds; + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("body", body); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "Group", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "group"; + _url = _url.Replace("{azureRegion}", Client.AzureRegion1); + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("POST"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.SubscriptionKey != null) + { + if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) + { + _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); + } + _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + if(body != null) + { + _requestContent = Rest.Serialization.SafeJsonConvert.SerializeObject(body, Client.SerializationSettings); + _httpRequest.Content = new StringContent(_requestContent, System.Text.Encoding.UTF8); + _httpRequest.Content.Headers.ContentType =System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json; charset=utf-8"); + } + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + // Deserialize Response + if ((int)_statusCode == 200) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + } + catch (JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); + } + } + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + /// + /// Identify unknown faces from a person group. + /// + /// + /// personGroupId of the target person group, created by PersonGroups.Create + /// + /// + /// Array of candidate faceId created by Face - Detect. + /// + /// + /// The number of top similar faces returned. + /// + /// + /// Confidence threshold of identification, used to judge whether one face + /// belong to one person. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task>> IdentifyWithHttpMessagesAsync(string personGroupId, IList faceIds, int? maxNumOfCandidatesReturned = 1, double? confidenceThreshold = default(double?), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.AzureRegion1 == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); + } + if (Client.SubscriptionKey == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); + } + if (personGroupId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "personGroupId"); + } + if (faceIds == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "faceIds"); + } + if (faceIds != null) + { + if (faceIds.Count > 1000) + { + throw new ValidationException(ValidationRules.MaxItems, "faceIds", 1000); + } + } + if (maxNumOfCandidatesReturned > 1000) + { + throw new ValidationException(ValidationRules.InclusiveMaximum, "maxNumOfCandidatesReturned", 1000); + } + if (maxNumOfCandidatesReturned < 1) + { + throw new ValidationException(ValidationRules.InclusiveMinimum, "maxNumOfCandidatesReturned", 1); + } + if (confidenceThreshold > 1) + { + throw new ValidationException(ValidationRules.InclusiveMaximum, "confidenceThreshold", 1); + } + if (confidenceThreshold < 0) + { + throw new ValidationException(ValidationRules.InclusiveMinimum, "confidenceThreshold", 0); + } + IdentifyRequest body = new IdentifyRequest(); + if (personGroupId != null || faceIds != null || maxNumOfCandidatesReturned != null || confidenceThreshold != null) + { + body.PersonGroupId = personGroupId; + body.FaceIds = faceIds; + body.MaxNumOfCandidatesReturned = maxNumOfCandidatesReturned; + body.ConfidenceThreshold = confidenceThreshold; + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("body", body); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "Identify", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "identify"; + _url = _url.Replace("{azureRegion}", Client.AzureRegion1); + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("POST"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.SubscriptionKey != null) + { + if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) + { + _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); + } + _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + if(body != null) + { + _requestContent = Rest.Serialization.SafeJsonConvert.SerializeObject(body, Client.SerializationSettings); + _httpRequest.Content = new StringContent(_requestContent, System.Text.Encoding.UTF8); + _httpRequest.Content.Headers.ContentType =System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json; charset=utf-8"); + } + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse>(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + // Deserialize Response + if ((int)_statusCode == 200) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject>(_responseContent, Client.DeserializationSettings); + } + catch (JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); + } + } + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + /// + /// Verify whether two faces belong to a same person or whether one face + /// belongs to a person. + /// + /// + /// faceId the face, comes from Face - Detect + /// + /// + /// Specify a certain person in a person group. personId is created in + /// Persons.Create. + /// + /// + /// Using existing personGroupId and personId for fast loading a specified + /// person. personGroupId is created in Person Groups.Create. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task> VerifyWithHttpMessagesAsync(string faceId, string personId, string personGroupId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.AzureRegion1 == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); + } + if (Client.SubscriptionKey == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); + } + if (faceId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "faceId"); + } + if (faceId != null) + { + if (faceId.Length > 64) + { + throw new ValidationException(ValidationRules.MaxLength, "faceId", 64); + } + } + if (personId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "personId"); + } + if (personGroupId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "personGroupId"); + } + VerifyRequest body = new VerifyRequest(); + if (faceId != null || personId != null || personGroupId != null) + { + body.FaceId = faceId; + body.PersonId = personId; + body.PersonGroupId = personGroupId; + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("body", body); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "Verify", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "verify"; + _url = _url.Replace("{azureRegion}", Client.AzureRegion1); + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("POST"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.SubscriptionKey != null) + { + if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) + { + _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); + } + _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + if(body != null) + { + _requestContent = Rest.Serialization.SafeJsonConvert.SerializeObject(body, Client.SerializationSettings); + _httpRequest.Content = new StringContent(_requestContent, System.Text.Encoding.UTF8); + _httpRequest.Content.Headers.ContentType =System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json; charset=utf-8"); + } + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + // Deserialize Response + if ((int)_statusCode == 200) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + } + catch (JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); + } + } + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + /// + /// Detect human faces in an image and returns face locations, and optionally + /// with faceIds, landmarks, and attributes. + /// + /// + /// + /// + /// A value indicating whether the operation should return faceIds of detected + /// faces. + /// + /// + /// A value indicating whether the operation should return landmarks of the + /// detected faces. + /// + /// + /// Analyze and return the one or more specified face attributes in the + /// comma-separated string like "returnFaceAttributes=age,gender". Supported + /// face attributes include age, gender, headPose, smile, facialHair, glasses + /// and emotion. Note that each face attribute analysis has additional + /// computational and time cost. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task>> DetectWithHttpMessagesAsync(string url, bool? returnFaceId = true, bool? returnFaceLandmarks = false, string returnFaceAttributes = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.AzureRegion1 == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); + } + if (Client.SubscriptionKey == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); + } + if (url == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "url"); + } + ImageUrl imageUrl = new ImageUrl(); + if (url != null) + { + imageUrl.Url = url; + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("returnFaceId", returnFaceId); + tracingParameters.Add("returnFaceLandmarks", returnFaceLandmarks); + tracingParameters.Add("returnFaceAttributes", returnFaceAttributes); + tracingParameters.Add("imageUrl", imageUrl); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "Detect", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "detect"; + _url = _url.Replace("{azureRegion}", Client.AzureRegion1); + List _queryParameters = new List(); + if (returnFaceId != null) + { + _queryParameters.Add(string.Format("returnFaceId={0}", System.Uri.EscapeDataString(Rest.Serialization.SafeJsonConvert.SerializeObject(returnFaceId, Client.SerializationSettings).Trim('"')))); + } + if (returnFaceLandmarks != null) + { + _queryParameters.Add(string.Format("returnFaceLandmarks={0}", System.Uri.EscapeDataString(Rest.Serialization.SafeJsonConvert.SerializeObject(returnFaceLandmarks, Client.SerializationSettings).Trim('"')))); + } + if (returnFaceAttributes != null) + { + _queryParameters.Add(string.Format("returnFaceAttributes={0}", System.Uri.EscapeDataString(returnFaceAttributes))); + } + if (_queryParameters.Count > 0) + { + _url += "?" + string.Join("&", _queryParameters); + } + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("POST"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.SubscriptionKey != null) + { + if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) + { + _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); + } + _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + if(imageUrl != null) + { + _requestContent = Rest.Serialization.SafeJsonConvert.SerializeObject(imageUrl, Client.SerializationSettings); + _httpRequest.Content = new StringContent(_requestContent, System.Text.Encoding.UTF8); + _httpRequest.Content.Headers.ContentType =System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json; charset=utf-8"); + } + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse>(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + // Deserialize Response + if ((int)_statusCode == 200) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject>(_responseContent, Client.DeserializationSettings); + } + catch (JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); + } + } + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + /// + /// Detect human faces in an image and returns face locations, and optionally + /// with faceIds, landmarks, and attributes. + /// + /// + /// An image stream. + /// + /// + /// A value indicating whether the operation should return faceIds of detected + /// faces. + /// + /// + /// A value indicating whether the operation should return landmarks of the + /// detected faces. + /// + /// + /// Analyze and return the one or more specified face attributes in the + /// comma-separated string like "returnFaceAttributes=age,gender". Supported + /// face attributes include age, gender, headPose, smile, facialHair, glasses + /// and emotion. Note that each face attribute analysis has additional + /// computational and time cost. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task>> DetectInStreamWithHttpMessagesAsync(Stream image, bool? returnFaceId = true, bool? returnFaceLandmarks = false, string returnFaceAttributes = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.AzureRegion1 == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); + } + if (Client.SubscriptionKey == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); + } + if (image == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "image"); + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("returnFaceId", returnFaceId); + tracingParameters.Add("returnFaceLandmarks", returnFaceLandmarks); + tracingParameters.Add("returnFaceAttributes", returnFaceAttributes); + tracingParameters.Add("image", image); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "DetectInStream", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "detect"; + _url = _url.Replace("{azureRegion}", Client.AzureRegion1); + List _queryParameters = new List(); + if (returnFaceId != null) + { + _queryParameters.Add(string.Format("returnFaceId={0}", System.Uri.EscapeDataString(Rest.Serialization.SafeJsonConvert.SerializeObject(returnFaceId, Client.SerializationSettings).Trim('"')))); + } + if (returnFaceLandmarks != null) + { + _queryParameters.Add(string.Format("returnFaceLandmarks={0}", System.Uri.EscapeDataString(Rest.Serialization.SafeJsonConvert.SerializeObject(returnFaceLandmarks, Client.SerializationSettings).Trim('"')))); + } + if (returnFaceAttributes != null) + { + _queryParameters.Add(string.Format("returnFaceAttributes={0}", System.Uri.EscapeDataString(returnFaceAttributes))); + } + if (_queryParameters.Count > 0) + { + _url += "?" + string.Join("&", _queryParameters); + } + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("POST"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.SubscriptionKey != null) + { + if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) + { + _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); + } + _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + if(image == null) + { + throw new System.ArgumentNullException("image"); + } + if (image != null && image != Stream.Null) + { + _httpRequest.Content = new StreamContent(image); + _httpRequest.Content.Headers.ContentType =System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/octet-stream"); + } + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse>(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + // Deserialize Response + if ((int)_statusCode == 200) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject>(_responseContent, Client.DeserializationSettings); + } + catch (JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); + } + } + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + } +} diff --git a/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceOperationsExtensions.cs b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceOperationsExtensions.cs new file mode 100644 index 000000000000..3024140abfb7 --- /dev/null +++ b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/FaceOperationsExtensions.cs @@ -0,0 +1,368 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Models; + using System.Collections; + using System.Collections.Generic; + using System.IO; + using System.Threading; + using System.Threading.Tasks; + + /// + /// Extension methods for FaceOperations. + /// + public static partial class FaceOperationsExtensions + { + /// + /// Given query face's faceId, find the similar-looking faces from a faceId + /// array or a faceListId. + /// + /// + /// The operations group for this extension method. + /// + /// + /// FaceId of the query face. User needs to call Face - Detect first to get a + /// valid faceId. Note that this faceId is not persisted and will expire 24 + /// hours after the detection call + /// + /// + /// An existing user-specified unique candidate face list, created in Face List + /// - Create a Face List. Face list contains a set of persistedFaceIds which + /// are persisted and will never expire. Parameter faceListId and faceIds + /// should not be provided at the same time + /// + /// + /// An array of candidate faceIds. All of them are created by Face - Detect and + /// the faceIds will expire 24 hours after the detection call. + /// + /// + /// The number of top similar faces returned. The valid range is [1, 1000]. + /// + /// + /// Similar face searching mode. It can be "matchPerson" or "matchFace". + /// Possible values include: 'matchPerson', 'matchFace' + /// + public static IList FindSimilar(this IFaceOperations operations, string faceId, string faceListId = default(string), IList faceIds = default(IList), int? maxNumOfCandidatesReturned = 20, string mode = default(string)) + { + return operations.FindSimilarAsync(faceId, faceListId, faceIds, maxNumOfCandidatesReturned, mode).GetAwaiter().GetResult(); + } + + /// + /// Given query face's faceId, find the similar-looking faces from a faceId + /// array or a faceListId. + /// + /// + /// The operations group for this extension method. + /// + /// + /// FaceId of the query face. User needs to call Face - Detect first to get a + /// valid faceId. Note that this faceId is not persisted and will expire 24 + /// hours after the detection call + /// + /// + /// An existing user-specified unique candidate face list, created in Face List + /// - Create a Face List. Face list contains a set of persistedFaceIds which + /// are persisted and will never expire. Parameter faceListId and faceIds + /// should not be provided at the same time + /// + /// + /// An array of candidate faceIds. All of them are created by Face - Detect and + /// the faceIds will expire 24 hours after the detection call. + /// + /// + /// The number of top similar faces returned. The valid range is [1, 1000]. + /// + /// + /// Similar face searching mode. It can be "matchPerson" or "matchFace". + /// Possible values include: 'matchPerson', 'matchFace' + /// + /// + /// The cancellation token. + /// + public static async Task> FindSimilarAsync(this IFaceOperations operations, string faceId, string faceListId = default(string), IList faceIds = default(IList), int? maxNumOfCandidatesReturned = 20, string mode = default(string), CancellationToken cancellationToken = default(CancellationToken)) + { + using (var _result = await operations.FindSimilarWithHttpMessagesAsync(faceId, faceListId, faceIds, maxNumOfCandidatesReturned, mode, null, cancellationToken).ConfigureAwait(false)) + { + return _result.Body; + } + } + + /// + /// Divide candidate faces into groups based on face similarity. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Array of candidate faceId created by Face - Detect. The maximum is 1000 + /// faces + /// + public static GroupResponse Group(this IFaceOperations operations, IList faceIds) + { + return operations.GroupAsync(faceIds).GetAwaiter().GetResult(); + } + + /// + /// Divide candidate faces into groups based on face similarity. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Array of candidate faceId created by Face - Detect. The maximum is 1000 + /// faces + /// + /// + /// The cancellation token. + /// + public static async Task GroupAsync(this IFaceOperations operations, IList faceIds, CancellationToken cancellationToken = default(CancellationToken)) + { + using (var _result = await operations.GroupWithHttpMessagesAsync(faceIds, null, cancellationToken).ConfigureAwait(false)) + { + return _result.Body; + } + } + + /// + /// Identify unknown faces from a person group. + /// + /// + /// The operations group for this extension method. + /// + /// + /// personGroupId of the target person group, created by PersonGroups.Create + /// + /// + /// Array of candidate faceId created by Face - Detect. + /// + /// + /// The number of top similar faces returned. + /// + /// + /// Confidence threshold of identification, used to judge whether one face + /// belong to one person. + /// + public static IList Identify(this IFaceOperations operations, string personGroupId, IList faceIds, int? maxNumOfCandidatesReturned = 1, double? confidenceThreshold = default(double?)) + { + return operations.IdentifyAsync(personGroupId, faceIds, maxNumOfCandidatesReturned, confidenceThreshold).GetAwaiter().GetResult(); + } + + /// + /// Identify unknown faces from a person group. + /// + /// + /// The operations group for this extension method. + /// + /// + /// personGroupId of the target person group, created by PersonGroups.Create + /// + /// + /// Array of candidate faceId created by Face - Detect. + /// + /// + /// The number of top similar faces returned. + /// + /// + /// Confidence threshold of identification, used to judge whether one face + /// belong to one person. + /// + /// + /// The cancellation token. + /// + public static async Task> IdentifyAsync(this IFaceOperations operations, string personGroupId, IList faceIds, int? maxNumOfCandidatesReturned = 1, double? confidenceThreshold = default(double?), CancellationToken cancellationToken = default(CancellationToken)) + { + using (var _result = await operations.IdentifyWithHttpMessagesAsync(personGroupId, faceIds, maxNumOfCandidatesReturned, confidenceThreshold, null, cancellationToken).ConfigureAwait(false)) + { + return _result.Body; + } + } + + /// + /// Verify whether two faces belong to a same person or whether one face + /// belongs to a person. + /// + /// + /// The operations group for this extension method. + /// + /// + /// faceId the face, comes from Face - Detect + /// + /// + /// Specify a certain person in a person group. personId is created in + /// Persons.Create. + /// + /// + /// Using existing personGroupId and personId for fast loading a specified + /// person. personGroupId is created in Person Groups.Create. + /// + public static VerifyResult Verify(this IFaceOperations operations, string faceId, string personId, string personGroupId) + { + return operations.VerifyAsync(faceId, personId, personGroupId).GetAwaiter().GetResult(); + } + + /// + /// Verify whether two faces belong to a same person or whether one face + /// belongs to a person. + /// + /// + /// The operations group for this extension method. + /// + /// + /// faceId the face, comes from Face - Detect + /// + /// + /// Specify a certain person in a person group. personId is created in + /// Persons.Create. + /// + /// + /// Using existing personGroupId and personId for fast loading a specified + /// person. personGroupId is created in Person Groups.Create. + /// + /// + /// The cancellation token. + /// + public static async Task VerifyAsync(this IFaceOperations operations, string faceId, string personId, string personGroupId, CancellationToken cancellationToken = default(CancellationToken)) + { + using (var _result = await operations.VerifyWithHttpMessagesAsync(faceId, personId, personGroupId, null, cancellationToken).ConfigureAwait(false)) + { + return _result.Body; + } + } + + /// + /// Detect human faces in an image and returns face locations, and optionally + /// with faceIds, landmarks, and attributes. + /// + /// + /// The operations group for this extension method. + /// + /// + /// + /// + /// A value indicating whether the operation should return faceIds of detected + /// faces. + /// + /// + /// A value indicating whether the operation should return landmarks of the + /// detected faces. + /// + /// + /// Analyze and return the one or more specified face attributes in the + /// comma-separated string like "returnFaceAttributes=age,gender". Supported + /// face attributes include age, gender, headPose, smile, facialHair, glasses + /// and emotion. Note that each face attribute analysis has additional + /// computational and time cost. + /// + public static IList Detect(this IFaceOperations operations, string url, bool? returnFaceId = true, bool? returnFaceLandmarks = false, string returnFaceAttributes = default(string)) + { + return operations.DetectAsync(url, returnFaceId, returnFaceLandmarks, returnFaceAttributes).GetAwaiter().GetResult(); + } + + /// + /// Detect human faces in an image and returns face locations, and optionally + /// with faceIds, landmarks, and attributes. + /// + /// + /// The operations group for this extension method. + /// + /// + /// + /// + /// A value indicating whether the operation should return faceIds of detected + /// faces. + /// + /// + /// A value indicating whether the operation should return landmarks of the + /// detected faces. + /// + /// + /// Analyze and return the one or more specified face attributes in the + /// comma-separated string like "returnFaceAttributes=age,gender". Supported + /// face attributes include age, gender, headPose, smile, facialHair, glasses + /// and emotion. Note that each face attribute analysis has additional + /// computational and time cost. + /// + /// + /// The cancellation token. + /// + public static async Task> DetectAsync(this IFaceOperations operations, string url, bool? returnFaceId = true, bool? returnFaceLandmarks = false, string returnFaceAttributes = default(string), CancellationToken cancellationToken = default(CancellationToken)) + { + using (var _result = await operations.DetectWithHttpMessagesAsync(url, returnFaceId, returnFaceLandmarks, returnFaceAttributes, null, cancellationToken).ConfigureAwait(false)) + { + return _result.Body; + } + } + + /// + /// Detect human faces in an image and returns face locations, and optionally + /// with faceIds, landmarks, and attributes. + /// + /// + /// The operations group for this extension method. + /// + /// + /// An image stream. + /// + /// + /// A value indicating whether the operation should return faceIds of detected + /// faces. + /// + /// + /// A value indicating whether the operation should return landmarks of the + /// detected faces. + /// + /// + /// Analyze and return the one or more specified face attributes in the + /// comma-separated string like "returnFaceAttributes=age,gender". Supported + /// face attributes include age, gender, headPose, smile, facialHair, glasses + /// and emotion. Note that each face attribute analysis has additional + /// computational and time cost. + /// + public static IList DetectInStream(this IFaceOperations operations, Stream image, bool? returnFaceId = true, bool? returnFaceLandmarks = false, string returnFaceAttributes = default(string)) + { + return operations.DetectInStreamAsync(image, returnFaceId, returnFaceLandmarks, returnFaceAttributes).GetAwaiter().GetResult(); + } + + /// + /// Detect human faces in an image and returns face locations, and optionally + /// with faceIds, landmarks, and attributes. + /// + /// + /// The operations group for this extension method. + /// + /// + /// An image stream. + /// + /// + /// A value indicating whether the operation should return faceIds of detected + /// faces. + /// + /// + /// A value indicating whether the operation should return landmarks of the + /// detected faces. + /// + /// + /// Analyze and return the one or more specified face attributes in the + /// comma-separated string like "returnFaceAttributes=age,gender". Supported + /// face attributes include age, gender, headPose, smile, facialHair, glasses + /// and emotion. Note that each face attribute analysis has additional + /// computational and time cost. + /// + /// + /// The cancellation token. + /// + public static async Task> DetectInStreamAsync(this IFaceOperations operations, Stream image, bool? returnFaceId = true, bool? returnFaceLandmarks = false, string returnFaceAttributes = default(string), CancellationToken cancellationToken = default(CancellationToken)) + { + using (var _result = await operations.DetectInStreamWithHttpMessagesAsync(image, returnFaceId, returnFaceLandmarks, returnFaceAttributes, null, cancellationToken).ConfigureAwait(false)) + { + return _result.Body; + } + } + + } +} diff --git a/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IFaceAPI.cs b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IFaceAPI.cs new file mode 100644 index 000000000000..381fde544fad --- /dev/null +++ b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IFaceAPI.cs @@ -0,0 +1,65 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Models; + using Newtonsoft.Json; + + /// + /// An API for face detection, verification, and identification. + /// + public partial interface IFaceAPI : System.IDisposable + { + /// + /// The base URI of the service. + /// + + /// + /// Gets or sets json serialization settings. + /// + JsonSerializerSettings SerializationSettings { get; } + + /// + /// Gets or sets json deserialization settings. + /// + JsonSerializerSettings DeserializationSettings { get; } + + /// + /// Supported Azure regions for Face Detection endpoints. Possible + /// values include: 'westus', 'westeurope', 'southeastasia', 'eastus2', + /// 'westcentralus' + /// + string AzureRegion1 { get; set; } + + /// + /// Subscription key in header + /// + string SubscriptionKey { get; set; } + + + /// + /// Gets the IFaceOperations. + /// + IFaceOperations Face { get; } + + /// + /// Gets the IPerson. + /// + IPerson Person { get; } + + /// + /// Gets the IPersonGroup. + /// + IPersonGroup PersonGroup { get; } + + /// + /// Gets the IFaceList. + /// + IFaceList FaceList { get; } + + } +} diff --git a/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IFaceList.cs b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IFaceList.cs new file mode 100644 index 000000000000..8daaf8386d93 --- /dev/null +++ b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IFaceList.cs @@ -0,0 +1,227 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.Rest; + using Models; + using System.Collections; + using System.Collections.Generic; + using System.Threading; + using System.Threading.Tasks; + + /// + /// FaceList operations. + /// + public partial interface IFaceList + { + /// + /// Create an empty face list. Up to 64 face lists are allowed to exist + /// in one subscription. + /// + /// + /// Id referencing a particular face list. + /// + /// + /// Name of the face list, maximum length is 128. + /// + /// + /// Optional user defined data for the face list. Length should not + /// exceed 16KB. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when a required parameter is null + /// + Task CreateWithHttpMessagesAsync(string faceListId, string name = default(string), string userData = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// Retrieve a face list's information. + /// + /// + /// Id referencing a Face List. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + Task> GetWithHttpMessagesAsync(string faceListId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// Update information of a face list. + /// + /// + /// Id referencing a Face List. + /// + /// + /// Name of the face list, maximum length is 128. + /// + /// + /// Optional user defined data for the face list. Length should not + /// exceed 16KB. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when a required parameter is null + /// + Task UpdateWithHttpMessagesAsync(string faceListId, string name = default(string), string userData = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// Delete an existing face list according to faceListId. Persisted + /// face images in the face list will also be deleted. + /// + /// + /// Id referencing a Face List. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when a required parameter is null + /// + Task DeleteWithHttpMessagesAsync(string faceListId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// Retrieve information about all existing face lists. Only + /// faceListId, name and userData will be returned. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + Task>> ListWithHttpMessagesAsync(Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// Delete an existing face from a face list (given by a + /// persisitedFaceId and a faceListId). Persisted image related to the + /// face will also be deleted. + /// + /// + /// faceListId of an existing face list. + /// + /// + /// persistedFaceId of an existing face. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when a required parameter is null + /// + Task DeleteFaceWithHttpMessagesAsync(string faceListId, string persistedFaceId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// Add a face to a face list. The input face is specified as an image + /// with a targetFace rectangle. It returns a persistedFaceId + /// representing the added face, and persistedFaceId will not expire. + /// + /// + /// Id referencing a Face List. + /// + /// + /// User-specified data about the face list for any purpose. The + /// maximum length is 1KB. + /// + /// + /// A face rectangle to specify the target face to be added into the + /// face list, in the format of "targetFace=left,top,width,height". + /// E.g. "targetFace=10,10,100,100". If there is more than one face in + /// the image, targetFace is required to specify which face to add. No + /// targetFace means there is only one face detected in the entire + /// image. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when a required parameter is null + /// + Task AddFaceWithHttpMessagesAsync(string faceListId, string userData = default(string), string targetFace = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// Add a face to a face list. The input face is specified as an image + /// with a targetFace rectangle. It returns a persistedFaceId + /// representing the added face, and persistedFaceId will not expire. + /// + /// + /// Id referencing a Face List. + /// + /// + /// User-specified data about the face list for any purpose. The + /// maximum length is 1KB. + /// + /// + /// A face rectangle to specify the target face to be added into the + /// face list, in the format of "targetFace=left,top,width,height". + /// E.g. "targetFace=10,10,100,100". If there is more than one face in + /// the image, targetFace is required to specify which face to add. No + /// targetFace means there is only one face detected in the entire + /// image. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when a required parameter is null + /// + Task AddFaceFromStreamWithHttpMessagesAsync(string faceListId, string userData = default(string), string targetFace = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + } +} diff --git a/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IFaceOperations.cs b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IFaceOperations.cs new file mode 100644 index 000000000000..42bb76e30712 --- /dev/null +++ b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IFaceOperations.cs @@ -0,0 +1,230 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.Rest; + using Models; + using System.Collections; + using System.Collections.Generic; + using System.IO; + using System.Threading; + using System.Threading.Tasks; + + /// + /// FaceOperations operations. + /// + public partial interface IFaceOperations + { + /// + /// Given query face's faceId, find the similar-looking faces from a + /// faceId array or a faceListId. + /// + /// + /// FaceId of the query face. User needs to call Face - Detect first to + /// get a valid faceId. Note that this faceId is not persisted and will + /// expire 24 hours after the detection call + /// + /// + /// An existing user-specified unique candidate face list, created in + /// Face List - Create a Face List. Face list contains a set of + /// persistedFaceIds which are persisted and will never expire. + /// Parameter faceListId and faceIds should not be provided at the same + /// time + /// + /// + /// An array of candidate faceIds. All of them are created by Face - + /// Detect and the faceIds will expire 24 hours after the detection + /// call. + /// + /// + /// The number of top similar faces returned. The valid range is [1, + /// 1000]. + /// + /// + /// Similar face searching mode. It can be "matchPerson" or + /// "matchFace". Possible values include: 'matchPerson', 'matchFace' + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + Task>> FindSimilarWithHttpMessagesAsync(string faceId, string faceListId = default(string), IList faceIds = default(IList), int? maxNumOfCandidatesReturned = 20, string mode = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// Divide candidate faces into groups based on face similarity. + /// + /// + /// Array of candidate faceId created by Face - Detect. The maximum is + /// 1000 faces + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + Task> GroupWithHttpMessagesAsync(IList faceIds, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// Identify unknown faces from a person group. + /// + /// + /// personGroupId of the target person group, created by + /// PersonGroups.Create + /// + /// + /// Array of candidate faceId created by Face - Detect. + /// + /// + /// The number of top similar faces returned. + /// + /// + /// Confidence threshold of identification, used to judge whether one + /// face belong to one person. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + Task>> IdentifyWithHttpMessagesAsync(string personGroupId, IList faceIds, int? maxNumOfCandidatesReturned = 1, double? confidenceThreshold = default(double?), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// Verify whether two faces belong to a same person or whether one + /// face belongs to a person. + /// + /// + /// faceId the face, comes from Face - Detect + /// + /// + /// Specify a certain person in a person group. personId is created in + /// Persons.Create. + /// + /// + /// Using existing personGroupId and personId for fast loading a + /// specified person. personGroupId is created in Person Groups.Create. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + Task> VerifyWithHttpMessagesAsync(string faceId, string personId, string personGroupId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// Detect human faces in an image and returns face locations, and + /// optionally with faceIds, landmarks, and attributes. + /// + /// + /// + /// + /// A value indicating whether the operation should return faceIds of + /// detected faces. + /// + /// + /// A value indicating whether the operation should return landmarks of + /// the detected faces. + /// + /// + /// Analyze and return the one or more specified face attributes in the + /// comma-separated string like "returnFaceAttributes=age,gender". + /// Supported face attributes include age, gender, headPose, smile, + /// facialHair, glasses and emotion. Note that each face attribute + /// analysis has additional computational and time cost. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + Task>> DetectWithHttpMessagesAsync(string url, bool? returnFaceId = true, bool? returnFaceLandmarks = false, string returnFaceAttributes = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// Detect human faces in an image and returns face locations, and + /// optionally with faceIds, landmarks, and attributes. + /// + /// + /// An image stream. + /// + /// + /// A value indicating whether the operation should return faceIds of + /// detected faces. + /// + /// + /// A value indicating whether the operation should return landmarks of + /// the detected faces. + /// + /// + /// Analyze and return the one or more specified face attributes in the + /// comma-separated string like "returnFaceAttributes=age,gender". + /// Supported face attributes include age, gender, headPose, smile, + /// facialHair, glasses and emotion. Note that each face attribute + /// analysis has additional computational and time cost. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + Task>> DetectInStreamWithHttpMessagesAsync(Stream image, bool? returnFaceId = true, bool? returnFaceLandmarks = false, string returnFaceAttributes = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + } +} diff --git a/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IPerson.cs b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IPerson.cs new file mode 100644 index 000000000000..a62b1d019db2 --- /dev/null +++ b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IPerson.cs @@ -0,0 +1,307 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.Rest; + using Models; + using System.Collections; + using System.Collections.Generic; + using System.Threading; + using System.Threading.Tasks; + + /// + /// Person operations. + /// + public partial interface IPerson + { + /// + /// Create a new person in a specified person group. + /// + /// + /// Specifying the target person group to create the person. + /// + /// + /// Display name of the target person. The maximum length is 128. + /// + /// + /// Optional fields for user-provided data attached to a person. Size + /// limit is 16KB. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + Task> CreateWithHttpMessagesAsync(string personGroupId, string name = default(string), string userData = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// List all persons in a person group, and retrieve person information + /// (including personId, name, userData and persistedFaceIds of + /// registered faces of the person). + /// + /// + /// personGroupId of the target person group. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + Task>> ListWithHttpMessagesAsync(string personGroupId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// Delete an existing person from a person group. Persisted face + /// images of the person will also be deleted. + /// + /// + /// Specifying the person group containing the person. + /// + /// + /// The target personId to delete. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when a required parameter is null + /// + Task DeleteWithHttpMessagesAsync(string personGroupId, string personId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// Retrieve a person's information, including registered persisted + /// faces, name and userData. + /// + /// + /// Specifying the person group containing the target person. + /// + /// + /// Specifying the target person. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + Task> GetWithHttpMessagesAsync(string personGroupId, string personId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// Update name or userData of a person. + /// + /// + /// Specifying the person group containing the target person. + /// + /// + /// personId of the target person. + /// + /// + /// Display name of the target person. The maximum length is 128. + /// + /// + /// Optional fields for user-provided data attached to a person. Size + /// limit is 16KB. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when a required parameter is null + /// + Task UpdateWithHttpMessagesAsync(string personGroupId, string personId, string name = default(string), string userData = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// Delete a face from a person. Relative image for the persisted face + /// will also be deleted. + /// + /// + /// Specifying the person group containing the target person. + /// + /// + /// Specifying the person that the target persisted face belong to. + /// + /// + /// The persisted face to remove. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when a required parameter is null + /// + Task DeleteFaceWithHttpMessagesAsync(string personGroupId, string personId, string persistedFaceId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// Retrieve information about a persisted face (specified by + /// persistedFaceId, personId and its belonging personGroupId). + /// + /// + /// Specifying the person group containing the target person. + /// + /// + /// Specifying the target person that the face belongs to. + /// + /// + /// The persistedFaceId of the target persisted face of the person. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + Task> GetFaceWithHttpMessagesAsync(string personGroupId, string personId, string persistedFaceId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// Update a person persisted face's userData field. + /// + /// + /// Specifying the person group containing the target person. + /// + /// + /// personId of the target person. + /// + /// + /// persistedFaceId of target face, which is persisted and will not + /// expire. + /// + /// + /// User-provided data attached to the face. The size limit is 1KB + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when a required parameter is null + /// + Task UpdateFaceWithHttpMessagesAsync(string personGroupId, string personId, string persistedFaceId, string userData = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// Add a representative face to a person for identification. The input + /// face is specified as an image with a targetFace rectangle. + /// + /// + /// Specifying the person group containing the target person. + /// + /// + /// Target person that the face is added to. + /// + /// + /// User-specified data about the target face to add for any purpose. + /// The maximum length is 1KB. + /// + /// + /// A face rectangle to specify the target face to be added to a person + /// in the format of "targetFace=left,top,width,height". E.g. + /// "targetFace=10,10,100,100". If there is more than one face in the + /// image, targetFace is required to specify which face to add. No + /// targetFace means there is only one face detected in the entire + /// image. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when a required parameter is null + /// + Task AddFaceWithHttpMessagesAsync(string personGroupId, string personId, string userData = default(string), string targetFace = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// Add a representative face to a person for identification. The input + /// face is specified as an image with a targetFace rectangle. + /// + /// + /// Specifying the person group containing the target person. + /// + /// + /// Target person that the face is added to. + /// + /// + /// User-specified data about the target face to add for any purpose. + /// The maximum length is 1KB. + /// + /// + /// A face rectangle to specify the target face to be added to a + /// person, in the format of "targetFace=left,top,width,height". E.g. + /// "targetFace=10,10,100,100". If there is more than one face in the + /// image, targetFace is required to specify which face to add. No + /// targetFace means there is only one face detected in the entire + /// image. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when a required parameter is null + /// + Task AddFaceFromStreamWithHttpMessagesAsync(string personGroupId, string personId, string userData = default(string), string targetFace = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + } +} diff --git a/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IPersonGroup.cs b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IPersonGroup.cs new file mode 100644 index 000000000000..cfc666708345 --- /dev/null +++ b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/IPersonGroup.cs @@ -0,0 +1,189 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.Rest; + using Models; + using System.Collections; + using System.Collections.Generic; + using System.Threading; + using System.Threading.Tasks; + + /// + /// PersonGroup operations. + /// + public partial interface IPersonGroup + { + /// + /// Create a new person group with specified personGroupId, name and + /// user-provided userData. + /// + /// + /// User-provided personGroupId as a string. + /// + /// + /// Name of the face list, maximum length is 128. + /// + /// + /// Optional user defined data for the face list. Length should not + /// exceed 16KB. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when a required parameter is null + /// + Task CreateWithHttpMessagesAsync(string personGroupId, string name = default(string), string userData = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// Delete an existing person group. Persisted face images of all + /// people in the person group will also be deleted. + /// + /// + /// The personGroupId of the person group to be deleted. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when a required parameter is null + /// + Task DeleteWithHttpMessagesAsync(string personGroupId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// Retrieve the information of a person group, including its name and + /// userData. + /// + /// + /// personGroupId of the target person group. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + Task> GetWithHttpMessagesAsync(string personGroupId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// Update an existing person group's display name and userData. The + /// properties which does not appear in request body will not be + /// updated. + /// + /// + /// personGroupId of the person group to be updated. + /// + /// + /// Name of the face list, maximum length is 128. + /// + /// + /// Optional user defined data for the face list. Length should not + /// exceed 16KB. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when a required parameter is null + /// + Task UpdateWithHttpMessagesAsync(string personGroupId, string name = default(string), string userData = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// Retrieve the training status of a person group (completed or + /// ongoing). + /// + /// + /// personGroupId of target person group. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + Task> GetTrainingStatusWithHttpMessagesAsync(string personGroupId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// List person groups and their information. + /// + /// + /// List person groups from the least personGroupId greater than the + /// "start". + /// + /// + /// The number of person groups to list. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + Task>> ListWithHttpMessagesAsync(string start = default(string), int? top = 1000, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + /// + /// Queue a person group training task, the training task may not be + /// started immediately. + /// + /// + /// Target person group to be trained. + /// + /// + /// The headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when a required parameter is null + /// + Task TrainWithHttpMessagesAsync(string personGroupId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)); + } +} diff --git a/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/APIError.cs b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/APIError.cs new file mode 100644 index 000000000000..d72be15ff0fd --- /dev/null +++ b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/APIError.cs @@ -0,0 +1,46 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.CognitiveServices.Vision.Face; + using Newtonsoft.Json; + using System.Linq; + + /// + /// Error information returned by the API + /// + public partial class APIError + { + /// + /// Initializes a new instance of the APIError class. + /// + public APIError() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the APIError class. + /// + public APIError(Error error = default(Error)) + { + Error = error; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// + [JsonProperty(PropertyName = "error")] + public Error Error { get; set; } + + } +} diff --git a/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/APIErrorException.cs b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/APIErrorException.cs new file mode 100644 index 000000000000..3db32562480e --- /dev/null +++ b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/APIErrorException.cs @@ -0,0 +1,58 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.CognitiveServices.Vision.Face; + using Microsoft.Rest; + + /// + /// Exception thrown for an invalid response with APIError information. + /// + public class APIErrorException : RestException + { + /// + /// Gets information about the associated HTTP request. + /// + public HttpRequestMessageWrapper Request { get; set; } + + /// + /// Gets information about the associated HTTP response. + /// + public HttpResponseMessageWrapper Response { get; set; } + + /// + /// Gets or sets the body object. + /// + public APIError Body { get; set; } + + /// + /// Initializes a new instance of the APIErrorException class. + /// + public APIErrorException() + { + } + + /// + /// Initializes a new instance of the APIErrorException class. + /// + /// The exception message. + public APIErrorException(string message) + : this(message, null) + { + } + + /// + /// Initializes a new instance of the APIErrorException class. + /// + /// The exception message. + /// Inner exception. + public APIErrorException(string message, System.Exception innerException) + : base(message, innerException) + { + } + } +} diff --git a/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/AzureRegion.cs b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/AzureRegion.cs new file mode 100644 index 000000000000..bae1015b5d99 --- /dev/null +++ b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/AzureRegion.cs @@ -0,0 +1,22 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.CognitiveServices.Vision.Face; + + /// + /// Defines values for AzureRegion. + /// + public static class AzureRegion + { + public const string Westus = "westus"; + public const string Westeurope = "westeurope"; + public const string Southeastasia = "southeastasia"; + public const string Eastus2 = "eastus2"; + public const string Westcentralus = "westcentralus"; + } +} diff --git a/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreateFaceListRequest.cs b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreateFaceListRequest.cs new file mode 100644 index 000000000000..34d6fc3624a8 --- /dev/null +++ b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreateFaceListRequest.cs @@ -0,0 +1,83 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.CognitiveServices.Vision.Face; + using Microsoft.Rest; + using Newtonsoft.Json; + using System.Linq; + + /// + /// Request to create a face list. + /// + public partial class CreateFaceListRequest + { + /// + /// Initializes a new instance of the CreateFaceListRequest class. + /// + public CreateFaceListRequest() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the CreateFaceListRequest class. + /// + /// Name of the face list, maximum length is + /// 128. + /// Optional user defined data for the face + /// list. Length should not exceed 16KB. + public CreateFaceListRequest(string name = default(string), string userData = default(string)) + { + Name = name; + UserData = userData; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets name of the face list, maximum length is 128. + /// + [JsonProperty(PropertyName = "name")] + public string Name { get; set; } + + /// + /// Gets or sets optional user defined data for the face list. Length + /// should not exceed 16KB. + /// + [JsonProperty(PropertyName = "userData")] + public string UserData { get; set; } + + /// + /// Validate the object. + /// + /// + /// Thrown if validation fails + /// + public virtual void Validate() + { + if (Name != null) + { + if (Name.Length > 128) + { + throw new ValidationException(ValidationRules.MaxLength, "Name", 128); + } + } + if (UserData != null) + { + if (UserData.Length > 16384) + { + throw new ValidationException(ValidationRules.MaxLength, "UserData", 16384); + } + } + } + } +} diff --git a/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreatePersonGroupRequest.cs b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreatePersonGroupRequest.cs new file mode 100644 index 000000000000..00b0e7bb7110 --- /dev/null +++ b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreatePersonGroupRequest.cs @@ -0,0 +1,83 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.CognitiveServices.Vision.Face; + using Microsoft.Rest; + using Newtonsoft.Json; + using System.Linq; + + /// + /// Request to create a person group. + /// + public partial class CreatePersonGroupRequest + { + /// + /// Initializes a new instance of the CreatePersonGroupRequest class. + /// + public CreatePersonGroupRequest() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the CreatePersonGroupRequest class. + /// + /// Name of the face list, maximum length is + /// 128. + /// Optional user defined data for the face + /// list. Length should not exceed 16KB. + public CreatePersonGroupRequest(string name = default(string), string userData = default(string)) + { + Name = name; + UserData = userData; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets name of the face list, maximum length is 128. + /// + [JsonProperty(PropertyName = "name")] + public string Name { get; set; } + + /// + /// Gets or sets optional user defined data for the face list. Length + /// should not exceed 16KB. + /// + [JsonProperty(PropertyName = "userData")] + public string UserData { get; set; } + + /// + /// Validate the object. + /// + /// + /// Thrown if validation fails + /// + public virtual void Validate() + { + if (Name != null) + { + if (Name.Length > 128) + { + throw new ValidationException(ValidationRules.MaxLength, "Name", 128); + } + } + if (UserData != null) + { + if (UserData.Length > 16384) + { + throw new ValidationException(ValidationRules.MaxLength, "UserData", 16384); + } + } + } + } +} diff --git a/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreatePersonRequest.cs b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreatePersonRequest.cs new file mode 100644 index 000000000000..85565371fc9c --- /dev/null +++ b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreatePersonRequest.cs @@ -0,0 +1,84 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.CognitiveServices.Vision.Face; + using Microsoft.Rest; + using Newtonsoft.Json; + using System.Linq; + + /// + /// Request to create a person object. + /// + public partial class CreatePersonRequest + { + /// + /// Initializes a new instance of the CreatePersonRequest class. + /// + public CreatePersonRequest() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the CreatePersonRequest class. + /// + /// Display name of the target person. The maximum + /// length is 128. + /// Optional fields for user-provided data + /// attached to a person. Size limit is 16KB. + public CreatePersonRequest(string name = default(string), string userData = default(string)) + { + Name = name; + UserData = userData; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets display name of the target person. The maximum length + /// is 128. + /// + [JsonProperty(PropertyName = "name")] + public string Name { get; set; } + + /// + /// Gets or sets optional fields for user-provided data attached to a + /// person. Size limit is 16KB. + /// + [JsonProperty(PropertyName = "userData")] + public string UserData { get; set; } + + /// + /// Validate the object. + /// + /// + /// Thrown if validation fails + /// + public virtual void Validate() + { + if (Name != null) + { + if (Name.Length > 128) + { + throw new ValidationException(ValidationRules.MaxLength, "Name", 128); + } + } + if (UserData != null) + { + if (UserData.Length > 16384) + { + throw new ValidationException(ValidationRules.MaxLength, "UserData", 16384); + } + } + } + } +} diff --git a/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreatePersonResult.cs b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreatePersonResult.cs new file mode 100644 index 000000000000..31dce8c6b5ca --- /dev/null +++ b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/CreatePersonResult.cs @@ -0,0 +1,62 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.CognitiveServices.Vision.Face; + using Microsoft.Rest; + using Newtonsoft.Json; + using System.Linq; + + /// + /// Result of creating person. + /// + public partial class CreatePersonResult + { + /// + /// Initializes a new instance of the CreatePersonResult class. + /// + public CreatePersonResult() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the CreatePersonResult class. + /// + /// personID of the new created person. + public CreatePersonResult(string personId) + { + PersonId = personId; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets personID of the new created person. + /// + [JsonProperty(PropertyName = "personId")] + public string PersonId { get; set; } + + /// + /// Validate the object. + /// + /// + /// Thrown if validation fails + /// + public virtual void Validate() + { + if (PersonId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "PersonId"); + } + } + } +} diff --git a/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/DetectedFace.cs b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/DetectedFace.cs new file mode 100644 index 000000000000..2d66bad5ef6b --- /dev/null +++ b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/DetectedFace.cs @@ -0,0 +1,87 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.CognitiveServices.Vision.Face; + using Microsoft.Rest; + using Newtonsoft.Json; + using System.Linq; + + /// + /// Detected Face object. + /// + public partial class DetectedFace + { + /// + /// Initializes a new instance of the DetectedFace class. + /// + public DetectedFace() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the DetectedFace class. + /// + public DetectedFace(FaceRectangle faceRectangle, string faceId = default(string), FaceLandmarks faceLandmarks = default(FaceLandmarks)) + { + FaceId = faceId; + FaceRectangle = faceRectangle; + FaceLandmarks = faceLandmarks; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// + [JsonProperty(PropertyName = "faceId")] + public string FaceId { get; set; } + + /// + /// + [JsonProperty(PropertyName = "faceRectangle")] + public FaceRectangle FaceRectangle { get; set; } + + /// + /// + [JsonProperty(PropertyName = "faceLandmarks")] + public FaceLandmarks FaceLandmarks { get; set; } + + /// + /// Validate the object. + /// + /// + /// Thrown if validation fails + /// + public virtual void Validate() + { + if (FaceRectangle == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "FaceRectangle"); + } + if (FaceId != null) + { + if (FaceId.Length > 64) + { + throw new ValidationException(ValidationRules.MaxLength, "FaceId", 64); + } + } + if (FaceRectangle != null) + { + FaceRectangle.Validate(); + } + if (FaceLandmarks != null) + { + FaceLandmarks.Validate(); + } + } + } +} diff --git a/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/EmotionProperties.cs b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/EmotionProperties.cs new file mode 100644 index 000000000000..32ff00e6800e --- /dev/null +++ b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/EmotionProperties.cs @@ -0,0 +1,162 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.CognitiveServices.Vision.Face; + using Microsoft.Rest; + using Newtonsoft.Json; + using System.Linq; + + /// + /// Properties describing facial emotion. + /// + public partial class EmotionProperties + { + /// + /// Initializes a new instance of the EmotionProperties class. + /// + public EmotionProperties() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the EmotionProperties class. + /// + public EmotionProperties(double? anger = default(double?), double? contempt = default(double?), double? disgust = default(double?), double? fear = default(double?), double? happiness = default(double?), double? neutral = default(double?), double? sadness = default(double?), double? surprise = default(double?)) + { + Anger = anger; + Contempt = contempt; + Disgust = disgust; + Fear = fear; + Happiness = happiness; + Neutral = neutral; + Sadness = sadness; + Surprise = surprise; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// + [JsonProperty(PropertyName = "anger")] + public double? Anger { get; set; } + + /// + /// + [JsonProperty(PropertyName = "contempt")] + public double? Contempt { get; set; } + + /// + /// + [JsonProperty(PropertyName = "disgust")] + public double? Disgust { get; set; } + + /// + /// + [JsonProperty(PropertyName = "fear")] + public double? Fear { get; set; } + + /// + /// + [JsonProperty(PropertyName = "happiness")] + public double? Happiness { get; set; } + + /// + /// + [JsonProperty(PropertyName = "neutral")] + public double? Neutral { get; set; } + + /// + /// + [JsonProperty(PropertyName = "sadness")] + public double? Sadness { get; set; } + + /// + /// + [JsonProperty(PropertyName = "surprise")] + public double? Surprise { get; set; } + + /// + /// Validate the object. + /// + /// + /// Thrown if validation fails + /// + public virtual void Validate() + { + if (Anger > 1) + { + throw new ValidationException(ValidationRules.InclusiveMaximum, "Anger", 1); + } + if (Anger < 0) + { + throw new ValidationException(ValidationRules.InclusiveMinimum, "Anger", 0); + } + if (Contempt > 1) + { + throw new ValidationException(ValidationRules.InclusiveMaximum, "Contempt", 1); + } + if (Contempt < 0) + { + throw new ValidationException(ValidationRules.InclusiveMinimum, "Contempt", 0); + } + if (Disgust > 1) + { + throw new ValidationException(ValidationRules.InclusiveMaximum, "Disgust", 1); + } + if (Disgust < 0) + { + throw new ValidationException(ValidationRules.InclusiveMinimum, "Disgust", 0); + } + if (Fear > 1) + { + throw new ValidationException(ValidationRules.InclusiveMaximum, "Fear", 1); + } + if (Fear < 0) + { + throw new ValidationException(ValidationRules.InclusiveMinimum, "Fear", 0); + } + if (Happiness > 1) + { + throw new ValidationException(ValidationRules.InclusiveMaximum, "Happiness", 1); + } + if (Happiness < 0) + { + throw new ValidationException(ValidationRules.InclusiveMinimum, "Happiness", 0); + } + if (Neutral > 1) + { + throw new ValidationException(ValidationRules.InclusiveMaximum, "Neutral", 1); + } + if (Neutral < 0) + { + throw new ValidationException(ValidationRules.InclusiveMinimum, "Neutral", 0); + } + if (Sadness > 1) + { + throw new ValidationException(ValidationRules.InclusiveMaximum, "Sadness", 1); + } + if (Sadness < 0) + { + throw new ValidationException(ValidationRules.InclusiveMinimum, "Sadness", 0); + } + if (Surprise > 1) + { + throw new ValidationException(ValidationRules.InclusiveMaximum, "Surprise", 1); + } + if (Surprise < 0) + { + throw new ValidationException(ValidationRules.InclusiveMinimum, "Surprise", 0); + } + } + } +} diff --git a/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/Error.cs b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/Error.cs new file mode 100644 index 000000000000..566c578aa0c5 --- /dev/null +++ b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/Error.cs @@ -0,0 +1,52 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.CognitiveServices.Vision.Face; + using Newtonsoft.Json; + using System.Linq; + + /// + /// Error body. + /// + public partial class Error + { + /// + /// Initializes a new instance of the Error class. + /// + public Error() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the Error class. + /// + public Error(string code = default(string), string message = default(string)) + { + Code = code; + Message = message; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// + [JsonProperty(PropertyName = "code")] + public string Code { get; set; } + + /// + /// + [JsonProperty(PropertyName = "message")] + public string Message { get; set; } + + } +} diff --git a/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FaceAttributes.cs b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FaceAttributes.cs new file mode 100644 index 000000000000..b6c46e50f266 --- /dev/null +++ b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FaceAttributes.cs @@ -0,0 +1,125 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.CognitiveServices.Vision.Face; + using Microsoft.Rest; + using Newtonsoft.Json; + using System.Linq; + + /// + /// Face Attributes + /// + public partial class FaceAttributes + { + /// + /// Initializes a new instance of the FaceAttributes class. + /// + public FaceAttributes() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the FaceAttributes class. + /// + /// Age in years + /// Gender: male or female. Possible values + /// include: 'male', 'female' + /// Smile intensity, a number between [0,1] + /// + /// Glasses type. Possible values are + /// 'noGlasses', 'readingGlasses', 'sunglasses', 'swimmingGoggles'. + /// Possible values include: 'noGlasses', 'readingGlasses', + /// 'sunglasses', 'swimmingGoggles' + public FaceAttributes(double? age = default(double?), string gender = default(string), double? smile = default(double?), string glasses = default(string), FacialHairProperties facialHair = default(FacialHairProperties), HeadPoseProperties headPose = default(HeadPoseProperties), EmotionProperties emotion = default(EmotionProperties)) + { + Age = age; + Gender = gender; + Smile = smile; + Glasses = glasses; + FacialHair = facialHair; + HeadPose = headPose; + Emotion = emotion; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets age in years + /// + [JsonProperty(PropertyName = "age")] + public double? Age { get; set; } + + /// + /// Gets or sets gender: male or female. Possible values include: + /// 'male', 'female' + /// + [JsonProperty(PropertyName = "gender")] + public string Gender { get; set; } + + /// + /// Gets or sets smile intensity, a number between [0,1] + /// + [JsonProperty(PropertyName = "smile")] + public double? Smile { get; set; } + + /// + /// Gets or sets glasses type. Possible values are 'noGlasses', + /// 'readingGlasses', 'sunglasses', 'swimmingGoggles'. Possible values + /// include: 'noGlasses', 'readingGlasses', 'sunglasses', + /// 'swimmingGoggles' + /// + [JsonProperty(PropertyName = "glasses")] + public string Glasses { get; set; } + + /// + /// + [JsonProperty(PropertyName = "facialHair")] + public FacialHairProperties FacialHair { get; set; } + + /// + /// + [JsonProperty(PropertyName = "headPose")] + public HeadPoseProperties HeadPose { get; set; } + + /// + /// + [JsonProperty(PropertyName = "emotion")] + public EmotionProperties Emotion { get; set; } + + /// + /// Validate the object. + /// + /// + /// Thrown if validation fails + /// + public virtual void Validate() + { + if (Smile > 1) + { + throw new ValidationException(ValidationRules.InclusiveMaximum, "Smile", 1); + } + if (Smile < 0) + { + throw new ValidationException(ValidationRules.InclusiveMinimum, "Smile", 0); + } + if (FacialHair != null) + { + FacialHair.Validate(); + } + if (Emotion != null) + { + Emotion.Validate(); + } + } + } +} diff --git a/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FaceLandmarks.cs b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FaceLandmarks.cs new file mode 100644 index 000000000000..a9af41c0f227 --- /dev/null +++ b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FaceLandmarks.cs @@ -0,0 +1,320 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.CognitiveServices.Vision.Face; + using Newtonsoft.Json; + using System.Linq; + + /// + /// A collection of 27-point face landmarks pointing to the important + /// positions of face components. + /// + public partial class FaceLandmarks + { + /// + /// Initializes a new instance of the FaceLandmarks class. + /// + public FaceLandmarks() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the FaceLandmarks class. + /// + public FaceLandmarks(Position pupilLeft = default(Position), Position pupilRight = default(Position), Position noseTip = default(Position), Position mouthLeft = default(Position), Position mouthRight = default(Position), Position eyebrowLeftOuter = default(Position), Position eyebrowLeftInner = default(Position), Position eyeLeftOuter = default(Position), Position eyeLeftTop = default(Position), Position eyeLeftBottom = default(Position), Position eyeLeftInner = default(Position), Position eyebrowRightInner = default(Position), Position eyebrowRightOuter = default(Position), Position eyeRightInner = default(Position), Position eyeRightTop = default(Position), Position eyeRightBottom = default(Position), Position eyeRightOuter = default(Position), Position noseRootLeft = default(Position), Position noseRootRight = default(Position), Position noseLeftAlarTop = default(Position), Position noseRightAlarTop = default(Position), Position noseLeftAlarOutTip = default(Position), Position noseRightAlarOutTip = default(Position), Position upperLipTop = default(Position), Position upperLipBottom = default(Position), Position underLipTop = default(Position), Position underLipBottom = default(Position)) + { + PupilLeft = pupilLeft; + PupilRight = pupilRight; + NoseTip = noseTip; + MouthLeft = mouthLeft; + MouthRight = mouthRight; + EyebrowLeftOuter = eyebrowLeftOuter; + EyebrowLeftInner = eyebrowLeftInner; + EyeLeftOuter = eyeLeftOuter; + EyeLeftTop = eyeLeftTop; + EyeLeftBottom = eyeLeftBottom; + EyeLeftInner = eyeLeftInner; + EyebrowRightInner = eyebrowRightInner; + EyebrowRightOuter = eyebrowRightOuter; + EyeRightInner = eyeRightInner; + EyeRightTop = eyeRightTop; + EyeRightBottom = eyeRightBottom; + EyeRightOuter = eyeRightOuter; + NoseRootLeft = noseRootLeft; + NoseRootRight = noseRootRight; + NoseLeftAlarTop = noseLeftAlarTop; + NoseRightAlarTop = noseRightAlarTop; + NoseLeftAlarOutTip = noseLeftAlarOutTip; + NoseRightAlarOutTip = noseRightAlarOutTip; + UpperLipTop = upperLipTop; + UpperLipBottom = upperLipBottom; + UnderLipTop = underLipTop; + UnderLipBottom = underLipBottom; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// + [JsonProperty(PropertyName = "pupilLeft")] + public Position PupilLeft { get; set; } + + /// + /// + [JsonProperty(PropertyName = "pupilRight")] + public Position PupilRight { get; set; } + + /// + /// + [JsonProperty(PropertyName = "noseTip")] + public Position NoseTip { get; set; } + + /// + /// + [JsonProperty(PropertyName = "mouthLeft")] + public Position MouthLeft { get; set; } + + /// + /// + [JsonProperty(PropertyName = "mouthRight")] + public Position MouthRight { get; set; } + + /// + /// + [JsonProperty(PropertyName = "eyebrowLeftOuter")] + public Position EyebrowLeftOuter { get; set; } + + /// + /// + [JsonProperty(PropertyName = "eyebrowLeftInner")] + public Position EyebrowLeftInner { get; set; } + + /// + /// + [JsonProperty(PropertyName = "eyeLeftOuter")] + public Position EyeLeftOuter { get; set; } + + /// + /// + [JsonProperty(PropertyName = "eyeLeftTop")] + public Position EyeLeftTop { get; set; } + + /// + /// + [JsonProperty(PropertyName = "eyeLeftBottom")] + public Position EyeLeftBottom { get; set; } + + /// + /// + [JsonProperty(PropertyName = "eyeLeftInner")] + public Position EyeLeftInner { get; set; } + + /// + /// + [JsonProperty(PropertyName = "eyebrowRightInner")] + public Position EyebrowRightInner { get; set; } + + /// + /// + [JsonProperty(PropertyName = "eyebrowRightOuter")] + public Position EyebrowRightOuter { get; set; } + + /// + /// + [JsonProperty(PropertyName = "eyeRightInner")] + public Position EyeRightInner { get; set; } + + /// + /// + [JsonProperty(PropertyName = "eyeRightTop")] + public Position EyeRightTop { get; set; } + + /// + /// + [JsonProperty(PropertyName = "eyeRightBottom")] + public Position EyeRightBottom { get; set; } + + /// + /// + [JsonProperty(PropertyName = "eyeRightOuter")] + public Position EyeRightOuter { get; set; } + + /// + /// + [JsonProperty(PropertyName = "noseRootLeft")] + public Position NoseRootLeft { get; set; } + + /// + /// + [JsonProperty(PropertyName = "noseRootRight")] + public Position NoseRootRight { get; set; } + + /// + /// + [JsonProperty(PropertyName = "noseLeftAlarTop")] + public Position NoseLeftAlarTop { get; set; } + + /// + /// + [JsonProperty(PropertyName = "noseRightAlarTop")] + public Position NoseRightAlarTop { get; set; } + + /// + /// + [JsonProperty(PropertyName = "noseLeftAlarOutTip")] + public Position NoseLeftAlarOutTip { get; set; } + + /// + /// + [JsonProperty(PropertyName = "noseRightAlarOutTip")] + public Position NoseRightAlarOutTip { get; set; } + + /// + /// + [JsonProperty(PropertyName = "upperLipTop")] + public Position UpperLipTop { get; set; } + + /// + /// + [JsonProperty(PropertyName = "upperLipBottom")] + public Position UpperLipBottom { get; set; } + + /// + /// + [JsonProperty(PropertyName = "underLipTop")] + public Position UnderLipTop { get; set; } + + /// + /// + [JsonProperty(PropertyName = "underLipBottom")] + public Position UnderLipBottom { get; set; } + + /// + /// Validate the object. + /// + /// + /// Thrown if validation fails + /// + public virtual void Validate() + { + if (PupilLeft != null) + { + PupilLeft.Validate(); + } + if (PupilRight != null) + { + PupilRight.Validate(); + } + if (NoseTip != null) + { + NoseTip.Validate(); + } + if (MouthLeft != null) + { + MouthLeft.Validate(); + } + if (MouthRight != null) + { + MouthRight.Validate(); + } + if (EyebrowLeftOuter != null) + { + EyebrowLeftOuter.Validate(); + } + if (EyebrowLeftInner != null) + { + EyebrowLeftInner.Validate(); + } + if (EyeLeftOuter != null) + { + EyeLeftOuter.Validate(); + } + if (EyeLeftTop != null) + { + EyeLeftTop.Validate(); + } + if (EyeLeftBottom != null) + { + EyeLeftBottom.Validate(); + } + if (EyeLeftInner != null) + { + EyeLeftInner.Validate(); + } + if (EyebrowRightInner != null) + { + EyebrowRightInner.Validate(); + } + if (EyebrowRightOuter != null) + { + EyebrowRightOuter.Validate(); + } + if (EyeRightInner != null) + { + EyeRightInner.Validate(); + } + if (EyeRightTop != null) + { + EyeRightTop.Validate(); + } + if (EyeRightBottom != null) + { + EyeRightBottom.Validate(); + } + if (EyeRightOuter != null) + { + EyeRightOuter.Validate(); + } + if (NoseRootLeft != null) + { + NoseRootLeft.Validate(); + } + if (NoseRootRight != null) + { + NoseRootRight.Validate(); + } + if (NoseLeftAlarTop != null) + { + NoseLeftAlarTop.Validate(); + } + if (NoseRightAlarTop != null) + { + NoseRightAlarTop.Validate(); + } + if (NoseLeftAlarOutTip != null) + { + NoseLeftAlarOutTip.Validate(); + } + if (NoseRightAlarOutTip != null) + { + NoseRightAlarOutTip.Validate(); + } + if (UpperLipTop != null) + { + UpperLipTop.Validate(); + } + if (UpperLipBottom != null) + { + UpperLipBottom.Validate(); + } + if (UnderLipTop != null) + { + UnderLipTop.Validate(); + } + if (UnderLipBottom != null) + { + UnderLipBottom.Validate(); + } + } + } +} diff --git a/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FaceRectangle.cs b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FaceRectangle.cs new file mode 100644 index 000000000000..f7ee305ce802 --- /dev/null +++ b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FaceRectangle.cs @@ -0,0 +1,87 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.CognitiveServices.Vision.Face; + using Newtonsoft.Json; + using System.Linq; + + /// + /// A rectangle within which a face can be found + /// + public partial class FaceRectangle + { + /// + /// Initializes a new instance of the FaceRectangle class. + /// + public FaceRectangle() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the FaceRectangle class. + /// + /// The width of the rectangle, in pixels. + /// The height of the rectangle, in + /// pixels. + /// The distance from the left edge if the image to + /// the left edge of the rectangle, in pixels. + /// The distance from the top edge if the image to + /// the top edge of the rectangle, in pixels. + public FaceRectangle(int width, int height, int left, int top) + { + Width = width; + Height = height; + Left = left; + Top = top; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets the width of the rectangle, in pixels. + /// + [JsonProperty(PropertyName = "width")] + public int Width { get; set; } + + /// + /// Gets or sets the height of the rectangle, in pixels. + /// + [JsonProperty(PropertyName = "height")] + public int Height { get; set; } + + /// + /// Gets or sets the distance from the left edge if the image to the + /// left edge of the rectangle, in pixels. + /// + [JsonProperty(PropertyName = "left")] + public int Left { get; set; } + + /// + /// Gets or sets the distance from the top edge if the image to the top + /// edge of the rectangle, in pixels. + /// + [JsonProperty(PropertyName = "top")] + public int Top { get; set; } + + /// + /// Validate the object. + /// + /// + /// Thrown if validation fails + /// + public virtual void Validate() + { + //Nothing to validate + } + } +} diff --git a/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FacialHairProperties.cs b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FacialHairProperties.cs new file mode 100644 index 000000000000..584608af5922 --- /dev/null +++ b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FacialHairProperties.cs @@ -0,0 +1,92 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.CognitiveServices.Vision.Face; + using Microsoft.Rest; + using Newtonsoft.Json; + using System.Linq; + + /// + /// Properties describing facial hair attributes. + /// + public partial class FacialHairProperties + { + /// + /// Initializes a new instance of the FacialHairProperties class. + /// + public FacialHairProperties() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the FacialHairProperties class. + /// + public FacialHairProperties(double? mustache = default(double?), double? beard = default(double?), double? sideburns = default(double?)) + { + Mustache = mustache; + Beard = beard; + Sideburns = sideburns; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// + [JsonProperty(PropertyName = "mustache")] + public double? Mustache { get; set; } + + /// + /// + [JsonProperty(PropertyName = "beard")] + public double? Beard { get; set; } + + /// + /// + [JsonProperty(PropertyName = "sideburns")] + public double? Sideburns { get; set; } + + /// + /// Validate the object. + /// + /// + /// Thrown if validation fails + /// + public virtual void Validate() + { + if (Mustache > 1) + { + throw new ValidationException(ValidationRules.InclusiveMaximum, "Mustache", 1); + } + if (Mustache < 0) + { + throw new ValidationException(ValidationRules.InclusiveMinimum, "Mustache", 0); + } + if (Beard > 1) + { + throw new ValidationException(ValidationRules.InclusiveMaximum, "Beard", 1); + } + if (Beard < 0) + { + throw new ValidationException(ValidationRules.InclusiveMinimum, "Beard", 0); + } + if (Sideburns > 1) + { + throw new ValidationException(ValidationRules.InclusiveMaximum, "Sideburns", 1); + } + if (Sideburns < 0) + { + throw new ValidationException(ValidationRules.InclusiveMinimum, "Sideburns", 0); + } + } + } +} diff --git a/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FindSimilarRequest.cs b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FindSimilarRequest.cs new file mode 100644 index 000000000000..95e803005ae7 --- /dev/null +++ b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/FindSimilarRequest.cs @@ -0,0 +1,151 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.CognitiveServices.Vision.Face; + using Microsoft.Rest; + using Newtonsoft.Json; + using System.Collections; + using System.Collections.Generic; + using System.Linq; + + /// + /// Request body for find similar operation. + /// + public partial class FindSimilarRequest + { + /// + /// Initializes a new instance of the FindSimilarRequest class. + /// + public FindSimilarRequest() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the FindSimilarRequest class. + /// + /// FaceId of the query face. User needs to call + /// Face - Detect first to get a valid faceId. Note that this faceId is + /// not persisted and will expire 24 hours after the detection + /// call + /// An existing user-specified unique + /// candidate face list, created in Face List - Create a Face List. + /// Face list contains a set of persistedFaceIds which are persisted + /// and will never expire. Parameter faceListId and faceIds should not + /// be provided at the same time + /// An array of candidate faceIds. All of them + /// are created by Face - Detect and the faceIds will expire 24 hours + /// after the detection call. + /// The number of top similar + /// faces returned. The valid range is [1, 1000]. + /// Similar face searching mode. It can be + /// "matchPerson" or "matchFace". Possible values include: + /// 'matchPerson', 'matchFace' + public FindSimilarRequest(string faceId, string faceListId = default(string), IList faceIds = default(IList), int? maxNumOfCandidatesReturned = default(int?), string mode = default(string)) + { + FaceId = faceId; + FaceListId = faceListId; + FaceIds = faceIds; + MaxNumOfCandidatesReturned = maxNumOfCandidatesReturned; + Mode = mode; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets faceId of the query face. User needs to call Face - + /// Detect first to get a valid faceId. Note that this faceId is not + /// persisted and will expire 24 hours after the detection call + /// + [JsonProperty(PropertyName = "faceId")] + public string FaceId { get; set; } + + /// + /// Gets or sets an existing user-specified unique candidate face list, + /// created in Face List - Create a Face List. Face list contains a set + /// of persistedFaceIds which are persisted and will never expire. + /// Parameter faceListId and faceIds should not be provided at the same + /// time + /// + [JsonProperty(PropertyName = "faceListId")] + public string FaceListId { get; set; } + + /// + /// Gets or sets an array of candidate faceIds. All of them are created + /// by Face - Detect and the faceIds will expire 24 hours after the + /// detection call. + /// + [JsonProperty(PropertyName = "faceIds")] + public IList FaceIds { get; set; } + + /// + /// Gets or sets the number of top similar faces returned. The valid + /// range is [1, 1000]. + /// + [JsonProperty(PropertyName = "maxNumOfCandidatesReturned")] + public int? MaxNumOfCandidatesReturned { get; set; } + + /// + /// Gets or sets similar face searching mode. It can be "matchPerson" + /// or "matchFace". Possible values include: 'matchPerson', 'matchFace' + /// + [JsonProperty(PropertyName = "mode")] + public string Mode { get; set; } + + /// + /// Validate the object. + /// + /// + /// Thrown if validation fails + /// + public virtual void Validate() + { + if (FaceId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "FaceId"); + } + if (FaceId != null) + { + if (FaceId.Length > 64) + { + throw new ValidationException(ValidationRules.MaxLength, "FaceId", 64); + } + } + if (FaceListId != null) + { + if (FaceListId.Length > 64) + { + throw new ValidationException(ValidationRules.MaxLength, "FaceListId", 64); + } + if (!System.Text.RegularExpressions.Regex.IsMatch(FaceListId, "^[a-z0-9-_]+$")) + { + throw new ValidationException(ValidationRules.Pattern, "FaceListId", "^[a-z0-9-_]+$"); + } + } + if (FaceIds != null) + { + if (FaceIds.Count > 1000) + { + throw new ValidationException(ValidationRules.MaxItems, "FaceIds", 1000); + } + } + if (MaxNumOfCandidatesReturned > 1000) + { + throw new ValidationException(ValidationRules.InclusiveMaximum, "MaxNumOfCandidatesReturned", 1000); + } + if (MaxNumOfCandidatesReturned < 1) + { + throw new ValidationException(ValidationRules.InclusiveMinimum, "MaxNumOfCandidatesReturned", 1); + } + } + } +} diff --git a/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/GetFaceListResult.cs b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/GetFaceListResult.cs new file mode 100644 index 000000000000..8ba762f2210e --- /dev/null +++ b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/GetFaceListResult.cs @@ -0,0 +1,105 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.CognitiveServices.Vision.Face; + using Microsoft.Rest; + using Newtonsoft.Json; + using System.Linq; + + /// + /// Result of the GetFaceList operation. + /// + public partial class GetFaceListResult + { + /// + /// Initializes a new instance of the GetFaceListResult class. + /// + public GetFaceListResult() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the GetFaceListResult class. + /// + /// faceListId of the target face + /// list. + /// Face list's display name. + /// User-provided data attached to this face + /// list. + public GetFaceListResult(string faceListId, string name = default(string), string userData = default(string)) + { + FaceListId = faceListId; + Name = name; + UserData = userData; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets faceListId of the target face list. + /// + [JsonProperty(PropertyName = "faceListId")] + public string FaceListId { get; set; } + + /// + /// Gets or sets face list's display name. + /// + [JsonProperty(PropertyName = "name")] + public string Name { get; set; } + + /// + /// Gets or sets user-provided data attached to this face list. + /// + [JsonProperty(PropertyName = "userData")] + public string UserData { get; set; } + + /// + /// Validate the object. + /// + /// + /// Thrown if validation fails + /// + public virtual void Validate() + { + if (FaceListId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "FaceListId"); + } + if (FaceListId != null) + { + if (FaceListId.Length > 64) + { + throw new ValidationException(ValidationRules.MaxLength, "FaceListId", 64); + } + if (!System.Text.RegularExpressions.Regex.IsMatch(FaceListId, "^[a-z0-9-_]+$")) + { + throw new ValidationException(ValidationRules.Pattern, "FaceListId", "^[a-z0-9-_]+$"); + } + } + if (Name != null) + { + if (Name.Length > 128) + { + throw new ValidationException(ValidationRules.MaxLength, "Name", 128); + } + } + if (UserData != null) + { + if (UserData.Length > 16384) + { + throw new ValidationException(ValidationRules.MaxLength, "UserData", 16384); + } + } + } + } +} diff --git a/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/GroupRequest.cs b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/GroupRequest.cs new file mode 100644 index 000000000000..426fef0c5f5a --- /dev/null +++ b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/GroupRequest.cs @@ -0,0 +1,73 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.CognitiveServices.Vision.Face; + using Microsoft.Rest; + using Newtonsoft.Json; + using System.Collections; + using System.Collections.Generic; + using System.Linq; + + /// + /// Request body for group request. + /// + public partial class GroupRequest + { + /// + /// Initializes a new instance of the GroupRequest class. + /// + public GroupRequest() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the GroupRequest class. + /// + /// Array of candidate faceId created by Face - + /// Detect. The maximum is 1000 faces + public GroupRequest(IList faceIds) + { + FaceIds = faceIds; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets array of candidate faceId created by Face - Detect. + /// The maximum is 1000 faces + /// + [JsonProperty(PropertyName = "faceIds")] + public IList FaceIds { get; set; } + + /// + /// Validate the object. + /// + /// + /// Thrown if validation fails + /// + public virtual void Validate() + { + if (FaceIds == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "FaceIds"); + } + if (FaceIds != null) + { + if (FaceIds.Count > 1000) + { + throw new ValidationException(ValidationRules.MaxItems, "FaceIds", 1000); + } + } + } + } +} diff --git a/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/GroupResponse.cs b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/GroupResponse.cs new file mode 100644 index 000000000000..4c93668bfd58 --- /dev/null +++ b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/GroupResponse.cs @@ -0,0 +1,76 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.CognitiveServices.Vision.Face; + using Microsoft.Rest; + using Newtonsoft.Json; + using System.Collections; + using System.Collections.Generic; + using System.Linq; + + /// + /// An array of face groups based on face similarity. + /// + public partial class GroupResponse + { + /// + /// Initializes a new instance of the GroupResponse class. + /// + public GroupResponse() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the GroupResponse class. + /// + /// A partition of the original faces based on + /// face similarity. Groups are ranked by number of faces + /// Face ids array of faces that cannot find + /// any similar faces from original faces. + public GroupResponse(IList> groups, IList messyGroup = default(IList)) + { + Groups = groups; + MessyGroup = messyGroup; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets a partition of the original faces based on face + /// similarity. Groups are ranked by number of faces + /// + [JsonProperty(PropertyName = "groups")] + public IList> Groups { get; set; } + + /// + /// Gets or sets face ids array of faces that cannot find any similar + /// faces from original faces. + /// + [JsonProperty(PropertyName = "messyGroup")] + public IList MessyGroup { get; set; } + + /// + /// Validate the object. + /// + /// + /// Thrown if validation fails + /// + public virtual void Validate() + { + if (Groups == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "Groups"); + } + } + } +} diff --git a/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/HeadPoseProperties.cs b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/HeadPoseProperties.cs new file mode 100644 index 000000000000..7cb1bc37aa9b --- /dev/null +++ b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/HeadPoseProperties.cs @@ -0,0 +1,58 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.CognitiveServices.Vision.Face; + using Newtonsoft.Json; + using System.Linq; + + /// + /// Properties indicating head pose of the face. + /// + public partial class HeadPoseProperties + { + /// + /// Initializes a new instance of the HeadPoseProperties class. + /// + public HeadPoseProperties() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the HeadPoseProperties class. + /// + public HeadPoseProperties(double? roll = default(double?), double? yaw = default(double?), double? pitch = default(double?)) + { + Roll = roll; + Yaw = yaw; + Pitch = pitch; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// + [JsonProperty(PropertyName = "roll")] + public double? Roll { get; set; } + + /// + /// + [JsonProperty(PropertyName = "yaw")] + public double? Yaw { get; set; } + + /// + /// + [JsonProperty(PropertyName = "pitch")] + public double? Pitch { get; set; } + + } +} diff --git a/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/IdentifyRequest.cs b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/IdentifyRequest.cs new file mode 100644 index 000000000000..1772ab5208ee --- /dev/null +++ b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/IdentifyRequest.cs @@ -0,0 +1,122 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.CognitiveServices.Vision.Face; + using Microsoft.Rest; + using Newtonsoft.Json; + using System.Collections; + using System.Collections.Generic; + using System.Linq; + + /// + /// Request body for identify face operation. + /// + public partial class IdentifyRequest + { + /// + /// Initializes a new instance of the IdentifyRequest class. + /// + public IdentifyRequest() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the IdentifyRequest class. + /// + /// personGroupId of the target person + /// group, created by PersonGroups.Create + /// Array of candidate faceId created by Face - + /// Detect. + /// The number of top similar + /// faces returned. + /// Confidence threshold of + /// identification, used to judge whether one face belong to one + /// person. + public IdentifyRequest(string personGroupId, IList faceIds, int? maxNumOfCandidatesReturned = default(int?), double? confidenceThreshold = default(double?)) + { + PersonGroupId = personGroupId; + FaceIds = faceIds; + MaxNumOfCandidatesReturned = maxNumOfCandidatesReturned; + ConfidenceThreshold = confidenceThreshold; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets personGroupId of the target person group, created by + /// PersonGroups.Create + /// + [JsonProperty(PropertyName = "personGroupId")] + public string PersonGroupId { get; set; } + + /// + /// Gets or sets array of candidate faceId created by Face - Detect. + /// + [JsonProperty(PropertyName = "faceIds")] + public IList FaceIds { get; set; } + + /// + /// Gets or sets the number of top similar faces returned. + /// + [JsonProperty(PropertyName = "maxNumOfCandidatesReturned")] + public int? MaxNumOfCandidatesReturned { get; set; } + + /// + /// Gets or sets confidence threshold of identification, used to judge + /// whether one face belong to one person. + /// + [JsonProperty(PropertyName = "confidenceThreshold")] + public double? ConfidenceThreshold { get; set; } + + /// + /// Validate the object. + /// + /// + /// Thrown if validation fails + /// + public virtual void Validate() + { + if (PersonGroupId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "PersonGroupId"); + } + if (FaceIds == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "FaceIds"); + } + if (FaceIds != null) + { + if (FaceIds.Count > 1000) + { + throw new ValidationException(ValidationRules.MaxItems, "FaceIds", 1000); + } + } + if (MaxNumOfCandidatesReturned > 1000) + { + throw new ValidationException(ValidationRules.InclusiveMaximum, "MaxNumOfCandidatesReturned", 1000); + } + if (MaxNumOfCandidatesReturned < 1) + { + throw new ValidationException(ValidationRules.InclusiveMinimum, "MaxNumOfCandidatesReturned", 1); + } + if (ConfidenceThreshold > 1) + { + throw new ValidationException(ValidationRules.InclusiveMaximum, "ConfidenceThreshold", 1); + } + if (ConfidenceThreshold < 0) + { + throw new ValidationException(ValidationRules.InclusiveMinimum, "ConfidenceThreshold", 0); + } + } + } +} diff --git a/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/IdentifyResultCandidate.cs b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/IdentifyResultCandidate.cs new file mode 100644 index 000000000000..e07214df215d --- /dev/null +++ b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/IdentifyResultCandidate.cs @@ -0,0 +1,80 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.CognitiveServices.Vision.Face; + using Microsoft.Rest; + using Newtonsoft.Json; + using System.Linq; + + /// + /// All possible faces that may qualify. + /// + public partial class IdentifyResultCandidate + { + /// + /// Initializes a new instance of the IdentifyResultCandidate class. + /// + public IdentifyResultCandidate() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the IdentifyResultCandidate class. + /// + /// Id of candidate + /// Confidence level in the candidate person: + /// a float number between 0.0 and 1.0. + public IdentifyResultCandidate(string personId, double confidence) + { + PersonId = personId; + Confidence = confidence; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets id of candidate + /// + [JsonProperty(PropertyName = "personId")] + public string PersonId { get; set; } + + /// + /// Gets or sets confidence level in the candidate person: a float + /// number between 0.0 and 1.0. + /// + [JsonProperty(PropertyName = "confidence")] + public double Confidence { get; set; } + + /// + /// Validate the object. + /// + /// + /// Thrown if validation fails + /// + public virtual void Validate() + { + if (PersonId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "PersonId"); + } + if (Confidence > 1) + { + throw new ValidationException(ValidationRules.InclusiveMaximum, "Confidence", 1); + } + if (Confidence < 0) + { + throw new ValidationException(ValidationRules.InclusiveMinimum, "Confidence", 0); + } + } + } +} diff --git a/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/IdentifyResultItem.cs b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/IdentifyResultItem.cs new file mode 100644 index 000000000000..5ab9f1a9c8d4 --- /dev/null +++ b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/IdentifyResultItem.cs @@ -0,0 +1,91 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.CognitiveServices.Vision.Face; + using Microsoft.Rest; + using Newtonsoft.Json; + using System.Collections; + using System.Collections.Generic; + using System.Linq; + + /// + /// Response body for identify face operation. + /// + public partial class IdentifyResultItem + { + /// + /// Initializes a new instance of the IdentifyResultItem class. + /// + public IdentifyResultItem() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the IdentifyResultItem class. + /// + /// faceId of the query face + public IdentifyResultItem(string faceId, IList candidates) + { + FaceId = faceId; + Candidates = candidates; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets faceId of the query face + /// + [JsonProperty(PropertyName = "faceId")] + public string FaceId { get; set; } + + /// + /// + [JsonProperty(PropertyName = "candidates")] + public IList Candidates { get; set; } + + /// + /// Validate the object. + /// + /// + /// Thrown if validation fails + /// + public virtual void Validate() + { + if (FaceId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "FaceId"); + } + if (Candidates == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "Candidates"); + } + if (FaceId != null) + { + if (FaceId.Length > 64) + { + throw new ValidationException(ValidationRules.MaxLength, "FaceId", 64); + } + } + if (Candidates != null) + { + foreach (var element in Candidates) + { + if (element != null) + { + element.Validate(); + } + } + } + } + } +} diff --git a/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/ImageUrl.cs b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/ImageUrl.cs new file mode 100644 index 000000000000..97766b424e12 --- /dev/null +++ b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/ImageUrl.cs @@ -0,0 +1,57 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.CognitiveServices.Vision.Face; + using Microsoft.Rest; + using Newtonsoft.Json; + using System.Linq; + + public partial class ImageUrl + { + /// + /// Initializes a new instance of the ImageUrl class. + /// + public ImageUrl() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the ImageUrl class. + /// + public ImageUrl(string url) + { + Url = url; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// + [JsonProperty(PropertyName = "url")] + public string Url { get; set; } + + /// + /// Validate the object. + /// + /// + /// Thrown if validation fails + /// + public virtual void Validate() + { + if (Url == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "Url"); + } + } + } +} diff --git a/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/PersonFaceResult.cs b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/PersonFaceResult.cs new file mode 100644 index 000000000000..68e76d97c6d8 --- /dev/null +++ b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/PersonFaceResult.cs @@ -0,0 +1,76 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.CognitiveServices.Vision.Face; + using Microsoft.Rest; + using Newtonsoft.Json; + using System.Linq; + + /// + /// PersonFace object. + /// + public partial class PersonFaceResult + { + /// + /// Initializes a new instance of the PersonFaceResult class. + /// + public PersonFaceResult() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the PersonFaceResult class. + /// + /// The persistedFaceId of the target + /// face, which is persisted and will not expire. Different from faceId + /// created by Face - Detect and will expire in 24 hours after the + /// detection call. + /// User-provided data attached to the + /// face. + public PersonFaceResult(string persistedFaceId, string userData = default(string)) + { + PersistedFaceId = persistedFaceId; + UserData = userData; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets the persistedFaceId of the target face, which is + /// persisted and will not expire. Different from faceId created by + /// Face - Detect and will expire in 24 hours after the detection call. + /// + [JsonProperty(PropertyName = "persistedFaceId")] + public string PersistedFaceId { get; set; } + + /// + /// Gets or sets user-provided data attached to the face. + /// + [JsonProperty(PropertyName = "userData")] + public string UserData { get; set; } + + /// + /// Validate the object. + /// + /// + /// Thrown if validation fails + /// + public virtual void Validate() + { + if (PersistedFaceId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "PersistedFaceId"); + } + } + } +} diff --git a/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/PersonGroupResult.cs b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/PersonGroupResult.cs new file mode 100644 index 000000000000..4950ac12fd5f --- /dev/null +++ b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/PersonGroupResult.cs @@ -0,0 +1,101 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.CognitiveServices.Vision.Face; + using Microsoft.Rest; + using Newtonsoft.Json; + using System.Linq; + + /// + /// Person group object. + /// + public partial class PersonGroupResult + { + /// + /// Initializes a new instance of the PersonGroupResult class. + /// + public PersonGroupResult() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the PersonGroupResult class. + /// + /// faceListId of the target face + /// list. + /// Face list's display name. + /// User-provided data attached to this face + /// list. + public PersonGroupResult(string personGroupId, string name = default(string), string userData = default(string)) + { + PersonGroupId = personGroupId; + Name = name; + UserData = userData; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets faceListId of the target face list. + /// + [JsonProperty(PropertyName = "personGroupId")] + public string PersonGroupId { get; set; } + + /// + /// Gets or sets face list's display name. + /// + [JsonProperty(PropertyName = "name")] + public string Name { get; set; } + + /// + /// Gets or sets user-provided data attached to this face list. + /// + [JsonProperty(PropertyName = "userData")] + public string UserData { get; set; } + + /// + /// Validate the object. + /// + /// + /// Thrown if validation fails + /// + public virtual void Validate() + { + if (PersonGroupId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "PersonGroupId"); + } + if (PersonGroupId != null) + { + if (PersonGroupId.Length > 128) + { + throw new ValidationException(ValidationRules.MaxLength, "PersonGroupId", 128); + } + } + if (Name != null) + { + if (Name.Length > 128) + { + throw new ValidationException(ValidationRules.MaxLength, "Name", 128); + } + } + if (UserData != null) + { + if (UserData.Length > 16384) + { + throw new ValidationException(ValidationRules.MaxLength, "UserData", 16384); + } + } + } + } +} diff --git a/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/PersonResult.cs b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/PersonResult.cs new file mode 100644 index 000000000000..8eb9097bffd0 --- /dev/null +++ b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/PersonResult.cs @@ -0,0 +1,93 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.CognitiveServices.Vision.Face; + using Microsoft.Rest; + using Newtonsoft.Json; + using System.Collections; + using System.Collections.Generic; + using System.Linq; + + /// + /// Person object. + /// + public partial class PersonResult + { + /// + /// Initializes a new instance of the PersonResult class. + /// + public PersonResult() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the PersonResult class. + /// + /// personId of the target face list. + /// persistedFaceIds of registered faces + /// in the person. These persistedFaceIds are returned from Person - + /// Add a Person Face, and will not expire. + /// Person's display name. + /// User-provided data attached to this + /// person. + public PersonResult(string personId, IList persistedFaceIds = default(IList), string name = default(string), string userData = default(string)) + { + PersonId = personId; + PersistedFaceIds = persistedFaceIds; + Name = name; + UserData = userData; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets personId of the target face list. + /// + [JsonProperty(PropertyName = "personId")] + public string PersonId { get; set; } + + /// + /// Gets or sets persistedFaceIds of registered faces in the person. + /// These persistedFaceIds are returned from Person - Add a Person + /// Face, and will not expire. + /// + [JsonProperty(PropertyName = "persistedFaceIds")] + public IList PersistedFaceIds { get; set; } + + /// + /// Gets or sets person's display name. + /// + [JsonProperty(PropertyName = "name")] + public string Name { get; set; } + + /// + /// Gets or sets user-provided data attached to this person. + /// + [JsonProperty(PropertyName = "userData")] + public string UserData { get; set; } + + /// + /// Validate the object. + /// + /// + /// Thrown if validation fails + /// + public virtual void Validate() + { + if (PersonId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "PersonId"); + } + } + } +} diff --git a/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/Position.cs b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/Position.cs new file mode 100644 index 000000000000..4a20af049ae2 --- /dev/null +++ b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/Position.cs @@ -0,0 +1,66 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.CognitiveServices.Vision.Face; + using Newtonsoft.Json; + using System.Linq; + + /// + /// Coordinates within an image + /// + public partial class Position + { + /// + /// Initializes a new instance of the Position class. + /// + public Position() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the Position class. + /// + /// The horizontal component, in pixels. + /// The vertical component, in pixels. + public Position(int x, int y) + { + X = x; + Y = y; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets the horizontal component, in pixels. + /// + [JsonProperty(PropertyName = "x")] + public int X { get; set; } + + /// + /// Gets or sets the vertical component, in pixels. + /// + [JsonProperty(PropertyName = "y")] + public int Y { get; set; } + + /// + /// Validate the object. + /// + /// + /// Thrown if validation fails + /// + public virtual void Validate() + { + //Nothing to validate + } + } +} diff --git a/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/SimilarFaceResult.cs b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/SimilarFaceResult.cs new file mode 100644 index 000000000000..d40e1df84c48 --- /dev/null +++ b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/SimilarFaceResult.cs @@ -0,0 +1,100 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.CognitiveServices.Vision.Face; + using Microsoft.Rest; + using Newtonsoft.Json; + using System.Linq; + + /// + /// Response body for find similar face operation. + /// + public partial class SimilarFaceResult + { + /// + /// Initializes a new instance of the SimilarFaceResult class. + /// + public SimilarFaceResult() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the SimilarFaceResult class. + /// + /// faceId of candidate face when find by faceIds. + /// faceId is created by Face - Detect and will expire 24 hours after + /// the detection call + /// persistedFaceId of candidate face + /// when find by faceListId. persistedFaceId in face list is persisted + /// and will not expire. As showed in below response + /// Similarity confidence of the candidate + /// face. The higher confidence, the more similar. Range between + /// [0,1 + public SimilarFaceResult(string faceId, string persistedFaceId, double? confidence = default(double?)) + { + FaceId = faceId; + PersistedFaceId = persistedFaceId; + Confidence = confidence; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets faceId of candidate face when find by faceIds. faceId + /// is created by Face - Detect and will expire 24 hours after the + /// detection call + /// + [JsonProperty(PropertyName = "faceId")] + public string FaceId { get; set; } + + /// + /// Gets or sets persistedFaceId of candidate face when find by + /// faceListId. persistedFaceId in face list is persisted and will not + /// expire. As showed in below response + /// + [JsonProperty(PropertyName = "persistedFaceId")] + public string PersistedFaceId { get; set; } + + /// + /// Gets or sets similarity confidence of the candidate face. The + /// higher confidence, the more similar. Range between [0,1 + /// + [JsonProperty(PropertyName = "confidence")] + public double? Confidence { get; set; } + + /// + /// Validate the object. + /// + /// + /// Thrown if validation fails + /// + public virtual void Validate() + { + if (FaceId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "FaceId"); + } + if (PersistedFaceId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "PersistedFaceId"); + } + if (FaceId != null) + { + if (FaceId.Length > 64) + { + throw new ValidationException(ValidationRules.MaxLength, "FaceId", 64); + } + } + } + } +} diff --git a/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/TrainingStatus.cs b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/TrainingStatus.cs new file mode 100644 index 000000000000..29a37c661584 --- /dev/null +++ b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/TrainingStatus.cs @@ -0,0 +1,105 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.CognitiveServices.Vision.Face; + using Microsoft.Rest; + using Newtonsoft.Json; + using System.Linq; + + /// + /// Training status object. + /// + public partial class TrainingStatus + { + /// + /// Initializes a new instance of the TrainingStatus class. + /// + public TrainingStatus() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the TrainingStatus class. + /// + /// Training status: notstarted, running, + /// succeeded, failed. If the training process is waiting to perform, + /// the status is notstarted. If the training is ongoing, the status is + /// running. Status succeed means this person group is ready for Face - + /// Identify. Status failed is often caused by no person or no + /// persisted face exist in the person group. Possible values include: + /// 'nonstarted', 'running', 'succeeded', 'failed' + /// A combined UTC date and time string that + /// describes person group created time. + /// Person group last modify time in the UTC, + /// could be null value when the person group is not successfully + /// trained. + /// Show failure message when training failed + /// (omitted when training succeed). + public TrainingStatus(string status, System.DateTime? created = default(System.DateTime?), System.DateTime? lastAction = default(System.DateTime?), string message = default(string)) + { + Status = status; + Created = created; + LastAction = lastAction; + Message = message; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets training status: notstarted, running, succeeded, + /// failed. If the training process is waiting to perform, the status + /// is notstarted. If the training is ongoing, the status is running. + /// Status succeed means this person group is ready for Face - + /// Identify. Status failed is often caused by no person or no + /// persisted face exist in the person group. Possible values include: + /// 'nonstarted', 'running', 'succeeded', 'failed' + /// + [JsonProperty(PropertyName = "status")] + public string Status { get; set; } + + /// + /// Gets or sets a combined UTC date and time string that describes + /// person group created time. + /// + [JsonProperty(PropertyName = "createdDateTime")] + public System.DateTime? Created { get; set; } + + /// + /// Gets or sets person group last modify time in the UTC, could be + /// null value when the person group is not successfully trained. + /// + [JsonProperty(PropertyName = "lastActionDateTime")] + public System.DateTime? LastAction { get; set; } + + /// + /// Gets or sets show failure message when training failed (omitted + /// when training succeed). + /// + [JsonProperty(PropertyName = "message")] + public string Message { get; set; } + + /// + /// Validate the object. + /// + /// + /// Thrown if validation fails + /// + public virtual void Validate() + { + if (Status == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "Status"); + } + } + } +} diff --git a/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/UpdatePersonFaceDataRequest.cs b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/UpdatePersonFaceDataRequest.cs new file mode 100644 index 000000000000..080047cf5a51 --- /dev/null +++ b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/UpdatePersonFaceDataRequest.cs @@ -0,0 +1,69 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.CognitiveServices.Vision.Face; + using Microsoft.Rest; + using Newtonsoft.Json; + using System.Linq; + + /// + /// Request to update person face data. + /// + public partial class UpdatePersonFaceDataRequest + { + /// + /// Initializes a new instance of the UpdatePersonFaceDataRequest + /// class. + /// + public UpdatePersonFaceDataRequest() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the UpdatePersonFaceDataRequest + /// class. + /// + /// User-provided data attached to the face. The + /// size limit is 1KB + public UpdatePersonFaceDataRequest(string userData = default(string)) + { + UserData = userData; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets user-provided data attached to the face. The size + /// limit is 1KB + /// + [JsonProperty(PropertyName = "userData")] + public string UserData { get; set; } + + /// + /// Validate the object. + /// + /// + /// Thrown if validation fails + /// + public virtual void Validate() + { + if (UserData != null) + { + if (UserData.Length > 1024) + { + throw new ValidationException(ValidationRules.MaxLength, "UserData", 1024); + } + } + } + } +} diff --git a/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/VerifyRequest.cs b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/VerifyRequest.cs new file mode 100644 index 000000000000..6850dd9836de --- /dev/null +++ b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/VerifyRequest.cs @@ -0,0 +1,100 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.CognitiveServices.Vision.Face; + using Microsoft.Rest; + using Newtonsoft.Json; + using System.Linq; + + /// + /// Request body for verify operation. + /// + public partial class VerifyRequest + { + /// + /// Initializes a new instance of the VerifyRequest class. + /// + public VerifyRequest() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the VerifyRequest class. + /// + /// faceId the face, comes from Face - + /// Detect + /// Specify a certain person in a person group. + /// personId is created in Persons.Create. + /// Using existing personGroupId and + /// personId for fast loading a specified person. personGroupId is + /// created in Person Groups.Create. + public VerifyRequest(string faceId, string personId, string personGroupId) + { + FaceId = faceId; + PersonId = personId; + PersonGroupId = personGroupId; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets faceId the face, comes from Face - Detect + /// + [JsonProperty(PropertyName = "faceId")] + public string FaceId { get; set; } + + /// + /// Gets or sets specify a certain person in a person group. personId + /// is created in Persons.Create. + /// + [JsonProperty(PropertyName = "personId")] + public string PersonId { get; set; } + + /// + /// Gets or sets using existing personGroupId and personId for fast + /// loading a specified person. personGroupId is created in Person + /// Groups.Create. + /// + [JsonProperty(PropertyName = "personGroupId")] + public string PersonGroupId { get; set; } + + /// + /// Validate the object. + /// + /// + /// Thrown if validation fails + /// + public virtual void Validate() + { + if (FaceId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "FaceId"); + } + if (PersonId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "PersonId"); + } + if (PersonGroupId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "PersonGroupId"); + } + if (FaceId != null) + { + if (FaceId.Length > 64) + { + throw new ValidationException(ValidationRules.MaxLength, "FaceId", 64); + } + } + } + } +} diff --git a/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/VerifyResult.cs b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/VerifyResult.cs new file mode 100644 index 000000000000..eb6005a8f075 --- /dev/null +++ b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Models/VerifyResult.cs @@ -0,0 +1,86 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face.Models +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.CognitiveServices.Vision.Face; + using Microsoft.Rest; + using Newtonsoft.Json; + using System.Linq; + + /// + /// Result of the verify operation. + /// + public partial class VerifyResult + { + /// + /// Initializes a new instance of the VerifyResult class. + /// + public VerifyResult() + { + CustomInit(); + } + + /// + /// Initializes a new instance of the VerifyResult class. + /// + /// True if the two faces belong to the same + /// person or the face belongs to the person, otherwise false. + /// "A number indicates the similarity + /// confidence of whether two faces belong to the same person, or + /// whether the face belongs to the person. By default, isIdentical is + /// set to True if similarity confidence is greater than or equal to + /// 0.5. This is useful for advanced users to override "isIdentical" + /// and fine-tune the result on their own data" + public VerifyResult(bool isIdentical, double? confidence = default(double?)) + { + IsIdentical = isIdentical; + Confidence = confidence; + CustomInit(); + } + + /// + /// An initialization method that performs custom operations like setting defaults + /// + partial void CustomInit(); + + /// + /// Gets or sets true if the two faces belong to the same person or the + /// face belongs to the person, otherwise false. + /// + [JsonProperty(PropertyName = "isIdentical")] + public bool IsIdentical { get; set; } + + /// + /// Gets or sets "A number indicates the similarity confidence of + /// whether two faces belong to the same person, or whether the face + /// belongs to the person. By default, isIdentical is set to True if + /// similarity confidence is greater than or equal to 0.5. This is + /// useful for advanced users to override "isIdentical" and fine-tune + /// the result on their own data" + /// + [JsonProperty(PropertyName = "confidence")] + public double? Confidence { get; set; } + + /// + /// Validate the object. + /// + /// + /// Thrown if validation fails + /// + public virtual void Validate() + { + if (Confidence > 1) + { + throw new ValidationException(ValidationRules.InclusiveMaximum, "Confidence", 1); + } + if (Confidence < 0) + { + throw new ValidationException(ValidationRules.InclusiveMinimum, "Confidence", 0); + } + } + } +} diff --git a/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Person.cs b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Person.cs new file mode 100644 index 000000000000..8a43a4278601 --- /dev/null +++ b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/Person.cs @@ -0,0 +1,1762 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.Rest; + using Models; + using Newtonsoft.Json; + using System.Collections; + using System.Collections.Generic; + using System.IO; + using System.Net; + using System.Net.Http; + using System.Threading; + using System.Threading.Tasks; + + /// + /// Person operations. + /// + public partial class Person : IServiceOperations, IPerson + { + /// + /// Initializes a new instance of the Person class. + /// + /// + /// Reference to the service client. + /// + /// + /// Thrown when a required parameter is null + /// + public Person(FaceAPI client) + { + if (client == null) + { + throw new System.ArgumentNullException("client"); + } + Client = client; + } + + /// + /// Gets a reference to the FaceAPI + /// + public FaceAPI Client { get; private set; } + + /// + /// Create a new person in a specified person group. + /// + /// + /// Specifying the target person group to create the person. + /// + /// + /// Display name of the target person. The maximum length is 128. + /// + /// + /// Optional fields for user-provided data attached to a person. Size limit is + /// 16KB. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task> CreateWithHttpMessagesAsync(string personGroupId, string name = default(string), string userData = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.AzureRegion1 == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); + } + if (personGroupId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "personGroupId"); + } + if (Client.SubscriptionKey == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); + } + if (name != null) + { + if (name.Length > 128) + { + throw new ValidationException(ValidationRules.MaxLength, "name", 128); + } + } + if (userData != null) + { + if (userData.Length > 16384) + { + throw new ValidationException(ValidationRules.MaxLength, "userData", 16384); + } + } + CreatePersonRequest body = new CreatePersonRequest(); + if (name != null || userData != null) + { + body.Name = name; + body.UserData = userData; + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("personGroupId", personGroupId); + tracingParameters.Add("body", body); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "Create", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "persongroups/{personGroupId}/persons"; + _url = _url.Replace("{azureRegion}", Client.AzureRegion1); + _url = _url.Replace("{personGroupId}", System.Uri.EscapeDataString(personGroupId)); + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("POST"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.SubscriptionKey != null) + { + if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) + { + _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); + } + _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + if(body != null) + { + _requestContent = Rest.Serialization.SafeJsonConvert.SerializeObject(body, Client.SerializationSettings); + _httpRequest.Content = new StringContent(_requestContent, System.Text.Encoding.UTF8); + _httpRequest.Content.Headers.ContentType =System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json; charset=utf-8"); + } + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + // Deserialize Response + if ((int)_statusCode == 200) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + } + catch (JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); + } + } + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + /// + /// List all persons in a person group, and retrieve person information + /// (including personId, name, userData and persistedFaceIds of registered + /// faces of the person). + /// + /// + /// personGroupId of the target person group. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task>> ListWithHttpMessagesAsync(string personGroupId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.AzureRegion1 == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); + } + if (personGroupId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "personGroupId"); + } + if (Client.SubscriptionKey == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("personGroupId", personGroupId); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "List", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "persongroups/{personGroupId}/persons"; + _url = _url.Replace("{azureRegion}", Client.AzureRegion1); + _url = _url.Replace("{personGroupId}", System.Uri.EscapeDataString(personGroupId)); + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("GET"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.SubscriptionKey != null) + { + if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) + { + _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); + } + _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse>(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + // Deserialize Response + if ((int)_statusCode == 200) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject>(_responseContent, Client.DeserializationSettings); + } + catch (JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); + } + } + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + /// + /// Delete an existing person from a person group. Persisted face images of the + /// person will also be deleted. + /// + /// + /// Specifying the person group containing the person. + /// + /// + /// The target personId to delete. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task DeleteWithHttpMessagesAsync(string personGroupId, string personId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.AzureRegion1 == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); + } + if (personGroupId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "personGroupId"); + } + if (personId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "personId"); + } + if (Client.SubscriptionKey == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("personGroupId", personGroupId); + tracingParameters.Add("personId", personId); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "Delete", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "persongroups/{personGroupId}/persons/{personId}"; + _url = _url.Replace("{azureRegion}", Client.AzureRegion1); + _url = _url.Replace("{personGroupId}", System.Uri.EscapeDataString(personGroupId)); + _url = _url.Replace("{personId}", System.Uri.EscapeDataString(personId)); + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("DELETE"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.SubscriptionKey != null) + { + if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) + { + _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); + } + _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + /// + /// Retrieve a person's information, including registered persisted faces, name + /// and userData. + /// + /// + /// Specifying the person group containing the target person. + /// + /// + /// Specifying the target person. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task> GetWithHttpMessagesAsync(string personGroupId, string personId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.AzureRegion1 == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); + } + if (personGroupId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "personGroupId"); + } + if (personId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "personId"); + } + if (Client.SubscriptionKey == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("personGroupId", personGroupId); + tracingParameters.Add("personId", personId); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "Get", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "persongroups/{personGroupId}/persons/{personId}"; + _url = _url.Replace("{azureRegion}", Client.AzureRegion1); + _url = _url.Replace("{personGroupId}", System.Uri.EscapeDataString(personGroupId)); + _url = _url.Replace("{personId}", System.Uri.EscapeDataString(personId)); + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("GET"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.SubscriptionKey != null) + { + if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) + { + _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); + } + _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + // Deserialize Response + if ((int)_statusCode == 200) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + } + catch (JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); + } + } + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + /// + /// Update name or userData of a person. + /// + /// + /// Specifying the person group containing the target person. + /// + /// + /// personId of the target person. + /// + /// + /// Display name of the target person. The maximum length is 128. + /// + /// + /// Optional fields for user-provided data attached to a person. Size limit is + /// 16KB. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task UpdateWithHttpMessagesAsync(string personGroupId, string personId, string name = default(string), string userData = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.AzureRegion1 == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); + } + if (personGroupId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "personGroupId"); + } + if (personId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "personId"); + } + if (Client.SubscriptionKey == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); + } + if (name != null) + { + if (name.Length > 128) + { + throw new ValidationException(ValidationRules.MaxLength, "name", 128); + } + } + if (userData != null) + { + if (userData.Length > 16384) + { + throw new ValidationException(ValidationRules.MaxLength, "userData", 16384); + } + } + CreatePersonRequest body = new CreatePersonRequest(); + if (name != null || userData != null) + { + body.Name = name; + body.UserData = userData; + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("personGroupId", personGroupId); + tracingParameters.Add("personId", personId); + tracingParameters.Add("body", body); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "Update", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "persongroups/{personGroupId}/persons/{personId}"; + _url = _url.Replace("{azureRegion}", Client.AzureRegion1); + _url = _url.Replace("{personGroupId}", System.Uri.EscapeDataString(personGroupId)); + _url = _url.Replace("{personId}", System.Uri.EscapeDataString(personId)); + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("PATCH"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.SubscriptionKey != null) + { + if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) + { + _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); + } + _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + if(body != null) + { + _requestContent = Rest.Serialization.SafeJsonConvert.SerializeObject(body, Client.SerializationSettings); + _httpRequest.Content = new StringContent(_requestContent, System.Text.Encoding.UTF8); + _httpRequest.Content.Headers.ContentType =System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json; charset=utf-8"); + } + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + /// + /// Delete a face from a person. Relative image for the persisted face will + /// also be deleted. + /// + /// + /// Specifying the person group containing the target person. + /// + /// + /// Specifying the person that the target persisted face belong to. + /// + /// + /// The persisted face to remove. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task DeleteFaceWithHttpMessagesAsync(string personGroupId, string personId, string persistedFaceId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.AzureRegion1 == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); + } + if (personGroupId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "personGroupId"); + } + if (personId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "personId"); + } + if (persistedFaceId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "persistedFaceId"); + } + if (Client.SubscriptionKey == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("personGroupId", personGroupId); + tracingParameters.Add("personId", personId); + tracingParameters.Add("persistedFaceId", persistedFaceId); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "DeleteFace", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "persongroups/{personGroupId}/persons/{personId}/persistedFaces/{persistedFaceId}"; + _url = _url.Replace("{azureRegion}", Client.AzureRegion1); + _url = _url.Replace("{personGroupId}", System.Uri.EscapeDataString(personGroupId)); + _url = _url.Replace("{personId}", System.Uri.EscapeDataString(personId)); + _url = _url.Replace("{persistedFaceId}", System.Uri.EscapeDataString(persistedFaceId)); + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("DELETE"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.SubscriptionKey != null) + { + if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) + { + _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); + } + _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + /// + /// Retrieve information about a persisted face (specified by persistedFaceId, + /// personId and its belonging personGroupId). + /// + /// + /// Specifying the person group containing the target person. + /// + /// + /// Specifying the target person that the face belongs to. + /// + /// + /// The persistedFaceId of the target persisted face of the person. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task> GetFaceWithHttpMessagesAsync(string personGroupId, string personId, string persistedFaceId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.AzureRegion1 == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); + } + if (personGroupId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "personGroupId"); + } + if (personId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "personId"); + } + if (persistedFaceId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "persistedFaceId"); + } + if (Client.SubscriptionKey == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("personGroupId", personGroupId); + tracingParameters.Add("personId", personId); + tracingParameters.Add("persistedFaceId", persistedFaceId); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "GetFace", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "persongroups/{personGroupId}/persons/{personId}/persistedFaces/{persistedFaceId}"; + _url = _url.Replace("{azureRegion}", Client.AzureRegion1); + _url = _url.Replace("{personGroupId}", System.Uri.EscapeDataString(personGroupId)); + _url = _url.Replace("{personId}", System.Uri.EscapeDataString(personId)); + _url = _url.Replace("{persistedFaceId}", System.Uri.EscapeDataString(persistedFaceId)); + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("GET"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.SubscriptionKey != null) + { + if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) + { + _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); + } + _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + // Deserialize Response + if ((int)_statusCode == 200) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + } + catch (JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); + } + } + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + /// + /// Update a person persisted face's userData field. + /// + /// + /// Specifying the person group containing the target person. + /// + /// + /// personId of the target person. + /// + /// + /// persistedFaceId of target face, which is persisted and will not expire. + /// + /// + /// User-provided data attached to the face. The size limit is 1KB + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task UpdateFaceWithHttpMessagesAsync(string personGroupId, string personId, string persistedFaceId, string userData = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.AzureRegion1 == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); + } + if (personGroupId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "personGroupId"); + } + if (personId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "personId"); + } + if (persistedFaceId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "persistedFaceId"); + } + if (Client.SubscriptionKey == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); + } + if (userData != null) + { + if (userData.Length > 1024) + { + throw new ValidationException(ValidationRules.MaxLength, "userData", 1024); + } + } + UpdatePersonFaceDataRequest body = new UpdatePersonFaceDataRequest(); + if (userData != null) + { + body.UserData = userData; + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("personGroupId", personGroupId); + tracingParameters.Add("personId", personId); + tracingParameters.Add("persistedFaceId", persistedFaceId); + tracingParameters.Add("body", body); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "UpdateFace", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "persongroups/{personGroupId}/persons/{personId}/persistedFaces/{persistedFaceId}"; + _url = _url.Replace("{azureRegion}", Client.AzureRegion1); + _url = _url.Replace("{personGroupId}", System.Uri.EscapeDataString(personGroupId)); + _url = _url.Replace("{personId}", System.Uri.EscapeDataString(personId)); + _url = _url.Replace("{persistedFaceId}", System.Uri.EscapeDataString(persistedFaceId)); + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("PATCH"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.SubscriptionKey != null) + { + if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) + { + _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); + } + _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + if(body != null) + { + _requestContent = Rest.Serialization.SafeJsonConvert.SerializeObject(body, Client.SerializationSettings); + _httpRequest.Content = new StringContent(_requestContent, System.Text.Encoding.UTF8); + _httpRequest.Content.Headers.ContentType =System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json; charset=utf-8"); + } + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + /// + /// Add a representative face to a person for identification. The input face is + /// specified as an image with a targetFace rectangle. + /// + /// + /// Specifying the person group containing the target person. + /// + /// + /// Target person that the face is added to. + /// + /// + /// User-specified data about the target face to add for any purpose. The + /// maximum length is 1KB. + /// + /// + /// A face rectangle to specify the target face to be added to a person in the + /// format of "targetFace=left,top,width,height". E.g. + /// "targetFace=10,10,100,100". If there is more than one face in the image, + /// targetFace is required to specify which face to add. No targetFace means + /// there is only one face detected in the entire image. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task AddFaceWithHttpMessagesAsync(string personGroupId, string personId, string userData = default(string), string targetFace = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.AzureRegion1 == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); + } + if (personGroupId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "personGroupId"); + } + if (personId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "personId"); + } + if (Client.SubscriptionKey == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("personGroupId", personGroupId); + tracingParameters.Add("personId", personId); + tracingParameters.Add("userData", userData); + tracingParameters.Add("targetFace", targetFace); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "AddFace", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "persongroups/{personGroupId}/persons/{personId}/persistedFaces"; + _url = _url.Replace("{azureRegion}", Client.AzureRegion1); + _url = _url.Replace("{personGroupId}", System.Uri.EscapeDataString(personGroupId)); + _url = _url.Replace("{personId}", System.Uri.EscapeDataString(personId)); + List _queryParameters = new List(); + if (userData != null) + { + _queryParameters.Add(string.Format("userData={0}", System.Uri.EscapeDataString(userData))); + } + if (targetFace != null) + { + _queryParameters.Add(string.Format("targetFace={0}", System.Uri.EscapeDataString(targetFace))); + } + if (_queryParameters.Count > 0) + { + _url += "?" + string.Join("&", _queryParameters); + } + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("POST"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.SubscriptionKey != null) + { + if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) + { + _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); + } + _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + /// + /// Add a representative face to a person for identification. The input face is + /// specified as an image with a targetFace rectangle. + /// + /// + /// Specifying the person group containing the target person. + /// + /// + /// Target person that the face is added to. + /// + /// + /// User-specified data about the target face to add for any purpose. The + /// maximum length is 1KB. + /// + /// + /// A face rectangle to specify the target face to be added to a person, in the + /// format of "targetFace=left,top,width,height". E.g. + /// "targetFace=10,10,100,100". If there is more than one face in the image, + /// targetFace is required to specify which face to add. No targetFace means + /// there is only one face detected in the entire image. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task AddFaceFromStreamWithHttpMessagesAsync(string personGroupId, string personId, string userData = default(string), string targetFace = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.AzureRegion1 == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); + } + if (personGroupId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "personGroupId"); + } + if (personId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "personId"); + } + if (Client.SubscriptionKey == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("personGroupId", personGroupId); + tracingParameters.Add("personId", personId); + tracingParameters.Add("userData", userData); + tracingParameters.Add("targetFace", targetFace); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "AddFaceFromStream", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "persongroups/{personGroupId}/persons/{personId}/persistedFaces"; + _url = _url.Replace("{azureRegion}", Client.AzureRegion1); + _url = _url.Replace("{personGroupId}", System.Uri.EscapeDataString(personGroupId)); + _url = _url.Replace("{personId}", System.Uri.EscapeDataString(personId)); + List _queryParameters = new List(); + if (userData != null) + { + _queryParameters.Add(string.Format("userData={0}", System.Uri.EscapeDataString(userData))); + } + if (targetFace != null) + { + _queryParameters.Add(string.Format("targetFace={0}", System.Uri.EscapeDataString(targetFace))); + } + if (_queryParameters.Count > 0) + { + _url += "?" + string.Join("&", _queryParameters); + } + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("POST"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.SubscriptionKey != null) + { + if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) + { + _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); + } + _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + } +} diff --git a/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/PersonExtensions.cs b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/PersonExtensions.cs new file mode 100644 index 000000000000..f32deac56774 --- /dev/null +++ b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/PersonExtensions.cs @@ -0,0 +1,503 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Models; + using System.Collections; + using System.Collections.Generic; + using System.Threading; + using System.Threading.Tasks; + + /// + /// Extension methods for Person. + /// + public static partial class PersonExtensions + { + /// + /// Create a new person in a specified person group. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Specifying the target person group to create the person. + /// + /// + /// Display name of the target person. The maximum length is 128. + /// + /// + /// Optional fields for user-provided data attached to a person. Size limit is + /// 16KB. + /// + public static CreatePersonResult Create(this IPerson operations, string personGroupId, string name = default(string), string userData = default(string)) + { + return operations.CreateAsync(personGroupId, name, userData).GetAwaiter().GetResult(); + } + + /// + /// Create a new person in a specified person group. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Specifying the target person group to create the person. + /// + /// + /// Display name of the target person. The maximum length is 128. + /// + /// + /// Optional fields for user-provided data attached to a person. Size limit is + /// 16KB. + /// + /// + /// The cancellation token. + /// + public static async Task CreateAsync(this IPerson operations, string personGroupId, string name = default(string), string userData = default(string), CancellationToken cancellationToken = default(CancellationToken)) + { + using (var _result = await operations.CreateWithHttpMessagesAsync(personGroupId, name, userData, null, cancellationToken).ConfigureAwait(false)) + { + return _result.Body; + } + } + + /// + /// List all persons in a person group, and retrieve person information + /// (including personId, name, userData and persistedFaceIds of registered + /// faces of the person). + /// + /// + /// The operations group for this extension method. + /// + /// + /// personGroupId of the target person group. + /// + public static IList List(this IPerson operations, string personGroupId) + { + return operations.ListAsync(personGroupId).GetAwaiter().GetResult(); + } + + /// + /// List all persons in a person group, and retrieve person information + /// (including personId, name, userData and persistedFaceIds of registered + /// faces of the person). + /// + /// + /// The operations group for this extension method. + /// + /// + /// personGroupId of the target person group. + /// + /// + /// The cancellation token. + /// + public static async Task> ListAsync(this IPerson operations, string personGroupId, CancellationToken cancellationToken = default(CancellationToken)) + { + using (var _result = await operations.ListWithHttpMessagesAsync(personGroupId, null, cancellationToken).ConfigureAwait(false)) + { + return _result.Body; + } + } + + /// + /// Delete an existing person from a person group. Persisted face images of the + /// person will also be deleted. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Specifying the person group containing the person. + /// + /// + /// The target personId to delete. + /// + public static void Delete(this IPerson operations, string personGroupId, string personId) + { + operations.DeleteAsync(personGroupId, personId).GetAwaiter().GetResult(); + } + + /// + /// Delete an existing person from a person group. Persisted face images of the + /// person will also be deleted. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Specifying the person group containing the person. + /// + /// + /// The target personId to delete. + /// + /// + /// The cancellation token. + /// + public static async Task DeleteAsync(this IPerson operations, string personGroupId, string personId, CancellationToken cancellationToken = default(CancellationToken)) + { + (await operations.DeleteWithHttpMessagesAsync(personGroupId, personId, null, cancellationToken).ConfigureAwait(false)).Dispose(); + } + + /// + /// Retrieve a person's information, including registered persisted faces, name + /// and userData. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Specifying the person group containing the target person. + /// + /// + /// Specifying the target person. + /// + public static PersonResult Get(this IPerson operations, string personGroupId, string personId) + { + return operations.GetAsync(personGroupId, personId).GetAwaiter().GetResult(); + } + + /// + /// Retrieve a person's information, including registered persisted faces, name + /// and userData. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Specifying the person group containing the target person. + /// + /// + /// Specifying the target person. + /// + /// + /// The cancellation token. + /// + public static async Task GetAsync(this IPerson operations, string personGroupId, string personId, CancellationToken cancellationToken = default(CancellationToken)) + { + using (var _result = await operations.GetWithHttpMessagesAsync(personGroupId, personId, null, cancellationToken).ConfigureAwait(false)) + { + return _result.Body; + } + } + + /// + /// Update name or userData of a person. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Specifying the person group containing the target person. + /// + /// + /// personId of the target person. + /// + /// + /// Display name of the target person. The maximum length is 128. + /// + /// + /// Optional fields for user-provided data attached to a person. Size limit is + /// 16KB. + /// + public static void Update(this IPerson operations, string personGroupId, string personId, string name = default(string), string userData = default(string)) + { + operations.UpdateAsync(personGroupId, personId, name, userData).GetAwaiter().GetResult(); + } + + /// + /// Update name or userData of a person. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Specifying the person group containing the target person. + /// + /// + /// personId of the target person. + /// + /// + /// Display name of the target person. The maximum length is 128. + /// + /// + /// Optional fields for user-provided data attached to a person. Size limit is + /// 16KB. + /// + /// + /// The cancellation token. + /// + public static async Task UpdateAsync(this IPerson operations, string personGroupId, string personId, string name = default(string), string userData = default(string), CancellationToken cancellationToken = default(CancellationToken)) + { + (await operations.UpdateWithHttpMessagesAsync(personGroupId, personId, name, userData, null, cancellationToken).ConfigureAwait(false)).Dispose(); + } + + /// + /// Delete a face from a person. Relative image for the persisted face will + /// also be deleted. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Specifying the person group containing the target person. + /// + /// + /// Specifying the person that the target persisted face belong to. + /// + /// + /// The persisted face to remove. + /// + public static void DeleteFace(this IPerson operations, string personGroupId, string personId, string persistedFaceId) + { + operations.DeleteFaceAsync(personGroupId, personId, persistedFaceId).GetAwaiter().GetResult(); + } + + /// + /// Delete a face from a person. Relative image for the persisted face will + /// also be deleted. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Specifying the person group containing the target person. + /// + /// + /// Specifying the person that the target persisted face belong to. + /// + /// + /// The persisted face to remove. + /// + /// + /// The cancellation token. + /// + public static async Task DeleteFaceAsync(this IPerson operations, string personGroupId, string personId, string persistedFaceId, CancellationToken cancellationToken = default(CancellationToken)) + { + (await operations.DeleteFaceWithHttpMessagesAsync(personGroupId, personId, persistedFaceId, null, cancellationToken).ConfigureAwait(false)).Dispose(); + } + + /// + /// Retrieve information about a persisted face (specified by persistedFaceId, + /// personId and its belonging personGroupId). + /// + /// + /// The operations group for this extension method. + /// + /// + /// Specifying the person group containing the target person. + /// + /// + /// Specifying the target person that the face belongs to. + /// + /// + /// The persistedFaceId of the target persisted face of the person. + /// + public static PersonFaceResult GetFace(this IPerson operations, string personGroupId, string personId, string persistedFaceId) + { + return operations.GetFaceAsync(personGroupId, personId, persistedFaceId).GetAwaiter().GetResult(); + } + + /// + /// Retrieve information about a persisted face (specified by persistedFaceId, + /// personId and its belonging personGroupId). + /// + /// + /// The operations group for this extension method. + /// + /// + /// Specifying the person group containing the target person. + /// + /// + /// Specifying the target person that the face belongs to. + /// + /// + /// The persistedFaceId of the target persisted face of the person. + /// + /// + /// The cancellation token. + /// + public static async Task GetFaceAsync(this IPerson operations, string personGroupId, string personId, string persistedFaceId, CancellationToken cancellationToken = default(CancellationToken)) + { + using (var _result = await operations.GetFaceWithHttpMessagesAsync(personGroupId, personId, persistedFaceId, null, cancellationToken).ConfigureAwait(false)) + { + return _result.Body; + } + } + + /// + /// Update a person persisted face's userData field. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Specifying the person group containing the target person. + /// + /// + /// personId of the target person. + /// + /// + /// persistedFaceId of target face, which is persisted and will not expire. + /// + /// + /// User-provided data attached to the face. The size limit is 1KB + /// + public static void UpdateFace(this IPerson operations, string personGroupId, string personId, string persistedFaceId, string userData = default(string)) + { + operations.UpdateFaceAsync(personGroupId, personId, persistedFaceId, userData).GetAwaiter().GetResult(); + } + + /// + /// Update a person persisted face's userData field. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Specifying the person group containing the target person. + /// + /// + /// personId of the target person. + /// + /// + /// persistedFaceId of target face, which is persisted and will not expire. + /// + /// + /// User-provided data attached to the face. The size limit is 1KB + /// + /// + /// The cancellation token. + /// + public static async Task UpdateFaceAsync(this IPerson operations, string personGroupId, string personId, string persistedFaceId, string userData = default(string), CancellationToken cancellationToken = default(CancellationToken)) + { + (await operations.UpdateFaceWithHttpMessagesAsync(personGroupId, personId, persistedFaceId, userData, null, cancellationToken).ConfigureAwait(false)).Dispose(); + } + + /// + /// Add a representative face to a person for identification. The input face is + /// specified as an image with a targetFace rectangle. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Specifying the person group containing the target person. + /// + /// + /// Target person that the face is added to. + /// + /// + /// User-specified data about the target face to add for any purpose. The + /// maximum length is 1KB. + /// + /// + /// A face rectangle to specify the target face to be added to a person in the + /// format of "targetFace=left,top,width,height". E.g. + /// "targetFace=10,10,100,100". If there is more than one face in the image, + /// targetFace is required to specify which face to add. No targetFace means + /// there is only one face detected in the entire image. + /// + public static void AddFace(this IPerson operations, string personGroupId, string personId, string userData = default(string), string targetFace = default(string)) + { + operations.AddFaceAsync(personGroupId, personId, userData, targetFace).GetAwaiter().GetResult(); + } + + /// + /// Add a representative face to a person for identification. The input face is + /// specified as an image with a targetFace rectangle. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Specifying the person group containing the target person. + /// + /// + /// Target person that the face is added to. + /// + /// + /// User-specified data about the target face to add for any purpose. The + /// maximum length is 1KB. + /// + /// + /// A face rectangle to specify the target face to be added to a person in the + /// format of "targetFace=left,top,width,height". E.g. + /// "targetFace=10,10,100,100". If there is more than one face in the image, + /// targetFace is required to specify which face to add. No targetFace means + /// there is only one face detected in the entire image. + /// + /// + /// The cancellation token. + /// + public static async Task AddFaceAsync(this IPerson operations, string personGroupId, string personId, string userData = default(string), string targetFace = default(string), CancellationToken cancellationToken = default(CancellationToken)) + { + (await operations.AddFaceWithHttpMessagesAsync(personGroupId, personId, userData, targetFace, null, cancellationToken).ConfigureAwait(false)).Dispose(); + } + + /// + /// Add a representative face to a person for identification. The input face is + /// specified as an image with a targetFace rectangle. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Specifying the person group containing the target person. + /// + /// + /// Target person that the face is added to. + /// + /// + /// User-specified data about the target face to add for any purpose. The + /// maximum length is 1KB. + /// + /// + /// A face rectangle to specify the target face to be added to a person, in the + /// format of "targetFace=left,top,width,height". E.g. + /// "targetFace=10,10,100,100". If there is more than one face in the image, + /// targetFace is required to specify which face to add. No targetFace means + /// there is only one face detected in the entire image. + /// + public static void AddFaceFromStream(this IPerson operations, string personGroupId, string personId, string userData = default(string), string targetFace = default(string)) + { + operations.AddFaceFromStreamAsync(personGroupId, personId, userData, targetFace).GetAwaiter().GetResult(); + } + + /// + /// Add a representative face to a person for identification. The input face is + /// specified as an image with a targetFace rectangle. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Specifying the person group containing the target person. + /// + /// + /// Target person that the face is added to. + /// + /// + /// User-specified data about the target face to add for any purpose. The + /// maximum length is 1KB. + /// + /// + /// A face rectangle to specify the target face to be added to a person, in the + /// format of "targetFace=left,top,width,height". E.g. + /// "targetFace=10,10,100,100". If there is more than one face in the image, + /// targetFace is required to specify which face to add. No targetFace means + /// there is only one face detected in the entire image. + /// + /// + /// The cancellation token. + /// + public static async Task AddFaceFromStreamAsync(this IPerson operations, string personGroupId, string personId, string userData = default(string), string targetFace = default(string), CancellationToken cancellationToken = default(CancellationToken)) + { + (await operations.AddFaceFromStreamWithHttpMessagesAsync(personGroupId, personId, userData, targetFace, null, cancellationToken).ConfigureAwait(false)).Dispose(); + } + + } +} diff --git a/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/PersonGroup.cs b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/PersonGroup.cs new file mode 100644 index 000000000000..420f59d732eb --- /dev/null +++ b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/PersonGroup.cs @@ -0,0 +1,1189 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Microsoft.Rest; + using Models; + using Newtonsoft.Json; + using System.Collections; + using System.Collections.Generic; + using System.IO; + using System.Net; + using System.Net.Http; + using System.Threading; + using System.Threading.Tasks; + + /// + /// PersonGroup operations. + /// + public partial class PersonGroup : IServiceOperations, IPersonGroup + { + /// + /// Initializes a new instance of the PersonGroup class. + /// + /// + /// Reference to the service client. + /// + /// + /// Thrown when a required parameter is null + /// + public PersonGroup(FaceAPI client) + { + if (client == null) + { + throw new System.ArgumentNullException("client"); + } + Client = client; + } + + /// + /// Gets a reference to the FaceAPI + /// + public FaceAPI Client { get; private set; } + + /// + /// Create a new person group with specified personGroupId, name and + /// user-provided userData. + /// + /// + /// User-provided personGroupId as a string. + /// + /// + /// Name of the face list, maximum length is 128. + /// + /// + /// Optional user defined data for the face list. Length should not exceed + /// 16KB. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task CreateWithHttpMessagesAsync(string personGroupId, string name = default(string), string userData = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.AzureRegion1 == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); + } + if (personGroupId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "personGroupId"); + } + if (personGroupId != null) + { + if (personGroupId.Length > 64) + { + throw new ValidationException(ValidationRules.MaxLength, "personGroupId", 64); + } + if (!System.Text.RegularExpressions.Regex.IsMatch(personGroupId, "^[a-z0-9-_]+$")) + { + throw new ValidationException(ValidationRules.Pattern, "personGroupId", "^[a-z0-9-_]+$"); + } + } + if (Client.SubscriptionKey == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); + } + if (name != null) + { + if (name.Length > 128) + { + throw new ValidationException(ValidationRules.MaxLength, "name", 128); + } + } + if (userData != null) + { + if (userData.Length > 16384) + { + throw new ValidationException(ValidationRules.MaxLength, "userData", 16384); + } + } + CreatePersonGroupRequest body = new CreatePersonGroupRequest(); + if (name != null || userData != null) + { + body.Name = name; + body.UserData = userData; + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("personGroupId", personGroupId); + tracingParameters.Add("body", body); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "Create", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "persongroups/{personGroupId}"; + _url = _url.Replace("{azureRegion}", Client.AzureRegion1); + _url = _url.Replace("{personGroupId}", System.Uri.EscapeDataString(personGroupId)); + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("PUT"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.SubscriptionKey != null) + { + if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) + { + _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); + } + _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + if(body != null) + { + _requestContent = Rest.Serialization.SafeJsonConvert.SerializeObject(body, Client.SerializationSettings); + _httpRequest.Content = new StringContent(_requestContent, System.Text.Encoding.UTF8); + _httpRequest.Content.Headers.ContentType =System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json; charset=utf-8"); + } + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + /// + /// Delete an existing person group. Persisted face images of all people in the + /// person group will also be deleted. + /// + /// + /// The personGroupId of the person group to be deleted. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task DeleteWithHttpMessagesAsync(string personGroupId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.AzureRegion1 == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); + } + if (personGroupId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "personGroupId"); + } + if (Client.SubscriptionKey == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("personGroupId", personGroupId); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "Delete", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "persongroups/{personGroupId}"; + _url = _url.Replace("{azureRegion}", Client.AzureRegion1); + _url = _url.Replace("{personGroupId}", System.Uri.EscapeDataString(personGroupId)); + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("DELETE"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.SubscriptionKey != null) + { + if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) + { + _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); + } + _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + /// + /// Retrieve the information of a person group, including its name and + /// userData. + /// + /// + /// personGroupId of the target person group. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task> GetWithHttpMessagesAsync(string personGroupId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.AzureRegion1 == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); + } + if (personGroupId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "personGroupId"); + } + if (Client.SubscriptionKey == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("personGroupId", personGroupId); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "Get", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "persongroups/{personGroupId}"; + _url = _url.Replace("{azureRegion}", Client.AzureRegion1); + _url = _url.Replace("{personGroupId}", System.Uri.EscapeDataString(personGroupId)); + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("GET"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.SubscriptionKey != null) + { + if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) + { + _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); + } + _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + // Deserialize Response + if ((int)_statusCode == 200) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + } + catch (JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); + } + } + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + /// + /// Update an existing person group's display name and userData. The properties + /// which does not appear in request body will not be updated. + /// + /// + /// personGroupId of the person group to be updated. + /// + /// + /// Name of the face list, maximum length is 128. + /// + /// + /// Optional user defined data for the face list. Length should not exceed + /// 16KB. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task UpdateWithHttpMessagesAsync(string personGroupId, string name = default(string), string userData = default(string), Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.AzureRegion1 == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); + } + if (personGroupId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "personGroupId"); + } + if (Client.SubscriptionKey == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); + } + if (name != null) + { + if (name.Length > 128) + { + throw new ValidationException(ValidationRules.MaxLength, "name", 128); + } + } + if (userData != null) + { + if (userData.Length > 16384) + { + throw new ValidationException(ValidationRules.MaxLength, "userData", 16384); + } + } + CreatePersonGroupRequest body = new CreatePersonGroupRequest(); + if (name != null || userData != null) + { + body.Name = name; + body.UserData = userData; + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("personGroupId", personGroupId); + tracingParameters.Add("body", body); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "Update", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "persongroups/{personGroupId}"; + _url = _url.Replace("{azureRegion}", Client.AzureRegion1); + _url = _url.Replace("{personGroupId}", System.Uri.EscapeDataString(personGroupId)); + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("PATCH"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.SubscriptionKey != null) + { + if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) + { + _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); + } + _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + if(body != null) + { + _requestContent = Rest.Serialization.SafeJsonConvert.SerializeObject(body, Client.SerializationSettings); + _httpRequest.Content = new StringContent(_requestContent, System.Text.Encoding.UTF8); + _httpRequest.Content.Headers.ContentType =System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json; charset=utf-8"); + } + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + /// + /// Retrieve the training status of a person group (completed or ongoing). + /// + /// + /// personGroupId of target person group. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task> GetTrainingStatusWithHttpMessagesAsync(string personGroupId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.AzureRegion1 == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); + } + if (personGroupId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "personGroupId"); + } + if (Client.SubscriptionKey == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("personGroupId", personGroupId); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "GetTrainingStatus", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "persongroups/{personGroupId}/training"; + _url = _url.Replace("{azureRegion}", Client.AzureRegion1); + _url = _url.Replace("{personGroupId}", System.Uri.EscapeDataString(personGroupId)); + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("GET"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.SubscriptionKey != null) + { + if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) + { + _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); + } + _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + // Deserialize Response + if ((int)_statusCode == 200) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + } + catch (JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); + } + } + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + /// + /// List person groups and their information. + /// + /// + /// List person groups from the least personGroupId greater than the "start". + /// + /// + /// The number of person groups to list. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when unable to deserialize the response + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task>> ListWithHttpMessagesAsync(string start = default(string), int? top = 1000, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.AzureRegion1 == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); + } + if (start != null) + { + if (start.Length > 64) + { + throw new ValidationException(ValidationRules.MaxLength, "start", 64); + } + } + if (top > 1000) + { + throw new ValidationException(ValidationRules.InclusiveMaximum, "top", 1000); + } + if (top < 1) + { + throw new ValidationException(ValidationRules.InclusiveMinimum, "top", 1); + } + if (Client.SubscriptionKey == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("start", start); + tracingParameters.Add("top", top); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "List", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "persongroups"; + _url = _url.Replace("{azureRegion}", Client.AzureRegion1); + List _queryParameters = new List(); + if (start != null) + { + _queryParameters.Add(string.Format("start={0}", System.Uri.EscapeDataString(start))); + } + if (top != null) + { + _queryParameters.Add(string.Format("top={0}", System.Uri.EscapeDataString(Rest.Serialization.SafeJsonConvert.SerializeObject(top, Client.SerializationSettings).Trim('"')))); + } + if (_queryParameters.Count > 0) + { + _url += "?" + string.Join("&", _queryParameters); + } + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("GET"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.SubscriptionKey != null) + { + if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) + { + _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); + } + _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 200) + { + var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse>(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + // Deserialize Response + if ((int)_statusCode == 200) + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + try + { + _result.Body = Rest.Serialization.SafeJsonConvert.DeserializeObject>(_responseContent, Client.DeserializationSettings); + } + catch (JsonException ex) + { + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); + } + } + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + /// + /// Queue a person group training task, the training task may not be started + /// immediately. + /// + /// + /// Target person group to be trained. + /// + /// + /// Headers that will be added to request. + /// + /// + /// The cancellation token. + /// + /// + /// Thrown when the operation returned an invalid status code + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// Thrown when a required parameter is null + /// + /// + /// A response object containing the response body and response headers. + /// + public async Task TrainWithHttpMessagesAsync(string personGroupId, Dictionary> customHeaders = null, CancellationToken cancellationToken = default(CancellationToken)) + { + if (Client.AzureRegion1 == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.AzureRegion1"); + } + if (personGroupId == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "personGroupId"); + } + if (Client.SubscriptionKey == null) + { + throw new ValidationException(ValidationRules.CannotBeNull, "this.Client.SubscriptionKey"); + } + // Tracing + bool _shouldTrace = ServiceClientTracing.IsEnabled; + string _invocationId = null; + if (_shouldTrace) + { + _invocationId = ServiceClientTracing.NextInvocationId.ToString(); + Dictionary tracingParameters = new Dictionary(); + tracingParameters.Add("personGroupId", personGroupId); + tracingParameters.Add("cancellationToken", cancellationToken); + ServiceClientTracing.Enter(_invocationId, this, "Train", tracingParameters); + } + // Construct URL + var _baseUrl = Client.BaseUri; + var _url = _baseUrl + (_baseUrl.EndsWith("/") ? "" : "/") + "persongroups/{personGroupId}/train"; + _url = _url.Replace("{azureRegion}", Client.AzureRegion1); + _url = _url.Replace("{personGroupId}", System.Uri.EscapeDataString(personGroupId)); + // Create HTTP transport objects + var _httpRequest = new HttpRequestMessage(); + HttpResponseMessage _httpResponse = null; + _httpRequest.Method = new HttpMethod("POST"); + _httpRequest.RequestUri = new System.Uri(_url); + // Set Headers + if (Client.SubscriptionKey != null) + { + if (_httpRequest.Headers.Contains("Ocp-Apim-Subscription-Key")) + { + _httpRequest.Headers.Remove("Ocp-Apim-Subscription-Key"); + } + _httpRequest.Headers.TryAddWithoutValidation("Ocp-Apim-Subscription-Key", Client.SubscriptionKey); + } + + + if (customHeaders != null) + { + foreach(var _header in customHeaders) + { + if (_httpRequest.Headers.Contains(_header.Key)) + { + _httpRequest.Headers.Remove(_header.Key); + } + _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); + } + } + + // Serialize Request + string _requestContent = null; + // Send Request + if (_shouldTrace) + { + ServiceClientTracing.SendRequest(_invocationId, _httpRequest); + } + cancellationToken.ThrowIfCancellationRequested(); + _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); + if (_shouldTrace) + { + ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); + } + HttpStatusCode _statusCode = _httpResponse.StatusCode; + cancellationToken.ThrowIfCancellationRequested(); + string _responseContent = null; + if ((int)_statusCode != 202) + { + var ex = new APIErrorException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); + try + { + _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); + APIError _errorBody = Rest.Serialization.SafeJsonConvert.DeserializeObject(_responseContent, Client.DeserializationSettings); + if (_errorBody != null) + { + ex.Body = _errorBody; + } + } + catch (JsonException) + { + // Ignore the exception + } + ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); + ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); + if (_shouldTrace) + { + ServiceClientTracing.Error(_invocationId, ex); + } + _httpRequest.Dispose(); + if (_httpResponse != null) + { + _httpResponse.Dispose(); + } + throw ex; + } + // Create Result + var _result = new HttpOperationResponse(); + _result.Request = _httpRequest; + _result.Response = _httpResponse; + if (_shouldTrace) + { + ServiceClientTracing.Exit(_invocationId, _result); + } + return _result; + } + + } +} diff --git a/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/PersonGroupExtensions.cs b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/PersonGroupExtensions.cs new file mode 100644 index 000000000000..d0545cdcbe74 --- /dev/null +++ b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Generated/Face/PersonGroupExtensions.cs @@ -0,0 +1,291 @@ +// Code generated by Microsoft (R) AutoRest Code Generator 1.2.2.0 +// Changes may cause incorrect behavior and will be lost if the code is +// regenerated. + +namespace Microsoft.CognitiveServices.Vision.Face +{ + using Microsoft.CognitiveServices; + using Microsoft.CognitiveServices.Vision; + using Models; + using System.Collections; + using System.Collections.Generic; + using System.Threading; + using System.Threading.Tasks; + + /// + /// Extension methods for PersonGroup. + /// + public static partial class PersonGroupExtensions + { + /// + /// Create a new person group with specified personGroupId, name and + /// user-provided userData. + /// + /// + /// The operations group for this extension method. + /// + /// + /// User-provided personGroupId as a string. + /// + /// + /// Name of the face list, maximum length is 128. + /// + /// + /// Optional user defined data for the face list. Length should not exceed + /// 16KB. + /// + public static void Create(this IPersonGroup operations, string personGroupId, string name = default(string), string userData = default(string)) + { + operations.CreateAsync(personGroupId, name, userData).GetAwaiter().GetResult(); + } + + /// + /// Create a new person group with specified personGroupId, name and + /// user-provided userData. + /// + /// + /// The operations group for this extension method. + /// + /// + /// User-provided personGroupId as a string. + /// + /// + /// Name of the face list, maximum length is 128. + /// + /// + /// Optional user defined data for the face list. Length should not exceed + /// 16KB. + /// + /// + /// The cancellation token. + /// + public static async Task CreateAsync(this IPersonGroup operations, string personGroupId, string name = default(string), string userData = default(string), CancellationToken cancellationToken = default(CancellationToken)) + { + (await operations.CreateWithHttpMessagesAsync(personGroupId, name, userData, null, cancellationToken).ConfigureAwait(false)).Dispose(); + } + + /// + /// Delete an existing person group. Persisted face images of all people in the + /// person group will also be deleted. + /// + /// + /// The operations group for this extension method. + /// + /// + /// The personGroupId of the person group to be deleted. + /// + public static void Delete(this IPersonGroup operations, string personGroupId) + { + operations.DeleteAsync(personGroupId).GetAwaiter().GetResult(); + } + + /// + /// Delete an existing person group. Persisted face images of all people in the + /// person group will also be deleted. + /// + /// + /// The operations group for this extension method. + /// + /// + /// The personGroupId of the person group to be deleted. + /// + /// + /// The cancellation token. + /// + public static async Task DeleteAsync(this IPersonGroup operations, string personGroupId, CancellationToken cancellationToken = default(CancellationToken)) + { + (await operations.DeleteWithHttpMessagesAsync(personGroupId, null, cancellationToken).ConfigureAwait(false)).Dispose(); + } + + /// + /// Retrieve the information of a person group, including its name and + /// userData. + /// + /// + /// The operations group for this extension method. + /// + /// + /// personGroupId of the target person group. + /// + public static PersonGroupResult Get(this IPersonGroup operations, string personGroupId) + { + return operations.GetAsync(personGroupId).GetAwaiter().GetResult(); + } + + /// + /// Retrieve the information of a person group, including its name and + /// userData. + /// + /// + /// The operations group for this extension method. + /// + /// + /// personGroupId of the target person group. + /// + /// + /// The cancellation token. + /// + public static async Task GetAsync(this IPersonGroup operations, string personGroupId, CancellationToken cancellationToken = default(CancellationToken)) + { + using (var _result = await operations.GetWithHttpMessagesAsync(personGroupId, null, cancellationToken).ConfigureAwait(false)) + { + return _result.Body; + } + } + + /// + /// Update an existing person group's display name and userData. The properties + /// which does not appear in request body will not be updated. + /// + /// + /// The operations group for this extension method. + /// + /// + /// personGroupId of the person group to be updated. + /// + /// + /// Name of the face list, maximum length is 128. + /// + /// + /// Optional user defined data for the face list. Length should not exceed + /// 16KB. + /// + public static void Update(this IPersonGroup operations, string personGroupId, string name = default(string), string userData = default(string)) + { + operations.UpdateAsync(personGroupId, name, userData).GetAwaiter().GetResult(); + } + + /// + /// Update an existing person group's display name and userData. The properties + /// which does not appear in request body will not be updated. + /// + /// + /// The operations group for this extension method. + /// + /// + /// personGroupId of the person group to be updated. + /// + /// + /// Name of the face list, maximum length is 128. + /// + /// + /// Optional user defined data for the face list. Length should not exceed + /// 16KB. + /// + /// + /// The cancellation token. + /// + public static async Task UpdateAsync(this IPersonGroup operations, string personGroupId, string name = default(string), string userData = default(string), CancellationToken cancellationToken = default(CancellationToken)) + { + (await operations.UpdateWithHttpMessagesAsync(personGroupId, name, userData, null, cancellationToken).ConfigureAwait(false)).Dispose(); + } + + /// + /// Retrieve the training status of a person group (completed or ongoing). + /// + /// + /// The operations group for this extension method. + /// + /// + /// personGroupId of target person group. + /// + public static TrainingStatus GetTrainingStatus(this IPersonGroup operations, string personGroupId) + { + return operations.GetTrainingStatusAsync(personGroupId).GetAwaiter().GetResult(); + } + + /// + /// Retrieve the training status of a person group (completed or ongoing). + /// + /// + /// The operations group for this extension method. + /// + /// + /// personGroupId of target person group. + /// + /// + /// The cancellation token. + /// + public static async Task GetTrainingStatusAsync(this IPersonGroup operations, string personGroupId, CancellationToken cancellationToken = default(CancellationToken)) + { + using (var _result = await operations.GetTrainingStatusWithHttpMessagesAsync(personGroupId, null, cancellationToken).ConfigureAwait(false)) + { + return _result.Body; + } + } + + /// + /// List person groups and their information. + /// + /// + /// The operations group for this extension method. + /// + /// + /// List person groups from the least personGroupId greater than the "start". + /// + /// + /// The number of person groups to list. + /// + public static IList List(this IPersonGroup operations, string start = default(string), int? top = 1000) + { + return operations.ListAsync(start, top).GetAwaiter().GetResult(); + } + + /// + /// List person groups and their information. + /// + /// + /// The operations group for this extension method. + /// + /// + /// List person groups from the least personGroupId greater than the "start". + /// + /// + /// The number of person groups to list. + /// + /// + /// The cancellation token. + /// + public static async Task> ListAsync(this IPersonGroup operations, string start = default(string), int? top = 1000, CancellationToken cancellationToken = default(CancellationToken)) + { + using (var _result = await operations.ListWithHttpMessagesAsync(start, top, null, cancellationToken).ConfigureAwait(false)) + { + return _result.Body; + } + } + + /// + /// Queue a person group training task, the training task may not be started + /// immediately. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Target person group to be trained. + /// + public static void Train(this IPersonGroup operations, string personGroupId) + { + operations.TrainAsync(personGroupId).GetAwaiter().GetResult(); + } + + /// + /// Queue a person group training task, the training task may not be started + /// immediately. + /// + /// + /// The operations group for this extension method. + /// + /// + /// Target person group to be trained. + /// + /// + /// The cancellation token. + /// + public static async Task TrainAsync(this IPersonGroup operations, string personGroupId, CancellationToken cancellationToken = default(CancellationToken)) + { + (await operations.TrainWithHttpMessagesAsync(personGroupId, null, cancellationToken).ConfigureAwait(false)).Dispose(); + } + + } +} diff --git a/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Microsoft.CognitiveServices.Vision.csproj b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Microsoft.CognitiveServices.Vision.csproj new file mode 100644 index 000000000000..75447fb0adf8 --- /dev/null +++ b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Microsoft.CognitiveServices.Vision.csproj @@ -0,0 +1,25 @@ + + + + Microsoft.CognitiveServices.Vision + This client library provides access to the Microsoft Cognitive Services Vision APIs (Face). + 1.0.0 + $(DefineConstants);CODESIGN + true + Microsoft.CognitiveServices.Vision + Microsoft Cognitive Services;Cognitive Services;Cognitive Services SDK;Face API;REST HTTP client;Face SDK;netcore451511 + This is a preview release of the Cognitive Services Vision SDK. Included with this release is support for Face API. + bin\$(Configuration)\$(TargetFramework)\$(AssemblyName).xml + + + + net452;netstandard1.4 + + + + + + + + + \ No newline at end of file From a3dc7e9b26d73d1d19a545e30bf81b34fa140644 Mon Sep 17 00:00:00 2001 From: "David Li (WINDOWS)" Date: Mon, 11 Sep 2017 17:08:13 -0700 Subject: [PATCH 17/21] Fixing presumptive OS specific path convention. --- .../FaceDetectionTests.cs | 2 +- .../Microsoft.CognitiveServices.Vision.csproj | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision.Tests/FaceDetectionTests.cs b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision.Tests/FaceDetectionTests.cs index a677c56c135a..9a90ed5fe2e4 100644 --- a/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision.Tests/FaceDetectionTests.cs +++ b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision.Tests/FaceDetectionTests.cs @@ -19,7 +19,7 @@ public void FaceDetection() HttpMockServer.Initialize(this.GetType().FullName, "FaceDetection"); IFaceAPI client = GetClient(HttpMockServer.CreateInstance()); - using (FileStream stream = new FileStream("TestImages\\detection1.jpg", FileMode.Open)) + using (FileStream stream = new FileStream(Path.Combine("TestImages", "detection1.jpg"), FileMode.Open)) { IList faceList = client.Face.DetectInStream(stream); Assert.Equal(1, faceList.Count); diff --git a/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Microsoft.CognitiveServices.Vision.csproj b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Microsoft.CognitiveServices.Vision.csproj index 75447fb0adf8..81706b773e1a 100644 --- a/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Microsoft.CognitiveServices.Vision.csproj +++ b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Microsoft.CognitiveServices.Vision.csproj @@ -2,7 +2,7 @@ Microsoft.CognitiveServices.Vision - This client library provides access to the Microsoft Cognitive Services Vision APIs (Face). + This client library provides access to the Microsoft Cognitive Services Vision APIs. 1.0.0 $(DefineConstants);CODESIGN true From e9e182b01abe02a8d9b1724eaf0ca15a410bb685 Mon Sep 17 00:00:00 2001 From: "David Li (WINDOWS)" Date: Tue, 12 Sep 2017 10:20:07 -0700 Subject: [PATCH 18/21] Adding Assembly.Info for Language --- .../Properties/AssemblyInfo.cs | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language/Properties/AssemblyInfo.cs diff --git a/src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language/Properties/AssemblyInfo.cs b/src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language/Properties/AssemblyInfo.cs new file mode 100644 index 000000000000..627baa18fb9a --- /dev/null +++ b/src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language/Properties/AssemblyInfo.cs @@ -0,0 +1,19 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. + +using System.Reflection; +using System.Resources; + +[assembly: AssemblyTitle("Microsoft Azure Cognitive Services Language Client Library")] +[assembly: AssemblyDescription("Provides API functions for consuming Microsoft Azure Cognitive Services Language APIs.")] + +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] + +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("Microsoft")] +[assembly: AssemblyProduct("Microsoft Azure .NET SDK")] +[assembly: AssemblyCopyright("Copyright (c) Microsoft Corporation")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] +[assembly: NeutralResourcesLanguage("en")] From 529c38dad2197597918e705bd2b47c253f8f4bb0 Mon Sep 17 00:00:00 2001 From: "David Li (WINDOWS)" Date: Tue, 12 Sep 2017 10:21:52 -0700 Subject: [PATCH 19/21] Adding AssemblyInfo for VIsion --- .../Properties/AssemblyInfo.cs | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Properties/AssemblyInfo.cs diff --git a/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Properties/AssemblyInfo.cs b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Properties/AssemblyInfo.cs new file mode 100644 index 000000000000..75464b37280e --- /dev/null +++ b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Properties/AssemblyInfo.cs @@ -0,0 +1,19 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. + +using System.Reflection; +using System.Resources; + +[assembly: AssemblyTitle("Microsoft Azure Cognitive Services Vision Client Library")] +[assembly: AssemblyDescription("Provides API functions for consuming Microsoft Azure Cognitive Services Vision APIs.")] + +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] + +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("Microsoft")] +[assembly: AssemblyProduct("Microsoft Azure .NET SDK")] +[assembly: AssemblyCopyright("Copyright (c) Microsoft Corporation")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] +[assembly: NeutralResourcesLanguage("en")] From 58508d071db8643da18d5ab635c08c4b1d89a82d Mon Sep 17 00:00:00 2001 From: "David Li (WINDOWS)" Date: Tue, 12 Sep 2017 10:26:01 -0700 Subject: [PATCH 20/21] Updates based on feedback. --- .../Microsoft.CognitiveServices.Language.csproj | 9 +-------- .../Microsoft.CognitiveServices.Vision.csproj | 10 +--------- 2 files changed, 2 insertions(+), 17 deletions(-) diff --git a/src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language/Microsoft.CognitiveServices.Language.csproj b/src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language/Microsoft.CognitiveServices.Language.csproj index 58bb38e8c715..1bff1a5ae9b0 100644 --- a/src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language/Microsoft.CognitiveServices.Language.csproj +++ b/src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language/Microsoft.CognitiveServices.Language.csproj @@ -3,22 +3,15 @@ Microsoft.CognitiveServices.Language This client library provides access to the Microsoft Cognitive Services Language APIs. - 1.0.0 + 1.0.0-preview $(DefineConstants);CODESIGN true Microsoft.CognitiveServices.Language Microsoft Cognitive Services;Cognitive Services;Cognitive Services SDK;Text Analytics API;Text Analytics;REST HTTP client;netcore451511 This is a preview release of the Cognitive Services Language SDK. Included with this release is support for Text Analytics API. - bin\$(Configuration)\$(TargetFramework)\$(AssemblyName).xml net452;netstandard1.4 - - - - - - \ No newline at end of file diff --git a/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Microsoft.CognitiveServices.Vision.csproj b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Microsoft.CognitiveServices.Vision.csproj index 81706b773e1a..f6152b6eb223 100644 --- a/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Microsoft.CognitiveServices.Vision.csproj +++ b/src/SDKs/CognitiveServices/dataPlane/Vision/Microsoft.CognitiveServices.Vision/Microsoft.CognitiveServices.Vision.csproj @@ -3,23 +3,15 @@ Microsoft.CognitiveServices.Vision This client library provides access to the Microsoft Cognitive Services Vision APIs. - 1.0.0 + 1.0.0-preview $(DefineConstants);CODESIGN true Microsoft.CognitiveServices.Vision Microsoft Cognitive Services;Cognitive Services;Cognitive Services SDK;Face API;REST HTTP client;Face SDK;netcore451511 This is a preview release of the Cognitive Services Vision SDK. Included with this release is support for Face API. - bin\$(Configuration)\$(TargetFramework)\$(AssemblyName).xml net452;netstandard1.4 - - - - - - - \ No newline at end of file From 8ab7c50ec58ac10186345dbc8066216bbbe53b59 Mon Sep 17 00:00:00 2001 From: "David Li (WINDOWS)" Date: Tue, 12 Sep 2017 11:05:41 -0700 Subject: [PATCH 21/21] Adding a simple readme.md. --- .../Readme.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language/Readme.md diff --git a/src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language/Readme.md b/src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language/Readme.md new file mode 100644 index 000000000000..0008bcacdeee --- /dev/null +++ b/src/SDKs/CognitiveServices/dataPlane/Language/Microsoft.CognitiveServices.Language/Readme.md @@ -0,0 +1,17 @@ +# Microsoft Cognitive Services Language SDK for .NET + ---- + + This SDK allows you to build applications that consumes Microsoft Cognitive Services Language APIs. + + ### APIs + + For a full list of APIs under Language, please see our [list of language APIs](https://azure.microsoft.com/en-us/services/cognitive-services/?v=17.29#lang). + +### Target Frameworks: + +* .NET Framework 4.5.2 +* Netstandard 1.4, based on the NetCore framework + +## Build Instructions: + +To build this project, please follow the instructions [here](https://github.com/Azure/azure-sdk-for-net/blob/psSdkJson6/README.md). \ No newline at end of file

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ú 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%0AOmrW~f^+X8Bb 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ú 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%0AOmrW~f^+X8Bb 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ú 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%0AOmrW~f^+X8Bb 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ú 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%0AOmrW~f^+X8Bb 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