diff --git a/.github/PULL_REQUEST_TEMPLATE/pull_request_template.md b/.github/PULL_REQUEST_TEMPLATE/pull_request_template.md index 1c89641..f636482 100644 --- a/.github/PULL_REQUEST_TEMPLATE/pull_request_template.md +++ b/.github/PULL_REQUEST_TEMPLATE/pull_request_template.md @@ -4,7 +4,7 @@ ### Screenshot -### Useful links (Github issues, JIRA tickets, ML-Agents forum threads etc.) +### Useful links (Github issues, etc.) ### Types of change(s) diff --git a/Assets/Models.meta b/Assets/Models.meta new file mode 100644 index 0000000..3764c66 --- /dev/null +++ b/Assets/Models.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ccded1feeb50f974ba6292e6bae52249 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Models/Bucket.fbx b/Assets/Models/Bucket.fbx new file mode 100644 index 0000000..6745863 Binary files /dev/null and b/Assets/Models/Bucket.fbx differ diff --git a/Assets/Models/Bucket.fbx.meta b/Assets/Models/Bucket.fbx.meta new file mode 100644 index 0000000..52c0cfb --- /dev/null +++ b/Assets/Models/Bucket.fbx.meta @@ -0,0 +1,105 @@ +fileFormatVersion: 2 +guid: 2f544844c0be38c4798b17bce08fd07a +ModelImporter: + serializedVersion: 21202 + internalIDToNameTable: [] + externalObjects: {} + materials: + materialImportMode: 2 + materialName: 0 + materialSearch: 1 + materialLocation: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + resampleCurves: 1 + optimizeGameObjects: 0 + removeConstantScaleCurves: 1 + motionNodeName: + rigImportErrors: + rigImportWarnings: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + importAnimatedCustomProperties: 0 + importConstraints: 0 + animationCompression: 1 + animationRotationError: 0.5 + animationPositionError: 0.5 + animationScaleError: 0.5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + extraUserProperties: [] + clipAnimations: [] + isReadable: 0 + meshes: + lODScreenPercentages: [] + globalScale: 1 + meshCompression: 0 + addColliders: 0 + useSRGBMaterialColor: 1 + sortHierarchyByName: 1 + importVisibility: 1 + importBlendShapes: 1 + importCameras: 1 + importLights: 1 + nodeNameCollisionStrategy: 1 + fileIdsGeneration: 2 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + keepQuads: 0 + weldVertices: 1 + bakeAxisConversion: 0 + preserveHierarchy: 0 + skinWeightsMode: 0 + maxBonesPerVertex: 4 + minBoneWeight: 0.001 + optimizeBones: 1 + meshOptimizationFlags: -1 + indexFormat: 0 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVMarginMethod: 1 + secondaryUVMinLightmapResolution: 40 + secondaryUVMinObjectScale: 1 + secondaryUVPackMargin: 4 + useFileScale: 1 + tangentSpace: + normalSmoothAngle: 60 + normalImportMode: 0 + tangentImportMode: 3 + normalCalculationMode: 4 + legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0 + blendShapeNormalImportMode: 1 + normalSmoothingSource: 0 + referencedClips: [] + importAnimation: 1 + humanDescription: + serializedVersion: 3 + human: [] + skeleton: [] + armTwist: 0.5 + foreArmTwist: 0.5 + upperLegTwist: 0.5 + legTwist: 0.5 + armStretch: 0.05 + legStretch: 0.05 + feetSpacing: 0 + globalScale: 1 + rootMotionBoneName: + hasTranslationDoF: 0 + hasExtraRoot: 0 + skeletonHasParents: 1 + lastHumanDescriptionAvatarSource: {instanceID: 0} + autoGenerateAvatarMappingIfUnspecified: 1 + animationType: 2 + humanoidOversampling: 1 + avatarSetup: 0 + addHumanoidExtraRootOnlyWhenUsingAvatar: 1 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Models/BucketSDF.asset b/Assets/Models/BucketSDF.asset new file mode 100644 index 0000000..55ecdde --- /dev/null +++ b/Assets/Models/BucketSDF.asset @@ -0,0 +1,40 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!117 &11700000 +Texture3D: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: BucketSDF + m_ImageContentsHash: + serializedVersion: 2 + Hash: 00000000000000000000000000000000 + m_ForcedFallbackFormat: 4 + m_DownscaleFallback: 0 + m_IsAlphaChannelOptional: 0 + serializedVersion: 3 + m_ColorSpace: 0 + m_Format: 45 + m_Width: 64 + m_Height: 29 + m_Depth: 31 + m_MipCount: 1 + m_DataSize: 115072 + m_TextureSettings: + serializedVersion: 2 + m_FilterMode: 1 + m_Aniso: 1 + m_MipBias: 0 + m_WrapU: 1 + m_WrapV: 1 + m_WrapW: 1 + m_UsageMode: 0 + m_IsReadable: 1 + image data: 115072 + _typelessdata: 7e2f632f622f622f622f622f622f622fcd2ee72d0a2d362ceb2aa029a628492866287b28a429a02965286528c828dd29582b832c682d552e612f612f912f932f932f912f612f612f552e682d832c582bdd29c82865286528b229bf297b28652847282429e429122b402c0d2de92dce2e632f622f622f622f622f622f632f7e2feb2ecf2ece2ece2ece2ece2ece2ece2e8a2e9a2db02ca22bfa298328c126bf25f625362604280028f625f6250d27e528982a362c292d202ed12ed22ee32ee52ee52ee32ed22ed12e202e292d362c982ae5280d27f625f6250e2819283626f625bc251d279128fe29a12baf2c992d8a2ece2ece2ece2ece2ece2ece2ecf2eeb2e672e492e502e502e502e502e502e502e502e712d7f2c2a2b6f29b8271a25b92312246d24cc25cb25122412248c256228392a122c0b2d592e4a2e4b2e4b2e4c2e4c2e4b2e4b2e4a2e592e0b2d122c392a62288c2512241224d125d7256d241224b2233d25bc277629352b842c752d502e502e502e502e502e502e502e492e672ef22dd12df32df32df32df32df32df32df32d6d2d7a2c1c2b61299727ff242e23a02330248b258925a023a0235c2553282f2a0e2c082d042ecf2dcf2dcf2dcf2dcf2dcf2dcf2dcf2d042e082d0e2c2f2a53285c25a023a023862586253024a5233223f0247f275c291f2b7b2c6e2df32df32df32df32df32df32df32dd12df22d8f2d6c2dbe2dbe2dbe2dbe2dbe2dbe2dbe2db32dc32cb82b072a96287f26c524c424122501270327c424c42413268e28592a1e2c152dd72d722d732d672d672d672d672d732d722dd72d152d1e2c592a8e281326c424c424032703271225c624ca248326c028862a322c282d222ebe2dbe2dbe2dbe2dbe2dbe2dbe2d6c2d8f2d562d312db42db42db42db42db42db42db42db42dfa2c1f2cb02a59295b28c725c625082611285126c625c625e526d7288d2a322ccf2dd42d402d432d202d1e2d1e2d202d432d402dd42dcf2d322c8d2ad728e526c625c625512611280826c725cc255b289029222b702c5b2db42db42db42db42db42db42db42db42d312d562d182df12cfe2c3c2dfa2cfe2c022d062d0a2d0e2d5f2d972cc62ba52afa27ca26c926012771284027c926c926c3272829ca2a4a2c1e2d1c2d1a2d182db72dbe2dbe2db72d182d1a2d1c2d1e2d4a2cca2a2829c327c926c926402771280127c926ce26f927c82a0f2cd82cb22d072d0c2d102d142d192d1d2d3c2dfe2cf12c182dcc2ca32cb12ca42ca62ca82caa2cac2cae2cb12cb32c342d3c2ba7296d28cc27cb27fc27d6281a28cb27cb27542880290e2b652cb92cb82cb72cb52c2c2d312d312d2c2db52cb72cb82cb92cbb2c0e2b80295428cb27cb271a28d628fc27cb27d0276d28a6293a2b642dab2cad2caf2cb12cb42cb62cb92cbc2cb12ca32ccc2cb12c872c952c852c852c852c852c852c852c852c852c852c852b032ae028672867287c284129952867286728ca28df29592b862c852c852c852c842cc62cca2cca2cc62c842c852c852c852c862c592bdf29ca2867286728952841297c2867286828e028022a832b852c852c852c852c852c852c852c862c862c952c872cb12cad2c832c832c832c832c832c832c832c832c832c832c832cd32b642a5629e828e828fc28af291229f528e8284129422aa92b822c812c812c812c802c912c932c932c912c802c812c812c812c822ca92b422a4129e828f5281229af29fc28e828e9285629642ad22b832c832c832c832c832c832c832c832c832c832c832cad2cbf2c952c932c932c932c932c932c932c932c932c932c932c132cca2ace296a29bc297b29202a8f2976296a29bb29a92afe2b932c932c932c932c922c922c922c922c922c922c932c932c932c932cfe2ba92abb296a2976298f29202a7b2987296a29ce29c92a132c932c932c932c932c932c932c932c932c932c932c952cbf2cea2cc22cc02cc02cc02cc02cc02cc02cc02cc02cc02cc82c3f2c322b472aeb29372afb29932a0e2af629eb29352a142b2c2cc32cc32cc42cc52cc52cc62cc72cc72cc62cc52cc52cc42cc32cc32c2c2c142b352aeb29f6290e2a932afb29062aeb29472a322b3f2cc02cc02cc02cc02cc02cc02cc82cc62cc42cc22cc22cea2c452d1f2d1e2d1e2d1e2d1e2d1e2d1e2d1e2d1e2d1e2d2e2d702ca52bc92a742a7d2a832a102b942a742a742ab92a882b5d2c232d242d262d272d292d2a2d2b2d2b2d2a2d292d272d262d242d232d5d2c882bb92a742a7a2a942a102b832a742a742ac92aa52b702c1e2d1e2d1e2d1e2d1e2d1e2d2c2d282d242d202d1f2d452d6f2d4b2d4a2d4c2d4d2d492d492d492d492d492d492d672db32c1f2c752b282b282b362bb62b452b282b282b672b122ca22c532d482d482d482d482d482d482d482d482d482d482d482d482d532da22c122c672b282b282b452bb62b362b282b282b752b1f2cb32c672d492d492d492d492d492d492d492d492d492d4b2d6f2dce2dac2dab2dab2dab2dab2dab2dab2dab2dab2dab2dab2d112d892c2e2c0c2c182c112c4b2c182c102c0c2c272c7d2c002da62daa2daa2daa2daa2daa2dab2dab2daa2daa2daa2daa2daa2daa2d002d7d2c272c0c2c102c182c4b2c112c182c0c2c2e2c892c112db92dab2dab2dab2dab2dab2dab2dab2dab2dab2dac2dce2d3e2e1f2e1d2e1d2e1d2e1d2e1d2e1d2e1d2e1d2e1d2e162e792dfc2caa2c8c2cc42c912cc42c972c8f2c8c2ca42cf12c6a2d042e1d2e1d2e1e2e1e2e1e2e1e2e1e2e1e2e1e2e1e2e1d2e1d2e042e6a2df12ca42c8c2c8f2c972cc42c912cc42c8c2caa2cfc2c792d162e1d2e1d2e1d2e1d2e1d2e1d2e1d2e1d2e1d2e1f2e3e2ee82ecb2e9e2e9e2e9e2e9e2e9e2e9e2e9e2e9e2e9e2e782ee52d722d272d0c2d232d112d3f2d162d0f2d0c2d222d682dd72d672e9e2e9f2e9f2e9f2e9f2e9f2e9f2e9f2e9f2e9f2e9f2e9e2e672ed72d682d222d0c2d0f2d162d3f2d112d142d0c2d272d722de52d782e9e2e9e2e9e2e9e2e9e2e9e2e9e2e9e2e9e2ecb2ee82e592f3f2f472f722f2e2f322f322f312f302f302f2f2fde2e542eea2da52d8c2da12d902dbb2d952d8f2d8c2da02de12d472ece2e6e2f302f2f2f2f2f2e2f2e2f2e2f2e2f2f2f2f2f302f312fce2e472ee12da02d8c2d8f2d952dbb2d902d932d8c2da52dea2d542ede2e802f312f302f302f2f2f2f2f2e2f722f472f3f2f592fe52fcc2fd42ffc2f2130db2fd92fd82fd62fd42fe12f472fc62e632e232e0c2e1f2e102e372e152e0f2e0c2e1f2e5a2eba2e382fcf2fd52fd32fd12fcf2fcd2fcd2fcf2fd12fd32fd52fcf2f382fba2e5a2e1f2e0c2e0f2e152e372e102e132e0c2e232e632ec62e472fe12fd72fd52fd42fd22fd12fcf2ffc2fd42fcc2fe52f433037303b304e306e30373037303730373037302230b32f392fdd2ea22e8c2e8c2e902eb42e942e8c2e8c2e9e2ed52e2e2fa52f1a3037303730373037303730373037303730373037301a30a52f2e2fd52e9e2e8c2e8c2e942eb42e902e8c2e8c2ea22edd2e392fb32f2230373037303730373037306e304e303b30373043309a308f309330a430c2308f308f308f308f30a53056301030ae2f572f202f0d2f0d2f102f322f142f0d2f0d2f1d2f502fa32f0a304e309c308f308f308f308f308f308f308f308f309c304e300a30a32f502f1d2f0d2f0d2f142f322f102f0d2f0d2f202f572fae2f10305630a5308f308f308f308f30c230a43093308f309a30f430ea30ed30fd301a31e930e930e930e930d6308a3048301230d32f9f2f8d2f8d2f902faf2f942f8d2f8d2f9c2fcc2f0d3042308330cd30e930e930e930e930e930e930e930e930cd30833042300d30cc2f9c2f8d2f8d2f942faf2f902f8d2f8d2f9f2fd32f123048308a30d630e930e930e930e9301a31fd30ed30ea30f4304f31453148315731723145314531453159310931c03081304e3027300f3006300d30083016300930073006300d30243049307b30b9300031503145314531453145314531453150310031b9307b30493024300d3006300730093016300830093006300f3027304e308130c0300931593145314531453172315731483145314f31aa31a131a431b231cb31a131a131a1318a313c31f730bb308a3065304f3046304d30483056304930473046304d3062308530b530f03035318231a131a131a131a131a131a13182313531f030b530853062304d3046304730493056304830493046304f3065308a30bb30f7303c318a31a131a131a131cb31b231a431a131aa310532fd3100320d3224324632fd310e32bc3171312e31f530c630a4308e3086308d30883095308930873086308d30a130c230ef3028316a31b4310532fd31fd31fd31fd310532b4316a312831ef30c230a1308d3086308730893095308830893086308e30a430c630f5302e317131bc310e32fd31463224320d320032fd310532603259325b3268327e32763276323f32ef31a731673130310331e230ce30c730cd30c830d430c930c730c730cc30e030ff302b316031a031e731363236323532353236323632e731a03160312b31ff30e030cc30c730c730c930d430c830c930c730ce30e230033130316731a731ef313f32763276327e3268325b3259326032a732a032a232ae32c432a032a03270322432de31a0316b31413121310e3107310d31083114310931083107310d311f313d3166319a31d7311c3268325f325e325e325f3268321c32d7319a3166313d311f310d3107310831093114310831093107310e31213141316b31a031de3124327032a032a032a032ae32a232a032a732d032c932cc32d732ec32c932c932a8325e321b32e031ad318531673154314e3153314f315a3150314e314e31533164318131a831da3114325732a0328932873287328932933257321432da31a8318131643153314e314e3150315a314f3150314e31543167318531ad31e0311b325e32a832c932cc32ec32d732cc32c932d032fc32f532f73203331733f532f532e832a03260322732f731d031b431a3319c31a2319d31a8319f319d319c31a131b231cd31f231213259329932bc32b232b132b132b232bc32993259322132f231cd31b231a1319c319d319f31a8319d319e319c31a331b431d031f73127326032a032e832f532ff3217330333f732f532fc32b62e992e982e982e982e982e982e982e9b2ead2dc72cd62b3b2ad02870278326ba26f3266b283227ba26ba26b6272329c72a492c382d2c2e9a2e9a2ee82eeb2eeb2ee82e9a2e9a2e2c2e382d492cc72a2329b627ba26ba2632276b28f326ba26872673274a29782af72bd32cb72da32e9d2e9c2e9b2e9a2e992e982e992eb62e1e2efe2dfd2dfd2dfd2dfd2dfd2dfd2dfd2d622d6d2cfb2a34291d276024f421652242230c2601265f225f22ef243228182a052c012dfc2dfc2dfb2d272e292e292e272efb2dfc2dfc2d012d052c182a3228ef245f225f222c264c2642235f22fb215c2573274029032b702c652dfd2dfd2dfd2dfd2dfd2dfd2dfd2dfe2d1e2e922d6e2d6d2d6d2d6d2d6d2d6d2d6d2d6d2d6d2d412c8c2a9c28882586200a1316161b1fc520b720161616169223c627e329e22bf12c732d742d752d7b2d7c2d7c2d7b2d752d742d732df12ce22be329c627922316161616f42026211b1f1616b61280208c259e288d2a422c3f2d6d2d6d2d6d2d6d2d6d2d6d2d6d2d6e2d922d142ded2c002d002d002d002d002d002d002d002d3d2c802a8c2850250320ba90488f891e871e8e1e488f488f8923c427e229e22b0c2d0f2deb2ceb2ceb2cec2cec2ceb2ceb2ceb2c0f2d0c2de22be229c4278923488f488f8c1e931e901eac8e9190da1f51258c28812a3d2c002d002d002d002d002d002d002d002ded2c142da72c7d2cc02cc02cc02cc02cc02cc02cc02cc02c7f2c0c2b2429b4269823561b2b1bd01f03240b242b1b2b1bbe23d127e629e52bd42cd82c7f2c802c7c2c7c2c7c2c7c2c802c7f2cd82cd42ce52be629d127be232b1b2b1b0424fc23d01f381b721b83242128162a082c062dc02cc02cc02cc02cc02cc02cc02cc02c7d2ca72c612c342cb52cb52cb52cb52cb52cb52cb52cb52cb52c9e2be6296928af26aa1f9f1f27210b2661229f1f9f1f3824ff27f529f02bcf2cd52c422c442c252c242c242c252c442c422cd52ccf2cf02bf529ff2738249f1f9f1f61220b262721a31fba1fd726dd289b2a3b2cb52cb52cb52cb52cb52cb52cb52cb52cb52c342c612c3b2c0c2c1b2ca92ba92ba92ba92ba92bbc2bb92bb52b502c272beb291c25d821d521c9226f26c223d521d521c32426280f2aad2bae2bb02bb12bb32bbb2bb82bb82bbb2bb32bb12bb02bae2bad2b0f2a2628c324d521d521c2236f26c922d521df2117252b2a9e2ba32ca92ba92bbb2bb82bb42bb22baf2bac2b1b2c0c2c3b2cbd2b562b782b5a2b5f2b642b692b6f2b752b7b2b812b882b672a8b28bf25dc23da234a24f326af24da23da2371255a28332a962b922b8f2b8b2b882b522c582c582c522c882b8b2b8f2b922b962b332a5a287125da23da23af24f3264a24da23e223bc258828642a652b6b2b712b772b7d2b832b8a2b902b972b782b562bbd2b7b2b102b332b0c2b0c2b0c2b0c2b0c2b0c2b0c2b0d2b0d2b942ac8287a26f024ef243b2591278f25ef24ef2435269a28612a0f2b0e2b0d2b0c2b0c2bac2bb62bb62bac2b0c2b0c2b0d2b0e2b0f2b612a9a283526ef24ef248f2591273b25ef24f3247826c628912a0c2b0c2b0c2b0c2b0c2b0d2b0e2b0f2b102b332b102b7b2b732b082b062b062b062b062b062b062b062b062b062b062b062b10294727f325f2253126212879261e26f3250a27e428082b062b052b032b022b022b262b2b2b2b2b262b022b022b032b052b062b082be4280a27f3251e26792621283126f225f42546270f29062b062b062b062b062b062b062b062b062b062b062b082b732b982b2f2b2a2b2a2b2a2b2a2b2a2b2a2b2a2b2a2b2a2b2b2b2a2b5f290f28f526ed272b27822869271a27f526e9273629292b292b292b292b292b282b282b282b282b282b282b292b292b292b292b292b3629e927f5261a27692782282b275027f6260f285f292a2b2a2b2a2b2a2b2a2b2a2b2a2b2b2b2a2b2a2b2a2b2f2b982b002c9e2b9a2b9a2b9a2b9a2b9a2b9a2b9a2b9a2b9a2bb12bab2bb6298028f727f7271328e8282e28f727f727672890299f2ba12ba32ba52ba72ba92bab2bad2bad2bab2ba92ba72ba52ba32ba12b9f2b90296728f727f7272e28e8281328f727f8278028b6299a2b9a2b9a2b9a2b9a2b9a2b9a2baf2ba92ba32b9e2b9e2b002c442c162c162c192c1c2c142c142c142c142c142c142c142c9b2b1e2a01298b288f28a0285f29b8288b288b28eb28fa296f2b122c112c112c102c102c0f2c0e2c0e2c0f2c102c102c112c112c122c6f2bfa29eb288b288d28b8285f29a0288b288b2801291e2a9b2b142c142c142c142c142c142c142c142c142c142c162c442c862c5a2c592c592c5a2c582c582c582c582c582c582c582c102cc22ac4295f2966297129172a862966296029b129a12af72b582c582c592c592c592c592c592c592c592c592c592c592c582c582cf72ba12ab129602966298629172a712966295f29c429c22a102c582c582c582c582c582c582c582c582c582c582c5a2c862cec2cc42cc32cc32cc32cc32cc32cc32cc32cc32cc32cc32c682c912bb32a5c2ab52a6b2afa2a7d2a672a5d2aa22a742b552cc32cc32cc32cc32cc32cc32cc32cc32cc32cc32cc32cc32cc32cc32c552c742ba22a5d2a672a7d2afa2a6b2ab52a5c2ab32a912b682cc32cc32cc32cc32cc32cc32cc32cc32cc32cc32cc42cec2c652d402d3e2d3e2d3e2d3e2d3e2d3e2d3e2d3e2d3e2d3e2dc72c362ca82b5d2b9b2b6a2be72b792b662b5d2b992b292cb62c3e2d3e2d3e2d3e2d3e2d3e2d3e2d3e2d3e2d3e2d3e2d3e2d3e2d3e2db62c292c992b5d2b662b792be72b6a2b732b5d2ba82b362cc72c3e2d3e2d3e2d3e2d3e2d3e2d3e2d3e2d3e2d3e2d402d652d042ee32dee2dca2dca2dcb2dcb2dcb2dca2dca2dca2dd22d2d2da82c4f2c2e2c4a2c342c6b2c3b2c322c2e2c492c9c2c1d2dbf2dca2dca2dca2dca2dca2dca2dca2dca2dca2dca2dca2dca2dbf2d1d2d9c2c492c2e2c322c3b2c6b2c342c382c2e2c4f2ca82c2d2dd22dcb2dcb2dca2dca2dca2dca2dca2dca2dee2de32d042e852e672e712ea12e622e712e702e6e2e6c2e6b2e692e302e962d1c2dcc2caf2cc72cb42ce52cba2cb22caf2cc62c112d872d1f2e6d2e6b2e692e672e662e642e642e662e672e692e6b2e6d2e1f2e872d112dc62caf2cb22cba2ce52cb42cb72caf2ccc2c1c2d962d302e6f2e6d2e6c2e6a2e692e672e662ea12e712e672e852e212f062f0f2f3b2f892f052f052f052f052f052f3c2f932e032e932d4a2d2f2d2f2d332d602d392d322d2f2d442d892df52d832e292f052f052f052f052f052f052f052f052f052f052f292f832ef52d892d442d2f2d322d392d602d332d2f2d2f2d4a2d932d032e932e3c2f052f052f052f052f052f892f3b2f0f2f062f212fce2fb52fbd2fe62f1630b42fb42fb42fb52fb52f9a2ffa2e732e0a2ec72daf2daf2db32ddc2db82daf2daf2dc32d012e662eea2e882fb42fb42fb42fb42fb42fb52fb52fb42fb42fb42f882fea2e662e012ec32daf2daf2db82ddc2db32daf2daf2dc72d0a2e732efa2e9a2fb42fb52fb42fb42fb42f1630e62fbd2fb52fce2f4130353039304c306d3034303430343034305330fc2f642fe52e842e462e2f2e2f2e332e592e372e2f2e2f2e412e7b2ed92e552fea2f4930343034303430343034303430343034304930ea2f552fd92e7b2e412e2f2e2f2e372e592e332e2f2e2f2e462e842ee52e642ffc2f533034303430343034306d304c303930353041309b3091309430a530c430903090309030903082303030d12f592ffe2ec42eaf2eaf2eb32ed62eb72eb22eaf2ec02ef62e4e2fc32f283078309030903090309030903090309030903078302830c32f4e2ff62ec02eaf2eb22eb72ed62eb32eaf2eaf2ec42efe2e592fd12f303082309030903090309030c430a530943091309b30f630ec30ef30ff301c31ec30ec30ec300831b23064301f30ce2f792f432f2f2f3f2f332f542f372f322f2f2f3f2f712fc42f19305c30a930fe30ec30ec30ec30ec30ec30ec30fe30a9305c301930c42f712f3f2f2f2f322f372f542f332f352f2f2f432f792fce2f1f306430b2300831ec30ec30ec301c31ff30ef30ec30f630513148314b315a3174314831483148313731e430993058302230f42fc22fb02fbf2fb32fd12fb62fb22fb02fbe2fed2f1d3051309130db302d314831483148314831483148312d31db30913051301d30ed2fbe2fb02fb22fb62fd12fb32fb52fb02fc22ff42f223058309930e430373148314831483174315a314b3148315131ac31a431a731b531ce31a331a331e33166311731cf3091305e303830203018301f30193028301b30193018301f30353059308b30c8300e315e31b4319531943193319531b4315e310e31c8308b30593035301f30183019301b30283019301a301830203038305e309130cf3017316631bd31a331a331ce31b531a731a431ac310832003202320f322732fd31fd310a3298314b310631cb309a307630603058305e30593067305b30593058305e3073309630c530ff3043318f31e231bd31bc31bc31bd31e2318f314331ff30c530963073305e30583059305b30673059305a305830603076309a30cb3006314b319831ec31fd31fd31fd310f320232003208322f322732293236324d32263226323a32cd31833141310831da30b830a3309b30a2309d30a9309e309c309b30a130b530d63003313a317b31c431f131e631e531e531e631f131c4317b313a310331d630b530a1309b309c309e30a9309d309e309b30a330b830da30083141318331cd311e322632273226323632293227322f325832503253325f3275325032503272320b32c43185314f3123310331ef30e830ee30e930f630eb30e930e830ee3001311f314a317e31bc3103321a3210320e320e3210321a320332bc317e314a311f310131ee30e830e930eb30f630e930ea30e830ef30033123314f318531c4310b3259325032563275325f3253325032583286327f3281328d32a3327e327e32b33250320c32d0319e317531563144313d3142313e3149313f313e313d314231543171319931cb310532483243323932383238323932433248320532cb3199317131543142313d313e313f3149313e313f313d314431563175319e31d0310c3250329b327e327e32a3328d3281327f328632f82dd82dd62dd62dd62dd62dd62dd62dd62d982dad2c9c2bf3297a28aa26a425dd251d261a286526dd25dd25f826dd28922a342c272dd62dd52dd52dd52dd52dd52dd52dd52dd52dd62d272d342c922add28f826dd25dd2565261a281d26dd25a425aa267a28f2299c2bad2c982dd62dd62dd62dd62dd62dd62dd62dd82df82d562d312d2f2d2f2d2f2d2f2d2f2d2f2d2f2d342d552cbe2ae2284f26a722ac1e871f1e2109265a22871f871f3624fe27f529f02bf62c302d312d312d812d842d842d812d312d312d302df62cf02bf529fe273624871f871f5a2209261e21871fa11ea7224f26e328be2a552c2f2d352d342d332d322d312d302d302d312d562dc22c992c972c972c972c972c972c972c972c972c332c682a6828d124d11aa796ef95d295ca95e695e3957c19a823cc27e429e42b972c972c972c982cbd2cbf2cbf2cbd2c982c972c972c972ce42be429cc27a8237c19f195fc9504960396f8959996c81ad1246828672a332c972c972c972c972c972c972c972c972c992cc22c3e2c0f2c142c142c142c142c142c142c142c142c142c6b2a6d28e424cf1c0a9e049e069e039e069ee59d3e1f2e24f927f4291a2c1c2c1e2c122c132c142c152c152c142c132c122c1e2c1c2c1a2cf429f9272e243e1fe59df99dfa9dfb9dfb9d089ebf1ce3246d286b2a142c142c142c142c142c142c142c142c142c0f2c3e2c952b2c2b892b892b892b892b892b892b892b892b892be92af4281c26d12146128da0f11eb221c221c49d6e938923c427e229a62bad2bb52b262b262b262b272b272b262b262b262bb52bad2ba62be229c42789236e93c49d09221b22f11e8da0461212243f26d528b52a892b892b892b892b892b892b892b892b892b2c2b952be92a752a6b2b6b2b6b2b6b2b6b2b6b2b6b2b6b2b6b2b6b2bbc29352832244612db9ff11eac26b226c49d6e938923c427e229962ba22bad2b892a8e2a5e2a5c2a5c2a5e2a8e2a892aad2ba22b962be229c42789236e93c49dcb26d126f11ed89f4612ce279028de296b2b6b2b6b2b6b2b6b2b6b2b6b2b6b2b6b2b6b2b752ae92ae12a6d2a932ab929b929b929b929b929c329c029be29bd29052b192832244612a29bf11ebc251d21a29b6e938923c427e229b929ba29ba29bb29bc29c129bf29bf29c129bc29bb29ba29ba29b929e229c42789236e93a29b1d21bc25f11ea29be7112e241728512bb929b929b929c229c029be29bc29bb29ba29932a6d2ae12af82971299d2976297d2984298c2994299c29a529ae29b729c029192832248512220bf21ebc251e21220b220b8923c427cf29cb29c629c129bc29b829182b272b272b182bb829bc29c129c629cb29cf29c4278923220b220b1e21bc25f21e220bd4112b2415287f2987298e2996299f29a729b029b929c329cc299d297129f829a429132943290c290c290c290c290d290d290e2910291129132921285424551c431c1220d5258a21431c431cd423d727172915291429122911291029e029ec29ec29e029102911291229142915291729d727d423431c431c8a21d5251220431c5b1c4f241f280c290c290c290d290e290f29102912291429172943291329a4299c290a29062906290629062906290629062906290629062906293a28ae242b2026206921192696220e212d204d2405280b29092907290529032902292c29322932292c29022903290529072909290b2905284d242d200d2196221926692126202e20ab243828062906290629062906290629062906290629062906290a299c29c12934292d292d292d292d292d292d292d292d292d2931292f29602835252f222b22142383260224cf223022de242d282d292d292d292d292d292d292e292e292e292e292d292d292d292d292d292d292d28de243022cf220224832614232b223022342560282d292d292d292d292d292d292d2930292f292e292d293429c1294a2ac929c329c329c329c329c329c329c329c329c329e429dc299428dd251924182472240c27d4241824182490256428cb29ce29d129d429d729da29dd29e029e029dd29da29d729d429d129ce29cb296428902518241824d4240c27722418241924dc259428c329c329c329c329c329c329c329e129d929d129c929c9294a2aae2a362a342a392a3f2a302a302a302a302a302a302a302a302ae728d42664256325a925de27f625632563259326ba282e2a2d2a2c2a2b2a2a2a2a2a292a282a282a292a2a2a2a2a2b2a2c2a2d2a2e2aba28932663256325f625de27a92563256425d426e728302a302a302a302a302a302a302a302a302a302a302a362aae2a502be32ade2ade2ade2ade2ade2ade2ade2ade2ade2ade2ade2a792931284327c5277627a028b2276627432716285029dd2add2add2add2add2ade2ade2ade2ade2ade2ade2add2add2add2add2add2a5029162843276627b227a0287627c527432731287929de2ade2ade2ade2ade2ade2ade2ade2ade2ade2ade2ae32a502b152cc82bc42bc42bc42bc42bc42bc42bc42bc42bc42bc42ba82b2f2a1529a1288f29b6287229cd28af28a128ff280b2a7c2bc32bc32bc42bc42bc42bc42bc42bc42bc42bc42bc42bc42bc32bc32b7c2b0b2aff28a128af28cd287229b6288f29a12815292f2aa82bc42bc42bc42bc42bc42bc42bc42bc42bc42bc42bc82b152cbb2c912c662c662c662c662c662c662c662c662c662c662c262cf72a022aa229f129b229522ac629ad29a229f029d72a122c662c662c662c672c672c672c672c672c672c672c672c662c662c662c122cd72af029a229ad29c629522ab229be29a229022af72a262c662c662c662c662c662c662c662c662c662c662c912cbb2c2b2d052d112d4e2dfa2c072d062d042d022d012d002d3b2d812ccc2bf52aa22ae62ab02a3a2bc12aac2aa22ae52aaf2b6f2c262d032d012d002dfe2cfd2cfb2cfb2cfd2cfe2c002d012d032d262d6f2caf2be52aa22aac2ac12a3a2bb02aba2aa22af52acc2b812c3b2d052d042d022d012dff2cfe2cfd2c4e2d112d052d2b2dbf2d9d2da82ddf2d9b2d9b2d9b2d9b2d9b2d9b2d9b2d902de22c552ceb2ba22ba22baf2b142cbd2bab2ba22bdd2b482cd12c7c2d9b2d9b2d9b2d9b2d9b2d9b2d9b2d9b2d9b2d9b2d9b2d9b2d7c2dd12c482cdd2ba22bab2bbd2b142caf2ba22ba22beb2b552ce22c902d9b2d9b2d9b2d9b2d9b2d9b2d9b2ddf2da82d9d2dbf2d6a2e4b2e552e872edc2e4a2e4a2e4a2e4b2e4b2e4a2eeb2d492dc72c712c512c512c572c8c2c5d2c512c512c6b2cbc2c392dd82d4b2e4a2e4a2e4a2e4a2e4a2e4b2e4b2e4a2e4a2e4a2e4a2ed82d392dbc2c6b2c512c512c5d2c8c2c572c512c512c712cc72c492deb2d4a2e4a2e4b2e4a2e4a2e4a2edc2e872e552e4b2e6a2e1e2f022f0b2f372f852fff2eff2eff2eff2eff2efa2e4b2eb32d3c2dee2cd12cd12cd62c072ddc2cd12cd12ce92c322da52d392ee72eff2eff2eff2eff2eff2eff2eff2eff2eff2eff2ee72e392ea52d322de92cd12cd12cdc2c072dd62cd12cd12cee2c3c2db32d4b2efa2eff2eff2eff2eff2eff2e852f372f0b2f022f1e2fd12fb82fc02fe82f1830b72fb72fb72fb72f0730552faf2e212eb32d6c2d512d512d562d822d5b2d512d512d672da92d142e9f2e422ff92fb72fb72fb72fb72fb72fb72fb72fb72ff92f422f9f2e142ea92d672d512d512d5b2d822d562d512d512d6c2db32d212eaf2e552f0730b72fb72fb72fb72f1830e82fc02fb82fd12f433037303b304e306e3037303730373037303230b42f172f922e2b2eea2dd22de52dd62dfe2ddb2dd42dd22de52d222e852e072fa22f2830373037303730373037303730373037302830a22f072f852e222ee52dd22dd42ddb2dfe2dd62dd92dd22dea2d2b2e922e172fb42f323037303730373037306e304e303b30373043309e3093309730a830c630933093309330bb305f300b30812f042fa52e682e522e642e562e7b2e5a2e542e522e642e9c2ef82e732f03305630b130933093309330933093309330b13056300330732ff82e9c2e642e522e542e5a2e7b2e562e582e522e682ea52e042f812f0b305f30bb30933093309330c630a830973093309e30f930ef30f23002311e31ee30ee30ee3016318f303e30ee2f782f1f2fe62ed22ee32ed52ef82eda2ed42ed22ee32e172f6d2fe12f36308630dd30ee30ee30ee30ee30ee30ee30dd3086303630e12f6d2f172fe32ed22ed42eda2ef82ed52ed82ed22ee62e1f2f782fee2f3e308f30e730ee30ee30ee301e310231f230ef30f93054314b314e315c3177315b315b318a313631bf3072302f30ee2f9a2f652f522f622f552f762f592f542f522f622f932fe42f28306a30b7300b3127311b311a3119311b3127310b31b7306a302830e42f932f622f522f542f592f762f552f582f522f652f9a2fee2f2f307230bf30153170315b315b3177315c314e314b3154318d31843187319531843184318431b3316131f230a830683033300c30e62fd42fe32fd72ff62fdb2fd62fd42fe32f08302e306230a130ea303b315031443142314231443150313b31ea30a13062302e300830e32fd42fd62fdb2ff62fd72fd92fd42fe62f0c3033306830a830f23044319d318431843184319531873184318d31b631ae31b031be31d731ad31ad31e53197312e31e730aa30793054303d3034303b30363044303730353034303b3051307430a530e0302631743179316d316c316c316d31793174312631e030a530743051303b3034303530373044303630373034303d3054307930aa30e7302e317c31d231ad31af31ae31be31b031ae31b631e031d831db31e8310032d831d8312132d63173313031f630c830a530903088308e30893096308b30893088308e30a230c430f13029316b31b531a2319731953195319731a231b5316b312931f130c430a2308e30883089308b30963089308a3088309030a530c830f63030317331bd310f32d831e1310032e831db31d831e03112320a320d321a3231320932093209321c32bf3180314a311f31fe30ea30e330e930e430f130e630e430e330e930fc301b3145317a31b831fe31cc31c031bf31bf31c031cc31e231b8317a3145311b31fc30e930e330e430e630f130e430e530e330ea30fe301f314a318031bf31063209320932093231321a320d320a321232452d1f2d1e2d1e2d1e2d1e2d1e2d1e2d1e2d1e2dcc2cce2b242ab4283427dc25db251b2619286426db25db25f626dd28922a342c1d2d1d2d1d2d1d2d1d2d1d2d1d2d1d2d1d2d1d2d1d2d1d2d342c922add28f626db25db25642619281b26db25dc2534270929222ac32bc32c1e2d1e2d1e2d1e2d1e2d1e2d1e2d1e2d1f2d452d9a2c6f2c6d2c6d2c6d2c6d2c6d2c6d2c6d2c6d2c772c152b3329e0269624781f6d1f1521072652226d1f6d1f3324fc27f429f02b6c2c6c2c6c2c6c2c6c2c6c2c6c2c6c2c6c2c6c2c6c2c6c2cf02bf429fc2733246d1f6d1f5222072615216d1f781f9624d8261b29e82a652c6d2c6d2c6d2c6d2c6d2c6d2c6d2c6d2c6f2c9a2cf92b952b912b912b912b912b912b912b912b912b952b822a8e285825b51f4692929cc91dcc1dc51d929c6e938923c427e229912b912b912b912b912b1c2c1f2c1f2c1c2c912b912b912b912b912be229c42789236e93929cc91dc31dc51d929c46921e2049258a287f2a912b912b972b962b942b932b922b912b912b952bf92be02a6b2a662a662a662a662a662a662a662a662a662a662a78280b25eb1d4692af98311b341b2a1baf986e938923c427692a6b2a6c2a6e2a702a722aa72aac2aac2aa72a722a702a6e2a6c2a6b2a692ac42789236e93af981c1b0b1b101baf984692441e1c257d28662a662a662a662a662a662a662a662a662a662a6b2ae02aee2965299629962996299629962996299629962996299629de2845268922461266a2f11e08230823c49d6e938923c427a829af29b529bc2960296029612962296229612960296029bc29b529af29a829c42789236e93c49d09230c23f11e66a246123b245a26de2896299629962996299629962996299629962996296529ee292a298a286d296d296d296d296d296d296d296d296d296d296d291928322446129ba3f11ebc251d21c49d6e938923c4278e299a29a629b22994289728802880288028802897289428b229a6299a298e29c42789236e93c49d1d21bc25f11e87a0461232249a286d296d296d296d296d296d296d296d296d296d296d298a282a299228b327a127a127a127a127a127a127a127a127a127a127a127192832244612d3a4f11ebc251d21c49d6e938923c4279f279f279e279e279d279d279d279c279c279d279d279d279e279e279f279f27c42789236e93c49d1d21bc25f11ed3a4461232241928a127a127a127a127a127a127a127a127a127a127a127b327922868284f27d227a226a226a226a226a226a226a226a226a226a226a22632244612a1a3f11ebc251d21c49d6e938923c427a226a226a226a326a426a426a526a526a526a526a426a426a326a226a226a226c42789236e93c49d1d21bc25f11ea1a3461232241928a226a226a226a226a226a226a226a226a226a226d2274f276828e9273126ca261b261b261b261d261f26232628262e2635263e264726322446129ba1f11ebc251d21c49d6e9389231a264d26472642263d26382634264428532853284428342638263d26422647264d261a2689236e93c49d1d21bc25f11e9ba1461232241b261b261c261d26202625262a263026382641264a26ca263126e927da271e260f260f260f260f260f260f260f260f260f260f260f260f26322446122d9ff11ebc251d21c49d6e9389231f2627261f26182612260d260926752685268526752609260d26122618261f2627261f2689236e93c49d1d21bc25f11e2d9f461232240f260f260f260f260f260f260f260f260f260f260f260f261e26da2711287b266626662666266626662666266626662666267e267626702632244612479af11ebc251d21479a6e938923682669266b266c266e26702672267426772677267426722670266e266c266b266926682689236e93479a1d21bc25f11e479a46123224662666266626662666266626662666267b2674266e2669267b2612286928522740274027402740274027402740274027402740274027192834241215f713031fbd252321f713f7138d23c5273e273e273e273d273d273e273e273f273f273e273e273d273d273e273e273e27c5278d23f713f7132321bd25031ff7131215342419284027402740274027402740274027402740274027402752276928f02848284228462849284028402840284028402840284028402832289124431f5b200221032642225b20471f2d24f9273f283e283e283e283e283d283d283d283d283d283d283e283e283e283e283f28f9272d24471f5b204222032602215b20431f91243228402840284028402840284028402840284028402840284828f028a42914290d290d290d290d290d290d290d290d290d290d290d298428a8259a2301262c24e02694240f249b23592552280d290d290d290d290d290d290d290d290d290d290d290d290d290d290d290d29522859259b230f249424e0262c2401269a23a82584280d290d290d290d290d290d290d290d290d290d290d291429a429882a0d2a072a072a072a072a072a072a072a072a072a072a072a05292827cd25ef260d2614285626fa25ce25ea26d828082a082a082a082a082a082a082a082a082a082a082a082a082a082a082a082ad828ea26ce25fa25562614280d263926cd2528270529072a072a072a072a072a072a072a072a072a072a072a0d2a882ab72b502b722b272b272b3b2b382b352b332b302b2e2b2c2b3d2ba8296e28ce275728fe27d7281b28ef27ce27552881290f2b382b342b312b2e2b2b2b292b282b282b292b2b2b2e2b312b342b382b0f2b81295528ce27ef271b28d728fe270f28ce276e28a8293d2b3a2b372b352b322b302b2d2b2c2b2a2b292b722b502bb72b622c352c432c8c2c332c332c332c332c332c332c332c332cd32b632a5529e728e728fa28ae291129f428e7284029412aa82b332c332c332c332c332c332c332c332c332c332c332c332c332c332ca82b412a4029e728f4281129ae29fa28e728e7285529632ad32b332c332c332c332c332c332c332c332c8c2c432c352c622c092de22cee2c2d2de02ce02ce02ce02ce02ce12ce02c022d3e2c2f2b442ae729e729f729902a0a2ae729e729322a112b2a2cec2ce12ce02ce02ce02ce02ce02ce12ce12ce02ce02ce02ce02cec2c2a2c112b322ae729e7290a2a902af729e729e729442a2f2b3e2c022de02ce02ce12ce02ce02ce02ce02c2d2dee2ce22c092dbb2d992da42ddb2d952d952d952d952d952d952d952d522d9b2c032c372be82ae72af52a7a2b052be72ae72a282bec2b892c3d2d952d952d952d952d952d952d952d952d952d952d952d952d3d2d892cec2b282be72ae72a052b7a2bf52ae72ae82a372b032c9b2c522d952d952d952d952d952d952d952ddb2da42d992dbb2d6c2e4e2e582e892edf2e4d2e4d2e4d2e4d2e4d2e692ea82dfe2c732c172ce82be82bf42b342c012ce82be82b102c672ced2c952d542e4d2e4d2e4d2e4d2e4d2e4d2e4d2e4d2e4d2e4d2e542e952ded2c672c102ce82be82b012c342cf42be82be82b172c732cfe2ca82d692e4d2e4d2e4d2e4d2e4d2e4d2e892e582e4e2e6c2e212f052f0e2f3b2f882f042f042f042f042f042fbb2e052e652de72c932c742c742c792cad2c802c782c742c8d2cdb2c562df22da72e042f042f042f042f042f042f042f042f042f042fa72ef22d562ddb2c8d2c742c782c802cad2c792c742c742c932ce72c652d052ebb2e042f042f042f042f042f882f3b2f0e2f052f212fd62fbd2fc52fed2f1a30bc2fbc2fbc2fbc2fd12f132f662ed12d5c2d102df42c0b2df92c282dff2cf72cf42c0b2d522dc32d542eff2ebc2fbc2fbc2fbc2fbc2fbc2fbc2fbc2fbc2fbc2fff2e542ec32d522d0b2df42cf72cff2c282df92cfc2cf42c102d5c2dd12d662e132fd12fbc2fbc2fbc2fbc2f1a30ed2fc52fbd2fd62f45303a303e3050307130393039303930393012306e2fcb2e3f2ed32d8e2d742d892d792da42d7e2d772d742d892dca2d322ebb2e5c2f08303930393039303930393039303930393008305c2fbb2e322eca2d892d742d772d7e2da42d792d7c2d742d8e2dd32d3f2ecb2e6e2f12303930393039303930713050303e303a304530a03096309930aa30c930953095309530ba303e30ce2f332fb12e4c2e0c2ef42d082ef82d202efd2df72df42d072e432ea42e242fbd2f3430923095307c307c307a307c30953092303430bd2f242fa42e432e072ef42df72dfd2d202ef82dfb2df42d0c2e4c2eb12e332fce2f3e309d30953095309530c930aa3099309630a030fb30f230f5300531e230e230e230e230dd306c3019309f2f242fc62e8a2e752e862e782e9d2e7d2e772e752e862ebe2e182f902f10306330bd30b030a230a130a030a230b030bd3063301030902f182fbe2e862e752e772e7d2e9d2e782e7b2e752e8a2ec62e242f9f2f19306c30c730e230e230e230e2300531f530f230fb3015310b310e311e310b310b310b310b310b31a13051300c30a42f4d2f162f022f122f052f272f092f042f022f122f452f992f053049309830ee30d930cb30c930c930cb30d930ee30983049300530992f452f122f022f042f092f272f052f082f022f162f4d2fa42f0c305130a130f8300b310b310b310b311e310e310b3115313e3135313831473162313431343134314431e030953054301e30ec2fb92fa72fb62faa2fc92fad2fa92fa72fb52fe52f19304d308e30d8302a310131f430f330f330f43001311b31d8308e304d301930e52fb52fa72fa92fad2fc92faa2fac2fa72fb92fec2f1e3054309530e030333134313431383136314731383135313e316a316131643173318d3161316131613187312931e230a53073304e3037302e30353030303e3031302f302e3035304b306f309f30db30213143312a311e311c311c311e312a3143312131db309f306f304b3035302e302f3031303e30303031302e3037304e307330a530e230293178316131613161318d317331643161316a31a4319b319e31ac31c531953195319531d1317b313831ff30d130af309a30923098309330a0309530933092309830ac30cd30fa30323173316d315531493148314831493155316d3173313231fa30cd30ac309830923093309530a0309330943092309a30af30d130ff3038317b31c5319531953195319531ac319e319b31a4319b2c702c6e2c6e2c6e2c6e2c6e2c6e2c6e2c6e2c6e2c292cc82a09293527de25dd251d2619286526dd25dd25f826dd28922a342c6e2c6f2c6f2c6f2c6f2c6f2c6f2c6f2c6f2c6f2c6f2c6e2c342c922add28f826dd25dd25652619281d26dd25de2535270929c42a232c6e2c6e2c6e2c6e2c6e2c6e2c6e2c6e2c6e2c702c9b2cd22b6c2b682b682b682b682b682b682b682b682b682b852bd829562897247f1f741f182107265422741f741f3424fd27f529672b662b662b662b662b662b662b662b662b662b662b662b662b672bf529fd273424741f741f542207261821741f7f1f97245e28ce297c2b682b682b682b682b682b682b682b682b682b6c2bd22b892a0e2a082a082a082a082a082a082a082a082a082a082a3b29302776244612bca4f11e09250b25c49d6e938923c427072a072a072a072a062a062a062a062a062a062a062a062a072a072a072a072ac42789236e93c49d0b250a25f11ebca44612752434273b29082a082a082a082a082a082a082a082a082a082a0e2a892a6529cc28c528c528c528c528c528c528c528c628c528c5282829ff263a2446126ea4f11ebf24c024c49d6e938923c427c528c428c428c428c328c3287a29812981297a29c328c328c428c428c428c528c42789236e93c49dbe24be24f11e6ea44612752428273b29c528c528c528c628c628c528c528c528c528c528cc2865296e285e27612761276127612761276127612761276127612761276127322446129ba3f11ebc251d21c49d6e9389237027792782278c27972797279f27a827b127b127a8279f27972797278c2782277927702789236e93c49d1d21bc25f11e87a0461232246127612761276127612761276127612761276127612761275e276e285b277725e326e326e326e326e326e326e326e326e326e326e326e326322446129ba3f11ebc251d21c49d6e93892312272b2744275e2778275b255d255d255d255d255d255d255b2578275e2744272b27122789236e93c49d1d21bc25f11e87a046123224e326e326e326e326e326e326e326e326e326e326e326e32677255b275026e723a123a123a123a123a123a123a123a123a123a123a123a123322446129ba3f11ebc251d21c49d6e938923a123a223a323a423a623a723a823a923aa23aa23a923a823a723a623a423a323a223a12389236e93c49d1d21bc25f11e87a046123224a123a123a123a123a123a123a123a123a123a123a123a123e7235026ae268424782178217821782178217821782178217821782178217821322446129ba3f11ebc251d21c49d6e9389237621752174217221712170216f216e216d216d216e216f2170217121722174217521762189236e93c49d1d21bc25f11e87a0461232247821782178217821782178217821782178217821782178218424ae267525b4204a233a203e2049205b2072209020b320db20072138216c21322446129ba3f11ea221a221c49d6e93892338208e21732159213f2127210f2148266f266f2648260f2127213f21592173218e21382089236e93c49da221a221f11e87a0461232243b2041204e2061207b209a20be20e820162147217d214a23b42075256c258e2032203220322032203220322032203220322032203220322032204612aaa5f11e69200f20c49d6e934d206f209520b3208c206a204c203320c52100220022c52133204c206a208c20b32095206f204d206e93c49d00214c20f11eaaa5461232203220322032203220322032203220322032203220322032208e206c25a72590212b212b212b212b212b212b212b212b212b21d021a12176214f214612a7a4f11ebc251d21c49d6e93362142214f215c216a21792189219921a921ba21ba21a9219921892179216a215c214f21422136216e93c49d1d21bc25f11ea7a446122b212b212b212b212b212b212b212b212b21c1219321692144219021a72511261723c922c922c922c922c922c922c922c922c922c922c922c9223224461210a3f11ebc251d21c49d6e938923c722c622c622c522c422c422c522c522c622c622c522c522c422c422c522c622c622c72289236e93c49d1d21bc25f11e10a346123224c922c922c922c922c922c922c922c922c922c922c922c92217231126f326e724cb24cb24cb24cb24cb24cb24cb24cb24cb24cb24cb24cb2432244612ac9ef11ebc251d21c49d6e938923cb24cb24cb24cb24cc24cc24cc24cd24cd24cd24cd24cc24cc24cc24cb24cb24cb24cb2489236e93c49d1d21bc25f11eac9e46123224cb24cb24cb24cb24cb24cb24cb24cb24cb24cb24cb24cb24e724f3262628ae26992699269926992699269926992699269926992699269926352435165b15121fbe2528215b155b15902399269926992698269826982698269926992699269926982698269826982699269926992690235b155b152821be25121f5b1535163524992699269926992699269926992699269926992699269926ae2626285129b7285e285e285e28682866286328622860285f285f285e284228cd24b120ac20d2213126ee227e21b2206f240e2868286528622860285f285e285e285e285e285e285e285f2860286228652868280e286f24b2207e21ee223126d221ac20b120cd2442285e28672865286328612860285f285e285e285e285e28b7285129212a9d29c9299629962996299629962996299629962996299629a328092658245724ac243127092592245824bf25722896299629962996299629962996299629962996299629962996299629962996297228bf255824922409253127ac24572458240926a3289629962996299629962996299629962996299629c9299d29212a5e2bf22a152bc02bed2aed2aed2aed2aed2aee2aed2aed2adf2a2e299b275826572693264628d6265726572660270329af2aed2aee2aed2aed2aed2aed2aed2aee2aee2aed2aed2aed2aed2aed2aaf2a0329602757265726d62646289326572658269b272e29df2aed2aed2aed2aee2aed2aed2aed2aed2ac02b152bf22a5e2b5e2c312c402c882c2b2c2b2c2b2c2b2c2b2c2b2c2b2c2b2c632bd929ab282c282c28432810295d282c282c289428b329362b2b2c2b2c2b2c2b2c2b2c2b2c2b2c2b2c2b2c2b2c2b2c2b2c2b2c2b2c362bb32994282c282c285d28102943282c282c28ab28d929632b2b2c2b2c2b2c2b2c2b2c2b2c2b2c2b2c882c402c312c5e2c0b2de42cf12c302de32ce32ce32ce32ce32ce32ce32cce2cff2b992a95292c292c293f29ea2954292c292c298129782ad52bb72ce32ce32ce32ce32ce32ce32ce32ce32ce32ce32ce32ce32cb72cd52b782a81292c292c295429ea293f292c292c299529992aff2bce2ce32ce32ce32ce32ce32ce32ce32c302df12ce42c0b2dbe2d9c2da72dde2d9a2d9a2d9a2d9a2d9a2d9a2d9a2d172d562c692b852a2d2a2d2a3c2acf2a4e2a2d2a2d2a742a4b2b432c012d9a2d9a2d9a2d9a2d9a2d9a2d9a2d9a2d9a2d9a2d9a2d9a2d012d432c4b2b742a2d2a2d2a4e2acf2a3c2a2d2a2d2a852a692b562c172d9a2d9a2d9a2d9a2d9a2d9a2d9a2dde2da72d9c2dbe2d722e532e5d2e8e2ee42e522e522e522e522e522e312e692db52c212c7a2b2d2b6c2b3a2bba2b4a2b362b2d2b6b2b142ca32c542d1b2e522e522e522e522e522e522e522e522e522e522e1b2e542da32c142c6b2b2d2b362b4a2bba2b3a2b442b2d2b7a2b212cb52c692d312e522e522e522e522e522e522e8e2e5d2e532e722e262f0b2f132f402f8d2f092f092f092f092f4d2f7f2ec12d192d922c382c162c322c1c2c552c232c1a2c172c322c862c092dae2d6a2e362f092f092f092f092f092f092f092f092f362f6a2eae2d092d862c322c172c1a2c232c552c1c2c202c162c382c922c192dc12d7f2e4d2f092f092f092f092f8d2f402f132f0b2f262fdb2fc22fca2ff32f1c30c12fc12fc12fc12fdf2f382f1e2e822d062db52c972cb02c9c2ccf2ca22c9a2c972caf2cfb2c732d0c2ebe2e822fc12fc12fc12fc12fc12fc12fc12fc12f822fbe2e0c2e732dfb2caf2c972c9a2ca22ccf2c9c2c9f2c972cb52c062d822d1e2ed22e972fc12fc12fc12fc12f1c30f32fca2fc22fdb2f48303d30403053303f303f303f303f3064300a306f2f812eef2d7c2d322d172d2d2d1b2d492d212d1a2d172d2d2d722de12d702e182fd32f3f30113001300030fe2f013011303f30d32f182f702ee12d722d2d2d172d1a2d212d492d1b2d1f2d172d322d7c2def2d812e2b2fe72f3f303f303f303f303f30533040303d304830743069306c307e3068306830683068308b303330c72feb2e632ef92db52d9c2db12da12dca2da62d9f2d9c2db02df02d562edb2e7a2f16306830383029302730273029303830683016307a2fdb2e562ef02db02d9c2d9f2da62dca2da12da42d9c2db52df92d632eeb2e8c2f2030683068306830683068307e306c30693074309d3092309630a7309230923092309230bd3068301d30702ff12e912e532e3d2e4f2e412e662e452e3f2e3d2e4f2e882ee52e612ff52f4e307e306130523050305030523061307e304e30f52f612fe52e882e4f2e3d2e3f2e452e662e412e432e3d2e532e912ef12e702f0330583092309230923092309230a730963092309d30c630bc30bf30cf30ed30bb30bb30bb30f930a93062300630972f3f2f082ff42e042ff72e192ffb2ef62ef42e042f382f8d2ffe2f44309230a6308a307b30793079307b308a30a63092304430fe2f8d2f382f042ff42ef62efb2e192ff72efa2ef42e082f3f2f972f06304c309b30bb30bb30bb30c330c030cf30bf30bc30c630f630ec30ef30ff30eb30eb30eb30eb303f31f4309d305c302730ff2fcc2fba2fc92fbd2fdc2fc12fbc2fba2fc92ff82f223056309630df30ce30b230a530a330a330a530b230ce30df30963056302230f82fc92fba2fbc2fc12fdc2fbd2fbf2fba2fcc2fff2f27305c309d30e830eb30eb30eb30eb30eb30ff30ef30ec30f630313128312b313a31553124312431243124313431ee30b23080305b3044303c3043303e304c303f303d303c30433058307c30ac30e7302c31fb30e130d430d230d230d430e130fb302c31e730ac307c30583043303c303d303f304c303e303f303c3044305b308030b230ee303431243124312431243124313a312b3128313131002c9c2b982b982b982b982b982b982b982b982b982b982bc42a0a293727df25df251f261a286726df25df25f926de28932a992b992b992b992b9a2b9a2b9a2b9a2b9a2b9a2b992b992b992b992b932ade28f926df25df2567261a281f26df25df2537270a29c42a982b982b982b982b982b982b982b982b982b982b9c2b002c8c2a112a0c2a0c2a0c2a0c2a0c2a0c2a0c2a0c2a0c2a0c2a0c2a34289824861f7c1f1a21082656227c1f7c1f3424fd270b2a0b2a0b2a0b2a0c2a0c2a0c2a0c2a0c2a0c2a0c2a0c2a0b2a0b2a0b2a0b2afd2734247c1f7c1f562208261a217c1f861f982434280c2a0c2a0c2a0c2a0c2a0c2a0c2a0c2a0c2a0c2a0c2a112a8c2a39299b289428942894289528942894289428942894289428942819283224461241a0f11ebc251d21c49d6e938923c4279328942893289228922892289228922892289228922892289228932894289328c42789236e93c49d1d21bc25f11e41a0461232241928942894289428942894289428942894289428942894289b283929142881266c266c266c266c266c266c266c266c266c266c266c266c26322446129ba3f11ebc251d21c49d6e9389236b266b266a266a2669266926682669266926692669266826692669266a266a266b266b2689236e93c49d1d21bc25f11e87a0461232246c266c266c266c266c266c266c266c266c266c266c266c268126142866261624e923e923e923e923ea23ee23e923e923e923e923e923e923322446129ba3f11ebc251d21c49d6e938923e623e523e423e323e323e623e623e723e823e823e723e623e623e323e323e423e523e62389236e93c49d1d21bc25f11e87a046123224e923e923e923e923e923e923e923e923e923e923e923e9231624662657252520062206220622062206220622062206220622062206220622062246129ba3f11e86228622c49d6e933c227822b422f0222d236b23c21fec1f0d20262026200d20ec1fc21f6b232d23f022b42278223c226e93c49d86228622f11e87a046120622062206220622062206220622062206220622062206220622252057250825231cdf0ddf0ddf0ddf0ddf0ddf0ddf0ddf0ddf0ddf0ddf0ddf0ddf0ddf0d9ba3cd0dcd0dcd0dc49d6e93bc0d970d720d4c0d270d020ddd0cb70c920c6d0c6d0c920cb70cdd0c020d270d4c0d720d970dbc0d6e93c49dcd0dcd0dcd0d87a0df0ddf0ddf0ddf0ddf0ddf0ddf0ddf0ddf0ddf0ddf0ddf0ddf0ddf0d241c082507251f1ca99ca99ca99ca99ca99ca99ca99ca99ca99ca99ca99ca99ca99ca99c4fa2a49ca49ca49c679fc19cab9cae9cb09cb09cae9cab9ca99ca69ca49ca19ca19ca49ca69ca99cab9cae9cb09cb09cae9cab9cc19c679fa49ca49ca49c4fa2a99ca99ca99ca99ca99ca99ca99ca99ca99ca99ca99ca99ca99ca99c1f1c072507251f1c389d2b9d2b9d2b9d2b9d2b9d2b9d2b9d2b9d2b9d2b9d2b9d2b9d2b9d2b9d2b9d2b9d2b9d2b9d2b9d2b9d2b9d2b9d2b9d2b9d2b9d2b9d2b9d2b9d2b9d2b9d2b9d2b9d2b9d2b9d2b9d2b9d2b9d2b9d2b9d2b9d2b9d2b9d2b9d2b9d2b9d2b9d2b9d2b9d2b9d2b9d2b9d2b9d2b9d2b9d2b9d2b9d2b9d2b9d389d1f1c072507251f1cd59cc79cc79cc79cc79cc79cc79cc79cc79cc79cc79cc79cc79cc79cc79cc79cc79cc79cc79cc79cc79cc79cc79cc79cc79cc79cc79cc79cc79cc79cc79cc79cc79cc79cc79cc79cc79cc79cc79cc79cc79cc79cc79cc79cc79cc79cc79cc79cc79cc79cc79cc79cc79cc79cc79cc79cc79cc79cc79cd59c1f1c072507251f1cd89dd89dd89dd89dd89dd89dd89dd89dd89dd89dd89dd89dd89dd89db99eda9dda9dda9db99eeb9dda9ddc9dde9ddf9de19de39de49de69de89de69de69de89de69de49de39de19ddf9dde9ddc9dda9deb9db99eda9dda9dda9db99ed89dd89dd89dd89dd89dd89dd89dd89dd89dd89dd89dd89dd89dd89d1f1c072507251f1c4b964b964b964b964b964b964b964b964b964b964b964b964b964b9681a1479647964796fa9d4f97519656965c96619665965e96589651964a96449644964a96519658965e96659661965c96569651964f97fa9d47964796479681a14b964b964b964b964b964b964b964b964b964b964b964b964b964b961f1c07252925371ea71ca71ca71ca71ca71ca71ca71ca71ca71ca71ca71ca71ca71c461221a5a41ca41ca41cc49d6e93a61ca51ca41ca31ca31ca41ca61ca71ca81ca91ca91ca81ca71ca61ca41ca31ca31ca41ca51ca61c6e93c49da41ca41ca41c21a54612a71ca71ca71ca71ca71ca71ca71ca71ca71ca71ca71ca71ca71c381e2925f425b2225f225f225f2260225f225f225f225f225f225f225f225f225f22461241a2f11e60226022c49d6e935f225e225f225e225f225f22602260226022612261226022602260225f225f225e225f225e225f226e93c49d60226022f11e41a246125f225f225f225f225f225f225f225f225f225f225f225f225f22b222f4259027be2562268d258d258d258d258d258d258d258d258d258d258d25322446127f9cf11ebc251d217f9c6e9389238c258c258c258c258c258c258c258d258d258d258d258c258c258c258c258c258c258c2589236e937f9c1d21bc25f11e7f9c461232248d258d258d258d258d258d258d258d258d258d258d258d25be259127cf2821285c281928192819281928192819281a281928192819281f284924321b061bc71fcd256821061b061bbc23d127192819281928192819281928192819281a281a28192819281928192819281928d127bc23061b061b6821cd25c71f061b321b49241f2819281928192819281928192819281928192819285c282128cf281b2a9629c229822982298229822982298229822982298229822958281725c621c321ba226b26b423c321c321be24242882298229822982298229822982298229822982298229822982298229822982292428be24c321c321b4236b26ba22c321c621172558288229822982298229822982298229822982298229c22996291b2a632bf72a1a2bc52bf22af22af22af22af22af22af22af22a912ac5287026e324e2242e2588278325e224e2242b2696285e2af22af22af22af22af22af22af22af22af22af22af22af22af22af22a5e2a96282b26e224e224832588272e25e224e3247026c528912af22af22af22af22af22af22af22af22ac52b1a2bf72a632b5f2c322c412c892c302c302c302c302c302c302c302c662c002b5a290828e326e2261a277b285827e226e226d9273029d12a4d2c302c302c302c302c302c302c302c302c302c302c302c302c4d2cd12a3029d927e226e22658277b281a27e226e32608285a29002b662c302c302c302c302c302c302c302c892c412c322c5f2c102dea2cf62c352de82ce82ce82ce82ce82ce82ce82c9e2c8b2b0b2aea287228712887284a29a02880287228d328e7295f2b862ce82ce82ce82ce82ce82ce82ce82ce82ce82ce82ce82ce82c862c5f2be729d32872288028a0284a29872871287228ea280b2a8b2b9e2ce82ce82ce82ce82ce82ce82ce82c352df62cea2c102dc32da12dac2de32d9f2d9f2d9f2d9f2d9f2d9f2dbc2de12c162cd02ad6297229c4298329272a98297e297229c329b02a022cca2ca42d9f2d9f2d9f2d9f2d9f2d9f2d9f2d9f2d9f2d9f2da42dca2c022cb02ac32972297e299829272a832990297229d629d02a162ce12cbc2d9f2d9f2d9f2d9f2d9f2d9f2de32dac2da12dc32d772e582e622e932ee82e572e572e572e572e162f5f2e2c2d6f2ca32bc72a722ab82a812a0e2b922a7c2a722ab72a862b5d2c172de62d572e572e572e572e572e572e572e572e572e572ee62d172d5d2c862bb72a722a7c2a922a0e2b812a8b2a722ac72aa32b6f2c2c2dfd2d572e572e572e572e572ee82e932e622e582e772e2b2f102f192f452f922f0f2f0f2f0f2f0f2f322f7a2e802dd02c402cbd2b732bb02b7f2bfb2b8e2b7b2b732baf2b332cbf2c6c2d302e032f0f2f0f2f0f2fc92ec92e0f2f0f2f0f2f032f302e6c2dbf2c332caf2b732b7b2b8e2bfb2b7f2b882b732bbd2b402cd02c802d462e032f0f2f0f2f0f2f0f2f922f452f192f102f2b2fe02fc72fcf2f8c2f8c2f8c2f8c2f8c2f8c2f6d2fba2eda2d362db22c5a2c3a2c552c3f2c762c462c3d2c3a2c542ca62c262dc72d802e4a2f8c2f332f0e2f0d2f092f0e2f332f8c2f4a2f802ec72d262da62c542c3a2c3d2c462c762c3f2c432c3a2c5a2cb22c362dda2d952e612f8c2f8c2f8c2f8c2f8c2f8c2fcf2fc72fe02ff92fe02fe82f0830df2fdf2fdf2fdf2fdf2fc82f1a2f4c2eb52d3e2df02cd32ceb2cd82c092dde2cd72cd32cea2c332da72d3b2ee82ea72fdf2f832f602f5c2f5c2f602f832fdf2fa72fe82e3b2ea72d332dea2cd32cd72cde2c092dd82cdc2cd32cf02c3e2db52d4c2efc2ebd2fdf2fdf2fdf2fdf2fdf2f0830e82fe02ff92f253019301d303030193019301930193019301d30982fdd2e532ee82da42d8b2d9f2d8f2db92d942d8e2d8b2d9f2ddf2d462ecd2e6d2f10300a30d42fb32fae2fae2fb32fd42f0a3010306d2fcd2e462edf2d9f2d8b2d8e2d942db92d8f2d922d8b2da42de82d532edd2e7f2f1a301930193019301a30193030301d30193025304f30443047305a304330433043304330433062301630802f032fa32e662e502e622e542e792e582e532e502e622e9b2ef72e712f023055303230123002300030003002301230323055300230712ff72e9b2e622e502e532e582e792e542e572e502e662ea32e032f802f0a305f30433043304330433043305a30473044304f3088307d308030923077307730773077307730b13057301230b22f5b2f252f112f212f142f362f182f132f112f212f542fa72f0b304f309d305a303c302c302a302a302c303c305a309d304f300b30a72f542f212f112f132f182f362f142f172f112f252f5b2fb22f12305730a63077307730773077307730923080307d308830c130b730bb30cb30e930b530b530b530b530f730ad306d3038301130f12fe02fee2fe32f0030e62fe22fe02fee2f0e3034306730a630ee308c306f3061305f305f3061306f308c30ee30a630673034300e30ee2fe02fe22fe62f0030e32fe52fe02ff12f113038306d30ad30f730b530b530b530b530b530cb30bb30b730c130eb2a772a9d2a722a722a722a722a722a722a7b2a792a772a752a0b293827e125e02521261b286926e025e025fb26de28722a722a722a732a732a792a772a752a752a772a792a732a732a722a722a722ade28fb26e025e02569261b282126e025e12538270b29722a722a722a722a7d2a7b2a792a772a752a742a9d2a772aeb2a6c29d528ce28ce28ce28ce28ce28ce28ce28ce28ce28ce28ce28342898248d1f831f1d2109265822831f831f3524fd27cd28cd28cd28cd28ce28ce28ce28ce28ce28ce28ce28ce28cd28cd28cd28cd28fd273524831f831f582209261d21831f8d1f98243428ce28ce28ce28ce28ce28ce28ce28ce28ce28ce28ce28d5286c2918288b26762676267626762676267626762676267626762676267626322446123ea0f11ebc251d21c49d6e93892375267526742674267326732673267426742674267426732673267326742674267526752689236e93c49d1d21bc25f11e3ea0461232247626762676267626762676267626762676267626762676268b26182821264c23002300230023002300230023002300230023002300230023322446129ba3f11ebc251d21c49d6e938923fe22fd22fc22fb22fa22f922f922fc2203230323fc22f922f922fa22fb22fc22fd22fe2289236e93c49d1d21bc25f11e87a0461232240023002300230023002300230023002300230023002300234c23212617252d1d441a441a441a441a441a441a441a441a441a441a441a441a441a46129ba3351a351a351ac49d6e93401a3b1a371a331a311a361a3b1a3f1a441a491a491a441a3f1a3b1a361a311a331a371a3b1a401a6e93c49d351a351a351a87a04612441a441a441a441a441a441a441a441a441a441a441a441a441a2d1d172507251f1c3b9e309e309e309e309e309e309e309e309e309e309e309e309e309e309e309e309e309e309e309e309e309e309e309e309e309e309e309e309e309e309e309e309e309e309e309e309e309e309e309e309e309e309e309e309e309e309e309e309e309e309e309e309e309e309e309e309e309e309e3b9e1f1c072507251f1cde91d416d416d416d416d416d416d416d416d416d416d416d416d416d416d416d416d416d416d416d416d416d416d416d416d416d416d416d416d416d416d416d416d416d416d416d416d416d416d416d416d416d416d416d416d416d416d416d416d416d416d416d416d416d416d416d416d416d416de911f1c072507251f1cde91711f711f711f711f711f711f711f711f711f711f711f711f711f711f711f711f711f711f711f711f711f711f711f711f711f711f711f711f711f711f711f711f711f711f711f711f711f711f711f711f711f711f711f711f711f711f711f711f711f711f711f711f711f711f711f711f711f711fde911f1c072507251f1cde915a215a215a215a215a215a215a215a215a215a215a215a215a215a215a215a215a215a215a215a215a215a215a215a215a215a215a215a215a215a215a215a215a215a215a215a215a215a215a215a215a215a215a215a215a215a215a215a215a215a215a215a215a215a215a215a215a215a21de911f1c072507251f1cde919921992199219921992199219921992199219921992199219921992199219921992199219921992199219921992199219921992199219921992199219921992199219921992199219921992199219921992199219921992199219921992199219921992199219921992199219921992199219921de911f1c072507251f1cde916d206d206d206d206d206d206d206d206d206d206d206d206d206d206d206d206d206d206d206d206d206d206d206d206d206d206d206d206d206d206d206d206d206d206d206d206d206d206d206d206d206d206d206d206d206d206d206d206d206d206d206d206d206d206d206d206d206d20de911f1c072507251f1cde91cc1bcc1bcc1bcc1bcc1bcc1bcc1bcc1bcc1bcc1bcc1bcc1bcc1bcc1bcc1bcc1bcc1bcc1bcc1bcc1bcc1bcc1bcc1bcc1bcc1bcc1bcc1bcc1bcc1bcc1bcc1bcc1bcc1bcc1bcc1bcc1bcc1bcc1bcc1bcc1bcc1bcc1bcc1bcc1bcc1bcc1bcc1bcc1bcc1bcc1bcc1bcc1bcc1bcc1bcc1bcc1bcc1bcc1bde911f1c072507251f1c999a6f9a6f9a6f9a6f9a6f9a6f9a6f9a6f9a6f9a6f9a6f9a6f9a6f9a6f9a6f9a6f9a6f9a6f9a6f9a6f9a6f9a6f9a6f9a6f9a6f9a6f9a6f9a6f9a6f9a6f9a6f9a6f9a6f9a6f9a6f9a6f9a6f9a6f9a6f9a6f9a6f9a6f9a6f9a6f9a6f9a6f9a6f9a6f9a6f9a6f9a6f9a6f9a6f9a6f9a6f9a6f9a6f9a6f9a999a1f1c072507251f1ca28ca28ca28ca28ca28ca28ca28ca28ca28ca28ca28ca28ca28ca28c2aa2958c958c958cc69dc893a78cac8cb18ca98c9e8c948c8a8c7f8c758c6b8c6b8c758c7f8c8a8c948c9e8ca98cb18cac8ca78cc893c69d958c958c958c2aa2a28ca28ca28ca28ca28ca28ca28ca28ca28ca28ca28ca28ca28ca28c1f1c0725a3257d21d1231621162116211621162116211b2116211621162116211621461296a4f11e16211621c49d6e93162116211621172117211721162116211621162118211c21162116211621162116211621162116216e93c49d16211621f11e96a4461216211621162116211621162117211621162116211621162116217d21a3258727b22557265d255d255d255d255d255d255d255d255d255d255d25322446122ba1f11ebc251d21c49d6e9389235d255d255d255d255d255d255d255d255d255d255d255d255d255d255d255d255d255d2589236e93c49d1d21bc25f11e2ba1461232245d255d255d255d255d255d255d255d255d255d255d255726b2258727d328262860281e281e281e281e281e281e281e281e281e281e28192832244612a698f11ebc251d21a6986e938923c4271e281e281e281e281e281e281e281e281e281e281e281e281e281e281e281e28c42789236e93a6981d21bc25f11ea6984612322419281e281e281e281e281e281e281e281e281e281e2860282628d328182a9329bf298d298d298d298d298d298d298d298d298d298d2928286e24bd1daf1d7c20e825da21af1daf1d0624e5278d298d298d298d298d298d298d298d298d298d298d298d298d298d298d298d29e5270624af1daf1dda21e8257c20af1dbd1d6e2428288d298d298d298d298d298d298d298d298d298d29bf299329182a6d2b012b242bce2bfc2afc2afc2afc2afc2afc2afc2afc2a552a70286a25dc22d922ad23ae264624d922d92217253e28202afc2afc2afc2afc2afc2afc2afc2afc2afc2afc2afc2afc2afc2afc2a202a3e281725d922d9224624ae26ad23d922dc226a257028552afc2afc2afc2afc2afc2afc2afc2afc2ace2b242b012b6d2b642c372c462c8e2c352c352c352c352c352c352c352c452cac2aea28dc266e25a026b225e527ff259d256e259b26bc287a2a2b2c352c352c352c352c352c352c352c352c352c352c352c352c2b2c7a2abc289b266e259d25ff25e527b225e1256e25dc26ea28ac2a452c352c352c352c352c352c352c352c8e2c462c372c642c152def2cfb2c3a2ded2ced2ced2ced2ced2ced2ced2c742c232b882944286e272c28a127b128db2791276f272a285f29f52a5b2ced2ced2ced2ced2ced2ced2ced2ced2ced2ced2ced2ced2c5b2cf52a5f292a286f279127db27b128a127c4276e2744288829232b742ced2ced2ced2ced2ced2ced2ced2c3a2dfb2cef2c152dc82da62db12de82da52da52da52da52da52da52dad2df52c542c3f2a2929b7281529cb288529e328c528b72814291c2a8a2b972c792da52da52da52da52da52da52da52da52da52da52d792d972c8a2b1c2a1429b728c528e3288529cb28d928b72829293f2ab52bac2c702da52da52da52da52da52da52de82db12da62dc82d7c2e5e2e672e982e472e492e472e472e472e972ed02d182d772c082b172ab729062ac829652adb29c329b829052ae92a1a2cde2cb52d482e492e4b2ed42dce2dce2dd42d4b2e492e482eb52dde2c1a2ce92a052ab829c329db29652ac829d429b729172a082b2e2cf42ca92d472e472e472e472e472e472e982e672e5e2e7c2eb82e9b2ea52e9a2e9a2e9a2e9a2e9a2e9a2eda2e182e672dcf2cf72b252bd52a172be22a682bf32ade2ad52a162bdb2b822c372d012e9a2e9a2e462e1c2e192e172e1c2e462e9a2e9a2e012e372d822cdb2b162bd52ade2af32a682be22aec2ad52a252bf72b942c4c2d182e9a2e9a2e9a2e9a2e9a2e9a2e9a2ea52e9b2eb82e0a2fee2ef72e242fed2eed2eed2eed2eed2e3c2f842edd2d232d9d2c442c222c3e2c282c602c2f2c262c222c3d2c912c132db62d712eed2eed2e972e6f2e6a2e6a2e6f2e972eed2eed2e712eb62d132d912c3d2c222c262c2f2c602c282c2c2c222c442c9d2c232dc92d862eed2eed2eed2eed2eed2eed2e242ff72eee2e0a2f5b2f402f492f742f3f2f3f2f3f2f3f2f3f2fba2f0c2f722ec52d4f2d032de62cfe2ceb2c1b2df12cea2ce62cfd2c452db72d4a2ef52e3f2f302fe72ec12ebc2ebc2ec12ee72e302f3f2ff52e4a2eb72d452dfd2ce62cea2cf12c1b2deb2cef2ce62c032d4f2dc52d5b2e092f3f2f3f2f3f2f3f2f4b2f452f742f492f402f5b2fb62f9d2fa52fce2f9c2f9c2f9c2f9c2f9c2f9c2fab2ff62e6e2e062ec22daa2dbe2dae2dd72db32dad2daa2dbe2dfd2d622ee62e842f9c2f7e2f382f142f0f2f0f2f142f382f7e2f9c2f842fe62e622efd2dbe2daa2dad2db32dd72dae2db12daa2dc22d062e6e2ef62e962f9c2f9c2f9c2f9c2f9c2f9c2fce2fa52f9d2fb62f16300a300e3021300630063006300630063006301c30a62f2c2fcf2e932e7e2e902e812ea62e862e802e7e2e8f2ec72e202f982f14300630d32f902f6d2f682f682f6d2f902fd32f06301430982f202fc72e8f2e7e2e802e862ea62e812e842e7e2e932ecf2e2c2fa62f1c3006300630063006300630063021300e300a30163055304a304e30603080304a304a304a304a30613076303330f82fa42f702f5d2f6c2f602f802f642f5f2f5d2f6c2f9d2fee2f2d306f30603021300130e22fdd2fdd2fe22f0130213060306f302d30ee2f9d2f6c2f5d2f5f2f642f802f602f622f5d2f702fa42ff82f3330763061304a304a304a304a304a3060304e304a305530fd297529a229712972297429762978296f296f296f296f296f290b293a27e325e22522261b286a26e225e225fc26df287229742977297029702970297129712971297129702970297029772974297229df28fc26e225e2256a261b282226e225e3253a270b297329742977296f296f296f296f296f296f296f29a2297529fd2979287a27fa27732773277327732773277327b627a9279c27912786279924941f8a1f202109265a228a1f8a1f362478277b277d27802783278627b127a32797279727a327b1278627832780277d277b27782736248a1f8a1f5b22092620218a1f941f992473277327732773277327c027b227a52799278d278327fa277a2779288226412409240924092409240924092409240a240924092409240924322446123aa0f11ebc251d21c49d6e93892308240824082407240724062406240524062406240524062406240724072408240824082489236e93c49d1d21bc25f11e3aa046123224092409240924092409240c240a24092409240924092409244124822619254b1da31aa31aa31aa31aa31aa31aa31aa31aa31aa31aa31aa31aa31a46129ba3a91aa91aa91ac49d6e93a01a9c1a981a941a901a8d1a891a851a811a7e1a7e1a811a851a891a8d1a901a941a981a9c1aa01a6e93c49da91aa91aa91a87a04612a31aa31aa31aa31aa31aa31aa31aa31aa31aa31aa31aa31aa31a4b1d192507251f1c019cdf9bdf9bdf9bdf9bdf9bdf9bdf9bdf9bdf9bdf9bdf9bdf9bdf9bdf9bdf9bdf9bdf9bdf9bdf9bdf9bdf9bdf9bdf9bdf9bdf9bdf9bdf9bdf9bdf9bdf9bdf9bdf9bdf9bdf9bdf9bdf9bdf9bdf9bdf9bdf9bdf9bdf9bdf9bdf9bdf9bdf9bdf9bdf9bdf9bdf9bdf9bdf9bdf9bdf9bdf9bdf9bdf9bdf9b019c1f1c072507251f1cde91c81ec81ec81ec81ec81ec81ec81ec81ec81ec81ec81ec81ec81ec81ec81ec81ec81ec81ec81ec81ec81ec81ec81ec81ec81ec81ec81ec81ec81ec81ec81ec81ec81ec81ec81ec81ec81ec81ec81ec81ec81ec81ec81ec81ec81ec81ec81ec81ec81ec81ec81ec81ec81ec81ec81ec81ec81ec81ede911f1c072507251f1cde91f023f023f023f023f023f023f023f023f023f023f023f023f023f023f023f023f023f023f023f023f023f023f023f023f023f023f023f023f023f023f023f023f023f023f023f023f023f023f023f023f023f023f023f023f023f023f023f023f023f023f023f023f023f023f023f023f023f023de911f1c072507251f1cde91af25af25af25af25af25af25af25af25af25af25af25af25af25af25af25af25af25af25af25af25af25af25af25af25af25af25af25af25af25af25af25af25af25af25af25af25af25af25af25af25af25af25af25af25af25af25af25af25af25af25af25af25af25af25af25af25af25af25de911f1c072507251f1cde91a223b326ae26ae26ae26ae26ae26ae26ae26ae26ae26af26b026b326ae26ae26ae26ae26ae26ae26ae26ae26ae26af26b126ae26ae26ae26ae26ae26ae26ae26ae26ae26ae26af26b126ae26ae26ae26ae26ae26ae26ae26ae26ae26ae26b026b226ae26ae26ae26ae26ae26ae26ae26ae26a223de911f1c072507251f1cde91a223cb26cb26cb26cb26cb26cb26cb26cb26cb26cb26cb26cb26cb26cb26cb26cb26cb26cb26cb26cb26cb26cb26cb26cb26cb26cb26cb26cb26cb26cb26cb26cb26cb26cb26cb26cb26cb26cb26cb26cb26cb26cb26cb26cb26cb26cb26cb26cb26cb26cb26cb26cb26cb26cb26cb26cb26a223de911f1c072507251f1cde91a22318261826182618261826182618261826182618261826182618261826182618261826182618261826182618261826182618261826182618261826182618261826182618261826182618261826182618261826182618261826182618261826182618261826182618261826182618261826a223de911f1c072507251f1cde919d249d249d249d249d249d249d249d249d249d249d249d249d249d249d249d249d249d249d249d249d249d249d249d249d249d249d249d249d249d249d249d249d249d249d249d249d249d249d249d249d249d249d249d249d249d249d249d249d249d249d249d249d249d249d249d249d249d24de911f1c072507251f1cde911121112111211121112111211121112111211121112111211121112111211121112111211121112111211121112111211121112111211121112111211121112111211121112111211121112111211121112111211121112111211121112111211121112111211121112111211121112111211121de911f1c072507251f1c05925f895f895f895f895f895f895f895f895f895f895f895f895f895f895f895f895f895f895f895f895f895f895f895f895f895f895f895f895f895f895f895f895f895f895f895f895f895f895f895f895f895f895f895f895f895f895f895f895f895f895f895f895f895f895f895f895f895f8905921f1c072507251f1ca294a294a294a294a294a294a294a294a294a294a294a294a294a294b9a1a294a294a294e19df095a294a294a294a294a294a294a294a294a294a294a294a294a294a294a294a294a294a294a294a294f095e19da294a294a294b9a1a294a294a294a294a294a294a294a294a294a294a294a294a294a2941f1c0725a7258e21dd2328212821282128212821282128212821282128212821282146129ba3f11e28212821c49d6e93282128212821282128212821282128212821282128212821282128212821282128212821282128216e93c49d28212821f11e87a04612282128212821282128212821282128212821282128212821dd238e21a7256a278b25342672257225722572257225722572257225722572257225322446120ba4f11ebc251d21c49d6e93892372257225722572257225722572257225722572257225722572257225722572257225722589236e93c49d1d21bc25f11e0ba4461232247225722572257225722572257225722572257225722534268b256a27dc2830286a28282828282828282828282828282828282828282819283224461215a0f11ebc251d21c49d6e938923c4272828282828282828282828282828282828282828282828282828282828282828c42789236e93c49d1d21bc25f11e15a046123224192828282828282828282828282828282828282828286a283028dc28212a9d29c9299729972997299729972997299729972997299729192832244612e388f11ebc251d21e388e3888923c4279729972997299729972997299729972997299729972997299729972997299729c4278923e388e3881d21bc25f11ee3884612322419289729972997299729972997299729972997299729c9299d29212a762b0b2b2e2bd82b072b072b072b072b072b072b072b072b2d2a3628a224e51fdb1f3e2110267322df20e91f3f240128f729072b072b072b072b072b072b072b072b072b072b072b072b072b072bf72901283f24e91fdf20732210263e21db1fe51fa22436282d2a072b072b072b072b072b072b072b072bd82b2e2b0b2b762b692c3d2c4b2c932c3b2c3b2c3b2c3b2c3b2c3b2c3b2cf12b5c2a8d28c625f123ef235424f926b8243824f22378255c28352a102c3b2c3b2c3b2c3b2c3b2c3b2c3b2c3b2c3b2c3b2c3b2c3b2c102c352a5c287825f2233824b824f9265424ef23f123c6258d28622afb2b3b2c3b2c3b2c3b2c3b2c3b2c3b2c932c4b2c3d2c692c1b2df42c002d3e2df22cf22cf22cf22cf22cf22c142d452c182b11294c27f9251427372623287e262426f9250f27e628992a372cf22cf22cf22cf22cf22cf22cf22cf22cf22cf22cf22cf22c372c992ae6280f27f92524267e26232837266226f9254c271129952a102ce82cf22cf22cf22cf22cf22cf22c3e2d002df42c1b2dcf2dae2db82d552d552d552d552d552d552d552d3d2d722c762bbd298828042872281c28ef2837281528052870289629202b6c2c552d552d552d552d552dd52cd52cdc2c552d552d552d552d6c2c202b96297028052815283728ef281c282c2804288828bd294d2b572c252d552d552d552d552d552d552d552db82dae2dcf2dcb2da92db42da82da82da82da82da82da82da82d902dd02c232cd42ada297729c92988292c2a9d2983297729c729b42a032ccb2ca82da82da82da82d2b2d252d252d2b2da82da82da82da82dcb2c032cb42ac729772983299d292c2a882994297729da29d42a182ce22c852da82da82da82da82da82da82da82db42da92dcb2d1c2efc2d062e3a2efa2dfa2dfa2dfa2dfa2dfa2d072e532db92c0b2c482bf92a3a2b072b8a2b172b032bf92a392bfb2b902c432d0c2efa2dfa2dac2d7d2d772d772d7d2dac2dfa2dfa2d0c2e432d902cfb2b392bf92a032b172b8a2b072b102bf92a482b0b2ca12c582d222efa2dfa2dfa2dfa2dfb2dfa2d3a2e062efc2d1c2e6d2e4f2e592e8a2e4d2e4d2e4d2e4d2e4d2e4d2e9b2ef62d3f2dbc2c652c452c5f2c4a2c812c512c482c452c5f2cb02c2f2dcf2d872e4d2e502efc2dd02dca2dca2dd02dfc2d502e4d2e872ecf2d2f2db02c5f2c452c482c512c812c4a2c4e2c452c652cbc2c3f2de22d9c2e4d2e4d2e4d2e4d2e4d2e4d2e8a2e592e4f2e6d2edb2ebf2ec82ef62eb32eb32eb32eb32eb32eb32e442f882ef72d852d3c2d202d372d252d532d2b2d242d212d362d7b2de92d772e1f2fb32e9c2e4c2e222e1c2e1c2e222e4c2e9c2eb32e1f2f772ee92d7b2d362d212d242d2b2d532d252d282d202d3c2d852df72d882e322fb32eb32eb32eb32eb32eb32ef62ec82ebf2edb2e4f2f342f3d2f682f312f312f312f312f312f312f312f432fc22e5e2e1f2e072e1b2e0b2e322e102e0a2e082e1a2e562eb52e342f312f312ff92eae2e872e812e812e872eae2ef92e312f312f342fb52e562e1a2e082e0a2e102e322e0b2e0e2e072e1f2e5e2ec22e432f312f312f312f312f312f312f312f682f3d2f342f4f2fdc2fc32fcb2ff42f1d30c22fc22fc22f0030e32fe12f0630992f412f092ff52e062ff82e1a2ffd2ef72ef52e052f392f8e2fff2fe22fe02f752f2f2f0a2f052f052f0a2f2f2f752fe02fe22fff2f8e2f392f052ff52ef72efd2e1a2ff82efb2ef52e092f412f992f0630e12fe32f0030c22fc22fc22fc22ff42fcb2fc32fdc2f3b299e28962896289628962896289628962896289628962896280c293b27e525e42524261c286c26e425e425fe26df289628962897289728972897289728972897289728972897289728972896289628df28fe26e425e4256c261c282426e425e5253b270c29962896289628962896289628962896289628962896289e283b2979279f258625862586258625862586258625862586258625862586259a249c1f911f22210a265d22911f911f37248525852585258425842584258325832584258425832583258425842584258525852585253724911f911f5d220a262221911f9c1f9a248625862586258625862586258625862586258625862586259f257927632561201523f31f1220322057208220bb1fbb1fbb1fbb1fbb1fbb1f3224461237a0f11ebc251d21c49d6e93892300201e2043206e20bc1fbd1fbf1fc11fc21fc21fc11fbf1fbd1fbc1f6e2043201e20002089236e93c49d1d21bc25f11e37a04612322400201b203d206420bb1fbb1fbb1fbb1fbb1fbb1fbb1f15236120632507251f1c139e139e139e139e139e139e139e139e139e139e139e139e139e139e989e139e139e139e989e259e149e149e129e109e0e9e0c9e0b9e099e079e059e059e079e099e0b9e0c9e0e9e109e129e149e149e259e989e139e139e139e989e139e139e139e139e139e139e139e139e139e139e139e139e139e139e1f1c072507251f1cde910020002000200020002000200020002000200020002000200020002000200020002000200020002000200020002000200020002000200020002000200020002000200020002000200020002000200020002000200020002000200020082000200020002000200020002000200020002000200020de911f1c072507251f1cde91a223ab24ab24ab24ab24ab24ab24ab24ab24ab24ab24ab24ab24ab24ab24ab24ab24ab24ab24ab24ab24ab24ab24ab24ab24ab24ab24ab24ab24ab24ab24ab24ab24ab24ab24ab24ab24ab24ab24ab24ab24ab24ab24ab24ab24ab24ab24ab24ab24ab24ab24ab24ab24ab24ab24ab24ab24a223de911f1c072507251f1cde91a223a7279a278f2784277b2772276b27652761275d275b275b27a42798278c278227792771276a27642760275d275b275b27a12795278a27802777276f27692763275f275c275b275b279f27922787277e2775276e27672762275e275c275b27a9279c27902785277c2773276c2766276127a223de911f1c072507251f1cde91a223c828c828c828c828c828c828c828c828c828c828c828c828c828c828c828c828c828c828c828c828c828c828c828c828c828c828c828c828c828c828c828c828c828c828c828c828c828c828c828c828c828c828c828c828c828c828c828c828c828c828c828c828c828c828c828c828a223de911f1c072507251f1cde91a223d1274c294c294c294c294c294c294c294c294c294c294c294c294c294c294c294c294c294c294c294c294c294c294c294c294c294c294c294c294c294c294c294c294c294c294c294c294c294c294c294c294c294c294c294c294c294c294c294c294c294c294c294c294c294c29d127a223de911f1c072507251f1cde91a223d127ee29ee29ee29ee29ee29ee29ee29ee29ee29ef29f629fd29ee29ee29ee29ee29ee29ee29ee29ee29ee29f129f729ee29ee29ee29ee29ee29ee29ee29ee29ee29ee29f229f929ee29ee29ee29ee29ee29ee29ee29ee29ee29ee29f429fb29ee29ee29ee29ee29ee29ee29ee29d127a223de911f1c072507251f1cde91a223d127f228f228f228f228f228f228f228f228f228f228f228f228f228f228f228f228f228f228f228f228f228f228f228f228f228f228f228f228f228f228f228f228f228f228f228f228f228f228f228f228f228f228f228f228f228f228f228f228f228f228f228f228f228f228d127a223de911f1c072507251f1cde91a223152817281a281d28212826282b2830281228122812281428152818281b281e28222827282c2812281228122812281428162818281b281f28232828282d2812281228122813281428162819281c282028242829282e281228122812281328152817281a281d28212825282a282f281228a223de911f1c072507251f1cde91a2239c259c259c259c259c259c259c259c259c259c259c259c259c259c259c259c259c259c259c259c259c259c259c259c259c259c259c259c259c259c259c259c259c259c259c259c259c259c259c259c259c259c259c259c259c259c259c259c259c259c259c259c259c259c259c259c25a223de911f1c072507251f1cde919621962196219621962196219621962196219621962196219621962196219621962196219621962196219621962196219621962196219621962196219621962196219621962196219621962196219621962196219621962196219621962196219621962196219621962196219621962196219621de911f1c072507251f1c5892d38cd38cd38cd38cd38cd38cd38cd38cd38cd38cd38cd38cd38cd38cd38cd38cd38cd38cd38cd38cd38cd38cd38cd38cd38cd38cd38cd38cd38cd38cd38cd38cd38cd38cd38cd38cd38cd38cd38cd38cd38cd38cd38cd38cd38cd38cd38cd38cd38cd38cd38cd38cd38cd38cd38cd38cd38cd38c58921f1c072507251f1ca792a792a792a792a792a792a792a792a792a792a792a792a792a792e3a1a792a792a792d39dfc94a792a792a792a792a792a792a792a792a792a792a792a792a792a792a792a792a792a792a792a792fc94d39da792a792a792e3a1a792a792a792a792a792a792a792a792a792a792a792a792a792a7921f1c0725b125b521f92352215221522152215221522152215221522152215221522146129ba3f11e52215221c49d6e93522152215221522152215221522152215221522152215221522152215221522152215221522152216e93c49d52215221f11e87a04612522152215221522152215221522152215221522152215221f923b521b1257927a025462687258725872587258725872587258725872587258725322446129ba3f11ebc251d21c49d6e93892387258725872587258725872587258725872587258725872587258725872587258725872589236e93c49d1d21bc25f11e87a046123224872587258725872587258725872587258725872587254626a0257927e5283b287428332833283328332833283328332833283328332819283224461200a3f11ebc251d21c49d6e938923c4273328332833283328332833283328332833283328332833283328332833283328c42789236e93c49d1d21bc25f11e00a3461232241928332833283328332833283328332833283328332874283b28e5282b2aa829d329a229a229a229a229a229a229a229a229a2297129b82732244612fd9df11ebc251d21c49d6e938923c427a229a229a229a229a229a229a229a229a229a229a229a229a229a229a229a229c42789236e93c49d1d21bc25f11efd9d46123224b0276f29a229a229a229a229a229a229a229a229a229d329a8292b2a802b162b382be12b112b112b112b112b112b112b112bf72a30291327532455180a183b1fc22537210a180a189a23c827e329112b112b112b112b112b112b112b112b112b112b112b112b112b112be329c8279a230a180a183721c2253b1f0a185518722427273b29042b112b112b112b112b112b112b112be12b382b162b802b722c452c542c102c132c1a2c102c102c102c102c102c6c2bbf294628692607210421192242262a23c921092186241428042afb2b132c162c1b2c212c1d2c5b2b5b2b102c212c1b2c162c132cfb2b042a142886240921c9212a234226192204210721e324b92771292c2b102c102c102c102c102c102c102c102c542c452c722c902c652c732c632c632c632c632c632c632c632c632cdc2b402ad428c2276d259f26b125e427fe259c256d259a26bc287a2a2b2c632c632c632c632c632cc02bc02bd12b632c632c632c632c2b2c7a2abc289a266d259c25fe25e427b125e0256d25db26e928282ac72b632c632c632c632c632c632c632c632c732c652c902ce02cb72cc42cb52cb52cb52cb52cb52cb52cb52cb52c5a2c3d2b022aa628262890283c280b295728352826288e28ae29322b742cb52cb52cb52cb52c3a2c322c322c3a2cb52cb52cb52cb52c742c322bae298e282628352857280b293c284c282628a628d429602b582cb52cb52cb52cb52cb52cb52cb52cb52cc42cb72ce02c302d0a2d162d532d082d082d082d082d082d082d082def2c462c172b272ac929172ada29752aed29d429c929162af82a202ce32c162d082d082dc42c8c2c852c852c8c2cc42c082d082d162de32c202cf82a162ac929d429ed29752ada29e529c929272a172b342cfa2c082d082d082d082d082d0f2d0a2d532d162d0a2d302d852d612d6d2da62d602d602d602d602d602d602d602d9e2ddf2c512ce22b992bd52ba62b0f2cb52ba22b9a2bd42b442cce2c792d602d602d752d132ddf2cd82cd82cdf2c132d752d602d602d792dce2c442cd42b9a2ba22bb52b0f2ca62baf2b992be22b512cdf2c8d2d602d602d602d602d602d602d602da62d6d2d612d852df92dd82de22d182ed02dd02dd02dd02dd02dd02dd02d3a2ea12d282dd92cbb2cd32cc02cf12cc62cbf2cbb2cd32c1d2d922d282ed02dd02dc12d652d332d2d2d2d2d332d652dc12dd02dd02d282e922d1d2dd32cbb2cbf2cc62cf12cc02cc42cbb2cd92c282da12d3a2ed02dd02dd02dd02dd02dd02dd02d182ee22dd82df92d7c2e5e2e672e982e5c2e5c2e5c2e5c2e5c2e872e842e8f2e6f2e062ec22daa2dbe2dae2dd82db32dad2daa2dbe2dfd2d622ea82e862e842e2c2ed62da92da32da32da92dd62d2c2e842e862ea82e622efd2dbe2daa2dad2db32dd82dae2db12daa2dc22d062e6f2e8f2e842e872e5c2e5c2e5c2e5c2e5c2e982e672e5e2e7c2e1a2ffe2e072f342f822ffd2efd2e712f2e2f0c2f0a2f142f442fe82eae2e992eaa2e9c2ec02ea02e9b2e992eaa2ee02e392f2b2f0b2f092f152f682e3f2e392e392e3f2e682e152f092f0b2f2b2f392fe02eaa2e992e9b2ea02ec02e9c2e9f2e992eae2ee82e442f142f0a2f0c2f2e2f712ffd2efd2efd2e342f072ffe2e1a2fa928ea27d927d927d927d927d927d927d927d927d927d927d927d9273d27e725e62526261d286e26e625e625ff26d827d827d827d727d827d827d827d927d927d927d927d827d827d827d727d827d827d827ff26e625e6256e261d282626e625e7253d27d927d927d927d927d927d927d927d927d927d927d927d927ea27a9286f2624240324032403240324032403240324032403240324032403249b24a31f981f25210a265f22981f981f38240324032403240424042404240524052405240524052405240424042404240324032403243824981f981f5f220a262521981fa31f9b2403240324032403240324032403240324032403240324032424246f260925441c6414641464146414641464146414641464146414641464146414461233a0511451145114c49d6e935f145b14561452144d144d14531458145e14641464145e14581453144d144d14521456145b145f146e93c49d51145114511433a046126414641464146414641464146414641464146414641464146414441c092507251f1cde916314631463146314631463146314631463146314631463146314631463146314631463146314631463146314631463146314631463146314631463146314631463146314631463146314631463146314631463146314631463146314631463146314631463146314631463146314631463146314de911f1c072507251f1cde91ae23ae23ae23ae23ae23ae23ae23ae23ae23ae23ae23ae23ae23ae23ae23ae23ae23ae23ae23ae23ae23ae23ae23ae23ae23ae23ae23ae23ae23ae23ae23ae23ae23ae23ae23ae23ae23ae23ae23ae23ae23ae23ae23ae23ae23ae23ae23ae23ae23ae23ae23ae23ae23ae23ae23ae23ae23ae23de911f1c072507251f1cde91a2237e277e277e277e277e277e277e277e277e277e277f2788277e277e277e277e277e277e277e277e277e277e2781277e277e277e277e277e277e277e277e277e277e277e2783277e277e277e277e277e277e277e277e277e277e277e2785277e277e277e277e277e277e277e277e277e27a223de911f1c072507251f1cde91a223d127292929292929292929292929292929292929292929292929292929292929292929292929292929292929292929292929292929292929292929292929292929292929292929292929292929292929292929292929292929292929292929292929292929292929292929292929d127a223de911f1c072507251f1cde91a223d127c22ac22ac22ac22ac22ac22ac22ac22ac22ac22ac22ac22ac22ac22ac22ac22ac22ac22ac22ac22ac22ac22ac22ac22ac22ac22ac22ac22ac22ac22ac22ac22ac22ac22ac22ac22ac22ac22ac22ac22ac22ac22ac22ac22ac22ac22ac22ac22ac22ac22ac22ac22ac22ac22ad127a223de911f1c072507251f1cde91a223d127e829402b402b402b402b402b402b402b402b402b402b402b402b402b402b402b402b402b402b402b402b402b402b402b402b402b402b402b402b402b402b402b402b402b402b402b402b402b402b402b402b402b402b402b402b402b402b402b402b402b402b402b402be829d127a223de911f1c072507251f1cde91a223d127e829c22bc22bc22bc22bc22bc22bc22bc22bc32bc72bcb2bc22bc22bc22bc22bc22bc22bc22bc22bc22bc42bc72bc22bc22bc22bc22bc22bc22bc22bc22bc22bc22bc42bc82bc22bc22bc22bc22bc22bc22bc22bc22bc22bc22bc52bc92bc22bc22bc22bc22bc22bc22be829d127a223de911f1c072507251f1cde91a223d127e829c62ac62ac62ac62ac72ac72ac62ac62ac62ac62ac62ac62ac62ac62ac62ac62ac72ac62ac62ac62ac62ac62ac62ac62ac62ac62ac62ac62ac72ac62ac62ac62ac62ac62ac62ac62ac62ac62ac62ac62ac72ac62ac62ac62ac62ac62ac62ac62ac62ac62ac62ac72ae829d127a223de911f1c072507251f1cde91a223d127a229a229a229a229a229a229a229a229a229a229a229a229a229a229a229a229a229a229a229a229a229a229a229a229a229a229a229a229a229a229a229a229a229a229a229a229a229a229a229a229a229a229a229a229a229a229a229a229a229a229a229a229a229a229d127a223de911f1c072507251f1cde91a223d127392839283928392839283928392839283928392839283928392839283928392839283928392839283928392839283928392839283928392839283928392839283928392839283928392839283928392839283928392839283928392839283928392839283928392839283928d127a223de911f1c072507251f1cde91a22394259425942594259425942594259425942594259425942594259425942594259425942594259425942594259425942594259425942594259425942594259425942594259425942594259425942594259425942594259425942594259425942594259425942594259425942594259425a223de911f1c072507251f1cde916c216c216c216c216c216c216c216c216c216c216c216c216c216c216c216c216c216c216c216c216c216c216c216c216c216c216c216c216c216c216c216c216c216c216c216c216c216c216c216c216c216c216c216c216c216c216c216c216c216c216c216c216c216c216c216c216c216c21de911f1c072507251f1cb9930691069106910691069106910691069106910691069106910691069106910691069106910691069106910691069106910691069106910691069106910691069106910691069106910691069106910691069106910691069106910691069106910691069106910691069106910691069106910691b9931f1c072507251f1c0a900a900a900a900a900a900a900a900a900a900a900a900a900a900da20a900a900a90ca9d3a940a900a900a900a900a900a900a900a900a900a900a900a900a900a900a900a900a900a900a900a903a94ca9d0a900a900a900da20a900a900a900a900a900a900a900a900a900a900a900a900a900a901f1c0725ba25dc210a247c217c217c217c217c217c217c217c217c217c217c217c2146129ba3f11e7c217c21c49d6e937c217c217c217c217c217c217c217c217c217c217c217c217c217c217c217c217c217c217c217c216e93c49d7c217c21f11e87a046127c217c217c217c217c217c217c217c217c217c217c217c210a24dc21ba258927b42559269c259c259c259c259c259c259c259c259c259c259c25322446129ba3f11ebc251d21c49d6e9389239c259c259c259c259c259c259c259c259c259c259c259c259c259c259c259c259c259c2589236e93c49d1d21bc25f11e87a0461232249c259c259c259c259c259c259c259c259c259c259c255926b4258927ee2845287e283d283d283d283d283d283d283d283d283d283d28c32546214612f5a4f11ebc251d21c49d6e938923c4273d283d283d283d283d283d283d283d283d283d283d283d283d283d283d283d28c42789236e93c49ddc25cd28f11ef5a446121b21c4253d283d283d283d283d283d283d283d283d283d287e284528ee283f2abe29e8298f298f298f298f298f298f298f298f298f2977280925e31d46925d98e41ae51ae61a5d986e938923c4278f298f298f298f298f298f298f298f298f298f298f298f298f298f298f298f29c42789236e935d98fb1a0f1b091b5d984692d91e2a2581288f298f298f298f298f298f298f298f298f29e829be293f2a112b9f2ac42a3c2a3c2a412a3c2a3c2a3c2a3c2a3c2aab2ac8280426ed214612b699f11e28212c21b6996e938923c427e2293c2a3c2a3d2a422a4a2a452a5d295d293c2a4a2a422a3d2a3c2a3c2ae229c42789236e93b699e0253121f11eb69946123121c825b028452a3c2a3c2a3c2a3c2a3c2a3c2a3c2a3c2a3c2a9f2a112b542be72a0a2be22ae22ae22ae22ae22ae22ae22ae22a342b7629c12749255521a4245a22522661230d2257219c241a28082ae22ae22ae22ae22ae22ae22adb29db29e22ae22ae22ae22ae22ae22a082a1a289c2457210d22612352265a22fc225521f724c7277729e22ae22ae22ae22ae22ae22ae22ae22ae22ae22ae72a542bf02b8b2bac2b872b872b872b872b872b872b872b872b142c9e2a4b2991274c265b2788264228cb2675264d265627ff28ac2a872b882b872b872b872b952a812a812a952a872b872b872b882b872bac2aff2856274d267526cb2642288826b1264c2691272a299e2a872b872b872b872b872b872b872b872b872bac2b8b2bf02b462c182c272c712c162c162c162c162c162c162c162c162c082c792a6f2903295c291629c6292c29102903295b29572aba2b162c162c162c162cc32b392b262b262b392bc32b162c162c162c162cba2b572a5b29032910292c29c6291629232903296f29792ae42b162c162c162c162c162c162c162c162c712c272c182c462caf2c842c922c762c762c762c762c762c762c762c762c762c982c002c302be12ae02aee2a732bff2aea2ae12a212be62b862c762c762c762c762c2e2cdc2bcb2bcb2bdc2b2e2c762c762c762c762c862ce62b212be12aea2aff2a732bee2ae02ae12a302b002c982c762c762c762c762c762c762c762c762c762c922c842caf2c212dfa2c072d452df92cf92cf92cf92cf92cf92cf92cf92c542dd32c7e2c5f2c792c642c992c6b2c622c5f2c782cc82c442df92cf92cf92cf92c882c4d2c452c452c4d2c882cf92cf92cf92cf92c442dc82c782c5f2c622c6b2c992c642c682c5f2c7e2cd32c542df92cf92cf92cf92cf92cf92cf92cf92c452d072dfa2c212db72d952da02dd82d942d942d942d942dd32daa2da72db32d942daf2d682d4d2d4d2d522d7e2d6f2d502d4d2d632da62d942dd02da92da62db52d0d2dd82cd12cd12cd82c0d2db52da62da92dd02d942da62d632d4d2d502d6f2d7e2d522d4d2d4d2d682daf2d942db32da72daa2dd32d942d942d942d942dd82da02d952db72d642e462e502e812ed72e442e442eb32e672e412e3e2e4a2e7d2e902e532e3c2e4f2e492e642e4b2e502e3c2e4e2e882ead2e642e402e3e2e4c2eb32d842d7e2d7e2d842db32d4c2e3e2e402e642ead2e882e4e2e3c2e502e4b2e6a2e492e562e3c2e532e902e7d2e4a2e3e2e412e672eb32e442e442e442e812e502e462e642e4528fb26e726e726e726e726e726e726e726e726e726e726e726e7263e27e825e82527261d286f26e825e8250127e726e726e726e626e626e626e626e626e626e626e626e626e626e626e626e726e726e7260127e825e8256f261d282726e825e8253e27e726e726e726e726e726e726e726e726e726e726e726e726fb264528d9255122f921f921f921f921f921f921f921f921f921f921f921f9219b24aa1fa01f28210b266122a01fa01f3824f821f821f821f721f721f821f821f921f921f921f921f821f821f721f721f821f821f8213824a01fa01f61220b262821a01faa1f9b24f921f921f921f921f921f921f921f921f921f921f921f9215122d92507251f1c739b739b739b739b739b739b739b739b739b739b739b739b739b739b2fa0799b799b799bdf9ead9b749b749b729b709b6e9b6c9b6a9b699b679b659b659b679b699b6a9b6c9b6e9b709b729b749b749bad9bdf9e799b799b799b2fa0739b739b739b739b739b739b739b739b739b739b739b739b739b739b1f1c072507251f1cde919a1e9a1e9a1e9a1e9a1e9a1e9a1e9a1e9a1e9a1e9a1e9a1e9a1e9a1e9a1e9a1e9a1e9a1e9a1e9a1e9a1e9a1e9a1e9a1e9a1e9a1e9a1e9a1e9a1e9a1e9a1e9a1e9a1e9a1e9a1e9a1e9a1e9a1e9a1e9a1e9a1e9a1e9a1e9a1e9a1e9a1e9a1e9a1e9a1e9a1e9a1e9a1e9a1e9a1e9a1e9a1e9a1e9a1ede911f1c072507251f1cde917725772577257725772577257725772577257725772577257725772577257725772577257725772577257725772577257725772577257725772577257725772577257725772577257725772577257725772577257725772577257725772577257725772577257725772577257725772577257725de911f1c072507251f1cde91a223a528a528a528a528a528a528a528a528a528a528a528a528a528a528a528a528a528a528a528a528a528a528a628a528a528a528a528a528a528a528a528a528a528a528a628a528a528a528a528a528a528a528a528a528a528a528a728a528a528a528a528a528a528a528a528a528a223de911f1c072507251f1cde91a223d1279a2a9a2a9a2a9a2a9a2a9a2a9a2a9a2a9a2a9b2a9a2a9a2a9a2a9a2a9a2a9a2a9a2a9a2a9a2a9a2a9a2a9b2a9a2a9a2a9a2a9a2a9a2a9a2a9a2a9a2a9a2a9a2a9a2a9c2a9a2a9a2a9a2a9a2a9a2a9a2a9a2a9a2a9a2a9a2a9a2a9d2a9a2a9a2a9a2a9a2a9a2a9a2a9a2a9a2ad127a223de911f1c072507251f1cde91a223d127e8295f2c5f2c5f2c5f2c5f2c5f2c5f2c5f2c5f2c5f2c5f2c5f2c5f2c5f2c5f2c5f2c5f2c5f2c5f2c5f2c5f2c5f2c5f2c5f2c5f2c5f2c5f2c5f2c5f2c5f2c5f2c5f2c5f2c5f2c5f2c5f2c5f2c5f2c5f2c5f2c5f2c5f2c5f2c5f2c5f2c5f2c5f2c5f2c5f2c5f2c5f2c5f2ce829d127a223de911f1c072507251f1cde91a223d127e829e82b952c952c952c952c952c952c952c952c952c952c952c952c952c952c952c952c952c952c952c952c952c952c952c952c952c952c952c952c952c952c952c952c952c952c952c952c952c952c952c952c952c952c952c952c952c952c952c952c952c952ce82be829d127a223de911f1c072507251f1cde91a223d127e829e82bd42cd42cd42cd42cd42cd42cd42cd42cd52cd62cd42cd42cd42cd42cd42cd42cd42cd42cd42cd42cd52cd42cd42cd42cd42cd42cd42cd42cd42cd42cd42cd42cd52cd42cd42cd42cd42cd42cd42cd42cd42cd42cd42cd42cd52cd42cd42cd42cd42cd42ce82be829d127a223de911f1c072507251f1cde91a223d127e829e82b492c4a2c4b2c4d2c4e2c452c452c452c462c462c472c482c492c4a2c4b2c4d2c452c452c452c452c462c472c472c482c492c4a2c4c2c4d2c452c452c452c452c462c472c472c482c4a2c4b2c4c2c4e2c452c452c452c462c462c472c482c492c4a2c4b2ce82be829d127a223de911f1c072507251f1cde91a223d127e8290d2b0d2b0d2b0d2b0d2b0d2b0d2b0d2b0d2b0d2b0d2b0d2b0d2b0d2b0d2b0d2b0d2b0d2b0d2b0d2b0d2b0d2b0d2b0d2b0d2b0d2b0d2b0d2b0d2b0d2b0d2b0d2b0d2b0d2b0d2b0d2b0d2b0d2b0d2b0d2b0d2b0d2b0d2b0d2b0d2b0d2b0d2b0d2b0d2b0d2b0d2b0d2be829d127a223de911f1c072507251f1cde91a223d1279e299e299e299e299e299e299e299e299e299e299e299e299e299e299e299e299e299e299e299e299e299e299e299e299e299e299e299e299e299e299e299e299e299e299e299e299e299e299e299e299e299e299e299e299e299e299e299e299e299e299e299e299e299e29d127a223de911f1c072507251f1cde91a223d1272f282f282f282f282f282f282f282f282f282f282f282f282f282f282f282f282f282f282f282f282f282f282f282f282f282f282f282f282f282f282f282f282f282f282f282f282f282f282f282f282f282f282f282f282f282f282f282f282f282f282f282f282f282f28d127a223de911f1c072507251f1cde91a2237f257f257f257f257f257f257f257f257f257f257f257f257f257f257f257f257f257f257f257f257f257f257f257f257f257f257f257f257f257f257f257f257f257f257f257f257f257f257f257f257f257f257f257f257f257f257f257f257f257f257f257f257f257f257f257f25a223de911f1c072507251f1cde914221422142214221422142214221422142214221422142214221422142214221422142214221422142214221422142214221422142214221422142214221422142214221422142214221422142214221422142214221422142214221422142214221422142214221422142214221422142214221de911f1c072507251f1cd094a393a393a393a393a393a393a393a393a393a393a393a393a393a393a393a393a393a393a393a393a393a393a393a393a393a393a393a393a393a393a393a393a393a393a393a393a393a393a393a393a393a393a393a393a393a393a393a393a393a393a393a393a393a393a393a393a393a393d0941f1c072507251f1cb789b789b789b789b789b789b789b789b789b789b789b789b789b78937a2b789b789b789c59d9193b789b789b789b789b789b789b789b789b789b789b789b789b789b789b789b789b789b789b789b7899193c59db789b789b78937a2b789b789b789b789b789b789b789b789b789b789b789b789b789b7891f1c0725c52503221924a621a621a621a621a621a621a621a621a621a621a621a62146129ba3f11ea621a621c49d6e93a621a621a621a621a621a621a621a621a621a621a621a621a621a621a621a621a621a621a621a6216e93c49da621a621f11e87a04612a621a621a621a621a621a621a621a621a621a621a621a62118240322c525be27fa259826902590259025902590259025902590259025902514252c1e46928d99fc1b001c011c8d996e93892390259025902590259025902590259025902590259025902590259025902590259025902589236e938d99081c081c081c8d9946922c1e142590259025902590259025902590259025902590259826fa25be278f28ad27152866276627662766276627662766276627662766274a25b120699f1ba216a215a21aa2e59d1e2300276a2966276627662766276627662766276627662766276627662766276627662766276a29ff261c23e59d1fa21ea21ea21ea2699fbd204c258b286627662766276627662766276627662766271528ad278f28052960285828582858285828582858285828582858285828582816253f1e4692df991e1c1d1c201cdf996e938923c4275828582858285828582859285828c126c1265828592858285828582858285828c42789236e93df992e1c311c331cdf9946923c1e17257b28582858285828582858285828582858285828582860280529962904293429fd28fd28fd28fd28fd28fd28fd28fd28fd28fd28312777248e1c7c1c2220072508257c1c7c1cdc23d927fd28fd28fd28fd28fd28fd28fd28ee27ee27fd28fd28fd28fd28fd28fd28fd28d927dc237c1c7c1c0b250c2522207c1c8e1c762430273c29fd28fd28fd28fd28fd28fd28fd28fd28fd28fd28042996292b2aa829d329a229a229a229a229a229a229a229a229ab296c2a09296a26db24da24272583277c25da24da2424269428a229a629b429a229a229a229b9289c289c28b928a229a229a229b429a629a22994282426da24da247c2583272725da24db246a2609296b2aa229a229a229a229a229a229a729a229a229d329a8292b2ac62a4f2a762a4a2a4a2a4a2a4a2a4a2a4a2a4a2a4a2a4a2a4a2aee29c6284a284a28602829297a284a284a28af28c9294a2a4a2a4a2a4a2a4a2a112a5b29412941295b29112a4a2a4a2a4a2a4a2a4a2ac929af284a284a287a28292960284a284a28c628ee294a2a4a2a4a2a4a2a4a2a4a2a4a2a4a2a4a2a4a2a762a4f2ac62aa22b392b5c2b2c2b2c2b2c2b2c2b2c2b2c2b2c2b2c2b2c2b2c2b652b802a282a272a6d2ad62a762a892a282a702a472b2c2b2c2b2c2b2c2b2c2ba22afd29e629e629fd29a22a2c2b2c2b2c2b2c2b2c2b472b702a282a892a762afc2a6d2a272a282a802a652b2c2b2c2b2c2b2c2b2c2b2c2b2c2b2c2b2c2b2c2b5c2b3a2ba22b5a2c2c2c3b2c842c2a2c2a2c2a2c2a2c2a2c4d2c492c2a2c2a2c802c252c022c1f2c0d2c332c102c182c022c1e2c742c2a2c2a2c4b2c482c2a2c7a2be92ad52ad52ae92a7a2b2a2c482c4b2c2a2c2a2c742c1e2c022c182c102c382c0d2c212c022c252c802c2a2c2a2c492c4d2c2a2c2a2c2a2c2a2c2a2c842c3b2c2c2c5a2c042ddc2ce92c282dda2cda2cda2c692d0a2dda2cd62ce52c262d592d0d2df12c082df32c072df52cfc2cf12c082d4f2d632d062dd92cd62ce72c5a2c1c2c142c142c1c2c5a2ce72cd62cd92c062d632d4f2d082df12cfc2cf52c092df32c032df12c0d2d592d262de52cd62cda2c0a2d692dda2cda2cda2c282de92cdc2c042dc12d9f2daa2de12d9e2d9e2d9e2d072eb22d882d852d912dcb2d9e2df72de02df32de02de92de02de92de02df32d9e2d012eaf2d872d842d932dcf2de32cdc2cdc2ce32c172d932d842d872daf2d012e9e2df32de02df82de02de92de02def2de02df72d9e2dcb2d912d852d882db22d072e9e2d9e2d9e2de12daa2d9f2dc12d12287b266626662666266626662666266626662666266626662666264027ea25e92529261e287126e925e92503276626662666266626672667266726672667266726672667266726672667266726662666260327e925e92571261e282926e925ea2540276626662666266626662666266626662666266626662666267b26122893253b21ce20ce20ce20ce20ce20ce20ce20ce20ce20ce20ce20ce209c24b11fa71f2a210b266322a71fa71f3924cf20cf20cf20cf20cf20cf20d020d020d020d020d020d020d020cf20cf20cf20cf20cf203924a71fa71f63220b262a21a71fb11f9c24ce20ce20ce20ce20ce20ce20ce20ce20ce20ce20ce20ce203b21932507251f1c4d9e469e469e469e469e469e469e469e469e469e469e469e469e469e469e419e419e419e469e469e469e469e469e469e469e469e469e469e469e469e469e469e469e469e469e469e469e469e469e469e469e469e419e419e419e469e469e469e469e469e469e469e469e469e469e469e469e469e469e4d9e1f1c072507251f1cde91b0217f2152212b210a21f020dc20d020cb20cb20cb20cb20a5217521492124210421eb20d920ce20cb20cb20cb20cb209a216b2141211c21fe20e720d620cd20cb20cb20cb20c2218f21612138211521f820e220d420cc20cb20cb20cb20b7218521582130210e21f320df20d120cb20cb20cb20de911f1c072507251f1cde91a2236a26652661265e265d265d265d265d265d265d265d2670266926642660265e265d265d265d265d265d265d265d266e26682663265f265d265d265d265d265d265d265d2674266d26672662265f265d265d265d265d265d265d265d2672266b26652661265e265d265d265d265d265d26a223de911f1c072507251f1cde91a223d1272a292a292a292a292a292a292a292a292a292a292b292a292a292a292a292a292a292a292a292a292a292a292b292a292a292a292a292a292a292a292a292a292a292c292b292a292a292a292a292a292a292a292a292a292a292b292a292a292a292a292a292a292a292a29d127a223de911f1c072507251f1cde91a223d127e829202b202b202b202b202b202b202b202b202b202b202b202b202b202b202b202b202b202b202b202b202b202b202b202b202b202b202b202b202b202b202b202b202b202b202b202b202b202b202b202b202b202b202b202b202b202b202b202b202b202b202b202be829d127a223de911f1c072507251f1cde91a223d127e829e82b872c872c872c872c872c872c872c872c872c872c872c872c872c872c872c872c872c872c872c872c872c872c872c872c872c872c872c872c872c872c872c872c872c872c872c872c872c872c872c872c872c872c872c872c872c872c872c872c872c872ce82be829d127a223de911f1c072507251f1cde91a223d127e829e82bf42c8a2d8a2d8a2d8a2d8a2d8a2d8a2d8a2d8a2d8a2d8a2d8a2d8a2d8a2d8a2d8a2d8a2d8a2d8a2d8a2d8a2d8a2d8a2d8a2d8a2d8a2d8a2d8a2d8a2d8a2d8a2d8a2d8a2d8a2d8a2d8a2d8a2d8a2d8a2d8a2d8a2d8a2d8a2d8a2d8a2d8a2d8a2d8a2df42ce82be829d127a223de911f1c072507251f1cde91a223d127e829e82bf42ccb2dcb2dcb2dcb2dcb2dcb2dcb2dcb2dcc2dcb2dcb2dcb2dcb2dcb2dcb2dcb2dcb2dcb2dcb2dcb2dcb2dcb2dcb2dcb2dcb2dcb2dcb2dcb2dcb2dcb2dcb2dcb2dcb2dcb2dcb2dcb2dcb2dcb2dcb2dcb2dcb2dcb2dcb2dcc2dcb2dcb2dcb2dcb2df42ce82be829d127a223de911f1c072507251f1cde91a223d127e829e82bf02cf02cf02cf02cf02cf02cf02cf02cf02cf02cf02cf02cf02cf02cf02cf02cf02cf02cf02cf02cf02cf02cf02cf02cf02cf02cf02cf02cf02cf02cf02cf02cf02cf02cf02cf02cf02cf02cf02cf02cf02cf02cf02cf02cf02cf02cf02cf02cf02cf02ce82be829d127a223de911f1c072507251f1cde91a223d127e829e82b392c392c392c392c392c392c392c392c392c392c392c392c392c392c392c392c392c392c392c392c392c392c392c392c392c392c392c392c392c392c392c392c392c392c392c392c392c392c392c392c392c392c392c392c392c392c392c392c392c392ce82be829d127a223de911f1c072507251f1cde91a223d127e829032b032b032b032b032b032b032b032b032b032b032b032b032b032b032b032b032b032b032b032b032b032b032b032b032b032b032b032b032b032b032b032b032b032b032b032b032b032b032b032b032b032b032b032b032b032b032b032b032b032b032b032be829d127a223de911f1c072507251f1cde91a223d127932993299329932993299329932993299329932993299329932993299329932993299329932993299329932993299329932993299329932993299329932993299329932993299329932993299329932993299329932993299329932993299329932993299329932993299329d127a223de911f1c072507251f1cde91a223d127242824282428242824282428242824282428242824282428242824282428242824282428242824282428242824282428242824282428242824282428242824282428242824282428242824282428242824282428242824282428242824282428242824282428242824282428d127a223de911f1c072507251f1cde91a2236a256a256a256a256a256a256a256a256a256a256a256a256a256a256a256a256a256a256a256a256a256a256a256a256a256a256a256a256a256a256a256a256a256a256a256a256a256a256a256a256a256a256a256a256a256a256a256a256a256a256a256a256a256a256a256a25a223de911f1c072507251f1cde911821182118211821182118211821182118211821182118211821182118211821182118211821182118211821182118211821182118211821182118211821182118211821182118211821182118211821182118211821182118211821182118211821182118211821182118211821182118211821de911f1c072507251f1ce7951f951f951f951f951f951f951f951f951f951f951f951f951f951f951f951f951f951f951f951f951f951f951f951f951f951f951f951f951f951f951f951f951f951f951f951f951f951f951f951f951f951f951f951f951f951f951f951f951f951f951f951f951f951f951f951f951f951f95e7951f1c072507251f1c088a088a088a088a088a088a088a088a088a088a088a088a088a088a34a27d897d897d89c59d9593088a088a088a088a088a088a088a088a088a088a088a088a088a088a088a088a088a088a088a088a9593c59d7d897d897d8934a2088a088a088a088a088a088a088a088a088a088a088a088a088a088a1f1c07257a25cb205923a820ba208f208f208f208f208f208f208f208f208f20592246120aa2f11e83218421c49d6e93a020b6208f208f208f208f208f208f208f208f209820ac20c4208f208f208f208f208f208f208f206e93c49d88218c21f11e04a246126621ad20c0208f208f208f208f208f208f208f208f208f205923cb207a25ff26f824392339233923392339233923392339233923392339232125831e4692ae9a9c1c9d1c9b1cae9a6e93892339233923392339233923392339233923392339233923392339233923392339233923392389236e93ae9aa61cb01cad1cae9a46927d1f462539233923392339233923392339233923392339233923f824ff2606270225e724e724e724e724e724e724e724e724e724e724e724e7246b214612f4a1f11e8f218f21c49d6e938923e724e724e724e724e724e724e724e724b521b521e724e724e724e724e724e724e724e72489236e93c49d96219a21f11ef2a14612a521e724e724e724e724e724e724e724e724e724e724e724e72402250627fa274726312631263126312631263126312631263126312631263126322446122a95f11ebc251d212a956e93892331263126312631263126312631263126252425243126312631263126312631263126312689236e932a951d21bc25f11e2a95461232243126312631263126312631263126312631263126312631264726fa2782288e2706287c277c277c277c277c277c277c277c277c277c277c276725d322d02277246f26aa24d022d02214257c277c277c277c277c277c277c27d0256f256f25d0257c277c277c277c277c277c277c271425d022d022aa24c0269423d022d32267257c277c277c277c277c277c277c277c277c277c277c2706288e27822839299b28d02874287428742874287428742874287428742874287428232823270b284c2727286c27ad272427092874287428742874287428742874280827ba26ba260827742874287428742874287428742809282427ad276c2735284c27fa272327232874287428742874287428742874287428742874287428d0289b283929112a8b29b72985298529852985298529852985298529852985298529d3296f29c1297029a429762992296f29c029852985298529852985298529852933281228122833288529852985298529852985298529c0296f2992297629a8297029ad296f29d32985298529852985298529852985298529852985298529b7298b29112a542be62a0a2bb62be22ae22ae22ae22a702beb2ae02a092be22ae22a982b4c2b8a2b4d2b602b4c2b712b4c2b892be22ae22a652be72adf2a102b222a6f29552955296f29222a102bdf2ae72a652be22ae22a892b4c2b992b4c2b5e2b4d2b852b4c2b982be22ae22a092be02aeb2a702be22ae22ae22ae22ab62b0a2be62a542b672c3a2c482c902c382c382c382cc52c582c202c1b2c2c2c782c382cb32c952cad2c982c9c2c962cad2c952cad2c382cbd2c532c1e2c1b2c2f2c952b072bf42af42a072b952b2f2c1b2c1e2c532cbd2c382cad2c952cb32c962c992c992cb62c952cb32c382c782c2c2c1b2c202c582cc52c382c382c382c902c482c3a2c672c332d0e2d1a2d572d0c2d0c2d0c2d752d172de72ce32cf22c322d0c2d0c2d0c2d0c2d0c2d0c2d0c2d0c2d0c2d0c2d0c2d6e2d132de62ce32cf42c372d652c642c642c652c9f2cf42ce32ce62c132d6e2d0c2d0c2d0c2d0c2d0c2d0c2d0c2d0c2d0c2d0c2d0c2d322df22ce32ce72c172d752d0c2d0c2d0c2d572d1a2d0e2d332daa2763265026502650265026502650265026502650265026502650264127ec25eb25f22598260926eb25eb2504275026502650265026502650265026502650265026502650265026502650265026502650260427eb25eb250926a626f225eb25ec2541275026502650265026502650265026502650265026502650266326aa27ec240321a120a120a120a120a120a120a120a120a120a120a120a1209d24b81fae1ffd1ff4227e20ae1fae1f3a24a120a120a120a120a120a120a120a120a120a120a120a120a120a120a120a120a120a1203a24ae1fae1f7e202823fd1fae1fb81f9d24a120a120a120a120a120a120a120a120a120a120a120a1200321ec245724a61be99dde9dde9dde9dde9dde9dde9dde9dde9dde9dde9dde9dde9dde9dde9dde9dde9dde9dde9dde9dde9dde9dde9dde9dde9dde9dde9dde9dde9dde9dde9dde9dde9dde9dde9dde9dde9dde9dde9dde9dde9dde9dde9dde9dde9dde9dde9dde9dde9dde9dde9dde9dde9dde9dde9dde9dde9dde9dde9de99da61b572407251f1cde911021102110211021102110211021102110211021102110211021102110211021102110211021102110211021102110211021102110211021102110211021102110211021102110211021102110211021102110211021102110211021102110211021102110211021102110211021102110211021de911f1c072507251f1cde91a22388268826882688268826882688268826882688268826882688268826882688268826882688268826882688268826882688268826882688268826882688268826882688268826882688268826882688268826882688268826882688268826882688268826882688268826882688268826a223de911f1c072507251f1cde91a223d127cb29c329bb29b329ac29a5299f29992993298e29db29d229c929c129b929b229ab29a4299d29972992298e29d929d029c829bf29b829b029a929a2299c2996299029e029d729ce29c629be29b629af29a829a1299b2995298f29de29d529cc29c429bc29b429ad29a629a029d127a223de911f1c072507251f1cde91a223d127e829982b932b8e2b8a2b852b812b7e2b7a2b772ba82ba22b9d2b972b922b8d2b892b842b802b7d2b792b772ba72ba12b9b2b962b912b8c2b882b842b802b7c2b792bac2ba62ba02b9a2b952b902b8b2b872b832b7f2b7b2b782baa2ba42b9f2b992b942b8f2b8a2b862be829d127a223de911f1c072507251f1cde91a223d127e829e82bbe2cbc2cba2cb92cb82cb72cb62cb52cc52cc32cc12cbf2cbd2cbc2cba2cb92cb72cb62cb52cb52cc42cc22cc02cbf2cbd2cbb2cba2cb82cb72cb62cb52cc62cc42cc22cc02cbe2cbd2cbb2cba2cb82cb72cb62cb52cc62cc32cc12cc02cbe2cbc2cbb2ce82be829d127a223de911f1c072507251f1cde91a223d127e829e82bf42cb52db42db32db22db12db12db02dbb2db92db82db72db62db52db42db32db22db12db12db02dba2db92db82db62db52db42db32db32db22db12db12dbc2dba2db92db72db62db52db42db32db22db22db12db02dbb2dba2db82db72db62db52df42ce82be829d127a223de911f1c072507251f1cde91a223d127e829e82bf42cf42dc42ec42ec42ec42ec42ec42ec42ec42ec42ec42ec42ec42ec42ec42ec42ec42ec42ec42ec42ec42ec42ec42ec42ec42ec42ec42ec42ec42ec42ec42ec42ec42ec42ec42ec42ec42ec42ec42ec42ec42ec42ec42ec42ec42ec42ec42ef42df42ce82be829d127a223de911f1c072507251f1cde91a223d127e829e82bf42ca32da32da32da32da32da32da32da32da32da32da32da32da32da32da32da32da32da32da32da32da32da32da32da32da32da32da32da32da32da32da32da32da32da32da32da32da32da32da32da32da32da32da32da32da32da32da32da32df42ce82be829d127a223de911f1c072507251f1cde91a223d127e829e82beb2ceb2ceb2ceb2ceb2ceb2ceb2ceb2ceb2ceb2ceb2ceb2ceb2ceb2ceb2ceb2ceb2ceb2ceb2ceb2ceb2ceb2ceb2ceb2ceb2ceb2ceb2ceb2ceb2ceb2ceb2ceb2ceb2ceb2ceb2ceb2ceb2ceb2ceb2ceb2ceb2ceb2ceb2ceb2ceb2ceb2ceb2ceb2ceb2ceb2ce82be829d127a223de911f1c072507251f1cde91a223d127e829e82b332c332c332c332c332c332c332c332c332c332c332c332c332c332c332c332c332c332c332c332c332c332c332c332c332c332c332c332c332c332c332c332c332c332c332c332c332c332c332c332c332c332c332c332c332c332c332c332c332c332ce82be829d127a223de911f1c072507251f1cde91a223d127e829f82af82af82af82af82af82af82af82af82af82af82af82af82af82af82af82af82af82af82af82af82af82af82af82af82af82af82af82af82af82af82af82af82af82af82af82af82af82af82af82af82af82af82af82af82af82af82af82af82af82af82af82ae829d127a223de911f1c072507251f1cde91a223d127892989298929892989298929892989298929892989298929892989298929892989298929892989298929892989298929892989298929892989298929892989298929892989298929892989298929892989298929892989298929892989298929892989298929892989298929d127a223de911f1c072507251f1cde91a223d1271a281a281a281a281a281a281a281a281a281a281a281a281a281a281a281a281a281a281a281a281a281a281a281a281a281a281a281a281a281a281a281a281a281a281a281a281a281a281a281a281a281a281a281a281a281a281a281a281a281a281a281a281a281a28d127a223de911f1c072507251f1cde91a22356255625562556255625562556255625562556255625562556255625562556255625562556255625562556255625562556255625562556255625562556255625562556255625562556255625562556255625562556255625562556255625562556255625562556255625562556255625a223de911f1c0725db221f1cde911521152115211521152115211521152115211521152115211521152115211521152115211521152115211521152115211521152115211521152115211521152115211521152115211521152115211521152115211521152115211521152115211521152115211521152115211521152115211521de911f1cdb221d21d817de91b810b810b810b810b810b810b810b810b810b810b810b810b810b810b810b810b810b810b810b810b810b810b810b810b810b810b810b810b810b810b810b810b810b810b810b810b810b810b810b810b810b810b810b810b810b810b810b810b810b810b810b810b810b810b810b810b810b810de91d8171d210c221f1cf99df99df99df99df99df99df99df99df99df99df99df99df99df99d9f9ee79de79de79d9f9e0b9ef99df99df99df99df99df99df99df99df99df99df99df99df99df99df99df99df99df99df99df99d0b9e9f9ee79de79de79d9f9ef99df99df99df99df99df99df99df99df99df99df99df99df99df99d1f1c0c2207251f1c8d918d918d918d918d918d918d918d918d918d918d918d918d918d911ea28d918d918d91d3a0a3948d918d918d918d918d918d918d918d918d918d918d918d918d918d918d918d918d918d918d918d91a394d3a08d918d918d911da28d918d918d918d918d918d918d918d918d918d918d918d918d918d911f1c07252725141e781c781c781c781c781c781c781c781c781c781c781c781c781c46124ba29d17771c5a1c1aa16e93781c781c781c781c781c781c781c781c781c749b749b781c781c781c781c781c781c781c781c781c6e931aa15a1c781c97174ca24612781c781c781c781c781c781c781c781c781c781c781c781c781c141e272593253d21d020d020d020d020d020d020d020d020d020d120d020d020d0204612119f8c171f21571c119f6e93d020d020d020d020f620d020d020d020d020bf15bf15d020d020d020d020f620d020d020d020d0206e93119f571c21218717119f4612d020d020d020d020d020d020d020d020d020d020d020d020d0203d2193253e26ae23652365236523652365236523652365236523652365236523a124e31f4724d91f4f2217209622e71f3f2465236523652365236523652365234721991e991e472165236523652365236523652365233f24e71f962216204f22d91fe623e31fa124652365236523652365236523652365236523652365236523ae233e26702793253b26772577257725772577257725772577257725772577251227b225d826c925ee25b8259f26b225d32677257725772577257725772577252e23e121e1212e237725772577257725772577257725d326b2259f26b825ee25ca25fe26b225122777257725772577257725772577257725772577257725772593257027c528162851280e280e280e280e280e280e282e281d280e280e280e282829b6281429d728dc28cb282d29b62812290e280e280e2829281a280e280e286f25082508256f250e280e281a2829280e280e280e281229b6282a29cb28ce28d7285029b62828290e280e280e281d282e280e280e280e280e280e280e2851281628c5282e2aab29d629a529a529a529a529a529182a732965299929a529a529a529a529a529a529a529a529a529a529a529a529a5290b2a6e296329a229a5296328442844286328a529a22963296e290b2aa529a529a529a529a529a529a529a529a529a529a529a529a529992965297329182aa529a529a529a529a529d629ab292e2acd2b672b882b622b622b622b622b402c8a2b072bfd2a252bd42b622b622b622b622b622b622b622b622b622b622b622b382c7f2b032bfb2a2b2be12b382a352a352a382ad72a2b2bfb2a032b7f2b382c622b622b622b622b622b622b622b622b622b622b622bd42b252bfd2a072b8a2b402c622b622b622b622b882b672bcd2bc82c9f2cac2c982c982c982c982cef2c872c502c4c2c5d2ca52c982c982c982c982c982c982c982c982c982c982c982ce82c822c4f2c4c2c5f2cab2c082c072c072c082c462c5f2c4c2c4f2c822ce82c982c982c982c982c982c982c982c982c982c982c982ca52c5d2c4c2c502c872cef2c982c982c982c982cac2c9f2cc82c9d2753265226522652265226522652265226522652265226522652264327ee25ed25ed25ed25ed25ed25ed2506275226522652265226522652265226522652265226522652265226522652265226522652260627ed25ed25ed25ed25ed25ed25ee25432752265226522652265226522652265226522652265226522653269d27d624ab20a420a420a420a420a420a420a420a420a420a420a420a4209e24bf1fb51fb51fb51fb51fb51fb51f3b24a420a420a420a420a420a420a420a420a420a420a420a420a420a420a420a420a420a4203b24b51fb51fb51fb51fb51fb51fbf1f9e24a420a420a420a420a420a420a420a420a420a420a420a420ab20d6243e24c613f09de59de59de59de59de59de59de59de59de59de59de59de59de59de59de59de59de59de59de59de59de59de59de59de59de59de59de59de59de59de59de59de59de59de59de59de59de59de59de59de59de59de59de59de59de59de59de59de59de59de59de59de59de59de59de59de59de59de59df09dc6133e2407251f1cde910d210d210d210d210d210d210d210d210d210d210d210d210d210d210d210d210d210d210d210d210d210d210d210d210d210d210d210d210d210d210d210d210d210d210d210d210d210d210d210d210d210d210d210d210d210d210d210d210d210d210d210d210d210d210d210d210d210d21de911f1c072507251f1cde91a22386268626862686268626862686268626862686268626862686268626862686268626862686268626862686268626862686268626862686268626862686268626862686268626862686268626862686268626862686268626862686268626862686268626862686268626862686268626a223de911f1c072507251f1cde91a223d127432943294329432943294329432943294329432943294329432943294329432943294329432943294329432943294329432943294329432943294329432943294329432943294329432943294329432943294329432943294329432943294329432943294329432943294329d127a223de911f1c072507251f1cde91a223d127e829432b432b432b432b432b432b432b432b432b432b432b432b432b432b432b432b432b432b432b432b432b432b432b432b432b432b432b432b432b432b432b432b432b432b432b432b432b432b432b432b432b432b432b432b432b432b432b432b432b432b432b432be829d127a223de911f1c072507251f1cde91a223d127e829e82b1a2d162d122d0e2d0b2d072d042d012d292d252d212d1d2d192d152d112d0e2d0a2d072d032d012d282d242d202d1c2d182d142d102d0d2d092d062d032d2b2d272d232d1f2d1b2d172d132d102d0c2d082d052d022d2b2d262d222d1e2d1a2d162d122de82be829d127a223de911f1c072507251f1cde91a223d127e829e82bf42c002efd2dfa2df82df52df22df02d0f2e0c2e092e052e022eff2dfd2dfa2df72df42df22df02d0f2e0b2e082e052e022eff2dfc2df92df62df42df12d112e0e2e0a2e072e042e012efe2dfb2df92df62df32df12d102e0d2e0a2e072e032e002ef42ce82be829d127a223de911f1c072507251f1cde91a223d127e829e82bf42cf42dee2eec2eea2ee82ee62ee42efc2efa2ef72ef52ef22ef02eee2eeb2ee92ee72ee52ee42efc2ef92ef72ef42ef22eef2eed2eeb2ee92ee72ee52efe2efb2ef92ef62ef42ef12eef2eed2eea2ee82ee62ee42efd2efb2ef82ef62ef32ef42df42ce82be829d127a223de911f1c072507251f1cde91a223d127e829e82bf42cf42d552e552e552e552e552e552e552e552e552e552e552e552e552e552e552e552e552e552e552e552e552e552e552e552e552e552e552e552e552e552e552e552e552e552e552e552e552e552e552e552e552e552e552e552e552e552ef42df42ce82be829d127a223de911f1c072507251f1cde91a223d127e829e82bf42c9d2d9d2d9d2d9d2d9d2d9d2d9d2d9d2d9d2d9d2d9d2d9d2d9d2d9d2d9d2d9d2d9d2d9d2d9d2d9d2d9d2d9d2d9d2d9d2d9d2d9d2d9d2d9d2d9d2d9d2d9d2d9d2d9d2d9d2d9d2d9d2d9d2d9d2d9d2d9d2d9d2d9d2d9d2d9d2d9d2d9d2d9d2d9d2df42ce82be829d127a223de911f1c072507251f1cde91a223d127e829e82be62ce62ce62ce62ce62ce62ce62ce62ce62ce62ce62ce62ce62ce62ce62ce62ce62ce62ce62ce62ce62ce62ce62ce62ce62ce62ce62ce62ce62ce62ce62ce62ce62ce62ce62ce62ce62ce62ce62ce62ce62ce62ce62ce62ce62ce62ce62ce62ce62ce62ce82be829d127a223de911f1c072507251f1cde91a223d127e829e82b2e2c2e2c2e2c2e2c2e2c2e2c2e2c2e2c2e2c2e2c2e2c2e2c2e2c2e2c2e2c2e2c2e2c2e2c2e2c2e2c2e2c2e2c2e2c2e2c2e2c2e2c2e2c2e2c2e2c2e2c2e2c2e2c2e2c2e2c2e2c2e2c2e2c2e2c2e2c2e2c2e2c2e2c2e2c2e2c2e2c2e2c2e2c2e2c2e2c2e2ce82be829d127a223de911f1c072507251f1cde91a223d127e829ee2aee2aee2aee2aee2aee2aee2aee2aee2aee2aee2aee2aee2aee2aee2aee2aee2aee2aee2aee2aee2aee2aee2aee2aee2aee2aee2aee2aee2aee2aee2aee2aee2aee2aee2aee2aee2aee2aee2aee2aee2aee2aee2aee2aee2aee2aee2aee2aee2aee2aee2aee2ae829d127a223de911f1c072507251f1cde91a223d1277f297f297f297f297f297f297f297f297f297f297f297f297f297f297f297f297f297f297f297f297f297f297f297f297f297f297f297f297f297f297f297f297f297f297f297f297f297f297f297f297f297f297f297f297f297f297f297f297f297f297f297f297f297f29d127a223de911f1c07254221491ade91a223d127192819281928192819281928192819281928192819281928192819281928192819281928192819281928192819281928192819281928192819281928192819281928192819281928192819281928192819281928192819281928192819281928192819281928192819281928d127a223de91491a42210421a39cde91a223ad25ad25ad25ad25ad25ad25ad25ad25ad25ad25ad25ad25ad25ad25ad25ad25ad25ad25ad25ad25ad25ad25ad25ad25ad25ad25ad25ad25ad25ad25ad25ad25ad25ad25ad25ad25ad25ad25ad25ad25ad25ad25ad25ad25ad25ad25ad25ad25ad25ad25ad25ad25ad25ad25ad25ad25a223de91a39c04210421f69dde914223422342234223422342234223422342234223422342234223422342234223422342234223422342234223422342234223422342234223422342234223422342234223422342234223422342234223422342234223422342234223422342234223422342234223422342234223422342234223de91f69d04210421f69dde913220322032203220322032203220322032203220322032203220322032203220322032203220322032203220322032203220322032203220322032203220322032203220322032203220322032203220322032203220322032203220322032203220322032203220322032203220322032203220de91f69d04210421759ade91751a751a751a751a751a751a751a751a751a751a751a751a751a751a751a751a751a751a751a751a751a751a751a751a751a751a751a751a751a751a751a751a751a751a751a751a751a751a751a751a751a751a751a751a751a751a751a751a751a751a751a751a751a751a751a751a751a751ade91759a04211c21bc172398bc97bc97bc97bc97bc97bc97bc97bc97bc97bc97bc97bc97bc97bc97bc97bc97bc97bc97bc97bc97bc97bc97bc97bc97bc97bc97bc97bc97bc97bc97bc97bc97bc97bc97bc97bc97bc97bc97bc97bc97bc97bc97bc97bc97bc97bc97bc97bc97bc97bc97bc97bc97bc97bc97bc97bc97bc97bc972398bc171c2125221f1c829d829d829d829d829d829d829d829d829d829d829d829d829d829d199f199fbf9d199f199f969d829d829d829d829d829d829d829d829d829d199f199f829d829d829d829d829d829d829d829d829d969d199f199fbf9d199f199f829d829d829d829d829d829d829d829d829d829d829d829d829d829d1f1c252207251f1c78857885788578857885788578857885788578857885788578857885788578857885788578857885788578857885788578857885788578857885c39fc39f788578857885788578857885788578857885788578857885788578857885788578857885788578857885788578857885788578857885788578851f1c07259a255b21f120f120f120f120f120f120f120f120f120f120f120f120f120f120f120f120f120f120f120f120f120f120f120f120f120f120f120f1201e20e595e5951e20f120f120f120f120f120f120f120f120f120f120f120f120f120f120f120f120f120f120f120f120f120f120f120f120f120f120f120f1205b219a25b327eb258a26d325d325d325d325d325d3256a2534250026d325d325d325d325d325d325d325d325d325d325d325d325d325d32559252c251e26d325e223b922b922e223d325d3252c2559258727d325d325d325d325d325d325d325d325d325d325d325d325d325d32534256a25b227d325d325d325d325d3258a26eb25b3276d29d6280829ba28ba28ba28ba28ba281129442833287528ba28ba28ba28ba28ba28ba28ba28ba28ba28ba28ba28ba28ba2801293f2831288028ba2862275a275a276227ba28802831283f280129ba28ba28ba28ba28ba28ba28ba28ba28ba28ba28ba28ba28ba287528332844281129ba28ba28ba28ba28ba280829d6286d29372bc92aed2a972a972a972a972a912b762adb29cf29ff29cc2a972a972a972a972a972a972a972a972a972a972a972a7e2b6a2ad729cd29072adb2a81297f297f298129332a072acd29d7296a2a7e2b972a972a972a972a972a972a972a972a972a972a972acc2aff29cf29db29762a912b972a972a972a972aed2ac92a372b8c2c602c6e2c3a2c3a2c3a2c3a2c6e2cf12b752b6b2b912b1b2c3a2c3a2c3a2c3a2c3a2c3a2c3a2c3a2c3a2c3a2c3a2c662ce72b722b6a2b982b222c592b572b572b592be12b982b6a2b722be72b662c3a2c3a2c3a2c3a2c3a2c3a2c3a2c3a2c3a2c3a2c3a2c1b2c912b6b2b752bf12b6e2c3a2c3a2c3a2c3a2c6e2c602c8c2c9e2755265426542654265426542654265426542654265426542654264427f025ef25ef25ef25ef25ef25ef2507275426542654265426542654265426542654265426542654265426542654265426542654260727ef25ef25ef25ef25ef25ef25f025442754265426542654265426542654265426542654265426542655269e27d724ae20a820a820a820a820a820a820a820a820a820a820a820a8209e24c71fbd1fbd1fbd1fbd1fbd1fbd1f3c24a820a820a820a820a820a820a820a820a820a820a820a820a820a820a820a820a820a8203c24bd1fbd1fbd1fbd1fbd1fbd1fc71f9e24a820a820a820a820a820a820a820a820a820a820a820a820ae20d7243e24c613f89dec9dec9dec9dec9dec9dec9dec9dec9dec9dec9dec9dec9dec9dec9dec9dec9dec9dec9dec9dec9dec9dec9dec9dec9dec9dec9dec9dec9dec9dec9dec9dec9dec9dec9dec9dec9dec9dec9dec9dec9dec9dec9dec9dec9dec9dec9dec9dec9dec9dec9dec9dec9dec9dec9dec9dec9dec9dec9df89dc6133e2407251f1cde910921092109210921092109210921092109210921092109210921092109210921092109210921092109210921092109210921092109210921092109210921092109210921092109210921092109210921092109210921092109210921092109210921092109210921092109210921092109210921de911f1c072507251f1cde91a22384268426842684268426842684268426842684268426842684268426842684268426842684268426842684268426842684268426842684268426842684268426842684268426842684268426842684268426842684268426842684268426842684268426842684268426842684268426a223de911f1c072507251f1cde91a223d127422942294229422942294229422942294229422942294229422942294229422942294229422942294229422942294229422942294229422942294229422942294229422942294229422942294229422942294229422942294229422942294229422942294229422942294229d127a223de911f1c072507251f1cde91a223d127e829422b422b422b422b422b422b422b422b422b422b422b422b422b422b422b422b422b422b422b422b422b422b422b422b422b422b422b422b422b422b422b422b422b422b422b422b422b422b422b422b422b422b422b422b422b422b422b422b422b422b422b422be829d127a223de911f1c072507251f1cde91a223d127e829e82ba12ca12ca12ca12ca12ca12ca12ca12ca12ca12ca12ca12ca12ca12ca12ca12ca12ca12ca12ca12ca12ca12ca12ca12ca12ca12ca12ca12ca12ca12ca12ca12ca12ca12ca12ca12ca12ca12ca12ca12ca12ca12ca12ca12ca12ca12ca12ca12ca12ca12ce82be829d127a223de911f1c072507251f1cde91a223d127e829e82bf42ca12da12da12da12da12da12da12da12da12da12da12da12da12da12da12da12da12da12da12da12da12da12da12da12da12da12da12da12da12da12da12da12da12da12da12da12da12da12da12da12da12da12da12da12da12da12da12da12df42ce82be829d127a223de911f1c072507251f1cde91a223d127e829e82bf42cf42da12ea12ea12ea12ea12ea12ea12ea12ea12ea12ea12ea12ea12ea12ea12ea12ea12ea12ea12ea12ea12ea12ea12ea12ea12ea12ea12ea12ea12ea12ea12ea12ea12ea12ea12ea12ea12ea12ea12ea12ea12ea12ea12ea12ea12ea12ef42df42ce82be829d127a223de911f1c072507251f1cde91a223d127e829e82bf42cf42df42e072f072f072f072f072f072f072f072f072f072f072f072f072f072f072f072f072f072f072f072f072f072f072f072f072f072f072f072f072f072f072f072f072f072f072f072f072f072f072f072f072f072f072f072ff42ef42df42ce82be829d127a223de911f1c072507251f1cde91a223d127e829e82bf42cf42d502e502e502e502e502e502e502e502e502e502e502e502e502e502e502e502e502e502e502e502e502e502e502e502e502e502e502e502e502e502e502e502e502e502e502e502e502e502e502e502e502e502e502e502e502e502ef42df42ce82be829d127a223de911f1c072507251f1cde91a223d127e829e82bf42c982d982d982d982d982d982d982d982d982d982d982d982d982d982d982d982d982d982d982d982d982d982d982d982d982d982d982d982d982d982d982d982d982d982d982d982d982d982d982d982d982d982d982d982d982d982d982d982df42ce82be829d127a223de911f1c072507251f1cde91a223d127e829e82be12ce12ce12ce12ce12ce12ce12ce12ce12ce12ce12ce12ce12ce12ce12ce12ce12ce12ce12ce12ce12ce12ce12ce12ce12ce12ce12ce12ce12ce12ce12ce12ce12ce12ce12ce12ce12ce12ce12ce12ce12ce12ce12ce12ce12ce12ce12ce12ce12ce12ce82be829d127a223de911f1c07258c211f1cde91a223d127e829e82b292c292c292c292c292c292c292c292c292c292c292c292c292c292c292c292c292c292c292c292c292c292c292c292c292c292c292c292c292c292c292c292c292c292c292c292c292c292c292c292c292c292c292c292c292c292c292c292c292c292ce82be829d127a223de911f1c8c2104211c9ade91a223d127e829ec2aec2aec2aec2aec2aec2aec2aec2aec2aec2aec2aec2aec2aec2aec2aec2aec2aec2aec2aec2aec2aec2aec2aec2aec2aec2aec2aec2aec2aec2aec2aec2aec2aec2aec2aec2aec2aec2aec2aec2aec2aec2aec2aec2aec2aec2aec2aec2aec2aec2aec2aec2ae829d127a223de911c9a04210421f69dde91a223d127a429a429a429a429a429a429a429a429a429a429a429a429a429a429a429a429a429a429a429a429a429a429a429a429a429a429a429a429a429a429a429a429a429a429a429a429a429a429a429a429a429a429a429a429a429a429a429a429a429a429a429a429a429a429d127a223de91f69d04210421f69dde91a223d127852885288528852885288528852885288528852885288528852885288528852885288528852885288528852885288528852885288528852885288528852885288528852885288528852885288528852885288528852885288528852885288528852885288528852885288528d127a223de91f69d04210421f69dde91a223422742274227422742274e2745274227422742274227422742274227492742274227422742274227422742274c2744274227422742274227422742274227472742274227422742274227422742274b2743274227422742274227422742274f2746274227422742274227422742274227a223de91f69d04210421f69dde91a223e225e225e225e225e225e225e225e225e225e225e225e225e225e225e225e225e225e225e225e225e225e225e225e225e225e225e225e225e225e225e225e225e225e225e225e225e225e225e225e225e225e225e225e225e225e225e225e225e225e225e225e225e225e225e225e225a223de91f69d04210421f69dde919724972497249724972497249724972497249724972497249724972497249724972497249724972497249724972497249724972497249724972497249724972497249724972497249724972497249724972497249724972497249724972497249724972497249724972497249724972497249724de91f69d04210421b09bde919a229a229a229a229a229a229a229a229a229a229a229a229a229a229a229a229a229a229a229a229a229a229a229a229a229a229a229a229a229a229a229a229a229a229a229a229a229a229a229a229a229a229a229a229a229a229a229a229a229a229a229a229a229a229a229a229a229a22de91b09b04216421e01bde910520052005200520052005200520052005200520052005200520052005200520052005200520052005200520052005200520052005200520052005200520052005200520052005200520052005200520052005200520052005200520052005200520052005200520052005200520052005200520de91e01b642107251f1cf6914588458845884588458845884588458845884588458845884588458845884588458845884588458845884588458845884588458845884588458845884588458845884588458845884588458845884588458845884588458845884588458845884588458845884588458845884588458845884588f6911f1c07250f25ad1c681868186818681868186818681868185d9768186818681868186818681868186818681868186818681868186818681868185d97681868186818409f409f6818681868185d9768186818681868186818681868186818681868186818681868186818681868185d9768186818681868186818681868186818ad1c0f259b26672447244724472447244724472447248922d0212a24472447244724472447244724472447244724472447244724472447244e22b12156244724a02174217421a02147244724b1214e222a2647244724472447244724472447244724472447244724472447244724d02189225e2647244724472447244724472467249b26ba28092801280128012801280128012826283e261026c126012801280128012801280128012801280128012801280128012812282f260826dd2601280226f825f82502260128dd2608262f2612280128012801280128012801280128012801280128012801280128c12610263e2626280128012801280128012801280928ba28622ae429de29de29de29e129de29b42a6e29b128a228de28d329de29de29de29de29de29de29de29de29e329de29de29a02a5f29ac28a028e728e429cc28c928c928cc289529e728a028ac285f29a02ade29de29de29de29de29de29de29de29df29de29de29d329de28a228b1286e29b42ade29e129de29de29de29e429622a112cc02bbc2bbc2bbc2bbc2bbc2bec2be02a4f2a402a712a312bbc2bbc2bbc2bbc2bbc2bbc2bbc2bbc2bbc2bbc2bbc2bda2bd52a4c2a402a782a3f2ba22a9f2a9f2aa22a3f2b782a402a4c2ad52ada2bbc2bbc2bbc2bbc2bbc2bbc2bbc2bbc2bbc2bbc2bbc2b312b712a402a4f2ae02aec2bbc2bbc2bbc2bbc2bbc2bc02b112ca02757265526552655265526552655265526552655265526552655264627f125f125f125f125f125f125f12509275526552655265526552655265526552655265526552655265526552655265526552655260927f125f125f125f125f125f125f12546275526552655265526552655265526552655265526552655265726a027d724b220ab20ab20ab20ab20ab20ab20ab20ab20ab20ab20ab20ab209f24ce1fc41fc41fc41fc41fc41fc41f3d24ab20ab20ab20ab20ab20ab20ab20ab20ab20ab20ab20ab20ab20ab20ab20ab20ab20ab203d24c41fc41fc41fc41fc41fc41fce1f9f24ab20ab20ab20ab20ab20ab20ab20ab20ab20ab20ab20ab20b220d7243e24c613ff9df39df39df39df39df39df39df39df39df39df39df39df39df39df39df39df39df39df39df39df39df39df39df39df39df39df39df39df39df39df39df39df39df39df39df39df39df39df39df39df39df39df39df39df39df39df39df39df39df39df39df39df39df39df39df39df39df39df39dff9dc6133e2407251f1cde910621062106210621062106210621062106210621062106210621062106210621062106210621062106210621062106210621062106210621062106210621062106210621062106210621062106210621062106210621062106210621062106210621062106210621062106210621062106210621de911f1c072507251f1cde91a22383268326832683268326832683268326832683268326832683268326832683268326832683268326832683268326832683268326832683268326832683268326832683268326832683268326832683268326832683268326832683268326832683268326832683268326832683268326a223de911f1c072507251f1cde91a223d127412941294129412941294129412941294129412941294129412941294129412941294129412941294129412941294129412941294129412941294129412941294129412941294129412941294129412941294129412941294129412941294129412941294129412941294129d127a223de911f1c072507251f1cde91a223d127e829412b412b412b412b412b412b412b412b412b412b412b412b412b412b412b412b412b412b412b412b412b412b412b412b412b412b412b412b412b412b412b412b412b412b412b412b412b412b412b412b412b412b412b412b412b412b412b412b412b412b412b412be829d127a223de911f1c072507251f1cde91a223d127e829e82ba02ca02ca02ca02ca02ca02ca02ca02ca02ca02ca02ca02ca02ca02ca02ca02ca02ca02ca02ca02ca02ca02ca02ca02ca02ca02ca02ca02ca02ca02ca02ca02ca02ca02ca02ca02ca02ca02ca02ca02ca02ca02ca02ca02ca02ca02ca02ca02ca02ca02ce82be829d127a223de911f1c072507251f1cde91a223d127e829e82bf42ca02da02da02da02da02da02da02da02da02da02da02da02da02da02da02da02da02da02da02da02da02da02da02da02da02da02da02da02da02da02da02da02da02da02da02da02da02da02da02da02da02da02da02da02da02da02da02da02df42ce82be829d127a223de911f1c072507251f1cde91a223d127e829e82bf42cf42da02ea02ea02ea02ea02ea02ea02ea02ea02ea02ea02ea02ea02ea02ea02ea02ea02ea02ea02ea02ea02ea02ea02ea02ea02ea02ea02ea02ea02ea02ea02ea02ea02ea02ea02ea02ea02ea02ea02ea02ea02ea02ea02ea02ea02ea02ef42df42ce82be829d127a223de911f1c072507251f1cde91a223d127e829e82bf42cf42df42eba2fba2fba2fba2fba2fba2fba2fba2fba2fba2fba2fba2fba2fba2fba2fba2fba2fba2fba2fba2fba2fba2fba2fba2fba2fba2fba2fba2fba2fba2fba2fba2fba2fba2fba2fba2fba2fba2fba2fba2fba2fba2fba2fba2ff42ef42df42ce82be829d127a223de911f1c072507251f1cde91a223d127e829e82bf42cf42df42e022f022f022f022f022f022f022f022f022f022f022f022f022f022f022f022f022f022f022f022f022f022f022f022f022f022f022f022f022f022f022f022f022f022f022f022f022f022f022f022f022f022f022f022ff42ef42df42ce82be829d127a223de911f1c0725ed211f1cde91a223d127e829e82bf42cf42d4b2e4b2e4b2e4b2e4b2e4b2e4b2e4b2e4b2e4b2e4b2e4b2e4b2e4b2e4b2e4b2e4b2e4b2e4b2e4b2e4b2e4b2e4b2e4b2e4b2e4b2e4b2e4b2e4b2e4b2e4b2e4b2e4b2e4b2e4b2e4b2e4b2e4b2e4b2e4b2e4b2e4b2e4b2e4b2e4b2e4b2ef42df42ce82be829d127a223de911f1ced210421e395de91a223d127e829e82bf42c932d932d932d932d932d932d932d932d932d932d932d932d932d932d932d932d932d932d932d932d932d932d932d932d932d932d932d932d932d932d932d932d932d932d932d932d932d932d932d932d932d932d932d932d932d932d932d932df42ce82be829d127a223de91e39504210421f69dde91a223d127e829e82be02ce02ce02ce02ce02ce02ce02ce02ce02ce02ce02ce02ce02ce02ce02ce02ce02ce02ce02ce02ce02ce02ce02ce02ce02ce02ce02ce02ce02ce02ce02ce02ce02ce02ce02ce02ce02ce02ce02ce02ce02ce02ce02ce02ce02ce02ce02ce02ce02ce02ce82be829d127a223de91f69d04210421f69dde91a223d127e829e82b392c392c392c392c392c392c392c392c392c392c392c392c392c392c392c392c392c392c392c392c392c392c392c392c392c392c392c392c392c392c392c392c392c392c392c392c392c392c392c392c392c392c392c392c392c392c392c392c392c392ce82be829d127a223de91f69d04210421f69dde91a223d127e829482b482b482b482b482b482b482b482b482b482b482b482b482b482b482b482b482b482b482b482b482b482b482b482b482b482b482b482b482b482b482b482b482b482b482b482b482b482b482b482b482b482b482b482b482b482b482b482b482b482b482b482be829d127a223de91f69d04210421f69dde91a223d127e829492a492a492a492a492a492a492a492a492a492a492a492a492a492a492a492a492a492a492a492a492a492a492a492a492a492a492a492a492a492a492a492a492a492a492a492a492a492a492a492a492a492a492a492a492a492a492a492a492a492a492a492ae829d127a223de91f69d04210421f69dde91a223d127852989298e2993299a297c297c297c297c297c297c297c297c297c297c297c297c297c297c297c297c297c297c297c297c297c297c297c297c297c297c297c297c297c297c297c297c297c297c297c297c297c297c297c297c297c297c297c297c297c297c297c297c297c29d127a223de91f69d042104216d9dde91a223d127d528d528d528d528d528d528d528d528d528d528d528d528d528d528d528d528d528d528d528d528d528d528d528d528d528d528d528d528d528d528d528d528d528d528d528d528d528d528d528d528d528d528d528d528d528d528d528d528d528d528d528d528d528d528d127a223de916d9d04212721b518de91a22330283028302830283028302830283028302830283028302830283028302830283028302830283028302830283028302831283028302830283028302830283028302830283028302830283028302830283028302830283028302830283028302830283028302830283028302830283028a223de91b518272121231f1cde91a22316271627162716271627162716271627162716271627162716271627162716271627162716271627162716271627162716271627162716271627162716271627162716271627162716271627162716271627162716271627162716271627162716271627162716271627162716271627a223de911f1c212307251f1cde91a22333253325332533253325332533253325332533253325332533253325332533253325332533253325332533253325332533253325332533253325332533253325332533253325332533253325332533253325332533253325332533253325332533253325332533253325332533253325a223de911f1c072507251f1cde91e21de21de21de21de21de21de21de21de21de21de21de21de21de21de21de21de21de21de21de21de21de21de21de21de21de21de21de21de21de21de21de21de21de21de21de21de21de21de21de21de21de21de21de21de21de21de21de21de21de21de21de21de21de21de21de21de21de21dde911f1c072507251f1c269b269b269b269b269b269b269b269b0a9d269b269b269b269b269b269b269b269b269b269b269b269b269b269b269b269b739c269b269b269b45a045a0269b269b269b739c269b269b269b269b269b269b269b269b269b269b269b269b269b269b269b269b0a9d269b269b269b269b269b269b269b269b1f1c0725c6250922ac21ac21ac21ac21ac21ac21ac21221f8616ac21ac21ac21ac21ac21ac21ac21ac21ac21ac21ac21ac21ac21ac21ac21411e8616ac21ac21ac218c178c17ac21ac21ac218616411eac21ac21ac21ac21ac21ac21ac21ac21ac21ac21ac21ac21ac21ac21ac218616221fac21ac21ac21ac21ac21ac21ac210922c6252228a526902690269026902690269026ca2607244623c92490269026902690269026902690269026902690269026902690269a26e0234623ef249026ad2433243324ad249026ef244623e0239a269026902690269026902690269026902690269026902690269026c92446230724ca26902690269026902690269026a5262228ba292c2925292529252925292529252994285a272527ca27252925292529252925292529252925292529252925292529252982284d272527e22725291828ee27ee2718282529e22725274d2782282529252925292529252925292529252925292529252925292529ca2725275a2794282529252925292529252925292c29ba29732b082b032b032b032b032b032b4c2b252a81297429a7297f2a032b032b032b032b032b032b032b032b032b032b032b392b182a7d297229af298f2aeb29d429d429eb298f2aaf2972297d29182a392b032b032b032b032b032b032b032b032b032b032b032b7f2aa72974298129252a4c2b032b032b032b032b032b082b732ba12758265726572657265726572657265726572657265726572657264727f325f225f225f225f225f225f2250a275726572657265726572657265726572657265726572657265726572657265726572657260a27f225f225f225f225f225f225f32547275726572657265726572657265726572657265726572657265826a127d824b520af20af20af20af20af20af20af20af20af20af20af20af20a024d51fcb1fcb1fcb1fcb1fcb1fcb1f3d24af20af20af20af20af20af20af20af20af20af20af20af20af20af20af20af20af20af203d24cb1fcb1fcb1fcb1fcb1fcb1fd51fa024af20af20af20af20af20af20af20af20af20af20af20af20b520d8243e24c613069efa9dfa9dfa9dfa9dfa9dfa9dfa9dfa9dfa9dfa9dfa9dfa9dfa9dfa9dfa9dfa9dfa9dfa9dfa9dfa9dfa9dfa9dfa9dfa9dfa9dfa9dfa9dfa9dfa9dfa9dfa9dfa9dfa9dfa9dfa9dfa9dfa9dfa9dfa9dfa9dfa9dfa9dfa9dfa9dfa9dfa9dfa9dfa9dfa9dfa9dfa9dfa9dfa9dfa9dfa9dfa9dfa9dfa9d069ec6133e2407251f1cde910221022102210221022102210221022102210221022102210221022102210221022102210221022102210221022102210221022102210221022102210221022102210221022102210221022102210221022102210221022102210221022102210221022102210221022102210221022102210221de911f1c072507251f1cde91a22381268126812681268126812681268126812681268126812681268126812681268126812681268126812681268126812681268126812681268126812681268126812681268126812681268126812681268126812681268126812681268126812681268126812681268126812681268126a223de911f1c072507251f1cde91a223d127402940294029402940294029402940294029402940294029402940294029402940294029402940294029402940294029402940294029402940294029402940294029402940294029402940294029402940294029402940294029402940294029402940294029402940294029d127a223de911f1c072507251f1cde91a223d127e829402b402b402b402b402b402b402b402b402b402b402b402b402b402b402b402b402b402b402b402b402b402b402b402b402b402b402b402b402b402b402b402b402b402b402b402b402b402b402b402b402b402b402b402b402b402b402b402b402b402b402b402be829d127a223de911f1c072507251f1cde91a223d127e829e82ba02ca02ca02ca02ca02ca02ca02ca02ca02ca02ca02ca02ca02ca02ca02ca02ca02ca02ca02ca02ca02ca02ca02ca02ca02ca02ca02ca02ca02ca02ca02ca02ca02ca02ca02ca02ca02ca02ca02ca02ca02ca02ca02ca02ca02ca02ca02ca02ca02ca02ce82be829d127a223de911f1c072507251f1cde91a223d127e829e82bf42ca02da02da02da02da02da02da02da02da02da02da02da02da02da02da02da02da02da02da02da02da02da02da02da02da02da02da02da02da02da02da02da02da02da02da02da02da02da02da02da02da02da02da02da02da02da02da02da02df42ce82be829d127a223de911f1c072507251f1cde91a223d127e829e82bf42cf42da02ea02ea02ea02ea02ea02ea02ea02ea02ea02ea02ea02ea02ea02ea02ea02ea02ea02ea02ea02ea02ea02ea02ea02ea02ea02ea02ea02ea02ea02ea02ea02ea02ea02ea02ea02ea02ea02ea02ea02ea02ea02ea02ea02ea02ea02ef42df42ce82be829d127a223de911f1c072562221f1cde91a223d127e829e82bf42cf42df42ea02fa02fa02fa02fa02fa02fa02fa02fa02fa02fa02fa02fa02fa02fa02fa02fa02fa02fa02fa02fa02fa02fa02fa02fa02fa02fa02fa02fa02fa02fa02fa02fa02fa02fa02fa02fa02fa02fa02fa02fa02fa02fa02fa02ff42ef42df42ce82be829d127a223de911f1c622204211507de91a223d127e829e82bf42cf42df42eb52fb52fb52fb52fb52fb52fb52fb52fb52fb52fb52fb52fb52fb52fb52fb52fb52fb52fb52fb52fb52fb52fb52fb52fb52fb52fb52fb52fb52fb52fb52fb52fb52fb52fb52fb52fb52fb52fb52fb52fb52fb52fb52fb52ff42ef42df42ce82be829d127a223de91150704210421f69dde91a223d127e829e82bf42cf42df42efd2efd2efd2efd2efd2efd2efd2efd2efd2efd2efd2efd2efd2efd2efd2efd2efd2efd2efd2efd2efd2efd2efd2efd2efd2efd2efd2efd2efd2efd2efd2efd2efd2efd2efd2efd2efd2efd2efd2efd2efd2efd2efd2efd2ef42ef42df42ce82be829d127a223de91f69d04210421f69dde91a223d127e829e82bf42cf42d4a2e4a2e4a2e4a2e4a2e4a2e4a2e4a2e4a2e4a2e4a2e4a2e4a2e4a2e4a2e4a2e4a2e4a2e4a2e4a2e4a2e4a2e4a2e4a2e4a2e4a2e4a2e4a2e4a2e4a2e4a2e4a2e4a2e4a2e4a2e4a2e4a2e4a2e4a2e4a2e4a2e4a2e4a2e4a2e4a2e4a2ef42df42ce82be829d127a223de91f69d04210421f69dde91a223d127e829e82bf42ca02da02da02da02da02da02da02da02da02da02da02da02da02da02da02da02da02da02da02da02da02da02da02da02da02da02da02da02da02da02da02da02da02da02da02da02da02da02da02da02da02da02da02da02da02da02da02da02df42ce82be829d127a223de91f69d04210421f69dde91a223d127e829e82b062d062d062d062d062d062d062d062d062d062d062d062d062d062d062d062d062d062d062d062d062d062d062d062d062d062d062d062d062d062d062d062d062d062d062d062d062d062d062d062d062d062d062d062d062d062d062d062d062d062de82be829d127a223de91f69d04210421f69dde91a223d127e829e82b7e2c7e2c7e2c7e2c7e2c7e2c7e2c7e2c7e2c7e2c7e2c7e2c7e2c7e2c7e2c7e2c7e2c7e2c7e2c7e2c7e2c7e2c7e2c7e2c7e2c7e2c7e2c7e2c7e2c7e2c7e2c7e2c7e2c7e2c7e2c7e2c7e2c7e2c7e2c7e2c7e2c7e2c7e2c7e2c7e2c7e2c7e2c7e2c7e2c7e2ce82be829d127a223de91f69d04210421f69dde91a223d127e829e82b0b2c0b2c0c2c0b2c0b2c0b2c0b2c0b2c0b2c0b2c0b2c0b2c0b2c0b2c0b2c0b2c0b2c0b2c0b2c0c2c0b2c0b2c0b2c0b2c0b2c0b2c0b2c0b2c0b2c0b2c0b2c0b2c0b2c0b2c0b2c0b2c0c2c0b2c0b2c0b2c0b2c0b2c0b2c0b2c0c2c0b2c0b2c0b2c0b2c0b2ce82be829d127a223de91f69d042108212c12de91a223d127e8295f2b602b622b642b5f2b5f2b5f2b5f2b5f2b5f2b5f2b5f2b5f2b5f2b5f2b5f2b5f2b5f2b5f2b5f2b5f2b5f2b5f2b5f2b5f2b5f2b5f2b5f2b5f2b5f2b5f2b5f2b5f2b5f2b5f2b5f2b5f2b5f2b5f2b5f2b5f2b5f2b5f2b5f2b5f2b5f2b5f2b5f2b5f2b5f2b5f2b5f2be829d127a223de912c12082197221f1cde91a223d127e829ba2aba2aba2aba2aba2aba2aba2aba2aba2aba2aba2aba2aba2aba2aba2aba2aba2aba2aba2aba2aba2aba2aba2aba2aba2aba2aba2aba2aba2aba2aba2aba2aba2aba2aba2aba2aba2aba2aba2aba2aba2aba2aba2aba2aba2aba2aba2aba2aba2aba2aba2aba2ae829d127a223de911f1c972207251f1cde91a223d127152a152a152a152a152a152a152a152a152a152a152a152a152a152a152a152a152a152a152a152a152a152a152a232a1f2a1c2a192a172a152a152a152a152a152a152a152a152a152a152a152a152a152a152a152a152a152a152a152a152a152a152a152a152a152a152ad127a223de911f1c072507251f1cde91a223d127302930293029302930293029302930293029302930293029302930293029302930293029302930293029302930293029302930293029302930293029302930293029302930293029302930293029302930293029302930293029302930293029302930293029302930293029d127a223de911f1c072507251f1cde91a223a526a526a526a526a526a526a526a526a526a526a526a526a526a526a526a526a526a526a526a526a526a526a526a526a526a526a526a526a526a526a526a526a526a526a526a526a526a526a526a526a526a526a526a526a526a526a526a526a526a526a526a526a526a526a526a526a223de911f1c072507251f1cde91d521d521d521d521d521d521d521d521d521d521d521d521d521d521d521d521d521d521d521d521d521d521d921e221f2210822d521d521d521d521d521d521d521d521d521d521d521d521d521d521d521d521d521d521d521d521d521d521d521d521d521d521d521d521d521d521d521d521de911f1c072507251f1cac9a829a829a829a829a829a829a829a829a829a829a829a829a829a829a829a829a829a829a829a829a829a829a829a829a829a829a829a829a829a829a829a829a829a829a829a829a829a829a829a829a829a829a829a829a829a829a829a829a829a829a829a829a829a829a829a829a829a829aac9a1f1c07253825ed1e901d901d901d901d901d901d901d901d1b9b901d901d901d901d901d901d901d901d901d901d901d901d901d901d901d901d4c99901d901d901dc89bc89b901d901d901d4c99901d901d901d901d901d901d901d901d901d901d901d901d901d901d901d901d1b9b901d901d901d901d901d901d901d901ded1e38252f273b251f251f251f251f251f251f251026402151205d231f251f251f251f251f251f251f251f251f251f251f251f251f25d925f6202720c0231f251f25832183211f251f25c0232720f620d9251f251f251f251f251f251f251f251f251f251f251f251f251f255d235120402110261f251f251f251f251f251f253b252f27292989286c286c286c286c286c286c280a28f525c4257e266c286c286c286c2870286c286c286c286c286c286c286c286c28ed27e525bc259a266c28ce267c267c26ce266c289a26bc25e525ed276c286c286c286d286c286c286c286c286c286c286c286c286c287e26c425f5250a286c286c286c286c286c286c2889282929f42a7d2a4e2a6b28c327c227c227c2278429cb28bc28f628c227c227c227c227c227c227c227c227c227c227c227c227c2277529c628b9280029c227c2272a292a29c227c2270029b928c6287529c227c227c227c227c227c227c227c227c227c227c227c227c227f628bc28cb288429c227c227c227c3276b284e2a7d2af42aa3275a265926592659265926592659265926592659265926592659264927f525f425f425f425f425f425f4250c275926592659265926592659265926592659265926592659265926592659265926592659260c27f425f425f425f425f425f425f52549275926592659265926592659265926592659265926592659265a26a327d924b920b320b320b320b320b320b320b320b320b320b320b320b320a124dc1fd21fd21fd21fd21fd21fd21f3e24b320b320b320b320b320b320b320b320b320b320b320b320b320b320b320b320b320b3203e24d21fd21fd21fd21fd21fd21fdc1fa124b320b320b320b320b320b320b320b320b320b320b320b320b920d9243e24c6130d9e029e029e029e029e029e029e029e029e029e029e029e029e029e029e029e029e029e029e029e029e029e029e029e029e029e029e029e029e029e029e029e029e029e029e029e029e029e029e029e029e029e029e029e029e029e029e029e029e029e029e029e029e029e029e029e029e029e029e0d9ec6133e2407251f1cde91fe20fe20fe20fe20fe20fe20fe20fe20fe20fe20fe20fe20fe20fe20fe20fe20fe20fe20fe20fe20fe20fe20fe20fe20fe20fe20fe20fe20fe20fe20fe20fe20fe20fe20fe20fe20fe20fe20fe20fe20fe20fe20fe20fe20fe20fe20fe20fe20fe20fe20fe20fe20fe20fe20fe20fe20fe20fe20de911f1c072507251f1cde91a2237f267f267f267f267f267f267f267f267f267f267f267f267f267f267f267f267f267f267f267f267f267f267f267f267f267f267f267f267f267f267f267f267f267f267f267f267f267f267f267f267f267f267f267f267f267f267f267f267f267f267f267f267f267f267f267f26a223de911f1c072507251f1cde91a223d1273f293f293f293f293f293f293f293f293f293f293f293f293f293f293f293f293f293f293f293f293f293f293f293f293f293f293f293f293f293f293f293f293f293f293f293f293f293f293f293f293f293f293f293f293f293f293f293f293f293f293f293f293f293f29d127a223de911f1c072507251f1cde91a223d127e8293f2b3f2b3f2b3f2b3f2b3f2b3f2b3f2b3f2b3f2b3f2b3f2b3f2b3f2b3f2b3f2b3f2b3f2b3f2b3f2b3f2b3f2b3f2b3f2b3f2b3f2b3f2b3f2b3f2b3f2b3f2b3f2b3f2b3f2b3f2b3f2b3f2b3f2b3f2b3f2b3f2b3f2b3f2b3f2b3f2b3f2b3f2b3f2b3f2b3f2b3f2b3f2be829d127a223de911f1c072507251f1cde91a223d127e829e82b9f2c9f2c9f2c9f2c9f2c9f2c9f2c9f2c9f2c9f2c9f2c9f2c9f2c9f2c9f2c9f2c9f2c9f2c9f2c9f2c9f2c9f2c9f2c9f2c9f2c9f2c9f2c9f2c9f2c9f2c9f2c9f2c9f2c9f2c9f2c9f2c9f2c9f2c9f2c9f2c9f2c9f2c9f2c9f2c9f2c9f2c9f2c9f2c9f2c9f2ce82be829d127a223de911f1c0725e6221f1cde91a223d127e829e82bf42c9f2d9f2d9f2d9f2d9f2d9f2d9f2d9f2d9f2d9f2d9f2d9f2d9f2d9f2d9f2d9f2d9f2d9f2d9f2d9f2d9f2d9f2d9f2d9f2d9f2d9f2d9f2d9f2d9f2d9f2d9f2d9f2d9f2d9f2d9f2d9f2d9f2d9f2d9f2d9f2d9f2d9f2d9f2d9f2d9f2d9f2d9f2d9f2df42ce82be829d127a223de911f1ce6221621c616de91a223d127e829e82bf42cf42d9f2e9f2e9f2e9f2e9f2e9f2e9f2e9f2e9f2e9f2e9f2e9f2e9f2e9f2e9f2e9f2e9f2e9f2e9f2e9f2e9f2e9f2e9f2e9f2e9f2e9f2e9f2e9f2e9f2e9f2e9f2e9f2e9f2e9f2e9f2e9f2e9f2e9f2e9f2e9f2e9f2e9f2e9f2e9f2e9f2e9f2ef42df42ce82be829d127a223de91c61616210421f69dde91a223d127e829e82bf42cf42df42e9f2f9f2f9f2f9f2f9f2f9f2f9f2f9f2f9f2f9f2f9f2f9f2f9f2f9f2f9f2f9f2f9f2f9f2f9f2f9f2f9f2f9f2f9f2f9f2f9f2f9f2f9f2f9f2f9f2f9f2f9f2f9f2f9f2f9f2f9f2f9f2f9f2f9f2f9f2f9f2f9f2f9f2f9f2f9f2ff42ef42df42ce82be829d127a223de91f69d04210421f69dde91a223d127e829e82bf42cf42df42ef42f333033303330333033303330333033303330333033303330333033303330333033303330333033303330333033303330333033303330333033303330333033303330333033303330333033303330333033303330f42ff42ef42df42ce82be829d127a223de91f69d04210421f69dde91a223d127e829e82bf42cf42df42eb32fb32fb32fb32fb32fb32fb32fb32fb32fb32fb32fb32fb32fb32fb32fb32fb32fb32fb32fb32fb32fb32fb32fb32fb32fb32fb32fb32fb32fb32fb32fb32fb32fb32fb32fb32fb32fb32fb32fb32fb32fb32fb32fb32ff42ef42df42ce82be829d127a223de91f69d04210421f69dde91a223d127e829e82bf42cf42df42e082f082f082f082f082f082f082f082f082f082f082f082f082f082f082f082f082f082f082f082f082f082f082f082f082f082f082f082f082f082f082f082f082f082f082f082f082f082f082f082f082f082f082f082ff42ef42df42ce82be829d127a223de91f69d04210421f69dde91a223d127e829e82bf42cf42d6b2e6b2e6b2e6b2e6b2e6b2e6b2e6b2e6b2e6b2e6b2e6b2e6b2e6b2e6b2e6b2e6b2e6b2e6b2e6b2e6b2e6b2e6b2e6b2e6b2e6b2e6b2e6b2e6b2e6b2e6b2e6b2e6b2e6b2e6b2e6b2e6b2e6b2e6b2e6b2e6b2e6b2e6b2e6b2e6b2e6b2ef42df42ce82be829d127a223de91f69d04210421f69dde91a223d127e829e82bf42cdd2ddd2ddd2ddd2ddd2ddd2ddd2ddd2ddd2ddd2ddd2ddd2ddd2ddd2ddd2ddd2ddd2ddd2ddd2ddd2ddd2ddd2ddd2ddd2ddd2ddd2ddd2ddd2ddd2ddd2ddd2ddd2ddd2ddd2ddd2ddd2ddd2ddd2ddd2ddd2ddd2ddd2ddd2ddd2ddd2ddd2ddd2ddd2df42ce82be829d127a223de91f69d042104217d92de91a223d127e829e82bf42c612d612d612d612d612d612d612d612d612d612d612d612d612d612d612d612d612d612d612d612d612d612d612d612d612d612d612d612d612d612d612d612d612d612d612d612d612d612d612d612d612d612d612d612d612d612d612d612df42ce82be829d127a223de917d9204211c221f1cde91a223d127e829e82b032d052d082df92cf92cf92cf92cf92cf92cf92cf92cf92cf92cf92cf92cf92cf92cf92cf92cf92cf92cf92cf92cf92cf92cf92cf92cf92cf92cf92cf92cf92cf92cf92cf92cf92cf92cf92cf92cf92cf92cf92cf92cf92cf92cf92cf92cf92cf92cf92ce82be829d127a223de911f1c1c2207251f1cde91a223d127e829e82ba22ca22ca22ca22ca22ca22ca22ca22ca22ca22ca22ca22ca22ca22ca22ca22ca22ca22ca22ca22ca22ca22ca22ca22ca22ca22ca22ca22ca22ca22ca22ca22ca22ca22ca22ca22ca22ca22ca22ca22ca22ca22ca22ca22ca22ca22ca22ca22ca22ca22ce82be829d127a223de911f1c072507251f1cde91a223d127e829e82b4f2c4f2c4f2c4f2c4f2c4f2c4f2c4f2c4f2c4f2c4f2c4f2c4f2c4f2c4f2c4f2c4f2c4f2c4f2c4f2c4f2c4f2c4f2c4f2c4f2c4f2c4f2c4f2c4f2c4f2c4f2c4f2c4f2c4f2c4f2c4f2c4f2c4f2c4f2c4f2c4f2c4f2c4f2c4f2c4f2c4f2c4f2c4f2c4f2c4f2ce82be829d127a223de911f1c072507251f1cde91a223d127e829c62bc62bc62bc62bc62bc62bc62bc62bc62bc62bc62bc62bc62bc62bc62bc62bc62bc62bc62bc62bc62bc62bc62bc62bc62bc62bc62bc62bc62bc62bc62bc62bc62bc62bc62bc62bc62bc62bc62bc62bc62bc62bc62bc62bc62bc62bc62bc62bc62bc62bc62bc62be829d127a223de911f1c072507251f1cde91a223d127e929e929e929e929e929e929e929e929e929e929e929e929e929e929e929e929e929ea29eb29ed29ef29f129f429f729e929e929e929e929e929e929e929e929e929e929e929e929e929e929e929e929e929e929e929e929e929e929e929e929e929e929e929e929e929e929d127a223de911f1c07250925411c3614a623d2270b280b2811280f280d280c280b280b280b280b280b280b280b280b280b280b280b280b280b280b280b280b280b280b280b280b280b280b280b280b280b280b280b280b280b280b280b280b280b280b280b280b280b280b280b280b280b280b280b280b280b280b280b280b28d227a6233614411c09251625171df919c7235c245c245c245c245c245c245c245c245c245c245c245c245c245c245c245c245c245c245c245c245c245c245c245c245c245c245c245c245c245c245c245c245c245c245c245c245c245c245c245c245c245c245c245c245c245c245c245c245c245c245c245c245c245c245c245c24c723f919171d16252d256b1e0c190c190c190c190c190c190c190c190c190c190c190c190c190c190c190c190c190c190c190c190c190c190c190c190c190c190c190c190c190c190c190c190c190c190c190c190c190c190c190c190c190c190c190c190c190c190c190c190c190c190c190c190c190c190c190c190c190c190c190c196b1e2d25a4256021a816d58ad68ad68ad68ad68ad68ad68a1e9bd68ad68ad68ad68ad68ad68ad68ad68ad68ad68ad68ad68ad68ad68ad68ad68a5199d58ad58ad58ad58ad58ad58ad58ad58a5199d68ad68ad68ad68ad68ad68ad68ad68ad68ad68ad68ad68ad68ad68ad68ad68a1e9bd68ad68ad68ad68ad68ad68ad58aa8166021a4256727572503245a235a235a235a235a235a23411f31185a235a235a235a235a235a235a235a235a235a235a235a235a235a235a23641e31185a235a23cc2268216821cc225a235a233118641e5a235a235a235a235a235a235a235a235a235a235a235a235a235a235a233118411f5a235a235a235a235a235a230324572567273d297c28ea27ec2415211021102110211021982441241021102110211021102110211021102110211021102110211021102110218324412410211021102151265126102110211021412483241021102110211021102110211021102110211021102110211021102110214124982410211021102110211521ec24ea277c283d29032b622ac9287826e824e724e724e724e724e724e724e724e724e724e724e724e724e724e724e724e724e724e724e724e724e724e724e724e724e724e724e724e724e724e724e724e724e724e724e724e724e724e724e724e724e724e724e724e724e724e724e724e724e724e724e724e724e724e724e8247826c928622a032ba4275c265b265b265b265b265b265b265b265b265b265b265b265b264a27f725f625f625f625f625f625f6250d275b265b265b265b265b265b265b265b265b265b265b265b265b265b265b265b265b265b260d27f625f625f625f625f625f625f7254a275b265b265b265b265b265b265b265b265b265b265b265b265c26a427da24bd20b620b620b620b620b620b620b620b620b620b620b620b620a124e31fd91fd91fd91fd91fd91fd91f3f24b620b620b620b620b620b620b620b620b620b620b620b620b620b620b620b620b620b6203f24d91fd91fd91fd91fd91fd91fe31fa124b620b620b620b620b620b620b620b620b620b620b620b620bd20da243e24c613149e099e099e099e099e099e099e099e099e099e099e099e099e099e099e099e099e099e099e099e099e099e099e099e099e099e099e099e099e099e099e099e099e099e099e099e099e099e099e099e099e099e099e099e099e099e099e099e099e099e099e099e099e099e099e099e099e099e099e149ec6133e2407251f1cde91fb20fb20fb20fb20fb20fb20fb20fb20fb20fb20fb20fb20fb20fb20fb20fb20fb20fb20fb20fb20fb20fb20fb20fb20fb20fb20fb20fb20fb20fb20fb20fb20fb20fb20fb20fb20fb20fb20fb20fb20fb20fb20fb20fb20fb20fb20fb20fb20fb20fb20fb20fb20fb20fb20fb20fb20fb20fb20de911f1c072507251f1cde91a2237d267d267d267d267d267d267d267d267d267d267d267d267d267d267d267d267d267d267d267d267d267d267d267d267d267d267d267d267d267d267d267d267d267d267d267d267d267d267d267d267d267d267d267d267d267d267d267d267d267d267d267d267d267d267d267d26a223de911f1c072507251f1cde91a223d1273e293e293e293e293e293e293e293e293e293e293e293e293e293e293e293e293e293e293e293e293e293e293e293e293e293e293e293e293e293e293e293e293e293e293e293e293e293e293e293e293e293e293e293e293e293e293e293e293e293e293e293e293e293e29d127a223de911f1c072507251f1cde91a223d127e8293e2b3e2b3e2b3e2b3e2b3e2b3e2b3e2b3e2b3e2b3e2b3e2b3e2b3e2b3e2b3e2b3e2b3e2b3e2b3e2b3e2b3e2b3e2b3e2b3e2b3e2b3e2b3e2b3e2b3e2b3e2b3e2b3e2b3e2b3e2b3e2b3e2b3e2b3e2b3e2b3e2b3e2b3e2b3e2b3e2b3e2b3e2b3e2b3e2b3e2b3e2b3e2be829d127a223de911f1c072547218d1ade91a223d127e829e82b9f2c9f2c9f2c9f2c9f2c9f2c9f2c9f2c9f2c9f2c9f2c9f2c9f2c9f2c9f2c9f2c9f2c9f2c9f2c9f2c9f2c9f2c9f2c9f2c9f2c9f2c9f2c9f2c9f2c9f2c9f2c9f2c9f2c9f2c9f2c9f2c9f2c9f2c9f2c9f2c9f2c9f2c9f2c9f2c9f2c9f2c9f2c9f2c9f2c9f2ce82be829d127a223de918d1a47210421819cde91a223d127e829e82bf42c9f2d9f2d9f2d042eff2d252e002e272e9f2d9f2d9f2d9f2d142efc2d0f2efc2d102e9f2d9f2d9f2d9f2d9f2d022e012e012e022e9f2d9f2d9f2d9f2d9f2d102efc2d122efc2d142e9f2d9f2d9f2d9f2d272e002e032eff2d042e9f2d9f2d9f2df42ce82be829d127a223de91819c04210421f69dde91a223d127e829e82bf42cf42d9f2e9f2ef22eef2e0f2fef2e112f562f9f2e9f2e9f2e002fec2efc2eec2efd2e322f9f2e9f2e9f2e9f2ef02ef02ef02ef02e162f9f2e9f2e9f2e9f2efd2eec2eff2eec2e002f382f9f2e9f2e9f2e112fef2ef22eef2ef22e1a2f9f2ef42df42ce82be829d127a223de91f69d04210421f69dde91a223d127e829e82bf42cf42df42e0430e52fe22fff2fe22f00301e309f2f9f2f1130f12fdf2fee2fdf2fef2f0e309f2f9f2f9f2f0230e42fe32fe32fe42f02309f2f9f2f9f2f0e30ef2fdf2ff02fdf2ff12f11309f2f9f2f1e300030e22fe52fe22fe52f0430f42ef42df42ce82be829d127a223de91f69d04210421f69dde91a223d127e829e82bf42cf42df42ef42f6d306c3079306c30793094304f304f30893073306b3071306b30713086304f304f304f307b306c306c306c306c307b304f304f304f30863071306b3072306b30733089304f304f30943079306c306d306c306d30f42ff42ef42df42ce82be829d127a223de91f69d04210421f69dde91a223d127e829e82bf42cf42df42ef42f383038303830383038303830383038303830383038303830383038303830383038303830383038303830383038303830383038303830383038303830383038303830383038303830383038303830383038303830f42ff42ef42df42ce82be829d127a223de91f69d04210421f69dde91a223d127e829e82bf42cf42df42ed22fd22fd22fd22fd22fd22fd22fd22fd22fd22fd22fd22fd22fd22fd22fd22fd22fd22fd22fd22fd22fd22fd22fd22fd22fd22fd22fd22fd22fd22fd22fd22fd22fd22fd22fd22fd22fd22fd22fd22fd22fd22fd22fd22ff42ef42df42ce82be829d127a223de91f69d04210421c998df85a223d127e829e82bf42cf42df42e3e2f3e2f3e2f3e2f3e2f3e2f3e2f3e2f3e2f3e2f3e2f3e2f3e2f3e2f3e2f3e2f3e2f3e2f3e2f3e2f3e2f3e2f3e2f3e2f3e2f3e2f3e2f3e2f3e2f3e2f3e2f3e2f3e2f3e2f3e2f3e2f3e2f3e2f3e2f3e2f3e2f3e2f3e2f3e2ff42ef42df42ce82be829d127a223df85c9980421b221571dca1ad123dc27ec29eb2bf52cf52db92eb92eb92eb92eb92eb92eb92eb92eb92eb92eb92eb92eb92eb92eb92eb92eb92eb92eb92eb92eb92eb92eb92eb92eb92eb92eb92eb92eb92eb92eb92eb92eb92eb92eb92eb92eb92eb92eb92eb92eb92eb92eb92eb92eb92eb92ef52df52ceb2bec29dc27d123ca1a571db2213425bd1e541d0a24ed27f229ef2bf72cf62d472e472e462e462e462e462e462e462e462e472e462e462e462e462e462e462e462e472e472e462e462e462e462e462e462e462e472e462e462e462e462e462e462e462e472e462e462e462e462e462e462e462e472e472e462e462ef62df72cef2bf229ed270a24541dbd1e342559252d20431f3a240328fa29f52bf92cec2ded2de72de72de72de72de72de72de72de72de72de72de72de72de72de72de72de72de72de72de72de72de72de72de72de72de72de72de72de72de72de72de72de72de72de72de72de72de72de72de72de72de72de72de72de72de72de72df92cf52bfa2903283a24431f2d20592588250a21992074241228042afd2bfc2c942d942d942d942d942d942d942d942d942d942d942d942d942d942d942d942d942d942d942d942d942d942d942d942d942d942d942d942d942d942d942d942d942d942d942d942d942d942d942d942d942d942d942d942d942d942d942d942dfc2cfd2b042a1228742499200a218825bf25ef219021b9242628112a032c2e2d2e2d2e2d2e2d2e2d2e2d2e2d2e2d2e2d2e2d2e2d2e2d2f2d2f2d302d312d312d322d332d352d362d372d2e2d2e2d2e2d2e2d2e2d2e2d2e2d2e2d2e2d2e2d2e2d2e2d2e2d2e2d2e2d2e2d2e2d2e2d2e2d2e2d2e2d2e2d2e2d2e2d2e2d2e2d2e2d2e2d032c112a2628b9249021ef21bf25ff25d922882206253c28212a092c3f2c3f2c3f2c3f2c3f2c3f2c3f2c3f2c3f2c3f2c3f2c3f2c3f2c3f2c3f2c3f2c3f2c3f2c3f2c3f2c3f2c3f2c3f2c3f2c3f2c3f2c3f2c3f2c3f2c3f2c3f2c3f2c3f2c3f2c3f2c3f2c3f2c3f2c3f2c3f2c3f2c3f2c3f2c3f2c3f2c3f2c3f2c3f2c3f2c3f2c092c212a3c2806258822d922ff254626c723802359255528322aa22aa22aa22aa22aa22aa22aa22aa22aa22aa22aa22aa22aa22aa22aa22aa22aa22aa22aa22aa22aa22aa22aa22aa22aa22aa22aa22aa22aa22aa22aa22aa22aa22aa22aa22aa22aa22aa22aa22aa22aa22aa22aa22aa22aa22aa22aa22aa22aa22aa22aa22aa22a322a552859258023c723462693265b243b24b3257128c428c428c428c428c428c428c428c428c428c428c428c428c428c428c428c428c428c428c428c428c428c428c428c428c428c428c428c428c428c428c428c428c428c428c428c428c428c428c428c428c428c428c428c428c428c428c428c428c428c428c428c428c428c4287128b3253b245b249326e526d424b724eb25ce25ce25ce25ce25ce25ce25ce25ce25ce25ce25ce25ce25ce25ce25ce25ce25ce25ce25ce25ce25ce25ce25ce25ce25ce25ce25ce25ce25ce25ce25ce25ce25ce25ce25ce25ce25ce25ce25ce25ce25ce25ce25ce25ce25ce25ce25ce25ce25ce25ce25ce25ce25ce25ce25ce25ce25eb25b724d424e5263c2704253122262026202620262026202620262026202620262026202620262026202620262026202620bc2090206a204c2036202a202620262026202620262026202620262026202620262026202620262026202620262026202620262026202620262026202620262026202620262026202620262026202620312204253c270628f325f822db1c3a9cfe9dfe9dfe9dfe9dfe9d9d9efe9dfe9dfe9dfe9dfe9dfe9dfe9dfe9dfe9dfe9dfe9dfe9dfe9dfe9dfe9dfe9d8d9efe9dfe9dfe9dfe9dfe9dfe9dfe9dfe9d8d9efe9dfe9dfe9dfe9dfe9dfe9dfe9dfe9dfe9dfe9dfe9dfe9dfe9dfe9dfe9dfe9d9d9efe9dfe9dfe9dfe9dfe9d3a9cdb1cf822f3250628be284b272e258f222b13768176817681768176811b9b76817681768176817681768176817681768176817681768176817681768176814c99768176817681768176817681768176814c9976817681768176817681768176817681768176817681768176817681768176811b9b768176817681768176812b138f222e254b27be28ff290b292c287724481d7b957b957b957b957b957b957b957b957b957b957b957b957b957b957b957b957b957b957b957b957b957b957b957b957b957b957b957b957b957b957b957b957b957b957b957b957b957b957b957b957b957b957b957b957b957b957b957b957b957b957b957b957b957b95481d77242c280b29ff298e2bb92aad2823263724ca22c622c622c622c622c622c622c622c622c622c622c622c622c622c622c622c622c622c622c622c622c622c622c622c622c622c622c622c622c622c622c622c622c622c622c622c622c622c622c622c622c622c622c622c622c622c622c622c622c622c622c622c622ca2237242326ad28b92a8e2bc8278d278d278d278d278d278d278d278d278d278d278d278d278d274c27f925f825f825f825f825f825f8250f278d278d278d278d278d278d278d278d278d278d278d278d278d278d278d278d278d278d270f27f825f825f825f825f825f825f9254c278d278d278d278d278d278d278d278d278d278d278d278d278d27c827a5255225522552255225522552255225522552255225522552255225a224eb1fe11fe11fe11fe11fe11fe11f40245225522552255225522552255225522552255225522552255225522552255225522552254024e11fe11fe11fe11fe11fe11feb1fa2245225522552255225522552255225522552255225522552255225a5253e24c6131b9e109e109e109e109e109e109e109e109e109e109e109e109e109e109e109e109e109e109e109e109e109e109e109e109e109e109e109e109e109e109e109e109e109e109e109e109e109e109e109e109e109e109e109e109e109e109e109e109e109e109e109e109e109e109e109e109e109e109e1b9ec6133e2407251f1cde91f720f720f720f720f720f720f720f720f720f720f720f720f720f720f720f720f720f720f720f720f720f720f720f720f720f720f720f720f720f720f720f720f720f720f720f720f720f720f720f720f720f720f720f720f720f720f720f720f720f720f720f720f720f720f720f720f720f720de911f1c072507251f1cde91a2237b267b267b267b267b267b267b267b267b267b267b267b267b267b267b267b267b267b267b267b267b267b267b267b267b267b267b267b267b267b267b267b267b267b267b267b267b267b267b267b267b267b267b267b267b267b267b267b267b267b267b267b267b267b267b267b26a223de911f1c072593211f1cde91a223d1273d293d293d293d293d293d293d29bb293d29be293d293d293d293d293d293d29ad293d29ad293d293d293d293d293d293d293d29c229c2293d293d293d293d293d293d293d29ad293d29ad293d293d293d293d293d293d29be293d29bb293d293d293d293d293d293d293d29d127a223de911f1c93210421d799de91a223d127e8293d2b3d2b3d2b3d2b3d2b9d2b902b032c912b052c3d2b3d2b3d2b3d2bd02b852bc02b852bc42b3d2b3d2b3d2b3d2b3d2b972b952b952b972b3d2b3d2b3d2b3d2b3d2bc42b852bcc2b852bd02b3d2b3d2b3d2b3d2b052c912b9b2b902b9d2b3d2b3d2b3d2b3d2b3d2be829d127a223de91d89904210421f69dde91a223d127e829e82b9e2c9e2c9e2cfa2cc02cbb2cea2cbb2cec2c4d2d9e2c9e2c242dd42cb62cce2cb62cd02c1c2d9e2c9e2c9e2cf32cbd2cbd2cbd2cbd2cf32c9e2c9e2c9e2c1c2dd02cb62cd32cb62cd42c242d9e2c9e2c4d2dec2cbb2cbf2cbb2cc02cfa2c9e2c9e2c9e2ce82be829d127a223de91f69d04210421f69dde91a223d127e829e82bf42c9e2d9e2de72db72db22dda2db32ddc2d2e2e9e2d9e2d0b2ec72daf2dc22dae2dc42d042e9e2d9e2d9e2de12db42db42db42db42de12d9e2d9e2d9e2d042ec42dae2dc62daf2dc72d0b2e9e2d9e2d2e2edc2db32db62db22db72de72d9e2d9e2df42ce82be829d127a223de91f69d04210421f69dde91a223d127e829e82bf42cf42d262fda2eb02eac2ece2eac2ed02e172f7e2f542ff82ebe2ea92eba2ea92ebb2ef22e4b2f9e2e1e2fd42eae2ead2ead2eae2ed42e1e2f9e2e4b2ff22ebb2ea92ebd2ea92ebe2ef82e542f7e2f172fd02eac2eaf2eac2eb02eda2e262ff42df42ce82be829d127a223de91f69d04210421f69dde91a223d127e829e82bf42cf42df42ecf2fab2fa82fc52fa82fc72f023030301e30eb2fb82fa52fb42fa52fb52fe52f1a309e2f0630cb2fa92fa92fa92fa92fcb2f06309e2f1a30e52fb52fa52fb62fa52fb82feb2f1e3030300230c72fa82faa2fa82fab2fcf2ff42ef42df42ce82be829d127a223de91f69d04210421f69dde91a223d127e829e82bf42cf42df42ef42f533052305f30523060307b30a53094307030593051305730513058306d3090304f307f306130533052305230533061307f304f3090306d305830513058305130593070309430a5307b3060305230533052305330f42ff42ef42df42ce82be829d127a223de91f69d04210421f49ba111a423d127e829e82bf42cf42df42ef42f7a309c309c309c309c309c309c309c309c309c309c309c309c309c309c309c309c309c309c309c309c309c309c309c309c309c309c309c309c309c309c309c309c309c309c309c309c309c309c309c309c307a30f42ff42ef42df42ce82be829d127a423a111f49b04215d219b1bba1f46240628fc29f72bfa2cf92df82ef72f503050305030503050305030503050305030503050305030503050305030503050305030503050305030503050305030503050305030503050305030503050305030503050305030503050305030503050305030f72ff82ef92dfa2cf72bfc2906284624ba1f9b1b5d21aa23ca2155234a2551282f2a0f2c092d062e032f00300b300b300b300b300b300b300b300b300b300b300b300b300b300b300b300b300b300b300b300b300b300b300b300b300b300b300b300b300b300b300b300b300b300b300b300b300b300b300b300b300b300b300b30032f062e092d0f2c2f2a51284a255523ca21aa237425d724d02424269628612a222c192d132e0e2f9d2f9d2f9d2f9d2f9d2f9d2f9d2f9d2f9d2f9d2f9d2f9d2f9d2f9d2f9d2f9d2f9d2f9d2f9d2f9d2f9d2f9d2f9d2f9d2f9d2f9d2f9d2f9d2f9d2f9d2f9d2f9d2f9d2f9d2f9d2f9d2f9d2f9d2f9d2f9d2f9d2f9d2f9d2f9d2f0e2f132e192d222c612a96282426d024d72474254f2767254d258826b928792a2b2c202d192e142f352f352f352f352f352f352f352f352f352f352f352f352f352f352f352f352f352f352f352f352f352f352f352f352f352f352f352f352f352f352f352f352f352f352f352f352f352f352f352f352f352f352f352f352f142f192e202d2b2c792ab92888264d2567254f27aa27e025c925ee26dc28942a352c292d202eda2ed92ed92ed92ed92ed92ed92ed92ed92ed92ed92ed92ed92ed92ed92ed92ed92ed92ed92ed92ed92ed92ed92ed92ed92ed92ed92ed92ed92ed92ed92ed92ed92ed92ed92ed92ed92ed92ed92ed92ed92ed92ed92ed92ed92ed92e202e292d352c942adc28ee26c925e025ab2705285a26452657270229b02a402c322d282e862e862e862e862e862e862e862e862e862e862e862e862e862e862e862e862e862e862e862e862e862e862e862e862e862e862e862e862e862e862e862e862e862e862e862e862e862e862e862e862e862e862e862e862e862e862e282e322d402cb02a0229572745265a2605283528d526c026c1272a29ce2a4c2c3b2d8a2d8a2d8a2d8a2d8a2d8a2d8a2d8a2d8a2d8a2d8a2d8a2d8a2d8a2d8a2d8a2d8a2d8a2d8a2d8a2d8a2d8a2d8a2d8a2d8a2d8a2d8a2d8a2d8a2d8a2d8a2d8a2d8a2d8a2d8a2d8a2d8a2d8a2d8a2d8a2d8a2d8a2d8a2d8a2d8a2d8a2d8a2d8a2d3b2d4c2cce2a2a29c127c026d526352868284f273c2717285329ed2a592c9c2c9c2c9c2c9c2c9c2c9c2c9c2c9c2c9c2c9c2c9c2c9c2c9c2c9c2c9c2c9c2c9c2c9c2c9c2c9c2c9c2c9c2c9c2c9c2c9c2c9c2c9c2c9c2c9c2c9c2c9c2c9c2c9c2c9c2c9c2c9c2c9c2c9c2c9c2c9c2c9c2c9c2c9c2c9c2c9c2c9c2c9c2c9c2c9c2c9c2c592ced2a532917283c274f2768289b28ca27b8274e287e290e2b5a2b5a2b5a2b5a2b5a2b5a2b5a2b5a2b5a2b5a2b5a2b5a2b5a2b5a2b5a2b5c2b5b2b5b2b5a2b5a2b5a2b5a2b5a2b5a2b5a2b5a2b5a2b5a2b5a2b5a2b5a2b5a2b5a2b5a2b5a2b5a2b5a2b5a2b5a2b5a2b5a2b5a2b5a2b5a2b5a2b5a2b5a2b5a2b5a2b5a2b5a2b5a2b0e2b7e294e28b827ca279b28cf2822281a2886288b297d297d297d297d297d297d297d297d297d297d297d297d297d297d297d297d2994298f298c2988298529832981297f297e297d297d297d297d297d297d297d297d297d297d297d297d297d297d297d297d297d297d297d297d297d297d297d297d297d297d297d297d297d298b2986281a282228cf2805295f282f287f27422740274027402740274027402740274027402740274027402740274027402740274027402740274027402740274027402740274027402740274027402740274027402740274027412744274027402740274027402740274027402740274027402740274027402740274027402742277f272f285f2805293b2934286b26b0243b230a230a230a230a230a230a230a230a230a230a230a230a230a230a230a230a230a230a230a230a230a230a230a230a230a230a230a230a230a230a230a230a230a230a230a230a230a230a230a230a230a230a230a230a230a230a230a230a230a230a230a230a230a230a233b23b0246b2634283b299a29a7288e2648240c20b392b392b392b392b392b392b392b392b392b392b392b392b392b392b392b392b392b392b392b392b392b392b392b392b392b392b392b392b392b392b392b392b392b392b392b392b392b392b392b392b392b392b392b392b392b392b392b392b392b392b392b392b392b3920c2048248e26a7289a29282a0629c92787256722711baa18aa18aa18aa18aa18aa18aa18aa18aa18aa18aa18aa18aa18aa18aa18aa18aa18aa18aa18aa18aa18aa18aa18aa18aa18aa18aa18aa18aa18aa18aa18aa18aa18aa18aa18aa18aa18aa18aa18aa18aa18aa18aa18aa18aa18aa18aa18aa18aa18aa18aa18aa18711b67228725c9270629282a1b2b0a2adc28af2664245a200e200e200e200e200e200e200e200e200e200e200e200e200e200e200e200e200e200e200e200e200e200e200e200e200e200e200e200e200e200e200e200e200e200e200e200e200e200e200e200e200e200e200e200e200e200e200e200e200e200e200e200e205a206424af26dc280a2a1b2b342c042b5e290b28e8250e24f523f523f523f523f523f523f523f523f523f523f523f523f523f523f523f523f523f523f523f523f523f523f523f523f523f523f523f523f523f523f523f523f523f523f523f523f523f523f523f523f523f523f523f523f523f523f523f523f523f523f523f5230e24e8250b285e29042b342cfd25b025b025b025b025b025b025b025b025b025b025b025b025b025b025b025b025b025b025b025b025b025b025b025b025b025b025b025b025b025b025b025b025b025b025b025b025b025b025b025b025b025b025b025b025b025b025b025b025b025b025b025b025b025b025b025b025b025b025b025b025b025b025fd255f21ad1fad1fad1fad1fad1fad1fad1fad1fad1fad1fad1fad1fad1fad1fad1fad1fad1fad1fad1fad1fad1fad1fad1fad1fad1fad1fad1fad1fad1fad1fad1fad1fad1fad1fad1fad1fad1fad1fad1fad1fad1fad1fad1fad1fad1fad1fad1fad1fad1fad1fad1fad1fad1fad1fad1fad1fad1fad1fad1fad1fad1fad1f5f215520c613239e179e179e179e179e179e179e179e179e179e179e179e179e179e179e179e179e179e179e179e179e179e179e179e179e179e179e179e179e179e179e179e179e179e179e179e179e179e179e179e179e179e179e179e179e179e179e179e179e179e179e179e179e179e179e179e179e179e179e239ec61355201d221f1cde91d320d320d320d320d320d320d320d320d320d320d320d320d320d320d320d320d320d320d320d320d320d320d320d320d320d320d320d320d320d320d320d320d320d320d320d320d320d320d320d320d320d320d320d320d320d320d320d320d320d320d320d320d320d320d320d320d320d320de911f1c1d2204215a95de91a22345262f2740264026402640264026b326732632287b263c2840264026402640268c2741264c2740265c274026402640264026402695268c268c269526402640264026402640265c2740267b2741268c2740264026402640263c287b26a8267326b326402640264026402640262f274526a223de915b9504210421f69dde91a223d1276829592a1b291b291b29072a3f292b29d2292d29da290c2b1b291b298f2a87291c2971291b297729742a1b291b291b29f0293629332933293629f0291b291b291b29742a77291b2981291c2987298f2a1b291b290c2bda292d293c292b293f29072a1b291b291b291b296829d127a223de91f69d04210421f69dde91a223d127e829052c192b192b192bc92b332b252ba12b262ba72b4d2c192b192b1a2c682b192b582b192b5c2b0f2c192b192b192bb82b2c2b2a2b2a2b2c2bb82b192b192b192b0f2c5c2b192b642b192b682b1a2c192b192b4d2ca72b262b312b252b332bc92b192b192b192b052ce829d127a223de91f69d04210421f69dde91a223d127e829e82b8c2c8c2c8c2cd22c962c902cc22c912cc42c272d8c2c8c2cfd2cab2c8c2ca42c8c2ca62cf42c8c2c8c2c8c2ccb2c932c922c922c932ccb2c8c2c8c2c8c2cf42ca62c8c2ca92c8c2cab2cfd2c8c2c8c2c272dc42c912c952c902c962cd22c8c2c8c2c8c2ce82be829d127a223de91f69d04210421f69dde91a223d127e829e82bf42c8b2d202ec52d942d8f2db82d902dba2d0e2e852e552eea2da52d8b2da02d8b2da12de22d4a2e8b2d172ebf2d912d912d912d912dbf2d172e8b2d4a2ee22da12d8b2da42d8b2da52dea2d552e852e0e2eba2d902d932d8f2d942dc52d202e8b2df42ce82be829d127a223de91f69d04210421f69dde91a223d127e829e82bf42cf42d0b2fbd2e922e8e2eb12e8f2eb32efb2e632f392fdc2ea12e8b2e9c2e8b2e9d2ed62e302f8b2e032fb72e902e902e902e902eb72e032f8b2e302fd62e9d2e8b2ea02e8b2ea12edc2e392f632ffb2eb32e8f2e922e8e2e922ebd2e0b2ff42df42ce82be829d127a223de91f69d042104211f9c7b14a723d227e829e82bf42cf42df42eb62f912f8e2fac2f8e2fad2fed2f24301230d12f9e2f8b2f9a2f8b2f9b2fcc2f0d308b2ff32fb12f8f2f8f2f8f2f8f2fb12ff32f8b2f0d30cc2f9b2f8b2f9d2f8b2f9e2fd12f12302430ed2fad2f8e2f902f8e2f912fb62ff42ef42df42ce82be829d227a7237b141f9c042123217118122052240928fe29f92bfa2cf92df82ef82f4830463054304630543070309a30893064304d3045304c3045304c3062308530b630743056304730473047304730563074309e30853062304c3045304d3045304d30643089309a30703054304630483046304830f82ff82ef92dfa2cf92bfe2909285224122071182321152368218c235e255728332a102c0b2d072e042f01308030c630d230c630d330ec3011310231e130cc30c530cb30c530cb30df30ff302b31ef30d430c730c730c730c730d430ef301531ff30df30cb30c530cc30c530cc30e13002311131ec30d330c630c730c63080300130042f072e0b2d102c332a57285e258c23682115231a2572248625b626c828852a302c242d1c2e162f09308730bc30bc30bc30bc30bc30bc30bc30bc30bc30bc30bc30bc30bc30bc30bc30bc30bc30bc30bc30bc30bc30bc30bc30bc30bc30bc30bc30bc30bc30bc30bc30bc30bc30bc30bc30bc30bc30bc30bc30bc3087300930162f1c2e242d302c852ac828b626862572241a25dd26642645271a285629ef2a5a2c462d392e302f14307b307b307b307b307b307b307b307b307b307b307b307b307b307b307b307b307b307b307b307b307b307b307b307b307b307b307b307b307b307b307b307b307b307b307b307b307b307b307b307b307b307b301430302f392e462d5a2cef2a56291a2845276426dd265a282b286028c628dd295a2b842c6a2d572e4a2f1f304130413041304130413041304130413041304130413041304130413041304130413041304130413041304130413041304130413041304130413041304130413041304130413041304130413041304130413041301f304a2f572e6a2d842c5a2bdd29c62860282b285a284629aa28a3280329102a822b952c782d632e542f10301030103010301030103010301030103010301030103010301030103010301030103010301030103010301030103010301030103010301030103010301030103010301030103010301030103010301030103010301030542f632e782d952c822b102a0329a328aa2846297d29e728e0283d29402aa92ba52c852d6f2e5e2fcb2fcb2fcb2fcb2fcb2fcb2fcb2fcb2fcb2fcb2fcb2fcb2fcb2fcb2fcb2fcb2fcb2fcb2fcb2fcb2fcb2fcb2fcb2fcb2fcb2fcb2fcb2fcb2fcb2fcb2fcb2fcb2fcb2fcb2fcb2fcb2fcb2fcb2fcb2fcb2fcb2fcb2fcb2fcb2f5e2f6f2e852da52ca92b402a3d29e028e7287d29b42925291e297629712ad12bb52c932d7b2ed62ed62ed62ed62ed62ed62ed62ed62ed62ed62ed62ed62ed62ed62ed62ed62ed62ed62ed62ed62ed62ed62ed62ed62ed62ed62ed62ed62ed62ed62ed62ed62ed62ed62ed62ed62ed62ed62ed62ed62ed62ed62ed62ed62ed62ed62e7b2e932db52cd12b712a76291e292529b429ec2963295c29b129a22afa2bc72ca22de72de72de72de72de72de72de72de72de72de72de72de72de72de92de92de82de82de72de72de72de72de72de72de72de72de72de72de72de72de72de72de72de72de72de72de72de72de72de72de72de72de72de72de72de72de72de72de72da22dc72cfa2ba22ab1295c296329ec29242aa0299a29eb29d52a122cd82cf82cf82cf82cf82cf82cf82cf82cf82cf82cf82cf82cf82cf82cf82c052d032d022d002dff2cfe2cfd2cfc2cfb2cfa2cf92cf92cf92cf82cf82cf82cf82cf82cf82cf82cf82cf82cf82cf82cf82cf82cf82cf82cf82cf82cf82cf82cf82cf82cf82cf82cd82c122cd52aeb299a29a029242a5d2ade29d829262a082b112c092c092c092c092c092c092c092c092c092c092c092c092c092c092c092c092c092c092c092c092c092c092c092c092c092c092c092c092c092c092c092c092c092c092c092c092c092c092c092c092c092c092c092c092c092c092c092c092c092c092c092c092c112c082b262ad829de295d2a962a1c2a162a7e2a422a362a362a362a362a362a362a362a362a362a362a362a362a362a362a362a362a362a362a362a362a362a362a362a362a362a362a362a362a362a362a362a362a362a362a362a362a362a362a362a362a362a362a362a362a362a362a362a362a362a362a362a362a362a362a422a7e2a162a1c2a962acf2a592aa82902298d285a2858285828582858285828582858285828582858285828582858285828582858285828582858285828582858285828582858285828582858285828582858285828582858285828582858285828582858285828582858285828582858285828582858285828582858285a288d280229a829722acf2af22ae629e528ea274f2639252a252a252a252a252a252a252a252a252a252a252a252a252a252a252a252a252a252a252a252a252a252a252a252a252a252a252a252a252a252a252a252a252a252a252a252a252a252a252a252a252a252a252a252a252a252a252a252a252a252a252a252a2539254f26ea27e528e629f22a582bfb29da2875273b2571223f223f223f223f223f223f223f223f223f223f223f223f223f223f223f223f223f223f223f223f223f223f223f223f223f223f223f223f223f223f223f223f223f223f223f223f223f223f223f223f223f223f223f223f223f223f223f223f223f223f223f223f2271223b257527da28fb29582baf2b8b2a68297328bf26622450245024502450245024502450245024502450245024502450245024502450245024502450245024502450245024502450245024502450245024502450245024502450245024502450245024502450245024502450245024502450245024502450245024502450246224bf26732868298b2aaf2b352c4d2b102add287627cf25c225c225c225c225c225c225c225c225c225c225c225c225c225c225c225c225c225c225c225c225c225c225c225c225c225c225c225c225c225c225c225c225c225c225c225c225c225c225c225c225c225c225c225c225c225c225c225c225c225c225c225c225cf257627dd28102a4d2b352cbf2c012c9d2a77295528432738273827382738273827382738273827382738273827382738273827382738273827382738273827382738273827382738273827382738273827382738273827382738273827382738273827382738273827382738273827382738273827382738273827382738274327552877299d2a012cbf2ce52597253e2222222222972597259725972597259725972522222222072397259725972597259725972527222222222297259725972597259725972597252222222297259725972597259725972597252222222227229725972597259725972597250723222222229725972597259725972597259725222222223e229725e525ec205c1e9e18749b54975c1e5c1e5c1e5c1e5c1e5c1e5c1e749b749b5c1e5c1e5c1e5c1e5c1e5c1e5c1e6e13749b3a8f5c1e5c1e5c1e5c1e5c1e5c1e5c1e749b749b5c1e5c1e5c1e5c1e5c1e5c1e5c1e3a8f749b6e135c1e5c1e5c1e5c1e5c1e5c1e5c1e749b749b5c1e5c1e5c1e5c1e5c1e5c1e5c1e5497749b9e185c1eec20831fbea06b9fd29f9b9f619f619f619f619f619f619f619fd29fd29f619f619f619f619f619f619f619f619fd29f659f619f619f619f619f619f619f619fd29fd29f619f619f619f619f619f619f619f659fd29f619f619f619f619f619f619f619f619fd29fd29f619f619f619f619f619f619f619f9b9fd29f6b9fbea0831fb721f69dde91e7242f2016244f204f204f204f204f204f222e21f425542111264f204f204f204f20b2241b204924162063244f204f204f204f204f20cc21a121a121cc214f204f204f204f204f206324162097241b20b2244f204f204f204f201126542120222e214f224f204f204f204f204f2016242f20e724de91f69db7210421f69dde91a2230e260027272627262726272627267f263e261d284626282827262726272627265f270a261e270a262e27272627262726272627266126572657266126272627262726272627262e270a264e270a265f2727262726272627262828462674263e267f262726272627262726272600270e26a223de91f69d04210421f69dde91a22305295229462a132913291329f32928291429be291729c629fb2a132913297d2a722904295c2904296129612a132913291329dc291f291c291c291f29dc29132913291329612a612904296c29042972297d2a13291329fb2ac6291729252914292829f329132913291329462a52290529a223de91f69d04210421f69dde91a223d127e829f72b132b132b132bb62b1e2b0f2b042b112b932b442c132b132b112c532b042b042b042b472b062c132b132b132ba42b172b152b152b172ba42b132b132b132b062c472b042b042b042b532b112c132b132b442c932b112b042b0f2b1e2bb62b132b132b132bf72be829d127a223de91f69d04210421f69dde91a223d127e829e82b5a2d892c342dc82c8c2c862cb82c872cba2c1e2da92d722df42ca12c812c9a2c812c9c2ceb2c662d892c292dc12c892c882c882c892cc12c292d892c662deb2c9c2c812c9f2c812ca12cf42c722da92d1e2dba2c872c8b2c862c8c2cc82c342d892c5a2de82be829d127a223de91f69d042104211f9c2716ac23d327e929e92bf42c892d162ebc2d8a2d852d812d852db02d042e7c2e4c2ee02d9b2d812d812d812d972dd92d412e892d0d2eb52d872d872d872d872db52d0d2e892d412ed92d972d812d812d812d9b2de02d4c2e7c2e042eb02d852d812d852d8a2dbc2d162e892df42ce92be929d327ac2327161f9c042107211b1147205f240d28002afa2bfb2cfa2d012fb32e882e842ea72e852ea92ef12e5a2f302fd22e972e812e922e812e932ecc2e262f892ef92ead2e862e862e862e862ead2ef92e892e262fcc2e932e812e962e812e972ed22e302f5a2ff12ea92e852e872e842e882eb32e012ffa2dfb2cfa2b002a0d285f2447201b1107218c22b020c12371255c28372a122c0c2d082e052fac2f872f832f812f842fa32fe32f20300d30c82f942f812f812f812f912fc22f0930892fea2fa72f852f852f852f852fa72fea2f892f0930c22f912f812f812f812f942fc82f0d302030e32fa32f842f812f832f872fac2f052f082e0c2d122c372a5c287125c123b0208c22c3240c24a025cc26d0288b2a322c262d1e2e182f0930433041304f3041304f306c30953084305f30483040304730403047305d308130b1306f305130423042304230423051306f30993081305d30473040304830403048305f30843095306c304f3041304230413043300930182f1e2e262d322c8b2ad028cc26a0250c24c3247f2615265f2726285f29f62a5c2c492d3b2e312f1530c230c130c030c130ce30e7300d31fd30dc30c730c030c030c030c630da30fa302631ea30cf30c230c130c130c230cf30ea301031fa30da30c630c030c030c030c730dc30fd300d31e730ce30c130c030c130c2301530312f3b2e492d5c2cf62a5f2926285f2715267f262a2801283d28f128012a762b902c742d602e512f23309e3041314c3141314c3163312931293159314731403145314031463157312931293129314e3141314131413141314e3129312931293157314631403146314031473159312931293163314c314131423141319e302330512f602e742d902c762b012af1283d2801282a281929f1286f29c229b12a032ccc2ca62d8b2e772f3330ad30ed30ed30ed30ed30ed30ed30ed30ed30ed30ed30ed30ed30ed30ed30ed30ed30ed30ed30ed30ed30ed30ed30ed30ed30ed30ed30ed30ed30ed30ed30ed30ed30ed30ed30ed30ed30ed30ed30ed30ed30ad303330772f8b2ea62dcc2c032cb12ac2296f29f12819290c2aea294e2a962a6b2b522c0e2ddf2dbc2ea22f4730bf30b830b830b830b830b830b830b830b830b830b830b830b830b830b830b830b830b830b830b830b830b830b830b830b830b830b830b830b830b830b830b830b830b830b830b830b830b830b830b830b830bf304730a22fbc2edf2d0e2d522c6b2b962a4e2aea290c2a152ba42a9f2ae42ab02b6f2c282df52dd02eb32f4e308830883088308830883088308830883088308830883088308830883088308830883088308830883088308830883088308830883088308830883088308830883088308830883088308830883088308830883088304e30b32fd02ef52d282d6f2cb02be42a9f2aa42a152b4f2be22add2a1f2be62b872c3c2d062edf2ec12f10301030103010301030103010301030103010301030133012301230113011301130113010301030103010301030103010301030103010301030103010301030103010301030103010301030103010301030103010301030c12fdf2e062e3c2d872ce62b1f2bdd2ae22a4f2b892b1f2b1b2b5b2b0e2c9e2c502d182eef2e322f322f322f322f322f322f322f322f322f322f322f322f412f3f2f3e2f3d2f3b2f3a2f392f382f372f362f352f352f342f332f332f332f322f322f322f322f322f322f322f322f322f322f322f322f322f322f322f322f322f322fef2e182e502d9e2c0e2c5b2b1b2b1f2b892bc42b5d2b582b972b292cb62c652d2a2e432e432e432e432e432e432e432e432e432e432e432e432e432e432e432e432e432e432e432e432e432e432e432e432e432e432e432e432e432e432e432e432e432e432e432e432e432e432e432e432e432e432e432e432e432e432e432e432e2a2e652db62c292c972b582b5d2bc42bfe2b9b2b962bd32b442ccf2c552d552d552d552d552d552d552d552d552d552d552d552d552d552d552d552d552d552d552d552d552d552d552d552d552d552d552d552d552d552d552d552d552d552d552d552d552d552d552d552d552d552d552d552d552d552d552d552d552d552d552d552dcf2c442cd32b962b9b2bfe2b1c2cd92bd42b072c7b2c682c672c672c672c672c672c672c672c672c672c672c672c672c672c672c672c672c672c672c672c672c672c672c672c672c672c672c672c672c672c672c672c672c672c672c672c672c672c672c672c672c672c672c672c672c672c672c672c672c672c672c672c672c682c7b2c072cd42bd92b1c2c3a2c0b2c262cbc2b4d2b092b062b062b062b062b062b062b062b062b062b062b062b062b062b062b062b062b062b062b062b062b062b062b062b062b062b062b062b062b062b062b062b062b062b062b062b062b062b062b062b062b062b062b062b062b062b062b062b062b062b062b062b062b092b4d2bbc2b262c0b2c3a2c572c0a2c3b2b782ad529692966296629662966296629662966296629662966296629662966296629662966296629662966296629662966296629662966296629662966296629662966296629662966296629662966296629662966296629662966296629662966296629662966296629662966296929d529782a3b2b0a2c572c522c992b962a9e29bb2821281c281c281c281c281c281c281c281c281c281c281c281c281c281c281c281c281c281c281c281c281c281c281c281c281c281c281c281c281c281c281c281c281c281c281c281c281c281c281c281c281c281c281c281c281c281c281c281c281c281c281c281c282128bb289e29962a992b522c8c2c9a2b7c2a61294a282a271f271f271f271f271f271f271f271f271f271f271f271f271f271f271f271f271f271f271f271f271f271f271f271f271f271f271f271f271f271f271f271f271f271f271f271f271f271f271f271f271f271f271f271f271f271f271f271f271f271f271f271f272a274a2861297c2a9a2b8c2ca32c0a2cf62ad429b5280a2805280528052805280528052805280528052805280528052805280528052805280528052805280528052805280528052805280528052805280528052805280528052805280528052805280528052805280528052809280728062805280528052805280528052805280a28b528d429f62a0c2ca32ceb2c5b2ce82bd52a5029c228be28be28be28be28be28be28be28be28be28be28be28be28be28be28be28be28be28be28be28be28be28be28be28be28be28be28be28be28be28be28be28be28be28be28be28be28be28be28be28be28be28be28be28be28be28be28be28be28be28be28be28be28c2285029d52ae82b7f2ceb2c5f2da92c102cfe2af7297b297729772977297729772977297729782979297b297d297f298229852988298c299029772977297729772977297729772977297729772977297729772977297729772977297729772977297729772977297729772977297729772977297729772977297729772977297b29f729fe2a102ca92c5f2de72598254122262226229825982598259825982598259825262226220a239825982598259825982598252a22262226229825982598259825982598259825262226229825982598259825982598259825262226222a229825982598259825982598250a232622262298259825982598259825982598252622262241229825e725ee20631e9e18669b5497631e631e631e631e631e631e631e669b669b631e631e631e631e631e631e631e6e13669b3a8f631e631e631e631e631e631e631e669b669b631e631e631e631e631e631e631e3a8f669b6e13631e631e631e631e631e631e631e669b669b631e631e631e631e631e631e631e5497669b9e18631eee20831fc1a0729f3aa0a29f699f699f699f699f699f699f699fe3a03aa0699f699f699f699f699f699f699f699f3aa06c9f699f699f699f699f699f699f699f5da15da1699f699f699f699f699f699f699f6c9f3aa0699f699f699f699f699f699f699f699f3aa0e3a0699f699f699f699f699f699f699fa29f3aa0729fc1a0831fb421f69dde91861f861f4b204b204b204b204b204b204b20861f861f17214b204b204b204b204b204b20951f861f861f4b204b204b204b204b204b204b20861f861f4b204b204b204b204b204b204b20861f861f951f4b204b204b204b204b204b201721861f861f4b204b204b204b204b204b204b20861f861fde91f69db4210421f69dde91e025e025dc26252625262526252625265926e025e0251f26192825262526252625263e27e225e025e0250c27252625262526252625263a26e025e0253a26252625262526252625260c27e025e025e2253e27252625262526252619281f26e025e025592625262526252625262526dc26e025e025de91f69d04210421f69dde91a223f0283e29362a122912291229e2291429f028f0280229b429ed2a122912296d2a5f29f028f028f0284e29512a122912291229cb290b29f028f0280b29cb29122912291229512a4e29f028f028f0285f296d2a12291229ed2ab4290229f028f0281429e229122912291229362a3e29f028a223de91f69d042104211f9cd217b223d427e929e52b122b122b122ba32b0a2bef2aef2afd2a802b3b2c122b122b082c402bef2aef2aef2a342bfa2b122b122b122b912b032bef2aef2a032b912b122b122b122bfa2b342bef2aef2aef2a402b082c122b122b3b2c802bfd2aef2aef2a0a2ba32b122b122b122be52be929d427b223d2171f9c042104218e937c206c241028032afc2b512d892c892cbe2c812c772c772c7c2cb02c152da12d892ceb2c972c772c772c772c922ce22c5d2d892c892cb72c7f2c772c772c7f2cb72c202d892c892ce22c922c772c772c772c972ceb2c692d892c152db02c7c2c772c772c812cbe2c2b2d892c892cfc2b032a10286c247c208e9304211222d61ef723842562283c2a132c0d2d892d0d2eb22d7f2d772d772d7b2da62dfb2d732e432ed72d912d772d772d772d8d2dcf2d382e892d042eac2d7d2d772d772d7d2dac2d042e892d382ecf2d8d2d772d772d772d912dd72d432e732efb2da62d7b2d772d772d7f2db22d0d2e892d0d2d132c3c2a62288425f723d61e12226e244f23bb25e226d828902a342c282d1f2ef82ea92e7e2e772e772e7a2e9f2ee82e512f272fc92e8d2e772e772e772e892ec22e1d2f892ef02ea42e7c2e772e772e7c2ea42ef02e892e1d2fc22e892e772e772e772e8d2ec92e272f512fe82e9f2e7a2e772e772e7e2ea92ef82e1f2e282d342c902ad828e226bb254f236e242226b1257a2732286829fd2a5f2c4b2d3d2e332fa22f7d2f772f772f7a2f992fd92f1b300830be2f8a2f772f772f772f872fb82f0430892fe02f9d2f7b2f772f772f7b2f9d2fe02f892f0430b82f872f772f772f772f8a2fbe2f08301b30d92f992f7a2f772f772f7d2fa22f332f3d2e4b2d5f2cfd2a682932287a27b1252226f3279d270d28fd280b2a7e2b932c762d622e532f24303e303b303b303c304a30673090307f305a3043303b303b303b30423058307c30ac306a304c303d303b303b303d304c306a3095307c30583042303b303b303b3043305a307f30903067304a303c303b303b303e302430532f622e762d932c7e2b0b2afd280d289d27f327e828c5287c29ce29bc2a072ccf2ca92d8e2e792f3430bd30bb30bb30bc30c930e2300831f830d730c230bb30bb30bb30c130d530f5302131e530ca30bd30bb30bb30bd30ca30e5300c31f530d530c130bb30bb30bb30c230d730f8300831e230c930bc30bb30bb30bd303430792f8e2ea92dcf2c072cbc2ace297c29c528e828da29bd29e829b22a762b572c122de22dbf2ea52f4830c0303b313b313c3147315e3181317331543142313b313b313b314031523170319831613149313c313b313b313c314931613184317031523140313b313b313b3142315431733181315e3147313c313b313b31c0304830a52fbf2ee22d122d572c762ba32ae829bd29da29ce2ab52ada2a7a2b1c2cab2c5b2d222ef72ed62f5e30d4304b315f315f315f315f315f315f315f315f315f315f315f315f315f315f315f315f315f315f315f315f315f315f315f315f315f315f315f315f315f315f315f315f315f315f315f315f315f315f314b31d4305e30d62ff72e222e5b2dab2c1c2c7a2bda2ab52ace2ac32bae2b0d2c292c7f2c032da92d662e332f06307630ea302d312d312d312d312d312d312d312d312d312d312d312d312d312d312d312d312d312d312d312d312d312d312d312d312d312d312d312d312d312d312d312d312d312d312d312d312d312d312d312d31ea3076300630332f662ea92d032d7f2c292c0d2cae2bc32b7b2c4f2c4d2c682cba2c382dd82d8f2e582f16308530b630b630b630b630b630b630b630b630b630b630be30be30bd30bc30bc30bb30ba30ba30b930b930b830b830b830b730b730b730b730b630b630b630b630b630b630b630b630b630b630b630b630b630b630b63085301630582f8f2ed82d382dba2c682c4d2c4f2c7b2c992c6e2c6c2c862cd62c512def2da42e6b2f1f303e303e303e303e303e303e303e303e303e303e303e303e303e303e303e303e303e303e303e303e303e303e303e303e303e303e303e303e303e303e303e303e303e303e303e303e303e303e303e303e303e303e303e303e301f306b2fa42eef2d512dd62c862c6c2c6e2c992cb72c8d2c8b2ca52cf22c6b2d062eb92e7d2f8f2f8f2f8f2f8f2f8f2f8f2f8f2f8f2f8f2f8f2f8f2f8f2f8f2f8f2f8f2f8f2f8f2f8f2f8f2f8f2f8f2f8f2f8f2f8f2f8f2f8f2f8f2f8f2f8f2f8f2f8f2f8f2f8f2f8f2f8f2f8f2f8f2f8f2f8f2f8f2f8f2f8f2f8f2f8f2f8f2f8f2f7d2fb92e062e6b2df22ca52c8b2c8d2cb72cd52cac2caa2cc32c0f2d852d1d2ece2ea32ea32ea32ea32ea32ea32ea32ea32ea32ea32ea32ea32ea32ea32ea32ea32ea32ea32ea32ea32ea32ea32ea32ea32ea32ea32ea32ea32ea32ea32ea32ea32ea32ea32ea32ea32ea32ea32ea32ea32ea32ea32ea32ea32ea32ea32ea32ea32ece2e1d2e852d0f2dc32caa2cac2cd52cf32ccb2cc92ce12c2b2da02dbf2dbf2dbf2dbf2dbf2dbf2dbf2dbf2dbf2dbf2dbf2dbf2dbf2dbf2dbf2dbf2dbf2dbf2dbf2dbf2dbf2dbf2dbf2dbf2dbf2dbf2dbf2dbf2dbf2dbf2dbf2dbf2dbf2dbf2dbf2dbf2dbf2dbf2dbf2dbf2dbf2dbf2dbf2dbf2dbf2dbf2dbf2dbf2dbf2dbf2dbf2dbf2da02d2b2de12cc92ccb2cf32c112dea2ce82c3d2d072de62ce52ce52ce52ce52ce52ce52ce52ce52ce52ce52ce52ce52ce52ce52ce52ce52ce52ce52ce52ce52ce52ce52ce52ce52ce52ce52ce52ce52ce52ce52ce52ce52ce52ce52ce52ce52ce52ce52ce52ce52ce52ce52ce52ce52ce52ce52ce52ce52ce52ce52ce52ce52ce62c072d3d2de82cea2c112d2f2d442de52c902c472c1d2c1c2c1c2c1c2c1c2c1c2c1c2c1c2c1c2c1c2c1c2c1c2c1c2c1c2c1c2c1c2c1c2c1c2c1c2c1c2c1c2c1c2c1c2c1c2c1c2c1c2c1c2c1c2c1c2c1c2c1c2c1c2c1c2c1c2c1c2c1c2c1c2c1c2c1c2c1c2c1c2c1c2c1c2c1c2c1c2c1c2c1c2c1c2c1c2c1c2c1c2c1c2c1c2c1d2c472c902ce52c442d2f2d4d2dde2c6d2c032c492be52ae22ae22ae22ae22ae22ae22ae22ae22ae22ae22ae22ae22ae22ae22ae22ae22ae22ae22ae22ae22ae22ae22ae22ae22ae22ae22ae22ae22ae22ae22ae22ae22ae22ae22ae22ae22ae22ae22ae22ae22ae22ae22ae22ae22ae22ae22ae22ae22ae22ae22ae22ae22ae52a492b032c6d2cde2c562d2a2da52c232c4c2b652af129ed29ed29ed29ed29ed29ed29ed29ed29ed29ed29ed29ed29ed29ed29ed29ed29ed29ed29ed29ed29ed29ed29ed29ed29ed29ed29ed29ed29ed29ed29ed29ed29ed29ed29ed29ed29ed29ed29ed29ed29ed29ed29ed29ed29ed29ed29ed29ed29ed29ed29ed29ed29f129652a4c2b232ca52c2a2d2e2da02c132c0e2b0e2a93298f298f298f298f298f298f298f298f298f298f298f298f298f298f298f298f298f298f298f298f298f298f298f298f298f298f298f298f298f298f298f298f298f298f298f298f298f298f298f298f298f298f298f298f298f298f298f298f298f298f298f298f2993290e2a0e2b132ca02c2e2d602dce2c3d2c582b5b2ae729e329e329e329e329e329e329e329e329e329e329e329e329e329e329e329e329e329e329e329e329e329e329e329e329e329e329e329e329e329e329e329e329e329e329e329e329e329e329e329e329e329e329fc29f829f429f129ee29eb29e929e729e529e429e7295b2a582b3d2cce2c602dac2d2b2d9c2c0e2c072b9e2a9b2a9b2a9b2a9b2a9b2a9b2a9b2a9b2a9b2a9b2a9b2a9b2a9b2a9b2a9b2a9b2a9b2a9b2a9b2a9b2a9b2a9b2a9b2a9b2a9b2a9b2a9b2a9b2a9b2a9b2a9b2a9b2a9b2a9b2a9b2a9b2a9b2a9b2a9b2a9b2a9b2a9b2a9b2a9b2a9b2a9b2a9b2a9b2a9b2a9b2a9b2a9b2a9e2a072b0e2c9c2c2b2dac2d062e662dd52c462cb62b572b542b542b542b542b542b542b542b542b542b542b542b542b542b542b552b552b562b542b542b542b542b542b542b542b542b542b542b542b542b542b542b542b542b542b542b542b542b542b542b542b542b542b542b542b542b542b542b542b542b542b542b542b572bb62b462cd52c662d062ee9259a2545222a222a229a259a259a259a259a259a259a252a222a220d239a259a259a259a259a259a252e222a222a229a259a259a259a259a259a259a252a222a229a259a259a259a259a259a259a252a222a222e229a259a259a259a259a259a250d232a222a229a259a259a259a259a259a259a252a222a2245229a25e925f0206a1e9e18579b54976a1e6a1e6a1e6a1e6a1e6a1e6a1e579b579b6a1e6a1e6a1e6a1e6a1e6a1e6a1e6e13579b3a8f6a1e6a1e6a1e6a1e6a1e6a1e6a1e579b579b6a1e6a1e6a1e6a1e6a1e6a1e6a1e3a8f579b6e136a1e6a1e6a1e6a1e6a1e6a1e6a1e579b579b6a1e6a1e6a1e6a1e6a1e6a1e6a1e5497579b9e186a1ef020831fc4a0799feaa4a99f709f709f709f709f709f709f709fe6a0eaa4709f709f709f709f709f709f709f709feaa4739f709f709f709f709f709f709f709f60a160a1709f709f709f709f709f709f709f739feaa4709f709f709f709f709f709f709f709feaa4e6a0709f709f709f709f709f709f709fa99feaa4799fc4a0831fb221f69dde91e31ee31e4720472047204720472047204720e31ee31edc20472047204720472047204720f31ee31ee31e4720472047204720472047204720e31ee31e4720472047204720472047204720e31ee31ef31e472047204720472047204720dc20e31ee31e4720472047204720472047204720e31ee31ede91f69db22104215495be18b825b825ba26232623262326232623263426b825b825f8250a2823262326232623261d27b925b825b825ea26232623262326232623261426b825b825142623262326232623262326ea26b825b825b9251d2723262326232623260a28f825b825b825342623262326232623262326ba26b825b825be1854950421ba21881db1207a24db282b29262a112911291129d1290129db28db28ee28a229de2a112911295e2a4c29db28db28db283b29412a112911291129b929f728db28db28f728b929112911291129412a3b29db28db28db284c295e2a11291129de2aa229ee28db28db280129d129112911291129262a2b29db287a24b120881dba210923ef20162497256928402ad32b112b112b112b912bf62adb2adb2ae82a6d2b332c112b112bff2b2c2bdb2adb2adb2a202be82b112b112b112b7e2bee2adb2adb2aee2a7e2b112b112b112be82b202bdb2adb2adb2a2c2bff2b112b112b332c6d2be82adb2adb2af62a912b112b112b112bd32b402a692897251624ef2009231c248422d625f826e028962a362c482d882c882cb52c772c6d2c6d2c722ca62c0c2d992d882ce12c8d2c6d2c6d2c6d2c882cd82c552d882c882cad2c752c6d2c6d2c752cad2c172d882c882cd82c882c6d2c6d2c6d2c8d2ce12c612d882c0c2da62c722c6d2c6d2c772cb52c222d882c882c362c962ae028f826d62584221c24c725342595273e287129052b622c4d2d882d042ea82d752d6d2d6d2d712d9c2df12d6b2e3a2ecd2d872d6d2d6d2d6d2d832dc62d2f2e882dfb2da22d732d6d2d6d2d732da22dfb2d882d2f2ec62d832d6d2d6d2d6d2d872dcd2d3a2e6b2ef12d9c2d712d6d2d6d2d752da82d042e882d4d2d622c052b71293e2895273425c72593272627bd270a29152a872b972c792d652eee2e9f2e742e6c2e6c2e702e952ede2e482f1d2fbf2e832e6d2e6c2e6c2e7f2eb82e142f882ee62e9a2e722e6c2e6c2e722e9a2ee62e882e142fb82e7f2e6c2e6c2e6d2e832ebf2e1d2f482fde2e952e702e6c2e6c2e742e9f2eee2e652e792d972c872b152a0a29bd2726279327b72893288929db29c72a0c2cd32cac2d912e7c2f982f732f6c2f6c2f6f2f8f2fcf2f16300330b42f7f2f6c2f6c2f6c2f7d2fae2fff2f882fd62f932f712f6c2f6c2f712f932fd62f882fff2fae2f7d2f6c2f6c2f6c2f7f2fb42f03301630cf2f8f2f6f2f6c2f6c2f732f982f7c2f912eac2dd32c0c2cc72adb2989299328b728a9298b29b729872a822b5b2c172de62dc32ea82f49303930363036303730453062308c307b3056303e303630363036303d3053307730a830653047303830363036303830473065309030773053303d303630363036303e3056307b308c306230453037303630363039304930a82fc32ee62d172d5b2c822bb02ab7298b29a9299c2a832aa92a872b222cb02c602d262efa2ed92f5f30b830b630b630b730c330dd300331f430d230bd30b630b630b630bc30d030f0301c31e030c530b730b630b630b730c530e0300731f030d030bc30b630b630b630bd30d230f4300331dd30c330b730b630b630b8305f30d92ffa2e262e602db02c222c872ba92a832a9c2a922b7b2b9c2b1e2c852c092dae2d6a2e372f07307830eb30363136313731423159317c316e314f313c313631363136313b314d316b3193315c314431373136313631373144315c317f316b314d313b313631363136313c314f316e317c3159314231373136313631eb3078300730372f6a2eae2d092d852c1e2c9c2b7b2b922b432c3a2c482c902ceb2c652d002eb42e792f2530923003317731b531b731c131d631f631e931cd31bc31b631b531b531bb31cb31e631d731d931c231b731b531b531b731c231d931d731e631cb31bb31b531b531b631bc31cd31e931f631d631c131b731b5317731033192302530792fb42e002e652deb2c902c482c3a2c432cbf2cb62cc32c0b2d522dc42d562e012fbe2f4430af301d315b315b315b315b315b315b315b315b315b315b315b315b315b315b315b315b315b315b315b315b315b315b315b315b315b315b315b315b315b315b315b315b315b315b315b315b315b315b315b315b311d31af304430be2f012f562ec42d522d0b2dc32cb62cbf2c3a2d312d632d792dbb2d252eaf2e522f03306630cd30e430e430e430e430e430e430e430e430e430e430e430e430e430e430e430e430e430e430e430e430e430e430e430e430e430e430e430e430e430e430e430e430e430e430e430e430e430e430e430e430e430e430cd3066300330522faf2e252ebb2d792d632d312d3a2d8f2d6c2d6a2d802dc22d2b2eb42e572f063068306f306f306f306f306f306f306f306f306f306f306f306f306f306f306f306f306f306f306f306f306f306f306f306f306f306f306f306f306f306f306f306f306f306f306f306f306f306f306f306f306f306f306f306f3068300630572fb42e2b2ec22d802d6a2d6c2d8f2dad2d8b2d892d9e2ddf2d462ece2e6e2f1030fb2ffb2ffb2ffb2ffb2ffb2ffb2ffb2ffb2ffb2ffb2ffb2ffb2ffb2ffb2ffb2ffb2ffb2ffb2ffb2ffb2ffb2ffb2ffb2ffb2ffb2ffb2ffb2ffb2ffb2ffb2ffb2ffb2ffb2ffb2ffb2ffb2ffb2ffb2ffb2ffb2ffb2ffb2ffb2ffb2ffb2f10306e2fce2e462edf2d9e2d892d8b2dad2dcc2daa2da82dbd2dfc2d622ee72e1d2f1d2f1d2f1d2f1d2f1d2f1d2f1d2f1d2f1d2f1d2f1d2f1d2f1d2f1d2f1d2f1d2f1d2f1d2f1d2f1d2f1d2f1d2f1d2f1d2f1d2f1d2f1d2f1d2f1d2f1d2f1d2f1d2f1d2f1d2f1d2f1d2f1d2f1d2f1d2f1d2f1d2f1d2f1d2f1d2f1d2f1d2f1d2f1d2f1d2fe72e622efc2dbd2da82daa2dcc2dea2dc92dc72ddb2d192e4b2e4a2e4a2e4a2e4a2e4a2e4a2e4a2e4a2e4a2e4a2e4a2e4a2e4a2e4a2e4a2e4a2e4a2e4a2e4a2e4a2e4a2e4a2e4a2e4a2e4a2e4a2e4a2e4a2e4a2e4a2e4a2e4a2e4a2e4a2e4a2e4a2e4a2e4a2e4a2e4a2e4a2e4a2e4a2e4a2e4a2e4a2e4a2e4a2e4a2e4a2e4a2e4a2e4b2e192edb2dc72dc92dea2d082ee82d372ee92da72d872d862d862d862d862d862d862d862d862d862d862d862d862d862d862d862d862d862d862d862d862d862d862d862d862d862d862d862d862d862d862d862d862d862d862d862d862d862d862d862d862d862d862d862d862d862d862d862d862d862d862d862d862d872da72de92d372ee82d082e262e102eab2d4d2dfd2cd92cd82cd82cd82cd82cd82cd82cd82cd82cd82cd82cd82cd82cd82cd82cd82cd82cd82cd82cd82cd82cd82cd82cd82cd82cd82cd82cd82cd82cd82cd82cd82cd82cd82cd82cd82cd82cd82cd82cd82cd82cd82cd82cd82cd82cd82cd82cd82cd82cd82cd82cd82cd82cd92cfd2c4d2dab2d102e262e2d2eb42d3f2dd02c742c4b2c4a2c4a2c4a2c4a2c4a2c4a2c4a2c4a2c4a2c4a2c4a2c4a2c4a2c4a2c4a2c4a2c4a2c4a2c4a2c4a2c4a2c4a2c4a2c4a2c4a2c4a2c4a2c4a2c4a2c4a2c4a2c4a2c4a2c4a2c4a2c4a2c4a2c4a2c4a2c4a2c4a2c4a2c4a2c4a2c4a2c4a2c4a2c4a2c4a2c4a2c4a2c4a2c4b2c742cd02c3f2db42d2d2e032e7e2dfc2c7e2c182cd82bd52bd52bd52bd52bd52bd52bd52bd52bd52bd52bd52bd52bd52bd52bd52bd52bd52bd52bd52bd52bd52bd52bd52bd52bd52bd52bd52bd52bd52bd52bd52bd52bd52bd52bd52bd52bd52bd52bd52bd52bd52bd52bd52bd52bd52bd52bd52bd52bd52bd52bd52bd52bd82b182c7e2cfc2c7e2d032e022e752de92c5f2cee2b922b8f2b8f2b8f2b8f2b8f2b8f2b8f2b8f2b8f2b8f2b8f2b8f2b8f2b8f2b8f2b8f2b8f2b8f2b8f2b8f2b8f2b8f2b8f2b8f2b8f2b8f2b8f2b8f2b8f2b8f2b8f2b8f2b8f2b8f2b8f2b8f2b8f2b8f2b8f2b8f2b8f2b8f2b8f2b8f2b8f2b8f2b8f2b8f2b8f2b8f2b8f2b8f2b922bee2b5f2ce92c752d022e282e972d072d7a2c152cd02bce2bce2bce2bce2bce2bce2bce2bce2bce2bce2bce2bce2bce2bce2bce2bce2bce2bce2bce2bce2bce2bce2bce2bce2bce2bce2bce2bce2bce2bce2bce2bce2bce2bce2bce2bce2bce2bce2bce2bce2bce2bce2bf52bf02beb2be62be22bde2bda2bd62bd32bd02bd02b152c7a2c072d972d282e742ee32d532dcb2c672c3d2c3c2c3c2c3c2c3c2c3c2c3c2c3c2c3c2c3c2c3c2c3c2c3c2c3c2c3c2c3c2c3c2c3c2c3c2c3c2c3c2c3c2c3c2c3c2c3c2c3c2c3c2c3c2c3c2c3c2c3c2c3c2c3c2c3c2c3c2c3c2c3c2c3c2c3c2c3c2c3c2c3c2c3c2c3c2c3c2c3c2c3c2c3c2c3c2c3c2c3c2c3c2c3c2c3d2c672ccb2c532de32d742ee12e532ec62d182dc02c9a2c992c992c992c992c992c992c992c992c992c992c992c992c992c992c992c992c992c992c992c992c992c992c992c992c992c992c992c992c992c992c992c992c992c992c992c992c992c992c992c992c992c992c992c992c992c992c992c992c992c992c992c992c9a2cc02c182dc62d532ee12eea259c2549222d222d229c259c259c259c259c259c259c252d222d2210239c259c259c259c259c259c2532222d222d229c259c259c259c259c259c259c252d222d229c259c259c259c259c259c259c252d222d2232229c259c259c259c259c259c2510232d222d229c259c259c259c259c259c259c252d222d2249229c25ea25f320711e9e18499b5497711e711e711e711e711e711e711e499b499b711e711e711e711e711e711e711e6e13499b3a8f711e711e711e711e711e711e711e499b499b711e711e711e711e711e711e711e3a8f499b6e13711e711e711e711e711e711e711e499b499b711e711e711e711e711e711e711e5497499b9e18711ef320831f43a0779fe9a4b09f779f779f779f779f779f779f779fe9a0e9a4779f779f779f779f779f779f779f779fe9a47a9f779f779f779f779f779f779f779f62a162a1779f779f779f779f779f779f779f7a9fe9a4779f779f779f779f779f779f779f779fe9a4e9a0779f779f779f779f779f779f779fb09fe9a4779f43a0831faf211b17a91e401e401e4420442044204420442044204420401e401ea320442044204420442044204420511e401e401e4420442044204420442044204420401e401e4420442044204420442044204420401e401e511e442044204420442044204420a320401e401e4420442044204420442044204420401e401ea91e1b17af21d923092231248f258f259726222622262226222622260e268f258f25d125f8272226222622262226fc2690258f258f25c82622262226222622262226ed258f258f25ed2522262226222622262226c8268f258f259025fc262226222622262226f827d1258f258f250e262226222622262226222697268f258f2531240922d923a7251125f0250f27c7281829162a112911291129c029ed28c728c728da289129d02a112911294e2a3929c728c728c7282829322a112911291129a829e328c728c728e328a829112911291129322a2829c728c728c72839294e2a11291129d02a9129da28c728c728ed28c029112911291129162a1829c7280f27f0251125a725e3266a26b0274a287b29012bc12b112b112b112b7e2be12ac62ac62ad42a5a2b2b2c112b112bed2b192bc72ac62ac62a0c2bd72b112b112b112b6c2bda2ac62ac62ada2a6c2b112b112b112bd72b0c2bc62ac62ac72a192bed2b112b112b2b2c5a2bd42ac62ac62ae12a7e2b112b112b112bc12b012b7b294a28b0276a26e3266d27fe26b7281629202a8f2b9a2c402d882c882cab2c6d2c632c632c682c9d2c032d912d882cd82c832c632c632c632c7e2ccf2c4c2d882c882ca42c6a2c632c632c6a2ca42c0e2d882c882ccf2c7e2c632c632c632c832cd82c592d882c032d9d2c682c632c632c6d2cab2c192d882c882c9a2c8f2b202a1629b728fe266d27862859289729e829d22a112cd72cb02d882dfb2d9e2d6b2d622d622d672d922de82d622e312ec42d7d2d632d622d622d792dbc2d262e882df12d982d692d622d622d692d982df12d882d262ebc2d792d622d622d632d7d2dc42d312e622ee82d922d672d622d622d6b2d9e2dfb2d882db02dd72c112cd22ae8299729592886287729522986295c2a8d2b602c1b2dea2dc62ee52e952e6a2e622e622e662e8b2ed52e3f2f142fb52e792e622e622e622e752eae2e0b2f882edc2e902e682e622e622e682e902edc2e882e0b2fae2e752e622e622e622e792eb52e142f3f2fd52e8b2e662e622e622e6a2e952ee52ec62eea2d1b2d602c8d2bbd2a8629522977296b2a4b2a772a942b282cb52c642d2a2efe2ed42f8e2f682f622f622f652f852fc62f1230fe2faa2f752f622f622f622f722fa42ff52f882fcd2f892f672f622f622f672f892fcd2f882ff52fa42f722f622f622f622f752faa2ffe2f1230c62f852f652f622f622f682f8e2fd42ffe2e2a2e642db52c282c942b772a4b2a6b2a602b492b6a2b072c8b2c0e2db32d6f2e3b2f09304430333031303130323040305d30873076305130393031303130313038304e307230a330603042303330313031303330423060308b3072304e30383031303130313039305130763087305d3040303230313031303330443009303b2f6f2eb32d0e2d8b2c072c6a2b492b602b2a2c202c2f2c792cf12c6b2d052eb82e7d2f27309430b330b130b130b230be30d830fe30ef30cd30b830b130b130b130b730cb30eb301831db30c030b230b130b130b230c030db300231eb30cb30b730b130b130b130b830cd30ef30fe30d830be30b230b130b130b330943027307d2fb82e052e6b2df12c792c2f2c202c2a2ca62c9d2caa2c112d592dca2d5b2e062fc22f4630b1301f313031303132313d315431773169314a3137313131303130313631483166318e3157313f3132313031303132313f3157317b3166314831363130313031313137314a316931773154313d313231303130311f31b1304630c22f062f5b2eca2d592d112daa2c9d2ca62c212d192d252d612dc12d2b2eb42e562f06306830cf303b31b031b031b131bc31d131f131e431c831b731b031b031b031b631c631e1310732d431bd31b231b031b031b231bd31d431f431e131c631b631b031b031b031b731c831e431f131d131bc31b131b031b0313b31cf3068300630562fb42e2b2ec12d612d252d192d212d9d2d952da02dd82d2b2e8e2e102faa2f2c308b30f03059318e318e318e318e318e318e318e318e318e318e318e318e318e318e318e318e318e318e318e318e318e318e318e318e318e318e318e318e318e318e318e318e318e318e318e318e318e318e318e318e315931f0308b302c30aa2f102f8e2e2b2ed82da02d952d9d2d192e122e1c2e5c2e952ef22e6d2f00305430b03011311b311b311b311b311b311b311b311b311b311b311b311b311b311b311b311b311b311b311b311b311b311b311b311b311b311b311b311b311b311b311b311b311b311b311b311b311b311b311b311b311b311b311131b030543000306d2ff22e952e5c2e1c2e122e192e882e6a2e682e7b2eb32e0e2f882f0c305f30ba30ac30ac30ac30ac30ac30ac30ac30ac30ac30ac30ac30ac30ac30ac30ac30ac30ac30ac30ac30ac30ac30ac30ac30ac30ac30ac30ac30ac30ac30ac30ac30ac30ac30ac30ac30ac30ac30ac30ac30ac30ac30ac30ac30ac30ba305f300c30882f0e2fb32e7b2e682e6a2e882ea62e892e872e992ed12e2a2fa22f19306b3040304030403040304030403040304030403040304030403040304030403040304030403040304030403040304030403040304030403040304030403040304030403040304030403040304030403040304030403040304030403040306b301930a22f2a2fd12e992e872e892ea62ec52ea82ea62eb82eee2e472fbd2fb12fb12fb12fb12fb12fb12fb12fb12fb12fb12fb12fb12fb12fb12fb12fb12fb12fb12fb12fb12fb12fb12fb12fb12fb12fb12fb12fb12fb12fb12fb12fb12fb12fb12fb12fb12fb12fb12fb12fb12fb12fb12fb12fb12fb12fb12fb12fb12fb12fb12fbd2f472fee2eb82ea62ea82ec52ee32ec72ec52ed62e0c2ff02ef02ef02ef02ef02ef02ef02ef02ef02ef02ef02ef02ef02ef02ef02ef02ef02ef02ef02ef02ef02ef02ef02ef02ef02ef02ef02ef02ef02ef02ef02ef02ef02ef02ef02ef02ef02ef02ef02ef02ef02ef02ef02ef02ef02ef02ef02ef02ef02ef02ef02ef02ef02ef02e0c2fd62ec52ec72ee32e012fe52ef52ea02e5d2e412e402e402e402e402e402e402e402e402e402e402e402e402e402e402e402e402e402e402e402e402e402e402e402e402e402e402e402e402e402e402e402e402e402e402e402e402e402e402e402e402e402e402e402e402e402e402e402e402e402e402e402e402e412e5d2ea02ef52e532f012f4f2fdf2e752e122ec82da92da82da82da82da82da82da82da82da82da82da82da82da82da82da82da82da82da82da82da82da82da82da82da82da82da82da82da82da82da82da82da82da82da82da82da82da82da82da82da82da82da82da82da82da82da82da82da82da82da82da82da82da82da92dc82d122e752edf2e4f2f052f8a2e132ea32d542d322d312d312d312d312d312d312d312d312d312d312d312d312d312d312d312d312d312d312d312d312d312d312d312d312d312d312d312d312d312d312d312d312d312d312d312d312d312d312d312d312d312d312d312d312d312d312d312d312d312d312d312d312d322d542da32d132e8a2e052fdc2e582ed52d5c2d082de42ce32ce32ce32ce32ce32ce32ce32ce32ce32ce32ce32ce32ce32ce32ce32ce32ce32ce32ce32ce32ce32ce32ce32ce32ce32ce32ce32ce32ce32ce32ce32ce32ce32ce32ce32ce32ce32ce32ce32ce32ce32ce32ce32ce32ce32ce32ce32ce32ce32ce32ce32ce32ce42c082d5c2dd52d582edc2ed72e4b2ec02d422ded2cc82cc72cc72cc72cc72cc72cc72cc72cc72cc72cc72cc72cc72cc72cc72cc72cc72cc72cc72cc72cc72cc72cc72cc72cc72cc72cc72cc72cc72cc72cc72cc72cc72cc72cc72cc72cc72cc72cc72cc72cc72cc72cc72cc72cc72cc72cc72cc72cc72cc72cc72cc72cc72cc82ced2c422dc02d4b2ed72ef52e652ed52d592d052de12ce02ce02ce02ce02ce02ce02ce02ce02ce02ce02ce02ce02ce02ce02ce02ce02ce02ce02ce02ce02ce02ce02ce02ce02ce02ce02ce02ce02ce02ce02ce02ce02ce02ce02ce02ce02ce02ce02ce02ce02ce02ce02cf82cf52cf22cf02ced2ceb2ce82ce62ce42ce22ce12c052d592dd52d652ef52e352fa32e142e9e2d4e2d2c2d2b2d2b2d2b2d2b2d2b2d2b2d2b2d2b2d2b2d2b2d2b2d2b2d2b2d2b2d2b2d2b2d2b2d2b2d2b2d2b2d2b2d2b2d2b2d2b2d2b2d2b2d2b2d2b2d2b2d2b2d2b2d2b2d2b2d2b2d2b2d2b2d2b2d2b2d2b2d2b2d2b2d2b2d2e2d2d2d2c2d2c2d2b2d2b2d2b2d2b2d2b2d2b2d2c2d4e2d9e2d142ea32e352f932f032f792ef32da82d882d872d872d872d872d872d872d872d872d872d872d872d872d872d872d872d872d872d872d872d872d872d872d872d872d872d872d872d872d872d872d872d872d872d872d872d872d872d872d872d872d872d872d872d872d872d872d872d872d872d872d872d872d882da82df32d792e032f932fec259e254c22312231229e259e259e259e259e259e259e253122312214239e259e259e259e259e259e253522312231229e259e259e259e259e259e259e25312231229e259e259e259e259e259e259e253122312235229e259e259e259e259e259e251423312231229e259e259e259e259e259e259e25312231224c229e25ec25f520781e9e183a9b5497781e781e781e781e781e781e781e3a9b3a9b781e781e781e781e781e781e781e6e133a9b3a8f781e781e781e781e781e781e781e3a9b3a9b781e781e781e781e781e781e781e3a8f3a9b6e13781e781e781e781e781e781e781e3a9b3a9b781e781e781e781e781e781e781e54973a9b9e18781ef520831f3d9a3d9ae7a43c9b3d9a3d9a3d9a3d9a3d9a3d9a3d9a1a9fe7a43d9a3d9a3d9a3d9a3d9a3d9a3d9a3d9ae7a44e9a3d9a3d9a3d9a3d9a3d9a3d9a3d9a2ea02ea03d9a3d9a3d9a3d9a3d9a3d9a3d9a4e9ae7a43d9a3d9a3d9a3d9a3d9a3d9a3d9a3d9ae7a41a9f3d9a3d9a3d9a3d9a3d9a3d9a3d9a3c9be7a43d9a3d9a831fac210522111e9c1d9c1d40204020402040204020402040209c1d9c1d6e20402040204020402040204020b01d9c1d9c1d40204020402040204020402040209c1d9c1d40204020402040204020402040209c1d9c1db01d4020402040204020402040206e209c1d9c1d40204020402040204020402040209c1d9c1d111e0522ac21972618266e2566256625752620262026202620262026e92566256625aa25dc272026202620262026dc26672566256625a72620262026202620262026c72566256625c72520262026202620262026a726662566256725dc262026202620262026dc27aa2566256625e925202620262026202620267526662566256e25182697267f285228c428b228b2280529062a102910291029af29d928b228b228c6287f29c12a102910293f2a2729b328b228b2281529222a1029102910299729cf28b228b228cf289729102910291029222a1529b228b228b32827293f2a10291029c12a7f29c628b228b228d928af29102910291029062a0529b228b228c42852287f2846292029a429f429dd2aed2aaf2b102b102b102b6c2bcd2ab22ab22ac02a472b222c102b102bdc2b052bb22ab22ab22af92ac52b102b102b102b592bc62ab22ab22ac62a592b102b102b102bc52bf92ab22ab22ab22a052bdc2b102b102b222c472bc02ab22ab22acd2a6c2b102b102b102baf2bed2add2af429a42920294629fb29d929842aca2a992b652cbd2c372d882c882ca22c632c582c582c5e2c932cfa2c892d882ccf2c792c592c582c582c742cc62c442d882c882c9a2c602c582c582c602c9a2c052d882c882cc62c742c582c582c592c792ccf2c502d882cfa2c932c5e2c582c582c632ca22c102d882c882cbd2c652c992bca2a842ad929fb29392a192a632ba12b2d2cba2c692d132e882df22d942d612d582d582d5d2d882ddf2d5a2e282eba2d732d582d582d582d6f2db22d1d2e882de82d8e2d5f2d582d582d5f2d8e2de82d882d1d2eb22d6f2d582d582d582d732dba2d282e5a2edf2d882d5d2d582d582d612d942df22d882d132e692dba2c2d2ca12b632b192a392a2e2b112b392be12b912c142db72d732e3f2fdb2e8b2e5f2e582e582e5c2e812ecb2e362f0b2fab2e6e2e582e582e582e6b2ea52e012f882ed32e862e5d2e582e582e5d2e862ed32e882e012fa52e6b2e582e582e582e6e2eab2e0b2f362fcb2e812e5c2e582e582e5f2e8b2edb2e3f2f732eb72d142d912ce12b392b112b2e2b112c052c162c612cf72c702d0a2ebd2e812fca2f842f5e2f582f582f5b2f7b2fbc2f0d30f42fa02f6b2f582f582f582f682f9a2fec2f882fc32f7f2f5c2f582f582f5c2f7f2fc32f882fec2f9a2f682f582f582f582f6b2fa02ff42f0d30bc2f7b2f5b2f582f582f5e2f842fca2f812fbd2e0a2e702df72c612c162c052c112c8d2c832c912c182d5f2dcf2d602e0a2fc72f48303f302e302c302c302d303b305830823071304c3034302c302c302c30333049306d309e305b303d302e302c302c302e303d305b3086306d30493033302c302c302c3034304c307130823058303b302d302c302c302e303f304830c72f0a2f602ecf2d5f2d182d912c832c8d2c082d002d0c2d4a2dc82d312eb92e5b2f08306a30bd30ae30ab30ab30ad30b930d330f930ea30c830b330ac30ab30ab30b230c630e7301331d630bb30ad30ab30ab30ad30bb30d630fd30e730c630b230ab30ab30ac30b330c830ea30f930d330b930ad30ab30ab30ae30bd306a3008305b2fb92e312ec82d4a2d0c2d002d082d842d7c2d872dc02d312e942e152faf2f2e308d30f1302e312b312b312d3138314f3172316431453132312b312b312b313131433161318a3152313a312d312b312b312d313a31523176316131433131312b312b312b3132314531643172314f3138312d312b312b312e31f1308d302e30af2f152f942e312ec02d872d7c2d842dff2df82d032e372e9c2ef82e732f03305630b23013317a31ab31ab31ac31b731cc31ec31df31c331b231ab31ab31ab31b131c131dc310232cf31b831ad31ab31ab31ad31b831cf31ef31dc31c131b131ab31ab31ab31b231c331df31ec31cc31b731ac31ab31ab317a311331b23056300330732ff82e9c2e372e032ef82dff2d7b2e752e7e2eaf2e022f5e2fd32f2f308030d83037319b31c931c931c931c931c931c931c931c931c931c931c931c931c931c931c931c931c931c931c931c931c931c931c931c931c931c931c931c931c931c931c931c931c931c931c931c931c931c931c931c9319b313731d83080302f30d32f5e2f022faf2e7e2e752e7b2ef72ef12efa2e272f732fc52f1a305d30aa3000315c315c315c315c315c315c315c315c315c315c315c315c315c315c315c315c315c315c315c315c315c315c315c315c315c315c315c315c315c315c315c315c315c315c315c315c315c315c315c315c315c315c315c315c310031aa305d301a30c52f732f272ffa2ef12ef72e822f682f672f762fa72ff82f32307430c0301431f230f230f230f230f230f230f230f230f230f230f230f230f230f230f230f230f230f230f230f230f230f230f230f230f230f230f230f230f230f230f230f230f230f230f230f230f230f230f230f230f230f230f230f2301431c03074303230f82fa72f762f672f682f822fa02f872f862f952fc52f0a303f3081308c308c308c308c308c308c308c308c308c308c308c308c308c308c308c308c308c308c308c308c308c308c308c308c308c308c308c308c308c308c308c308c308c308c308c308c308c308c308c308c308c308c308c308c308c308c308c308c3081303f300a30c52f952f862f872fa02fbf2fa62fa42fb42fe32f19304d302d302d302d302d302d302d302d302d302d302d302d302d302d302d302d302d302d302d302d302d302d302d302d302d302d302d302d302d302d302d302d302d302d302d302d302d302d302d302d302d302d302d302d302d302d302d302d302d302d302d304d301930e32fb42fa42fa62fbf2fdd2fc52fc32fd22fc12faa2fa92fa92fa92fa92fa92fa92fa92fa92fa92fa92fa92fa92fa92fa92fa92fa92fa92fa92fa92fa92fa92fa92fa92fa92fa92fa92fa92fa92fa92fa92fa92fa92fa92fa92fa92fa92fa92fa92fa92fa92fa92fa92fa92fa92fa92fa92fa92fa92fa92fa92fa92fa92faa2fc12fd22fc32fc52fdd2ffc2f0e30ba2f612f252f0c2f0b2f0b2f0b2f0b2f0b2f0b2f0b2f0b2f0b2f0b2f0b2f0b2f0b2f0b2f0b2f0b2f0b2f0b2f0b2f0b2f0b2f0b2f0b2f0b2f0b2f0b2f0b2f0b2f0b2f0b2f0b2f0b2f0b2f0b2f0b2f0b2f0b2f0b2f0b2f0b2f0b2f0b2f0b2f0b2f0b2f0b2f0b2f0b2f0b2f0b2f0b2f0b2f0c2f252f612fba2f0e30fc2f1130b12f432fe22ea22e872e862e862e862e862e862e862e862e862e862e862e862e862e862e862e862e862e862e862e862e862e862e862e862e862e862e862e862e862e862e862e862e862e862e862e862e862e862e862e862e862e862e862e862e862e862e862e862e862e862e862e862e862e872ea22ee22e432fb12f1130dd2f612fe92e822e3d2e212e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e202e212e3d2e822ee92e612fdd2fb52f312faf2e442efd2ddf2ddf2ddf2ddf2ddf2ddf2ddf2ddf2ddf2ddf2ddf2ddf2ddf2ddf2ddf2ddf2ddf2ddf2ddf2ddf2ddf2ddf2ddf2ddf2ddf2ddf2ddf2ddf2ddf2ddf2ddf2ddf2ddf2ddf2ddf2ddf2ddf2ddf2ddf2ddf2ddf2ddf2ddf2ddf2ddf2ddf2ddf2ddf2ddf2ddf2ddf2ddf2ddf2ddf2dfd2d442eaf2e312fb52fad2f212f9b2e2f2ee72dc82dc72dc72dc72dc72dc72dc72dc72dc72dc72dc72dc72dc72dc72dc72dc72dc72dc72dc72dc72dc72dc72dc72dc72dc72dc72dc72dc72dc72dc72dc72dc72dc72dc72dc72dc72dc72dc72dc72dc72dc72dc72dc72dc72dc72dc72dc72dc72dc72dc72dc72dc72dc72dc82de72d2f2e9b2e212fad2fc42f342fad2e422efb2ddd2ddc2ddc2ddc2ddc2ddc2ddc2ddc2ddc2ddc2ddc2ddc2ddc2ddc2ddc2ddc2ddc2ddc2ddc2ddc2ddc2ddc2ddc2ddc2ddc2ddc2ddc2ddc2ddc2ddc2ddc2ddc2ddc2ddc2ddc2ddc2ddc2ddc2ddc2ddc2ddc2ddc2ddc2df72df42df12dee2deb2de82de52de32de02dde2ddd2dfb2d422ead2e342fc42ffa2f692fe42e7d2e392e1c2e1b2e1b2e1b2e1b2e1b2e1b2e1b2e1b2e1b2e1b2e1b2e1b2e1b2e1b2e1b2e1b2e1b2e1b2e1b2e1b2e1b2e1b2e1b2e1b2e1b2e1b2e1b2e1b2e1b2e1b2e1b2e1b2e1b2e1b2e1b2e1b2e1b2e1b2e1b2e1b2e1b2e1b2e242e222e212e202e1f2e1e2e1d2e1d2e1c2e1b2e1c2e392e7d2ee42e692ffa2f2630bc2f3e2fd32e922e772e762e762e762e762e762e762e762e762e762e762e762e762e762e762e762e762e762e762e762e762e762e762e762e762e762e762e762e762e762e762e762e762e762e762e762e762e762e762e762e762e762e762e762e762e762e762e762e762e762e762e762e762e772e922ed32e3e2fbc2f2630bd2679265022342234227926792679267926792679267926342234221723792679267926792679267926392234223422792679267926792679267926792634223422792679267926792679267926792634223422392279267926792679267926792617233422342279267926792679267926792679263422342250227926bd260f2433239e182c9b549733233323332333233323332333232c9b2c9bdb1e3323332333233323332333236e132c9b3a8f33233323332333233323332333232c9b2c9b33233323332333233323332333233a8f2c9b6e13332333233323332333233323db1e2c9b2c9b332333233323332333233323332354972c9b9e1833230f24742370229e18e5a454977022702270227022702270227022619ee5a4db1e7022702270227022702270226e13e5a43a8f7022702270227022702270227022c29fc29f70227022702270227022702270223a8fe5a46e13702270227022702270227022db1ee5a4619e70227022702270227022702270225497e5a49e18702274234b24be247b1df91cf91c8123b823b823b823b823b8236a21f91cf91c3c20d925b823b823b823b82369240f1df91cf91c1424b823b823b823b823b823cf20f91cf91ccf20b823b823b823b823b8231424f91cf91c0f1d6924b823b823b823b823d9253c20f91cf91c6a21b823b823b823b823b8238123f91cf91c7b1dbe244b242b27f52645253d253d255326eb26eb26eb26eb26eb26c4253d253d258325c027eb26eb26eb26eb26bc263e253d253d258626eb26eb26eb26eb26eb26a1253d253d25a125eb26eb26eb26eb26eb2686263d253d253e25bc26eb26eb26eb26eb26c02783253d253d25c425eb26eb26eb26eb26eb2653263d253d254525f5262b274d2a2729a0289e289e28f228f6295029502950299e29c5289e289e28b2286e29b32a502950292f2a14299e289e289e280229122a5029502950298629bb289e289e28bb288629502950295029122a02299e289e289e2814292f2a50295029b32a6e29b2289e289e28c5289e29502950295029f629f2289e289e28a02827294d2a1d2b012b9f2a9d2a9d2ad92a9d2b3e2b3e2b3e2b592bb92a9d2a9d2aac2a352b1a2c3e2b3e2bca2bf22a9e2a9d2a9d2ae52ab32b3e2b3e2b3e2b472bb22a9d2a9d2ab22a472b3e2b3e2b3e2bb32be52a9d2a9d2a9e2af22aca2b3e2b3e2b1a2c352bac2a9d2a9d2ab92a592b3e2b3e2b3e2b9d2bd92a9d2a9d2a9f2a012b1d2bc02ba62b282c432c4e2c652cb32c2f2d9a2c082d982c592c4e2c4e2c542c892cf12c812d482dc62c6f2c4e2c4e2c4e2c6a2cbc2c3b2d9a2cfc2c902c562c4e2c4e2c562c902cfc2c9a2c3b2dbc2c6a2c4e2c4e2c4e2c6f2cc62c482d812df12c892c542c4e2c4e2c592c982c082d9a2c2f2db32c652c4e2c432c282ca62bc02b022cec2b072cb12cfe2c762da12d0a2e962de82d8b2d572d4e2d4e2d522d7e2dd62d512e1f2eb12d692d4e2d4e2d4e2d652da92d152e962ddf2d842d542d4e2d4e2d542d842ddf2d962d152ea92d652d4e2d4e2d4e2d692db12d1f2e512ed62d7e2d522d4e2d4e2d572d8b2de82d962d0a2ea12d762dfe2cb12c982cec2b022c732c682c782cbd2c652dd52d662e0f2f942ed22e812e552e4e2e4e2e522e772ec12e2d2f022fa22e642e4e2e4e2e4e2e612e9b2ef82e942eca2e7c2e532e4e2e4e2e532e7c2eca2e942ef82e9b2e612e4e2e4e2e4e2e642ea22e022f2d2fc12e772e522e4e2e4e2e552e812ed22e942e0f2f662ed52d652d1e2d782c682c732cef2ce52cf32c322dce2d362ebf2e602f0a30c12f7a2f542f4e2f4e2f512f712fb22f0830eb2f962f612f4e2f4e2f4e2f5e2f912fe22f932fb92f752f522f4e2f4e2f522f752fb92f932fe22f912f5e2f4e2f4e2f4e2f612f962feb2f0830b22f712f512f4e2f4e2f542f7a2fc12f0a30602fbf2e362ece2d322df32ce52cef2c6a2d612d6e2da82d382e9a2e1b2fb52f313059303a302930263026302830363053307e306c3047302f302730263026302e30443068309a30563038302930263026302930383056308230683044302e302630263027302f3047306c307e305330363028302630263029303a3059303130b52f1b2f9a2e382ea82d6e2d612d6a2de62ddf2dea2d1e2ea22efe2e792f06305930b430b830a930a630a630a830b430ce30f530e530c330ae30a630a630a630ad30c130e2300e31d130b630a830a630a630a830b630d130f930e230c130ad30a630a630a630ae30c330e530f530ce30b430a830a630a630a930b830b43059300630792ffe2ea22e1e2eea2ddf2de62d622e5b2e652e962eeb2e642fd82f32308230da303931293126312631273133314a316d315f3140312d312631263126312c313e315c3185314d313431283126312631283134314d3171315c313e312c312631263126312d3140315f316d314a31333127312631263129313931da3082303230d82f642feb2e962e652e5b2e622ede2ed82ee12e0f2f792fcb2f1d306030ad3002315e31a831a631a631a731b231c731e731da31be31ac31a631a631a631ac31bc31d731fd31ca31b331a831a631a631a831b331ca31eb31d731bc31ac31a631a631a631ac31be31da31e731c731b231a731a631a631a8315e310231ad3060301d30cb2f792f0f2fe12ed82ede2e5a2f542f5d2f872fd22f1d304e308e30d8302b318431e331263226322732313244320d320d323c322c322632263226322b323a320d320d320d323232273226322632273232320d320d320d323a322b322632263226322c323c320d320d3244323132273226322632e33184312b31d8308e304e301930d22f872f5d2f542f5a2fd62fd12fd92f003023304e308030be3005315531ac31a531a531a531a531a531a531a531a531a531a531a531a531a531a531a531a531a531a531a531a531a531a531a531a531a531a531a531a531a531a531a531a531a531a531a531a531a531a531a531a531a531a531ac3155310531be3080304e3023300030d92fd12fd62f293026302a303d304f307330a330df30253173314131413141314131413141314131413141314131413141314131413141314131413141314131413141314131413141314131413141314131413141314131413141314131413141314131413141314131413141314131413173312531df30a33073304f303d302a30263029304d304230423048305e308130b130ed30e230e230e230e230e230e230e230e230e230e230e230e230e230e230e230e230e230e230e230e230e230e230e230e230e230e230e230e230e230e230e230e230e230e230e230e230e230e230e230e230e230e230e230e230e230e230e230e230ed30b13081305e304830423042304d305d305230513058306d309030bf3089308930893089308930893089308930893089308930893089308930893089308930893089308930893089308930893089308930893089308930893089308930893089308930893089308930893089308930893089308930893089308930893089308930bf3090306d305830513052305d306c30613061306730433038303830383038303830383038303830383038303830383038303830383038303830383038303830383038303830383038303830383038303830383038303830383038303830383038303830383038303830383038303830383038303830383038303830383038303830383043306730613061306c307b30743041301830fa2fe32fe32fe32fe32fe32fe32fe32fe32fe32fe32fe32fe32fe32fe32fe32fe32fe32fe32fe32fe32fe32fe32fe32fe32fe32fe32fe32fe32fe32fe32fe32fe32fe32fe32fe32fe32fe32fe32fe32fe32fe32fe32fe32fe32fe32fe32fe32fe32fe32fe32fe32fe32fe32fe32ffa2f1830413074307b307c3042300a30be2f852f6d2f6d2f6d2f6d2f6d2f6d2f6d2f6d2f6d2f6d2f6d2f6d2f6d2f6d2f6d2f6d2f6d2f6d2f6d2f6d2f6d2f6d2f6d2f6d2f6d2f6d2f6d2f6d2f6d2f6d2f6d2f6d2f6d2f6d2f6d2f6d2f6d2f6d2f6d2f6d2f6d2f6d2f6d2f6d2f6d2f6d2f6d2f6d2f6d2f6d2f6d2f6d2f6d2f6d2f852fbe2f0a3042307c305b301c30c42f692f2d2f142f132f132f132f132f132f132f132f132f132f132f132f132f132f132f132f132f132f132f132f132f132f132f132f132f132f132f132f132f132f132f132f132f132f132f132f132f132f132f132f132f132f132f132f132f132f132f132f132f132f132f132f132f142f2d2f692fc42f1c305b3047300530912f332ff62edc2edb2edb2edb2edb2edb2edb2edb2edb2edb2edb2edb2edb2edb2edb2edb2edb2edb2edb2edb2edb2edb2edb2edb2edb2edb2edb2edb2edb2edb2edb2edb2edb2edb2edb2edb2edb2edb2edb2edb2edb2edb2edb2edb2edb2edb2edb2edb2edb2edb2edb2edb2edb2edc2ef62e332f912f053047304130f92f7f2f202fe22ec82ec72ec72ec72ec72ec72ec72ec72ec72ec72ec72ec72ec72ec72ec72ec72ec72ec72ec72ec72ec72ec72ec72ec72ec72ec72ec72ec72ec72ec72ec72ec72ec72ec72ec72ec72ec72ec72ec72ec72ec72ec72ec72ec72ec72ec72ec72ec72ec72ec72ec72ec72ec72ec82ee22e202f7f2ff92f41304a3004308f2f312ff42eda2ed92ed92ed92ed92ed92ed92ed92ed92ed92ed92ed92ed92ed92ed92ed92ed92ed92ed92ed92ed92ed92ed92ed92ed92ed92ed92ed92ed92ed92ed92ed92ed92ed92ed92ed92ed92ed92ed92ed92ed92ed92ed92ef62ef22eef2eec2ee92ee62ee32ee02ede2edb2eda2ef42e312f8f2f04304a3061301b30c02f652f292f102f0f2f0f2f0f2f0f2f0f2f0f2f0f2f0f2f0f2f0f2f0f2f0f2f0f2f0f2f0f2f0f2f0f2f0f2f0f2f0f2f0f2f0f2f0f2f0f2f0f2f0f2f0f2f0f2f0f2f0f2f0f2f0f2f0f2f0f2f0f2f0f2f0f2f0f2f0f2f0f2f0f2f0f2f1c2f1b2f192f182f162f152f132f122f112f102f102f292f652fc02f1b306130853041300830b72f7d2f652f652f652f652f652f652f652f652f652f652f652f652f652f652f652f652f652f652f652f652f652f652f652f652f652f652f652f652f652f652f652f652f652f652f652f652f652f652f652f652f652f652f652f652f652f652f652f652f652f652f652f652f652f652f7d2fb72f083041308530ab288825532238223822b62492289228922892289228dc23382238221a238126922892289228922840253c2238223822fa2492289228922892289228752338223822762392289228922892289228fa24382238223c224025922892289228922881261a2338223822dc2392289228922892289228b6243822382253228825ab28a12793249e181d9b5497152365276527652765276527cf201d9b1d9bdb1eb62565276527652765273b246e131d9b3a8fc623652765276527652765271e201d9b1d9b1e2065276527652765276527c6233a8f1d9b6e133b246527652765276527b625db1e1d9b1d9bcf2065276527652765276527152354971d9b9e189324a127752793249e18e3a45497152338273827382738273827cf20619ee3a4db1eb62538273827382738273b246e13e3a43a8fc623382738273827382738271e20c29fc29f1e2038273827382738273827c6233a8fe3a46e133b243827382738273827b625db1ee3a4619ecf203827382738273827382715235497e3a49e18932475275228b424e91c551c551c68239e278727872787277e264621551c551c0e20d025e3288727872726285e246f1c551c551c0924f6278727872787272726a720551c551ca7202726872787278727f6270924551c551c6f1c5e24262887278727e328d0250e20551c551c46217e268727872787279e276823551c551ce91cb4245228fc28d6261d251425142531268b28bc28bc28bc2816289f25142514255c25a5277b29bc28bc28d6289c261625142514256526b028bc28bc28bc28e8277b25142514257b25e827bc28bc28bc28b02865261425142516259c26d628bc28bc287b29a5275c25142514259f251628bc28bc28bc288b283126142514251d25d626fc283e2a15298c2889288928df28e629372a372a372a8e29b228892889289e285c29a52a372a372a202a02298a2889288928ef28032a372a372a372a7529a72889288928a7287529372a372a372a032aef28892889288a280229202a372a372aa52a5c299e2889288928b2288e29372a372a372ae629df28892889288c2815293e2ad12bed2a8b2a892a892ac52a8b2b5c2cee2b2d2c472ba52a892a892a972a222b122cbc2c792cb92bdf2a892a892a892ad12aa22b6a2cee2b1f2c342b9e2a892a892a9e2a342b1f2cee2b6a2ca22bd12a892a892a892adf2ab92b792cbc2c122c222b972a892a892aa52a472b2d2cee2b5c2c8b2bc52a892a892a8b2aed2ad12bc62c6b2c452c442c442c5b2caa2c262de02cff2c8e2c4f2c442c442c4a2c802ce92c792d402dbc2c652c442c442c442c602cb32c332de02cf42c872c4c2c442c442c4c2c872cf42ce02c332db32c602c442c442c442c652cbc2c402d792de92c802c4a2c442c442c4f2c8e2cff2ce02c262daa2c5b2c442c442c452c6b2cc62c322d282d7e2d442d442d572d982d012ed12ddf2d812d4d2d442d442d482d752dcc2d482e172ea72d5f2d442d442d442d5b2d9f2d0c2ed12dd62d7b2d4a2d442d442d4a2d7b2dd62dd12d0c2e9f2d5b2d442d442d442d5f2da72d172e482ecc2d752d482d442d442d4d2d812ddf2dd12d012e982d572d442d442d7e2d282d322d522d482d562d902d3e2e542e8b2ee62e5f2fc82e772e4b2e442e442e472e6d2eb82e242ff82e982e5a2e442e442e442e572e912eef2e6b2fc02e722e492e442e442e492e722ec02e2f2fef2e912e572e442e442e442e5a2e982ef82e242fb82e6d2e472e442e442e4b2e772ec82e3a2fe62e8b2e542e3e2e902d562d482d522dcd2dc42dd02d062ea92e042f7e2fd12f1e30b72f702f4a2f432f432f472f672fa92f0430e12f8d2f572f442f432f432f542f872fd92f2330b02f6b2f482f432f432f482f6b2fb02f0930d92f872f542f432f432f442f572f8d2fe12f0430a92f672f472f432f432f4a2f702fb72f0d30d12f7e2f042fa92e062ed02dc42dcd2d492e412e4c2e7e2ed42e6a2fde2f3530853055303530243021302130233031304e307930673042302a3021302130213029303f3064309530513033302330213021302330333051307d3064303f3029302130213021302a304230673079304e30313023302130213024303530553085303530de2f6a2fd42e7e2e4c2e412e492ec52ebf2ec82ef62e7f2fd12f1f306230af30cf30b330a430a130a130a330af30c930f030e030be30a930a130a130a130a830bc30dd300a31cc30b130a330a130a130a330b130cc30f430dd30bc30a830a130a130a130a930be30e030f030c930af30a330a130a130a430b330cf30af3062301f30d12f7f2ff62ec82ebf2ec52e412f3b2f442f6f2fbb2f113051309130db302d31313123312131213122312e31453169315a313b312831213121312131273139315731803148312f3123312131213123312f3148316c3157313931273121312131213128313b315a31693145312e31223121312131233131312d31db30913051301c30bb2f6f2f442f3b2f412fbd2fb72fbf2fe82f173051308330c03008315731ae31a331a131a131a231ad31c231e231d531b931a731a131a131a131a631b731d231f831c531ae31a331a131a131a331ae31c531e631d231b731a631a131a131a131a731b931d531e231c231ad31a231a131a131a331ae3157310831c030833051301730e82fbf2fb72fbd2f1c301a301d30313052308130b530f03035318231d63123322132213222322c323f325d32513237322732213221322132263235324e32713242322d3222322132213222322d32423260324e32353226322132213221322732373251325d323f322c322232213221322332d63182313531f030b5308130523031301d301a301c305a3058305b306e308e30ba30e83021316331ae310032f531f531f531f531f531f531f531f531f531f531f531f531f531f531f531f531f531f531f531f531f531f531f531f531f531f531f531f531f531f531f531f531f531f531f531f531f531f531f531f531f531f5310032ae3163312131e830ba308e306e305b3058305a30983096309a30ab30c930f0301c31523192319731973197319731973197319731973197319731973197319731973197319731973197319731973197319731973197319731973197319731973197319731973197319731973197319731973197319731973197319731973197319731923152311c31f030c930ab309a3096309830cb30c130c130c730da30fa3026315c313e313e313e313e313e313e313e313e313e313e313e313e313e313e313e313e313e313e313e313e313e313e313e313e313e313e313e313e313e313e313e313e313e313e313e313e313e313e313e313e313e313e313e313e313e313e313e313e315c312631fa30da30c730c130c130cb30db30d130d030d630e9300931eb30eb30eb30eb30eb30eb30eb30eb30eb30eb30eb30eb30eb30eb30eb30eb30eb30eb30eb30eb30eb30eb30eb30eb30eb30eb30eb30eb30eb30eb30eb30eb30eb30eb30eb30eb30eb30eb30eb30eb30eb30eb30eb30eb30eb30eb30eb30eb30eb30eb30eb30eb300931e930d630d030d130db30ea30e030e030c230ab30a230a130a130a130a130a130a130a130a130a130a130a130a130a130a130a130a130a130a130a130a130a130a130a130a130a130a130a130a130a130a130a130a130a130a130a130a130a130a130a130a130a130a130a130a130a130a130a130a130a130a130a130a130a230ab30c230e030e030ea301131db30a93084306b306130613061306130613061306130613061306130613061306130613061306130613061306130613061306130613061306130613061306130613061306130613061306130613061306130613061306130613061306130613061306130613061306130613061306130613061306b308430a930db301131e630ac307830513037302c302c302c302c302c302c302c302c302c302c302c302c302c302c302c302c302c302c302c302c302c302c302c302c302c302c302c302c302c302c302c302c302c302c302c302c302c302c302c302c302c302c302c302c302c302c302c302c302c302c302c302c302c302c30373051307830ac30e630c730893053302a30103005300530053005300530053005300530053005300530053005300530053005300530053005300530053005300530053005300530053005300530053005300530053005300530053005300530053005300530053005300530053005300530053005300530053005300530053010302a3053308930c730b33073303c301330f02fd92fd92fd92fd92fd92fd92fd92fd92fd92fd92fd92fd92fd92fd92fd92fd92fd92fd92fd92fd92fd92fd92fd92fd92fd92fd92fd92fd92fd92fd92fd92fd92fd92fd92fd92fd92fd92fd92fd92fd92fd92fd92fd92fd92fd92fd92fd92fd92fd92fd92fd92fd92fd92fd92ff02f13303c307330b330ad306b3034300a30df2fc82fc72fc72fc72fc72fc72fc72fc72fc72fc72fc72fc72fc72fc72fc72fc72fc72fc72fc72fc72fc72fc72fc72fc72fc72fc72fc72fc72fc72fc72fc72fc72fc72fc72fc72fc72fc72fc72fc72fc72fc72fc72fc72fc72fc72fc72fc72fc72fc72fc72fc72fc72fc72fc82fdf2f0a3034306b30ad30b43072303b301230ee2fd72fd72fd72fd72fd72fd72fd72fd72fd72fd72fd72fd72fd72fd72fd72fd72fd72fd72fd72fd72fd72fd72fd72fd72fd72fd72fd72fd72fd72fd72fd72fd72fd72fd72fd72fd72fd72fd72fd72fd72fd72fd72fd72ff52ff22fee2feb2fe82fe52fe22fdf2fdc2fd92fd72fee2f12303b307230b430c7308730513029300e3003300330033003300330033003300330033003300330033003300330033003300330033003300330033003300330033003300330033003300330033003300330033003300330033003300330033003300330033003300b300a300930083007300730063005300430033003300e30293051308730c730e830a93075304e3034302a302a302a302a302a302a302a302a302a302a302a302a302a302a302a302a302a302a302a302a302a302a302a302a302a302a302a302a302a302a302a302a302a302a302a302a302a302a302a302a302a302a302a302b302b302b302a302a302a302a302a302a302a302a3034304e307530a930e8309028892557223c223c22b7241428452a452a452a1f27df233c223c221d2382261929452a452a6628412540223c223c22fb243d28452a452a452ad02679233c223c227923d026452a452a452a3d28fb243c223c22402241256628452a452a192982261d233c223c22df231f27452a452a452a1428b7243c223c22572289259028492893249e180f9b549715238a27aa29aa29aa296726cf200f9b0f9bdb1eb625db28aa29aa291d283b246e130f9b3a8fc623e327aa29aa29aa290f261e200f9b0f9b1e200f26aa29aa29aa29e327c6233a8f0f9b6e133b241d28aa29aa29db28b625db1e0f9b0f9bcf206726aa29aa29aa298a27152354970f9b9e1893244928492893249e18fa95fa9515238a279c299c299c296726cf20fa95fa95db1eb625db289c299c291d283b246e13fa953a8fc623e3279c299c299c290f261e20fa95fa951e200f269c299c299c29e327c6233a8ffa956e133b241d289c299c29db28b625db1efa95fa95cf2067269c299c299c298a271523fa95fa959e18932449286d2812258620602078202924da27df29b6295029c42680226a2160208f211e26fa28f12a362a4228c324662060206120752417280b2ab629252971260222d921d921022271262529b6290b2a17287524612060206620c3244228362af12afa281e268f2160206a218022c4265029b629df29da27292478206020862012256d28102913276c25642569257326a2285e2a642adc292f28e7259f256425a825db278e295e2baf2aeb28db26662564256525a626c728862a642ab5290e28c625bb25bb25c6250e28b529642a862ac728a626652564256625db26eb28af2a5e2b8e29db27a82564259f25e7252f28dc29642a5e2aa2287326692564256c25132710294c2a26299f289d289e28f128f529632b8e2bf42a9d29c428ae289d28b1286d29b22a212ca92b2e2a13299d289d289d280129112a862b8e2bd32a8429ba28b628b628ba288429d32a8e2b862b112a01299d289d289d2813292e2aa92b212cb22a6d29b1289d28ae28c4289d29f42a8e2b632bf529f1289e289d289f2826294c2ada2bf72a962a942a952ad02a952b602c822c312c512bb02aa02a942aa22a2c2b162cc02c7d2cc22be92a942a942a942adc2aab2b6e2c822c242c3e2ba82aa62aa62aa82a3e2b242c822c6e2cab2bdc2a942a942a942ae92ac22b7d2cc02c162c2c2ba22a942aa02ab02a512b312c822c602c952bd02a952a942a962af72ada2bc92c6e2c482c472c482c5f2cad2c292dc82d022d922c522c4c2c472c4d2c832ceb2c7c2d422dbf2c682c482c472c472c632cb62c362dd62df72c8a2c4f2c4e2c4e2c4f2c8a2cf72c892d362db62c632c472c472c482c682cbf2c422d7c2deb2c832c4d2c472c4c2c522c922c022d982d292dad2c5f2c482c472c482c6e2cc92cb12d652d462d462d462d592d9a2d032e8d2ee12d832d4f2d4a2d462d4a2d772dce2d4a2e182ea92d612d462d462d462d5d2da12d0e2e9a2ed82d7d2d4c2d4c2d4c2d4c2d7d2dd82d562e0e2ea12d5d2d462d462d462d612da92d182e4a2ece2d772d4a2d462d4a2d4f2d832de12d632e032e9a2d592d462d462d462d652db12d382e302e452e452e452e552e8c2ee72e602fca2e792e4c2e482e452e492e6e2eb92e252ffa2e992e5c2e452e452e452e582e922ef02e6c2fc12e732e4a2e4a2e4a2e4a2e732ec12e302ff02e922e582e452e452e452e5c2e992efa2e252fb92e6e2e492e452e482e4c2e792eca2e3b2fe72e8c2e552e452e452e452e302e382eac2ea42eaf2ede2e2f2f522f822fd22f1e30b82f712f4b2f472f442f482f682fa92f0430e22f8d2f582f442f442f442f552f882fda2f2430b12f6c2f492f482f482f492f6c2fb12f0930da2f882f552f442f442f442f582f8d2fe22f0430a92f682f482f442f472f4b2f712fb82f0e30d22f822f522f862fde2eaf2ea42eac2e282f212f2a2f562fa32f063054306030913055303530243023302230233031304e307930683042302a3022302230223029303f3064309530523033302430233023302430333052307d3064303f3029302230223022302a304230683079304e3031302330223023302430353055308230603054302030a32f562f2a2f212f282fa42f9d2fa62fcf2f0c3054308630c3300a31cf30b330a430a330a130a330af30c930f030e030be30a930a130a130a130a830bc30dd300a31cc30b130a330a330a330a330b130cc30f430dd30bc30a830a130a130a130a930be30e030f030c930af30a330a130a330a430b330cf300a31c330863054300c30cf2fa62f9d2fa42f10300d301130243046307630b830f33038314b31313124312231213122312e31463169315a313b312831213121312131273139315731803148312f3123312331233123312f3148316c3157313931273121312131213128313b315a31693146312e31223121312231233131314b313831f330b83076304630243011300d3010304e304b304f3061308130af30eb3024316631b131b031a331a231a131a231ad31c231e231d531b931a731a131a131a131a631b731d231f831c531ae31a331a231a231a331ae31c531e631d231b731a631a131a131a131a731b931d531e231c231ad31a231a131a231a331b031b13166312431eb30af30813061304f304b304e308c3089308d309e30bd30f3301f3155319531dd312d3223322232213222322c323f325d32513237322732213221322132263235324e32713242322d3222322232223222322d32423260324e32353226322132213221322732373251325d323f322c3222322132223223322d32dd31953155311f31f330bd309e308d3089308c30ca30c830cb30db30f930223156318731c5310b3258324c324c324c324c324c324c324c324c324c324c324c324c324c324c324c324c324c324c324c324c324c324c324c324c324c324c324c324c324c324c324c324c324c324c324c324c324c324c324c324c324c324c3258320b32c531873153312231f930db30cb30c830ca30083106310931193135315c318731b931f531f231f231f231f231f231f231f231f231f231f231f231f231f231f231f231f231f231f231f231f231f231f231f231f231f231f231f231f231f231f231f231f231f231f231f231f231f231f231f231f231f231f231f231f231f231f231f531b93187315c31353119310931063108314631443147314531573174319c31ce319f319f319f319f319f319f319f319f319f319f319f319f319f319f319f319f319f319f319f319f319f319f319f319f319f319f319f319f319f319f319f319f319f319f319f319f319f319f319f319f319f319f319f319f319f319f319f319f31ce319c31743157314531473144314631593150314f3155316631833153315331533153315331533153315331533153315331533153315331533153315331533153315331533153315331533153315331533153315331533153315331533153315331533153315331533153315331533153315331533153315331533153315331533153318331663155314f315031593168315f315f312d3118310f310f310f310f310f310f310f310f310f310f310f310f310f310f310f310f310f310f310f310f310f310f310f310f310f310f310f310f310f310f310f310f310f310f310f310f310f310f310f310f310f310f310f310f310f310f310f310f310f310f310f310f310f310f3118312d315f315f3168317a3144311631f430de30d430d430d430d430d430d430d430d430d430d430d430d430d430d430d430d430d430d430d430d430d430d430d430d430d430d430d430d430d430d430d430d430d430d430d430d430d430d430d430d430d430d430d430d430d430d430d430d430d430d430d430d430d430d430de30f430163144317a3152311831e930c530ae30a530a430a430a430a430a430a430a430a430a430a430a430a430a430a430a430a430a430a430a430a430a430a430a430a430a430a430a430a430a430a430a430a430a430a430a430a430a430a430a430a430a430a430a430a430a430a430a430a430a430a430a430a430a530ae30c530e930183152313331f830c730a3308b308130813081308130813081308130813081308130813081308130813081308130813081308130813081308130813081308130813081308130813081308130813081308130813081308130813081308130813081308130813081308130813081308130813081308130813081308b30a330c730f83033312031e430b3308e3075306b306b306b306b306b306b306b306b306b306b306b306b306b306b306b306b306b306b306b306b306b306b306b306b306b306b306b306b306b306b306b306b306b306b306b306b306b306b306b306b306b306b306b306b306b306b306b306b306b306b306b306b306b306b3075308e30b330e43020311a31dd30ac3086306e306430633063306330633063306330633063306330633063306330633063306330633063306330633063306330633063306330633063306330633063306330633063306330633063306330633063306330633063306330633063306330633063306330633063306330633064306e308630ac30dd301a311f31e330b2308d3075306b306a306a306a306a306a306a306a306a306a306a306a306a306a306a306a306a306a306a306a306a306a306a306a306a306a306a306a306a306a306a306a306a306a306a306a306a306a306a306a306a306a306a307a307830763075307330723070306e306d306b306b3075308d30b230e3301f313231f730c630a1308a3080307f307f307f307f307f307f307f307f307f307f307f307f307f307f307f307f307f307f307f307f307f307f307f307f307f307f307f307f307f307f307f307f307f307f307f307f307f307f307f307f307f307f30893088308730863085308430833082308130803080308a30a130c630f730323150311631e730c330ac30a230a230a230a230a230a230a230a230a230a230a230a230a230a230a230a230a230a230a230a230a230a230a230a230a230a230a230a230a230a230a230a230a230a230a230a230a230a230a230a230a230a230a230a630a530a530a430a430a330a330a330a230a230a230ac30c330e7301631503190288a255a223f223f22b9241428fa290e2c6e292027e2233f223f22202383261a29082b4f2a6728422544223f223f22fc243d28252a0e2c4429d1267c233f223f227c23d12644290e2c252a3d28fc243f223f224422422567284f2a082b1a29832620233f223f22e22320276e290e2cfa291428b9243f223f225a228a2590284a289424bf186610661016238b27c529a62b33296826d12066106610e11eb725db28db2a1d2a1d283c24511466106610c723e327f129a62b07290f2620206610661020200f260729a62bf129e327c7236610661051143c241d281d2adb2adb28b725e11e66106610d12068263329a62bc5298b27162366106610bf1894244a287e28502585216521792173240128ed299c2b5f29f3263a2345226521652251260a29fd2a432a542804256a2165216721bb242b28182a9c2b3529a226ca22a522a522ca22a22635299c2b182a2b28bb24672165216a2104255428432afd2a0a2951266522652145223a23f3265f299c2bed290128732479216521852150257e280729f9264a254225472557269828572aaf2bd4292428c8257f2542258825c4278629582ba82ae228c0264325422542258a26bd287f2aaf2bad290328a6259b259b25a6250328ad29af2b7f2abd288a26422542254325c026e228a82a582b8629c427882542257f25c8252428d429af2b572a98285726472542254a25f9260729cd298728d7274428d5274b286e29f82a592c822a0d291728fb27ce280028d7283c2ae42b422bad297228d3275728d2275d288d291d2b6d2c5f2af2280b28072807280b28f2285f2a052c1d2b8d295d28d2276b28d3277228ad29422be42b3c2ad72800281328fb2717280d29822a192cf82a6e294b28d5278028d7278728cd29e82ae0296b29ad296b29b229982ae92bbc2c822b4a2a8b297829172a7b291f2a452b5e2c152ccc2acf296a29bb296929c029b22a052cce2c632b342a82297f297f298229342a632b6f2c052cb22ac0296929ca296a29cf29cc2a152c5e2c452b1f2a7b29882978298b294a2a822b812ce92b982ab2296b29da296b29e029e82a2c2c852b2b2b5d2b2a2b612b0c2c992c482d6d2cd82b432b352bb02b362bb62b532cf52cb52c212c782b2a2b682b292b6c2b162ca72c592d602cc72b3c2b3a2b3a2b3c2bc72b602c042da72c162c6c2b292b732b2a2b782b212cb52cf52c532cb62b362b412b352b432bd82b6d2c142d992c0c2c612b2a2b802b2b2b852b2c2cfe2ca62c822c962c822c982ce32c5a2df32d342dc82c8c2c862cb82c872cba2c1f2daa2d722df42ca12c822c9b2c822c9c2ceb2c662d022e292dc12c892c882c882c892cc12c292db72d662deb2c9c2c822c9f2c822ca12cf42c722daa2d1f2dba2c872c8b2c862c8c2cc82c342dc52d5a2de32c982c822ca52c822ca62cfe2cde2d942d762d872d762d882dc72d2d2eb32e0c2eb12d7e2d7a2da32d7a2da52dfa2d722e422ed62d902d762d8a2d762d8c2dce2d372ec02e032eab2d7c2d7b2d7b2d7c2dab2d032e7e2e372ece2d8c2d762d8e2d762d902dd62d422e722efa2da52d7a2d7d2d7a2d7e2db12d0c2e8a2e2d2ec72d882d762d932d762d942dde2dc72e872e6e2e7c2e6e2e7d2eb32e0c2f832fef2ea02e752e712e942e712e962edf2e492f1e2fc02e842e6d2e7f2e6d2e802eb92e152f8e2fe72e9a2e732e722e722e732e9a2ee72e532f152fb92e802e6d2e822e6d2e842ec02e1e2f492fdf2e962e712e742e712e752ea02eef2e5e2f0c2fb32e7d2e6e2e862e6e2e872ec72eb52f7e2f682f742f682f752fa42ff22f2e30d92f932f6e2f6a2f892f6a2f8a2fcb2f14300130af2f7b2f672f772f672f782fa92ffa2f3330d22f8f2f6c2f6b2f6b2f6c2f8f2fd22f1930fa2fa92f782f672f792f672f7b2faf2f01301430cb2f8a2f6a2f6d2f6a2f6e2f932fd92f1e30f22fa42f752f682f7d2f682f7e2fb52f0330003004301830313037304c306f309f3063304430343032304030323041305d308730763051303a3031303830313038304e307230a330603042303330333033303330423060308c3072304e3038303130393031303a305130763087305d30413032303430323034304430633090306f304c3037303130183004300030033041303e30423055307530a330c730e7301231dd30c130b230b030bc30b030bd30d730fd30ed30cc30b730af30b530af30b630c930ea301631da30bf30b130b130b130b130bf30da300131ea30c930b630af30b630af30b730cc30ed30fd30d730bd30b030b130b030b230c130dd300531e730c730a3307530553042303e3041307f307d3080309230b130f63022315831983157313d3130312f313a312f313a31523174316631483135312e3133312e313431453163318c3154313c312f312f312f312f313c31543178316331453134312e3134312e31353148316631743152313a312f3130312f3130313d315731983158312231f630b130923080307d307f30bd30bb30be30cf30ec3016314a318a31c831d231bb31ae31ad31b731ad31b831cd31ed31e031c431b331ac31b131ac31b231c231dd310332d031b931ae31ae31ae31ae31b931d031f131dd31c231b231ac31b231ac31b331c431e031ed31cd31b831ad31ae31ad31ae31bb31d231c8318a3156311631ec30cf30be30bb30bd30fb30f930fc300c31283150318a31bc31f8313c3239322d322c3236322c3236324a3267325b32413231322b3230322b3230323f3259327b324c3237322d322d322d322d3237324c326a3259323f3230322b3231322b32313241325b3267324a3236322c322d322c322d3239323c32f831bc318a31503128310c31fc30f930fb303a3138313a314a3164318a31be31ef3129326a32b332ac32ab32b432ab32b432c732e232d732bf32b032ab32af32ab32af32bd32d432a732c932b632ac32ac32ac32ac32b632c932a732d432bd32af32ab32b032ab32b032bf32d732e232c732b432ab32ac32ab32ac32b3326a322932ef31be318a3164314a313a3138313a317831763179318731a131c531f33122325a3253325332533253325332533253325332533253325332533253325332533253325332533253325332533253325332533253325332533253325332533253325332533253325332533253325332533253325332533253325332533253325a322232f331c531a1318731793176317831b631b431b731c531dd31ef311332423205320532053205320532053205320532053205320532053205320532053205320532053205320532053205320532053205320532053205320532053205320532053205320532053205320532053205320532053205320532053205320532053242321332ef31dd31c531b731b431b631d731cf31ce31d331e331fe31be31be31be31be31be31be31be31be31be31be31be31be31be31be31be31be31be31be31be31be31be31be31be31be31be31be31be31be31be31be31be31be31be31be31be31be31be31be31be31be31be31be31be31be31be31be31be31be31be31be31be31be31fe31e331d331ce31cf31d731e631de31b9319b3188317f317f317f317f317f317f317f317f317f317f317f317f317f317f317f317f317f317f317f317f317f317f317f317f317f317f317f317f317f317f317f317f317f317f317f317f317f317f317f317f317f317f317f317f317f317f317f317f317f317f317f317f317f317f3188319b31b931de31e631e431b0318631663152314a3149314931493149314931493149314931493149314931493149314931493149314931493149314931493149314931493149314931493149314931493149314931493149314931493149314931493149314931493149314931493149314931493149314931493149314a31523166318631b031e431bd3188315c313c3127311e311e311e311e311e311e311e311e311e311e311e311e311e311e311e311e311e311e311e311e311e311e311e311e311e311e311e311e311e311e311e311e311e311e311e311e311e311e311e311e311e311e311e311e311e311e311e311e311e311e311e311e311e311e3127313c315c318831bd31a1316a313e311d310731fe30fe30fe30fe30fe30fe30fe30fe30fe30fe30fe30fe30fe30fe30fe30fe30fe30fe30fe30fe30fe30fe30fe30fe30fe30fe30fe30fe30fe30fe30fe30fe30fe30fe30fe30fe30fe30fe30fe30fe30fe30fe30fe30fe30fe30fe30fe30fe30fe30fe30fe30fe30fe30fe3007311d313e316a31a1318f3158312b310931f430eb30ea30ea30ea30ea30ea30ea30ea30ea30ea30ea30ea30ea30ea30ea30ea30ea30ea30ea30ea30ea30ea30ea30ea30ea30ea30ea30ea30ea30ea30ea30ea30ea30ea30ea30ea30ea30ea30ea30ea30ea30ea30ea30ea30ea30ea30ea30ea30ea30ea30ea30ea30ea30eb30f43009312b3158318f318931523125310331ed30e430e330e330e330e330e330e330e330e330e330e330e330e330e330e330e330e330e330e330e330e330e330e330e330e330e330e330e330e330e330e330e330e330e330e330e330e330e330e330e330e330e330e330e330e330e330e330e330e330e330e330e330e330e430ed3003312531523189318f3157312a310931f330ea30ea30ea30ea30ea30ea30ea30ea30ea30ea30ea30ea30ea30ea30ea30ea30ea30ea30ea30ea30ea30ea30ea30ea30ea30ea30ea30ea30ea30ea30ea30ea30ea30ea30ea30ea30ea30ea30ea30ea30ea30ea30ea30fa30f830f630f430f330f130ef30ee30ec30eb30ea30f33009312a3157318f319f3169313d311b310631fd30fd30fd30fd30fd30fd30fd30fd30fd30fd30fd30fd30fd30fd30fd30fd30fd30fd30fd30fd30fd30fd30fd30fd30fd30fd30fd30fd30fd30fd30fd30fd30fd30fd30fd30fd30fd30fd30fd30fd30fd30fd30fd300731063105310431033101310031ff30fe30fd30fd3006311b313d3169319f31bb3186315a313a3125311c311c311c311c311c311c311c311c311c311c311c311c311c311c311c311c311c311c311c311c311c311c311c311c311c311c311c311c311c311c311c311c311c311c311c311c311c311c311c311c311c311c311c312131213120311f311f311e311e311d311d311c311c3125313a315a318631bb31e1288726b024a724a724d9256e28392a0e2cb329ea273d25a724a724f5245e2762293d2b8b2aba284a26a924a724a72410269428622a232c8a29a4271725a724a7241725a4278a29672b622a94281026a724a724a9244a26ba288b2a3d2b62295e27f524a724a7243d25ea27b329912b382a6e28d925a724a724b0248726e128a428cc2536231e231e2305252b280a2af82b7f2953274b241e231e23e623bb262c29152b5e2a7b28872522231e231e2345255328342a112c552907271c241e231e231c2407275529402b342a532845251e231e23222387257b285e2a152b2c29bb26e6231e231e234b2453277f296b2b0a2a2b2805251e231e233623cc25a4282b295d27cc25c525ca25c526bf28732a252cf2294f284026fc25c52505260f28a629702bc32a06292827c625c525c525f526e2289b2a392ccc292f2820261626162620262f28cc29992b9b2ae228f526c525c525c62528270629c32a702ba6290f280526c525fc2540264f28f229c22b732abf28c526ca25c525cc255d272b29fa29c0282d2881282c2886289e291e2b682caa2a412956283d28042940280d29662a032c662bdb29ac282a2892282a289828bc29422b7c2c872a26294a28472847284a282629872a152c422bbc2998282a28a5282a28ac28db29662b032c662a0d29402851283d2856284129aa2a292c1e2b9e2986282c28b9282d28c028fa29ee2ae8297429b5297329ba299f2aef2bbe2c882b512a932981291f2a8329262a4c2b602c182cd32ad7297229c3297229c829b92a072cd02c692b3b2a8b29882988298b293b2a692b722c072cb92ac8297229d2297229d729d32a182c602c4c2b262a8329902981299329512a882b832cef2b9f2aba297329e2297429e829ee2afb2b1c2bbd2af22abc2af62ab72b6f2c242d412c742bd62ac72a4a2bc92a502b262cce2c8c2ce42b0e2bbb2afd2abb2a012bcd2b7d2c342d332c612bcf2acd2acd2acf2a612b332cdd2c7d2ccd2b012bbb2a0a2bbb2a0e2be42b8c2cce2c262c502bc92ad42ac72ad62a742b412ced2c6f2cb72bf62abc2a172bbd2a1c2bfb2ba12c422c1a2c302c1a2c322c832c042da62ddb2c672c252c1f2c552c202c582cc42c582d1d2d972c3c2c1a2c352c1a2c372c8d2c102db52dcf2c5f2c222c212c212c222c5f2ccf2c672d102d8d2c372c1a2c3a2c1a2c3c2c972c1d2d582dc42c582c202c242c1f2c252c672cdb2c752d042d832c322c1a2c402c1a2c422ca12c612d102def2c012def2c032d472db72d472e932d2f2df82cf32c202df32c222d7f2d012ecd2d582d0b2dee2c052dee2c072d502dc22d552e892d292df52cf42cf42cf52c292d892d0e2ec22d502d072dee2c0a2dee2c0b2d582dcd2d012e7f2d222df32cf72cf32cf82c2f2d932d1b2eb72d472d032def2c0e2def2c102d612d332eed2dd12de12dd12de22d1d2e7e2efe2e5f2e082ed92dd42dfb2dd52dfd2d4d2ec02e922e2b2ee92dd12de42dd12de52d242e882e0b2f562e022ed72dd62dd62dd72d022e562ecb2e882e242ee52dd12de82dd12de92d2b2e922ec02e4d2efd2dd52dd82dd42dd92d082e5f2ed72e7e2e1d2ee22dd12dec2dd12ded2d332e112fd42ebc2ec92ebc2eca2efe2e532fc62f372feb2ec22ebe2ee02ebf2ee22e282f8e2f652f0a2fd02ebb2ecc2ebb2ecd2e042f5c2fd12f302fe62ec02ec02ec02ec02ee62e302f982f5c2f042fcd2ebb2ecf2ebb2ed02e0a2f652f8e2f282fe22ebf2ec22ebe2ec22eeb2e372fa22f532ffe2eca2ebc2ed32ebc2ed42e112ff72fc12fac2fb72fac2fb82fe62f19304c300c30d62fb12fae2fcc2fae2fcd2f053033302130f12fbe2fab2fba2fab2fbb2feb2f1c3051300930d12fb02faf2faf2fb02fd12f093038301c30eb2fbb2fab2fbd2fab2fbe2ff12f213033300530cd2fae2fb12fae2fb12fd62f0c303c301930e62fb82fac2fc02fac2fc12ff72f713059304f3055304f30553069308b30ba3080306230523050305e3051305e307a30a33093306e3057304f3056304f3056306c308f30bf307d306030513051305130513060307d30a7308f306c3056304f3057304f3057306e309330a3307a305e30513052305030523062308030ac308b30693055304f3058304f3059307130b130ae30b230c330ca30cf30e23001312b31f730db30cd30cb30d730cb30d830f13016310731e630d230ca30d030ca30d130e43004312f31f430d930cc30cc30cc30cc30d930f4301a310431e430d130ca30d130ca30d230e63007311631f130d830cb30cc30cb30cd30db30f7301e310131e230cf30ca30c330b230ae30b130ef30ec30f03000311c3144315c3178319f316f315631483147315231473153316a318c317e3160314d3146314c3146314c315e317b31a3316c315431483148314831483154316c318f317b315e314c3146314d3146314d3160317e318c316a315331473148314731483156316f31933178315c3144311c310031f030ec30ef302d312b312e313d3158317e31af31f2310932e831d131c531c431ce31c431ce31e3310332f631da31c931c331c831c331c831d831f3311832e631d031c431c431c431c431d031e6310632f331d831c831c331c931c331c931da31f6310332e331ce31c431c531c431c531d131e8310932f231c1317e3158313d312e312b312d316b3169316c317b319431b931e83125325d3262324d32423241324a3241324a325e327b326f3256324632403245324032453254326d328f3260324c3241324132413241324c3260327e326d3254324532403245324032463256326f327b325e324a3241324232413242324d3262325d322532e831b93194317b316c3169316b31a931a731aa31b831d131f4312b3258328e32cc32ca32bf32be32c732bf32c732d932f532e932d232c332be32c232be32c232d032e7320733db32c932bf32bf32bf32bf32c932db32f732e732d032c232be32c332be32c332d232e932f532d932c732bf32bf32be32bf32ca32cc328e3258322b32f431d131b831aa31a731a931e731e631e831f6310d322f325b328f32c032fc32b832b832b832b832b832b832b832b832b832b832b832b832b832b832b832b832b832b832b832b832b832b832b832b832b832b832b832b832b832b832b832b832b832b832b832b832b832b832b832b832b832b832b832b832fc32c0328c325b322f320d32f631e831e631e73126322432263233324a326b329532b7326f326f326f326f326f326f326f326f326f326f326f326f326f326f326f326f326f326f326f326f326f326f326f326f326f326f326f326f326f326f326f326f326f326f326f326f326f326f326f326f326f326f326f326f326f326f326f326f32b73295326b324a32333226322432263255324e324d325232613279322d322d322d322d322d322d322d322d322d322d322d322d322d322d322d322d322d322d322d322d322d322d322d322d322d322d322d322d322d322d322d322d322d322d322d322d322d322d322d322d322d322d322d322d322d322d322d322d322d322d322d322d327932613252324d324e32553265325d3228320c32fa31f231f231f231f231f231f231f231f231f231f231f231f231f231f231f231f231f231f231f231f231f231f231f231f231f231f231f231f231f231f231f231f231f231f231f231f231f231f231f231f231f231f231f231f231f231f231f231f231f231f231f231f231f231f231fa310c3228325d32653250322032f831db31c931c131c131c131c131c131c131c131c131c131c131c131c131c131c131c131c131c131c131c131c131c131c131c131c131c131c131c131c131c131c131c131c131c131c131c131c131c131c131c131c131c131c131c131c131c131c131c131c131c131c131c131c131c131c131c931db31f831203250322c32fa31d231b431a131993199319931993199319931993199319931993199319931993199319931993199319931993199319931993199319931993199319931993199319931993199319931993199319931993199319931993199319931993199319931993199319931993199319931993199319931a131b431d231fa312c321132df31b631983184317c317c317c317c317c317c317c317c317c317c317c317c317c317c317c317c317c317c317c317c317c317c317c317c317c317c317c317c317c317c317c317c317c317c317c317c317c317c317c317c317c317c317c317c317c317c317c317c317c317c317c317c317c317c3184319831b631df3111320132ce31a531863172316a316a316a316a316a316a316a316a316a316a316a316a316a316a316a316a316a316a316a316a316a316a316a316a316a316a316a316a316a316a316a316a316a316a316a316a316a316a316a316a316a316a316a316a316a316a316a316a316a316a316a316a316a316a3172318631a531ce310132fb31c8319f3180316c316431633163316331633163316331633163316331633163316331633163316331633163316331633163316331633163316331633163316331633163316331633163316331633163316331633163316331633163316331633163316331633163316331633163316331633164316c3180319f31c831fb310032ce31a4318531713169316931693169316931693169316931693169316931693169316931693169316931693169316931693169316931693169316931693169316931693169316931693169316931693169316931693169316931693169317931783176317431723171316f316d316c316a31693171318531a431ce3100321032de31b531963183317a317a317a317a317a317a317a317a317a317a317a317a317a317a317a317a317a317a317a317a317a317a317a317a317a317a317a317a317a317a317a317a317a317a317a317a317a317a317a317a317a317a317a318631853183318231813180317e317d317c317b317a3183319631b531de3110322a32f831d031b2319f3197319731973197319731973197319731973197319731973197319731973197319731973197319731973197319731973197319731973197319731973197319731973197319731973197319731973197319731973197319e319d319c319b319b319a31993199319831973197319f31b231d031f8312a32 + m_StreamData: + serializedVersion: 2 + offset: 0 + size: 0 + path: diff --git a/Assets/Models/BucketSDF.asset.meta b/Assets/Models/BucketSDF.asset.meta new file mode 100644 index 0000000..eecf0f3 --- /dev/null +++ b/Assets/Models/BucketSDF.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 6fc8a77137be6584c852450ae9dac872 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11700000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Models/Torus.fbx b/Assets/Models/Torus.fbx new file mode 100644 index 0000000..5ca89d1 Binary files /dev/null and b/Assets/Models/Torus.fbx differ diff --git a/Assets/Models/Torus.fbx.meta b/Assets/Models/Torus.fbx.meta new file mode 100644 index 0000000..f7979dc --- /dev/null +++ b/Assets/Models/Torus.fbx.meta @@ -0,0 +1,105 @@ +fileFormatVersion: 2 +guid: 471893bf3545a0140b0c1a9850a4f7d4 +ModelImporter: + serializedVersion: 21202 + internalIDToNameTable: [] + externalObjects: {} + materials: + materialImportMode: 2 + materialName: 0 + materialSearch: 1 + materialLocation: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + resampleCurves: 1 + optimizeGameObjects: 0 + removeConstantScaleCurves: 1 + motionNodeName: + rigImportErrors: + rigImportWarnings: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + importAnimatedCustomProperties: 0 + importConstraints: 0 + animationCompression: 1 + animationRotationError: 0.5 + animationPositionError: 0.5 + animationScaleError: 0.5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + extraUserProperties: [] + clipAnimations: [] + isReadable: 0 + meshes: + lODScreenPercentages: [] + globalScale: 1 + meshCompression: 0 + addColliders: 0 + useSRGBMaterialColor: 1 + sortHierarchyByName: 1 + importVisibility: 1 + importBlendShapes: 1 + importCameras: 1 + importLights: 1 + nodeNameCollisionStrategy: 1 + fileIdsGeneration: 2 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + keepQuads: 0 + weldVertices: 1 + bakeAxisConversion: 0 + preserveHierarchy: 0 + skinWeightsMode: 0 + maxBonesPerVertex: 4 + minBoneWeight: 0.001 + optimizeBones: 1 + meshOptimizationFlags: -1 + indexFormat: 0 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVMarginMethod: 1 + secondaryUVMinLightmapResolution: 40 + secondaryUVMinObjectScale: 1 + secondaryUVPackMargin: 4 + useFileScale: 1 + tangentSpace: + normalSmoothAngle: 60 + normalImportMode: 0 + tangentImportMode: 3 + normalCalculationMode: 4 + legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0 + blendShapeNormalImportMode: 1 + normalSmoothingSource: 0 + referencedClips: [] + importAnimation: 1 + humanDescription: + serializedVersion: 3 + human: [] + skeleton: [] + armTwist: 0.5 + foreArmTwist: 0.5 + upperLegTwist: 0.5 + legTwist: 0.5 + armStretch: 0.05 + legStretch: 0.05 + feetSpacing: 0 + globalScale: 1 + rootMotionBoneName: + hasTranslationDoF: 0 + hasExtraRoot: 0 + skeletonHasParents: 1 + lastHumanDescriptionAvatarSource: {instanceID: 0} + autoGenerateAvatarMappingIfUnspecified: 1 + animationType: 2 + humanoidOversampling: 1 + avatarSetup: 0 + addHumanoidExtraRootOnlyWhenUsingAvatar: 1 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Models/TorusSDF.asset b/Assets/Models/TorusSDF.asset new file mode 100644 index 0000000..ec04ddd --- /dev/null +++ b/Assets/Models/TorusSDF.asset @@ -0,0 +1,40 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!117 &11700000 +Texture3D: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: TorusSDF + m_ImageContentsHash: + serializedVersion: 2 + Hash: 00000000000000000000000000000000 + m_ForcedFallbackFormat: 4 + m_DownscaleFallback: 0 + m_IsAlphaChannelOptional: 0 + serializedVersion: 3 + m_ColorSpace: 0 + m_Format: 45 + m_Width: 64 + m_Height: 64 + m_Depth: 15 + m_MipCount: 1 + m_DataSize: 122880 + m_TextureSettings: + serializedVersion: 2 + m_FilterMode: 1 + m_Aniso: 1 + m_MipBias: 0 + m_WrapU: 1 + m_WrapV: 1 + m_WrapW: 1 + m_UsageMode: 0 + m_IsReadable: 1 + image data: 122880 + _typelessdata: 6f331a33c93278322832d83189313b31f430b33073303330ea2f702f092fab2e512ef92da62d612d272dec2cb22c782c532c302c0c2cd32baa2b932b7b2b632b632b7b2b932baa2bd32b0c2c302c532c782cb22cec2c272d612da62df92d512eab2e092f702fea2f33307330b330f4303b318931df3128327832c9321a336f331a33c1326d321c32cd317d312f31e230963053301430ad2f342fbe2e4f2ef72da32d532d0b2db52c7b2c412c072c992b432bfd2ab62a6f2a412a292a112afa29fa29112a292a412a6f2ab62afd2a432b992b072c412c7b2cb52c0b2d532da32df72d4f2ebe2e342fad2f143053309630e23036317d31cd311c326d32c1321a33c9326d321432c23172312431d63089303e30ed2f702ff92e852e152eab2d502d032dbc2c7c2c102c9f2b2b2bb72a422ae029992952290e29d728bf28a82890289028a828bf28d7280c2952299929e029422ab62a2b2b9f2b102c7c2cb02c002d502dab2d152e852ef92e702fed2f3e308930d63024317231c23114326d32c93278321c32c2316a311931cb307f303330d32f432fbf2e4d2edf2dad2d1f2db02c5e2c0e2c7f2bec2a482ad4295f29eb287d283a28fb278e274a274b285d282d27ef26082722273f278e27fb273a287d28eb285f29d429482aec2afc2b0e2c5e2cb02c1f2dad2ddf2d4d2ebf2e432fdf2f33307f30cb3019316a31c2311c3278322832cd3172311931c33074302930bf2f2f2fa32e1e2eab2d462d4b2da52c1c2c772bd72a362a9629f6287d2812287127e826aa26762680269226fd2778280327b026a22696268c2680267626aa26e826712712287d28f6289629362ad72a772b1c2ca52c4b2d462dab2d1e2eaf2e2f2fbf2f29307430c33019317231cd312832d8317d312431cb3074302030aa2f1b2f902e0c2e8f2d1c2db22c4b2ccd2b3b2b3a2a9229f12853289a27ee2691268026a926a52572253e250a25f824e724d524d524e724f8240a253e257225a525a92680269126ee269a275328f12892293a2a3b2b442c4b2caf2c182d992d0c2e902e1b2faa2f20307430cb3024317d31d83189313631d6307f302930aa2f0a2f7d2efa2d7e2d072d8f2c192c692b9f2ad6290d294f289427d7268226a52696254025eb24a1246d2439240524df23bc2399239923bc23df23052439246d24a124eb2440259625a5268226d726942750280d29d6299f2a692b192c972c072d7e2dfa2d7d2e0a2faa2f29307f30d6302f3189313b31e23089303330bf2f1b2f7d2eea2d6d2df62c7e2c072c1f2b3b2a7229a928e227e0268226a9267025fb249a244524e0233923d22271225e227a229a22bc22bc229a227a225e227122d2223923e02345249a24fb247025a9268226e026e227a92872293b2a1f2b072c7e2cf62c6d2dea2d7d2e1b2fbf2f33308930e2303b31f43096303e30df2f2f2f902efa2d6d2de62c6e2ced2bfe2a0f2a202948285127992697266d25f82482240d243e239422682206237b23e32325244424562467246724562444242524e3237b230623682294223e230d248224f8246d25972699265127482820290f2afe2aed2b6e2ce62c6d2dfa2d902e2f2fd32f3e309630f430b3305330ed2f432fa32e0c2e7e2df62c6e2ccd2bdc2aed29fe281828e9264926b52522258e240a2429235d22f122a72329247e24c224f52429254d255f25702570255f254d252925f524c2247e242924a723f1225d2229230a248e242225b5254926e9261828fe28ed29dc2acd2b6e2cf62c7e2d0c2ea32e432fed2f5330b33073301430702fbf2e1e2e992d072d7e2ced2bdc2acd29dd28f927cb2688266c25d924452464235d22f722e2236624cf2424257a25c6259a262e265626682679267926682656262e269a26c6257a252425cf246624e223f7225d2264234524d9246c258826cb26f927dd28cd29dc2aed2b7e2c072d8f2d1e2ebf2e702f143073303330ad2ff92e4d2eab2d182d932c072cfe2aed29dd28c527b22695265425a524f823d1229a22c1236a24df245525ca2587267526cc2610276727c027e52706280628e527c02767271027cc2675268726ca255525df246a24c1239a22d122f823a52454259526b226c527dd28ed29fe2a072c8f2c1c2dab2d4d2ef92ead2f3330ea2f342f852edf2d462daf2c192c1f2b0f2afe28f927b226a6263b258c24ba2369222c232924bd245125c1264326b8263e27e5276728a928f02833294b29632963294b293329f028a9286728e5273e27b8264326c1265125bd2429242c236922ba238c243b25a626b226f927fe280f2a1f2b192cb22c462ddf2d852e342fea2f702fbe2e152ead2d4b2d4b2c692b3b2a20291828cb2695263b25742489235a2277236a2406259a252d26bb2665273128c4283929ad290d2a532a9a2ab52acc2acc2ab52a9a2a532a0d2aad293929c42831286527bb262d269a2506256a2477235a22892374243b259526cb26182820293b2a692b4b2ce12cad2d152ebe2e702f092f4f2eab2d1f2da52ccd2b9f2a72294828e926882654258c2489236122a82383243225ae26772622273d28d0287029102a902a042b702bb72bfd2b2d2c1b2c1b2c2d2cfd2bb72b702b042b902a102a7029d0283d2822277726ae2632258324a823612289238c2454258826e926552872299f2ace2ba52c1f2dab2d4f2e092fab2ef72d502db02c1c2c3b2bd629a928512749266c25a524ba235a22a8239b244b259a26aa26a82783284c29162ab72a552be72b2d2c6a2c8d2cb02cd92cd02cd02cd92cb02c8d2c6a2c2f2ce72b552bb52a162a4c298328a827aa269a264b259b24a8235a22ba23a5246c254d265127a928d6293b2b1c2cb02c502df72dab2e512ea32d002d5e2c772b3a2a0d29e2279226b525d924f8236922772383244b258c26c126e527d028b0297a2a432bfa2b4d2c9d2cd92c1b2d3f2d622d872d842d842d872d622d3f2d1b2dd92c9d2c4d2cfa2b432b7a2ab029d028e527c1268c264b25832477236922f823d924b5259226e2270d293a2a772b5e2c032dbe2d512ef92d532db02c0e2cd72a92295028e026972622254524d1222c236a2432259a26c1260e28f228e129d02aa72b382c9d2cef2c402d852dc02df42d1a2e412e7f2e442e412e1a2ef42dd12d852d402def2c9d2c382ca72bd02ae129f2280e28c1269a2632256a242c23d122452422259726e02650289229d72a0e2cbc2c842df92da62d0b2d7c2c7b2b362af128942782266d258e2464239a2229240625ae26aa26e527f228022af12ae02b672ccf2c382d922de52d3a2e7b2eba2ee32e0c2f432f432f0c2fe32eba2e962e3a2ee52d922d332dcf2c672ce02bf12a022af228e527aa26ae26062529249a2264238e246d255b269427f128362a7f2b7c2c0b2da62d612db52c102cec2a96295328d726a926f8240a245d22c123bd249a258a26a827d028e129f12a012c782cf02c652dcc2d382e982ef52e422f8c2fb72fe22f0a300a30e22fb72f8c2f422ff52e982e382ecc2d662df02c782c012cf12ae129d028a8278a269a25bd24c1235d220a24f824a926d72653289629ec2a102cb52c612d272d7b2c9f2b482af6289a278226702582242923f7226a2451252d2622278328b029d02ae02b782c002d782df32d6f2ee32e562fb72f0930333049306030783078306030493033300930b72f562fe32e6f2ef32d782d002d782ce02bd02ab029832822272d2651256a24f7222923822470255f269a27f628482a9f2b7b2c2d2dec2c412c2b2bd4297d28ee26a526fb240d245d22e223df24c126bb2626284c297a2aa72b672cf02c782d052e892e142f962f083040307330a430bb30d130e930e930d130bb30a430733040300830962f142f892e052e782df02c672ca72b7a2a4c292628bb26c126df24e2235d220d24fb24a526ee267d28d4292b2b412cec2cb22c072cb62a5f291228912696259a243e23f1226624552580266527d028162a432b382cd02c662df32d892e272fb72f25306730a730db3009312e3145315c315c3145312e310931db30a73067302530b72f272f892ef32d652dcf2c382c432b162ad0286527802655256624f1223e239a249625912612285f29b72a072cb22c782c992b422aeb2871278026402545249422a723cf24ca25b82631287029b52afa2b9d2c332dcc2d762e142fb72f2f307b30c730083145317931a331bb31d231d231bb31a331793145310831c7307b302f30b72f142f762ecc2d332d9d2cfa2bb72a70293128b826ca25cf24a7239422452440253c267127eb28422a992b782c532c432be0297d28e826a926eb24e02368222924242587263e27c428102a552b4d2cef2c922d382ee32e962f25307b30d23020316b31ae31e5311a3231324932493231321a32e531ae316b312031d2307b302530962fe32e382e922def2c4d2c552b102ac4283e278726242529246822e023eb24a926e8267d28e029432b532c302cfd2a99293a28aa26a525a124392306237e247a258926e5273929902ae72b9d2c402de52d982e562f08306730c73020317931c931123252329132a932c132c132a932913252321232c93179312031c73067300830562f982ee52d402d9d2ce72b902a3929e52789267a257e2406233923a124a525aa263a289929fd2a302c0c2cb62a5229fb27762672256d24d2227b23c224c625cc266728ad29042b2f2cd92c852d3a2ef52eb72f4030a73008316b31c93123327432bb32f6322133393339332133f632bb3274322332c9316b310831a7304030b72ff52e3a2e852dd92c2d2c042bad295828cc26c625c2247b23d2226d2472257626fb275229b62a0c2cd32b6f2a0c298e2780263e2539247122e323f5249a261027a9280d2a702b6a2c1b2dd12d7b2e422f09307330db304531ae3112327432d032213364339a33b233b2339a3364332133d03274321232ae314531db3073300930422f7b2ec02d182d6a2c702b0d2aa92810279a26f524e323712239243e2542268e270e296f2ad32baa2b412ad7283f278c260a2505245e222524292583266727f028532ab72b8d2c3f2df42dba2e8c2f3330a43009317931e5315232bb3221337e33cd330a34163416340a34cd337e332133bb325232e53179310931a43033308c2fba2ef42d3f2d8d2cb72b532af02867278326292525245e2205240a2592264a27df28412aaa2b932b292abf2822279626f824df237a2244244d255626c02733299a2afd2bb02c622d1a2ee32eb72f4930bb302e31a3311a329132f6326433cd33163440345334533440341634cd336433f63291321a32a3312e31bb304930b72fe32e1a2e622db02cfd2b9a2a3329c02756264d2544247a22df23f824fd274b28bf28292a932b7b2b112aa8280827a226e724bc239a2256245f256826e5274b29b52a2d2cd92c872d412e0c2fe22f6030d1304531bb313132a93221339a330a3440346f3490348e346f343c340a349a332133a9323132bb314531d1306030e22f0c2f412e872dd92c2d2cb52a4b29e52768265f2556249a22bc23e724f0255d28a828112a7b2b632bfa299028ef26b026d5249923bc2267247025792606286329cc2a1b2cd02c842d7f2e432f0a307830e9305c31d2314932c1323933b233163453348e34c534c5348e3453341634b2333933c1324932d2315c31e93078300a30432f7f2e842dd02c1b2ccc2a63290628792670256724bc229923d52403272d279828fa29632b632bfa2990282d270327d5249923bc2267247025792606286329cc2a1b2cd02c842d442e432f0a307830e9305c31d2314932c1323933b233163453348e34c534c5348e3453341634b2333933c1324932d2315c31e93078300a30432f7f2e842dd02c1b2ccc2a63290628792670256724bc229923d524b026ef269028fa29632b7b2b112aa8285d287828e724bc239a2256245f256826e5274b29b52a2d2cd92c872d412e0c2fe22f6030d1304531bb313132a93221339a330a3440346f348e348e346f343c340a349a332133a9323132bb314531d1306030e22f0c2f412e872dd92c2d2cb52a4b29e52768265f2556249a22bc23e724a2260827a828112a7b2b932b292abf284b28fd27f824df237a2244244d255626c02733299a2afd2bb02c622d1a2ee32eb72f4930bb302e31a3311a329132f6326433cd3316343c34533453343c341634cd336433f63291321a32a3312e31bb304930b72fe32e1a2e622db02cfd2b9a2a3329c02756264d2544247a22df23f82496262227bf28292a932baa2b412adf284a2792260a2505245e22252429252e266727f028532ab72b8d2c3f2df42dba2e8c2f3330a43009317931e5315232bb3221337e33cd330a34163416340a34cd337e332133bb325232e53179310931a43033308c2fba2ef42d3f2d8d2cb72b532af02867278326292525245e2205240a258c263f27d728412aaa2bd32b6f2a0e298e2780263e2539247122e323f5249a261027a9280d2a702b6a2c1b2dc02d7b2e422f09307330db304531ae3112327732d032213364339a33b233b2339a3364332133d03277321232ae314531db3073300930422f7b2ed12d1b2d6a2c702b0d2aa92810279a26f524e323712239243e2580268e270c296f2ad32b0c2cb62a5229fb27762672256d24d2227b23c224c625cc266728ad29042b2d2cd92c852d3a2ef52eb72f4030a73008316b31c93123327432bb32f6322133393339332133f632bb3277322332c9316b310831a7304030b72ff52e3a2e852dd92c2d2c042bad295828cc26c625c2247b23d2226d2472257626fb275229b62a0c2c302cfd2a99293a28aa26a525a124392306237e247a257526e5273929902ae72b9d2c402de52d982e562f08306730c73020317931c931123252329132a932c132c132a932913252321232c93179312031c73067300830562f982ee52d402d9d2ce72b902a3929e52789267a257e2406233923a124a525aa263a289929fd2a302c532c432be0297d28e826a926eb24e02368222924242587263e27c428102a552b4d2cef2c922d382ee32e962f25307b30d23020316b31ae31e5311a3231324932493231321a32e531ae316b312031d2307b302530962fe32e382e922def2c4d2c552b102ac4283e278726242529246822e023eb24a926e8267d28e029432b532c782c992b422aeb2871278026402545249422a723cf24ca25b82631287029b72afa2b9d2c382dcc2d6f2e142fb72f2f307b30c730083145317931a331bb31d231d231bb31a331793145310831c7307b302f30b72f142f762ecc2d332d9d2cfa2bb52a70293128b826ca25cf24a72394224524402580267127eb28422a992b782cb22c072cb72a5f291228912696259a243e23f1226624552543266527d028162a432b382ccf2c652df32d892e272fb72f25306730a730db3009312e3145315c315c3145312e310931db30a73067302530b72f272f892ef32d662dcf2c382c432b162ad0286527802655256624f1223e239a249625912612285f29b62a072cb22cec2c412c2b2bd4297d28ee26a526fb240d245d22e223df24c126bb263d284c297a2aa72b672cf02c782d052e892e142f962f083040307330a430bb30d130e930e930d130bb30a430733040300830962f142f892e052e782df02c672ca72b7a2a4c292628bb26c126df24e2235d220d24fb24a526ee267d28d4292b2b412cec2c272d7b2c9f2b482af6289a278226702582242923f7226a2451252d2622278328b029d02ae02b782c002d782df32d762ee32e562fb72f0930333049306030783078306030493033300930b72f562fe32e762ef32d782d002d782ce02bd02ab029832822272d2651256a24f72229238224702582269a27f628482a9f2b7b2c272d612db52c102cec2a96295328d726a926f8240a245d22c123bd249a257726a827d028e129f12a012c782cf02c662dcc2d382e982ef52e422f8c2fb72fe22f0a300a30e22fb72f8c2f422ff52e982e382ecc2d652df02c782c012cf12ae129d028a82777269a25bd24c1235d220a24f824a926d72653289629ec2a102cb52c612da62d0b2d7c2c7f2b362af128942782266d258e2464239a2229240625ae26aa26e527f228022af12ae02b672cd02c332d922de52d3a2e7b2eba2ee32e0c2f432f432f0c2fe32eba2e7b2e3a2ee52d922d332dcf2c672ce02bf12a022af228e527aa26ae26062529249a2264238e246d2582269427f128362a7b2b7c2c0b2da62df92d532dbc2c0e2cd72a92294f28e026972622254524d1222c236a2432259a26c1260e28f228e129d02aa72b382c9d2cef2c402d852dd12df42d1a2e412e7f2e7f2e412e1a2ef42dc02d852d402def2c9d2c382ca72bd02ae129f2280e28c1269a2632256a242c23d122452422259726e02650289229d72a0e2cb02c532df92d512ea32d032d5e2c772b3a2a0d29e2279926b525d924f8236922772383244b258c26c126e527d028b0297a2a432bfa2b4d2c9d2cd92c1b2d3f2d622d872d842d842d872d622d3f2d182dd92c9d2c4d2cfa2b432b7a2ab029d028e527c1268c264b25832477236922f823d924b5259926e2270d293a2a772b5e2c002da32d512eab2ef72d502db02c1c2c3b2bd629a928512749266c25a524ba235a22a8239b244b259a26aa26a82783284c29162ab52a552be72b2d2c6a2c8d2cb02cd92cd02cd02cd92cb02c8d2c6a2c2d2ce72b552bb72a162a4c298328a827aa269a264b259b24a8235a22ba23a5246c2549265127a928d6293b2b1c2cb02c502df72dab2e092f4f2eab2d1f2da52c442c9f2a72294828e926882654258c2489236122a82383243225ae268a2622272628d0287029102a902a042b702bb72bfd2b2d2c1b2c1b2c2d2cfd2bb72b702b042b902a102a7029d028262822278a26ae2632258324a823612289238c2454258826e926482872299f2acd2ba52c1f2dab2d4f2e092f702fbe2e152ead2d4b2d4b2c692b3b2a20291828cb2695263b25742489235a2277236a2406259a252d26bb2665273128c4283929ad290d2a532a9a2ab52acc2acc2ab52a9a2a532a0d2aad293929c42831286527bb262d269a2506256a2477235a22892374243b259526cb26182820293b2a692b4b2c4b2dad2d292ebe2e702fea2f342f852edf2d462db22c192c1f2b0f2afe28f927b226a6263b258c24ba2369222c232924bd245125c1268026b8263e27e5275828a928f02833294b29632963294b293329f028a9285828e5273e27b8268026c1265125bd2429242c236922ba238c243b25a626b226f927fe280f2a1f2b192caf2c462ddf2dc32e342fea2f3330ad2ff92e4d2eab2d1c2db12c072cfe2aed29dd28c527b22695265425a524f823d1229a22c1236a24df245525ca2587268926cc2610276727c027e52706280628e527c02767271027cc2689268726ca255525df246a24c1239a22d122f823a52454259526b226c527dd28ed29fe2a072c972c182dab2d4d2ef92ead2f333073301430702fbf2e1e2e992d072d7e2ced2bdc2acd29dd28f927cb2688266c25d924452464235d22f722e2236624cf2424257a25c6259a26832656266826792679266826562683269a26c6257a252425cf246624e223f7225d2264234524d9246c258826cb26f927dd28cd29dc2aed2b7e2c072d992d1e2ebf2e702f14307330b3305330ed2f432faf2e0c2e7e2df62c6e2ccd2bdc2aed29fe281828e9264926b52522258e240a2429235d22f122a72329247e24c224f52429254d255f25702570255f254d252925f524c2247e242924a723f1225d2229230a248e242225b5254d26e9261828fe28ed29dc2acd2b6e2cf62c7e2d0c2eaf2e432fed2f5330b330f43096303e30df2f2f2f902efa2d6d2de62c6e2ced2bfe2a0f2a202955285127922697266d25f82482240d243e239422682206237b23e32325244424562467246724562444242524e3237b230623682294223e230d248224f8246d25972692265127552820290f2afe2aed2b6e2ce62c6d2dfa2d902e2f2fd32f3e309630f4303b31e23089303330bf2f1b2f7d2eea2d6d2df62c7e2c072c1f2b3b2a7229a928e227e0265b26a9267025fb249a244524e0233923d22271225e227a229a22bc22bc229a227a225e227122d2223923e02345249a24fb247025a9265b26e026e227a92872293b2a1f2b072c7e2cf62c6d2dea2d7d2e1b2fbf2f33309030e2303b3189313631d6307f302930aa2f0a2f7d2efa2d7e2d072d932c192c692b9f2ad6290d2950289427d7265f26a52696254025eb24a1246d2439240524df23bc2399239923bc23df23052439246d24a124eb2440259625a5265f26d726942750280d29d6299f2a692b192cb12c072d7e2dfa2d7d2e0a2faa2f29307f30d63036318931df317d312431cb3074302030aa2f1b2f902e0c2e8f2d182daf2c4b2ccd2b3b2b3a2a9229f12853289a27ee2691263c26a926a52572253e250a25f824e724d524d524e724f8240a253e257225a525a9263c269126ee269a275328f12892293a2a3b2bce2b4b2cb22c1c2d992d0c2e902e1b2faa2f20307430cb3024317d31df312832cd3172311931c33074302930bf2f2f2fa32e1e2eab2d462de12ca52c1c2c772bd72a362a9629f6287d2812287127e826aa26762642268c269626a226b0260327f0250126922642267626aa26e826712712287d28f6289629362ad72a772b1c2ca52ce12c462dab2d1e2ea32e2f2fbf2f29307430c33019317231cd31283278321c32c2316a311931cb307f303330d32f432fbf2e4d2edf2dad2d1f2db02c5e2c0e2c7b2bec2a482ad4295f29eb287d283a28fb278e273f2722270827ef262d275d284b284a278e27fb273a287d28eb285f29d429482aec2a7f2b0e2c5e2cb02c1f2dad2ddf2d4d2ebf2e432fdf2f33307f30cb3019316a31c2311c327832c9326d321432c23172312431d63089303e30ed2f702ff92e852e292eab2d502d002db02c7c2c102c9f2b2b2bb62a422ae029992952290c29d728bf28a82890289828a828bf28df280c2952299929e029422ab72a2b2b9f2b102c7c2cbc2c032d502dab2d292ec32ef92e702fed2f3e308930d63024317231c23114326d32c9321a33c1326d321c32cd317d312f31e230963053301430ad2f342fbe2e4f2ef72da32d532d0b2db62c7b2c412c072c992b432bfd2ab62a6f2a412a292a112afa29fa29112a292a412a6f2ab62afd2a432b992b072c412c7b2cb52c0b2d842dbe2df72d4f2ebe2e342fad2f143053309630e23036317d31cd311c326d32c1321a336f331a33c93278322832d83189313b31f430b33073303330ea2f702f092fab2e512ef92da62d612d272dec2cb22c782c532c302c0c2cd32baa2b932b7b2b632b632b7b2b932baa2bd32b0c2c302c532c782cb22cec2c2d2d612da62df92d512eab2e092f702fea2f33307330b330f4303b318931d83128327832c9321a336f334e33f832a73255320432b23162311131c83084304130fd2f792ff72e882e242ec12d602d032db52c752c382cfb2b872b3d2bf62ab02a692a412a292a112afa29fa29112a292a412a692ab02af62a3d2b872bfb2b382c752cb52c032d602dc12d242e882ef72e792ffd2f41308430c83011316231b93104325532a732f8324e33f8329f324a32f831a73155310431b43065302030bb2f382fb72e382ebf2d5d2d002da52c592c012c8d2b182ba42a2f2ada2993294c290629d728bf28a82890289028a828bf28d72806294c299329da292f2aa42a182b8d2b012c592ca52c002d5d2dbf2d382eb72e382fbb2f20306530b4300b315531a731f8314a329f32f832a7324a32f0319b314a31f930a83059300a307c2ff82e772efa2d7f2d082da32c4d2cf72b9d2bb72a362ac1294d29d82876282f28d2274527db26ac267d264d264d267d26ac26db264527d2272f287628d8284d29c129362ab72a9d2bf72b4d2ca32c082d7f2dfa2d772ef82e7c2f0a305930a830f9304a319b31f0314a32a7325532f8319b314131ee309d304d30fd2f612fc72e392ebc2d432dcf2c612cf62b532bc12a442a8a29de286a28fa270227262699250b257e241d24b22353236223f4225323b22308247e240b25992526260227eb276a28de288a29b52ab22a522bf62b612ccf2c432dbc2d392ec72e6d2ffd2f4d309d30ee3041319b31f83155320432a7314a31ee3094304230e72f4b2fb12e1b2e892d092d972caa2cf52bd22a0d2a6d29cd289128192726263d255424d822d221332101215a2146250d264223e921a6216d213f2101213321d221d82254243d25262619279128cd286d290d2ad22af52baa2c972c092d892d272eb12e4b2fe72f42309430ee304a31a7310432b2315531f9309d304230d52f352f9c2e062e752de92c652cf62b2c2b632ae429d12828281027cf258f24f0227b210321c821231f541e851db51c6e1c291cc71bc71b291c6e1cb51c851d541e231fc82103217b21f0228f24cf2510272828d128e4294b2b2c2bf62b652cf42c752d062e9c2e352fd52f42309d30f9305531b23162310b31a8304d30e72f352f8a2ef12d612dd62c532cb52be22aff29362947294727c625862490220d21b721e51e8f1d3a1c231a8418cc151f11ad0c5501028c028c5601ad0c1f11cc158418231a3a1c8f1de51eb7210d2190228624c625472747293629ff29c92aca2b532cd62c612df12d8a2e352fe72f4d30a830043162311131b4305930fd2f4b2f9c2ef12d4f2dc32c422c932ba42ab529d22808287f26ec24b6220a21cb214f1e7a1cee198816c90c00943d973d99e0990a997f98e897e8977f980a99e0993d993d970094c90c8816ee197a1c4f1ecb210a21b622ec247f260828d228b529a42a932b422cc32c4f2df12d9c2e4b2ffd2f5930b4301131c83065300a306d2fb12e062e612dc32c322c722b832a9429a5286d27b72524247e217421421e6d1c2e190b12b39397987a999e95d18f220d85147b1691175318531891177b168514220dd18f9e957a999798b3930b122e196d1c421e74217e212424b7256d27a5289429832a722b322cc32c612d062eb12e612f0a306530c830843020307c2fc72e1b2e752dd62c422c722b632a722983282a274c25dd22d820631f151d8e19a2118594ee9944969388c3140c19291b631c331dc21d081e4d1e4d1e081ec21d331d631c291b0c19c31493884496ee998594a2118e19151d631fd820dd224c252a2783287229632a722b422cd62c752d1b2ec72e7c2f203084304130bb2ff82e392e892df42c532c932b832a72296328e626092561222c213f1ee11b89165d91f39910961b0d4f18921b1e1d741ea61f8321a220f3201621392139211621f320a2208321a61f741e1e1d921b4f181b0d1096f3995d918916e11b3f1e2c2161220925e62663287229832a932b532ce92c892d392ef82ebb2f4130fd2f382f772ebc2d092d652cb52ba42a94298328e626c724f3216821dc1d401ad50f43977e98b40369180a1ce01db61f24213121622272234624c124f0241f251f25f024c12446247223622231212421b61fe01d0a1c6918b4037e984397d50f401adc1d6821f321c724e62683289429a42ab52b652c092dbc2d772e382ffd2f792fb72efa2d432d972cf62bc92ab529a5282a270925f321bb217a1d7c196d0075996994cf14041bd01d3322cc200d220724f024d9257f260d279427c327f327f327c32794270d277f26d925f02407240d22cc203322d01d041bcf14699475996d007c197a1dbb21f32109252a27a528b529e22af62b972c432dfa2db72e792ff72e382e7f2dcf2c2d2c2c2bff29d2286d274c25612268217a1db718088e399a27906e18a71cf51ea1201c2242248325b5269e274328a328ea2830294b29632963294b293029ea28a32843289e27b526832542241c22a120f51ea71c6e182790399a088eb7187a1d682161224c256d27d228ff292c2b2d2ccf2c7f2d382ef72e882ebf2d082d612cf52b632a36290828b725dd222c21dc1d7c19088ebe9957883319561dde213421b2236b25cc260628a72826299b29062a4d2a942af92acc2acc2af92a942a4d2a062a9b292629a7280628cc266b25b2233421de21561d33195788be99088e7c19dc1d2c21dd22b72508283629632af52b6f2c082dbf2d882e242e5d2da32cf62bd22ae42947297f262424d8203f1e401a6d00399a5788f719b81d8421ce21a1243326c627ab284b29ec297d2af22a6a2bb12bf72b262c1b2c1b2c262cf72bb12b6a2bf22a7d2aec294b29ab28c6273326a124ce218421b81df7195788399a6d00401a3f1e682124247f266e28e429d22af62ba32c5d2d242ec12d002d4d2c522b0d2ad1284727ec247e21631fe11bd50f759927903319b81d40213622f024ce2647281029d929902a312bd12b242c612c8f2cb62ce02cdd2cdd2ce02cb62c8f2c692c242cd12b312b902ad92910294728ce26f02436224021b81d331927907599d50fe11b631f7e21ec244727d1280d2a532b622c002dc12d602da52cf72bb22a6d292828c625b6227421151d8916439769946e18561d8421362233251127772866293d2a072bd12b3b2c902cdd2c202d5a2d852db02df32db22db02d852d5a2d332ddd2c902c3b2cd02b072b3d2a662978281127332536228421561d6e18699443978916151d7421b622c62528286d29c12a292ca52c602d032d592c9d2b122acd28102786240a21421e8e195d917e98cf14a71cde21ce21f024112799288829772a652b1a2c832cec2c4a2da72dee2d332e602e8c2ec82ec82e8c2e602e332e0d2ea72d4a2dec2c832c1a2c652b772a8e2999281127f024ce21de21a71ccf147e985d918e19421efd2086241027cd28442a9d2b592c032db52c012cb72a8a299128cf259022cb216d1ca211f399b403041bf51e3421a124ce2678288e29982a872b3b2cba2c2d2da52d0f2e732ec62e152f432f712fa72fa72f712f432f152fc62e732e0f2ea52d2d2dbc2c3b2c872b982a88297728ce26a1243421f51e041bb403f399a2116d1ccb219022cf252c288a29b72a012cb52c752c8d2b362ade2819278f240d214f1e2e19859410966918d01da120b223332647286629772a872b4d2ccf2c592de22d602edc2e432fa42ffd2f16302d30463046302d301630fd2fa42f432fdc2e602ee22d592dcf2c4d2c872b772a662947283326b223a120d01d6918109685942e194f1e04218f241927de28362a942b752c382c182bc1296a282626f022b7217a1c0b12ee991b0d0a1c33221c226b25c62710293d2a652b3b2ccf2c6d2dff2d942e202fa32f0c30413074308c30a330bc30bc30a3308c30743041300c30a32f202f942eff2d6d2dcf2c3b2c652b3d2a1029c6276b251c2233220a1c1b0dee990b127a1cb721f02226266a28c129182b382cfb2ba42a4d29eb273d257b21e51eee19b39344964f18e01d01214224cc26ab28d929072b282cbc2c592dff2daa2e432fdf2f34307730ad30dd3003311b31333133311b310331dd30ad3077303430df2f432faa2eff2d592dba2c1a2c072bd929ab28cc2642240121e01d4f184496b393ee19e51e7b213d25eb274d29a42afb2b872b2f2ad8280227542403218f1d881697989388921bb61f0d22832506284b29902ad02b832c2d2dea2d942e432ff52f49309930dc301b3151317c319431ac31ac3194317c3151311b31dc3099304930f52f432f942eea2d2d2d832cd12b902a4b29202883250d22b61f921b9388979888168f1dbe2054240227d8282f2a872b3d2bda2976282626d822c8213a1cc90c7a99c3141e1d24210724b526a728ec29312b3b2cec2ca52d602e202fdf2f4930a430f53042318731c031f5310e32263226320e32f531c03187314231f530a4304930df2f202f602ea52dec2c3b2c312bec29a728b526072424211e1dc3147a99c90c3a1cc821d82226267628da293d2bf62a93292f289925d221231f231a00949e950c19741e3121f0249e2726297d2ad12b902c4a2d0f2edc2ea32f34309930f5305131a231ee312f3263328832a032a032883263322f32ee31a2315131f53099303430a32fdc2e0f2e4a2d902cd12b7d2a26299e27f0243121741e0c199e950094231a231fd22199252f289329f62ab02a4c29d2270b253321541e84183d97d18f291ba61f6222d92543289b29f22a242cdd2ca72d732e432f0c307730dc304231a231ff3155329932d83203331b331b330333d83299325532ff31a2314231dc3077300c30432f732ea72ddd2c242cf22a9b294328d9256222a61f291bd18f3d978418541e33210b25d2274c29b02a692a062945277e240121851dcc153d99220d631c832172237f26a328062a6a2b692c332dee2dc62ea42f4130ad301b318731ee315532ae32003345337e33963396337e3345330033ae325532ee3187311b31ad304130a42fc62eee2d202d612c6a2b062aa3287f2672238321641c220d3d99cc15851dcb207e2445270629692a412ad728db2608243f21b51c1f11e0998514331d0f2146240d27ea284d2ab12b8f2c5a2d332e152ffd2f7430dd305131c0312f32993200335c33ac33ea3308340834ea33ac336733003399322f32c0315131dd307430fd2f152f332e5a2d8f2cb12b4d2aea280d2746240f21331d8514e0991f11b51c5a211d24db26d728412a292abf28ac26b2236d216e1cad0c0a997b16c21df320c12494273029942af72bb62c852d602e432f16308c3003317c31f5316332d8324533ac3309342f34463446342f340934ac334533d8326332f5317c3103318c301630432f602e852db62cf72b942a30299a27c124f320c21d7b160a99ad0c6e1c4625b223ac26bf28292a112aa8287d265323a621291c55017f989117081e1621f024c3274b29f92a262ce02cb02d8c2e712f2d30a3301b3194310e32883203337e33ea332f345f3484347e345f342b34ea337e33033388320e3294311b31a3302d30712f8c2eb02de02c262cf92a4b29c327f0241621081e91177f985601291c262053237d26a828112afa2990284d26f422e921c71b028ce89753184d1e39211f25f3276329cc2a1b2cdd2cf32dc82ea72f4630bc303331ac312632a0321b339633083446347e34b434b4347e344634083496331b33a0322632ac313331bc304630a72fc82ef32ddd2c1b2ccc2a6329f3271f2539214d1e5318e897028cc71b422362234d269028fa29fa2990284d2662234223c71b028ce89753184d1e39211f25f3276329cc2a1b2cdd2cb22dc82ea72f4630bc303331ac312632a0321b339633083446347e34b434b4347e344634083496331b33a0322632ac313331bc304630a72fc82ef32ddd2c1b2ccc2a6329f3271f2539214d1e5318e897028cc71be921f4224d269028fa29112aa8287d2653230d26291c55017f989117081e1621f024c3274b29f92a262ce02cb02d8c2e712f2d30a3301b3194310e32883203337e33ea332f345f347e347e345f342b34ea337e33033388320e3294311b31a3302d30712f8c2eb02de02c262cf92a4b29c327f0241621081e91177f985501291ca62153237d26a828112a292abf28ac26b22346256e1cad0c0a997b16c21df320c12494273029942af72bb62c852d602e432f16308c3003317c31f5316332d8324533ac3309342b34463446342b340934ac334533d8326332f5317c3103318c301630432f602e852db62cf72b942a30299a27c124f320c21d7b160a99ad0c6e1c6d21b223ac26bf28292a412ad728db261d245a21b51c1f11e0998514331da22046240d27ea284d2ab12b8f2c5a2d332e152ffd2f7430dd305131c0312f32993200335c33ac33ea3308340834ea33ac335c33003399322f32c0315131dd307430fd2f152f332e5a2d8f2cb12b4d2aea280d2746240f21331d8514e0991f11b51c3f210824db26d728412a692a062945277e240121851dcc153d99220d631c832172237f26a328062a6a2b612c202dee2dc62ea42f4130ad301b318731ee315532ae32003345337e33963396337e3345330033ae325532ee3187311b31ad304130a42fc62eee2d332d692c6a2b062aa3287f2672238321631c220d3d99cc15851d01217e2445270629692ab02a4c29d2270b253321541e84183d97d18f291ba61f6222d92543289b29f22a242cdd2ca72d732e432f0c307730dc304231a231ff3155329932d83203331b331b330333d83299325532ff31a2314231dc3077300c30432f732ea72ddd2c242cf22a9b294328d9256222a61f291bd18f3d978418541e33210b25d2274c29b02af62a93292f289925d221231f231a00949e950c19741e3121f0249e2726297d2ad12b902c4a2d0f2edc2ea32f34309930f5305131a231ee312f3263328832a032a032883263322f32ee31a2315131f53099303430a32fdc2e0f2e4a2d902cd12b7d2a26299e27f0243121741e0c199e950094231a231fd22199252f289329f62a3d2bda2976282626d822c8213a1cc90c7a99c3141e1d24210724b526a728ec29312b3b2cec2ca52d602e202fdf2f4930a430f53042318731c031f5310e32263226320e32f531c03187314231f530a4304930df2f202f602ea52dec2c3b2c312bec29a728b526072424211e1dc3147a99c90c3a1cc821d82226267628da293d2b872b2f2ad8280227542403218f1d881697989388921bb61f0d22832506284b29902ad12b832c2d2de22d942e432ff52f49309930dc301b3151317c319431ac31ac3194317c3151311b31dc3099304930f52f432f942eea2d2d2d832cd02b902a4b29062883250d22b61f921b9388979888168f1d032154240227d8282f2a872bfb2ba42a4d29fa273d257b21e51eee19b39344964f18e01dcc204224cc26ab28d929072b1a2cba2c592dff2daa2e432fdf2f34307730ad30dd3003311b31333133311b310331dd30ad3077303430df2f432faa2eff2d592dbc2c1a2c072bd929ab28cc2642240121e01d4f184496b393ee19e51e7b213d25eb274d29a42afb2b382c182bc1296a282626f022b7217a1c0b12ee991b0d0a1c33221c226b25c62710293d2a652b3b2ccf2c6d2dff2d942e202fa32f0c30413074308c30a330bc30bc30a3308c30743041300c30a32f202f942eff2d6d2dcf2c3b2c652b3d2a1029c6276b251c2233220a1c1b0dee990b127a1cb721f02226266a28c129182b382c752c8d2b362ade2819278f240d214f1e2e19859410966918d01da120b223332647286629772a872b4d2ccf2c592dea2d602edc2e432fa42ffd2f16302d30463046302d301630fd2fa42f432fdc2e602eea2d592dcf2c4d2c872b772a662947283326b223a120d01d6918109685942e194f1e0d218f241927de28362a8d2b752cb52c012cb72a8a299128cf259022cb216d1ca211f399b403041bf51e3421a124ce2677288829982a872b3b2cbc2c2d2da52d0f2e732ec62e152f432f712fa72fa72f712f432f152fc62e732e0f2ea52d2d2dba2c3b2c872b982a8e297828ce26a1243421f51e041bb403f399a2116d1ccb219022cf252c288a29b72a012cb52c032d592c9d2b442acd28102786240a21421e8e195d917e98cf14a71cde21ce21f024112799288e29772a652b282c832cec2c4a2da72dee2d332e602e8c2ec82ec82e8c2e602e332eee2da72d4a2dec2c832c1a2c652b772a882999281127f024ce21de21a71ccf147e985d918e19421e0a2186241027cd28b52a9d2b592c032d602da52c292cc12a6d292828c625b6227421151d8916439769946e18561d8421362233251127782866293d2a072bd02b3b2c902cdd2c332d5a2d852db02df32df32db02d852d5a2d202ddd2c902c3b2cd02b072b3d2a662977281127332536228421561d6e18699443978916151d7421b622c62528286d29b22af72ba52c602dc12d002d4d2c532b0d2ad1284727ec247e21631fe11bd50f759927903319b81d40213622f024ce2647281029d929902a312bd12b242c692c8f2cb62ce02cdd2cdd2ce02cb62c8f2c612c242cd12b312b902ad92910294728ce26f02436224021b81d331927907599d50fe11b631f7e21ec244727d1280d2a522b4d2c002dc12d242e5d2da32cf62bd22ae42947297f262424d8203f1e401a6d00399a5788f719b81d8421ce21a1243326c627ab284b29ec297d2af22a6a2bb12bf72b262c1b2c1b2c262cf72bb12b6a2bf22a7d2aec294b29ab28c6273326a124ce218421b81df7195788399a6d00401a3f1ed82024247f266c28e429d22af62ba32c5d2d242e882ebf2d082d612cf52b4b2b36290828b725dd222c21dc1d7c19088ebe9957883319561dde213421b2236b25cc260628a72826299b29062a4d2a942af92acc2acc2af92a942a4d2a062a9b292629a7282028cc266b25b2233421de21561d33195788be99088e7c19dc1d2c21dd22b725082836294b2bf52b6f2c082dbf2d882ef72e382e7f2dcf2caa2c2c2bff29d2286d274c25612268217a1db718088e399a27906e18a71cf51ea1201c2242248325b5269e274328a328ea2830294b29632963294b293029ea28a32843289e27b526832542241c22a120f51ea71c6e182790399a088eb7187a1d682161224c256d27d228ff292c2baa2c0b2d7f2d382ef72e792fb72efa2d432d972cf62be22ab529a5282a270925f321bb217a1d7c196d0075996994cf14041bd01d332201210d220724f024d9257f260d279a27c327f327f327c3279a270d277f26d925f02407240d2201213322d01d041bcf14699475996d007c197a1dbb21f32109252a27a528b529c92af62b972c432dfa2db72e792ffd2f382f772ebc2d092d652ccf2ba42a94298328e626c724f3216821dc1d401ad50f43977e98b40369180a1ce01db61f24213121622272234624c124f0241f251f25f024c12446247223622231212421b61fe01d0a1c6918b4037e984397d50f401adc1d6821f321c724e62683289429a42aca2b652c092dbc2d772e382ffd2f4130bb2ff82e392e892df42c532c932b832a72296328e626092561222c213f1ee11b89165d91f39910961b0d4f18921b1e1d741ea61f83210f21f3201621392139211621f3200f218321a61f741e1e1d921b4f181b0d1096f3995d918916e11b3f1e2c2161220925e62663287229832a932b532cf42c892d392ef82ebb2f4130843020307c2fc72e272e752dd62c422c722b632a722983282a274c25dd22d820631f151d8e19a2118594ee9944969388c3140c19291b631c331dc21d081e4d1e4d1e081ec21d331d631c291b0c19c31493884496ee998594a2118e19151d631f6821dd224c252a2783287229632a722b422cd62c752d272ec72e7c2f20308430c83065300a306d2fb12e062e612dc32c322c722b832a9429a5286d27b72524247e217421421e6d1c2e190b12b39397987a999e95d18f220d85147b1691175318531891177b168514220dd18f9e957a999798b3930b122e196d1c421e74217e212424b7256d27a5289429832a722b322cc32c612d062eb12e612f0a306530c8301131b4305930fd2f4b2f9c2ef12d4f2dc32c422c932ba42ab529d22808287f26ec24b622fd20cb214f1e7a1cee198816c90c00943d973d99e0990a997f98e897e8977f980a99e0993d993d970094c90c8816ee197a1c4f1ecb21fd20b622ec247f260828d228b529a42a932b422cc32c4f2df12d9c2e4b2ffd2f5f30b430113162310b31a8304d30e72f352f8a2ef12d612dd62c532cb52bc92aff2936296c284727c625862490220421b721e51e8f1d3a1c231a8418cc151f11ad0c5501028c028c5501ad0c1f11cc158418231a3a1c8f1de51eb721042190228624c62547276e283629ff29e22acf2b532cd62c612df12d8a2e352fe72f4d30a8300b316231b9315531f9309d304230d52f352f9c2e062e752de92c652cf62b2c2b632ae429d12828281027cf258f24f0227b21be20c821231f541e851db51c6e1c291cc71bc71b291c6e1cb51c851d541e231fc821be207b21f0228f24cf2510272828d128e429632a2c2bf62b652cf42c752d062e9c2e352fd52f42309d30f9305531b9310432a7314a31ee3094304230e72f4b2fb12e1b2e892d092d972c2d2cf52bd22a0d2a6d29cd282c28192726263d255424d822d2213321cb203f216d21a621e9214223262049205a21cb203321d221d82254243d25262619272c28cd286d290d2ad22af52b2d2c972c092d892d1b2eb12e4b2fe72f42309430ee304a31a73104325532f8319b314131ee309d304d30fd2f612fc72e392ebc2d432d0b2d6f2cf62b522bb22a122a8a29de286a28eb270227262699250b257e240824b2235323f42262235323b2231d247e240b25992526260227eb276a28de288a29442ac12a532bf62b6f2c0b2d432dbc2d392ec72e6d2ffd2f4d309d30ee3041319b31f8315532a7324a32f0319b314a31f930a83059300a307c2ff82e772efa2d7f2d082da32c4d2cf72b9d2bb72a362ac1294d29d82876282f28d2274527db26ac267d264d264d267d26ac26db264527d2272f287628d8284d29c129362ab72a9d2b292c622ca32c082d7f2dfa2d772ef82e7c2f0a305930a830f9304a319b31f0314a32a732f8329f324a32f831a73155310431b43065302030bb2f382fb72e382ebf2d5d2d002da52c592c012c8d2b182ba42a2f2ada2993294c290629d728bf28a82890289028a828bf28d72806294c299329da292f2aa42a182b942b012c592ca52c002d5d2dbf2d382eb72e382fbb2f20306530b4300b315531a731f8314a329f32f8324e33f832a73255320432b23162311131c83084304130fd2f792ff72e882e242ec12d602d032db52c752c382cfb2b872b3d2bf62ab02a692a412a292a112afa29fa29112a292a412a692ab02af62a3d2b872bfb2b382c752cb52c032d602dc12d242e882ef72e792ffd2f41308430c83011316231b23104325532a732f8324e332c33d73286323432e33191314531f230a73061301c30af2f252f9d2e282ebc2d522de92c822c2b2cc52b372bad2a292ad8298e294629ff28d728bf28a82890289028a828bf28d728ff2846298e29d829292aad2a372bc52b2b2c822ce92c522dbc2d282e9d2e252faf2f1c306130a730f23045319e31e33134328632d7322c33d7327e322932d73186313431e33093304230f42f6a2fe12e592ed22d502de62c7e2c192c842bb52a2f2ab1293a29c62870282928c6273827db26ac267d264d264d267d26ac26db263827c62729287028c7283a29b1292f2ab52a842b192c7e2ce62c502dd22d592ee12e6a2ff42f42309330ec3034318631d73129327e32d73286322932cf317a312931d73086303430c62f282f9d2e162e8f2d0a2d882c162c672ba82af4294f29ce285828c727de261a268c25ff2471240824b2235323f422f4225323b22308247124ff248c251a26de26c7275828cc284f29f429a82a672b162c882c0a2d8f2d162e9d2e282fc62f34308630d73029317a31cf31293286323432d7317a312031cc307a302930af2f0c2f6a2ed32d4d2dc92c482c962ba72aef294829a8282d28ea26012618252f24a6228b217020ab1ed41c171cb31a38193819b31a171cd41cab1e70208b21a6222f2418250126ea262d28a8284829ef29a72a962b482cc92c4d2dd32d6a2e192faf2f29307a30cc3020317a31d7313432e33186312931cc3071301d30982ff52e532eb32d152d892c092c1d2b332a5d29a42809282127bb264724a622d420051ec218298174986f9c9b9ee19e269f6c9f6c9f269fe19e9b9e6f9c74982981c218051ed420a6224724bb26c7260328a4285d29332a1d2b092c892c152dc02d532ef52e982f1d307130cc3029318631e33191313431d7307a301d30852fde2e3d2e9d2dff2c652ca02ba72ac629f9289828d1267d253c24f821ee1e27194194b49c4b9f28a08fa0f7a05fa182a1a5a1c8a1c8a1a5a182a15fa1f7a08fa028a04b9fb49c41942719ee1ef8213c247d25d1269828222ac629a72aa02b722cff2c9d2d3d2ede2e852f1d307a30d730343191314531ec3086302930982fde2e292e872de92c502c762b5d2a5f299528992706261925e621cb1e2317729a399f47a0f1a09ca131a298a200a367a394a3b7a3d9a3d9a3b7a394a367a300a398a231a29ca1f1a047a0399f729a2317cb1ee62119253628992795285f29772a762b502ce92c872d292ede2e982f29308630e3304531f23093303430af2ff52e3d2e872dd62c3a2c4e2b372a3b294c28d1263e25572332203318ba9a4e9f91a07ca13ea2e8a293a31da450a484a499a47ea46ca45ba45ba46ca47ea499a484a450a41da493a3e8a23ea27ca191a04e9fba9a3318322057233e25d12664283b29372a4e2b3a2cd62c872d3d2ef52eaf2f34309330f230a7304230c62f192f532e9d2de92c3a2c282b122a19292a2877269924c721441d1894eb9e98a083a16ea259a31aa46fa48ca436a4f8a390a329a3eaa2c7a2a5a2a5a2c7a2eaa229a390a3f8a336a48ca46fa41aa459a36ea283a198a0eb9e1894441dc721992477262a281929122a282b3a2ce92c9d2d532e0c2fc62f4230a7306130f42f282f6a2eb32dff2c502c4e2b122af928092834265624f120d618269c08a02fa156a25fa325a49aa441a4cca321a376a2efa187a120a1d8a0b5a093a093a0b5a0d8a020a187a1efa176a221a3cca341a49aa425a45fa356a22fa108a0269cd618f120562434260928f928122a4e2b502cff2cb32d6a2e282ff42f61301c306a2f9d2ed32d152d722c762b372a19290928f32513246b207d15789e9aa0c1a1e8a207a49ba43da491a3a6a2d5a12aa17fa05ca0fe9e4f9d2b9bb09935983598b0992b9b4f9dfe9e5ca07fa02aa1d5a1a6a291a33da49ba407a4e8a2c1a19aa0789e7d156b201324f32509281929372a762b652c152dd32d9d2e6a2f1c30af2fe12e162e4d2d892ca02b5d2a3b292a2834261324cc1f320dda9ecba029a27ba351a46ca4b2a39fa2b4a1c9a0bd9f679e8a987a152d1bcc1db71f3a20992099203a20b71fcc1d2d1b7a158a98679ebd9fc9a0b4a19fa2b2a36ca451a47ba329a2cba0da9e320dcc1f132434262a283b295d2aa02b892c4d2d162ee12eaf2f252f592e8f2dc92c092ca72a5f296428772656246b20320d3c9ffca05aa2b9a38ba423a41fa3f8a1d1a0b09f6a9cc010d01c3a200c2259233a24c124f0241f251f25f024c1243a2459230c223a20d01cc0106a9cb09fd1a0f8a11fa323a48ba4b9a35aa2fca03c9f320d6b20562477264c285f29a72a092cc92c8f2d592e252f9d2ed22d0a2d482c1d2bc6299528d1269924f1207d15da9efca08ca2eaa3a4a4fca39ea266a13fa0539ddd11be1d6021c423cb24b425732600278e27c327f327f327c3278e2700277326b425cb24c4236021be1ddd11539d3fa066a19ea2fca3a4a4eaa38ca2fca0da9e7d15f1209924d1269528c6291d2b482c0a2dd22d9d2e282e502d882c962b332af92899273e25c721d618789ecba05aa2eaa394a4cba36da20ea1619f6798171c3021f3233a257a26792731289d28e3282a294b29632963294b292a29e3289d28312879277a263a25f3233021171c6798619f0ea16da2cba394a4eaa35aa2cba0789ed618c7213e259927f928332a962b882c502d282ebc2de62c162ca72a5d29982836285723441d269c9aa029a2b9a3a4a4cba33ca2dda0ff9e1384371fc022f3248326c427822814298929052a582aa92a0c2bf22af22a0c2ba92a582a092a892914298228c4278326f324c022361f1384ff9edda03ca2cba3a4a4b9a329a29aa0269c441d5723062698286e29a72a162ce62cbc2d522d7e2c672bef29a428d12619253220189408a0c1a17ba38ba4fca36da2dda09d9edf133920f523bb254d2772282729cb297c2a092b952b002c2c2c5b2c582c582c5b2c2c2c002caa2b092b7c2acb29272970284d27bb25f5233920df139d9edda06da2fca38ba47ba3c1a108a0189432201925d126a428ef29672b7e2c522de92c192ca82a482903287d25e6213318eb9e2fa1e8a251a423a49ea20ea1ff9edf13bf203d241b26f927d4289e297c2a3e2b012c582ca32ce32c112d3f2d882d422d3f2d112de32cb72c582c012c3e2b7c2a9e29d428f9271b263d24bf20df13ff9e0ea19ea223a451a4e8a22fa1eb9e3318e6217d250928a329a82a192ce92c822c842bf429a828c7263c24cb1eba9a98a056a207a46ca41fa366a1619f138439203d245e261e280d29042af02ae42b692cd02c362d832dcd2dfc2d2c2e6b2e6b2e2c2efc2dcd2da12d362dd02c692ce42bf02a042a0d291e285e263d2439201384619f66a11fa36ca407a456a298a0ba9acb1e3c2421275b29f429842b822c2b2cb52a4f292d28bb26f82123174e9f83a15fa39ba4b2a3f8a13fa06798371ff5231b261e282e29292a3f2b302cb12c342da62d112e692ebc2eec2e1c2f552f552f1c2fec2ebc2e692e112ea62d342db12c302c3f2b292a2e291e281b26f523371f67983fa0f8a1b2a39ba45fa383a14e9f2317f821bb262d284f29b52a2b2cc52b2f2acc28ea264724ee1e729a91a06ea225a43da49fa2d1a0539d171cc022bb25f9270d29292a672b482ce12c762dfc2d802eed2e522faf2fdf2f083022300f300830df2faf2f522fed2e802efc2d762de12c482c672b292a0d29f927bb25c022171c539dd1a09fa23da425a46ea291a0729aee1e4724ea26ce282f2ac52b372bb12958280126a6222719399f7ca159a39aa491a3b4a1b09fdd113021f3244d27d428042a3f2b482cf72c952d342ec82e512fca2f1c3046306a3082309b309b3082306a3046301e30ca2f512fc82e342e952df72c482c3f2b042ad4284d27f3243021dd11b09fb4a191a39aa459a37ca1399f2719a62201265828b129372bad2a3a29c7271825d420419447a03ea21aa441a4a6a2c9a06a9cbe1df323832670289e29f02a322ce12c952d4b2eed2e8f2f0f3054308a30bb30e430fd3015310631fd30e430bb308a3054300f30952fed2e4b2e952de12c322cf02a9e2972288326f323be1d6a9cc9a0a6a241a41aa43ea247a04194d4201825c7273a29ad2a292ac628de262f24051eb49cf1a0e8a26fa4cca3d5a1bd9fc01060213a25c42727297c2ae42bb12c7e2d342eed2ea62f24307630ba30f93030316031783191319131783160313031f930ba3076302430a62fed2e342e7e2db12ce42b7c2a2729c4273a256021c010bd9fd5a1cca36fa4e8a2f1a0b49c051e2f24de26c628292ad82970281a26a622c2184b9f9ca193a38ca421a32aa1679ed01cc4237a268228cb293e2b692c342dfc2dc82e8f2f24308130d33021316631a531cd31f4310d32fd31f431cd31a53166312131d330813024308f2fc82efc2d342d692c3e2bcb2982287a26c423d01c679e2aa121a38ca493a39ca14b9fc218a6221a267028d8298e2929288c258b21298128a031a21da436a476a27fa08a983a20cb24792714297c2a012cd02ca62d802e512f0f307630d33030318831cd3111324232703289328932703242321a32cd3188313031d33076300f30512f802ea62dd02c012c7c2a14297927cb243a208a987fa076a236a41da431a228a029818b218c2529288e294629c627ff24702074988fa098a250a4f8a3efa15ca07a150c22b42531288929092b582c362d112eed2eca2f5430ba3021318831de3133327832b732ec320533f332ec32b73278323332de3188312131ba305430ca2fed2e112e362d582c092b89293128b4250c227a155ca0efa1f8a350a498a28fa074987020ff24c6274629ff2838277124ab1e6f9cf7a000a384a490a387a1fe9e2d1b592373269d28092aaa2bb72c832d692e522f1c308a30f9306631cd3133328e32df322c3354338233823354332c33df328d323332cd316631f9308a301c30522f692e832da32c952b052a9d28732659232d1bfe9e87a190a384a400a3f7a06f9cab1e71243827ff28d728db260824d41c9b9e5fa167a399a429a320a14f9dcc1d3a240027e328582a002ce32ccd2dbc2eaf2f4630bb303031a53111327832df323b338b33c933fe33ea33c9338b333b33df3278321132a5313031bb304630af2fbc2ecd2de32c002c582ae32800273a24cc1d4f9d20a129a399a467a35fa19b9ed41c0824db26d728bf28ac26b223171ce19e82a194a37ea4eaa2d8a02b9bb71fc7248e272a29a92a2c2c112dfc2dec2edf2f6a30e4306031cd314232b73224338b33ea331b343d343d341b34ea338b332433b7324232cd316031e4306a30df2fec2efc2d112d2c2ca92a2a298e27c724b71f2b9bd8a0eaa27ea494a382a1e19e171cb223ac26bf28a8287d265323b31a269fa5a1b7a36ca4c7a2b5a0b0993a20f024c3274b290c2b5b2c3f2d2c2e1c2f08308230fd307831f4317032ec325433c9331b344c346d346d344e341b34c9335433ec327032f4317831fd30823008301c2f2c2e3f2d5b2c0c2b4b29c327f0243a20b099b5a0c7a26ca4b7a3a5a1269fb31a53237d26a82890284d26f42238196c9fc8a1d9a35ba4a5a293a0359899201f25f3276329f22a582c882d6b2e552f22309b30153191310d32893205338233fe333d346d34a434a4346d343d34fe338233053389320d32913115319b302230552f6b2e882d582cf22a6329f3271f259920359893a0a5a25ba4d9a3c8a16c9f3819f4224d26902890284d26f42238196c9fc8a1d9a35ba4a5a293a0359899201f25f3276329f22a582c422d6b2e552f0f309b3006319131fd318932f3328233ea333d346d34a434a4346d343d34fe338233f3328932fd31913106319b300f30552f332e882d582cf22a6329f3271f259920359893a0a5a25ba4d9a3c8a16c9f3819f4224d269028a8287d265323b31a269fa5a1b7a36ca4c7a2b5a0b0993a20f024c3274b290c2b5b2c3f2d2c2e1c2f08308230fd307831f4317032ec325433c9331b344e346d346d344e341b34c9335433ec327032f4317831fd30823008301c2f2c2e3f2d5b2c0c2b4b29c327f0243a20b099b5a0c7a26ca4b7a3a5a1269fb31a53237d26a828bf28ac26b223171ce19e82a194a37ea4eaa2d8a02b9bb71fc1248e272a29a92a2c2c112dfc2dec2edf2f6a30e4306031cd314232b7322c338b33ea331b343d343d341b34ea338b332433b7324232cd316031e4306a30df2fec2efc2d112d2c2ca92a2a298e27c724b71f2b9bd8a0eaa27ea494a382a1e19e171cb223ac26bf28d728db260824d41c9b9e5fa167a399a429a320a14f9dcc1d3a240027e328582a002ce32ccd2dbc2eaf2f4630bb303031a5311a327832df323b338b33c933fe33fe33c9338b333b33df3278321a32a5313031bb304630af2fbc2ecd2de32c002c582ae32800273a24cc1d4f9d20a129a399a467a35fa19b9ed41c0824db26d728ff2838277124ab1e6f9cf7a000a384a490a387a1fe9e2d1b592373269d28052a952ba32c832d692e522f1c308a30f9306631cd3133328d32df32243354338233823354332c33df328e323332cd316631f93093301c30522f692e832db72caa2b092a9d28732659232d1bfe9e87a190a384a400a3f7a06f9cab1e71243827ff284629c627ff24702074988fa098a250a4f8a3efa15ca07a150c22b42531288929092b582c362d112eed2eca2f5430ba3021318831de3133327832b732ec3205330533ec32b73278323332de3188312131ba305430ca2fed2e112e362d582c092b89293128b4250c227a155ca0efa1f8a350a498a28fa074987020ff24c62746298e2929288c258b21298128a031a21da436a476a27fa08a983a20cb24792714297c2a012cd02ca62d802e512f0f307630dc3030318831cd3111324232703289328932703242321a32cd3188313031d33076300f30512f802ea62dd02c012c7c2a14297927cb243a208a987fa076a236a41da431a228a029818b218c2529288e29d82970281a26a622c2184b9f9ca193a38ca421a32aa1679ed01cc4237a268228cb293e2b692c342dfc2dc82e952f24308130d33021316631a531cd31f4310d320d32f431cd31a53166312131dc30813024308f2fc82efc2d342d692c3e2bcb2982287a26c423d01c679e2aa121a38ca493a39ca14b9fc218a6221a267028d829292ac628de262f24051eb49cf1a0e8a26fa4cca3d5a1bd9fc01060213a25c42727297c2ae42bb12c762d342eed2ea62f24307630ba30f93030316031783191319131783160313031f930ba3076302430a62fed2e342e7e2db12ce42b7c2a2729c4273a256021c010bd9fd5a1cca36fa4e8a2f1a0b49c051e2f24de26c628292aad2a3a29c7271825d420419447a03ea21aa441a4a6a2c9a06a9cbe1df323832672289e29f02a302ce12c952d4b2eed2e8f2f0f3054308a30bb30e430fd3015311531fd30e430bb30933054300f308f2fed2e4b2e952de12c322cf02a9e2970288326f323be1d6a9cc9a0a6a241a41aa43ea247a04194d4201825c7273a29ad2a372bb12958280126a6222719399f7ca159a39aa491a3b4a1b09fdd113021f3244d27d428042a3f2b482cf72c952d342ec82e512fca2f1c3046306a3082309b309b3082306a3046301c30ca2f512fc82e342e952df72c482c3f2b042ad4284d27f3243021dd11b09fb4a191a39aa459a37ca1399f2719a62201265828b129372bc52b2f2acc28ea264724ee1e729a91a06ea225a43da49fa2d1a0539d171cc022bb25f9270d29292a672b482ce12c7e2dfc2d802eed2e522faf2fdf2f0830223022300830df2faf2f522fed2e802efc2d7e2de12c482c672b292a0d29f927bb25c022171c539dd1a09fa23da425a46ea291a0729aee1e4724ea26cc282f2ac52b2b2cb52a4f292d28bb26f82123174e9f83a15fa39ba4b2a3f8a13fa06798371ff5231b261e282e29292a3f2b322cb12c342da62d112e692ebc2eec2e1c2f552f552f1c2fec2ebc2e692e112ea62d342db12c302c3f2b292a2e291e281b26f523371f67983fa0f8a1b2a39ba45fa383a14e9f2317f821bb262d284f29b52a2b2c822c842bf4295b2921273c24cb1eba9a98a056a207a46ca41fa366a1619f138439203d245e261e280d29042af02ae42b692cd02c362d832dcd2dfc2d2c2e6b2e6b2e2c2efc2dcd2d832d362dd02c692ce42bf02a042a0d291e285e263d2439201384619f66a11fa36ca407a456a298a0ba9acb1e3c24c726a828f429842b822ce92c192ca82aa32909287d25e6213318eb9e2fa1e8a251a423a49ea20ea1ff9edf13bf203d241b26f927dc289e297c2a3e2b012c582cb72ce32c112d3f2d882d882d3f2d112de32ca32c582c012c3e2b7c2a9e29d428f9271b263d24bf20df13ff9e0ea19ea223a451a4e8a22fa1eb9e3318e6217d2503284829a82a192ce92c522d7e2c672bef29a428d12619253220189408a0c1a17ba38ba4fca36da2dda09d9ede133920f523bb254d2770282729cb297c2a092baa2b002c2c2c5b2c582c582c5b2c2c2c002c952b092b7c2acb29272970284d27bb25f5233920df139d9edda06da2fca38ba47ba3c1a108a0189432201925d126a428ef29672b7e2c522dbc2de62c162ca72a6e29982836285723441d269c9aa029a2b9a3a4a4cba33ca2dda0ff9e1384361fc022f3248326c427822814298929092a582aa92a0c2bf22af22a0c2ba92a582a052a892914298228c4278326f324c022371f1384ff9edda03ca2cba3a4a4b9a329a29aa0269c441d5723362898286e29a72a162ce62cbc2d282e502d882c962b332a222a99273e25c721d618789ecba05aa2eaa394a4cba36da20ea1619f6798171c3021f3233a257a26792731289d28e3282a294b29632963294b292a29e3289d28312879277a263a25f3233021171c6798619f0ea16da2cba394a4eaa35aa2cba0789ed618c7213e259927f928af2a962b882c502d282e9d2ed22d0a2d482c1d2bc6299528d1269924f1207d15da9efca08ca2eaa3a4a4fca39ea266a13fa0539ddd11be1d6021c423cb24b425732600278e27c327f327f327c3278e2700277326b425cb24c4236021be1ddd11539d3fa066a19ea2fca3a4a4eaa38ca2fca0da9e7d15f1209924d1269528c6291d2b482c0a2dd22d9d2e252f592e8f2dc92c092ca72a5f298828772656246b20320d3c9ffca05aa2b9a38ba423a41fa3f8a1d1a0b09f6a9cc010d01c3a200c2259233a24c724f0241f251f25f024c7243a2459230c223a20d01cc0106a9cb09fd1a0f8a11fa323a48ba4b9a35aa2fca03c9f320d6b205624772664285f29a72a092cc92c8f2d592e252faf2fe12e162e4d2d892ca02b772a3b292a2834261324cc1f320dda9ecba029a27ba351a46ca4b2a39fa2b4a1c9a0bd9f679e8a987a152d1bcc1db71f3a20992099203a20b71fcc1d2d1b7a158a98679ebd9fc9a0b4a19fa2b2a36ca451a47ba329a2cba0da9e320dcc1f132434262a283b29772aa02b892c4d2d162ee12eaf2f1c306a2f9d2ed32d152d722c762b372a19290928f32513246b207d15789e9aa0c1a1e8a207a49ba43da491a3a6a2d5a12aa17fa05ca0fe9e4f9d2b9bb09935983598b0992b9b4f9dfe9e5ca07fa02aa1d5a1a6a291a33da49ba407a4e8a2c1a19aa0789e7d156b201324f32509281929372a762b722c152dd32d9d2e6a2f1c306130f42f282f6a2ec02dff2c502c4e2b122af928092834265624f120d618269c08a02fa156a25fa325a49aa441a4cca321a376a2efa187a120a1d8a0b5a093a093a0b5a0d8a020a187a1efa176a221a3cca341a49aa425a45fa356a22fa108a0269cd618f120562434260928f928122a4e2b502cff2cc02d6a2e282ff42f6130a7304230c62f192f532e9d2de92c3a2c282b122a19292a2877269924c721441d1894eb9e98a083a16ea259a31aa46fa48ca436a4f8a390a329a3eaa2c7a2a5a2a5a2c7a2eaa229a390a3f8a336a48ca46fa41aa459a36ea283a198a0eb9e1894441dc721992477262a281929122a282b3a2ce92c9d2d532e0c2fc62f4230a730f23093303430af2ff52e3d2e872dd62c3a2c4e2b372a3b294d28d1263e25572332203318ba9a4e9f91a07ca13ea2e8a293a31da450a484a499a47ea46ca45ba45ba46ca47ea499a484a450a41da493a3e8a23ea27ca191a04e9fba9a3318322057233e25d1264c283b29372a4e2b3a2cd62c872d3d2ef52eaf2f3b309330f2304531ec3086302930982fde2e292e872de92c502c762b5d2a5f299528992706261925e621cb1e2317729a399f47a0f1a09ca131a298a200a367a394a3b7a3d9a3d9a3b7a394a367a300a398a231a29ca1f1a047a0399f729a2317cb1ee62119250626992795285f295d2a762b502ce92c872d292ede2e982f29308630ec3045319e313431d7307a301d30852fde2e3d2e9d2dff2c652ca02ba72ac629f9289828d1267d253c24f821ee1e27194194b49c4b9f28a08fa0f7a05fa182a1a5a1c8a1c8a1a5a182a15fa1f7a08fa028a04b9fb49c41942719ee1ef8213c247d25d1269828f928c629a72aa02b722cff2c9d2d3d2ede2e852f1d307a30d73034319e31e33186312931cc3071301d30982ff52e532eb32d152d892c092c1d2baf2a6e29a4280328c726bb264724a622d420051ec218298174986f9c9b9ee19e269f6c9f6c9f269fe19e9b9e6f9c74982981c218051ed420a6224724bb2621270928a4286e29af2a1d2b092c892c152db32d532ef52e982f1d307130cc3029318631e3313432d7317a312031cc307a302930af2f0c2f6a2ed32d4d2dc92c482c962ba72aef294829a8282d28ea26012618252f24a6228b217020ab1ed41c171cb31a38193819b31a171cd41cab1e70208b21a6222f2418250126ea262d285b29a329ef29a72a962b482cc92c4d2dd32d6a2e192faf2f29307a30cc3020317a31d731343286322932cf317a312931d73086303430c62f282f9d2e162e8f2d0a2d882c162c672ba82af4294f29cc285828c727de261a268c25ff2471240824b2235323f422f4225323b22308247124ff248c251a26de26c7275828ce284f29f429a82a672b162c882c0a2d8f2d162e9d2e282fc62f34308630d73029317a31cf3129328632d7327e322932d73186313431e33093304230f42f6a2fe12e592ed22d502de62c7e2c192c842bb52a2f2ab1293a29c62870282928c6273827db26ac267d264d264d267d26ac26db263827c62729287028c6283a29b1292f2ab52a842b192c7e2ce62c502dd22d592ee12e6a2ff42f42309330ec3034318631d73129327e32d7322c33d73286323432e33191314531f230a73061301c30af2f252f9d2e282ebc2d522de92c822c2b2cc52b372bad2a292ad8298e294629ff28d728bf28a82890289028a828bf28d728ff2846298e29d829292aad2a372bc52b2b2c822ce92c522dbc2d282e9d2e252faf2f1c306130a730f23045319131e33134328632d7322c330b33b63265321332c23170313431e03094304d300630802ff22e662eec2d7d2d0d2d9e2c302ca32b032b652ac7292d29cb286f28152878271527dc26a3266b266b26a326dc261527782715286f28cb282d29c729652a032ba32b302c9e2c0d2d7d2dec2d662ef22e802f06304d309430e03034318e31c23113326532b6320b33b6325c320832b63165311331c23080302d30c72f392fac2e202e932d0b2d9b2c2c2c7c2bbc2ad02934299b280628eb2621268425f22472240824b2235323f422f4225323b22308247224f22484252126eb2606289b283429d029bc2a7c2b2c2c9b2c0b2d932d202eac2e392fc72f2d308030da3013316731b63108325c32b63265320832ae3159310831b63065301330982ff62e662eda2d4d2dc12c362c762b9b2ac229ed282028fa26ea25f3240a248d22722157207a1ed41c171cb31a38193819b31a171cd41c7a1e572072218d220a24f324ea25fa262028ed28c2299b2a762b362cc12c4d2dda2d662ef62e982f13306530b73008315931ae31083265321332b6315931ff30ab30593008306d2fca2e312e942d082d7c2ce32bcf2ac029e7281728a426bb2517245c228a20711dfd17c48ad798a19c789e359ff39f58a058a0f39f359f789ea19cd798c48afd17711d8a205c221724bb25a4261728e728c029cf2ae32b7c2c082d942d312ee62e6d2f08305930ab30ff305931b6311332c23165310831ab305030f92f562fb32e102e6d2dcd2c372c5a2b472a3929322899263425e723ce24f11dff179096489d76a0a8a1c3a2dea38ea599a5a7a5b7a5b7a5a7a599a58ea5dea3c3a2a8a176a0489d9096ff17f11dce24e7233425992632283929472a5a2b372ccd2c802d102eb32e562ff92f5030ab3008316531c23170311331b6305930f92f432f9c2ef92d562db32c102cda2ac029b5286a27932503245421ae1f20115e9c5ca02ea200a4afa59ba524a658a68ca69ea6afa6c0a6c0a6afa69ea68ca658a624a69ba5afa500a42ea25ca05e9c2011a61d5421f62393256a27b528c029da2a1e2cb32c562df92d9c2e432ff92f5930b630133170313431da3065300830562f9c2ee52d3f2d9c2cf22bac2a6a2935287826c524d0262b220310819cd4a043a3aba5c5a555a6aba6f5a629a75da790a7a7a7b8a7c9a7c9a7b8a7a7a790a75da729a7f5a6aba655a6c5a5aba543a3c2a0819c03102b22d026c524782635288829ac2af22b9c2c3f2de52d9c2e562f08306530c2303431e030803013306d2fb32ef92d3f2d872cc42b7e2a3d290628cf250024d620c41ad19999a055a3b0a525a69ba6fca651a7a6a7f9a716a830a83ba82da824a81ca81ca824a82da83ba830a816a8f9a7a6a751a7fca69ba625a6b0a555a399a0d199c41ad620fb231f2606283d297e2ac42b872c3f2df92db32e6d2f13308030e03094302d30982fe62e102e562d9c2cc42b542a1129b92786254823191f240c089e29a29aa529a69ea614a789a7f7a726a834a809a8d9a7a5a771a752a740a72fa72fa740a752a771a7a5a7d9a709a834a826a8f7a789a714a79ea629a69aa529a2089e240c191f48238625b9271129542ac42b9c2c562d102eca2e982f2d3094304d30c72ff62e312e6d2db32cf22b7e2a112969273f25c2220d1ea79570a0b9a36fa574a608a78ca701a83ba80fa8c3a76da718a719a7a0a66da649a637a626a626a637a649a66da6a0a619a718a76da7c3a70fa83ba801a88ca708a774a66fa5b9a370a0a7950d1ec2223f25692711297e2af22bb32c6d2d312ef62ec72f4d300630392f662e942dcd2c1e2cac2a3d29b9273f253e22011dec98f6a089a52aa6bda651a7e4a73ca80da8a5a730a7c7a672a61ca6e2a59ea527a471a312a3b3a2b3a212a371a327a49ea5e2a51ca672a6c7a630a7a5a70da83ca8e4a751a7bda62aa689a5f6a0ec98011d3e223f25b9273d29ac2a102ccd2c942d662e392f0630802fac2eda2d082d372cda2a6a2906288625c222011d049b7da197a542a6f1a69aa717a824a8b6a72ca7b7a641a6cca587a5c9a2f8a0b69f809d2b9bb09935983598b0992b9b809db69ff8a0c9a287a5cca541a6b7a62ca7b6a724a817a89aa7f1a642a697a57da1049b011dc222862506286a29da2a372c082dda2dac2e802ff22e202e4d2d7c2c5a2bc02935281f2648230d1eec987da1aca55ba60aa7b9a734a800a86ca7d9a645a6c9a5dba35aa17d9eb2995712ca1a9a1db71f3a20992099203a20b71f9a1dca1a5712b2997d9e5aa1dba3c9a545a6d9a66ca700a834a8b9a70aa75ba6aca57da1ec980d1e4823cf253528c0295a2b7c2c482d202ef22e662e932dc12ce32b472ab5287826fb23191fa795f6a097a55ba622a7d2a740a8dba72ca790a6baa528a448a18f9d66903c1ce01fc22140232d24bb24f02420252025f024bb242d244023c221e01f3c1c66908f9d48a128a4baa590a62ca7dba740a8d2a722a75ba697a5f6a0a795191f00247826b528472ae22bc12c932d662eec2d0b2d362ccf2a39296a27c524d620240c70a089a542a60aa7d2a739a8c2a713a764a6b5a5c0a2369f5a93991ccd204e23a624942589263327e3271b28392839281b28e327332789269425a6244f23cd20991c5a93369fc0a2b5a564a613a7c2a739a8d2a70aa742a689a570a0250cd620c5246a273929cf2a362c0b2dec2d7d2d9b2c762bc029322893256622c41a089eb9a32aa6f1a6b9a740a8c2a7fba64ba69ea5aea1169c691873206023f1244a26ab27692801296429c229342a172a172a342ac229642906296928ab274a26f12460233f206918169caea19ea54ba6fba6c2a740a8b9a7f1a62aa6b9a3089ec41a662293253228c029762b9b2c7d2d0d2d2c2c9b2ae7289926f6232b22d19929a26fa5bda69aa734a8dba713a74ba68ea528a1b3999e1ccf217a242126da27bb288f29302acf2a452ba62b062c012c012c062ca62b452bdd2a302a8f29bb28da2721267a24cf219e1cb39928a18ea54ba613a7dba734a89aa7bda66fa529a2d1992b2203249926e7289b2a2c2c0d2d9e2c7c2bc229172834255421031099a09aa574a651a717a800a82ca764a69ea528a13797aa1d902226250d2784288e296d2a472b022c512c972cc82cf92cf82cf82cf92cc82c972c5a2c022c472b6d2a8e2984280d2726259022aa1d379728a19ea564a62ca700a817a851a774a69aa599a00310542104261728c2297c2b9e2c302cbc2aed28a426e723a61d819c55a32ba608a7e4a724a86ca790a6b5a5aea1b399aa1d17236c259a270029142a262b142c812cec2c3b2d8e2dc02df12def2def2df12dc02d8e2d3b2dec2c812c142c262b142a00299a276c251723aa1db399aea1b5a590a66ca724a8e4a708a72ba655a3819cae1fe525a426ed28bc2a302ca32bd0292028bb2566212011c2a0b0a59ea68ca73ca8b6a7d9a6baa5c0a2169c9e1c90226c25ee272d296d2aae2b602cea2c5f2dcc2d262e862eb82ee92ee62ee62ee92eb82e862e262ecc2d5f2dea2c602cae2b6d2a2d29ee276c2590229e1c169cc0a2baa5d9a6b6a73ca88ca79ea6b0a5c2a020116621bb252028d029a32b032b3429fa261724f11d5e9c43a325a614a701a80da82ca745a628a4369f6918cf2126259a272d299b2ae12b932c2e2db72d3d2eaa2e102f5f2fb12fe32fdd2fdd2fe32fb12f5f2f102faa2e3d2eb72d2e2d932ce12b9b2a2d299a272625cf216918369f28a445a62ca70da801a814a725a643a35e9cf11d1724fa263429032b652a9b28ea255c22ff175ca0aba59ba689a73ba8a5a7b7a6c9a548a15a933f207a240d2700296d2ae12baa2c4d2df02d852e0e2f882ffa2f243055306e30693069306e3055302430fa2f882f0e2f852ef02d4d2daa2ce12b6d2a00290d277a243f205a9348a1c9a5b7a6a5a73ba889a79ba6aba55ca0ff175c22ea259b28652ac7290628f3248a2090962ea200a6fca6f7a70fa830a741a6dba38f9d991c602321268428142ab32b932c4d2d072eaa2e532fdc2f323072309a30d230eb30e530e530eb30d2309a3072303230dc2f532faa2e072e4d2d932cb32b142a842821266023991c8f9ddba341a630a70fa8f7a7fca600a62ea290968a20f3240628c7292d29eb260a24711d489d00a455a651a726a8c3a7c7a638a55aa16690cd20f124da278e29262b602c2e2df02daa2e642f033055309930de300f313631683160316131683136310f31e730993055300430642faa2ef02d2e2d602c262b8e29da27f124cd2066905aa138a5c7a6c3a726a851a755a600a4489d711d0a24eb262d29cb2821268d22fd1776a0afa5aba6a6a734a86da772a687a57d9e3c1c4f234a26bb286d2a142cea2cb72d852e532f04306030b230003145318431ac31e531dc31dc31e531ac31843145310031b23060300330532f852eb72dea2c142c6d2abb284a264e233c1c7d9e87a572a66da734a8a6a7aba6afa576a0fd178d222126cb286f2884257221c48aa8a1f1a5f5a6f9a709a818a713a6c9a2b299e01fa624ab278f29472b812c5f2d3d2e0e2fdc2f5530b2300f316031ac31f031213262325732583262322132f031ac3160311031b2305530dc2f0e2f3d2e5f2d812c472b8f29ab27a624e01fb299c9a213a618a709a8f9a7f5a6f1a5a8a1c48a722184256f281528f2245720d798c3a224a629a716a8d9a719a7e2a5f8a05712c22194256928302a022cec2ccc2daa2e882f3230993000316031bd310f3257329632bd32d232d432bd32963257320f32bd316031003199303230882faa2ecc2dec2c022c302a69289425c2215712f8a0e2a519a7d9a716a829a724a6c3a2d7985720f2241528782772247a1ea19cdea358a65da730a8a5a7a0a69ea5b69fca1a402389260629dd2a5a2c3b2d262e102ffa2f7230de304531ac310f326c32be32033333334e334f3333330333be326c320f32ac314531de307230fa2f102f262e3b2d512ccf2a012989264023ca1ab69f9ea5a0a6a5a730a85da758a6dea3a19c7a1e6524782715270824d41c789e8ea58ca690a73ba871a76da627a4809d9a1d2d2433276429452b972c8e2d862e5f2f24309a300f318431f0315732bd321a336933ae33c933c933ae3369331a33bd325732f03184310f319a3024305f2f862e8e2d972c452b642933272d249a1d809d27a46da671a73ba890a78ca68ea5c59fd41c08241527dc26b223171c359f99a59ea6a7a72da852a749a671a32b9bd81fbb24e327c229a62bc82cc02db82eb12f5530d2303631ac312132963203336933c9330a34223422340a34d0336933033396322132ac313631d2305530b12fb82ec02dc82ca62bc229e327bb24d81f2b9b71a349a652a72da8a7a79ea699a5359f171cb223dc26a3265323b31af39fa7a5afa6b8a724a840a737a612a3b0993a20f0241b28342a062cf92cf12de92ee32f6e30eb306831e5316232bd323333ae330a343e34613461343e340a34ae333333bd326232e5316831eb306e30e32fe92ef12df92c062c342a1b28f0243a20b09912a337a640a724a8b8a7afa6a7a5f39fb31a5323a3266b26f422381958a0b7a5c0a6c9a71ca82fa726a6b3a23598992020253928172a012cf82cef2de62edd2f6930e5306131dc315832d4324f33c933223461349434943461342234c9334e33d2325732dc316031e5306930dd2fe62eef2df82c012c172a3928202599203598b3a226a62fa71ca8c9a7c0a6b7a558a03819f4226b266b26f422381958a0b7a5c0a6c9a71ca82fa726a6b3a23598992020253928172a012cf82cef2de62edd2f6930e5306031dc315732d2324e33c933223461349434943461342234c9334f33d4325832dc316131e5306930dd2fe62eef2df82c012c172a3928202599203598b3a226a62fa71ca8c9a7c0a6b7a558a03819f4226b26a3265323b31af39fa7a5afa6b8a724a840a737a612a3b0993a20f0241b28342a062cf92cf12de92ee32f6e30eb306831e5316232bd323333ae330a343e34613461343e340a34ae333333bd326232e5316831eb306e30e32fe92ef12df92c062c342a1b28f0243a20b09912a337a640a724a8b8a7afa6a7a5f39fb31a5323a326dc26b223171c359f99a59ea6a7a72da852a749a671a32b9bb71fbb24e327c229a62bc82cc02db82eb12f5530d2303631ac312132963203336933d0330a34223422340a34d0336933033396322132ac313631d2305530b12fb82ec02dc82ca62bc229e327bb24d81f2b9b71a349a652a72da8a7a79ea699a5359f171cb223dc2615270824d41c789e8ea58ca690a73ba871a76da627a4809d9a1d2d2433276429452b972c8e2d862e5f2f24309a300f318431f0315732be321a336933ae33c933c933ae3369331a33be325732f03184310f319a3024305f2f862e8e2d972c452b642933272d249a1d809d27a46da671a73ba890a78ca68ea5789ed41c08241527782772247a1ea19cdea358a65da730a8a5a7a0a69ea5b69fca1a402389260129cf2a512c3b2d262e102ffa2f7230e7304531ac310f326c32bd32033333334f334e3333330333be326c320f32ac314531e7307230fa2f102f262e3b2d5a2cdd2a062989264023ca1ab69f9ea5a0a6a5a730a85da758a6dea3a19c7a1e652478271528f2245720d798c3a224a629a716a8d9a719a7e2a5f8a05712c22194256928302a022cec2ccc2daa2e882f3230993000316031bd310f3257329632bd32d432d232bd32963257320f32bd316031003199303230882faa2ecc2dec2c022c302a69289425c2215712f8a0e2a519a7d9a716a829a724a6c3a2d7985720f22415286f2884257221c48aa8a19ba5f5a6f9a709a818a71ca6c9a2b299e01fa624ab278f29472b812c5f2d3d2e0e2fdc2f5530b2300f316031ac31f031213262325832573247322132f031ac3160311031b2305530dc2f0e2f3d2e5f2d812c472b8f29ab27a624e01fb299c9a21ca618a709a8f9a7f5a69ba5a8a1c48a722184256f28cb2821268d22fd1776a0afa5aba6a6a734a86da772a687a57d9e3c1c4f234a26bb286d2a142cea2cb72d852e532f03306030b230003145318431ac31e531dc31dc31e531ac31843145310031b23060300430532f852eb72dea2c142c6d2abb284a264f233c1c7d9e87a572a66da734a8a6a7aba6afa576a0fd178d222126cb282d29eb260a24711d489d00a455a651a726a8c3a7c7a6cca55aa16690cd20f124da278e29262b602c2e2dfc2daa2e642f043055309930de300f313631683161316031683136310f31e730993055300330642faa2ef02d2e2d602c262b8e29da27f124cd2066905aa1cca5c7a6c3a726a851a755a600a4489d711d0a24eb262d29c7290628f3248a2090962ea2c5a5fca6f7a70fa830a741a6dba38f9d991c602321268428142aae2b932c4d2d072eaa2e532fdc2f323072309a30d230eb30e530e530eb30d2309a3072303230dc2f532faa2e072e4d2d932cb32b142a842821266023991c8f9ddba341a630a70fa8f7a7fca6c5a52ea290968a20f3240628c729652a9b28ea255c22ff175ca0aba59ba689a73ba8a5a7b7a6c9a548a15a9373207a240d2700296d2ae12baa2c4d2df02d852e0e2f882ffa2f243055306e30693069306e3055302430fa2f882f0e2f852ef02d4d2daa2ce12b6d2a00290d277a243f205a9348a1c9a5b7a6a5a73ba889a79ba6aba55ca0ff175c22ea259b28652a032b3429fa261724f11d5e9c43a325a614a701a80da82ca745a628a4369f6918cf2126259a272d299b2ae12b932c2e2db72d3d2eaa2e102f5f2fb12fe32fdd2fdd2fe32fb12f5f2f102faa2e3d2eb72d2e2d932ce12b9b2a2d299a272625cf216918369f28a445a62ca70da801a814a725a643a35e9cf11d1724fa263429032ba32bd0292028bb25ce242011d4a0b0a59ea68ca73ca8b6a7d9a6baa5c0a2169c9e1c90226c25ee272d296d2ab32b602cea2c5f2dcc2d262e862eb82ee92ee62ee62ee92eb82e862e262ecc2d5f2dea2c602cae2b6d2a2d29ee276c2590229e1c169cc0a2baa5d9a6b6a73ca88ca79ea6b0a5c2a02011ce24bb252028d029a32b302cbc2aed28a426e723ae1f819c55a329a608a7e4a724a86ca790a6b5a5aea1b399aa1d17236c259a270029142a262b142c812cec2c3b2d8e2dc02df12def2def2df12dc02d8e2d3b2dec2c812c142c262b142a00299a276c251723aa1db399aea1b5a590a66ca724a8e4a708a729a655a3819ca61de723a426ed28bc2a302c9e2c7c2bc229172834255421031099a09aa574a651a717a800a82ca764a69ea528a13797aa1d902226250d2784288e296d2a472b022c5a2c972cc82cf92cf82cf82cf92cc82c972c512c022c472b6d2a8e2984280d2726259022aa1d379728a19ea564a62ca700a817a851a774a69aa599a00310542134251728c2297c2b9e2c0d2d2c2c9b2ae7289926f6232b22d19929a26fa5bda69aa734a8dba713a74ba68ea528a1b3999e1ccf217a242126da27bb288f29302add2a452ba62b062c012c012c062ca62b452bcf2a302a8f29bb28da2721267a24cf219e1cb39928a18ea54ba613a7dba734a89aa7bda66fa529a2d1992b2203249926e7289b2a2c2c0d2d7d2d9b2c762bc02932289325d026c41a089eb9a32aa6f1a6b9a740a8c2a7fba64ba69ea5aea1169c69183f206023f1244a26ab27692806296429c229342a172a172a342ac229642901296928ab274a26f12460233f206918169caea19ea54ba6fba6c2a740a8b9a7f1a62aa6b9a3089ec41ad026cb263228c029762b9b2c7d2dec2d0b2d362ccf2a39296a27c524d620240c70a089a542a60aa7d2a739a8c2a713a764a6b5a5c0a2369f5a93991ccd204e23a624942589263327e3271b28392839281b28e327332789269425a6244f23cd20991c5a93369fc0a2b5a564a613a7c2a739a8d2a70aa742a689a570a0250cd620c5246a273929cf2a362c0b2dec2d662e932dc12ce32b472ab52878260024191fa795f6a097a55ba622a7d2a740a8dba72ca790a6baa528a448a18f9d66903c1ce01fc22140232d24bb24f02420252025f024bb242d244023c221e01f3c1c66908f9d48a128a4baa590a62ca7dba740a8d2a722a75ba697a5f6a0a795191ffb237826b528472ae32bc12c932d662ef22e202e4d2d7c2c5a2bc02935281f2648230d1eec987da1aca55ba60aa7b9a734a800a86ca7d9a645a6c9a5dba35aa17d9eb2995712ca1a9a1dd81f3a20992099203a20d81f9a1dca1a5712b2997d9e5aa1dba3c9a545a6d9a66ca700a834a8b9a70aa75ba6aca57da1ec980d1e48231f263528c0295a2b7c2c4d2d202ef22e802fac2eda2d082d372cda2a882906288625c222011d049b7da197a542a6f1a69aa717a824a8b6a72ca7b7a641a638a587a5c9a2f8a0b69f809d2b9bb09935983598b0992b9b809db69ff8a0c9a287a538a541a6b7a62ca7b6a724a817a89aa7f1a642a697a57da1049b011dc222862506288829da2a372c082dda2dac2e802f0630392f662e942dcd2c1e2cac2a3d29b9273f253e22011dec98f6a089a52aa6bda651a7e4a73ca80da8a5a730a7c7a672a613a6e2a59ea527a471a312a3b3a2b3a212a371a327a49ea5e2a513a672a6c7a630a7a5a70da83ca8e4a751a7bda62aa689a5f6a0ec98011d3e223f25b9273d29ac2a1e2ccd2c942d662e392f06304d30c72ff62e312e802db32cf22b7e2a112969273f25c2220d1ea79570a0b9a36fa574a608a78ca701a83ba80fa8c3a76da718a719a7a0a66da649a637a626a626a637a649a66da6a0a619a718a76da7c3a70fa83ba801a88ca708a774a66fa5b9a370a0a7950d1ec2223f25692711297e2af22bb32c802d312ef62ec72f4d3094302d30982fe62e102e562d9c2cc42b542a1129b92786254823191f240c089e29a29aa52ba69ea614a789a7f7a726a834a809a8d9a7a5a771a752a740a72fa72fa740a752a771a7a5a7d9a709a834a826a8f7a789a714a79ea62ba69aa529a2089e250c191f48238625b9271129542ac42b9c2c562d102eca2e982f2d309430e030803013306d2fb32ef92d3f2d872cc42b7e2a3d290628cf25fb23d620c41ad19999a055a3b0a525a69ba6fca651a7a6a7f9a716a830a83ba82da824a81ca81ca824a82da83ba830a816a8f9a7a6a751a7fca69ba625a6b0a555a399a0d199c41ad6200024cf2506283d297e2ac42b872c3f2df92db32e6d2f26308030e0303431da3065300830562f9c2ee52d3f2d9c2cf22bac2a6a2935287826c52466222b220310819cc2a043a3aba500a655a6aba6f5a629a75da790a7a7a7b8a7c9a7c9a7b8a7a7a790a75da729a7f5a6aba655a600a6aba543a3c2a0819c03102b226622c524782635286a29ac2af22b9c2c3f2de52d9c2e562f08306530da3034318e311331b6305930f92f432f9c2ef92d562db32c102cda2ac029b5286a27cb2603245421a61d20115e9c5ca02ea200a4afa5f1a524a658a68ca69ea6afa6c0a6c0a6afa69ea68ca658a624a6f1a5afa500a42ea25ca05e9c2011ae1f54210324cb266a27b528c029da2a1e2cb32c562df92d9c2e432ff92f5930b73013318e31c23165310831ab305030f92f562fb32e102e6d2dcd2c372c5a2b472a3929322899263425e7236621f11dff179096489d76a0a8a1c3a2dea38ea599a5a7a5b7a5b7a5a7a599a58ea5dea3c3a2a8a176a0489d9096ff17f11d6621e5250426992632283929472a5a2b372ccd2c6d2d102eb32e562ff92f5030ab3008316731c2311332b6315931ff30ab30593008306d2fca2e312e942d082d7c2ce22bcf2ac029e7281728a426bb2517245c228a20711dfd17c48ad798a19c789e359ff39f58a058a0f39f359f789ea19cd798c48afd17711d8a205c221724bb25a4261728e728c029cf2ae32b7c2c082d942d312ee62e6d2f08305930ab30ff305931b631133265320832ae3159310831b63065301330982ff62e662eda2d482dc12c362c762b9b2ac229ed282028fa26ea25f3240a248d22722157207a1ed41c171cb31a38193819b31a171cd41c7a1e572072218d220a24f324ea25fa262028ed28c2299b2a762b362cc12c482dda2d662ef62e982f13306530b63008315931ae3108326532b6325c320832b63165311331c23080302d30c72f392fac2e202e932d0b2d9b2c2c2c7c2bbc2ad02934299b280628eb2621268425f22465240824b2235323f422f4225323b22308246524f22484252126eb2606289b283429d029bc2a7c2b2c2c9b2c0b2d932d202eac2e392fc72f2d308030da3013316531b63108325c32b6320b33b63265321332c23170313431e03094304d300630802ff22e662eec2d7d2d0d2d9e2c302ca32b032b652ac7292d29cb286f28152878271527dc26a3266b266b26a326dc261527782715286f28cb282d29c729652a032ba32b302c9e2c0d2d7d2dec2d662ef22e802f06304d309430e03034317031c23113326532b6320b33ec3296324432f231a0314f31fd30ad308e304730b42f2a2fe42e562edb2d342df92c882c172c6d2bc82a242a7f29dc283e28bb27fa2639261f268a254a25092509254a258a251f263926fa26bb273e28dc287f29242ac82a6d2b172c882cf92c342ddb2d562ee42e2a2fb42f47308e30ad30fd304f31a031f23144329632ec3296323c32e73195314431f230a0304f302730ba2f2b2f5d2e0f2e812df72c842c132c452b7e2a8929e4280c283727ee25b224e2236022de205020bf1ebc1db91cb91cbc1dbf1e5020de206022e223b224ee2537270c28e42889297e2a452b132c842cf72c812d0f2e5d2e2b2fba2f27304f30a030f23044319531e7313c3296324432e7318c313831e73095304330e42f8a2fe72e562ec82d062dac2c1e2c3e2b5c2a7a299728702700266f24e1225620401be210cf98d29cac9f359ff39f58a058a0f39f359fac9fd29ccf98e210401b5620e1226f240026702797287a295c2a3e2b1e2cac2c072dc82d562ee72e8a2fe42f43309530e73038318c31e7314432f23195313831de308a303830ce2f2a2f872e212e822df32c652caf2b922a782991285e279b257d247920351a7497d59ea6a0c1a1dca2f7a3e1a5a0a4d0a4ffa4ffa4d0a4a0a4e1a5f7a3dca2c1a1a6a0d59e7497351a79207d249b255e2791287829922aaf2b652cf32c822d212ed72e2b2fce2f38308a30de3038319531f231a0314431e7308a302f30b72f142f712ecd2d2a2db72c1f2c212bc229b0289a278e2596231620a20f839da6a078a225a40ea5a7a535a6c2a650a7c7a8cba8d0a8d0a8cba8c7a850a7c2a635a6a7a50ea525a478a2a6a0839da20f162096238e259a27b028c229212b1f2cb72c6e2dcd2d732e142fb72f2f308a30e7304431a0314f31f23095303830b72f002f5a2eb72d142d702c9b2b9e2a78295c28292649242b20970ca69d54a1d5a301a5eaa5d3a6bca737a87ea8c4a834a93da946a94ea94ea946a93da934a9c4a87ea837a8bca7d3a6eaa501a5d5a354a1a69d970c2b20492429265c2878299e2a052c702c142db72d5a2e002fb72f38309530f2304f31fd30a0304330ce2f142f5a2ea32dfd2c5a2c6e2b272ae1289f276625e6216b1acb9c66a1e7a334a574a6b0a74ca8c1a844a969a983a99da9b6a9c2a9caa9d3a9d3a9cba9c2a9b6a99da983a969a944a9c1a84ca8b0a774a634a5e7a366a1cb9c6b1ae62166259f273d29272a6e2b5a2cfd2ca32d5a2e142fce2f4330a030fd30ad304f30e42f2b2f732eb72dfd2c452c402bfa29b428db264f2433203894ea9f1aa320a57da6bea77fa83ca96ca997a9c1a9eba905aa1faa29aa1caa13aa0aaa0aaa13aa1caa29aa1faa05aaeba9c1a997a96ca93ca97fa8bea77da620a51aa3ea9f38943320fa24db26b428fa29402b452cfd2cb72d712e2a2fe42f4f30ad308e3027308a2fd72ecd2d142d5a2c402bcf2986288026e8239f1d339c85a155a4e8a57aa783a83da978a9b3a9eaa914aa23aaf8a907aac3a9a7a997a98ea986a986a98ea997a9a7a9c1a907aaf8a923aa14aaeaa9b3a978a93da983a87aa7e8a555a485a1339c9f1de82380268628cf29402b5a2c142dcd2d872e8a2f27308e304730ba2fe72e212e2a2d702c6e2bfa29862827263123311c3f9d5ba20ba5b0a621a828a972a9dfa9fca92aaafda9d0a9a5a97aa96da93ea9e0a8afa897a880a880a897a8afa8e0a83ea96da97aa9a5a9d0a9fda92aaaefa9b4a972a928a921a8b0a60ba55ba23f9d311c312327268628fa296e2b702c2a2d212ee72eba2f4730b42f2b2f562e822db72c052c272ab4288026312389194b9ee1a24ea52ca785a84da997a9e0a92aaafba9c2a99aa952a927a9fca8dea887a7faa68ca65ca62da62da65ca68ca6faa687a7dea8fca827a952a986a9c1a9fba92aaae0a997a94da985a82ca74ea5e1a24b9e891931238026b428272a9b2bb72c822d562e2b2fb42f2a2f5d2ec82df32c1f2c9e2ae128db26e823311c4b9e67a391a56fa70fa967a9bba905aa13aac9a984a94aa9a5a8d7a820a737a650a5c0a433a471a312a3b3a2b3a212a371a333a4c0a450a537a620a7d7a8a5a84aa984a9c9a913aa05aabba967a90fa96fa791a567a34b9e311ce823db26e1289e2a1f2cf32cc82d5d2e2a2fe42e0f2e072d652c212b78299f27fa249f1d3f9de1a291a5b2a71ca973a9cba922aaeea9a4a95ba911a900a8c1a680a572a413a341a1e79f9c9e2b9b7099d596d59670992b9b9c9ee79f41a113a372a480a5c1a600a811a95ba9a4a9eea922aacba973a91ca9b2a791a5e1a23f9d9f1d4f249f277829212b652c062d0f2ee42e562e812dac2caf2bc2295c2866253320339c5ba24ea56fa71ca97fa9fea92faadca984a936a947a8fba677a537a4eca1109fd99ad415881db720c8215a22db22db225a22c821b720881dd415d99a109feca137a477a5fba647a836a984a9dca92faad7a97fa91ca96fa74ea55ba2339c332066255c28c2295e2bac2c812d562edb2df72c1e2c922ab0282926e621389485a10ba52ca70fa973a9d7a927aacfa978a920a9cba733a6b2a41ca2b39e9794b01d902106242c25422609270827482748270827ae2642262c2506249021b01d9794b39e1ca2a0a433a6cba720a978a9ffa927aad7a973a90fa92ca70ba585a13894e6212926b028922a1e2cf72cdb2d342d842c3e2b78299a2749246b1aea9f55a4b0a603a967a9d1a92faacfa96ca914a988a7aaa5b1a38ca05399e01d5b22e3247026ae27762816297a2971299229922971293c2916297628ae277026e3245b22e01d53998ca0b1a3aaa588a714a96ca9cfa92faacba967a903a9b0a655a4ea9f6b1a03249a2778293e2b842c342df92c132c5c2a91288e252b20cb9c1aa3e8a521a84da9c0a922aadca978a914a947a767a513a3af9e67161821b124a4262d280829ab294a2a0c2b212b5f2b7f2b7f2b5f2b212b0c2b4a2aab290c292d28a426b12418216716af9e13a367a547a714a978a9f8a922aac0a94da921a8e8a51aa3cb9c2b208e2591285c2a132cf92c882c452b7a295e279623970c66a120a57aa728a997a905aaeea984a920a988a767a58fa2a29d531bed22c225e8270629e829e52a802b0f2c812cb32ca62cb62cb62ca62c832c812c0f2c802be52ae8290629e827c225ed22531ba29d8fa267a588a720a984a9eea905aa97a928a97aa720a566a1970c96235e277a29452b882c172c7e2a97289b251620a69de7a37da604a972a9e0a913aaa4a936a9cba7aaa513a3a29d171da4235e2675288f29a22aa42b3f2caa2cf92c7c2d752d9d2dad2dad2d9d2d752d7c2df92caa2c642ca42ba22a8f297c285e26a423171da29d13a3aaa5cba736a9a4a913aae0a972a904a97da6e7a3a69d16209b2597287e2a172c6d2b892970277d24a20f54a134a5bea73da9b4a92aaac9a95ba947a833a6b1a3af9e531ba423b926a328e9292a2b1e2ca82c1d2d942de32d332ea92e932ea42ea42e932e682e332ee32d942d1d2da82c1e2c2a2be929a328b926a423531baf9eb1a333a647a85ba9c9a92aaadfa93da9bea734a554a1a20f7d24702789296d2bc82ae42800267920839dd5a374a601a978a9efa9fba984a9aba8fba6a0a48ca06716ed225e26a328162a5d2b512cec2c752dff2d802ece2e1d2f5e2f8a2f9a2f9a2f8a2f5a2f1d2fce2e802eff2d752dec2c512c5d2b162aa3285e26ed2267168ca0a0a4fba6aba884a9fba9fca978a901a974a6d5a3839d79200026e428c82a242a0c286f24351aa6a001a5b0a73ca9b3a92aaac1a94aa900a877a51ca253991821c2257528e9295d2b682c0b2dae2d432ecc2e462fb82f03304f303e30483048303e3026300330b82f462fcc2e432eae2d0d2d682c5d2be9297528c225182153991ca277a500a84aa9c2a92aaab3a93ca9b0a701a5a6a0351a6f240c28242a7f293727e122749778a2eaa5eea86ca9eaa9fda986a9a5a8c1a637a4b39ee01db124e8278f292a2b512c0d2dc52d682e0b2f9a2f113051307930a030b830c430c430b830a0307930513011309a2f0b2f682ec52d0b2d512c2a2b8f29e827b124e01db39e37a4c1a6a5a89aa9fda9eaa96ca9eea8eaa578a27497e12237277f29dc28ee255620d59e25a4d3a6c1a897a914aad0a952a9d7a880a5eca197945b22a4260629a22a1e2cec2cae2d682e222fc52f34307830bd30ee30153133313f313f3131311531ee30bd3078303430c52f252f682eae2dec2c1e2ca22a0629a4265b229794eca180a506a852a9d0a914aa97a9c1a8d3a625a4d59e5620ee25dc283e28b224401ba6a00ea5bca744a9c1a923aaa5a927a920a772a4109fb01de3242d28e829a42ba82c752d432e0b2fc52f3f309130df30243168318a31af31bb31bb31aa318a3168312431df3091303f30c52f0b2f432e752da82ca42be8292d28e324b01d109f72a420a727a9a5a923aac1a944a9bca70ea5a6a0401bb2243e28bb27e223e210c1a1a7a5e7a869a9eba9f8a97aa9fca837a613a3d99a902170260829c32a3f2c1d2dff2dcc2e9a2f34309130ee303f318b31cf3100322b323632363224320032cf318b313f31ee30913034309a2fcc2eff2d1d2d3f2cc32a082970269021d99a13a337a673a87aa9f8a9eba969a9e7a8a7a5c1a1e210e223bb27fa266022cf98dca235a67ea883a905aa07aa6da9dea850a541a1d4150624ae27ab29802baa2c942d802e462f11307830df303f319c31f13136327b329d32b232b2329d327b323632f1319c313f31df3078301130462f802e942daa2c802bab29ae270624d41541a150a5dea86da907aa05aa83a97ea835a6dca2cf986022fa263926de20d29cf7a3c2a6c4a89da91faac1a93ea987a7c0a4e79f881d2c2576284a2a0f2cf92ce32dce2eb82f5130bd3024318b31f1314b329e32e33229332f332f332933e3329e324b32f1318b312431bd305130b82fce2ee32df92c0f2c4a2a76282c25881de79fc0a487a73ea9c3a91faa9da9c4a8c2a6f7a3d29cde2039261f265020ac9fe1a550a734a9b6a929aaa7a9e0a8faa633a49c9eb720422616290c2b812c7c2d332e1d2f03307930ee306831cf3136329e3206334b339133ac33ac3391334b3306339e323632cf316831ee30793003301d2f332e7c2d812c0c2b16294226b7209c9e33a4faa6e0a8a7a929aab6a934a950a7e1a5ac9f50201f268a25bf1e359fa0a4c7a83da9c2a91caa97a9afa88ca671a32b9b422209277a29702bb32cae2da92e5a2f4f30a03015318a3100327b32e3324b33b333f9331f341f34f933b3334b33e3327b3200328a311531a0304f305e2fa92eae2db32c702b7a29092742222b9b71a38ca6afa897a91caac2a93da9c7a8a0a4359fbf1e8a254a25bc1df39fd0a4cba846a9cba913aa8ea997a85ca612a370995a22082771295f2ba62c9d2d932e8a2f3e30b8303131aa3124329d3229339133f9333134543454343134f933913329339d322b32af313331b8303e308a2f932e9d2da62c5f2b712908275a22709912a35ca697a88ea913aacaa946a9cba8d0a4f39fbc1d4a250925b91c58a0ffa4d0a84ea9d3a90aaa86a980a82da6b3a2d596db22482792297f2bb62cad2da42e9a2f4830c4303f31bb313632b2322f33ac331f3454348834883454341f34ac332f33b2323632bb313f31c43048309a2fa42ead2db62c7f2b92294827db22d596b3a22da680a886a90aaad3a94ea9d0a8ffa458a0b91c09250925b91c58a0ffa4d0a84ea9d3a90aaa86a980a82da6b3a2d596db22482792297f2bb62cad2da42e9a2f4830c4303f31bb313632b2322f33ac331f3454348834883454341f34ac332f33b2323632bb313f31c43048309a2fa42ead2db62c7f2b92294827db22d596b3a22da680a886a90aaad3a94ea9d0a8ffa458a0b91c09254a25bc1df39fd0a4cba846a9caa913aa8ea997a85ca612a370995a22082771295f2ba62c9d2d932e8a2f3e30b8303331af312b329d3229339133f9333134543454343134f933913329339d322432aa313131b8303e308a2f932e9d2da62c5f2b712908275a22709912a35ca697a88ea913aacba946a9cba8d0a4f39fbc1d4a258a25bf1e359fa0a4c7a83da9c2a91caa97a9afa88ca671a32b9bc821ae263c29212b832c752d682e5e2f2a30a03015318a3100327b32e3324b33b333f93315341534f933b3334b33e3327b3200328a311531a03026305a2f682e752d832c212b3c29ae26c8212b9b71a38ca6afa897a91caac2a93da9c7a8a0a4359fbf1e8a251f265020ac9fe1a550a734a9b6a929aaa7a9e0a8faa633a49c9eb720422616290c2b812c7c2d332e1d2f03307930ee306831cf3136329e3206334b339133ac33ac3391334b3306339e323632cf316831ee30793003301d2f332e7c2d812c0c2b16294226b7209c9e33a4faa6e0a8a7a929aab6a934a950a7e1a5ac9f50201f263926de20d29cf7a3c2a6c4a89da91faac3a93ea987a7c0a4e79f881d2c2576284a2a0f2cf92ce32dce2eb82f5130bd3024318b31f1314b329e32e33229332f332f332933e3329e324b32f1318b312431bd305130b82fce2ee32df92c0f2c4a2a76282c25881de79fc0a487a73ea9c1a91faa9da9c4a8c2a6f7a3d29cde203926fa266022cf98dca235a67ea883a905aa07aa6da9dea850a541a1d4150624ae27ab29802baa2c942d802e462f11307830df303f319c31f13136327b329d32b232b2329d327b323632f1319c313f31df3078301130462f802e942daa2c802bab29ae270624d41541a150a5dea86da907aa05aa83a97ea835a6dca2cf986022fa26bb27e223e210c1a1a7a537a869a9eba9f8a97aa9fca837a613a3d99a902170260c29e52a642c1d2dff2dcc2e9a2f34309130ee303f318b31cf3100322432363236322b320032cf318b313f31ee30913034309a2fcc2eff2d1d2d642ce52a0c2970269021d99a13a337a6fca87aa9f8a9eba969a9e7a8a7a5c1a1e210e223bb273e28b224401ba6a00ea5bca744a9c1a923aaa5a927a920a772a4109fb01de3242d28e829a42ba82c752d432e0b2fc52f3f309130df30243168318a31aa31bb31bb31af318a3168312431df3091303f30c52f0b2f432e752da82ca42be8292d28e324b01d109f72a420a727a9a5a923aac1a944a9bca70ea5a6a0401bb2243e28dc28ee255620d59e25a4d3a6c1a897a914aad0a952a9d7a880a5eca197945b22a4260629a22a1e2cec2cae2d682e222fc52f34307830bd30ee30153131313f313f3133311531ee30bd3078303430c52f252f682eae2dec2c1e2ca22a0629a4265b229794eca180a5d7a852a9d0a914aa97a9c1a8d3a625a4d59e5620ee25dc287f293727e122749778a2eaa54ca86ca9eaa9fda99aa9a5a8c1a637a4b39ee01db124e8278f292a2b512c0b2dc52d682e0b2f9a2f113051307930a030b830c430c430b830a0307930513011309a2f0b2f682ec52d0d2d512c2a2b8f29e827b124e01db39e37a4c1a6a5a886a9fda9eaa96ca9eea8eaa578a27497e12237277f29242a0c286f24351aa6a001a5b0a73ca9b3a92aaac2a94aa900a877a51ca253991821c2257c28e9295d2b682c0d2dae2d432ecc2e462fb82f03304f303e30483048303e302a300330b82f462fcc2e432eae2d0b2d682c5d2be9297c28c225182153991ca277a500a84aa9c1a92aaab3a93ca9b0a701a5a6a0351a6f240c28242ac82ae42800267920839dd5a374a67fa878a9fca9fba984a911a9fba6b2a48ca06716ed225e26a328162a5d2b512cec2c752dff2d802ece2e1d2f5a2f8a2f9a2f9a2f8a2f5e2f1d2fce2e802eff2d752dec2c512c5d2b162aa3285e26ed2267168ca0a0a4fba611a984a9fba9efa978a901a974a6d5a3839d79200026e428c82a6d2b892970277d24a20f54a134a5bea73da9dfa92aaac9a95ba947a833a6b1a3af9e531ba423b926a328e9292a2b1e2ca82c1d2d942de32d332ea92e932ea42ea42e932e682e332ee32d942d1d2da82c1e2c2a2be929a328b926a423531baf9eb1a333a647a85ba9c9a92aaab4a93da9bea734a554a1a20f7d24702789296d2b172c7e2a97289b251620a69de7a37da683a872a9e0a913aaa4a936a9cba7aaa513a3a29d171da4235e267c288f29a22aa42b3f2caa2cf92c7c2d752d9d2dad2dad2d9d2d752d7c2df92caa2c642ca42ba22a8f297c285e26a423171da29d13a3aaa5cba736a9a4a913aae0a972a904a97da6e7a3a69d16209b2597287e2a172c882c452b7a295e279623970c66a120a57aa728a997a905aaeea984a920a988a767a58fa2a29d531bed22c225e8270629e829e52a802b0f2c812cb32ca62cb62cb62ca62c832c812c0f2c802be52ae8290629e827c225ed22531ba29d8fa267a588a720a984a9eea905aa97a928a97aa720a566a1970c96235e277a29452b882cf92c132c5c2a91288e252b20cb9c1aa3e8a521a84da9bba922aadca978a914a947a767a513a3af9e67161821b124a4262d280829ab294a2a0c2b212b5f2b7f2b7f2b5f2b212b0c2b4a2aab290c292d28a426b12418216716af9e13a367a547a714a978a9dca922aabba94da921a8e8a51aa3cb9c2b208e2591285c2a132cf92c342d842c3e2b78299a2749246b1aea9f55a4b0a685a867a9cba92faacfa96ca914a988a7aaa5b1a38ca05399e01d5b22e3247026ae27762816297a2971299229922971293c2916297628ae277026e3245b22e01d53998ca0b1a3aaa588a714a96ca9ffa92faacba967a985a8b0a655a4ea9f6b1a49249a2778293e2b842c342ddb2df72c1e2c922ae9282926e621389485a10ba52ca70fa973a9fea927aacfa978a920a9cba733a6a0a41ca2b39e9794b01d902106242c254226ae260827482748270827ae2642262c2506249021b01d9794b39e1ca2a0a433a6cba720a978a9cfa927aad7a973a90fa92ca70ba585a13894e6212926e928922a1e2cf72cdb2d562e812dac2caf2bc2295c2866253320339c5ba24ea56fa71ca97fa9d7a92faadca984a936a947a8fba677a537a4eca1109fd99ad415881db72042225a22db22db225a22c821b720881dd415d99a109feca137a477a5fba647a836a984a9f8a92faad7a97fa91ca96fa74ea55ba2339c332066255c28c229af2bac2c812d562ee42e0f2e062d652c212b78299f27fa249f1d3f9de1a291a5b2a71ca973a9d1a922aaeea9a4a95ba9aba800a8c1a680a572a413a341a1e79f9c9e2b9b7099d596d59670992b9b9c9ee79f41a113a372a480a5c1a600a8aba85ba9a4a9eea922aacba973a91ca9b2a791a5e1a23f9d9f1dfa249f277829212b652c072d0f2ee42e2a2f5d2ec82df32c1f2c9e2a3d29db26e823311c4b9e67a391a56fa70fa967a9c0a905aa13aac9a984a94aa9a5a806a820a737a650a5c0a433a471a312a3b3a2b3a212a371a333a4c0a450a537a620a706a8a5a84aa984a9c9a913aa05aabba967a90fa96fa791a567a34b9e311ce823db263d299e2a1f2cf32cc82d5d2e2a2fb42f2b2f562e822db72c052c272ab4288026312389194b9ee1a24ea52ca703a94da997a9e0a92aaafba9c1a986a952a927a973a8dea887a7faa68ca65ca62da62da65ca68ca6faa687a7dea873a827a952a99aa9c2a9fba92aaae0a997a94da903a92ca74ea5e1a24b9e891931238026b428272a052cb72c822d562e2b2fb42f4730ba2fe72e212e6e2d702c6e2bfa29862827263123311c3f9d5ba20ba5b0a621a828a972a9b4a9efa92aaafda9d0a9a5a97aa96da93ea9e0a8afa897a880a880a897a8afa8e0a83ea96da97aa9a5a9d0a9fda92aaaefa9dfa972a928a921a8b0a60ba55ba23f9d311c312327268628fa296e2b702c6e2d212ee72eba2f47308e3027308a2fd72ecd2d142d5a2c402bcf2986288026e8239f1d339c85a155a4e8a57aa704a93da978a9b3a9eaa914aa23aaf8a907aac1a9a7a997a98ea986a986a98ea997a9a7a9c3a907aaf8a923aa14aaeaa9b3a978a93da904a97aa7e8a555a485a1339c9f1de82380268628cf29402b5a2c142dcd2d872e8a2f27308e30ad304f30e42f2a2f712eb72dfd2c452c402bfa29b428db264f2433203894ea9f1aa320a57da6bea701a93ca96ca997a9c1a9eba905aa1faa29aa1caa13aa0aaa0aaa13aa1caa29aa1faa05aaeba9c1a997a96ca93ca901a9bea77da620a51aa3ea9f389433204f24db26b428fa29402b452cfd2cb72d712e2b2fe42f4f30ad30fd30a0304330ce2f142f5a2ea32dfd2c5a2c6e2b272ae1289f276625e6216b1acb9c66a1e7a334a574a6b0a7eea8c1a844a969a983a99da9b6a9c2a9cba9d3a9d3a9caa9c2a9b6a99da983a969a944a9c1a8eea8b0a774a634a5e7a366a1cb9c6b1ae62166259f27e128272a6e2b5a2cfd2ca32d5a2e142fce2f4330a030fd304f31f23095303830b72f002f5a2eb72d142d702c9b2b9e2a78295c28292603242b20970ca69d54a1d5a301a5eaa5d3a6bca7e7a87ea8c4a834a93da946a94ea94ea946a93da934a9c4a87ea8e7a8bca7d3a6eaa501a5d5a354a1a69d970c2b20032429265c2878299e2a052c702c142db72d5a2e002fb72f38309530f2304f31a0314431e7308a302f30b72f142f712ecd2d2a2db72c1f2c212bc229b0289a278e2513231620a20f839da6a078a225a40ea5a7a535a6c2a650a7c7a8cba8d0a8d0a8cba8c7a850a7c2a635a6a7a50ea525a478a2a6a0839da20f162096238e259a27b028c229212b1f2cb72c2a2dcd2d712e142fb72f2f308a30e7304431a031f23195313831de308a303830ce2f2b2f872e212e822df32c652caf2b922a782991285e279b257d247920351a7497d59ea6a0c1a1dca2f7a3e1a5a0a4d0a4ffa4ffa4d0a4a0a4e1a5f7a3dca2c1a1a6a0d59e7497351a79207d249b255e2791287829922aaf2b652cf32c822d212ed72e2a2fce2f38308a30de3038319531f2314432e7318c313831e73095304330e42f8a2fe72e562ec82d072dac2c1e2c3e2b5c2a7a299728702700266f24e1225620401be210cf98d29cac9f359ff39f58a058a0f39f359fac9fd29ccf98e210401b5620e1226f240026702797287a295c2a3e2b1e2cac2c062dc82d562ee72e8a2fe42f43309530e73038318c31e731443296323c32e73195314431f230a0304f302730ba2f2b2f5d2e0f2e812df72c842c132c452b7e2a8929e4280c283727ee25b224e2236022de205020bf1ebc1db91cb91cbc1dbf1e5020de206022e223b224ee2537270c28e42889297e2a452b132c842cf72c812d0f2e5d2e2b2fba2f27304f30a030f23044319531e7313c329632ec3296324432f231a0314f31fd30ad308e304730b42f2a2fe42e562edb2d342df92c882c172c6d2bc82a242a7f29dc283e28bb27fa2639261f268a254a25092509254a258a251f263926fa26bb273e28dc287f29242ac82a6d2b172c882cf92c342ddb2d562ee42e2a2fb42f47308e30ad30fd304f31a031f23144329632ec32d5327e322a32d73184313131de308c3042300330722fe82e5f2ed62d5f2df22c842c172c542ba12afb295c29bd281e287427b326f2253125c324822441240124012441248224c3243125f225b32674271e28bd285c29fb299a2a542b172c842cf22c5f2dd62d5f2ee82e722ffb2f42308c30de3031318431d7312a327e32d5327e322232cb3178312531d33080302e30bc2f2f2fa42e1a2e912d082d822c142c4e2b732a9829c52826280f27d12593245323d1214f209b1d3f1b3a196916bb10bb1069163a193f1b9b1d4f20d12153239324d1250f272628c5289829732a4e2b142c822c0a2d912d1a2ea42e2f2fbc2f2e308030d33025317831cb3122327e322a32cb316f311a31c73075302330a22fff2e612ed62d4d2dc32c3a2c622b6d2a9229b728ba270426a424cd225120581b0d900b9b899ec6a0e6a167a2e9a26aa36aa3e9a267a2e6a1c6a0899e0b9b0d90581b5120cd22a4240426ba27b72892296d2a622b3a2cc32c4d2dd62d612eff2ea22f23307530c7301a316f31cb312a32d73178311a31be30693017308b2fe82e452ea22d092d7f2cec2bd92ac729b528ad27f82542241a21e11b1c94ff9d7ba1d5a3aba46ca52da6cea60ea74fa790a790a74fa70ea7cea62da66ca5aba4d5a37ba1ff9d1c94e11b1a214224f825ad27b528c729d92aec2b7f2c092da22d452ee82e8b2f17306930be301a317831d73184312531c73069300e30752fd12e2e2e8b2de82c452c642b512a3e292b283126362402215c1a4f9b3ea1d5a328a566a6a4a73aa89ba8caa854a975a93ba953a953a93ba975a954a9caa89ba83aa8a4a766a628a5d5a33fa14f9b5c1a0221362431262b283e29512a642b452ce82c8b2d2e2ed12e752f0e306930c730253184313131d33075301730752fbe2e182e742dd12c2e2c172bd129b62846272125f621ae1ab19b57a161a416a693a768a8d3a848a9a0a9e7a92eaa75aa2cab34ab3dab3dab34ab2cab75aa2eaae7a9a0a948a9d3a868a893a716a661a457a1b19bae1af62121254627b628d129172b2e2cd12c742d182ebe2e752f17307530d3303131de30803023308b2fd12e182e602dbb2c172ce92aa3295d2836261024aa1f6293c1a06da422a6d8a7a4a841a9b6a92aaa9faa57ab4bab91aba5abb0abb9abc1abc1abb9abb0aba5ab91ab4bab57ab9faa2aaab6a941a9a4a8d8a722a66da4c1a06293aa1f102436265d28a329e92a172cbb2c602d182ed12e8b2f23308030de308c302e30a22fe82e2e2e742dbb2c032cbc2a75292f28d3258e22cc1a309de3a297a5bca7a8a848a9e9a989aa5aab81abb0abd9abf3ab06ac0bac05ac00acf9abf9ab00ac05ac0bac06acf3abd9abb0ab81ab5aab89aae9a948a9a8a8bca797a5e3a2309dcc1a8e22d32530287529bc2a032cbb2c742d2e2ee82ea22f2e308c304230bc2fff2e452e8b2dd12c172cbc2a4a2902287725d721f51559a082a4a8a65da827a9eda98daa67aba1abd8ab01ac08ace6abe9abafab95ab82ab6bab53ab53ab6bab82ab95abafabe9abe6ab08ac01acd8aba1ab67ab8daaeda927a95da8a8a682a459a0f515d721772502284a29bc2a172cd12c8b2d452eff2ebc2f423003302f2f612ea22de82c2e2ce92a752902281e252021d303a4a414a5a0a7efa88ba954aa60abb4abe0ab0cacecabbeab93ab69ab55ab91aa4aaa19aa01aae9a9e9a901aa19aa4aaa91aa55ab69ab93abbeabecab0cacdeaba3ab60ab54aa8ba9efa8a0a714a5a4a4d30320211e2502287529e92a2e2ce82ca22d612e2f2f0330722fa42ed62d092d452c172ba3292f28772520217a95c7a144a611a800a9eea9b8aa85abcfab0caceaabafab54ab40ab51aadca974a92da9e6a8afa8b6a896a896a8b6a8afa8e6a82da974a9dca951aa40ab5eabafabeaab0caccfab85abb8aaeea900a911a844a6c7a17a95202177252f28a329172b452c092ddc2da42e722fe82e1a2e4d2d7f2c642bd1295d28d325d721d303c7a1cba532a821a910aa55abaaabf4ab00acb8ab73abafaa0faa70a9faa885a800a83aa779a6d2a591a550a550a591a5d2a579a63aa700a885a8faa870a90faaafaa73abb8ab00acf4abaaab55ab10aa21a932a8cba5c7a1d303d721d3255d28d129642b7f2c4d2d1a2ee82e5f2e912dc32cec2b512ab62836268e22f515a4a444a632a843a932aa62abb9ab08acddab93abdeaa15aa6aa9caa820a8cfa691a553a4e1a25fa1dc9fda9ed79dd79dda9edc9f5fa1e1a253a491a5cfa620a8caa86aa915aadeaa93abddab08acb9ab62ab32aa43a934a844a6a4a4f5158e223626b628512aec2bc32c912d5f2eda2d0a2d3a2cd92a3e2946271024cc1a59a002a611a821a932aa6eabd5ab0eacd4ab73ab7aaab0a9e7a825a87ea6c9a44ea2a49f59999a156a1c6e1f4920ca20ca2049206e1f6a1c9a155999a49f4ea2c9a47ea625a8e7a8b1a97aaa73abcaab0eacc5ab6eab32aa21a911a802a659a0cc1a102446273e29d92a3a2c082dd62d5f2d822c622bc7293c282125aa1f309d82a4a0a700a910aa62abc5ab0bacbeab66ab3eaa4fa983a80fa7e9a40fa2479d3816fe1efb212324e424a525ff2540264026ff25a525e4242324fb21fe1e3816479d0fa2e9a40fa783a84fa93eaa66abd3ab0bacc6ab62ab10aa00a9a0a782a4309daa1f21252b28c729622b822c5f2df22c142c6d2ab5283126f6216293e3a2a8a6efa8eea955abbaab0eacbeab5aab1caa2da93fa8fea5b1a3cb9efb164a20b5236825a626e4275728b828ed280d290d29ed28b8285728e427a6266825b5234a20fb16cb9eb1a3fea53ea82da91caa5aabbeab0eacb9ab55abeea9efa8a8a6e3a26293f6213126b5286d2a142cf22c842c4e2b9229ad273624ae1ac1a097a55da88ba9b8aaaeab08accaab66ab1caa0da91da85da60ba210990e1e52239c25522788282729c6293c2a9d2adb2afb2afb2adb2a9d2a3c2ac6292729882852279c2552230e1e10990ba25da61da80da91caa66abd4ab08acaeabb8aa8ba95da897a5c1a0ae1a3624ad2792294e2b842c172c732ab728f8250221b19b6da4bca727a954aa85abf4abddab73ab3eaa2da91da81ba6afa4868fdc20ba24df2682286429622afb2a9a2b102c412c642c742c742c642c412c102c9a2bfb2a622a64298228df26ba24dc20868fafa41ca61da82da93eaa73abddabf4ab85ab54aa27a9bca76da4b19b0221f825b728732a172c542b9829ba2742245c1a57a122a6a8a8eda960abcfab00ac93ab7aaa4fa93ea85da6afa4ac1393215525e2270b291d2a202bfb2b682cb72c072d372d5b2d6b2d6b2d5b2d332d072db72c682cfb2b202b1d2a0b29e22755259321ac13afa45da63ea84fa97aaa93ab00accfab60abeda9a8a822a657a15c1a4224ba279829542ba12ac52804261a214f9b61a4d8a748a98daaa3ab0cacb8abdeaab1a983a8fea50ba2868f9321b1251e286429a62ab92b652cdb2c482da12df12d302e512e622e622e522e262ef12da12d482ddb2c652cb92ba62a64292928b1259321868f0ba2fea583a8b0a9deaab8ab0cacb4ab8daa48a9d8a761a44f9b1a210426c5289a2afb292628a424e11b3fa116a6a4a8e9a967abdeabeaab73ab15aae7a80fa7b1a31099dc2055251e289229d82a0f2caa2c332dbd2d262e8c2edb2e2b2f482f582f582f482f182fdb2e8c2e262ebd2d332daa2c0f2cd82a92291e285525dc201099b1a30fa7e7a814aa73abeaabe0ab67abe9a9a4a816a63fa1e11ba4242628fb295c290f27cd221c94d5a393a741a989aaa1ab0cacafabafaa6aa925a8e9a4cb9e0e1eba24e2276429d82a262cc92c6c2d012e8a2e142f712fc52f0a301f30273027301d300a30c52f712f142f8a2e012e6c2dc92c262cd82a6429e227ba240e1ecb9ee9a425a86aa9afaaafab0caca1ab89aa41a993a7d5a31c94cd220f275c29bd28d1255120ff9d28a568a8b6a95aabd8abecab5eab0faacaa87ea60fa2fb165223df260b29a62a0f2cc92c832d262ec92e582fe12f3630583080309c30a430a4309c30803058303630e12f582fc92e262e832dc92c0f2ca62a0b29df265223fb160fa27ea6caa80faa54abecabd8ab5aabb6a968a828a5ff9d5120d125bd281e289324581b7ba166a6d3a82aaa81ab01acbeab40ab70a920a8c9a4479d4a209c2582281d2ab92baa2c6c2d262ee02e832f133058309d30ce30f6301931213121311231f630ce309d3058301330832fe02e262e6c2daa2cb92b1d2a82289c254a20479dc9a420a870a940abbeab01ac81ab2aaad3a866a67ba1581b93241e28742753230d90d5a3a4a748a99faab0ab08ac93ab51aafaa8cfa64ea23816b52352276429202b652c332d012ec92e832f1e307030bf3005314b316d3196319e319e3196316d314b310531bf3070301e30832fc92e012e332d652c202b64295227b52338164ea2cfa6faa851aa93ab08acb0ab9faa48a9a4a7d5a30d9053237427b326d1210b9baba43aa8a0a957abd9abe6ab69abdca985a891a5a49ffe1e682588283f2afb2bdb2cbd2d8a2e582f13307030ce3021316e31b331fa310d321c321c320d32fa31b3316e312131ce3070301330582f8a2ebd2ddb2cfb2b3f2a88286825fe1ea49f91a585a8dca969abe6abd9ab57aba0a93aa8aba40b9bd121b326f2254f20899e6ca59ba8e7a94babf3abe9ab55ab74a900a853a45999fb21a6262729fb2a682c482d262e142fe12f5830bf3021318031d6311c32633285329a329a32853263321c32d63180312131bf305830e12f142f262e482d682cfb2a2729a626fb21599953a400a874a955abe9abf3ab4babe7a99ba86ca5899e4f20f22531259b1dc6a02da6caa82eaa8bab06acafab91aa2da93aa7e1a29a152324e427c6299a2bb72ca12d8c2e712f36309d3005316e31d63131328532cc32fd3219331933fd32cc3285323132d6316e3105319d303630712f8c2ea12db72c9a2bc629e42723249a15e1a23aa72da991aaafab06ac8bab2eaacaa82da6c6a09b1d3125c3243f1be6a1cea654a975aaa5ab0bac95ab4aaae6a879a65fa16a1ce42457283c2a102c072df12ddb2ec52f5830e5304b31b3311c328532ef3235337c339e339e337c333533ef3285321c32b3314b31e5305830c52fdb2ef12d072d102c3c2a5728e4246a1c5fa179a6e6a84aaaadab0baca5ab75aa54a9cea6e6a13f1bc32482243a1967a20ea775a92cabb0ab05ac82ab19aaafa8d2a5dc9f6e1fa525b8289d2a412c332d262e2b2f0a308030f6306d31fa316332cc3235339f33e53316341634e5339f333533cc326332fa316d31f63080300a302b2f302e372d412c9d2ab828a5256e1fdc9fd2a5afa819aa82ab05acb0ab2cab75a90ea767a23a19822441246916e9a24fa73ba934abb9ab00ac6bab01aab6a891a5da9e4920ff25ed28db2a642c5b2d522e482f1d309c301f3196310d32853212337c33e53327344a344a342734e5337c33123385320d3296311f319c301f30482f512e5b2d642cdb2aed28ff254920da9e91a5b6a801aa6bab00acb9ab34ab3ba94fa7e9a2691641240124bb106aa390a753a93dabc1abf9ab53abe9a996a850a5d79dca2040260d29fb2a742c6b2d622e582f2730a43021319e311c329a3219339e3316344a347f347f344a3416349e3319339a321c329e312131a4302730582f622e6b2d742cfb2a0d294026ca20d79d50a596a8e9a953abf9abc1ab3dab53a990a76aa3bb1001240124bb106aa390a753a93dabc1abf9ab53abe9a996a850a5d79dca2040260d29fb2a742c6b2d622e582f2730a43021319e311c329a3219339e330b344a347f347f344a340b349e3319339a321c329e312131a4302730582f622e6b2d742cfb2a0d294026ca20d79d50a596a8e9a953abf9abc1ab3dab53a990a76aa3bb10012441246916e9a24fa73ba934abb9ab00ac6bab01aab6a891a5da9e4920ff25ed28db2a642c5b2d512e482f1f309c30193196310d328532fd327c33e53327344a344a342734e5337c33123385320d32963112319c301d30482f522e5b2d642cdb2aed28ff254920da9e91a5b6a801aa6bab00acb9ab34ab3ba94fa7e9a26916412482243a1967a20ea775a92cabb0ab05ac82ab19aaafa8d2a5dc9f6e1fa525b8289d2a412c372d302e2b2f0a308030f6306d31e5316332cc3235339f33e53316340b34e5339f333533cc326332e5316d31f63080300a30182f262e332d412c9d2ab828a5256e1fdc9fd2a5afa819aa82ab05acb0ab2cab75a90ea767a23a198224c3243f1be6a1cea654a975aaa5ab0bac95ab4aaae6a879a65fa16a1ce42457283c2a102c072df12ddb2ec52f5830ce304b31b3311c328532ef3235337c339e339e337c333533ef3285321c32b3314b31ce305830c52fdb2ef12d072d102c3c2a5728e4246a1c5fa179a6e6a84aaa95ab0baca5ab75aa54a9cea6e6a13f1bc32431259b1dc6a02da6caa82eaa91ab06acafab91aa2da93aa7e1a29a152324e427c6299a2bb72ca12d8c2e762f36309d3005316e31d63131328532cc321233193319331233cc3285323132d6316e3105319d303630762f8c2ea12db72c9a2bc629e42723249a15e1a23aa72da991aaafab06ac8bab2eaacaa82da6c6a09b1d3125f2254f20899e6ca59ba8e7a94babf3abe9ab55ab74a900a853a45999fb21a6262729fb2a682c522d262e142fe12f5830bf3028318031d6311c32633285329a329a32853263321c32d63180312131bf305830e12f142f262e482d682cfb2a2729a626fb21599953a400a874a955abe9abf3ab4babe7a99ba86ca5899e4f20f225b326d1210b9baba43aa8a0a957abd9abe6ab69abdca985a891a5a49ffe1e68258828622afb2bdb2cbd2d8a2e582f13307030ce3021316e31b331fa310d321c321c320d32e531b3316e312831ce3070301330582f8a2ebd2ddb2cfb2b622a88286825fe1ea49f91a585a8dca969abe6abd9ab57aba0a93aa8aba40b9bd121b326742753230d90d5a3a4a748a99faab0ab08ac93ab51aafaa8cfa64ea23816b52352276429202b652c332d012ec92e832f1e307030bf3005314b316d3196319e319e3196316d314b310531bf3070301e30832fc92e012e332d652c202b64295227b52338164ea2cfa6faa851aa93ab08acb0ab9faa48a9a4a7d5a30d90532374271e289324581b7ba166a6d3a82aaa81ab01acbeab40ab70a920a8c9a4479d4a209c2582281d2ab92baa2c6c2d262ee02e832f133058309d30e530f6301231213121311931f630e5309d3058301330832fe02e262e6c2daa2cb92b1d2a82289c254a20479dc9a420a870a940abbeab01ac81ab2aaad3a866a67ba1581b93241e28bd28d1255120ff9d28a568a8b6a95aabd8abecab54ab0faacaa87ea60fa2fb165223df260b29a62a0f2cc92c832d262ec92e582fe12f3630583080309c30a430a4309c30803058303630e12f582fc92e262e832dc92c0f2ca62a0b29df265223fb160fa27ea6caa80faa5eabecabd8ab5aabb6a968a828a5ff9d5120d125bd285c290f27cd221c94d5a393a741a989aaa1ab0cacafabafaa6aa925a8e9a4cb9e0e1eba24e2276429d82a262cc92c6c2d012e8a2e142f712fc52f0a301d30273027301f300a30c52f712f142f8a2e012e6c2dc92c262cd82a6429e227ba240e1ecb9ee9a425a86aa9afaaafab0caca1ab89aa41a993a7d5a31c94cd220f275c29fb292628a424e11b3fa116a6a4a8e9a967abe0abeaab73ab15aae7a80fa7b1a31099dc2055251e289229d82a0f2caa2c332dbd2d262e8c2edb2e2b2f482f582f582f482f2b2fdb2e8c2e262ebd2d332daa2c0f2cd82a922929285525dc201099b1a30fa7e7a815aa73abeaabdeab67abe9a9a4a816a63fa1e11ba4242628fb299a2ac52804261a214f9b61a4d8a748a98daab4ab0cacb8abdeaab0a983a8fea50ba2868f9321b1251e286429a62ab92b652cdb2c482da12df12d262e522e622e622e512e302ef12da12d482ddb2c652cb92ba62a64291e28b1259321868f0ba2fea583a8b1a9deaab8ab0caca3ab8daa48a9d8a761a44f9b1a210426c5289a2a542b9829ba2742245c1a57a122a6a8a8eda960abcfab00ac93ab7aaa4fa93fa85da6afa4ac1393215525e2270b291d2a202bfb2b682cb72c072d332d5b2d6b2d6b2d5b2d372d072db72c682cfb2b202b1d2a0b29e22755259321ac13afa45da63ea84fa97aaa93ab00accfab60abeda9a8a822a657a15c1a4224ba279829542b172c732ab728f8250221b19b6da4bca727a954aa85abf4abddab73ab3eaa2da91da81ca6afa4868fdc20ba24df26822864293f2afb2a9a2b102c412c642c742c742c642c412c102c9a2bfb2a3f2a64298228df26ba24dc20868fafa41ba61da82da93eaa73abddabf4ab85ab54aa27a9bca76da4b19b0221f825b728732a172c842c4e2b9229ad273624ae1ac1a097a55da88ba9b8aaaaab08acd4ab66ab1caa0da91da85da60ba210990e1e52239c25522788282729c6293c2a9d2adb2afb2afb2adb2a9d2a3c2ac6292729882852279c2552230e1e10990ba25da61da80da91caa66abcaab08acaaabb8aa8ba95da897a5c1a0ae1a3624ad2792294e2b842cf22c142c6d2ab5283126f6216293e3a2a8a6efa8eea955abb9ab0eacbeab5aab1caa2da93ea8fea5b1a3cb9efb164a20b5236825a626e4275728b828ed280d290d29ed28b8285728e427a6266825b5234a20fb16cb9eb1a3fea53ea82da91caa5aabd3ab0eacb9ab55abeea9efa8a8a6e3a26293f6213126b5286d2a142cf22c5f2d822c622bc7292b282125aa1f309d82a4a0a700a910aa62abd5ab0bacbeab66ab3eaa4fa983a80fa7e9a40fa2479d3816fe1efb212324e424a525ff2540264026ff25a525e4242324fb21fe1e3816479d0fa2e9a40fa783a84fa93eaa66abbeab0bacc6ab62ab10aa00a9a0a782a4309daa1f21252b28c729622b822c5f2dd62d082d3a2cd92a3e2946271024cc1a59a014a511a821a932aa6eabc6ab0eaccaab73ab7aaab1a9e7a825a87ea6c9a44ea2a49f59999a156a1c6e1f4920ca20ca2049206e1f6a1c9a155999a49f4ea2c9a47ea625a8e7a8b0a97aaa73abd4ab0eacc5ab6eab32aa21a911a814a559a0cc1a102446273e29d92a3a2c0a2dd62d5f2e912dc32cec2b512ab62836268e22f515a4a444a632a843a932aa62abbaab08acddab93abdeaa14aa6aa9caa820a8cfa691a553a4e1a25fa1dc9fda9ed79dd79dda9edc9f5fa1e1a253a491a5cfa620a8caa86aa914aadeaa93abddab08acb9ab62ab32aa43a932a844a6a4a4f5158e223626b628512aec2bc32c912d5f2ee82e1a2e4d2d7f2c642bd1295d28d325d721d303c7a1cba532a821a910aa55abaeabf4ab00acb8ab73abafaa0faa70a9faa885a800a83aa779a6d2a591a550a550a591a5d2a579a63aa700a885a8faa870a90faaafaa73abb8ab00acf4abaeab55ab10aa21a932a8cba5c7a1d303d721d3255d28d129642b7f2c4d2d1a2ee82e722fa42ed62d092d452c172ba3292f28772520217a95c7a144a611a800a9eea9b8aa85abcfab0caceaabafab54ab40ab51aadca974a92da9e6a8afa8b6a896a896a8b6a8afa8e6a82da974a9dca951aa40ab54abafabeaab0caccfab85abb8aaeea900a911a844a6c7a17a95202177252f28a329172b452c092dd62da42e722ffb2f2f2f612ea22de82c2e2ce92a752902281e252021d303a4a402a6a0a7efa88ba954aa60aba3abdeab0cacecabbeab93ab69ab55ab91aa4aaa19aa01aae9a9e9a901aa19aa4aaa91aa55ab69ab93abbeabecab0cace0abb4ab60ab54aa8ba9efa8a0a702a6a4a4d30320211e2502287529e92a2e2ce82ca22d612e2f2ffb2f4230bc2fff2e452e8b2dd12c172cbc2a4a2902287725d721f51559a082a4a8a65da827a9eda98daa67aba1abd8ab01ac08ace6abe9abafabadab82ab6bab53ab53ab6bab82abadabafabe9abe6ab08ac01acd8aba1ab67ab8daaeda927a95da8a8a682a459a0f515d721772502284a29bc2a172cd12c8b2d452eff2ebc2f42308c302e30a22fe82e2e2e742dbb2c032cbc2a75292f28d3258e22cc1a309de3a297a5bca7a8a848a9e9a989aa5aab81abb0abd9abf3ab06ac0bac05ac00acf9abf9ab00ac05ac0bac06acf3abd9abb0ab81ab5aab89aae9a948a9a8a8bca797a5e3a2309dcc1a8e22d3252f287529bc2a032cbb2c742d2e2ee82ea22f2e308c30de30803023308b2fd12e182e602dbb2c172ce92aa3295d2836261024aa1f6293c1a06da422a6d8a7a4a841a9b6a92aaa9faa57ab4bab8baba5abb0abb9abc1abc1abb9abb0aba5ab8bab4bab57ab9faa2aaab6a941a9a4a8d8a722a66da4c1a06293aa1f102436265d28a329e92a172cbb2c602d182ed12e8b2f23308030de303131d33075301730752fbe2e182e742dd12c2e2c172bd129b62846272125f621ae1ab19b57a161a416a693a768a8d3a848a9a0a9e7a92eaa75aa2cab34ab3dab3dab34ab2cab75aa2eaae7a9a0a948a9d3a868a893a716a661a457a1b19bae1af62121254627b628d129172b2e2cd12c742d182ebe2e752f17307530d330313184312531c73069300e30752fd12e2e2e8b2de82c452c642b512a3e293c283126362402215c1a4f9b3ea1d5a328a566a6a4a73aa89ba8caa854a975a93ba953a953a93ba975a954a9caa89ba83aa8a4a766a628a5d5a33fa14f9b5c1a0221362431262b283e29512a642b452ce82c8b2d2e2ed12e752f0e306930c73025318431d73178311a31be30693017308b2fe82e452ea22d092d7f2cec2bd92ac729b528ad27f82542241a21e11b1c94ff9d7ba1d5a3aba46ca52da6cea60ea74fa790a790a74fa70ea7cea62da66ca5aba4d5a37ba1ff9d1c94e11b1a214224f825ad27b528c729d92aec2b7f2c092da22d452ee82e8b2f17306930be301a317831d7312a32cb316f311a31c73075302330a22fff2e612edc2d4d2dc32c3a2c622b6d2a9229b728ba270426a424cd225120581b0d900b9b899ec6a0e6a167a2e9a26aa36aa3e9a267a2e6a1c6a0899e0b9b0d90581b5120cd22a4240426ba27b72892296d2a622b3a2cc32c4d2ddc2d612eff2ea22f23307530c7301a316f31cb312a327e322232cb3178312531d33080302e30bc2f2f2fa42e1a2e912d0a2d822c142c4e2b732a9829c52826280f27d12593245323d1214f209b1d3f1b3a196916bb10bb1069163a193f1b9b1d4f20d12153239324d1250f272628c5289829732a4e2b142c822c082d912d1a2ea42e2f2fbc2f2e308030d33025317831cb3122327e32d5327e322a32d73184313131de308c3042300330722fe82e5f2eda2d5f2df22c842c172c542b9a2afb295c29bd281e287427b326f2253125c324822441240124012441248224c3243125f225b32674271e28bd285c29fb299a2a542b172c842cf22c5f2dd62d5f2ee82e722ffb2f42308c30de3031318431d7312a327e32d532c6326f321a32c63172311e31ca3077302b30d52f3d2fb12e242e982d202db12c432caa2bcf2a1e2a7629d728382834276b26aa25e92428247523f3227222f121f1217222f32275232824e924aa256b2634273828d72876291e2acf2aaa2b432cb12c202d982d242eb12e3d2fd52f2b307730ca301e317231c6311a326f32c6326f321232bb3167311331bf306b3017308a2ff92e832ede2d532dc72c402ca42bc92aef291429412845270726c92416234221811f7d1ce515119013960f99159b159b0f9913961090e5157d1c811f42211623c9240726452741281429ef29c92aa42b402cc72c532dde2d832ef92e8a2f17306b30bf3013316731bb3112326f321a32bb315e310731b3305f300b306f2fc82e272ea02d0d2d822cf02bde2ae9290e293328b126fb243823bc20811c5f8fa39ca79f55a1d7a2f7a33ca47da4bda4bda47da43ca4f7a3d7a255a1a79fa39c5f8f811cbc203823fb24b12633280e29e929de2af02b822c0d2da02d272ec82e6f2f0b305f30b33007315e31bb311a32c63167310731aa305330ff2f582fb12e0a2e642dc82c512c682b552a42293128a526ef247422131e258a299d10a18ca3f3a4b4a575a636a7d6a70ba82ca84ca84ca82ca80ba8d6a736a775a6b4a5f3a48ca310a1299d268a131e7422ef24a52631284229552a682b512cc82c642d0a2eb12e582fff2f5330aa3007316731c63172311331b3305330ec2f402f992ef32d4d2da72c032ce42acd29ba284f2729255c22e21d9d93c99f50a3f3a431a66ea756a8bfa81fa980a9d8a9f9a919aa3aaa3aaa19aaf9a9d8a980a91fa9bfa856a86ea731a6f3a450a3c99f9d93e21d5c2229254f27ba28cd29e42a032ca72c4d2df32d992e402fec2f5330b330133172311e31bf305f30ff2f402f862edb2d352d902cd92b932a4d2931283e261824cb1f5592fa9f68a369a51fa74da8eca88ba92aaaa4aa04ab65abc6abe6ab05ac13ac13ac03ace6abc6ab65ab04aba4aa2aaa8ba9eca84da81fa769a568a3fa9f5592cb1f18243e2631284d29932ad92b902c352ddb2d862e402fff2f5f30bf301e31ca306b300b30582f992edb2d212d792cab2b652a1f29b2272d250f22101b0e9dd2a275a52ba770a84ba922aac1aa60abffab44ac74ac7daca1accfacd3acd8acd8acd3accfaca1ac7dac74ac44acffab60abc1aa22aa4ba970a82ba775a5d2a20e9d101b0f222d25b2271f29652aab2b792c212ddb2d992e582f0b306b30ca30773017306f2fb12ef32d352d792c812b372af1285727ca247d20dd91a9a07aa49fa679a851a92caa06abe1ab4aac75acb0ace4acf1acfeac0bad11ad17ad1aad1aad19ad11ad0badfeacf1ace4acb0ac75ac4aace1ab06ab2caa51a979a89fa67aa4a9a0dd917d20ca245727f128372a812b792c352df32db12e6f2f173077302b308a2fc82e0a2e4d2d902cab2b372ac628fb266f248c1f49996aa28ba5b0a7eba8fda90cabe7ab4bac9cace3acf8ac00adeaace8acafac8bac76ac8aac7aac7aac8aac76ac8bacaface8aceaac00adf8ace3ac9cac4bace9ab0cabfda9eba8b0a78ba56aa249998c1f6f24fb26c628372aab2b902c4d2d0a2ec82e8a2f2b30d52ff92e272e642da72cd92b652af128fb2615241e1e129c21a31da661a873a986aa99ab43ac9eace6ac03adedacd6ac89ac65ac28acfaabb3ab48ab28ab07ab07ab28ab48abb3abfaab28ac65ac89acd6acedac08ade6ac9eac43ac99ab86aa73a961a81da621a3129c1e1e1524fb26f128652ad92ba72c642d272ef92ed52f3d2f832ea02dc82c032c932a1f2957276f241e1e809dd8a378a682a8c8a90eab10ac75acdeac03adecacafac5eac17ac94abf5aa67aa06aaa6a95aa93aa91aa91aa93aa95aa9b9a906aa67aaf5aaa2ab17ac5eacafacecac03addeac75ac10ac0eabc8a982a878a6d8a3809d1e1e6f2457271f29932a032cc82ca02d832e3d2fb12ede2d0d2d512ce42a4d29b227ca248c1f129cd8a3d4a6b0a8f6a97aab34aca7acf1acf8acd3ac5cac0cac3aab63aac0a921a984a821a882a7daa69aa659a659a69aa6daa682a721a884a821a9dba963aa3aab0cac5cacd3acf8acf1aca7ac34ac7aabf6a9b0a8d4a6d8a3129c8c1fca24b2274d29e42a512c0d2dde2db12e242e532d822c682bcd2931282d257d20499921a378a6b0a824aa6aab45acd4acfface5ac88ac23ac42ab5aaa7fa9a4a8d8a79aa65ca579a470a3ffa17ea1fca0fca07ea1ffa170a379a45ca59aa6d8a7a4a87fa95aaa42ab23ac88ace5acffacd4ac45ac6aab24aab0a878a621a349997d202d253128cd29682b822c532d242e982dc72cf02b552aba283e260f22dd916aa21da682a8f6a96aab56acdcac07addcac5cace3abb9aaa7a99ea887a7d1a52fa4e3a1ce9e7699890c991a701c731d731d701c991a890c7699ce9ee3a12fa4d1a587a79ea8a7a9b9aae3ab5cacdcac06addaac56ac6aabf6a982a81da66aa2dd910f223e26ba28552af02bc72c982d202d402cde2a42294f271824101ba9a08ba561a8c8a97aab45acdaac0cadd6ac4bac7bab36aa1ea90ba8f1a510a4b4a02799b819d41f3622b8239d24f72437253725f7249d24b8233622d41fb8192799b4a010a4f1a50da81ea936aa7bab4bacdaac0caddaac45ac7aabc8a961a88ba5a9a0101b18244f274229de2a402c202db12ca42be92931282925dc1f0e9d7aa4b0a773a90eab34acd4ac06add6ac3bac86ab07aac1a806a7e1a476a1c698721ca4215f249d25db26a627332869288928892869283328a627db269d255f24a421721cc69876a1e1a406a7c1a807aa86ab3bacd6ac07add4ac34ac0eab73a9b0a77aa40e9dcb1f29253128e929a42bb12c432cc92a0e29a5265c225592d2a29fa6eba886aa10acceacffacdcac4bac86abdca993a89aa60ea4aa9eb1174121932449260428a3284229f229182a562a772a772a562a182ab8294229a3280428492693244121b117aa9e0ea49aa693a8dca986ab4bacddacffacceac10ac86aaeba89fa6d2a255925c22a5260e29c92a432caa2bef293328ef24e21dfa9f75a579a8fda999ab75acf1ace5ac5cac7bab07aa93a842a665a39a9c961d6323d725fc27e028bb29772a162bb62bfe2b222c322c322c222cfe2bb62b162b772abb29e028fc27d7256323961d9a9c65a342a693a807aa7bab5cace5acf1ac75ac99abfda979a875a5fa9fe21def243328ef29aa2bcf2a1429b12674229d9368a32ba751a90cab43acdeacf8ac88ace3ab36aac1a89aa665a35c9a041f4d24d92686289929ac2a762b262c762cc62cf32c1b2d2c2d2c2d1b2df32cc62c762c262c762bac2a99298628d9264d24041f5c9a65a39aa6c1a836aae3ab88acf8acdeac43ac0cab51a92ba768a39d937422b1261429cf2a1e2a4128fb24131ec99f69a570a82caaf7ab9eac03add3ac23acb9aa1ea906a70ea49a9c041fa8243527e028222a342b242cb12c082d632db42d092e162e272e272e162e092eb42d632d082db12c242c342b222ae0283527a824041f9a9c0ea406a71ea9b9aa23acbaac03ad9eacf7ab2caa70a869a5c99f131efb2441281e2a762945273823268a50a31fa74ba906ab4bace6acecac5cac42aba7a90da8e1a4aa9e961d4d2435270e29542a9a2b682cf32c7f2d122e522ea32ef52e132f232f232f132ff52ea32e522e122e7f2df32c682c9a2b542a0e2935274d24961daa9ee1a40ba8a7a942ab5cacecace6ac4bac06ab4ba91fa750a3268a382345277629d7280726bc20299df3a44da822aae1ab9cac08adafac0cac5aaa9ea8f1a576a1b1176323d926e028542ac82b882c2d2dc42d502edd2e422f932fe52f0830103010300830e52f932f422fdd2e502ec42d2d2d882cc82b542ae028d9266323b11776a1f1a59ea85aaa0cacafac03ad9cacf3ab22aa4da8f3a4299dbc200726d7283828c924811c10a131a6eca8c1aa3bace3acedac5eac3aab7fa987a710a4c6984121d7258628222a9a2b882c442dea2d962e232fb02f1f3042306a3095308f308f3095306a3042301f30b02f232f962eea2d442d882c9a2b222a8628d7254121c69810a487a77fa93aab5eacedace3ac3bacc1aaeca831a610a1811cc9243828342716235f8f8ca36ea78ba960ab75acf8acd6ac1aac63aaa4a8d1a5b4a0721c9324fc279929342b682c2d2dea2da82e4f2ff62f41308830ba30e3300c310e310e310c31e330ba3088304130f62f4f2fa82eea2d2d2d682c342b9929fc279324721cb4a0d1a5a4a863aa1aacd6acf8ac75ac60ab8ba96ea78ca35f8f162334276b264221a39cf3a456a82aaaffabb0ac00ad89aca2abdba9d8a72fa42799a4214926e028ac2a242cf32cc42d912e4f2f07305b30ab30f23039315c3185318d318d3185315c313931f230ab305b3007304f2f912ec42df32c242cac2ae0284926a42127992fa4d8a7c0a994ab89ac00adb0ac04ac2aaa56a8f3a4a39c42216b26aa25811fa79fb4a5bfa8a4aa3face4aceaac65acf5aa21a99aa6e3a1b8195f240428bb29762bb12c7f2d502e232ff62f5b30ba3015315c31a331ea31fd310c320c32fd31d431a3315c311531ba305b30f62f232f502e7f2db12c762bbb2904285f24b819e3a19aa621a9f5aa65aceaace4ac3faca4aabfa8b4a5a79f811faa25e9247d1c55a175a61fa904ab74acf1ace8ac28ac67aa84a85ca5ce9ed41f9d25a328772a262c082d122edd2eb02f4130ab3015316e31c6310d32533276328c328c32763253320d32c6316e311531ab304130b02fdd2e122e082d262c772aa3289d25d41fce9e5ca584a867aa28ace8acf1ac74ac04ab1fa975a655a17d1ce9242824e515d7a236a780a965ab7dacfeacafacfaab06aa21a879a476993622db264229162b762c632d522e772f1f308830f2305c31c63122327732be32ef3218331833ef32be3277322232c6315c31f23088301f30772f522e632d762c162b4229db263622769979a421a806aaebabafac19ad7dac65ab80a936a7d7a2e515282475231190f7a3d6a7d8a9c6aba1ac0bad8bacb3abb9a982a770a3890cb823a627f229b62bc62cb42da32e932f4230d1303931a3310d327732e13228336f33913391336f332833e13277320d32a3313931d1304230932fa32eb42dc62cb62bf229a627b823890c70a382a7a6a98bab8bac03ada1acc6abd8a9d6a7f7a310907523f32213963ca40ba8f9a9e6abcfac11ad76ac48ab5aa9daa6ffa1991a9d243328182afe2bf32c092ef52ee52f6a30e3305c31ea315332be3228339233d93310341034d93392332833be325332ea315c31e3306a30e52ff52e092ef32cfe2b182a33289d24991affa1daa65aa948ab76acfcaccface6abf9a90ba83ca41396f32272220f997da42ca819aa03acd3ac19ad8aac28ab3aa99aa67ea1701cf7246928562a222c1b2d162e132f083095300c318531fd31763204336f33d9332134453445342134d9336f3304337632fd3185310c3195300830132f162e1b2d222c562a6928f724701c7ea19aa63aa928ab8aacf8acd3ac05ac19aa2ca87da40f997222f121159bbda44ca83aaa13acd8ac1aad7aac07ab1aa959a6fca0731d37258928772a322c2c2d272e232f10308f300e318d310c328c3218339133103445347a347a3445341034913318338c320c328d310e318f301030232f272e2c2d322c772a89283725731dfca059a61aa907ab7aacf3acd8ac13ac3aaa4ca8bda4159bf121f121159bbda44ca83aaa13acd8ac1aad7aac07ab1aa959a6fca0731d37258928772a322c2c2d272e232f10308f300e318d310c328c3218339133053445347a347a3445341034913318338c320c328d310e318f301030232f272e2c2d322c772a89283725731dfca059a61aa907ab7aacf3acd8ac13ac3aaa4ca8bda4159bf12172220f997da42ca819aa05acd3ac17ad8aac28ab3aa99aa67ea1701cf7246928562a222c1b2d162e132f083095300c318531fd317632ef326f33d9332134453445342134d9336f33ef327632fd3185310c3195300830132f162e1b2d222c562a6928f724701c7ea19aa63aa928ab8aacf8acd3ac03ac19aa2ca87da40f997222f32213963ca40ba8f9a9e6abcfac11ad76ac48ab5aa9daa6ffa1991a9d243328182afe2bf32c092ef52ee52f6a30e3305c31d4315332be3228339233d93305340534d93392332833be325332d4315c31e3306a30e52ff52e092ef32cfe2b182a33289d24991affa1daa65aa948ab76acfcaccface6abf9a90ba83ca41396f32275231190f7a3d6a7d8a9c6aba1ac0bad8bacb3aba6a982a770a3890cb823a627b829b62bc62cb42da32e932f4230ba303931a3310d327732e13228336f33913391336f332833e13277320d32a3313931ba304230932fa32eb42dc62cb62bf229a627b823890c70a382a7b9a99aab8bac03ada1acc6abd8a9d6a7f7a3109075232824e515d7a236a780a965ab7dacfeacafacfaab06aa21a879a476993622db264229162b762c632d522e422f1f308830f2305c31c63122327732be32043318331833ef32be3277322232c6315c31f23088301f30422f522e632d762c162b4229db263622769979a421a806aaebabafac10ad7dac65ab80a936a7d7a2e5152824e9247d1c55a175a61fa904ab74acf1ace8ac28ac67aa84a85ca5ce9ed41f9d25a328772a262c082d122edd2eb02f4130ab3015316e31c6310d32533276328c328c32763253320d32c6316e311531ab304130b02fdd2e122e082d262c772aa3289d25d41fce9e5ca584a867aa28ace8acf1ac74ac04ab1fa975a655a17d1ce924aa25811fa79fb4a5bfa8a4aa44ace4aceaac65acf5aa21a99aa6e3a1b8195f240428bb29762bb12c7f2d502e232ff62f5b30ba3015315c31a331ea31fd310c320c32fd31d431a3315c311531ba305b30f62f232f502e7f2db12c762bbb2904285f24b819e3a19aa621a9f5aa65aceaace4ac3faca4aabfa8b4a5a79f811faa256b264221a39cf3a456a82aaaffabb0ac00ad89ac94abc0a9d8a72fa42799a4214926e028ac2a242cf32cc42d962e4f2f07305b30ab30f23039315c3185318d318d3185315c313931f230ab305b3007304f2f962ec42df32c242cac2ae0284926a42127992fa4d8a7dba9a2ab89ac00adb0ac04ac2aaa56a8f3a4a39c42216b26342716235f8f8ca36ea78ba960ab75acf8acd6ac17ac63aaa4a8d1a5b4a0721c9324fc279929342b682c2d2dea2da82e4f2ff62f41308830d130e3300c310e310e310c31e330ba3088304130f62f4f2fa82eea2d2d2d682c342b9929fc279324721cb4a0d1a5a4a863aa17acd6acf8ac75ac60ab8ba96ea78ca35f8f162334273828c924811c10a131a6eca8c1aa4aace3acedac5eac3aab7fa987a710a4c6984121d7258628222a9a2b882c442dea2d962e232fb02f1f3042306a3095308f308f3095306a3042301f30b02f232f962eea2d442d882c9a2b222a8628d7254121c69810a487a77fa93aab5eacedace3ac4aacc1aaeca831a610a1811cc9243828d7280726bc20299df3a44da822aae1ab9cac03adafac0cac5aaa9ea8f1a576a1b1176323d926e028542ac82b882c2d2dc42d502edd2e772f932fe52f0830103010300830e52f932f422fdd2e502ec42d2d2d882cc82b542ae028d9266323b11776a1f1a59ea85aaa0aacafac08ad9cacf3ab22aa4da8f3a4299dbc200726d728762945273823258a50a31fa74ba906ab4bace6acecac5cac42aba7a90ba8e1a4aa9e961d4d2435270e29542a9a2b682cf32c7f2d122e522ea32ef52e132f232f232f132ff52ea32e522e122e7f2df32c682c9a2b542a0e2935274d24961daa9ee1a40da8a7a942ab5cacecace6ac4bac06ab4ba91fa750a3268a3823452776291e2a4128fb24131ec99f69a570a82caae7ab9eac0aadd3ac23acb9aa1ea906a70ea49a9c041fa8243527e028222a342b242cb12c082d632db42d092e162e272e272e162e092eb42d632d082db12c242c342b222ae0283527a824041f9a9c0ea406a71ea9b9aa23acd3ac0aad9eacf7ab2caa70a869a5c99f131efb2441281e2acf2a1429b12674229d9368a32ba751a90cab43acdeacf8ac88ace3ab36aac1a89aa665a35c9a041f4d24d92686289929ac2a762b262c762cc62cf32c1b2d2c2d2c2d1b2df32cc62c762c262c762bac2a99298628d9264d24041f5c9a65a39aa6c1a836aaccab88acf8acdeac43ac0cab51a92ba768a39d937422b1261429cf2aaa2bef293328ef24e21dfa9f75a579a8fda999ab75acf1ace5ac5cac7bab07aa93a842a665a39a9c961d6323d725fc27e028bb29772a162bb62bfe2b222c322c322c222cfe2bb62b162b772abb29e028fc27d7256323961d9a9c65a342a693a807aa7bab5cace5acf1ac75ac99abfda979a875a5fa9fe21def243328ef29aa2b432cc92a0e29a5265c225592d2a29fa6eba886aa10aca7ac0eaddcac4bac86abdca993a89aa60ea4aa9eb1174121932449260428a3284229f229182a562a772a772a562a182af2294229a3280428492693244121b117aa9e0ea49aa693a8dca986ab4bacdcac0eadceac10ac86aaeba89fa6d2a255925c22a5260e29c92a432cb12ca42be92931282925cb1f0e9d7aa4b0a773a90eab34acd4ac08add6ac3bac86ab07aac1a806a7e1a476a1c698721ca4215f249d25db26a627332869288928892869283328a627db269d255f24a421721cc69876a1e1a406a7c1a807aa86ab3bacdaac0cadd4ac34ac0eab73a9b0a77aa40e9dcb1f29253128e929a42bb12c202d402cde2a42294f271824101ba9a08ba561a8c8a97aab45acdcac02add6ac4bac7bab36aa1ea90da8f1a510a4b4a02799b819d41f3622b8239d24f72437253725f7249d24b8233622d41fb8192799b4a010a4f1a50ba81ea936aa7bab4bacd6ac02addaac45ac7aabc8a961a88ba5a9a0101b18244f274229de2a402c202d982dc72cf02b552aba283e260f22dd916aa21da682a8f6a96aab56acdaac0caddcac5cace3abb9aaa7a99ea887a7d1a52fa4e3a1ce9e7699890c991a701c731d731d701c991a890c7699ce9ee3a12fa4d1a587a79ea8a7a9b9aae3ab5cacddac08addaac56ac6aabf6a982a81da66aa2dd910f223e26ba28552af02bc72c982d242e532d822c682bcd2931282d257d20499921a378a6b0a824aa6aab45acd4ac0eade5ac88ac23ac42ab5aaa7fa9a4a8d8a79aa65ca579a470a3ffa17ea1fca0fca07ea1ffa170a379a45ca59aa6d8a7a4a87fa95aaa42ab23ac88ace5ac0eadd4ac45ac6aab24aab0a878a621a349997d202d253128cd29682b822c532d242eb12ede2d0d2d3d2ce42a4d29b227ca248c1f129cd8a3d4a6b0a8f6a97aab34acceacf1acf8acbaac5cac0cac3aab63aadba921a984a821a882a7daa69aa659a659a69aa6daa682a721a884a821a9c0a963aa3aab0cac5cacbaacf8acf1acceac34ac7aabf6a9b0a8d4a6d8a3129c8c1fca24b2274d29e42a3d2c0d2dde2db12e3d2f6b2ea02dc82c032c932a1f2957276f241e1e809dd8a378a682a8c8a90eab10ac75acdeac0aadecacafac5eac1aaca2abf5aa67aa06aab9a95aa93aa91aa91aa93aa95aa9a6a906aa67aaf5aa94ab1aac5eacafacecac0aaddeac75ac10ac0eabc8a982a878a6d8a3809d1e1e6f2457271f29932a032cc82ca02d6b2e3d2fd52ff92e272e642da72cd92b652af128fb2615241e1e129c21a31da661a873a986aa99ab43ac9eace6ac08adedacd6ac89ac65ac28acebab9aab48ab28ab07ab07ab28ab48ab8babebab28ac65ac89acd6acedac03ade6ac9eac43ac99ab86aa73a961a81da621a3129c1e1e1524fb26f128652ad92ba72c642d272ef92ed52f2b308a2fc82e0a2e4d2d902cab2b372ac628fb266f248c1f49996aa28ba5b0a7eba8fda90cabf7ab4bac9cace3acf8ac00adeaace8acafac8bac76ac8aac7aac7aac8aac76ac8bacaface8aceaac00adf8ace3ac9cac4bacf7ab0cabfda9eba8b0a78ba56aa249998c1f6f24fb26c628372aab2b902c4d2d0a2ec82e8a2f2b30773017306f2fb12ef32d352d792c812b372af1285727ca247d20dd91a9a07aa49fa679a851a92caa06abf3ab3bac75acb0ace4acf1ac10ad03adfcacf8acf3acf3acf8acfcac03ad19adf1ace4acb0ac75ac3bacf3ab06ab2caa51a979a89fa67aa4a9a0dd917d20ca245727f128372a812b792c352df32db12e6f2f17307730ca306b300b30582f992edb2d212d792cab2b652a1f29b2272d250f22101b0e9dd2a275a52ba770a84ba922aac1aa60ab04ac3fac74ac7daca1accfacd3acd8acd8acd3accfaca1ac7dac74ac3fac04ac60abc1aa22aa4ba970a82ba775a5d2a20e9d101b0f222d25b2271f29652aab2b792c212ddb2d992e582f0b306b30ca301e31bf305f30ff2f402f862edb2d352d902cd92b932a4d2931283e261824cb1f5592fa9f68a369a51fa74da8eca88ba92aaaa4aa04ab65abc6abe6ab03ac13ac13ac05ace6abc6ab65ab04aba4aa2aaa8ba9eca84da81fa769a568a3fa9f5592cb1f18243e2631284d29932ad92b902c352ddb2d862e402fff2f5f30bf301e3172311331b3305330ec2f402f992ef32d4d2da72c032ce42acd29ba284f2729255c22e21d9d93c99f50a3f3a431a66ea756a8bfa81fa980a9d8a9f9a919aa3aaa3aaa19aaf9a9d8a980a91fa9bfa856a86ea731a6f3a450a3c99f9d93e21d5c2229254f27ba28cd29e42a032ca72c4d2df32d992e402fec2f5330b33013317231c63167310731aa305330ff2f582fb12e0a2e642dc82c512c682b552a42293128a526ef247422131e258a299d10a18ca3f3a4b4a575a636a7d6a70ba82ca84ca84ca82ca80ba8d6a736a775a6b4a5f3a48ca310a1299d268a131e7422ef24a52631284229552a682b512cc82c642d0a2eb12e582fff2f5330aa3007316731c6311a32bb315e310731b3305f300b306f2fc82e272ea02d0d2d822cf02bde2ae9290e293328b126fb243823bc20811c5f8fa39ca79f55a1d7a2f7a33ca47da4bda4bda47da43ca4f7a3d7a255a1a79fa39c5f8f811cbc203823fb24b12633280e29e929de2af02b822c0d2da02d272ec82e6f2f0b305f30b33007315e31bb311a326f321232bb3167311331bf306b3017308a2ff92e832ede2d532dc72c402ca42bc92aef291429412845270726c92416234221811f7d1ce515119013960f99159b159b0f9913961090e5157d1c811f42211623c9240726452741281429ef29c92aa42b402cc72c532dde2d832ef92e8a2f17306b30bf3013316731bb3112326f32c6326f321a32c63172311e31ca3077302b30d52f3d2fb12e242e982d202db12c432caa2bcf2a1e2a7629d728382834276b26aa25e92428247523f3227222f121f1217222f32275232824e924aa256b2634273828d72876291e2acf2aaa2b432cb12c202d982d242eb12e3d2fd52f2b307730ca301e317231c6311a326f32c632c2326a321532c1316c311831c43070302430c52f2c2f9d2e0f2e812d072d952c242c662b842ac3291f297a28ac2763269325cb240324782294210e2149267c217c2149260e21942178220324cb2493256326ac277a281f29c329842a662b242c952c072d812d0f2e9d2e2c2fc52f24307030c43018316c31c13115326a32c2326a320d32b53161310c31b83063300f30792fe62e6f2ec82d3a2dac2c222c602b7e2a9b29b928bd2774262b25c42332219c1efb1ae80d5199a49ca69da99eac9fac9fa99ea69da49c5199e80dfb1a9c1e3221c4232b257426bd27b9289b297e2a602b222cac2c3a2dc82d6f2ee62e792f0f306330b8300c316131b5310d326a321532b53158310031ac30583003305e2fb52e122e892df42c652caf2b922a9529b228a027db2517245621871d340e979c62a0e4a166a374a404a544a585a5c6a5c6a585a544a504a574a466a3e4a162a0989c340e871d56211724db25a027b2289529922aaf2b652cf42c892d122eb52e5e2f03305830ac3000315831b5311532c13161310031a3304c30ef2f462f9e2ef52d4c2dad2c332c222b052ae9289b27cf250a248b200518539ca5a021a3cea4fba5bca67da71fa86fa88fa8b0a8d0a8d0a8b0a88fa86fa81fa87da7bca6fba5cea421a3a5a0539c05188b200a24cf259b27e928052a222b332cad2c4c2df52d9e2e462fef2f4c30a33000316131c1316c310c31ac304c30dc2f2f2f862edd2d342d8c2cc62b9a2a78295b287f26462471204017159df5a1b0a4fba539a73ba8daa843a9a3a904aa5daa7daa9daabeaabeaa9daa7daa5daa04aaa3a943a9daa83ba839a7fba5b0a4f5a1159d4017712046247f265b2878299a2ac62b8c2c342ddd2d862e2f2fdc2f4c30ac300c316c311831b8305830ef2f2f2f722ec52d1d2d742c972b452af428e92764255722951bec9c0ea2bca472a613a8d2a871a910aaafaa28ab89abe9ab25ac35ac45ac55ac55ac45ac35ac25ace9ab89ab28abafaa10aa71a9d2a813a872a6bca40ea2ec9c951b57226425e927f428452a972b742c1d2dc52d722e2f2fef2f5830b8301831c43063300330462f862ec52d082d5c2c672b162ac428e6264a242220cf9098a071a47ea619a8f4a8cfa9a6aa45abe4ab41ac86acb7ace7ac17ad2cad3cad4cad4cad3cad2cad17ade7acb7ac86ac41ace4ab45aba6aacfa9f4a819a87ea671a498a0cf9022204a24e626c428162a672b5c2c082dc52d862e462f03306330c43070300f305e2f9e2edd2d1d2d5c2c3c2be62995288726c823031ddd9cbaa282a5a8a7e6a8d5a9b0aa8bab32ac8cacdcac2bad79ada9add9adf2add3adc3adb3adb3adc3add3adf2add9ada9ad79ad2baddcac8cac3dac8babb0aad5a9e6a8a8a782a5baa2dd9c031dc82387269528e6293c2b5c2c1d2ddd2d9e2e5e2f0f3070302430792fb52ef52d342d742c672be629682828260a23121bc69e3da493a65ca86fa982aa91ab35aca3ac10ad77adc6ade0ad92ad5fad2aadfaacddaccdacbcacbcaccdacddacfaac2aad5fad92ade0adc6ad77ad10ada3ac35ac91ab82aa6fa95ca893a63da4c69e121b0a2328266828e629672b742c342df52db52e792f2430c52fe62e122e4c2d8c2c972b162a9528282650221c181aa099a425a7d8a8f7a90aab0eac98ac13ad81adf3ad9bad46adf6aca7ac69ac38ac07acccabacab8cab8cabacabccab07ac38ac69aca7acf6ac4dad9badf3ada3ad13ad98ac0eac0aabf7a9d8a825a799a41aa01c18502228269528162a972b8c2c4c2d122ee62ec52f2c2f6f2e892dad2cc62b452ac42887260a231c18d1a0f4a481a706a94caa92ab52acdcac65adf5adb4ad2aadbdac5cac0cac7aabebaa8baa2aaadfa9bea99ea99ea9bea9dfa92aaa8baaebaa7aab0cac5cacbdac2aadb4adf5ad65addcac52ac92ab4caa06a981a7f4a4d1a01c180a238726c428452ac62bad2c892d6f2e2c2f9d2ec82df42c332c9a2af428e626c823121b1aa0f4a4dca734a97aaac0ab83ac20ada9adddad3badbaac4cacbfabe7aa44aaa5a909a9a5a845a8e3a7a2a761a761a7a2a7e3a745a8a5a809a9a5a944aae7aabfab4cacbaac3badddada9ad20ad83acc0ab7aaa34a9dca7f4a41aa0121bc823e626f4289a2a332cf42cc82d9d2e0f2e3a2d652c222b7829e9274a24031dc69e99a481a734a9a8aaeeab9aac3dadeeada2adf6ac7eacc6abdeaa03aa28a970a8a2a764a681a5c0a408a48fa30da30da38fa308a4c0a481a564a6a2a770a828a903aadeaac6ab7eacf6aca2adeead3dad9aaceeaba8aa34a981a799a4c69e031d4a24e9277829222b652c3a2d0f2e812dac2caf2b052a5b2864252220dd9c3da425a706a97aaaeeabb1ac54adfdad5cadb9ac28ac3eab41aa22a947a8daa638a5f4a378a1dd9eb29bab92130d74157415130dab92b29bdd9e78a1f4a338a5daa647a822a941aabaab28acb9ac5cadfdad54adb1aceeab7aaa06a925a73da4dd9c222064255b28052aaf2bac2c812d072d222c922ae9287f265722cf90baa293a6d8a84caac0ab9aac54ad03ae45ada2acffabbbaaa2a909a90aa718a5c5a2b59e1695a61ba220da216a2312245524552412246a23da21a220a61b1695b59ec5a218a50aa709a9a2a9bbaaffaba2ac45ad03ae54ad9aacc0ab4caad8a893a6baa2cf9057227f26e928922a222c072d952c602b95299b274624951b98a082a55ca8f7a992ab83ac3dadfdad45ad8eacd1ab8baa45a907a8e9a587a3859e3d0d671fea22be240726d926a1270728292829280728a127d9260726be24ea22671f3d0d859ee7a4e9a507a845a98baad1ab8eac45adfdad3dad83ac92abf7a95ca882a598a0951b46249b279529602b952c242c7e2ab228cf257120ec9c71a4a8a76fa90aab52ac20adeead5cada2acd1ab61aa17a9a3a716a566a16b989a1e162470253f274428e8289f29c629062a282a282a062ac6299f29e82844283f27702516249a1e6b9866a116a5a3a717a961aad1aba2ac5cadf7ad20ad52ac0aab6fa9a8a771a4ec9c7120cf25b2287e2a242c662b9b29a0270a2440170ea27ea6e6a882aa0eacdcaca9ada2adb9acffab8baa17a94ba7bba45ea006168221f9243227dc286529282acd2a732bbd2b022c132c132c022cbd2b732bcd2a282a6529dc283227f924822106165ea0bba44ba717a98baaffabb9aca2ada9addcac0eac82aae6a87ea60ea240170a24a0279b29662b842ab928db258b20159dbca419a8d5a991ab98ac65adddadf6ac28acbbaa45a9a3a7bba4529ff919c4220526262843295f2ab02b062c592cab2c0c2d022d132d132d022d0c2dab2c592c062cb02b5f2a432926280526c422f919529fbba4a3a745a9bbaa28acf6acddad65ad98ac91abd5a919a8bca4159d8b20db25b928842ac329bd2717240518f5a172a6f4a8b0aa35ac13adf5ad3bad7eacbaaba2a907a816a55ea0f919822364268328d029ec2a042c952cf92c4b2d9d2df42d012e122e122e012ef42d9d2d4b2df92c952c042cec2ad029832864268223f9195ea016a507a8a2a93eab7eac3badfbad13ad35acb0aaf4a872a6f5a105181724bd27c3291f2974265621539cb0a413a8cfa98baba3aca3adb4adbaacc6ab41aa90a8e9a566a10616c4226426b328042a562b4b2cd92c672dfd2d3d2e902ee22e012f112f112f012fe22e902e3d2efd2d672dd92c4b2c562b042ab3286426c422061666a1e9a590a841aac6abbaacb4ada3ada3ac8babcfa913a8b0a4539c562174261f297a282b25871da5a0fba5d2a8a6aa32ac10ad06ae2aad4cacdeaa22a90aa7e7a46b98822105268328042a852b6b2c142dae2d3c2eca2e662f822fd42f0030083008300030d42f822f302fca2e3c2eae2d142d6b2c852b042a8328052682216b9887a30aa722a9deaa4cac2aad06ae10ad32aca6aad2a8fba5a5a0871d2b257a28ac27c423350e21a339a771a945ab8cac77ad9badbdacbfab03aa47a818a5859e9a1ef9242628d029562b6b2c2c2dd42d832e112f9f2f17303a3063308e30883088308e3063303a3017309f2f112f832ed42d2c2d6b2c562bd0292628f9249a1e859e18a547a803aabfabbdac9bad77ad8cac45ab71a939a721a3340ec423ac2763263221979ccea43ba810aae4abdcacc6ad4dad5cace7aa28a9daa6c5a23d0d162432274329ec2a4b2c142dd42d952e3e2fe62f3a308130b330dc300631083108310631dc30b33081303a30e62f3e2f952ed42d142d4b2cec2a4329322716243d0dc5a2daa628a9e7aa5cac46adc6addcace4ab10aa3ba8cea4979c3221632693259c1e62a0fba5daa8afaa41ac2bade0adf6ac0cac44aa70a838a5b59e671f7025dc285f2a042cd92cae2d832e3e2ffe2f5330a430eb30323156317f31873187317f3156313231eb30a4305330fe2f3e2f832eae2dd92c042c5f2adc287025671fb59e38a570a844aa0cacf6ace0ad2bad41acafaadaa8fba562a09c1e9325cb24fb1ae4a1bca643a928ab86ac79ad92ada7ac7aaba5a9a2a7f4a31695ea223f276529b02b952c672d3c2e112fe62f5330b3300f3156319d31e431f83107320732f831cf319d3156310f31b3305330e62f112f3c2e672d952cb02b65293f27ea221695f4a3a2a7a5a97aaba7ac92ad79ad86ac28ab43a9bca6e4a1fb1acb240324e80d66a37da7a3a989abb7aca9ad5fad69acebaa09a964a678a1a61bbe244428282a062c412dfd2dca2e9f2f3a30a4300f316831c03107324e3271329a329a3271324e320732c03168310f31a4303a309f2fca2efd2d412d062c282a4428be24a61b78a164a609a9ebaa69ac5fada9adb7ac89aba3a97da766a3e80d03247822519974a41fa804aae9abe7acd9ad2aad38ac8baaa5a881a5dd9ea2200726e828cd2a592c4b2d3d2e662f17308130eb305631c0311d327232b932ea3214331433ea32b93272321d32c0315631eb3081301730662f3d2e4b2d592ccd2ae8280726a220dd9e81a5a5a88baa38ac2aade4ade7ace9ab04aa1fa874a4519978229421a49c04a56fa85daa25ac17adf2adfaac07ac2aaa45a8c0a4b29bda21d9269f29732bab2c9d2d902e822f3a30ca3032319d3107327232dc3223336a338d338d336a332333dc32723207329d313231ca303a30822f902e9d2dab2c732b9f29d926da21b29bc0a445a82aaa07acfaacf2ad17ad25ac5daa6fa804a5a49c94210e21a69d44a58fa87daa35ac2cadd3adddacccabdfa9e3a708a4ab926a23a127c629bd2b0c2df42de22ed42f6330dc305631e4314e32b93223338e33d5330e340e34d5338e332333b9324e32e4315631dc306330d42fe22ef42d0c2dbd2bc629a1276a23ab9208a4e3a7dfa9ccabddacd3ad2cad35ac7daa8fa844a5a69d0e218820a99e85a5b0a89daa45ac3cadc3adcdacacabbea9a2a78fa3130d12240728062a022c022d012e012f00308e3006317f31f831713200336a33d5331f34433443341f34d5336a3300337132f8317f3106318e300030012f012e022d022c062a07281224130d8fa3a2a7bea9acabcdacc3ad3cad45ac9daab0a885a5a99e88207c21ac9fc6a5d0a8beaa55ac4cadb3adbcac8cab9ea961a70da3741555242928282a132c132d122e112f083088300831873107329a3214338d330e3443347834783443340e348d3314339a3207328731083188300830112f122e132d132c282a2928552474150da361a79ea98cabbcacb3ad4cad55acbeaad0a8c6a5ac9f7c217c21ac9fc6a5d0a8beaa55ac4cadb3adbcac8cab9ea961a70da3741555242928282a132c132d122e112f083088300831873107329a3214338d33033443347834783443340e348d3314339a3207328731083188300830112f122e132d132c282a2928552474150da361a79ea98cabbcacb3ad4cad55acbeaad0a8c6a5ac9f7c214926a99e85a5b0a89daa45ac3cadc3adcdacacabbea9a2a78fa3130d12240728062a022c022d012e012f00308e3006317f31f8317132ea326a33d5331f34433443341f34d5336a33ea327132f8317f3106318e300030012f012e022d022c062a07281224130d8fa3a2a7bea9acabcdacc3ad3cad45ac9daab0a885a5a99e49260e21a69d44a58fa87daa35ac2cadd3adddacccabdfa9e3a708a4ab926a23a127c629bd2b0c2df42de22ed42f6330dc305631cf314e32b93223338e33d5330e340e34d5338e332333b9324e32cf315631dc306330d42fe22ef42d0c2dbd2bc629a1276a23ab9208a4e3a7dfa9ccabddacd3ad2cad35ac7daa8fa844a5a69d0e219421a49c04a56fa85daa25ac17adf2adfaac07ac2aaa45a8c0a4b29bda21d9269f29732bab2c9d2d902e822f3a30b33032319d3107327232dc3223336a338d338d336a332333dc32723207329d313231b3303a30822f902e9d2dab2c732b9f29d926da21b29bc0a445a82aaa07acfaacf2ad17ad25ac5daa6fa804a5a49c94217822519974a41fa804aae9abe7acd9ad2aad38ac8baaa5a881a5dd9ea2200726e828cd2a592c4b2d3d2e302f17308130eb305631c0311d327232b9320033143314330033b93272321d32c0315631eb3081301730302f3d2e4b2d592ccd2ae8280726a220dd9e81a5a5a88baa38ac2aade4ade7ace9ab04aa1fa874a4519978220324e80d66a37da7a3a989abb7aca9ad5fad69acebaa09a964a678a1a61bbe244428282a062cf92cfd2dca2e9f2f3a30a4300f316831c03107324e3271329a329a3271324e320732c03168310f31a4303a309f2fca2efd2df92c062c282a4428be24a61b78a164a609a9ebaa69ac5fada9adb7ac89aba3a97da766a3e80d0324cb24fb1ae4a1bca643a928ab86ac79ad92ada7ac7aaba5a9a2a7f4a31695ea223f276529b02b952c672d3c2e112fe62f5330b3300f3156319d31e431f83107320732f831cf319d3156310f31b3305330e62f112f3c2e672d952cb02b65293f27ea221695f4a3a2a7a5a97aaba7ac92ad79ad86ac28ab43a9bca6e4a1fb1acb2493259c1e62a0fba5daa8afaa41ac2bade0adf6ac0cac44aa70a838a5b59e671f7025dc285f2a042cd92cae2d832e3e2ffe2f5330a430eb30323156317f31873187317f3156313231eb30a4305330fe2f3e2f832eae2dd92c042c5f2adc287025671fb59e38a570a844aa0cacf6ace0ad2bad41acafaadaa8fba562a09c1e932563263221979ccea43ba810aae4abdcacc6ad46ad5cace7aa28a9daa6c5a23d0d162432274329ec2a4b2c142dd42d952e3e2fe62f3a308130ca30dc300631083108310631dc30ca3081303a30e62f3e2f952ed42d142d4b2cec2a4329322716243d0dc5a2daa628a9e7aa5cac4dadc6addcace4ab10aa3ba8cea4989c32216326ac27c423350e21a339a771a945ab8cac77ad9badbdacbfab03aa47a818a5859e9a1ef9242628d029562b6b2c2c2dd42d832e112f9f2f17303a3063308e30883088308e3063303a3017309f2f112f832ed42d2c2d6b2c562bd0292628f9249a1e859e18a547a803aabfabbdac9bad77ad8cac45ab71a939a721a3340ec423ac277a282b25871da5a0fba5d2a8a6aa3dac10adf3ad2aad4cacdeaa22a90aa7e7a46b98822105268328042a852b6b2c142dae2d3c2eca2e662f822fd42f0030083008300030d42f822f302fca2e3c2eae2d142d6b2c852b042a8328052682216b98e7a40aa722a9deaa4cac2aad06ae10ad32aca6aad2a8fba5a5a0871d2b257a281f2974265621539cb0a413a8cfa98baba3aca3adb4adbaacc6ab41aa09a9e9a566a10616c4226426b328042a562b4b2cd92c672dfd2d3d2e902ee22e012f112f112f012fe22e902e3d2efd2d672dd92c4b2c562b042ab3286426c422061666a1e9a590a841aac6abbaacb4ada3ada3ac8babcfa913a8b0a4539c562174261f29c329bd2717240518f5a172a6f4a8b0aa35ac13adf5ad3bad7eacbaaba2a907a816a55ea0f919822364268328d029ec2a042c952c412d4b2d9d2df42d012e122e122e012ef42d9d2d4b2d412d952c042cec2ad029832864268223f9195ea016a507a8a2a9baab7eac3badf5ad13ad35acb0aaf4a872a6f5a105181724bd27c329842ab928db258b20159dbca419a8d5a991ab98ac65adddadf6ac28acbbaa45a9a3a7bba4529ff919c4220526262843295f2ab02b062c592cab2c0c2d022d132d132d022d0c2dab2c592c062cb02b5f2a432926280526c422f919529fbba4a3a745a9bbaa28acf6acddad65ad98ac91abd5a919a8bca4159d8b20db25b928842a662b9b29a0270a2440170ea27ea6e6a882aa0eacdcaca9ada2adb9acffab8baa17a94ba7e2a45ea006168221f9243227dc286529282acd2a732bbd2b022c132c132c022cbd2b732bcd2a282a6529dc283227f924822106165ea0bba44ba717a98baaffabb9aca2ada9addcac0eac82aae6a87ea60ea240170a24a0279b29662b242c7e2ab228cf257120ec9c71a4a8a76fa90aab52ac20adeead5cada2acd1ab61aa17a9a3a716a566a16b989a1e162470253f274428e8289f29c629062a282a282a062ac6299f29e82844283f27702516249a1e6b9866a116a5a3a717a961aad1aba2ac5cad05ae20ad52ac0aab6fa9a8a771a4ec9c7120cf25b2287e2a242c952c602b95299b274624951b98a082a55ca8f7a992ab83ac3dadffad45ad8eacd1ab8baa45a907a8e9a587a3859e3d0d671fea22be240726d926a1270728292829280728a127d9260726be24ea22671f3d0d859e87a3e9a507a845a98baad1ab8eac45ad00ae3dad83ac92abf7a95ca882a598a0951b46249b279529602b952c072d222c922ae9287f265722cf90baa293a6d8a84caac0ab9aac54adf9ad45ada2acffabbbaaa2a990a80aa718a5c5a2b59e1695a61ba220da216a2312245524552412246a23da21a220a61b1695b59ec5a218a50aa790a8a2a9bbaaffaba2ac45adf9ad54ad9aacc0ab4caad8a893a6baa2cf9057227f26e928922a222c072d812dac2caf2b052a5b2864252220dd9c3da425a706a97aaaeeabb1ac54ad00ae5cadb9ac28ac3eab41aa22a947a8daa638a5f4a378a1dd9eb29bab92130d74157415130dab92b29bdd9e78a1f4a338a5daa647a822a941aabaab28acb9ac5cadffad54adb1aceeab7aaa06a925a73da4dd9c222064255b28052aaf2bac2c812d0f2e3a2d652c222b7829e9274a24031dc69e99a481a734a9a8aaeeab9aac3dad05aea2adf6ac7eacc6abdeaa03aa28a970a8a2a764a681a5c0a408a48fa30da30da38fa308a4c0a481a564a6a2a770a828a903aadeaac6ab7eacf6ac7fad05ae3dad9aaceeaba8aa34a981a799a4c69e031d4a24e9277829222b652c3a2d0f2e9d2ec82df42c332c9a2af428e626c823121b1aa0f4a4dca734a97aaac0ab83ac20ada9adddad3badbaac4cacbfabe7aa44aaa5a909a9a5a845a8e3a7a2a761a761a7a2a7e3a745a8a5a809a9a5a944aae7aabfab4cacbaac3badddada9ad20ad83acc0ab7aaa34a9dca7f4a41aa0121bc823e626f4289a2a332cf42cc82d9d2e2c2f6f2e892dad2cc62b452ac42887260a231c18d1a0f4a481a706a94caa92ab52acdcac65ad01aeb4ad2aadbdac5cac0cac7aabebaa8baa2aaadfa9bea99ea99ea9bea9dfa92aaa8baaebaa7aab0cac5cacbdac2aad98ad01ae65addcac52ac92ab4caa06a981a7f4a4d1a01c180a238726c428452ac62bad2c892d6f2e2c2fc52fe62e122e4c2d8c2c972b162a9528282650221c181aa099a425a7d8a8f7a90aab0eac98ac13ada3ad06ae9bad4dadf6aca7ac69ac38ac07acccabacab8cab8cabacabccab07ac38ac69aca7acf6ac46ad9bad06aea3ad13ad98ac0eac0aabf7a9d8a825a799a41aa01c18502228269528162a972b8c2c4c2d122ee62ec52f2430792fb52ef52d342d742c672be629682828260a23121bc69e3da493a65ca86fa982aa91ab35aca3ac10ad77adc6ade0ad92ad5fad2aadfaacddaccdacbcacbcaccdacddacfaac2aad5fad92ade0adc6ad77ad10ada3ac35ac91ab82aa6fa95ca893a63da4c69e121b0a2328266828e629672b742c342df52db52e792f243070300f305e2f9e2edd2d1d2d5c2c3c2be62995288726c823031ddd9cbaa282a5a8a7e6a8d5a9b0aa8bab32ac8cacdcac2bad79ada9ade4adf2add3adc3adb3adb3adc3add3adf2ade4ada9ad79ad2baddcac8cac32ac8babb0aad5a9e6a8a8a782a5baa2dd9c031dc82387269528e6293c2b5c2c1d2ddd2d9e2e5e2f0f307030c43063300330462f862ec52d082d5c2c672b162ac428e6264a242220cf9098a071a47ea619a8f4a8cfa9a6aa45abe4ab41ac86acb7ace7ac17ad2cad3cad4cad4cad3cad2cad17ade7acb7ac86ac41ace4ab45aba6aacfa9f4a819a87ea671a498a0cf9022204a24e626c428162a672b5c2c082dc52d862e462f03306330c4301831b8305830ef2f2f2f722ec52d1d2d742c972b452af428e92764255722951bec9c0ea2bca472a613a8d2a871a910aaafaa28ab89abe9ab25ac35ac45ac55ac55ac45ac35ac25ace9ab89ab28abafaa10aa71a9d2a813a872a6bca40ea2ec9c951b57226425e927f428452a972b742c1d2dc52d722e2f2fef2f5830b83018316c310c31ac304c30dc2f2f2f862edd2d342d8c2cc62b9a2a78295b287f26462471204017159df5a1b0a4fba539a73ba8daa843a9a3a904aa5daa7daa9daabeaabeaa9daa7daa5daa04aaa3a943a9daa83ba839a7fba5b0a4f5a1159d4017712046247f265b2878299a2ac62b8c2c342ddd2d862e2f2fdc2f4c30ac300c316c31c13161310031a3304c30ef2f462f9e2ef52d4c2dad2c332c222b052ae9289b27cf250a248b200518539ca5a021a3cea4fba5bca67da71fa86fa88fa8b0a8d0a8d0a8b0a88fa86fa81fa87da7bca6fba5cea421a3a5a0539c05188b200a24cf259b27e928052a222b332cad2c4c2df52d9e2e462fef2f4c30a33000316131c1311532b53158310031ac30583003305e2fb52e122e892df42c652caf2b922a9529b228a027db2517245621871d350e979c62a0e4a166a374a404a544a585a5c6a5c6a585a544a504a574a466a3e4a162a0989c340e871d56211724db25a027b2289529922aaf2b652cf42c892d122eb52e5e2f03305830ac3000315831b53115326a320d32b53161310c31b83063300f30792fe62e6f2ec82d3a2dac2c222c602b7e2a9b29b928bd2774262b25c42332219c1efb1ae80d5199a49ca69da99eac9fac9fa99ea69da49c5199e80dfb1a9c1e3221c4232b257426bd27b9289b297e2a602b222cac2c3a2dc82d6f2ee62e792f0f306330b8300c316131b5310d326a32c2326a321532c1316c311831c43070302430c52f2c2f9d2e0f2e812d072d952c242c662b842ac3291f297a28ac2763269325cb240324782294210e2188207c217c2188200e21942178220324cb2493256326ac277a281f29c329842a662b242c952c072d812d0f2e9d2e2c2fc52f24307030c43018316c31c13115326a32c232c6326f321a32c63172311e31ca3077302b30d52f3d2fb12e242e982d202db12c432caa2bcf2a152a7629d728382834276b26aa25e92428247523f3227222d924f6227222f32275232824e924aa256b2634273828d7287629152acf2aaa2b432cb12c202d982d242eb12e3d2fd52f2b307730ca301e317231c6311a326f32c6326f321232bb3167311331bf306b3017308a2ff92e832ede2d532dc72c402ca42bc92aef291429412845270726c92416234221811f7d1ce515119013960f99159b159b0f9913961090e5157d1c811f42211623c9240726452741281429ef29c92aa42b402cc72c532dde2d832ef92e8a2f17306b30bf3013316731bb3112326f321a32bb315e310731b3305f300b306f2fc82e272ea02d0d2d822cf02bde2ae9290e293328b126fb243823bc20811c5f8fa39ca79f55a1d7a2f7a33ca47da4bda4bda47da43ca4f7a3d7a255a1a79fa39c5f8f811cbc203823fb24b12633280e29e929de2af02b822c0d2da02d272ec82e6f2f0b305f30b33007315e31bb311a32c63167310731aa305330ff2f582fb12e0a2e642dc82c512c682b552a42294528a526ef247422131e258a299d10a18ca3f3a4b4a575a636a7d6a70ba82ca84ca84ca82ca80ba8d6a736a775a6b4a5f3a48ca310a1299d268a131e7422ef24a52631284229552a682b512cc82c642d0a2eb12e582fff2f5330aa3007316731c63172311331b3305330ec2f402f992ef32d4d2da72c032ce42acd29ba284f2740255c22e21d9d93c99f50a3f3a431a66ea756a8bfa81fa980a9d8a9f9a919aa3aaa3aaa19aaf9a9d8a980a91fa9bfa856a86ea731a6f3a450a3c99f9d93e21d5c2229254f27ba28cd29e42a032ca72c4d2df32d992e402fec2f5330b330133172311e31bf305f30ff2f402f862edb2d352d902cd92b932a4d2953283e261824dc1f5592fa9f68a369a51fa74da8eca88ba92aaaa4aa04ab65abc6abe6ab03ac13ac13ac05ace6abc6ab65ab04aba4aa2aaa8ba9eca84da81fa769a568a3fa9f5592cb1f18243e2653284d29932ad92b902c352ddb2d862e402fff2f5f30bf301e31ca306b300b30582f992edb2d212d792cab2b652a1f29b2272d250f22101b0e9dd2a275a52ba770a84ba925aac1aa60abffab44ac74aca5aca1accfacd3acd8acd8acd3accfaca1aca5ac74ac44acffab60abc1aa22aa4ba970a82ba775a5d2a20e9d101b0f222d25b2271f29652aab2b792c212ddb2d992e582f0b306b30ca30773017306f2fb12ef32d352d792c812b372af1285727ca247d20dd91a9a07aa49fa662a851a92caa06abe1ab4aac9aacb0ace4acf1ac2fad03adfcacf8ac1aad1aadf8acfcac03ad2fadf1ace4acb0ac9aac4aace1ab06ab2caa51a979a89fa67aa4a9a0dd917d20ca245727f128372a812b792c352df32db12e6f2f173077302b308a2fc82e0a2e4d2d902cab2b372ac628fb266f248c1f49996aa28ba5b0a7eba8fda90cabe7ab4bac9cace3acf8ac00adeaace8acafac8bac9bac8aac7aac7aac8aac9bac8bacaface8aceaac00adf8ace3ac9cac4bace7ab0cabfda9eba8b0a78ba56aa249998c1f6f24fb26c628372aab2b902c4d2d0a2ec82e8a2f2b30d52ff92e272e642da72cd92b652af128fb2615241e1e129c21a31da654a873a986aa99ab43ac9eace6ac08adedacd6ac89ac65ac28acfaabb3ab48ab28ab07ab07ab28ab48abb3abfaab28ac65ac89acd6acedac03ade6ac9eac43ac99ab86aa73a961a81da621a3129c1e1e1524fb26f128652ad92ba72c642d272ef92ed52f3d2f832ea02dc82c032c932a1f2957276f241e1e809dd8a378a682a8c8a90eab10ac9aacdeac03adecacafac5eac17aca2abf5aa67aa06aab9a95aa93aa91aa91aa93aa95aa9a6a906aa67aaf5aa94ab17ac5eacafacecac03addeac9aac10ac0eabc8a982a878a6d8a3809d1e1e6f2457271f29932a032cc82ca02d832e3d2fb12ede2d0d2d512ce42a4d29b227ca248c1f129cd8a3d4a6b0a8f6a97aab34acdeacf1acf8acd3ac5cac0cac3aab63aadba921a984a821a882a7daa69aa659a659a69aa6daa682a721a884a821a9c0a963aa3aab0cac5cacd3acf8acf1acdeac34ac7aabf6a9b0a8d4a6d8a3129c8c1fca24b2274d29e42a512c0d2dde2db12e242e532d822c682bcd2953282d257d20499921a378a6b0a824aa6aab45acd4acfface5ac88ac23ac42ab5aaa7fa9a4a8d8a79aa65ca579a470a3ffa17ea1fca0fca07ea1ffa170a379a45ca59aa6d8a7a4a87fa95aaa42ab23ac88ace5acffacd4ac45ac6aab24aab0a878a621a349997d202d255328cd29682b822c532d242e982dc72cf02b552aba283e260f22dd916aa21da682a8f6a96aab56acdaac06addcac5cace3abb9aaa7a99ea887a7d1a52fa4e3a1ce9e7699890c991a701c731d731d701c991a890c7699ce9ee3a12fa4d1a587a79ea8a7a9b9aae3ab5cacdcac07addcac56ac6aabf6a982a81da66aa2dd910f223e26ba28552af02bc72c982d202d402cde2a42294f271824101ba9a08ba554a8c8a97aab45acdaac02add6ac4bac7bab36aa1ea90da8f1a510a4b4a02799b819d41f3622b8239d24f72437253725f7249d24b8233622d41fb8192799b4a010a4f1a50ba81ea936aa7bab4bacd6ac02addaac45ac7aabc8a954a88ba5a9a0101b18244f274229de2a402c202db12ca42be92931282925cb1f0e9d7aa4b0a773a90eab34acd4ac08add6ac3bac86ab07aac1a806a7e1a476a1c698721ca4215f249d25db26a627332869288928892869283328a627db269d255f24a421721cc69876a1e1a406a7c1a807aa86ab3bacd6ac0cadd4ac34ac0eab73a9b0a77aa40e9ddc1f40254528e929a42bb12c432cc92a0e29a5265c225592d2a29fa6eba886aa10acdeac0eadddac4bac86abdca993a89aa60ea4aa9eb1174121932449260428a3284229f229182a562a772a772a562a182af2294229a3280428492693244121b117aa9e0ea49aa693a8dca986ab4bacdcac0eaddeac10ac86aaeba89fa6d2a255925c22a5260e29c92a432caa2bef293328ef24e21dfa9f75a562a8fda999ab9aacf1ace5ac5cac7bab07aa93a842a665a39a9c961d6323d725fc27e028bb29772a162bb62bfe2b222c322c322c222cfe2bb62b162b772abb29e028fc27d7256323961d9a9c65a342a693a807aa7bab5cace5acf1ac9aac99abfda962a875a5fa9fe21def243328ef29aa2bcf2a1429b12674229d9368a32ba751a90cab43acdeacf8ac88ace3ab36aac1a89aa665a35c9a041f4d24d92686289929ac2a762b262c762cc62cf32c1b2d2c2d2c2d1b2df32cc62c762c262c762bac2a99298628d9264d24041f5c9a65a39aa6c1a836aaccab88acf8acdeac43ac0cab51a92ba768a39d937422b1261429cf2a152a4128fb24131ec99f69a570a82caae7ab9eac0aadd3ac23acb9aa1ea906a70ea49a9c041fa8243527e028222a342b242cb12c082d632db42d092e162e272e272e162e092eb42d632d082db12c242c342b222ae0283527a824041f9a9c0ea406a71ea9b9aa23acd3ac0aad9eace7ab2caa70a869a5c99f131efb244128152a762945273823268a50a31fa74ba906ab4bace6acecac5cac42aba7a90ba8e1a4aa9e961d4d2435270e29542a9a2b682cf32c7f2d122e522ea32ef52e132f232f232f132ff52ea32e522e122e7f2df32c682c9a2b542a0e2935274d24961daa9ee1a40da8a7a942ab5cacecace6ac4bac06ab4ba91fa750a3268a382345277629d7280726bc20299df3a44da826aae1ab9cac03adafac0cac5aaa9ea8f1a576a1b1176323d926e028542ac82b882c2d2dc42d502edd2e772f932fe52f0830103010300830e52f932f422fdd2e502ec42d2d2d882cc82b542ae028d9266323b11776a1f1a59ea85aaa0aacafac08ad9cace1ab25aa4da8f3a4299dbc200726d7283828c924811c10a131a6eca8c1aa4aace3acedac5eac3aab7fa987a710a4c6984121d7258628222a9a2b882c442dea2d962e232fb02f1f3042306a3095308f308f3095306a3042301f30b02f232f962eea2d442d882c9a2b222a8628d7254121c69810a487a77fa93aab7bacedace3ac3bacc1aaeca831a610a1811cc9243828342716235f8f8ca36ea78ba960ab9aacf8acd6ac1aac63aaa4a8d1a5b4a0721c9324fc279929342b682c2d2dea2da82e4f2ff62f41308830ba30e3300c310e310e310c31e330ba3088304130f62f4f2fa82eea2d2d2d682c342b9929fc279324721cb4a0d1a5a4a863aa1aacd6acf8ac75ac60ab8ba96fa78ca35f8f162334276b264221a39cf3a456a82aaaffabb0ac00ad89ac94abc0a9d8a72fa42799a4214926e028ac2a242cf32cc42d962e4f2f07305b30ab30f23039315c3185318d318d3185315c313931f230ab305b3007304f2f962ec42df32c242cac2ae0284926a42127992fa4d8a7dba9a2ab89ac00adb0ac04ac2aaa56a8f3a4a39c42216b26aa25811fa79fb4a5bfa8a4aa44ace4aceaac65acf5aa21a99aa6e3a1b8195f240428bb29762bb12c7f2d502e232ff62f5b30ba3015315c31a331ea31fd310c320c32fd31d431a3315c311531ba305b30f62f232f502e7f2db12c762bbb2904285f24b819e3a19aa621a9f5aa65aceaace4ac3faca4aabfa8b4a5a79f811faa25e9247d1c55a175a61fa904ab74acf1ace8ac28ac67aa84a85ca5ce9ed41f9d25a328772a262c082d122edd2eb02f4130ab3015316e31c6310d32533276328c328c32763253320d32c6316e311531ab304130b02fdd2e122e082d262c772aa3289d25d41fce9e5ca584a867aa28ace8acf1ac74ac04ab1fa975a655a17d1ce9242824e515d7a236a780a965aba5ac2fadafacfaab06aa21a879a476993622db264229162b762c632d522e772f1f308830f2305c31c63122327732be32ef3218331833ef32be3277322232c6315c31f23088301f30772f522e632d762c162b4229db263622769979a421a806aaebabafacfeaca5ac65ab80a936a7d7a2e515282475231190f7a3d6a7d8a9c6aba1ac3dad8bacb3aba6a982a770a3890cb823a627f229b62bc62cb42da32e932f4230d1303931a3310d327732e13228336f33913391336f332833e13277320d32a3313931d1304230932fa32eb42dc62cb62bf229a627b823890c70a382a7b9a99aab8bac3dada1acc6abd8a9d6a7f7a310907523f32213963ca40ba8f9a9e6abcfacfcac9bac48ab5aa9daa6ffa1991a9d243328182afe2bf32c092ef52ee52f6a30e3305c31ea315332be3228339233d93310341034d93392332833be325332ea315c31e3306a30e52ff52e092ef32cfe2b182a33289d24991affa1daa65aa948ab9bac2badcface6abf9a90ba83ca41396f32272220f997da42ca819aa05acd3acf8ac8aac28ab3aa99aa67ea1701cf7246928562a222c1b2d162e132f083095300c318531fd31763204336f33d9332134453445342134d9336f3304337632fd3185310c3195300830132f162e1b2d222c562a6928f724701c7ea19aa63aa928ab8aac1fadd3ac03ac19aa2ca87da40f997222f622159bbda44ca83aaa13acd8ac1aad7aac07ab1aa959a6fca0731d37258928772a322c2c2d272e232f10308f300e318d310c328c3218339133103445347a347a3445341034913318338c320c328d310e318f301030232f272e2c2d322c772a89283725731dfca059a61aa907ab7aac13add8ac13ac3aaa4ca8bda4159bf622d924159bbda44ca83aaa13acd8ac1aad7aac07ab1aa959a6fca0731d37258928772a322c2c2d272e232f10308f300e318d310c328c3218339133053445347a347a3445341034913318338c320c328d310e318f301030232f272e2c2d322c772a89283725731dfca059a61aa907ab7aac13add8ac13ac3aaa4ca8bda4159bd32472220f997da42ca819aa03acd3acf8ac8aac28ab3aa99aa67ea1701cf7246928562a222c1b2d162e132f083095300c318531fd317632ef326f33d9332134453445342134d9336f33ef327632fd3185310c3195300830132f162e1b2d222c562a6928f724701c7ea19aa63aa928ab8aac1fadd3ac05ac19aa2ca87da40f997222f32213963ca40ba8f9a9e6abcfacfcac9bac48ab5aa9daa6ffa1991a9d243328182afe2bf32c092ef52ee52f6a30e3305c31d4315332be3228339233d93305340534d93392332833be325332d4315c31e3306a30e52ff52e092ef32cfe2b182a33289d24991affa1daa65aa948ab9bac2badcface6abf9a90ba83ca41396f32275231190f7a3d6a7d8a9c6aba1ac03ad8bacb3abb9a982a770a3890cb823a627f229b62bc62cb42da32e932f4230ba303931a3310d327732e13228336f33913391336f332833e13277320d32a3313931ba304230932fa32eb42dc62cb62bf229a627b823890c70a382a7a6a98bab8bac3dada1acc6abd8a9d6a7f7a3109075232824e515d7a236a780a965aba5ac2fadafacfaab06aa21a879a476993622db264229162b762c632d522e422f1f308830f2305c31c63122327732be32043318331833ef32be3277322232c6315c31f23088301f30422f522e632d762c162b4229db263622769979a421a806aaebabafac2fada5ac65ab80a936a7d7a2e5152824e9247d1c55a175a61fa904ab74acf1ace8ac28ac67aa84a85ca5ce9ed41f9d25a328772a262c082d122edd2eb02f4130ab3015316e31c6310d32533276328c328c32763253320d32c6316e311531ab304130b02fdd2e122e082d262c772aa3289d25d41fce9e5ca584a867aa28ace8acf1ac74ac04ab1fa975a655a17d1ce924aa25811fa79fb4a5bfa8a4aa44ace4aceaac65acf5aa21a99aa6e3a1b8195f240428bb29762bb12c7f2d502e232ff62f5b30ba3015315c31a331ea31fd310c320c32fd31d431a3315c311531ba305b30f62f232f502e7f2db12c762bbb2904285f24b819e3a19aa621a9f5aa65aceaace4ac3faca4aabfa8b4a5a79f811faa256b264221a39cf3a456a82aaaffabb0ac00ad89aca2abdba9d8a72fa42799a4214926e028ac2a242cf32cc42d962e4f2f07305b30ab30f23039315c3185318d318d3185315c313931f230ab305b3007304f2f962ec42df32c242cac2ae0284926a42127992fa4d8a7c0a994ab89ac00adb0ac04ac2aaa56a8f3a4a39c42216b26342716235f8f8ca36ea78ba960ab9aacf8acd6ac17ac63aaa4a8d1a5b4a0721c9324fc279929342b682c2d2dea2da82e4f2ff62f41308830d130e3300c310e310e310c31e330ba3088304130f62f4f2fa82eea2d2d2d682c342b9929fc279324721cb4a0d1a5a4a863aa17acd6acf8ac75ac60ab8ba96fa78ca35f8f162334273828c924811c10a131a6eca8c1aa4aace3acedac5eac3aab7fa987a710a4c6984121d7258628222a9a2b882c442dea2d962e232fb02f1f3042306a3095308f308f3095306a3042301f30b02f232f962eea2d442d882c9a2b222a8628d7254121c69810a487a77fa93aab7bacedace3ac4aacc1aaeca831a610a1811cc9243828d7280726bc20299df3a44da822aae1ab9cac08adafac0cac5aaa9ea8f1a576a1b1176323d926e028542ac82b882c2d2dc42d502edd2e772f932fe52f0830103010300830e52f932f422fdd2e502ec42d2d2d882cc82b542ae028d9266323b11776a1f1a59ea85aaa0aacafac03ad9cacf3ab22aa4da8f3a4299dbc200726d728762945273823258a50a31fa74ba906ab4bace6acecac5cac42aba7a90ba8e1a4aa9e961d4d2435270e29542a9a2b682cf32c7f2d122e522ea32ef52e132f232f232f132ff52ea32e522e122e7f2df32c682c9a2b542a0e2935274d24961daa9ee1a40ba8a7a942ab5cacecace6ac4bac06ab4ba91fa750a3268a382345277629152a4128fb24131ec99f69a570a82caae7ab9eac0aadd3ac23acb9aa1ea906a70ea49a9c041fa8243527e028222a342b242cb12c082d632db42d092e162e272e272e162e092eb42d632d082db12c242c342b222ae0283527a824041f9a9c0ea406a71ea9b9aa23acd3ac0aad9eacf7ab2caa70a869a5c99f131efb244128152acf2a1429b12674229d9368a32ba751a90cab43acdeacf8ac88acccab36aac1a89aa665a35c9a041f4d24d92686289929ac2a762b262c762cc62cf32c1b2d2c2d2c2d1b2df32cc62c762c262c762bac2a99298628d9264d24041f5c9a65a39aa6c1a836aaccab88acf8acdeac43ac0cab51a92ba768a39d937422b1261429cf2aaa2bef293328ef24e21dfa9f75a579a8fda999ab9aacf1ace5ac5cac7bab07aa93a842a665a39a9c961d6323d725fc27e028bb29772a162bb62bfe2b222c322c322c222cfe2bb62b162b772abb29e028fc27d7256323961d9a9c65a342a693a807aa7bab5cace5acf1ac75ac99abfda979a875a5fa9fe21def243328ef29aa2b432cc92a0e29a5265c225592d2a29fa6eba886aa10acdeac0eaddcac4bac86abdca993a89aa60ea4aa9eb1174121932449260428a3284229f229182a562a772a772a562a182af2294229a3280428492693244121b117aa9e0ea49aa693a8dca986ab4bacdcac0eaddeac10ac86aaeba89fa6d2a255925c22a5260e29c92a432cb12ca42be92945284025dc1f0e9d7aa4b0a773a90eab34acd4ac0cadd6ac3bac86ab07aac1a806a7e1a476a1c698721ca4215f249d25db26a627332869288928892869283328a627db269d255f24a421721cc69876a1e1a406a7c1a807aa86ab3bacd6ac08add4ac34ac0eab73a9b0a77aa40e9dcb1f29253128e929a42bb12c202d402cde2a42294f271824101ba9a08ba561a8c8a97aab45acdaac02add6ac4bac7bab36aa1ea90ba8f1a510a4b4a02799b819d41f3622b8239d24f72437253725f7249d24b8233622d41fb8192799b4a010a4f1a50ba81ea936aa7bab4bacdaac02addcac45ac7aabc8a961a88ba5a9a0101b18244f274229de2a402c202d982dc72cf02b552aba283e260f22dd916aa21da682a8f6a96aab56acdaac08adddac5cacccabb9aaa7a99ea887a7d1a52fa4e3a1ce9e7699890c991a701c731d731d701c991a890c7699ce9ee3a12fa4d1a587a79ea8a7a9b9aaccab5cacdcac0caddaac56ac6aabf6a982a81da66aa2dd910f223e26ba28552af02bc72c982d242e532d822c682bcd2953282d257d20499921a378a6b0a824aa6aab45acd4ac0eade5ac88ac23ac42ab5aaa7fa9a4a8d8a79aa65ca579a470a3ffa17ea1fca0fca07ea1ffa170a379a45ca59aa6d8a7a4a87fa95aaa42ab23ac88ace5ac0eadd4ac45ac6aab24aab0a878a621a349997d202d255328cd29682b822c532d242eb12ede2d0d2d512ce42a4d29b227ca248c1f129cd8a3d4a6b0a8f6a97aab34acdeacf1acf8acd3ac5cac0aac3aab63aac0a921a984a821a882a7daa69aa659a659a69aa6daa682a721a884a821a9dba963aa3aab0aac5cacd3acf8acf1acdeac34ac7aabf6a9b0a8d4a6d8a3129c8c1fca24b2274d29e42a512c0d2dde2db12e3d2f832ea02dc82c032c932a1f2957276f241e1e809dd8a378a682a8c8a90eab10ac9aacdeac0aadecacafac7bac1aac94abf5aa67aa06aaa6a95aa93aa91aa91aa93aa95aa9b9a906aa67aaf5aaa2ab19ac7bacafacecac0aaddeac75ac10ac0eabc8a982a878a6d8a3809d1e1e6f2457271f29932a032cc82ca02d832e3d2fd52ff92e272e642da72cd92b652af128fb2615241e1e129c21a31da654a873a986aa99ab43ac9eace6ac03adedacd6ac89ac65ac28acebab8bab48ab28ab07ab07ab28ab48ab9aabebab28ac65ac89acd6acedac08ade6ac9eac43ac99ab86aa73a961a81da621a3129c1e1e1524fb26f128652ad92ba72c642d272ef92ed52f2b308a2fc82e0a2e4d2d902cab2b372ac628fb266f248c1f49996aa28ba5b0a7eba8fda90cabf7ab4bac9cace3acf8ac00adeaace8acafac8bac9bac8aac7aac7aac8aac9bac8bacaface8aceaac00adf8ace3ac9cac4bacf7ab0cabfda9eba8b0a78ba56aa249998c1f6f24fb26c628372aab2b902c4d2d0a2ec82e8a2f2b30773017306f2fb12ef32d352d792c812b372af1285727ca247d20dd91a9a07aa49fa662a851a92caa06abf3ab3bac75acb0ace4acf1acffac3dad2bad1fad13ad13ad1fad2bad3dadfeacf1ace4acb0ac75ac3bacf3ab06ab2caa51a979a89fa67aa4a9a0dd917d20ca245727f128372a812b792c352df32db12e6f2f17307730ca306b300b30582f992edb2d212d792cab2b652a1f29b2272d250f22101b0e9dd2a275a52ba770a84ba925aac1aa60ab04ac3fac74aca5aca1accfacd3acd8acd8acd3accfaca1aca5ac74ac3fac04ac60abc1aa22aa4ba970a82ba775a5d2a20e9d101b0f222d25b2271f29652aab2b792c212ddb2d992e582f0b306b30ca301e31bf305f30ff2f402f862edb2d352d902cd92b932a4d2953283e261824cb1f5592fa9f68a369a51fa74da8eca88ba92aaaa4aa04ab65abc6abe6ab05ac13ac13ac03ace6abc6ab65ab04aba4aa2aaa8ba9eca84da81fa769a568a3fa9f5592dc1f18243e2653284d29932ad92b902c352ddb2d862e402fff2f5f30bf301e3172311331b3305330ec2f402f992ef32d4d2da72c032ce42acd29ba284f2729255c22e21d9d93c99f50a3f3a431a66ea756a8bfa81fa980a9d8a9f9a919aa3aaa3aaa19aaf9a9d8a980a91fa9bfa856a86ea731a6f3a450a3c99f9d93e21d5c2240254f27ba28cd29e42a032ca72c4d2df32d992e402fec2f5330b33013317231c63167310731aa305330ff2f582fb12e0a2e642dc82c512c682b552a42293128a526ef247422131e258a299d10a18ca3f3a4b4a575a636a7d6a70ba82ca84ca84ca82ca80ba8d6a736a775a6b4a5f3a48ca310a1299d268a131e7422ef24a52645284229552a682b512cc82c642d0a2eb12e582fff2f5330aa3007316731c6311a32bb315e310731b3305f300b306f2fc82e272ea02d0d2d822cf02bde2ae9290e293328b126fb243823bc20811c5f8fa39ca79f55a1d7a2f7a33ca47da4bda4bda47da43ca4f7a3d7a255a1a79fa39c5f8f811cbc203823fb24b12633280e29e929de2af02b822c0d2da02d272ec82e6f2f0b305f30b33007315e31bb311a326f321232bb3167311331bf306b3017308a2ff92e832ede2d532dc72c402ca42bc92aef291429412845270726c92416234221811f7d1ce515119013960f99159b159b0f9913961090e5157d1c811f42211623c9240726452741281429ef29c92aa42b402cc72c532dde2d832ef92e8a2f17306b30bf3013316731bb3112326f32c6326f321a32c63172311e31ca3077302b30d52f3d2fb12e242e982d202db12c432caa2bcf2a152a7629d728382834276b26aa25e92428247523f3227222d324f6227222f32275232824e924aa256b2634273828d7287629152acf2aaa2b432cb12c202d982d242eb12e3d2fd52f2b307730ca301e317231c6311a326f32c632d5327e322a32d73184313131de308c3042300330722fe82e5f2eda2d5f2df22c842c172c542ba12afb295c29bd281e287427b326f2253125c324822441240124012441248224c3243125f225b32674271e28bd285c29fe29a12a542b172c842cf22c5f2dd62d5f2ee82e722f033042308c30de3031318431d7312a327e32d5327e322232cb3178312531d33080302e30bc2f2f2fa42e1a2e912d0a2d822c142c4e2b732a9829c52826280f27d12593245323d1214f209b1d3f1b3a196916bb10bb1069163a193f1b9b1d4f20d12153239324d1250f272628c5289829732a4e2b142c822c082d912d1a2ea42e2f2fbc2f2e308030d33025317831cb3122327e322a32cb316f311a31c73075302330a22fff2e612edc2d4d2dc32c3a2c622b6d2a9229b728ba270426a424cd225120581b0d900b9b899ec6a0e6a167a2e9a26aa36aa3e9a267a2e6a1c6a0899e0b9b0d90581b5120cd22a4240426ba27b72892296d2a622b3a2cc32c4d2dd62d612eff2ea22f23307530c7301a316f31cb312a32d73178311a31be30693017308b2fe82e452ea22d092d7f2cec2bd92ac729b528ad27f82542241a21e11b1c94ff9d7ba1d5a3aba46ca52da6cea60ea74fa790a790a74fa70ea7cea62da66ca5aba4d5a37ba1ff9d1c94e11b1a214224f825ad27b528c729d92aec2b7f2c092da22d452ee82e8b2f17306930be301a317831d73184312531c73069300e30752fd12e2e2e8b2de82c452c642b512a3e293c283126362402215c1a4f9b3ea1d5a328a566a6a4a73aa89ba8fba854a975a93ba953a953a93ba975a954a9fba89ba83aa8a4a766a628a5d5a33fa14f9b5c1a0221362431262b283e29512a642b452ce82c8b2d2e2ed12e752f0e306930c730253184313131d33075301730752fbe2e182e742dd12c2e2c172bd129b62846272e25f621ae1ab19b57a161a416a693a768a807a9a6a9a0a9e7a92eaa75aa2cab34ab3dab3dab34ab2cab75aa2eaae7a9a0a9a6a907a968a893a716a661a457a1b19bae1af62121254627b628d129172b2e2cd12c742d182ebe2e752f17307530d3303131de30803023308b2fd12e182e602dbb2c172ce92aa3295d2836261024aa1f6293c1a06da422a6d8a7c6a844a9b6a92aaa9faa57ab4bab91aba5abb0abb9abc1abc1abb9abb0aba5ab91ab4bab57ab9faa2aaab6a944a9c6a8d8a722a66da4c1a06293aa1f102436265d28a329e92a172cbb2c602d182ed12e8b2f23308030de308c302e30a22fe82e2e2e742dbb2c032cbc2a75293028d3258e22cc1a309de3a297a5bca7cda848a9e9a989aa5aab81abb0abd9abf3ab06ac0bac05ac00acf9abf9ab00ac05ac0bac06acf3abd9abb0ab81ab5aab89aae9a948a9aaa8bca797a5e3a2309dcc1a8e22d3252f287529bc2a032cbb2c742d2e2ee82ea22f2e308c304230bc2fff2e452e8b2dd12c172cbc2a4a2902287725d721f51559a082a4a8a666a827a9eda98daa67aba1abd8ab01ac08ace6abe9abafabadab82ab6bab53ab53ab6bab82abadabafabe9abe6ab08ac01acd8aba1ab67ab8daaeda927a966a8a8a682a459a0f515d721772502284a29bc2a172cd12c8b2d452eff2ebc2f423003302f2f612ea22de82c2e2ce92a752902281e252021d30310a114a5a0a7efa802aa54aa60aba3abdeab0cacecabbeab93ab69ab55ab91aa4aaa19aa01aae9a9e9a901aa19aa4aaa91aa55ab69ab93abbeabecab0cace0abb4ab60ab54aa02aaefa8a0a714a510a1d30320211e2502287529e92a2e2ce82ca22d612e2f2f0330722fa42ed62d092d452c172ba3292f28772520217a95c7a170a511a800a9eea9b8aa85abcfab0caceaabafab54ab40ab51aadca974a982a922a9d6a8b6a896a896a8b6a8d6a8e6a82da974a9dca951aa40ab54abafabeaab0caccfab85abb8aaeea900a911a870a5c7a17a95202177252f28a329172b452c092ddc2da42e722fe82e1a2e4d2d7f2c642bd1295d28d325d721d303c7a1cba52ca821a910aa55abaaabf4ab00acb8ab73abafaa0faa70a9faa885a800a83aa779a6d2a591a550a550a591a5d2a579a63aa700a885a8faa870a90faaafaa73abb8ab00acf4abaaab55ab10aa21a932a8cba5c7a1d303d721d3255d28d129642b7f2c4d2d1a2ee82e5f2e912dc32cec2b512ab62836268e22f51510a170a52ba843a932aa62abb9ab08acddab93abdeaa15aa6aa9caa820a8cfa691a553a4e1a25fa1dc9fda9ed79dd79dda9edc9f5fa1e1a253a491a5cfa620a8faa86aa915aadeaa93abddab08acb9ab62ab32aa43a92ca870a510a1f5158e223626b628512aec2bc32c912d5f2ed62d082d3a2cd92a3e2946271024cc1a59a014a511a821a932aa6eabc6ab0eaccaab73ab7aaab1a9e7a81aa87ea6c9a44ea2a49f59999a156a1c6e1f4920ca20ca2049206e1f6a1c9a155999a49f4ea2c9a47ea61aa8e7a8b0a97aaa73abcaab0eacd5ab6eab32aa21a911a814a559a0cc1a102446273e29d92a3a2c0a2dda2d5f2d822c622bc7292b282125aa1f309d82a4a0a700a910aa62abc6ab0bacbeab66ab3eaa4fa983a80fa7e9a40fa2479d3816fe1efb212324e424a525ff2540264026ff25a525e4242324fb21fe1e3816479d0fa2e9a40fa79aa84fa93eaa66abbeab0bacc6ab62ab10aa00a9a0a782a4309daa1f2e253c28c729622b822c5f2df22c142c6d2ab5283126f6216293e3a2a8a6efa8eea955abb9ab0eacbeab5aab1caa2da93da8fea5b1a3cb9efb164a20b5236825a626e4275728b828ed280d290d29ed28b8285728e427a6266825b5234a20fb16cb9eb1a3fea53ca82da91caa5aabbeab0eacbaab55abeea9efa8a8a6e3a26293f6213126b5286d2a142cf22c842c4e2b9229ad273624ae1ac1a097a566a802aab8aaaeab08acd4ab66ab1caa0da91da892a50ba210990e1e52239c25522788282729c6293c2a9d2adb2afb2afb2adb2a9d2a3c2ac6292729882852279c2552230e1e10990ba292a51da80da91caa66abcaab08acaeabb8aa02aa66a897a5c1a0ae1a3624ad2792294e2b842c172c732ab728f8250221b19b6da4bca727a954aa85abf4abddab73ab3eaa2da91da839a5afa4868fdc20ba24df26892864293f2afb2a9a2b102c412c642c742c742c642c412c102c9a2bfb2a3f2a64298928df26ba24dc20868f54a11ca61da82da93eaa73abddabf4ab85ab54aa27a9bca76da4b19b0221f825b728732a172c542b9829ba2742245c1a57a122a6cda8eda960abcfab00ac93ab7aaa4fa93ca892a5afa4ac1393215525e2270b291d2a202bfb2b682cb72c072d332d5b2d6b2d6b2d5b2d372d072db72c682cfb2b202b1d2a0b29e22755259321ac1354a15da63da84fa97aaa93ab00accfab60abeda9cda822a657a15c1a4224ba279829542ba12ac52804261a214f9b61a4d8a748a98daab4ab0cacb8abdeaab0a99aa8fea50ba2868f9321b12529286429a62ab92b652cdb2c482da12df12d262e512e622e622e512e302ef12da12d482ddb2c652cb92ba62a64291e28b1259321868f0ba2fea59aa8b1a9deaab8ab0caca3ab8daa48a9d8a761a44f9b1a210426c528a12afb292628a424e11b3fa116a6c6a8e9a967abe0abeaab73ab15aae7a80fa7b1a31099dc2055251e289229d82a0f2caa2c332dbd2d262e8c2edb2e2b2f482f582f582f482f2b2fdb2e8c2e262ebd2d332daa2c0f2cd82a922929285525dc201099b1a30fa7e7a815aa73abeaabdeab67abe9a9c6a816a63fa1e11ba4242628fb295c290f27cd221c94d5a393a744a989aaa1ab0cacafabafaa6aa91aa8e9a4cb9e0e1eba24e2276429d82a262cc92c6c2d012e8a2e142f712fc52f0a301f30273027301f300a30c52f712f142f8a2e012e6c2dc92c262cd82a6429e227ba240e1ecb9ee9a41aa86aa9afaaafab0caca1ab89aa44a993a7d5a31c94cd220f275c29bd28d1255120ff9d28a568a8b6a95aabd8abecab54ab0faafaa87ea60fa2fb165223df260b29a62a0f2cc92c832d262ec92e582fe12f3630583080309c30a430a4309c30803058303630e12f582fc92e262e832dc92c0f2ca62a0b29df265223fb160fa27ea6faa80faa54abecabd8ab5aabb6a968a828a5ff9d5120d125bd281e289324581b7ba166a607a92aaa81ab01acbeab40ab70a920a8c9a4479d4a209c2589281d2ab92baa2c6c2d262ee02e832f133058309d30ce30f6301931213121311931f630ce309d3058301330832fe02e262e6c2daa2cb92b1d2a89289c254a20479dc9a420a870a940abbeab01ac81ab2aaa07a966a67ba1581b93241e28742753230d90d5a3a4a7a6a99faab0ab08ac93ab51aafaa8cfa64ea23816b52352276429202b652c332d012ec92e832f1e307030bf3005314b316d3196319e319e3196316d314b310531bf3070301e30832fc92e012e332d652c202b64295227b52338164ea2cfa6faa851aa93ab08acb0ab9faaa6a9a4a7d5a30d9053237427b326d1210b9baba43aa8a0a957abd9abe6ab69abdca99da891a5a49ffe1e682588283f2afb2bdb2cbd2d8a2e582f13307030ce3028316e31b331fa310d321c321c320d32e531b3316e312831ce3070301330582f8a2ebd2ddb2cfb2b3f2a88286825fe1ea49f91a585a8dca969abe6abd9ab57aba0a93aa8aba40b9bd121b326f2254f20899e6ca59ba8e7a94babf3abe9ab55ab74a900a853a45999fb21a6262729fb2a682c482d262e142fe12f5830bf3028318031d6311c32633285329a329a32853263321c32d63180312831bf305830e12f142f262e482d682cfb2a2729a626fb21599953a400a874a955abe9abf3ab4babe7a99ba86ca5899e4f20f22531259b1dc6a02da6fba82eaa91ab06acafab91aa82a93aa7e1a29a152324e427c6299a2bb72ca12d8c2e712f36309d3005316e31d63131328532cc32fd3219331933fd32cc3285323132d6316e3105319d303630712f8c2ea12db72c9a2bc629e42723249a15e1a23aa782a991aaafab06ac91ab2eaafba82da6c6a09b1d3125c3243f1be6a1cea654a975aaa5ab0bacadab4aaa22a979a65fa16a1ce42457283c2a102c072df12ddb2ec52f5830e5304b31b3311c328532ef3235337c339e339e337c333533ef3285321c32b3314b31e5305830c52fdb2ef12d072d102c3c2a5728e4246a1c5fa179a622a94aaaadab0baca5ab75aa54a9cea6e6a13f1bc32482243a1967a20ea775a92cabb0ab05ac82ab19aad6a8d2a5dc9f6e1fa525b8289d2a412c372d302e2b2f0a308030f6306d31fa316332cc3235339f33e53316341634e5339f333533cc326332fa316d31f63080300a302b2f262e332d412c9d2ab828a5256e1fdc9fd2a5d6a819aa82ab05acb0ab2cab75a90ea767a23a19822441246916e9a24fa73ba934abb9ab00ac6bab01aab6a891a5da9e4920ff25ed28db2a642c5b2d512e482f1f309c301f3196310d32853212337c33e53327344a344a342734e5337c33123385320d3296311f319c301f30482f512e5b2d642cdb2aed28ff254920da9e91a5b6a801aa6bab00acb9ab34ab3ba94fa7e9a2691641240124bb106aa390a753a93dabc1abf9ab53abe9a996a850a5d79dca2040260d29fb2a742c6b2d622e582f2730a43021319e311c329a3219339e3316344a347f347f344a3416349e3319339a321c329e312131a4302730582f622e6b2d742cfb2a0d294026ca20d79d50a596a8e9a953abf9abc1ab3dab53a990a76aa3bb1001240124bb106aa390a753a93dabc1abf9ab53abe9a996a850a5d79dca2040260d29fb2a742c6b2d622e582f2730a43021319e311c329a3219339e330b344a347f347f344a3416349e3319339a321c329e312131a4302730582f622e6b2d742cfb2a0d294026ca20d79d50a596a8e9a953abf9abc1ab3dab53a990a76aa3bb10012441246916e9a24fa73ba934abb9ab00ac6bab01aab6a891a5da9e4920ff25ed28db2a642c5b2d512e482f1f309c30193196310d328532fd327c33e53327344a344a342734e5337c33fd3285320d3296311f319c301f30482f512e5b2d642cdb2aed28ff254920da9e91a5b6a801aa6bab00acb9ab34ab3ba94fa7e9a26916412482243a1967a20ea775a92cabb0ab05ac82ab19aad6a8d2a5dc9f6e1fa525b8289d2a412c332d262e2b2f0a308030f6306d31e5316332cc3235339f33e53316341634e5339f333533cc326332e5316d31f63080300a302b2f302e372d412c9d2ab828a5256e1fdc9fd2a5d6a819aa82ab05acb0ab2cab75a90ea767a23a198224c3243f1be6a1cea654a975aaa5ab0bacadab4aaae6a879a65fa16a1ce42457283c2a102c072df12ddb2ec52f5830ce304b31b3311c328532ef3235337c339e339e337c333533ef3285321c32b3314b31ce305830c52fdb2ef12d072d102c3c2a5728e4246a1c5fa179a622a94aaaadab0baca5ab75aa54a9cea6e6a13f1bc32431259b1dc6a02da6fba82eaa91ab06acafab91aa2da93aa7e1a29a152324e427c6299a2bb72ca12d8c2e712f36309d3005316e31d63131328532cc321233193319331233cc3285323132d6316e3105319d303630712f8c2ea12db72c9a2bc629e42723249a15e1a23aa782a991aaafab06ac91ab2eaafba82da6c6a09b1d3125f2254f20899e6ca59ba8e7a94babf3abe9ab55ab74a900a853a45999fb21a6262729fb2a682c482d262e142fe12f5830bf3028318031d6311c32633285329a329a32853263321c32d63180312831bf305830e12f142f262e482d682cfb2a2729a626fb21599953a400a874a955abe9abf3ab4babe7a99ba86ca5899e4f20f225b326d1210b9baba43aa8a0a957abd9abe6ab69abdca99da891a5a49ffe1e682588283f2afb2bdb2cbd2d8a2e582f13307030ce3028316e31b331fa310d321c321c320d32e531b3316e312131ce3070301330582f8a2ebd2ddb2cfb2b3f2a88286825fe1ea49f91a59da8dca969abe6abd9ab57aba0a93aa8aba40b9bd121b326742753230d90d5a3a4a7a6a99faab0ab08ac93ab51aafaa8cfa64ea23816b52352276429202b652c332d012ec92e832f1e307030bf3005314b316d3196319e319e3196316d314b310531bf3070301e30832fc92e012e332d652c202b64295227b52338164ea2cfa6faa851aa93ab08acb0ab9faaa6a9a4a7d5a30d90532374271e289324581b7ba166a607a92aaa81ab01acbeab40ab70a920a8c9a4479d4a209c2589281d2ab92baa2c6c2d262ee02e832f133058309d30e530f6301f31213121311f31f630e5309d3058301330832fe02e262e6c2daa2cb92b1d2a89289c254a20479dc9a420a870a940abbeab01ac81ab2aaa07a966a67ba1581b93241e28bd28d1255120ff9d28a568a8b6a95aabd8abecab54ab0faafaa87ea60fa2fb165223df260b29a62a0f2cc92c832d262ec92e582fe12f3630583080309c30a430a4309c30803058303630e12f582fc92e262e832dc92c0f2ca62a0b29df265223fb160fa27ea6faa80faa54abecabd8ab5aabb6a968a828a5ff9d5120d125bd285c290f27cd221c94d5a393a744a989aaa1ab0cacafabafaa6aa91aa8e9a4d09e0e1eba24e2276429d82a262cc92c6c2d012e8a2e142f712fc52f0a301f30273027301f300a30c52f712f142f8a2e012e6c2dc92c262cd82a6429e227ba240e1ecb9ee9a41aa86aa9afaaafab0caca1ab89aa44a993a7d5a31c94cd220f275c29fb292628a424e11b3fa116a6a4a8e9a967abdeabeaab73ab15aae7a80fa7b1a31099dc20552529289229d82a0f2caa2c332dbd2d262e8c2edb2e2b2f482f582f582f482f2b2fdb2e8c2e262ebd2d332daa2c0f2cd82a92291e285525dc201099b1a30fa7e7a815aa73abeaabe0ab67abe9a9a4a816a63fa1e11ba4242628fe29a12ac52804261a214f9b61a4d8a748a98daaa3ab0cacb8abdeaab1a99aa8fea50ba2868f9321b1251e286429a62ab92b652cdb2c482da12df12d302e512e622e622e512e262ef12da12d482ddb2c652cb92ba62a64292928b1259321868f0ba2fea59aa8b0a9deaab8ab0cacb4ab8daa48a9d8a761a44f9b1a210426c528a12a542b9829ba2742245c1a57a122a6a8a8eda960abcfab00ac93ab7aaa4fa93da892a554a1ac1393215525e2270b291d2a202bfb2b682cb72c072d372d5b2d6b2d6b2d5b2d332d072db72c682cfb2b202b1d2a0b29e22755259321ac1354a192a53ca84fa97aaa93ab00accfab60abeda9aaa822a657a15c1a4224ba279829542b172c732ab728f8250221b19b6da4bca727a954aa85abf4abddab73ab3eaa2da91da839a554a1868fdc20ba24df26892864293f2afb2a9a2b102c412c642c742c742c642c412c102c9a2bfb2a3f2a64298928df26ba24dc20868f54a139a51da82da93eaa73abddabf4ab85ab54aa27a9bca76da4b19b0221f825b728732a172c842c4e2b9229ad273624ae1ac1a097a566a802aab8aaaaab08accaab66ab1caa0da91da892a50ba210990e1e52239c25522788282729c6293c2a9d2adb2afb2afb2adb2a9d2a3c2ac6292729882852279c2552230e1e10990ba292a51da80da91caa66abcaab08acaeabb8aa02aa66a897a5c1a0ae1a3624ad2792294e2b842cf22c142c6d2ab5283126f6216293e3a2a8a6efa8eea955abb9ab0eacbeab5aab1caa2da93ca8fea5b1a3cb9efb164a20b5236825a626e4275728b828ed280d290d29ed28b8285728e427a6266825b5234a20fb16d09eb1a3fea53da82da91caa5aabbeab0eacb9ab55abeea9efa8a8a6e3a26293f6213126b5286d2a142cf22c5f2d822c622bc7293c282e25aa1f309d82a4a0a700a910aa62abc6ab0bacbeab66ab3eaa4fa99aa80fa7e9a40fa2479d3816fe1efb212324e424a525ff2540264026ff25a525e4242324fb21fe1e3816479d0fa2e9a40fa79aa84fa93eaa66abd3ab0bacd5ab62ab10aa00a9a0a782a4309daa1f21252b28c729622b822c5f2dd62d0a2d3a2cd92a3e2946271024cc1a59a014a511a821a932aa6eabc6ab0eacd4ab73ab7aaab0a9e7a81aa87ea6c9a44ea2a49f59999a156a1c6e1f4920ca20ca2049206e1f6a1c9a155999a49f4ea2c9a47ea61aa8e7a8b1a97aaa73abcaab0eacc6ab6eab32aa21a911a814a559a0cc1a102446273e29d92a3a2c082dd62d5f2e912dc32cec2b512ab62836268e22f51510a144a632a843a932aa62abb9ab08acddab93abdeaa15aa6aa9faa820a8cfa691a553a4e1a25fa1dc9fda9ed79dd79dda9edc9f5fa1e1a253a491a5cfa620a8faa86aa915aadeaa93abddab08acbaab62ab32aa43a934a870a5a4a4f5158e223626b628512aec2bc32c912d5f2ee82e1a2e4d2d7f2c642bd1295d28d325d721d303c7a1cba52ba821a910aa55abaeabf4ab00acb8ab73abafaa0faa70a9faa885a800a83aa779a6d2a591a550a550a591a5d2a579a63aa700a89da8faa870a90faaafaa73abb8ab00acf4abaeab55ab10aa21a932a8cba5c7a1d303d721d3255d28d129642b7f2c4d2d1a2ee82e722fa42ed62d092d452c172ba3293028772520217a95c7a170a511a800a9eea9b8aa85abcfab0caceaabafab54ab40ab51aadca974a982a922a9d6a8b6a896a896a8b6a8d6a822a982a974a9dca951aa40ab54abafabeaab0caccfab85abb8aaeea900a911a870a5c7a17a95202177252f28a329172b452c092dd62da42e722f03302f2f612ea22de82c2e2ce92a752902281e252021d30310a102a6a0a7efa802aa54aa60abb4abe0ab0cacecabbeab93ab69ab55ab91aa4aaa19aa01aae9a9e9a901aa19aa4aaa91aa55ab69ab93abbeabecab0cacdeaba3ab60ab54aa02aaefa8a0a714a5a4a4d30320211e2502287529e92a2e2ce82ca22d612e2f2f03304230bc2fff2e452e8b2dd12c172cbc2a4a2902287725d721f51559a082a4a8a666a827a9eda98daa67aba1abd8ab01ac08ace6abe9abafabadab82ab6bab53ab53ab6bab82abadabafabe9abe6ab08ac01acd8aba1ab67ab8daaeda927a966a8a8a682a459a0f515d721772502284a29bc2a172cd12c8b2d452eff2ebc2f42308c302e30a22fe82e2e2e742dbb2c032cbc2a75292f28d3258e22cc1a309de3a297a5bca7cda848a9e9a989aa5aab81abb0abd9abf3ab06ac0bac05ac00acf9abf9ab00ac05ac0bac06acf3abd9abb0ab81ab5aab89aae9a948a9a8a8bca797a5e3a2309dcc1a8e22d32530287529bc2a032cbb2c742d2e2ee82ea22f2e308c30de30803023308b2fd12e182e602dbb2c172ce92aa3295d2836261024aa1f6293c1a06da422a6d8a7c6a844a9b6a92aaa9faa57ab4bab91aba5abb0abb9abc1abc1abb9abb0aba5ab91ab4bab57ab9faa2aaab6a944a9a4a8d8a722a66da4c1a06293aa1f102436265d28a329e92a172cbb2c602d182ed12e8b2f23308030de303131d33075301730752fbe2e182e742dd12c2e2c172bd129b62846272125f621ae1ab19b57a161a416a693a768a807a9a6a9a0a9e7a92eaa75aa2cab34ab3dab3dab34ab2cab75aa2eaae7a9a0a9a6a907a968a893a716a661a457a1b19bae1af6212e254627b628d129172b2e2cd12c742d182ebe2e752f17307530d330313184312531c73069300e30752fd12e2e2e8b2de82c452c642b512a3e292b283126362402215c1a4f9b3ea1d5a328a566a6a4a73aa89ba8fba854a975a93ba953a953a93ba975a954a9fba89ba83aa8a4a766a628a5d5a33fa14f9b5c1a0221362431263c283e29512a642b452ce82c8b2d2e2ed12e752f0e306930c73025318431d73178311a31be30693017308b2fe82e452ea22d092d7f2cec2bd92ac729b528ad27f82542241a21e11b1c94ff9d7ba1d5a3aba46ca52da6cea60ea74fa790a790a74fa70ea7cea62da66ca5aba4d5a37ba1ff9d1c94e11b1a214224f825ad27b528c729d92aec2b7f2c092da22d452ee82e8b2f17306930be301a317831d7312a32cb316f311a31c73075302330a22fff2e612edc2d4d2dc32c3a2c622b6d2a9229b728ba270426a424cd225120581b0d900b9b899ec6a0e6a167a2e9a26aa36aa3e9a267a2e6a1c6a0899e0b9b0d90581b5120cd22a4240426ba27b72892296d2a622b3a2cc32c4d2dd62d612eff2ea22f23307530c7301a316f31cb312a327e322232cb3178312531d33080302e30bc2f2f2fa42e1a2e912d082d822c142c4e2b732a9829c52826280f27d12593245323d1214f209b1d3f1b3a196916bb10bb1069163a193f1b9b1d4f20d12153239324d1250f272628c5289829732a4e2b142c822c0a2d912d1a2ea42e2f2fbc2f2e308030d33025317831cb3122327e32d5327e322a32d73184313131de308c3042300330722fe82e5f2ed62d5f2df22c842c172c542ba12afe295c29bd281e287427b326f2253125c324822441240124012441248224c3243125f225b32674271e28bd285c29fb29a12a542b172c842cf22c5f2dda2d5f2ee82e722f033042308c30de3031318431d7312a327e32d532ec3296324432f231a0314f31fd30ad3063301e30b42f2a2fe42e562ea12d342df92c592c172c6d2bc82a242a7f29dc283e28bb27fa2639261f268a254a25092509254a258a251f263926fa26bb273e28dc287f29242ac82a6d2b172c592cf92c342da12d562ee42e2a2fb42f1e306330ad30fd304f31a031f23144329632ec3296323c32e73195314431f230a0304f30fe2fba2fe62e5d2e0f2e812df72c562c132c452b7e2a8929e4280c283727ee25b224e2236022de205020bf1ebc1db91cb91cbc1dbf1e5020de206022e223b224ee2537270c28e42889297e2a452b132c562cf72c812d0f2e5d2ee62eba2ffe2f4f30a030f23044319531e7313c3296324432e7318c313831e73095304330e42f412fe72e562e8f2d072dac2c1e2c3e2b5c2a7a299728702700266f24e1225620401be210cf98d29cac9f59a0f39f58a058a0f39f59a0ac9fd29ccf98e210401b5620e1226f240026702797287a295c2a3e2b1e2cac2c062d8f2d562ee72e412fe42f43309530e73038318c31e7314432f23195313831de308a303830ce2f2a2f872e212e822df32c382caf2b922a782991285e279b257d247920351a7497d59efba1c1a1dca2f7a3e1a524a6d0a4ffa4ffa4d0a424a6e1a5f7a3dca2c1a1fba1d59e7497351a79207d249b255e2791287829922aaf2b382cf32c822d212e872e2a2fce2f38308a30de3038319531f231a0314431e7308a302f30b72f142f712ecd2d6e2db72c1f2c212bc229e9289a278e2596231620a20f839dcea178a276a5bea6a7a535a6c2a650a7c7a8cba8d0a8d0a8cba8c7a850a7c2a635a6a7a5bea676a578a2a6a0839da20f162096238e259a27e928c229212b1f2cb72c6e2dcd2d712e162fb72f2f308a30e7304431a0314f31f23095303830b72f002f5a2eb72d142d702c052c9e2a78295c28292603242b20970ca69d54a1d5a363a5eaa5d3a6bca737a87ea8c4a834a93da946a94ea94ea946a93da934a9c4a87ea837a8bca7d3a6eaa55fa5d5a354a1a69d970c2b20492429265c2878299e2a052c702c142db72d5a2e002fb72f38309530f2304f31fd30a0304330ce2f162f5a2ea32dfd2c5a2c6e2b272ae1289f276625e6216b1acb9cb0a1e7a334a574a6b0a74ca8c1a844a969a983a99da9b6a9c2a9cba9d3a9d3a9caa9c2a9b6a99da983a969a944a9c1a84ca8b0a774a634a5e7a3b0a1cb9c6b1ae62166259f273d29272a6e2b5a2cfd2ca32d5a2e142fce2f4330a030fd30ad304f30e42f2a2f712eb72dfd2c452c402bfa29b428db264f2433203894ea9f1aa320a57da6bea77fa83ca96ca997a9c1a9eba905aa1faa29aa1caa13aa0aaa0aaa13aa1caa29aa1faa05aaeba9c1a997a96ca93ca97fa8bea77da620a51aa3ea9f38943320fa24db26b428fa29402b452cfd2cb72d712e2a2fe42f4f30ad306330fe2f412f872ecd2d142d5a2c402bcf2986288026e8239f1d339c85a155a4e8a57aa783a83da978a9b3a9eaa914aa23aaf8a907aac1a9a7a997a98ea986a986a98ea997a9a7a9c3a907aaf8a923aa14aaeaa9b3a978a93da983a87aa7e8a555a485a1339c9f1de82380268628cf29402b5a2c142dcd2d872e412ffe2f63301e30ba2fe72e212e2a2d702c6e2bfa29862827263123311c3f9d5ba20ba5b0a621a828a972a9b4a9efa92aaafda9d0a9a5a97aa96da93ea9e0a8afa897a880a880a897a8afa8e0a83ea96da97aa9a5a9d0a9fda92aaafca9dfa972a928a921a8b0a60ba55ba23f9d311c312327268628fa296e2b702c2a2d212ee72eba2f1e30b42fe62e562e822db72c052c272ab4288026312389194b9ee1a24ea52ca785a84da997a9e0a92aaafba9c1a986a952a927a9fca8dea887a7faa68ca65ca62da62da65ca68ca6faa687a7dea8fca827a952a99aa9c2a9fba92aaae0a997a94da985a82ca74ea5e1a24b9e891931238026b428272a9b2bb72c822d562ee62eb42f2a2f5d2e8f2df32c1f2c9e2ae128db26e823311c4b9e67a391a56fa70fa967a9bba905aa13aac9a984a94aa9a5a8d7a820a737a650a5c0a433a471a312a3b3a2b3a212a371a333a4c0a450a537a620a7d7a8a5a84aa984a9c9a913aa05aabba967a90fa96fa791a567a34b9e311ce823db26e1289e2a1f2cf32c8f2d5d2e2a2fe42e0f2e062d382c212b78299f27fa249f1d3f9de1a291a5b2a71ca973a9cba922aaeea9a4a95ba911a900a8c1a680a572a413a341a1d5a09c9e2b9b7099d596d59670992b9b9c9ed5a041a113a372a480a5c1a600a811a95ba9a4a9eea922aacba973a91ca9b2a791a5e1a23f9d9f1d4f249f277829212b382c072d0f2ee42e562e812dac2caf2bc2295c2866253320339c5ba24ea56fa71ca97fa9d7a92faadca984a936a947a8fba677a537a4eca1109fd99ad415881db720c8215a22db22db225a22c821b720881dd415d99a109feca137a477a5fba647a836a984a9dca92faafea97fa91ca96fa74ea55ba2339c332066255c28c2295e2bac2c812d562ea12df72c1e2c922ab0282926e621389485a10ba52ca70fa973a9d7a927aacfa978a920a9cba733a6a0a41ca2b39e9794b01d902106242c254226ae260827482748270827ae2642262c2506249021b01d9794b39e1ca2a0a433a6cba720a978a9cfa927aad7a973a90fa92ca70ba585a13894e6212926b028922a1e2cf72ca12d342d562c3e2b78299a2749246b1aea9f55a4b0a603a967a9cba92faacfa96ca914a988a7aaa5b1a38ca05399e01d5b22e3247026ae27762816293c2971299229922971293c2916297628ae277026e3245b22e01d53998ca0b1a3aaa588a714a96ca9cfa92faad1a967a903a9b0a655a4ea9f6b1a03249a2778293e2b562c342df92c132c5c2a91288e252b20cb9c1aa3e8a521a84da9c0a922aaf8a978a914a947a767a513a3af9e67161821b124a4262d280c29ab294a2a0c2b212b5f2b7f2b7f2b5f2b212b0c2b4a2aab290c292d28a426b12418216716af9e13a367a547a714a978a9dca922aac0a94da921a8e8a51aa3cb9c2b208e2591285c2a132cf92c592c452b7a295e279623970cb0a120a57aa728a997a905aaeea984a920a988a767a58fa2a29d531bed22c225e8270629e829e52a802b0f2c812c832ca62cb62cb62ca62c832c812c0f2c802be52ae8290629e827c225ed22531ba29d8fa267a588a720a984a9eea905aa97a928a97aa720a5b0a1970c13235e277a29452b592c172c7e2a97289b251620a69de7a37da683a872a9e0a913aaa4a936a9cba7aaa513a3a29d171da4235e267c288f29a22aa42b3f2caa2cf92c7c2d752d9d2dad2dad2d9d2d752d7c2df92caa2c642ca42ba22a8f297c285e26a423171da29d13a3aaa5cba736a9a4a913aae0a972a904a97da6e7a3a69d16209b2597287e2a172c6d2b892970277d24a20f54a134a5bea73da9dfa92aaac9a95ba947a833a6b1a3af9e531ba423b926a328e9292a2b1e2ca82c1d2d942de32d332e682e932ea42ea42e932e682e332ee32d942d1d2da82c1e2c2a2be929a328b926a423531baf9eb1a333a647a85ba9c9a92aaab4a93da9bea734a554a1a20f2b23702789296d2bc82ae42800267920839dd5a374a67fa878a9fca9fba984a911a9fba6a0a48ca06716ed225e26a328162a5d2b512cec2c752dfb2d682ece2e1d2f5a2f8a2f9a2f9a2f8a2f5e2f1d2fce2e802efb2d752dec2c512c5d2b162aa3285e26ed2267168ca0a0a4fba6aba884a9fba9efa978a901a974a6d5a3839d79200026e428c82a242a0c286f24351aa6a05fa5b0a73ca9b3a92aaac2a94aa900a877a51ca253991821c2257c28e9295d2b682c0d2dae2d432ecc2e462fb82f033026303e30483048303e302a300330b82f462fcc2e432eae2d0b2d682c5d2be9297c28c225182153991ca277a500a84aa9c1a92aaab3a93ca9b0a763a5cea1351a6f240c28242a7f293727e122749778a2eaa54ca86ca9eaa9fda99aa9a5a8c1a637a4b39ee01db124e8278f292a2b512c0b2dc52d682e0b2f9a2f113048307930a030b830c430c430b830a0307930513011309a2f0b2f682ec52d0d2d512c2a2b8f29e827b124e01db39e37a4c1a6a5a886a9fda9eaa96ca9eea8eaa578a27497622237277f29dc28ee255620d59e76a5d3a6c1a897a914aad0a952a9d7a880a5eca197945b22a4260629a22a1e2cec2cae2d682e252fc52f34307830bd30ee30153131313f313f3133311531ee30bd3078303430c52f222f682eae2dec2c1e2ca22a0629a4265b229794eca180a506a852a9d0a914aa97a9c1a8d3a676a5d59e5620ee25dc283e28b224401bfba1bea6bca744a9c1a923aaa5a927a920a772a4109fb01de3242d28e829a42ba82c752d432e0b2fc52f3f309130df30243168318a31aa31bb31bb31af318a3168312431df3091303f30c52f0b2f432e752da82ca42be8292d28e324b01d109f72a420a727a9a5a923aac1a944a9bca7bea6fba1401bb2243e28bb27e223e210c1a1a7a537a869a9eba9f8a97aa9fca837a613a3d99a902170260c29e52a3f2c1d2dfb2dcc2e9a2f34309130ee303f318b31cf31003227323632363227320032cf318b313f31ee30913034309a2fcc2efb2d1d2d3f2ce52a0c2970269021d99a13a337a673a87aa9f8a9eba969a9e7a8a7a5c1a1e210e223bb27fa266022cf98dca235a67ea883a905aa07aa6da9dea850a541a1d4150624ae27ab29802baa2c942d682e462f11307830df303f319c31f13136327b329d32b232b2329d327b323632f1319c313f31df3078301130462f682e942daa2c802bab29ae270624d41541a150a5dea86da907aa05aa83a97ea835a6dca2cf986022fa263926de20d29cf7a3c2a6c4a89da91faac3a93ea987a7c0a4d5a0881d2c2576284a2a0f2cf92ce32dce2eb82f4830bd3024318b31f1314b329e32e33214332f332f331433e3329e324b32f1318b312431bd304830b82fce2ee32df92c0f2c4a2a76282c25881dd5a051a687a73ea9c1a91faa9da9c4a8c2a6f7a3d29cde2039261f265020ac9fe1a550a734a9b6a929aaa7a9e0a8faa689a59c9eb720422616290c2b812c7c2d332e1d2f03307930ee306831cf3136329e3206334b339133ac33ac3391334b3306339e323632cf316831ee30793003301d2f332e7c2d812c0c2b16294226b7209c9e89a5faa6e0a8a7a929aab6a934a950a7e1a5ac9f50201f268a25bf1e59a024a6c7a83da9c2a91caa97a9afa88ca671a32b9bc821ae263c29212b832c752d682e5e2f2a30a03015318a3100327b32e3324b33b333f9331f341f34f933b3334b33e3327b3200328a311531a03026305a2f682e752d832c212b3c29ae26c8212b9b71a38ca6afa897a91caac2a93da9c7a824a659a0bf1e8a254a25bc1df39fd0a4cba846a9caa913aa8ea997a85ca612a370995a22082771295f2ba62c9d2d932e8a2f3e30b8303331af3127329d3229339133f9333134543454343134f933913329339d322732aa313131b8303e308a2f932e9d2da62c5f2b712908275a22709912a35ca697a88ea913aacba946a9cba8d0a4f39fbc1d4a250925b91c58a0ffa4d0a84ea9d3a90aaa86a980a82da6b3a2d596db22482792297f2bb62cad2da42e9a2f4830c4303f31bb313632b2322f33ac331f3454348834883454341f34ac332f33b2323632bb313f31c43048309a2fa42ead2db62c7f2b92294827db22d596b3a22da680a886a90aaad3a94ea9d0a8ffa458a0b91c09250925b91c58a0ffa4d0a84ea9d3a90aaa86a980a82da6b3a2d596db22482792297f2bb62cad2da42e9a2f4830c4303f31bb313632b2322f33ac33153454348834883454341f34ac332f33b2323632bb313f31c43048309a2fa42ead2db62c7f2b92294827db22d596b3a22da680a886a90aaad3a94ea9d0a8ffa458a0b91c09254a25bc1df39fd0a4cba846a9cba913aa8ea997a85ca612a370995a22082771295f2ba62c9d2d932e8a2f3e30b8303131aa3127329d3214339133f9333134543454343134f933913329339d322732af313331b8303e308a2f932e9d2da62c5f2b712908275a22709912a35ca697a88ea913aacaa946a9cba8d0a4f39fbc1d4a258a25bf1e59a024a6c7a83da9c2a91caa97a9afa88ca671a32b9bc821ae263c29212b832c752d682e5a2f2630a03015318a3100327b32e3324b33b333f93315341534f933b3334b33e3327b3200328a311531a0302a305e2f682e752d832c212b3c29ae26c8212b9b71a38ca6afa897a91caac2a93da9c7a8a0a459a0bf1e8a251f265020ac9fe1a550a734a9b6a929aaa7a9e0a8faa633a49c9eb720422616290c2b812c7c2d332e1d2f03307930ee306831cf3136329e3206334b339133ac33ac3391334b3306339e323632cf316831ee30793003301d2f332e7c2d812c0c2b16294226b7209c9e89a5faa6e0a8a7a929aab6a934a950a7e1a5ac9f50201f263926de20d29cf7a3c2a6c4a89da91faac1a93ea987a7c0a4d5a0881d2c2576284a2a0f2cf92ce32dce2eb82f5130bd3024318b31f1314b329e32e33229332f332f331433e3329e324b32f1318b312431bd304830b82fce2ee32df92c0f2c4a2a76282c25881dd5a051a687a73ea9c3a91faa9da9c4a8c2a6f7a3d29cde203926fa266022cf98dca235a67ea883a905aa07aa6da9dea850a541a1d4150624ae27ab29802baa2c942d802e462f11307830df303f319c31f13136327b329d32b232b2329d327b323632f1319c313f31df3078301130462f802e942daa2c802bab29ae270624d41541a150a5dea86da907aa05aa83a97ea835a6dca2cf986022fa26bb27e223e210c1a1a7a537a869a9eba9f8a97aa9fca837a613a3d99a902170260c29e52a642c1d2dfb2dcc2e9a2f34309130ee303f318b31cf31003227323632363227320032cf318b313f31ee30913034309a2fcc2efb2d1d2d642ce52a0c2970269021d99a13a337a6fca87aa9f8a9eba969a9e7a8a7a5c1a1e210e223bb273e28b224401bfba1bea6bca744a9c1a923aaa5a927a920a772a4109fb01de3242d28e829a42ba82c752d432e0b2fc52f3f309130df30243168318a31af31bb31bb31aa318a3168312431df3091303f30c52f0b2f432e752da82ca42be8292d28e324b01d109f72a420a727a9a5a923aac1a944a9bca7bea6fba1401bb2243e28dc28ee255620d59e76a5d3a6c1a897a914aad0a952a9d7a880a5eca197945b22a4260629a22a1e2cec2cae2d682e252fc52f34307830bd30ee30153133313f313f3131311531ee30bd3078303430c52f222f682eae2dec2c1e2ca22a0629a4265b229794eca180a506a852a9d0a914aa97a9c1a8d3a676a5d59e5620ee25dc287f293727e122749778a2eaa54ca86ca9eaa9fda986a9a5a8c1a637a4b39ee01db124e8278f292a2b512c0d2dc52d682e0b2f9a2f113048307930a030b830c430c430b830a0307930513011309a2f0b2f682ec52d0b2d512c2a2b8f29e827b124e01db39e37a4c1a6a5a89aa9fda9eaa96ca9eea8eaa578a27497e12237277f29242a0c286f24351acea163a5b0a73ca9b3a92aaac1a94aa900a877a51ca253991821c2257c28e9295d2b682c0b2dae2d432ecc2e462fb82f03302a303e30483048303e3026300330b82f462fcc2e432eae2d0d2d682c5d2be9297c28c225182153991ca277a500a84aa9c2a92aaab3a93ca9b0a75fa5a6a0351a6f240c28242ac82ae42800267920839dd5a374a67fa878a9efa9fba984a911a9fba6a0a48ca06716ed225e26a328162a5d2b512cec2c752dfb2d682ece2e1d2f5e2f8a2f9a2f9a2f8a2f5a2f1d2fce2e802efb2d752dec2c512c5d2b162aa3285e26ed2267168ca0a0a4fba611a984a9fba9efa978a901a974a6d5a3839d79200026e428c82a6d2b892970277d24a20f54a134a5bea73da9b4a92aaac9a95ba947a833a6b1a3af9e531ba423b926a328e9292a2b1e2ca82c1d2d942de32d332e682e932ea42ea42e932e682e332ee32d942d1d2da82c1e2c2a2be929a328b926a423531baf9eb1a333a64ca85ba9c9a92aaadfa93da9bea734a554a1a20f7d24702789296d2b172c7e2a97289b251620a69de7a37da683a872a9e0a913aaa4a936a9cba7aaa513a3a29d171da4235e267c288f29a22aa42b3f2caa2cf92c7c2d752d9d2dad2dad2d9d2d752d7c2df92caa2c642ca42ba22a8f297c285e26a423171da29d13a3aaa5cba736a9a4a913aae0a972a904a97da6e7a3a69d16209b2597287e2a172c592c452b7a295e279623970cb0a120a57aa728a997a905aaeea984a920a988a767a58fa2a29d531bed22c225e8270629e829e52a802b0f2c812c832ca62cb62cb62ca62c832c812c0f2c802be52ae8290629e827c225ed22531ba29d8fa267a588a720a984a9eea905aa97a928a97aa720a5b0a1970c96235e277a29452b592cf92c132c5c2a91288e252b20cb9c1aa3e8a521a84da9bba922aadca978a914a947a767a513a3af9e67161821b124a4262d280c29ab294a2a0c2b212b5f2b7f2b7f2b5f2b212b0c2b4a2aab290c292d28a426b12418216716af9e13a367a547a714a978a9dca922aac0a94da921a8e8a51aa3cb9c2b208e2591285c2a132cf92c342d562c3e2b78299a2749246b1aea9f55a4b0a685a867a9cba92faaffa96ca914a988a7aaa5b1a38ca05399e01d5b22e3247026ae27762816293c2971299229922971293c2916297628ae277026e3245b22e01d53998ca0b1a3aaa588a714a96ca9cfa92faacba967a903a9b0a655a4ea9f6b1a49249a2778293e2b562c342da12df72c1e2c922ae9282926e621389485a10ba52ca70fa973a9d7a927aacfa978a920a9cba733a6a0a41ca2b39e9794b01d902106242c254226ae260827482748270827ae2642262c2506249021b01d9794b39e1ca2a0a433a6cba720a978a9cfa927aafea973a90fa92ca70ba585a13894e6212926b028922a1e2cf72ca12d562e812dac2caf2bc2295c2866253320339c5ba24ea56fa71ca97fa9d7a92faaf8a984a936a94ca8fba677a537a4eca1109fd99ad415881db720c8215a22db22db225a22c821b720881dd415d99a109feca137a477a5fba647a836a984a9dca92faad7a97fa91ca96fa74ea55ba2339c332066255c28c229af2bac2c812d562ee42e0f2e072d382c212b78299f27fa249f1d3f9de1a291a5b2a71ca973a9cba922aaeea9a4a95ba9aba800a8c1a680a572a413a341a1d5a09c9e2b9b7099d596d59670992b9b9c9ed5a041a113a372a480a5c1a600a8aba85ba9a4a9eea922aad1a973a91ca9b2a791a5e1a23f9d9f1dfa249f277829212b382c062d0f2ee42e2a2f5d2e8f2df32c1f2c9e2a3d29db26e823311c4b9e67a391a56fa70fa967a9c0a905aa13aac9a984a94aa9a5a806a820a737a650a551a689a571a312a3b3a2b3a212a371a389a551a650a537a620a706a8a5a84aa984a9c9a913aa05aac0a967a90fa96fa791a567a34b9e311ce823db263d299e2a1f2cf32c8f2d5d2e2a2fb42fe62e562e822db72c052c272ab4288026312389194b9ee1a24ea52ca703a94da997a9e0a92aaafba9c2a99aa952a927a973a8dea887a7faa68ca65ca62da62da65ca68ca6faa687a7dea873a827a952a986a9c1a9fba92aaae0a997a94da985a82ca74ea5e1a24b9e891931238026b428272a052cb72c822d562ee62eb42f1e30ba2fe72e212e6e2d702c6e2bfa29862827263123311c3f9d5ba20ba5b0a621a828a972a9dfa9fca92aaafda9d0a9a5a97aa96da93ea9e0a8afa897a880a880a897a8afa8e0a83ea96da97aa9a5a9d0a9fda92aaaefa9b4a972a928a921a8b0a60ba55ba23f9d311c312327268628fa296e2b702c6e2d212ee72eba2f1e306330fe2f412f872ecd2d142d5a2c402bcf2986288026e8239f1d339c85a155a4e8a57aa704a93da978a9b3a9eaa914aa23aaf8a907aac3a9a7a997a98ea986a986a98ea997a9a7a9c1a907aaf8a923aa14aaeaa9b3a978a93da904a97aa7e8a555a485a1339c9f1de82380268628cf29402b5a2c142dcd2d872e412ffe2f6330ad304f30e42f2a2f712eb72dfd2c452c402bfa29b428db264f2433203894ea9f1aa320a57da6bea701a93ca96ca997a9c1a9eba905aa1faa29aa1caa13aa0aaa0aaa13aa1caa29aa1faa05aaeba9c1a997a96ca93ca901a9bea77da620a51aa3ea9f389433204f24db26b428fa29402b452cfd2cb72d712e2a2fe42f4f30ad30fd30a0304330ce2f142f5a2ea32dfd2c5a2c6e2b272ae1289f276625e6216b1acb9cb0a1e7a334a574a6b0a7eea8c1a844a969a983a99da9b6a9c2a9caa9d3a9d3a9cba9c2a9b6a99da983a969a944a9c1a8eea8b0a774a634a5e7a3b0a1cb9c6b1ae62166259f27e128272a6e2b5a2cfd2ca32d5a2e142fce2f4330a030fd304f31f23095303830b72f002f5a2eb72d142d702c9b2b9e2a78295c28292603242b20970ca69d54a1d5a35fa5eaa5d3a6bca7e7a87ea8c4a834a93da946a94ea94ea946a93da934a9c4a87ea8e7a8bca7d3a6eaa563a5d5a354a1a69d970c2b20032429265c2878299e2a052c702c142db72d5a2e002fb72f38309530f2304f31a0314431e7308a302f30b72f142f712ecd2d2a2db72c1f2c212bc229b0289a278e2513231620a20f839da6a078a276a5bea6a7a535a6c2a650a7c7a8cba8d0a8d0a8cba8c7a850a7c2a635a6a7a5bea676a578a2cea1839da20f162013238e259a27b028c229212b1f2cb72c2a2dcd2d712e142fb72f2f308a30e7304431a031f23195313831de308a303830ce2f2a2f872e212e822df32c382c5e2b922a782991285e279b252b237920351a7497d59efba1c1a1dca2f7a3e1a5a0a4d0a4ffa4ffa4d0a4a0a4e1a5f7a3dca2c1a1fba1d59e7497351a79202b239b255e2791287829922aaf2b382cf32c822d212e872e2a2fce2f38308a30de3038319531f2314432e7318c313831e73095304330e42f412fe72e562e8f2d062dac2c1e2c3e2b5c2a7a299728702700266f2462225620401be210cf98d29cac9f59a0f39f58a058a0f39f59a0ac9fd29ccf98e210401b562062226f240026702797287a295c2a3e2b1e2cac2c072d8f2d562ee72e412fe42f43309530e73038318c31e731443296323c32e73195314431f230a0304f30fe2fba2fe62e5d2e0f2e812df72c562c132c452b7e2a8929e4280c283727ee25b224e2236022de205020bf1ebc1db91cb91cbc1dbf1e5020de206022e223b224ee2537270c28e42889297e2a452b132c562cf72c812d0f2e5d2ee62eba2ffe2f4f30a030f23044319531e7313c329632ec3296324432f231a0314f31fd30ad3063301e30b42f2a2fe42e562ea12d342df92c592c172c6d2bc82a242a7f29dc283e28bb27fa2639261f268a254a25092509254a258a251f263926fa26bb273e28dc287f29242ac82a6d2b172c592cf92c342da12d562ee42e2a2fb42f1e306330ad30fd304f31a031f23144329632ec320b33b63265321332c23170313431e03094304d300630802ff22e662eec2d7d2d0d2d9e2c302ca32b032b652ac7292d29cb286f28152878271527dc26a3266b266b26a326dc261527782715286f28cb282d29c729652a032ba32b302c9e2c0d2d7d2dec2d662ef22e802f06304d309430e03034317031c23113326532b6320b33b6325c320832b63165311331da3080302d30c72f392fac2e202e932d0b2d9b2c2c2c7c2bbc2ad02934299b280628eb2621268425f22472240824b2235323f422f4225323b22308247224f22484252126eb2606289b283429d029bc2a7c2b2c2c9b2c0b2d932d202eac2e392fc72f2d308030da3013316531b73108325c32b63265320832ae3159310831b73065302630982ff62e662eda2d4d2dc12c362c762b9b2ac229ed282028fa26ea25f3240a248d22722157207a1ed41c171cb31a38193819b31a171cd41c7a1e572072218d220a24f324ea25fa262028ed28c2299b2a762b362cc12c4d2dda2d662ef62e982f26306530b63008315931ae31083265321332b6315931ff30ab30593008306d2fe62e312e942d082d7c2ce32bcf2ac029e7281728a426bb2517245c228a20711dfd17c58ad798a19cc59f359ff39f58a058a0f39f359fc59fa19cd798c48afd17711d8a205c221724bb25a4261728e728c029cf2ae32b7c2c082d942d312ee62e6d2f08305930ab30ff305931b6311332c23165310831ab305030f92f562fb32e102e802dcd2c372c5a2b472a3929322899263425e7236621f11dff179096489d76a0a8a1c3a2dea38ea599a5a7a5b7a5b7a5a7a599a58ea5dea3c3a2a8a176a0489d9096ff17f11d6621e7233425992632283929472a5a2b372ccd2c802d102eb32e562ff92f5030ab3008316531c23170311331b6305930f92f432f9c2ef92d562db32c1e2cda2ac029b5286a279325f6235421a61d20115e9c5ca02ea200a4afa59ba524a658a68ca69ea6afa6c0a6c0a6afa69ea68ca658a624a69ba5afa500a42ea25ca05e9c2011ae1f5421f62393256a27b528c029da2a1e2cb32c562df92d9c2e432ff92f5930b630133170313431da3065300830562f9c2ee52d3f2d9c2cf22bac2a6a2935287826c52466222b220310819cc2a043a3aba5c5a555a6aba6f5a629a75da790a7a7a7b8a7c9a7c9a7b8a7a7a790a75da729a7f5a6aba655a6c5a5aba543a3c2a0819c03102b226622c524782635288829ac2af22b9c2c3f2de52d9c2e562f08306530da303431e030803026306d2fb32ef92d3f2d872cc42b7e2a3d290628cf25fb23d620c41ad19999a055a3b0a525a69ba6fca651a7a6a7f9a716a830a83ba82da824a81ca81ca824a82da83ba830a816a8f9a7a6a751a7fca69ba625a6b0a555a399a0d199c41ad62000241f2606283d297e2ac42b872c3f2df92db32e6d2f26308030e03094302d30982fca2e102e562d9c2cc42b542a1129b92786254823191f240c089e29a29aa52ba69ea614a789a7f7a726a834a809a8d9a7a5a771a752a740a72fa72fa740a752a771a7a5a7d9a709a834a826a8f7a789a714a79ea629a69aa529a2089e240c191f48238625b9271129542ac42b9c2c562d102eca2e982f2d3094304d30c72ff62e312e6d2db32cf22b7e2a112969273f25c2220d1ea79570a0b9a36fa574a608a78ca701a83ba80fa8c3a76da718a719a7a0a66da649a637a626a626a637a649a66da6a0a619a718a76da7c3a70fa83ba801a88ca708a774a66fa5b9a370a0a8950d1ec2223f25692711297e2af22bb32c6d2d312ef62ec72f4d300630392f662e942dcd2c1e2cac2a3d29b9273f253e22011dec98f6a089a52aa6bda651a7e4a73ca80da8a5a730a7c7a672a613a6e2a59ea527a471a312a3b3a2b3a212a371a327a49ea5e2a513a672a6c7a630a7a5a70da83ca8e4a751a7bda62aa689a5f6a0ec98011d3e223f25b9273d29ac2a102ccd2c942d662e392f0630802fac2eda2d082d372cda2a6a2906288625c222011d049b7da197a542a6f1a69aa717a824a8b6a72ca7b7a641a638a587a5c9a2f8a0b69f809d2b9bb09935983598b0992b9b809db69ff8a0c9a287a538a541a6b7a62ca7b6a724a817a89aa7f1a642a697a57da1049b011dc222862506286a29da2a372c082dda2dac2e802ff22e202e4d2d7c2c5a2bc02935281f2648230d1eec987da1aca55ba60aa7b9a734a800a86ca7d9a645a6c9a5dba35aa17d9eb2995712ca1a9a1db71f3a20992099203a20b71f9a1dca1a5712b2997d9e5aa1dba3c9a545a6d9a66ca700a834a8b9a70aa75ba6aca57da1ec980d1e4823cf253528c0295a2b7c2c4d2d202ef22e662e932dc12ce32b472ab52878260024191fa795f6a097a55ba622a7d2a740a8dba72ca790a6baa528a448a18f9d66903c1ce01fc22140232d24bb24f02420251f25f024bb242d244023c221e01f3c1c66908f9d48a128a4baa590a62ca7dba740a8d2a722a75ba697a5f6a0a795191ffb237826b528472ae22bc12c932d662eec2d0b2d362ccf2a39296a27c524d620240c70a089a542a60aa7d2a739a8c2a713a764a6b5a5c0a2369f5a93991ccd204e23a624942589263327e3271b28392839281b28e327332789269425a6244e23cd20991c5a93369fc0a2b5a564a613a7c2a739a8d2a70aa742a689a570a0240cd620c5246a273929cf2a362c0b2dec2d7d2d9b2c762bc029322893256622c41a089eb9a32aa6f1a6b9a740a8c2a7fba64ba69ea5aea1169c69183f206023f1244a26ab27692806296429c229f729172a172af729c229642901296928ab274a26f12460233f206918169caea19ea54ba6fba6c2a740a8b9a7f1a62aa6b9a3089ec41a662293253228c029762b9b2c7d2d0d2d2c2c9b2ae7289926f6232b22d19929a26fa5bda69aa734a8dba713a74ba68ea528a1b3999e1ccf217a242126da27bb288f29302add2a452ba62be32b012c012ce32ba62b452bcf2a302a8f29bb28da2721267a24cf219e1cb39928a18ea54ba613a7dba734a89aa7bda66fa529a2d1992b22f6239926e7289b2a2c2c0d2d9e2c7c2bc229172834255421031099a09aa574a651a717a800a82ca764a69ea528a13797aa1d902226250d2784288e296d2a472b022c512c972cc82ce82cf82cf82ce82cc82c972c512c022c472b6d2a8e2984280d2726259022aa1d379728a19ea564a62ca700a817a851a774a69aa599a00310542134251728c2297c2b9e2c302cbc2aed28a426e723ae1f819c55a329a608a7e4a724a86ca790a6b5a5aea1b399aa1d17236c259a270029142a262b142c812cec2c3b2d8e2dc02ddf2def2def2ddf2dc02d8e2d3b2dec2c812c142c262b142a00299a276c251723aa1db399aea1b5a590a66ca724a8e4a708a729a655a3819ca61de723a426ed28bc2a302ca32bd0292028bb2566212011c2a0b0a59ea68ca73ca8b6a7d9a6baa5c0a2169c9e1c90226c25ee272d296d2aae2b602cea2c5f2dcc2d262e862eb82ed62ee62ee62ed62eb82e862e262ed62d5f2dea2c602cae2b6d2a2d29ee276c2590229e1c169cc0a2baa5d9a6b6a73ca88ca79ea6b0a5c2a0201166213d252028d029a32b032b3429fa261724f11d5e9c43a325a614a701a80da82ca745a628a4369f6918cf2126259a272d299b2ae12b932c2e2db72d3d2ec12e102f5f2fb12fcc2fdd2fdd2fcc2fb12f5f2f102fc12e3d2eb72d2e2d932ce12b9b2a2d299a272625cf216918369f28a445a62ca70da801a814a725a643a35e9cf11d1724fa263429032b652a9b28ea255c22ff175ca0aba59ba689a73ba8a5a7b7a6c9a548a15a933f207a240d2700296d2ae12baa2c4d2dfc2d852e0e2f882ffa2f243055305f30693069305f3055302430fa2f882f0e2f852efc2d4d2daa2ce12b6d2a00290d277a243f205a9348a1c9a5b7a6a5a73ba889a79ba6aba55ca0ff175c22ea259b28652ac7290628f3248a2090962ea2c5a5fca6f7a70fa830a741a6dba38f9d991c602321268428142ab32b932c4d2d072eaa2e532fdc2f323072309a30d230d930e530e530d930d2309a3072303230dc2f532faa2e072e4d2d932cb32b142a842821266023991c8f9ddba341a630a70fa8f7a7fca6c5a52ea290968a20f3240628c7292d29eb260a24711d489d00a455a651a726a8c3a7c7a638a55aa16690cd20f124da278e29262b602c2e2dfc2daa2e642f043055309930d8300f313631523161316031523136310f31d830993055300330642faa2efc2d2e2d602c262b8e29da27f124cd2066905aa138a5c7a6c3a726a851a755a600a4489d711d0a24eb262d29cb2821268d22fd1776a0afa5aba6a6a734a86da772a687a57d9e3c1c4e234a26bb286d2a142cea2cb72d852e532f03306030b230003145318431ac31cb31dc31dc31cc31ac31843145310031b23060300430532f852eb72dea2c142c6d2abb284a264e233c1c7d9e87a572a66da734a8a6a7aba6afa576a0fd178d222126cb286f2884257221c58aa8a19ba5f5a6f9a709a818a71ca6c9a2b299e01fa624ab278f29472b812c5f2d3d2e0e2fdc2f5530b23010316031ac31f031213245325832573247322132f031ac3160310f31b2305530dc2f0e2f3d2e5f2d812c472b8f29ab27a624e01fb299c9a21ca618a709a8f9a7f5a69ba5a8a1c48a722184256f281528f2245720d798c3a224a629a716a8d9a719a7e2a5f8a05712c22194256928302a022cec2ccc2dc12e882f3230993000316031bd310f3257329632bd32d432d232bd32963257320f32bd316031003199303230882faa2ecc2dec2c022c302a69289425c2215712f8a0e2a519a7d9a716a829a724a6c3a2d7985720f2241528782765247a1ea19cdea358a65da730a8a5a7a0a69ea5b69fca1a402389260129cf2a512c3b2d262e102ffa2f7230d8304531ac310f326c32bd32033333334f334e3333330333be326c320f32ac314531d8307230fa2f102f262e3b2d512cdd2a062989264023ca1ab69f9ea5a0a6a5a730a85da758a6dea3a19c7a1e6524782715270824d41cc59f8ea58ca690a73ba871a76da627a4809d9a1d2d2433276429452b972c8e2d862e5f2f24309a300f318431f0315732bd321a336933ae33c933c933ae3369331a33bd325732f03184310f319a3024305f2f862e8e2d972c452b642933272d249a1d809d27a46da671a73ba890a78ca68ea5c59fd41c08241527dc26b223171c359f99a59ea6a7a72da852a749a671a32b9bb71fbb24e327c229a62bc82cc02db82eb12f5530d2303631ac312132963203336933c9330a34223422340a34d0336933033396322132ac313631d2305530b12fb82ec02dc82ca62bc229e327bb24b71f2b9b71a349a652a72da8a7a79ea699a5359f171cb223dc26a3265323b31af39fa7a5afa6b8a724a840a737a612a3b0993a20f0241b28f729e32be82cdf2dd62ecc2f5f30d9305231cc314732bd323333ae330a343e34613461343e340a34ae333333bd324532cb315231d9305f30cc2fd62edf2de82ce32bf7291b28f0243a20b09912a337a640a724a8b8a7afa6a7a5f39fb31a5323a3266b26f422381958a0b7a5c0a6c9a71ca82fa726a6b3a23598992020253928172a012cf82cef2de62edd2f6930e5306031dc315732d2324e33c933223461349434943461342234c9334f33d4325832dc316131e5306930dd2fe62eef2df82c012c172a3928202599203598b3a226a62fa71ca8c9a7c0a6b7a558a03819f4226b266b26f422381958a0b7a5c0a6c9a71ca82fa726a6b3a23598992020253928172a012cf82cef2de62edd2f6930e5306131dc315832d4324f33c933223461349434943461342234c9334e33d2325732dc316031e5306930dd2fe62eef2df82c012c172a3928202599203598b3a226a62fa71ca8c9a7c0a6b7a558a03819f4226b26a3265323b31af39fa7a5afa6b8a724a840a737a612a3b0993a20f0241b28f729e32be82cdf2dd62ecc2f5f30d9305231cb314532bd323333ae330a343e34613461343e340a34ae333333bd324732cc315231d9305f30cc2fd62edf2de82ce32bf7291b28f0243a20b09912a337a640a724a8b8a7afa6a7a5f39fb31a5323a326dc26b223171c359f99a59ea6a7a72da852a749a671a32b9bb71fbb24e327c229a62bc82cc02db82eb12f5530d2303631ac312132963203336933d0330a34223422340a34d0336933033396322132ac313631d2305530b12fb82ec02dc82ca62bc229e327bb24b71f2b9b71a349a652a72da8a7a79ea699a5359f171cb223dc2615270824d41cc59f8ea58ca690a73ba871a76da627a4809d9a1d2d2433276429452b972c8e2d862e5f2f24309a300f318431f0315732be321a336933ae33c933c933ae3369331a33be325732f03184310f319a3024305f2f862e8e2d972c452b642933272d249a1d809d27a46da671a73ba890a78ca68ea5c59fd41c08241527782772247a1ea19cdea358a65da730a8a5a7a0a69ea5b69fca1a402389260629dd2a5a2c3b2d262e102ffa2f7230e7304531ac310f326c32bd32033333334e334f3333330333be326c320f32ac314531e7307230fa2f102f262e3b2d512ccf2a012989264023ca1ab69f9ea5a0a6a5a730a85da758a6dea3a19c7a1e722478271528f2245720d798c3a224a629a716a8d9a719a7e2a5f8a05712c22194256928302a022cec2cd62dc12e882f3230993000316031bd310f3257329632bd32d232d432bd32963257320f32bd316031003199303230882fc12ed62dec2c022c302a69289425c2215712f8a0e2a519a7d9a716a829a724a6c3a2d7985720f22415286f2884257221c48aa8a19ba5f5a6f9a709a818a71ca6c9a2b299e01fa624ab278f29472b812c5f2d3d2e0e2fdc2f5530b23010316031ac31f031213247325732583245322132f031ac3160311031b2305530dc2f0e2f3d2e5f2d812c472b8f29ab27a624e01fb299c9a21ca618a709a8f9a7f5a69ba5a8a1c48a722184256f28cb2821268d22fd1776a0afa5aba6a6a734a86da772a687a57d9e3c1c4e234a26bb286d2a142cea2cb72d852e532f04306030b230003145318431ac31cc31dc31dc31cb31ac31843145310031b23060300330532f852eb72dea2c142c6d2abb284a264e233c1c7d9e87a572a66da734a8a6a7aba6afa576a0fd178d222126cb282d29eb260a24711d489d00a455a651a726a8c3a7c7a638a55aa16690cd20f124da278e29262b602c2e2dfc2daa2e642f033055309930d8300f313631523160316131523136310f31d830993055300430642faa2efc2d2e2d602c262b8e29da27f124cd2066905aa138a5c7a6c3a726a851a755a600a4489d711d0a24eb262d29c7290628f3248a2090962ea2c5a5fca6f7a70fa830a741a6dba38f9d991c602321268428142aae2b932c4d2d072eaa2e532fdc2f323072309a30d230d930e530e530d930d2309a3072303230dc2f532faa2e072e4d2d932cae2b142a842821266023991c8f9ddba341a630a70fa8f7a7fca6c5a52ea290968a20f3240628c729652a9b28ea255c22ff175ca0aba59ba689a73ba8a5a7b7a6c9a548a15a933f207a240d2700296d2ae12baa2c4d2dfc2d852e0e2f882ffa2f243055305f30693069305f3055302430fa2f882f0e2f852efc2d4d2daa2ce12b6d2a00290d277a243f205a9348a1c9a5b7a6a5a73ba889a79ba6aba55ca0ff175c22ea259b28652a032b3429fa261724f11d5e9c43a325a614a701a80da82ca745a628a4369f6918cf2126259a272d299b2ae12b932c2e2db72d3d2ec12e102f5f2fb12fcc2fdd2fdd2fcc2fb12f5f2f102fc12e3d2eb72d2e2d932ce12b9b2a2d299a272625cf216918369f28a445a62ca70da801a814a725a643a35e9cf11d1724fa263429032ba32bd0292028bb2566212011c2a0b0a59ea68ca73ca8b6a7d9a6baa5c0a2169c9e1c90226c25ee272d296d2aae2b602cea2c5f2dcc2d262e862eb82ed62ee62ee62ed62eb82e862e262ed62d5f2dea2c602cae2b6d2a2d29ee276c2590229e1c169cc0a2baa5d9a6b6a73ca88ca79ea6b0a5c2a020116621bb252028d029a32b302cbc2aed28a426e723a61d819c55a329a608a7e4a724a86ca790a6b5a5aea1b399aa1d17236c259a270029142a262b142c812cec2c3b2d8e2dc02ddf2def2def2ddf2dc02d8e2d3b2dec2c812c142c262b142a00299a276c251723aa1db399aea1b5a590a66ca724a8e4a708a729a655a3819cae1fe723a426ed28bc2a302c9e2c7c2bc229172834255421031099a09aa574a651a717a800a82ca764a69ea528a13797aa1d902226250d2784288e296d2a472b022c512c972cc82ce82cf82cf82ce82cc82c972c512c022c472b6d2a8e2984280d2726259022aa1d379728a19ea564a62ca700a817a851a774a69aa599a00310542134251728c2297c2b9e2c0d2d2c2c9b2ae7289926f6232b22d19929a26fa5bda69aa734a8dba713a74ba68ea528a1b3999e1ccf217a242126da27bb288f29302acf2a452ba62be32b012c012ce32ba62b452bdd2a302a8f29bb28da2721267a24cf219e1cb39928a18ea54ba613a7dba734a89aa7bda66fa529a2d1992b22f6239926e7289b2a2c2c0d2d7d2d9b2c762bc029322893256622c41a089eb9a32aa6f1a6b9a740a8c2a7fba64ba69ea5aea1169c69183f206023f1244a26ab27692801296429c229f729172a172af729c229642906296928ab274a26f12460233f206918169caea19ea54ba6fba6c2a740a8b9a7f1a62aa6b9a3089ec41a662293253228c029762b9b2c7d2dec2d0b2d362ccf2a39296a27c524d620240c70a089a542a60aa7d2a739a8c2a713a764a6b5a5c0a2369f5a93991ccd204e23a624942589263327e3271b28392839281b28e327332789269425a6244f23cd20991c5a93369fc0a2b5a564a613a7c2a739a8d2a70aa742a689a570a0240cd620c5246a273929cf2a362c0b2dec2d662e932dc12ce32b472ab5287826fb23191fa795f6a097a55ba622a7d2a740a8dba72ca790a6baa528a448a18f9d66903c1ce01fc22140232d24bb24f02420252025f024bb242d244023c221e01f3c1c66908f9d48a128a4baa590a62ca7dba740a8d2a722a75ba697a5f6a0a795191f00247826b528472ae32bc12c932d662ef22e202e4d2d7c2c5a2bc02935281f2648230d1eec987da1aca55ba60aa7b9a734a800a86ca7d9a645a6c9a5dba35aa17d9eb2995712ca1a9a1db71f3a20992099203a20b71f9a1dca1a5712b2997d9e5aa1dba3c9a545a6d9a66ca700a834a8b9a70aa75ba6aca57da1ec980d1e48231f263528c0295a2b7c2c4d2d202ef22e802fac2eda2d082d372cda2a882906288625c222011d049b7da197a542a6f1a69aa717a824a8b6a72ca7b7a641a638a587a5c9a2f8a0b69f809d2b9bb09935983598b0992b9b809db69ff8a0c9a287a538a541a6b7a62ca7b6a724a817a89aa7f1a642a697a57da1049b011dc222862506288829da2a372c082dda2dac2e802f0630392f662e942dcd2c1e2cac2a3d29b9273f253e22011dec98f6a089a52aa6bda651a7e4a73ca80da8a5a730a7c7a672a61ca6e2a59ea527a471a312a3b3a2b3a212a371a327a49ea5e2a51ca672a6c7a630a7a5a70da83ca8e4a751a7bda62aa689a5f6a0ec98011d3e223f25b9273d29ac2a1e2ccd2c942d662e392f06304d30c72ff62e312e802db32cf22b7e2a112969273f25c2220d1ea79570a0b9a36fa574a608a78ca701a83ba80fa8c3a76da718a719a7a0a66da649a637a626a626a637a649a66da6a0a619a718a76da7c3a70fa83ba801a88ca708a774a66fa5b9a370a0a7950d1ec2223f25692711297e2af22bb32c802d312ef62ec72f4d3094302d30982fe62e102e562d9c2cc42b542a1129b92786254823191f240c089e29a29aa529a69ea614a789a7f7a726a834a809a8d9a7a5a771a752a740a72fa72fa740a752a771a7a5a7d9a709a834a826a8f7a789a714a79ea629a69aa529a2089e240c191f48238625b9271129542ac42b9c2c562d102eca2e982f2d309430e030803026306d2fb32ef92d3f2d872cc42b7e2a3d290628cf250024d620c41ad19999a055a3b0a525a69ba6fca651a7a6a7f9a716a830a83ba82da824a81ca81ca824a82da83ba830a816a8f9a7a6a751a7fca69ba625a6b0a555a399a0d199c41ad620fb23cf2506283d297e2ac42b872c3f2df92db32e6d2f26308030e0303431da3065300830562f9c2ee52d3f2d9c2cf22bac2a6a2935287826c52466222b220310819cc2a043a3aba5c5a555a6aba6f5a629a75da790a7a7a7b8a7c9a7c9a7b8a7a7a790a75da729a7f5a6aba655a6c5a5aba543a3c2a0819c03102b226622c524782635286a29ac2af22b9c2c3f2de52d9c2e562f08306530da30343170311331b7305930f92f432f9c2ef92d562db32c102cda2ac029b5286a279325f6235421ae1f20115e9c5ca02ea200a4afa59ba524a658a68ca69ea6afa6c0a6c0a6afa69ea68ca658a624a69ba5afa500a42ea25ca05e9c2011a61d5421f62393256a27b528c029da2a1e2cb32c562df92d9c2e432ff92f5930b63013317031c23165310831ab305030f92f562fb32e102e6d2dcd2c372c5a2b472a3929322899263425e7236621f11dff179096489d76a0a8a1c3a2dea38ea599a5a7a5b7a5b7a5a7a599a58ea5dea3c3a2a8a176a0489d9096ff17f11d6621e7233425992632283929472a5a2b372ccd2c6d2d102eb32e562ff92f5030ab3008316531c2311332b6315931ff30ab30593008306d2fca2e312e942d082d7c2ce22bcf2ac029e7281728a4263d2517245c228a20711dfd17c58ad798a19cc59f359ff39f58a058a0f39f359fc59fa19cd798c48afd17711d8a205c2217243d25a4261728e728c029cf2ae32b7c2c082d942d312ee62e6d2f08305930ab30ff305931b731133265320832ae3159310831b63065302630982ff62e662eda2d482dc12c362c762b9b2ac229ed282028fa26ea25f3240a248d22722157207a1ed41c171cb31a38193819b31a171cd41c7a1e572072218d220a24f324ea25fa262028ed28c2299b2a762b362cc12c482dda2d662ef62e982f26306530b73008315931ae3108326532b6325c320832b63165311331da3080302d30c72f392fac2e202e932d0b2d9b2c2c2c7c2bbc2ad02934299b280628eb2621268425f22465240824b2235323f422f4225323b22308246524f22484252126eb2606289b283429d029bc2a7c2b2c2c9b2c0b2d932d202eac2e392fc72f2d308030da3013316531b63108325c32b6320b33b63265321332c23170313431e03094304d300630802ff22e662eec2d7d2d0d2d9e2c302ca32b032b652ac7292d29cb286f28152878271527dc26a3266b266b26a326dc261527782715286f28cb282d29c729652a032ba32b302c9e2c0d2d7d2dec2d662ef22e802f06304d309430e03034317031c23113326532b6320b332c33d73286323432e33191314531f230a73061301c30af2f252f9d2e282ebc2d522de92c822c2b2cc52b372bad2a292ad8298e2946290329d728bf28a82890289028a828bf28d728032946298e29d829292aad2a372bc52b2b2c822ce92c522dbc2d282e9d2e252faf2f1c306130a730f23045319e31e33134328632d7322c33d7327e322932d73186313431e33093304230f42f6a2fe12e592ed22d502de62c7e2c192c842bb52a2f2ab1293a29c72870282928c6273827db26ac267d264d264d267d26ac26db263827c62729287028c6283a29b1292f2ab52a842b192c7e2ce62c502dd22d592ee12e6a2ff42f42309330ec3034318631d73129327e32d73286322932cf317a312931d73086303430c62f282f9d2e162e8f2d0a2d882c162c672ba82af4294f29cc285828c727de261a268c25ff2471240824b2235323f422f4225323b22308247124ff248c251a26de26c7275828cc284f29f429a82a672b162c882c0a2d8f2d162e9d2e282fc62f34308630d73029317a31cf31293286323432d7317a312031cc307a302930af2f0c2f6a2ed32d4d2dc92c482c962ba72aef294829a8282d28ea26012618252f24a6228b217020ab1ed41c171cb31a38193819b31a171cd41cab1e70208b21a6222f2418250126ea262d28a8284829ef29a72a962b482cc92c4d2dd32d6a2e192faf2f29307a30cc3020317a31d7313432e33186312931cc3071301d30982ff52e532eb32d152d892c092c1d2b332a5d29a4280328c726bb264724a622d420051ec218298174986f9c9b9ee19e269f6c9f6c9f269fe19e9b9e6f9c74982981c218051ed420a6224724bb2621270928a4285d29332a1d2b092c892c152dc02d532ef52e982f1d307130cc3029318631e33191313431d7307a301d30852fde2e3d2e9d2dff2c652ca02ba72ac629f9289828d1267d253c24f821ee1e27194194b49c4b9f28a08fa0f7a05fa182a1a5a1c8a1c8a1a5a182a15fa1f7a08fa028a04b9fb49c41942719ee1ef8213c247d25d1269828f928c629a72aa02b722cff2c9d2d3d2ede2e852f1d307a30d730343191314531e33086302930982fde2e292e872de92c502c762b5d2a5f299528992736281925e621cb1e2317729a399f47a0f1a09ca131a298a200a367a394a3b7a3d9a3d9a3b7a394a367a300a398a231a29ca1f1a047a0399f739a2317cb1ee62119253628992795285f29772a762b502ce92c872d292ede2e982f29308630e3304531f23093303430af2ff52e3d2e872dd62c3a2c4e2b372a3b294d28d1263e25572332203318ba9a4e9f91a07ca13ea2e8a293a31da450a484a499a47ea46ca45ba45ba46ca47ea499a484a450a41da493a3e8a23ea27ca191a04e9fba9a3318322057233e25d12688283b29372a4e2b3a2cd62c872d3d2ef52eaf2f34309330f230a7304230c62f192f532e9d2de92c3a2c282b122a19292a2877269924c721441d1894eb9ea0a083a16ea259a31aa46fa48ca436a4f8a390a329a3eaa2c7a2a5a2a5a2c7a2eaa229a390a3f8a336a48ca46fa41aa459a36ea29ea198a0eb9e1894441dc721992477262a281929122a282b3a2ce92c9d2d532e0c2fc62f4230a7306130f42f282f6a2eb32dff2c502c4e2b122af928092834265624f120d618269c08a02fa156a25fa325a49aa441a4cca321a376a226a387a120a1d8a0b5a093a093a0b5a0d8a020a187a126a376a221a3cca341a49aa425a45fa356a22fa108a0269cd618f120562434260928f928122a4e2b502cff2cb32d6a2e282ff42f61301c306a2f9d2ed32d152d722c762b372a19290928f32513246b207d15789e9aa0c1a1e8a207a49ba43da491a3a6a2d5a12aa17fa05ca0fe9e4f9d2b9bb09935983598b0992b9b4f9dfe9e5ca07fa02aa1d5a1a6a291a33da49ba407a4e8a2c1a19aa0789e7d156b201324f32509281929372a762b652c152dd32d9d2e6a2f1c30af2fe12e162e4d2d892ca02b5d2a3b292a2834261324cc1f320dda9ecba029a27ba351a46ca4b2a39fa2b4a1c9a0bd9f679e8a987a152d1bcc1db71f3a20992099203a20b71fcc1d2d1b7a158a98679ebd9fc9a0b4a19fa2b2a36ca451a47ba329a2cba0da9e320dcc1f132434262a283b295d2aa02b892c4d2d162ee12eaf2f252f592e8f2dc92c092ca72a5f298828772656246b20320d3c9ffca05aa2b9a38ba423a41fa3f8a1d1a0b09f6a9cc010d01c3a200c2259233a24c124f0241f251f25f024c1243a2459230c223a20d01cc0106a9cb09fd1a0f8a11fa323a48ba4b9a35aa212a13c9f320d6b20562477264d285f29a72a092cc92c8f2d592e252f9d2ed22d0a2d482c1d2bc6299528d1269924f1207d15da9efca08ca2eaa3a4a4fca39ea266a13fa0539ddd11be1d6021c423cb24b425732600278e27c327f327f327c3278e2700277326b425cb24c4236021be1ddd11539d3fa066a19ea2fca3a4a4eaa38ca2fca0da9e7d15f1209924d1269528c6291d2b482c0a2dd22d9d2e282e502d882c962b332af92899273e25c721d618789ecba05aa2eaa394a4cba36da20ea1619f6798171c3021f3233a257a26792731289d28e3282a294b29632963294b292a29e3289d28312879277a263a25f3233021171c6798619f0ea16da2cba394a4eaa35aa2cba0789ed618c7213e259927f928332a962b882c502d282ebc2de62c162ca72a5d29982806265723441d269c9aa029a2b9a3a4a4cba33ca2eda0ff9e1384361fc022f3248326c427822814298929092a582aa92a0c2bf22af22a0c2ba92a582a052a892914298228c4278326f324c022361f1384ff9edda03ca2cba3a4a4b9a329a29aa0269c441d5723062698285d29a72a162ce62cbc2d522d7e2c672bef29a428d12619253220189408a0c1a17ba38ba4fca36da2dda09d9edf133920f523bb254d2770282729cb297c2a092baa2b002c2c2c5b2c582c582c5b2c2c2c002c952b092b7c2acb29272970284d27bb25f5233920de139d9edda06da2fca38ba47ba3c1a108a0189432201925d126a428ef29672b7e2c522de92c192ca82a482909287d25e6213318eb9e2fa1e8a251a423a49ea214a1ff9ede13bf203d241b26f927d4289e297c2a3e2b012c582cb72ce32c112d3f2d882d422d3f2d112de32ca32c582c012c3e2b7c2a9e29d428f9271b263d24bf20df13ff9e0ea19ea223a451a4e8a22fa1eb9e3318e6217d2503284829a82a192ce92c822c842bf429a82821273c24cb1eba9aa0a056a207a46ca41fa366a1619f138439203d245e261e280d29042af02ae42b692cd02c362d832dcd2dfc2d2c2e6b2e332e2c2efc2dcd2d832d362dd02c692ce42bf02a042a0d291e285e263d2439201384619f66a11fa36ca407a456a2a0a0ba9acb1e3c24c726a828f429842b822c2b2cb52a4f292d288625f82123174e9f9ea15fa39ba4b2a3f8a13fa06798371ff5231b261e282e29292a3f2b322cb12c342da62d112e692ebc2eec2e1c2f552f282f1c2fec2ebc2e692e112ea62d342db12c302c3f2b292a2e291e281b26f523361f67983fa0f8a1b2a39ba45fa383a14e9f2317f82186252d284f29b52a2b2cc52b2f2acc28ea264724ee1e729a91a06ea225a43da49fa2d1a0539d171cc022bb25f9270d29292a672b482ce12c762dfc2d802eed2e522faf2fdf2f083022300f300830df2faf2f522fed2e802efc2d762de12c482c672b292a0d29f927bb25c022171c539dd1a09fa23da425a46ea291a0729aee1e4724ea26cc282f2ac52b372bb12958280126a6222719399f7ca159a39aa491a3b4a1b09fdd113021f3244d27d428042a3f2b482cf72c952d342ec82e512fca2f1c3046306a3082309b308a3082306a3046301e30ca2f512fc82e342e952df72c482c3f2b042ad4284d27f3243021dd11b09fb4a191a39aa459a37ca1399f2719a62201265828b129372bad2a3a29c7271825d420419447a03ea21aa441a4a6a2c9a06a9cbe1df323832670289e29f02a302ce12c952d4b2eed2e952f0f3054309330bb30e430fd3015310631fd30e430bb30933054300f30952fed2e4b2e952de12c322cf02a9e2970288326f323be1d6a9cc9a0a6a241a41aa43ea247a04194d4201825c7273a29ad2a292ac628de262f24051eb49cf1a0e8a26fa4cca3d5a1bd9fc01060213a25c42727297c2ae42bb12c762d342eed2ea62f24307630ba30f93030316031783191318131783160313031f930ba3076302430a62fed2e342e7e2db12ce42b7c2a2729c4273a256021c010bd9fd5a1cca36fa4e8a2f1a0b49c051e2f24de26c728292ad82970281a26a622c2184b9f9ca193a38ca421a32aa1679ed01cc4237a268228cb293e2b692c342dfc2dc82e952f24308130dc3021316631a531cd31f4310d32fd31f431cd31a53166312131dc3081302430952fc82efc2d342d692c3e2bcb2982287a26c423d01c679e2aa121a38ca493a39ca14b9fc218a6221a267028d8298e2929288c258b21298128a031a21da436a476a27fa08a983a20cb24792714297c2a012cd02ca62d802e512f0f307630d33030318831cd3111324232703278327832703242321a32cd3188313031d33076300f30512f802ea62dd02c012c7c2a14297927cb243a208a987fa076a236a41da431a228a029818b218c2529288e294629c627ff24702074988fa098a250a4f8a326a35ca07a150c22b42531288929092b582c362d112eed2eca2f5430ba3021318831de3133327832b732ec32f332f332ec32b73278323332de3188312131ba305430ca2fed2e112e362d582c092b89293128b4250c227a155ca026a3f8a350a498a28fa074987020ff24c6274629032938277124ab1e6f9cf7a000a384a490a387a1fe9e2d1b592373269d28052a952ba32c832d692e522f1e309330f9306631cd3133328e32df322c3354336f336f3354332c33df328d323332cd316631f93093301e30522f692e832db72caa2b092a9d28732659232d1bfe9e87a190a384a400a3f7a06f9cab1e712438270329d728db260824d41c9b9e5fa167a399a429a320a14f9dcc1d3a240027e328582a002ce32ccd2dbc2eaf2f4630bb303031a53111327832df323b338b33c933ea33ea33c9338b333b33df3278321132a5313031bb304630af2fbc2ecd2de32c002c582ae32800273a24cc1d4f9d20a129a399a467a35fa19b9ed41c0824db26d728bf28ac26b223171ce19e82a194a37ea4eaa2d8a02b9bb71fc7248e272a29a92a2c2c112dfc2dec2edf2f6a30e4306031cd314232b7322c338b33ea331b343d343d341b34ea338b332433b7324232cd316031e4306a30df2fec2efc2d112d2c2ca92a2a298e27c724b71f2b9bd8a0eaa27ea494a382a1e19e171cb223ac26bf28a8287d265323b31a269fa5a1b7a36ca4c7a2b5a0b0993a20f024c3274b290c2b5b2c3f2d2c2e1c2f08308230fd307831f4317032ec325433c9331b344e346d346d344e341b34c9335433ec327032f4317831fd30823008301c2f2c2e3f2d5b2c0c2b4b29c327f0243a20b099b5a0c7a26ca4b7a3a5a1269fb31a53237d26a82890284d26f42238196c9fc8a1d9a35ba4a5a293a0359899201f25f3276329f22a582c882d6b2e552f22309b30153191310d327832f3326f33ea3333346d34a434a4346d343334ea336f33f33278320d32913115319b302230552f6b2e882d582cf22a6329f3271f259920359893a0a5a25ba4d9a3c8a16c9f3819f4224d26902890284d26f42238196c9fc8a1d9a35ba4a5a293a0359899201f25f3276329f22a582c422d332e282f0f308a3006318131fd317832f3326f33ea333d346d34a434a4346d343d34ea336f33f3327832fd31813106318a300f30282f332e422d582cf22a6329f3271f259920359893a0a5a25ba4d9a3c8a16c9f3819f4224d269028a8287d265323b31a269fa5a1b7a36ca4c7a2b5a0b0993a20f024c3274b290c2b5b2c3f2d2c2e1c2f08308230fd307831f4317032ec325433c9331b344e346d346d344e341b34c9335433ec327032f4317831fd30823008301c2f2c2e3f2d5b2c0c2b4b29c327f0243a20b099b5a0c7a26ca4b7a3a5a1269fb31a53237d26a828bf28ac26b223171ce19e82a194a37ea4eaa2d8a02b9bb71fc1248e272a29a92a2c2c112dfc2dec2edf2f6a30e4306031cd314232b7322c338b33ea331b34333433341b34ea338b332c33b7324232cd316031e4306a30df2fec2efc2d112d2c2ca92a2a298e27c124b71f2b9bd8a0eaa27ea494a382a1e19e171cb223ac26bf28d728db260824d41c9b9e5fa167a399a429a320a14f9dcc1d3a240027e328582a002ce32ccd2dbc2eaf2f4630bb303031a5311a327832df323b338b33c933ea33ea33c9338b333b33df3278321a32a5313031bb304630af2fbc2ecd2de32c002c582ae32800273a24cc1d4f9d20a129a399a467a35fa19b9ed41c0824db26d728032938277124ab1e6f9cf7a000a384a490a387a1fe9e2d1b592373269d28092aaa2bb72c832d692e522f1e309330f9306631cd3133328e32df32243354336f336f3354332433df328d323332cd316631f93093301c30522f692e832da32c952b052a9d28732659232d1bfe9e87a190a384a400a3f7a06f9cab1e71243827ff284629c627ff24702074988fa098a250a4f8a326a35ca07a150c22b42531288929092b582c362d112eed2eca2f5430ba3021318831de3133327832b732ec32f332f332ec32b73278323332de3188312131ba305430ca2fed2e112e362d582c092b89293128b4250c227a155ca026a3f8a350a498a28fa074987020ff24c62746298e2929288c258b21298128a031a21da436a476a27fa08a983a20cb24792714297c2a012cd02ca62d802e512f0f307630dc3030318831cd3111324232703278327832703242321a32cd3188313031dc3076300f30512f802ea62dd02c012c7c2a14297927cb243a208a987fa076a236a41da431a228a029818b218c2529288e29d82970281a26a622c2184b9f9ca193a38ca421a32aa1679ed01cc4237a268228cb293e2b692c342dfc2dc82e952f24308130d33021316631a531cd31f431fd31fd31f431cd31a53166312131d33081302430952fc82efc2d342d692c3e2bcb2982287a26c423d01c679e2aa121a38ca493a39ca14b9fc218a6221a267028d829292ac728de262f24051eb49cf1a0e8a26fa4cca3d5a1bd9fc01060213a25c42727297c2ae42bb12c762d342eed2ea62f24307630ba30f93030316031783181318131783160313031f930ba3076302430a62fed2e342e762db12ce42b7c2a2729c4273a256021c010bd9fd5a1cca36fa4e8a2f1a0b49c051e2f24de26c628292aad2a3a29c7271825d420419447a03ea21aa441a4a6a2c9a06a9cbe1df323832670289e29f02a302ce12c952d4b2eed2e952f0f3054309330bb30e430fd3015310631fd30e430bb30933054300f30952fed2e4b2e952de12c322cf02a9e2970288326f323be1d6a9cc9a0a6a241a41aa43ea247a04194d4201825c7273a29ad2a372bb12958280126a6222719399f7ca159a39aa491a3b4a1b09fdd113021f3244d27d428042a3f2b482cf72c952d342ec82e512fca2f1e3046306a3082308a308a3082306a3046301e30ca2f512fc82e342e952df72c482c3f2b042ad4284d27f3243021dd11b09fb4a191a39aa459a37ca1399f2719a62201265828b129372bc52b2f2acc28ea264724ee1e729a91a06ea225a43da49fa2d1a0539d171cc022bb25f9270d29292a672b482ce12c7e2dfc2d802eed2e522faf2fdf2f083022300f300830df2faf2f522fed2e802efc2d762de12c482c672b292a0d29f927bb25c022171c539dd1a09fa23da425a46ea291a0729aee1e4724ea26cc282f2ac52b2b2cb52a4f292d28bb26f82123174e9f83a15fa39ba4b2a3f8a13fa06798371ff5231b261e282e29292a3f2b322cb12c342da62d112e692ebc2eec2e1c2f552f282f1c2fec2ebc2e692e112ea62d342db12c322c3f2b292a2e291e281b26f523361f67983fa0f8a1b2a39ba45fa39ea14e9f2317f821bb262d284f29b52a2b2c822c842bf429a828c7263c24cb1eba9a98a056a207a46ca41fa366a1619f138439203d245e261e280d29042af02ae42b692cd02c362d832dcd2dfc2d2c2e6b2e332e2c2efc2dcd2d832d362dd02c692ce42bf02a042a0d291e285e263d2439201384619f66a11fa36ca407a456a2a0a0ba9acb1e3c242127a828f429842b822ce92c192ca82a482903287d25e6213318eb9e2fa1e8a251a423a49ea20ea1ff9ede13bf203d241b26f927d4289e297c2a3e2b012c582ca32ce32c112d3f2d882d422d3f2d112de32cb72c582c012c3e2b7c2a9e29d428f9271b263d24bf20df13ff9e0ea19ea223a451a4e8a22fa1eb9e3318e6217d2509284829a82a192ce92c522d7e2c672bef29a428d12619253220189408a0c1a17ba38ba4fca36da2eda09d9ede133920f523bb254d2770282729cb297c2a092b952b002c2c2c5b2c582c582c5b2c2c2c002caa2b092b7c2acb29272970284d27bb25f5233920df139d9edda06da2fca38ba47ba3c1a108a0189432201925d126a428ef29672b7e2c522dbc2de62c162ca72a5d29982836285723441d269c9aa029a2b9a3a4a4cba33ca2dda0ff9e1384361fc022f3248326c427822814298929052a582aa92a0c2bf22af22a0c2ba92a582a092a892914298228c4278326f324c022371f1384ff9edda03ca2cba3a4a4b9a329a29aa0269c441d5723362898285d29a72a162ce62cbc2d282e502d882c962b332af92899273e25c721d618789ecba05aa2eaa394a4cba36da214a1619f6798171c3021f3233a257a26792731289d28e3282a294b29632963294b292a29e3289d28312879277a263a25f3233021171c6798619f0ea16da2cba394a4eaa35aa2cba0789ed618c7213e259927f928332a962b882c502d282e9d2ed22d0a2d482c1d2bc6299528d1269924f1207d15da9efca08ca2eaa3a4a4fca39ea266a13fa0539ddd11be1d6021c423cb24b425732600278e27c327f327f327c3278e2700277326b425cb24c4236021be1ddd11539d3fa066a19ea2fca3a4a4eaa38ca212a1da9e7d15f1209924d1269528c6291d2b482c0a2dd22d9d2e252f592e8f2dc92c092ca72a5f296428772656246b20320d3d9ffca05aa2b9a38ba423a41fa3f8a1d1a0b09f6a9cc010d01c3a200c2259233a24c724f0241f251f25f024c7243a2459230c223a20d01cc0106a9cb09fd1a0f8a11fa323a48ba4b9a35aa2fca03c9f320d6b205624772688285f29a72a092cc92c8f2d592e252faf2fe12e162e4d2d892ca02b772a3b292a2834261324cc1f320dda9ecba029a27ba351a46ca4b2a39fa2b4a1c9a067a0679e8a987a152d1bcc1db71f3a20992099203a20b71fcc1d2d1b7a158a98679ebd9fc9a0b4a19fa2b2a36ca451a47ba329a2cba0da9e320dcc1f132434262a283b29772aa02b892c4d2d162ee12eaf2f1c306a2f9d2ed32d152d722c762b372a19290928f32513246b207d15789e9aa0c1a1e8a207a49ba43da491a3a6a2d5a12aa17fa05ca0fe9e4f9d2b9bb09935983598b0992b9b4f9dfe9e5ca07fa02aa1d5a1a6a291a33da49ba407a4e8a2c1a19aa0789e7d156b201324f32509281929372a762b722c152dd32d9d2e6a2f1c306130f42f282f6a2ec02dff2c502c4e2b122af928092834265624f120d618269c08a02fa156a25fa325a49aa441a4cca321a376a226a387a120a1d8a0b5a093a093a0b5a0d8a020a187a126a376a221a3cca341a49aa425a45fa356a22fa108a0269cd618f120562434260928f928122a4e2b502cff2cc02d6a2e282ff42f6130a7304230c62f192f532e9d2de92c3a2c282b122a19292a2877269924c721441d1894eb9ea0a09ea16ea259a31aa46fa48ca436a4f8a390a329a3eaa2c7a2a5a2a5a2c7a2eaa229a390a3f8a336a48ca46fa41aa459a36ea283a1a0a0eb9e1894441dc721992477262a281929122a282b3a2ce92c9d2d532e0c2fc62f4230a730f23093303430af2ff52e3d2e872dd62c3a2c4e2b372a3b294c28d1263e25572332203318ba9a4e9f91a07ca13ea2e8a293a31da450a484a499a47ea46ca45ba45ba46ca47ea499a484a450a41da493a3e8a23ea27ca191a04e9fba9a3318322057233e25d1264d283b29372a4e2b3a2cd62c872d3d2ef52eaf2f3b309330f2304531ec3086302930982fde2e292e872de92c502c762b5d2a5f299528992706261925e621cb1e2317729a399f47a0f1a09ca131a298a200a367a394a3b7a3d9a3d9a3b7a394a367a300a398a231a29ca1f1a047a0399f729a2317cb1ee62119250626992795285f295d2a762b502ce92c872d292ede2e982f29308630ec3045319e313431d7307a301d30852fde2e3d2e9d2dff2c652ca02ba72ac629f9289828d1267d253c24f821ee1e27194194b49c4b9f28a08fa0f7a05fa182a1a5a1c8a1c8a1a5a182a15fa1f7a08fa028a04b9fb49c41942719ee1ef8213c247d25d1269828f928c629a72aa02b722cff2c9d2d3d2ede2e852f1d307a30d73034319e31e33186312931cc3071301d30982ff52e532eb32d152d892c092c1d2b332a5d29a4280928212786254724a622d420051ec218298174986f9c9b9ee19e269f6c9f6c9f269fe19e9b9e6f9c74982981c218051ed420a62247248625c7260328a4285d29332a1d2b092c892c152db32d532ef52e982f1d307130cc3029318631e3313432d7317a312031cc307a302930af2f0c2f6a2ed32d4d2dc92c482c962ba72aef294829a8282d28ea26012618252f24a6228b217020ab1ed41c171cb31a38193819b31a171cd41cab1e70208b21a6222f2418250126ea262d28a8284829ef29a72a962b482cc92c4d2dd32d6a2e192faf2f29307a30cc3020317a31d731343286322932cf317a312931d73086303430c62f282f9d2e162e8f2d0a2d882c162c672ba82af4294f29cc285828c727de261a268c25ff2471240824b2235323f422f4225323b22308247124ff248c251a26de26c7275828cc284f29f429a82a672b162c882c0a2d8f2d162e9d2e282fc62f34308630d73029317a31cf3129328632d7327e322932d73186313431e33093304230f42f6a2fe12e592ed22d502de62c7e2c192c842bb52a2f2ab1293a29c62870282928c6273827db26ac267d264d264d267d26ac26db263827c62729287028c7283a29b1292f2ab52a842b192c7e2ce62c502dd22d592ee12e6a2ff42f42309330ec3034318631d73129327e32d7322c33d73286323432e33191314531f230a73061301c30af2f252f9d2e282ebc2d522de92c822c2b2cc52b372bad2a292ad8298e2946290329d728bf28a82890289028a828bf28d728032946298e29d829292aad2a372bc52b2b2c822ce92c522dbc2d282e9d2e252faf2f1c306130a730f23045319131e33134328632d7322c334e33f832a73255320432b23162311131c83084304130fd2f792ff72e882e242ec12d602d032db52c752c382cfb2b8e2b3d2bf62ab02a692a412a292a112afa29fa29112a292a412a692ab02af62a3d2b872bfb2b382c752cb52c032d602dc12d242e882ef72e792ffd2f41308430c83011316231b93104325532a732f8324e33f8329f324a32f831a73155310431b43065302030bb2f382fb72e382ebf2d5d2d002da52c592c012c8d2b182ba42a2f2ada2993294c290629d728bf28a82890289028a828bf28d72806294c299329da292f2aa42a182b8d2b012c592ca52c002d5d2dbf2d382eb72e382fbb2f20306530b4300b315531a731f8314a329f32f832a7324a32f0319b314a31f930a83059300a307c2ff82e772efa2d7f2d082da32c4d2cf72b9d2bb72a362ac1294d29d82876282f28d2274527db26ac267d264d264d267d26ac26db264527d2272f287628d8284d29c129362ab72a9d2bf72b4d2ca32c082d7f2dfa2d772ef82e7c2f0a305930a830f9304a319b31f0314a32a7325532f8319b314131ee309d304d30fd2f612fc72e392ebc2d432dcf2c612cf62b522bb22ab52a8a29de286a28eb270227262699250b257e240824b2235323f422f4225323b22308249c240b25992526260227fa276a28de288a29442ac12a532bf62b612ccf2c432dbc2d392ec72e6d2ffd2f4d309d30ee3041319b31f83155320432a7314a31ee3094304230e72f4b2fb12e1b2e892d092d972c2d2cf52bd22a0d2a6d29cd289128192726263d255424d822d2213321cb203f216d21a621e9214223262049205a21cb203321d221d82254243d25262619279128cd286d290d2ad22af52b2d2c972c092d892d272eb12e4b2fe72f42309430ee304a31a7310432b2315531f9309d304230d52f352f9c2e062e752df42c652cf62b2c2b4b2be429d12828281027cf258f24f0227b21be20c821231f541e851db51c6e1c291cc71bc71b291c6e1cb51c851d541e231fc821be207b21f0229124cf2510272828d128e4294b2b2c2bf62b652cf42c752d062e9c2e352fd52f42309d30f9305531b23162310b31a8304d30e72f352f8a2ef12d612dd62c532cb52bc92aff29362947294727c625862490220421b721e51e8f1d3a1c231a8418cc151f11ad0c5501028c028c5501ad0c1f11cc158418231a3a1c8f1de51eb721042190228624c625472747293629ff29e22acf2b532cd62c612df12d8a2e352fe72f4d30a830043162311131b4305930fd2f4b2f9c2ef12d4f2dc32c422c932ba42ab529d22808287f26ec24b622fd20cb214f1e7a1cee198816c90c00943d973d99e0990a997f98e897e8977f980a99e0993d993d970094c90c8816ee197a1c4f1ecb21fd20b622ec247f260828d228b529a42a932b422cc32c4f2df12d9c2e4b2ffd2f5930b4301131c83065300a306d2fb12e062e612dc32c322c722b832a9429a5286d27b72524247e217421421e6d1c2e190b12b39397987a999e95d18f220d85147b1691175318531891177b168514220dd18f9e957a999798b3930b122e196d1c421e74217e212424b7256d27a5289429832a722b322cc32c612d062eb12e612f0a306530c830843020307c2fc72e1b2e752dd62c422c722b632a722983282a274c25dd22d820631f151d8e19a2118594ee9944969388c3140c19291b631c331dc21d081e4d1e4d1e081ec21d331d631c291b0c19c31493884496ee998594a2118e19151d631fd820dd224c252a2783287229632a722b422cd62c752d1b2ec72e7c2f203084304130bb2ff82e392e892df42c532c932b832a72296328e626092561222c213f1ee11b89165d91f39910961b0d4f18921b1e1d741ea61f8321a220f3201621392139211621f320a2208321a61f741e1e1d921b4f181b0d1096f3995d918916e11b3f1e2c2161220925e62663287229832a932b532ce92c892d392ef82ebb2f4130fd2f382f772ebc2d092d652cb52ba42a94298328e626c724f3216821dc1d401ad50f43977e98b40369180a1ce01db61f24213121612272234624c124f0241f251f25f024c12446247223612231212421b61fe01d0a1c6918b4037e984397d50f401adc1d6821f321c724e62683289429a42ab52b652c092dbc2d772e382ffd2f792fb72efa2d432d972cf62be22ab529a5282a270925f321bb217a1d7c196c0075996994cf14041bd01d3322cc200d220724f024d9257f260d279427c327f327f327c32794270d277f26d925f02407240d22cc203322d01d041bcf14699475996c007c197a1dbb21f32109252a27a528b529c92af62b972c432dfa2db72e792ff72e382e7f2dcf2c2d2c2c2bff29d2286d274c25612268217a1db718088e399a27906e18a71cf51ea1201c2242248325b5269e274328a328ea2830294b29632963294b293029ea28a32843289e27b526832542241c22a120f51ea71c6e182790399a088eb7187a1d682161224c256d27d228ff292c2b2d2ccf2c7f2d382ef72e882ebf2d082d612cf52b632a36290828b725dd222c21dc1d7c19088ebe9957883319561dde213421b2236b25cc260628a72826299b29062a4d2a942af92acc2acc2af92a942a4d2a062a9b292629a7280628cc266b25b2233421de21561d33195788be99088e7c19dc1d2c21dd22b72508283629632af52b612c082dbf2d882e242e5d2da32cf62bd22ae4296c287f262424d8203f1e401a6d00399a5788f719b81d8421ce21a1243326c627ab284b29ec297d2af22a6a2bb12bf72b262c1b2c1b2c262cf72bb12b6a2bf22a7d2aec294b29ab28c6273326a124ce218421b81df7195788399a6c00401a3f1ed82024247f266c28e429d22af62ba32c5d2d242ec12d002d4d2c532b0d2ad1284727ec247e21631fe11bd50f759927903319b81d40213622f024ce2647281029d929902a312bd12b242c692c8f2cb62ce02cdd2cdd2ce02cb62c8f2c612c242cd12b312b902ad92910294728ce26f02436224021b81d331927907599d50fe11b631f7e21ec244727d1280d2a522b4d2c002dc12d602da52cf72bc12a6d292828c625b6227421151d8916439769946e18561d8421362233251127782866293d2a072bd02b3b2c902cdd2c332d5a2d852db02df32db22db02d852d5a2d202ddd2c902c3b2cd02b072b3d2a662977281127332536228421561d6e18699443978916151d7421b622c62528286d29b22af72ba52c602d032d592c9d2b442acd2810278624fd20421e8e195d917e98cf14a71cde21ce21f024112799288e29772a652b282c832cec2c4a2da72dee2d332e602e8c2ec82ec82e8c2e602e332eee2da72d4a2dec2c832c1a2c652b772a882999281127f024ce21de21a71ccf147e985d918e19421efd2086241027cd28122a9d2b592c032db52c012cb72a8a299128cf259022cb216d1ca211f399b403041bf51e3421a124ce2677288829982a872b3b2cba2c2d2da52d0f2e732ec62e152f432f712fa72fa72f712f432f152fc62e732e0f2ea52d2d2dba2c3b2c872b982a8e297828ce26a1243421f51e041bb403f399a2116d1ccb219022cf252c288a29b72a012cb52c752c8d2b362ade2819278f2404214f1e2e19859410966918d01da120b223332647286629772a872b4d2ccf2c592de22d602edc2e432fa42ffd2f16302d30463046302d301630fd2fa42f432fdc2e602ee22d592dcf2c4d2c872b772a662947283326b223a120d01d6918109685942e194f1e04218f241927de28362a8d2b752c382c182bc1296a282626f022b7217a1c0b12ee991b0d0a1c33221c226b25c62710293d2a652b3b2ccf2c6d2dff2d942e202fa32f0c30413074308c30a330bc30bc30a3308c30743041300c30a32f202f942eff2d6d2dcf2c3b2c652b3d2a1029c6276b251c2233220a1c1b0dee990b127a1cb721f02226266a28c129182b382cfb2ba42a4d29fa273d257b21e51eee19b39344964f18e01dcc204224cc26ab28d929072b1a2cbc2c592dff2daa2e432fdf2f34307730ad30dd3003311b31333133311b310331dd30ad3077303430df2f432faa2eff2d592dbc2c282c072bd929ab28cc264224cc20e01d4f184496b393ee19e51e7b213d25eb274d29a42afb2b872b2f2ad82802275424be208f1d881697989388921bb61f0d22832520284b29902ad02b832c2d2dea2d942e432ff52f49309930dc301b3151317c319431ac31ac3194317c3151311b31dc3099304930f52f432f942eea2d2d2d832cd02b902a4b29062883250d22b61f921b9388979888168f1dbe2054240227d8282f2a8e2b3d2bda2976282626d822c8213a1cc90c7a99c3141e1d24210724b526a728ec29312b3b2cec2ca52d602e202fdf2f4930a430f53042318731c631f5310e32263226320e32f531c63187314231f530a4304930df2f202f602ea52dec2c3b2c312bec29a728b526072424211e1dc3147a99c90c3a1cc821d82226267628da293d2bf62a93292f289925d221231f231a00949e950c19741e3121f0249e2726297d2ad12b902c4a2d0f2edc2ea32f34309930f5305131a231ee312f3263328832a032a032883263322f32ee31a9315131f53099303430a32fdc2e0f2e4a2d902cd12b7d2a26299e27f0243121741e0c199e950094231a231fd22199252f289329f62ab02a4c29d2270b253321541e84183d97d18f291ba61f6122d92543289b29f22a242cdd2ca72d732e432f0c307730dc304231a231ff3155329932d83203331b331b330333d83299325532ff31a2314231dc3077300c30432f732ea72ddd2c242cf22a9b294328d9256122a61f291bd18f3d978418541e33210b25d2274c29b02a692a062945277e24cb20851dcc153d99220d631c832172237f26a328062a6a2b612c202dee2dc62ea42f4130ad301b318731ee315532ae3200334d337e33963396337e334d330033ae325532ee3187311b31ad304130a42fc62eee2d332d692c6a2b062aa3287f2672238321631c220d3d99cc15851dcb207e2445270629692a412ad728db2608245a21b51c1f11e0998514331da22046240d27ea284d2ab12b8f2c5a2d332e152ffd2f7430dd305131c6312f32993200336733ac33ea3308340834ea33ac336733003399322f32c0315131dd307430fd2f152f332e5a2d8f2cb12b4d2aea280d274624a220331d8514e0991f11b51c3f210824db26d728412a292abf28ac26b22349206e1cad0c0a997b16c21df320c1249a273029942af72bb62c852d602e432f16308c3003317c31f5316332d8324533ac3309342b34463446342f340934ac334533d8326332f5317c3103318c301630432f602e852db62cf72b942a30299a27c124f320c21d7b160a99ad0c6e1c6d21b223ac26bf28292a112aa8287d2653232620291c55017f989117081e1621f024c3274b29f92a262ce02cb02d8c2e712f2d30a3301b3194310e32883203337e33ea332b345f347e347e345f342b34ea337e33033388320e3294311b31a3302d30712f8c2eb02de02c262cf92a4b29c327f0241621081e91177f985501291ca62153237d26a828112afa2990284d26f4224223c71b028ce89753184d1e39211f25f3276329cc2a1b2cdd2cf32dc82ea72f4630bc303331ac312632a0321b339633083446347e34b434b4347e344634083496331b33a0322632ac313331bc304630a72fc82ef32ddd2c1b2ccc2a6329f3271f2539214d1e5318e897028cc71be921f4224d269028fa29fa2990284d26f422e921c71b028ce89753184d1e39211f25f3276329cc2a1b2cdd2cb22dc82ea72f4630bc303331ac312632a0321b339633083446347e34b434b4347e344634083496331b33a0322632ac313331bc304630a72fc82eb22ddd2c1b2ccc2a6329f3271f2539214d1e5318e897028cc71b4223f4224d269028fa29112aa8287d265323a621291c55017f989117081e1621f024c3274b29f92a262ce02cb02d8c2e712f2d30a3301b3194310e32883203337e33ea332f345f347e347e345f342b34ea337e33033388320e3294311b31a3302d30712f8c2eb02de02c262cf92a4b29c327f0241621081e91177f985501291c262053237d26a828112a292abf28ac26b2236d216e1cad0c0a997b16c21df320c12494273029942af72bb62c852d602e432f16308c3003317c31f5316332d8324d33ac3309342b34463443342b340934ac334d33d8326332f5317c3103318c301630432f602e852db62cf72b942a30299a27c124f320c21d7b160a99ad0c6e1c4920b223ac26bf28292a412ad728db2608243f21b51c1f11e0998514331da22046240d27ea284d2ab12b8f2c5a2d332e152ffd2f7430dd305131c6312f32993200336733ac33ea3308340834ea33ac336733003399322f32c6315131dd307430fd2f152f332e5a2d8f2cb12b4d2aea280d274624a220331d8514e0991f11b51c5a210824db26d728412a692a062945277e24cb20851dcc153d99220d631c832172237f26a328062a6a2b692c332d0d2ec62ea42f4130ad301b318731ee315532ae32003345337e33963396337e3345330033ae325532ee3187311b31ad304130a42fc62eee2d202d612c6a2b062aa3287f2672238321631c220d3d99cc15851dcb209c2445270629692ab02a4c29d2270b253321541e84183d97d18f291ba61f6122d92543289b29f22a242cdd2ca72d732e432f0c307730dc304231a931ff3155329932d83203331b331b330333d83299325532ff31a9314231dc3077300c30432f732ea72ddd2c242cf22a9b294328d9256122a61f291bd18f3d978418541e33210b25d2274c29b02af62a93292f289925d221231f231a00949e950c19741e3121f0249e2726297d2ad12b902c4a2d0f2edc2ea32f34309930f5305131a231ee312f3263328832a032a032883263322f32ee31a9315131f53099303430a32fdc2e0f2e4a2d902cd12b7d2a26299e27f0243121741e0c199e950094231a231fd22199252f289329f62a3d2bda2976282626d822c8213a1cc90c7a99c3141e1d24210724b526a728ec29312b3b2cec2ca52d602e202fdf2f4930a430f53042318731c631f5310e32263226320e32f531c63187314231f530a4304930df2f202f602ea52dec2c3b2c312bec29a728b526072424211e1dc3147a99c90c3a1cc821d82226267628da293d2b8e2b2f2ad82802275424be208f1d881697989388921bb61f0d22832506284b29902ad02b832c2d2dea2d942e432ff52f49309930dc301b3151317c319431ac31ac3194317c3151311b31dc3099304930f52f432f942eea2d2d2d832cd02b902a4b29202883250d22b61f921b9388979888168f1dbe2054240227d8282f2a872bfb2ba42a4d29eb273d257b21e51eee19b39344964f18e01dcc204224cc26ab28d929072b1a2cba2c592dff2daa2e432fdf2f34307730ad30dd3003311b31333133311b310331dd30ad3077303430df2f432faa2eff2d592dbc2c1a2c072bd929ab28cc264224cc20e01d4f184496b393ee19e51e7b213d25fa274d29a42afb2b382c182bc1296a282626f022b7217a1c0b12ee991b0d0a1c33221c226b25c62710293d2a652b3b2ccf2c6d2dff2d942e202fa32f0c30413074308c30a330bc30bc30a3308c30743041300c30a32f202f942eff2d6d2dcf2c3b2c652b3d2a1029c6276b251c2233220a1c1b0dee990b127a1cb721f02226266a28c129182b382c752c8d2b362ade2819278f2404214f1e2e19859410966918d01da120b223332647286629772a872b4d2ccf2c592dea2d602edc2e432fa42ffd2f16302d30463046302d301630fd2fa42f432fdc2e602eea2d592dcf2c4d2c872b772a662947283326b223a120d01d6918109685942e194f1e042191241927de28362a8d2b752cb52c012cb72a8a299128cf259022cb216d1ca211f399b403041bf51e3421a124ce2678288e29982a872b3b2cbc2c2d2da52d0f2e732ec62e152f432f712fa72fa72f712f432f152fc62e732e0f2ea52d2d2dbc2c3b2c872b982a88297728ce26a1243421f51e041bb403f399a2116d1ccb219022cf2591288a29b72a012cb52c032d592c9d2bb52acd2810278624fd20421e8e195d917e98cf14a71cde21ce21f024112799288829772a652b1a2c832cec2c4a2da72dee2d332e602e8c2ec82ec82e8c2e602e332eee2da72d4a2dec2c832c1a2c652b772a8e2999281127f024ce21de21a71ccf147e985d918e19421efd2086241027cd28442a9d2b592c032d602da52cf72bb22a6d292828c625b6227421151d8916439769946e18561d8421362233251127772866293d2a072bd02b3b2c902cdd2c202d5a2d852db02df32df32db02d852d5a2d332ddd2c902c3b2cd02b072b3d2a662978281127332536228421561d6e18699443978916151d7421b622c62528286d29c12af72ba52c602dc12d002d4d2c522b0d2ad1284727ec247e21631fe11bd50f759927903319b81d40213622f024ce2647281029d929902a312bd12b242c612c8f2cb62ce02cdd2cdd2ce02cb62c8f2c692c242cd12b312b902ad92910294728ce26f02436224021b81d331927907599d50fe11b631f7e21ec244727d1280d2a532b4d2c002dc12d242e5d2da32cf62bd22ae42947297f262424d8203f1e401a6c00399a5788f719b81d8421ce21a1243326c627ab284b29ec297d2af22a6a2bb12bf72b262c1b2c1b2c262cf72bb12b6a2bf22a7d2aec294b29ab28c6273326a124ce218421b81df7195788399a6d00401a3f1ed82024247f264729e429d22af62ba32c5d2d242e882ebf2d082d612cf52b4b2b36290828b725dd222c21dc1d7c19088ebe9957883319561dde213421b2236b25cc262028a72826299b29062a4d2a942af92acc2acc2af92a942a4d2a062a9b292629a7280628cc266b25b2233421de21561d33195788be99088e7c19dc1d2c21dd22b725082836294b2bf52b612c082dbf2d882ef72e382e7f2dcf2c2d2c2c2bff29d2286d274c25612268217a1db718088e399a27906e18a71cf51ea1201c2242248325b5269e274328a328ea2830294b29632963294b293029ea28a32843289e27b526832542241c22a120f51ea71c6e182790399a088eb7187a1d682161224c256d27d228ff292c2b2d2ccf2c7f2d382ef72e792fb72efa2d432d972cf62bc92ab529a5282a270925f321bb217a1d7c196d0075996994cf14041bd01d3322cc200d220724f024d9257f260d279a27c327f327f327c3279a270d277f26d925f02407240d22cc203322d01d041bcf14699475996c007c197a1dbb21f32109252a27a528b529e22af62b972c432dfa2db72e792ffd2f382f772ebc2d092d652cca2ba42a94298328e626c724f3216821dc1d401ad50f43977e98b40369180a1ce01db61f24213121612272234624c124f0241f251f25f024c12446247223612231212421b61fe01d0a1c6918b4037e984397d50f401adc1d6821f321c724e62683289429a42acf2b652c092dbc2d772e382ffd2f4130bb2ff82e392e892df42c532c932b832a72296328e626092561222c213f1ee11b89165d91f39910961b0d4f18921b1e1d741ea61f8321a220f3201621392139211621f320a2208321a61f741e1e1d921b4f181b0d1096f3995d918916e11b3f1e2c2161220925e62663287229832a932b532cf42c892d392ef82ebb2f4130843020307c2fc72e272e752dd62c422c722b632a722983282a274c25dd226821631f151d8e19a2118594ee9944969388c3140c19291b631c331dc21d081e4d1e4d1e081ec21d331d631c291b0c19c31493884496ee998594a2118e19151d631fd820dd224c252a2783287229632a722b422cd62c752d272ec72e7c2f20308430c83065300a306d2fb12e062e612dc32c322c722b832a9429a5286d27b72524247e217421421e6d1c2e190b12b39397987a999e95d18f220d85147b1691175318531891177b168514220dd18f9e957a999798b3930b122e196d1c421e74217e212424b7256d27a5289429832a722b322cc32c612d062eb12e612f0a306530c8301131b4305930fd2f4b2f9c2ef12d4f2dc32c422c932ba42ab529d22808287f26ec24b622fd20cb214f1e7a1cee198816c90c00943d973d99e0990a997f98e897e8977f980a99e0993d993d970094c90c8816ee197a1c4f1ecb21fd20b622ec247f260828d228b529a42a932b422cc32c4f2df12d9c2e4b2ffd2f5f30b430113162310b31a8304d30e72f352f8a2ef12d612dd62c532cb52be22aff2936296c284727c625862490220421b721e51e8f1d3a1c231a8418cc151f11ad0c5501028c028c5501ad0c1f11cc158418231a3a1c8f1de51eb721042190228624c62547276c283629ff29c92ab52b532cd62c612df12d8a2e352fe72f4d30a8300b316231b9315531f9309d304230d52f352f9c2e062e752de92c652cf62b2c2b632ae429d12828281027cf258f24f0227b21be20c821231f541e851db51c6e1c291cc71bc71b291c6e1cb51c851d541e231fc821be207b21f0228f24cf2510272828d128e429632a2c2bf62b652cf42c752d062e9c2e352fd52f42309d30f9305531b9310432a7314a31ee3094304230e72f4b2fb12e1b2e892d092d972c2d2cf52bd22a0d2a6d29cd282c28192726263d255424d822d2213321cb205a21492026204223e921a6216d213f21cb203321d221d82254243d25262619272c28cd286d290d2ad22af52b2d2c972c092d892d1b2eb12e4b2fe72f42309430ee304a31a73104325532f8319b314131ee309d304d30fd2f612fc72e392ebc2d432dcf2c612cf62b532bc12a442a8a29de286a28eb270227262699250b257e240824b2235323f422f4225323b22308247e240b25992526260227eb276a28de288a29122ab22a522bf62b612ccf2c432dbc2d392ec72e6d2ffd2f4d309d30ee3041319b31f8315532a7324a32f0319b314a31f930a83059300a307c2ff82e772efa2d7f2d082da32c4d2cf72b9d2bb72a362ac1294d29d82876282f28d2274527db26ac267d264d264d267d26ac26db264527d2272f287628d8284d29c129362ab72a9d2bf72b4d2ca32c082d7f2dfa2d772ef82e7c2f0a305930a830f9304a319b31f0314a32a732f8329f324a32f831a73155310431b43065302030bb2f382fb72e382ebf2d5d2d002da52c592c012c8d2b182ba42a2f2ada2993294c290629d728bf28a82890289028a828bf28d72806294c299329da292f2aa42a182b8d2b012c592ca52c002d5d2dbf2d382eb72e382fbb2f20306530b4300b315531a731f8314a329f32f8324e33f832a73255320432b23162311131c83084304130fd2f792ff72e882e242ec12d602d032db52c752c382cfb2b872b3d2bf62ab02a692a412a292a112afa29fa29112a292a412a692ab02af62a3d2b8e2bfb2b382c752cb52c032d602dc12d242e882ef72e792ffd2f41308430c83011316231b23104325532a732f8324e336f331a33c93278322832d83189313b31f430b33073303330ea2f702f092fab2e512ef92da62d612d272dec2cb22c782c532c302c0c2cd32baa2b932b7b2b632b632b7b2b932baa2bd32b0c2c302c532c782cb22cec2c272d612da62df92d512eab2e092f702fea2f33307330b330f4303b318931df3128327832c9321a336f331a33c1326d321c32cd317d312f31e230963053301430ad2f342fbe2e4f2ef72da32d532d0b2db52c7b2c412c072c992b432bfd2ab62a6f2a412a292a112afa29fa29112a292a412a6f2ab62afd2a432b992b072c412c7b2cb52c0b2d532da32df72d4f2ebe2e342fad2f143053309630e23036317d31cd311c326d32c1321a33c9326d321432c23172312431d63089303e30ed2f702ff92e852e152eab2d502d002db02c7c2c102c9f2b2b2bb62a422ae029992952290c29d728bf28a82890289028a828bf28d7280e2952299929e029422ab72a2b2b9f2b102c7c2cbc2c032d502dab2d152e852ef92e702fed2f3e308930d63024317231c23114326d32c93278321c32c2316a311931cb307f303330d32f432fbf2e4d2edf2dad2d1f2db02c5e2c0e2cfc2bec2a482ad4295f29eb287d283a28fb278e273f2722270827ef262d275d284b284a278e27fb273a287d28eb285f29d429482aec2a7f2b0e2c5e2cb02c1f2dad2ddf2d4d2ebf2e432fdf2f33307f30cb3019316a31c2311c3278322832cd3172311931c33074302930bf2f2f2fa32e1e2eab2d462d4b2da52c1c2c772bd72a362a9629f6287d2812287127e826aa26762680268c269626a226b02603277828fd27922680267626aa26e826712712287d28f6289629362ad72a772b1c2ca52c4b2d462dab2d1e2eaf2e2f2fbf2f29307430c33019317231cd312832d8317d312431cb3074302030aa2f1b2f902e0c2e8f2d182daf2c4b2c442c3b2b3a2a9229f12853289a27ee2691268026a926a52572253e250a25f824e724d524d524e724f8240a253e257225a525a92680269126ee269a275328f12892293a2a3b2b442c4b2cb22c1c2d992d0c2e902e1b2faa2f20307430cb3024317d31d83189313631d6307f302930aa2f0a2f7d2efa2d7e2d072d932c192c692b9f2ad6290d2950289427d7268226a52696254025eb24a1246d2439240524df23bc2399239923bc23df23052439246d24a124eb2440259625a5268226d72694274f280d29d6299f2a692b192cb12c072d7e2dfa2d7d2e0a2faa2f29307f30d6302f3189313b31e23089303330bf2f1b2f7d2eea2d6d2df62c7e2c072c1f2b3b2a7229a928e227e0268226a9267025fb249a244524e0233923d22271225e227a229a22bc22bc229a227a225e227122d2223923e02345249a24fb247025a9268226e026e227a92872293b2a1f2b072c7e2cf62c6d2dea2d7d2e1b2fbf2f33308930e2303b31f43096303e30df2f2f2f902efa2d6d2de62c6e2ced2bfe2a0f2a202948285127992697266d25f82482240d243e239422682206237b23e32325244424562467246724562444242524e3237b230623682294223e230d248224f8246d25972699265127482820290f2afe2aed2b6e2ce62c6d2dfa2d902e2f2fd32f3e309630f430b3305330ed2f432fa32e0c2e7e2df62c6e2ccd2bdc2aed29fe281828e9264926b52522258e240a2429235d22f122a72329247e24c224f52429254d255f25702570255f254d252925f524c2247e242924a723f1225d2229230a248e242225b5254926e9261828fe28ed29dc2acd2b6e2cf62c7e2d0c2ea32e432fed2f5330b33073301430702fbf2e1e2e992d072d7e2ced2bdc2acd29dd28f927cb2688266c25d924452464235d22f722e2236624cf2424257a25c6259a262e265626682679267926682656262e269a26c6257a252425cf246624e223f7225d2264234524d9246c258826cb26f927dd28cd29dc2aed2b7e2c072d8f2d1e2ebf2e702f143073303330ad2ff92e4d2eab2d1c2d8f2c072cfe2aed29dd28c527b22695265425a524f823d1229a22c1236a24df245525ca2587267526cc2610276727c027e52706280628e527c02767271027cc2675268726ca255525df246a24c1239a22d122f823a52454259526b226c527dd28ed29fe2a072c932c182dab2d4d2ef92ead2f3330ea2f342f852edf2d462db22c192c1f2b0f2afe28f927b226a6263b258c24ba2369222c232924bd245125c1264326b8263e27e5276728a928f02833294b29632963294b293329f028a9286728e5273e27b8264326c1265125bd2429242c236922ba238c243b25a626b226f927fe280f2a1f2b192caf2c462ddf2d852e342fea2f702fbe2e152ead2de12c4b2c692b3b2a20291828cb2695263b25742489235a2277236a2406259a252d26bb2665273128c4283929ad290d2a532a9a2ab52acc2acc2ab52a9a2a532a0d2aad293929c42831286527bb262d269a2506256a2477235a22892374243b259526cb26182820293b2a692b4b2ce12cad2d152ebe2e702f092f4f2eab2d1f2da52ccd2b9f2a72294828e926882654258c2489236122a82383243225ae26772622273d28d0287029102a902a042b702bb72bfd2b2d2c1b2c1b2c2d2cfd2bb72b702b042b902a102a7029d0283d2822277726ae2632258324a823612289238c2454258826e926482872299f2acd2ba52c1f2dab2d4f2e092fab2ef72d502db02c1c2c3b2bd629a92851274d266c25a524ba235a22a8239b244b259a26aa26a82783284c29152ab52a552be72b2d2c6a2c8d2cb02cd92cd02cd02cd92cb02c8d2c6a2c2d2ce72b552bb72a152a4c298328a827aa269a264b259b24a8235a22ba23a5246c2549265127a928d6293b2b1c2cb02c502df72dab2e512ea32d032d5e2c772b3a2a0d29e2279226b525d924f8236922772383244b258c26c126e527d028b0297a2a432bfa2b4d2c9d2cd92c1b2d3f2d622d872d842d842d872d622d3f2d182dd92c9d2c4d2cfa2b432b7a2ab029d028e527c1268c264b25832477236922f823d924b5259226e2270d293a2a772b5e2c002da32d512ef92d532dbc2c0e2cd72a92294f28e026972622254524d1222c236a2432259a26c1260e28f228e129d02aa72b382c9d2cef2c402d852dd12df42d1a2e412e7f2e442e412e1a2ef42dc02d852d402def2c9d2c382ca72bd02ae129f2280e28c1269a2632256a242c23d122452422259726e02650289229d72a0e2cb02c532df92da62d0b2d7c2c7f2b362af12894275b266d258e2464239a2229240625ae26aa26e527f228022af12ae02b672ccf2c332d922de52d3a2e7b2eba2ee32e0c2f432f432f0c2fe32eba2e7b2e3a2ee52d922d332dcf2c672ce02bf12a022af228e527aa26ae26062529249a2264238e246d255b269427f128362afc2b7c2c0b2da62d612db52c102cec2a96295328d726a926f8240a245d22c123bd249a258a26a827d028e129f12a012c782cf02c662dcc2d382e982ef52e422f8c2fb72fe22f0a300a30e22fb72f8c2f422ff52e982e382ecc2d652df02c782c012cf12ae129d028a8278a269a25bd24c1235d220a24f824a926d72653289629ec2a102cb52c612d272d7b2c9f2b482af6289a275f26702582242923f7226a2451252d2622278328b029d02ae02b782c002d782df32d6f2ee32e562fb72f0930333049306030783078306030493033300930b72f562fe32e6f2ef32d782d002d782ce02bd02ab029832822272d2651256a24f7222923822470255f269a27f628482a9f2b7b2c272dec2c412c2b2bd4297d28ee26a526fb240d245d22e223df24c126bb2626284c297a2aa72b672cf02c782d052e892e142f962f083040307330a430bb30d130e930e930d130bb30a430733040300830962f142f892e052e782df02c672ca72b7a2a4c292628bb26c126df24e2235d220d24fb24a526ee267d28d4292b2b412cec2cb22c072cb72a5f291228912696259a243e23f1226624552580266527d028162a432b382ccf2c652df32d892e272fb72f25306730a730db3009312e3145315c315c3145312e310931db30a73067302530b72f272f892ef32d662dd02c382c432b162ad0286527802655256624f1223e239a249625912612285f29b62a072cb22c782c992b422aeb2871273c26402545249422a723cf24ca25b82631287029b72afa2b9d2c332dcc2d762e142fb72f2f307b30c730083145317931a331bb31d231d231bb31a331793145310831c7307b302f30b72f142f762ecc2d332d9d2cfa2bb52a70293128b826ca25cf24a7239422452440253c267127eb28422a992b782c532c432be0297d28e826a926eb24e02368222924242587263e27c428102a552b4d2cef2c922d382ee32e962f25307b30d23020316b31ae31e5311a3231324932493231321a32e531ae316b312031d2307b302530962fe32e382e922def2c4d2c552b102ac4283e278726242529246822e023eb24a926e8267d28e029432b532c302cfd2a99293a28aa26a525a124392306237e247a258926e5273929902ae72b9d2c402de52d982e562f08306730c73020317931c931123252329132a932c132c132a932913252321232c93179312031c73067300830562f982ee52d402d9d2ce72b902a3929e52789267a257e2406233923a124a525aa263a289929fd2a302c0c2cb62a5229fb27762672256d24d2227b23c224c625cc266728ad29042b2d2cd92c852d3a2ef52eb72f4030a73008316b31c93123327732bb32f9322133393339332133f932bb3277322332c9316b310831a7304030b72ff52e3a2e852dd92c2f2c042bad295828cc26c625c2247b23d2226d2472257626fb275229b62a0c2cd32b6f2a0e298e2742263e2539247122e323f5249a261027a9280d2a702b6a2c182dc02d7b2e422f09307330db304531ae3112327432d032213364339a33b233b2339a3364332133d03274321232ae314531db3073300930422f7b2ed12d1b2d6a2c702b0d2aa92810279a26f524e323712239243e2542268e270c296f2ad32baa2b412ad7284a2792260a2505245e222524292583266727f028532ab72b8d2c3f2df42dba2e8c2f3330a43009317931e5315232bb3221337e33cd330a34163416340a34cd337e332133bb325232e53179310931a43033308c2fba2ef42d3f2d8d2cb72b532af02867278326292525245e2205240a258c263f27d728412aaa2b932b292abf284b28fd27f824df237a2244244d255626c02733299a2afd2bb02c622d1a2ee32eb72f4930bb302e31a3311a329132f9326433cd3316343c34533453343c341934cd336433f93291321a32a3312e31bb304930b72fe32e1a2e622db02cfd2b9a2a3329c02756264d2544247a22df23f82496262227bf28292a932b7b2b112aa8285d28f025e724bc239a2256245f256826e5274b29b52a2d2cd92c872d412e0c2fe22f6030d1304531bb313132a93221339a330a343c346f348e348e346f343c340a349a332133a9323132bb314531d1306030e22f0c2f412e872dd92c2d2cb52a4b29e52768265f2556249a22bc23e724a2260827a828112a7b2b632bfa2990282d270327d5249923bc2267247025792606286329cc2a1b2cd02c842d7f2e432f0a307830e9305c31d2314932c1323933b233163453348e34c534c5348e3453341634b2333933c1324932d2315c31e93078300a30432f7f2e842dd02c1b2ccc2a63290628792670256724bc229923d524b026ef269028fa29632b632bfa299028ef26b026d5249923bc2267247025792606286329cc2a1b2cd02c842d442e432f0a307830e9305c31d2314932c1323933b233163453348e34c534c5348e3453341634b2333933c1324932d2315c31e93078300a30432f7f2e842dd02c1b2ccc2a63290628792670256724bc229923d52403272d279028fa29632b7b2b112aa8280827a226e724bc239a2256245f256826e5274b29b52a2d2cd92c872d412e0c2fe22f6030d1304531bb313132a93221339a330a3440346f348e348e346f343c340a349a332133a9323132bb314531d1306030e22f0c2f412e872dd92c2d2cb52a4b29e52768265f2556249a22bc23e72481289128a828112a7b2b932b292abf2822279626f824df237a2244244d255626c02733299a2afd2bb02c622d1a2ee32eb72f4930bb302e31a3311a329132f9326433cd3319343c34533454343c341934cd336433f93291321a32a3312e31bb304930b72fe32e1a2e622db02cfd2b9a2a3329c02756264d2544247a22df23f82401264b28bf28292a932baa2b412ad7283f278c260a2505245e22252429252e266727f028532ab72b8d2c3f2df42dba2e8c2f3330a43009317931e5315232bb3221337e33cd330a34163416340a34cd337e332133bb325232e53179310931a43033308c2fba2ef42d3f2d8d2cb72b532af02867272e26292525245e2205240a2592264a27d728412aaa2bd32b6f2a0c298e2780263e2539247122e323f5249a261027a9280d2a702b6a2c1b2dd12d962e422f09307330db304531ae3112327732d032213364339a33b233b2339a3364332133d03277321232ae314531db3073300930422f7b2ec02d182d6a2c702b0d2aa92810279a26f524e323712239243e2580268e270e296f2ad32b0c2cb62a5229fb27762672256d24d2227b23c224c625cc266728ad29042b2d2cd92c852d3a2ef52eb72f4030a73008316b31c93123327432bb32f9322133393339332133f932bb3277322332c9316b310831a7304030b72ff52e3a2e852dd92c2d2c042bad295828cc26c625c2247b23d2226d2472257626fb275229b62a0c2c302cfd2a99293a28aa26a525a124392306237e247a257526e5273929902ae72b9d2c402de52d982e562f08306730c73020317931c931123252329132a932c132c132a932913252321232c93179312031c73067300830562f982ee52d402d9d2ce72b902a3929e52775267a257e2406233923a124a525aa263a289929fd2a302c532c432be0297d28e826a926eb24e02368222924242587263e27c428102a552b4d2cef2c922d382ee32e962f25307b30d23020316b31ae31e5311a3231324932493231321a32e531ae316b312031d2307b302530962fe32e382e922def2c4d2c552b102ac4283e278726242529246822e023eb24a926e8267d28e029432b532c782c992b422aeb2871278026402545249422a723cf24ca25b82631287029b52afa2b9d2c332dcc2d6f2e142fb72f2f307b30c730083145317931a331bb31d231d231bb31a331793145310831c7307b302f30b72f142f762ecc2d332d9d2cfa2bb72a70293128b826ca25cf24a72394224524402580267127eb28422a992b782cb22c072cb62a5f291228912696259a243e23f1226624552543266527d028152a432b382ccf2c662df32d892e272fb72f25306730a730db3009312e3145315c315c3145312e310931db30a73067302530b72f272f892ef32d652dcf2c382c432b162ad0286527432655256624f1223e239a249625912612285f29b72a072cb22cec2c412c2b2bd4297d28ee26a526fb240d245d22e223df24c126bb2626284c297a2aa72b672cf02c782d052e892e142f962f083040307330a430bb30d130e930e930d130bb30a430733040300830962f142f892e052e782df02c672ca72b7a2a4c292628bb26c126df24e2235d220d24fb24a526ee267d28d4292b2b412cec2c272d7b2c9f2b482af6289a278226702582242923f7226a2451252d2622278328b029d02ae02b782c002d782df32d762ee32e562fb72f0930333049306030783078306030493033300930b72f562fe32e762ef32d782d002d782ce02bd02ab029832822272d2651256a24f72229238224702582269a27f628482a9f2b7b2c272d612db52c102cec2a96295328d726a926f8240a245d22c123bd249a257726a827d028e129f12a012c782cf02c652dcc2d382e982ef52e422f8c2fb72fe22f0a300a30e22fb72f8c2f422ff52e982e382ecc2d662df02c782c012cf12ae129d028a82777269a25bd24c1235d220a24f824a926d72653289629ec2a102cb52c612da62d0b2d7c2c7b2b362af128942782266d258e2464239a2229240625ae26aa26e527f228022af12ae02b672ccf2c332d922de52d3a2e7b2eba2ee32e0c2f432f432f0c2fe32eba2e7b2e3a2ee52d922d332dd02c672ce02bf12a022af228e527aa26ae26062529249a2264238e246d2582269427f128362a7f2b7c2c0b2da62df92d532db02c0e2cd72a92295028e026972622254524d1222c236a2432259a26c1260e28f228e129d02aa72b382c9d2cef2c402d852dc02df42d1a2e412e7f2e7f2e412e1a2ef42dd12d852d402def2c9d2c382ca72bd02ae129f2280e28c1269a2632256a242c23d122452422259726e0264f289229d72a0e2cbc2c532df92d512ea32d002d5e2c772b3a2a0d29e2279926b525d924f8236922772383244b258c26c126e527d028b0297a2a432bfa2b4d2c9d2cd92c182d3f2d622d872d842d842d872d622d3f2d1b2dd92c9d2c4d2cfa2b432b7a2ab029d028e527c1268c264b25832477236922f823d924b5259926e2270d293a2a772b5e2c032da32d512eab2ef72d502db02c1c2c3b2bd629a928512749266c25a524ba235a22a8239b244b259a26aa26a82783284c29162ab72a552be72b2d2c6a2c8d2cb02cd92cd02cd02cd92cb02c8d2c6a2c2d2ce72b552bb52a162a4c298328a827aa269a264b259b24a8235a22ba23a5246c2549265127a928d6293b2b1c2cb02c502df72dab2e092f4f2eab2d1f2da52ccd2b9f2a72294828e926882654258c2489236122a82383243225ae268a2622272628d0287029102a902a042b702bb72bfd2b2d2c1b2c1b2c2d2cfd2bb72b702b042b902a102a7029d028262822278a26ae2632258324a823612289238c2454258826e926482872299f2acd2ba52c1f2dab2d4f2e092f702fbe2e152ead2d4b2d4b2c692b3b2a20291828cb2695263b25742489235a2277236a2406259a252d26bb2665273128c4283929ad290d2a532a9a2ab52acc2acc2ab52a9a2a532a0d2aad293929c42831286527bb262d269a2506256a2477235a22892374243b259526cb26182820293b2a692b4b2c4b2dad2d152ebe2e702fea2f342f852edf2d462daf2c192c1f2b0f2afe28f927b226a6263b258c24ba2369222c232924bd245125c1268026b8263e27e5275828a928f02833294b29632963294b293329f028a9285828e5273e27b8268026c1265125bd2429242c236922ba238c243b25a626b226f927fe280f2a1f2b192cb22c462ddf2d852e342fea2f3330ad2ff92e4d2eab2d182d972c072cfe2aed29dd28c527b22695265425a524f823d1229a22c1236a24df245525ca2587268926cc2610276727c027e52706280628e527c02767271027cc2689268726ca255525df246a24c1239a22d122f823a52454259526b226c527dd28ed29fe2a072cb12c1c2dab2d4d2ef92ead2f333073301430702fbf2e1e2e992d072d7e2ced2bdc2acd29dd28f927cb2688266c25d924452464235d22f722e2236624cf2424257a25c6259a26832656266826792679266826562683269a26c6257a252425cf246624e223f7225d2264234524d9246c258826cb26f927dd28cd29dc2aed2b7e2c072d992d1e2ebf2e702f14307330b3305330ed2f432faf2e0c2e7e2df62c6e2ccd2bdc2aed29fe281828e9264d26b52522258e240a2429235d22f122a72329247e24c224f52429254d255f25702570255f254d252925f524c2247e242924a723f1225d2229230a248e242225b5254926e9261828fe28ed29dc2acd2b6e2cf62c7e2d0c2eaf2e432fed2f5330b330f43096303e30df2f2f2f902efa2d6d2de62c6e2ced2bfe2a0f2a202948285127922697266d25f82482240d243e239422682206237b23e32325244424562467246724562444242524e3237b230623682294223e230d248224f8246d25972692265127482820290f2afe2aed2b6e2ce62c6d2dfa2d902e2f2fd32f3e309630f4303b31e23089303330bf2f1b2f7d2eea2d6d2df62c7e2c072c1f2b3b2a7229a928e227e0265b26a9267025fb249a244524e0233923d22271225e227a229a22bc22bc229a227a225e227122d2223923e02345249a24fb247025a9265b26e026e227a92872293b2a1f2b072c7e2cf62c6d2dea2d7d2e1b2fbf2f33309030e2303b3189313631d6307f302930aa2f0a2f7d2efa2d7e2d072d8f2c192c692b9f2ad6290d294f289427d7265f26a52696254025eb24a1246d2439240524df23bc2399239923bc23df23052439246d24a124eb2440259625a5265f26d726942750280d29d6299f2a692b192c932c072d7e2dfa2d7d2e0a2faa2f29307f30d63036318931df317d312431cb3074302030aa2f1b2f902e0c2e8f2d1c2db22c4b2cce2b3b2b3a2a9229f12853289a27ee2691263c26a926a52572253e250a25f824e724d524d524e724f8240a253e257225a525a9263c269126ee269a275328f12892293a2a3b2bcd2b4b2caf2c182d992d0c2e902e1b2faa2f20307430cb3024317d31df312832cd3172311931c33074302930bf2f2f2fa32e1e2eab2d462de12ca52c1c2c772bd72a362a9629f6287d2812287127e826aa267626422692260126f0250327b026a22696268c2642267626aa26e826712712287d28f6289629362ad72a772b1c2ca52ce12c462dab2d1e2ea32e2f2fbf2f29307430c33019317231cd31283278321c32c2316a311931cb307f303330d32f432fbf2e4d2edf2dad2d1f2db02c5e2c0e2c7f2bec2a482ad4295f29eb287d283a28fb278e274a274b285d282d27ef26082722273f278e27fb273a287d28eb285f29d429482aec2a7b2b0e2c5e2cb02c1f2dad2ddf2d4d2ebf2e432fdf2f33307f30cb3019316a31c2311c327832c9326d321432c23172312431d63089303e30ed2f702ff92e852e152eab2d502d032dbc2c7c2c102c9f2b2b2bb72a422ae029992952290e29d728bf28a82890289028a828bf28d7280c2952299929e029422ab62a2b2b9f2b102c7c2cb02c002d502dab2d152e852ef92e702fed2f3e308930d63024317231c23114326d32c9321a33c1326d321c32cd317d312f31e230963053301430ad2f342fbe2e4f2ef72da32d532d0b2db62c7b2c412c072c992b432bfd2ab62a6f2a412a292a112afa29fa29112a292a412a6f2ab62afd2a432b992b072c412c7b2cb52c0b2d532da32df72d4f2ebe2e342fad2f143053309630e23036317d31cd311c326d32c1321a336f331a33c93278322832d83189313b31f430b33073303330ea2f702f092fab2e512ef92da62d612d272dec2cb22c782c532c302c0c2cd32baa2b932b7b2b632b632b7b2b932baa2bd32b0c2c302c532c782cb22cec2c272d612da62df92d512eab2e092f702fea2f33307330b330f4303b318931d83128327832c9321a336f33 + m_StreamData: + serializedVersion: 2 + offset: 0 + size: 0 + path: diff --git a/Assets/Models/TorusSDF.asset.meta b/Assets/Models/TorusSDF.asset.meta new file mode 100644 index 0000000..f41b5cb --- /dev/null +++ b/Assets/Models/TorusSDF.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 217478ebd5ef82e418bc4f496500c2e5 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11700000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources.meta b/Assets/Resources.meta new file mode 100644 index 0000000..8d51298 --- /dev/null +++ b/Assets/Resources.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 6cc190f18874d584a9c34a4d82c3a020 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Test.compute b/Assets/Resources/Test.compute new file mode 100644 index 0000000..22125d8 --- /dev/null +++ b/Assets/Resources/Test.compute @@ -0,0 +1,45 @@ +#pragma kernel CSMain + +struct Test +{ + float x; + float y; + float z; +}; + +RWStructuredBuffer _test; + +[numthreads(10,10,10)] +void CSMain (uint3 threadID : SV_DispatchThreadID) +{ + float3 hoge = float3(1, 0, 0); + + for (int i = 0; i < 100000; i++) + { + float3 fuga0 = float3(1, 1, 1); + float3 fuga1 = float3(1, 1, 1); + float3 fuga2 = float3(1, 1, 1); + float3 fuga3 = float3(1, 1, 1); + float3 fuga4 = float3(1, 1, 1); + float3 fuga5 = float3(1, 1, 1); + float3 fuga6 = float3(1, 1, 1); + float3 fuga7 = float3(1, 1, 1); + float3 fuga8 = float3(1, 1, 1); + float3 fuga9 = float3(1, 1, 1); + float3 fuga10 = float3(1, 1, 1); + float3 fuga11 = float3(1, 1, 1); + float3 fuga12 = float3(1, 1, 1); + float3 fuga13 = float3(1, 1, 1); + float3 fuga14 = float3(1, 1, 1); + float3 fuga15 = float3(1, 1, 1); + float3 fuga16 = float3(1, 1, 1); + float3 fuga17 = float3(1, 1, 1); + float3 fuga18 = float3(1, 1, 1); + float3 fuga19 = float3(1, 1, 1); + hoge += fuga19; + } + + _test[threadID.x].x = hoge.x; + _test[threadID.x].y = hoge.y; + _test[threadID.x].z = hoge.z; +} diff --git a/Assets/Resources/Test.compute.meta b/Assets/Resources/Test.compute.meta new file mode 100644 index 0000000..57fbca5 --- /dev/null +++ b/Assets/Resources/Test.compute.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8f9d521438b123a4c89b53db27c6d59b +ComputeShaderImporter: + externalObjects: {} + preprocessorOverride: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/ParticleSimulator/Scenes.meta b/Assets/Scenes.meta similarity index 100% rename from Packages/ParticleSimulator/Scenes.meta rename to Assets/Scenes.meta diff --git a/Packages/ParticleSimulator/Scenes/SampleScene.unity b/Assets/Scenes/SampleScene.unity similarity index 60% rename from Packages/ParticleSimulator/Scenes/SampleScene.unity rename to Assets/Scenes/SampleScene.unity index 89d7244..bcec3f6 100644 --- a/Packages/ParticleSimulator/Scenes/SampleScene.unity +++ b/Assets/Scenes/SampleScene.unity @@ -38,7 +38,7 @@ RenderSettings: m_ReflectionIntensity: 1 m_CustomReflection: {fileID: 0} m_Sun: {fileID: 0} - m_IndirectSpecularColor: {r: 0.18028305, g: 0.22571313, b: 0.3069213, a: 1} + m_IndirectSpecularColor: {r: 0.18028334, g: 0.22571328, b: 0.3069217, a: 1} m_UseRadianceAmbientProbe: 0 --- !u!157 &3 LightmapSettings: @@ -200,14 +200,14 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 330585543} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 1, z: -10} + m_LocalRotation: {x: 0.3965729, y: -0, z: -0, w: 0.91800326} + m_LocalPosition: {x: 50.6, y: 53.3, z: 25.4} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 0} m_RootOrder: 0 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_LocalEulerAnglesHint: {x: 46.728, y: 0, z: 0} --- !u!114 &330585547 MonoBehaviour: m_ObjectHideFlags: 0 @@ -356,6 +356,137 @@ MonoBehaviour: m_ShadowLayerMask: 1 m_LightCookieSize: {x: 1, y: 1} m_LightCookieOffset: {x: 0, y: 0} +--- !u!1 &510845131 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 510845134} + - component: {fileID: 510845133} + - component: {fileID: 510845132} + m_Layer: 0 + m_Name: Terrain + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 2147483647 + m_IsActive: 1 +--- !u!154 &510845132 +TerrainCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 510845131} + m_Material: {fileID: 0} + m_Enabled: 1 + m_TerrainData: {fileID: 15600000, guid: ffc5bd70bcd51484d8dc93b11acf91e6, type: 2} + m_EnableTreeColliders: 1 +--- !u!218 &510845133 +Terrain: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 510845131} + m_Enabled: 1 + serializedVersion: 6 + m_TerrainData: {fileID: 15600000, guid: ffc5bd70bcd51484d8dc93b11acf91e6, type: 2} + m_TreeDistance: 5000 + m_TreeBillboardDistance: 50 + m_TreeCrossFadeLength: 5 + m_TreeMaximumFullLODCount: 50 + m_DetailObjectDistance: 80 + m_DetailObjectDensity: 1 + m_HeightmapPixelError: 5 + m_SplatMapDistance: 1000 + m_HeightmapMaximumLOD: 0 + m_ShadowCastingMode: 2 + m_DrawHeightmap: 1 + m_DrawInstanced: 0 + m_DrawTreesAndFoliage: 1 + m_StaticShadowCaster: 0 + m_ReflectionProbeUsage: 1 + m_MaterialTemplate: {fileID: 2100000, guid: 594ea882c5a793440b60ff72d896021e, type: 2} + m_BakeLightProbesForTrees: 1 + m_PreserveTreePrototypeLayers: 0 + m_DeringLightProbesForTrees: 1 + m_ScaleInLightmap: 0.0256 + m_LightmapParameters: {fileID: 15203, guid: 0000000000000000f000000000000000, type: 0} + m_GroupingID: 0 + m_RenderingLayerMask: 1 + m_AllowAutoConnect: 1 +--- !u!4 &510845134 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 510845131} + 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: 0} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &755618987 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 755618988} + - component: {fileID: 755618989} + m_Layer: 0 + m_Name: ParticlePhysicsSim + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &755618988 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 755618987} + 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: 0} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &755618989 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 755618987} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9191cb30d96eeb84f8623096ba9b4356, type: 3} + m_Name: + m_EditorClassIdentifier: + _maxParticle: 8192 + _particleType: 1 + _particleRadius: 0.1 + _spornPos: {x: 50, y: 25, z: 50} + _effect: {fileID: 1358538621} + _terrain: {fileID: 510845133} + _objects: [] + _gridSize: {x: 40, y: 30, z: 40} + _gridCellSize: 1 --- !u!1 &832575517 GameObject: m_ObjectHideFlags: 0 @@ -405,3 +536,125 @@ Transform: m_Father: {fileID: 0} m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1358538619 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1358538622} + - component: {fileID: 1358538621} + - component: {fileID: 1358538620} + m_Layer: 0 + m_Name: ParticleVFX + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!73398921 &1358538620 +VFXRenderer: + serializedVersion: 1 + m_ObjectHideFlags: 2 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1358538619} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 0 + m_LightProbeUsage: 0 + m_ReflectionProbeUsage: 0 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!2083052967 &1358538621 +VisualEffect: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1358538619} + m_Enabled: 1 + m_Asset: {fileID: 8926484042661614526, guid: 3d4f8513ed75ea64cac14dded283f6e0, type: 3} + m_InitialEventName: OnPlay + m_InitialEventNameOverriden: 0 + m_StartSeed: 0 + m_ResetSeedOnPlay: 1 + m_ResourceVersion: 1 + m_PropertySheet: + m_Float: + m_Array: + - m_Value: 0.2 + m_Name: ParticleSize + m_Overridden: 1 + m_Vector2f: + m_Array: [] + m_Vector3f: + m_Array: [] + m_Vector4f: + m_Array: [] + m_Uint: + m_Array: [] + m_Int: + m_Array: + - m_Value: 0 + m_Name: ParticleCount + m_Overridden: 0 + - m_Value: 0 + m_Name: ParticleNum + m_Overridden: 1 + m_Matrix4x4f: + m_Array: [] + m_AnimationCurve: + m_Array: [] + m_Gradient: + m_Array: [] + m_NamedObject: + m_Array: + - m_Value: {fileID: 10208, guid: 0000000000000000e000000000000000, type: 0} + m_Name: ParticleMesh + m_Overridden: 0 + m_Bool: + m_Array: [] +--- !u!4 &1358538622 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1358538619} + 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: 0} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} diff --git a/Packages/ParticleSimulator/Scenes/SampleScene.unity.meta b/Assets/Scenes/SampleScene.unity.meta similarity index 100% rename from Packages/ParticleSimulator/Scenes/SampleScene.unity.meta rename to Assets/Scenes/SampleScene.unity.meta diff --git a/Packages/ParticleSimulator/Scripts.meta b/Assets/Scripts.meta similarity index 77% rename from Packages/ParticleSimulator/Scripts.meta rename to Assets/Scripts.meta index f978eaa..adab362 100644 --- a/Packages/ParticleSimulator/Scripts.meta +++ b/Assets/Scripts.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 4acf49f6d65838e4bac16008fe837274 +guid: b255ceeca0214884ba07427f1081a1f2 folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Assets/Scripts/TestScript.cs b/Assets/Scripts/TestScript.cs new file mode 100644 index 0000000..6bbf52b --- /dev/null +++ b/Assets/Scripts/TestScript.cs @@ -0,0 +1,59 @@ +using System.Collections; +using System.Collections.Generic; +using System.Runtime.InteropServices; +using UnityEngine; + +public struct Test +{ + public float x; + public float y; + public float z; +} + +public class TestScript : MonoBehaviour +{ + uint _objNum = 10; + + ComputeShader _shader; + GraphicsBuffer _buffer; + + // Start is called before the first frame update + void Start() + { + _shader = (ComputeShader)Resources.Load("Test"); + _buffer = new GraphicsBuffer( + GraphicsBuffer.Target.Structured, + (int)_objNum, + Marshal.SizeOf(typeof(Test))); + + DispatchShader(isDebugLog: true); + } + + // Update is called once per frame + void Update() + { + DispatchShader(isDebugLog: false); + } + + private void OnDestroy() + { + _buffer.Release(); + } + + void DispatchShader(bool isDebugLog) + { + int kernelID = _shader.FindKernel("CSMain"); + _shader.SetBuffer(kernelID, "_test", _buffer); + _shader.GetKernelThreadGroupSizes(kernelID, out var x, out var y, out var z); + _shader.Dispatch(kernelID, 300, 1, 1); + + if (!isDebugLog) return; + + var result = new Test[_objNum]; + _buffer.GetData(result); + foreach (var eachResult in result) + { + Debug.Log(eachResult.x); + } + } +} diff --git a/Assets/Scripts/TestScript.cs.meta b/Assets/Scripts/TestScript.cs.meta new file mode 100644 index 0000000..a9d5790 --- /dev/null +++ b/Assets/Scripts/TestScript.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c4746c39449ee14429c55e9c2f9411c0 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Terrains.meta b/Assets/Terrains.meta new file mode 100644 index 0000000..6bb2f8e --- /dev/null +++ b/Assets/Terrains.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 59197ac21a2d66d4abc2fad5b5821d3a +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Terrains/FreeTerrain.asset b/Assets/Terrains/FreeTerrain.asset new file mode 100644 index 0000000..d1d939c Binary files /dev/null and b/Assets/Terrains/FreeTerrain.asset differ diff --git a/Assets/Terrains/FreeTerrain.asset.meta b/Assets/Terrains/FreeTerrain.asset.meta new file mode 100644 index 0000000..c29c3a9 --- /dev/null +++ b/Assets/Terrains/FreeTerrain.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ffc5bd70bcd51484d8dc93b11acf91e6 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 15600000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/ParticleSimulator/Editor.meta b/Packages/ParticleSimulator/Editor.meta new file mode 100644 index 0000000..b6e69a0 --- /dev/null +++ b/Packages/ParticleSimulator/Editor.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5af30aa89de1935499508376e6ee8651 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/ParticleSimulator/Editor/Qoopen.ParticleSimulator.Editor.asmdef b/Packages/ParticleSimulator/Editor/Qoopen.ParticleSimulator.Editor.asmdef new file mode 100644 index 0000000..ef7fad3 --- /dev/null +++ b/Packages/ParticleSimulator/Editor/Qoopen.ParticleSimulator.Editor.asmdef @@ -0,0 +1,16 @@ +{ + "name": "Qoopen.ParticleSimulator.Editor", + "rootNamespace": "", + "references": [ + "GUID:b3e94bd2ff72d1c468c04bb56352f59a", + "Unity.VisualEffectGraph.Runtime" + ], + "includePlatforms": ["Editor"], + "allowUnsafeCode": false, + "overrideReferences": false, + "precompiledReferences": [], + "autoReferenced": true, + "defineConstraints": [], + "versionDefines": [], + "noEngineReferences": false +} \ No newline at end of file diff --git a/Packages/ParticleSimulator/Editor/Qoopen.ParticleSimulator.Editor.asmdef.meta b/Packages/ParticleSimulator/Editor/Qoopen.ParticleSimulator.Editor.asmdef.meta new file mode 100644 index 0000000..e8f3b95 --- /dev/null +++ b/Packages/ParticleSimulator/Editor/Qoopen.ParticleSimulator.Editor.asmdef.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: cc14e4d469874084f9e7e7eb4b580374 +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/ParticleSimulator/Runtime.meta b/Packages/ParticleSimulator/Runtime.meta new file mode 100644 index 0000000..31eec9c --- /dev/null +++ b/Packages/ParticleSimulator/Runtime.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 50cbee0333c7df844b2e3f2e8b70b69f +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/ParticleSimulator/Runtime/Effects.meta b/Packages/ParticleSimulator/Runtime/Effects.meta new file mode 100644 index 0000000..1915e84 --- /dev/null +++ b/Packages/ParticleSimulator/Runtime/Effects.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1b3fda7aa21301f4bbecefe1cc432da6 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/ParticleSimulator/Runtime/Effects/ParticleVFX.vfx b/Packages/ParticleSimulator/Runtime/Effects/ParticleVFX.vfx new file mode 100644 index 0000000..2b26510 --- /dev/null +++ b/Packages/ParticleSimulator/Runtime/Effects/ParticleVFX.vfx @@ -0,0 +1,4276 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &114340500867371532 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d01270efd3285ea4a9d6c555cb0a8027, type: 3} + m_Name: VFXUI + m_EditorClassIdentifier: + groupInfos: [] + stickyNoteInfos: [] + categories: [] + uiBounds: + serializedVersion: 2 + x: -392 + y: -190 + width: 1757 + height: 1391 +--- !u!114 &114350483966674976 +MonoBehaviour: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7d4c867f6b72b714dbb5fd1780afe208, type: 3} + m_Name: ParticleVFX + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661614555} + - {fileID: 8926484042661614558} + - {fileID: 8926484042661614583} + - {fileID: 8926484042661614604} + - {fileID: 8926484042661614614} + - {fileID: 8926484042661614621} + - {fileID: 8926484042661614700} + - {fileID: 8926484042661614770} + - {fileID: 8926484042661614996} + - {fileID: 8926484042661615020} + - {fileID: 8926484042661615112} + - {fileID: 8926484042661615116} + - {fileID: 8926484042661615127} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_UIInfos: {fileID: 114340500867371532} + m_ParameterInfo: + - name: ParticleNum + path: ParticleNum + tooltip: + sheetType: m_Uint + realType: UInt32 + defaultValue: + m_Type: + m_SerializableType: System.UInt32, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + min: -Infinity + max: Infinity + enumValues: [] + descendantCount: 0 + - name: ParticleSize + path: ParticleSize + tooltip: + sheetType: m_Float + realType: Single + defaultValue: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.1 + min: -Infinity + max: Infinity + enumValues: [] + descendantCount: 0 + - name: ParticleBuffer + path: + tooltip: + sheetType: + realType: GraphicsBuffer + defaultValue: + m_Type: + m_SerializableType: + m_SerializableObject: + min: -Infinity + max: Infinity + enumValues: [] + descendantCount: 0 + - name: debugBuffer + path: + tooltip: + sheetType: + realType: GraphicsBuffer + defaultValue: + m_Type: + m_SerializableType: + m_SerializableObject: + min: -Infinity + max: Infinity + enumValues: [] + descendantCount: 0 + m_ImportDependencies: [] + m_GraphVersion: 9 + m_ResourceVersion: 1 + m_SubgraphDependencies: [] + m_CategoryPath: +--- !u!2058629511 &8926484042661614527 +VisualEffectResource: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: ParticleVFX + m_Graph: {fileID: 114350483966674976} + m_Infos: + m_RendererSettings: + motionVectorGenerationMode: 0 + shadowCastingMode: 0 + receiveShadows: 0 + reflectionProbeUsage: 0 + lightProbeUsage: 0 + m_CullingFlags: 0 + m_UpdateMode: 0 + m_PreWarmDeltaTime: 0.05 + m_PreWarmStepCount: 0 + m_InitialEventName: OnPlay +--- !u!114 &8926484042661614555 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 73a13919d81fb7444849bae8b5c812a2, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: + - {fileID: 8926484042661614611} + m_UIPosition: {x: 941, y: -190} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: [] + m_Label: Spawn system + m_Data: {fileID: 8926484042661614595} + m_InputFlowSlot: + - link: [] + - link: [] + m_OutputFlowSlot: + - link: + - context: {fileID: 8926484042661614558} + slotIndex: 0 + loopDuration: 0 + loopCount: 0 + delayBeforeLoop: 0 + delayAfterLoop: 0 +--- !u!114 &8926484042661614558 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9dfea48843f53fc438eabc12a3a30abc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: + - {fileID: 8926484042661614768} + m_UIPosition: {x: 941, y: 192} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661614801} + m_OutputSlots: [] + m_Label: + m_Data: {fileID: 8926484042661614568} + m_InputFlowSlot: + - link: + - context: {fileID: 8926484042661614555} + slotIndex: 0 + m_OutputFlowSlot: + - link: + - context: {fileID: 8926484042661614583} + slotIndex: 0 +--- !u!114 &8926484042661614568 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d78581a96eae8bf4398c282eb0b098bd, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + title: + m_Owners: + - {fileID: 8926484042661614558} + - {fileID: 8926484042661614583} + - {fileID: 8926484042661615020} + dataType: 0 + capacity: 32000 + stripCapacity: 16 + particlePerStripCount: 16 + needsComputeBounds: 1 + boundsMode: 1 + m_Space: 1 +--- !u!114 &8926484042661614583 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2dc095764ededfa4bb32fa602511ea4b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: + - {fileID: 8926484042661614650} + - {fileID: 8926484042661614763} + m_UIPosition: {x: 941, y: 524} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: [] + m_Label: + m_Data: {fileID: 8926484042661614568} + m_InputFlowSlot: + - link: + - context: {fileID: 8926484042661614558} + slotIndex: 0 + m_OutputFlowSlot: + - link: + - context: {fileID: 8926484042661615020} + slotIndex: 0 + integration: 0 + angularIntegration: 0 + ageParticles: 1 + reapParticles: 1 + skipZeroDeltaUpdate: 0 +--- !u!114 &8926484042661614595 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f68759077adc0b143b6e1c101e82065e, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + title: + m_Owners: + - {fileID: 8926484042661614555} +--- !u!114 &8926484042661614604 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 486e063e1ed58c843942ea4122829ab1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: -392, y: 739} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661614605} + attribute: particleId + location: 0 + mask: xyz +--- !u!114 &8926484042661614605 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c52d920e7fff73b498050a6b3c4404ca, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614605} + m_MasterData: + m_Owner: {fileID: 8926484042661614604} + m_Value: + m_Type: + m_SerializableType: System.UInt32, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: particleId + m_serializedType: + m_SerializableType: System.UInt32, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661614623} + - {fileID: 8926484042661615114} +--- !u!114 &8926484042661614611 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5e382412bb691334bb79457a6c127924, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614555} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661614612} + - {fileID: 8926484042661614613} + m_OutputSlots: [] + m_Disabled: 0 + repeat: 0 + spawnMode: 0 + delayMode: 0 +--- !u!114 &8926484042661614612 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614612} + m_MasterData: + m_Owner: {fileID: 8926484042661614611} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: Count + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661614701} +--- !u!114 &8926484042661614613 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614613} + m_MasterData: + m_Owner: {fileID: 8926484042661614611} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: Delay + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614614 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 330e0fca1717dde4aaa144f48232aa64, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661614615} + m_ExposedName: ParticleBuffer + m_Exposed: 1 + m_Order: 2 + m_Category: + m_Min: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Max: + m_Type: + m_SerializableType: + m_SerializableObject: + m_IsOutput: 0 + m_EnumValues: [] + m_ValueFilter: 0 + m_Tooltip: + m_Nodes: + - m_Id: 0 + linkedSlots: + - outputSlot: {fileID: 8926484042661614615} + inputSlot: {fileID: 8926484042661614622} + position: {x: -300.66666, y: 667.3334} + expandedSlots: + - {fileID: 8926484042661614615} + expanded: 0 +--- !u!114 &8926484042661614615 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d5ff4abdfc4ddb54992e15a0636f5d0e, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614615} + m_MasterData: + m_Owner: {fileID: 8926484042661614614} + m_Value: + m_Type: + m_SerializableType: UnityEngine.GraphicsBuffer, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: o + m_serializedType: + m_SerializableType: UnityEngine.GraphicsBuffer, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661614622} +--- !u!114 &8926484042661614621 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2edef10e6f1ffed47bad3472a10739a6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: -49, y: 680} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661614622} + - {fileID: 8926484042661614623} + m_OutputSlots: + - {fileID: 8926484042661615088} + m_Type: + m_SerializableType: ParticleSimulator.ParticleStatus, Qoopen.ParticleSimulator, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + mode: 1 +--- !u!114 &8926484042661614622 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d5ff4abdfc4ddb54992e15a0636f5d0e, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614622} + m_MasterData: + m_Owner: {fileID: 8926484042661614621} + m_Value: + m_Type: + m_SerializableType: UnityEngine.GraphicsBuffer, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: buffer + m_serializedType: + m_SerializableType: UnityEngine.GraphicsBuffer, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661614615} +--- !u!114 &8926484042661614623 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c52d920e7fff73b498050a6b3c4404ca, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614623} + m_MasterData: + m_Owner: {fileID: 8926484042661614621} + m_Value: + m_Type: + m_SerializableType: System.UInt32, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: index + m_serializedType: + m_SerializableType: System.UInt32, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661614605} +--- !u!114 &8926484042661614650 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a971fa2e110a0ac42ac1d8dae408704b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614583} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661614651} + m_OutputSlots: [] + m_Disabled: 0 + attribute: position + Composition: 0 + Source: 0 + Random: 0 + channels: 6 +--- !u!114 &8926484042661614651 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5265657162cc1a241bba03a3b0476d99, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661614652} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614651} + m_MasterData: + m_Owner: {fileID: 8926484042661614650} + m_Value: + m_Type: + m_SerializableType: UnityEditor.VFX.Position, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"position":{"x":0.0,"y":0.0,"z":0.0}}' + m_Space: 0 + m_Property: + name: Position + m_serializedType: + m_SerializableType: UnityEditor.VFX.Position, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615089} +--- !u!114 &8926484042661614652 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614651} + m_Children: + - {fileID: 8926484042661614653} + - {fileID: 8926484042661614654} + - {fileID: 8926484042661614655} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614651} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: position + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614653 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614652} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614651} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614654 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614652} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614651} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614655 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614652} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614651} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614700 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 330e0fca1717dde4aaa144f48232aa64, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661614701} + m_ExposedName: ParticleNum + m_Exposed: 1 + m_Order: 0 + m_Category: + m_Min: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Max: + m_Type: + m_SerializableType: + m_SerializableObject: + m_IsOutput: 0 + m_EnumValues: [] + m_ValueFilter: 0 + m_Tooltip: + m_Nodes: + - m_Id: 0 + linkedSlots: + - outputSlot: {fileID: 8926484042661614701} + inputSlot: {fileID: 8926484042661614612} + position: {x: 599.3333, y: -74.666664} + expandedSlots: [] + expanded: 0 +--- !u!114 &8926484042661614701 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c52d920e7fff73b498050a6b3c4404ca, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614701} + m_MasterData: + m_Owner: {fileID: 8926484042661614700} + m_Value: + m_Type: + m_SerializableType: System.UInt32, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: o + m_serializedType: + m_SerializableType: System.UInt32, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661614612} +--- !u!114 &8926484042661614763 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a971fa2e110a0ac42ac1d8dae408704b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614583} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661614764} + m_OutputSlots: [] + m_Disabled: 0 + attribute: color + Composition: 0 + Source: 0 + Random: 0 + channels: 6 +--- !u!114 &8926484042661614764 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661614765} + - {fileID: 8926484042661614766} + - {fileID: 8926484042661614767} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614764} + m_MasterData: + m_Owner: {fileID: 8926484042661614763} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":0.12058823555707932,"y":0.05882352963089943,"z":0.045098040252923968}' + m_Space: 2147483647 + m_Property: + name: Color + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614765 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614764} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614764} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615124} +--- !u!114 &8926484042661614766 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614764} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614764} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615125} +--- !u!114 &8926484042661614767 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614764} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614764} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615126} +--- !u!114 &8926484042661614768 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a971fa2e110a0ac42ac1d8dae408704b, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614558} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661614769} + m_OutputSlots: [] + m_Disabled: 0 + attribute: size + Composition: 0 + Source: 0 + Random: 0 + channels: 6 +--- !u!114 &8926484042661614769 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614769} + m_MasterData: + m_Owner: {fileID: 8926484042661614768} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.1 + m_Space: 2147483647 + m_Property: + name: Size + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661614771} +--- !u!114 &8926484042661614770 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 330e0fca1717dde4aaa144f48232aa64, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661614771} + m_ExposedName: ParticleSize + m_Exposed: 1 + m_Order: 1 + m_Category: + m_Min: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Max: + m_Type: + m_SerializableType: + m_SerializableObject: + m_IsOutput: 0 + m_EnumValues: [] + m_ValueFilter: 0 + m_Tooltip: + m_Nodes: + - m_Id: 0 + linkedSlots: + - outputSlot: {fileID: 8926484042661614771} + inputSlot: {fileID: 8926484042661614769} + position: {x: 602, y: 317.3333} + expandedSlots: [] + expanded: 0 +--- !u!114 &8926484042661614771 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614771} + m_MasterData: + m_Owner: {fileID: 8926484042661614770} + m_Value: + m_Type: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0.1 + m_Space: 2147483647 + m_Property: + name: o + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661614769} +--- !u!114 &8926484042661614801 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1b605c022ee79394a8a776c0869b3f9a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661614802} + - {fileID: 8926484042661614806} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614801} + m_MasterData: + m_Owner: {fileID: 8926484042661614558} + m_Value: + m_Type: + m_SerializableType: UnityEditor.VFX.AABox, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"center":{"x":500.0,"y":250.0,"z":500.0},"size":{"x":1000.0,"y":500.0,"z":1000.0}}' + m_Space: 0 + m_Property: + name: bounds + m_serializedType: + m_SerializableType: UnityEditor.VFX.AABox, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614802 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614801} + m_Children: + - {fileID: 8926484042661614803} + - {fileID: 8926484042661614804} + - {fileID: 8926484042661614805} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614801} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: center + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614803 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614802} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614801} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614804 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614802} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614801} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614805 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614802} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614801} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614806 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614801} + m_Children: + - {fileID: 8926484042661614807} + - {fileID: 8926484042661614808} + - {fileID: 8926484042661614809} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614801} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: size + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614807 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614806} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614801} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614808 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614806} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614801} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614809 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614806} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614801} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614996 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ff586d222e0139c47bff3afaf19631aa, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 289, y: 1043} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661614997} + - {fileID: 8926484042661615010} + m_OutputSlots: + - {fileID: 8926484042661615015} +--- !u!114 &8926484042661614997 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3e3f628d80ffceb489beac74258f9cf7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661614998} + - {fileID: 8926484042661615002} + - {fileID: 8926484042661615006} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614997} + m_MasterData: + m_Owner: {fileID: 8926484042661614996} + m_Value: + m_Type: + m_SerializableType: UnityEditor.VFX.Transform, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"position":{"x":0.0,"y":0.0,"z":0.0},"angles":{"x":0.0,"y":0.0,"z":0.0},"scale":{"x":1.0,"y":1.0,"z":1.0}}' + m_Space: 0 + m_Property: + name: transform + m_serializedType: + m_SerializableType: UnityEditor.VFX.Transform, Unity.VisualEffectGraph.Editor, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614998 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614997} + m_Children: + - {fileID: 8926484042661614999} + - {fileID: 8926484042661615000} + - {fileID: 8926484042661615001} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614997} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: position + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661614999 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614998} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614997} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614998} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614997} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615001 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614998} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614997} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615002 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614997} + m_Children: + - {fileID: 8926484042661615003} + - {fileID: 8926484042661615004} + - {fileID: 8926484042661615005} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614997} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: angles + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615003 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615002} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614997} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615004 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615002} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614997} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615005 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615002} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614997} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615006 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661614997} + m_Children: + - {fileID: 8926484042661615007} + - {fileID: 8926484042661615008} + - {fileID: 8926484042661615009} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614997} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: scale + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615007 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615006} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614997} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615008 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615006} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614997} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615009 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615006} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661614997} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615010 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c499060cea9bbb24b8d723eafa343303, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615011} + - {fileID: 8926484042661615012} + - {fileID: 8926484042661615013} + - {fileID: 8926484042661615014} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615010} + m_MasterData: + m_Owner: {fileID: 8926484042661614996} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector4, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":0.0,"y":0.0,"z":0.0,"w":0.0}' + m_Space: 2147483647 + m_Property: + name: vec + m_serializedType: + m_SerializableType: UnityEngine.Vector4, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615011 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615010} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615010} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615012 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615010} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615010} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615013 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615010} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615010} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615014 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615010} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615010} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: w + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615015 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c499060cea9bbb24b8d723eafa343303, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615016} + - {fileID: 8926484042661615017} + - {fileID: 8926484042661615018} + - {fileID: 8926484042661615019} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615015} + m_MasterData: + m_Owner: {fileID: 8926484042661614996} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector4, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":0.0,"y":0.0,"z":0.0,"w":0.0}' + m_Space: 2147483647 + m_Property: + name: tVec + m_serializedType: + m_SerializableType: UnityEngine.Vector4, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615016 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615015} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615015} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615017 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615015} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615015} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615018 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615015} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615015} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615019 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615015} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615015} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: w + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615020 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a0b9e6b9139e58d4c957ec54595da7d3, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: + - {fileID: 8926484042661615023} + m_UIPosition: {x: 941, y: 881} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615021} + m_OutputSlots: [] + m_Label: + m_Data: {fileID: 8926484042661614568} + m_InputFlowSlot: + - link: + - context: {fileID: 8926484042661614583} + slotIndex: 0 + m_OutputFlowSlot: + - link: [] + blendMode: 1 + useAlphaClipping: 0 + generateMotionVector: 0 + excludeFromTAA: 0 + sortingPriority: 0 + m_SubOutputs: [] + cullMode: 0 + zWriteMode: 0 + zTestMode: 0 + colorMapping: 0 + uvMode: 0 + useSoftParticle: 0 + vfxSystemSortPriority: 0 + sort: 0 + indirectDraw: 0 + computeCulling: 0 + frustumCulling: 0 + castShadows: 0 + useExposureWeight: 0 + flipbookLayout: 0 + shaderGraph: {fileID: 0} + materialSettings: + m_PropertyNames: [] + m_PropertyValues: [] + primitiveType: 1 + useGeometryShader: 0 +--- !u!114 &8926484042661615021 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 70a331b1d86cc8d4aa106ccbe0da5852, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615021} + m_MasterData: + m_Owner: {fileID: 8926484042661615020} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Texture2D, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"obj":{"fileID":2800000,"guid":"d3518248f95cddd43b655e7aa1949a18","type":3}}' + m_Space: 2147483647 + m_Property: + name: mainTexture + m_serializedType: + m_SerializableType: UnityEngine.Texture2D, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615023 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d16c6aeaef944094b9a1633041804207, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615020} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: [] + m_Disabled: 0 + mode: 1 + axes: 4 +--- !u!114 &8926484042661615088 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1b605c022ee79394a8a776c0869b3f9a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615089} + - {fileID: 8926484042661615093} + - {fileID: 8926484042661615097} + - {fileID: 8926484042661615102} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615088} + m_MasterData: + m_Owner: {fileID: 8926484042661614621} + m_Value: + m_Type: + m_SerializableType: ParticleSimulator.ParticleStatus, Qoopen.ParticleSimulator, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"position":{"x":0.0,"y":0.0,"z":0.0},"velocity":{"x":0.0,"y":0.0,"z":0.0},"orientation":{"x":0.0,"y":0.0,"z":0.0,"w":0.0},"angularVelocity":{"x":0.0,"y":0.0,"z":0.0}}' + m_Space: 2147483647 + m_Property: + name: s + m_serializedType: + m_SerializableType: ParticleSimulator.ParticleStatus, Qoopen.ParticleSimulator, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615089 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615088} + m_Children: + - {fileID: 8926484042661615090} + - {fileID: 8926484042661615091} + - {fileID: 8926484042661615092} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615088} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: position + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661614651} +--- !u!114 &8926484042661615090 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615089} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615088} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615091 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615089} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615088} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615092 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615089} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615088} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615093 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615088} + m_Children: + - {fileID: 8926484042661615094} + - {fileID: 8926484042661615095} + - {fileID: 8926484042661615096} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615088} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: velocity + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615094 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615093} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615088} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615095 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615093} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615088} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615096 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615093} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615088} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615097 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c499060cea9bbb24b8d723eafa343303, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615088} + m_Children: + - {fileID: 8926484042661615098} + - {fileID: 8926484042661615099} + - {fileID: 8926484042661615100} + - {fileID: 8926484042661615101} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615088} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: orientation + m_serializedType: + m_SerializableType: UnityEngine.Vector4, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615098 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615097} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615088} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615099 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615097} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615088} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615100 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615097} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615088} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615101 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615097} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615088} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: w + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615102 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615088} + m_Children: + - {fileID: 8926484042661615103} + - {fileID: 8926484042661615104} + - {fileID: 8926484042661615105} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615088} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: angularVelocity + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615103 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615102} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615088} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615104 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615102} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615088} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615105 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615102} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615088} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615112 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2edef10e6f1ffed47bad3472a10739a6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: -49, y: 851} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615113} + - {fileID: 8926484042661615114} + m_OutputSlots: + - {fileID: 8926484042661615123} + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + mode: 1 +--- !u!114 &8926484042661615113 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d5ff4abdfc4ddb54992e15a0636f5d0e, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615113} + m_MasterData: + m_Owner: {fileID: 8926484042661615112} + m_Value: + m_Type: + m_SerializableType: UnityEngine.GraphicsBuffer, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: buffer + m_serializedType: + m_SerializableType: UnityEngine.GraphicsBuffer, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661615117} +--- !u!114 &8926484042661615114 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c52d920e7fff73b498050a6b3c4404ca, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615114} + m_MasterData: + m_Owner: {fileID: 8926484042661615112} + m_Value: + m_Type: + m_SerializableType: System.UInt32, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: index + m_serializedType: + m_SerializableType: System.UInt32, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: + - {fileID: 8926484042661614605} +--- !u!114 &8926484042661615116 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 330e0fca1717dde4aaa144f48232aa64, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_InputSlots: [] + m_OutputSlots: + - {fileID: 8926484042661615117} + m_ExposedName: debugBuffer + m_Exposed: 1 + m_Order: 3 + m_Category: + m_Min: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Max: + m_Type: + m_SerializableType: + m_SerializableObject: + m_IsOutput: 0 + m_EnumValues: [] + m_ValueFilter: 0 + m_Tooltip: + m_Nodes: + - m_Id: 0 + linkedSlots: + - outputSlot: {fileID: 8926484042661615117} + inputSlot: {fileID: 8926484042661615113} + position: {x: -301, y: 881} + expandedSlots: [] + expanded: 0 +--- !u!114 &8926484042661615117 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d5ff4abdfc4ddb54992e15a0636f5d0e, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615117} + m_MasterData: + m_Owner: {fileID: 8926484042661615116} + m_Value: + m_Type: + m_SerializableType: UnityEngine.GraphicsBuffer, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: o + m_serializedType: + m_SerializableType: UnityEngine.GraphicsBuffer, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661615113} +--- !u!114 &8926484042661615123 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ac39bd03fca81b849929b9c966f1836a, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615124} + - {fileID: 8926484042661615125} + - {fileID: 8926484042661615126} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615123} + m_MasterData: + m_Owner: {fileID: 8926484042661615112} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: '{"x":0.0,"y":0.0,"z":0.0}' + m_Space: 2147483647 + m_Property: + name: s + m_serializedType: + m_SerializableType: UnityEngine.Vector3, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615124 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615123} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615123} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: x + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661614765} +--- !u!114 &8926484042661615125 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615123} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615123} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: y + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661614766} +--- !u!114 &8926484042661615126 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615123} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615123} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: z + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: + - {fileID: 8926484042661614767} +--- !u!114 &8926484042661615127 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1854130dd4d334240ae2035a3df553c8, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 114350483966674976} + m_Children: [] + m_UIPosition: {x: 159, y: 368} + m_UICollapsed: 0 + m_UISuperCollapsed: 0 + m_InputSlots: + - {fileID: 8926484042661615128} + - {fileID: 8926484042661615129} + - {fileID: 8926484042661615134} + - {fileID: 8926484042661615149} + - {fileID: 8926484042661615139} + m_OutputSlots: + - {fileID: 8926484042661615144} + m_Type: + m_SerializableType: UnityEngine.Color, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_EntryCount: 3 + m_CustomCaseValue: 0 +--- !u!114 &8926484042661615128 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c52d920e7fff73b498050a6b3c4404ca, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615128} + m_MasterData: + m_Owner: {fileID: 8926484042661615127} + m_Value: + m_Type: + m_SerializableType: System.UInt32, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_SerializableObject: 0 + m_Space: 2147483647 + m_Property: + name: testValue + m_serializedType: + m_SerializableType: System.UInt32, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615129 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c82227d5759e296488798b1554a72a15, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615130} + - {fileID: 8926484042661615131} + - {fileID: 8926484042661615132} + - {fileID: 8926484042661615133} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615129} + m_MasterData: + m_Owner: {fileID: 8926484042661615127} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Color, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: Value 0 + m_serializedType: + m_SerializableType: UnityEngine.Color, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615130 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615129} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615129} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: r + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615131 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615129} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615129} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: g + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615132 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615129} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615129} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: b + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615133 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615129} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615129} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: a + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615134 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c82227d5759e296488798b1554a72a15, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615135} + - {fileID: 8926484042661615136} + - {fileID: 8926484042661615137} + - {fileID: 8926484042661615138} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615134} + m_MasterData: + m_Owner: {fileID: 8926484042661615127} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Color, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: Value 1 + m_serializedType: + m_SerializableType: UnityEngine.Color, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615135 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615134} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615134} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: r + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615136 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615134} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615134} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: g + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615137 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615134} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615134} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: b + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615138 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615134} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615134} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: a + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615139 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c82227d5759e296488798b1554a72a15, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615140} + - {fileID: 8926484042661615141} + - {fileID: 8926484042661615142} + - {fileID: 8926484042661615143} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615139} + m_MasterData: + m_Owner: {fileID: 8926484042661615127} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Color, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: default + m_serializedType: + m_SerializableType: UnityEngine.Color, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615140 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615139} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615139} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: r + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615141 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615139} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615139} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: g + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615142 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615139} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615139} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: b + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615143 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615139} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615139} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: a + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615144 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c82227d5759e296488798b1554a72a15, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615145} + - {fileID: 8926484042661615146} + - {fileID: 8926484042661615147} + - {fileID: 8926484042661615148} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615144} + m_MasterData: + m_Owner: {fileID: 8926484042661615127} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Color, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: + m_serializedType: + m_SerializableType: UnityEngine.Color, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615145 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615144} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615144} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: r + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615146 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615144} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615144} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: g + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615147 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615144} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615144} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: b + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615148 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615144} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615144} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: a + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 1 + m_LinkedSlots: [] +--- !u!114 &8926484042661615149 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c82227d5759e296488798b1554a72a15, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 0} + m_Children: + - {fileID: 8926484042661615150} + - {fileID: 8926484042661615151} + - {fileID: 8926484042661615152} + - {fileID: 8926484042661615153} + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615149} + m_MasterData: + m_Owner: {fileID: 8926484042661615127} + m_Value: + m_Type: + m_SerializableType: UnityEngine.Color, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: Value 2 + m_serializedType: + m_SerializableType: UnityEngine.Color, UnityEngine.CoreModule, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615150 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615149} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615149} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: r + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615151 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615149} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615149} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: g + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615152 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615149} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615149} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: b + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] +--- !u!114 &8926484042661615153 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f780aa281814f9842a7c076d436932e7, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UIIgnoredErrors: [] + m_Parent: {fileID: 8926484042661615149} + m_Children: [] + m_UIPosition: {x: 0, y: 0} + m_UICollapsed: 1 + m_UISuperCollapsed: 0 + m_MasterSlot: {fileID: 8926484042661615149} + m_MasterData: + m_Owner: {fileID: 0} + m_Value: + m_Type: + m_SerializableType: + m_SerializableObject: + m_Space: 2147483647 + m_Property: + name: a + m_serializedType: + m_SerializableType: System.Single, mscorlib, Version=4.0.0.0, Culture=neutral, + PublicKeyToken=b77a5c561934e089 + m_Direction: 0 + m_LinkedSlots: [] diff --git a/Packages/ParticleSimulator/manifest.json.meta b/Packages/ParticleSimulator/Runtime/Effects/ParticleVFX.vfx.meta similarity index 61% rename from Packages/ParticleSimulator/manifest.json.meta rename to Packages/ParticleSimulator/Runtime/Effects/ParticleVFX.vfx.meta index 6051afd..456548d 100644 --- a/Packages/ParticleSimulator/manifest.json.meta +++ b/Packages/ParticleSimulator/Runtime/Effects/ParticleVFX.vfx.meta @@ -1,6 +1,6 @@ fileFormatVersion: 2 -guid: fe4710ca856ffff4e924e3d794c31828 -TextScriptImporter: +guid: 3d4f8513ed75ea64cac14dded283f6e0 +VisualEffectImporter: externalObjects: {} userData: assetBundleName: diff --git a/Packages/ParticleSimulator/Runtime/Materials.meta b/Packages/ParticleSimulator/Runtime/Materials.meta new file mode 100644 index 0000000..b70a230 --- /dev/null +++ b/Packages/ParticleSimulator/Runtime/Materials.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b9f19f970ef83344480d1f89790ba5e9 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/ParticleSimulator/Runtime/Materials/Particle.mat b/Packages/ParticleSimulator/Runtime/Materials/Particle.mat new file mode 100644 index 0000000..d1b99d8 --- /dev/null +++ b/Packages/ParticleSimulator/Runtime/Materials/Particle.mat @@ -0,0 +1,90 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 8 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Particle + m_Shader: {fileID: 4800000, guid: e10d9ec80b3073948a321515a16265f2, type: 3} + m_ValidKeywords: [] + m_InvalidKeywords: [] + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: d3518248f95cddd43b655e7aa1949a18, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - _BumpScale: 1 + - _Cutoff: 0.5 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossyReflections: 1 + - _GridId: 0 + - _Max: 0.005 + - _MaxVelocity: 10 + - _Metallic: 0 + - _Min: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _ParticleRadius: 0.2 + - _Shininess: 0.7 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _UVSec: 0 + - _ZWrite: 1 + m_Colors: + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _Emission: {r: 0, g: 0, b: 0, a: 0} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _ParticleColor: {r: 1, g: 0, b: 0, a: 1} + - _SpecColor: {r: 1, g: 1, b: 1, a: 1} + - _WaterColor: {r: 1, g: 0, b: 0.09249592, a: 1} + m_BuildTextureStacks: [] diff --git a/Packages/ParticleSimulator/Runtime/Materials/Particle.mat.meta b/Packages/ParticleSimulator/Runtime/Materials/Particle.mat.meta new file mode 100644 index 0000000..547e887 --- /dev/null +++ b/Packages/ParticleSimulator/Runtime/Materials/Particle.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 48e8317f90ff45c4f92c4e2de9ec720d +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/ParticleSimulator/Runtime/Models.meta b/Packages/ParticleSimulator/Runtime/Models.meta new file mode 100644 index 0000000..2459d27 --- /dev/null +++ b/Packages/ParticleSimulator/Runtime/Models.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8d188c9ad845cf24098eed578049b077 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/ParticleSimulator/Runtime/Models/Particle.fbx b/Packages/ParticleSimulator/Runtime/Models/Particle.fbx new file mode 100644 index 0000000..904835e Binary files /dev/null and b/Packages/ParticleSimulator/Runtime/Models/Particle.fbx differ diff --git a/Packages/ParticleSimulator/Runtime/Models/Particle.fbx.meta b/Packages/ParticleSimulator/Runtime/Models/Particle.fbx.meta new file mode 100644 index 0000000..4f86d7d --- /dev/null +++ b/Packages/ParticleSimulator/Runtime/Models/Particle.fbx.meta @@ -0,0 +1,106 @@ +fileFormatVersion: 2 +guid: 8d74d8eba04660e40afde00c3daeadf4 +ModelImporter: + serializedVersion: 21300 + internalIDToNameTable: [] + externalObjects: {} + materials: + materialImportMode: 2 + materialName: 0 + materialSearch: 1 + materialLocation: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + resampleCurves: 1 + optimizeGameObjects: 0 + removeConstantScaleCurves: 1 + motionNodeName: + rigImportErrors: + rigImportWarnings: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + importAnimatedCustomProperties: 0 + importConstraints: 0 + animationCompression: 1 + animationRotationError: 0.5 + animationPositionError: 0.5 + animationScaleError: 0.5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + extraUserProperties: [] + clipAnimations: [] + isReadable: 0 + meshes: + lODScreenPercentages: [] + globalScale: 1 + meshCompression: 0 + addColliders: 0 + useSRGBMaterialColor: 1 + sortHierarchyByName: 1 + importVisibility: 1 + importBlendShapes: 1 + importCameras: 0 + importLights: 0 + nodeNameCollisionStrategy: 1 + fileIdsGeneration: 2 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + keepQuads: 0 + weldVertices: 1 + bakeAxisConversion: 0 + preserveHierarchy: 0 + skinWeightsMode: 0 + maxBonesPerVertex: 4 + minBoneWeight: 0.001 + optimizeBones: 1 + meshOptimizationFlags: -1 + indexFormat: 0 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVMarginMethod: 1 + secondaryUVMinLightmapResolution: 40 + secondaryUVMinObjectScale: 1 + secondaryUVPackMargin: 4 + useFileScale: 1 + tangentSpace: + normalSmoothAngle: 60 + normalImportMode: 0 + tangentImportMode: 3 + normalCalculationMode: 4 + legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0 + blendShapeNormalImportMode: 1 + normalSmoothingSource: 0 + referencedClips: [] + importAnimation: 1 + humanDescription: + serializedVersion: 3 + human: [] + skeleton: [] + armTwist: 0.5 + foreArmTwist: 0.5 + upperLegTwist: 0.5 + legTwist: 0.5 + armStretch: 0.05 + legStretch: 0.05 + feetSpacing: 0 + globalScale: 1 + rootMotionBoneName: + hasTranslationDoF: 0 + hasExtraRoot: 0 + skeletonHasParents: 1 + lastHumanDescriptionAvatarSource: {instanceID: 0} + autoGenerateAvatarMappingIfUnspecified: 1 + animationType: 2 + humanoidOversampling: 1 + avatarSetup: 0 + addHumanoidExtraRootOnlyWhenUsingAvatar: 1 + remapMaterialsIfMaterialImportModeIsNone: 0 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/ParticleSimulator/Runtime/Qoopen.ParticleSimulator.asmdef b/Packages/ParticleSimulator/Runtime/Qoopen.ParticleSimulator.asmdef new file mode 100644 index 0000000..f4526b6 --- /dev/null +++ b/Packages/ParticleSimulator/Runtime/Qoopen.ParticleSimulator.asmdef @@ -0,0 +1,20 @@ +{ + "name": "Qoopen.ParticleSimulator", + "rootNamespace": "", + "references": [ + "GUID:d8b63aba1907145bea998dd612889d6b", + "GUID:116a4d4dbf5c04973bbf517077a062a1", + "GUID:0377f9a54f8f24f459589f04edd75c20", + "GUID:d04eb9c554ad44ceab303cecf0c0cf82", + "GUID:4efc780901275194582067357ece5e4b" + ], + "includePlatforms": [], + "excludePlatforms": [], + "allowUnsafeCode": false, + "overrideReferences": false, + "precompiledReferences": [], + "autoReferenced": true, + "defineConstraints": [], + "versionDefines": [], + "noEngineReferences": false +} \ No newline at end of file diff --git a/Packages/ParticleSimulator/Runtime/Qoopen.ParticleSimulator.asmdef.meta b/Packages/ParticleSimulator/Runtime/Qoopen.ParticleSimulator.asmdef.meta new file mode 100644 index 0000000..ccbb1f8 --- /dev/null +++ b/Packages/ParticleSimulator/Runtime/Qoopen.ParticleSimulator.asmdef.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: b3e94bd2ff72d1c468c04bb56352f59a +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/ParticleSimulator/Runtime/Resources.meta b/Packages/ParticleSimulator/Runtime/Resources.meta new file mode 100644 index 0000000..72fe7d9 --- /dev/null +++ b/Packages/ParticleSimulator/Runtime/Resources.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a0e4ba37025f9d247a070d29053af9af +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/ParticleSimulator/Runtime/Resources/BitonicSortCS.compute b/Packages/ParticleSimulator/Runtime/Resources/BitonicSortCS.compute new file mode 100644 index 0000000..5b7c2c2 --- /dev/null +++ b/Packages/ParticleSimulator/Runtime/Resources/BitonicSortCS.compute @@ -0,0 +1,54 @@ +#pragma kernel BitonicSort +#pragma kernel MatrixTranspose + +#pragma enable_d3d11_debug_symbols + +#define BITONIC_BLOCK_SIZE 512 +#define TRANSPOSE_BLOCK_SIZE 16 + +cbuffer cb +{ + uint _Level; + uint _LevelMask; + uint _Width; + uint _Height; +}; + +StructuredBuffer Input : register(t0); +RWStructuredBuffer Data : register(u0); + +groupshared uint2 shared_data[BITONIC_BLOCK_SIZE]; + +bool Compare(uint2 left, uint2 right) { + return (left.x == right.x) ? (left.y <= right.y) : (left.x <= right.x); + // return left.x <= right.x; +} + +[numthreads(BITONIC_BLOCK_SIZE, 1, 1)] +void BitonicSort(uint3 Gid : SV_GroupID, uint3 DTid : SV_DispatchThreadID, uint3 GTid : SV_GroupThreadID, uint GI : SV_GroupIndex) { + // Load shared data + shared_data[GI] = Data[DTid.x]; + GroupMemoryBarrierWithGroupSync(); + + // Sort the shared data + for (uint j = _Level >> 1; j > 0; j >>= 1) { + uint2 result = (Compare(shared_data[GI & ~j], shared_data[GI | j]) == (bool)(_LevelMask & DTid.x)) ? shared_data[GI ^ j] : shared_data[GI]; + GroupMemoryBarrierWithGroupSync(); + shared_data[GI] = result; + GroupMemoryBarrierWithGroupSync(); + } + + // Store shared data + Data[DTid.x] = shared_data[GI]; +} + + +groupshared uint2 transpose_shared_data[TRANSPOSE_BLOCK_SIZE * TRANSPOSE_BLOCK_SIZE]; + +[numthreads(TRANSPOSE_BLOCK_SIZE, TRANSPOSE_BLOCK_SIZE, 1)] +void MatrixTranspose(uint3 Gid : SV_GroupID, uint3 DTid : SV_DispatchThreadID, uint3 GTid : SV_GroupThreadID, uint GI : SV_GroupIndex) { + transpose_shared_data[GI] = Input[DTid.y * _Width + DTid.x]; + GroupMemoryBarrierWithGroupSync(); + uint2 XY = DTid.yx - GTid.yx + GTid.xy; + Data[XY.y * _Height + XY.x] = transpose_shared_data[GTid.x * TRANSPOSE_BLOCK_SIZE + GTid.y]; +} \ No newline at end of file diff --git a/Packages/ParticleSimulator/Runtime/Resources/BitonicSortCS.compute.meta b/Packages/ParticleSimulator/Runtime/Resources/BitonicSortCS.compute.meta new file mode 100644 index 0000000..4561d56 --- /dev/null +++ b/Packages/ParticleSimulator/Runtime/Resources/BitonicSortCS.compute.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 54ea47ae51adf5b46a65d12bd66ef475 +ComputeShaderImporter: + externalObjects: {} + preprocessorOverride: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/ParticleSimulator/Runtime/Resources/GridSearch.compute b/Packages/ParticleSimulator/Runtime/Resources/GridSearch.compute new file mode 100644 index 0000000..82d6397 --- /dev/null +++ b/Packages/ParticleSimulator/Runtime/Resources/GridSearch.compute @@ -0,0 +1,80 @@ +#pragma kernel BuildGridCS +#pragma kernel ClearGridIndicesCS +#pragma kernel BuildGridIndicesCS +#pragma kernel RearrangeParticlesCS + +#pragma enable_d3d11_debug_symbols + +#define THREAD_SIZE_X 32 + +#include "./Include/GridSearch.cginc" +#include "./Include/Particle.cginc" + +StructuredBuffer _GridBufferRead; +RWStructuredBuffer _GridBufferWrite; + +//-------------------------------------------------------------------------------------- +// Build Grid : å„パーティクルã®å±žã™ã‚‹ã‚»ãƒ«ã‚’計算ã—ã€ç´ã¥ã‘ã¦GridBufferã«ä¿å­˜ +//-------------------------------------------------------------------------------------- +[numthreads(THREAD_SIZE_X, 1, 1)] +void BuildGridCS(uint3 DTid : SV_DispatchThreadID) { + const uint P_ID = DTid.x; // Particle ID to operate on + + float3 position = _ParticleBufferRead[P_ID].position; + float3 grid_xyz = GridCalculateCell(position); + + _GridBufferWrite[P_ID] = MakeKeyValuePair((uint3)grid_xyz, P_ID); +} + +//-------------------------------------------------------------------------------------- +// Build Grid Indices : ソート済ã¿ã®ãƒ‘ーティクルãƒãƒƒã‚·ãƒ¥ã«å¯¾ã—ã¦ã€å§‹ã¾ã‚Šã¨çµ‚ã‚りを記録 +//-------------------------------------------------------------------------------------- +// 0000011111122222334444 ã‚’ +// 0 1 2 3 4 +// start 0 5 11 16 18 +// end 4 10 15 17 21 +// ã«å¤‰æ› + +[numthreads(THREAD_SIZE_X, 1, 1)] +void ClearGridIndicesCS(uint3 DTid : SV_DispatchThreadID) { + // グリッドã®å€‹æ•°åˆ† + _GridIndicesBufferWrite[DTid.x] = uint2(0, 0); +} + +[numthreads(THREAD_SIZE_X, 1, 1)] +void BuildGridIndicesCS(uint3 DTid : SV_DispatchThreadID) { + // パーティクルã®å€‹æ•°åˆ† + const uint P_ID = DTid.x; + + // 1個å‰ã®ãƒ‘ーティクルIDを計算 + uint P_ID_PREV = (P_ID == 0) ? (uint) _ParticleNum : P_ID; + P_ID_PREV--; + + // 1個後ã®ãƒ‘ーティクルIDを計算 + uint P_ID_NEXT = P_ID + 1; + if (P_ID_NEXT == (uint)_ParticleNum) { P_ID_NEXT = 0; } + + // ソート済ã¿ã®Grid-Particleãƒãƒƒãƒ•ã‚¡ã‹ã‚‰ + // 自分ãŒã„るグリッドを計算ã™ã‚‹ + uint cell = GridGetKey(_GridBufferRead[P_ID]); // ソートã•ã‚ŒãŸã‚°ãƒªãƒƒãƒ‰IDã®å–å¾— + uint cell_prev = GridGetKey(_GridBufferRead[P_ID_PREV]); + uint cell_next = GridGetKey(_GridBufferRead[P_ID_NEXT]); + + // å‰å¾Œã‚»ãƒ«ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ã¨ç•°ãªã‚‹å ´åˆè¨˜éŒ² + if (cell != cell_prev) { + // æ–°ã—ã„セルインデックスã®å§‹ã¾ã‚Šã®é…列インデックス + _GridIndicesBufferWrite[cell].x = P_ID; + } + + if (cell != cell_next) { + // æ–°ã—ã„セルインデックスã®çµ‚ã‚ã‚Šã®é…列インデックス + _GridIndicesBufferWrite[cell].y = P_ID + 1; + } +} + +[numthreads(THREAD_SIZE_X, 1, 1)] +void RearrangeParticlesCS(uint3 DTid : SV_DispatchThreadID) { + const unsigned int id = DTid.x; // Particle ID to operate on + const unsigned int P_ID = GridGetValue(_GridBufferRead[id]); + _ParticleBufferWrite[id] = _ParticleBufferRead[P_ID]; // ソート済ã¿ã«ä¸¦ã³æ›¿ãˆã‚‹ +} diff --git a/Packages/ParticleSimulator/Runtime/Resources/GridSearch.compute.meta b/Packages/ParticleSimulator/Runtime/Resources/GridSearch.compute.meta new file mode 100644 index 0000000..5937447 --- /dev/null +++ b/Packages/ParticleSimulator/Runtime/Resources/GridSearch.compute.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3211a4240b389fa449c4d54a07eaf778 +ComputeShaderImporter: + externalObjects: {} + preprocessorOverride: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/ParticleSimulator/Runtime/Resources/Include.meta b/Packages/ParticleSimulator/Runtime/Resources/Include.meta new file mode 100644 index 0000000..a13ee20 --- /dev/null +++ b/Packages/ParticleSimulator/Runtime/Resources/Include.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 806c9eee463751648820e9a67a2d9ac0 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/ParticleSimulator/Runtime/Resources/Include/GridSearch.cginc b/Packages/ParticleSimulator/Runtime/Resources/Include/GridSearch.cginc new file mode 100644 index 0000000..356478e --- /dev/null +++ b/Packages/ParticleSimulator/Runtime/Resources/Include/GridSearch.cginc @@ -0,0 +1,50 @@ +#ifndef GRIDSEARCH_INCLUDED +#define GRIDSEARCH_INCLUDED + +// --------------------- +// Define Data structure (must be same as your particle data) +// --------------------- + +cbuffer NearestNeighborCB +{ + float3 _GridResolution; // Number of grid cell. + float _GridCellSize; // Size of grid cell. + float3 _GridCenter; +}; + +StructuredBuffer _GridIndicesBufferRead; +RWStructuredBuffer _GridIndicesBufferWrite; + +// Return hush number from particle position. +inline float3 GridCalculateCell(float3 position) +{ + return (position - _GridCenter + _GridCellSize * _GridResolution / 2) / _GridCellSize; +} + +// ƒZƒ‹‚Ì2ŽŸŒ³ƒCƒ“ƒfƒbƒNƒX‚©‚ç1ŽŸŒ³ƒCƒ“ƒfƒbƒNƒX‚ð•Ô‚· +inline uint GridKey(uint3 xyz) +{ + return xyz.x + xyz.y * _GridResolution.x + xyz.z * _GridResolution.x * _GridResolution.y; +} + +// (ƒOƒŠƒbƒhID, ƒp[ƒeƒBƒNƒ‹ID) ‚̃yƒA‚ð쬂·‚é +inline uint2 MakeKeyValuePair(uint3 xyz, uint value) +{ + return uint2(GridKey(xyz), value); +} + +// ƒOƒŠƒbƒhID‚ƃp[ƒeƒBƒNƒ‹ID‚̃yƒA‚©‚çƒOƒŠƒbƒhID‚¾‚¯‚𔲂«o‚· +inline uint GridGetKey(uint2 pair) +{ + return pair.x; +} + +// ƒOƒŠƒbƒhID‚ƃp[ƒeƒBƒNƒ‹ID‚̃yƒA‚©‚çƒp[ƒeƒBƒNƒ‹ID‚¾‚¯‚𔲂«o‚· +inline uint GridGetValue(uint2 pair) +{ + return pair.y; +} + +#define LOOP_AROUND_NEIGHBOR(pos) int3 G_XYZ = (int3)GridCalculateCell(pos); for(int Z = max(G_XYZ.z - 1, 0); Z <= min(G_XYZ.z + 1, _GridResolution.z - 1); Z++) for (int Y = max(G_XYZ.y - 1, 0); Y <= min(G_XYZ.y + 1, _GridResolution.y - 1); Y++) for (int X = max(G_XYZ.x - 1, 0); X <= min(G_XYZ.x + 1, _GridResolution.x - 1); X++) + +#endif diff --git a/Packages/ParticleSimulator/Runtime/Resources/Include/GridSearch.cginc.meta b/Packages/ParticleSimulator/Runtime/Resources/Include/GridSearch.cginc.meta new file mode 100644 index 0000000..9791a22 --- /dev/null +++ b/Packages/ParticleSimulator/Runtime/Resources/Include/GridSearch.cginc.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 234f7b813a099e1429604a70c0c897f1 +ShaderIncludeImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/ParticleSimulator/Runtime/Resources/Include/Math.cginc b/Packages/ParticleSimulator/Runtime/Resources/Include/Math.cginc new file mode 100644 index 0000000..2ca9823 --- /dev/null +++ b/Packages/ParticleSimulator/Runtime/Resources/Include/Math.cginc @@ -0,0 +1,54 @@ +#ifndef MATH_INCLUDED +#define MATH_INCLUDED + +// Quaternion multiplication +// http://mathworld.wolfram.com/Quaternion.html +inline float4 qmul(float4 q1, float4 q2) +{ + return float4( + q2.xyz * q1.w + q1.xyz * q2.w + cross(q1.xyz, q2.xyz), + q1.w * q2.w - dot(q1.xyz, q2.xyz) + ); +} + +// http://marupeke296.sakura.ne.jp/DXG_No58_RotQuaternionTrans.html +inline float4x4 QuaternionToRotateMatrix(float4 q) +{ + float4x4 mat = float4x4( + 1 - 2 * q.y * q.y - 2 * q.z * q.z, 2 * q.x * q.y + 2 * q.w * q.z, 2 * q.x * q.z - 2 * q.w * q.y, 0, + 2 * q.x * q.y - 2 * q.w * q.z, 1 - 2 * q.x * q.x - 2 * q.z * q.z, 2 * q.y * q.z + 2 * q.w * q.x, 0, + 2 * q.x * q.z + 2 * q.w * q.y, 2 * q.y * q.z - 2 * q.w * q.x, 1 - 2 * q.x * q.x - 2 * q.y * q.y, 0, + 0, 0, 0, 1 + ); + return mat; +} + +inline float4 EulerToQuaternion(float3 e) +{ + // e must be radian. + double cr = cos(e.x * 0.5); + double sr = sin(e.x * 0.5); + double cp = cos(e.y * 0.5); + double sp = sin(e.y * 0.5); + double cy = cos(e.z * 0.5); + double sy = sin(e.z * 0.5); + + float4 q = float4( + sr * cp * cy - cr * sp * sy, + cr * sp * cy + sr * cp * sy, + cr * cp * sy - sr * sp * cy, + cr * cp * cy + sr * sp * sy + ); + + return q; +} + +// Vector rotation with a quaternion +// http://mathworld.wolfram.com/Quaternion.html +inline float3 RotateVector(float3 v, float4 r) +{ + float4 r_c = r * float4(-1, -1, -1, 1); + return qmul(r, qmul(float4(v, 0), r_c)).xyz; +} + +#endif diff --git a/Packages/ParticleSimulator/Runtime/Resources/Include/Math.cginc.meta b/Packages/ParticleSimulator/Runtime/Resources/Include/Math.cginc.meta new file mode 100644 index 0000000..471bc9e --- /dev/null +++ b/Packages/ParticleSimulator/Runtime/Resources/Include/Math.cginc.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 7fd1463e15261d54faf5444344187ca7 +ShaderIncludeImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/ParticleSimulator/Runtime/Resources/Include/Particle.cginc b/Packages/ParticleSimulator/Runtime/Resources/Include/Particle.cginc new file mode 100644 index 0000000..bfc358b --- /dev/null +++ b/Packages/ParticleSimulator/Runtime/Resources/Include/Particle.cginc @@ -0,0 +1,38 @@ +#ifndef Granular_INCLUDED +#define Granular_INCLUDED + +// —±ó‘Ì‚ð\¬‚·‚é—±Žq‚Ì•¨« +struct ElementType +{ + float radius; + float mass; + float3 offsetFromParticleCenter; +}; + +// —±ó‘̂̃Xƒe[ƒ^ƒX +struct ParticleType +{ + float3 position; + float3 velocity; + float4 orientation; + float3 angularVelocity; +}; + +// —±ó‘Ì‚ÉŠÖ‚·‚é’è” +cbuffer ParticleCB +{ + uint _ElementNum; + uint _ParticleNum; + float _ParticleMu; + float _ParticleTotalMass; + float4x4 _ParticleInertialMoment; +}; + +// •¨«’l‚̃oƒbƒtƒ@ +StructuredBuffer _ElementBuffer; + +// —±ó‘̂̃oƒbƒtƒ@ +StructuredBuffer _ParticleBufferRead; +RWStructuredBuffer _ParticleBufferWrite; + +#endif diff --git a/Packages/ParticleSimulator/Runtime/Resources/Include/Particle.cginc.meta b/Packages/ParticleSimulator/Runtime/Resources/Include/Particle.cginc.meta new file mode 100644 index 0000000..ed221ea --- /dev/null +++ b/Packages/ParticleSimulator/Runtime/Resources/Include/Particle.cginc.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: ceddbfb80280e2c4d97502ad6a960c07 +ShaderIncludeImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/ParticleSimulator/Runtime/Resources/Include/Terrain.cginc b/Packages/ParticleSimulator/Runtime/Resources/Include/Terrain.cginc new file mode 100644 index 0000000..29d19d7 --- /dev/null +++ b/Packages/ParticleSimulator/Runtime/Resources/Include/Terrain.cginc @@ -0,0 +1,39 @@ +#ifndef TERRAIN_INCLUDED +#define TERRAIN_INCLUDED + +// --------------------- +// Define Data structure (must be same as your particle data) +// --------------------- + +struct Terrain +{ + float height; + float3 normal; +}; + +cbuffer TerrainCB +{ + uint _Resolution; // ’nŒ`‚̉𑜓x + float3 _Ratio; // ’nŒ`‚̉𑜓x‚ƃTƒCƒY‚Ì”ä + float _Friction; // •Ç‚Ì–€ŽC +} + +// Terrainî•ñ‚ð•ÛŽ‚·‚éƒoƒbƒtƒ@ +StructuredBuffer _TerrainBuffer; + +// Heightmap‚ðBilinear‚ðŽg‚Á‚ĕ⊮‚·‚é +inline float GetInterpolatedHeight(float pos_x, float pos_z) +{ + uint int_x = uint(pos_x); + uint int_z = uint(pos_z); + float2 dist_x = float2(float(int_x + 1) - pos_x, pos_x - float(int_x)); + float2 dist_z = float2(float(int_z + 1) - pos_z, pos_z - float(int_z)); + float2x2 heightmap = float2x2( + _TerrainBuffer[int_x + int_z * _Resolution].height, _TerrainBuffer[(int_x + 1) + int_z * _Resolution].height, + _TerrainBuffer[int_x + (int_z + 1) * _Resolution].height, _TerrainBuffer[(int_x + 1) + (int_z + 1) * _Resolution].height + ); + float dst = mul(mul(dist_z, heightmap), dist_x); + return dst + 0.1f; +} + +#endif diff --git a/Packages/ParticleSimulator/Runtime/Resources/Include/Terrain.cginc.meta b/Packages/ParticleSimulator/Runtime/Resources/Include/Terrain.cginc.meta new file mode 100644 index 0000000..03ff27a --- /dev/null +++ b/Packages/ParticleSimulator/Runtime/Resources/Include/Terrain.cginc.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: cd3e80af447ca94469e0e6f4c5ac0238 +ShaderIncludeImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/ParticleSimulator/Runtime/Resources/MolecularDynamics.compute b/Packages/ParticleSimulator/Runtime/Resources/MolecularDynamics.compute new file mode 100644 index 0000000..813ff9c --- /dev/null +++ b/Packages/ParticleSimulator/Runtime/Resources/MolecularDynamics.compute @@ -0,0 +1,225 @@ +#pragma kernel ParticleCollisionCS +#pragma kernel TerrainCollisionCS +//#pragma kernel ObjectCollisionCS +#pragma kernel IntegrateCS + +#pragma enable_d3d11_debug_symbols + +// Thread x is particle +// Thread yz is element +#define PARTICLE_NUM 10 +#define MAX_ELEMENT_NUM 10 + +#include "./Include/Particle.cginc" +#include "./Include/GridSearch.cginc" +#include "./Include/Terrain.cginc" +#include "./Include/Math.cginc" + +// デãƒãƒƒã‚°ç”¨ãƒãƒƒãƒ•ã‚¡ +RWStructuredBuffer _DebugBuffer; + +struct ParticleCollisionForce +{ + float3 acceleration; + float3 angularAcceleration; +}; +struct ObjectCollisionForce +{ + float3 acceleration; + float3 angularAcceleration; +}; +struct TerrainCollisionForce +{ + float3 acceleration; + float3 angularAcceleration; +}; + +RWStructuredBuffer _ParticleCollisionForce; +RWStructuredBuffer _ObjectCollisionForce; +RWStructuredBuffer _TerrainCollisionForce; + +groupshared ParticleCollisionForce sharedBuffer[PARTICLE_NUM]; + +cbuffer MolecularDynamicsCB +{ + float3 _Gravity; + float _TimeStep; +}; + +inline float CalculateNormalForce(float overlap, float normal_velocity, + float alpha = 0.5f, float beta = 1.5f, + float kd = 200.0f, float kr = 10000.0f, float kt = 10000.0f) +{ + return -(kd * pow(overlap, alpha) * normal_velocity + kr * pow(overlap, beta)); // fn + kd * E^alpha * E. + kr * E ^ beta = 0 +} + +inline float3 CalculateShearForce(float normal_force, float normal_vel, float3 normal_vec, + float3 velocity_vec, float kt = 10000.0f) +{ + float3 shear_force = float3(0, 0, 0); + float4 tangent_velocity = float4(0, 0, 0, 0); + tangent_velocity.xyz = velocity_vec - normal_vel * normal_vec; // Vt = V - E. * N + tangent_velocity.w = length(tangent_velocity.xyz); // vt = ||Vt|| + if (tangent_velocity.w > 0.f) + shear_force = -min(_ParticleMu * -normal_force, kt * tangent_velocity.w) * tangent_velocity.xyz / tangent_velocity.w; + return shear_force; +} + +inline float3 CalculateContactForce(float this_particle_radius, float3 this_particle_position, float3 this_particle_velocity, + float other_particle_radius, float3 other_particle_position, float3 other_particle_velocity) +{ + float3 contact_force = float3(0, 0, 0); + + float4 from_this_to_other = float4(0, 0, 0, 0); + from_this_to_other.xyz = other_particle_position - this_particle_position; // vector + from_this_to_other.w = length(from_this_to_other.xyz); // length + + float overlap = max(0, this_particle_radius + other_particle_radius - from_this_to_other.w); // ç²’å­ã®é‡ãªã‚Š + if (overlap != 0) + { + float3 velocity_vec = this_particle_velocity - other_particle_velocity; // V = v1 - v2 + + float4 normal = float4(0, 0, 0, 0); + normal.xyz = from_this_to_other.xyz / from_this_to_other.w; // vector: N = (x2 - x1) / (||x2 - x1||) + normal.w = dot(velocity_vec, normal.xyz); // velocity(normal): E. = V . N + + // Normal force vector + float normal_force = CalculateNormalForce(overlap, normal.w); // normal force(scaler): + + contact_force += normal_force * normal.xyz; + contact_force += CalculateShearForce(normal_force, normal.w, normal.xyz, velocity_vec); + } + + // Return contact force vector + return contact_force; +} + +[numthreads(PARTICLE_NUM, MAX_ELEMENT_NUM, MAX_ELEMENT_NUM)] +void ParticleCollisionCS(uint3 groupID : SV_GroupID, uint3 threadID : SV_GroupThreadID) +{ + sharedBuffer[threadID.x].acceleration = float3(0, 0, 0); + sharedBuffer[threadID.x].angularAcceleration = float3(0, 0, 0); + GroupMemoryBarrierWithGroupSync(); + + const uint P_ID = groupID.x * PARTICLE_NUM + threadID.x; // ç¾åœ¨å‡¦ç†ã—ã¦ã„るパーティクルID + _DebugBuffer[P_ID] = float3(0, 0, 1); + //_DebugBuffer[P_ID] = _GridCenter; + + if (threadID.y < _ElementNum | threadID.z < _ElementNum) + { + + // è¿‘å‚探索 + LOOP_AROUND_NEIGHBOR(_ParticleBufferRead[P_ID].position) + { + const unsigned int G_CELL = GridKey(uint3(X, Y, Z)); // Calculate Neighbor (or own) Cell ID + _DebugBuffer[P_ID] = float3(0, 1, 1); + + const uint2 G_START_END = _GridIndicesBufferRead[G_CELL]; + for (unsigned int N_ID = G_START_END.x; N_ID < G_START_END.y; N_ID++) + { + if (N_ID == P_ID) + continue; // 自身を計算対象ã¨ã—ãŸå ´åˆã‚¹ã‚­ãƒƒãƒ— + + // â–¼ 接触力ã®è¨ˆç®— + // https://github.com/WestRyanK/Particle-Simulator/blob/93da771838b3d02f45c3aec964ef4a04bbef6fd4/GranularSimulator/GranularSubstanceSimulator.cpp#L203-L214 + + const float3 offset = normalize(_ParticleBufferRead[N_ID].position - _ParticleBufferRead[P_ID].position); + + const uint P_elementIndice = threadID.y; + + const float3 P_element_position = _ParticleBufferRead[P_ID].position + RotateVector(_ElementBuffer[P_elementIndice].offsetFromParticleCenter, _ParticleBufferRead[P_ID].orientation); + const float3 P_contact_offset_from_center = _ElementBuffer[P_elementIndice].offsetFromParticleCenter + offset * _ElementBuffer[P_elementIndice].radius; + const float3 P_contact_velocity = _ParticleBufferRead[P_ID].velocity + cross(_ParticleBufferRead[P_ID].angularVelocity, P_contact_offset_from_center); + + const uint N_elementIndice = threadID.z; + + const float3 N_element_position = _ParticleBufferRead[N_ID].position + RotateVector(_ElementBuffer[N_elementIndice].offsetFromParticleCenter, _ParticleBufferRead[N_ID].orientation); + const float3 N_contact_offset_from_center = _ElementBuffer[N_elementIndice].offsetFromParticleCenter + offset * _ElementBuffer[N_elementIndice].radius; + const float3 N_contact_velocity = _ParticleBufferRead[N_ID].velocity + cross(_ParticleBufferRead[N_ID].angularVelocity, -N_contact_offset_from_center); + + + const float3 contactForce = CalculateContactForce(_ElementBuffer[P_elementIndice].radius, + P_element_position, + P_contact_velocity, + _ElementBuffer[N_elementIndice].radius, + N_element_position, + N_contact_velocity); + const float3 contactTorque = cross(P_contact_offset_from_center, contactForce); + + + sharedBuffer[threadID.x].acceleration += contactForce; + sharedBuffer[threadID.x].angularAcceleration += contactTorque; + } + } + } + + GroupMemoryBarrierWithGroupSync(); + _ParticleCollisionForce[P_ID] = sharedBuffer[threadID.x]; +} + +[numthreads(PARTICLE_NUM, 1, 1)] +void TerrainCollisionCS(uint3 dispatchID : SV_DispatchThreadID) +{ + const unsigned int P_ID = dispatchID.x; // ç¾åœ¨å‡¦ç†ã—ã¦ã„るパーティクルID + + // æ›´æ–°å‰æƒ…å ± + float3 position = _ParticleBufferRead[P_ID].position; + float3 velocity = _ParticleBufferRead[P_ID].velocity; + + const uint2 pos = uint2(position.x * _Ratio.x, position.z * _Ratio.z); // Terrain座標(計算用) + + // Terrainã¨ã®è¡çªåˆ¤å®š => è¡çªã—ãŸã‚‰å£ã«æ²¿ã£ã¦ç§»å‹• + float3 pa = position - float3(pos.x, _TerrainBuffer[pos.x + pos.y * _Resolution].height, pos.y); + float3 norm = _TerrainBuffer[pos.x + pos.y * _Resolution].normal; + _TerrainCollisionForce[P_ID].acceleration = min(-dot(pa, norm), 0) * -3.0f * float3(0, 1, 0); +} + +//-------------------------------------------------------------------------------------- +// Update particle state +//-------------------------------------------------------------------------------------- +[numthreads(PARTICLE_NUM, 1, 1)] +void IntegrateCS(uint3 dispatchID : SV_DispatchThreadID) +{ + const unsigned int P_ID = dispatchID.x; // ç¾åœ¨å‡¦ç†ã—ã¦ã„るパーティクルID + + // æ›´æ–°å‰æƒ…å ± + ParticleType particle = _ParticleBufferRead[P_ID]; + ParticleCollisionForce pcf = _ParticleCollisionForce[P_ID]; + ObjectCollisionForce ocf = _ObjectCollisionForce[P_ID]; + TerrainCollisionForce tcf = _TerrainCollisionForce[P_ID]; + + // é‡åŠ›ã‚’付加 + float3 acceleration = _Gravity; + acceleration += (pcf.acceleration + ocf.acceleration + tcf.acceleration); + //acceleration = acceleration / _ParticleTotalMass; + + // Rotate moment of inertia tensor + // https://ocw.mit.edu/courses/aeronautics-and-astronautics/16-07-dynamics-fall-2009/lecture-notes/MIT16_07F09_Lec26.pdf + float3 angularAcceleration = (pcf.angularAcceleration + ocf.angularAcceleration + tcf.angularAcceleration); + const float4x4 rotated_inverse_inertial_moment = (QuaternionToRotateMatrix(particle.orientation) * _ParticleInertialMoment) * transpose(QuaternionToRotateMatrix(particle.orientation)); + angularAcceleration = mul(rotated_inverse_inertial_moment, float4(angularAcceleration, 1)).xyz; + + // Terrainã¨ã®è¡çªåˆ¤å®š => è¡çªã—ãŸã‚‰å£ã«æ²¿ã£ã¦ç§»å‹• + float3 norm; + const uint2 pos = uint2(particle.position.x * _Ratio.x, particle.position.z * _Ratio.z); // Terrain座標(計算用) + float height = GetInterpolatedHeight(particle.position.x * _Ratio.x, particle.position.z * _Ratio.z); + if (particle.position.y < height) + { + particle.position.y = height; + norm = _TerrainBuffer[pos.x + pos.y * _Resolution].normal; // 法線ベクトル + particle.velocity = particle.velocity + dot(-particle.velocity, norm) * norm; // 速度ベクトルをå£ã«æ²¿ã£ãŸå‘ãã«å¤‰æ› + particle.velocity = _Friction * particle.velocity; // 摩擦 + } + + // å‰é€²ã‚ªã‚¤ãƒ©ãƒ¼æ³•ã§æ¬¡ã®ç²’å­ä½ç½®ã‚’æ›´æ–° + particle.velocity += _TimeStep * acceleration; + particle.position += _TimeStep * particle.velocity; + particle.angularVelocity += _TimeStep * angularAcceleration; + particle.orientation = mul(particle.orientation, EulerToQuaternion(_TimeStep * particle.angularVelocity)); + + // パーティクルã®ãƒãƒƒãƒ•ã‚¡æ›´æ–° + _ParticleBufferWrite[P_ID] = particle; + + // Debug用ã®å‡¦ç† + //_DebugBuffer[P_ID] = float3(height, 0, 0); +} diff --git a/Packages/ParticleSimulator/Runtime/Resources/MolecularDynamics.compute.meta b/Packages/ParticleSimulator/Runtime/Resources/MolecularDynamics.compute.meta new file mode 100644 index 0000000..b4a584c --- /dev/null +++ b/Packages/ParticleSimulator/Runtime/Resources/MolecularDynamics.compute.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: bb399b6ee1431a34ab49089341af898a +ComputeShaderImporter: + externalObjects: {} + preprocessorOverride: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/ParticleSimulator/Runtime/Scripts.meta b/Packages/ParticleSimulator/Runtime/Scripts.meta new file mode 100644 index 0000000..69d2381 --- /dev/null +++ b/Packages/ParticleSimulator/Runtime/Scripts.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1ab550e703216db46ad71c7830ede6da +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/ParticleSimulator/Runtime/Scripts/Common.meta b/Packages/ParticleSimulator/Runtime/Scripts/Common.meta new file mode 100644 index 0000000..1db9843 --- /dev/null +++ b/Packages/ParticleSimulator/Runtime/Scripts/Common.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1e5b86c820fde3c409b9b276226be4d2 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/ParticleSimulator/Runtime/Scripts/Common/BufferUtils.cs b/Packages/ParticleSimulator/Runtime/Scripts/Common/BufferUtils.cs new file mode 100644 index 0000000..d140c61 --- /dev/null +++ b/Packages/ParticleSimulator/Runtime/Scripts/Common/BufferUtils.cs @@ -0,0 +1,44 @@ +using UnityEngine; + +public class BufferUtils +{ + /// + /// ˆø”‚ÉŽw’肳‚ꂽƒoƒbƒtƒ@‚Ì“ü‚ê‘Ö‚¦ + /// + public static void SwapComputeBuffer(ref ComputeBuffer ping, ref ComputeBuffer pong) + { + ComputeBuffer temp = ping; + ping = pong; + pong = temp; + } + + /// + /// ƒoƒbƒtƒ@‚ÌŠJ•ú + /// + /// + public static void ReleaseBuffer(ComputeBuffer buffer) + { + if (buffer != null) + { + buffer.Release(); + buffer = null; + } + } + + /// + /// ƒoƒbƒtƒ@‚̃vƒŠƒ“ƒgƒfƒoƒbƒO + /// + /// + public static void DebugBuffer(ComputeBuffer buffer, int threadGroups) + { + if (buffer != null) + { + var result = new T[threadGroups]; + buffer.GetData(result); + foreach (var eachResult in result) + { + Debug.Log(eachResult); + } + } + } +} diff --git a/Packages/ParticleSimulator/Runtime/Scripts/Common/BufferUtils.cs.meta b/Packages/ParticleSimulator/Runtime/Scripts/Common/BufferUtils.cs.meta new file mode 100644 index 0000000..b50d3bd --- /dev/null +++ b/Packages/ParticleSimulator/Runtime/Scripts/Common/BufferUtils.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e323af6926900d049b78873cda63943c +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/ParticleSimulator/Runtime/Scripts/DataType.meta b/Packages/ParticleSimulator/Runtime/Scripts/DataType.meta new file mode 100644 index 0000000..5a37f63 --- /dev/null +++ b/Packages/ParticleSimulator/Runtime/Scripts/DataType.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 06d3d5603042fd5419747ad64e653b3d +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/ParticleSimulator/Runtime/Scripts/DataType/ElementType.cs b/Packages/ParticleSimulator/Runtime/Scripts/DataType/ElementType.cs new file mode 100644 index 0000000..6847eab --- /dev/null +++ b/Packages/ParticleSimulator/Runtime/Scripts/DataType/ElementType.cs @@ -0,0 +1,18 @@ +using UnityEngine; + +namespace ParticleSimulator.Substance +{ + public struct ElementType + { + public float radius; + public float mass; + public Vector3 offsetFromParticleCenter; + + public ElementType(float radius, float mass, Vector3 offsetFromParticleCenter) + { + this.radius = radius; + this.mass = mass; + this.offsetFromParticleCenter = offsetFromParticleCenter; + } + } +} diff --git a/Packages/ParticleSimulator/Runtime/Scripts/DataType/ElementType.cs.meta b/Packages/ParticleSimulator/Runtime/Scripts/DataType/ElementType.cs.meta new file mode 100644 index 0000000..df3b350 --- /dev/null +++ b/Packages/ParticleSimulator/Runtime/Scripts/DataType/ElementType.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: cb96d0f5a4cd08b4f96038d86143df67 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/ParticleSimulator/Runtime/Scripts/DataType/ForceType.cs b/Packages/ParticleSimulator/Runtime/Scripts/DataType/ForceType.cs new file mode 100644 index 0000000..33a637f --- /dev/null +++ b/Packages/ParticleSimulator/Runtime/Scripts/DataType/ForceType.cs @@ -0,0 +1,47 @@ +using UnityEngine; + +namespace ParticleSimulator +{ + public struct ParticleCollisionForce + { + public Vector3 acceleration; + public Vector3 angularAcceleration; + + public ParticleCollisionForce(Vector3 acceleration, Vector3 angularAcceleration) + { + this.acceleration = acceleration; + this.angularAcceleration = angularAcceleration; + } + + public static ParticleCollisionForce zero() => new ParticleCollisionForce(Vector3.zero, Vector3.zero); + + } + + public struct TerrainCollisionForce + { + public Vector3 acceleration; + public Vector3 angularAcceleration; + + public TerrainCollisionForce(Vector3 acceleration, Vector3 angularAcceleration) + { + this.acceleration = acceleration; + this.angularAcceleration = angularAcceleration; + } + + public static TerrainCollisionForce zero() => new TerrainCollisionForce(Vector3.zero, Vector3.zero); + } + + public struct ObjectCollisionForce + { + public Vector3 acceleration; + public Vector3 angularAcceleration; + + public ObjectCollisionForce(Vector3 acceleration, Vector3 angularAcceleration) + { + this.acceleration = acceleration; + this.angularAcceleration = angularAcceleration; + } + + public static ObjectCollisionForce zero() => new ObjectCollisionForce(Vector3.zero, Vector3.zero); + } +} diff --git a/Packages/ParticleSimulator/Runtime/Scripts/DataType/ForceType.cs.meta b/Packages/ParticleSimulator/Runtime/Scripts/DataType/ForceType.cs.meta new file mode 100644 index 0000000..7be1e89 --- /dev/null +++ b/Packages/ParticleSimulator/Runtime/Scripts/DataType/ForceType.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 1bb365962d3bf924db0add20bd8bd359 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/ParticleSimulator/Runtime/Scripts/DataType/ParticleNumEnum.cs b/Packages/ParticleSimulator/Runtime/Scripts/DataType/ParticleNumEnum.cs new file mode 100644 index 0000000..e0c9546 --- /dev/null +++ b/Packages/ParticleSimulator/Runtime/Scripts/DataType/ParticleNumEnum.cs @@ -0,0 +1,16 @@ +namespace ParticleSimulator +{ + public enum ParticleNumEnum + { + NUM_1K = 1024, + NUM_2K = 1024 * 2, + NUM_4K = 1024 * 4, + NUM_8K = 1024 * 8, + NUM_16K = 1024 * 16, + NUM_32K = 1024 * 32, + NUM_64K = 1024 * 64, + NUM_128K = 1024 * 128, + NUM_256K = 1024 * 256, + NUM_512K = 1024 * 512 + }; +} diff --git a/Packages/ParticleSimulator/Runtime/Scripts/DataType/ParticleNumEnum.cs.meta b/Packages/ParticleSimulator/Runtime/Scripts/DataType/ParticleNumEnum.cs.meta new file mode 100644 index 0000000..c16cda6 --- /dev/null +++ b/Packages/ParticleSimulator/Runtime/Scripts/DataType/ParticleNumEnum.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 900decf6cb056314d83b598855290bdc +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/ParticleSimulator/Runtime/Scripts/DataType/ParticleStatus.cs b/Packages/ParticleSimulator/Runtime/Scripts/DataType/ParticleStatus.cs new file mode 100644 index 0000000..4e9e91d --- /dev/null +++ b/Packages/ParticleSimulator/Runtime/Scripts/DataType/ParticleStatus.cs @@ -0,0 +1,48 @@ +using UnityEngine; +using UnityEngine.VFX; + +namespace ParticleSimulator +{ + [VFXType(VFXTypeAttribute.Usage.GraphicsBuffer)] + public struct ParticleStatus + { + public Vector3 position; + public Vector3 velocity; + public Vector4 orientation; + public Vector3 angularVelocity; + + public static ParticleStatus[] GeneratePoint(int particleNum, Vector3 centerPos) + { + var particles = new ParticleStatus[particleNum]; + var identityOrientation = Quaternion.identity; + for (int i = 0; i < particleNum; i++) + { + particles[i].position = centerPos; + particles[i].velocity = Vector3.zero; + particles[i].orientation = new Vector4(identityOrientation.x, identityOrientation.y, identityOrientation.z, identityOrientation.w); + particles[i].angularVelocity = Vector3.zero; + } + return particles; + } + + public static ParticleStatus[] GenerateSphere(int particleNum, Vector3 centerPos, float radius) + { + var particles = new ParticleStatus[particleNum]; + var identityOrientation = Quaternion.identity; + for (int i = 0; i < particleNum; i++) + { + particles[i].position = centerPos + Random.insideUnitSphere * radius; + particles[i].velocity = Vector3.zero; + particles[i].orientation = new Vector4(identityOrientation.x, identityOrientation.y, identityOrientation.z, identityOrientation.w); + particles[i].angularVelocity = Vector3.zero; + } + return particles; + } + + public static ParticleStatus[] GenerateFromMesh(int particleNum, Mesh mesh) + { + var particles = new ParticleStatus[particleNum]; + return particles; + } + }; +} diff --git a/Packages/ParticleSimulator/Runtime/Scripts/DataType/ParticleStatus.cs.meta b/Packages/ParticleSimulator/Runtime/Scripts/DataType/ParticleStatus.cs.meta new file mode 100644 index 0000000..f64dad9 --- /dev/null +++ b/Packages/ParticleSimulator/Runtime/Scripts/DataType/ParticleStatus.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: dcd7e224d269ea643a981c326bb0da76 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/ParticleSimulator/Runtime/Scripts/DataType/ParticleTypeEnum.cs b/Packages/ParticleSimulator/Runtime/Scripts/DataType/ParticleTypeEnum.cs new file mode 100644 index 0000000..ec4f0b2 --- /dev/null +++ b/Packages/ParticleSimulator/Runtime/Scripts/DataType/ParticleTypeEnum.cs @@ -0,0 +1,9 @@ +namespace ParticleSimulator +{ + public enum ParticleTypeEnum + { + Simple, + Tetrahedron, + Cube + }; +} diff --git a/Packages/ParticleSimulator/Runtime/Scripts/DataType/ParticleTypeEnum.cs.meta b/Packages/ParticleSimulator/Runtime/Scripts/DataType/ParticleTypeEnum.cs.meta new file mode 100644 index 0000000..de004f4 --- /dev/null +++ b/Packages/ParticleSimulator/Runtime/Scripts/DataType/ParticleTypeEnum.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 1d42cb890acf5f74997341ec3898284e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/ParticleSimulator/Runtime/Scripts/DataType/TerrainType.cs b/Packages/ParticleSimulator/Runtime/Scripts/DataType/TerrainType.cs new file mode 100644 index 0000000..9c2004a --- /dev/null +++ b/Packages/ParticleSimulator/Runtime/Scripts/DataType/TerrainType.cs @@ -0,0 +1,27 @@ +using UnityEngine; + +namespace ParticleSimulator +{ + public struct TerrainType + { + public float height; + public Vector3 normal; + + public static TerrainType[] GenerateFromTerrain(Terrain terrain) + { + var terrainResolution = terrain.terrainData.heightmapResolution; + var data = new TerrainType[terrainResolution * terrainResolution]; + // å°†æ¥çš„ã«å¿…è¦æœ€ä½Žé™ã®ç¯„囲ã§ã®ã¿ãƒ‡ãƒ¼ã‚¿ã‚’å–å¾—ã—ãŸã»ã†ãŒã„ã„(軽é‡åŒ–ã®ãŸã‚) + for (var i = 0; i < terrainResolution; i++) + { + for (var j = 0; j < terrainResolution; j++) + { + data[i + j * terrainResolution].height = terrain.terrainData.GetHeight(i, j); + data[i + j * terrainResolution].normal = terrain.terrainData.GetInterpolatedNormal(i / (float)terrainResolution, + j / (float)terrainResolution); + } + } + return data; + } + }; +} diff --git a/Packages/ParticleSimulator/Runtime/Scripts/DataType/TerrainType.cs.meta b/Packages/ParticleSimulator/Runtime/Scripts/DataType/TerrainType.cs.meta new file mode 100644 index 0000000..98bf41f --- /dev/null +++ b/Packages/ParticleSimulator/Runtime/Scripts/DataType/TerrainType.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c8688e940442b5a4f9961efa43347267 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/ParticleSimulator/Runtime/Scripts/Particle.meta b/Packages/ParticleSimulator/Runtime/Scripts/Particle.meta new file mode 100644 index 0000000..8f38c71 --- /dev/null +++ b/Packages/ParticleSimulator/Runtime/Scripts/Particle.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5fc91a2748772324fbc28df17cc7197a +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/ParticleSimulator/Runtime/Scripts/Particle/Particle.cs b/Packages/ParticleSimulator/Runtime/Scripts/Particle/Particle.cs new file mode 100644 index 0000000..c6abde8 --- /dev/null +++ b/Packages/ParticleSimulator/Runtime/Scripts/Particle/Particle.cs @@ -0,0 +1,60 @@ +using System.Runtime.InteropServices; +using UnityEngine; +using ParticleSimulator.Substance; + +namespace ParticleSimulator +{ + public class Particle + { + public readonly int num; + public GraphicsBuffer status; + public ParticleSubstance substance; + + public Particle(int particleNum) + { + this.num = particleNum; + } + + public void Release() + { + status.Release(); + substance.Release(); + } + + public static Particle SetAsSimpleParticle(ParticleStatus[] particles) + { + Particle p = new Particle(particles.Length); + p.status = new GraphicsBuffer( + GraphicsBuffer.Target.Structured, + particles.Length, + Marshal.SizeOf(typeof(ParticleStatus))); + p.status.SetData(particles); + p.substance = new SimpleSubstance(); + return p; + } + + public static Particle SetAsTetrahedronParticle(ParticleStatus[] particles) + { + Particle p = new Particle(particles.Length); + p.status = new GraphicsBuffer( + GraphicsBuffer.Target.Structured, + particles.Length, + Marshal.SizeOf(typeof(ParticleStatus))); + p.status.SetData(particles); + p.substance = new TetrahedronSubstance(); + return p; + } + + public static Particle SetAsCubeParticle(ParticleStatus[] particles) + { + Particle p = new Particle(particles.Length); + p.status = new GraphicsBuffer( + GraphicsBuffer.Target.Structured, + particles.Length, + Marshal.SizeOf(typeof(ParticleStatus))); + p.status.SetData(particles); + p.substance = new CubeSubstance(); + return p; + } + } +} diff --git a/Packages/ParticleSimulator/Runtime/Scripts/Particle/Particle.cs.meta b/Packages/ParticleSimulator/Runtime/Scripts/Particle/Particle.cs.meta new file mode 100644 index 0000000..0c4bdb2 --- /dev/null +++ b/Packages/ParticleSimulator/Runtime/Scripts/Particle/Particle.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6aa59e157d5039b40a822868d59c8bac +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/ParticleSimulator/Runtime/Scripts/Particle/Substances.meta b/Packages/ParticleSimulator/Runtime/Scripts/Particle/Substances.meta new file mode 100644 index 0000000..188cfff --- /dev/null +++ b/Packages/ParticleSimulator/Runtime/Scripts/Particle/Substances.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 6e636c5a5c508c945af0769542d4178f +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/ParticleSimulator/Runtime/Scripts/Particle/Substances/CubeSubstance.cs b/Packages/ParticleSimulator/Runtime/Scripts/Particle/Substances/CubeSubstance.cs new file mode 100644 index 0000000..1f413b5 --- /dev/null +++ b/Packages/ParticleSimulator/Runtime/Scripts/Particle/Substances/CubeSubstance.cs @@ -0,0 +1,44 @@ +using UnityEngine; +using Unity.Mathematics; +using System.Runtime.InteropServices; + +namespace ParticleSimulator.Substance +{ + public class CubeSubstance : ParticleSubstance + { + private static float _elementRatio = 0.3f; + + public CubeSubstance(float radius = 0.04f, float density = 2000.0f, float mu = 0.05f) + { + this.mu = mu; + + var e = SetElements(radius, density); + this.totalMass = CalculateTotalMass(e, density); + this.centerOfMass = CalculateCenterOfMass(e); + this.inertialMoment = CalculateInverseInertialMoment(e); + + elements = new GraphicsBuffer( + GraphicsBuffer.Target.Structured, + e.Length, + Marshal.SizeOf(typeof(ElementType))); + elements.SetData(e); + } + + protected override ElementType[] SetElements(float particleRadius, float particleDensity) + { + float CORNER = 1.0f / math.sqrt(3.0f); + ElementType[] e = new ElementType[] { + new ElementType(particleRadius, CalculateElementMass(particleRadius, particleDensity), new float3(0.0f, 0.0f, 0.0f) * particleRadius), + new ElementType(particleRadius * _elementRatio, CalculateElementMass(particleRadius * _elementRatio, particleDensity), new float3(CORNER, CORNER, CORNER) * particleRadius * (1.0f + _elementRatio)), + new ElementType(particleRadius * _elementRatio, CalculateElementMass(particleRadius * _elementRatio, particleDensity), new float3(CORNER, CORNER, -CORNER) * particleRadius * (1.0f + _elementRatio)), + new ElementType(particleRadius * _elementRatio, CalculateElementMass(particleRadius * _elementRatio, particleDensity), new float3(-CORNER, CORNER, -CORNER) * particleRadius * (1.0f + _elementRatio)), + new ElementType(particleRadius * _elementRatio, CalculateElementMass(particleRadius * _elementRatio, particleDensity), new float3(-CORNER, CORNER, CORNER) * particleRadius * (1.0f + _elementRatio)), + new ElementType(particleRadius * _elementRatio, CalculateElementMass(particleRadius * _elementRatio, particleDensity), new float3(CORNER, -CORNER, CORNER) * particleRadius * (1.0f + _elementRatio)), + new ElementType(particleRadius * _elementRatio, CalculateElementMass(particleRadius * _elementRatio, particleDensity), new float3(CORNER, -CORNER, -CORNER) * particleRadius * (1.0f + _elementRatio)), + new ElementType(particleRadius * _elementRatio, CalculateElementMass(particleRadius * _elementRatio, particleDensity), new float3(-CORNER, -CORNER, -CORNER) * particleRadius * (1.0f + _elementRatio)), + new ElementType(particleRadius * _elementRatio, CalculateElementMass(particleRadius * _elementRatio, particleDensity), new float3(-CORNER, -CORNER, CORNER) * particleRadius * (1.0f + _elementRatio)) + }; + return e; + } + } +} diff --git a/Packages/ParticleSimulator/Runtime/Scripts/Particle/Substances/CubeSubstance.cs.meta b/Packages/ParticleSimulator/Runtime/Scripts/Particle/Substances/CubeSubstance.cs.meta new file mode 100644 index 0000000..27e76ff --- /dev/null +++ b/Packages/ParticleSimulator/Runtime/Scripts/Particle/Substances/CubeSubstance.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 44e28650dc54c404d8bbbf7781874979 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/ParticleSimulator/Runtime/Scripts/Particle/Substances/ParticleSubstance.cs b/Packages/ParticleSimulator/Runtime/Scripts/Particle/Substances/ParticleSubstance.cs new file mode 100644 index 0000000..67f7f13 --- /dev/null +++ b/Packages/ParticleSimulator/Runtime/Scripts/Particle/Substances/ParticleSubstance.cs @@ -0,0 +1,76 @@ +using Unity.Mathematics; +using UnityEngine; + +namespace ParticleSimulator.Substance +{ + public abstract class ParticleSubstance + { + protected GraphicsBuffer elements; + + protected float mu; + protected float totalMass; + protected float3 centerOfMass; + protected float3x3 inertialMoment; + + #region Accessor + public GraphicsBuffer Elements => elements; + public float TotalMass => totalMass; + public float Mu => mu; + public Vector3 CenterOfMass => centerOfMass; + public float3x3 InertialMoment => inertialMoment; + + #endregion + + public void Release() + { + elements.Release(); + } + + protected float CalculateElementMass(float radius, float density) + { + float volume = (4.0f / 3.0f) * math.PI * math.pow(radius, 3); + float mass = volume * density; + return mass; + } + + protected float3x3 CalculateInverseInertialMoment(ElementType[] elements) + { + float3x3 inertialMoment = float3x3.zero; + + foreach (ElementType element in elements) + { + float3x3 elementInertialMoment = float3x3.identity * (2.0f / 5.0f) * element.mass * math.pow(element.radius, 2); + + float3 offset = element.offsetFromParticleCenter; + float offsetSquared = math.dot(offset, offset); + float3x3 offsetInertialMoment = elementInertialMoment + element.mass * (offsetSquared * float3x3.identity - math.mul(offset, offset)); + inertialMoment += offsetInertialMoment; + } + inertialMoment = math.transpose(inertialMoment); + + return inertialMoment; + } + + protected float CalculateTotalMass(ElementType[] elements, float density) + { + float totalMass = 0; + foreach (ElementType element in elements) + { + totalMass += CalculateElementMass(element.radius, density); + } + return totalMass; + } + + protected float3 CalculateCenterOfMass(ElementType[] elements) + { + float3 centerOfMass = float3.zero; + foreach (ElementType element in elements) + { + centerOfMass += new float3(element.offsetFromParticleCenter); + } + return centerOfMass / (float)elements.Length; + } + + protected abstract ElementType[] SetElements(float particleRadius, float particleDensity); + } +} diff --git a/Packages/ParticleSimulator/Runtime/Scripts/Particle/Substances/ParticleSubstance.cs.meta b/Packages/ParticleSimulator/Runtime/Scripts/Particle/Substances/ParticleSubstance.cs.meta new file mode 100644 index 0000000..a842451 --- /dev/null +++ b/Packages/ParticleSimulator/Runtime/Scripts/Particle/Substances/ParticleSubstance.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2e01b9b7c93e5654ca63f9a33020bfe9 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/ParticleSimulator/Runtime/Scripts/Particle/Substances/SimpleSubstance.cs b/Packages/ParticleSimulator/Runtime/Scripts/Particle/Substances/SimpleSubstance.cs new file mode 100644 index 0000000..c7dc884 --- /dev/null +++ b/Packages/ParticleSimulator/Runtime/Scripts/Particle/Substances/SimpleSubstance.cs @@ -0,0 +1,33 @@ +using UnityEngine; +using Unity.Mathematics; +using System.Runtime.InteropServices; + +namespace ParticleSimulator.Substance +{ + public class SimpleSubstance : ParticleSubstance + { + public SimpleSubstance(float radius = 0.04f, float density = 2000.0f, float mu = 0.05f) + { + this.mu = mu; + + var e = SetElements(radius, density); + this.totalMass = CalculateTotalMass(e, density); + this.centerOfMass = CalculateCenterOfMass(e); + this.inertialMoment = CalculateInverseInertialMoment(e); + + elements = new GraphicsBuffer( + GraphicsBuffer.Target.Structured, + e.Length, + Marshal.SizeOf(typeof(ElementType))); + elements.SetData(e); + } + + protected override ElementType[] SetElements(float particleRadius, float particleDensity) + { + ElementType[] e = new ElementType[] { + new ElementType(particleRadius, CalculateElementMass(particleRadius, particleDensity), new float3(0.0f, 0.0f, 0.0f) * particleRadius), + }; + return e; + } + } +} diff --git a/Packages/ParticleSimulator/Runtime/Scripts/Particle/Substances/SimpleSubstance.cs.meta b/Packages/ParticleSimulator/Runtime/Scripts/Particle/Substances/SimpleSubstance.cs.meta new file mode 100644 index 0000000..0883abd --- /dev/null +++ b/Packages/ParticleSimulator/Runtime/Scripts/Particle/Substances/SimpleSubstance.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 97bb72013976b3b4e8855c0daf38b2ea +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/ParticleSimulator/Runtime/Scripts/Particle/Substances/TetrahedronSubstance.cs b/Packages/ParticleSimulator/Runtime/Scripts/Particle/Substances/TetrahedronSubstance.cs new file mode 100644 index 0000000..0464b49 --- /dev/null +++ b/Packages/ParticleSimulator/Runtime/Scripts/Particle/Substances/TetrahedronSubstance.cs @@ -0,0 +1,38 @@ +using UnityEngine; +using Unity.Mathematics; +using System.Runtime.InteropServices; + +namespace ParticleSimulator.Substance +{ + public class TetrahedronSubstance : ParticleSubstance + { + private static float _elementRatio = 0.5f; + + public TetrahedronSubstance(float radius = 0.04f, float density = 2000.0f, float mu = 0.05f) + { + this.mu = mu; + + var e = SetElements(radius, density); + this.totalMass = CalculateTotalMass(e, density); + this.centerOfMass = CalculateCenterOfMass(e); + this.inertialMoment = CalculateInverseInertialMoment(e); + + elements = new GraphicsBuffer( + GraphicsBuffer.Target.Structured, + e.Length, + Marshal.SizeOf(typeof(ElementType))); + elements.SetData(e); + } + + protected override ElementType[] SetElements(float particleRadius, float particleDensity) + { + ElementType[] e = new ElementType[] { + new ElementType(particleRadius * _elementRatio, CalculateElementMass(particleRadius * _elementRatio, particleDensity), new float3(1.0f, 0.0f, -1.0f / math.sqrt(2.0f)) * particleRadius * _elementRatio), + new ElementType(particleRadius * _elementRatio, CalculateElementMass(particleRadius * _elementRatio, particleDensity), new float3(-1.0f, 0.0f, -1.0f / math.sqrt(2.0f)) * particleRadius * _elementRatio), + new ElementType(particleRadius * _elementRatio, CalculateElementMass(particleRadius * _elementRatio, particleDensity), new float3(0.0f, 1.0f, 1.0f / math.sqrt(2.0f)) * particleRadius * _elementRatio), + new ElementType(particleRadius * _elementRatio, CalculateElementMass(particleRadius * _elementRatio, particleDensity), new float3(0.0f, -1.0f, 1.0f / math.sqrt(2.0f)) * particleRadius * _elementRatio) + }; + return e; + } + } +} diff --git a/Packages/ParticleSimulator/Runtime/Scripts/Particle/Substances/TetrahedronSubstance.cs.meta b/Packages/ParticleSimulator/Runtime/Scripts/Particle/Substances/TetrahedronSubstance.cs.meta new file mode 100644 index 0000000..6263906 --- /dev/null +++ b/Packages/ParticleSimulator/Runtime/Scripts/Particle/Substances/TetrahedronSubstance.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 996f584b4da67ce41ae3cd2d4da20556 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/ParticleSimulator/Runtime/Scripts/ParticlePhysics.cs b/Packages/ParticleSimulator/Runtime/Scripts/ParticlePhysics.cs new file mode 100644 index 0000000..abca9b4 --- /dev/null +++ b/Packages/ParticleSimulator/Runtime/Scripts/ParticlePhysics.cs @@ -0,0 +1,97 @@ +using System.Collections; +using System.Collections.Generic; +using System.Runtime.InteropServices; +using UnityEngine; +using UnityEngine.VFX; + +namespace ParticleSimulator +{ + public class ParticlePhysics : MonoBehaviour + { + [Header("Particle Setting")] + [SerializeField] private ParticleNumEnum _maxParticle; + [SerializeField] private ParticleTypeEnum _particleType; + [SerializeField, Range(0.02f, 0.1f)] private float _particleRadius; + [SerializeField] private Vector3 _spornPos; // When a debugging component is available, this variable will be moved there. + [SerializeField] private VisualEffect _effect; + + [Header("Physics Setting")] // Will be erased in the future. + //[SerializeField] private Vector3 _gravity = Physics.gravity; + //[SerializeField] private float _maxTimestep = 0.0005f; + + [Header("Collision Objects")] + [SerializeField] private Terrain _terrain; + [SerializeField] private List _objects; + + [Header("Option Setting")] // Will be erased in the future. + [SerializeField] private Vector3 _gridSize = new(64, 64, 64); + [SerializeField] private float _gridCellSize = 0.5f; + + + // Objects + private SandPhysicsSolver _solver; + private Mesh _mesh; + + // ComputeShader + private Particle _particle; + private Particle _objectParticle; + private GraphicsBuffer _terrainBuffer; + + private void Start() + { + // Init Particle Buffer + _particle = Particle.SetAsTetrahedronParticle( + ParticleStatus.GenerateSphere((int)_maxParticle, _spornPos, 5)); + + // Init Object Particle Buffer + _objectParticle = Particle.SetAsSimpleParticle( + ParticleStatus.GenerateFromMesh((int)_maxParticle, _mesh)); + + // Init Terrain Bufer + var t = TerrainType.GenerateFromTerrain(_terrain); + _terrainBuffer = new GraphicsBuffer( + GraphicsBuffer.Target.Structured, + t.Length, + Marshal.SizeOf(typeof(TerrainType))); + _terrainBuffer.SetData(t); + + + _solver = new SandPhysicsSolver( + particle: _particle, + gridSize: _gridSize, + gridCellSize: _gridCellSize, + gridCenter: _spornPos, + terrainResolution: _terrain.terrainData.heightmapResolution, + terrainRatio: new Vector3(_terrain.terrainData.heightmapResolution / _terrain.terrainData.size.x, + 1 / _terrain.terrainData.size.y, + _terrain.terrainData.heightmapResolution / _terrain.terrainData.size.z), + terrainFriction: 0.995f); + + _effect.SetGraphicsBuffer("ParticleBuffer", _particle.status); + _effect.SetGraphicsBuffer("debugBuffer", _solver._debugger); + _effect.SetUInt("ParticleNum", (uint)_particle.status.count); + _effect.SetFloat("ParticleSize", _particleRadius); + + } + + private void Update() + { + _solver.UpdateParticle(ref _particle, _terrainBuffer); + } + + private void OnDestroy() + { + _particle.Release(); + _objectParticle.Release(); + _terrainBuffer.Release(); + _solver.Release(); + } + + private void OnDrawGizmos() + { + Gizmos.color = Color.cyan; + Gizmos.DrawWireSphere(_spornPos, 5); + Gizmos.DrawWireCube(_spornPos, _gridSize); + } + } +} diff --git a/Packages/ParticleSimulator/Runtime/Scripts/ParticlePhysics.cs.meta b/Packages/ParticleSimulator/Runtime/Scripts/ParticlePhysics.cs.meta new file mode 100644 index 0000000..bdf2faa --- /dev/null +++ b/Packages/ParticleSimulator/Runtime/Scripts/ParticlePhysics.cs.meta @@ -0,0 +1,15 @@ +fileFormatVersion: 2 +guid: 9191cb30d96eeb84f8623096ba9b4356 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: + - _particleRenderMat: {fileID: 2100000, guid: 48e8317f90ff45c4f92c4e2de9ec720d, + type: 2} + - _terrain: {instanceID: 0} + - _mesh: {instanceID: 0} + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/ParticleSimulator/Runtime/Scripts/ShaderDebug.cs b/Packages/ParticleSimulator/Runtime/Scripts/ShaderDebug.cs new file mode 100644 index 0000000..a844a33 --- /dev/null +++ b/Packages/ParticleSimulator/Runtime/Scripts/ShaderDebug.cs @@ -0,0 +1,18 @@ +using System.Runtime.InteropServices; +using UnityEngine; + +public class ShaderDebug +{ + public static void DebugLog(GraphicsBuffer buffer, int threadGroups) + { + if (buffer != null) + { + var result = new T[threadGroups]; + buffer.GetData(result); + foreach (var eachResult in result) + { + Debug.Log(eachResult); + } + } + } +} diff --git a/Packages/ParticleSimulator/Runtime/Scripts/ShaderDebug.cs.meta b/Packages/ParticleSimulator/Runtime/Scripts/ShaderDebug.cs.meta new file mode 100644 index 0000000..87125b0 --- /dev/null +++ b/Packages/ParticleSimulator/Runtime/Scripts/ShaderDebug.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 96688c2777666694bac0a97eb9592e39 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/ParticleSimulator/Runtime/Scripts/Solver.meta b/Packages/ParticleSimulator/Runtime/Scripts/Solver.meta new file mode 100644 index 0000000..b76a7ca --- /dev/null +++ b/Packages/ParticleSimulator/Runtime/Scripts/Solver.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f0dc2a2475d54104b8cd8707b179e440 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/ParticleSimulator/Runtime/Scripts/Solver/SandPhysicsSolver.cs b/Packages/ParticleSimulator/Runtime/Scripts/Solver/SandPhysicsSolver.cs new file mode 100644 index 0000000..40a6a5a --- /dev/null +++ b/Packages/ParticleSimulator/Runtime/Scripts/Solver/SandPhysicsSolver.cs @@ -0,0 +1,216 @@ +using System.Runtime.InteropServices; +using UnityEngine; + +namespace ParticleSimulator +{ + public class SandPhysicsSolver + { + // Simulation + private Vector3 _gravity = Physics.gravity; + //private float _timestep = 0.0005f; + + // Particle + private int _elementNum; + private int _particleNum; + private float _particleMu; + private float _particleTotalMass; + private Matrix4x4 _particleInertialMoment; + + // GridSearch + private Vector3 _gridCenter; + + // Terrain + private int _terrainResolution; // 地形ã®è§£åƒåº¦ + private Vector3 _terrainRatio; // 地形ã®è§£åƒåº¦ã¨ã‚µã‚¤ã‚ºã®æ¯” + private float _terrainFriction; // å£ã®æ‘©æ“¦ + + // ComputeShader + private ComputeShader _solver; + private GraphicsBuffer _particleCollisionForce; + private GraphicsBuffer _objectCollisionForce; + private GraphicsBuffer _terrainCollisionForce; + private GraphicsBuffer _tmpBufferWrite; + + private NearestNeighbor.GridSearch _nearestNeighbor; + + public GraphicsBuffer _debugger; + + public SandPhysicsSolver( + Particle particle, + Vector3 gridSize, float gridCellSize, Vector3 gridCenter, + int terrainResolution, Vector3 terrainRatio, float terrainFriction) + { + _elementNum = particle.substance.Elements.count; + _particleNum = particle.status.count; + _particleMu = particle.substance.Mu; + _particleTotalMass = particle.substance.TotalMass; + //_particleInertialMoment = particle.substance.InertialMoment; + _particleInertialMoment = Matrix4x4.identity; + _gridCenter = gridCenter; + _terrainResolution = terrainResolution; + _terrainRatio = terrainRatio; + _terrainFriction = terrainFriction; + + _solver = (ComputeShader)Resources.Load("MolecularDynamics"); + + _solver.SetVector("_Gravity", _gravity); + _solver.SetInt("_ElementNum", _elementNum); + _solver.SetInt("_ParticleNum", _particleNum); + _solver.SetFloat("_ParticleMu", _particleMu); + _solver.SetFloat("_ParticleTotalMass", _particleTotalMass); + _solver.SetMatrix(Shader.PropertyToID("_ParticleInertialMoment"), _particleInertialMoment); + _solver.SetInt("_Resolution", _terrainResolution); + _solver.SetVector("_Ratio", _terrainRatio); + _solver.SetFloat("_Friction", _terrainFriction); + + Debug.Log("=== Initialized CS Buffer === \n" + + "_Gravity : \t" + this._gravity + "\n" + + "_ElementNum : \t" + this._elementNum + "\n" + + "_ParticleNum : \t" + this._particleNum + "\n" + + "_ParticleMu : \t" + this._particleMu + "\n" + + "_ParticleTotalMass : \t" + this._particleTotalMass + "\n" + + "_ParticleInertialMoment : \n" + this._particleInertialMoment + "\n" + + "_Resolution : \t" + this._terrainResolution + "\n" + + "_Ratio : \t" + this._terrainRatio + "\n" + + "_Friction : \t" + this._terrainFriction); + + InitCSBuffer(_particleNum); + + _nearestNeighbor = new NearestNeighbor.GridSearch(_particleNum, gridSize, gridCellSize); + _nearestNeighbor.GridCenter = gridCenter; + _nearestNeighbor.SetCSVariables(_solver); + } + + public void SetParticleCSParams(Particle particle) + { + _solver.SetInt("_ElementNum", particle.substance.Elements.count); + _solver.SetInt("_ParticleNum", particle.num); + _solver.SetFloat("_ParticleMu", particle.substance.Mu); + _solver.SetFloat("_ParticleTotalMass", particle.substance.TotalMass); + _solver.SetMatrix(Shader.PropertyToID("_ParticleInertialMoment"), Matrix4x4.identity); + } + + public void SetGridSearchCSParams(Vector3 center, Vector3 size, Vector3 resolution) + { + _nearestNeighbor.UpdateGridVariables(center, size, resolution); + _solver.SetVector("_GridResolution", resolution); + _solver.SetFloat("_GridCellSize", size.x / resolution.x); + } + + private void InitCSBuffer(int objNum) + { + // Init Force Bufer + _particleCollisionForce = new GraphicsBuffer( + GraphicsBuffer.Target.Structured, + (int)objNum, + Marshal.SizeOf(typeof(ParticleCollisionForce))); + _objectCollisionForce = new GraphicsBuffer( + GraphicsBuffer.Target.Structured, + (int)objNum, + Marshal.SizeOf(typeof(ObjectCollisionForce))); + _terrainCollisionForce = new GraphicsBuffer( + GraphicsBuffer.Target.Structured, + (int)objNum, + Marshal.SizeOf(typeof(TerrainCollisionForce))); + + // Init temp buffer + _tmpBufferWrite = new GraphicsBuffer( + GraphicsBuffer.Target.Structured, + (int)objNum, + Marshal.SizeOf(typeof(ParticleStatus))); + + _debugger = new GraphicsBuffer( + GraphicsBuffer.Target.Structured, + (int)objNum, + Marshal.SizeOf(typeof(Vector3))); + } + + public void UpdateParticle(ref Particle particles, GraphicsBuffer terrain) + { + _nearestNeighbor.GridSort(ref particles.status); + CalculateParticleCollisionForce(particles.status, particles.substance.Elements); + ////CalculateTerrainCollision(ref _terrainCollisionForce, _particleBuffer, _terrainBuffer); + //CalculateObjectCollision(ref _objectCollisionForce, _particleBuffer, _objectParticleBuffer); + Integrate(ref particles.status, terrain); + } + + public void UpdateTerrain(ref Terrain newTerrain) + { + + } + + private void CalculateParticleCollisionForce(GraphicsBuffer particleBuffer, GraphicsBuffer elementBuffer) + { + int kernelID = _solver.FindKernel("ParticleCollisionCS"); + _solver.SetFloat("_ParticleMu", _particleMu); + _solver.SetBuffer(kernelID, "_ElementBuffer", elementBuffer); + _solver.SetBuffer(kernelID, "_ParticleBufferRead", particleBuffer); + _solver.SetBuffer(kernelID, "_GridIndicesBufferRead", _nearestNeighbor.GridIndicesBuffer); + _solver.SetBuffer(kernelID, "_ParticleCollisionForce", _particleCollisionForce); + _solver.SetBuffer(kernelID, "_DebugBuffer", _debugger); + _solver.GetKernelThreadGroupSizes(kernelID, out uint x, out _, out _); + _solver.Dispatch(kernelID, (int)(particleBuffer.count / x), 1, 1); + + //ShaderDebug.DebugLog(_debugger, _particleNum); + //var result = new NearestNeighbor.Uint2[_particleNum]; + //_nearestNeighbor.GridIndicesBuffer.GetData(result); + //foreach (var eachResult in result) + //{ + // if (eachResult.x != 0) + // { + // if (eachResult.y != 0) + // { + // Debug.Log(eachResult.x + "\t" + eachResult.y); + // } + // } + //} + } + + private void CalculateObjectCollision(GraphicsBuffer particleBuffer, GraphicsBuffer objectBuffer) + { + var f = new ObjectCollisionForce[_objectCollisionForce.count]; + System.Array.Fill(f, new ObjectCollisionForce(Vector3.zero, Vector3.zero)); + _objectCollisionForce.SetData(f); + } + + private void CalculateTerrainCollision(GraphicsBuffer particleBuffer, GraphicsBuffer terrainBuffer) + { + int kernelID = _solver.FindKernel("TerrainCollisionCS"); + _solver.SetBuffer(kernelID, "_TerrainBuffer", terrainBuffer); + _solver.SetBuffer(kernelID, "_TerrainCollisionForce", _terrainCollisionForce); + _solver.SetBuffer(kernelID, "_ParticleBufferRead", particleBuffer); + _solver.GetKernelThreadGroupSizes(kernelID, out uint x, out _, out _); + _solver.Dispatch(kernelID, (int)(particleBuffer.count / x), 1, 1); + (particleBuffer, _tmpBufferWrite) = (_tmpBufferWrite, particleBuffer); + var f = new TerrainCollisionForce[particleBuffer.count]; + System.Array.Fill(f, new TerrainCollisionForce(Vector3.zero, Vector3.zero)); + _terrainCollisionForce.SetData(f); + } + + private void Integrate(ref GraphicsBuffer particleBuffer, GraphicsBuffer terrain) + { + int kernelID = _solver.FindKernel("IntegrateCS"); + _solver.SetFloat("_TimeStep", Mathf.Min(0.05f, Time.deltaTime)); + //_solver.SetFloat("_TimeStep", Time.deltaTime); + _solver.SetBuffer(kernelID, "_ParticleCollisionForce", _particleCollisionForce); + _solver.SetBuffer(kernelID, "_ObjectCollisionForce", _objectCollisionForce); + _solver.SetBuffer(kernelID, "_TerrainCollisionForce", _terrainCollisionForce); + _solver.SetBuffer(kernelID, "_ParticleBufferRead", particleBuffer); + _solver.SetBuffer(kernelID, "_ParticleBufferWrite", _tmpBufferWrite); + _solver.SetBuffer(kernelID, "_TerrainBuffer", terrain); + _solver.GetKernelThreadGroupSizes(kernelID, out uint x, out _, out _); + _solver.Dispatch(kernelID, (int)(particleBuffer.count / x), 1, 1); + (particleBuffer, _tmpBufferWrite) = (_tmpBufferWrite, particleBuffer); + } + + public void Release() + { + _particleCollisionForce.Release(); + _terrainCollisionForce.Release(); + _objectCollisionForce.Release(); + _tmpBufferWrite.Release(); + _nearestNeighbor.Release(); + _debugger.Release(); + } + } +} diff --git a/Packages/ParticleSimulator/Runtime/Scripts/Solver/SandPhysicsSolver.cs.meta b/Packages/ParticleSimulator/Runtime/Scripts/Solver/SandPhysicsSolver.cs.meta new file mode 100644 index 0000000..2f1866d --- /dev/null +++ b/Packages/ParticleSimulator/Runtime/Scripts/Solver/SandPhysicsSolver.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 1d1aaf5e0635a224583bab24c88f8575 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/ParticleSimulator/Runtime/Scripts/Utils.meta b/Packages/ParticleSimulator/Runtime/Scripts/Utils.meta new file mode 100644 index 0000000..c54badf --- /dev/null +++ b/Packages/ParticleSimulator/Runtime/Scripts/Utils.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f1d3e90ffd10f1448b7ce6b09ede0c57 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/ParticleSimulator/Runtime/Scripts/Utils/BitonicSort.meta b/Packages/ParticleSimulator/Runtime/Scripts/Utils/BitonicSort.meta new file mode 100644 index 0000000..c24b2c5 --- /dev/null +++ b/Packages/ParticleSimulator/Runtime/Scripts/Utils/BitonicSort.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 67a5e3f93da879e4894b73429bf5231e +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/ParticleSimulator/Runtime/Scripts/Utils/BitonicSort/BitonicSort.cs b/Packages/ParticleSimulator/Runtime/Scripts/Utils/BitonicSort/BitonicSort.cs new file mode 100644 index 0000000..444848a --- /dev/null +++ b/Packages/ParticleSimulator/Runtime/Scripts/Utils/BitonicSort/BitonicSort.cs @@ -0,0 +1,73 @@ +using UnityEngine; + +namespace ParticleSimulator.SortTool +{ + internal class BitonicSort + { + + protected static readonly uint BITONIC_BLOCK_SIZE = 512; + protected static readonly uint TRANSPOSE_BLOCK_SIZE = 16; + + protected ComputeShader BitonicCS; + + public BitonicSort() + { + this.BitonicCS = (ComputeShader)Resources.Load("BitonicSortCS"); + } + + public void Sort(ref GraphicsBuffer inBuffer, ref GraphicsBuffer tempBuffer) + { + ComputeShader sortCS = BitonicCS; + + int KERNEL_ID_BITONICSORT = sortCS.FindKernel("BitonicSort"); + int KERNEL_ID_TRANSPOSE = sortCS.FindKernel("MatrixTranspose"); + + uint NUM_ELEMENTS = (uint)inBuffer.count; + uint MATRIX_WIDTH = BITONIC_BLOCK_SIZE; + uint MATRIX_HEIGHT = (uint)NUM_ELEMENTS / BITONIC_BLOCK_SIZE; + + for (uint level = 2; level <= BITONIC_BLOCK_SIZE; level <<= 1) + { + SetGPUSortConstants(sortCS, level, level, MATRIX_HEIGHT, MATRIX_WIDTH); + + // Sort the row data + sortCS.SetBuffer(KERNEL_ID_BITONICSORT, "Data", inBuffer); + sortCS.Dispatch(KERNEL_ID_BITONICSORT, (int)(NUM_ELEMENTS / BITONIC_BLOCK_SIZE), 1, 1); + } + + // Then sort the rows and columns for the levels > than the block size + // Transpose. Sort the Columns. Transpose. Sort the Rows. + for (uint level = (BITONIC_BLOCK_SIZE << 1); level <= NUM_ELEMENTS; level <<= 1) + { + // Transpose the data from buffer 1 into buffer 2 + SetGPUSortConstants(sortCS, level / BITONIC_BLOCK_SIZE, (level & ~NUM_ELEMENTS) / BITONIC_BLOCK_SIZE, MATRIX_WIDTH, MATRIX_HEIGHT); + sortCS.SetBuffer(KERNEL_ID_TRANSPOSE, "Input", inBuffer); + sortCS.SetBuffer(KERNEL_ID_TRANSPOSE, "Data", tempBuffer); + sortCS.Dispatch(KERNEL_ID_TRANSPOSE, (int)(MATRIX_WIDTH / TRANSPOSE_BLOCK_SIZE), (int)(MATRIX_HEIGHT / TRANSPOSE_BLOCK_SIZE), 1); + + // Sort the transposed column data + sortCS.SetBuffer(KERNEL_ID_BITONICSORT, "Data", tempBuffer); + sortCS.Dispatch(KERNEL_ID_BITONICSORT, (int)(NUM_ELEMENTS / BITONIC_BLOCK_SIZE), 1, 1); + + // Transpose the data from buffer 2 back into buffer 1 + SetGPUSortConstants(sortCS, BITONIC_BLOCK_SIZE, level, MATRIX_HEIGHT, MATRIX_WIDTH); + sortCS.SetBuffer(KERNEL_ID_TRANSPOSE, "Input", tempBuffer); + sortCS.SetBuffer(KERNEL_ID_TRANSPOSE, "Data", inBuffer); + sortCS.Dispatch(KERNEL_ID_TRANSPOSE, (int)(MATRIX_HEIGHT / TRANSPOSE_BLOCK_SIZE), (int)(MATRIX_WIDTH / TRANSPOSE_BLOCK_SIZE), 1); + + // Sort the row data + sortCS.SetBuffer(KERNEL_ID_BITONICSORT, "Data", inBuffer); + sortCS.Dispatch(KERNEL_ID_BITONICSORT, (int)(NUM_ELEMENTS / BITONIC_BLOCK_SIZE), 1, 1); + } + } + + void SetGPUSortConstants(ComputeShader cs, uint level, uint levelMask, uint width, uint height) + { + cs.SetInt("_Level", (int)level); + cs.SetInt("_LevelMask", (int)levelMask); + cs.SetInt("_Width", (int)width); + cs.SetInt("_Height", (int)height); + } + + } +} \ No newline at end of file diff --git a/Packages/ParticleSimulator/Runtime/Scripts/Utils/BitonicSort/BitonicSort.cs.meta b/Packages/ParticleSimulator/Runtime/Scripts/Utils/BitonicSort/BitonicSort.cs.meta new file mode 100644 index 0000000..fafa1e2 --- /dev/null +++ b/Packages/ParticleSimulator/Runtime/Scripts/Utils/BitonicSort/BitonicSort.cs.meta @@ -0,0 +1,13 @@ +fileFormatVersion: 2 +guid: bbf53f74e1656654d967f18372aa9676 +timeCreated: 1522516694 +licenseType: Free +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/ParticleSimulator/Runtime/Scripts/Utils/NearestNeighbor.meta b/Packages/ParticleSimulator/Runtime/Scripts/Utils/NearestNeighbor.meta new file mode 100644 index 0000000..4dfc5b2 --- /dev/null +++ b/Packages/ParticleSimulator/Runtime/Scripts/Utils/NearestNeighbor.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ec0b1c526162f2245975dd0f092f264d +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/ParticleSimulator/Runtime/Scripts/Utils/NearestNeighbor/GridSearch.cs b/Packages/ParticleSimulator/Runtime/Scripts/Utils/NearestNeighbor/GridSearch.cs new file mode 100644 index 0000000..173504b --- /dev/null +++ b/Packages/ParticleSimulator/Runtime/Scripts/Utils/NearestNeighbor/GridSearch.cs @@ -0,0 +1,80 @@ +using System.Runtime.InteropServices; +using UnityEngine; + +namespace ParticleSimulator.NearestNeighbor +{ + internal struct Uint2 + { + public uint x; + public uint y; + } + + internal class GridSearch : GridSearchBase where T : struct + { + /// + /// + /// + /// + /// + /// + public GridSearch(int objNum, Vector3 gridSize, float gridCellSize) : base(objNum) + { + this.gridCenter = gridSize / 2; + this.gridResolution = gridSize / gridCellSize; + this.cellSize = gridCellSize; + this.totalCellNum = (int)(gridResolution.x * gridResolution.y * gridResolution.z); + + this.GridSearchCS = (ComputeShader)Resources.Load("GridSearch", typeof(ComputeShader)); + + InitializeBuffer(objNum); + + Debug.Log("=== Instantiated Grid Sort === \n" + + "Size of Grid Search Area : \t" + gridSize + "\n" + + "Total number of cells in the grid : \t" + this.totalCellNum + "\n" + + "Number of grid cells for each axis : \t" + this.gridResolution + "\n" + + "Size of each grid cells : \t" + this.cellSize); + } + + protected override void InitializeBuffer(int objectNum) + { + gridBuffer = new GraphicsBuffer(GraphicsBuffer.Target.Structured, objectNum, Marshal.SizeOf(typeof(Uint2))); + gridPingPongBuffer = new GraphicsBuffer(GraphicsBuffer.Target.Structured, objectNum, Marshal.SizeOf(typeof(Uint2))); + gridIndicesBuffer = new GraphicsBuffer(GraphicsBuffer.Target.Structured, totalCellNum, Marshal.SizeOf(typeof(Uint2))); + sortedObjectsBufferOutput = new GraphicsBuffer(GraphicsBuffer.Target.Structured, objectNum, Marshal.SizeOf(typeof(T))); + } + + protected override void SetCSVariables() + { + GridSearchCS.SetVector("_GridCenter", gridCenter); + GridSearchCS.SetFloat("_GridCellSize", cellSize); + GridSearchCS.SetVector("_GridResolution", gridResolution); + } + + internal override void SetCSVariables(ComputeShader shader) + { + shader.SetVector("_GridCenter", gridCenter); + shader.SetFloat("_GridCellSize", cellSize); + shader.SetVector("_GridResolution", gridResolution); + + Debug.Log("=== Initialized GridSearch Buffer === \n" + + "_GridCenter : \t" + this.gridCenter + "\n" + + "_GridCellSize : \t" + this.cellSize + "\n" + + "_GridResolution : \t" + this.gridResolution); + } + + internal void ShowGridOnGizmo(Vector3 gridCenter, float cellSize, Vector3Int gridResolution, Color gridColor) + { + Gizmos.color = gridColor; + Gizmos.DrawWireCube(gridCenter, gridResolution); + } + + internal void UpdateGridVariables(Vector3 center, Vector3 size, Vector3 resolution) + { + this.gridCenter = center; + this.cellSize = size.x / resolution.x; + this.gridResolution = resolution; + SetCSVariables(); + } + + } +} diff --git a/Packages/ParticleSimulator/Runtime/Scripts/Utils/NearestNeighbor/GridSearch.cs.meta b/Packages/ParticleSimulator/Runtime/Scripts/Utils/NearestNeighbor/GridSearch.cs.meta new file mode 100644 index 0000000..6aa5523 --- /dev/null +++ b/Packages/ParticleSimulator/Runtime/Scripts/Utils/NearestNeighbor/GridSearch.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 5d149530ea9e7a6499920a329448e3db +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/ParticleSimulator/Runtime/Scripts/Utils/NearestNeighbor/GridSearchBase.cs b/Packages/ParticleSimulator/Runtime/Scripts/Utils/NearestNeighbor/GridSearchBase.cs new file mode 100644 index 0000000..d83ff6e --- /dev/null +++ b/Packages/ParticleSimulator/Runtime/Scripts/Utils/NearestNeighbor/GridSearchBase.cs @@ -0,0 +1,89 @@ +using UnityEngine; + +namespace ParticleSimulator.NearestNeighbor +{ + internal abstract class GridSearchBase + { + protected ComputeShader GridSearchCS; + protected GraphicsBuffer gridBuffer; + protected GraphicsBuffer gridPingPongBuffer; + protected GraphicsBuffer gridIndicesBuffer; + protected GraphicsBuffer sortedObjectsBufferOutput; + + protected int numObjects; + protected int threadGroupSize; + protected static readonly int SIMULATION_BLOCK_SIZE_FOR_GRID = 32; + + protected int totalCellNum; + protected float cellSize; + protected Vector3 gridResolution; + protected Vector3 gridCenter; + + private SortTool.BitonicSort _bitonicSort = new SortTool.BitonicSort(); + + public GridSearchBase(int objNum) + { + this.numObjects = objNum; + this.threadGroupSize = objNum / SIMULATION_BLOCK_SIZE_FOR_GRID; + } + + #region Accessor + internal GraphicsBuffer GridIndicesBuffer => gridIndicesBuffer; + internal Vector3 GridCenter { get => gridCenter; set => gridCenter = value; } + internal float CellSize => cellSize; + internal Vector3 GridResolution => gridResolution; + #endregion + + public void Release() + { + gridBuffer.Release(); + gridIndicesBuffer.Release(); + gridPingPongBuffer.Release(); + sortedObjectsBufferOutput.Release(); + } + + public void GridSort(ref GraphicsBuffer objectsBufferInput) + { + GridSearchCS.SetInt("_ParticleNum", objectsBufferInput.count); + SetCSVariables(); + + int kernelID = -1; + + #region GridOptimization + // Build Grid + kernelID = GridSearchCS.FindKernel("BuildGridCS"); + GridSearchCS.SetBuffer(kernelID, "_ParticleBufferRead", objectsBufferInput); + GridSearchCS.SetBuffer(kernelID, "_GridBufferWrite", gridBuffer); + GridSearchCS.Dispatch(kernelID, threadGroupSize, 1, 1); + + // Sort Grid + _bitonicSort.Sort(ref gridBuffer, ref gridPingPongBuffer); + + // Build Grid Indices + kernelID = GridSearchCS.FindKernel("ClearGridIndicesCS"); + GridSearchCS.SetBuffer(kernelID, "_GridIndicesBufferWrite", gridIndicesBuffer); + GridSearchCS.Dispatch(kernelID, (int)(totalCellNum / SIMULATION_BLOCK_SIZE_FOR_GRID), 1, 1); + + kernelID = GridSearchCS.FindKernel("BuildGridIndicesCS"); + GridSearchCS.SetBuffer(kernelID, "_GridBufferRead", gridBuffer); + GridSearchCS.SetBuffer(kernelID, "_GridIndicesBufferWrite", gridIndicesBuffer); + GridSearchCS.Dispatch(kernelID, threadGroupSize, 1, 1); + + // Rearrange + kernelID = GridSearchCS.FindKernel("RearrangeParticlesCS"); + GridSearchCS.SetBuffer(kernelID, "_GridBufferRead", gridBuffer); + GridSearchCS.SetBuffer(kernelID, "_ParticleBufferRead", objectsBufferInput); + GridSearchCS.SetBuffer(kernelID, "_ParticleBufferWrite", sortedObjectsBufferOutput); + GridSearchCS.Dispatch(kernelID, threadGroupSize, 1, 1); + #endregion GridOptimization + + (sortedObjectsBufferOutput, objectsBufferInput) = (objectsBufferInput, sortedObjectsBufferOutput); + } + + protected abstract void InitializeBuffer(int objectNum); + + protected abstract void SetCSVariables(); + + internal abstract void SetCSVariables(ComputeShader otherShader); + } +} diff --git a/Packages/ParticleSimulator/Runtime/Scripts/Utils/NearestNeighbor/GridSearchBase.cs.meta b/Packages/ParticleSimulator/Runtime/Scripts/Utils/NearestNeighbor/GridSearchBase.cs.meta new file mode 100644 index 0000000..925c17d --- /dev/null +++ b/Packages/ParticleSimulator/Runtime/Scripts/Utils/NearestNeighbor/GridSearchBase.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: acd14d9edd714be4bbda23613491bb4f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/ParticleSimulator/Runtime/Shaders.meta b/Packages/ParticleSimulator/Runtime/Shaders.meta new file mode 100644 index 0000000..0494bdf --- /dev/null +++ b/Packages/ParticleSimulator/Runtime/Shaders.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0b0bde2b6278aba46948deae38d6b9bb +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/ParticleSimulator/Runtime/Shaders/VelocityColor.shader b/Packages/ParticleSimulator/Runtime/Shaders/VelocityColor.shader new file mode 100644 index 0000000..a71bb6d --- /dev/null +++ b/Packages/ParticleSimulator/Runtime/Shaders/VelocityColor.shader @@ -0,0 +1,110 @@ +Shader "Custom/VelocityColor" { + Properties { + _MainTex("Texture", 2D) = "black" {} + _ParticleRadius("ParticleRadius", Float) = 0.05 + _MaxVelocity("MaxVelocity", Float) = 0.05 + } + + CGINCLUDE + #include "UnityCG.cginc" + + sampler2D _MainTex; + float4 _MainTex_ST; + + float _ParticleRadius; + float _MaxVelocity; + float4x4 _InvViewMatrix; + + struct v2g { + float4 pos : SV_POSITION; + float4 color : COLOR; + }; + + struct g2f { + float4 pos : POSITION; + float2 tex : TEXCOORD0; + float4 color : COLOR; + }; + + struct ParticleData { + float3 position; + float3 velocity; + float4 orientation; + float3 angularVelocity; + }; + + StructuredBuffer _ParticleBuffer; + + // -------------------------------------------------------------------- + // Vertex Shader + // -------------------------------------------------------------------- + v2g vert(uint id : SV_VertexID) { + + v2g o = (v2g)0; + o.pos = float4(_ParticleBuffer[id].position.xyz, 1); + + float vel = length(_ParticleBuffer[id].velocity.xyz); + float b = -vel / _MaxVelocity + 1.0; + float r = vel / _MaxVelocity; + o.color = float4(r, 0, b, 1); + return o; + } + + // -------------------------------------------------------------------- + // Geometry Shader + // -------------------------------------------------------------------- + [maxvertexcount(4)] + void geom(point v2g IN[1], inout TriangleStream triStream) { + + float size = _ParticleRadius * 2; + float halfS = _ParticleRadius; + + g2f pIn = (g2f)0; + + for (int x = 0; x < 2; x++) { + for (int y = 0; y < 2; y++) { + float4x4 billboardMatrix = UNITY_MATRIX_V; + billboardMatrix._m03 = billboardMatrix._m13 = billboardMatrix._m23 = billboardMatrix._m33 = 0; + + float2 uv = float2(x, y); + + pIn.pos = IN[0].pos + mul(float4((uv * 2 - float2(1, 1)) * halfS, 0, 1), billboardMatrix); + + pIn.pos = mul(UNITY_MATRIX_VP, pIn.pos); + + pIn.color = IN[0].color; + pIn.tex = uv; + + triStream.Append(pIn); + } + } + triStream.RestartStrip(); + + } + + // -------------------------------------------------------------------- + // Fragment Shader + // -------------------------------------------------------------------- + fixed4 frag(g2f input) : SV_Target { + return tex2D(_MainTex, input.tex) * input.color; + } + + ENDCG + + SubShader { + Tags{ "RenderType" = "Transparent" "RenderType" = "Transparent" } + LOD 300 + + ZWrite Off + Blend SrcAlpha OneMinusSrcAlpha + + Pass { + CGPROGRAM + #pragma target 5.0 + #pragma vertex vert + #pragma geometry geom + #pragma fragment frag + ENDCG + } + } +} \ No newline at end of file diff --git a/Packages/ParticleSimulator/Runtime/Shaders/VelocityColor.shader.meta b/Packages/ParticleSimulator/Runtime/Shaders/VelocityColor.shader.meta new file mode 100644 index 0000000..c934903 --- /dev/null +++ b/Packages/ParticleSimulator/Runtime/Shaders/VelocityColor.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: e10d9ec80b3073948a321515a16265f2 +timeCreated: 1500372409 +licenseType: Pro +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/ParticleSimulator/Runtime/Tests.meta b/Packages/ParticleSimulator/Runtime/Tests.meta new file mode 100644 index 0000000..8446173 --- /dev/null +++ b/Packages/ParticleSimulator/Runtime/Tests.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 20216b9eb78101e42ad234730abea8ba +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/ParticleSimulator/Runtime/Textures.meta b/Packages/ParticleSimulator/Runtime/Textures.meta new file mode 100644 index 0000000..5c90480 --- /dev/null +++ b/Packages/ParticleSimulator/Runtime/Textures.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c072c3d9f3551a249bb540f51c204bd1 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/ParticleSimulator/Runtime/Textures/particle.png b/Packages/ParticleSimulator/Runtime/Textures/particle.png new file mode 100644 index 0000000..dba4122 Binary files /dev/null and b/Packages/ParticleSimulator/Runtime/Textures/particle.png differ diff --git a/Packages/ParticleSimulator/Runtime/Textures/particle.png.meta b/Packages/ParticleSimulator/Runtime/Textures/particle.png.meta new file mode 100644 index 0000000..df17e83 --- /dev/null +++ b/Packages/ParticleSimulator/Runtime/Textures/particle.png.meta @@ -0,0 +1,76 @@ +fileFormatVersion: 2 +guid: d3518248f95cddd43b655e7aa1949a18 +timeCreated: 1503371835 +licenseType: Pro +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Standalone + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/ParticleSimulator/manifest.json b/Packages/ParticleSimulator/manifest.json deleted file mode 100644 index 44c2606..0000000 --- a/Packages/ParticleSimulator/manifest.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "dependencies": { - "com.unity.particlesimulator": "0.0.1" - } -} diff --git a/Packages/ParticleSimulator/package.json b/Packages/ParticleSimulator/package.json index 4e2096b..ab9cbee 100644 --- a/Packages/ParticleSimulator/package.json +++ b/Packages/ParticleSimulator/package.json @@ -1,7 +1,20 @@ { "name": "com.qoopen.particlesimulator", - "version": "0.0.3", "displayName": "ParticleSimulator", + "version": "0.1.0", + "unity": "2021.3", "description": "This package simulates the dynamics of sand-like particles.", - "unity": "2021.3" + "dependencies": { + "com.unity.mathematics": "1.2.6", + "com.unity.visualeffectgraph": "12.1.8" + }, + "keywords": [ + "unity", + "simulator" + ], + "author": { + "name": "Qoopen", + "email": "ku_engineer_wa@yahoo.com", + "url": "https://github.com/qoopen0815" + } } \ No newline at end of file diff --git a/Packages/manifest.json b/Packages/manifest.json index 4335978..2f9b17b 100644 --- a/Packages/manifest.json +++ b/Packages/manifest.json @@ -9,6 +9,7 @@ "com.unity.textmeshpro": "3.0.6", "com.unity.timeline": "1.6.4", "com.unity.ugui": "1.0.0", + "com.unity.visualeffectgraph": "12.1.8", "com.unity.visualscripting": "1.7.8", "com.unity.modules.ai": "1.0.0", "com.unity.modules.androidjni": "1.0.0", diff --git a/Packages/packages-lock.json b/Packages/packages-lock.json index 694a626..b21957f 100644 --- a/Packages/packages-lock.json +++ b/Packages/packages-lock.json @@ -4,7 +4,10 @@ "version": "file:ParticleSimulator", "depth": 0, "source": "embedded", - "dependencies": {} + "dependencies": { + "com.unity.mathematics": "1.2.6", + "com.unity.visualeffectgraph": "12.1.8" + } }, "com.unity.burst": { "version": "1.8.2", @@ -159,6 +162,15 @@ "com.unity.modules.imgui": "1.0.0" } }, + "com.unity.visualeffectgraph": { + "version": "12.1.8", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.shadergraph": "12.1.8", + "com.unity.render-pipelines.core": "12.1.8" + } + }, "com.unity.visualscripting": { "version": "1.7.8", "depth": 0, diff --git a/ProjectSettings/BurstAotSettings_StandaloneWindows.json b/ProjectSettings/BurstAotSettings_StandaloneWindows.json index 2144f6d..8e6a74e 100644 --- a/ProjectSettings/BurstAotSettings_StandaloneWindows.json +++ b/ProjectSettings/BurstAotSettings_StandaloneWindows.json @@ -1,16 +1,17 @@ { "MonoBehaviour": { - "Version": 3, + "Version": 4, "EnableBurstCompilation": true, "EnableOptimisations": true, "EnableSafetyChecks": false, "EnableDebugInAllBuilds": false, - "UsePlatformSDKLinker": false, + "EnableArmv9SecurityFeatures": false, "CpuMinTargetX32": 0, "CpuMaxTargetX32": 0, "CpuMinTargetX64": 0, "CpuMaxTargetX64": 0, "CpuTargetsX32": 6, - "CpuTargetsX64": 72 + "CpuTargetsX64": 72, + "OptimizeFor": 0 } } diff --git a/ProjectSettings/CommonBurstAotSettings.json b/ProjectSettings/CommonBurstAotSettings.json index 3dffdba..0293daf 100644 --- a/ProjectSettings/CommonBurstAotSettings.json +++ b/ProjectSettings/CommonBurstAotSettings.json @@ -1,6 +1,6 @@ { "MonoBehaviour": { - "Version": 3, + "Version": 4, "DisabledWarnings": "" } } diff --git a/ProjectSettings/EditorBuildSettings.asset b/ProjectSettings/EditorBuildSettings.asset index d0b59f6..ea88784 100644 --- a/ProjectSettings/EditorBuildSettings.asset +++ b/ProjectSettings/EditorBuildSettings.asset @@ -6,6 +6,6 @@ EditorBuildSettings: serializedVersion: 2 m_Scenes: - enabled: 1 - path: Assets/ParticleSimulator/Scenes/SampleScene.unity + path: Assets/Scenes/SampleScene.unity guid: 99c9720ab356a0642a771bea13969a05 m_configObjects: {} diff --git a/ProjectSettings/ProjectSettings.asset b/ProjectSettings/ProjectSettings.asset index aa6589e..096a2b7 100644 --- a/ProjectSettings/ProjectSettings.asset +++ b/ProjectSettings/ProjectSettings.asset @@ -99,7 +99,7 @@ PlayerSettings: xboxEnableFitness: 0 visibleInBackground: 1 allowFullscreenSwitch: 1 - fullscreenMode: 1 + fullscreenMode: 3 xboxSpeechDB: 0 xboxEnableHeadOrientation: 0 xboxEnableGuest: 0 @@ -508,6 +508,9 @@ PlayerSettings: - m_BuildTarget: AndroidPlayer m_APIs: 0b00000008000000 m_Automatic: 0 + - m_BuildTarget: WindowsStandaloneSupport + m_APIs: 0200000012000000 + m_Automatic: 0 m_BuildTargetVRSettings: [] m_DefaultShaderChunkSizeInMB: 16 m_DefaultShaderChunkCount: 0 diff --git a/ProjectSettings/VFXManager.asset b/ProjectSettings/VFXManager.asset index 3a95c98..b004c5e 100644 --- a/ProjectSettings/VFXManager.asset +++ b/ProjectSettings/VFXManager.asset @@ -3,10 +3,13 @@ --- !u!937362698 &1 VFXManager: m_ObjectHideFlags: 0 - m_IndirectShader: {fileID: 0} - m_CopyBufferShader: {fileID: 0} - m_SortShader: {fileID: 0} - m_StripUpdateShader: {fileID: 0} + m_IndirectShader: {fileID: 7200000, guid: 84a17cfa13e40ae4082ef42714f0a81c, type: 3} + m_CopyBufferShader: {fileID: 7200000, guid: 23c51f21a3503f6428b527b01f8a2f4e, type: 3} + m_SortShader: {fileID: 7200000, guid: ea257ca3cfb12a642a5025e612af6b2a, type: 3} + m_StripUpdateShader: {fileID: 7200000, guid: 8fa6c4009fe2a4d4486c62736fc30ad8, type: 3} m_RenderPipeSettingsPath: m_FixedTimeStep: 0.016666668 m_MaxDeltaTime: 0.05 + m_CompiledVersion: 4 + m_RuntimeVersion: 22 + m_RuntimeResources: {fileID: 11400000, guid: bc10b42afe3813544bffd38ae2cd893d, type: 2} diff --git a/UserSettings/Layouts/CurrentMaximizeLayout.dwlt b/UserSettings/Layouts/CurrentMaximizeLayout.dwlt new file mode 100644 index 0000000..2a63ce6 --- /dev/null +++ b/UserSettings/Layouts/CurrentMaximizeLayout.dwlt @@ -0,0 +1,2015 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &1 +MonoBehaviour: + m_ObjectHideFlags: 52 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 1 + m_Script: {fileID: 12010, guid: 0000000000000000e000000000000000, type: 0} + m_Name: + m_EditorClassIdentifier: + m_Children: + - {fileID: 3} + - {fileID: 17} + m_Position: + serializedVersion: 2 + x: 0 + y: 30 + width: 1280 + height: 579.3333 + m_MinSize: {x: 400, y: 200} + m_MaxSize: {x: 32384, y: 16192} + vertical: 0 + controlID: 499 +--- !u!114 &2 +MonoBehaviour: + m_ObjectHideFlags: 52 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 12070, guid: 0000000000000000e000000000000000, type: 0} + m_Name: + m_EditorClassIdentifier: + m_MinSize: {x: 880, y: 216} + m_MaxSize: {x: 4000, y: 4000} + m_TitleContent: + m_Text: Profiler + m_Image: {fileID: 2169972056302973491, guid: 0000000000000000d000000000000000, + type: 0} + m_Tooltip: + m_Pos: + serializedVersion: 2 + x: 349.33334 + y: 408.6667 + width: 700 + height: 222.33331 + m_ViewDataDictionary: {fileID: 0} + m_OverlayCanvas: + m_LastAppliedPresetName: Default + m_SaveData: [] + m_Recording: 1 + m_ActiveNativePlatformSupportModuleName: + m_AllModules: + - rid: 8298289268991983616 + - rid: 8298289268991983617 + - rid: 8298289268991983618 + - rid: 8298289268991983619 + - rid: 8298289268991983620 + - rid: 8298289268991983621 + - rid: 8298289268991983622 + - rid: 8298289268991983623 + - rid: 8298289268991983624 + - rid: 8298289268991983625 + - rid: 8298289268991983626 + - rid: 8298289268991983627 + - rid: 8298289268991983628 + - rid: 8298289268991983629 + - rid: 8298289268991983630 + - rid: 8298289268991983631 + m_CallstackRecordMode: 1 + m_ClearOnPlay: 0 + references: + version: 2 + RefIds: + - rid: 8298289268991983616 + type: {class: CPUProfilerModule, ns: UnityEditorInternal.Profiling, asm: UnityEditor.CoreModule} + data: + m_Identifier: UnityEditorInternal.Profiling.CPUProfilerModule, UnityEditor.CoreModule, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_PaneScroll: {x: 0, y: 0} + m_ViewType: 0 + updateViewLive: 0 + m_CurrentFrameIndex: 3450 + m_HierarchyOverruledThreadFromSelection: 0 + m_ProfilerViewFilteringOptions: 1 + m_FrameDataHierarchyView: + m_Serialized: 1 + m_TreeViewState: + scrollPos: {x: 0, y: 0} + m_SelectedIDs: + m_LastClickedID: 0 + m_ExpandedIDs: + m_RenameOverlay: + m_UserAcceptedRename: 0 + m_Name: + m_OriginalName: + m_EditFieldRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 0 + height: 0 + m_UserData: 0 + m_IsWaitingForDelay: 0 + m_IsRenaming: 0 + m_OriginalEventType: 11 + m_IsRenamingFilename: 0 + m_ClientGUIView: {fileID: 0} + m_SearchString: + m_MultiColumnHeaderState: + m_Columns: + - width: 200 + sortedAscending: 1 + headerContent: + m_Text: Overview + m_Image: {fileID: 0} + m_Tooltip: + contextMenuText: + headerTextAlignment: 0 + sortingArrowAlignment: 2 + minWidth: 200 + maxWidth: 1000000 + autoResize: 1 + allowToggleVisibility: 0 + canSort: 1 + userData: 0 + - width: 80 + sortedAscending: 0 + headerContent: + m_Text: Total + m_Image: {fileID: 0} + m_Tooltip: + contextMenuText: + headerTextAlignment: 0 + sortingArrowAlignment: 2 + minWidth: 50 + maxWidth: 1000000 + autoResize: 0 + allowToggleVisibility: 1 + canSort: 1 + userData: 0 + - width: 80 + sortedAscending: 0 + headerContent: + m_Text: Self + m_Image: {fileID: 0} + m_Tooltip: + contextMenuText: + headerTextAlignment: 0 + sortingArrowAlignment: 2 + minWidth: 50 + maxWidth: 1000000 + autoResize: 0 + allowToggleVisibility: 1 + canSort: 1 + userData: 0 + - width: 80 + sortedAscending: 0 + headerContent: + m_Text: Calls + m_Image: {fileID: 0} + m_Tooltip: + contextMenuText: + headerTextAlignment: 0 + sortingArrowAlignment: 2 + minWidth: 50 + maxWidth: 1000000 + autoResize: 0 + allowToggleVisibility: 1 + canSort: 1 + userData: 0 + - width: 80 + sortedAscending: 0 + headerContent: + m_Text: GC Alloc + m_Image: {fileID: 0} + m_Tooltip: + contextMenuText: + headerTextAlignment: 0 + sortingArrowAlignment: 2 + minWidth: 50 + maxWidth: 1000000 + autoResize: 0 + allowToggleVisibility: 1 + canSort: 1 + userData: 0 + - width: 80 + sortedAscending: 0 + headerContent: + m_Text: Time ms + m_Image: {fileID: 0} + m_Tooltip: + contextMenuText: + headerTextAlignment: 0 + sortingArrowAlignment: 2 + minWidth: 50 + maxWidth: 1000000 + autoResize: 0 + allowToggleVisibility: 1 + canSort: 1 + userData: 0 + - width: 80 + sortedAscending: 0 + headerContent: + m_Text: Self ms + m_Image: {fileID: 0} + m_Tooltip: + contextMenuText: + headerTextAlignment: 0 + sortingArrowAlignment: 2 + minWidth: 50 + maxWidth: 1000000 + autoResize: 0 + allowToggleVisibility: 1 + canSort: 1 + userData: 0 + - width: 25 + sortedAscending: 0 + headerContent: + m_Text: + m_Image: {fileID: -5161429177145976760, guid: 0000000000000000d000000000000000, + type: 0} + m_Tooltip: Warnings + contextMenuText: + headerTextAlignment: 0 + sortingArrowAlignment: 2 + minWidth: 25 + maxWidth: 25 + autoResize: 0 + allowToggleVisibility: 1 + canSort: 1 + userData: 0 + m_VisibleColumns: 0000000001000000020000000300000004000000050000000600000007000000 + m_SortedColumns: 05000000 + m_ThreadIndexInThreadNames: 0 + m_DetailedViewType: 0 + m_DetailedViewSpliterState: + ID: 0 + splitterInitialOffset: 0 + currentActiveSplitter: -1 + realSizes: + - 0 + - 0 + relativeSizes: + - 0.7 + - 0.3 + minSizes: + - 450 + - 50 + maxSizes: + - 0 + - 0 + lastTotalSize: 0 + splitSize: 6 + xOffset: 0 + m_Version: 1 + oldRealSizes: + oldMinSizes: + oldMaxSizes: + oldSplitSize: 0 + m_DetailedObjectsView: + m_SelectedID: 0 + m_TreeViewState: + scrollPos: {x: 0, y: 0} + m_SelectedIDs: + m_LastClickedID: 0 + m_ExpandedIDs: + m_RenameOverlay: + m_UserAcceptedRename: 0 + m_Name: + m_OriginalName: + m_EditFieldRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 0 + height: 0 + m_UserData: 0 + m_IsWaitingForDelay: 0 + m_IsRenaming: 0 + m_OriginalEventType: 11 + m_IsRenamingFilename: 0 + m_ClientGUIView: {fileID: 0} + m_SearchString: + m_MultiColumnHeaderState: + m_Columns: [] + m_VisibleColumns: + m_SortedColumns: + m_VertSplit: + ID: 0 + splitterInitialOffset: 0 + currentActiveSplitter: 0 + realSizes: [] + relativeSizes: [] + minSizes: [] + maxSizes: [] + lastTotalSize: 0 + splitSize: 0 + xOffset: 0 + m_Version: 1 + oldRealSizes: + oldMinSizes: + oldMaxSizes: + oldSplitSize: 0 + m_DetailedCallsView: + m_SelectedID: -1 + m_VertSplit: + ID: 0 + splitterInitialOffset: 0 + currentActiveSplitter: 0 + realSizes: [] + relativeSizes: [] + minSizes: [] + maxSizes: [] + lastTotalSize: 0 + splitSize: 0 + xOffset: 0 + m_Version: 1 + oldRealSizes: + oldMinSizes: + oldMaxSizes: + oldSplitSize: 0 + m_CalleesTreeView: + m_ViewState: + scrollPos: {x: 0, y: 0} + m_SelectedIDs: + m_LastClickedID: 0 + m_ExpandedIDs: + m_RenameOverlay: + m_UserAcceptedRename: 0 + m_Name: + m_OriginalName: + m_EditFieldRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 0 + height: 0 + m_UserData: 0 + m_IsWaitingForDelay: 0 + m_IsRenaming: 0 + m_OriginalEventType: 11 + m_IsRenamingFilename: 0 + m_ClientGUIView: {fileID: 0} + m_SearchString: + m_ViewHeaderState: + m_Columns: + - width: 150 + sortedAscending: 1 + headerContent: + m_Text: Called From + m_Image: {fileID: 0} + m_Tooltip: 'Parents the selected function is called from + + + (Press + ''F'' for frame selection)' + contextMenuText: + headerTextAlignment: 0 + sortingArrowAlignment: 2 + minWidth: 150 + maxWidth: 1000000 + autoResize: 1 + allowToggleVisibility: 0 + canSort: 1 + userData: 0 + - width: 60 + sortedAscending: 0 + headerContent: + m_Text: Calls + m_Image: {fileID: 0} + m_Tooltip: Total number of calls in a selected frame + contextMenuText: + headerTextAlignment: 0 + sortingArrowAlignment: 2 + minWidth: 60 + maxWidth: 1000000 + autoResize: 0 + allowToggleVisibility: 1 + canSort: 1 + userData: 0 + - width: 60 + sortedAscending: 0 + headerContent: + m_Text: GC Alloc + m_Image: {fileID: 0} + m_Tooltip: + contextMenuText: + headerTextAlignment: 0 + sortingArrowAlignment: 2 + minWidth: 60 + maxWidth: 1000000 + autoResize: 0 + allowToggleVisibility: 1 + canSort: 1 + userData: 0 + - width: 60 + sortedAscending: 0 + headerContent: + m_Text: Time ms + m_Image: {fileID: 0} + m_Tooltip: Total time the selected function spends within a parent + contextMenuText: + headerTextAlignment: 0 + sortingArrowAlignment: 2 + minWidth: 60 + maxWidth: 1000000 + autoResize: 0 + allowToggleVisibility: 1 + canSort: 1 + userData: 0 + - width: 60 + sortedAscending: 0 + headerContent: + m_Text: Time % + m_Image: {fileID: 0} + m_Tooltip: Shows how often the selected function was called from + the parent call + contextMenuText: + headerTextAlignment: 0 + sortingArrowAlignment: 2 + minWidth: 60 + maxWidth: 1000000 + autoResize: 0 + allowToggleVisibility: 1 + canSort: 1 + userData: 0 + m_VisibleColumns: 0000000001000000020000000300000004000000 + m_SortedColumns: 03000000 + m_CallersTreeView: + m_ViewState: + scrollPos: {x: 0, y: 0} + m_SelectedIDs: + m_LastClickedID: 0 + m_ExpandedIDs: + m_RenameOverlay: + m_UserAcceptedRename: 0 + m_Name: + m_OriginalName: + m_EditFieldRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 0 + height: 0 + m_UserData: 0 + m_IsWaitingForDelay: 0 + m_IsRenaming: 0 + m_OriginalEventType: 11 + m_IsRenamingFilename: 0 + m_ClientGUIView: {fileID: 0} + m_SearchString: + m_ViewHeaderState: + m_Columns: + - width: 150 + sortedAscending: 1 + headerContent: + m_Text: Called From + m_Image: {fileID: 0} + m_Tooltip: 'Parents the selected function is called from + + + (Press + ''F'' for frame selection)' + contextMenuText: + headerTextAlignment: 0 + sortingArrowAlignment: 2 + minWidth: 150 + maxWidth: 1000000 + autoResize: 1 + allowToggleVisibility: 0 + canSort: 1 + userData: 0 + - width: 60 + sortedAscending: 0 + headerContent: + m_Text: Calls + m_Image: {fileID: 0} + m_Tooltip: Total number of calls in a selected frame + contextMenuText: + headerTextAlignment: 0 + sortingArrowAlignment: 2 + minWidth: 60 + maxWidth: 1000000 + autoResize: 0 + allowToggleVisibility: 1 + canSort: 1 + userData: 0 + - width: 60 + sortedAscending: 0 + headerContent: + m_Text: GC Alloc + m_Image: {fileID: 0} + m_Tooltip: + contextMenuText: + headerTextAlignment: 0 + sortingArrowAlignment: 2 + minWidth: 60 + maxWidth: 1000000 + autoResize: 0 + allowToggleVisibility: 1 + canSort: 1 + userData: 0 + - width: 60 + sortedAscending: 0 + headerContent: + m_Text: Time ms + m_Image: {fileID: 0} + m_Tooltip: Total time the selected function spends within a parent + contextMenuText: + headerTextAlignment: 0 + sortingArrowAlignment: 2 + minWidth: 60 + maxWidth: 1000000 + autoResize: 0 + allowToggleVisibility: 1 + canSort: 1 + userData: 0 + - width: 60 + sortedAscending: 0 + headerContent: + m_Text: Time % + m_Image: {fileID: 0} + m_Tooltip: Shows how often the selected function was called from + the parent call + contextMenuText: + headerTextAlignment: 0 + sortingArrowAlignment: 2 + minWidth: 60 + maxWidth: 1000000 + autoResize: 0 + allowToggleVisibility: 1 + canSort: 1 + userData: 0 + m_VisibleColumns: 0000000001000000020000000300000004000000 + m_SortedColumns: 03000000 + m_FullThreadName: Main Thread + m_ThreadName: Main Thread + k__BackingField: 16960 + k__BackingField: 0 + m_GroupName: + - rid: 8298289268991983617 + type: {class: GPUProfilerModule, ns: UnityEditorInternal.Profiling, asm: UnityEditor.CoreModule} + data: + m_Identifier: UnityEditorInternal.Profiling.GPUProfilerModule, UnityEditor.CoreModule, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_PaneScroll: {x: 0, y: 0} + m_ViewType: 0 + updateViewLive: 0 + m_CurrentFrameIndex: -1 + m_HierarchyOverruledThreadFromSelection: 0 + m_ProfilerViewFilteringOptions: 1 + m_FrameDataHierarchyView: + m_Serialized: 0 + m_TreeViewState: + scrollPos: {x: 0, y: 0} + m_SelectedIDs: + m_LastClickedID: 0 + m_ExpandedIDs: + m_RenameOverlay: + m_UserAcceptedRename: 0 + m_Name: + m_OriginalName: + m_EditFieldRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 0 + height: 0 + m_UserData: 0 + m_IsWaitingForDelay: 0 + m_IsRenaming: 0 + m_OriginalEventType: 11 + m_IsRenamingFilename: 0 + m_ClientGUIView: {fileID: 0} + m_SearchString: + m_MultiColumnHeaderState: + m_Columns: [] + m_VisibleColumns: + m_SortedColumns: + m_ThreadIndexInThreadNames: 0 + m_DetailedViewType: 0 + m_DetailedViewSpliterState: + ID: 0 + splitterInitialOffset: 0 + currentActiveSplitter: 0 + realSizes: [] + relativeSizes: [] + minSizes: [] + maxSizes: [] + lastTotalSize: 0 + splitSize: 0 + xOffset: 0 + m_Version: 1 + oldRealSizes: + oldMinSizes: + oldMaxSizes: + oldSplitSize: 0 + m_DetailedObjectsView: + m_SelectedID: 0 + m_TreeViewState: + scrollPos: {x: 0, y: 0} + m_SelectedIDs: + m_LastClickedID: 0 + m_ExpandedIDs: + m_RenameOverlay: + m_UserAcceptedRename: 0 + m_Name: + m_OriginalName: + m_EditFieldRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 0 + height: 0 + m_UserData: 0 + m_IsWaitingForDelay: 0 + m_IsRenaming: 0 + m_OriginalEventType: 11 + m_IsRenamingFilename: 0 + m_ClientGUIView: {fileID: 0} + m_SearchString: + m_MultiColumnHeaderState: + m_Columns: [] + m_VisibleColumns: + m_SortedColumns: + m_VertSplit: + ID: 0 + splitterInitialOffset: 0 + currentActiveSplitter: 0 + realSizes: [] + relativeSizes: [] + minSizes: [] + maxSizes: [] + lastTotalSize: 0 + splitSize: 0 + xOffset: 0 + m_Version: 1 + oldRealSizes: + oldMinSizes: + oldMaxSizes: + oldSplitSize: 0 + m_DetailedCallsView: + m_SelectedID: -1 + m_VertSplit: + ID: 0 + splitterInitialOffset: 0 + currentActiveSplitter: 0 + realSizes: [] + relativeSizes: [] + minSizes: [] + maxSizes: [] + lastTotalSize: 0 + splitSize: 0 + xOffset: 0 + m_Version: 1 + oldRealSizes: + oldMinSizes: + oldMaxSizes: + oldSplitSize: 0 + m_CalleesTreeView: + m_ViewState: + scrollPos: {x: 0, y: 0} + m_SelectedIDs: + m_LastClickedID: 0 + m_ExpandedIDs: + m_RenameOverlay: + m_UserAcceptedRename: 0 + m_Name: + m_OriginalName: + m_EditFieldRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 0 + height: 0 + m_UserData: 0 + m_IsWaitingForDelay: 0 + m_IsRenaming: 0 + m_OriginalEventType: 11 + m_IsRenamingFilename: 0 + m_ClientGUIView: {fileID: 0} + m_SearchString: + m_ViewHeaderState: + m_Columns: + - width: 150 + sortedAscending: 1 + headerContent: + m_Text: Called From + m_Image: {fileID: 0} + m_Tooltip: 'Parents the selected function is called from + + + (Press + ''F'' for frame selection)' + contextMenuText: + headerTextAlignment: 0 + sortingArrowAlignment: 2 + minWidth: 150 + maxWidth: 1000000 + autoResize: 1 + allowToggleVisibility: 0 + canSort: 1 + userData: 0 + - width: 60 + sortedAscending: 0 + headerContent: + m_Text: Calls + m_Image: {fileID: 0} + m_Tooltip: Total number of calls in a selected frame + contextMenuText: + headerTextAlignment: 0 + sortingArrowAlignment: 2 + minWidth: 60 + maxWidth: 1000000 + autoResize: 0 + allowToggleVisibility: 1 + canSort: 1 + userData: 0 + - width: 60 + sortedAscending: 0 + headerContent: + m_Text: GC Alloc + m_Image: {fileID: 0} + m_Tooltip: + contextMenuText: + headerTextAlignment: 0 + sortingArrowAlignment: 2 + minWidth: 60 + maxWidth: 1000000 + autoResize: 0 + allowToggleVisibility: 1 + canSort: 1 + userData: 0 + - width: 60 + sortedAscending: 0 + headerContent: + m_Text: Time ms + m_Image: {fileID: 0} + m_Tooltip: Total time the selected function spends within a parent + contextMenuText: + headerTextAlignment: 0 + sortingArrowAlignment: 2 + minWidth: 60 + maxWidth: 1000000 + autoResize: 0 + allowToggleVisibility: 1 + canSort: 1 + userData: 0 + - width: 60 + sortedAscending: 0 + headerContent: + m_Text: Time % + m_Image: {fileID: 0} + m_Tooltip: Shows how often the selected function was called from + the parent call + contextMenuText: + headerTextAlignment: 0 + sortingArrowAlignment: 2 + minWidth: 60 + maxWidth: 1000000 + autoResize: 0 + allowToggleVisibility: 1 + canSort: 1 + userData: 0 + m_VisibleColumns: 0000000001000000020000000300000004000000 + m_SortedColumns: 03000000 + m_CallersTreeView: + m_ViewState: + scrollPos: {x: 0, y: 0} + m_SelectedIDs: + m_LastClickedID: 0 + m_ExpandedIDs: + m_RenameOverlay: + m_UserAcceptedRename: 0 + m_Name: + m_OriginalName: + m_EditFieldRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 0 + height: 0 + m_UserData: 0 + m_IsWaitingForDelay: 0 + m_IsRenaming: 0 + m_OriginalEventType: 11 + m_IsRenamingFilename: 0 + m_ClientGUIView: {fileID: 0} + m_SearchString: + m_ViewHeaderState: + m_Columns: + - width: 150 + sortedAscending: 1 + headerContent: + m_Text: Called From + m_Image: {fileID: 0} + m_Tooltip: 'Parents the selected function is called from + + + (Press + ''F'' for frame selection)' + contextMenuText: + headerTextAlignment: 0 + sortingArrowAlignment: 2 + minWidth: 150 + maxWidth: 1000000 + autoResize: 1 + allowToggleVisibility: 0 + canSort: 1 + userData: 0 + - width: 60 + sortedAscending: 0 + headerContent: + m_Text: Calls + m_Image: {fileID: 0} + m_Tooltip: Total number of calls in a selected frame + contextMenuText: + headerTextAlignment: 0 + sortingArrowAlignment: 2 + minWidth: 60 + maxWidth: 1000000 + autoResize: 0 + allowToggleVisibility: 1 + canSort: 1 + userData: 0 + - width: 60 + sortedAscending: 0 + headerContent: + m_Text: GC Alloc + m_Image: {fileID: 0} + m_Tooltip: + contextMenuText: + headerTextAlignment: 0 + sortingArrowAlignment: 2 + minWidth: 60 + maxWidth: 1000000 + autoResize: 0 + allowToggleVisibility: 1 + canSort: 1 + userData: 0 + - width: 60 + sortedAscending: 0 + headerContent: + m_Text: Time ms + m_Image: {fileID: 0} + m_Tooltip: Total time the selected function spends within a parent + contextMenuText: + headerTextAlignment: 0 + sortingArrowAlignment: 2 + minWidth: 60 + maxWidth: 1000000 + autoResize: 0 + allowToggleVisibility: 1 + canSort: 1 + userData: 0 + - width: 60 + sortedAscending: 0 + headerContent: + m_Text: Time % + m_Image: {fileID: 0} + m_Tooltip: Shows how often the selected function was called from + the parent call + contextMenuText: + headerTextAlignment: 0 + sortingArrowAlignment: 2 + minWidth: 60 + maxWidth: 1000000 + autoResize: 0 + allowToggleVisibility: 1 + canSort: 1 + userData: 0 + m_VisibleColumns: 0000000001000000020000000300000004000000 + m_SortedColumns: 03000000 + m_FullThreadName: Main Thread + m_ThreadName: Main Thread + k__BackingField: 0 + k__BackingField: -1 + m_GroupName: + - rid: 8298289268991983618 + type: {class: RenderingProfilerModule, ns: UnityEditorInternal.Profiling, asm: UnityEditor.CoreModule} + data: + m_Identifier: UnityEditorInternal.Profiling.RenderingProfilerModule, UnityEditor.CoreModule, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_PaneScroll: {x: 0, y: 0} + - rid: 8298289268991983619 + type: {class: MemoryProfilerModule, ns: UnityEditorInternal.Profiling, asm: UnityEditor.CoreModule} + data: + m_Identifier: UnityEditorInternal.Profiling.MemoryProfilerModule, UnityEditor.CoreModule, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_PaneScroll: {x: 0, y: 0} + m_ViewSplit: + ID: 0 + splitterInitialOffset: 0 + currentActiveSplitter: -1 + realSizes: + - 0 + - 0 + relativeSizes: + - 0.7 + - 0.3 + minSizes: + - 450 + - 50 + maxSizes: + - 0 + - 0 + lastTotalSize: 0 + splitSize: 6 + xOffset: 0 + m_Version: 1 + oldRealSizes: + oldMinSizes: + oldMaxSizes: + oldSplitSize: 0 + - rid: 8298289268991983620 + type: {class: AudioProfilerModule, ns: UnityEditorInternal.Profiling, asm: UnityEditor.CoreModule} + data: + m_Identifier: UnityEditorInternal.Profiling.AudioProfilerModule, UnityEditor.CoreModule, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_PaneScroll: {x: 0, y: 0} + m_ShowInactiveDSPChains: 0 + m_HighlightAudibleDSPChains: 1 + m_DSPGraphZoomFactor: 1 + - rid: 8298289268991983621 + type: {class: VideoProfilerModule, ns: UnityEditorInternal.Profiling, asm: UnityEditor.CoreModule} + data: + m_Identifier: UnityEditorInternal.Profiling.VideoProfilerModule, UnityEditor.CoreModule, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_PaneScroll: {x: 0, y: 0} + - rid: 8298289268991983622 + type: {class: PhysicsProfilerModule, ns: UnityEditorInternal.Profiling, asm: UnityEditor.CoreModule} + data: + m_Identifier: UnityEditorInternal.Profiling.PhysicsProfilerModule, UnityEditor.CoreModule, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_PaneScroll: {x: 0, y: 0} + - rid: 8298289268991983623 + type: {class: Physics2DProfilerModule, ns: UnityEditorInternal.Profiling, asm: UnityEditor.CoreModule} + data: + m_Identifier: UnityEditorInternal.Profiling.Physics2DProfilerModule, UnityEditor.CoreModule, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_PaneScroll: {x: 0, y: 0} + - rid: 8298289268991983624 + type: {class: NetworkingMessagesProfilerModule, ns: UnityEditorInternal.Profiling, + asm: UnityEditor.CoreModule} + data: + m_Identifier: UnityEditorInternal.Profiling.NetworkingMessagesProfilerModule, + UnityEditor.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_PaneScroll: {x: 0, y: 0} + - rid: 8298289268991983625 + type: {class: NetworkingOperationsProfilerModule, ns: UnityEditorInternal.Profiling, + asm: UnityEditor.CoreModule} + data: + m_Identifier: UnityEditorInternal.Profiling.NetworkingOperationsProfilerModule, + UnityEditor.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_PaneScroll: {x: 0, y: 0} + m_NetworkSplit: + ID: 0 + splitterInitialOffset: 0 + currentActiveSplitter: -1 + realSizes: + - 0 + - 0 + relativeSizes: + - 0.2 + - 0.8 + minSizes: + - 100 + - 100 + maxSizes: + - 0 + - 0 + lastTotalSize: 0 + splitSize: 6 + xOffset: 0 + m_Version: 1 + oldRealSizes: + oldMinSizes: + oldMaxSizes: + oldSplitSize: 0 + msgNames: + - UserMessage + - ObjectDestroy + - ClientRpc + - ObjectSpawn + - Owner + - Command + - LocalPlayerTransform + - SyncEvent + - SyncVars + - SyncList + - ObjectSpawnScene + - NetworkInfo + - SpawnFinished + - ObjectHide + - CRC + - ClientAuthority + - rid: 8298289268991983626 + type: {class: UIProfilerModule, ns: UnityEditorInternal.Profiling, asm: UnityEditor.CoreModule} + data: + m_Identifier: UnityEditorInternal.Profiling.UIProfilerModule, UnityEditor.CoreModule, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_PaneScroll: {x: 0, y: 0} + - rid: 8298289268991983627 + type: {class: UIDetailsProfilerModule, ns: UnityEditorInternal.Profiling, asm: UnityEditor.CoreModule} + data: + m_Identifier: UnityEditorInternal.Profiling.UIDetailsProfilerModule, UnityEditor.CoreModule, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_PaneScroll: {x: 0, y: 0} + - rid: 8298289268991983628 + type: {class: GlobalIlluminationProfilerModule, ns: UnityEditorInternal.Profiling, + asm: UnityEditor.CoreModule} + data: + m_Identifier: UnityEditorInternal.Profiling.GlobalIlluminationProfilerModule, + UnityEditor.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_PaneScroll: {x: 0, y: 0} + - rid: 8298289268991983629 + type: {class: VirtualTexturingProfilerModule, ns: UnityEditorInternal.Profiling, + asm: UnityEditor.CoreModule} + data: + m_Identifier: UnityEditorInternal.Profiling.VirtualTexturingProfilerModule, + UnityEditor.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_PaneScroll: {x: 0, y: 0} + m_VTProfilerView: + rid: 8298289268991983632 + - rid: 8298289268991983630 + type: {class: FileIOProfilerModule, ns: UnityEditorInternal.Profiling, asm: UnityEditor.CoreModule} + data: + m_Identifier: UnityEditorInternal.Profiling.FileIOProfilerModule, UnityEditor.CoreModule, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_PaneScroll: {x: 0, y: 0} + - rid: 8298289268991983631 + type: {class: AssetLoadingProfilerModule, ns: UnityEditorInternal.Profiling, + asm: UnityEditor.CoreModule} + data: + m_Identifier: UnityEditorInternal.Profiling.AssetLoadingProfilerModule, UnityEditor.CoreModule, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_PaneScroll: {x: 0, y: 0} + - rid: 8298289268991983632 + type: {class: VirtualTexturingProfilerView, ns: UnityEditor, asm: UnityEditor.CoreModule} + data: + m_SortAscending: 0 + m_SortedColumn: -1 +--- !u!114 &3 +MonoBehaviour: + m_ObjectHideFlags: 52 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 1 + m_Script: {fileID: 12010, guid: 0000000000000000e000000000000000, type: 0} + m_Name: + m_EditorClassIdentifier: + m_Children: + - {fileID: 4} + - {fileID: 12} + m_Position: + serializedVersion: 2 + x: 0 + y: 0 + width: 1051.3334 + height: 579.3333 + m_MinSize: {x: 300, y: 200} + m_MaxSize: {x: 24288, y: 16192} + vertical: 1 + controlID: 500 +--- !u!114 &4 +MonoBehaviour: + m_ObjectHideFlags: 52 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 1 + m_Script: {fileID: 12010, guid: 0000000000000000e000000000000000, type: 0} + m_Name: + m_EditorClassIdentifier: + m_Children: + - {fileID: 5} + - {fileID: 7} + - {fileID: 10} + m_Position: + serializedVersion: 2 + x: 0 + y: 0 + width: 1051.3334 + height: 336 + m_MinSize: {x: 300, y: 100} + m_MaxSize: {x: 24288, y: 8096} + vertical: 0 + controlID: 445 +--- !u!114 &5 +MonoBehaviour: + m_ObjectHideFlags: 52 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 12006, guid: 0000000000000000e000000000000000, type: 0} + m_Name: ConsoleWindow + m_EditorClassIdentifier: + m_Children: [] + m_Position: + serializedVersion: 2 + x: 0 + y: 0 + width: 262 + height: 336 + m_MinSize: {x: 101, y: 121} + m_MaxSize: {x: 4001, y: 4021} + m_ActualView: {fileID: 6} + m_Panes: + - {fileID: 6} + m_Selected: 0 + m_LastSelected: 0 +--- !u!114 &6 +MonoBehaviour: + m_ObjectHideFlags: 52 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 1 + m_Script: {fileID: 12003, guid: 0000000000000000e000000000000000, type: 0} + m_Name: + m_EditorClassIdentifier: + m_MinSize: {x: 100, y: 100} + m_MaxSize: {x: 4000, y: 4000} + m_TitleContent: + m_Text: Console + m_Image: {fileID: -4950941429401207979, guid: 0000000000000000d000000000000000, + type: 0} + m_Tooltip: + m_Pos: + serializedVersion: 2 + x: 0 + y: 72.66667 + width: 261 + height: 315 + m_ViewDataDictionary: {fileID: 0} + m_OverlayCanvas: + m_LastAppliedPresetName: Default + m_SaveData: [] +--- !u!114 &7 +MonoBehaviour: + m_ObjectHideFlags: 52 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 1 + m_Script: {fileID: 12006, guid: 0000000000000000e000000000000000, type: 0} + m_Name: SceneView + m_EditorClassIdentifier: + m_Children: [] + m_Position: + serializedVersion: 2 + x: 262 + y: 0 + width: 638.6667 + height: 336 + m_MinSize: {x: 202, y: 221} + m_MaxSize: {x: 4002, y: 4021} + m_ActualView: {fileID: 8} + m_Panes: + - {fileID: 8} + - {fileID: 9} + m_Selected: 0 + m_LastSelected: 1 +--- !u!114 &8 +MonoBehaviour: + m_ObjectHideFlags: 52 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 1 + m_Script: {fileID: 12013, guid: 0000000000000000e000000000000000, type: 0} + m_Name: + m_EditorClassIdentifier: + m_MinSize: {x: 200, y: 200} + m_MaxSize: {x: 4000, y: 4000} + m_TitleContent: + m_Text: Scene + m_Image: {fileID: 8634526014445323508, guid: 0000000000000000d000000000000000, + type: 0} + m_Tooltip: + m_Pos: + serializedVersion: 2 + x: 262 + y: 72.66667 + width: 636.6667 + height: 315 + m_ViewDataDictionary: {fileID: 0} + m_OverlayCanvas: + m_LastAppliedPresetName: Default + m_SaveData: + - dockPosition: 0 + containerId: overlay-toolbar__top + floating: 0 + collapsed: 0 + displayed: 1 + snapOffset: {x: 0, y: 0} + snapOffsetDelta: {x: -98.66669, y: -26} + snapCorner: 3 + id: Tool Settings + index: 0 + layout: 1 + - dockPosition: 0 + containerId: overlay-toolbar__top + floating: 0 + collapsed: 0 + displayed: 1 + snapOffset: {x: -141, y: 149} + snapOffsetDelta: {x: 0, y: 0} + snapCorner: 1 + id: unity-grid-and-snap-toolbar + index: 1 + layout: 1 + - dockPosition: 1 + containerId: overlay-toolbar__top + floating: 0 + collapsed: 0 + displayed: 1 + snapOffset: {x: 0, y: 0} + snapOffsetDelta: {x: 0, y: 0} + snapCorner: 0 + id: unity-scene-view-toolbar + index: 0 + layout: 1 + - dockPosition: 1 + containerId: overlay-toolbar__top + floating: 0 + collapsed: 0 + displayed: 0 + snapOffset: {x: 0, y: 0} + snapOffsetDelta: {x: 0, y: 0} + snapCorner: 1 + id: unity-search-toolbar + index: 1 + layout: 1 + - dockPosition: 0 + containerId: overlay-container--left + floating: 0 + collapsed: 0 + displayed: 1 + snapOffset: {x: 0, y: 0} + snapOffsetDelta: {x: 0, y: 0} + snapCorner: 0 + id: unity-transform-toolbar + index: 0 + layout: 2 + - dockPosition: 0 + containerId: overlay-container--right + floating: 0 + collapsed: 0 + displayed: 1 + snapOffset: {x: 67.5, y: 86} + snapOffsetDelta: {x: 0, y: 0} + snapCorner: 0 + id: Orientation + index: 0 + layout: 4 + - dockPosition: 1 + containerId: overlay-container--right + floating: 0 + collapsed: 0 + displayed: 0 + snapOffset: {x: 0, y: 0} + snapOffsetDelta: {x: 0, y: 0} + snapCorner: 0 + id: Scene View/Light Settings + index: 0 + layout: 4 + - dockPosition: 1 + containerId: overlay-container--right + floating: 0 + collapsed: 0 + displayed: 0 + snapOffset: {x: 0, y: 0} + snapOffsetDelta: {x: 0, y: 0} + snapCorner: 0 + id: Scene View/Camera + index: 1 + layout: 4 + - dockPosition: 1 + containerId: overlay-container--right + floating: 0 + collapsed: 0 + displayed: 0 + snapOffset: {x: 0, y: 0} + snapOffsetDelta: {x: 0, y: 0} + snapCorner: 0 + id: Scene View/Cloth Constraints + index: 2 + layout: 4 + - dockPosition: 1 + containerId: overlay-container--right + floating: 0 + collapsed: 0 + displayed: 0 + snapOffset: {x: 0, y: 0} + snapOffsetDelta: {x: 0, y: 0} + snapCorner: 0 + id: Scene View/Cloth Collisions + index: 3 + layout: 4 + - dockPosition: 1 + containerId: overlay-container--right + floating: 0 + collapsed: 0 + displayed: 0 + snapOffset: {x: 0, y: 0} + snapOffsetDelta: {x: 0, y: 0} + snapCorner: 0 + id: Scene View/Navmesh Display + index: 4 + layout: 4 + - dockPosition: 1 + containerId: overlay-container--right + floating: 0 + collapsed: 0 + displayed: 0 + snapOffset: {x: 0, y: 0} + snapOffsetDelta: {x: 0, y: 0} + snapCorner: 0 + id: Scene View/Agent Display + index: 5 + layout: 4 + - dockPosition: 1 + containerId: overlay-container--right + floating: 0 + collapsed: 0 + displayed: 0 + snapOffset: {x: 0, y: 0} + snapOffsetDelta: {x: 0, y: 0} + snapCorner: 0 + id: Scene View/Obstacle Display + index: 6 + layout: 4 + - dockPosition: 1 + containerId: overlay-container--right + floating: 0 + collapsed: 0 + displayed: 0 + snapOffset: {x: 0, y: 0} + snapOffsetDelta: {x: 0, y: 0} + snapCorner: 0 + id: Scene View/Occlusion Culling + index: 7 + layout: 4 + - dockPosition: 1 + containerId: overlay-container--right + floating: 0 + collapsed: 0 + displayed: 0 + snapOffset: {x: 0, y: 0} + snapOffsetDelta: {x: 0, y: 0} + snapCorner: 0 + id: Scene View/Physics Debugger + index: 8 + layout: 4 + - dockPosition: 1 + containerId: overlay-container--right + floating: 0 + collapsed: 0 + displayed: 0 + snapOffset: {x: 0, y: 0} + snapOffsetDelta: {x: 0, y: 0} + snapCorner: 0 + id: Scene View/Scene Visibility + index: 9 + layout: 4 + - dockPosition: 1 + containerId: overlay-container--right + floating: 0 + collapsed: 0 + displayed: 0 + snapOffset: {x: 0, y: 0} + snapOffsetDelta: {x: 0, y: 0} + snapCorner: 0 + id: Scene View/Particles + index: 10 + layout: 4 + - dockPosition: 1 + containerId: overlay-container--right + floating: 0 + collapsed: 0 + displayed: 0 + snapOffset: {x: 0, y: 0} + snapOffsetDelta: {x: 0, y: 0} + snapCorner: 0 + id: Scene View/Visual Effect Model + index: 11 + layout: 4 + - dockPosition: 1 + containerId: overlay-container--right + floating: 0 + collapsed: 0 + displayed: 0 + snapOffset: {x: 0, y: 0} + snapOffsetDelta: {x: 0, y: 0} + snapCorner: 0 + id: Scene View/Visual Effect + index: 12 + layout: 4 + - dockPosition: 1 + containerId: overlay-container--right + floating: 0 + collapsed: 0 + displayed: 0 + snapOffset: {x: 0, y: 0} + snapOffsetDelta: {x: 0, y: 0} + snapCorner: 0 + id: Scene View/Visual Effect Event Tester + index: 13 + layout: 4 + m_WindowGUID: cc27987af1a868c49b0894db9c0f5429 + m_Gizmos: 1 + m_OverrideSceneCullingMask: 6917529027641081856 + m_SceneIsLit: 1 + m_SceneLighting: 1 + m_2DMode: 0 + m_isRotationLocked: 0 + m_PlayAudio: 0 + m_AudioPlay: 0 + m_Position: + m_Target: {x: 19.666004, y: 3.0765924, z: 19.509995} + speed: 2 + m_Value: {x: 19.666004, y: 3.0765924, z: 19.509995} + m_RenderMode: 0 + m_CameraMode: + drawMode: 0 + name: Shaded + section: Shading Mode + m_ValidateTrueMetals: 0 + m_DoValidateTrueMetals: 0 + m_ExposureSliderValue: 0 + m_SceneViewState: + m_AlwaysRefresh: 0 + showFog: 1 + showSkybox: 1 + showFlares: 1 + showImageEffects: 1 + showParticleSystems: 1 + showVisualEffectGraphs: 1 + m_FxEnabled: 1 + m_Grid: + xGrid: + m_Fade: + m_Target: 0 + speed: 2 + m_Value: 0 + m_Color: {r: 0.5, g: 0.5, b: 0.5, a: 0.4} + m_Pivot: {x: 0, y: 0, z: 0} + m_Size: {x: 0, y: 0} + yGrid: + m_Fade: + m_Target: 1 + speed: 2 + m_Value: 1 + m_Color: {r: 0.5, g: 0.5, b: 0.5, a: 0.4} + m_Pivot: {x: 0, y: 0, z: 0} + m_Size: {x: 1, y: 1} + zGrid: + m_Fade: + m_Target: 0 + speed: 2 + m_Value: 0 + m_Color: {r: 0.5, g: 0.5, b: 0.5, a: 0.4} + m_Pivot: {x: 0, y: 0, z: 0} + m_Size: {x: 0, y: 0} + m_ShowGrid: 1 + m_GridAxis: 1 + m_gridOpacity: 0.5 + m_Rotation: + m_Target: {x: 0.35144278, y: 0.41699848, z: -0.17896521, w: 0.81889} + speed: 2 + m_Value: {x: 0.3514412, y: 0.4169966, z: -0.1789644, w: 0.8188863} + m_Size: + m_Target: 0.6178747 + speed: 2 + m_Value: 0.6178747 + m_Ortho: + m_Target: 0 + speed: 2 + m_Value: 0 + m_CameraSettings: + m_Speed: 1 + m_SpeedNormalized: 0.5 + m_SpeedMin: 0.001 + m_SpeedMax: 2 + m_EasingEnabled: 1 + m_EasingDuration: 0.4 + m_AccelerationEnabled: 1 + m_FieldOfViewHorizontalOrVertical: 60 + m_NearClip: 0.03 + m_FarClip: 10000 + m_DynamicClip: 1 + m_OcclusionCulling: 0 + m_LastSceneViewRotation: {x: 0, y: 0, z: 0, w: 0} + m_LastSceneViewOrtho: 0 + m_ReplacementShader: {fileID: 0} + m_ReplacementString: + m_SceneVisActive: 1 + m_LastLockedObject: {fileID: 0} + m_ViewIsLockedToObject: 0 +--- !u!114 &9 +MonoBehaviour: + m_ObjectHideFlags: 52 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: cd0276e3a65ecfd43904ccfe7027d92d, type: 3} + m_Name: + m_EditorClassIdentifier: + m_MinSize: {x: 100, y: 100} + m_MaxSize: {x: 4000, y: 4000} + m_TitleContent: + m_Text: ParticleVFX* + m_Image: {fileID: 2800000, guid: dbf0a247eda3c834b86a04d35558ba9f, type: 3} + m_Tooltip: + m_Pos: + serializedVersion: 2 + x: 546 + y: 73 + width: 1255 + height: 520 + m_ViewDataDictionary: {fileID: 0} + m_OverlayCanvas: + m_LastAppliedPresetName: Default + m_SaveData: [] + m_DisplayedResource: {fileID: 8926484042661614527, guid: 3d4f8513ed75ea64cac14dded283f6e0, + type: 2} +--- !u!114 &10 +MonoBehaviour: + m_ObjectHideFlags: 52 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 12006, guid: 0000000000000000e000000000000000, type: 0} + m_Name: SceneHierarchyWindow + m_EditorClassIdentifier: + m_Children: [] + m_Position: + serializedVersion: 2 + x: 900.6667 + y: 0 + width: 150.66669 + height: 336 + m_MinSize: {x: 202, y: 221} + m_MaxSize: {x: 4002, y: 4021} + m_ActualView: {fileID: 11} + m_Panes: + - {fileID: 11} + m_Selected: 0 + m_LastSelected: 0 +--- !u!114 &11 +MonoBehaviour: + m_ObjectHideFlags: 52 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 1 + m_Script: {fileID: 12061, guid: 0000000000000000e000000000000000, type: 0} + m_Name: + m_EditorClassIdentifier: + m_MinSize: {x: 200, y: 200} + m_MaxSize: {x: 4000, y: 4000} + m_TitleContent: + m_Text: Hierarchy + m_Image: {fileID: -3734745235275155857, guid: 0000000000000000d000000000000000, + type: 0} + m_Tooltip: + m_Pos: + serializedVersion: 2 + x: 900.6667 + y: 72.66667 + width: 148.66669 + height: 315 + m_ViewDataDictionary: {fileID: 0} + m_OverlayCanvas: + m_LastAppliedPresetName: Default + m_SaveData: [] + m_SceneHierarchy: + m_TreeViewState: + scrollPos: {x: 0, y: 0} + m_SelectedIDs: + m_LastClickedID: 0 + m_ExpandedIDs: 30fbffff + m_RenameOverlay: + m_UserAcceptedRename: 0 + m_Name: + m_OriginalName: + m_EditFieldRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 0 + height: 0 + m_UserData: 0 + m_IsWaitingForDelay: 0 + m_IsRenaming: 0 + m_OriginalEventType: 11 + m_IsRenamingFilename: 0 + m_ClientGUIView: {fileID: 13} + m_SearchString: + m_ExpandedScenes: [] + m_CurrenRootInstanceID: 0 + m_LockTracker: + m_IsLocked: 0 + m_CurrentSortingName: TransformSorting + m_WindowGUID: 4c969a2b90040154d917609493e03593 +--- !u!114 &12 +MonoBehaviour: + m_ObjectHideFlags: 52 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 12010, guid: 0000000000000000e000000000000000, type: 0} + m_Name: + m_EditorClassIdentifier: + m_Children: + - {fileID: 13} + - {fileID: 15} + m_Position: + serializedVersion: 2 + x: 0 + y: 336 + width: 1051.3334 + height: 243.33331 + m_MinSize: {x: 200, y: 100} + m_MaxSize: {x: 16192, y: 8096} + vertical: 0 + controlID: 501 +--- !u!114 &13 +MonoBehaviour: + m_ObjectHideFlags: 52 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 12006, guid: 0000000000000000e000000000000000, type: 0} + m_Name: GameView + m_EditorClassIdentifier: + m_Children: [] + m_Position: + serializedVersion: 2 + x: 0 + y: 0 + width: 349.33334 + height: 243.33331 + m_MinSize: {x: 201, y: 221} + m_MaxSize: {x: 4001, y: 4021} + m_ActualView: {fileID: 14} + m_Panes: + - {fileID: 14} + m_Selected: 0 + m_LastSelected: 0 +--- !u!114 &14 +MonoBehaviour: + m_ObjectHideFlags: 52 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 1 + m_Script: {fileID: 12015, guid: 0000000000000000e000000000000000, type: 0} + m_Name: + m_EditorClassIdentifier: + m_MinSize: {x: 200, y: 200} + m_MaxSize: {x: 4000, y: 4000} + m_TitleContent: + m_Text: Game + m_Image: {fileID: 4621777727084837110, guid: 0000000000000000d000000000000000, + type: 0} + m_Tooltip: + m_Pos: + serializedVersion: 2 + x: 0 + y: 408.6667 + width: 348.33334 + height: 222.33331 + m_ViewDataDictionary: {fileID: 0} + m_OverlayCanvas: + m_LastAppliedPresetName: Default + m_SaveData: [] + m_SerializedViewNames: [] + m_SerializedViewValues: [] + m_PlayModeViewName: GameView + m_ShowGizmos: 0 + m_TargetDisplay: 0 + m_ClearColor: {r: 0, g: 0, b: 0, a: 0} + m_TargetSize: {x: 348.33334, y: 201.33331} + m_TextureFilterMode: 0 + m_TextureHideFlags: 61 + m_RenderIMGUI: 1 + m_EnterPlayModeBehavior: 0 + m_UseMipMap: 0 + m_VSyncEnabled: 0 + m_Gizmos: 0 + m_Stats: 1 + m_SelectedSizes: 00000000000000000000000000000000000000000000000000000000000000000000000000000000 + m_ZoomArea: + m_HRangeLocked: 0 + m_VRangeLocked: 0 + hZoomLockedByDefault: 0 + vZoomLockedByDefault: 0 + m_HBaseRangeMin: -116.111115 + m_HBaseRangeMax: 116.111115 + m_VBaseRangeMin: -67.11111 + m_VBaseRangeMax: 67.11111 + m_HAllowExceedBaseRangeMin: 1 + m_HAllowExceedBaseRangeMax: 1 + m_VAllowExceedBaseRangeMin: 1 + m_VAllowExceedBaseRangeMax: 1 + m_ScaleWithWindow: 0 + m_HSlider: 0 + m_VSlider: 0 + m_IgnoreScrollWheelUntilClicked: 0 + m_EnableMouseInput: 1 + m_EnableSliderZoomHorizontal: 0 + m_EnableSliderZoomVertical: 0 + m_UniformScale: 1 + m_UpDirection: 1 + m_DrawArea: + serializedVersion: 2 + x: 0 + y: 21 + width: 348.33334 + height: 201.33331 + m_Scale: {x: 1, y: 1} + m_Translation: {x: 174.16667, y: 100.66666} + m_MarginLeft: 0 + m_MarginRight: 0 + m_MarginTop: 0 + m_MarginBottom: 0 + m_LastShownAreaInsideMargins: + serializedVersion: 2 + x: -174.16667 + y: -100.66666 + width: 348.33334 + height: 201.33331 + m_MinimalGUI: 1 + m_defaultScale: 1 + m_LastWindowPixelSize: {x: 522.5, y: 333.49997} + m_ClearInEditMode: 1 + m_NoCameraWarning: 1 + m_LowResolutionForAspectRatios: 01000000000000000000 + m_XRRenderMode: 0 + m_RenderTexture: {fileID: 0} +--- !u!114 &15 +MonoBehaviour: + m_ObjectHideFlags: 52 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 1 + m_Script: {fileID: 12006, guid: 0000000000000000e000000000000000, type: 0} + m_Name: ProfilerWindow + m_EditorClassIdentifier: + m_Children: [] + m_Position: + serializedVersion: 2 + x: 349.33334 + y: 0 + width: 702 + height: 243.33331 + m_MinSize: {x: 882, y: 237} + m_MaxSize: {x: 4002, y: 4021} + m_ActualView: {fileID: 2} + m_Panes: + - {fileID: 16} + - {fileID: 2} + m_Selected: 1 + m_LastSelected: 0 +--- !u!114 &16 +MonoBehaviour: + m_ObjectHideFlags: 52 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 1 + m_Script: {fileID: 12014, guid: 0000000000000000e000000000000000, type: 0} + m_Name: + m_EditorClassIdentifier: + m_MinSize: {x: 230, y: 250} + m_MaxSize: {x: 10000, y: 10000} + m_TitleContent: + m_Text: Project + m_Image: {fileID: -5179483145760003458, guid: 0000000000000000d000000000000000, + type: 0} + m_Tooltip: + m_Pos: + serializedVersion: 2 + x: 349.33334 + y: 408.6667 + width: 700 + height: 222.33331 + m_ViewDataDictionary: {fileID: 0} + m_OverlayCanvas: + m_LastAppliedPresetName: Default + m_SaveData: [] + m_SearchFilter: + m_NameFilter: + m_ClassNames: [] + m_AssetLabels: [] + m_AssetBundleNames: [] + m_VersionControlStates: [] + m_SoftLockControlStates: [] + m_ReferencingInstanceIDs: + m_SceneHandles: + m_ShowAllHits: 0 + m_SkipHidden: 0 + m_SearchArea: 1 + m_Folders: + - Assets + m_Globs: [] + m_OriginalText: + m_ViewMode: 1 + m_StartGridSize: 64 + m_LastFolders: + - Assets + m_LastFoldersGridSize: -1 + m_LastProjectPath: C:\Users\ku_ge\Documents\Unity\ParticleSimulator + m_LockTracker: + m_IsLocked: 0 + m_FolderTreeState: + scrollPos: {x: 0, y: 79} + m_SelectedIDs: c26c0000 + m_LastClickedID: 27842 + m_ExpandedIDs: 00000000c26c0000c46c0000c66c0000c86c0000ca6c0000cc6c000000ca9a3bffffff7f + m_RenameOverlay: + m_UserAcceptedRename: 0 + m_Name: + m_OriginalName: + m_EditFieldRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 0 + height: 0 + m_UserData: 0 + m_IsWaitingForDelay: 0 + m_IsRenaming: 0 + m_OriginalEventType: 11 + m_IsRenamingFilename: 1 + m_ClientGUIView: {fileID: 0} + m_SearchString: + m_CreateAssetUtility: + m_EndAction: {fileID: 0} + m_InstanceID: 0 + m_Path: + m_Icon: {fileID: 0} + m_ResourceFile: + m_AssetTreeState: + scrollPos: {x: 0, y: 0} + m_SelectedIDs: + m_LastClickedID: 0 + m_ExpandedIDs: 00000000c26c0000c46c0000c66c0000c86c0000ca6c0000cc6c000000ca9a3bffffff7f + m_RenameOverlay: + m_UserAcceptedRename: 0 + m_Name: + m_OriginalName: + m_EditFieldRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 0 + height: 0 + m_UserData: 0 + m_IsWaitingForDelay: 0 + m_IsRenaming: 0 + m_OriginalEventType: 11 + m_IsRenamingFilename: 1 + m_ClientGUIView: {fileID: 0} + m_SearchString: + m_CreateAssetUtility: + m_EndAction: {fileID: 0} + m_InstanceID: 0 + m_Path: + m_Icon: {fileID: 0} + m_ResourceFile: + m_ListAreaState: + m_SelectedInstanceIDs: + m_LastClickedInstanceID: 0 + m_HadKeyboardFocusLastEvent: 0 + m_ExpandedInstanceIDs: c6230000 + m_RenameOverlay: + m_UserAcceptedRename: 0 + m_Name: + m_OriginalName: + m_EditFieldRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 0 + height: 0 + m_UserData: 0 + m_IsWaitingForDelay: 0 + m_IsRenaming: 0 + m_OriginalEventType: 11 + m_IsRenamingFilename: 1 + m_ClientGUIView: {fileID: 0} + m_CreateAssetUtility: + m_EndAction: {fileID: 0} + m_InstanceID: 0 + m_Path: + m_Icon: {fileID: 0} + m_ResourceFile: + m_NewAssetIndexInList: -1 + m_ScrollPosition: {x: 0, y: 0} + m_GridSize: 64 + m_SkipHiddenPackages: 0 + m_DirectoriesAreaWidth: 207 +--- !u!114 &17 +MonoBehaviour: + m_ObjectHideFlags: 52 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 1 + m_Script: {fileID: 12006, guid: 0000000000000000e000000000000000, type: 0} + m_Name: + m_EditorClassIdentifier: + m_Children: [] + m_Position: + serializedVersion: 2 + x: 1051.3334 + y: 0 + width: 228.66663 + height: 579.3333 + m_MinSize: {x: 276, y: 71} + m_MaxSize: {x: 4001, y: 4021} + m_ActualView: {fileID: 18} + m_Panes: + - {fileID: 18} + m_Selected: 0 + m_LastSelected: 0 +--- !u!114 &18 +MonoBehaviour: + m_ObjectHideFlags: 52 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 1 + m_Script: {fileID: 12019, guid: 0000000000000000e000000000000000, type: 0} + m_Name: + m_EditorClassIdentifier: + m_MinSize: {x: 275, y: 50} + m_MaxSize: {x: 4000, y: 4000} + m_TitleContent: + m_Text: Inspector + m_Image: {fileID: -440750813802333266, guid: 0000000000000000d000000000000000, + type: 0} + m_Tooltip: + m_Pos: + serializedVersion: 2 + x: 1051.3334 + y: 72.66667 + width: 227.66663 + height: 558.3333 + m_ViewDataDictionary: {fileID: 0} + m_OverlayCanvas: + m_LastAppliedPresetName: Default + m_SaveData: [] + m_ObjectsLockedBeforeSerialization: [] + m_InstanceIDsLockedBeforeSerialization: + m_PreviewResizer: + m_CachedPref: 160 + m_ControlHash: -371814159 + m_PrefName: Preview_InspectorPreview + m_LastInspectedObjectInstanceID: -1 + m_LastVerticalScrollValue: 0 + m_GlobalObjectId: + m_InspectorMode: 0 + m_LockTracker: + m_IsLocked: 0 + m_PreviewWindow: {fileID: 0} diff --git a/UserSettings/Layouts/default-2021.dwlt b/UserSettings/Layouts/default-2021.dwlt index 615e75f..c9a9de7 100644 --- a/UserSettings/Layouts/default-2021.dwlt +++ b/UserSettings/Layouts/default-2021.dwlt @@ -1,6 +1,30 @@ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: --- !u!114 &1 +MonoBehaviour: + m_ObjectHideFlags: 52 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 12004, guid: 0000000000000000e000000000000000, type: 0} + m_Name: + m_EditorClassIdentifier: + m_PixelRect: + serializedVersion: 2 + x: 1386 + y: 178 + width: 975 + height: 679 + m_ShowMode: 0 + m_Title: Project Settings + m_RootView: {fileID: 4} + m_MinSize: {x: 310, y: 221} + m_MaxSize: {x: 4000, y: 4021} + m_Maximized: 0 +--- !u!114 &2 MonoBehaviour: m_ObjectHideFlags: 52 m_CorrespondingSourceObject: {fileID: 0} @@ -14,17 +38,17 @@ MonoBehaviour: m_EditorClassIdentifier: m_PixelRect: serializedVersion: 2 - x: 8 - y: 51 - width: 2544 - height: 973 + x: 0 + y: 43 + width: 2560 + height: 989 m_ShowMode: 4 - m_Title: Project - m_RootView: {fileID: 6} + m_Title: Game + m_RootView: {fileID: 12} m_MinSize: {x: 875, y: 300} m_MaxSize: {x: 10000, y: 10000} - m_Maximized: 0 ---- !u!114 &2 + m_Maximized: 1 +--- !u!114 &3 MonoBehaviour: m_ObjectHideFlags: 52 m_CorrespondingSourceObject: {fileID: 0} @@ -32,24 +56,49 @@ MonoBehaviour: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 0} m_Enabled: 1 - m_EditorHideFlags: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 12006, guid: 0000000000000000e000000000000000, type: 0} + m_Name: ProjectSettingsWindow + m_EditorClassIdentifier: + m_Children: [] + m_Position: + serializedVersion: 2 + x: 0 + y: 0 + width: 975 + height: 679 + m_MinSize: {x: 310, y: 221} + m_MaxSize: {x: 4000, y: 4021} + m_ActualView: {fileID: 18} + m_Panes: + - {fileID: 18} + m_Selected: 0 + m_LastSelected: 0 +--- !u!114 &4 +MonoBehaviour: + m_ObjectHideFlags: 52 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 m_Script: {fileID: 12010, guid: 0000000000000000e000000000000000, type: 0} m_Name: m_EditorClassIdentifier: m_Children: - - {fileID: 9} - {fileID: 3} m_Position: serializedVersion: 2 x: 0 - y: 30 - width: 2544 - height: 923 - m_MinSize: {x: 679, y: 492} - m_MaxSize: {x: 14002, y: 14042} + y: 0 + width: 975 + height: 679 + m_MinSize: {x: 310, y: 221} + m_MaxSize: {x: 4000, y: 4021} vertical: 0 - controlID: 71 ---- !u!114 &3 + controlID: 1447 +--- !u!114 &5 MonoBehaviour: m_ObjectHideFlags: 52 m_CorrespondingSourceObject: {fileID: 0} @@ -57,25 +106,25 @@ MonoBehaviour: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 0} m_Enabled: 1 - m_EditorHideFlags: 1 + m_EditorHideFlags: 0 m_Script: {fileID: 12006, guid: 0000000000000000e000000000000000, type: 0} - m_Name: + m_Name: ConsoleWindow m_EditorClassIdentifier: m_Children: [] m_Position: serializedVersion: 2 - x: 1943 + x: 0 y: 0 - width: 601 - height: 923 - m_MinSize: {x: 276, y: 71} + width: 510 + height: 544 + m_MinSize: {x: 101, y: 121} m_MaxSize: {x: 4001, y: 4021} - m_ActualView: {fileID: 13} + m_ActualView: {fileID: 26} m_Panes: - - {fileID: 13} + - {fileID: 26} m_Selected: 0 m_LastSelected: 0 ---- !u!114 &4 +--- !u!114 &6 MonoBehaviour: m_ObjectHideFlags: 52 m_CorrespondingSourceObject: {fileID: 0} @@ -83,25 +132,101 @@ MonoBehaviour: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 0} m_Enabled: 1 - m_EditorHideFlags: 1 + m_EditorHideFlags: 0 m_Script: {fileID: 12006, guid: 0000000000000000e000000000000000, type: 0} - m_Name: + m_Name: SceneHierarchyWindow + m_EditorClassIdentifier: + m_Children: [] + m_Position: + serializedVersion: 2 + x: 1803 + y: 0 + width: 300 + height: 544 + m_MinSize: {x: 200, y: 200} + m_MaxSize: {x: 4000, y: 4000} + m_ActualView: {fileID: 23} + m_Panes: + - {fileID: 23} + m_Selected: 0 + m_LastSelected: 0 +--- !u!114 &7 +MonoBehaviour: + m_ObjectHideFlags: 52 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 12006, guid: 0000000000000000e000000000000000, type: 0} + m_Name: GameView m_EditorClassIdentifier: m_Children: [] m_Position: serializedVersion: 2 x: 0 y: 0 - width: 481 - height: 547 - m_MinSize: {x: 201, y: 221} - m_MaxSize: {x: 4001, y: 4021} - m_ActualView: {fileID: 14} + width: 699 + height: 395 + m_MinSize: {x: 200, y: 200} + m_MaxSize: {x: 4000, y: 4000} + m_ActualView: {fileID: 25} m_Panes: - - {fileID: 14} + - {fileID: 25} m_Selected: 0 m_LastSelected: 0 ---- !u!114 &5 +--- !u!114 &8 +MonoBehaviour: + m_ObjectHideFlags: 52 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 12010, guid: 0000000000000000e000000000000000, type: 0} + m_Name: + m_EditorClassIdentifier: + m_Children: + - {fileID: 7} + - {fileID: 11} + m_Position: + serializedVersion: 2 + x: 0 + y: 544 + width: 2103 + height: 395 + m_MinSize: {x: 200, y: 100} + m_MaxSize: {x: 16192, y: 8096} + vertical: 0 + controlID: 145 +--- !u!114 &9 +MonoBehaviour: + m_ObjectHideFlags: 52 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 1 + m_Script: {fileID: 12010, guid: 0000000000000000e000000000000000, type: 0} + m_Name: + m_EditorClassIdentifier: + m_Children: + - {fileID: 15} + - {fileID: 10} + m_Position: + serializedVersion: 2 + x: 0 + y: 30 + width: 2560 + height: 939 + m_MinSize: {x: 400, y: 200} + m_MaxSize: {x: 32384, y: 16192} + vertical: 0 + controlID: 222 +--- !u!114 &10 MonoBehaviour: m_ObjectHideFlags: 52 m_CorrespondingSourceObject: {fileID: 0} @@ -111,24 +236,50 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 1 m_Script: {fileID: 12006, guid: 0000000000000000e000000000000000, type: 0} - m_Name: ProjectBrowser + m_Name: m_EditorClassIdentifier: m_Children: [] m_Position: serializedVersion: 2 - x: 0 - y: 547 - width: 1943 - height: 376 - m_MinSize: {x: 231, y: 271} - m_MaxSize: {x: 10001, y: 10021} - m_ActualView: {fileID: 12} + x: 2103 + y: 0 + width: 457 + height: 939 + m_MinSize: {x: 275, y: 50} + m_MaxSize: {x: 4000, y: 4000} + m_ActualView: {fileID: 22} m_Panes: - - {fileID: 12} - - {fileID: 17} + - {fileID: 22} m_Selected: 0 - m_LastSelected: 1 ---- !u!114 &6 + m_LastSelected: 0 +--- !u!114 &11 +MonoBehaviour: + m_ObjectHideFlags: 52 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 1 + m_Script: {fileID: 12006, guid: 0000000000000000e000000000000000, type: 0} + m_Name: ProfilerWindow + m_EditorClassIdentifier: + m_Children: [] + m_Position: + serializedVersion: 2 + x: 699 + y: 0 + width: 1404 + height: 395 + m_MinSize: {x: 882, y: 237} + m_MaxSize: {x: 4002, y: 4021} + m_ActualView: {fileID: 20} + m_Panes: + - {fileID: 21} + - {fileID: 20} + m_Selected: 1 + m_LastSelected: 0 +--- !u!114 &12 MonoBehaviour: m_ObjectHideFlags: 52 m_CorrespondingSourceObject: {fileID: 0} @@ -141,22 +292,22 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: m_Children: - - {fileID: 7} - - {fileID: 2} - - {fileID: 8} + - {fileID: 13} + - {fileID: 9} + - {fileID: 14} m_Position: serializedVersion: 2 x: 0 y: 0 - width: 2544 - height: 973 + width: 2560 + height: 989 m_MinSize: {x: 875, y: 300} m_MaxSize: {x: 10000, y: 10000} m_UseTopView: 1 m_TopViewHeight: 30 m_UseBottomView: 1 m_BottomViewHeight: 20 ---- !u!114 &7 +--- !u!114 &13 MonoBehaviour: m_ObjectHideFlags: 52 m_CorrespondingSourceObject: {fileID: 0} @@ -173,12 +324,12 @@ MonoBehaviour: serializedVersion: 2 x: 0 y: 0 - width: 2544 + width: 2560 height: 30 m_MinSize: {x: 0, y: 0} m_MaxSize: {x: 0, y: 0} m_LastLoadedLayoutName: ---- !u!114 &8 +--- !u!114 &14 MonoBehaviour: m_ObjectHideFlags: 52 m_CorrespondingSourceObject: {fileID: 0} @@ -194,12 +345,12 @@ MonoBehaviour: m_Position: serializedVersion: 2 x: 0 - y: 953 - width: 2544 + y: 969 + width: 2560 height: 20 m_MinSize: {x: 0, y: 0} m_MaxSize: {x: 0, y: 0} ---- !u!114 &9 +--- !u!114 &15 MonoBehaviour: m_ObjectHideFlags: 52 m_CorrespondingSourceObject: {fileID: 0} @@ -212,19 +363,19 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: m_Children: - - {fileID: 10} - - {fileID: 5} + - {fileID: 16} + - {fileID: 8} m_Position: serializedVersion: 2 x: 0 y: 0 - width: 1943 - height: 923 - m_MinSize: {x: 403, y: 492} - m_MaxSize: {x: 10001, y: 14042} + width: 2103 + height: 939 + m_MinSize: {x: 300, y: 200} + m_MaxSize: {x: 24288, y: 16192} vertical: 1 - controlID: 17 ---- !u!114 &10 + controlID: 223 +--- !u!114 &16 MonoBehaviour: m_ObjectHideFlags: 52 m_CorrespondingSourceObject: {fileID: 0} @@ -237,19 +388,20 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: m_Children: - - {fileID: 4} - - {fileID: 11} + - {fileID: 5} + - {fileID: 17} + - {fileID: 6} m_Position: serializedVersion: 2 x: 0 y: 0 - width: 1943 - height: 547 - m_MinSize: {x: 403, y: 221} - m_MaxSize: {x: 8003, y: 4021} + width: 2103 + height: 544 + m_MinSize: {x: 300, y: 100} + m_MaxSize: {x: 24288, y: 8096} vertical: 0 - controlID: 18 ---- !u!114 &11 + controlID: 224 +--- !u!114 &17 MonoBehaviour: m_ObjectHideFlags: 52 m_CorrespondingSourceObject: {fileID: 0} @@ -259,24 +411,1132 @@ MonoBehaviour: m_Enabled: 1 m_EditorHideFlags: 1 m_Script: {fileID: 12006, guid: 0000000000000000e000000000000000, type: 0} - m_Name: + m_Name: SceneView m_EditorClassIdentifier: m_Children: [] m_Position: serializedVersion: 2 - x: 481 + x: 510 y: 0 - width: 1462 - height: 547 + width: 1293 + height: 544 m_MinSize: {x: 202, y: 221} m_MaxSize: {x: 4002, y: 4021} - m_ActualView: {fileID: 15} + m_ActualView: {fileID: 24} m_Panes: - - {fileID: 15} - - {fileID: 16} + - {fileID: 24} + - {fileID: 19} m_Selected: 0 m_LastSelected: 1 ---- !u!114 &12 +--- !u!114 &18 +MonoBehaviour: + m_ObjectHideFlags: 52 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 13854, guid: 0000000000000000e000000000000000, type: 0} + m_Name: + m_EditorClassIdentifier: + m_MinSize: {x: 310, y: 200} + m_MaxSize: {x: 4000, y: 4000} + m_TitleContent: + m_Text: Project Settings + m_Image: {fileID: -5712115415447495865, guid: 0000000000000000d000000000000000, + type: 0} + m_Tooltip: + m_Pos: + serializedVersion: 2 + x: 1386 + y: 178 + width: 975 + height: 658 + m_ViewDataDictionary: {fileID: 0} + m_OverlayCanvas: + m_LastAppliedPresetName: Default + m_SaveData: [] + m_PosLeft: {x: 0, y: 0} + m_PosRight: {x: 0, y: 60} + m_Scope: 1 + m_SplitterFlex: 0.2 + m_SearchText: + m_TreeViewState: + scrollPos: {x: 0, y: 0} + m_SelectedIDs: 4dcf9b58 + m_LastClickedID: 1486606157 + m_ExpandedIDs: a01a5fa653336be200000000 + m_RenameOverlay: + m_UserAcceptedRename: 0 + m_Name: + m_OriginalName: + m_EditFieldRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 0 + height: 0 + m_UserData: 0 + m_IsWaitingForDelay: 0 + m_IsRenaming: 0 + m_OriginalEventType: 11 + m_IsRenamingFilename: 0 + m_ClientGUIView: {fileID: 0} + m_SearchString: +--- !u!114 &19 +MonoBehaviour: + m_ObjectHideFlags: 52 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: cd0276e3a65ecfd43904ccfe7027d92d, type: 3} + m_Name: + m_EditorClassIdentifier: + m_MinSize: {x: 100, y: 100} + m_MaxSize: {x: 4000, y: 4000} + m_TitleContent: + m_Text: ParticleVFX* + m_Image: {fileID: 2800000, guid: dbf0a247eda3c834b86a04d35558ba9f, type: 3} + m_Tooltip: + m_Pos: + serializedVersion: 2 + x: 546 + y: 73 + width: 1255 + height: 520 + m_ViewDataDictionary: {fileID: 0} + m_OverlayCanvas: + m_LastAppliedPresetName: Default + m_SaveData: [] + m_DisplayedResource: {fileID: 8926484042661614527, guid: 3d4f8513ed75ea64cac14dded283f6e0, + type: 2} +--- !u!114 &20 +MonoBehaviour: + m_ObjectHideFlags: 52 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 12070, guid: 0000000000000000e000000000000000, type: 0} + m_Name: + m_EditorClassIdentifier: + m_MinSize: {x: 880, y: 216} + m_MaxSize: {x: 4000, y: 4000} + m_TitleContent: + m_Text: Profiler + m_Image: {fileID: -1089619856830078684, guid: 0000000000000000d000000000000000, + type: 0} + m_Tooltip: + m_Pos: + serializedVersion: 2 + x: 699 + y: 617 + width: 1402 + height: 374 + m_ViewDataDictionary: {fileID: 0} + m_OverlayCanvas: + m_LastAppliedPresetName: Default + m_SaveData: [] + m_Recording: 1 + m_ActiveNativePlatformSupportModuleName: + m_AllModules: + - rid: 8298289268991983616 + - rid: 8298289268991983617 + - rid: 8298289268991983618 + - rid: 8298289268991983619 + - rid: 8298289268991983620 + - rid: 8298289268991983621 + - rid: 8298289268991983622 + - rid: 8298289268991983623 + - rid: 8298289268991983624 + - rid: 8298289268991983625 + - rid: 8298289268991983626 + - rid: 8298289268991983627 + - rid: 8298289268991983628 + - rid: 8298289268991983629 + - rid: 8298289268991983630 + - rid: 8298289268991983631 + m_CallstackRecordMode: 1 + m_ClearOnPlay: 0 + references: + version: 2 + RefIds: + - rid: 8298289268991983616 + type: {class: CPUProfilerModule, ns: UnityEditorInternal.Profiling, asm: UnityEditor.CoreModule} + data: + m_Identifier: UnityEditorInternal.Profiling.CPUProfilerModule, UnityEditor.CoreModule, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_PaneScroll: {x: 0, y: 0} + m_ViewType: 0 + updateViewLive: 0 + m_CurrentFrameIndex: 38900 + m_HierarchyOverruledThreadFromSelection: 0 + m_ProfilerViewFilteringOptions: 1 + m_FrameDataHierarchyView: + m_Serialized: 1 + m_TreeViewState: + scrollPos: {x: 0, y: 0} + m_SelectedIDs: + m_LastClickedID: 0 + m_ExpandedIDs: + m_RenameOverlay: + m_UserAcceptedRename: 0 + m_Name: + m_OriginalName: + m_EditFieldRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 0 + height: 0 + m_UserData: 0 + m_IsWaitingForDelay: 0 + m_IsRenaming: 0 + m_OriginalEventType: 11 + m_IsRenamingFilename: 0 + m_ClientGUIView: {fileID: 0} + m_SearchString: + m_MultiColumnHeaderState: + m_Columns: + - width: 200 + sortedAscending: 1 + headerContent: + m_Text: Overview + m_Image: {fileID: 0} + m_Tooltip: + contextMenuText: + headerTextAlignment: 0 + sortingArrowAlignment: 2 + minWidth: 200 + maxWidth: 1000000 + autoResize: 1 + allowToggleVisibility: 0 + canSort: 1 + userData: 0 + - width: 80 + sortedAscending: 0 + headerContent: + m_Text: Total + m_Image: {fileID: 0} + m_Tooltip: + contextMenuText: + headerTextAlignment: 0 + sortingArrowAlignment: 2 + minWidth: 50 + maxWidth: 1000000 + autoResize: 0 + allowToggleVisibility: 1 + canSort: 1 + userData: 0 + - width: 80 + sortedAscending: 0 + headerContent: + m_Text: Self + m_Image: {fileID: 0} + m_Tooltip: + contextMenuText: + headerTextAlignment: 0 + sortingArrowAlignment: 2 + minWidth: 50 + maxWidth: 1000000 + autoResize: 0 + allowToggleVisibility: 1 + canSort: 1 + userData: 0 + - width: 80 + sortedAscending: 0 + headerContent: + m_Text: Calls + m_Image: {fileID: 0} + m_Tooltip: + contextMenuText: + headerTextAlignment: 0 + sortingArrowAlignment: 2 + minWidth: 50 + maxWidth: 1000000 + autoResize: 0 + allowToggleVisibility: 1 + canSort: 1 + userData: 0 + - width: 80 + sortedAscending: 0 + headerContent: + m_Text: GC Alloc + m_Image: {fileID: 0} + m_Tooltip: + contextMenuText: + headerTextAlignment: 0 + sortingArrowAlignment: 2 + minWidth: 50 + maxWidth: 1000000 + autoResize: 0 + allowToggleVisibility: 1 + canSort: 1 + userData: 0 + - width: 80 + sortedAscending: 0 + headerContent: + m_Text: Time ms + m_Image: {fileID: 0} + m_Tooltip: + contextMenuText: + headerTextAlignment: 0 + sortingArrowAlignment: 2 + minWidth: 50 + maxWidth: 1000000 + autoResize: 0 + allowToggleVisibility: 1 + canSort: 1 + userData: 0 + - width: 80 + sortedAscending: 0 + headerContent: + m_Text: Self ms + m_Image: {fileID: 0} + m_Tooltip: + contextMenuText: + headerTextAlignment: 0 + sortingArrowAlignment: 2 + minWidth: 50 + maxWidth: 1000000 + autoResize: 0 + allowToggleVisibility: 1 + canSort: 1 + userData: 0 + - width: 25 + sortedAscending: 0 + headerContent: + m_Text: + m_Image: {fileID: -5161429177145976760, guid: 0000000000000000d000000000000000, + type: 0} + m_Tooltip: Warnings + contextMenuText: + headerTextAlignment: 0 + sortingArrowAlignment: 2 + minWidth: 25 + maxWidth: 25 + autoResize: 0 + allowToggleVisibility: 1 + canSort: 1 + userData: 0 + m_VisibleColumns: 0000000001000000020000000300000004000000050000000600000007000000 + m_SortedColumns: 05000000 + m_ThreadIndexInThreadNames: 0 + m_DetailedViewType: 0 + m_DetailedViewSpliterState: + ID: 0 + splitterInitialOffset: 0 + currentActiveSplitter: -1 + realSizes: + - 0 + - 0 + relativeSizes: + - 0.7 + - 0.3 + minSizes: + - 450 + - 50 + maxSizes: + - 0 + - 0 + lastTotalSize: 0 + splitSize: 6 + xOffset: 0 + m_Version: 1 + oldRealSizes: + oldMinSizes: + oldMaxSizes: + oldSplitSize: 0 + m_DetailedObjectsView: + m_SelectedID: 0 + m_TreeViewState: + scrollPos: {x: 0, y: 0} + m_SelectedIDs: + m_LastClickedID: 0 + m_ExpandedIDs: + m_RenameOverlay: + m_UserAcceptedRename: 0 + m_Name: + m_OriginalName: + m_EditFieldRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 0 + height: 0 + m_UserData: 0 + m_IsWaitingForDelay: 0 + m_IsRenaming: 0 + m_OriginalEventType: 11 + m_IsRenamingFilename: 0 + m_ClientGUIView: {fileID: 0} + m_SearchString: + m_MultiColumnHeaderState: + m_Columns: [] + m_VisibleColumns: + m_SortedColumns: + m_VertSplit: + ID: 0 + splitterInitialOffset: 0 + currentActiveSplitter: 0 + realSizes: [] + relativeSizes: [] + minSizes: [] + maxSizes: [] + lastTotalSize: 0 + splitSize: 0 + xOffset: 0 + m_Version: 1 + oldRealSizes: + oldMinSizes: + oldMaxSizes: + oldSplitSize: 0 + m_DetailedCallsView: + m_SelectedID: -1 + m_VertSplit: + ID: 0 + splitterInitialOffset: 0 + currentActiveSplitter: 0 + realSizes: [] + relativeSizes: [] + minSizes: [] + maxSizes: [] + lastTotalSize: 0 + splitSize: 0 + xOffset: 0 + m_Version: 1 + oldRealSizes: + oldMinSizes: + oldMaxSizes: + oldSplitSize: 0 + m_CalleesTreeView: + m_ViewState: + scrollPos: {x: 0, y: 0} + m_SelectedIDs: + m_LastClickedID: 0 + m_ExpandedIDs: + m_RenameOverlay: + m_UserAcceptedRename: 0 + m_Name: + m_OriginalName: + m_EditFieldRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 0 + height: 0 + m_UserData: 0 + m_IsWaitingForDelay: 0 + m_IsRenaming: 0 + m_OriginalEventType: 11 + m_IsRenamingFilename: 0 + m_ClientGUIView: {fileID: 0} + m_SearchString: + m_ViewHeaderState: + m_Columns: + - width: 150 + sortedAscending: 1 + headerContent: + m_Text: Called From + m_Image: {fileID: 0} + m_Tooltip: 'Parents the selected function is called from + + + (Press + ''F'' for frame selection)' + contextMenuText: + headerTextAlignment: 0 + sortingArrowAlignment: 2 + minWidth: 150 + maxWidth: 1000000 + autoResize: 1 + allowToggleVisibility: 0 + canSort: 1 + userData: 0 + - width: 60 + sortedAscending: 0 + headerContent: + m_Text: Calls + m_Image: {fileID: 0} + m_Tooltip: Total number of calls in a selected frame + contextMenuText: + headerTextAlignment: 0 + sortingArrowAlignment: 2 + minWidth: 60 + maxWidth: 1000000 + autoResize: 0 + allowToggleVisibility: 1 + canSort: 1 + userData: 0 + - width: 60 + sortedAscending: 0 + headerContent: + m_Text: GC Alloc + m_Image: {fileID: 0} + m_Tooltip: + contextMenuText: + headerTextAlignment: 0 + sortingArrowAlignment: 2 + minWidth: 60 + maxWidth: 1000000 + autoResize: 0 + allowToggleVisibility: 1 + canSort: 1 + userData: 0 + - width: 60 + sortedAscending: 0 + headerContent: + m_Text: Time ms + m_Image: {fileID: 0} + m_Tooltip: Total time the selected function spends within a parent + contextMenuText: + headerTextAlignment: 0 + sortingArrowAlignment: 2 + minWidth: 60 + maxWidth: 1000000 + autoResize: 0 + allowToggleVisibility: 1 + canSort: 1 + userData: 0 + - width: 60 + sortedAscending: 0 + headerContent: + m_Text: Time % + m_Image: {fileID: 0} + m_Tooltip: Shows how often the selected function was called from + the parent call + contextMenuText: + headerTextAlignment: 0 + sortingArrowAlignment: 2 + minWidth: 60 + maxWidth: 1000000 + autoResize: 0 + allowToggleVisibility: 1 + canSort: 1 + userData: 0 + m_VisibleColumns: 0000000001000000020000000300000004000000 + m_SortedColumns: 03000000 + m_CallersTreeView: + m_ViewState: + scrollPos: {x: 0, y: 0} + m_SelectedIDs: + m_LastClickedID: 0 + m_ExpandedIDs: + m_RenameOverlay: + m_UserAcceptedRename: 0 + m_Name: + m_OriginalName: + m_EditFieldRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 0 + height: 0 + m_UserData: 0 + m_IsWaitingForDelay: 0 + m_IsRenaming: 0 + m_OriginalEventType: 11 + m_IsRenamingFilename: 0 + m_ClientGUIView: {fileID: 0} + m_SearchString: + m_ViewHeaderState: + m_Columns: + - width: 150 + sortedAscending: 1 + headerContent: + m_Text: Called From + m_Image: {fileID: 0} + m_Tooltip: 'Parents the selected function is called from + + + (Press + ''F'' for frame selection)' + contextMenuText: + headerTextAlignment: 0 + sortingArrowAlignment: 2 + minWidth: 150 + maxWidth: 1000000 + autoResize: 1 + allowToggleVisibility: 0 + canSort: 1 + userData: 0 + - width: 60 + sortedAscending: 0 + headerContent: + m_Text: Calls + m_Image: {fileID: 0} + m_Tooltip: Total number of calls in a selected frame + contextMenuText: + headerTextAlignment: 0 + sortingArrowAlignment: 2 + minWidth: 60 + maxWidth: 1000000 + autoResize: 0 + allowToggleVisibility: 1 + canSort: 1 + userData: 0 + - width: 60 + sortedAscending: 0 + headerContent: + m_Text: GC Alloc + m_Image: {fileID: 0} + m_Tooltip: + contextMenuText: + headerTextAlignment: 0 + sortingArrowAlignment: 2 + minWidth: 60 + maxWidth: 1000000 + autoResize: 0 + allowToggleVisibility: 1 + canSort: 1 + userData: 0 + - width: 60 + sortedAscending: 0 + headerContent: + m_Text: Time ms + m_Image: {fileID: 0} + m_Tooltip: Total time the selected function spends within a parent + contextMenuText: + headerTextAlignment: 0 + sortingArrowAlignment: 2 + minWidth: 60 + maxWidth: 1000000 + autoResize: 0 + allowToggleVisibility: 1 + canSort: 1 + userData: 0 + - width: 60 + sortedAscending: 0 + headerContent: + m_Text: Time % + m_Image: {fileID: 0} + m_Tooltip: Shows how often the selected function was called from + the parent call + contextMenuText: + headerTextAlignment: 0 + sortingArrowAlignment: 2 + minWidth: 60 + maxWidth: 1000000 + autoResize: 0 + allowToggleVisibility: 1 + canSort: 1 + userData: 0 + m_VisibleColumns: 0000000001000000020000000300000004000000 + m_SortedColumns: 03000000 + m_FullThreadName: Main Thread + m_ThreadName: Main Thread + k__BackingField: 27604 + k__BackingField: 0 + m_GroupName: + - rid: 8298289268991983617 + type: {class: GPUProfilerModule, ns: UnityEditorInternal.Profiling, asm: UnityEditor.CoreModule} + data: + m_Identifier: UnityEditorInternal.Profiling.GPUProfilerModule, UnityEditor.CoreModule, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_PaneScroll: {x: 0, y: 0} + m_ViewType: 0 + updateViewLive: 0 + m_CurrentFrameIndex: -1 + m_HierarchyOverruledThreadFromSelection: 0 + m_ProfilerViewFilteringOptions: 1 + m_FrameDataHierarchyView: + m_Serialized: 0 + m_TreeViewState: + scrollPos: {x: 0, y: 0} + m_SelectedIDs: + m_LastClickedID: 0 + m_ExpandedIDs: + m_RenameOverlay: + m_UserAcceptedRename: 0 + m_Name: + m_OriginalName: + m_EditFieldRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 0 + height: 0 + m_UserData: 0 + m_IsWaitingForDelay: 0 + m_IsRenaming: 0 + m_OriginalEventType: 11 + m_IsRenamingFilename: 0 + m_ClientGUIView: {fileID: 0} + m_SearchString: + m_MultiColumnHeaderState: + m_Columns: [] + m_VisibleColumns: + m_SortedColumns: + m_ThreadIndexInThreadNames: 0 + m_DetailedViewType: 0 + m_DetailedViewSpliterState: + ID: 0 + splitterInitialOffset: 0 + currentActiveSplitter: 0 + realSizes: [] + relativeSizes: [] + minSizes: [] + maxSizes: [] + lastTotalSize: 0 + splitSize: 0 + xOffset: 0 + m_Version: 1 + oldRealSizes: + oldMinSizes: + oldMaxSizes: + oldSplitSize: 0 + m_DetailedObjectsView: + m_SelectedID: 0 + m_TreeViewState: + scrollPos: {x: 0, y: 0} + m_SelectedIDs: + m_LastClickedID: 0 + m_ExpandedIDs: + m_RenameOverlay: + m_UserAcceptedRename: 0 + m_Name: + m_OriginalName: + m_EditFieldRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 0 + height: 0 + m_UserData: 0 + m_IsWaitingForDelay: 0 + m_IsRenaming: 0 + m_OriginalEventType: 11 + m_IsRenamingFilename: 0 + m_ClientGUIView: {fileID: 0} + m_SearchString: + m_MultiColumnHeaderState: + m_Columns: [] + m_VisibleColumns: + m_SortedColumns: + m_VertSplit: + ID: 0 + splitterInitialOffset: 0 + currentActiveSplitter: 0 + realSizes: [] + relativeSizes: [] + minSizes: [] + maxSizes: [] + lastTotalSize: 0 + splitSize: 0 + xOffset: 0 + m_Version: 1 + oldRealSizes: + oldMinSizes: + oldMaxSizes: + oldSplitSize: 0 + m_DetailedCallsView: + m_SelectedID: -1 + m_VertSplit: + ID: 0 + splitterInitialOffset: 0 + currentActiveSplitter: 0 + realSizes: [] + relativeSizes: [] + minSizes: [] + maxSizes: [] + lastTotalSize: 0 + splitSize: 0 + xOffset: 0 + m_Version: 1 + oldRealSizes: + oldMinSizes: + oldMaxSizes: + oldSplitSize: 0 + m_CalleesTreeView: + m_ViewState: + scrollPos: {x: 0, y: 0} + m_SelectedIDs: + m_LastClickedID: 0 + m_ExpandedIDs: + m_RenameOverlay: + m_UserAcceptedRename: 0 + m_Name: + m_OriginalName: + m_EditFieldRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 0 + height: 0 + m_UserData: 0 + m_IsWaitingForDelay: 0 + m_IsRenaming: 0 + m_OriginalEventType: 11 + m_IsRenamingFilename: 0 + m_ClientGUIView: {fileID: 0} + m_SearchString: + m_ViewHeaderState: + m_Columns: + - width: 150 + sortedAscending: 1 + headerContent: + m_Text: Called From + m_Image: {fileID: 0} + m_Tooltip: 'Parents the selected function is called from + + + (Press + ''F'' for frame selection)' + contextMenuText: + headerTextAlignment: 0 + sortingArrowAlignment: 2 + minWidth: 150 + maxWidth: 1000000 + autoResize: 1 + allowToggleVisibility: 0 + canSort: 1 + userData: 0 + - width: 60 + sortedAscending: 0 + headerContent: + m_Text: Calls + m_Image: {fileID: 0} + m_Tooltip: Total number of calls in a selected frame + contextMenuText: + headerTextAlignment: 0 + sortingArrowAlignment: 2 + minWidth: 60 + maxWidth: 1000000 + autoResize: 0 + allowToggleVisibility: 1 + canSort: 1 + userData: 0 + - width: 60 + sortedAscending: 0 + headerContent: + m_Text: GC Alloc + m_Image: {fileID: 0} + m_Tooltip: + contextMenuText: + headerTextAlignment: 0 + sortingArrowAlignment: 2 + minWidth: 60 + maxWidth: 1000000 + autoResize: 0 + allowToggleVisibility: 1 + canSort: 1 + userData: 0 + - width: 60 + sortedAscending: 0 + headerContent: + m_Text: Time ms + m_Image: {fileID: 0} + m_Tooltip: Total time the selected function spends within a parent + contextMenuText: + headerTextAlignment: 0 + sortingArrowAlignment: 2 + minWidth: 60 + maxWidth: 1000000 + autoResize: 0 + allowToggleVisibility: 1 + canSort: 1 + userData: 0 + - width: 60 + sortedAscending: 0 + headerContent: + m_Text: Time % + m_Image: {fileID: 0} + m_Tooltip: Shows how often the selected function was called from + the parent call + contextMenuText: + headerTextAlignment: 0 + sortingArrowAlignment: 2 + minWidth: 60 + maxWidth: 1000000 + autoResize: 0 + allowToggleVisibility: 1 + canSort: 1 + userData: 0 + m_VisibleColumns: 0000000001000000020000000300000004000000 + m_SortedColumns: 03000000 + m_CallersTreeView: + m_ViewState: + scrollPos: {x: 0, y: 0} + m_SelectedIDs: + m_LastClickedID: 0 + m_ExpandedIDs: + m_RenameOverlay: + m_UserAcceptedRename: 0 + m_Name: + m_OriginalName: + m_EditFieldRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 0 + height: 0 + m_UserData: 0 + m_IsWaitingForDelay: 0 + m_IsRenaming: 0 + m_OriginalEventType: 11 + m_IsRenamingFilename: 0 + m_ClientGUIView: {fileID: 0} + m_SearchString: + m_ViewHeaderState: + m_Columns: + - width: 150 + sortedAscending: 1 + headerContent: + m_Text: Called From + m_Image: {fileID: 0} + m_Tooltip: 'Parents the selected function is called from + + + (Press + ''F'' for frame selection)' + contextMenuText: + headerTextAlignment: 0 + sortingArrowAlignment: 2 + minWidth: 150 + maxWidth: 1000000 + autoResize: 1 + allowToggleVisibility: 0 + canSort: 1 + userData: 0 + - width: 60 + sortedAscending: 0 + headerContent: + m_Text: Calls + m_Image: {fileID: 0} + m_Tooltip: Total number of calls in a selected frame + contextMenuText: + headerTextAlignment: 0 + sortingArrowAlignment: 2 + minWidth: 60 + maxWidth: 1000000 + autoResize: 0 + allowToggleVisibility: 1 + canSort: 1 + userData: 0 + - width: 60 + sortedAscending: 0 + headerContent: + m_Text: GC Alloc + m_Image: {fileID: 0} + m_Tooltip: + contextMenuText: + headerTextAlignment: 0 + sortingArrowAlignment: 2 + minWidth: 60 + maxWidth: 1000000 + autoResize: 0 + allowToggleVisibility: 1 + canSort: 1 + userData: 0 + - width: 60 + sortedAscending: 0 + headerContent: + m_Text: Time ms + m_Image: {fileID: 0} + m_Tooltip: Total time the selected function spends within a parent + contextMenuText: + headerTextAlignment: 0 + sortingArrowAlignment: 2 + minWidth: 60 + maxWidth: 1000000 + autoResize: 0 + allowToggleVisibility: 1 + canSort: 1 + userData: 0 + - width: 60 + sortedAscending: 0 + headerContent: + m_Text: Time % + m_Image: {fileID: 0} + m_Tooltip: Shows how often the selected function was called from + the parent call + contextMenuText: + headerTextAlignment: 0 + sortingArrowAlignment: 2 + minWidth: 60 + maxWidth: 1000000 + autoResize: 0 + allowToggleVisibility: 1 + canSort: 1 + userData: 0 + m_VisibleColumns: 0000000001000000020000000300000004000000 + m_SortedColumns: 03000000 + m_FullThreadName: Main Thread + m_ThreadName: Main Thread + k__BackingField: 0 + k__BackingField: -1 + m_GroupName: + - rid: 8298289268991983618 + type: {class: RenderingProfilerModule, ns: UnityEditorInternal.Profiling, asm: UnityEditor.CoreModule} + data: + m_Identifier: UnityEditorInternal.Profiling.RenderingProfilerModule, UnityEditor.CoreModule, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_PaneScroll: {x: 0, y: 0} + - rid: 8298289268991983619 + type: {class: MemoryProfilerModule, ns: UnityEditorInternal.Profiling, asm: UnityEditor.CoreModule} + data: + m_Identifier: UnityEditorInternal.Profiling.MemoryProfilerModule, UnityEditor.CoreModule, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_PaneScroll: {x: 0, y: 0} + m_ViewSplit: + ID: 0 + splitterInitialOffset: 0 + currentActiveSplitter: -1 + realSizes: + - 0 + - 0 + relativeSizes: + - 0.7 + - 0.3 + minSizes: + - 450 + - 50 + maxSizes: + - 0 + - 0 + lastTotalSize: 0 + splitSize: 6 + xOffset: 0 + m_Version: 1 + oldRealSizes: + oldMinSizes: + oldMaxSizes: + oldSplitSize: 0 + - rid: 8298289268991983620 + type: {class: AudioProfilerModule, ns: UnityEditorInternal.Profiling, asm: UnityEditor.CoreModule} + data: + m_Identifier: UnityEditorInternal.Profiling.AudioProfilerModule, UnityEditor.CoreModule, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_PaneScroll: {x: 0, y: 0} + m_ShowInactiveDSPChains: 0 + m_HighlightAudibleDSPChains: 1 + m_DSPGraphZoomFactor: 1 + - rid: 8298289268991983621 + type: {class: VideoProfilerModule, ns: UnityEditorInternal.Profiling, asm: UnityEditor.CoreModule} + data: + m_Identifier: UnityEditorInternal.Profiling.VideoProfilerModule, UnityEditor.CoreModule, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_PaneScroll: {x: 0, y: 0} + - rid: 8298289268991983622 + type: {class: PhysicsProfilerModule, ns: UnityEditorInternal.Profiling, asm: UnityEditor.CoreModule} + data: + m_Identifier: UnityEditorInternal.Profiling.PhysicsProfilerModule, UnityEditor.CoreModule, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_PaneScroll: {x: 0, y: 0} + - rid: 8298289268991983623 + type: {class: Physics2DProfilerModule, ns: UnityEditorInternal.Profiling, asm: UnityEditor.CoreModule} + data: + m_Identifier: UnityEditorInternal.Profiling.Physics2DProfilerModule, UnityEditor.CoreModule, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_PaneScroll: {x: 0, y: 0} + - rid: 8298289268991983624 + type: {class: NetworkingMessagesProfilerModule, ns: UnityEditorInternal.Profiling, + asm: UnityEditor.CoreModule} + data: + m_Identifier: UnityEditorInternal.Profiling.NetworkingMessagesProfilerModule, + UnityEditor.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_PaneScroll: {x: 0, y: 0} + - rid: 8298289268991983625 + type: {class: NetworkingOperationsProfilerModule, ns: UnityEditorInternal.Profiling, + asm: UnityEditor.CoreModule} + data: + m_Identifier: UnityEditorInternal.Profiling.NetworkingOperationsProfilerModule, + UnityEditor.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_PaneScroll: {x: 0, y: 0} + m_NetworkSplit: + ID: 0 + splitterInitialOffset: 0 + currentActiveSplitter: -1 + realSizes: + - 0 + - 0 + relativeSizes: + - 0.2 + - 0.8 + minSizes: + - 100 + - 100 + maxSizes: + - 0 + - 0 + lastTotalSize: 0 + splitSize: 6 + xOffset: 0 + m_Version: 1 + oldRealSizes: + oldMinSizes: + oldMaxSizes: + oldSplitSize: 0 + msgNames: + - UserMessage + - ObjectDestroy + - ClientRpc + - ObjectSpawn + - Owner + - Command + - LocalPlayerTransform + - SyncEvent + - SyncVars + - SyncList + - ObjectSpawnScene + - NetworkInfo + - SpawnFinished + - ObjectHide + - CRC + - ClientAuthority + - rid: 8298289268991983626 + type: {class: UIProfilerModule, ns: UnityEditorInternal.Profiling, asm: UnityEditor.CoreModule} + data: + m_Identifier: UnityEditorInternal.Profiling.UIProfilerModule, UnityEditor.CoreModule, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_PaneScroll: {x: 0, y: 0} + - rid: 8298289268991983627 + type: {class: UIDetailsProfilerModule, ns: UnityEditorInternal.Profiling, asm: UnityEditor.CoreModule} + data: + m_Identifier: UnityEditorInternal.Profiling.UIDetailsProfilerModule, UnityEditor.CoreModule, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_PaneScroll: {x: 0, y: 0} + - rid: 8298289268991983628 + type: {class: GlobalIlluminationProfilerModule, ns: UnityEditorInternal.Profiling, + asm: UnityEditor.CoreModule} + data: + m_Identifier: UnityEditorInternal.Profiling.GlobalIlluminationProfilerModule, + UnityEditor.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_PaneScroll: {x: 0, y: 0} + - rid: 8298289268991983629 + type: {class: VirtualTexturingProfilerModule, ns: UnityEditorInternal.Profiling, + asm: UnityEditor.CoreModule} + data: + m_Identifier: UnityEditorInternal.Profiling.VirtualTexturingProfilerModule, + UnityEditor.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_PaneScroll: {x: 0, y: 0} + m_VTProfilerView: + rid: 8298289268991983632 + - rid: 8298289268991983630 + type: {class: FileIOProfilerModule, ns: UnityEditorInternal.Profiling, asm: UnityEditor.CoreModule} + data: + m_Identifier: UnityEditorInternal.Profiling.FileIOProfilerModule, UnityEditor.CoreModule, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_PaneScroll: {x: 0, y: 0} + - rid: 8298289268991983631 + type: {class: AssetLoadingProfilerModule, ns: UnityEditorInternal.Profiling, + asm: UnityEditor.CoreModule} + data: + m_Identifier: UnityEditorInternal.Profiling.AssetLoadingProfilerModule, UnityEditor.CoreModule, + Version=0.0.0.0, Culture=neutral, PublicKeyToken=null + m_PaneScroll: {x: 0, y: 0} + - rid: 8298289268991983632 + type: {class: VirtualTexturingProfilerView, ns: UnityEditor, asm: UnityEditor.CoreModule} + data: + m_SortAscending: 0 + m_SortedColumn: -1 +--- !u!114 &21 MonoBehaviour: m_ObjectHideFlags: 52 m_CorrespondingSourceObject: {fileID: 0} @@ -297,10 +1557,10 @@ MonoBehaviour: m_Tooltip: m_Pos: serializedVersion: 2 - x: 8 - y: 628 - width: 1942 - height: 355 + x: 699 + y: 617 + width: 1402 + height: 374 m_ViewDataDictionary: {fileID: 0} m_OverlayCanvas: m_LastAppliedPresetName: Default @@ -318,22 +1578,22 @@ MonoBehaviour: m_SkipHidden: 0 m_SearchArea: 1 m_Folders: - - Assets/Scenes + - Packages/com.qoopen.particlesimulator/Runtime/Resources m_Globs: [] m_OriginalText: m_ViewMode: 1 m_StartGridSize: 64 m_LastFolders: - - Assets/Scenes + - Packages/com.qoopen.particlesimulator/Runtime/Resources m_LastFoldersGridSize: -1 m_LastProjectPath: D:\Unity\unity_ws\ParticleSimulator m_LockTracker: m_IsLocked: 0 m_FolderTreeState: - scrollPos: {x: 0, y: 0} - m_SelectedIDs: a8b70000 - m_LastClickedID: 47016 - m_ExpandedIDs: 00000000a6b7000000ca9a3b + scrollPos: {x: 0, y: 193} + m_SelectedIDs: 626e0000 + m_LastClickedID: 28258 + m_ExpandedIDs: 00000000ba6c0000bc6c0000be6c0000c06c0000c26c000000ca9a3bffffff7f m_RenameOverlay: m_UserAcceptedRename: 0 m_Name: @@ -361,7 +1621,7 @@ MonoBehaviour: scrollPos: {x: 0, y: 0} m_SelectedIDs: m_LastClickedID: 0 - m_ExpandedIDs: + m_ExpandedIDs: 00000000ba6c0000bc6c0000be6c0000c06c0000c26c0000 m_RenameOverlay: m_UserAcceptedRename: 0 m_Name: @@ -417,7 +1677,7 @@ MonoBehaviour: m_GridSize: 64 m_SkipHiddenPackages: 0 m_DirectoriesAreaWidth: 207 ---- !u!114 &13 +--- !u!114 &22 MonoBehaviour: m_ObjectHideFlags: 52 m_CorrespondingSourceObject: {fileID: 0} @@ -438,10 +1698,10 @@ MonoBehaviour: m_Tooltip: m_Pos: serializedVersion: 2 - x: 1951 - y: 81 - width: 600 - height: 902 + x: 2103 + y: 73 + width: 456 + height: 918 m_ViewDataDictionary: {fileID: 0} m_OverlayCanvas: m_LastAppliedPresetName: Default @@ -459,7 +1719,7 @@ MonoBehaviour: m_LockTracker: m_IsLocked: 0 m_PreviewWindow: {fileID: 0} ---- !u!114 &14 +--- !u!114 &23 MonoBehaviour: m_ObjectHideFlags: 52 m_CorrespondingSourceObject: {fileID: 0} @@ -480,10 +1740,10 @@ MonoBehaviour: m_Tooltip: m_Pos: serializedVersion: 2 - x: 8 - y: 81 - width: 480 - height: 526 + x: 1803 + y: 73 + width: 298 + height: 523 m_ViewDataDictionary: {fileID: 0} m_OverlayCanvas: m_LastAppliedPresetName: Default @@ -493,7 +1753,7 @@ MonoBehaviour: scrollPos: {x: 0, y: 0} m_SelectedIDs: m_LastClickedID: 0 - m_ExpandedIDs: 92bcffff + m_ExpandedIDs: 32fbffff m_RenameOverlay: m_UserAcceptedRename: 0 m_Name: @@ -509,7 +1769,7 @@ MonoBehaviour: m_IsRenaming: 0 m_OriginalEventType: 11 m_IsRenamingFilename: 0 - m_ClientGUIView: {fileID: 0} + m_ClientGUIView: {fileID: 7} m_SearchString: m_ExpandedScenes: [] m_CurrenRootInstanceID: 0 @@ -517,7 +1777,7 @@ MonoBehaviour: m_IsLocked: 0 m_CurrentSortingName: TransformSorting m_WindowGUID: 4c969a2b90040154d917609493e03593 ---- !u!114 &15 +--- !u!114 &24 MonoBehaviour: m_ObjectHideFlags: 52 m_CorrespondingSourceObject: {fileID: 0} @@ -538,10 +1798,10 @@ MonoBehaviour: m_Tooltip: m_Pos: serializedVersion: 2 - x: 489 - y: 81 - width: 1460 - height: 526 + x: 510 + y: 73 + width: 1291 + height: 523 m_ViewDataDictionary: {fileID: 0} m_OverlayCanvas: m_LastAppliedPresetName: Default @@ -601,17 +1861,6 @@ MonoBehaviour: id: unity-transform-toolbar index: 0 layout: 2 - - dockPosition: 0 - containerId: overlay-container--left - floating: 0 - collapsed: 0 - displayed: 1 - snapOffset: {x: 0, y: 197} - snapOffsetDelta: {x: 0, y: 0} - snapCorner: 0 - id: unity-component-tools - index: 1 - layout: 2 - dockPosition: 0 containerId: overlay-container--right floating: 0 @@ -752,7 +2001,7 @@ MonoBehaviour: snapOffset: {x: 0, y: 0} snapOffsetDelta: {x: 0, y: 0} snapCorner: 0 - id: Scene View/Tilemap + id: Scene View/Visual Effect Model index: 11 layout: 4 - dockPosition: 1 @@ -763,9 +2012,20 @@ MonoBehaviour: snapOffset: {x: 0, y: 0} snapOffsetDelta: {x: 0, y: 0} snapCorner: 0 - id: Scene View/Tilemap Palette Helper + id: Scene View/Visual Effect index: 12 layout: 4 + - dockPosition: 1 + containerId: overlay-container--right + floating: 0 + collapsed: 0 + displayed: 0 + snapOffset: {x: 0, y: 0} + snapOffsetDelta: {x: 0, y: 0} + snapCorner: 0 + id: Scene View/Visual Effect Event Tester + index: 13 + layout: 4 m_WindowGUID: cc27987af1a868c49b0894db9c0f5429 m_Gizmos: 1 m_OverrideSceneCullingMask: 6917529027641081856 @@ -776,9 +2036,9 @@ MonoBehaviour: m_PlayAudio: 0 m_AudioPlay: 0 m_Position: - m_Target: {x: 0, y: 0, z: 0} + m_Target: {x: 98.80451, y: 37.356796, z: 70.938614} speed: 2 - m_Value: {x: 0, y: 0, z: 0} + m_Value: {x: 98.80451, y: 37.356796, z: 70.938614} m_RenderMode: 0 m_CameraMode: drawMode: 0 @@ -820,18 +2080,18 @@ MonoBehaviour: m_Value: 0 m_Color: {r: 0.5, g: 0.5, b: 0.5, a: 0.4} m_Pivot: {x: 0, y: 0, z: 0} - m_Size: {x: 0, y: 0} + m_Size: {x: 1, y: 1} m_ShowGrid: 1 m_GridAxis: 1 m_gridOpacity: 0.5 m_Rotation: - m_Target: {x: -0.08717229, y: 0.89959055, z: -0.21045254, w: -0.3726226} + m_Target: {x: 0.056226093, y: 0.5396866, z: -0.03615714, w: 0.8392123} speed: 2 - m_Value: {x: -0.08717229, y: 0.89959055, z: -0.21045254, w: -0.3726226} + m_Value: {x: 0.056225877, y: 0.53968453, z: -0.036157, w: 0.8392091} m_Size: - m_Target: 10 + m_Target: 39.971313 speed: 2 - m_Value: 10 + m_Value: 39.971313 m_Ortho: m_Target: 0 speed: 2 @@ -856,7 +2116,7 @@ MonoBehaviour: m_SceneVisActive: 1 m_LastLockedObject: {fileID: 0} m_ViewIsLockedToObject: 0 ---- !u!114 &16 +--- !u!114 &25 MonoBehaviour: m_ObjectHideFlags: 52 m_CorrespondingSourceObject: {fileID: 0} @@ -877,10 +2137,10 @@ MonoBehaviour: m_Tooltip: m_Pos: serializedVersion: 2 - x: 507 - y: 94 - width: 1532 - height: 790 + x: 0 + y: 617 + width: 698 + height: 374 m_ViewDataDictionary: {fileID: 0} m_OverlayCanvas: m_LastAppliedPresetName: Default @@ -891,25 +2151,25 @@ MonoBehaviour: m_ShowGizmos: 0 m_TargetDisplay: 0 m_ClearColor: {r: 0, g: 0, b: 0, a: 0} - m_TargetSize: {x: 1532, y: 769} + m_TargetSize: {x: 698, y: 353} m_TextureFilterMode: 0 m_TextureHideFlags: 61 - m_RenderIMGUI: 0 + m_RenderIMGUI: 1 m_EnterPlayModeBehavior: 0 m_UseMipMap: 0 m_VSyncEnabled: 0 m_Gizmos: 0 - m_Stats: 0 + m_Stats: 1 m_SelectedSizes: 00000000000000000000000000000000000000000000000000000000000000000000000000000000 m_ZoomArea: m_HRangeLocked: 0 m_VRangeLocked: 0 hZoomLockedByDefault: 0 vZoomLockedByDefault: 0 - m_HBaseRangeMin: -766 - m_HBaseRangeMax: 766 - m_VBaseRangeMin: -384.5 - m_VBaseRangeMax: 384.5 + m_HBaseRangeMin: -349 + m_HBaseRangeMax: 349 + m_VBaseRangeMin: -176.5 + m_VBaseRangeMax: 176.5 m_HAllowExceedBaseRangeMin: 1 m_HAllowExceedBaseRangeMax: 1 m_VAllowExceedBaseRangeMin: 1 @@ -927,29 +2187,29 @@ MonoBehaviour: serializedVersion: 2 x: 0 y: 21 - width: 1532 - height: 769 + width: 698 + height: 353 m_Scale: {x: 1, y: 1} - m_Translation: {x: 766, y: 384.5} + m_Translation: {x: 349, y: 176.5} m_MarginLeft: 0 m_MarginRight: 0 m_MarginTop: 0 m_MarginBottom: 0 m_LastShownAreaInsideMargins: serializedVersion: 2 - x: -766 - y: -384.5 - width: 1532 - height: 769 + x: -349 + y: -176.5 + width: 698 + height: 353 m_MinimalGUI: 1 m_defaultScale: 1 - m_LastWindowPixelSize: {x: 1532, y: 790} + m_LastWindowPixelSize: {x: 698, y: 374} m_ClearInEditMode: 1 m_NoCameraWarning: 1 m_LowResolutionForAspectRatios: 01000000000000000000 m_XRRenderMode: 0 m_RenderTexture: {fileID: 0} ---- !u!114 &17 +--- !u!114 &26 MonoBehaviour: m_ObjectHideFlags: 52 m_CorrespondingSourceObject: {fileID: 0} @@ -970,10 +2230,10 @@ MonoBehaviour: m_Tooltip: m_Pos: serializedVersion: 2 - x: 2249 - y: 726.5 - width: 920 - height: 250 + x: 0 + y: 73 + width: 509 + height: 523 m_ViewDataDictionary: {fileID: 0} m_OverlayCanvas: m_LastAppliedPresetName: Default diff --git a/UserSettings/Search.settings b/UserSettings/Search.settings new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/UserSettings/Search.settings @@ -0,0 +1 @@ +{} \ No newline at end of file