From 3657b870d800dcec4015d6c72552b99b30820f17 Mon Sep 17 00:00:00 2001 From: Mathew Date: Tue, 14 Jul 2026 14:25:02 +0200 Subject: [PATCH] (Feat) Add build cost --- .../Animated PBR Chest _Wood_Demo.fbx.meta | 171 ++++++-- .../Models/Cieling(Wood)/WoodCieling.fbx | Bin 44060 -> 44140 bytes .../Structure/Build/Build/Chest.prefab | 203 --------- .../Structure/Build/Build/Dual Bed.prefab | 8 +- .../Build/Build/WoodCelling_Prefab.prefab | 4 +- .../Structure/Build/Ghost/Chest_Ghost.prefab | 295 ------------- .../Build/Ghost/Ghost_WoodCelling.prefab | 6 +- .../Chest_Ghost.prefab.meta => UI/Build.meta} | 5 +- .../Prefabs/UI/Build/Ressources Needed.prefab | 327 ++++++++++++++ .../Build/Ressources Needed.prefab.meta} | 2 +- Assets/GAME/Prefabs/UI/Player_Canvas.prefab | 83 ++++ Assets/GAME/Scenes/Dev Scene/Dev Scene.unity | 214 +++++++++ Assets/GAME/Script/Building/BuildCost.cs | 15 + Assets/GAME/Script/Building/BuildCost.cs.meta | 2 + Assets/GAME/Script/Building/BuildCostView.cs | 26 ++ .../Script/Building/BuildCostView.cs.meta | 2 + Assets/GAME/Script/Building/BuildManager.cs | 154 ++++++- Assets/GAME/Script/Building/BuildableData.cs | 23 + .../ScreenshotStudioWindow.cs | 35 +- .../GAME/Script/Player/Events/PlayerEvents.cs | 14 + Assets/GAME/Script/UI/BuildCostEntryUI.cs | 56 +++ .../GAME/Script/UI/BuildCostEntryUI.cs.meta | 2 + Assets/GAME/Script/UI/CrosshairManager.cs | 98 ++++- Assets/GAME/Script/UI/NotificationUI.cs | 104 ++++- .../Buildables/NewBuildable 1.asset | 3 + Assets/Resources/DefaultPrefabObjects.asset | 1 - .../LiberationSans SDF - Fallback.asset | 407 +----------------- 27 files changed, 1270 insertions(+), 990 deletions(-) delete mode 100644 Assets/GAME/Prefabs/Structure/Build/Build/Chest.prefab delete mode 100644 Assets/GAME/Prefabs/Structure/Build/Ghost/Chest_Ghost.prefab rename Assets/GAME/Prefabs/{Structure/Build/Ghost/Chest_Ghost.prefab.meta => UI/Build.meta} (57%) create mode 100644 Assets/GAME/Prefabs/UI/Build/Ressources Needed.prefab rename Assets/GAME/Prefabs/{Structure/Build/Build/Chest.prefab.meta => UI/Build/Ressources Needed.prefab.meta} (74%) create mode 100644 Assets/GAME/Script/Building/BuildCost.cs create mode 100644 Assets/GAME/Script/Building/BuildCost.cs.meta create mode 100644 Assets/GAME/Script/Building/BuildCostView.cs create mode 100644 Assets/GAME/Script/Building/BuildCostView.cs.meta create mode 100644 Assets/GAME/Script/UI/BuildCostEntryUI.cs create mode 100644 Assets/GAME/Script/UI/BuildCostEntryUI.cs.meta diff --git a/Assets/External/Animated PBR Chest Demo/Fbx/Animated PBR Chest _Wood_Demo.fbx.meta b/Assets/External/Animated PBR Chest Demo/Fbx/Animated PBR Chest _Wood_Demo.fbx.meta index 59a6ac9a..c678cfa7 100644 --- a/Assets/External/Animated PBR Chest Demo/Fbx/Animated PBR Chest _Wood_Demo.fbx.meta +++ b/Assets/External/Animated PBR Chest Demo/Fbx/Animated PBR Chest _Wood_Demo.fbx.meta @@ -1,37 +1,102 @@ fileFormatVersion: 2 guid: 1cc6cc20abc7a464a9dec49ee02361cf +AssetOrigin: + serializedVersion: 1 + productId: 194755 + packageName: Animated PBR Chest Demo + packageVersion: 1.1.0 + assetPath: Assets/Animated PBR Chest Demo/Fbx/Animated PBR Chest _Wood_Demo.fbx + uploadId: 618699 ModelImporter: - serializedVersion: 23 - fileIDToRecycleName: - 100000: //RootNode - 100002: Armature - 100004: Base - 100006: Base.001 - 100008: Base.002 - 100010: Cap - 100012: Cap.001 - 100014: Cap.002 - 100016: Cap.003 - 100018: Handle.L - 100020: Handle.R - 100022: Root - 100024: WoodChest - 400000: //RootNode - 400002: Armature - 400004: Base - 400006: Base.001 - 400008: Base.002 - 400010: Cap - 400012: Cap.001 - 400014: Cap.002 - 400016: Cap.003 - 400018: Handle.L - 400020: Handle.R - 400022: Root - 400024: WoodChest - 4300000: WoodChest - 9500000: //RootNode - 13700000: WoodChest + serializedVersion: 24200 + internalIDToNameTable: + - first: + 1: 100000 + second: //RootNode + - first: + 1: 100002 + second: Armature + - first: + 1: 100004 + second: Base + - first: + 1: 100006 + second: Base.001 + - first: + 1: 100008 + second: Base.002 + - first: + 1: 100010 + second: Cap + - first: + 1: 100012 + second: Cap.001 + - first: + 1: 100014 + second: Cap.002 + - first: + 1: 100016 + second: Cap.003 + - first: + 1: 100018 + second: Handle.L + - first: + 1: 100020 + second: Handle.R + - first: + 1: 100022 + second: Root + - first: + 1: 100024 + second: WoodChest + - first: + 4: 400000 + second: //RootNode + - first: + 4: 400002 + second: Armature + - first: + 4: 400004 + second: Base + - first: + 4: 400006 + second: Base.001 + - first: + 4: 400008 + second: Base.002 + - first: + 4: 400010 + second: Cap + - first: + 4: 400012 + second: Cap.001 + - first: + 4: 400014 + second: Cap.002 + - first: + 4: 400016 + second: Cap.003 + - first: + 4: 400018 + second: Handle.L + - first: + 4: 400020 + second: Handle.R + - first: + 4: 400022 + second: Root + - first: + 4: 400024 + second: WoodChest + - first: + 43: 4300000 + second: WoodChest + - first: + 95: 9500000 + second: //RootNode + - first: + 137: 13700000 + second: WoodChest externalObjects: - first: type: UnityEngine:Material @@ -39,7 +104,7 @@ ModelImporter: name: WoodChest second: {fileID: 2100000, guid: 0e771690fad43914fb256fd021ff1796, type: 2} materials: - importMaterials: 1 + materialImportMode: 1 materialName: 0 materialSearch: 1 materialLocation: 0 @@ -48,9 +113,8 @@ ModelImporter: bakeSimulation: 0 resampleCurves: 1 optimizeGameObjects: 1 + removeConstantScaleCurves: 0 motionNodeName: - rigImportErrors: - rigImportWarnings: animationImportErrors: animationImportWarnings: animationRetargetingWarnings: @@ -69,29 +133,43 @@ ModelImporter: isReadable: 0 meshes: lODScreenPercentages: [] - globalScale: 1 + globalScale: 0.5 meshCompression: 0 addColliders: 0 useSRGBMaterialColor: 1 + sortHierarchyByName: 1 + importPhysicalCameras: 1 importVisibility: 1 importBlendShapes: 1 importCameras: 1 importLights: 1 + nodeNameCollisionStrategy: 0 + fileIdsGeneration: 1 swapUVChannels: 0 generateSecondaryUV: 0 useFileUnits: 1 - optimizeMeshForGPU: 1 keepQuads: 0 weldVertices: 1 + bakeAxisConversion: 0 preserveHierarchy: 0 + skinWeightsMode: 0 + maxBonesPerVertex: 4 + minBoneWeight: 0.001 + optimizeBones: 1 + generateMeshLods: 0 + meshLodGenerationFlags: 0 + maximumMeshLod: -1 + meshOptimizationFlags: -1 indexFormat: 0 secondaryUVAngleDistortion: 8 secondaryUVAreaDistortion: 15.000001 secondaryUVHardAngle: 88 + secondaryUVMarginMethod: 0 + secondaryUVMinLightmapResolution: 40 + secondaryUVMinObjectScale: 1 secondaryUVPackMargin: 4 useFileScale: 1 - previousCalculatedGlobalScale: 1 - hasPreviousCalculatedGlobalScale: 1 + strictVertexDataChecks: 0 tangentSpace: normalSmoothAngle: 60 normalImportMode: 0 @@ -100,10 +178,10 @@ ModelImporter: legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0 blendShapeNormalImportMode: 1 normalSmoothingSource: 0 + referencedClips: [] importAnimation: 0 - copyAvatar: 0 humanDescription: - serializedVersion: 2 + serializedVersion: 3 human: [] skeleton: [] armTwist: 0.5 @@ -113,21 +191,20 @@ ModelImporter: armStretch: 0.05 legStretch: 0.05 feetSpacing: 0 + globalScale: 0.5 rootMotionBoneName: hasTranslationDoF: 0 hasExtraRoot: 0 skeletonHasParents: 1 lastHumanDescriptionAvatarSource: {instanceID: 0} + autoGenerateAvatarMappingIfUnspecified: 1 animationType: 2 humanoidOversampling: 1 + avatarSetup: 1 + addHumanoidExtraRootOnlyWhenUsingAvatar: 0 + importBlendShapeDeformPercent: 0 + remapMaterialsIfMaterialImportModeIsNone: 1 additionalBone: 0 userData: assetBundleName: assetBundleVariant: -AssetOrigin: - serializedVersion: 1 - productId: 194755 - packageName: Animated PBR Chest Demo - packageVersion: 1.1.0 - assetPath: Assets/Animated PBR Chest Demo/Fbx/Animated PBR Chest _Wood_Demo.fbx - uploadId: 618699 diff --git a/Assets/External/Low Poly Modular Set (Wood)/Models/Cieling(Wood)/WoodCieling.fbx b/Assets/External/Low Poly Modular Set (Wood)/Models/Cieling(Wood)/WoodCieling.fbx index 41f8c2d806b9ba7de2a61acafdb4d336cbbaf6ae..67248086e599e37b590271e20a15983609366cb7 100644 GIT binary patch delta 25344 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 delta 25258 zcmZs?2{={X*8uEZW04{ActfUSO6K8)N)nPJnF%Fa^UO&qqDY4%!%ZqhNRrtlW5ktt zzUFJb=IhQMzu)_Q|Nr;A-+rERp0(H7XP-6gz4lpqpS2Na_6YQ)FvKiXq*Y*^nU0Q3 zM@I)aycmxzGlXx@J(FXpgfjs5VI6)*_+J{6*?r&OAa@guL%hv@Zq6hF3tbbQt=SUY!u+`5`+k_k~^#zdb|7Hbq_cNCNgkvpHet= zPEku)QTY%!uXs*HQS}1Y4AF&%y@HBDHK3p+3peNtW#DI~|4-j6X6`{Q7hQr}-2Y#? zKos;paxmV!ALQ+Bb@V_w7zGs&EdDPdlR-r02-wJY2ND4aGdUdVJZyMm6+u;u?0c4KdZtBbdldr;7Q zU(di(;B^)Or~}(SV)=oOSkxg!U^R<2bb$rjW6^|2f{MrVAP%7SF)c_I`01D)bnF?86+OJhTHA=g1G zHYdgG6aUKy9o?~u2)AG#ci*7Ej6(*Gr1{4yjS#`UK_*Al6mXi2S8UG* zE{-}s2a0mZLZwds)9)?Ni3<)X1(96050!nuWdm^nub;Gm`~*LryanAp`HEW`VhZYT z--diRyo-Tq0@~0iZjh5#6lCQQh6sQzJf}co9zn>BLr4qq{O~RYRv%K@{((FNg&}kx z2d@@H6Exw~fJA|@yhhMgUXX)N0$k#ig0O?^d{+*&%+4nXM({~N(!qCpdeBuq5W{y9 zVhEn+zXgc|llV2EfB8XS0U;2>uMLp_g#@f2j-a1_`eA!N0nvXL`121$5)g#a3xfWK zO_c?Oq1yj~hipLo{{?doIVu2a1l6DzL2ye@9daIw77{vA>7j!~3*CgGguoeLL2yk- z7`pc__)9<-DlhyG_O`Gv)a3{i244ybLNopa+YZ6*Bk(-rEXXI~2uT2gMeLw+B4D40 z?IF8Sdy`VUD1d?+Rc-Vu{J6!)Q+5%iZB$ObzF z*1)77$3Rxt*%=a=<5Y&d@bE5G!W})jb0$y*Uqhoe_dYodJP2x(u7}$}=G9jRwQ{3&b-Z zMBV^;O&-+C)B=^#kNqQmvOJiQsSggw%R!rzL7Kd{0PcUJ`LAi^D0KV)HP0$R3zYv6 z%pZ(Bt9j&QXVsvqXThzrh7f7+yn;659*9sdI25T&K^KZq0C5VM5N^<3Q3y0t6oeQb zLaLB3@THCwWw4ir;V?dw zD&K+Doj)A)uu}x(|6_t9?n)1*tfQfS;vW+@sjxxbgWf6vkO1(BiW=k#SgWFbY)a+d zxl#sXeJ^_?9UV6)bME}1XV{<9KD1B9IW6d~b70>&O$ZcZRfQiK&Qw+HFl@!DDngLp zH&qSjuqwE$styqbPn|b{*nxM?!w<*jhx0y)W?zo_`?oM#xO%y}1qCW+(9s?7b`-K% zjNK7F?m+?J*FuKoltH-KX{dqPkt)F`wG)R%hmboe;c@S`xrwDO+&>J5b# zYV|CMV>S+UxQNd;d=&C-K2cM&zF#K)<$=Se6~45`33lJmQD{{Z+QXan7QNGr$L9d5 zo*q3~fxiUi7C3^fpR4?>Zr@{X>bNl;tc;;@M8-yfkr<{a3Bjs`E+V#6z&>ZJzh`ss zSKxH{r;HE*`=LSsgdb%0UwsaU%L7GB87k>-KRe%bQ+4~ZH2fA4T`WeAA%z?9#+9pn zOk#7=tv*JKFhH&_W%LutUVcDt{&Z2n+eX;y(wdV_)PUMiVB5XJb6mPt|1q$$t#H0H zQH~X`i+11R_xz!uUDALI0iV(F?c~;=pU2$!{ppOr=#avTKc8Q>(DU;WIrUE$#Wr0k zcVWzmv+TP14TJG3D{dOxcs0Glfrvx%XX9M`v^?F@SS~k2AM=yi_$0fdr_D;`iG$H? znBBWRKJ8`5vGkeQw;3Jv_s$7bRT#;snH5!;#u6h_c(K`uI4<=jLkg|y zv3650sd4yz!Ht`n3T~0~_@^6miYe4D=}q-~t;4Nj>oO$OQ2rnm>IQuOZ8IG@8qV@9^(#LxUJcx%`dq*bPWest<9F7#m3J|1k~Pc z65wFZN6RYy@4Uq}Pf4<41J5iv=ie2#WYYh3Fnhze#@XwLsvyaNh~euFAi4=Gk0E8T2VF9}5{R+mJEo z+KrQ%i`EYGx+n2`KOfPouYI0tF>%=7?kn@(+miaTlw?3-)jb*SR3+x_hYF#e{_|}7 zjJ?h29zFdtR>9pc>SUd?VM7*k z{dG)tmhOCQ_>j)E{RuFmIeb#L2U9ro_uzLoNkSuMEp&yU6mfoNb%?jl@cy)~==-h) zR?$k|)Uy1C1Ej5nxzd$i(qB)w*Cg=#LC5$5<8L~W>VYixzO0el3hdb z>fL34t1+D$*xf1XPkZ8P$(7Fzi7C0@?_ljwyyci3sZx0*t> zHUc(#-_C8FIn>0OMxvqq_wc4RpP!%fwi{Y~vhkI{QWM>*2&+lgVfUScn*OTWj^*L; z*aoW8P8!S3r{quCqnNRi;ZDh;*RL`x7V&WauJsW!G98j%Cuc=(BevD2y(~_6gn4i3 zZWbqNO!KWs?7QE3PKa#jxg`mlBV57`mU7fBL@b3Vyj>Kwzgap)S5-WYOfDc2=C^Lg zMJ{j)Wm$$yJc$^u4O&)Sv)sGRu_@JDVgNVZ(5QMd&Qeujb@m#mhn$lU8Mht0Vp+!u zTwDvAmhh7HE6Q(>7F8>96#Ww!g1xj83EX#@;J4H(cyzo$a({vaTRgZM%7k^xZE!ny zPfaZMNF&t*#Fbk!qu(I*iJeLs%yHKWuVJNr#Pizgc~g5hyvAru=se%Q`1%*Yze}0l z$NXIVuBo&qKUl_&MCS}TGDf^c?A6BsGP1tZ3#6qJVo8z3`pCz`Q4aqcyr$pZK&C-- zQlFAw?RuT-g5z5aT@J_YfDxJ0K&HL81B%2~4AO>Kdkrf)?fv(Yo=1*$IMceN_flOcxwlG5EdP{HA;3$MU&LGEyjMJqzm!jT94l z)+URvCu@J;M%WdFUwV2E*D|-1SI!qT*K|K-w^%ja_hzBgr41G76IfTAY}aK6V>#4F z_seaK|K9I((=ntDarN?#T2=uvXIcpGHb_P#^(x-=QU?bvDWgySd2Nsw+1QC514_Bb zl;amVJZ~eZ=U;E~#%-Dp=)}Xl$?uzqW|MDHw5ZQ#O(F&V!E98P?oT$v5|U@-GWy+-|?m+GPg8vZwWcKt+;l+d&0*(!`7T?RoQytS$@^y z^5)FK8F9L{SefZU3Q%a@Y$a3hOR<7_e_Hp;*ok~e&$+CnH?zVvPWpvZpU%n0 zH;BVe<8OGxpa%9BT!L;%xz*1$y7c`nWYuZ?S~y}H6LZywcN1vI^=j0s=kXsI4?8^% zj}7}czE^cW$lZnAZ)=ji(UySEe@uwBHOBnT(V<>< zh4j<{O%e%ut9+G%(_RtkL1czwqLUj=3BqTF=@ntCqhp(`HlF!^WW$A*NP6;gHuQFq zxNogHfy9E+AVK$qp1?*p|!$U zZ#@^&wObU-ruga$MuK}dFS#!?L|i|q>h4PDB*yzoW<~{qAzR7eQFLnQWR0_*k~VYr z)lb$R0)al=x#T8FXuwHp*M&DyziB^xAq1+yv4j5OS_1tKw zA^RW4k6}!=9_t;D+}nK9tLaDzs&Wk~sWr!UfRYGiLY9KV3z8ImUNoL+C$;4Gfz07I z1+-Yl?a=4D{i*XB)@U3Z+cIt{9grEDp2BE1BU5z;pRRD?7S(>KYP&d`ZSkr1-1&l> z62QJm*+>k2Ceo>ssw=R_8ttV)US8PG*S~+2W0SI;{~M_kbp_iH!`H2o6tq^S?(~@x zu#rT#MyEyvJ=$Fe_3tny-ep{?J=nQEP&WIlCroDBz&*C8q96AQp82e?Vh)B&{ZfVQ z+$tc?h9@c|(}F9Fdbe^YClL;k6QfQ9Tm7Jkom1tNy>&eVOZ11+NzSN=oyAa-E9W#> z(FNW?qI(4^l~wsolRJMhHkQ5p@Z=r9CbBO^6aQp^!c`TCy4#(b#-Br4vcO#OAF4)? zcldh!akVAdrEz8PI$KRR6hyo4nao$YJ<`O%T)LFbWLWD1V~}DV#m$O@Y_u8a&0d=J zCGS!v;t$O02HT%yZa{eu6^i)6{0V2+IagW^D$8>?RVp3-6x@72H%}`UUyDLsqHY& z>V#YMTw&Z;wACx*oiTS@G_LKf`K8@ERP>WQXs1C$IW_2e;_xwVPpDsI$#s|-2cdP9 zlUC%RN%Nh2Kb6dkDGnSsfCG)@m5SRMt*H%m#y-9bMl`WB`wP@i&Q`p*m6r1^38jf!YoJWgp!N#*x6em>*S%_6rg6YNOqk+G%X zq-bok3uU^&nEWWXm2$Xdd`@=5=*&vgXYG-<<=V`-8d4+(Dtb)X8 zyRbSZ6ywIed>v8h9d2LaVvp5h9SUcyVkIEaFSwNxlcdN^#SAT@H-B5*gXP2|4~CN9 ze4(UEe3cZbNd4l5@swGWag|a(qD=z^=~sYp->c{cU~a5Wn~@XC1zUa?+Yz9A|8u&j z31)q`Si)YLqUVB3>gSlR-RVH6=RT$wg;$z>uP&Ha*64J%Oi)#)UKvMTyGK9K#yyTs z3n$%po*Y0#+Bdw27})lKS=Z}Bsz_5d2=)AfwO!_cHN0%D4uv6SBxO6fAGjX(dFrJ( z>Jfk*O{{DC#DhbGb$N-S!pz|pyT>^uiX$oOwab*HUF+SQdgqk!_$}3De7TiP<>H4=z$Yb+TKRqra!8S)0193h_9)#tFo#q zLu||T{BpU_;Hz$&gMF#2F^=r#ctim3q@S&k?Xwcu<_3Po(|GzZSyMk0ro zw-=pv-zv0K&uSQv+vL6u&qn-u#>2b0G1J8vdf=F_YS`!LZ{}ZOZ|`H;7_naWDEO%! zUu9IV)Q`Z~v)VR!4WZ!LO>y7gwYqaHtz`Mzh{v!V`Coh6?{9w{?s?$fg`KoH{mhxd zmvP7^k&k1qIC*TK_Uqr&A?mfaIm)GbDR=Of5|2}T38-f&+D6#+zgyHBawZI@l%;s; zmIeM1a__6tH1n!w5!z5kp$Aj@DA0ZQ!FsBAj|Z6C`eYOX(C6Xrv^_0{T@Gh~B$Q{G zLl_QISXnnDp{+NLvd1Fshq;XL8~;h-Fqpge{JYg~(h6)0R6AyPxN~rn@L&Z~Ux@-o z8vz&Z2OQ>8NCE%iKf(^TL(CBYJ}%yYca#4oz5M1783t+135`m>G}La~%Xn!lG2y)N zg*&p3j^8*a5N%I4;aXHw~Pw31{EK}Q?CE{+#dAC2Osp|ZOGqvh0hT&MofC};@ z{sbM^wFeyHPFrl%U=iV3!m6EGf#H=EHra>E!MPH~(c%uYflSV~O4|~imljXi&~wK* zwp#Cm+``^GfDDAEp<}O~B;Je&BqP*mjHd1Hdg>gSI14+~n%@Hsc~*E_rMU0Yoa3=o zmDSmyuIyu4;js0Ux4g3ftMh1vWa@#takAY!`F2B-GTh^xp7 z)UM3r>JpZiMLEs!~O4)dAV&E5G2ES1KFg8N*}O==2;syfpPOeLqvQ1T|00 z*3gQ5I14YyeACP6o-9KZJ?;=~bSF2__ZaNClJ zY<>ZKeyy&?W1?4)vtAwbnU;#RYsF-g^p|q$5Bc-ynY02d!fow~ga|juO$SsLxMK=o9p*|fN8eIkm=h%a< zjf@3yhOT(P8Ed55CFadH^gXExF`>bTUM~O2Z}80ZW2x_&No*^Lx}J&ao@+x9(-D}5 zLyb9hp}@-`_|$W{L&f9<2&OBs?S}U{Jiw!cMSC+UsA5q2pY@)E`>?f?H2u=B;&Ure z&iy;1!b1;}1w!f>{8GCD)=?Z<){2E<7yBpNFQ9c}PO|6ON5R^kd>){w>{?__gfVWT z*TY;g?1t%k;6LUJKfTCUm+~-x&m(SckYU*afOuPu(Q_+L@_l=y-P~mV>#*(HxQi@% zHC-bc-}kGF1Ym@5RBN}*0-piFEI;+L65mfl(N4wm+?2Q9gn}8O`&9VMLeYv%Erlr3762VOPl#{m&{0~x23%aw)qYyh0j!1SW*k#GC%>JCzG5C7# z4d6I(MU(Md$Hg8gr10PCB~z6e&Tn?U`tU0S3Vtuq8gXk~MZ|7@pFp|k+_1+xC=2c2 zcds*i7$*6;MR>0MjBUJBn>(WaiFjiEy%V6kFBx;dY*&gD(}FJl;V`(Z|M!bp0Kuf8 zzcKuN`+jX$)|6b(v3{$aGin?~`TXhz)cKOItdx;T?MDrjTGoz*_QdYXw`0_c#h#KY zqDW;ij&+Suwcnq^c0#hamYBmbbq4vT!)8NKM!-;u#+Aq9u&i?ZaA`NvwM^95usdL( zR=z5hW%+>4@0Jt;iFbIo%yHn=a=vmj+GkZtQGsF}7!qh2KyY>KoKaSd~sGTa||Y_`u=^j%%)arjkIsg%Mb7)bsKln973w3iIHCGur~<7E$)qs zi#_30O75*zsX9pN+QX7vbAq)z?Q`eR$>b^{Kq$H7m8;b!~t>vQv1R^dy2>}AgYkZuaAh5vDXX%XeDr}$f}8c zRU#?0;ouH*sl(g$r;BF(bTEtR3*a^;Io~jaNU90CM0=*0T$NGXH6Z#eW1kC?-4x!; zi$9Yg$Lc?&?sPCpsPn+&Uq`O3iFC!^>ACUiWmjYAT3skg{pkwvcs4$0@O4;E-lvh6 zqSXZ!sHoNYZQ0kWOKxjGps!JJAQnU#HB@*BSo-qb#8N530jfpWgeNQTK5zV$HqBkmqO7 zRP+o_nyH@Ph%EiYSpQ{M!5xCy&kapw4n6?-K$&Rf5Q$nheM85(+gG~6zj z947b!*;DIuCfXU?96GsGehx=fY&4CIQ z)o&?$#Nh1>r!pXEvTXR>)Q2Sj`nP`8p`1MX@ON^8gJf702CH!#j z9pY~5jzmr+193Es-94kv((~8ml(E>G0PgLNAvxs$1v75n9`72Cg#TC_%;N+Acyr_GxU;tz zWkg-k$86#pd8%UcAl1IETEPg@$(d7UxlwYQ^^w~RhVt!X`%*fv@~*5KZ4 z7+s)dlzs(uB1PZ*cOm_!S#z0Rd&XcPwXbrxyw{v>VEKe2j=%zR9e z*K06RjzY7Pv^_WdwVOn*=vHIF{qutC$~k+b0Vn-mfx4rTj9AINZ`1d#RqC%QalSPN zu&Fu*ctm<HE zJYZOLesKs9=#&oY>ArN}$Z@Rx2^s@vhd^`j>inaTFQAcM?*c!%YWL4O58tnc4cl>3 z*(k?ziJI(H1dpk+EVitei($!14zbyNd3{#IuifoMe`CssLrTXRVppGRQ$C*?Atkb(wKlNN+;L! zk}9=|>=9Z$l9oowL78oYOH6v7=?TMX+5{IWvKsA^bqNpkeP7@fS-9+LzI2_)qhZ-p z-Xu02xvc$E_3eA)??)WdS{%42D8?RJ=EfXT@NobzLn|c3k4s2{KG*O)iA9R=7 zhXtd~@59sftcZPj)lisU=gvdpo(X){f2{T7e zh%sxQos!|2y;=P^g0o-)`54=pdHO4J`FSGGl4eE7GCEqq^9GPX-*BRcwTWk&tg_&%BNqR6@ECSPm3*5<}l@ptH9M*#pbaW9hntQXb* zi0^ZGW<)ZI7-~$GFK`OZR=SwK(SIHLHd6n2_yeXD?uGX&1}Mud`CdzI=4(ygKCEM- z8e2bdW|$yG_ZD0wN|a`AW?pLSPB-9s(-3$rK+7xGE}{HwI(9m+Iv4fIO8dD$=zyl0 z!XrN8xXE*{S^ebFGLkyLrwN?%OJ8wD1%KLY4*vmoUmsUh z`{F9xsr?;$2~i_codqgww(H{piD`A3aFggT;n#B}x6kR~e0+gVqD|r1l|<-{IK2DO z-nFBJ*2nyKkM?k5`#)azJecm!n5UKDGcBvvQ+g6(LmC8bb?+N11>Sm&ZwsOMjfZ_h zlPB;*hEVBBtCu~0Ci}#4`?Gu^cK*hOH0JCTDm|8H>c;KZy-Y3^aaXnnlQ?-J^wG;xN!?BkoTePiL( z(Ja|betX-|A9ee5n$5mlI+PGvsL{H2{U??1AR#gnwzrP#PNbNpf3y zMpZ>*+7X$dx5nU)J(#%8hN`4KF)5iGM zu~-AsjCPJ3T9QX=rE)ic68Zq@?;Yn1Gx-Bn;(`KFLL=HP_mX3b3EZgz8E=0cov0nL z!a6a$q@Ls7;6GIqxAU=1ytAR)OE@>Nr7>L`m-eXuB-qcHZNCY)Je${^msK_mi;WPJ2&6FwH4O zvZ$(fd!kcP>p?ku-$iq&HtX*uCDZ9;dBw-QBF&HJ{rz^r?{CNN4Ug)r@T_o#T#Efg zKNBfKa*RSJYUn?VIotYWM`VTEe!x+_I`;X!xH{}v*36JXI&UfXazV zxsg3}8&<At^u{Ixt-wH;Y^d~b;N63{32 zX1GMh>@0uk>n!})VFiWZ2MV4~9J{;AKia(0&wd!8>9qNlSJ7Z%++HtcH}M8 zAmN$=ufTfWuw~pWBU$)&6h0O5I?HTX3(cLp9R7UaSB@j{=klef2=kJ;mKuvu_lx?x zWsW*6#1hYFg5E&E^B^SR&jT2ff3D7PiVrn^p^kiY-lL^8_PWyh=L@cXU)TVj3U=j0 zQ?$y=Q&)vjfdb)IV&MdieBxPZe*|RCPQVT%L-}%-&Rf!wT`igB9&$XQp-#^?#fAL*@1Kt=hQ{?N^ z7E%4`JIv6c+IN>Z7oJ(9^lCahaD}mCHM1>HZeWo4IGJy~&ogH5vf-8WxzCgg>7d$0uIwFwSnsb$YUH^T|Va`d9O&da_DQuj3fj1wh|LI+$B(mS^8ZpzG zfveD45X80TNPXN2tv&nB*s0fo6#b|myE}y@wvs{$S%<7k(R^{NErssXj@s92^b^(h z|7&5CaQ0l0{K%kBC_8hl-xQ1g8Td`=7ZUqQ%wynt7cwN5ZGY4v|FS{Mh!#Ft)}LyU zlkw_kS>(^LD$<#P<*K=QU1Hw&u}w-GIWzeh5Duh>C;iw znTd(-^Cv1R!V z4e+ssr#D)?$^1ZO;KmXNMU63qp) zbrgon;?}GAQei3)Cx6B-(X?ONWz+!dKu~?R?V!(+)3X409w0S5QBED?p(Wh=Mw=B& zHr~6ZLUhw^Z}{6dTDJHmSMBTLqqR?9WI4$b!V``!WYnwCtAYaq#wHs7)bd%hbp#@;xmGNdCuk4o$0b$LY4!jzBDqb zWx?h>^L)FUgSv>}%mehWnQ7Mo^J{sHVYr>IZ(7st{p`b!gdIeR)=Q2UYNNlCO^1YH z!G+JhVvWJAr;Ax*aqfaT?DMS@Zsq9N$1K-?4r+<5HA0QP%8}NEYb4;pdy(8lOlGaS z^0%B(L1MosV48d#4yqhZU8nx$8e|UKovf zRWZmXKsG6_`Fln-zW?5FBB&ce4NkC{covp`b&aqr)4LAy7{|*UL`nM- zlIv5PvFl`6e&lUP$ho9~$%2HY{oG6TJ?^;S3B1zO>})xCga%yfPg$@2B$P;*7|+%q zyRZy75fFZ&HVYxMH5UHXKWFYgnu0H`1<)onuf|_Ni=96_E4I?y{kfUE z;YN@(?;an}RRYRKBX4JhaM*dd1b)N%^i=LA(ChTfEgNvIsO$B@cGWe;3$H;V*9gSa zhLQ`DKS{2CXT$BLJ^Fv@b9SzV)V~_mVQUXd9|?ImHR_`E(XHl1Cf)Mw@rG5EXhb9x zEn_3dpTYUZl)^gS1zA$u}PA)GQf;Jpm3Mf9xsuP@}0ju z-L@Bc>Vidg-8tc4q|HkKz;*S~@G;WKzGukzP{tBmZFp=%7+M|=t3ZvfxAmcDYe(53 zuD!)hAW;t|L@1E*+n8sI(4SifRG9L^K&QWU=PlEYdD@A&R%fFVXK}^@?@w%9hb@i| zrE+fTyzp=6I9t+{`ywtPEqv?32wkuoc`u^ zM)7CN<#KnG>!n@>qVw;)J?9tqVj~~2BK11lSAa#+&1|ok`1Mn5>+5v>F%$KO>ghO= zK)?9!*&c?DMmc%Ei~$L{`a;?=09_Uc*Bvin?w zF}5s(^OlGaDx9`)BFvGO2ADxSWA|}VS{P4*qwmlQQ2p)YfNWso$?~uPd>u@+3fWuM zFl<8iw<@_V5uJ8fPpBy-_+MNO>--%JsYp2pY`%XT>DpU<q#$OoLaq+t&mF`ER z;x=@kb_ydfENM}FwMLgC*OL;{8WOaRZw#5QH|$0CSt)1?*GK{x86NTZ_2JCQ^&=R* z>d%^CV#HN0QgP3AL+L=?+70bb_8b$4)s71fG%B9QMja-P$KA_ff=)zkD6If-tB2OF zK;`ep-He(4(f)g+;bVjD>T02qV_A7zXm!a0}^HXBhgdvbjSXQl_hH+%X(+F{i&@>WK`;6g-P|ZKH^OY^K+k z)0H*#)uLPAM)eq>B+4~|(M1jAD5u^Hj8cNAJkf{}*7=3xs`kF&(RN3o)tcT^QkN#} zFaUk*Wq;@PD`c9GVn40VVXHL((^R@MBf~N%jwe9;0nF7&^ea4ji{2ALUxQMy`Y8Tm zus*5byyR5rr>XW&LD?!s^wD|t*n(LC8+<-SDNR<%8a@ymZ#0o|J;e54U+^WYzf7w{ zvL`UovE?wQv|X3hC%$3#n`CR_IGwL#JRT^3Klrf=$9m;q{OpzNYp(l>Mt);WCOwHc zz&qLlEY;kRoV47G&6ifhcdV4#uUU%g`gy-IMarOb(cflYcay_4{)JHT}YuI8kvmSPz5HHz@|Dc1v5!+8{xEjwz z1qN`mwoA8Bg^27^eOqKp^eJ#xb2PdJ6-r)u(Hk7y*9~~4B^QVU<N_h&lmF&FzzeQi>zcPI22)6R8939+4 zu$O&A`lvU1%ojZm`;i%f^{Rb^pMqCXAFjDlAXnq-eJBvFms7BJn(i4-Y=MW-T(<;P zo&j!@*lTkeTVGc2t>K!*fi;FAmAL^1f8u8s2s;2>*h!t{sKXNg|0%U;pm(4c)FANa zFu|##!vyw$|DFpt`v2_T!vshFc39ssbMXT~RG>PvGZ0LCr3Q>7{o9VlPe%u}zIFHI zVY8!i2HS`AFo?sQ@N9G|4VitZ*ziUkmlGEz_;upB4ZE8g%D0BNs=u$2g#w)9=U>}~ zj`4IR-m|a1WNO6#Nc>dN79{)?K9JhIg+vcs%ATiA2k*J?0GQ{{eqw zx!8vS81uvG4{%MN)zj()o|i0k1RgjR{uy-M&G95S4~*I%n`qu~%9Y2~%N$!^`od9_ z8m8^DKnAbzBg@x9VOj!%MK*Y*d^DF?m<_zW`e(?=>Ct8%WgAP&MhmkENR;<)m8~ZI zGJjpPaMiKRmPKO!Bb;`bU{5+ngVvKk-`Dg&6t9C@sIrE5gU3{!L({~^?$+>z@eBd$ zh7=ALhbAgH_d6rWzP!0S4)?yR@{rqZ%=6vKw9GgBxFB7Dh1~aY0&e3Une%-s6|@9e zUAy;w%Vlg%deA#^MFk^UH7)d`PLg+M*YpLy27cFF`1X-&>sd^)pOZ)&t#HS#oemCs z(w!+-kcxrvXC_ffqaf99Q3Zaq(1kVzjC(5NSkpbHNk;11{dKFjYNGeq1K**2sIE<= z>H-qwac2`VA#k<&Gy*F239Xv8^MQfPpOf1ds^Ne7KuJlgHHNZqV)~;oP{-vr8;M}Q zY>SKTK=*XgiIlIXu9Y*t1#|zDwE#-S%zqZrLaA)~gtsQ_ZmwToaepbw{0FO(_5R7r zJS#RIFLu^gBTI#AzmJy4;$dknL9yX9={SfE7yfPay5V{;>fh z9yLSgr{zV}a!{c`$&O6novs>-41w^iwTLLh$#OM;*3s==rSVOn`Mgqc@}BQ6oN62` zz*l0a0x_8>`X_i`=eK~yWDf81LQC_GW?GpLiSoJY2X?+vIm6ubrVr_rlj*R5SilB{ z%p=MM!RniQxU>4AK0168FiF0BnF!asMA+9D$ogs41P{KycyUdM%)Z_XKq;>SS0D`$ zw_)4dA%gSMp85<9`>mI6<8JV|?6#V3W$Rm{;%ZCpK5V!y7Sd;!jo7}+jQX<`M$C}= zcz8NPZ#wI#g#rV-W{)XmqbyPWQ8oMmp+-Er3&TX0t3SoIZTUnRn6s~^D0TEV=yPr^ zY_`oKCY>Hu)>YB3J|-s~s zf(~HOp0e`=@i}C<14W_d*qZNI{v{Es+PkCZs>`~*IrLFBd2*Y9J9E_yW2*1Q|KwbT z+oB|wKwcfgTrZ$mbLD|jTs4f=c|O|)ab~NQ#zs!b{h7NdqxN`mWM24T!5yBqiFWB5 zF>Zl@*_JGRt-t$FOq+jz#J|AvuL;#?$0V{y@UcJw&TbmCD~nytz{NQ(mlI;+wa4gJ zi*=Z(pU2Cc5yYe?Z^oHQp$+hxAQfwmrq{&(l9_-%1Gaijd;&P1)Xdd>X?Q_I*1RQg z>oh86_i$)+cGX^p*Gl!gOJ`AO5(jJ#KfR#u_1Bp{D#J&^6;;bkPjsKrdDk8~!UW8g z^DK-YSO`csJGQI;feNwSY8eimUB0jN#h7k5Cg_1`TOIF(6k;um@YaoEy|O7{T1oNw z!>GryfC|Sd-gy1kWq;KCYvuB>DINn5IWLYZM)2DU9Y3$mc=!Io@%lF9?1AIEQ?Our3C~B zu0)nu+Qd;dhMnjvT2Q7@W6xV-^j>UTE+(EJ0cLId(;3+lbmWXZUq~`M{3*$GiavMI z{QhQ_hb~7KA9l17qQGzNr4mM7Isa=%;}}G|R^3;VMArVBbYowf5JL?58uX&LUqxq{0aQpHv zZ;I3okDPgh?^RFFH8eGv?vendrAm2U6&UF&_oDV2^@lUt!oh|5!=2c^5n`yERpMH^Zqc*^**G50pJPIkOlkw!5->c6OY|IQDyL z=rP<`9bFs{67eu2H}evy3UhqlqdcHV?9Wne0zY*_c%UG67x?}w0Tve>5X^mG8d$D9 zlyq?MKp3IJ!Ah--1?DpnA6%oBxYkRpdg#!_uxT^tUQAuzG~M<)xlZYD%*C^4#i~_C)6&+vc-tII(LZR%=R5dH$qsVvX<;wX`q2Yick1H1N+iWw9rOx+GT$?{BQ+ zHVFG!K(+2MY?urAB*NBH@$3(O&~0>rCG!mI8s&1YRR-5K9_WSl0)Mmj@+Syl^9y|$ zhGMf(y4&1`|1}&awf_aGetzY*E}wX3F+kxA>(cH5n@U4|AOxcY$^OIlXzDh=|I^yF zheOr1ea0zGNJu#iN-9Kz94Dz%luAwynH1&`89C%MW|N9aNxMi6<50;VMCCjNg%UGL z$YF-4k<*OxoadX-`#kUaUElZD^L^{OX0E;Owf4P!_r30QuXWAd`!__C;ZAt^3W8Y> zvm_Udx}1d^G$7xS8*j0kSK($7c)F(s;tG<;b5hl}j6FjwW*{ywu2_rk{Z! z1H>u#h{vYUm-aIf2=uM9lbN?a3dcN@ptjy~IH)qUX>tDWAoWH;E@3#gvHqzjt@G}4 zcyQ>RZPru9gfdY!R7wK~of4mAKZ{&IDghiYCRUVTWxnJ%{y-hJcaJRE#hXJ-_Z0DT zT9PZRZVmb*JzAd(D_Zr><0Q_1RPknCT?B+JBg~V@^KkwGa?%uE^**Q-K7He59JcI{ zO-v)vM|z@eY#sY$2O37nF!LY1GuYZN^7ZnDs425vQ`29Y7H>q&AZi?oQZCT)fLn2j zZ5FGL*~3G(?-%+LB6n^^;28^!eXezraTn!(ZJTPJgJp)Nxrm5B{C4 zI+SkS1W*5VbXN(m9A^UzJFZC8=Z46|JV%O zRsKqic>(&2Ba2TZm*zG_&*^lu0`I@#qb`}SwrEDgOc4l;8m`}NE?0Dn+*(NL?F@hL ztK0)KeSkUzeOhj|sG7~(L6cPoiHAKeP*EujJ)B=HS^%HlwNih@C@y86)fkFBDzmFv z%l(tb)sgRLpY&NgJcBuFl)jCd;npV-eF9D!lDW`$-cZJ{32ypuWz)~qAV7;!H*soe z{9(~AeA6d6e0x&Fi)weql`_Czw(syljB?+q^(XBxH*#lLS1y9fD(J;_&A>k>EGh0@ z!gA$S#KP}E<4_^*63F>XrQ{Xh#~AGE*nS#0>L&$rdXlW>sYS-UJc2u`Yh(5t5NhyE zy}aajG2j3xKR|-Ls=eC?@RD-hr?51q)3A5T>_ndBs@v9&p}VJ@7pWx9XoQG8-O;6O zXXh+Fnz#HVuCNU;q+DwB1AZ92&&v84*@7X)sP^4A`}UVsM|+2GuH$uXPeU6Wb_ifpUE03(@7$u>E z_@JuMjf-VrE5}ZR_%kVl%oc1CTz+{M+0MfT(d0B*UVM=I1WPDwU%hl1ns9njLn7fc zrcRl;-NPlpdY}U1qLrd5#ho@{>?9kIYQN9kM`jvu>xGlc=YnJ3sT$u|Zm`5ht8%=BQ8okOoo2{( zjk`Oz5AXUlIkr{td~fz}w{ebME_={jfzYxz*Xqgbg#e73Ga+IevCNQUF74CC!REVW zO8^Sh@@Ff(z)lX}e0%Ogl(lDvKPFGB#3qrGg_odvXVU4(brnWtx5I0Jf%KIslbOP+ zTjE&42(-rd*B{pgs7xX(a|$6hx1D*Bk*mI3ev)@xNM>l#gWaEkh__}4x8^wpi7(r- zH}}B-s+_s5=EB_m$(NHjQQk-!qr#EluS(P|FuhQw_RzM02HisD z^!*Wc@#kJ#XTv87C(olQ&r~7<`E6jEQ9|uK;CpoJ!B%pTTZ>%Oh4Yj;kD$qt83l=$ zDoV&_*s~O2ul%d94qIx&G@g0~`idlT4r-m@&C+mmzQ-tyx)cT*J)O9!wWmyH>F9(n zR|l$Vy^(Dy<}OpmsTQ_VL^jzB^Q6O{3=uH4+u=Qq+QKmMyggkx{CW3lp?d?V@0ojm z2AMMvA8okNV=rzs^Ex=UGPyivmv?MH-%H`xVpD3>p%8OgxL73iSLj3KhTx4TuI%7mVAJ%<4&dIJj^EjGHXSqBtDaM3QrfS??Tjo@ zzSi_yck!}w?WW0ybBG*8VqvuDbxaNL&Okroki|wtiO)eHXRleF>)Ak;iz(kQN#s@H z48E3)HPtmpvyG!nWWDTu0^ezuY3*Kx?AUn;e7kGyiKgD!_0y$4?1afw4{7G7Gb*U*dcVG z>XaQjJ<*C_@rf4_3d74SM{5vz&z-b^pRF$Itvcm(X*8V%XeI-=MccuEANz^pcY-9W zWEmaKw((6-O$vP^)$?N+;ZI8a(dg|6t3I*iNok*dcZ0cxbo0-QopPI#?F4L zWpx0NwhH}zD<`*o<>-;@z!ps5^hnNhEBlKlO317vqVjZ^cN1Q!=1yq%3b*;yHHVyAzFZEPyd%5C4^7!Szm?ee5^sj?@jV@ooCexV_EyZrX-#xfB^b_(PA zhvaxpeZI3W!n&FJaAzm?Wn{JLJlS~TQqr>OuJ$3+Le`E&?E5Xx>|rrUwd7*3^*Ns?6U2Uyp&KWS9{BAkL z6PhV2q6OJpvmbKv5sph5Y$EK*?o5AzH;)u?Tg=k7Dbk`p`-Ow(fO{f zRgvP&ROH0nsn<<~x4VR5Eh=qNmfu%UuRPaYOf8$C4(>)iMqG_jjMj$gJ+q2H^1hu_ zxm{C;$-cJexeTq)PCX+QR-wl8jkvIltp!NuqE*rwKM58at)~PRMx`eFP3^Dt?{~LE9S0pI)pp) z{u7l=FS=j;aX*9;?t~F(`m~OOsQCum>5~W!gOgA%Dy$8fs;m{pVymqkSz*c^8!;D2 z<#mdE5FF>>ihjDobsPhN#%gQ=g~%s%@H8oRHcwzJx>>0CKxZc9&pss65f`yg?l$G! zIoL~9;uSQy`T$m+sSDMWmqp<%m~_EPSo#oR=I`u>p&@iFySRO`4WmFJss~H^W08A& z&I}q=|MYC>YX9-m`o*vtIIBwDQQkDycA#hmL7@oYrf|~qsmC(j`gLK|jr&b6=)1yl zv2sOr?_C?nva6JfhzZ=+>(s=zQ*M8PS5W+} zIj2jMzfqctwZ#`c0KWXHK@t4iqqk#PlM$}VyQB`$(!?sobR4&fm zUW^l@!ip`MF!-K{9I}N37kktdWpxpRm#r(jniGV58gF(m4!E(&AAUI4tXgs z{Zfcc#r8&{gr!ui4%qVJ!O`kVAELX;$1OIUtI`|IsHPHuK5zD0W4}si-BS_^_glwv z^>H!Vh=Bgko9iTI^6D!@BGvh<0x6|Kwo4W``^brA9~~O;PP=wDns8vV^ce+r{;%aTIvQ&M{t+-e~nyN1+S z0^aLuf=7o@;Fv4kR1R1E#T%~sfIL(inup>tVnU<56h}+?9$i2;)GLI%+6&N?coID~ z<#fs({=Qq#vX1}up|i^|J^^E-|KPv4ncnb)k-}Dw#9lie-f}~KWaM1R+?l$1L4l2o zFec~b_GkeLr%s&`mXm+z(n1YAhwkjU$HSV1`gNx(#B{ zwc=Ti(Ob-QlH!A8OcP3)$*0Ikb3%j!`*_@hAIfI$`4fGFXIG(s()E08eDtzVg}7BR zE^89i^TEb4%(q7O=)ubt2IVJl(BvbTMV$$I>Fa^u3j@Z_Y>UZ=TY$U6M;Sty2l71obY)r^1vC-kSej-jpF+SFgY`kM# zD?Bc{wH9;pTz_z+9$Mz46h?TOCi2T&vb`n7FDIKa8A&;I^ruow{Fz8XTSVAN%1Mzl z;zeMNF;Hl-Xl6}ScaN-iSh~*|!rT}cKWCRFhl``$vlgq&T}?u-r6sXaPl1*2Bxuo*W>(uUo{bnJ{sot}Bz z+=fAo#0NK8Ob^Jv&UiCe5!-&P(XrxK4-NpSed_`tC+4A}BfYWr2=$WfB8|ju<@LvN z$6GVU+VHhmMhbzP;}z`@$w$)Ca$s>(3t_s$>at-eO46dwtn|H5HZcVsGD@mz_v;&W zU0q$z6k?{UPlt{ziu7+>KMca-D3y?=&1y-!{oS?MRZ4FX4$K-szaZaA_tkGE0Ph!% zNwCE$@u?lrt&%jYv6ALt)cZjLL&7linFe>upmEfW=x;^~fzQE0iJqP={N}Jr1Jn=8 z^;erzS9=?sW4v-QGX`}nX11ObBMVXGsc9E;#c9=MQlB81apYQZ%x0Q&Bz9jyMDiG_aGFA>{rm_ZSs=RUVo`-(^8j^)C=Es?E?`IXQEYy%0(;D zC2=F0WB2bx3tzGt>!TwlD}zs?uhIk1lCRx8mrn2l4y8$s!$N=NDuTbh?!wEm9oP~y zm28P&JD%{>Toy4@JX>*g(RS=+q*3@m;=1g0B%2Ynm~)hqufw@eT?&BJT7OEa#=8Hf z%9ZnzyxI%jhvc%fh#bS-ZU!fB_`$HRay@lp5a=Q-u$+1f_IQg=p&mMC%jAYGPX_@I%m zkv|y&NJm9O?D*o7JfN#P(u+@Q%c4 zzesevi-OLCJM66xR>^<+D93&BGR>PG*<&s=`GqSL7qiE=NBOZg(u|X?HHlIsoQe=P z3m!bOnf4g(+8lQpPbES*UNrX2hqmSdTDSjY z$(o}Jm(v=>4ro|Cq_A|UM$+=Z zpd$@Qk7#}paT{3XbxU4VUH)JwVMI8l9}{%>fYPP8bk>R%DfSA$zV~sQ<5HK$@w%Om z)NIYNvY5uebMlZt=H8rV6iQTa*Uf9Edox=|5gL=l>iQ&BrOF_6n97k~j?6V4tk;*G zIrnO-N%fr7*vNQe6$BsCp~2REW~Zf@U3t<>92tBvNj6UCPfC4XEVGa=sma z1dE{UpSzlhmD8#w8?UR0g(Rr?_}c{8=qb-&8Jbgtqb?KNB1-D7A7zm-GvQ@HH1vM) z<)zU*0Ldzp>RB*taX07Q+jcKXv1qwAk6w5Zn$_>M+8TT87FOkx4|dG5ggA#~J(d8( ztwb6((93X(82VPOLDu>`5YPU=OXc2#uByB1d6Jf`lnIGZ4gBJgit4n=EMER~@xW^c>aEY^bk9w)hS}=lCo6$?_DwiiiD+u#Z+6Rt=DNkwlgc5;o z#Eem~U~NN6NVj3dvJF0m>2qro9ek(~cOFX1n43Q5MpnIA8tTSU?iHne*wH-qGA7Wk zD>fXU=D`yRgx#C6NM~v18)C+C-o;y`f0&RsPhn+!T0CQcw152#{wHf@)l9;>fAkMa zMS?ben~g_lSi5_SV(8tt`dadBV*m@N&MLJ?yvac3r&|@kMtze*%ZIB{={JJi1$nOK zYE$;R3UbQeqLS>VUO$Xuj<+zgJHOGk!M=g)(n1-%=0i%L#E}`hPl@;D&skBZG3Ko>itfnShg7$(<&q3j>V`mTiQ%6j1eG ziuf~H_r{z6M)h*nm# zZ>FvnhtiM!^q{qA9H=gE!e6SYjU;!j>d5T44;QQNdC8xG?emUArykca2z@MAwZ^#N zhNZR2%@j$BP}hgsaZ^6eMsEd+Ed=1BvP*V87Vi^b%|ztL=Bi^hs)$qLdDmmh2xMqh z`@Dj83=aYx@HcF)-P2z!{!|N^V2Up*7w0eSU0?nBzQn&Vo_rY$4Tj7AFayAW=ez+4NnJ#Dv()KAS7C!#Xv8gBM zqcoTK8^KO~ z<+{I!VjUtouWkSv(zZc3kHN7tMTmL^$V}6KSY`G$7IdjBJoi0t(cNG@oQ z;{@@_T^o$kxqQOelUrZr|1U6KSSD$LV%VLK&$(+br*r>?shP)zX$%R<<2&=X-Avy9 zmm^Ifhw}MOJO-*1N>yeNU{Br_ z$V7qQ0?Gb@-_!4ofbn+kKOIkLQ2pr!VIDY>uVfd??^`fS{*II&0ej0o)hq@1`cx1p zAnd7>I<)Y&S%N9|FSEY7r5v!GHCw`-;9w_L!8EI41w+=7F_HTfn%4*hTPP2k>Q z1wfG5*2I6+I|*7H^7r!#5B0T0@pF@1F@JI5%e46)VOuAGXB|&D2yzYoNN6oL3l5wl z`Cq?@g!s=2UjNrc`h4NPFA~grLEC>{1imj;fRq%kStOWtYqfu2`utn|SKR*HCu2>% q>91jS_)9JSj|55-_WlpCKk__BackingField: 6 - k__BackingField: 0 - k__BackingField: 5141669014942263323 - SceneId: 0 - SerializedTransformProperties: - Position: {x: 607.9671, y: 470.98746, z: 0} - Rotation: {x: 0, y: 0, z: 0, w: 1} - Scale: {x: 1, y: 1, z: 1} - IsValid: 1 - k__BackingField: 0 - WasActiveDuringEdit: 0 - WasActiveDuringEdit_Set1: 1 - k__BackingField: 0 - k__BackingField: {fileID: 0} - k__BackingField: {fileID: 0} - NetworkBehaviours: - - {fileID: -1698316822263000860} - InitializedParentNetworkBehaviour: {fileID: 0} - InitializedNestedNetworkObjects: [] - RuntimeParentNetworkBehaviour: {fileID: 0} - RuntimeChildNetworkBehaviours: [] - _isNetworked: 1 - _isSpawnable: 1 - _isGlobal: 0 - _initializeOrder: 0 - _preventDespawnOnDisconnect: 0 - _defaultDespawnType: 0 - _initializedTimestamp: -8584181721604556210 diff --git a/Assets/GAME/Prefabs/Structure/Build/Ghost/Ghost_WoodCelling.prefab b/Assets/GAME/Prefabs/Structure/Build/Ghost/Ghost_WoodCelling.prefab index 3074ce0a..34c02ab1 100644 --- a/Assets/GAME/Prefabs/Structure/Build/Ghost/Ghost_WoodCelling.prefab +++ b/Assets/GAME/Prefabs/Structure/Build/Ghost/Ghost_WoodCelling.prefab @@ -92,7 +92,7 @@ Transform: m_GameObject: {fileID: 689960121515206631} serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalPosition: {x: 0, y: 0.231, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: @@ -200,7 +200,7 @@ Transform: m_GameObject: {fileID: 3305094920675404345} serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 72.18446, y: -0.55225, z: 91.49081} + m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: @@ -284,7 +284,7 @@ BoxCollider: m_Enabled: 0 serializedVersion: 3 m_Size: {x: 2.4893725, y: 0.279638, z: 2.4685874} - m_Center: {x: 0.0011386871, y: -0.07322356, z: -0.012834609} + m_Center: {x: 0.0011386871, y: 0.15, z: -0.012834609} --- !u!114 &8958413773651828551 MonoBehaviour: m_ObjectHideFlags: 0 diff --git a/Assets/GAME/Prefabs/Structure/Build/Ghost/Chest_Ghost.prefab.meta b/Assets/GAME/Prefabs/UI/Build.meta similarity index 57% rename from Assets/GAME/Prefabs/Structure/Build/Ghost/Chest_Ghost.prefab.meta rename to Assets/GAME/Prefabs/UI/Build.meta index 32182a37..c4001ed7 100644 --- a/Assets/GAME/Prefabs/Structure/Build/Ghost/Chest_Ghost.prefab.meta +++ b/Assets/GAME/Prefabs/UI/Build.meta @@ -1,6 +1,7 @@ fileFormatVersion: 2 -guid: d2b6fea7c913fb844a1939788445af18 -PrefabImporter: +guid: 8a1eefc9cd60bd542b6bbe907c6348bd +folderAsset: yes +DefaultImporter: externalObjects: {} userData: assetBundleName: diff --git a/Assets/GAME/Prefabs/UI/Build/Ressources Needed.prefab b/Assets/GAME/Prefabs/UI/Build/Ressources Needed.prefab new file mode 100644 index 00000000..8faf3a03 --- /dev/null +++ b/Assets/GAME/Prefabs/UI/Build/Ressources Needed.prefab @@ -0,0 +1,327 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &1449196833709694992 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 607827644847487143} + - component: {fileID: 3963579599117951989} + - component: {fileID: 5725644289869038764} + - component: {fileID: 7776490238597678248} + m_Layer: 5 + m_Name: Text (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &607827644847487143 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1449196833709694992} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 8500789918531834058} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 85.313095, y: -31.504} + m_SizeDelta: {x: 44.61, y: 63.008} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &3963579599117951989 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1449196833709694992} + m_CullTransparentMesh: 1 +--- !u!114 &5725644289869038764 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1449196833709694992} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.TextMeshPro::TMPro.TextMeshProUGUI + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: '10/10 + +' + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: dc221f629ad2625429da3920b6f9a348, type: 2} + m_sharedMaterial: {fileID: 3767062857633432899, guid: dc221f629ad2625429da3920b6f9a348, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 20 + m_fontSizeBase: 20 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_characterHorizontalScale: 1 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_TextWrappingMode: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 0 + m_ActiveFontFeatures: 6e72656b + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_EmojiFallbackSupport: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!114 &7776490238597678248 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1449196833709694992} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.ContentSizeFitter + m_HorizontalFit: 2 + m_VerticalFit: 0 +--- !u!1 &3796616338314271085 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 67615937123066110} + - component: {fileID: 2248708403780224795} + - component: {fileID: 824788329508477661} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &67615937123066110 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3796616338314271085} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 8500789918531834058} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 63.0081, y: 63.0081} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &2248708403780224795 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3796616338314271085} + m_CullTransparentMesh: 1 +--- !u!114 &824788329508477661 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3796616338314271085} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: aac71bc72b8e8ce4da73028769c1b20a, type: 3} + m_Type: 0 + m_PreserveAspect: 1 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &6992362772493703696 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8500789918531834058} + - component: {fileID: 7137866051671997104} + - component: {fileID: 1408010592961239319} + - component: {fileID: 9158453950938887334} + m_Layer: 5 + m_Name: Ressources Needed + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8500789918531834058 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6992362772493703696} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 67615937123066110} + - {fileID: 607827644847487143} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 36.999268, y: -14.694519} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &7137866051671997104 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6992362772493703696} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.HorizontalLayoutGroup + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 0 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 +--- !u!114 &1408010592961239319 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6992362772493703696} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.ContentSizeFitter + m_HorizontalFit: 2 + m_VerticalFit: 2 +--- !u!114 &9158453950938887334 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6992362772493703696} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b197776c5c48d19409d8b73a5f77bcfb, type: 3} + m_Name: + m_EditorClassIdentifier: Assembly-CSharp::Ashwild.UI.BuildCostEntryUI + icon: {fileID: 824788329508477661} + amountLabel: {fileID: 5725644289869038764} + affordColor: {r: 1, g: 1, b: 1, a: 1} + missingColor: {r: 1, g: 0.35, b: 0.35, a: 1} diff --git a/Assets/GAME/Prefabs/Structure/Build/Build/Chest.prefab.meta b/Assets/GAME/Prefabs/UI/Build/Ressources Needed.prefab.meta similarity index 74% rename from Assets/GAME/Prefabs/Structure/Build/Build/Chest.prefab.meta rename to Assets/GAME/Prefabs/UI/Build/Ressources Needed.prefab.meta index fddbd35f..cc86398b 100644 --- a/Assets/GAME/Prefabs/Structure/Build/Build/Chest.prefab.meta +++ b/Assets/GAME/Prefabs/UI/Build/Ressources Needed.prefab.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 041dab0de12a5854898716d7eecf3a38 +guid: fb3189f697e11534299fe0ff296e53bc PrefabImporter: externalObjects: {} userData: diff --git a/Assets/GAME/Prefabs/UI/Player_Canvas.prefab b/Assets/GAME/Prefabs/UI/Player_Canvas.prefab index 623b2854..23de2d16 100644 --- a/Assets/GAME/Prefabs/UI/Player_Canvas.prefab +++ b/Assets/GAME/Prefabs/UI/Player_Canvas.prefab @@ -576,6 +576,9 @@ MonoBehaviour: lossColor: {r: 1, g: 0.45, b: 0.45, a: 1} discoveryLabel: NEW discoveryColor: {r: 1, g: 0.85, b: 0.3, a: 1} + spawnDelay: 0.2 + maxActiveNotifications: 5 + maxQueuedNotifications: 20 --- !u!1 &727521436841129546 GameObject: m_ObjectHideFlags: 0 @@ -2543,6 +2546,7 @@ RectTransform: m_Children: - {fileID: 5384293275684618147} - {fileID: 1596723111164776776} + - {fileID: 8481609622609388703} m_Father: {fileID: 1274985355461043127} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0.5, y: 1} @@ -3060,6 +3064,83 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Mask m_ShowMaskGraphic: 1 +--- !u!1 &4437702633090290063 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8481609622609388703} + - component: {fileID: 3834215647302423569} + - component: {fileID: 4722122648630739765} + m_Layer: 5 + m_Name: Ressoureces needed Holder + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8481609622609388703 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4437702633090290063} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 7857481831142227221} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 110.48, y: -46.7} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &3834215647302423569 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4437702633090290063} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3} + m_Name: + m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.HorizontalLayoutGroup + m_Padding: + m_Left: 0 + m_Right: 0 + m_Top: 0 + m_Bottom: 0 + m_ChildAlignment: 0 + m_Spacing: 5 + m_ChildForceExpandWidth: 1 + m_ChildForceExpandHeight: 1 + m_ChildControlWidth: 0 + m_ChildControlHeight: 0 + m_ChildScaleWidth: 0 + m_ChildScaleHeight: 0 + m_ReverseArrangement: 0 +--- !u!114 &4722122648630739765 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4437702633090290063} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3} + m_Name: + m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.ContentSizeFitter + m_HorizontalFit: 2 + m_VerticalFit: 2 --- !u!1 &4441217771617946248 GameObject: m_ObjectHideFlags: 0 @@ -5873,6 +5954,8 @@ MonoBehaviour: m_EditorClassIdentifier: Assembly-CSharp::CrosshairManager icon: {fileID: 8955712843149927660} promptLabel: {fileID: 65970657491887858} + costHolder: {fileID: 8481609622609388703} + costEntryPrefab: {fileID: 9158453950938887334, guid: fb3189f697e11534299fe0ff296e53bc, type: 3} idleState: {fileID: 11400000, guid: e6730ffd626cf7240951b398e0521454, type: 2} hoverState: {fileID: 11400000, guid: 7bbc76d322beed84282f97531e2230e3, type: 2} transitionDuration: 0.25 diff --git a/Assets/GAME/Scenes/Dev Scene/Dev Scene.unity b/Assets/GAME/Scenes/Dev Scene/Dev Scene.unity index 789d4c57..e7b69c40 100644 --- a/Assets/GAME/Scenes/Dev Scene/Dev Scene.unity +++ b/Assets/GAME/Scenes/Dev Scene/Dev Scene.unity @@ -1056,6 +1056,120 @@ GameObject: m_CorrespondingSourceObject: {fileID: 3552718611955523198, guid: 56f986943fa82864394e61d72414fd0a, type: 3} m_PrefabInstance: {fileID: 143560321} m_PrefabAsset: {fileID: 0} +--- !u!1001 &148523959 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 1205429200353802584, guid: 6a1de89366a3f0741877f7cd3ca11cd9, type: 3} + propertyPath: m_Layer + value: 6 + objectReference: {fileID: 0} + - target: {fileID: 2488455438653353329, guid: 6a1de89366a3f0741877f7cd3ca11cd9, type: 3} + propertyPath: m_Layer + value: 6 + objectReference: {fileID: 0} + - target: {fileID: 2834765333546211928, guid: 6a1de89366a3f0741877f7cd3ca11cd9, type: 3} + propertyPath: m_Layer + value: 6 + objectReference: {fileID: 0} + - target: {fileID: 3477519202729442059, guid: 6a1de89366a3f0741877f7cd3ca11cd9, type: 3} + propertyPath: m_Layer + value: 6 + objectReference: {fileID: 0} + - target: {fileID: 3730502645607281877, guid: 6a1de89366a3f0741877f7cd3ca11cd9, type: 3} + propertyPath: m_Layer + value: 6 + objectReference: {fileID: 0} + - target: {fileID: 4380831863138714029, guid: 6a1de89366a3f0741877f7cd3ca11cd9, type: 3} + propertyPath: m_Layer + value: 6 + objectReference: {fileID: 0} + - target: {fileID: 8111840307215440919, guid: 6a1de89366a3f0741877f7cd3ca11cd9, type: 3} + propertyPath: m_Name + value: Chest (1) + objectReference: {fileID: 0} + - target: {fileID: 8111840307215440919, guid: 6a1de89366a3f0741877f7cd3ca11cd9, type: 3} + propertyPath: m_Layer + value: 6 + objectReference: {fileID: 0} + - target: {fileID: 8924123916003559085, guid: 6a1de89366a3f0741877f7cd3ca11cd9, type: 3} + propertyPath: m_LocalPosition.x + value: 49.04 + objectReference: {fileID: 0} + - target: {fileID: 8924123916003559085, guid: 6a1de89366a3f0741877f7cd3ca11cd9, type: 3} + propertyPath: m_LocalPosition.y + value: 0.000000573877 + objectReference: {fileID: 0} + - target: {fileID: 8924123916003559085, guid: 6a1de89366a3f0741877f7cd3ca11cd9, type: 3} + propertyPath: m_LocalPosition.z + value: 58.57 + objectReference: {fileID: 0} + - target: {fileID: 8924123916003559085, guid: 6a1de89366a3f0741877f7cd3ca11cd9, type: 3} + propertyPath: m_LocalRotation.w + value: 0.70710653 + objectReference: {fileID: 0} + - target: {fileID: 8924123916003559085, guid: 6a1de89366a3f0741877f7cd3ca11cd9, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8924123916003559085, guid: 6a1de89366a3f0741877f7cd3ca11cd9, type: 3} + propertyPath: m_LocalRotation.y + value: -0.7071071 + objectReference: {fileID: 0} + - target: {fileID: 8924123916003559085, guid: 6a1de89366a3f0741877f7cd3ca11cd9, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 8924123916003559085, guid: 6a1de89366a3f0741877f7cd3ca11cd9, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8924123916003559085, guid: 6a1de89366a3f0741877f7cd3ca11cd9, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: -90 + objectReference: {fileID: 0} + - target: {fileID: 8924123916003559085, guid: 6a1de89366a3f0741877f7cd3ca11cd9, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: + - targetCorrespondingSourceObject: {fileID: 8111840307215440919, guid: 6a1de89366a3f0741877f7cd3ca11cd9, type: 3} + insertIndex: -1 + addedObject: {fileID: 148523961} + m_SourcePrefab: {fileID: 100100000, guid: 6a1de89366a3f0741877f7cd3ca11cd9, type: 3} +--- !u!1 &148523960 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 8111840307215440919, guid: 6a1de89366a3f0741877f7cd3ca11cd9, type: 3} + m_PrefabInstance: {fileID: 148523959} + m_PrefabAsset: {fileID: 0} +--- !u!65 &148523961 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 148523960} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1.2667743, y: 0.93599886, z: 0.7035593} + m_Center: {x: 0, y: 0.37556878, z: 0} --- !u!1001 &150458585 PrefabInstance: m_ObjectHideFlags: 0 @@ -2510,6 +2624,7 @@ MonoBehaviour: useGrid: 0 gridSize: 1 rotationStep: 90 + continuousBuild: 1 snapRadius: 1.25 snapPointMask: serializedVersion: 2 @@ -4237,6 +4352,30 @@ PrefabInstance: propertyPath: m_Name value: Canvas objectReference: {fileID: 0} + - target: {fileID: 8481609622609388703, guid: fc052529108a2854aa09a1d295778ef4, type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8481609622609388703, guid: fc052529108a2854aa09a1d295778ef4, type: 3} + propertyPath: m_AnchorMin.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8481609622609388703, guid: fc052529108a2854aa09a1d295778ef4, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8481609622609388703, guid: fc052529108a2854aa09a1d295778ef4, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 8481609622609388703, guid: fc052529108a2854aa09a1d295778ef4, type: 3} + propertyPath: m_AnchoredPosition.x + value: 110.48 + objectReference: {fileID: 0} + - target: {fileID: 8481609622609388703, guid: fc052529108a2854aa09a1d295778ef4, type: 3} + propertyPath: m_AnchoredPosition.y + value: -46.7 + objectReference: {fileID: 0} - target: {fileID: 8814077816998036631, guid: fc052529108a2854aa09a1d295778ef4, type: 3} propertyPath: m_AnchorMax.y value: 0 @@ -6309,6 +6448,12 @@ MonoBehaviour: _prefab: Assets/External/VFXPACK_FIRE_WALLCOEUR/Prefab/VFX_Fire.prefab - _gameObject: {fileID: 668733574} _prefab: Assets/External/Static Soul Studio/Crafting Statinos/Built-in/Prefabs/Stations_5.prefab + - _gameObject: {fileID: 148523960} + _prefab: Assets/External/Raygeas/Grasslands - Stylized Nature/Assets/Prefabs/Environment/Chest.prefab + - _gameObject: {fileID: 5966294047732575298} + _prefab: Assets/GAME/Prefabs/Structure/Build/Build/Dual Bed.prefab + - _gameObject: {fileID: 5966294047732575299} + _prefab: Assets/GAME/3D/Build/dual bed.fbx --- !u!4 &740572252 Transform: m_ObjectHideFlags: 11 @@ -29603,6 +29748,73 @@ Transform: m_CorrespondingSourceObject: {fileID: 2400332513845409276, guid: 7d11390e8f41d214396bc57f3c34e265, type: 3} m_PrefabInstance: {fileID: 2451676570416092130} m_PrefabAsset: {fileID: 0} +--- !u!1001 &5966294047732575297 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 1410034494400494434, guid: 75709898450916748958db6a8ae2a48f, type: 3} + propertyPath: m_Name + value: Dual Bed + objectReference: {fileID: 0} + - target: {fileID: 1974791568506913495, guid: 75709898450916748958db6a8ae2a48f, type: 3} + propertyPath: m_LocalPosition.x + value: 48.722908 + objectReference: {fileID: 0} + - target: {fileID: 1974791568506913495, guid: 75709898450916748958db6a8ae2a48f, type: 3} + propertyPath: m_LocalPosition.y + value: 0.0000015367737 + objectReference: {fileID: 0} + - target: {fileID: 1974791568506913495, guid: 75709898450916748958db6a8ae2a48f, type: 3} + propertyPath: m_LocalPosition.z + value: 60.984703 + objectReference: {fileID: 0} + - target: {fileID: 1974791568506913495, guid: 75709898450916748958db6a8ae2a48f, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 1974791568506913495, guid: 75709898450916748958db6a8ae2a48f, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1974791568506913495, guid: 75709898450916748958db6a8ae2a48f, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1974791568506913495, guid: 75709898450916748958db6a8ae2a48f, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1974791568506913495, guid: 75709898450916748958db6a8ae2a48f, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1974791568506913495, guid: 75709898450916748958db6a8ae2a48f, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1974791568506913495, guid: 75709898450916748958db6a8ae2a48f, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 75709898450916748958db6a8ae2a48f, type: 3} +--- !u!1 &5966294047732575298 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 1410034494400494434, guid: 75709898450916748958db6a8ae2a48f, type: 3} + m_PrefabInstance: {fileID: 5966294047732575297} + m_PrefabAsset: {fileID: 0} +--- !u!1 &5966294047732575299 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 3269686860533390028, guid: 75709898450916748958db6a8ae2a48f, type: 3} + m_PrefabInstance: {fileID: 5966294047732575297} + m_PrefabAsset: {fileID: 0} --- !u!1660057539 &9223372036854775807 SceneRoots: m_ObjectHideFlags: 0 @@ -29617,3 +29829,5 @@ SceneRoots: - {fileID: 1902801754} - {fileID: 1957565059} - {fileID: 668733573} + - {fileID: 148523959} + - {fileID: 5966294047732575297} diff --git a/Assets/GAME/Script/Building/BuildCost.cs b/Assets/GAME/Script/Building/BuildCost.cs new file mode 100644 index 00000000..b50bde37 --- /dev/null +++ b/Assets/GAME/Script/Building/BuildCost.cs @@ -0,0 +1,15 @@ +using Ashwild.Inventory; + +namespace Ashwild.Building +{ + /// + /// One resource line of a buildable's price: an authored item and how many of it a single + /// placement consumes. Mirrors CraftingIngredient — plain authoring data, no behaviour. + /// + [System.Serializable] + public struct BuildCost + { + public ItemData item; + public int quantity; + } +} diff --git a/Assets/GAME/Script/Building/BuildCost.cs.meta b/Assets/GAME/Script/Building/BuildCost.cs.meta new file mode 100644 index 00000000..fefe9698 --- /dev/null +++ b/Assets/GAME/Script/Building/BuildCost.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 2915c8306391c7e40a840a6b4ade5a41 \ No newline at end of file diff --git a/Assets/GAME/Script/Building/BuildCostView.cs b/Assets/GAME/Script/Building/BuildCostView.cs new file mode 100644 index 00000000..bf3c3ec0 --- /dev/null +++ b/Assets/GAME/Script/Building/BuildCostView.cs @@ -0,0 +1,26 @@ +using UnityEngine; + +namespace Ashwild.Building +{ + /// + /// Lightweight, data-agnostic view payload for one line of a build's cost, handed to the crosshair + /// so it can render the price without ever touching BuildableData/ItemData. Carries the icon, how + /// many the local player currently holds, the required amount, and whether the line is affordable — + /// the manager decides the numbers, the view just renders "owned / required" and colours it. + /// + public readonly struct BuildCostView + { + public readonly Sprite Icon; + public readonly int Owned; + public readonly int Amount; + public readonly bool Affordable; + + public BuildCostView(Sprite icon, int owned, int amount, bool affordable) + { + Icon = icon; + Owned = owned; + Amount = amount; + Affordable = affordable; + } + } +} diff --git a/Assets/GAME/Script/Building/BuildCostView.cs.meta b/Assets/GAME/Script/Building/BuildCostView.cs.meta new file mode 100644 index 00000000..989a02af --- /dev/null +++ b/Assets/GAME/Script/Building/BuildCostView.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 9d5f455513b7a8345b86ee9f8f2fcaa0 \ No newline at end of file diff --git a/Assets/GAME/Script/Building/BuildManager.cs b/Assets/GAME/Script/Building/BuildManager.cs index 563fd6a8..1d64210f 100644 --- a/Assets/GAME/Script/Building/BuildManager.cs +++ b/Assets/GAME/Script/Building/BuildManager.cs @@ -1,6 +1,7 @@ using System.Collections.Generic; using FishNet.Object; using UnityEngine; +using Ashwild.Inventory; using Ashwild.Player; namespace Ashwild.Building @@ -51,6 +52,10 @@ namespace Ashwild.Building [Tooltip("Degrees the ghost yaws per scroll notch while placing.")] [SerializeField] private float rotationStep = 90f; + [Header("Placement Mode")] + [Tooltip("Continuous build: after confirming a placement, immediately re-arm another ghost of the same structure (to chain walls/floors) instead of returning to idle. Off = place one at a time.")] + [SerializeField] private bool continuousBuild = false; + [Header("Snapping")] [Tooltip("Radius around the aim in which a matching existing socket pulls the ghost in.")] [SerializeField] private float snapRadius = 1.25f; @@ -125,6 +130,12 @@ namespace Ashwild.Building private readonly Collider[] snapResults = new Collider[16]; + /// + /// Reused buffer for the active build's cost lines, rebuilt and pushed to the crosshair each + /// time the price or its affordability changes — so no per-refresh allocation. + /// + private readonly List costView = new List(); + #endregion #region Unity Lifecycle @@ -156,6 +167,7 @@ namespace Ashwild.Building PlayerEvents.HotbarScroll += HandleRotate; PlayerEvents.BuildRotatePressed += HandleRotateKey; PlayerEvents.DemolishModeChanged += HandleDemolishModeChanged; + PlayerEvents.InventorySlotChanged += HandleInventoryChanged; } /// @@ -169,6 +181,7 @@ namespace Ashwild.Building PlayerEvents.HotbarScroll -= HandleRotate; PlayerEvents.BuildRotatePressed -= HandleRotateKey; PlayerEvents.DemolishModeChanged -= HandleDemolishModeChanged; + PlayerEvents.InventorySlotChanged -= HandleInventoryChanged; EndPlacement(); ClearDemoTarget(); @@ -267,6 +280,7 @@ namespace Ashwild.Building PlayerEvents.RaiseBuildMenuToggleRequested(); PlayerEvents.RaiseBuildPlacingChanged(true); + PublishCostView(); BuildRegistry.Instance.RequestSpawnGhost(id, token); } @@ -303,8 +317,11 @@ namespace Ashwild.Building /// /// Left-click: demolishes the aimed build while in demolition mode, otherwise commits the - /// ghost's pose to the registry (spawned for everyone) and ends the placement. Placement is - /// blocked on an invalid spot and on the very frame the ghost was attached. + /// ghost's pose to the registry (spawned for everyone) and consumes its resource cost from the + /// local inventory (client-authoritative, exactly like crafting). In continuous build mode it + /// then re-arms a fresh ghost of the same structure (keeping the current yaw, so pieces chain + /// edge-to-edge); otherwise it ends the placement. Blocked on an invalid spot, on the very frame + /// the ghost was attached, and when the player cannot afford the cost. /// private void HandleConfirm() { @@ -318,10 +335,19 @@ namespace Ashwild.Building if (PlayerEvents.InputLocked) return; if (Time.frameCount == placementBeganFrame) return; if (ghostValidity != null && !ghostValidity.IsValid) return; + if (active != null && !active.CanAfford(PlayerInventory.Instance)) return; if (BuildRegistry.Instance != null) BuildRegistry.Instance.RequestBuild(activeId, ghost.transform.position, ghost.transform.rotation); + ConsumeCost(); + + if (continuousBuild && active != null) + { + RearmGhost(); + return; + } + EndPlacement(); } @@ -435,6 +461,43 @@ namespace Ashwild.Building /// idle. Safe to call when nothing is in flight. /// private void EndPlacement() + { + DespawnGhost(); + + if (active != null) + { + active = null; + activeId = 0; + PlayerEvents.RaiseBuildPlacingChanged(false); + PlayerEvents.RaiseBuildCostChanged(null); + } + } + + /// + /// Continuous build: after committing a piece, drops the spent ghost and asks the registry for a + /// fresh one of the same structure so the player keeps placing without reopening the menu. Keeps + /// / and the current yaw, and stays "placing" on the + /// bus. The token bump makes any in-flight ghost from the old request reject itself in AttachGhost. + /// + private void RearmGhost() + { + DespawnGhost(); + + if (BuildRegistry.Instance == null) + { + EndPlacement(); + return; + } + + int token = ++spawnToken; + BuildRegistry.Instance.RequestSpawnGhost(activeId, token); + } + + /// + /// Despawns the networked ghost we own and clears its cached components, without touching the + /// active buildable or the bus. Safe to call when no ghost is live. + /// + private void DespawnGhost() { if (ghost != null) { @@ -444,13 +507,6 @@ namespace Ashwild.Building } ghostValidity = null; ghostSnaps = null; - - if (active != null) - { - active = null; - activeId = 0; - PlayerEvents.RaiseBuildPlacingChanged(false); - } } /// @@ -469,6 +525,86 @@ namespace Ashwild.Building #endregion + #region Build Cost + + /// + /// Refreshes the crosshair cost display when the inventory changes mid-placement (a resource was + /// spent or picked up), so its affordability colouring stays live. No-op while idle. + /// + private void HandleInventoryChanged(int slotIndex) + { + if (active == null) return; + PublishCostView(); + } + + /// + /// Rebuilds the active build's cost lines into the reused buffer — each with the local player's + /// current affordability — and pushes them to the crosshair via the bus. Clears the display when + /// idle or when the build is free (no cost lines). + /// + private void PublishCostView() + { + BuildCost[] cost = active != null ? active.Cost : null; + if (cost == null || cost.Length == 0) + { + PlayerEvents.RaiseBuildCostChanged(null); + return; + } + + PlayerInventory inv = PlayerInventory.Instance; + costView.Clear(); + foreach (BuildCost line in cost) + { + if (line.item == null) continue; + int owned = inv != null ? inv.CountItem(line.item) : 0; + bool affordable = owned >= line.quantity; + costView.Add(new BuildCostView(line.item.Icon, owned, line.quantity, affordable)); + } + PlayerEvents.RaiseBuildCostChanged(costView); + } + + /// + /// Spends the active build's cost from the local inventory after a committed placement. Client- + /// authoritative like crafting — the inventory change refreshes the cost view through + /// . No-op for a free build or when offline. + /// + private void ConsumeCost() + { + BuildCost[] cost = active != null ? active.Cost : null; + if (cost == null || cost.Length == 0) return; + + PlayerInventory inv = PlayerInventory.Instance; + if (inv == null) return; + + foreach (BuildCost line in cost) + { + if (line.item == null) continue; + inv.RemoveItemByData(line.item, line.quantity); + } + } + + #endregion + + #region Public API + + /// + /// Whether confirming a placement immediately re-arms another ghost of the same structure + /// (continuous build) instead of returning to idle. Settable so a key or menu toggle can flip it. + /// + public bool ContinuousBuild + { + get => continuousBuild; + set => continuousBuild = value; + } + + /// + /// Flips continuous build on/off — wire this to a key or a menu toggle so the player can switch + /// between chaining placements and placing one at a time. + /// + public void ToggleContinuousBuild() => continuousBuild = !continuousBuild; + + #endregion + #region Demolition /// diff --git a/Assets/GAME/Script/Building/BuildableData.cs b/Assets/GAME/Script/Building/BuildableData.cs index 117b77c8..d60b92f6 100644 --- a/Assets/GAME/Script/Building/BuildableData.cs +++ b/Assets/GAME/Script/Building/BuildableData.cs @@ -1,4 +1,5 @@ using UnityEngine; +using Ashwild.Inventory; namespace Ashwild.Building { @@ -30,6 +31,10 @@ namespace Ashwild.Building [Tooltip("The real structure spawned once the placement is confirmed.")] [SerializeField] private GameObject builtPrefab; + [Header("Cost")] + [Tooltip("Resources consumed from the builder's inventory on each placement. Leave empty for a free build.")] + [SerializeField] private BuildCost[] cost; + #endregion #region Public API @@ -39,6 +44,24 @@ namespace Ashwild.Building public string Description => description; public GameObject GhostPrefab => ghostPrefab; public GameObject BuiltPrefab => builtPrefab; + public BuildCost[] Cost => cost; + + /// + /// Whether the given inventory holds enough of every cost line to place this structure once. + /// A null inventory or an empty cost list counts as affordable (free build). + /// + public bool CanAfford(PlayerInventory inventory) + { + if (cost == null || cost.Length == 0) return true; + if (inventory == null) return false; + + for (int i = 0; i < cost.Length; i++) + { + if (cost[i].item == null) continue; + if (!inventory.HasItem(cost[i].item, cost[i].quantity)) return false; + } + return true; + } #endregion } diff --git a/Assets/GAME/Script/Editor/ScreenshotStudio/ScreenshotStudioWindow.cs b/Assets/GAME/Script/Editor/ScreenshotStudio/ScreenshotStudioWindow.cs index eafc89bf..64399e18 100644 --- a/Assets/GAME/Script/Editor/ScreenshotStudio/ScreenshotStudioWindow.cs +++ b/Assets/GAME/Script/Editor/ScreenshotStudio/ScreenshotStudioWindow.cs @@ -23,6 +23,12 @@ namespace Ashwild.EditorTools /// private enum LightingPreset { Studio, Soft, Dramatic, Flat } + /// + /// Which asset kind the Target object picker is filtered to — prefabs/scene objects or raw + /// meshes. Materials, scripts and other assets are intentionally excluded from both. + /// + private enum TargetKind { Prefab, Mesh } + #endregion #region Constants @@ -46,6 +52,8 @@ namespace Ashwild.EditorTools private string exportFileName = string.Empty; private bool nameEditedByUser; + private TargetKind targetKind = TargetKind.Prefab; + private bool autoRotate; private IVisualElementScheduledItem rotateSchedule; @@ -172,15 +180,30 @@ namespace Ashwild.EditorTools } /// - /// Target card: the object field (prefab / scene object / mesh) plus quick Frame and auto-rotate - /// controls that act on the loaded subject. + /// Target card: a Prefab/Mesh kind selector that filters the object picker to only those assets + /// (so materials, scripts and the like never clutter it), the object field itself, plus quick + /// Frame and auto-rotate controls that act on the loaded subject. /// private VisualElement BuildTargetCard() { VisualElement card = Card("Target"); - ObjectField field = new ObjectField("Object") { objectType = typeof(UnityEngine.Object), allowSceneObjects = true }; + ObjectField field = new ObjectField("Object") + { + objectType = TargetObjectType(), + allowSceneObjects = targetKind == TargetKind.Prefab + }; field.RegisterValueChangedCallback(evt => LoadTarget(evt.newValue)); + + EnumField kind = new EnumField("Kind", targetKind); + kind.RegisterValueChangedCallback(evt => + { + targetKind = (TargetKind)evt.newValue; + field.value = null; + field.objectType = TargetObjectType(); + field.allowSceneObjects = targetKind == TargetKind.Prefab; + }); + card.Add(kind); card.Add(field); VisualElement buttons = new VisualElement(); @@ -198,6 +221,12 @@ namespace Ashwild.EditorTools return card; } + /// + /// The Unity type the object picker is restricted to for the current kind — GameObject for + /// prefabs/scene objects, Mesh for raw meshes — so nothing else appears in the picker. + /// + private Type TargetObjectType() => targetKind == TargetKind.Mesh ? typeof(Mesh) : typeof(GameObject); + /// /// Camera card: projection, field of view and framing padding. /// diff --git a/Assets/GAME/Script/Player/Events/PlayerEvents.cs b/Assets/GAME/Script/Player/Events/PlayerEvents.cs index ecd98027..ad1a0510 100644 --- a/Assets/GAME/Script/Player/Events/PlayerEvents.cs +++ b/Assets/GAME/Script/Player/Events/PlayerEvents.cs @@ -1,7 +1,9 @@ using System; +using System.Collections.Generic; using System.Diagnostics; using UnityEngine; using Ashwild.Audio; +using Ashwild.Building; using Ashwild.Harvesting; using Ashwild.Interaction; using Ashwild.Inventory; @@ -135,6 +137,7 @@ namespace Ashwild.Player public static event Action BuildMenuOpenChanged; // the construction menu opened (true) or closed (false) public static event Action BuildPlacingChanged; // a build ghost started (true) / stopped (false) being positioned public static event Action DemolishModeChanged; // the hammer entered (true) / left (false) demolition mode (right-click held) + public static event Action> BuildCostChanged; // the active build's cost to display near the crosshair (null/empty = clear) // ============================================================ // Cooking events @@ -305,6 +308,17 @@ namespace Ashwild.Player BuildPlacingChanged?.Invoke(placing); } + /// + /// Publishes the active build's cost lines for the crosshair to render (or a null/empty list to + /// clear it). Owner-side only; BuildManager re-raises it live as the inventory changes so the + /// affordability colouring stays current while a piece is being positioned. + /// + public static void RaiseBuildCostChanged(IReadOnlyList cost) + { + Log(nameof(BuildCostChanged)); + BuildCostChanged?.Invoke(cost); + } + /// /// Toggles demolition mode (right-click held with the hammer out). Owner-side only; the /// hammer raises it and BuildManager drives the world-facing targeting/destroy from it. diff --git a/Assets/GAME/Script/UI/BuildCostEntryUI.cs b/Assets/GAME/Script/UI/BuildCostEntryUI.cs new file mode 100644 index 00000000..fca47b3b --- /dev/null +++ b/Assets/GAME/Script/UI/BuildCostEntryUI.cs @@ -0,0 +1,56 @@ +using TMPro; +using UnityEngine; +using UnityEngine.UI; + +namespace Ashwild.UI +{ + /// + /// One resource line of a build's cost, shown near the crosshair while placing: an icon plus an + /// "owned / required" count (e.g. 2/3). A pure, data-agnostic view — it is handed an icon, the two + /// numbers and an "affordable" flag and renders exactly that (tinting the count to signal a + /// shortfall), never resolving any domain data itself. CrosshairManager instantiates one of these + /// per cost line into its holder. + /// + [DisallowMultipleComponent] + public class BuildCostEntryUI : MonoBehaviour + { + #region Serialized Fields + + [Header("References")] + [Tooltip("Icon of the required resource.")] + [SerializeField] private Image icon; + + [Tooltip("Owned / required count for one placement (e.g. 2/3).")] + [SerializeField] private TMP_Text amountLabel; + + [Header("Affordability Colours")] + [Tooltip("Amount colour when the player holds enough of this resource.")] + [SerializeField] private Color affordColor = Color.white; + + [Tooltip("Amount colour when the player is short of this resource.")] + [SerializeField] private Color missingColor = new Color(1f, 0.35f, 0.35f); + + #endregion + + #region Public API + + /// + /// Fills the line: sets the icon, the "owned / required" count, and tints it by affordability. + /// + public void Set(Sprite resourceIcon, int owned, int amount, bool affordable) + { + if (icon != null) + { + icon.sprite = resourceIcon; + icon.enabled = resourceIcon != null; + } + if (amountLabel != null) + { + amountLabel.text = $"{owned}/{amount}"; + amountLabel.color = affordable ? affordColor : missingColor; + } + } + + #endregion + } +} diff --git a/Assets/GAME/Script/UI/BuildCostEntryUI.cs.meta b/Assets/GAME/Script/UI/BuildCostEntryUI.cs.meta new file mode 100644 index 00000000..a282a21e --- /dev/null +++ b/Assets/GAME/Script/UI/BuildCostEntryUI.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: b197776c5c48d19409d8b73a5f77bcfb \ No newline at end of file diff --git a/Assets/GAME/Script/UI/CrosshairManager.cs b/Assets/GAME/Script/UI/CrosshairManager.cs index 70332e36..64f7e93b 100644 --- a/Assets/GAME/Script/UI/CrosshairManager.cs +++ b/Assets/GAME/Script/UI/CrosshairManager.cs @@ -1,7 +1,9 @@ +using System.Collections.Generic; using DG.Tweening; using TMPro; using UnityEngine; using UnityEngine.UI; +using Ashwild.Building; using Ashwild.Interaction; using Ashwild.Player; @@ -39,6 +41,18 @@ namespace Ashwild.UI /// [SerializeField] private TMP_Text promptLabel; + [Header("Build Cost")] + /// + /// Container the per-resource cost entries are parented under while a build is being placed. + /// Its own layout (e.g. a HorizontalLayoutGroup) arranges them. + /// + [SerializeField] private RectTransform costHolder; + + /// + /// Prefab instantiated once per cost line (icon + amount) into the holder. Pooled and reused. + /// + [SerializeField] private BuildCostEntryUI costEntryPrefab; + [Header("States")] /// /// Look used when nothing is hovered (the plain dot). @@ -101,6 +115,18 @@ namespace Ashwild.UI /// private string currentPrompt; + /// + /// True while a build's cost is displayed: the prompt label is suppressed and the holder takes + /// over, so a hovered interactable's prompt never fights the cost readout mid-placement. + /// + private bool isShowingCost; + + /// + /// The instantiated cost entries, pooled and reused across placements — activated up to the + /// current cost's line count and hidden beyond it. + /// + private readonly List costEntries = new List(); + #endregion #region Unity Lifecycle @@ -126,6 +152,7 @@ namespace Ashwild.UI private void OnEnable() { PlayerEvents.InteractableHoverChanged += HandleHoverChanged; + PlayerEvents.BuildCostChanged += HandleBuildCostChanged; ApplyState(idleState, isHover: false, animated: false); SetLabel(null, animated: false); } @@ -136,6 +163,7 @@ namespace Ashwild.UI private void OnDisable() { PlayerEvents.InteractableHoverChanged -= HandleHoverChanged; + PlayerEvents.BuildCostChanged -= HandleBuildCostChanged; } /// @@ -151,7 +179,7 @@ namespace Ashwild.UI if (prompt != currentPrompt) { currentPrompt = prompt; - SetLabel(prompt, animated: true); + if (!isShowingCost) SetLabel(prompt, animated: true); } } @@ -180,7 +208,24 @@ namespace Ashwild.UI currentPrompt = hovering ? target.InteractionPrompt : null; ApplyState(hovering ? hoverState : idleState, hovering, animated: true); - SetLabel(currentPrompt, animated: true); + if (!isShowingCost) SetLabel(currentPrompt, animated: true); + } + + /// + /// Shows the active build's cost (hiding the prompt label and filling the holder) while placing, + /// or clears it and restores the normal prompt when the list is null/empty (placement ended). + /// + private void HandleBuildCostChanged(IReadOnlyList cost) + { + if (cost == null || cost.Count == 0) + { + ClearCost(); + return; + } + + isShowingCost = true; + SetLabel(null, animated: true); + PopulateCost(cost); } #endregion @@ -243,6 +288,55 @@ namespace Ashwild.UI a => promptLabel.alpha = a, target, labelFadeDuration); } + /// + /// Fills the holder with one entry per cost line, reusing pooled entries and only instantiating + /// when the current build needs more lines than any previous one. Entries beyond this build's + /// count are hidden. Logs and no-ops when the holder or prefab reference is missing. + /// + private void PopulateCost(IReadOnlyList cost) + { + if (costHolder == null || costEntryPrefab == null) + { + Debug.LogError("[CrosshairManager] Cost holder or entry prefab not assigned — cannot show the build cost.", this); + return; + } + + for (int i = 0; i < cost.Count; i++) + { + BuildCostEntryUI entry; + if (i < costEntries.Count) + { + entry = costEntries[i]; + } + else + { + entry = Instantiate(costEntryPrefab, costHolder); + costEntries.Add(entry); + } + + entry.gameObject.SetActive(true); + entry.Set(cost[i].Icon, cost[i].Owned, cost[i].Amount, cost[i].Affordable); + } + + for (int i = cost.Count; i < costEntries.Count; i++) + if (costEntries[i] != null) costEntries[i].gameObject.SetActive(false); + } + + /// + /// Hides every cost entry and restores the prompt for whatever is currently hovered. No-op when + /// no cost is being shown. + /// + private void ClearCost() + { + if (!isShowingCost) return; + isShowingCost = false; + + for (int i = 0; i < costEntries.Count; i++) + if (costEntries[i] != null) costEntries[i].gameObject.SetActive(false); + + SetLabel(currentPrompt, animated: true); + } + /// /// Kills every cached tween so none survive a disable/destroy. /// diff --git a/Assets/GAME/Script/UI/NotificationUI.cs b/Assets/GAME/Script/UI/NotificationUI.cs index a4c6ae29..2cf6f012 100644 --- a/Assets/GAME/Script/UI/NotificationUI.cs +++ b/Assets/GAME/Script/UI/NotificationUI.cs @@ -6,6 +6,11 @@ using Ashwild.Player; namespace Ashwild.UI { + /// + /// Drives the on-screen item/recipe notification stack. Incoming notifications are queued and + /// released one at a time on a short delay, so a burst (e.g. one pickup unlocking several recipes) + /// reveals gradually instead of popping all at once, capped by a max on-screen count. + /// public class NotificationUI : MonoBehaviour { [Header("References")] @@ -35,7 +40,30 @@ namespace Ashwild.UI [SerializeField] private string discoveryLabel = "NEW"; [SerializeField] private Color discoveryColor = new Color(1f, 0.85f, 0.3f); + [Header("Queue")] + [Tooltip("Minimum delay between two notifications appearing, so a burst reveals one at a time.")] + [SerializeField] private float spawnDelay = 0.5f; + [Tooltip("Maximum notifications visible on screen at once; the rest wait in the queue.")] + [SerializeField] private int maxActiveNotifications = 5; + [Tooltip("Maximum notifications waiting in the queue; beyond this the oldest pending one is dropped.")] + [SerializeField] private int maxQueuedNotifications = 20; + private readonly List activeNotifications = new List(); + private readonly Queue pendingQueue = new Queue(); + private float spawnCooldown; + + /// + /// A notification waiting to be shown. Holds either an item gain/loss (item + signed quantity, + /// still mergeable while queued) or a recipe discovery (icon + name). + /// + private class PendingNotification + { + public bool isDiscovery; + public ItemData item; + public int signedQuantity; + public Sprite icon; + public string label; + } private void OnEnable() { @@ -65,16 +93,18 @@ namespace Ashwild.UI // Food placed on a cooking station or fuel fed to it both leave the inventory by one. private void OnItemSpent(ItemData item) => Push(item, -1); + /// + /// Records an item gain/loss. Merges instantly into a matching active notification, then into a + /// matching one still queued, otherwise enqueues a new one to be released on the spawn delay. + /// private void Push(ItemData item, int signedQuantity) { if (item == null || signedQuantity == 0) return; - // Clean up destroyed notifications activeNotifications.RemoveAll(n => n == null); bool gain = signedQuantity > 0; - // Merge only with a notification for the same item AND same direction for (int i = 0; i < activeNotifications.Count; i++) { if (activeNotifications[i] != null && !activeNotifications[i].IsDiscovery @@ -86,31 +116,62 @@ namespace Ashwild.UI } } - // Create new notification - GameObject go = Instantiate(notificationPrefab, container); - NotificationItemUI notification = go.GetComponent(); + foreach (PendingNotification pending in pendingQueue) + { + if (!pending.isDiscovery && pending.item == item && (pending.signedQuantity > 0) == gain) + { + pending.signedQuantity += signedQuantity; + return; + } + } - float targetY = startOffsetY + activeNotifications.Count * (notificationHeight + spacing); - - RectTransform rt = notification.RectTransform; - rt.anchoredPosition = new Vector2(0f, targetY - 30f); - - notification.Initialize(item, signedQuantity, gain ? gainColor : lossColor, displayDuration, slideInDuration, slideInEase); - - // Slide in from below - rt.DOAnchorPosY(targetY, slideInDuration).SetEase(slideInEase); - - activeNotifications.Add(notification); + Enqueue(new PendingNotification { isDiscovery = false, item = item, signedQuantity = signedQuantity }); } /// - /// Pushes a one-time "NEW" notification for a newly unlocked recipe: its result icon and name - /// with the configured badge in the discovery colour. Never merges with anything. + /// Enqueues a one-time "NEW" notification for a newly unlocked recipe (its result icon and name + /// with the discovery badge). Never merges; released on the spawn delay like the rest. /// private void PushDiscovery(Sprite icon, string recipeName) { - activeNotifications.RemoveAll(n => n == null); + Enqueue(new PendingNotification { isDiscovery = true, icon = icon, label = recipeName }); + } + /// + /// Adds a pending notification to the queue, dropping the oldest waiting one when the queue is + /// full so the most recent notifications are never lost. + /// + private void Enqueue(PendingNotification pending) + { + if (pendingQueue.Count >= maxQueuedNotifications) + pendingQueue.Dequeue(); + pendingQueue.Enqueue(pending); + } + + /// + /// Ticks the spawn cooldown and releases at most one queued notification per delay, while the + /// on-screen count is under the cap. + /// + private void Update() + { + if (spawnCooldown > 0f) + spawnCooldown -= Time.deltaTime; + + if (pendingQueue.Count == 0 || spawnCooldown > 0f) return; + + activeNotifications.RemoveAll(n => n == null); + if (activeNotifications.Count >= maxActiveNotifications) return; + + Spawn(pendingQueue.Dequeue()); + spawnCooldown = spawnDelay; + } + + /// + /// Instantiates and slides in a notification for a released pending entry, wiring it as either + /// an item gain/loss or a recipe discovery. + /// + private void Spawn(PendingNotification pending) + { GameObject go = Instantiate(notificationPrefab, container); NotificationItemUI notification = go.GetComponent(); @@ -119,7 +180,10 @@ namespace Ashwild.UI RectTransform rt = notification.RectTransform; rt.anchoredPosition = new Vector2(0f, targetY - 30f); - notification.InitializeDiscovery(icon, recipeName, discoveryLabel, discoveryColor, displayDuration, slideInDuration); + if (pending.isDiscovery) + notification.InitializeDiscovery(pending.icon, pending.label, discoveryLabel, discoveryColor, displayDuration, slideInDuration); + else + notification.Initialize(pending.item, pending.signedQuantity, pending.signedQuantity > 0 ? gainColor : lossColor, displayDuration, slideInDuration, slideInEase); rt.DOAnchorPosY(targetY, slideInDuration).SetEase(slideInEase); diff --git a/Assets/GAME/ScriptableObjects/Buildables/NewBuildable 1.asset b/Assets/GAME/ScriptableObjects/Buildables/NewBuildable 1.asset index 8a49fd8a..604afd69 100644 --- a/Assets/GAME/ScriptableObjects/Buildables/NewBuildable 1.asset +++ b/Assets/GAME/ScriptableObjects/Buildables/NewBuildable 1.asset @@ -17,3 +17,6 @@ MonoBehaviour: description: ghostPrefab: {fileID: 3305094920675404345, guid: 39b04625f47cbc24a93966c3eb0194d2, type: 3} builtPrefab: {fileID: 3209735075952564995, guid: adbf0247d50ef68409136335af276fc1, type: 3} + cost: + - item: {fileID: 11400000, guid: 9340c6bceb10c9b47bdaf993427004e3, type: 2} + quantity: 2 diff --git a/Assets/Resources/DefaultPrefabObjects.asset b/Assets/Resources/DefaultPrefabObjects.asset index 8243a0ac..239b2296 100644 --- a/Assets/Resources/DefaultPrefabObjects.asset +++ b/Assets/Resources/DefaultPrefabObjects.asset @@ -15,7 +15,6 @@ MonoBehaviour: _prefabs: - {fileID: 4512293259955182956, guid: fe2b65b02f0484b41aa8cfa9fbbb0e1d, type: 3} - {fileID: 4512293259955182956, guid: 35639798ad77fc145871588b25d66259, type: 3} - - {fileID: 1293470452171110175, guid: d2b6fea7c913fb844a1939788445af18, type: 3} - {fileID: 201277550, guid: 26a567abbe21227428f5c3d309d1d73c, type: 3} - {fileID: 4512293259955182956, guid: 0d6d0f48b03b17f49a6340103cd9b9d0, type: 3} - {fileID: 7847709848979142105, guid: 6a3ea20bb46e81c44ad6959bbe90e0dd, type: 3} diff --git a/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Fallback.asset b/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Fallback.asset index ff237174..459a1eed 100644 --- a/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Fallback.asset +++ b/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Fallback.asset @@ -215,293 +215,8 @@ MonoBehaviour: m_SourceFontFilePath: m_AtlasPopulationMode: 1 InternalDynamicOS: 0 - m_GlyphTable: - - m_Index: 66 - m_Metrics: - m_Width: 51 - m_Height: 6 - m_HorizontalBearingX: -2 - m_HorizontalBearingY: -12 - m_HorizontalAdvance: 48 - m_GlyphRect: - m_X: 93 - m_Y: 10 - m_Width: 51 - m_Height: 6 - m_Scale: 1 - m_AtlasIndex: 0 - m_ClassDefinitionType: 0 - - m_Index: 2030 - m_Metrics: - m_Width: 64 - m_Height: 9 - m_HorizontalBearingX: 11 - m_HorizontalBearingY: 9 - m_HorizontalAdvance: 86 - m_GlyphRect: - m_X: 10 - m_Y: 10 - m_Width: 64 - m_Height: 9 - m_Scale: 1 - m_AtlasIndex: 0 - m_ClassDefinitionType: 0 - - m_Index: 49 - m_Metrics: - m_Width: 49 - m_Height: 59 - m_HorizontalBearingX: 7 - m_HorizontalBearingY: 59 - m_HorizontalAdvance: 62 - m_GlyphRect: - m_X: 163 - m_Y: 10 - m_Width: 49 - m_Height: 59 - m_Scale: 1 - m_AtlasIndex: 0 - m_ClassDefinitionType: 0 - - m_Index: 72 - m_Metrics: - m_Width: 42 - m_Height: 47 - m_HorizontalBearingX: 3 - m_HorizontalBearingY: 46 - m_HorizontalAdvance: 48 - m_GlyphRect: - m_X: 93 - m_Y: 35 - m_Width: 42 - m_Height: 47 - m_Scale: 1 - m_AtlasIndex: 0 - m_ClassDefinitionType: 0 - - m_Index: 90 - m_Metrics: - m_Width: 64 - m_Height: 45 - m_HorizontalBearingX: -1 - m_HorizontalBearingY: 45 - m_HorizontalAdvance: 62 - m_GlyphRect: - m_X: 10 - m_Y: 38 - m_Width: 64 - m_Height: 45 - m_Scale: 1 - m_AtlasIndex: 0 - m_ClassDefinitionType: 0 - - m_Index: 3 - m_Metrics: - m_Width: 0 - m_Height: 0 - m_HorizontalBearingX: 0 - m_HorizontalBearingY: 0 - m_HorizontalAdvance: 24 - m_GlyphRect: - m_X: 0 - m_Y: 0 - m_Width: 0 - m_Height: 0 - m_Scale: 1 - m_AtlasIndex: 0 - m_ClassDefinitionType: 0 - - m_Index: 55 - m_Metrics: - m_Width: 50 - m_Height: 59 - m_HorizontalBearingX: 1 - m_HorizontalBearingY: 59 - m_HorizontalAdvance: 53 - m_GlyphRect: - m_X: 231 - m_Y: 10 - m_Width: 50 - m_Height: 59 - m_Scale: 1 - m_AtlasIndex: 0 - m_ClassDefinitionType: 0 - - m_Index: 91 - m_Metrics: - m_Width: 43 - m_Height: 45 - m_HorizontalBearingX: 0 - m_HorizontalBearingY: 45 - m_HorizontalAdvance: 43 - m_GlyphRect: - m_X: 300 - m_Y: 10 - m_Width: 43 - m_Height: 45 - m_Scale: 1 - m_AtlasIndex: 0 - m_ClassDefinitionType: 0 - - m_Index: 87 - m_Metrics: - m_Width: 23 - m_Height: 56 - m_HorizontalBearingX: 1 - m_HorizontalBearingY: 55 - m_HorizontalAdvance: 24 - m_GlyphRect: - m_X: 362 - m_Y: 10 - m_Width: 23 - m_Height: 56 - m_Scale: 1 - m_AtlasIndex: 0 - m_ClassDefinitionType: 0 - - m_Index: 37 - m_Metrics: - m_Width: 46 - m_Height: 59 - m_HorizontalBearingX: 7 - m_HorizontalBearingY: 59 - m_HorizontalAdvance: 57 - m_GlyphRect: - m_X: 404 - m_Y: 10 - m_Width: 46 - m_Height: 59 - m_Scale: 1 - m_AtlasIndex: 0 - m_ClassDefinitionType: 0 - - m_Index: 88 - m_Metrics: - m_Width: 38 - m_Height: 46 - m_HorizontalBearingX: 5 - m_HorizontalBearingY: 45 - m_HorizontalAdvance: 48 - m_GlyphRect: - m_X: 300 - m_Y: 74 - m_Width: 38 - m_Height: 46 - m_Scale: 1 - m_AtlasIndex: 0 - m_ClassDefinitionType: 0 - - m_Index: 79 - m_Metrics: - m_Width: 9 - m_Height: 62 - m_HorizontalBearingX: 5 - m_HorizontalBearingY: 62 - m_HorizontalAdvance: 19 - m_GlyphRect: - m_X: 357 - m_Y: 85 - m_Width: 9 - m_Height: 62 - m_Scale: 1 - m_AtlasIndex: 0 - m_ClassDefinitionType: 0 - - m_Index: 82 - m_Metrics: - m_Width: 42 - m_Height: 47 - m_HorizontalBearingX: 3 - m_HorizontalBearingY: 46 - m_HorizontalAdvance: 48 - m_GlyphRect: - m_X: 385 - m_Y: 88 - m_Width: 42 - m_Height: 47 - m_Scale: 1 - m_AtlasIndex: 0 - m_ClassDefinitionType: 0 - - m_Index: 93 - m_Metrics: - m_Width: 36 - m_Height: 45 - m_HorizontalBearingX: 3 - m_HorizontalBearingY: 45 - m_HorizontalAdvance: 43 - m_GlyphRect: - m_X: 446 - m_Y: 88 - m_Width: 36 - m_Height: 45 - m_Scale: 1 - m_AtlasIndex: 0 - m_ClassDefinitionType: 0 - - m_Index: 85 - m_Metrics: - m_Width: 23 - m_Height: 46 - m_HorizontalBearingX: 5 - m_HorizontalBearingY: 46 - m_HorizontalAdvance: 29 - m_GlyphRect: - m_X: 469 - m_Y: 10 - m_Width: 23 - m_Height: 46 - m_Scale: 1 - m_AtlasIndex: 0 - m_ClassDefinitionType: 0 - m_CharacterTable: - - m_ElementType: 1 - m_Unicode: 95 - m_GlyphIndex: 66 - m_Scale: 1 - - m_ElementType: 1 - m_Unicode: 8230 - m_GlyphIndex: 2030 - m_Scale: 1 - - m_ElementType: 1 - m_Unicode: 78 - m_GlyphIndex: 49 - m_Scale: 1 - - m_ElementType: 1 - m_Unicode: 101 - m_GlyphIndex: 72 - m_Scale: 1 - - m_ElementType: 1 - m_Unicode: 119 - m_GlyphIndex: 90 - m_Scale: 1 - - m_ElementType: 1 - m_Unicode: 32 - m_GlyphIndex: 3 - m_Scale: 1 - - m_ElementType: 1 - m_Unicode: 84 - m_GlyphIndex: 55 - m_Scale: 1 - - m_ElementType: 1 - m_Unicode: 120 - m_GlyphIndex: 91 - m_Scale: 1 - - m_ElementType: 1 - m_Unicode: 116 - m_GlyphIndex: 87 - m_Scale: 1 - - m_ElementType: 1 - m_Unicode: 66 - m_GlyphIndex: 37 - m_Scale: 1 - - m_ElementType: 1 - m_Unicode: 117 - m_GlyphIndex: 88 - m_Scale: 1 - - m_ElementType: 1 - m_Unicode: 108 - m_GlyphIndex: 79 - m_Scale: 1 - - m_ElementType: 1 - m_Unicode: 111 - m_GlyphIndex: 82 - m_Scale: 1 - - m_ElementType: 1 - m_Unicode: 122 - m_GlyphIndex: 93 - m_Scale: 1 - - m_ElementType: 1 - m_Unicode: 114 - m_GlyphIndex: 85 - m_Scale: 1 + m_GlyphTable: [] + m_CharacterTable: [] m_AtlasTextures: - {fileID: 28268798066460806} m_AtlasTextureIndex: 0 @@ -512,115 +227,11 @@ MonoBehaviour: m_AtlasHeight: 512 m_AtlasPadding: 9 m_AtlasRenderMode: 4169 - m_UsedGlyphRects: - - m_X: 0 - m_Y: 0 - m_Width: 83 - m_Height: 28 - - m_X: 83 - m_Y: 0 - m_Width: 70 - m_Height: 25 - - m_X: 153 - m_Y: 0 - m_Width: 68 - m_Height: 78 - - m_X: 83 - m_Y: 25 - m_Width: 61 - m_Height: 66 - - m_X: 0 - m_Y: 28 - m_Width: 83 - m_Height: 64 - - m_X: 221 - m_Y: 0 - m_Width: 69 - m_Height: 78 - - m_X: 290 - m_Y: 0 - m_Width: 62 - m_Height: 64 - - m_X: 352 - m_Y: 0 - m_Width: 42 - m_Height: 75 - - m_X: 394 - m_Y: 0 - m_Width: 65 - m_Height: 78 - - m_X: 290 - m_Y: 64 - m_Width: 57 - m_Height: 65 - - m_X: 347 - m_Y: 75 - m_Width: 28 - m_Height: 81 - - m_X: 375 - m_Y: 78 - m_Width: 61 - m_Height: 66 - - m_X: 436 - m_Y: 78 - m_Width: 55 - m_Height: 64 - - m_X: 459 - m_Y: 0 - m_Width: 42 - m_Height: 65 + m_UsedGlyphRects: [] m_FreeGlyphRects: - - m_X: 144 - m_Y: 25 - m_Width: 9 - m_Height: 486 - - m_X: 144 - m_Y: 78 - m_Width: 146 - m_Height: 433 - m_X: 0 - m_Y: 92 - m_Width: 290 - m_Height: 419 - - m_X: 83 - m_Y: 91 - m_Width: 207 - m_Height: 420 - - m_X: 0 - m_Y: 156 - m_Width: 511 - m_Height: 355 - - m_X: 0 - m_Y: 129 - m_Width: 347 - m_Height: 382 - - m_X: 347 - m_Y: 64 - m_Width: 5 - m_Height: 11 - - m_X: 375 - m_Y: 144 - m_Width: 136 - m_Height: 367 - - m_X: 375 - m_Y: 75 - m_Width: 19 - m_Height: 3 - - m_X: 436 - m_Y: 142 - m_Width: 75 - m_Height: 369 - - m_X: 459 - m_Y: 65 - m_Width: 52 - m_Height: 13 - - m_X: 491 - m_Y: 65 - m_Width: 20 - m_Height: 446 - - m_X: 501 m_Y: 0 - m_Width: 10 + m_Width: 511 m_Height: 511 m_FontFeatureTable: m_MultipleSubstitutionRecords: [] @@ -9282,9 +8893,9 @@ Texture2D: Hash: 00000000000000000000000000000000 m_IsAlphaChannelOptional: 0 serializedVersion: 4 - m_Width: 512 - m_Height: 512 - m_CompleteImageSize: 262144 + m_Width: 1 + m_Height: 1 + m_CompleteImageSize: 1 m_MipsStripped: 0 m_TextureFormat: 1 m_MipCount: 1 @@ -9309,8 +8920,8 @@ Texture2D: m_LightmapFormat: 0 m_ColorSpace: 0 m_PlatformBlob: - image data: 262144 - _typelessdata: 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004080a0b1313131313131311110e0b060100000000000000000004090e11121313131313131313070705010000000000000000000000060a0e1011131313131313130b0a080400000000000000000000000000020507080c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0b0a0805000000000000000000000002080c101212131313131313090806030000000000000000000000000000000000000000000000000406071113131313131313131308070502000000000000000000000000000000000000000000000000000000000000000000050a0d0f10131313131313130909070300000000000000000000000000000000000000000000000000000000000000000004090c0e0f131313131313130c0b09060100000000000000000000000000000004090c0e0f13131313131313100605030000000000000000000000000000000000000000000000000407090a0e111213121211100d0b0806050300000000000000000000000002080c101212131313131313131313131313131313131313131313131313131211100f0d0a07070501000000000000000000000000000000000000000000000000000000040613131313131313130d0c0a07020000000000000000000000000000000000000000000000000000000000000000000000050c11141717202020202020201e1d1b17120c0400000000000000080f151a1d1f20202020202020201413110d080200000000000000040b11161a1d1e20202020202020171714110c0500000000000000000003090e12141519191919191919191919191919191919191919191919191919191919191919191919191919191919191919191919191919181715110c060000000000000000060d13181c1e1f2020202020201615130f0a040000000000000000000000000000000000000000070c1013131e2020202020202020201414110e08020000000000000000000000000000000000000000000000000000000000030a1016191c1d202020202020201615130f0a04000000000000000000000000000000000000000000000000000000000002091015191b1c20202020202020191816120d0700000000000000000000000002091015191b1c202020202020201c13120f0b060000000000000000000000000000000000000000050b101316171b1e1f201f1e1e1c1a181513120f0b06000000000000000000060d13181c1e1f2020202020202020202020202020202020202020202020201f1f1e1d1b19171413110d08050200000000000000000000000000000000000000000001070c101320202020202020201a1917130e070000000000000000000000000000000000000000000000000000000000000000000810171c2123242d2d2d2d2d2d2d2b2a27231d160e06000000000009121920262a2c2c2d2d2d2d2d2d2d21201d19130c050000000000050d151c2227292a2d2d2d2d2d2d2d2423211c17100800000000000000060d141a1e2122262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262626262424211d1710090000000000000710181f24282b2c2d2d2d2d2d2d22211f1b150e060000000000000000000000000000000000030b12181c1f202b2d2d2d2d2d2d2d2d2d21201e19140d05000000000000000000000000000000000000000000000000000000040d151c212629292d2d2d2d2d2d2d23221f1b160f07000000000000000000000000000000000000000000000000000000030c141b212528292d2d2d2d2d2d2d2625221e18110901000000000000000000030c141b212528292d2d2d2d2d2d2d29201f1b17110a020000000000000000000000000000000003090e161c202223272a2c2c2c2b2a29272422201f1b17110a020000000000000710181f24282b2c2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2c2c2b2a28262421201d1914120e0903000000000000000000000000000000000000030b12181c1f2d2d2d2d2d2d2d2d2626231f19120a0100000000000000000000000000000000000000000000000000000000000008121a22282d3031393939393939393837332e2820180e0400000008121b242b31363839393939393939392e2d2a251e160e05000000040d171f272e3336373939393939393931302d28221a12080000000000060f181f262a2d2e3232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323231302d28221b1209000000000610192229303538393939393939392f2e2b2620181006000000000000000000000000000000030c151d23282c2d373939393939393939392e2d2a251e170e0500000000000000000000000000000000000000000000000000030d161f262d32353639393939393939302f2c272119100700000000000000000000000000000000000000000000000000020c151e252c3134353939393939393932312e29231b13090000000000000000000c151e262c31343539393939393939362d2b27221b140b020000000000000000000000000000060d141a21272c2f30343738393938373634312f2d2b27221b140b0200000000061019222930353839393939393939393939393939393939393939393939393939393938363533302e2d2925211e1a140f0a04000000000000000000000000000000030d151d23292c393939393939393933322f2a241c130a000000000000000000000000000000000000000000000000000000000005101a242c33393c3e4646464646464644433f39322a20160c0100040f19242d353d42454646464646464646463936302820160c0200000b151f2931393f4244464646464646463e3c39332c241a1005000000030d18212931363a3b3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3e3d39342c241b10060000020d18222b343b4144454646464646463c3b37322a22180e0400000000000000000000000000000b151e272e34383a444646464646464646463b3936302920170d020000000000000000000000000000000000000000000000000a151f2831383e4243464646464646463c3b38322b23190f0400000000000000000000000000000000000000000000000009141e2730373d4142464646464646463f3e3a352d251b0f060000000000000008121e2730373d414246464646464646433937332d261d140a00000000000000000000000000060f171f262a33383c3d4144454645454443403e3b3937332d261d140a000000020d18222b343b4144454646464646464646464646464646464646464646464646464645444342403d3a3935302d2b261f1b160e0802000000000000000000000000010b151f272f34384646464646464646403f3b352e261c1207000000000000000000000000000000000000000000000000000000000c17222c363e45494a53535353535353514f4b443c32281d1206000915202b353f474e5253535353535353535346413a32281e13080006111c27313b434a4f51535353535353534a49453e362c22170c00000009141f29333b4246484c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4c4b49453e362c22170c000008131f29343d464c51525353535353534947433c342a20150a0000000000000000000000000007121d273039404546515353535353535353535346413b32291e1408000000000000000000000000000000000000000000000005101c26313a42494e50535353535353534948433d352b21160a000000000000000000000000000000000000000000000004101b25303942494d4f535353535353534c4a463f372d21180b020000000000050e1a24303942494d4f535353535353534f46443f382f261b11060000000000000000000000060f18212931363d44484a4e5152535251514f4d4b4846443f382f261b1106000008131f29343d464c5152535353535353535353535353535353535353535353535353525251504e4c4a4746413b3a37312c272119140d05000000000000000000000007121d273139404553535353535353534d4b4740382e24190e02000000000000000000000000000000000000000000000000000004111c28333e48505557606060606060605e5c564e44392e23170b010e1a26313d4751595e5f606060606060605f524c443a3025190d010a16222e39434d555b5d60606060606060575550483e33281c110400020e1a26313b454d535559595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959595959575550483e34281d1105000c1824303b464f575d5f60606060606055534e463c32261b0f030000000000000000000000020b18232e39434b51535e6060606060606060605f524c443b3025190e02000000000000000000000000000000000000000000000a16212d38424c545a5c6060606060606056544f473d32271b0f03000000000000000000000000000000000000000000000915212c37424b53595c60606060606060595651493f332a1d140a00000000020d17202c36424b54595c606060606060605c53504941382d22170b00000000000000000000030c18212a333b42464f54565a5d5f5f5f5e5d5c5a575553504941382d22170b00000c1824303b464f575d5f6060606060606060606060606060606060606060606060605f5f5e5d5b595754524c4846423c38322a251e170e08000000000000000000000c18232f39434b515f606060606060605957524a40352a1f130700000000000000000000000000000000000000000000000000000814212d3945505a61646c6c6c6c6c6c6c6b6760564b3f33271b0e04111d2a36424e59636a6c6c6c6c6c6c6c6c6c5e564c41362a1d11050e1a27333f4a555f676a6c6c6c6c6c6c6c64615a5045392d2114080005121e2a36424d575f616565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656564615a5045392d21150800101c2835414c5761696c6c6c6c6c6c6c625f584e43372b1f130600000000000000000000000a141d2834404b555c606a6c6c6c6c6c6c6c6c6c6c5e564c41362a1e1105000000000000000000000000000000000000000000010d1926323e49545e66696c6c6c6c6c6c6c6360594f43382c1f1307000000000000000000000000000000000000000000000c1925313d49535d65686c6c6c6c6c6c6c65625b51453c2f261c110600000008141e29323e48545d65686c6c6c6c6c6c6c69605b53493f33271b0f030000000000000000000b151e2a333c454d53596063676a6b6c6c6b6a69676462605b53493f33271b0f0300101c2835414c5761696c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6b69686663615e5655534d48433d363029201a1109000000000000000004101c2934404b555c6c6c6c6c6c6c6c6c66635c52473b2f23170a00000000000000000000000000000000000000000000000000000a1723303c4955616c71797979797979797772675c4f43372a1d1106121f2c3845525e6a75797979797979797976685e5246392d201307101d2936424f5b67717779797979797979716c6155493c3023170a000714212d3a46535f696e72727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272716c6155493d3024170a00121e2b3844515d697378797979797979766a5f53473b2e2115080000000000000000000006111b262f3845515c676d7779797979797979797976685e5246392d201407000000000000000000000000000000000000000000030f1c2935424e5a667076797979797979796f6b6054483b2f221509000000000000000000000000000000000000000000020e1b2834414d59656f7579797979797979726d62574d42382d22170b0200050e1925303b44505a656f7579797979797979766c655b5044372b1f1205000000000000000007121c27303c454e575f616b70747778797878777673716e6c655b5044372b1f120500121e2b3844515d697378797979797979797979797979797979797979797979797979797877767573706d6866615f57544f46413b322c231b12090000000000000006131f2c3845515c677679797979797979736e63574b3f3226190c00000000000000000000000000000000000000000000000000000b1724313e4a5764717e8686868686868684776b5e5144382b1e110613202c3946535f6c7987868686868686867a6d6154473a2e211407111e2a3744515d6a7783868686868686867e7164574a3e3124170b000815222e3b4855616e7b7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7e7164574b3e3124180b00121f2c3945525f6c78858686868686867c6f6255493c2f221609000000000000000000000b17222d38414e58606d79848686868686868686867a6e6154473b2e21140800000000000000000000000000000000000000000003101d293643505c697682868686868686867d6f6356493c30231609000000000000000000000000000000000000000000020f1c2935424f5c687582868686868686867f72695f544a3f33281d140a020c17202a36414c56616c75818686868686868682796c605346392d20130600000000000000000c18232e39424e575f696e767d8184858685848482807e7b776c605346392d20130600121f2c3945525f6c788586868686868686868686868686868686868686868686868685858483817f7d7a77736e69636059524c443d352d241b12080000000000000714202d3a4753606d7986868686868686807366594d4033261a0d00000000000000000000000000000000000000000000000000000b1724313e4a5764717d8a93939393939184776b5e5144382b1e110613202c3946535f6c7986929393939393877a6d6154473a2e211407111e2a3744515d6a77849093939393938a7d7164574a3e3124170b000a1724303d4a5763707d8a8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c83776a5d5044372a1d1100121f2c3945525f6c78859293939393887c6f6255493c2f221609000000000000000000040f1b27333f49535f6a73808c9693939393939393877a6e6154473b2e21140800000000000000000000000000000000000000000003101d293643505c6976838f9393939393897c6f6356493c30231609000000000000000000000000000000000000000000000714212e3a4754616d7a85919393939392867b6e665b50443c2f261c1108131e29323a46525e68717e8a939393939392857a6e655b5044372b1f12050000000000000004101c2834404a545f6a6e7b83898d9092929291908f8d8a887d7063564a3d3023170a00121f2c3945525f6c7885929393939393939393939393939393939393939393939993929291908e8c8a86837f7b766f6b615e564f473f362d241a0f0600000000000714202d3a4753606d7a8693939393938c807366594d4033261a0d00000000000000000000000000000000000000000000000000000b1724313e4a5764717d8a979f9f9f9e9184776b5e5144382b1e110613202c3946535f6c7986929f9f9f9f94877a6d6154473a2e211407111e2a3744515d6a7784909d9f9f9f978a7d7164574a3e3124170b000a1724303d4a5763707d8a96989898989898989898989898989898989898989898989898989898989898989898989898989898989898989898989083776a5d5044372a1d1100121f2c3945525f6c7885929f9f9f95887c6f6255493c2f2216090000000000000000040d1a232b3744505b656e7c86929fa89f9f9f9f9f94877a6e6154473b2e21140800000000000000000000000000000000000000000003101d293643505c6976838f9c9f9f9f96897c6f6356493c30231609000000000000000000000000000000000000000000000713202d3946525e68707d8a929da8a2989083786c60574d42382d22170e1925303a44505a616e7a85929ea5a89d938a7d70685e53493f33271b0f030000000000000006121f2c3844515c666e7c8590949a9d9e9f9f9e9d9c9a96897d7063564a3d3023170a00121f2c3945525f6c7885929f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9fa49f9f9f9e9c9b999a93908c87827c756e68605950483f362c21180e03000000000714202d3a4753606d7a86939f9f9f998c807366594d4033261a0d00000000000000000000000000000000000000000000000000000b1724313e4a5764717d8a97a4acaa9e9184776b5e5144382b1e110613202c3946535f6c7986929facaca094877a6d6154473a2e211407111e2a3744515d6a7784909daaaca4978a7d7164574a3e3124170b000a1724303d4a5763707d8a969f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9d9083776a5d5044372a1d1100121f2c3945525f6c7885929faba295887c6f6255493c2f22160900000000000000010c161f2a36414c56606c77839099a3aeacacacaca194877a6e6154473b2e21140800000000000000000000000000000000000000000003101d293643505c6976838f9ca9aca296897c6f6356493c302316090000000000000000000000000000000000000000000005111d2a36414c56616b74808d96a0aa9f948b7f72695f544a3f33281d16202a36414c56616c75818f97a1aba0968e81746c61564d41382d22170b00000000000000000713202d3a4653606d788390979fa6aaababa5a1a0a0a196897d7063564a3d3023170a00121f2c3945525f6c7885929fabacacada7a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a6a7a8a9a8aca49f9d9a938f89827a706b625a50483e332a1f1509000000000714202d3a4753606d7a8693a0aca6998c807366594d4033261a0d00000000000000000000000000000000000000000000000000000b1724313e4a5764717d8a97a4b0aa9e9184776b5e5144382b1e110613202c3946535f6c7986929facada094877a6d6154473a2e211407111e2a3744515d6a7784909daab0a4978a7d7164574a3e3124170b000a1724303d4a5763707d8a93939393939393939393939393939393939393939393939393939393939393939393939393939393939393939393939083776a5d5044372a1d1100121f2c3945525f6c7885929faba295887c6f6255493c2f2216090000000000000007121d28313946525e68717e8b949fabb4b8b9beada194877a6e6154473b2e21140800000000000000000000000000000000000000000003101d293643505c6976838f9ca9afa296897c6f6356493c3023160900000000000000000000000000000000000000000000010d1925303a444f59606d79849199a3a69f92867b6e665b50443c2f261e28323a46525e68717e8a939ea9a3999184796d605a50443b2f261b11060000000000000004111d2935404b5564717e8b95a0a9b0a9a19e989493939496897d7063564a3d3023170a00121f2c3945525f6c7885929fabb8ada39c9998989898989898989898989898989899999a9b9d9fa3ababaca49f9c938f857d716c625a50453c31261a0e050000000714202d3a4753606d7a8693a0ada6998c807366594d4033261a0d00000000000000000000000000000000000000000000000000000b1724313e4a5764717d8a97a4acaa9e9184776b5e5144382b1e110613202c3946535f6c7986929facaca094877a6d6154473a2e211407111e2a3744515d6a7784909daaaca4978a7d7164574a3e3124170b000a1724303d4a5763707d8686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868683776a5d5044372a1d1100121f2c3945525f6c7885929faba295887c6f6255493c2f221609000000000000020c18242f39434f59616e7a85929fa6b0adabadb3ada194877a6e6154473b2e21140800000000000000000000000000000000000000000003101d293643505c6976838f9ca9afa296897c6f6356493c30231609000000000000000000000000000000000000000000000008131e28323e45515d676f7c87929fa6a2989083786c60574d42382d25303a44505a616d7a85929ea5a69f92877c6f675d51483e32291d140a00000000000000000613202c3945515d677683909ca7b1aaa197918b8886868789897d7063564a3d3023170a00121f2c3945525f6c7885929fabb8a79c918c8b8b8b8b8b8b8b8b8b8b8b8b8b8b8b8c8c8d8e9192999b9fa2aaaca59e9792877e716c61574d42372b21170b0000000714202d3a4753606d7a8693a0ada6998c807366594d4033261a0d00000000000000000000000000000000000000000000000000000b1724313e4a5764717d8a979f9f9f9e9184776b5e5144382b1e110613202c3946535f6c7986929f9f9f9f94877a6d6154473a2e211407111e2a3744515d6a7784909d9f9f9f978a7d7164574a3e3124170b000916232f3c4855616b70797979797979797979797979797979797979797979797979797979797979797979797979797979797979797979797979797771665b4f4236291d1000121f2c3945525f6c7885929faba295887c6f6255493c2f2216090000000000000a141e2935404b55616b75818e97a2ada9a19ea1a9b3a194877a6e6154473b2e21140800000000000000000000000000000000000000000003101d293643505c6976838f9ca9afa296897c6f6356493c302316090000000000000000000000000000000000000000000000020c16202935404b55606a737f8c949faa9f948b7f72695f544a3f332935414c56616c75818e97a1aa9f948c7f736a60554b40362c20170b0200000000000000000714202d3a4753606d7a86939facaea29891857e7b79797b7d7f7b6e6255483b2f22150800121f2c3945525f6c7885929fabb2a5998c7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f8080828486898e92989fa4aca9a19992877e71695f53473e33281c100200000714202d3a4753606d7a8693a0ada6998c807366594d4033261a0d00000000000000000000000000000000000000000000000000000b1724313e4a5764717d8a93939393939184776b5e5144382b1e110613202c3946535f6c7986929393939393877a6d6154473a2e211407111e2a3744515d6a77849093939393938a7d7164574a3e3124170b000714202c38444f5961636c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6a665f554a3e32261a0e00121f2c3945525f6c7885929faba295887c6f6255493c2f221609000000000006111c26303845515d67707d8a939ea9a69e979197a1ada194877a6e6154473b2e21140800000000000000000000000000000000000000000003101d293643505c6976838f9ca9afa296897c6f6356493c30231609000000000000000000000000000000000000000000000000050e18242f39434e58606d78839098a2a69f92867b6e665b50443c323a46525e68707e8a939ea9a2989083786d60584e43392f231a0e05000000000000000000091623303c4956636f7c8999a4afac9f92867b726e6d6d6e70726e695f53473a2e21140800121f2c3945525f6c7885929fabada094877a7272727272727272727272727272727273747577797d81858e939aa3ababa39992867b6e62594f44382c1e140800000714202d3a4753606d7a8693a0ada6998c807366594d4033261a0d00000000000000000000000000000000000000000000000000000b1724313e4a5764717e8686868686868684776b5e5144382b1e110613202c3946535f6c7987868686868686867a6d6154473a2e211407111e2a3744515d6a7783868686868686867e7164574a3e3124170b0004101c28333e474f5557606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060605d5b554d43392d22160a00121f2c3945525f6c7885929faba295887c6f6255493c2f22160900000000000b17232e38424e58606d7984919ea5aa9e948f85919eaba194877a6e6154473b2e21140800000000000000000000000000000000000000000003101d293643505c6976838f9ca9afa296897c6f6356493c302316090000000000000000000000000000000000000000000000000007121d27313c44505c666e7b86929fa5a2989083786c60574d423a44505a616d7a85919ea5a59f92867b6e665c50463d31281d1108000000000000000000000b1824313e4b5764717e8a97abb5a79a8d807469616060616365625f574d42372b1e120600121f2c3945525f6c7885929fabada094877a6d656565656565656565656565656566666768676d70747a81889299a3afaba2989083766b6155483b3025190d01000714202d3a4753606d7a8693a0ada6998c807366594d4033261a0d00000000000000000000000000000000000000000000000000000a1723303c4955616c71797979797979797772675c4f43372a1d1106121f2c3845525e6a75797979797979797976685e5246392d201307101d2936424f5b67717779797979797979716c6155493c3023170a00000b16212c353e44484a53535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353504f4a433b31271c110500121f2c3945525f6c7885929faba295887c6f6255493c2f2216090000000004101c28343f4a545f6a73808d96a1aca2988f82818f9ba8a194877a6e6154473b2e21140800000000000000000000000000000000000000000003101d293643505c6976838f9ca9afa296897c6f6356493c3023160900000000000000000000000000000000000000000000000000010b151f28343f4a545f69717e8b939ea99f948b7f72695f544a414c56616c75818e97a1a89e938b7e71695f544a3f342b1f160c00000000000000000000000c1825323f4b5865727e8b98a5b0a3978a7d706457535354565955534d453c31261a0e0200121f2c3945525f6c7885929fabada094877a6d615858585858585858585858585859595a555c6063686d747e87929fa6b0aa9f948a7d7063564c41362a1e1105000714202d3a4753606d7a8693a0ada6998c807366594d4033261a0d00000000000000000000000000000000000000000000000000000814212d3945505a61646c6c6c6c6c6c6c6b6760564b3f33271b0e04111d2a36424e59636a6c6c6c6c6c6c6c6c6c5e564c41362a1d11050e1a27333f4a555f676a6c6c6c6c6c6c6c64615a5045392d211408000005101a232c33383c3d4646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464644423e3931291f150b0000121f2c3945525f6c7885929faba295887c6f6255493c2f221609000000040d1a242b3844505c666f7c87929fa8a79f92867b838f9ca9a194877a6e6154473b2e21140800000000000000000000000000000000000000000003101d293643505c6976838f9ca9afa296897c6f6356493c302316090000000000000000000000000000000000000000000000000000030d17232e38424d57626c75828f97a1a69f92867b6e665b5045525d68707d8a939ea9a1968e81756c62574d42382e22190d0400000000000000000000000c1926323f4c5965727f8c98a5aea295887b6f62554846484a4c4847423c332a1f15090000121f2c3945525f6c7885929fabada094877a6d61544c4c4c4c4c4c4c4c4c4c4c4c4c4d4d4b5153565d616c717e8a949eaab0a69c8f8276685e5246392d201407000714202d3a4753606d7a8693a0ada6998c807366594d4033261a0d000000000000000000000000000000000000000000000000000004111c28333e48505557606060606060605e5c564e44392e23170b010e1a26313d4751595e5f606060606060605f524c443a3025190d010a16222e39434d555b5d60606060606060575550483e33281c110400000008111a21282c2f30393939393939393939393939393939393939393939393939393939393939393939393939393939393939393939393939393736322d271f170d030000121f2c3945525f6c7885929faba295887c6f6255493c2f2216090000010c16202a36424d57606d78839099a3ab9f958b7f7783909daaa194877a6e6154473b2e21140800000000000000000000000000000000000000000003101d293643505c6976838f9ca9afa296897c6f6356493c3023160900000000000000000000000000000000000000000000000000000006111c26303b45505a616d7a85919ea4a2989083786c60574f59606d7a84919ea5a49a91847a6d615a50453b30261c10070000000000000000000000000c1926323f4c5965727f8c98a5aea194877b6e6154483b3b3d3f3b3a37312a21180e030000121f2c3945525f6c7885929fabada094877a6d6154473f3f3f3f3f3f3f3f3f3f3f3f40414045464c525a616c75828f9ca8b2ac9f93877a6e6154473b2e211408000714202d3a4753606d7a8693a0ada6998c807366594d4033261a0d0000000000000000000000000000000000000000000000000000000c17222c363e45494a53535353535353514f4b443c32281d1206000915202b353f474e5253535353535353535346413a32281e13080006111c27313b434a4f51535353535353534a49453e362c22170c00000000000810161c2023242d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2a2926221c150d05000000121f2c3945525f6c7885929faba295887c6f6255493c2f221609000008131e28323a46535e69727f8c95a0aba3999083787784919eaaa194877a6e6154473b2e21140800000000000000000000000000000000000000000003101d293643505c6976838f9ca9afa296897c6f6356493c30231609000000000000000000000000000000000000000000000000000000000a141e29333f46525e68707d8a929da89f948b7f72695f56616b74818e97a1a79f93887d70685d52483e33291e140a000000000000000000000000000c1926323f4c5965727f8c98a5aea194877b6e6154483b2e30322f2e2b261f180f06000000121f2c3945525f6c7885929fabada094877a6d6154473a3232323232323232323233332e34383a4146505a626f7c8896a0acafa49a8a7e7164574b3e3124180b000714202d3a4753606d7a8693a0ada6998c807366594d4033261a0d00000000000000000000000000000000000000000000000000000005101a242c33393c3e4646464646464644433f39322a20160c0100040f19242d353d42454646464646464646463936302820160c0200000b151f2931393f4244464646464646463e3c39332c241a1005000000000000050b10141617202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020201d1d1a16110b0300000000121f2c3945525f6c7885929faba295887c6f6255493c2f22160900030c19242f3a44505a616e7b86929fa7a89f92877c6f7885919eaba194877a6e6154473b2e21140800000000000000000000000000000000000000000003101d293643505c6976838f9ca9afa296897c6f6356493c3023160900000000000000000000000000000000000000000000000000000000020c18212a36414c56616b74818d96a0a69f92867b6e665d68707d8a939ea9a0958d80736b60564c41362d21180c02000000000000000000000000000c1926323f4c5965727f8c98a5aea194877b6e6154483b2e232622211e1a150e0600000000121f2c3945525f6c7885929fabada094877a6d6154473a2e252525252525252525262623282c30353e47535f6a7784919daab6ac9a8d8073675a4d4034271a0d000714202d3a4753606d7a8693a0ada6998c807366594d4033261a0d0000000000000000000000000000000000000000000000000000000008121a22282d3031393939393939393837332e2820180e0400000008121b242b31363839393939393939392e2d2a251e160e05000000040d171f272e3336373939393939393931302d28221a12080000000000000000000407090a1313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131311100e0a05000000000000121f2c3945525f6c7885929faba295887c6f6255493c2f221609000b151e2935414c56616c75828f98a2aca0968d80736a7985929faca194877a6e6154473b2e21140800000000000000000000000000000000000000000003101d293643505c6976838f9ca9afa296897c6f6356493c302316090000000000000000000000000000000000000000000000000000000000060f1925303a444f59606d79849199a3a2989083786c606d7a84919ea5a3989083796d60594f443a30241b0f0600000000000000000000000000000c1926323f4c5965727f8c98a5aea194877b6e6154483b2e21191514120e09030000000000121f2c3945525f6c7885929fabada094877a6d6154473a2e211919191919191919191a181c1f242b37434e586774808d9aa7b3a89c8f8275695c4f4236291c0f000714202d3a4753606d7a8693a0ada6998c807366594d4033261a0d00000000000000000000000000000000000000000000000000000000000810171c2123242d2d2d2d2d2d2d2b2a27231d160e06000000000009121920262a2c2c2d2d2d2d2d2d2d21201d19130c050000000000050d151c2227292a2d2d2d2d2d2d2d2423211c1710080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000121f2c3945525f6c7885929faba295887c6f6255493c2f22160907121c27303945525d68717e8a949eaaa59e9184796d6c7986939faca194877a6e6154473b2e21140800000000000000000000000000000000000000000003101d293643505c6976838f9ca9afa296897c6f6356493c3023160900000000000000000000000000000000000000000000000000000000000008131e28323e45515d676f7c87929fa79f948b7f726b74818e96a1a69f92867c6f675c51473d32281e12090000000000000000000000000000000c1926323f4c5965727f8c98a5aea194877b6e6154483b2e21150808060200000000000000121f2c3945525f6c7885929fabada094877a6d6154473a2e21140c0c0c0c0c0c0c0c070c10131b26313f4c5865727f8b98a5b2a99c908276695d5043362a1d10000714202d3a4753606d7a8693a0ada6998c807366594d4033261a0d000000000000000000000000000000000000000000000000000000000000050c11141717202020202020201e1d1b17120c0400000000000000080f151a1d1f20202020202020201413110d080200000000000000040b11161a1d1e20202020202020171714110c0500000000000000000000000000000000000000000000000000030608090c0e10111213131212110f0d0b080705020000000000000000000000000000000000000000000000000000000000121f2c3945525f6c7885929faba295887c6f6255493c2f2216090c18232e39424f59606d7a85919ea6a99e93897d70676d7a869aa4afa194877a6e6154473b2e21140800000000000000000000000000000000000000000003101d293643505c6976838f9ca9afa296897c6f6356493c30231609000000000000000000000000000000000000000000000000000000000000020c16202935404b55606a737f8c959fa69f92867b707d89939da89f948b7f726a5f554b40352b20160c000000000000000000000000000000000c1926323f4c5965727f8c98a5aea194877b6e6154483b2e21150800000000000000000000121f2c3945525f6c7885929fabada094877a6d6154473a2e211407000000000000000000040a1824313e4b5764717e8a97a4b1aa9d9083776a5d5044372a1d11000714202d3a4753606d7a8693a0ada6998c807366594d4033261a0d000000000000000000000000000000000000000000000000000000000000000004080a0b1313131313131311110e0b060100000000000000000004090e11121313131313131313070705010000000000000000000000060a0e1011131313131313130b0a080400000000000000000000000000000000000000000000000002050a0f121515181b1d1e1f20201f1f1e1c1a181514120e0905010000000000000000000000000000000000000000000000000000121f2c3945525f6c7885929faba295887c6f6255493c2f221609101c2834404a54606b74818d97a1ada1978e81756b616d7a8794a0b6a194877a6e6154473b2e21140800000000000000000000000000000000000000000003101d293643505c6976838f9ca9afa296897c6f6356493c3023160900000000000000000000000000000000000000000000000000000000000000050e18242f39434e58606d78839098a2a29890827a84919ea5a2978f82776c60584e43392e23190e04000000000000000000000000000000000c1926323f4c5965727f8c98a5aea194877b6e6154483b2e21150800000000000000000000121f2c3945525f6c7885929fabada094877a6d6154473a2e21140700000000000000000003081724313d4a5764707d8a97a3b0a99c908276695d5043362a1d10000714202d3a4753606d7a8693a0ada6998c807366594d4033261a0d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003090e12151b1f21222528292b2c2c2c2c2b2b29272521201e1a14110d0802000000000000000000000000000000000000000000000000121f2c3945525f6c7885929faba295887c6f6255493c2f22160e1b242c3844515c666f7c88939fa9a69e92857a6d61616e7a8794a1ada194877a6e6154473b2e21140800000000000000000000000000000000000000000003101d293643505c6976838f9ca9afa296897c6f6356493c30231609000000000000000000000000000000000000000000000000000000000000000007121d27313d44505c666e7b86929fa69f9490849196a1a59e92857b6e655b50463c30271d110800000000000000000000000000000000000c1926323f4c5965727f8c98a5aea194877b6e6154483b2e21150800000000000000000000121f2c3945525f6c7885929fabada094877a6d6154473a2e21140a0a0a0a0a0a0a0a060b0f131925323e4b5865717e8b98a4b1a89b8e8175685b4f4235281c0f000714202d3a4753606d7a8693a0ada6998c807366594d4033261a0d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002070b0d0d13131313131313130c0c0906010000000000000000000003080b0d0e13131313131313130c0b090601000000000000000000000000000000000000000000000000000000000000000002080d141a1e20262b2e2f323436383939393938373633312e2d2a25201d19130d080200000000000000000000000000000000000000000000121f2c3945525f6c7885929faba295887c6f6255493c2f221617202b37424d57606d7883919aa4aa9f948b7e71685e616e7b8794a1ada194877a6e6154473b2e21140800000000000000000000000000000000000000000003101d293643505c6976838f9ca9afa296897c6f6356493c302316090000000000000000000000000000000000000000000000000000000000000000010b151f28343f4a545f69717e8b939ea69f969196a0a89d938a7e71695e53493f342a1e150b0000000000000000000000000000000000000c1926323f4c5965727f8c98a5aea194877b6e6154483b2e21150800000000000000000000121f2c3945525f6c7885929fabada094877a6d6154473a2e2116161616161616171718171c1f252a36414c5666737f8c99a6b5ab9a8d8074675a4d4134271a0e000714202d3a4753606d7a8693a0ada6998c807366594d4033261a0d00000000000000000000000000000000000000000000000000000000000000000000000000000000000001080e1317191a2020202020202020191816120d070000000000000001080f14181a1b2020202020202020191816120d07000000000000000000000000000000000000000000000000000000000000050d13191f252a2d31373a3c3f41434445464645454442403e3b3a36302d29251e19130c04000000000000000000000000000000000000000000121f2c3945525f6c7885929faba295887c6f6255493c2f22161e29323a47535f69737f8c95a0aca3988f82766c6256616e7b8794a1ada194877a6e6154473b2e21140800000000000000000000000000000000000000000003101d293643505c6976838f9ca9afa296897c6f6356493c30231609000000000000000000000000000000000000000000000000000000000000000000030d17232e38424d57626c75828f97a1a8a09ea0a8a0968e81746c61564d41382d22180c030000000000000000000000000000000000000c1926323f4c5965727f8c98a5aea194877b6e6154483b2e21150800000000000000000000121f2c3945525f6c7885929fabada094877a6d6154473a2e232323232323232323242522282b30353e46525e687683909ca9aea3998a7d7064574a3d3124170a000714202d3a4753606d7a8693a0ada6998c807366594d4033261a0d0000000000000000000000000000000000000000000000000000000000000000000000000000000000020a12191f2326272d2d2d2d2d2d2d2d2625221e18110a0100000000020b131a202427282d2d2d2d2d2d2d2d2625221e18110901000000000000000000000000000000000000000000000000000000060e171e252a30363a3c4347484b4e50515253535252514f4d4b4846423b39353029241e160e070000000000000000000000000000000000000000121f2c3945525f6c7885929faba295887c6f6255493c2f221925303a44505a616e7b86929fa7a79f92867b6e615a54616e7b8794a1ada194877a6e6154473b2e21140800000000000000000000000000000000000000000003101d293643505c6976838f9ca9afa296897c6f6356493c302316090000000000000000000000000000000000000000000000000000000000000000000006111c26303c45505a616d7a85929eabacaaaca3999184796d605a50443b2f261b1006000000000000000000000000000000000000000c1926323f4c5965727f8c98a5aea194877b6e6154483b2e21150800000000000000000000121f2c3945525f6c7885929fabada094877a6d6154473a3030303030303030303031312d33383a41464f59616e7a87939facab9f92867a6d6054473a2d211407000714202d3a4753606d7a8693a0ada6998c807366594d4033261a0d00000000000000000000000000000000000000000000000000000000000000000000000000000000010a141c242b2f3334393939393939393932312e2a231c130a000000010b141d252b303334393939393939393932312e29231b130900000000000000000000000000000000000000000000000000020a1117202930363b4246484e5355585b5c5e5f5f5f5f5e5e5c5a5854524d4746413a3530282019110901000000000000000000000000000000000000121f2c3945525f6c7885929faba295887c6f6255493c2f221f2a36414c56626c76828f98a3aba0958c7f72695f5354616e7b8794a1ada194877a6e6154473b2e21140800000000000000000000000000000000000000000003101d293643505c6976838f9ca9afa296897c6f6356493c3023160900000000000000000000000000000000000000000000000000000000000000000000000a141e2a333f46525e68707d8a99a3aeb7ac9f92877c6f675d51483e32291d140a00000000000000000000000000000000000000000c1926323f4c5965727f8c98a5aea194877b6e6154483b2e21150800000000000000000000121f2c3945525f6c7885929fabada094877a6d6154473d3d3d3d3d3d3d3d3d3d3d3d3e3f3f44464c5259616b74818e99a4afa3998e8175675d5145392c201306000714202d3a4753606d7a8693a0ada6998c807366594d4033261a0d0000000000000000000000000000000000000000000000000000000000000000000000000000000008121c262e363b3f4046464646464646463f3e3a352d251c1107000008131d262f363c404146464646464646463f3e3a352d251b11070000000000000000000000000000000000000000000000020b141b2227323a41464d5254585f626567696b6c6c6c6c6b6a696664615e5754524c46413a322b231b1309000000000000000000000000000000000000121f2c3945525f6c7885929faba295887c6f6255493c2f2227313946525e68717e8b949faaa4999083786d60574d54616e7b8794a1ada194877a6e6154473b2e21140800000000000000000000000000000000000000000003101d293643505c6976838f9ca9afa296897c6f6356493c30231609000000000000000000000000000000000000000000000000000000000000000000000008131e28323a45515c666e7b86929facb7ab9e91847a6d605a50443b2f261b110600000000000000000000000000000000000000000c1926323f4c5965727f8c98a5aea194877b6e6154483b2e21150800000000000000000000121f2c3945525f6c7885929fabada094877a6d615449494949494949494949494a4a4b4c4a5053565e616b707d88939faba69f92877b6e61554b4135291d1104000714202d3a4753606d7a8693a0ada6998d8073665a4d4033271a0d000000000000000000000000000000000000000000000000000000000000000000000000000000020e19242e3840474c4d53535353535353534c4a463f372d23180d01030f1a252f3841484c4e53535353535353534c4a463f372d23180d01000000000000000000000000000000000000000000020b141d262d333e444c52575e61666a6f727476777879797878777573716e6966615e56524c443d352d251b13090000000000000000000000000000000000121f2c3945525f6c7885929faba295887c6f6255493c2f242f39434f59616d7a85929ea6a89f93877c6f665c514854616e7b8794a1ada194877a6e6154473b2e21140800000000000000000000000000000000000000000003101d293643505c6976838f9ca9afa296897c6f6356493c3023160900000000000000000000000000000000000000000000000000000000000000000000050f19242f3a444f59606d79839099a3acaaaca1968e81746c61564d41382d22170c03000000000000000000000000000000000000000c1926323f4c5965727f8c98a5aea194877b6e6154483b2e21150800000000000000000000121f2c3945525f6c7885929fabada094877a6d6156565656565656565656565656575858545b6063686d747d86929aa4a79f948d8073695f53433a2f24180d01000714202d3a4753606d7a8693a0ada69a8d8073675a4d4034271a0d01000000000000000000000000000000000000000000000000000000000000000000000000000007131f2b36404a52585a6060606060606060595751493f352a1e12000814202b36414a53595b6060606060606060595651493f35291e12010000000000000000000000000000000000000000000a141d262f383f4450565e61696e73777b7e81838485868685858482807e7b77736d68615d564f473f372d251b110800000000000000000000000000000000121f2c3945525f6c7885929faba295887c6f6255493c2f2935404b55606b75818e97a1ada1968d80746a60544a4854616e7b8794a1ada194877a6e6154473b2e21140800000000000000000000000000000000000000000003101d293643505c6976838f9ca9afa296897c6f6356493c30231609000000000000000000000000000000000000000000000000000000000000000000020b17212935414c56606b73808d95a0a7a09da0a79d938a7e70685e53493f33271e150b000000000000000000000000000000000000000c1926323f4c5965727f8c98a5aea194877b6e6154483b2e21150800000000000000000000121f2c3945525f6c7885929fabada094877a6d636363636363636363636363636364646567666c6f747a80879298a2a59e958f82786d60574d4231281d130700000714202d3a4753606d7a8693a0ada79a8e8174675b4e4134281b070000000000000000000000000000000000000000000000000000000000000000000000000000000b17232f3b47525c64676c6c6c6c6c6c6c6c65635b51463a2e1c12070b1824303c48535d64676c6c6c6c6c6c6c6c65625b51463a2e1d1207000000000000000000000000000000000000000006111b262f384149505a61686d747b8084888b8e8f919292929291918f8d8b87837f7a736d68605951493f372d231a0e04000000000000000000000000000000121f2c3945525f6c7885929faba295887c6f6255493c2f2f3845515d67707d89939ea9a59e9184796d60584e424854616e7b8794a1ada194877a6e6154473b2e21140800000000000000000000000000000000000000000003101d293643505c6976838f9ca9afa296897c6f6356493c302316090000000000000000000000000000000000000000000000000000000000000000000a141d29333b45525d68707d87939fa69f959095a0a59e92857a6e655b50443c30271d12070000000000000000000000000000000000000c1926323f4c5965727f8c98a5aea194877b6e6154483b2e21150800000000000000000000121f2c3945525f6c7885929fabada094877a7070707070707070707070707070707071727476797c80858d9299a2a19e938f837a6d665c50453c311f160c0100000714202d3a4753606d7a8693a0ada89b8e8175685b4e422f24180c0000000000000000000000000000000000000000000000000000000000000000000000000000000d1926333f4c58646e737979797979797979726d63574a392e23180c0d1a2733404c59646f747979797979797979726d62564a392f24180d01000000000000000000000000000000000000030c17222d384149535b606c717a81868d9196989a9c9e9f9f9f9f9e9d9c999795908c86807a706b625b51493f352c20160c020000000000000000000000000000121f2c3945525f6c7885929faba295887c6f6255493c2d38424e58606d7984919ea5a99e938a7d70675d51463d4854616e7b8794a1ada194877a6e6154473b2e21140800000000000000000000000000000000000000000003101d293643505c6976838f9ca9afa296897c6f6356493c30231609000000000000000000000000000000000000000000000000000000000000000006111c262f3b45505a606d7a849199a49f9490849096a1a1978f82776c60584e43392e23180e0400000000000000000000000000000000000c1926323f4c5965727f8c98a5aea194877b6e6154483b2e21150800000000000000000000121f2c3945525f6c7885929fabb0a3978a7e7c7c7c7c7c7c7c7c7c7c7c7c7c7c7d7d7e7f818385898d92979fa19e97928b82796d685e544a3f332a1f0d040000000714202d3a4753606d7a8693a0ada99c8f837669554b4035291d10040000000000000000000000000000000000000000000000000000000000000000000000000005121e2a36424d5767738086868686868686867f7265544a4034281c10121e2a36424d5767748186868686868686867f7265554b4035291d10040000000000000000000000000000000000000b151e27333f49535b656c737e858e92999ea0a8a9a19e9d9c9b9c9d9fa2aaa7a09d98928d847d726d625b51473e32281e13080000000000000000000000000000121f2c3945525f6c7885929faba295887c6f6255493c333f4a545f6a73808d96a0aca2978f82756c61554b413b4854616e7b8794a1ada194877a6e6154473b2e21140800000000000000000000000000000000000000000003101d293643505c6976838f9ca9afa296897c6f6356493c3023160900000000000000000000000000000000000000000000000000000000000000030d17222d38424d57616c75818e96a1a39890827a84919ea59f948b7f726a5f554b40342820160c02000000000000000000000000000000000c1926323f4c5965727f8c98a5aea194877b6e6154483b2e21150800000000000000000000121f2c3945525f6c7885929fabb8a69a908a8989898989898989898989898989898a8b8b8d8f92979a9f9c9a96918c857f776d675e564c42382e21180e000000000714202d3a4753606d7a8693a0adab9e918478675d5145392c1f1306000000000000000000000000000000000000000000000000000000000000000000000000000714202d3a46525e697784919393939393938f8276665c5144382c1f1214202d3a46525e697784919393939393938f8276675d5145392c201306000000000000000000000000000000000007121d27303944505b656c77808a92979fa3a8a19e999792908f8f8f909298999da0a7a29f9691877f726d62594f443a3024190d0200000000000000000000000000121f2c3945525f6c7885929faba295887c6f6255493c3844505b666f7c87929fa8a69f92857b6e615a50433a3b4854616e7b8794a1ada194877a6e6154473b2e21140800000000000000000000000000000000000000000003101d293643505c6976838f9ca9afa296897c6f6356493c30231609000000000000000000000000000000000000000000000000000000000000010b151f28333f4a545e69717e8a939ea79f92867b707d89939ea69f92867c6f675c51453d32281e1308000000000000000000000000000000000c1926323f4c5965727f8c98a5aea194877b6e6154483b2e21150800000000000000000000121f2c3945525f6c7885929fabb8aba29a979696969696969696969696969696969797989a9c9ea097928f8d89847f7a726c655d554c443a30261c0f06000000000714202d3a4753606d7a8693a0adac9f93867a6d6053473a2d20140a060709070705010000000000000000000000000000000000000000000000000000000000000815212e3b4854616e7b8795a09f9f9f9f9f9285796d6053463a2d201315212e3b4854616e7b8796a09f9f9f9f9f92867a6d6053473a2d20140a00000000000000000000000000000000000c18232e39424f59606c77808d929fa2a9a39f96918c8885838282838385888c91959ea1a8a199938b7f726b61564c4135291f140900000000000000000000000000121f2c3945525f6c7885929faba295887c6f6255493c424d57606c78839099a3ab9f948b7f72695e52473e313b4854616e7b8794a1ada194877a6e6154473b2e21140800000000000000000000000000000000000000000003101d293643505c6976838f9ca9afa296897c6f6356493c3023160900000000000000000000000000000000000000000000000000000000000007121d27313944505b666e7b85929fa5a0958c7f726b75818e97a1a3989083796d60594f443a3025190f060000000000000000000000000000000c1926323f4c5965727f8c98a5aea194877b6e6154483b2e21150800000000000000000000121f2c3945525f6c7885929fabb8b4aba6a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a4a5a7a9a095908583807c78736d67605b534b433a32291e150a00000000000714202d3a4753606d7a8693a0adafa49a897c6f6356493d32271b131314161413110d080200000000000000000000000000000000000000000000000000000003101c28343f4a5465717e8b98a7acabacaea298897c6f6356493c2f24181824313e4b5764717e8a97a8adababada3998a7d7064574a3d31261b0f0300000000000000000000000000000004101c2834404b54606b737f8c929da4a9a299928c847f7b787675757677797b7f848b9297a0a7a49f93887d70685d52453b30251a0e02000000000000000000000000121f2c3945525f6c7885929faba295887c6f6255493c46525e69727f8b959faba3999083776c60564d42352e3b4854616e7b8794a1ada194877a6e6154473b2e21140800000000000000000000000000000000000000000003101d293643505c6976838f9ca9afa296897c6f6356493c302316090000000000000000000000000000000000000000000000000000000000050e18242f39434e58606c78829097a2a3999083786d616d7a85929ea6a0958d80746b60564c41352921180c0300000000000000000000000000000c1926323f4c5965727f8c98a5aea194877b6e6154483b2e21150807040000000000000000121f2c3945525f6c7885929fabb8b0a8a3a09f9f9f9f9f9f9f9f9f9f9f9f9fa0a1a1a3a6a8aa9d90847e7b756f6a66605d555049413a312920170c0300000000000714202d3a4753606d7a8693a0adb6ac998d807366594f44382c201f20212321201d19130c04000000000000000000000000000000000000000000000000000006121f2c3844505c6675828f9ba8a19ea1a8aa998c7f7366554b4035291d1e2a36424d576774818e9aa9a29f9ea2a99a8e817467584e43372b1f120600000000000000000000000000000006131f2c3845515c66707d87939fa4aba29792877f79726e696a696869666c6e72787e859095a0a8a49a91847a6d60574d42362a1e1105000000000000000000000000121f2c3945525f6c7885929faba295887c6f62554943505a616e7b85929fa7a89f92877c6f655b50443b302e3b4854616e7b8794a1ada194877a6e6154473b2e21140800000000000000000000000000000000000000000003101d293643505c6976838f9ca9afa296897c6f6356493c3023160900000000000000000000000000000000000000000000000000000000020c17202935404b555f6a727f8c949fa89f92877c6f665e68717e8a949ea79f93887d70685e52463f332a1e150a00000000000000000000000000060c1926323f4c5965727f8c98a5aea194877b6e6154483b2e21161613100b05000000000000121f2c3945525f6c7885929fabb8a89e97949393939393939393939393939393949597999c9fa095908b87827c746d675e574d453b30281f170e050000000000000714202d3a4753606d7a8693a0adb7aa9d9083776b6054483e342d2c2d2d302e2d29251e160e04000000000000000000000000000000000000000000000000000713202d3a4653606d7985929fa1969196a0a89c908376675d5145392c1f202d3a46525e697784919ea297929297a29e9184786a5f53473a2e211508000000000000000000000000000004101c2834404b54606d79849199a4aea39992857d726d67625f575c5c545b6062666c717b839095a0aaa1968e8174695e52463a2d201407000000000000000000000000121f2c3945525f6c7885929faba295887c6f6255494b55616c75828f98a2aca0968c80736a5f53493f32292e3b4854616e7b8794a1ada194877a6e6154473b2e21140800000000000000000000000000000000000000000003101d293643505c6976838f9ca9afa296897c6f6356493c302316090000000000000000000000000000000000000000000000000000000008131e29323a45515d676f7c87929fa6a0968d80736a5f56616c75828f98a2a49a91857a6d615a50453c30261c110600000000000000000000000810171d26323f4c5965727f8c98a5aea194877b6e6154483b2e262322201c160f070000000000121f2c3945525f6c7885929fabb8a3978c87868686868686868686868686868687888a8c8f92999e9d99938e8881796e695e574d42382e23170c020000000000000714202d3a4753606d7a8693a0adb4aba095897c6f635a50463e3a38393a3c3a3935302820160c020000000000000000000000000000000000000000000000000a1623303d495663707c8998a29e91849196a09f92867a6d6053473a2d20212e3b4754616e7b8796a09f928585929ea196887b6f6255483c2f24190d010000000000000000000000000006131f2c3845515c66727f8c96a0aba89f92877d6f6b605c55534d4f4f4a5053545b60696e7a839198a3a39f92867b6e6154473b2e211408000000000000000000000000121f2c3945525f6c7885929faba295887c6f625549515d67707d8a939eaaa59d9184796d60584e41382d212e3b4854616e7b8794a1ada194877a6e6154473b2e21140800000000000000000000000000000000000000000003101d293643505c6976838f9ca9afa296897c6f6356493c30231609000000000000000000000000000000000000000000000000000000060f1925303a444f59606d79839199a3a49a9184796d6058505a616e7b86929fa7a1978f81756c62574d42382e23170d0400000000000000000008121a22282d323f4c5965727f8c98a5aea194877b6e6154483b3333302f2c272119110700000000121f2c3945525f6c7885929fabada094877a797979797979797979797979797a7a7b7d7f82868b92979e9f9b928d847b6e695e544a3f34281e13080000000000000714202d3a4753606d7a8693a0adaea399928f82766c6158504846454647494746413a32281e1308000000000000000000000000000000000000000000000005111e2a36414c566673808d99aa9a8d8084919ea399897d7063564a3d2f2424313e4b5764717e8a97a89c8f82828f9ca8998c7f7266564c4135291d1104000000000000000000000000000713202d3a4653606d7984919ea8aca1968c80736b6059514b474242423f44464a50575e686e7b86929a99928f8b8073665a4d4033271a0d000000000000000000000000121f2c3945525f6c7885929faba295887c6f62554e58606d7984919ea5a99d93897d70675c51463c2f26212e3b4854616e7b8794a1ada194877a6e6154473b2e21140800000000000000000000000000000000000000000003101d293643505c6976838f9ca9afa296897c6f6356493c302316090000000000000000000000000000000000000000000000000000030c18212a36414c56616b74808d95a0a89f93887d6f675c5146535e69727f8b959fa99e938b7e71695f544a3f34281f160c010000000000000006101a242c34393d3f4c5965727f8c98a5aea194877b6e6154484040403d3b38332b23190f05000000121f2c3945525f6c7885929fabada094877a6d6c6c6c6c6c6c6c6c6c6c656c6d6e6e7073757a7f858f949ea49d9691847b6e665c50443a3024190d0100000000000714202d3a4753606d7a8693a0adac9f9286928a7e716a615a55535153545654524c443a3025190d01000000000000000000000000000000000000000000000714202d3946525e687783909da9978b7e818e9bab998d807366564c4135292a36424d566774818e9aaa998c7f7f8c99ab9c908376685d5245392c20130600000000000000000000000004111d2935414c5564717e8a96a1adaa9e9184796d60594f45403937312d3338393f444d565f6973808c8e8a86827f7b6e6155483b2e221508000000000000000000000000121f2c3945525f6c7885929faba295887c6f625554606a74808d96a1ada1978e81746b60554b40342a1d212e3b4854616e7b8794a1ada194877a6e6154473b2e21140800000000000000000000000000000000000000000003101d293643505c6976838f9ca9afa296897c6f6356493c3023160900000000000000000000000000000000000000000000000000000b151e2a333c46525e68707d8a929da8a1968d80746b60554b424d57606c78839099a3a59f92867b6e665c50443d31281e1308000000000000000c17222c363e45494b4d5965727f8c98a5aea194877b6e61544d4d4d4d4948443d352b21160b000000121f2c3945525f6c7885929fabada094877a6d616060606060606060605b606061626466686d727a828f949ea8a0969083786d60564c4135291d110400000000000714212d3a4754606d7a8793a0ada79a8e818e92867c716c6461605c606063615e564c4135291d1105000000000000000000000000000000000000000000000814212e3b4754616e7a87939fa297887b7e8b98a89d908377685d5245392c2d3a46525e697784919ea298897c7d8999a39f92867a6d6054473a2d22170b0000000000000000000000000613202c3945515d6775828f9ca8aea2988b7e71675d51473d342e2b2622282b2d333b444d57616d7a84817d7a76726e695f53463a2d211407000000000000000000000000121f2c3945525f6c7885929faba295887c6f62555c666f7c87939fa8a69e92857a6d60594f43392e2218212e3b4854616e7b8794a1ada194877a6e6154473b2e21140800000000000000000000000000000000000000000003101d293643505c6976838f9ca9afa296897c6f6356493c302316090000000000000000000000000000000000000000000000000007121c27303c45515b616d7a85919ea4a59e9184796d60594f433b44505b666f7c86929fa7a2989083786d60594f433a2f24190f05000000000005111d28343e48505557595965727f8c98a5aea194877b6e61595959595956544f473d33271c10040000121f2c3945525f6c7885929fabada094877a6d61545353535353535349505353545557565d61686d78828f97a2a89f958c7f73685d5245392c20130700000000000714212e3a4754616d7a8794a0ada296897c879292867e76716e6d666c6d6f6d685e5246392d201307000000000000000000000000000000000000000000030f1c28333f4a5464717e8b9aa49f9285787b8796a09f93867a6d6054473a2d2e3b4754616e7b8796a09f9285797a86929fa3998a7d716453493f33271b0f0300000000000000000000000714212d3a4754606d7a86929facac9f92857a6d60554b403528231d1a171c1f2228323c46525e686d7774706d6765615f574d42372b1e1205000000000000000000000000121f2c3945525f6c7885929faba295887c6f6257606d78839099a4aa9e948a7e71685d52473d30271d15212e3b4854616e7b8794a1ada194877a6e6154473b2e21140800000000000000000000000000000000000000000003101d293643505c6976838f9ca9afa296897c6f6356493c30231609000000000000000000000000000000000000000000000000040d18232e39424d57626d75828f97a1a99e938a7d70675d51473d333f4a545f6a73808c95a0aa9f958c80736b60554c41352921170b02000000000815212d3945505a6164666666727f8c98a5aea194877b6e6666666666666360594f44382c2013070000121f2c3945525f6c7885929fabada094877a6d6154474646464646463f44464747484a4c52565e666d7a85929faba79f92867a6d6054473a2f24180d01000000000714212e3a4754616d7a8794a0ada194877b828f98928a837e7b7979797a7c7a6d6154473a2e21140700000000000000000000000000000000000000000006121f2b3844505b6675818e9bac9c8f82767784919ea4998a7d7064574a3d30313e4b5764717e8a97a89c8f82767783909dab9b8e8174655b5044372b1f120500000000000000000000000a1724303d4a5763707d8a99a3aea89b8e8175675d5143392f23181d1d1d1d1d17202a36414c565e616b6764605d5555534d453c31261a0e02000000000000000000000000121f2c3945525f6c7885929faba295887b6f625f69727f8c95a0aba2988f82756c61564c41352b1e1515212e3b4854616e7b8794a1ada194877a6e6154473b2e21140800000000000000000000000000000000000000000003101d293643505c6976838f9ca9afa296897c6f6356493c302316090000000000000000000000000000000000000000000000010c161f2834404a545f69727e8b949ea9a1978e81756b61554b41352d38424e58606d79839199a4a79f92877d6f675d51453e33291d140a000000000a1723303d4955616c71737373737f8c98a5aea194877b73737373737373706b6054483b2f2216090000121f2c3945525f6c7885929fabada094877a6d6154473a393939392d3337393a3b3b3d41464c545e68727f8c99a8aea2988c7f7266554b4035291d1104000000000814212e3b4754616e7a8794a1ada094877a7d8a959f94908b8886858687897c6f6256493c2f2316090000000000000000000000000000000000000000000613202d394653606c7985929eab998c807374818e9aab9a8d807467564c413636424d566774818e9aaa998c7f7274808d9aab9e9185786c605346392d20130800000000000000000000010d1a2734404d5a6773808d9aabb4aa978a7e7164554b4031272a2a2a2a2a2a2a2a2a25303a444c52545e5b5753514b4846423c332a1f140900000000000000000000000000121f2c3945525f6c7885929faba194887b6e61616e7b86929fa7a79f92867b6e615a50443a3023190c15212e3b4854616e7b8794a1ada194877a6e6154473b2e21140800000000000000000000000000000000000000000003101d293643505c6976838f9ca9afa296897c6f6356493c30231609000000000000000000000000000000000000000000000008131e28313a44515c666e7b86929fa6a69e92857a6d61594f433a2f262f3c45515c666f7c87939fa8a39991847a6d605a50453b2f261c11060000000b1824313e4b5764717e80808080828f9ca9b3a69a8d80808080808080807d706356493d3023160a0000121f2c3945525f6c7885929fabada094877a6d6154473a2e2d2d2d22272b2d2d2e2f30353a424c56616e7b8896a1adaa9d908376675d5145392c201306000000000815222e3b4855616e7b8894a1afa49a867a7883909d9f9c979a9392939a897c6f6256493c2f2316090000000000000000000000000000000000000000000916232f3c4956626f7c8997a2a399897d70717d8a99a49d918477685e5246393a46525e697784919ea298897c6f707d8a99a3a197887c6f6255493c3025190d0100000000000000000004101d2935404b556976828f9ca9aea298887b6e6255483b2f373737373737373737373737323a414647514e4a4745403b3a373128231c140c02000000000000000000000000121f2c3945525f6c7885929faba194877b6e616c76828f98a2aba0958c7f72695e53483e32281e110815212e3b4854616e7b8794a1ada194877a6e6154473b2e21140800000000000000000000000000000000000000000003101d293643505c6976838f9ca9afa296897c6f6356493c3023160900000000000000000000000000000000000000000000010d19242f3a434f59606d78839098a2a99e948a7e71685e52473e31281d2834404b54606b74808d96a1aba0968e81746c61574d42382d22170b0000000f1c2936424f5c6975828c8c8c8c8f949fabb5a99d928d8c8c8c8c8c8c8c807366594d4033261a0d0000121f2c3945525f6c7885929fabada094877a6d6154473a2e212020171b1f202021222429303a47535f697884919eabac9f92867a6d6053473a2d201407000000000815222f3b4855626e7b8895a1ac9f938679707d89939ea6aca49f9f9f95897c6f6256493c2f231609000000000000000000000000000000000000000005111d2a36414c566673808c99a99f92867a6d6d7a86939fa095877a6e6154473b3b4754616e7b8796a09f9285796d6d7a86929fa9998c7f7366564c41362a1d110500000000000000000006131f2c3845515d677885919eabac9f9285796c6053464444444444444444444444444444444444444444444444444444443a38342e261e140a000000000000000000000000121f2c3945525f6c7885929faba094877a6d68717e8a949faaa3999083786d60574d42362c20160c0815212e3b4854616e7b8794a1ada194877a6e6154473b2e21140800000000000000000000000101010101010101010103101d293643505c6976838f9ca9afa296897c6f6356493c302316090101010101010101010100000000000000000000000004111d2935414c55606b73808d959f9fa2978f82756c61564c41352c1f18232e39424f59606d7984919ea5a89e938a7e71695e544a3f33281c0f0300000f1c2936424f5c6975828f9999999c9fa6b0b9aea49d9a9999999999998c807366594d4033261a0d0000121f2c3945525f6c7885929fabada094877a6d6154473a2e2114130b0f1213141415191e2b37424d576a7683909da9afa399897c6f6256493c2f231609000000000916222f3c4955626f7c88959f9f9f9285796b75818e949fa3ababaca295897c6f6256493c2f23160900000000000000000000000000000000000000000713202d3946525e687683909da99c90837667687783909da7978a7e7164574b3e3e4b5764717e8a97a89c8f827666677683909da99d908376685e5246392d2013060000000000000000000714202d3a4753606d7a8696a1adaa9d908377665b505050505050505050505050505050505050505050505050505050505046443f3830261c11060000000000000000000000121f2c3945525f6c7885929faba093877a6d6d7a85929ea6a89f92877c6f665c50453b31241a0e040815212e3b4854616e7b8794a1ada194877a6e6154473b2e21140800000000000000000406070d0d0d0d0d0d0d0d0d0d0d101d293643505c6976838f9ca9afa296897c6f6356493c3023160d0d0d0d0d0d0d0d0d0d0d0a0a080400000000000000000613202c3945515d676f7d87939393939392857b6e615a50443a30231a121d27303d45515d67707d8a939393939392857b6e665b5044382b1f120600000f1c2936424f5c6975828f9c9f9fa0acafb5bdb1a9a3a19f9f9f9f9f998c807366594d4033261a0d0000121f2c3945525f6c7885929fabada094877a6d6154473a2e21140c0c0c0c0c0c080d111a2631424f5c6975828f9ca8b5ab968a7d7063574a3d3024170a00000000091623303c4956636f7c89939393939285786b6d79828d92999c9e9f9f95897c6f6256493c2f23160900000000000000000000000000000000000000000714212e3a4754616d7a86939fab998c8073666673808d99aa9a8e817467574d42414d566774818e9aaa998c7f72666673808c99aa9f93867a6d6154473a2d22170b0000000000000000000815222e3b4855616e7b8894a9b2a99c8f837669545d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d5d53504a42382e23170b0000000000000000000000121f2c3945525f6c7885929fabaa93867a6d74818e97a1aca1968d80736a5f544a3f33291f1208000815212e3b4854616e7b8794a1ada194877a6e6154473b2e211408000000000001070c1013141a1a1a1a1a1a1a1a1a1a1a1a1d293643505c6976838f9ca9afa296897c6f6356493c30231a1a1a1a1a1a1a1a1a1a1a1a171614100b050000000000000714212d3a4754606d7a84868686868686867f71695e52483e32281e110b151e2935414b55616b75818686868686868682796c605346392d20130600000f1c2936424f5c6975828f939393939fa4abb5a99f97949393939393938c807366594d4033261a0d0000121f2c3945525f6c7885929fabada094877a6d6154473a2e21191919191919191a191d202935414c566976838f9ca9b1a4978b7e7164584b3e3125180b000000000a1723303d4a5663707d86868686868684786b676d7980868c8f91929291897c6f6256493c2f23160900000000000000000000000000000000000000030f1b27333f495364717e8a99a4a399897d706363707d8998a39e918477695e534646525e687784919ea298897c6f6263707c8998a3a4998a7e7164544a3f33281c0f0300000000000000000916232f3c4956626f7c8995a2afa89b8f82756a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a605c544a3f34281c100300000000000000000000121f2c3945525f6c7885929faba3988679707d89939da9a59e9184796d60584e42382e21170d00000815212e3b4854616e7b8794a1ada194877a6e6154473b2e21140800000000030b12181c1f2027272727272727272727272727293643505c6976838f9ca9afa296897c6f6356493c30272727272727272727272727272423201c17100800000000000613202c3945515d676d7879797979797979716d62574d42362c20160c030c18242f3a434f59656f7579797979797979766c665b5044382b1f120600000f1c2936424f5c69758286868686879399a4afa3978d8786868686868686807366594d4033261a0d0000121f2c3945525f6c7885929fabada094877a6d6154473a2e252525252525252626252a2d313946525e687784919daab1a4978a7e7164574b3e3124180b000000000916222f3c4854606b707979797979797872685d676d747b7f8284858685827b6e6155483b2e2215080000000000000000000000000000000000000005121f2b3744505b6575818e9bab9f92867a6d60606d7986929fa096877b6e6154484754616e7a8796a09f9285796d60606d7986929fab9b8e8175665b5044382b1f120600000000000000000a1723303d4a5663707d8996a3b0a79b8e8177777777777777777777777777777777777777777777777777777777777777776d665c5044382b1f120600000000000000000000121f2c3945525f6c7885929fab9f9285797984919da5a99e938a7d70675d51463c30261c0f0500000815212e3b4854616e7b8794a1ada194877a6e6154473b2e211408000000030d151d23292c2d34343434343434343434343434343643505c6976838f9ca9afa296897c6f6356493c343434343434343434343434343431302d28211a11080000000004111d2935414c555d606b6c6c6c6c6c6c6c65625a50453b30241a0e040007131d28313e47535d65686c6c6c6c6c6c6c69605b544a3f33281c0f0300000f1b2835414d5a657075797979797987939faca194877b79797979797979736e63574b3f3226190c0000121f2c3945525f6c7885929fabada094877a6d6154473a323232323232323233333036393c434c56616d7a86929facb3a9968a7d7063574a3d3024170a000000000713202c38444f5960636c6c6c6c6c6c6b6860555c60696e737678797978766e695f53463a2d211407000000000000000000000000000000000000000613202d394653606c7885929ea99c908376675d5c6776828f9ca8988b7e7165584b4b5764717e8a97a89c8f8275665c5c6776828f9ca99e9285796c605346392d20130800000000000000000a1724313d4a5764707d8a97a3b0ab9e92858383838383838383838383838383838383838383838383838383838383838383786d6053463a2d20130700000000000000000000121f2c3945525f6c7885929fab9e928578808c96a0aca2978e81756b61554b40342a1e140a0000000815212e3b4854616e7b8794a1ada194877a6e6154473b2e2114080000010b151f272f34383a40404040404040404040404040404043505c6976838f9ca9afa296897c6f6356494040404040404040404040404040403d3c39332c231a1005000000010d19242f3a434c51545e60606060606060585650483f33291f12080000010c161f2c35414b53595b606060606060605c53504a42382d22170b0000000d1925313d49545e65696c6c6c677784909daaa194877b6e6c6c6c6c6c6c66635c52473b2f23170a0000121f2c3945525f6c7885929fabada094877a6d6154473f3f3f3f3f3f3f3f3f3f40414146474e555d68717e8b99a3afada297887b6e6155483b2e2215080000000004101c27333d474f54566060606060605e5c564b51575e6166696b6c6c6b69615f574d42362a1e1205000000000000000000000000000000000000000916222f3c4955626f7c8897a1ab998c807366555566727f8c99a99b8e817568574e4d566774818e9aa9988c7f7265545566727f8c99a9a197897c6f6256493c3025190e02000000000000000b1724313e4a5764717d8a97a4b0ada197929090909090909090909090909090909090909090909090909090909090909086796c605346392d20130600000000000000000000121f2c3945525f6c7885929faa9e91847b86929fa8a69f92857a6d61594f43392f22190c020000000815212e3b4854616e7b8794a1ada194877a6e6154473b2e211408000007121d2731394045474d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d505c6976838f9ca9afa296897c6f63564d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4a49443e352c21170b0000000008131e28313a41454751535353535353534b4a453f362d20170d00000000040d1a232f3941484d4e535353535353535046443f382f261c11060000000915212c37424c545a5c6060556774818e9aa7a194877b6e6160606060605957524a40352a1f13070000121f2c3945525f6c7885929fabada094877a6d61544c4c4c4c4c4c4c4c4c4c4c4d4d4c52545860676d7a84919eabb5ab9f9285796c605346392d20130600000000000b16212b353d44484a53535353535351504b40454d5254595c5e5f5f5e5c55534d453b31261a0e0200000000000000000000000000000000000004111d2935414c5666737f8c99a9a399897c70635655626f7c8897a29e9184786a5f53525e687784919da197887c6f625556626f7c8997a2a9998c807366564d41362a1e1105000000000000000b1724313e4a5764717d8a97a4b0b3a9a19e9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d928679655b5044372b1f120500000000000000000000121f2c3945525f6c7885929faa9d9083839099a3aa9f948b7e71685e52473e31281d1007000000000815212e3b4854616e7b8794a1ada194877a6e6154473b2e21140800000c18232f39434b51535a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5c6976838f9ca9afa296897c6f635a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a57554f473e33281c1004000000010c161f282f35393a45464646464646463e3d3a342d241b0e05000000000008111d272f373d404246464646464646433938332d261d140a0000000004101b26303942494d4f53535864717e8b97a9a194877b6e6154535353534d4b4740382e24190e020000121f2c3945525f6c7885929fabada094877a6d61585858585858585858585859595a565e61646a6f79828f96a1adb1a79b8e8275665b5044382b1f12060000000000050f19232b33383c3d46464646464645433f343b4246484c4f515253524f4846423b33291f1409000000000000000000000000000000000000000713202c3945525d687683909ca99f9286796d605353606c7985929ea196887b6e625554616e7a8796a09e9285786c605353606d7985929faa9d908377685e5246392d201407000000000000000a1724303d4a5763707d8a96a3b0b8b0aba99f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9faaaaaaaaaa9f9285786c5f493f33271b0f0300000000000000000000121f2c3945525f6c7885929fab9f928790949faba3988f82766c62564c41352c1f160c00000000000815212e3b4854616e7b8794a1ada194877a6e6154473b2e2114080004101c2934404b555c606767676767676767676767676767676767676976838f9ca9afa296897c6f6767676767676767676767676767676767676461594f44392d20140800000000040d161e24292c2d383939393939393932312e29221b1209000000000000000b151d252c31343539393939393939362d2b28221c140b02000000000009141e2730373d4142464855626e7b8897a1a194877b6e615448464646403f3b352e261c1207000000121f2c3945525f6c7885929fabada094877a6d65656565656565656565656566666769686d71757c838f949ea8b2aa9f95897d7063544a3f33281c0f0300000000000008111921272c2f303939393939393837332930363a3b404345464645433b3a36312921170d03000000000000000000000000000000000000000714212d3a4754606d7a86929fa99c908376675d51505b6675828e9ba9988b7e7265535764717e8a97a89b8e8275655b50505c6675828f9ba89f93877a6e6154473b2e23180c000000000000000a1623303d495663707c8996a3afb0a69f9c93939393939393939393939393939393939393939393939393a0a8b2ab9e9185786b5e52452d22170b0000000000000000000000121f2c3945525f6c7885929faba39992999fa6a79f92867b6e625a50443a30231a0d0400000000000815212e3b4854616e7b8794a1ada194877a6e6154473b2e2114080006131f2c3845515c676d7373737373737373737373737373737373737376838f9ca9afa296897c73737373737373737373737373737373737373706c6155493c3023160a0000000000040c13191d20212b2d2d2d2d2d2d2d2524211d1811090000000000000000030b131a202527282d2d2d2d2d2d2d29201f1c17110a02000000000000020c151e262c3135363a47535f697885929ea194877b6e6154483b393933322f2a241c130a00000000121f2c3945525f6c7885929fabada094877a7272727272727272727272727272737475777a7e828890959ea6b0aca3989083766b605442382d22170b0000000000000000080f161c2022232d2d2d2d2d2d2b2a271f252a2d2e333638393938362e2d2a261f170f0600000000000000000000000000000000000000000b1724313e4a5764717d8a99a3aa998c807366554b4a5465727e8b98a89b8e8275655b566774818e9aa9988b7e726553494a5465727f8b98a9a49a8b7e7165544a4034281c10040000000000000915222f3c4855626f7b8895aab3ab9f948f8686868686868686868686868686868686868686868686868996a0acaa9d9083776a5d5044372a1d060000000000000000000000121f2c3945525f6c7885929fababa39fa3abaca0958c7f73695f53483f32291e11080000000000000815212e3b4854616e7b8794a1ada194877a6e6154473b2e211408000714202d3a4753606d7a808080808080808080808080808080808080808084919eabb4a89b8e81808080808080808080808080808080808080807e7064574a3d3124170a00000000000001080d1113141e20202020202020181715110c060000000000000000000002090f14181b1b202020202020201d13120f0b06000000000000000000030c141b2125282b37424d576975828f9ca194877b6e6154483b2e2d2626231f19120a0100000000121f2c3945525f6c7885929fabb2a5998c7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f80808284868a8f949da0a7b0aaa39a92867c6f62594f442f261c1106000000000000000000050b101316172020202020201e1d1b141a1e202126292b2c2c2b2922211e1a140d06000000000000000000000000000000000000000006121f2b37434e586774818e9aaba398897c706356494855616e7b8896a19e9285796c605e687784919da196887b6e6255484855626f7b8897a1ac9b8e8275665c5144382c1f12060000000000000714212e3a4754616d7a8798a2aea99c8f8279797979797979797979797979797979797979797979797984919eaaa99c8f8276695c4f4336291c100300000000000000000000121f2c3945525f6c7885929fabb5afacafafa49a9083786d60574d42362d20170d000000000000000815212e3b4854616e7b8794a1ada194877a6e6154473b2e211408000714212d3a4754606d7a878d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d9196a1adb6aa9e938e8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8074675a4d4134271a0e00000000000000000104060712131313131313130b0b0905010000000000000000000000000004080c0e0f131313131313131006060300000000000000000000000002091015191a2631404c5966737f8c999f94877b6e6154483b2e211a1917130e07000000000000121f2c3945525f6c7885929fabb8a79c918c8b8b8b8b8b8b8b8b8b8b8b8b8b8c8c8d8f9193999c9ea6abaca7a09892887e716a5f53473d331d140a0000000000000000000000000407090a13131313131312110f090e121415191c1e1f201f1c1514120e09030000000000000000000000000000000000000000000815212e3a47535f6a7884919eab9f9286796d60534746535f697884919ea197887c6f62616e7a8796a09e918478695f534747535f6a7885919eab9f9285796d6053463a2d2013090000000000000713202d3946525d687885929fabaa9d9084776c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6d7986929faca79a8d8174675a4e4134271b0e0100000000000000000000121f2c3945525f6c7885929fabb8bbb9b2a99f93887c6f665c51453c31241b0e05000000000000000815212e3b4854616e7b8794a1ada194877a6e6154473b2e211408000714212d3a4754606d7a87939a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9ea1a8b2baafa59e9b9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a9a8d8074675a4d4134271a0e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000409091623303d495663707c89999393877b6e6154483b2e2115080a070200000000000000121f2c3945525f6c7885929fabb8ada39c999898989898989898989898989899999a9c9e9fa4abaaaba8a09e9590867e716c61584e43352b210b020000000000000000000000000000000006060606060605040200020507080d1012131312100807050200000000000000000000000000000000000000000000000915222f3c4855626f7c8896a1a99c8f8376675c5145424d576774818e9aa9988b7f726564717e8a97a89b8e817568574d42434e586875818e9ba8a298897c706356493d31251a0e02000000000005111d2935414c566a7683909da9ab9f928578695e606060606060606060606060606060606060626e7b8899a3afab988b7f7265584c3f3225190c0000000000000000000000121f2c3945525f6c7885929fabacacacada1968d81746b60544a40332a1f120900000000000000000815212e3b4854616e7b8794a1aca194877a6e6154473b2e211408000714212d3a4754606d7a8793a0a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6abadb2acacacafaaa8a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a69a8d8074675a4d4134271a0e000000000000000000000000000000010507070a0d101112131312110f0d0a0706030000000000000606060606060600000000000000000000000000000000000000000000000714202d3a4753606d7987868686867b6e6154483b2e21150800000000000000000000121f2c3945525f6c7885929fabacacada7a5a5a5a5a5a5a5a5a5a5a5a5a5a5a5a6a7a8a9a8a6a8a19e9a96918b837c716c615a50463c32231a0f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004111d2935414b5566727f8c99a9aa998c7f7366554b403e4b5764717e8a9aa49b8f8275666774818d9aa8988b7e7165584b3e3e4b5865717e8b98a8aa9a8d807367574d42362a1e12050000000000010d192430414e5a6774818d9aabada297877b6e6154535353535353535353535353535353535764717d8a97abaea399897c706356493d3023160a0000000000000000000000121f2c3945525f6c7885929f9f9f9f9fa59e91847a6d60594f42392e21180e0000000000000000000815212e3b4854616e7b87949f9f9f94877a6e6154473b2e211408000714212d3a4754606d7a87939f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9a8d8074675a4d4134271a0e0000000000000000000000000002080d111314171a1d1e1f20201f1e1c1a161312100c06000507071313131313131307070401000000000000000000000000000000000000000613202c3945515d6775797979797976695e52463a2d20140700000000000000000000121f2c3945525f6c7885929f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9fa39f9f9e9d9c9b999796918e89847e786f6a615a50483e342a201108000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000613202c3945515d6776838f9ca9a398897c6f6356493c3a4754616d7a87939f9f9285796c687784919da096877b6e6154483b3b4854616e7b8796a0aa9d908477695e53463a2d211407000000000000081724313e4a5764717e8a99a4afa9978b7e7164564d41464646464646464646464646434f596774818e9aa7ac9f92867a6d6053473a2d2014070000000000000000000000121f2c3945525f6c788592939393939393938a7e71685d52463d30271c0f060000000000000000000815212e3b4854616e7b879393939393877a6e6154473b2e211408000714212d3a4754606d7a87939393939393939393939393939393939393939393939393939393939393939393939393939393939393939393938d8074675a4d4134271a0e000000000000000000000003090e13191d20212427292b2b2c2c2c2b292723201f1c17110d111314202020202020201413110d0802000000000000000000000000000000000004111d2935404b555d6a6c6c6c6c6c6c5e574d42362a1e120500000000000000000000121f2c3945525f6c788592939393939393939393939393939393939393939992929291908e8c8a8884817d78716d66605850483e362d22180e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a4754606d7a86929fac9f9286796d6053463a3946525e687783909da297887c6f6e7a8796a09e918477695e53463a3a46535e697784919eaaa095877b6e6154483b2e23180c0000000000000714212e3a4754616d7a86939faca89b8e8175685e52463c313939393939393939313a4854606b7884919eaba99d908376675d5145392c1f13060000000000000000000000121f2c3945525f6c7885868686868686868681756c61564c41342b1e150b000000000000000000000815212e3b4854616e7b868686868686867a6e6154473b2e211408000714212d3a4754606d7a8686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868686868074675a4d4134271a0e00000000000000000000060b151a1e25292d2e3134363738393938383633302d2c28231c191d20212d2d2d2d2d2d2d21201d19130c0400000000000000000000000000000000010d18242f3a434b515e5f606060605f524d453b30251a0e0200000000000000000000121f2c3945525f6c7885868686868686868686868686868686868686868686868585848381807d7b7874706c66605c544e463e362d241b100600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1724313d4a5764707d8a99a3a99c8f8376675c51453836414c566773808d9aa9988c7f72717e8a97a89a8e817467574d423636424d576774818e9aaca7988b7e7265554b4034281c100400000000000713202d3946525e6876838f9ca9ac9f92867b6e61584e433a322c292424292c323a434e58636f7c8996a1aca6998c7f7266554b4035291d10040000000000000000000000121e2b3844515d6973787979797979797979756f655a50433a2f22190c03000000000000000000000714212d3a46535e69767979797979797976685e5246392d201407000713202c3945525d6876797979797979797979797979797979797979797979797979797979797979797979797979797979797979797979797979746e64584c3f33261a0d0000000000000000020a111720262b3035393a3d404344454646454442403d3a38342e2a25292d3939393939393939392c29241e160e040000000000000000000000000000000007131d28313a40454753535353534846423b33291f14090000000000000000000000121e2b3844515d69737879797979797979797979797979797979797979797979797877767573716e696763605b54504a423d342d241b1209000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006121f2b37434e586774818d9aabaa998c7f7366554b4034303d4a5663707d8998a39b8f827574808d9aa8978a7e7164574b3e31313e4a5764717e8a9aa4a89c8f8275675c5145382c1f1306000000000005111d2a36414c5665717e8b97a1ada3998d80736a5f554c443d39352f2f35393d444c56606a75828f9ca8ab9f94887b6e6155483b2f24180c000000000000000000000000101c2835414c5761696c6c6c6c6c6c6c6c6c68655d54483e31281e1007000000000000000000000005121e2a36424d575e6c6c6c6c6c6c6c6c6c5e564c41362a1e11050004111d2935414c565d6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c67645c52473c3023170b00000000000000030b141b222731373a4146474a4d505152535352514f4d4946443f38363035394646464646464646463935302820160c02000000000000000000000000000000010c161f282f35393a46464646463b3a36302921170d020000000000000000000000101c2835414c5761696c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6b6a69686664615f575653504a443f38302b221b12090000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000814212e3a47535f6a7884919eaba298897c6f6356493c2e2d3a4753606d7986929f9e9285797683909da095877a6e6154473b2e2e3a4754616d7a87939fac9f9285796d6053463a2d2013090000000000010d1925303a4753606d7985919ea8ab9f92867c6f675e564f47454041414045474e565d686f7c87939faca69c8f8276695f53463a2d1d12070000000000000000000000000c1824303b464f575d5f60606060606060605c59544b42362c1f160c000000000000000000000000020e1a25313b454d535f606060606060605f524c443b3025190e0200010d19242f3a444c525f6060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060605a58524a40362b1f1307000000000000030d151d262d333c42474c5254575a5c5e5e5f5f5f5e5c5a5653504a46413a414653535353535353535345413a32281e130800000000000000000000000000000000040d161d24292c2d39393939392e2d2a251f170f050000000000000000000000000c1824303b464f575d5f6060606060606060606060606060606060606060605f5f5f5e5d5b595755534d4946443f38342e261e191009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000815222f3b4855626e7b8896a1ac9f9286796d6053463a2d2c3845515d6776838f9ca197887b7986929f9d918477685e5246392d2d3946525e687784909daaa298897d7063564a3d31261a0e02000000000008131f2c3845515c67727f8c96a0aba3989183796d68605953514b4e4e4b51535860686d7a84919aa4aa9f94897d7063574d42362a1e0b0100000000000000000000000008131f29343d464c515253535353535353534f4d49423930241a0d040000000000000000000000000009141f29333b424648535353535353535346413b32291e140800000008131e28323a4145535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353535353534d4c4740382f24190e030000000000010b151f272f383f444e53565e616467696a6b6c6c6b6b696663605c54524c444c525f606060606060605f524c443a3024190d0100000000000000000000000000000000040c13181d20202c2d2d2d2d21201e1a140d050000000000000000000000000008131f29343d464c515253535353535353535353535353535353535353535353525251504e4d4a4846423d3938332d28231c150c070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004101d2935404b5565727f8c98a8a99c8f8276665c5145382c2935404b5566737f8c99a9978b7e7c8998a39a8d817467564d41362a2a36414c566774808d9aabaa9a8d807467574d42372b1e1205000000000004101c2934404b55606d79849199a3aaa09590837a706b64605d555b5b555d60636a6f7a828f96a0aca3988f82766b6055453b31261a0e00000000000000000000000000020d18222b343b414445464646464646464642413d3730271e12080000000000000000000000000000030d17212931363a3b464646464646463b3936302920170d02000000010c1620282f353946464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646413f3c362f261d120800000000000007121d273139414950575f62686d7073767778797978777573706d66615e5650565d6c6c6c6c6c6c6c6c6c5d564c4135291d1104000000000000000000000000000000000001070d11131420202020201514120e09020000000000000000000000000000020d18222b343b414445464646464646464646464646464646464646464646464645444342403e3b3a36312d2b28221c17110a03000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006131f2c3845515d6776828f9ca9aa998c7f7366544b403428242f3c4956626f7c8997a29a8d817f8b98a49a8a7d7164574a3e302525303d4a5763707d8a99a3aa9e918477695f53463a2d2114070000000000000c18232f3945515c67707d87929fa4a79f9590847d75706d6769676869676d70757c848f949fa8a49f92867c6f62594f44332a1f1409000000000000000000000000000006101922293035383939393939393939393534312c261e150c00000000000000000000000000000000050f171f252a2d2e393939393939392e2d2a251e170e050000000000040d161e24292c393939393939393939393939393939393939393939393939393939393939393939393939393939393939393939393939393433302b241d140b010000000000000c18232f39434b535b606a6e747a7d808384858686858482807c79736d68615a5d68767979797979797976685d5245392c2013070000000000000000000000000000000000000001040607131313131308070502000000000000000000000000000000000006101922293035383939393939393939393939393939393939393939393939393837363533312e2d2a26201f1c17110c06000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714202d3a4753606d7986929faca298897c6f6356493c2e23202d3a4653606d7985929f9d9083818e9b9f93877a6d6154473a2e21212d3a4754606d7a86929faca096887b6e6155483b2f24180c00000000000007121d2834404b55606b727f8c929da4a79f969189827d7a7675747475777a7d828991969fa6a49d928b7f726a5f53473d3321180e030000000000000000000000000000000710181f24282b2c2d2d2d2d2d2d2d2d292825211b140c030000000000000000000000000000000000050d141a1e21212d2d2d2d2d2d2d21201e19140d0500000000000000040c13191d202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2726231f19120b0200000000000004101c2934404b555c656c737b81868a8d8f9191929292918f8d8985807a716c64616d7a868686868686867a6d6054473a2d21140700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000710181f24282b2c2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2c2c2c2b2a28262422211e1a13120f0b060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1724303d4a5763707d8a98a3ac9f9285796d6053463a2d201f2b3844505c6675828f9b9f928784919e9d908377685e5246392d20202c3945515d677683909da9a8988b7f7265554b4035291d10040000000000010c18232e39434f59636d74808d929fa2a8a09e948f8a86838281818283868a8f949ea0a8a29f928d80746d62584e43352c210f060000000000000000000000000000000000060d13181c1e1f20202020202020201c1b19151009020000000000000000000000000000000000000003090e121415202020202020201414110e080200000000000000000001080d1113142020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020201a1a17130e0801000000000000040e18222c3845515c676d7780878e92999a9c9d9e9f9f9e9e9c9997928c857e736e616e7b88939393939386796c605346392d2013060000000000000003060809131313131313130b0a08050000000000000000000000000000000000000000000000000000000000060d13181c1e1f202020202020202020202020202020202020202020201f1f1e1d1b1a171514120e0906030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005121e2a36424d576774808d9aaaa99c8f8276665c5144382c1f1c28343f4a5465727e8b98a399929196a19a8d807367564c4135291d1d2935414b556673808c99aaa99c8f8276675d5145392c1f130600000000000007121d27303d47515b606c77808a92979fa3a69e9c9992908f8e8e8f9092999c9ea6a49f98928b80776c605b51463c31231a0f0000000000000000000000000000000000000002080c10121213131313131313130f0e0c0904000000000000000000000000000000000000000000000002050708131313131313130807050200000000000000000000000000010407071313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313130e0d0b070300000000000000000a15202c38444f59606d79818c939a9fa3aba9a8aaa29f9e9e9e9fa29e97928a80746e6f7b88959f9f9f928579655b5044372b1f12050000000000040a0f13151620202020202020181715110c060000000000000000000000000000000000000000000000000000000002080c10121213131313131313131313131313131313131313131313131211100f0d0b08070502000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000714212d3a46535f697784919eaaaa998c7f7266544a4034281c17232e3b4855626e7b8896a1a39f9ea1a3998a7d7063574a3d30251918242f3d495663707c8998a2ac9f92867a6d6053473a2d20140a000000000000000b151e2b353f44505b656c737e858e92999ea1a8a39f9d9c9a9b9c9d9fa3a9a19e9a938f867e746c655b50493f342a201108000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030f1b26323c4854606b74818e939fa4acaba39f9b979892919192939a999d9f928d80746f7c8996a2ab9e9285786b5f493f33271b0f0300000000070f151b1f22222d2d2d2d2d2d2d2424211d171009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000815222e3b4855616e7b8896a0aca298897c6f6256493c2e231814212e3a47535f697884919eabacabac9f92867a6d6054473a2d211413202d3a4653606d7986929faca3988a7d7063574a3d31261a0f02000000000000030c192327333f49535b606c717a81878d9196989b9c9e9f9f9f9f9e9c9b9897928d87827b716c605b53493f372d22180e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006131f2b37434e5863707d89939da5afa8a199928e8a878584848586888c90959e928b7f727d8996a3ab9e9185786b5e52452d22170b0000000007101920272b2e2f3939393939393931302d28221b120900000000000000000000000000000000000000000000010406070a0d0f11121313131211100e0c09080603000000000000000000000000000000000000000000000000000002070a0c0d13131313131313131313131313131313131313131313131313131313131313131313100f0d090500000000000000000000000000000000000000000000000000000004101c2834404b5565727f8b98a89f9f9285796d6053463a2d2013121e2b37424d576874818e9b9f9f9f9f9d908376675d5145392c2013131f2c3845515c6776828f9c9f9f9a8d817467584e43372b1f120600000000000000071117222d384149505a61686e747b8084888b8e90919292929291908e8c8985817b756e69625a504941382d251b1006000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000815212e3b47535f6a7683909da5afaaa1969187817d7a79787778797c7f838b919792877c7d8a97a3ab9e9184786b5e5145382b1e06000000040f19222b32373b3c464646464646463e3d39342c241b10060000000000000000000000000000000000000001070d101314171a1c1d1f1f20201f1e1d1b181515120f0a050200000000000000000000000000000000000000000000070e1317191a202020202020202020202020202020202020202020202020202020202020202020201c1c1915100a020000000000000000000000000000000000000000000000000006131f2c3845515c6775828f939393938f8276665c5044382c1f120e1a26313e4b5764717e8a9393939393938d807366554c4135291d11101c2834404b5566727f8c939393939184786a5f53473a2e211408000000000000000006111b262f383f4450565e61696e73787c7f818384858686858483817f7c79746e6a615e5750443f382f261b130900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000916222f3c4955626f7c88959fabaea29891847c75706d686b6b666d6f73787e85919590837e8a97a4ab9e9184786b5e5145382b1e120500000a15202b343c434749535353535353534b49453e362c22170c0000000000000000000000000000000000050b1012181d20202326292a2c2c2d2c2c2b29282522211f1b15120e0903000000000000000000000000000000000000010a12191f2326262d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d292825211b140c040000000000000000000000000000000000000000000000000713202d3a4653606d79868686868686867f7266544a3f34281c100914212e3b4754616e7a86868686868686867d7063564a3d2f24190d0c18232e3c4956626f7c868686868686867b6e6255483b2f2215080000000000000000000a141d262d333e444c52575e61656c6f7274767878797978787675726f6d66625f58534d453f332d261d140a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003101c28343f4a546673808d99a7b1ab9f92867c6f6a64615e56545c6062666c717b8391959083909daaaa9e9184776b5e5144382b1e110500030f1b27323c464e545560606060606060575550483e34281d11050000000000000000000000000000040a0f161c1d24292c2d303335373839393939383634322f2e2b26211e1a140e0902000000000000000000000000000000000a131c242a2f3233393939393939393939393939393939393939393939393939393939393939393939393635322c261e160c02000000000000000000000000000000000000000000000006131f2c3845515c676d79797979797979726d635742382e23170c0714202d3946525e68767979797979797979706b6054483c2f1e13080715222e3b4754606a6f79797979797979766a5f53473a2e211408000000000000000000020b141b2227323b41464d53535b60626568696b6c6c6c6c6b69686562605c54534e46423b3327221b140b02000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006121f2b3844505c667683909da9afa3998c80736a605854524c4a5153545b60696e7a8491959095a0abaa9e9184776b5e5144382b1e11050006131f2b37434e5860626c6c6c6c6c6c6c64615a5045392d21150800000000000000000000000000060c161b21272c2f35393a3d40424445464646454443413f3c3b37322d2a251f19140d05000000000000000000000000000007121c262e353b3f404646464646464646464646464646464646464646464646464646464646464646464643413d3830281e140a000000000000000000000000000000000000000000000004101c2834404b555c606c6c6c6c6c6c6c66635b514630261c110605111e2a36414c565e6c6c6c6c6c6c6c6c6c6360594f44382c200c0106131f2b37434e5860626c6c6c6c6c6c6c6c5f584e43372b1f120600000000000000000000020a1117202930363b424649505355585b5d5e5f5f5f5f5e5d5b595653504a47433c3631292117110a020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000713202d3a4653606d7986929facac9f92867a6d61584e4746414044464a50575e686f7c87929da0a7b1aa9e9184776b5e5144382b1e1105000815222e3b4754606a7679797979797979716c6155493d3024170a0000000000000000000000030a111721272c3338394045474a4d4f50525253535251504e4b4847433c3a36312a251f170e06000000000000000000000000020e19242e3840474b4d535353535353535353535353535353535353535353535353535353535353535353534f4e49423a30261b100500000000000000000000000000000000000000000000000c18232e39434b51535f606060606060595751493f351e150a00010d1925303b444c525f606060606060606056544f473d33271c1000030f1b27323d464e54566060606060606055534e463c31261a0f02000000000000000000000000060e171e252a3136383f4446494c4e50515253535251504e4c4946443f3837312a251f170f0600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000815222e3b4855616e7b8898a3aea99c908376685e52463c393634383a3f444d56606a73808d99a3afb7aa9e9184776b5e5144382b1e1105000916222f3c4955626f7c868686868686867e7164574b3e3124180b00000000000000000000040c151c232832383d44484b515356595c5d5f5f605f5f5e5c5b5855534e4846423b3630292017110a020000000000000000000007131f2a35404a525759606060606060606060606060606060606060606060606060606060606060606060605c5a544c42382c211509000000000000000000000000000000000000000000000007121d273039404546525353535353534c4b463f372e230c03000008141e29323b41465353535353535353534a48443d352b21160b00000a15202b343d434749535353535353534847433c342a20150a0000000000000000000000000000050d14191f252a2d3337393c3f414345454646454543423f3c3a38342e2b26201a140d050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a1623303d495663707c8996aab4a79a8d807467564c41342d2a282c2d333b444e58616e7b86929facb7aa9e9184776b5e5144382b1e1105000916222f3c4955626f7c8893939393938a7e7164574b3e3124180b000000000000000000040d161e262e343d43484f54555d606366686a6b6c6c6c6c6b696765625f5854534d46423b3228221c140b020000000000000000000a17232f3b47525c63666c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c69665e54493d3225190d0000000000000000000000000000000000000000000000000b151e272e34383a464646464646463f3e3a352e251c11000000020d1720293036393b46464646464646463d3c38332b23190f050000040f19222b32373b3c464646464646463b3a37312a22180e0300000000000000000000000000000002080d141a1b22272b2d2f3235363839393939383635322f2d2b28231c1a150e0903000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1724313e4a5764717d8a97a4b0a5988b7e7265584b3f30251d1c1f2228323d46525e6975828f9ba8b5aa9e9184776b5e5144382b1e1105000916222f3c4955626f7c88959f9f9f978a7e7164574b3e3124180b0000000000000000030d161f2830383f444e54596063676d707375777879797978777674726f6a67615e57524d443f332d261d140b0200000000000000000c1926323f4b57636e73797979797979797979797979797979797979797979797979797979797979797979797670665a4e4135281c0f000000000000000000000000000000000000000000000000030c151d23282c2d3939393939393933322e2a231c130a00000000050e171e252a2d2e3939393939393939302f2c27211911080000000007101920272b2e2f393939393939392f2e2b2620180f0600000000000000000000000000000000000003090e11171b1f202225282a2b2c2c2c2c2b2a282623201f1c17110f0a030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1825323e4b5865717e8b98a4b0a3978a7d7064574a3d312417101217202a36424d5764717e8b97a9b3aa9e9184776b5e5144382b1e1105000916222f3c4955626f7c8895a2aca4978a7e7164574b3e3124180b00000000000000010b151f28313a424a505860626b70757a7d80828385858686858483817e7c78736e69615e5650443f382f261d140a00000000000000000d1a2633404d59667380868686868686868686868686868686868686868686868686868686868686868686868276695c4f4336291c1000000000000000000000000000000000000000000000000000030b12181c1f202c2d2d2d2d2d2d2625221e18110a010000000000050d14191e20212d2d2d2d2d2d2d2d2322201c160f08000000000000070f151b1f22232d2d2d2d2d2d2d22211f1a150e0600000000000000000000000000000000000000000000060b0f121316191b1d1e1f20201f1e1d1b19161312100b060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c1825323f4b5865727e8b98a5afa296897c6f6356493c30231609060e1a25303b4855626e7b8897a2adaa9e9184776b5e5144382b1e1105000916222f3c4955626f7c8895a2afa4978a7e7164574b3e3124180b0000000000000007121d27313a434c545c606a6f767d8285898c8f909292939292918f8e8b8884807b756e69625a504a42382f261c1106000000000000000d1a2633404d596673808c93939393939393939393939393939393939393939393939393939393939393938f8276695c4f4336291c10000000000000000000000000000000000000000000000000000000070c1013131f202020202020191816120d07000000000000000002080d1114142020202020202020171613100b050000000000000000040a0f131516202020202020201514120f0a0300000000000000000000000000000000000000000000000000030506090c0e10121213131212100f0c0907060300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c1925323f4c5865727f8b98a5afa295897c6f6256493c2f231609000913202d394653606c7985929fabaa9e9184776b5e5144382b1e1105000916222f3c4955626f7c8895a2afa4978a7e7164574b3e3124180b000000000000040e18242f39434c555d666d737c83898e9298999b9d9e9f9f9f9f9e9c9a9896918d87817b716c605b544a42382d22170d030000000000000d1a2633404d596673808c999f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9c8f8276695c4f4336291c100000000000000000000000000000000000000000000000000000000000040607131313131313130c0c0a060200000000000000000000000105070813131313131313130a090704000000000000000000000000030608091313131313131308080602000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c1925323f4c5865727f8b98a5afa295887c6f6255493c2f2216090005121f2b3744505b657784919daaaa9e9184776b5e5144382b1e1105000916222f3c4955626f7c8895a2afa4978a7e7164574b3e3124180b0000000000020c16202935404b555d676d78808790959b9fa2a9a19e9c9b9a9a9b9d9fa3a8a19e99928e867e746c665b544a3f33281f150b0100000000000d1a2633404d596673808c99a6acacb3a9a19e9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9c8f8276695c4f4336291c100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c1925323f4c5865727f8b98a5afa295887c6f6255493c2f22160900030f1b27333f49536a7683909da9aa9e9184776b5e5144382b1e1105000916222f3c4955626f7c8895a2afa4978a7e7164574b3e3124180b000000000008131e28323a45515d676d79828d93999fa7a39f9a97928f8e8d8e8f9092999c9ea6a39f98928b80786c665b50443d31271d120700000000000d1a2633404d596673808c99a8b2b9ada197929191919191919191919191919191919191919191919191918f8276695c4f4336291c100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c1925323f4c5865727f8b98a5afa295887c6f6255493c2f22160900000b17222d424f5c6975828f9ca8aa9e9184776b5e5144382b1e1105000916222f3c4955626f7c8895a2afa4978a7e7164574b3e3124180b00000000010d1925303a44505a606d79828f949fa4a79f99928d8885838181818283868a8f949ea0a8a29f928d81786c60594f43392f23180c00000000000d192633404c5966737f8c96a1abb4ab9e9285848484848484848484848484848484848484848484848484848174675b4e4134281b0e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c1925323f4c5865727f8b98a5afa295887c6f6255493c2f2216090000061c2935424f5c6875828f9ba8aa9e9184776b5e5144382b1e1105000916222f3c4955626f7c8895a2afa4978a7e7164574b3e3124180b0000000005111d2935414c56626c75818e949fa6a69f959086817c797674747475777a7d828991969fa7a49d938c80736b60554b4034291d1207000000000714212d3a4754606d7a849199a3aeaa9d918479777777777777777777777777777777777777777777777777746f64584c4033271a0d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c1925323f4c5865727f8b98a5afa295887c6f6255493c2f22160900020f1c2935424f5c6875828f9ba8aa9e9184776b5e5144382b1e1105000916222f3c4955626f7c8895a2afa4978a7e7164574b3e3124180b000000000713202d3946525e68717e8b939ea6a89f948f837b746f6c6568676768676d70757c8490959fa8a59f93887d70675c5145392e23180c000000000713202c3945525d686f7c87929fa5aca0958e81756d6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a67645c53483c3024180b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c1925323f4c5865727f8b98a5afa295887c6f6255493c2f22160900020f1c2935424f5c6875828f9ba8aa9e9184776b5e5144382b1e1105000916222f3c4955626f7c8895a2afa4978a7e7164574b3e3124180b00000005111d2935414c56616d7a85929fa5aca0968f82796e6962605b535a5b555d60636a6f7a839096a1ada49a9184796d60544b4034281c100400000004111d2935414c56606a727f8b939ea8a89e938b7f726a60565e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5b58534a41362b2014080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c1925323f4c5865727f8b98a5afa295887c6f6255493c2f22160900020f1c2935424f5c6875828f9ba8aa9e9184776b5e5144382b1e1105000916222f3c4955626f7c8895a2afa4978a7e7164574b3e3124180b0000000713202d3946525d6874808d97a2ada59d9184796d675f575350494e4e4b51535860686d7a84919ea6aca0968c7f72665c5145382c1f1307000000010d1924303a444e58626d75818e96a0aaa59f92867c6f685d534951515151515151515151515151515151514e4c4841382f251a0f030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c1925323f4c5865727f8b98a5afa295887c6f6255493c2f22160900020f1c2935424f5c6875828f9ba8aa9e9184776b5e5144382b1e1105000916222f3c4955626f7c8895a2afa4978a7e7164574b3e3124180b0000000714212e3a4754616d7a86929fa9aa9e93897c6f675d554d46443f41414045474e565e68707d8a949faba89e9184796d6053463a2e23180c0000000008131e28323d46515b606d79849198a2aea39891847a6d655b50444444444444444444444444444444444441403c362f261d1308000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c1925323f4c5865727f8b98a5afa295887c6f6255493c2f22160900020f1c2935424f5c6875828f9ba8aa9e9184776b5e5144382b1e1105000916222f3c4955626f7c8895a2afa4978a7e7164574b3e3124180b000005121e2a36424d5765727f8c98a2aea89b8f82756b60554b433c37332d2f35393d444c56616b7683909caaada1968a7d7164544b4034281c1004000000020c16202b343f45515d676f7c86929fa5aaa0968f82776c60594f443a2f373737373737373737373737373433302b251d140b01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c1925323f4c5865727f8b98a5afa295887c6f6255493c2f22160900020f1c2935424f5c6875828f9ba8aa9e9184776b5e5144382b1e1105000916222f3c4955626f7c8895a2afa4978a7e7164574b3e3124180b00000714212d3a46535e697783909daaaca196897c6f63594f433a312b272224292c323a444f5964717e8a98a2aea89b8e8275665c5145382c1f130600000000040e19222935414b555f6a717e8b939da7a89e938c7f726b60564c42382d222b2b2b2b2b2b2b2b2b2b2b282724201a130b0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c1925323f4c5865727f8b98a5afa295887c6f6255493c2f22160900020f1c2935424f5c6875828f9ba8aa9e9184776b5e5144382b1e1105000916222f3c4955626f7c8895a2afa4978a7e7164574b3e3124180b00000815212e3b4854616e7b8795a0abab9e9184786c6053463d31281f1b17181d2029323e4753606d7985929facac9f9286796d6053463a2d2013070000000000071018242f3a434e58626c74818e95a0aaa69f92877d6f685e544a3f332821171e1e1e1e1e1e1e1e1e1b1a18140f08010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c1925323f4c5865727f8b98a5afa295887c6f6255493c2f22160900020f1c2935424f5c6875828f9ba8aa9e9184776b5e5144382b1e1105000916222f3c4955626f7c8895a2afa4978a7e7164574b3e3124180b00000b1825313e4b5864717e8b97a7b1a79a8d8074655b5044372b1f160f0b0c1017202c3845515d6775828f9ca8aea298897c6f6356493c3023160900000000000007131d28313c46505a606d79839098a2aea39991847a6d665b50443d33291e150a111111111111110e0d0b080300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c1925323f4c5865727f8b98a5afa295887c6f6255493c2f22160900020f1c2935424f5c6875828f9ba8aa9e9184776b5e5144382b1e1105000916222f3c4955626f7c8895a2afa4978a7e7164574b3e3124180b00030f1b27333f49536874818e9ba7b4aa978a7d716453493f3327190d04000005101d2935404b5566727f8c99a5b4aa998c7f7266594c3f33261907000000000000010c161f2a343f45515d676e7b86929fa4aba1968f82786c60594f453b30261c1106000404040404010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c1925323f4c5865727f8b98a5afa295887c6f6255493c2f22160900020f1c2935424f5c6875828f9ba8aa9e9184776b5e5144382b1e1105000916222f3c4955626f7c8895a2afa4978a7e7164574b3e3124180b0005121f2b3744505b657783909daaaea298877b6e6154483b2d221708000000000c18242f3d4a5663707d8996abb5a89b8e8175685b4e422e23180c00000000000000040d18222935404b555f69717e8a929da7a99f948c80736b60574d42382e23170f060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c1925323f4c5865727f8b98a5afa295887c6f6255493c2f22160900020f1c2935424f5c6875828f9ba8aa9e9184776b5e5144382b1e1105000916222f3c4955626f7c8895a2afa4978a7e7164574b3e3124180b000613202d394653606c7985929facac9f928579695e53463a2d211406000000000715212e3b4854616e7b8799a3aeaa9d9083776a554b4034281c100400000000000000061018242f39434d57616c74808d959fa9a69f93877d70695e544a3f342821180c0300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c1925323f4c5865727f8b98a5afa295887c6f6255493c2f22160900020f1c2935424f5c6875828f9ba8aa9e9184776b5e5144382b1e1105000916222f3c4955626f7c8895a2afa4978a7e7164574b3e3124180b000814212e3b4754616e7a8798a2aeaa9d9084776a574d42362a1e1205000000000613202d394653606c7986929facab9f928578675c5145382c1f1306000000000000000007121d27313c45505a606d78839097a2aca49992857b6e665c50443e33291e150b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c1925323f4c5865727f8b98a5afa295887c6f6255493c2f22160900020f1c2935424f5c6875828f9ba8aa9e9184776b5e5144382b1e1105000916222f3c4955626f7c8895a2afa4978a7e7164574b3e3124180b000916222f3c4955626f7c8895aab4a99c8f8276695c4f4331251a0e020000000006121f2b3844505b667884919eabada29786796d6053463a2d2013070000000000000000010b151f2a333e45515c666e7b85929aa4aba1979082786d605a50453b30271d1207000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c1925323f4c5865727f8b98a5afa295887c6f6255493c2f22160900020f1c2935424f5c6875828f9ba8aa9e9184776b5e5144382b1e1105000916222f3c4955626f7c8895a2afa4978a7e7164574b3e3124180b000a1724303d4a5763707d8a96a3b0a89b8e8175685b4e4235281b090000000000030f1c28333f4a546a7784909daab3a994877b6e6154483b2e211508000000000000000000030d18212834404b545e69707d88939fa6a99f948d80736c61574d43392e23180f060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c1925323f4c5865727f8b98a5afa295887c6f6255493c2f22160900020f1c2935424f5c6875828f9ba8aa9e9184776b5e5144382b1e1105000916222f3c4955626f7c8895a2afa4978a7e7164574b3e3124180b000b1724313e4a5764717d8a97a4b0a79a8d8174675a4e4134271b0e0100000000000b17222d43505d697683909ca9aea195887b6e6255483b2f22150800000000000000000000060f18232e39424d57616b73808d949fa9a69d928a7e70695f554b40342822180d0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c1925323f4c5865727f8b98a5afa295887c6f6255493c2f22160900020f1c2935424f5c6875828f9ba8aa9e9184776b5e5144382b1e1105000916222f3c4955626f7c8895a2afa4978a7e7164574b3e3124180b000b1825313e4b5864717e8b97a4b1a79a8d8074675a4d4134271a0e010000000000061d293643505c6976838f9ca9afa295887c6f6255493c2f221609000000000000000000000007121d27303b454f59606d78829097a1aba49f92857b6e675c51453e342a1f160c01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c1925323f4c5865727f8b98a5afa295887c6f6255493c2f22160900020f1c2935424f5c6875828f9ba8aa9e9184776b5e5144382b1e1105000916222f3c4955626f7c8895a2afa4978a7e7164574b3e3124180b000b1825323e4b5865717e8b98a4b1a69a8d8073675a4d4034271a0d010000000003101c2936434f5c6976828f9ca9afa295897c6f6256493c2f2316090000000000000000000000000b151e29333e44505c666e7b859299a4ada2979083796d605a50463c31281d1207000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c1925323f4c5865727f8b98a5afa295887c6f6255493c2f22160900020f1c2935424f5c6875828f9ba8aa9e9184776b5e5144382b1e1105000916222f3c4955626f7c8895a2afa4978a7e7164574b3e3124180b000b1825313e4b5864717e8b97a4b1a79a8d8074675a4d4134271a0e010000000003101d293643505c6976838f9ca9afa295887c6f6255493c2f221609000000000000000000000000030c172128343f4a545e69707d87939fa6a9a0958d81746c61584e43392f241810070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c1925323f4c5865727f8b98a5afa295887c6f6255493c2f22160900020f1c2935424f5c6875828f9ba8aa9e9184776b5e5144382b1e1105000916222f3c4955626f7c8895a2afa4978a7e7164574b3e3124180b000b1724313e4a5764717d8a97a4b0a79a8d8174675a4e4134271b0e010000000003101d2a3643505d697683909ca9aea195887b6e6255483b2f22150800000000000000000000000000050f17232e38424d56606b737f8c949fa8a79d928a7e716a5f554b40352922180d0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c1925323f4c5865727f8b98a5afa295887c6f6255493c2f22160900020f1c2935424f5c6875828f9ba8aa9e9184776b5e5144382b1e1105000916222f3c4955626f7c8895a2afa4978a7e7164574b3e3124180b000a1724303d4a5763707d8a96a3b0a89b8e8175685b4e4235281b08000000000004111d2a3744505d6a7783909daab4aa94887b6e6155483b2e221508000000000000000000000000000006111c26303b444f59606c78828f96a1aba49f92867c6e675d51453f342a1f160c01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c1925323f4c5865727f8b98a5afa295887c6f6255493c2f22160900020f1c2935424f5c6875828f9ba8aa9e9184776b5e5144382b1e1105000916222f3c4955626f7c8895a2afa4978a7e7164574b3e3124180b000916232f3c4956626f7c8995abb5a89c8f8275695c4f423025190e020000000005111d2935414c566b7784919eaaaea398877a6d6054473a2d2114070000000000000000000000000000000a151e29323d44505b666d7a849199a3aea2989183796d605a50463c31281e1308000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c1925323f4c5865727f8b98a5aca295887c6f6255493c2f22160900020f1c2935424f5c6875828f9ba8aa9e9184776b5e5144382b1e1105000916222f3c4955626f7c8895a2afa4978a7e7164574b3e3124180b000815212e3b4854616e7b8799a3afaa9d9083776a564c41362a1e1105000000000713202d3946525e687985929facac9f928579675d5145392c201306000000000000000000000000000000030c172028333f4a545e686f7d87929fa5aaa0958e81756d62584e433a2f241910070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c1925323f4c5865727f8b989f9f9f95887c6f6255493c2f22160900020f1c2935424f5c6875828f9b9f9f9e9184776b5e5144382b1e1105000916222f3c4955626f7c8895a2afa4978a7e7164574b3e3124180b000713202d3a4653606d7986929facab9f928578685e5246392d201407000000000714212e3a4754616d7a8798a2aeaa9e9184776b554b4135291d110400000000000000000000000004040400050e17222d38424c56606b727f8c939ea8a79e938b7e716a5f564c41352922190e0500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c1925323f4c5865727f8b9393939393887c6f6255493c2f22160900020f1c2935424f5c6875828f939393939184776b5e5144382b1e1105000916222f3c4955626f7c8895a2afa4978a7e7164574b3e3124180b0006121f2c3844515c667784919daaada297877a6e6154473b2e21140a00000000091623303c4956636f7c8996aab4a89c8f8275695c4f422f24180d01000000000000000001050707111111111106111c262f3a444f59626d75828f96a0aaa59f92867c6f685d52453f342b20160b02000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c1925323f4c5865727f868686868686867c6f6255493c2f22160900020f1c2935424f5c68758186868686868684776b5e5144382b1e1105000916222f3c4955626f7c8895a2afa4978a7e7164574b3e3124180b0004101c2834404a546875828e9ba8b3a9968a7d7063574a3d31261b0d040000030f1b27333f495365717e8b98a4b1a69a8d8073675a4d4034271a070000000000000002080d1113141e1e1e1e1e1e1e141d29323d47515b606d7a849198a3aea39891847a6d605b51463d32281d140a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1824313e4a56626d7279797979797979766a5f53473b2e21150800020e1b2834414d59656f757979797979797772675c4f43372a1d1104000916222f3c4955626f7c8895a2afa4978a7e7164574b3e3124180b00000c18232e3f4c5865727f8b98a8b2a6998d807366584e43372b1f15100c0b0f141f2b3744505b6574818e9ba7b1a7978a7d7164574a3e3124170b000000000000050c13191d20212b2b2b2b2b2b2b2b2b2b2b343f45525d686f7c86929fa5aaa0968f81756d62594f443a2f261c11060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000915222e3a46515b62656c6c6c6c6c6c6c625f584e43372b1f130600000c1925313d49545d65686c6c6c6c6c6c6b6760564b3f33271b0e02000916222f3c4955626f7c8895a2afa4978a7e7164574b3e3124180b00000716222f3c4955626f7c8896a1acaa9d9083776a5f53473c31271f1c18171b1f2630394653606c7884919eabaca095877a6e6154473b2e2114080000000000050e161e252a2d2e37373737373737373737373735414c56606a727f8b939ea8a89e938c7f726b60564c42382d22170b05000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006121e29343f495156586060606060606055534e463c32261b0f0300000915212c37424b54595c6060606060605e5c564e44392e23170b00000916222f3c4955626f7c8895a2afa4978a7e7164574b3e3124180b00000613202d394653606c7884919eabaca095887c6f62584e4339302c282322272b2f38424d57626f7c8996a1adab9d908377685e5246392d20140700000000020c1620283036393a4444444444444444444444444444444e58626d75818e95a0aaa59f92877d6f685e544a3f332821160b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010d18232d373f464a4c535353535353534947433c342a20150a00000004101b26303942494d4f535353535353514f4b443c32281d120600000916222f3c4955626f7c8895a2afa4978a7e7164574b3e3124180b000005121f2b3744505b6573808d99a4afa79a8e81746a5f554b423c38342e2d33373b414a545f6974818e9ba8afa4998c7f7366564d41362a1e11050000000008131e28323a41464751515151515151515151515151515151515b606d79839198a2aea39991847a6d665b50443d33271c1004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006111b252d343a3e3f464646464646463c3b37322a22180e040000000009141e2730373d414246464646464644433f39322a20160c0100000916222f3c4955626f7c8895a2afa4978a7e7164574b3e3124180b0000030f1b27333f4953616e7b87939fabac9f92877c6f675c544e46444041413f44464c535c666e7b86929facab9f93877b6e6155483b3025190e02000000010d1925303a444c52545e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5d676f7c86929fa5aba1968f82786c60594f44382c20130700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009131b23292e3132393939393939392f2e2b26201810060000000000020c151e262c3134353939393939393837332e2820180e040000000916222f3c4955626f7c8895a2afa4978a7e7164574b3e3124180b0000000b17222d3847535f6975828f99a3aea3999083796d665f5753514a4e4e495053565e656d78829099a3aea4998f8275695f53463a2d1f14080000000005111d2a36414c565e616a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a6a717e8b939da9a89f948c7f736b6054483c2f221609000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010911181e2224252d2d2d2d2d2d2d22211f1b150e0600000000000000030c141b212528292d2d2d2d2d2d2b2a27231d160e06000000000916222f3c4955626f7c8895a2afa4978a7e7164574b3e3124180b00000006111b2b37424d57626e7b87929fa6ab9f958f81786e6a63605c545b5a535b6062686e77818e949faba79f93877c6f62574d42362a1e0d02000000000713202d3946525e686d7777777777777777777777777777777777777777777777818e9aa7b0a69f93877d7063564a3d3023170a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000060d12151819202020202020201615130f0a0400000000000000000002091015191b1c2020202020201e1d1b17120c0400000000000916222f3c4955626f7c8895a2afa4978a7e7164574b3e3124180b000000000e1a26313c47535f6a73808d949fa8a79e938f837b74706d6668676768656c6f737a828e939da6a9a0958d80746a5f53453b31261a0e00000000000714212e3a4754616d7a848484848484848484848484848484848484848484848484919eaab7afa4999083776a5d5044372a1d110400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000106090b0c13131313131313090806030000000000000000000000000004090c0e0f13131313131311110e0b06010000000000000916222f3c4955626f7c8895a2afa4978a7e7164574b3e3124180b0000000009151f2b37424e57606d78829096a0a7a69e959087817c79767574747576797c80868f949da5a9a1979183796d60584e4333291f140900000000000814212e3b4754616e7a87919191919191919191919191919191919191919191919196a0acb9b5ab9d9084776a5d5144372a1e11040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000916222f3c4955626f7c8895a2afa4978a7e7164574b3e3124180b00000000030e1a26313c44505c666e7a8490959da5a79f99928e898583828181818385888d92989ea6a69f9791857c6e675d51463c3221170d0300000000000814212e3b4754616e7a87949d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9ea0a8b2acacaa9d9084776a5d5144372a1e11040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000916222f3c4955626f7c8895a2afa4978a7e7164574b3e3124180b000000000009152028343f4a545e686e7a838e939da0a7a39f9b9892908e8e8d8e9092979a9fa2a8a19e948f857c6f6a5f554b40342a200f060000000000000814212e3b4754616e7a87949f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9f9d9084776a5d5144372a1e11040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000916222f3c4955626f7c8895a2afa4978a7e7164574b3e3124180b0000000000030c17232e38424c565e686e79818990959b9fa2aaa29f9d9b9a9a9b9c9ea1a9a39f9c96918b827a6f6a5f574e43392f22180e000000000000000814212e3b4754616e7a879393939393939393939393939393939393939393939393939393939393939084776a5d5144372a1e11040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000916222f3c4955626f7c8895a2afa4978a7e7164574b3e3124180b00000000000006111c26303b444d565e676d747d83898e9298999b9d9e9f9f9f9f9e9d9b9999928f8a847e776e685f584e453c31281d1006000000000000000814212e3b4754616e7a868686868686868686868686868686868686868686868686868686868686868683776a5d5144372a1e11040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000916222f3c4955626f7c8895a2afa4978a7e7164574b3e3124180b000000000000000a151e29323b444d555d606b70777d8285898c8e90919292929291908f8c8a86827e79716c655e564e463c332a1f160c00000000000000000714202d3946525e687679797979797979797979797979797979797979797979797979797979797979797771675b4f43362a1d10040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000916222f3c4955626f7c8895a2afa4978a7e7164574b3e3124180b00000000000000030c172029323b434b515960636b7075797d7f82838585868685858382807d7a76716d66605b534c443c342a21180d04000000000000000005111e2a36414c565e6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6c6a675f554a3f33271a0e020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000916222f3c4955626f7c8895a2afa4978a7e7164574b3e3124180b0000000000000000050e172029313940454f54596063676d70727576787879797878777573706d6864605c545049413b322a22180f06000000000000000000020e1925303b444c525f60606060606060606060606060606060606060606060606060606060606060605d5b554d44392e22170b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000916222f3c4955626f7c8895a2afa4978a7e7164574b3e3124180b000000000000000000050e171f272f353d44484f54555d606366686a6b6c6c6c6c6b6a686663605d5653514a443f382f2920181006000000000000000000000008141e29323b4146535353535353535353535353535353535353535353535353535353535353535353514f4a443b32271d1106000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000916222f3c4955626f7c8895a2afa4978a7e7164574b3e3124180b00000000000000000000050d151d242933383d44484b515356595b5d5e5f5f5f5f5e5d5c595754524c46444039332d261d170e06000000000000000000000000020d1720293036393b464646464646464646464646464646464646464646464646464646464646464644433f39322920160b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000916222f3c4955626f7c8895a2afa4978a7e7164574b3e3124180b0000000000000000000000030b121821272c333839404547494c4f50525253535252504f4d4a4745413a38342e27221b140b050000000000000000000000000000050e171e252a2d2e39393939393939393939393939393939393939393939393939393939393939393736332e2720170e0400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000916222f3c4955626f7c8895a2afa4978a7e7164574b3e3124180b00000000000000000000000001070c161c21272c2f35383a3d3f42434545464645454442403d3a39352f2c28231c17110a0200000000000000000000000000000000050d14191e20212d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2a2a27221d160e050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000916222f3c4955626f7c8895a2afa4978a7e7164574b3e3124180b0000000000000000000000000000050b10161c1d24292c2d30333537383939393938373533302d2c29241f1c18120b060000000000000000000000000000000000000002080e11141420202020202020202020202020202020202020202020202020202020202020201e1d1a17110b04000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000916222f3c4955626f7c8895a2afa4978a7e7164574b3e3124180b00000000000000000000000000000000050b1012181d1f202326282a2b2c2c2c2c2b2a29262421201d1913100c07000000000000000000000000000000000000000000000002050708131313131313131313131313131313131313131313131313131313131313131311100e0b060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000916222f3c4955626f7c8895a2afa4978a7e7164574b3e3124180b00000000000000000000000000000000000001070c10131416191c1d1f1f20201f1f1d1c1a171413110d08040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000916222f3c4955626f7c8895a2aca4978a7e7164574b3e3124180b0000000000000000000000000000000000000000000406070a0c0f10121213131212110f0d0a0707040100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000916222f3c4955626f7c88959f9f9f978a7e7164574b3e3124180b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000916222f3c4955626f7c8893939393938a7e7164574b3e3124180b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000916222f3c4955626f7c868686868686867e7164574b3e3124180b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000815222e3b4754606a7679797979797979716c6155493d3024170a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006131f2b37434e5860626c6c6c6c6c6c6c64615a5045392d2115080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030f1b27323c464e545560606060606060575550483e34281d11050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a15202b343c434749535353535353534b49453e362c22170c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040f19222b32373b3c464646464646463e3d39342c241b1006000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007101920272b2e2f3939393939393931302d28221b120900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070f151b1f22222d2d2d2d2d2d2d2424211d171009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040a0f13151620202020202020181715110c0600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003060809131313131313130b0a0805000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 + image data: 1 + _typelessdata: 00 m_StreamData: serializedVersion: 2 offset: 0