diff --git a/Assets/Plugins/Easy Save 3/Resources/ES3/ES3GlobalReferences.asset b/Assets/Plugins/Easy Save 3/Resources/ES3/ES3GlobalReferences.asset index 3acc1e97..d6cb5be8 100644 --- a/Assets/Plugins/Easy Save 3/Resources/ES3/ES3GlobalReferences.asset +++ b/Assets/Plugins/Easy Save 3/Resources/ES3/ES3GlobalReferences.asset @@ -252,4 +252,21 @@ MonoBehaviour: - {fileID: 1245899045477576615, guid: f3be65e0ba670014d9aadb8a7d5018e6, type: 3} - {fileID: 2422713327444875072, guid: f3be65e0ba670014d9aadb8a7d5018e6, type: 3} - {fileID: 5517159431924024882, guid: f3be65e0ba670014d9aadb8a7d5018e6, type: 3} - _Values: febc7fe765b0407b8c8e90345544ac394753b1a281922a4e114589015196ee4776dac15926adab1e4620c9a232d1ed566ec628c1efb3c0693a954d39e3d36066f7d0f7b20b638d2be0a95163e7ea141dcc1f6b7591d3a73e949134651819880de72e3b2ecf0dbc66f70629b01243766dcd4f9bcf7dee1e4185b3b64b611e3b6ddb9f15d3e773b400f9c3036d9fa280501bc798c97db9902b9e9549f346d5832eb56db8a23f89a7640733ce3e6d52283bf75ba0ec3738db268ac131e2db057329631d4d0b8c6d0e3ae43753f6ee4b353bd2e2253bebcd1860a0d4110fb94b096d897f3d09494eb63919371d8cc711425cd33b203e27204208f885cc092656e150e128c851cd967a1faedeb3ac8643a066696941ce49905954dfd41e62741c9c0aa24726e7840a0343e00326e5bdac65587954269665689864e713ed6a2aafad56a7eda6d48a710f5ea039098a96961a33923a2536bdcc8f3956cf3dcf0690ce165927cb38a6b5d322f7c42dc76a0f38733adf6e4e962d5c724536aed9f37e2a0bdb44464957c307518d1d6d10b64b0a6e7bc20b8ff906d175ab6ca57cd054ac25fd0313370dae837788d136e691bc77608932df9423e3b3338526c6cbf834351a137c1a389017a534ffce0da47d9d35274df6eeb94b093a0b8594cefd75351f440851d414a23ed05fd81393f2f058b123a51281feba84311bb826be24e5a3a934ef519d2cc8208573c74de13776471b2de3aaa287b71dfe7cdf46a2847f54867bbdc7e042f5ddeb7b72f23af89a976e0042eb07904531eb0bafe6f4f03cf60c72c6667aae67d83705be2614c5e205e248a312fd7aec8b041ed350852f5e12e7049d558c480b488043b79862cbcac2a022982aef40f444f346a79a2ea1059b0743e0f8591ae3c7fa2d3130b993d419467c3a1a11a336459a24f05e953a20def4426fb65fc8a58b1358f90d04e060c5c571d2b1d2df9baa98256d81d67ace3ff30fdb03fd7487f0de3b24b60f810b51bf247fb2b1b92bc13b5741d788d13165e2476a8c158cb8c388005461687b65a3ff1b24340358a005f80142ff99728e376301c37373b1d6f9dd45d64ff173d548421cd7a3aefd628aa7636cec3148a304701d0398480ecfb2ba1d13492eeff76bd706bc7d4932e661634ee528ba16386a5d2e222b8a926faf1324ea91eb185bb86b273cc874da44c2c8630469d658085c1a5814ff32331eba696b6f91e488b384552cbd92da6ff683e95e632696d9866c2d4553bcd3a41560b90932df6bb3de40b07741fcea64c975b168176f69bbafbd0e02659edc6f57fa421c4de43d1617368022761e988981c87c3693c4457b358b4774d2694e3f634120464531e71ac865af2011b8ba6fdb7a7f63dd5a236d4b39183f9dc945aee841be3402ad314c4f68000774658ced46b6504c174de2429b726e0c19a8b791aa5d085276ef6d2e49321474591be0b0c606851a79f9c5352400cf703e2433a7b16f5c2e6edf6435237e961b396ee87f91be4612239c0aa4233e7677e7a55dcb88d4107f070a9e49d5b59b7e9c41c82751f6647d3f927f2a9e42277d89e9df153fdca55f4b6bcfff42469d23fcd8dc3077c189625a00baf3af2a9114c7d35516e91e8c796f198b64faa45a7d76e4cc1385ae6d5597fece2223c2790767e24fa936e0676b0de32eca03e1ca4ab765c42d4645930bf57524eacefd8d1cb65bedc01984f90d2e25547c193f025f28bed33a98ca8b20b0bb6153fbaec60fabeeeb580bf6ce3aa12e00df0fe90e34887cee722e374a7fe70e0f5e22a61123ec64d22b53a95330f098dcc6cb6a2f3853d2248762c7c172a46c3f1a052d5d041cddcb73bb398821d6427d6aa47b4c51c2b84e0a356679245da0771895c7d53dc4281c57ca5c0c735c465ea5452b171e5977a3a788b62300769e73c717ea69523e1b1b6350b4123f2055d2455efa01667d0c20667fd04e4021a0600022e3653626c79132d15cd5220a5d361bd5a8be626b68deac856f7d7aba654bc01482cc6abd9562f4c608cd307a0b62c6c47d5753ecf0758b0a83ed7892cc0db4277b417c3d600f10f3774c4f67e5b9f6dff95a6fc92d2f12633149407d249c0605e7f6013519fcda7298b975a4262324caf69875d8821306b3d1e76f8474ed588871c418a6f4bc4de93852016a5c947150da992f0af17fc19603432768e6fe4375176058af2698f75295c034652546000a1f4747974a8bb1e79e1c627676cb950ee7484a337fe927519074615183074115cf5849624826405ceebf10f6c992369faabc7e24043374cae00a27bfed026ba65e77591e81f6560d89a621c206ce7802c23e58cb6ff915a9200f3607a97e250268104af8cb12e08f8380331778b4c0616e04788e4ef72839780d3480bc0fc008227d6a65b0a365dbc8b97fbddd5f4c93403c39f51e66c109c4892bcf8152ebb588515211c625b9c6e3456d1a197deffccd1c6aef77703b386d535e2778955975cec93474f3a3a69a0aff279d2c24dcbe87d7629dbcd92df98c8a5d8c391ec187611c171c4d84f6d6892f1b78499e0b49769f5050f8bcb8f59c3b0081ffcd2cd63e5102b6c306f3f331c7138dbda4432b96a60327908e715a9bdd7fb3d55a4a23ebc6694c1035d377e76274982a9943f3b4ea029432abf72c06a56ff67adc3add40ff1f + - {fileID: 2800000, guid: 188dfe7e559f13248ba2c41eb5a59328, type: 3} + - {fileID: 2800000, guid: b0f85f7da5042c0448a526d5ecacbfa9, type: 3} + - {fileID: 2800000, guid: f87b5805002ec9649bcb1b96d8a16ba9, type: 3} + - {fileID: 2800000, guid: a7ec9e7ad8b847b7ae4510af83c5d868, type: 3} + - {fileID: 2800000, guid: 02f78a9ec76d40f49bfac78c64a754d1, type: 3} + - {fileID: 2800000, guid: 3ee40aa79cd242a5b53b0b0ca4f13f0f, type: 3} + - {fileID: 2800000, guid: f66c4aa44c09b6a42a2b5b9f9334d824, type: 3} + - {fileID: 2800000, guid: 3028dc075ba8c584d9bc7d1e0255e038, type: 3} + - {fileID: 2800000, guid: 93f09189124b21e479fc891dbc1b93bf, type: 3} + - {fileID: 2800000, guid: dcc0ed9263c0d524aabeb5f4bd75ecee, type: 3} + - {fileID: 11500000, guid: 9541d86e2fd84c1d9990edf0852d74ab, type: 3} + - {fileID: 7218990644326672365, guid: d07bb3561db3fa945b43f4bcffbd28fb, type: 3} + - {fileID: 2595472339849441637, guid: d07bb3561db3fa945b43f4bcffbd28fb, type: 3} + - {fileID: 5075741739930138068, guid: d07bb3561db3fa945b43f4bcffbd28fb, type: 3} + - {fileID: 4373037038321954862, guid: d07bb3561db3fa945b43f4bcffbd28fb, type: 3} + - {fileID: 2800000, guid: 2fd6421f253b4ef1a19526541f9ffc0c, type: 3} + - {fileID: 2800000, guid: ee148e281f3c41c5b4ff5f8a5afe5a6c, type: 3} + _Values: febc7fe765b0407b8c8e90345544ac394753b1a281922a4e114589015196ee4776dac15926adab1e4620c9a232d1ed566ec628c1efb3c0693a954d39e3d36066f7d0f7b20b638d2be0a95163e7ea141dcc1f6b7591d3a73e949134651819880de72e3b2ecf0dbc66f70629b01243766dcd4f9bcf7dee1e4185b3b64b611e3b6ddb9f15d3e773b400f9c3036d9fa280501bc798c97db9902b9e9549f346d5832eb56db8a23f89a7640733ce3e6d52283bf75ba0ec3738db268ac131e2db057329631d4d0b8c6d0e3ae43753f6ee4b353bd2e2253bebcd1860a0d4110fb94b096d897f3d09494eb63919371d8cc711425cd33b203e27204208f885cc092656e150e128c851cd967a1faedeb3ac8643a066696941ce49905954dfd41e62741c9c0aa24726e7840a0343e00326e5bdac65587954269665689864e713ed6a2aafad56a7eda6d48a710f5ea039098a96961a33923a2536bdcc8f3956cf3dcf0690ce165927cb38a6b5d322f7c42dc76a0f38733adf6e4e962d5c724536aed9f37e2a0bdb44464957c307518d1d6d10b64b0a6e7bc20b8ff906d175ab6ca57cd054ac25fd0313370dae837788d136e691bc77608932df9423e3b3338526c6cbf834351a137c1a389017a534ffce0da47d9d35274df6eeb94b093a0b8594cefd75351f440851d414a23ed05fd81393f2f058b123a51281feba84311bb826be24e5a3a934ef519d2cc8208573c74de13776471b2de3aaa287b71dfe7cdf46a2847f54867bbdc7e042f5ddeb7b72f23af89a976e0042eb07904531eb0bafe6f4f03cf60c72c6667aae67d83705be2614c5e205e248a312fd7aec8b041ed350852f5e12e7049d558c480b488043b79862cbcac2a022982aef40f444f346a79a2ea1059b0743e0f8591ae3c7fa2d3130b993d419467c3a1a11a336459a24f05e953a20def4426fb65fc8a58b1358f90d04e060c5c571d2b1d2df9baa98256d81d67ace3ff30fdb03fd7487f0de3b24b60f810b51bf247fb2b1b92bc13b5741d788d13165e2476a8c158cb8c388005461687b65a3ff1b24340358a005f80142ff99728e376301c37373b1d6f9dd45d64ff173d548421cd7a3aefd628aa7636cec3148a304701d0398480ecfb2ba1d13492eeff76bd706bc7d4932e661634ee528ba16386a5d2e222b8a926faf1324ea91eb185bb86b273cc874da44c2c8630469d658085c1a5814ff32331eba696b6f91e488b384552cbd92da6ff683e95e632696d9866c2d4553bcd3a41560b90932df6bb3de40b07741fcea64c975b168176f69bbafbd0e02659edc6f57fa421c4de43d1617368022761e988981c87c3693c4457b358b4774d2694e3f634120464531e71ac865af2011b8ba6fdb7a7f63dd5a236d4b39183f9dc945aee841be3402ad314c4f68000774658ced46b6504c174de2429b726e0c19a8b791aa5d085276ef6d2e49321474591be0b0c606851a79f9c5352400cf703e2433a7b16f5c2e6edf6435237e961b396ee87f91be4612239c0aa4233e7677e7a55dcb88d4107f070a9e49d5b59b7e9c41c82751f6647d3f927f2a9e42277d89e9df153fdca55f4b6bcfff42469d23fcd8dc3077c189625a00baf3af2a9114c7d35516e91e8c796f198b64faa45a7d76e4cc1385ae6d5597fece2223c2790767e24fa936e0676b0de32eca03e1ca4ab765c42d4645930bf57524eacefd8d1cb65bedc01984f90d2e25547c193f025f28bed33a98ca8b20b0bb6153fbaec60fabeeeb580bf6ce3aa12e00df0fe90e34887cee722e374a7fe70e0f5e22a61123ec64d22b53a95330f098dcc6cb6a2f3853d2248762c7c172a46c3f1a052d5d041cddcb73bb398821d6427d6aa47b4c51c2b84e0a356679245da0771895c7d53dc4281c57ca5c0c735c465ea5452b171e5977a3a788b62300769e73c717ea69523e1b1b6350b4123f2055d2455efa01667d0c20667fd04e4021a0600022e3653626c79132d15cd5220a5d361bd5a8be626b68deac856f7d7aba654bc01482cc6abd9562f4c608cd307a0b62c6c47d5753ecf0758b0a83ed7892cc0db4277b417c3d600f10f3774c4f67e5b9f6dff95a6fc92d2f12633149407d249c0605e7f6013519fcda7298b975a4262324caf69875d8821306b3d1e76f8474ed588871c418a6f4bc4de93852016a5c947150da992f0af17fc19603432768e6fe4375176058af2698f75295c034652546000a1f4747974a8bb1e79e1c627676cb950ee7484a337fe927519074615183074115cf5849624826405ceebf10f6c992369faabc7e24043374cae00a27bfed026ba65e77591e81f6560d89a621c206ce7802c23e58cb6ff915a9200f3607a97e250268104af8cb12e08f8380331778b4c0616e04788e4ef72839780d3480bc0fc008227d6a65b0a365dbc8b97fbddd5f4c93403c39f51e66c109c4892bcf8152ebb588515211c625b9c6e3456d1a197deffccd1c6aef77703b386d535e2778955975cec93474f3a3a69a0aff279d2c24dcbe87d7629dbcd92df98c8a5d8c391ec187611c171c4d84f6d6892f1b78499e0b49769f5050f8bcb8f59c3b0081ffcd2cd63e5102b6c306f3f331c7138dbda4432b96a60327908e715a9bdd7fb3d55a4a23ebc6694c1035d377e76274982a9943f3b4ea029432abf72c06a56ff67adc3add40ff1fc4fb88abe026306a257644ee00f6f95d017e14c428b22129f09971978a3481674a9b7aa640a5fc02d6e4cf576a1f6b2f05ec5b21d3dbc60fb7aa814033bc2e100a22c7648f5f625a7c169a0c8278940fd9bffc15f34ce503fb429a233be4797cb7f8e7ec20f59c7b038682fb81b64821a93bb1f1b121fc00a5de67711ad6ec3fe2b580a2f1390a3b diff --git a/Assets/Prefabs/DynamicUI/GridPosText.prefab b/Assets/Prefabs/DynamicUI/GridPosText.prefab new file mode 100644 index 00000000..cbbb6e61 --- /dev/null +++ b/Assets/Prefabs/DynamicUI/GridPosText.prefab @@ -0,0 +1,173 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &2595472339849441637 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7218990644326672365} + - component: {fileID: 4373037038321954862} + - component: {fileID: 5075741739930138068} + m_Layer: 0 + m_Name: GridPosText + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7218990644326672365 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2595472339849441637} + 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_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 1, y: 1} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!23 &4373037038321954862 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2595472339849441637} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + 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 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!114 &5075741739930138068 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2595472339849441637} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9541d86e2fd84c1d9990edf0852d74ab, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: (10,10,10) + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 1 + m_fontSizeBase: 1 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 0 + m_fontSizeMax: 1 + m_fontStyle: 0 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 0 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + _SortingLayer: 0 + _SortingLayerID: 0 + _SortingOrder: 0 + m_hasFontAssetChanged: 0 + m_renderer: {fileID: 4373037038321954862} + m_maskType: 0 diff --git a/Assets/Prefabs/DynamicUI/GridPosText.prefab.meta b/Assets/Prefabs/DynamicUI/GridPosText.prefab.meta new file mode 100644 index 00000000..aedd86b3 --- /dev/null +++ b/Assets/Prefabs/DynamicUI/GridPosText.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: d07bb3561db3fa945b43f4bcffbd28fb +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scenes/EditorScene.unity b/Assets/Scenes/EditorScene.unity index b8f56822..96808613 100644 --- a/Assets/Scenes/EditorScene.unity +++ b/Assets/Scenes/EditorScene.unity @@ -5052,7 +5052,7 @@ GameObject: - component: {fileID: 980378618} - component: {fileID: 980378617} - component: {fileID: 980378616} - m_Layer: 0 + m_Layer: 8 m_Name: Plane (1) m_TagString: Untagged m_Icon: {fileID: 0} @@ -5069,7 +5069,7 @@ Transform: serializedVersion: 2 m_LocalRotation: {x: 0.7071068, y: 0, z: 0, w: 0.7071068} m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 10000, y: 1, z: 10000} + m_LocalScale: {x: 160000, y: 1, z: 160000} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 2088191384} @@ -5087,10 +5087,17 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: sceneCamera: {fileID: 1464630160} + cameraDistance: 0 gridPlane: 1 baseScale: 1 scaleMultiplier: 1 distanceFactor: 4 + logScale: 0 + gridScale: 0 + canShowPositionText: 0 + isShowingPositionText: 0 + textContainer: {fileID: 0} + positionTextPrefab: {fileID: 0} --- !u!23 &980378617 MeshRenderer: m_ObjectHideFlags: 0 @@ -5350,6 +5357,37 @@ CanvasRenderer: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1027966090} m_CullTransparentMesh: 1 +--- !u!1 &1028237567 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1028237568} + m_Layer: 8 + m_Name: Texts + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1028237568 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1028237567} + serializedVersion: 2 + 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: 2088191384} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1039576898 GameObject: m_ObjectHideFlags: 0 @@ -6470,7 +6508,8 @@ GameObject: - component: {fileID: 1258299958} - component: {fileID: 1258299957} - component: {fileID: 1258299956} - m_Layer: 0 + - component: {fileID: 1258299959} + m_Layer: 8 m_Name: Plane m_TagString: Untagged m_Icon: {fileID: 0} @@ -6487,7 +6526,7 @@ Transform: serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 10000, y: 1, z: 10000} + m_LocalScale: {x: 160000, y: 1, z: 160000} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 2088191384} @@ -6505,10 +6544,18 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: sceneCamera: {fileID: 1464630160} + cameraDistance: 0 gridPlane: 0 baseScale: 1 scaleMultiplier: 1 distanceFactor: 4 + logScale: 0 + gridScale: 0 + canShowPositionText: 1 + isShowingPositionText: 0 + textContainer: {fileID: 1028237568} + positionTextPrefab: {fileID: 2595472339849441637, guid: d07bb3561db3fa945b43f4bcffbd28fb, + type: 3} --- !u!23 &1258299957 MeshRenderer: m_ObjectHideFlags: 0 @@ -6559,6 +6606,28 @@ MeshFilter: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1258299954} m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!64 &1258299959 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1258299954} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 5 + m_Convex: 1 + m_CookingOptions: 30 + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} --- !u!1001 &1269237534 PrefabInstance: m_ObjectHideFlags: 0 @@ -8404,7 +8473,7 @@ Camera: m_Depth: -1 m_CullingMask: serializedVersion: 2 - m_Bits: 1 + m_Bits: 769 m_RenderingPath: -1 m_TargetTexture: {fileID: 0} m_TargetDisplay: 0 @@ -10856,7 +10925,7 @@ GameObject: - component: {fileID: 1892830641} - component: {fileID: 1892830640} - component: {fileID: 1892830639} - m_Layer: 0 + m_Layer: 8 m_Name: Plane (2) m_TagString: Untagged m_Icon: {fileID: 0} @@ -10873,7 +10942,7 @@ Transform: serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0.7071068, w: 0.7071068} m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 10000, y: 1, z: 10000} + m_LocalScale: {x: 160000, y: 1, z: 160000} m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 2088191384} @@ -10891,10 +10960,17 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: sceneCamera: {fileID: 1464630160} + cameraDistance: 0 gridPlane: 2 baseScale: 1 scaleMultiplier: 1 distanceFactor: 4 + logScale: 0 + gridScale: 0 + canShowPositionText: 0 + isShowingPositionText: 0 + textContainer: {fileID: 0} + positionTextPrefab: {fileID: 0} --- !u!23 &1892830640 MeshRenderer: m_ObjectHideFlags: 0 @@ -11294,7 +11370,7 @@ MonoBehaviour: openPrefabs: 0 prefabs: [] idRef: - _Keys: 19fa7c8b7a3a004fc497f181b6e026078db49f8d499d21408923e4a607ce3a595981be3ba9ff4c769b8f130ebe47887ebdfb98ebe5da7049210e18f42f147d60c6bf413c35ce7d12db1f64f3ada3bb2d821326d7a7c363136666d31a094491222bbde8f495825a4e2f05ece33b3881253ca117543370bf2531ac8ebf10b7f565a03ac9712b88ca58c516c5a7b6d8f161d9edf2f0d7536a18cb29cd07833a5a3b4c7ae726cc17482e559c16f3c9b08b330df8ea680ec3b112fb2cdae8148f027d6cbda2a2ea985b33ceaaec1a66c03614f318fcbd24a42f1ad60e54113f577a421594d13a0cca1e4dea74ef6b3011a507d84e972e95f1f208c29e6ca1845b5768a29ea858678d9a45dd71c72675172669d2216f05e07a6318526a8851fe85233ecdfeb27a2a54c77acf2f0622887385307cc810cd2b8a733f308aa04e356c1a4343b0f897872b4935cad6208970be4d2cf27d077b2c4e3454a429a74d0d848d0856374bba5b830d5a1c80b06ff717be50822ffba2e9a7ff4587ac62212c429608d6f7162a2a64072a2505286ef155af18b8b137cc9492aa430bb82f7606ef4e587d4feeec0bdb7915a98a7574396c8e2e0a55a2690825a356de044dd24122aa16573d9dc4051c54111fafcd938f2c107505edfb00aa3545750cacd20fd3d118628f24eada7da532296de43a2f1ab3ec2f40174152c0174e5ed6d08c86c931ea726390e0507706ff52bcaf0ecfc98bbb39566936366fb9b255a7ae89207f8b652d88310d54f616106692fde55d0708af69fa88a9abd063e55043de1680da2a9e6d579975acc6cca75b961aacfcfe5ee932d224e50c4b614d14bba7a043638e92631518771690e1bb19dced44e075745b028dafe7e182ac1c0b232d20cceb1df107aed62a36f989553501753abb270b44324d7d8ea6c2b2ca297f8214402bb6de62c8eb8e3d9b0f7256185d35a921a8142098b19bdc42367948b6e493aae93bbb6f41153dc39aaa1c28d34255148ed5933b025933dea2cd7425bcb047a020454d5b0b9ab1a5634bdd403229c26b55bebe32908e9848d620fa19a0ac538a933d5645ebcc055ad1400e0de2b71574be99675bf8a3102955feb74a2c3eb04c15e369386f97b630278db0358deaeb8cd4eec2235a9ee69cec23c44b4e60051edd993b7bc5600352a5affe328d95cb10d3df8656e07cba3b9865c35815ed87a215153e001a10e4ef5c6f3042f4c3e5cd2819166d6112b9f17f5bdc220857778404d76103b3cc3b0938e3500b561e72b38fd7ae010c88f1098dba07392870ac4269fb7604ae4a6e96bb747f19d5bc4403fc346500d5432183fe0a3d37333e0b5c95650540fe330a555345654c454a0a5cd01af12c5bbfe973432468198e568f78da72731205a296ce63ceff4027fefc7d6914ba336fc2c1a196537425df9e0c581f69b2087fb5d4317015c46f3f1e5c5bdeba5d2da2335d6bcfa490744d574d55512d623419a9a46cb8d49f27bf55d4d839d10618a0f1cca64d60c95de66211e085c9c552c53a96f52a47e2097c7d27a25cc7c274f36e41d3df3e7d29069a951142fc403ece277d3175e7cb6713cfd85bb1677d2f550510a9164da141cca3d4dc2d14ea6ea5bc7c61339be514a16a1771cff40969d4dc573e3c894702705927a4eb212c639e52653be5bb871dc8f266b125e31d2ee5aa499d965dc71b8416d70ae562427d168be888de916169e4e6e6a61d506675d74849db0d1bb064843bb211345bc43b4b385f641da77957fcf2e794bffc0d74579148e75640d90c451ccf2c5994d52ec0e48b27b6757d3674c4468ee18fc36730de2672b5b1567f8427fa5248fdda7745bd1bf9af30a24f6f760e1d8a8d2e169cf46b8ba7516b16ed2e96b5bbb6e20eeb540f7f4be5844b79e7ee151671a373a4e26d58e142691f576b98633aaa8921a5ddbe04814bd97a61c4cec06828ec5598b5a5688fe724522d9a4a7d9611d651d36249674d03845f0c6272c125d7806fe2bb353081161d28c122f29acc03601a51f08a4016e1082f30fcd93d5728ea47b79ca0e2b6cfb242a9d65f214d9d8402fab5b34eae36c45bd0330fbeb978ee2fcf2a0fcb24f222621fa9ab7d0dce725d9ded17f76d9f671ad6c06605d0efbf3940a506dad2e62f21bcf924dbc733497d038a08ad7f6666006a66281ce82d2f6619f66f6d35134e18a31cc8ad1ac7b966cf550a7f3749f10c0e64801184e106752a681216ffa3837967cd366983232521642549cf9088373ba9d2726c53c7843229cf12c86a8436660b9a28c0e4238a4c7ac4f0e2446c5178d6b4a90102e51465b132d9ec6c3ec954f282992fe09c9f2a6d7eea356c2d4766a7c4e03aa5e334559752fc7c47b5d52b06e06eab61a6d10e4f7483a3a0ebff69f6c0358c0bda930f4d7cc274d62caa67c537732b4a1ce41e4e79870e9eaba95cdaf4fd482fda400b1dd3bc5c8f8419633140f88e2c72327c9afae1cbeb46af06ac297cdb123537326592c57c95cb2c5c853ad052230733029b09f8776f245772a3ca0276dcc8b833ca146a1411560f76a926a9289a1bf169092fa58ddf9c3a7517c82635364a7f4df403890f9d1ef144fb812196cd7f0c77286780f491baec2ca6f61b9da400071600beb18fe2b7e76e86d5d0c1605cee62a2681f2dbdd87b071d79c190e8d373290a985bebf6d6a810a8113e79c5a1a532eec366e53a852b5d6e466fed752cfb7897a7bf6f1b653f6d0c571f4e8127805ec3515736dfa68f07ba29f321139f0d5a44ca68c07e191e316809447bd2cc041c05186bfcf1e65731b726cef277b7a02e29b17188403b8622365139bf2fc071347e1dfbee809a1671c43e2f82acbcd800b78df10f42a4017c8a9dcae15d1d2c62fff026423332e57357fd8ac87b1d9952a64ba6e19ca69e24acf1a805a8b07076b2f15811115bf70962f3f016365a2b20b01b6f5693eb1d01ec4babb2d341af68b923a2b5bf5a3f577bfae382678d6e455f423bce6076d56121e00caac4b88c2cc83b11cc7422a66cf74d106b78d3cd635aa4d5c6ce0a81623dbb7e5b896e826999417fddbe2caa248eba28bda822986bc1a561f21387762d2def8c67a4f06e2bc76e0cb0d75f9409074dc689b94fcb3f83cf281fd236e5297dcb083a94c883282de7fcf721e5e73b505595e4f7120861c01328054c9b302af4022af362109e2f2bef44313d81ec1a39de7736f3892f04d9f6479188c48f2cd00d4fa9d9c99a72d4516d76698e182e2abdda6dc8354025c623782b35791639d9b3d6a7a4a251738016b3a41242a73e716a0b132fe4277ef01d45592e93a97c88b5ccc634dda046cd046c4031e66938e3bac7e8e2834609651b747a894e2067a554335438e44327f1cde6ed0971e14a83c7852308adbe3ed656ef8a3a32d12f111d50acd2e01727d13d91114c1fc636e65f0ee602b9d47fb09db1bce5ee0a0037e7d0ee86e42c0594d428359a07b5400093c0f470edd76c5c69ab821abdbe49752385bf4695c3063fc69ddc8e9305462bcd6bccd4d0d55ba8110ae281cdba388e7dda89469779443d5decb893f8ef4b57c39fcb0af7421ed256e985ffc3c54695167ccd2c878e567135e0f7dda3ff6a97dca81f440971457a5478000a8b6376e1d8360c581b142d9608e7a1456bfa07564a0d94d4a7b01976a0d20c469d880ac65d0dea36916d6c9048b555461adb44f08c58c4a390ef5f95c81e74014cd75e59579ae6381f0b32a134bf8204e4ed2a3587910b5c8b361874e22ba04c32db059abd3cfef63523236f60c0820b69a9681af4bf491b069c3f3862d4b8df032e396fa51cfe8a26f82ac953246344f2490055701c155611592b394b9a3c1ee2f55a1bf1f247ccd2d26907fbff1c2bdc80674ad889b2a6521d6e8770a5d5a1229266b75b7f2034190274c65840a4d302386b6bef9ff2fdcf4149731a6c98de17942073ba9d5fee78c30e36204474695ee17c4bff0675b00ed30ed406d360c39fe63b929d3615656a0a7bbc9bffa1e8fa965dea7e69180454e330dca220b7df4ecc352b1196c41eb28f0fb8cfbd62bc27462b9e145567c25c1264b234edf3be1e113122b8fe0f916a78044273957140d5010ea7ddc4fa9baa221fb56a55f91470e032c3ed7b7ac540e3304aa888e7b67a23199892ea67d8a8886e3c1377a78f0b3b603c0fdb93fa5c2e4a7d24561caa96003a473b91a75a470a6a98d8a779cf888976dfb7c7ef7a257b79309bde95c7ed4c3e31f237a3cd6f326f0a0bcfdefe65af544078f6f57d7bd96bb14684e8d850aa19c651a98b6a058644e66f933b98d3f00b2986bcc9080f6c13622ba77a1bc4cc0bcdd33418335b655093c331b81c194e667a0d386610db497d85bc8c077879970f0f788481ef1da14bf438ddcf86935441de988d54da39ba18e886f1c49546fc655bb9abaac6878c5c94128d280185080d674ae51107ece948329c69750e65e03b339ae27b70de8910f4c85e45f9d5f44230b5c90e524e0b3bb3cbf2f392c067444ffa037bccaf833cc7382a1dcc2e985810164f89baa0c11e6db27652245a744ccf5d09012d86897f338cd68b7928087ba8909556fccaca71c2da8aeb7d87841910cf4ee764334c58a6fa99d2b4b6af48ef5d3562f701db50a0ec4a79453ac06f8ef5d3174c1eba739bab7b57cc374f33e8b0b4bff010953f3aa8bd48d085bc6c8f107a773d9bd8085ae78680199d8806d542fb322c3bd701c5f052438afb772099171a234e388e4c2754e52869eaa729cf3be1ed7e1066351884c3d112e46d5e6f651930b7ab540e30b7f427a95067244828744e1a89a15782afc42d049fa043e686b803d1777123e6d31c36058ddf69c4c1ae08e7270a3159380d2f096af52e49ae98b99394ae0b30a5bee3e9482c38bf2dc0f03696c440ddb7321eb7fe79589046c8721a11e50ff42a8e2455fb084deb57827e23eba63fe7ea3e5f84b41043a71961f0ce5126253061b78e7fb1fe1dafe4090f80f77b5b5f77a5faafbb6b40194bcb6f5cf81c67325c4fc13417bf66e95cafa0ab01c2616a42b0ba08de2b15cef7a8ca7d6d7a48c7a140dd473d9076360c11520bcb94177895fbe6b89da010779b0bc3910b1657d6f8d809c1e51a2db23983fccdd809677340ac188e6c6f65425065ac31cde52b0b4684ec0d74a95cb12999f1219ddd6091a34f505efdc96a778c388f7f92041aada8f9eca2098a1717f73748fa9f7920d239e571826b330710ef76803c19dc1d267e4578a3f1bd652d666756341165281418be46ac9298418b0e234c6df62403e5e6dd84a5ff83207c7f9fe8d2893c21ab6192dca5698e6d19fcfb4debf52d37bf9b8fb2cb1f7d12632035d30c5091144a44a00b64485e7c9af1e14ba87bef3415472d17ecda1c792f3ee5210169112a5ced08811d51173c1498e218ad38044208bf98efeaffb24e78d513294d197913de9bc755f4a5f472c8f3b22122d48522ee53a4587019624112c65ca895c75274e17d8ff9a085bb5a84f72e7aec45f709d4439108b966e8286445e5c71c857105ab9d738398585c3b235fc67b358fcb4e3e5b38030c80505f8c1b790f545aaf2aded7ea8238e50f2c6133d4e7d39ca10cefcc763eb292062b112c088221b218375064a6f285b279584b0b643f553733108693df771b8e887022ea8ff32272f4137463f8873648d502070803712d5ee33e24caeb90be938541ff778b61706a531b2580bce919456724969712e6917d191213cd0aa46f1fe61b4948bd6ed2e296715c1f97ad1bcd5769330f2656a56bd27e5e798a6a7fcbc427626e326103d6f7794f8f66ffde477605ce555d9b4c48970269e3194a2ddb4b47bb613d1980af006e089f8329ad8393699374d2626a4f9303736893d3d7b9a515c1c36dc4f81cd00dac6395520e1a3741c3fe060f90aeac4987b19c151667416f40f7684def3ef65fc13512f827c6c3729fd495d6c0b4a5702326930582843000ef2ab5ebfc172f7451f7dc38f44ca559a53229fecc411024d172884e43310665b3bb8c884c83232cebd3bac9267ae62c0ca800cede208b30eb46b749d8a58c07352bcb74a20bd94ba96abb70518f6b7974f4ce53ff24fd05a7b33453fabfba69778d3425444cbb785fad79abfb90fb7a27903a0b07b9a46e639b074285f15957b56455eba24a932df6e6af1de16fed2d08907c2b0ffebc3d91e4d3616cc5e57e068a30d4ca1f8f4dd6899052f7f44a01adb6a64188ce3e684fecc49a919d5d1f913a3f667a40ea6299d2f8f8b46bb74c636f7e7e392f295b7b0e972a710d11084a917cb3e0d4635c64a0c24c961d3d7dfe38077daee2e43420cc9b0651a2dc31d1ebc4188b4cb1268a12b2f554ce9500eaa57737e24bd950156c11dd818e75022a8e9ab75fa21a596646a776e2dd613a4f2e8a3b57e3697465666ad918140b761d05cd1280c357590e579e14898dcd4fd0ba74453c4ad26948e6a6d7e4914a3b87acd350e64fa645f0361788a129f93f4d80847622460d718e44af390f09c167649684afb7e531381087a00e5ac9367d20fc133249add740a062c3a29f6c351c41bbf0aade71675dae7b56c1aa440b2ea16b6129923d941fe9be9f084b3a9479024144bbc135ba3fb4c3492055d86e52e98bad405a84f6148c3b7122ad2a231fc58fce6fca7e1953531255ff144f6a536ebdcff41324d423d6c8e863663b3136bf1d32b2090ac57fa5e63df301fdbb7aa86547c714c35042a23df12748362346a2af44b8156a72765608158d8cfd312387e09cb019d65c68cb6f1efaefb50e0dbbd7c659ed7b8a0360e41da91826af4f35de0077eeab2966d89a0daa850e790c2f4ff0466d5a45210623d8f69ddf0754ae6031888835886e5e29b6c7b7f308009da3c217da7df956b7a2a21ac263493b123a1ea71ade021dd042c7772fb63c7ab09d30cddad64d6ef2a5255e2b0e32065beb55aa1d3f5b6bd1232b799bc9610614502f07a1d6253d6cd3e4e2ec92b870132d7d0feea64635eebab31fb028e06cd71f0753e63e8923ce681e206d4ef36047017b60621737084865176dc4cf85799acd84581be2876b43e48d5ec21afa3560e40856f944352515c42d58377d100bcc33c15c77f25205e4babd3577630b3ed440168219f64f424619fc1c6ed4f63cbfde62934955223ac9a61eba5969004fb9ee2c789492242a403da17752cd257e7443f8358ee800094d68634b3d25ad43c2cdf560a7e12421646f6dc5641d077c9ef2d76cedfef1586b5456923870ea2450ae18c8858c6c08b028f297d8dcc13793a408bfc606a2618009ba1fd68ee62a599175b6053ff61d5a21f74885d21f3480cc869fc554f57bc95f7102847b6138bd380e95ad88c353677fc89f1496a07b5aada0e318c3c473129cb7d3ffca2160467a8250f525b5387d1d3868c382d80ae90b1981dd745c46ab7d976a28063c76f2c0767ddb6dba55fd649e9ba661cb2c3aa6c78588bcf956d6d27a6970de5f3467952322c5df5b0169cbf2625097344a5dcab9b453163936788019aad29804233d2d5cdc06bd407019532672818bc63d8d7ac4e8e618477a44620013b013f65902491f2f632edf78910e074f42b08742d02fc6fc085fa95fb495675b43d2402af8c75519d8cf4c116620addb941af0402240939facb6b80d5bb9b078eba1e25d9fd8eca9bc4571413d2b93a137c6c24d0388c73f926d054a6c9e8c6e7f3b03478abd53ea3f23a95b209c5d9296adc737f70d848c97dd1009046820267c915b6bbb8c6a7831398126798f07fdeed08e3325545ba7282e594331a21057bc30274e91be04fbd763fe1f8c5e5a747ee13f6c86ddfcd1f6e82b4b6bd2468e282969014c345e794d13ed33767c9f03f14739566925554f5f218e6271da857b3c542541e747b7479dacc820cceff4fd96cccc1d5543f00a5e6f4c0d57638c02646c1535a3e0eb38ff80f3425c351b4e158bf83da6a3cf7f452f9f566d3b10c6df394437fbd5a54a1f6ce22c51ae66938a9b22336b4e5bc19c95f02e8142ccc4702c636a7a525340e6ae1e3ac0a2d0f39533e02ee723ced16bf92b661b89349ec75962234bfc0edcee621943302100f9c5fc984b23faab93fa35d57f26ed5a6fe3bc011a05f43e9241bd1c4ac4ee5eb606ce5e1622807bccadcf2815d871fc234276d97320e6f4d1be06091ff7bcf901e4550d0d10669c6161acd20a2d9cc6dba4801f0b5941de172b9aa27fcab738c0cd60f93646942401c87bf669f9f9983d7592ac258f1fcf312c96a754f7e3d5e71b6c287295fd2138a421d4224b751f3101650a36f5edcd526e38f5501230f51b5af0b2732ed92c8d4c1a35500b0e1948898aad6ef92fda8bd446373b266123f6c6851e5d28935fdb929783254982b99fe15338777d780b0732445257bbcf867cf4c12452bbab8fe31576ff41e5483f493ebd3e5a089df1a4c4cff71c420897611eff1a09a80ce436c45561057ac9ec7b839b9602902b7357cf808e75a3aca10ddf9e231b6248f14ba2751e5efef61d8dbc72a05a7394f1497371d92865a56ce84cabda24592e2133731e5a1bf4eba7279dff46154dfc9b4bacdaa82b2119e5fd083612531cf9338d516ce76f11f3aa78354d7464ec8134484625d1342ab2eda6c7a2ed2a0205bc69cd2b9946e40a5c9f8420612c5c7eef79fe36f309d80049fca572c94c202b8acf6ef4683f1811d3ae7d8e4709ae3eb4b74c8bd338073abe328b6a1371411080599591bd6717af61ec62458c4946bf551bd87e6754013c36cbcac94b53019e9293f1128c40fc1ccefbedbf9b3e518a86b440d0b540872aa52d3776ce1f044a11fe28e0c53433141fbcb06b6741a0f77a3f4296123117aef33893a0f7794daef7a2ad9d1671c552812bb0f88f1bc3648c3ffc8fdc6dc81fea292c02382b0b996f0274c493031ff7850fea187e0e3e0ffbf72d3676412f76953278c061377652e0e877725801d0895df314ec58505f2414e3f9bf0142f14ecf14a63a845d6ab26567c7696835b7fac8b69469561ad0e5919cd5453034abdd07d65cbba50bf344769d790f760abbdf99f387b8d779f8b445c0a8e788501d6543169d6d2772602c3baf0c465e3f708657b4df24bc0cfa7132efff9a4c0a44da7fec349f9329faf36ca583d8933ded7baede6f2b8e07aa361c2c3b37730588b994cd388df50e1b80bbebb8178921210b2385b7d585184b77966bbbbf643e7f99e236bc3afa7b70bdf8f0e77abf6daefa4d475bf8bc5cc052e74fdb9e3526e6f96b51f9c0de18ef57eb06236bce2fb72918b60dac9978aac18a96ac54602e88d2d6e0e5116613e3cba7fcf249c62c211697b2867e186d6d1c58c8c9b89365f7bc8ff542af1559c205d242059c850c7849473c13ec4b0ab96973c9b89e492bc9be0c502644912ed50e107f5429972f974c4f807057511cf7665054dc21ed244458f43c562acd432589eedd0335a11c005dcd93b1364420f0d7b8726a19f40afd343bfb345bd93e1993a5f9462f1f2cf892acc6107f290c14d42c2de240ae3e82071f310659175b848eac45dc3e663f497495023a45e57df4d1189fd154a359be1c88c0f011da5156f8bc7e2d1bcf2a6fede56eaaab0338ec9c3c3541788a27330587bfb5a54e379b4458320263aa26fe12f241c6eefc121a50ad8c4d0f92226d95b032a38ee03761522c99ad2eca4fb99ccdac95341244f68b599a073d16754dc95f68eb223673f329a2181a95bf471bfcd4b042e58c5ea7f53c18344530233cb64ce4ce616325d440b96c91f92a734aa1b50412c6b733ab413e091ae1c0385ac654d1e2a4167c61f9dd012b20cc5eff188f10a06d3f0e818112cba5599111b832640ca4b85f758a1fd63650ac377929362f05ccd8e232c6137f55f2ff4679c117e49d5295f70f5077bcedff290856c2e37ebf75647c4b96c9561a7a382d38452fc26322cda135e3f4e2b62f53c863acfcb8b6e7ecad14e5e82e22c29dc81bb0b6c2f721325847f9db55aeeee26c086eec31b868ee675b6e4757e694c7c152e186536baa968f32d382b460429fa07e0543eb228330265bbdf3ad1469f3371e0f1dbfc11cc35741431f119b6cf56b15204db2858e0366356f3c0fc4b5a5003297a56340ef9d84616afaadd27bf27a5073046568f4ebb93ad371af23df4eb6260eb6510ee4edb411155e3b634258445f38a28cec19044f65bddf6176ea026528334ece2fd158e65c6d7318bbbd08ca18f057d0b093c01f70a937fb6be579310e264c6b2637471e1877f08a6b178d62202974f08e3869fb1390e33a17907999123cf2613eae6c234825bf03f51b4e595ae7c151169f13961df0492739a9e97f187dd63cc2ce7f8e2b0ec80a1e7f666a312f316a493608187c03f7a67eff14fc1372141f799eaf8246edf96bb7b4e6fb0e5b886623319bbb319cf99c55adf82c533d8d3df9b793ec552746091acaddf30b8636ab12d2f78d71f23afe0cffb9b87bdc2edcc2b63f0c0e3d3d8fd69bab6d5d45fbf1186961ad2e1218a59dac7019492f654a26474f70304c87dae4a43e25347af8fc291c147538c74447e729198c5c10ceeaf3ca95b0663f1dd9790f38fc187c62c9a85d480214c6b6a1a429f25a114938221b7aca0b34563e972654231127f80ee2c40cfba37f33aecbcf7998f26af7a07f4c7d7d384f341e9d1cc67f976c005efb09cd113d09452deb55f7e9850ad311d8352b84dc6f1f6cbfa3c0c6877126212624c5156a3fc4853aefae55483cb362ff0ec1fbb121dedf487ce068ad5684420f84e45bcc481186b6301b3c5f2a8e49b798c0b6926e4679ab9fe349dc3ddea3d0c8e7c1da3e5b0261941b5d5c58c1c68d2323ca557af7d495e313830e116e8f45db3d4e121b1073c1485b9a1a2ecf650080b20cc9755bf0d094e3e98c2d9a916a800f14dd1ecd9fa9644cea3f1ce65115662cd5c616c8f6f5720334617096486ab615f31d398d77d0f95009993c97279a5bbbb81805d812b445ff9d5c599bcdcb2d2a7bea13e9c5d5db45dc254c4072cd6445b20d0a768789ace911544ac61890b5ff35cf1b05af1f06f5ba47014f1e5f5ce867b630af51150ec45b5b1e68adacf7bcddf22a977761acb63bbf140a6e744a03854040bbeb62c6af9e6b4f1670c92adeae11583de62c8af9f533204ff8e5f7edfa053851d79ea536c8b279fe1c6c23a73b53522609044166d60f31b4c3c1a6f67af26f9005e6f6a1f91161ee57323c62ed9c1e0cf90cb59ea3515c9e14c14ecc7a9748985b7577f84cc064e8ff940f8935b92b8e21cb0a19cfb231acbf1d200a43f97d3d3446174d53316ffe6047bb4caac55d463bee4d2486564230247f7b811a5432954cb9617714d773586e53e110b0f500fabf512ec275ff577687a277bd806b7b4876af669bd82a1bb4f42c1092c9bc0930ee46e4d885040b4b10eaf0725fb5282631d578a0a3642d15928432b7103b3fbd54b930c5785c3c8f5be57411c55613ab5436c39e35a9738a18ce4500d2533a2c545338e719126173eef8047626c024e997dd0c47ffde79ac45bbde46a13d6150dfb6428de1d46e43d451b03ca4fc4e270ca4970ab80c2acd33735ea1cce52f4f68aba922fc4d073d91b1e4ae714a06b69348c5025aa908141e8aa5918a330eba81ffa550a57123a553a587f8d8833e838658f17ce0d30bbfa2bc4187f2994ea15dd5d28e5b495c046c1fafb5210f145d36ddf4cdbe6d26aef464f362b2ab4cba56e59b02b1b022d0b4f6e80082c0626d571cafea5b7f1d11517f7d40c24048e9930aa1c38bee537a443b7e4aa9d82acbfe79f46a039d152bfc54abcfd29d0c8c52ff9387e1611f69c835a52000d26686abb7c1c3ca4c13cedf8839c8bc7b59a82e0a9ca96bb21664a5a3ccc6bcc9292bed327a895fd03dfb143b57a6d7a925458efef2f635bd0da232db9692e62574574e9c4911091d481e9f34aa8fd1d53577be88a6b1422b073d2355e106911112d2dec8dd4c140d0bbe61cb3afbad3b76dd02f54838765f676404d5c0ecf3b37c739ec9b34d705b102b485e2cfd2d820e65df9e5cadb6a153dffb280927857516b18629665253e646e489d0e6b214c83582c725cb910f2a28bfe26db7669bc750418b227ba8179e1107a8c0c87977fa0c3da1751055be573e50ad598f19d11f7eaedfd7c2c8bc216799c93a16b09e5037dd79f30710d8a50074d48185dd90f83329dc7e86e4da353164a083f5b51dd95089f1d76834d62a2cceec77a9f81d2c726e5967846d7a344dc3ed732ab8aee146b6cffcf302cdfc4aa8e66dacee1a5f45ee0c822a7c22373f3481aafcad1e1452c9ca6a657cde1c24d8bc70f43b968f159a93fa1375fb6711ca21fec66dd38535a7db70716b3c2007baca88c27ffec56f5fb4a55764835f562f1ae7acd6f5d80b2ad79a54fc6a68494306262178dc9972a0b54a05f0e4e04ee11f3cb8fb541723ee35b2553eb0c30868111123e4057c688f870fae8eeeb15068771fc36134e16a9ae5d13baeee250c8530e31b0b5fb66db406b78784e26b0a844ae35b96036a71a08d06728ec83649f99bed4f15d2e36d0cd79f564312044f9b452711e9de982f2e51f31ee3a7102c989eeb5bf9f55775210f8d15880b9435e1f584940523330b35fa815b464f58307da3849d156350245896c00ccada4b63de32d6335b71e0746cdf90f477b2bb7069be932b90324a44b957c2919cd9be0fba1bc787d973741183f909f4f4459b5b24b05bf4b8e02d54e992edb233721145625fc5a315cb680bb57e5076c3c1c774bb676cec7eca5665491c9f4686c1de090a4f919480f74559474f3e3a90b691555b616e9adefdc367085fec316aaf9277a4a6948bcfcd0b3b2112a42e8c1cd400520b13dbacbcd408ee0673dff4ec1167bdc6de364b1c25735632bbf1a2f2f313751420a06449355f85636236a5d4b80d240b71c53e9db536e59f31de78c5aa04eda09420348ffd0605c24e174611322aecc915ad63b95212cb5686047a14d84048a2b6fac067276bf29536ff133283082ea435be24a79859f2a7ea8b1601810f16f12f5ca4c7967b5d5643327dad00682c82292a21e6e35ff5a31397ae4d7e0ce9b9eafa9d1f520ac44ee38514352844a7825e93d857ee2f0dcf6601b4ffcd10d73649c4c305ca0cd1e09a2cfda1b53f86310fd31115cb6d3545123147afa93a802c5221149b7e5e49ae9c470ee5d2507c59781af15ede13fe4806f7e703ab20c89f522fb06cd415b3b18b6379845f4f73c2b6ed368e49204f3f24cb94867644fd84ef51c8fefe172e8e683fd37a997916487bdab2411557178c81106e5f552b3b4660fd74b117713f314058d9f6b32ca25e1535c2f4506655869a6d1fd8cb732e66ee797362295f8b83f2d1fddbcb13d01675ecca6b9a42ab6d7be4762793582f405ca575ba8609650e06e64b38e11b5bdb8f44da9abd41427235e4eec5d93f029fec56d5f46659ab077fb4ed3a474837014b3b8ce9ac0c795ddc6f1b380e6d6a87fd2847469c3060215c4379eea942a9ccdfa9212de251e1ff3b780237c9286653afeb192fa6334ff044e3d6f43265c22518404e3ff84cba6d789c79ff8b1a174e80d06599ee46695499695892cb1f50febe7037ba2a7ce07b2eeec74492796197a88194e7a8508b4be6289dba8f549340609fb36b7849253d0084e2ab686318f00a23b53fbb68cf479dae4e68a5226f651bf74f394050be05b9bf719e0b5e83b6044a90c496223c771d30fa319c37a5439fbd80d6130854b327876db0f42a7a1eaf26d99467601084c4884c4f833f4a56a50c7399257878ff767e6840eb705d9f0fd34b404516a81b55be0ff2e33313de4e9ba8bf8e27efc81fe4d600a45cf93f74f753c262186a5c947150da992fa6f4bc4de93852018474ed588871c41823b108f30de5df20b970fe023b5c0a39c39e3a4dd72bf128d49b79b948fbc25deb5a995efe64fd7580d4965860ed4b6f452740a5448c816869b62b861518aa57419941c5d10c8a457b0578741c13bb72c6f6f0fc0bf79b5e0b7c58aa41c08d68a2d292e5c2043a0d33baa9d28850b32e34634c8ad25b4d15876ac9dac0ad3a36bc3f090c34230e0ed3f45c964713583fbde330c6a16ee75b308676dd740396467a83d57c05d22756bd8f6bcceb7a8545fff6d32e0ef2143265c44a80257a583e3255a4874220037da5fe123d822d284dededbc779dcd170bfc8f31a467ae29031ab623948b61d64db2a5867f1d54046a4596141dac03be1b9980a331a55b1d570d0b4482494dcb7093f8bc5b2b6bfa7a3a2d4f01a7455e053ba076e18e8e055d8ba31bc33edb3a710b868e596d7b4e4c92d1df17c958e40108dd2b4c502afc06ba26ad32bd84a7052b01c0b0c7e9180eafc16398cfc6525dc1c6f52624358c65b970aefb72016805f0305519a4f9de04d331f694d66968042b23d92af82c4d63dc5026e09ae621631527de36e78b234ac2e1b9640ea5a6135490be2b822986454be253c5424b626f1ab4da484855f1356575e98014203e3ef52afefc8351b63686aa7039c8537748ce09224e316da55566a47b3c19c87847e96d5112b3681f5f9e25520342f46a2fb651858937153a68b01b92c5bd221b03f565081080c4f917958e062baf62603674ffd0e3d6ab48213956c790313e0a38039f580decd2e120d36690bb1af263056cfe9b761e374d5279afd94034ba682bf00e6b57100340425227085000237967b22d34593aa82d7b66d4b4a635eb2d590d51b201f435834539c01b5b07e42023a06fbf81ef4d0d32284564acf772d041be1aca1c0786c2207578536a7c60b26f5778de093c89fa1301b1133f15810905e62a6d19a7a29f4dfefbe58e91b6a63fbd5029776f04f635e148e4aa8c7cf50b92b1af593134e905182b0b40a36c824a0ad381c557929615df5cc7a1420a3f7b100ee0bd9aff8f0dcc2fb560feba6323b83ac7710374b80dec9050b24c40e50a628f8b2833521d2935eb928e3f5f8654abbd75d5c700113a89aea8979a21990bea403c72b973a9651d9da6ef07464d4b16a45d09b5bbd16360394e1e044b3b135387797f9cf80e1e99240c9a58febd30040b52c1815d3e2f6ed8d1f3c2c86a69d9b9428ebfcde80e4e848f6e51c9f45d0880dcef62036a4fc6a8ee74c901e12fb9a3c19fbb2f70379730674a2c76017723430e05ecad813733d115be1484f929e911c7c76ae00c14d5d9bd0713dce43e6415af3725f784396b5aa84dd576c261b8eecdb950181d1670396d1e602f5e7fbb996e8a1b1efe072905b39abc15b85fe9a340fe5561714bf899c8ec8a66d864b928923b0737452a122b1daa34482c7a0e33ca43109fd51cf6457d4b19156e7022e71f6b7c83a81fea6a10807e1b7f3f3abd0542cfe48a1a5275304db4904327677233e49868086ddbea2c7baf569b26c63d85d61ab040067239bdf1b4f6d47aaf38190ce79ba75d3b8d991a48f19503332d725eaa17b92d4258d6178f57f22a69d76372e9da427f5b463441f5396e367b64dab92948b2232c932610e5828b3104c177c148309e0c70f2baf14cfa237ac80c9d2b7c38014d7679b9aa4cce652646fcbb484ecf80493a31b6c8723e2827b8dbae93ee5fc722b7a1d7f120b7ad353fd6b431880b3f5e736b54b0c024d3070b279155bdd3ad6d74ac995110353f4b5d1e9d1259a8b902550e78db7c4d2d2e0ea8aaf91587996d6db8ffaccc4a55441100bbe767782751d39f505d3e46807acdcf7d731e5c25096a972c9691d2fb35b2515ab2acf88b268ad267be45e0da798295a1471fc79e1b48f5bb76d4ba1b061790bbeb863c3f3aad75ab67e14b192a4457f4b4fd6c285d748a6ab334f3c66506efb163e87a9f6c939e37c34c885344a9996556e4c9c503236f45d35030fb7dba18f275eea223271618d5421455de32aa390a6406d2783c29ae3f7835cb1c3d664bf6cc6921aa4cbc8c6bfd9e0817794e782917259676736ed061621d63a31e94676779f8d5da313512a85f4cab9c778ebea77a677b9e20693ad5435dfbe730d5825e98c0472e5917b3cd4e4e883906ec5f77981003f30ccebf34a8c6188339d588ca30f6cbc7478f4e901a48ed6f1f5ade01287e0be64f896976eb354cd453b9d4c8b9fdf7d2465e15238dfce40c6aa371127c5bdaaa4713a8a6b681a4d32ac75e5c6e094fa25e3d6e0934833ec218ab98e2e4d0e388478e09b6c50e887e1709ae3d730b78d8047c2785ed64615806e08b1e6b46aa6d77d33232a00d0a9e1f40dbc45b01f48e3896831e163005de15e0fb03221f68b5285849dde06880275b1fe340dba9ac4b77d44955c8fff1aa3e92c6e23b112078152f655630447ceb4524f930ad89858d6401cf58fe844e2026766a65807bd61f01cf6bdc29ac950349d941d7a16bf1ab45d0ab58093f7a4b24580e45749ab833472e8f4adc10467369d4a2d7c526c1917bbf20afcf7e16c255e0477f4525881b6e8be18d235831cb7538eedce152104a698336cc4597fc3a18340a43a73a47714a87693a44336d220feb24978f3ae0020f6d1637a4ab9ffa78e3590fb112dbc57fa1d99744b470620ea824a68d9a5422140d5314517f15f5259c4cd772822cde0fa1e8d0ec87b83b2179464ccf468712387b24be65f016ff751c8d1ffeb72b6e2c03b6ecb184358d54e80c343a9d3a94143a9ff65e6d781f4818b9f6eb28c5264e29e02d038b3b434e4fed821c1e3b281e07f53be7cbef417b2aca36c2d3878323e6e6627e6897a075e344ac5bfb3b66531feb0ee2fff1e639604dd2aa8dfadd2a8e5afdfb6159796296b1ca109b9c77109d1c1f416a99dd283463e2e53a0a1817997d325ec2940e7765704c4e26d59d02c5e347aa191f942837262ec53b5e9c749ab3771d6a184e080fa8ddf94d8f015d392055e2ae3dce47eda469173c2c4c3d0ec1b4735e7f9822cfb0463e03728a39278c8b1b08bac62983bf0b0e8265453af51aec8cda8eff46b878b05f830c4b5f2fa2efb0a031343888def09f7489a0686c0c49e985fe5e498bd162900966a5700b6b3d2455f5db26b1dbfb04619f2d411819ca8f5635e52d013824cecea32f11856094084b7b137631229b60f963ab135cdf871063eae540af95d972e5550a0e5416773dccc9726b2d41c078d0462664e3382aad2b3f756584ab471faa7aa479d256f21d1492b86d93e3c25a55a1ef686e758ead2b5de26c8dddc2781191164d9d47a6795309505105f7a5393b49e0298043e5b883e5ef1cbcdfb035ecf64e757386a9f154307f25f910bd0dfa751565253c2c6e439bef59eea534f0424b3959f93106cd5f5efc503df44e6c5c02e84737b4ef503520ce279650dffa656f6845b7e8eb3691b7fa3940dc314e4d83fc0f71844572a417db1901d1c9f080fd14320d18aa16cc20d00db6299bf50a7c2e1b17483d96f7866e13316ea6cd13baf91b74f7dcba11e1277e45496feeaee38a1354d088e02af5a1323cfaca4011f6473df163c14460b72053acc42d5aa7ed6b1b5ddc445186f55c6967f008f354976f4ea4620b5890a64543fece03b4deb94c62af353466c8478a4e71516211c4673b19bf2add6fae2dfe1454de5776f020fa5d701eff44d53dce2065ba64a6fa81126993ea740896bc117d362012e9ef145d6e4cbf81e26680ee7ea443f60c37a7e52dcced09db9402f32c2f7c0db52be53051a40a0d45fc0a3012fcf66553c6044621fbc0e2fef47d264e4c51ee1d725c56777447692c999f31291d1bd68b6747f2343dd1501438d1ba25e5bf924df84d84574ddcdf7f9b19875a7046e3efab4e49055eba5943ac6aaf5d72bcb725f21ccf6b60d128bbd88d30224bf6847fb5a9d032f768534c5837fb4974c20da82e53b3548987b08388fa2113ea7c8da3ef2f121c8dea2e8ac9821268338dd0646427ae62aad9f62ef94daa0d8a6762dca9585a45510ee4bbdad7740b9a19b616ca86773d32d4b337dabfea25338ab4720c693d2d9b146b1f686cbc10dfa00d7e0b911f6edb40b0e92829d430276eb5aac515b565ed1e2c10d5f5722881107d7fd7bf305e6b4597ccb9540572c0c5070649edb43616576f139bf1661a337895c659abf71862ecc1808216546619bad09bfd78716ca3b8957fafe23c5d544d00ce1534341331105ba2d4cb4c00fcf6d2aa3efde755ea026a124177c844d6e1d3cae97aaf4e111c9612e2316827946b7c47ef6de1513555e413ca22d1562860330d077ee97d4784bb5a93f9374765bd8129057fab44c224ff3f5fc318114b3fea81fd5a201583fe8e74283be42e72d386785c04a4590d78cf2c7e28dd7c94555b2d1b46bb3f236954fcf2df9301f7d13274c35f4b4ee44475858bf396592212e0d2dfb71346713a6539a65fb32de5cd35acf668b8330b0c49d6d136b32ed3fbdae0fec0223f4114fc7605ee577c6fb85f4241159c475aacc8d36d3c753a873667ab84d32e24540a11f59ad0c6079b39b9766a098f1767dd79ae08b02d7e8937fd3c550201431a7b12c8fb58532a8c30915809135a70c77f12624cdd2c5c246c949c2c754e67c8897019e4a7ec3f30a321d71fd574762473fd2aea9c6f3cb04a5a713b4902018107df6c7c8bab1f51a2cc5a4770bf50868e281f0a22d15d389ae80411d52c260319527729f17345644ebb85649a4527e20e1f163f87006e20244398ddc9c17a76a65e60c2367a76fe927ba622a93d2d20ef19df0abd997c18e3974e350c222e1035fb0af8a5ea19899618ad0b5a4c376f4d96ecad32347afc00a98b5a138f41699f4f593a10ee4eba2e4ad31e91e75242263dbec35f896aa733d1e2f7fad82c4c373e2e7953d47ffa89e1a930ea346a06427d21d2f57d0771ba0403d3a92502cd89fb405f32bf483c7c77714204a403c7627c0fd0e3f434c3548706eea5e25dafe477b9e674ca38fe3aa2b09211b66ceafe35cadacb2c4e82d083f45447a6699d1bf0eddaac381d47d6c8e90e2a1c461ff4e9870e700f47181ccd6942df38230935926f37934411e202dea595ff9e3d9fac136d43c0c00e2b38d4bedeceda689ea4f244bc8b7d75502896eeb04a2219277507f10c5a8114eb45c0b1fabb622bc4bb3b5c26eddd521882c73b43300c240fb5672dacc40d37fe7b8523423ef21dd8322d511e24ed404035fd58f5dd621a52e4c0af2290d800ae035aa2730094578c1b9deffc44fa1539d9931e3d9ad31fe6952ea281bd0568ca55cdd940731e0d155488b603463d482a8544212d0d2948def905d518ea217c4dc373d2cbb09a3bf05a444f8fefed44d47b47c5860cda2bcef4a2a865d9ea2fa79ed5699a577c714298bd4840a42c599f9e05d70df1d6354574f62ec457de2cf8b83045281c8460e20c67cc1ca2ef0217197732dbbea4671758cf8fed22222331f08f3c83f6da28f8a2c24abd1c654a64179e9ee3493741038e0e80c2531b4fc617944545dc8a28bc8df859a5d378098fd6b6792a85c6284fa2800c2e4e35492c7ba3faa29c26651d38c726cb45293daeb338f177266240af94095da381050ac34185207673ab0db0505cf2bea05c0979425e7a1643d105e89d56c95a7bf6603dd1e90dcb49b321a1babed935907d4ef113d7e6df7f2006ec74c626e31d4d2c47bcb5ecb64f3e3071c3e52ffd54c4562007d846a4108042f2ef2157828d3e4208eb21f24569053faef88ae3650ff740391d46ebf693d0573df8f9c62ee6ad01fed8d7eecc2dee4a0398f59c9a64a81cf8e01e6547524c64bd782f3d63cc6d384a88e58d3709740bd204127176920d5e60e931b237b74554758d55baa3d351362bbde7234936541095edc9b49a422429942f21856544fe02cd3a02c55e2eaf02b3dc46b9abea142896211e49ed90b9316a2b4fd2f4d79b6e43150e7cc7e6903d6333fd410494817e444a1a866248f05ef3342e8a7d82f72441d7fcc0f890ef7b4da453de7104c902aecd173ff222d0048bb032cc67e35145726af656944d9b2dfd2fb1fd619a666fe1064b897bb3c122c22fa170150e6d775d7eac62b5a3d81a3d6e3673fd5c442518a2ae6d2fdac040a8d418c3ef0c420b63d7a51fb837da7a21993a1616cae065da6fa4ff8f0d7b02fa0db7521e11db4397e834cfe1e4986ab0d5e09a65eb3741644df6b9afc30d125233a38c57e447475db51badae651a009f34314180511c270bb9dfea77da3d6b16c182ef0bd8bd5372fd8ffa1232d7160629ca1442e178421273064447add10d552932f44f43090b1006738eb3edb53fa0bd0ec51524dd7c7f7ea9df6cc890529809741891107057fbfd77783b1f300db68a1bf958d3c83561db4205f1fd7e71b2493fed64aa4760aaf4c9088a794d56d0b8860169d86a7770ea39b495c6a41cfd32e37b8b2c900c1fcfc4e9c4d50d0f7fae615c039a9a0573b5d491cbd8067815f2e2d392a4af37f6de2d22eb89d16522d6cbbcd7ffdf68331711befede270829c32b2e0cc68224a26699da9387e6151d90910af2b55f132db5f9564a91c918b625f8275ea3585cad58a2c16745044503d9257090cd0421dec1ffa832d32633cf4d6f477ff18c401611a165ec62537346c1a7dc48c5577c2a19051fa2018f27cd916e4b4ab33b0c666587a16e6a0e40167262712c4aea6ba5eb1d65ec6c9d158179985bf4082806dc63faa0c7673c1260a9e2ce6c80d94f6b11023bd75b415de85572d6b584193acad82180975eff2474f2263864b41927f136b580178d817f239cb972f4665d1ac31d03945e58b736eed94f367e863d6391653713c665ad3da95e5ccbe88de725b1bf8bb84e7a37667e7e913e3d4a005625e3fca5618f1e5d6fc63cbdb4831e7cc175e73d11f6b20c9d9e9547d36f000c175c0d1e67484430354d66031afd9b255847d460ecf60722644a0e23161b2769473cc42943f03365f61b65d7c717411329c3b702baf10f34e68f8c9cc4975f535049d3c71e796513737f08adb748134cf80405ad9bda5138b406f02c8230d55e45edd9ef14f6cd5dd83571c4169d826284bf6b3662f21175086483da956e6a4357550e5bdefc9e01c957299a9773de5277ac4fbd64f43f51dd63f8797aa8f3455f4b913f70d87b78226affb91cab0c6b7bceaebd42d75862e9438185fbda7971b590c5b41e601e4f29c89cf9f4853431a873015306c9fc37a3f3552d57f67d04e470048be5584d1950a16b86c4a1926f884d227826da947e8efd5811b54ca71eb95fe97c7e56b400c01b02645e7673029f1a4a5ae70ad509dd85fee7003b64624889cc64b716f12102233841ddf9dd04715a739b024c373bcc0ca7fbaa63ff037f651cd5aa0e4b4af494a63c2e6cd41de1a2ad5903116e4af349eb69e9d4ce4c2104c176acebaa2a64679d5706544363b0ce3646744b632394c881d9efffd926f3a7eec2d607ae7bc25b400a0f2f1c7463f16167b7f33e0d1867fb20d7aded1669da0eb5a53854090d347e3764a81903a819b64aefa1527b912d8ef9594ec4278ec25884fa88e4778010f1ea106cfd6d9b67c1400d671936984dee91a697ab162fc3487b2e42755263fcc87bc93bf405ebce4e9e4fcbbc19f7185da583d75d2583b736fc14ed5d1d67a0e2fcce97b66d7196b172f483d603455a10b31991b72f4fe7aaadf5124002937ba2f719b7fc5f7fb54aff88f4753b7d898b3eaeae3a46b7158d0db5f73f3b6f0f67c11c61e23ae9eae331f6ad7a12334586746ec7d9031c55f87be1bcc9339fc307831967ba1f9ddf51809f2598503964ff64d9d8be255221f4717f6c646086434a10bf088b10542cbb725115876a42c538d8e097a8447b4261eb64efb66a8638fb60c6c3f06d14b637fa1fb14871dfc39cebf2e90b51ae731cd0bd3cb2429a915a236efbd94d6c78b2e8b761ec186e86f0d2fe1e5072a336424590dc5c1f53a5ebe0f3eeeb40665bfbd9d41ada79d6f6a52890a5c54c677a388d5a899e748abd9e019f2f1125f033dc3ee6df8803b900a10272416b33ba76bf36cd29420a2262e52480bd9463ef4eebcce699810431b17d28dba0ae2b07f2bd347bfe3f47b3827bcf45f2c5098c92aad7f52a6600779d051f7e84ca12d979b0f8147dc433259902b011029a4db98691e93205a2572a7fbd50f188ad6bc8f5310355aba30ebbc7e96766fc21383067927ed7e4fe2b02ba85d09b678e12ebdd61b249a24766a5a9cc0d2e405b52deed414f87a82c668279da8208c9fa293e2f10ef04108b4be0474325b5f2f471c9f8f00ede72eb4edceb1917617b390107eb9480e46d0e5f915272efa3ff0b17c665d707f9ec2307d452637725e5217ea84b7fcc4fa1d866ec1f0bcd838d8638815ff99707c8bc7b0103273a83cc2302af81fe7731a678160ac142d45ebd8f7d92000bc77eca59244612cf4c00b13c05b3e8d25e61e6ea0e0472c2deacacd465012731667a22f45787c1f3414200c740f829fda6d906dc69a33616e59394ac5a032642717067a67348b4393f7297767cd5b2bab0906ec97eb3346103f5815a6c1299e185121f236a9d75ccdefe6b7931fc568d3017f799561f807af00e10871b17c6ca030af33a61d88fee615f88df3af56cf52c42daad1e5be4110cd781df33feb4ba95dce46a21a94daef4985d940365b628278007f0318ea8ec4420dd962f325aeebb5a6ae92992add561e5b28c30c54e5ad785818a067d39a0f85e4c1a2a8370368d04d3674eac001d2b9cf7706bb511040ed056a200ebe0997cd669595f2b1ca44d0cfb8045b7f344fb3af81e7546749801711a87416a78abf113beb564d33d944cf19a1d236ccd7f38157c347dbd014d30f2f16c2a2d4ba6a1ce12703e151f5eb73d2abe681bc90db4bc978e61cea22eedc107ce6c00986bc8c1407202337f7cd39a9cc92763ac8c2ea5e9361702f68a35592e867e72e51461f0790c2bcc16c23b8d614f404cce67a8700225382bc57e6db72efb672c9606ddabee13546592c33f921d944257d84c9e32f35f341ecbfc389755a664b60951444d4f073cac7120bbed1b350f844193ad2e765530b8db9391e66c1b3ce78964d7f42c0416e15560d8e13c1051303f462aa718507c62a7d52c20e48e4abb59be08089c6903832e8862951f750a3954a5a0f65ba161678f81eb6b02736b063ed669f005d8689d41322299ee41750ee90130662edd2dde811704c7a84e792f424638c76c4c20077deed4de2bab2c33a204e3192b7227fa56e5e0a7d1a278dd3853c528e6b72771531bf79b93826a3d285521549eb57e3630c9452a074940b38af0300532f359e42aae3afc357448bdcf955cf8b51d10344795a13103494edf0cab7b36924d4a81292979923511565d12ffc9cc67ca0425dc276b3b275948ce3f3e0bb3e982484b4855b2b4aebb717b8d0fa457f31d77341c16db764f0d5b33c7fdf2dc81223c93e2ac503bd8e67e115ba7c284bda534fe80950fb5c3040c80c772ab30716747f0c2124f22c971443fd4e075e155e973b2e55fb2ec368d5f0c55f7b78550f8504dde5cc1b17a6b51adf77a526d5b447fb295960da2a79c3c22b66391c807a10c7667e223423c9665395706fadaf2b855232e270cd6e30735f9e04d6c09479f01501ad394c39f627861e1f976d5f6fa4054d669d0460c153ec2f01f554060f23fea0775d485000f1eec1c0be77b264b2a2e45674622ebd23e35c75a9fb2b7e9092e67e696bbe6de7fdc2efada9797f82e34138c7333c7884af511b1ff31821a007e713edfbd842d48cfaa5b91bfe4c66067042f5e0e4a7e32dd2299131bf0451397dcaba67a0a3940051cd6c77a495f454e24631526a40336069a20a13d6237480bde39a18e5b514d2cb4d256f65cce0cb9661686e119a6016ef1dba326da9405153fc7e4724e2a6368155b8ac1515671204d2417ff94b65be2d6b9061ea32c5acde329d8c775de6693c29605ccaeb235c98fb84ed383834f846ac45981cc77162c1f4427a80eea555b37e2467a60cf39726dfb00bf837f35b3ef6c52d9e2883d62b9e2d4b5dfc0547468ba7c3c97d9736633e6f6c4cad60cd12d7dda337d7679de59900d2499ba30c435f04418142e4743abe1a78e7356076ca0345bd131a13933ab19ab23c50c1f30f6ad4dd7af4a043a473774cdba966e2619a56eefbcc43e43a7127386056c3e84643e3fec325c2423f678adec43d074016790f79e522435e056211bce77e70a1f0312a92cb1475776c94cf84416517988798b11699b222889741f435477f254106d8fe93026474edfc77d2bf9d40e36fa576caa142a5f7d1f15cc5e2e755312bda0e9d687684960323df031194e224a9b17b703f4b7bf3932f3f7b90c5a8269736ae89abde5be63a1ccdc511b90976dc8e807b9d3a8f8041e50f684a0fc9373c15aa48436bd087fd71aa4c19411555e5c8981f5613c3c1c9d12839211c63d5bc797ed89cae45c09a55528177b9d120398c0e82339756e0f22b60502dc346c401b752916e00ae065a3b33766ee54d664aaf1f109fc38cf6ae62c2445c28c5371e8e831f0c729e4721f7c7f7ac2f8df77490bc0ecfec5422ff22d14a66321391e0276a578dda5f22934e5bd728fa1e3517f0295a4b094803ee588ffe33f0be05fb30792cef1d9fd110116df1c7d4b416cef99d99a4921316df6669355a60eea28fca14077f0eba05afb7c5d654a9b3e66ba6d0b5acdb9ea6e33d2858306896b718fcad574b04465535b5dce9ea444e45f784eac2fe1443b42d3b1e376f724df3c7dfc43c3a54dfa3b351c57bdc17a4674e55bba81726627157c1ff0c5c9eb4c5a818eb6a6f181063090415efe4b754218af143ab61d8fbd24bed9e26757075f150441273bada40b13e3d60606d2fc316401d848775b54cd7e34517c0bf90ed905304e0dd3cfea7b34dbd50f3addd51762d7380d15b8d31358391ba4f7eca0d13cadd07ee2dce1360f9ad063e14f979579ad02bdbd10abe913fa652aa0fcaef86053c5e9a90a41b66616ded75f13fb1602b00f7d61a2e9bf317d97cdd1a7c58b40d62461b2fd88c87e2639430dae934a4622ce1858c8357f5f7062f4ec7a56714668943eb126d0ed68eadfaa61d045be78b18f2f5d6fb3d9118be95437b9c3c61153ff4a2dec58f41a835abd66c899d80ff084b897fcdae04873b0c1d68c1c45623d912b41e044514ccaac3b33d290f86458c940c089201c1987ae5a57253ebd3bac0ae79274b60e24fd648c4984e6736afb365728b33829393356419ac29f940473d26fbca40329683cf2aa558d7d677148206a2887557205d4387fd02ce02340b44d6f214415b26139220d8bccac652b98230eab5f3b4152af32faa094f8ba2436f946d3288e5b66488dfbd20479aa12f0872d2e61cebf704df6c45ae475172421f892c5fed1d961507f0102cd72955cc8786c535530622ac0abb74b52067b789742e065b6f47b6a67649d2de6b97a788fa135944012f2215f42f0121cc47b1d9b6cc135022f8d6de524af8022c5e25e961605d3ddf9110cea7c9519b9ef931541416787282298582bc00bb180afd17ada9cb30cea4f45595b05ae6c8e0f2b29cc2b3753d0200960b39481ef166a001623e7671ebc408823fed1a369919b4c5a89028fb27f70904ee2f7ae0569398649bd8862013235073aa417c8cfa6c55f58d1f9e2d2281d6e607e231d0ff0f2f737a812d9e601b17241f536a968c79f0a1d68aa2a9de3a78e250a3c81aaace8d5680fff2794ec78567d6d24c75fc6d7281cd2c457ba37a6ac4f600110c1cce211210c1159c77776312002a730bfdf2e5e31eb9b838ebf70606853d7f3ed88184a76ec599428cf0f6c5b6dc844212893d030a3dead68669fe0644f0f8b607dbc671af3a7ac38c3860023d1d805774b7e6e1958db6f99394d237339f876de9accd84f62292e81e7976d1b227668716596e72f5e8df65eb3311f5b7bc68d44022041624eaae9deb013ce406f53bcafb694d95c11477f0dd57a9c6cb6760251da4ee201350523bbac087e4bbfb6cd07eece11106016cd455fcb722b0e7d273a107c6542c9421b43476bf60838cbb2e0536a8117b4cb1c11ab01da19de39c4530108a47b60a5b28ec2f6fb777fb2ea4ba79f9015f4e0d73d71679655eb6788488aa13117ca2f2e96a56c42488a2e9fc0e8b7740dc344cc210bf422219695caaf4842815ad085f95d211bc052589cee689d4e4a58c3a32d94ded7eb77c212679dd22417250754c52cabaa9624fb8a214a04ba051b1fdc135beb138307667d63f04cdd7f7d4deb900deb88fb170d089069f8367b7c1883bdaf3772101a27326cd6f1788e1ef65c680fb4edf85728d5980b5c13ff62f9e007d09a2fb5252589cbe10a2df67b98ae739bcd6bc729749a779d26fa413ace3022ee8f417c24138e353eb9d9625433ec8b52609c6a65a7315bffb718ff2ab86e51c4af1af555cdb176c1c9768f4e033396c6901026699c8896c09d7bdc2a719f79b577625b4ee2e084af25a99c31a10d02ebafc5bb58b718d6d87bca4849735fb0d6032529658fe5a87195d58f4425c861ab7ec7d954e421fe5f8c83d21768c4de7ba68dca38ca98856b91d21273a71afc432cf4c755865bba252488f1124740f52f08ec6169fe29e2e5416dc248cd8e488e7971155b8d33f54ad2a51440a773b3d2c8417b44476dbea9295269179a71589540629847aaae43c31e53c458eb5dc03245107f751303470cb26b323acbddb0604c7e00432593d7e50247d90d56996a78ec64a256f2ce833d1b8c943d84f606bf5c9cf46aa2fbf34dc7658c5add54634cd6ab262f81076f7efbc2284ed9eb9ef4bee54f45a5001ae858f01d74bdd79f39d6b7992f1c363f640c7265212d5a8a2439676408051df1d7c50f8770db1cc32d9d9edb707b31ee0bda4cae329af9bafd66f93b5672963df3a970f52c434f771051c77c7181e557f887a6d150cc2472bfca84d61de16dba0660e7c60b3bc24d29c3be8462752c7d4b5033dd19688ebfcde2b5f6417959f1be8182d168539dccb50b05eb76a9d435f602226e51715f612ed706d67934f35ee250bd1c07fde5f8b367270e625db789491513bc551460b1dede5d6f5a7445e8ff63cdc61448d10c18e4de46686fc4d2207c8d641f3808f6b06efae65f8a61c0dec1f0002a82616e19df2bc63619494ca32f8fd701aa08366cc476834249945eb961dad67ec4a8a2defb7dff63d02cc9b747898e18c63d7636d893110b23d49e8b757f680c20ca67d732b5fd28079a3bf1403b8a410645809f510d5657baaebc27df73ed4f3b4328ed0f99b511c0b1d1c1a8e0345da02079d00036442d21be90e07124077b878ab6fd129c3261046d2060c36a512785a137001242b005fefacb5008d4a01b46b3b6cd69ce900312e7346cea1b96486d695bd0ed076845dab0fe17d1e1583033fae5ef4c7b4249103312fa771cef1a9114e39f79cf2e3e4a71f2b8d078320d40653aef35a6fc16555b40460a9131423f1b7943024749012a243abe6efa1967010539dc57de5038f0050b2bf08ab623a335f7ebf1760f081c38c6116c3ea85943d9470fca0e9a1d944eab02c4e2ee616f1661a4f2055875f531f890a561a44f5eb2e91643a7584ecf1557a3ca0c43022728a255dc04673c7f2dfb03f9d53d32a95c6076cb04a538bf1373075dfc3f1713094932fb05d4594bac9570a25c480629da06925333c92b322468366fa0207ba7e9bd2823e8ff64e20bfd2449322e0c9ef703692bc2ad363f80271d5055067c1e56bef2e8900076d4292e17eeccd93cb60334bd9394e6735e2d106a1fbf57136319d85f5cf92558e17965f55fe27e0c100aa674c8e13f2ba0a50036b973343fcd355ec0117a2043212322e5d10eeb4154e3a6ebe71db4435a04bfb7f8ef9e6c4625c295403f1d6aea6352a4be5a5a519241e2d6cd495815e9a11a1539d73b113e71d5092e7e7e143ac42ab490a7fe4ca0eeda49f23761043253801da6cc5b13d8be1ed0d09c7f123c31ee6e8cf359425d328bb4020de1752d26c47d0063456e68178c4fc5ce1c3d6dec0cc148f3773ef93e7ad857101636dea8fdf660fc1227147ffa8a99f5822ab137dd10e55d423aae8583c1e96d165701562c6ecb129e6a02cb2a3812fd27103f5bd9dfcdfaae3a15c85a197f2bef7e96518bef21f1f661678cee4f7785b353536bffbbb90ada04fb99a6fc477b152cbba9a2c07138ee4d657778400c5fc2647bae6ceb2baa387588780a77b505e61478c194cee3f2e11a834ea8be6e660765d74278f5e7005765e31749ea4266036aa27236b5340b7e6e8f8667dc017a06228f5ab108822303766a2eebcba9f6d71651131bfb2f52301dc1e6856e6834675c1f6c5be8b4fbe7398b52e09c08b6e7795e7d8bee5e0af31e8ccf479b9e940e35387053c264109e4d05aa797dcd32d90aff0ccde6c055bb29a085a21b4cb3640abc542a86f655214d21c10cf77b8f1358f73d9c92c72875712c7d21df6d8301470f8439215d5f0054d1e53a01b63c512f6704ee76af092d1bc99c5a793342df5c3dac1709aa0e04683d4864ac62762810d50eb98d8e880805571eebfab9798870fb213bf5dab77a74f6a8c6985b7f47403b95b2be0392153ab41c5fc9f9ff223cc1f3b1413b33351c6cbb7cc8b15f9f2a662cbf24c6ca6c680d00a9f717436e087a76a7b0ce7784079f69d540f12113557d352e25be46030a8849353a893d044f298442280750f911a8b8c3309fad592deb008ab28d6b383f7bb1298542497e226e24176cdfeb4e2d3c1dcd760a34a926f107258ac8b6dc41b5fd5d468681ac5d3aa09ec4c4c60d00b25d756f9ec23551a4b06bc4db0ba524ffa7df23b76a4c4137d44f552d92152afb253d262c4ce07633aeeb36ed703945b93c3ae21916b61daab7a673118a7e36c595bf0049cc514e39970ff780e9ab3a9c090e69ccf8431024a42e1b0dac77422e22fc822f3a8e121514567ef840623ef493f1e46617fd422730235b62cabe7335fb82621fcded5c83bbf91793aa3465e133db5d1ad195618403aa485e3ae764f992f05f62a4561525ba5cff1632af4a56e39ec465052422fe90686ac245a061188863d0da5f113cdec5386075964a48b3f49d42d8acca0c92319e2ec413ac20e60517713021900ad361e79fccc4ac67badfe2481d1cc53cad8f9cf301c0fe0e7359477baebb786e6492143a9369d85722f98c1ace9cfc3640dbc3a0849c096c9f09d38d82ce46755d4876ea0471c4019e5abf58082c97032fa9050c49353a015850e48a088aa843b74515fa4c19dd295e10bb897f19f33888a89b89964bd40f4001721f80873e4ace7f16c079f0e07a2ca9eb9389cff571431c0260ef1fad6c7106394e8cfca9292d8f4300fccd417978eaa213a0bf7a0f081b9c637661c513d27dce80d5d1f92f00c166fa8cf57476db88d7d9c1c00c3080b7ba8f9fb94d3437d0d280003f5c481b2dec9eda8b6413a62687ee89eb51128f620073747730460e9a305cc7f5761a1cdf426b2b92aa0a1ccd35c6403bbd2222e4f19e3ee9d46ca2cd70bfa5f7b34eaf6d09682dbd3d034809a859be95fa4aa8ad825318eaa6320cd5ca5e21ea6424e6188a51bad9b02023f5e648912d2b36c8bb18f775603565166db917a5d1fe725203557adddc5247a5c526d32d697d33661f0b97109cda3e8591b05b6cb9d95cadbe560ac6716d0af6a1c74f47aefd3538f12163b2261336848d8f83fd4a7d6aa9f7328743d69d2c41710f290f63d84c4cd4a80302bd4d4c19f20b54d5326e292f110236cbcabf1e1428c5040740041bbdc71acf70d964319931d1c393bc153c13202001c622745135660af7f4c8927ed6c26a71758291282ab688f9d7321176a73429c7ce2e6922427bba58377ca2636a6d30c40ebf5d7a270c666b66802f0155949e28f25a4d585848b2f03ce95f531524634463d68518d6aeeeda95d5883e4cb904a3de79713b46769439f292c1106dba57411cea9d7d0f86ffa14928ed7cbf733cf6ee0331654cd70013bdb4da699000b8b0d235a4601d8694577ad0f11d8a17f966cfb7fe6f1343710c144fc43c616811486f3caa0b189d12749889df1cc91d9cd4ad4038280249c416a7b0756b4bd1f711bea9ad4c6dee7e6cca730776645542f7b2ef8e5ea23a472678936336137dbe6981f0db72cbe9419cbfa5f271424e7afcf36d1e3a9faa907b9e782b2775b880b7cd8e0873862fd337510d61472eb8e42a1967437f9cf9c9d65f5fd453be1a2607253aa33058ed76c399e7e952f52757a9a3a9bf23fb001bd4c432131a0427f56c34696c675d15d32bf07fe67ce21ccb87b67df668d94a0c251ecf6b76fe6e408e0d82e1744410b272296ccc7be698f1a8668c647e1e5d457e7591862b7fb6d5a1408b755f11b7e0e757d772720a142bf26427e34a37e87a5fd9cc2344b765b47145dace1f439a8b505a33bd0dd312b4402744200a76ccff6cae86db446d646142731c471ae34bafc99b92f003dc9c309cc1a43367176436234c0567530f0e575d58b2dd19699e7cffa9f6341bec82f6969ca08075cdc3ac7d56f1e3773d673be1ede02560dbc4efc19fad620ba2d52c22db67d5508fcd90940660c37746fac3eecee9f60ba26944274e40297a25b71f2b1d06522b92eb70bb70b9663a7898835b168cc24721df3bbb5402604e5dea91b1bf68a64bb210a21d86c4645b6a6b732bdb86a576d4fc580ba815dc25eca66ce4776c7f62c3ebda3091977024a94bf19b2e1fe4590df55edab8ae42056fdae27f33f8cd28162a12399f29f73c8c34b4f30677540b8cc6f26dcb591a712edfc2b6b5f0f15e1819b059321df836ed9b65ec63360b0979290b92f9a0a344ef5ef44098bf7865bda9f4dfd752c257c0295a67bf06d4631434cf21037ca777766c69d329b79e2e22002fb9422c31269a4baedd04f5fc0933582c64ef566141ff8397951610d276c8898abf358ea51802a9bb4f2a857c6c988d602f74c5c1339feeb8c5c3c63d77b1ec13898922800846db87948ec85551b54ceca84f451a315ce171a6cff8487737c2915d995fc957424187d95c801f41144f5bc270d514713e718c00f0f4c83795ad0910b9e7797c22fdcd818bcffc4eeaf4a9f9b894791513385236602ff32ccd93f2ec54bea6017fc2abab26d9d54838028ad15c30291a46c1236de9bba81f105e0d55324b2a70b7168090e59e000e35b79feee31ef3107dc8dafe8c0dab39a43ed5682b4d962ef8ba1a956bd8283ed347b29ae55843393288ee24bec6840a7db3ec304279cd21c4a04e710197353eb8c472d537d17518a87b822195f90e59f305bca421b6413920eb9c1d7c99463a24179e7175114604a0d8d0e2bdf1c241143f4d9f9d495951864c5912ceeb712383ca623c5b7707571f458ee4bb0b7b5033d79fbb9ec307234af6f7081818132ffc99a778133a311d56dc6e3db2f2477cf64a65e9fc94407994db1ef9c0ba36184e21a4c755593f3b8152a5c555fe5f3929f730347edcb17cf0832d8d4cd90f66ff834954fb97826c32edae17535c13559cff60bd6403060c75e13de69e6d2d3bf004aa164e056468f21aa8bda70f984b26fc1e689a8a7b3d1f8539a47f2f3860ce81f98c9449d459784a623da85f044e9f47ac6e40fd036530a3cd530ff9475e5d751f91a0a92d2b37b6a2d8eb97d702f41bccc734b7c71722cd305e97ea4354efc8bd9654d33b1adaf83775b20ccd7ce2adb9fb030c132be6203df54f84ac5bf1502e6b9b6d3d1b1cf412e5a6f7c277778610f4dfe0eb54c42b6556a8692a560c90c900955fb87fd90fd383ba34911dd51cc02bb2d33958dd7ed89d8547876211a50a73a9eacb33c44c44afaeaa0a30d46ab1e46cc0b129aeee3754d32b5c21180428468aa3a56815b6e2a6a9908d231f75b30631550e1c8c0c22e79ff75144b1417db60a155165dc726b6afed4e638f75f3887fa8d7c5c539780ec02d3f316fda289f3e3eddf0600434dab6b1b33788241e5e230fe1960d196f94e8b475530749ba28c642a4b0981c5c30ae5247b5cb644670b7d9281164cf5159666a9c70cf322f97716b87125154b2656d2220a2cfe358d6eeafbf457e85fcc4a6172ff090c7e746bca4dfb3bf9007e8499247b62c20cd64c2b95b3779d0e3ece3a3d7140d6790d5857a2be5ca7a41891287dd571833adffe30d83e69bcfc127837330a1c3150e697f1b0b43615cba48da5a5b3234a14f962144392578bf91bb62b0ed021786dedfe7bce20378981588159ff9a6f43287f5dc4733e5147709f2192ad4d103613bc43657688700bb18f59b0d63b512eff171731dbe029275bf43b20dc943158644ed9db7130189088215ae9e8ba706e416c8903602f4b000520150e7a612de2a2feb3779e8a43d0fea8b9fd3b130eea9a31218ff5d209cbfc2528afe5f50b17b088b815f9070b344f45fa478ab23bf11200a8ac82bd12cff5e87b7862944bf5b3a34cb35bf81ba13ded3fafd8c1404aea19c1e69eb76cf475870be182842dbbfaeefa2efeee6a1ae449ea6ffdc10933a7318e49d2646d94f0a6c22b12c523c11b83b4e9c6124bfbaedbcae8a2db09b57e3f88b31277166b7f99c1a8d4c02c559253757f890d6d6c1a6d6409667a0dec628855aeb1282b6e65e1979f2b0b3091f88aaab199753e8cac1d99a4120d03fb7329bab494820646801c1b945bf2400f3dd411dbd05b52ee4aca01938f865b59dd921354c6e4257b9164317c59a930badc8a673efc2834cf7ba7ff5e839a4afac0c3b7c9dfeb48a75169b694d52a6ca19947b7051f1d5b4ba21d2f921b7b02d350c843690d98253a6ea526f4d27c40ef63d98756f47938d1fc316f6a8e3d33b9584a4a462ba42aa84a36486ee684292134006394f3c4298f4533a149d1e7553272e04c1cc6863cbeaf2fa12ac2a71579084e358ed99e53e48b44ff07fc1f79328b16fb06380d59aec322442265543262e1e6addfe31b58d48c69908187354431572d49275de440fcf487cbb65a307e12191c87d725a431526a0225f40db26c6f3aff8e6780b77272bffdc27d3e8f4b012c0d1630b9e976995a81a2f108073cac878cff5e94036e62a9151728e1b46ffa4d25211ac89c4a5289f60dfe158168473e91fa3570556bcf844b795c2eb249a7129c3e2e28561c15beaf1775ef934c28ac5f6773aea4760845ae6983dd117fc4c0991487bdc5706b52f00cdf921f401797a1098d19bc076f2637e87aec993752cf23ca76582c1bf7d0f7b20b638d2b114589015196ee47e0a95163e7ea141dcc1f6b7591d3a73e8c8e90345544ac394620c9a232d1ed56febc7fe765b0407b76dac15926adab1e4753b1a281922a4e6ec628c1efb3c0693a954d39e3d36066949134651819880de72e3b2ecf0dbc66f70629b01243766dcd4f9bcf7dee1e4185b3b64b611e3b6ddb9f15d3e773b400f9c3036d9fa280501bc798c97db9902b49df38cdf9e1ac2f6d0dfbeb3497f71313827453b406c04befdb0b67bd3b2063f75ba0ec3738db260733ce3e6d52283bb56db8a23f89a7649e9549f346d5832ed96c1d7c8782452d572444f12f6ed56683fff5f0387c84285bb748767b7cb023e357b071a9110a2ee6a7e69ea2348e3e8ac131e2db057329631d4d0b8c6d0e3ae43753f6ee4b353bd2e2253bebcd186037861e7f82e17e6353252998e94c6978c2e96e9fb901021238ffd552691e88725425ad1cf34adc78696941ce49905954d29663bcb5857a2b897f3d09494eb63919371d8cc711425cd33b203e27204208f885cc092656e150e128c851cd967a1faedeb3ac8643a066dfd41e62741c9c0aa24726e7840a0343e00326e5bdac65587954269665689864e713ed6a2aafad56a7eda6d48a710f5ea039098a96961a33923a2536bdcc8f39503e30670892923156cf3dcf0690ce169b7bc9608edc0451f9bafb64d4e313747ddf834c40a7560e5927cb38a6b5d322f7c42dc76a0f38733adf6e4e962d5c724536aed9f37e2a0bdb44464957c307518d1d6d10b64b0a6ea70f1261390777797bc20b8ff906d17512c65d50aa7d3402e7bfc078c04cbb70bee37ffc6e74ba1dbdbfc51ace974a784cf7217ca95b182444157a7a47feb92e069bd11586d406797f856b1547e5cb7e09392bc82b3fc663ca5ab859fa3fd544870cdf95979f0078f0a7fd23ef03dd5eb7048ff22d0efc38d46d4a2b1bad7f3faf278e3b0636e769c84c287cbe5c8b3883a5ef0030378e6a0817c12955d55d4328be73c874a257131306d51f19808630077d513f62808f18b5f832ee74bd1463ab6ca57cd054ac25fd0313370dae83776f6fcf2dd96359564e8b137c70689e55f272c9852502014d2fd3bda093a7f5638456a21b72bdc346134eca5c67299565a269297f77099c71711c5dad20fae9596a50ff39f446375036109873cd5db45897dcbe032e8a2479ba31aa56601625186571f217295b705bce2649775defc1322e4ae9bbc419d421d47a7f3c641e104cca4f27c1b0337d3a939c2eab2b642857f3dc84aaffe1dc7e4714eba3dbadbf4f15fd40ad1782e262c8242727eb29f67051282f41a2bb4b188c568563b725a041a4826ad2dc85c074c0e672230903696ff5a40afc22ff0d5a4fd7df3e0281555d7d1934926b37b328185bff76d190dd6fbff56d131ba31e5c90c48304a581713e6eea58103129fb2d5733147efe832b41fa6ffef7ef68781fc76efc594c517d69ebc1e4bce8eda06907bf44187060a112f1c50a3682794e28627848c22ca2e1064a5597409717d50c88d136e691bc77608932df9423e3b3338526c6cbf834351a137c1a389017a534ffce0da47d9d35274df6eeb94b093a0b8594cefd75351f440851d414a23ed05fd81393f2f058b123a51281feba84311bb826be24e5a3a934ef519d2cc8208573c74de13776471b2de3aaa287b71dfe7cdf46a2847f54867bbdc7e042f5ddeb7b72f23af89a976e0042eb07904531eb0bafe6f4f03cf60c72c6667aae67d83705be2614c5e205e248a312fd7aec8b041ed350852f5e12e7049d558c480b488043b79862cbcac2a022982aef40f444f346a79a2ea1059b0743e0f8591ae3c7fa2d3130b993d419467c3a1a11a336459a24f05e953a20def4426fb65fc8a58b1358f90d04e060c5c571d2b1d2df9baa98256d81d67ace3ff30fdb03fd7487f0de3b68db9890f3eb593b1e393426618d263900edfba338ae161ed3970d0547dc700dfd0213f2a7621b395d38564ebcb7d9446f2abba1801d63473a869b7507a17d4124b60f810b51bf24ea91eb185bb86b2793c4457b358b477441fcea64c975b1685461687b65a3ff1b761e988981c87c3632df6bb3de40b07724340358a005f8017fb2b1b92bc13b5741d788d13165e2476a8c158cb8c38800bc7d4932e661634e42ff99728e376301e528ba16386a5d2e222b8a926faf1324176f69bbafbd0e02659edc6f57fa421c4de43d1617368022174de2429b726e0c19a8b791aa5d085276ef6d2e49321474591be0b0c606851a79f9c5352400cf703cc874da44c2c8630469d658085c1a5814ff32331eba696b6f91e488b384552cbd92da6ff683e95e632696d9866c2d4553bcd3a41560b909d2694e3f634120464531e71ac865af2011b8ba6fdb7a7f63dd5a236d4b39183f9dc945aee841be3402ad314c4f68000774658ced46b6504cc37373b1d6f9dd45d64ff173d548421cd7a3aefd628aa7636cec3148a304701d0398480ecfb2ba1d3e2433a7b16f5c2e13492eeff76bd7066edf6435237e961b396ee87f91be4612239c0aa4233e76775f3428ca0ab32572e7a55dcb88d4107f070a9e49d5b59b7e9c41c82751f6647d3f927f2a9e42277d89e9df153fdca55f4b6bcfff42469d23fcd8dc3077c189625a00baf3af2a9114c7d35516e91e8c796f198b64faa45a7df57e1108e312fb41ad67c1622bdb70412d9bca46995be31228c0b885b44e9631e71f1476c466235561555eaa7e8ffb4f76e4cc1385ae6d55be40afebc06285040af21cf20709f5388ed09457d3e0b875d4af8431441d40153d4f5aa78cffae5c748cbab615bce225a03b588a84ee48122ab40f12e32353134ff9d0a99c633b72810e34a06591756e6f556ff73b496e2b97fece2223c2790711c625b9c6e3456d67e24fa936e0676b0de32eca03e1ca4ab765c42d4645930bf57524eacefd8d1cb65bedc01984f90d2e25547c193f025f28bed33a98ca8b20b0bb6153fbaec60fabeeeb580bf6ce3aa12e00df0fe90e34887cee722e374a7fe70e0f5e22a61123ec64d22b53a95330f098dcc6cb6a2f3853d2248762c7c172a46c3f1a052d5d041cddcb73bb398821d6427d6aa47b4c51c2b84e0a356679245da0771895c7d53dc4281c57ca5c0c735c465ea5452b171e5977a3a788b62300769e73c717ea69523e1b1b6350b4123f2055d2455efa01667d0c20667fd04e40bddd5f4c93403c3921a0600022e36536cf8152ebb5885152f51e66c109c4892b80bc0fc008227d6a8e4ef72839780d341778b4c0616e047826c79132d15cd522f8cb12e08f8380330a5d361bd5a8be626b68deac856f7d7aba654bc01482cc6a2ab13d7b1cd1ac49bd9562f4c608cd307a0b62c6c47d5753ecf0758b0a83ed7892cc0db4277b417c3d600f10f3774c4f67e5b9f6dff95a6fc92d2f12633149407d249c0605e7f6013519fcda7298b975a4262324caf69875d8821306b3d1e76f07a97e250268104a65b0a365dbc8b97fcb6ff915a9200f360af17fc19603432741ba587d1f6c746efb3c89ee155e5e752528d7edb962e34d036993620dba96170cea991fb19aa23d3d1496ea391cc919a48cacd5d94bd35b9da57ab6d912614b2c5f04ff0782d940cb142bcef8cd8619a07a0599666bf057bef5820b1feb642b4db44226e736ed269a12f53be0fa9d6bd46be9a1f3381b3e6fac411100cd20497a5681448b60312999d300ab894b883ca8e920742afae1139a03959478ff26330e544ac9831e09733bc0091f376fb545cb824716116b8b7f8a91557735634f67523261cafe414777e1ad3a6af1c1db29b1af350948f0dd5d3734abea8b7f57621070726ad17f430c3640c99bcede724b6d7fc5852d451f61abfb6d356aa3145ffb63a47eb08ea731f341d30726418e583ea083f3462eca5490d3bfd6120ea126abd75f94c50c6421d79491eb71183a13763a0736e0dee7292ef90e844e7d44011d054e015edde130c49e352540493958f12cb3b2ea28f97641763d40e4168f594f8f0777663c7153e4c78ebe563d161b404a6cde356ee84400c542d41a211551f2242a4fbd3e0d4bbb5f96b1b6b7cc7e74a780d17d917141774c762a7f466e3db23dcc3212c65d00c3df666bfb66044992c16173a144d45f4d1738f64ac73574f15863f384ff9153b6806ba30723c211b9d244bf571e206d696d7f29ff544b04aaf179a20210c46fad4ad5de4f8898295426ae1d0cf4cc1079d05cf17eba520a1a197deffccd1c6aef77703b386d535e2778955975cec93474f3a3a69a0aff279d2c24dcbe87d7629dbcd92df98c8a5d8c391ec187611c171c4d84f6d6892f1b78499e0b49769f5050f8bcb8f59c3b0081ffcd2cd63e5102b6c306f3f331c7138dbda4432b96a60327908e715a9bdd7f + _Keys: 19fa7c8b7a3a004fc497f181b6e026078db49f8d499d21408923e4a607ce3a595981be3ba9ff4c769b8f130ebe47887ebdfb98ebe5da7049210e18f42f147d60c6bf413c35ce7d12db1f64f3ada3bb2d821326d7a7c363136666d31a094491222bbde8f495825a4e2f05ece33b3881253ca117543370bf2531ac8ebf10b7f565a03ac9712b88ca58c516c5a7b6d8f161d9edf2f0d7536a18cb29cd07833a5a3b4c7ae726cc17482e559c16f3c9b08b330df8ea680ec3b112fb2cdae8148f027d6cbda2a2ea985b33ceaaec1a66c03614f318fcbd24a42f1ad60e54113f577a421594d13a0cca1e4dea74ef6b3011a507d84e972e95f1f208c29e6ca1845b5768a29ea858678d9a45dd71c72675172669d2216f05e07a6318526a8851fe85233ecdfeb27a2a54c77acf2f0622887385307cc810cd2b8a733f308aa04e356c1a4343b0f897872b4935cad6208970be4d2cf27d077b2c4e3454a429a74d0d848d0856374bba5b830d5a1c80b06ff717be50822ffba2e9a7ff4587ac62212c429608d6f7162a2a64072a2505286ef155af18b8b137cc9492aa430bb82f7606ef4e587d4feeec0bdb7915a98a7574396c8e2e0a55a2690825a356de044dd24122aa16573d9dc4051c54111fafcd938f2c107505edfb00aa3545750cacd20fd3d118628f24eada7da532296de43a2f1ab3ec2f40174152c0174e5ed6d08c86c931ea726390e0507706ff52bcaf0ecfc98bbb39566936366fb9b255a7ae89207f8b652d88310d54f616106692fde55d0708af69fa88a9abd063e55043de1680da2a9e6d579975acc6cca75b961aacfcfe5ee932d224e50c4b614d14bba7a043638e92631518771690e1bb19dced44e075745b028dafe7e182ac1c0b232d20cceb1df107aed62a36f989553501753abb270b44324d7d8ea6c2b2ca297f8214402bb6de62c8eb8e3d9b0f7256185d35a921a8142098b19bdc42367948b6e493aae93bbb6f41153dc39aaa1c28d34255148ed5933b025933dea2cd7425bcb047a020454d5b0b9ab1a5634bdd403229c26b55bebe32908e9848d620fa19a0ac538a933d5645ebcc055ad1400e0de2b71574be99675bf8a3102955feb74a2c3eb04c15e369386f97b630278db0358deaeb8cd4eec2235a9ee69cec23c44b4e60051edd993b7bc5600352a5affe328d95cb10d3df8656e07cba3b9865c35815ed87a215153e001a10e4ef5c6f3042f4c3e5cd2819166d6112b9f17f5bdc220857778404d76103b3cc3b0938e3500b561e72b38fd7ae010c88f1098dba07392870ac4269fb7604ae4a6e96bb747f19d5bc4403fc346500d5432183fe0a3d37333e0b5c95650540fe330a555345654c454a0a5cd01af12c5bbfe973432468198e568f78da72731205a296ce63ceff4027fefc7d6914ba336fc2c1a196537425df9e0c581f69b2087fb5d4317015c46f3f1e5c5bdeba5d2da2335d6bcfa490744d574d55512d623419a9a46cb8d49f27bf55d4d839d10618a0f1cca64d60c95de66211e085c9c552c53a96f52a47e2097c7d27a25cc7c274f36e41d3df3e7d29069a951142fc403ece277d3175e7cb6713cfd85bb1677d2f550510a9164da141cca3d4dc2d14ea6ea5bc7c61339be514a16a1771cff40969d4dc573e3c894702705927a4eb212c639e52653be5bb871dc8f266b125e31d2ee5aa499d965dc71b8416d70ae562427d168be888de916169e4e6e6a61d506675d74849db0d1bb064843bb211345bc43b4b385f641da77957fcf2e794bffc0d74579148e75640d90c451ccf2c5994d52ec0e48b27b6757d3674c4468ee18fc36730de2672b5b1567f8427fa5248fdda7745bd1bf9af30a24f6f760e1d8a8d2e169cf46b8ba7516b16ed2e96b5bbb6e20eeb540f7f4be5844b79e7ee151671a373a4e26d58e142691f576b98633aaa8921a5ddbe04814bd97a61c4cec06828ec5598b5a5688fe724522d9a4a7d9611d651d36249674d03845f0c6272c125d7806fe2bb353081161d28c122f29acc03601a51f08a4016e1082f30fcd93d5728ea47b79ca0e2b6cfb242a9d65f214d9d8402fab5b34eae36c45bd0330fbeb978ee2fcf2a0fcb24f222621fa9ab7d0dce725d9ded17f76d9f671ad6c06605d0efbf3940a506dad2e62f21bcf924dbc733497d038a08ad7f6666006a66281ce82d2f6619f66f6d35134e18a31cc8ad1ac7b966cf550a7f3749f10c0e64801184e106752a681216ffa3837967cd366983232521642549cf9088373ba9d2726c53c7843229cf12c86a8436660b9a28c0e4238a4c7ac4f0e2446c5178d6b4a90102e51465b132d9ec6c3ec954f282992fe09c9f2a6d7eea356c2d4766a7c4e03aa5e334559752fc7c47b5d52b06e06eab61a6d10e4f7483a3a0ebff69f6c0358c0bda930f4d7cc274d62caa67c537732b4a1ce41e4e79870e9eaba95cdaf4fd482fda400b1dd3bc5c8f8419633140f88e2c72327c9afae1cbeb46af06ac297cdb123537326592c57c95cb2c5c853ad052230733029b09f8776f245772a3ca0276dcc8b833ca146a1411560f76a926a9289a1bf169092fa58ddf9c3a7517c82635364a7f4df403890f9d1ef144fb812196cd7f0c77286780f491baec2ca6f61b9da400071600beb18fe2b7e76e86d5d0c1605cee62a2681f2dbdd87b071d79c190e8d373290a985bebf6d6a810a8113e79c5a1a532eec366e53a852b5d6e466fed752cfb7897a7bf6f1b653f6d0c571f4e8127805ec3515736dfa68f07ba29f321139f0d5a44ca68c07e191e316809447bd2cc041c05186bfcf1e65731b726cef277b7a02e29b17188403b8622365139bf2fc071347e1dfbee809a1671c43e2f82acbcd800b78df10f42a4017c8a9dcae15d1d2c62fff026423332e57357fd8ac87b1d9952a64ba6e19ca69e24acf1a805a8b07076b2f15811115bf70962f3f016365a2b20b01b6f5693eb1d01ec4babb2d341af68b923a2b5bf5a3f575f423bce6076d56121e00caac4b88c2cc83b11cc7422a66cf74d106b78d3cd635aa4d5c6ce0a81623dbb7e5b896e826999417fddbe2caa248eba28bda822986bc1a561f21387762d2def8c67a4f06e2bc76e0cb0d75f9409074dc689b94fcb3f83cf281fd236e5297dcb083a94c883282de7fcf721e5e73b505595e4f7120861c01328054c9b302af4022af362109e2f2bef44313d81ec1a39de7736f3892f04d9f6479188c48f2cd00d4fa9d9c99a72d4516d76698e182e2abdda6dc8354025c623782b35791639d9b3d6a7a4a251738016b3a41242a73e716a0b132fe4277ef01d45592e93a97c88b5ccc634dda046cd046c4031e66938e3bac7e8e2834609651b747a894e2067a554335438e44327f1cde6ed0971e14a83c7852308adbe3ed656ef8a3a32d12f111d50acd2e01727d13d91114c1fc636e65f0ee602b9d47fb09db1bce5ee0a0037e7d0ee86e42c0594d428359a07b5400093c0f470edd76c5c69ab821abdbe49752385bf4695c3063fc69ddc8e9305462bcd6bccd4d0d55ba8110ae281cdba388e7dda89469779443d5decb893f8ef4b57c39fcb0af7421ed256e985ffc3c54695167ccd2c878e567135e0f7dda3ff6a97dca81f440971457a5478000a8b6376e1d8360c581b142d9608e7a1456bfa07564a0d94d4a7b01976a0d20c469d880ac65d0dea36916d6c9048b555461adb44f08c58c4a390ef5f95c81e74014cd75e59579ae6381f0b32a134bf8204e4ed2a3587910b5c8b361874e22ba04c32db059abd3cfef63523231af4bf491b069c3f6fa51cfe8a26f82ac953246344f2490055701c155611592b394b9a3c1ee2f55a1bf1f247ccd2d26907fbff1c2bdc80674ad889b2a6521d6e8770a5d5a1229266b75b7f2034190274c65840a4d302386b6bef9ff2fdcf4149731a6c98de17942073ba9d5fee78c30e36204474695ee17c4bff0675b00ed30ed406d360c39fe63b929d3615656a0a7bbc9bffa1e8fa965dea7e69180454e330dca220b7df4ecc352b1196c41eb28f0fb8cfbd62bc27462b9e145567c25c1264b234edf3be1e113122b8fe0f916a78044273957140d5010ea7ddc4fa9baa221fb56a55f91470e032c3ed7b7ac540e3304aa888e7b67a23199892ea67d8a8886e3c1377a78f0b3b603c0fdb93fa5c2e4a7d24561caa96003a473b91a75a470a6a98d8a779cf888976dfb7c7ef7a257b79309bde95c7ed4c3e31f237a3cd6f326f0a0bcfdefe65af544078f6f57d7bd96bb14684e8d850aa19c651a98b6a058644e66f933b98d3f00b2986bcc9080f6c13622ba77a1bc4cc0bcdd33418335b655093c331b81c194e667a0d386610db497d85bc8c077879970f0f788481ef1da14bf438ddcf86935441de988d54da39ba18e886f1c49546fc655bb9abaac6878c5c94128d280185080d674ae51107ece948329c69750e65e03b339ae27b70de8910f4c85e45f9d5f44230b5c90e524e0b3bb3cbf2f392c067444ffa037bccaf833cc7382a1dcc2e985810164f89baa0c11e6db27652245a744ccf5d09012d86897f338cd68b7928087ba8909556fccaca71c2da8aeb7d87841910cf4ee764334c58a6fa99d2b4b6af48ef5d3562f701db50a0ec4a79453ac06f8ef5d3174c1eba739bab7b57cc374f33e8b0b4bff010953f3aa8bd48d085bc6c8f107a773d9bd8085ae78680199d8806d542fb322c3bd701c5f052438afb772099171a234e388e4c2754e52869eaa729cf3be1ed7e1066351884c3d112e46d5e6f651930b7ab540e30b7f427a95067244828744e1a89a15782afc42d049fa043e686b803d1777123e6d31c36058ddf69c4c1ae08e7270a3159380d2f096af52e49ae98b99394ae0b30a5bee3e9482c38bf2dc0f03696c440ddb7321eb7fe79589046c8721a11e50ff42a8e2455fb084deb57827e23eba63fe7ea3e5f84b41043a71961f0ce5126253061b78e7fb1fe1dafe4090f80f77b5b5f77a5faafbb6b40194bcb6f5cf81c67325c4fc13417bf66e95cafa0ab01c2616a42b0ba08de2b15cef7a8ca7d6d7a48c7a140dd473d9076360c11520bcb94177895fbe6b89da010779b0bc3910b1657d6f8d809c1e51a2db23983fccdd809677340ac188e6c6f65425065ac31cde52b0b4684ec0d74a95cb12999f1219ddd6091a34f505efdc96a778c388f7f92041aada8f9eca2098a1717f73748fa9f7920d239e571826b330710ef76803c19dc1d267e4578a3f1bd652d666756341165281418be46ac9298418b0e234c6df62403e5e6dd84a5ff83207c7f9fe8d2893c21ab6192dca5698e6d19fcfb4debf52d37bf9b8fb2cb1f7d12632035d30c5091144a44a00b64485e7c9af1e14ba87bef3415472d17ecda1c792f3ee5210169112a5ced08811d51173c1498e218ad38044208bf98efeaffb24e78d513294d197913de9bc755f4a5f472c8f3b22122d48522ee53a4587019624112c65ca895c75274e17d8ff9a085bb5a84f72e7aec45f709d4439108b966e8286445e5c71c857105ab9d738398585c3b235fc67b358fcb4e3e5b38030c80505f8c1b790f545aaf2aded7ea8238e50f2c6133d4e7d39ca10cefcc763eb292062b112c088221b218375064a6f285b279584b0b643f553733108693df771b8e887022ea8ff32272f4137463f8873648d502070803712d5ee33e24caeb90be938541ff778b61706a531b2580bce919456724969712e6917d191213cd0aa46f1fe61b4948bd6ed2e296715c1f97ad1bcd5769330f2656a56bd27e5e798a6a7fcbc427626e326103d6f7794f8f66ffde477605ce555d9b4c48970269e3194a2ddb4b47bb613d1980af006e089f8329ad8393699374d2626a4f9303736893d3d7b9a515c1c36dc4f81cd00dac6395520e1a3741c3fe060f90aeac4987b19c151667416f40f7684def3ef65fc13512f827c6c3729fd495d6c0b4a5702326930582843000ef2ab5ebfc172f7451f7dc38f44ca559a53229fecc411024d172884e43310665b3bb8c884c83232cebd3bac9267ae62c0ca800cede208b30eb46b749d8a58c07352bcb74a20bd94ba96abb70518f6b7974f4ce53ff24fd05a7b33453fabfba69778d3425444cbb785fad79abfb90fb7a27903a0b07b9a46e639b074285f15957b56455eba24a932df6e6af1de16fed2d08907c2b0ffebc3d91e4d3616cc5e57e068a30d4ca1f8f4dd6899052f7f44a01adb6a64188ce3e684fecc49a919d5d1f913a3f667a40ea6299d2f8f8b46bb74c636f7e7e392f295b7b0e972a710d11084a917cb3e0d4635c64a0c24c961d3d7dfe38077daee2e43420cc9b0651a2dc31d1ebc4188b4cb1268a12b2f554ce9500eaa57737e24bd950156c11dd818e75022a8e9ab75fa21a596646a776e2dd613a4f2e8a3b57e3697465666ad918140b761d05cd1280c357590e579e14898dcd4fd0ba74453c4ad26948e6a6d7e4914a3b87acd350e64fa645f0361788a129f93f4d80847622460d718e44af390f09c167649684afb7e531381087a00e5ac9367d20fc133249add740a062c3a29f6c351c41bbf0aade71675dae7b56c1aa440b2ea16b6129923d941fe9be9f084b3a9479024144bbc135ba3fb4c3492055d86e52e98bad405a84f6148c3b7122ad2a231fc58fce6fca7e1953531255ff144f6a536ebdcff41324d423d6c8e863663b3136bf1d32b2090ac57fa5e63df301fdbb7aa86547c714c35042a23df12748362346a2af44b8156a72765608158d8cfd312387e09cb019d65c68cb6f1efaefb50e0dbbd7c659ed7b8a0360e41da91826af4f35de0077eeab2966d89a0daa850e790c2f4ff0466d5a45210623d8f69ddf0754ae6031888835886e5e29b6c7b7f308009da3c217da7df956b7a2a21ac263493b123a1ea71ade021dd042c7772fb63c7ab09d30cddad64d6ef2a5255e2b0e32065beb55aa1d3f5b6bd1232b799bc9610614502f07a1d6253d6cd3e4e2ec92b870132d7d0feea64635eebab31fb028e06cd71f0753e63e8923ce681e206d4ef36047017b60621737084865176dc4cf85799acd84581be2876b43e48d5ec21afa3560e40856f944352515c42d58377d100bcc33c15c77f25205e4babd3577630b3ed440168219f64f424619fc1c6ed4f63cbfde62934955223ac9a61eba5969004fb9ee2c789492242a403da17752cd257e7443f8358ee800094d68634b3d25ad43c2cdf560a7e12421646f6dc5641d077c9ef2d76cedfef1586b5456923870ea2450ae18c8858c6c08b028f297d8dcc13793a408bfc606a2618009ba1fd68ee62a599175b6053ff61d5a21f74885d21f3480cc869fc554f57bc95f7102847b6138bd380e95ad88c353677fc89f1496a07b5aada0e318c3c473129cb7d3ffca2160467a8250f525b5387d1d3868c382d80ae90b1981dd745c46ab7d976a28063c76f2c0767ddb6dba55fd649e9ba661cb2c3aa6c78588bcf956d6d27a6970de5f3467952322c5df5b0169cbf2625097344a5dcab9b453163936788019aad29804233d2d5cdc06bd407019532672818bc63d8d7ac4e8e618477a44620013b013f65902491f2f632edf78910e074f42b08742d02fc6fc085fa95fb495675b43d2402af8c75519d8cf4c116620addb941af0402240939facb6b80d5bb9b078eba1e25d9fd8eca9bc4571413d2b93a137c6c24d0388c73f926d054a6c9e8c6e7f3b03478abd53ea3f23a95b209c5d9296adc737f70d848c97dd1009046820267c915b6bbb8c6a7831398126798f07fdeed08e3325545ba7282e594331a21057bc30274e91be04fbd763fe1f8c5e5a747ee13f6c86ddfcd1f6e82b4b6bd2468e282969014c345e794d13ed33767c9f03f14739566925554f5f218e6271da857b3c542541e747b7479dacc820cceff4fd96cccc1d5543f00a5e6f4c0d57638c02646c1535a3e0eb38ff80f3425c351b4e158bf83da6a3cf7f452f9f566d3b10c6df394437fbd5a54a1f6ce22c51ae66938a9b22336b4e5bc19c95f02e8142ccc4702c636a7a525340e6ae1e3ac0a2d0f39533e02ee723ced16bf92b661b89349ec75962234bfc0edcee621943302100f9c5fc984b23faab93fa35d57f26ed5a6fe3bc011a05f43e9241bd1c4ac4ee5eb606ce5e1622807bccadcf2815d871fc234276d97320e6f4d1be06091ff7bcf901e4550d0d10669c6161acd20a2d9cc6dba4801f0b5941de172b9aa27fcab738c0cd60f93646942401c87bf669f9f9983d7592ac258f1fcf312c96a754f7e3d5e71b6c287295fd2138a421d4224b751f3101650a36f5edcd526e38f5501230f51b5af0b2732ed92c8d4c1a35500b0e1948898aad6ef92fda8bd446373b266123f6c6851e5d28935fdb929783254982b99fe15338777d780b0732445257bbcf867cf4c12452bbab8fe31576ff41e5483f493ebd3e5a089df1a4c4cff71c420897611eff1a09a80ce436c45561057ac9ec7b839b9602902b7357cf808e75a3aca10ddf9e231b6248f14ba2751e5efef61d8dbc72a05a7394f1497371d92865a56ce84cabda24592e2133731e5a1bf4eba7279dff46154dfc9b4bacdaa82b2119e5fd083612531cf9338d516ce76f11f3aa78354d7464ec8134484625d1342ab2eda6c7a2ed2a0205bc69cd2b9946e40a5c9f8420612c5c7eef79fe36f309d80049fca572c94c202b8acf6ef4683f1811d3ae7d8e4709ae3eb4b74c8bd338073abe328b6a1371411080599591bd6717af61ec62458c4946bf551bd87e6754013c36cbcac94b53019e9293f1128c40fc1ccefbedbf9b3e518a86b440d0b540872aa52d3776ce1f044a11fe28e0c53433141fbcb06b6741a0f77a3f4296123117aef33893a0f7794daef7a2ad9d1671c552812bb0f88f1bc3648c3ffc8fdc6dc81fea292c02382b0b996f0274c493031ff7850fea187e0e3e0ffbf72d3676412f76953278c061377652e0e877725801d0895df314ec58505f2414e3f9bf0142f14ecf14a63a845d6ab26567c7696835b7fac8b69469561ad0e5919cd5453034abdd07d65cbba50bf344769d790f760abbdf99f387b8d779f8b445c0a8e788501d6543169d6d2772602c3baf0c465e3f708657b4df24bc0cfa7132efff9a4c0a44da7fec349f9329faf36ca583d8933ded7baede6f2b8e07aa361c2c3b37730588b994cd388df50e1b80bbebb8178921210b2385b7d585184b77966bbbbf643e7f99e236bc3afa7b70bdf8f0e77abf6daefa4d475bf8bc5cc052e74fdb9e3526e6f96b51f9c0de18ef57eb06236bce2fb72918b60dac9978aac18a96ac54602e88d2d6e0e5116613e3cba7fcf249c62c211697b2867e186d6d1c58c8c9b89365f7bc8ff542af1559c205d242059c850c7849473c13ec4b0ab96973c9b89e492bc9be0c502644912ed50e107f5429972f974c4f807057511cf7665054dc21ed244458f43c562acd432589eedd0335a11c005dcd93b1364420f0d7b8726a19f40afd343bfb345bd93e1993a5f9462f1f2cf892acc6107f290c14d42c2de240ae3e82071f310659175b848eac45dc3e663f497495023a45e57df4d1189fd154a359be1c88c0f011da5156f8bc7e2d1bcf2a6fede56eaaab0338ec9c3c3541788a27330587bfb5a54e379b4458320263aa26fe12f241c6eefc121a50ad8c4d0f92226d95b032a38ee03761522c99ad2eca4fb99ccdac95341244f68b599a073d16754dc95f68eb223673f329a2181a95bf471bfcd4b042e58c5ea7f53c18344530233cb64ce4ce616325d440b96c91f92a734aa1b50412c6b733ab413e091ae1c0385ac654d1e2a4167c61f9dd012b20cc5eff188f10a06d3f0e818112cba5599111b832640ca4b85f758a1fd63650ac377929362f05ccd8e232c6137f55f2ff4679c117e49d5295f70f5077bcedff290856c2e37ebf75647c4b96c9561a7a382d38452fc26322cda135e3f4e2b62f53c863acfcb8b6e7ecad14e5e82e22c29dc81bb0b6c2f721325847f9db55aeeee26c086eec31b868ee675b6e4757e694c7c152e186536baa968f32d382b460429fa07e0543eb228330265bbdf3ad1469f3371e0f1dbfc11cc35741431f119b6cf56b15204db2858e0366356f3c0fc4b5a5003297a56340ef9d84616afaadd27bf27a5073046568f4ebb93ad371af23df4eb6260eb6510ee4edb411155e3b634258445f38a28cec19044f65bddf6176ea026528334ece2fd158e65c6d7318bbbd08ca18f057d0b093c01f70a937fb6be579310e264c6b2637471e1877f08a6b178d62202974f08e3869fb1390e33a17907999123cf2613eae6c234825bf03f51b4e595ae7c151169f13961df0492739a9e97f187dd63cc2ce7f8e2b0ec80a1e7f666a312f316a493608187c03f7a67eff14fc1372141f799eaf8246edf96bb7b4e6fb0e5b886623319bbb319cf99c55adf82c533d8d3df9b793ec552746091acaddf30b8636ab12d2f78d71f23afe0cffb9b87bdc2edcc2b63f0c0e3d3d8fd69bab6d5d45fbf1186961ad2e1218a59dac7019492f654a26474f70304c87dae4a43e25347af8fc291c147538c74447e729198c5c10ceeaf3ca95b0663f1dd9790f38fc187c62c9a85d480214c6b6a1a429f25a114938221b7aca0b34563e972654231127f80ee2c40cfba37f33aecbcf7998f26af7a07f4c7d7d384f341e9d1cc67f976c005efb09cd113d09452deb55f7e9850ad311d8352b84dc6f1f6cbfa3c0c6877126212624c5156a3fc4853aefae55483cb362ff0ec1fbb121dedf487ce068ad5684420f84e45bcc481186b6301b3c5f2a8e49b798c0b6926e4679ab9fe349dc3ddea3d0c8e7c1da3e5b0261941b5d5c58c1c68d2323ca557af7d495e313830e116e8f45db3d4e121b1073c1485b9a1a2ecf650080b20cc9755bf0d094e3e98c2d9a916a800f14dd1ecd9fa9644cea3f1ce65115662cd5c616c8f6f5720334617096486ab615f31d398d77d0f95009993c97279a5bbbb81805d812b445ff9d5c599bcdcb2d2a7bea13e9c5d5db45dc254c4072cd6445b20d0a768789ace911544ac61890b5ff35cf1b05af1f06f5ba47014f1e5f5ce867b630af51150ec45b5b1e68adacf7bcddf22a977761acb63bbf140a6e744a03854040bbeb62c6af9e6b4f1670c92adeae11583de62c8af9f533204ff8e5f7edfa053851d79ea536c8b279fe1c6c23a73b53522609044166d60f31b4c3c1a6f67af26f9005e6f6a1f91161ee57323c62ed9c1e0cf90cb59ea3515c9e14c14ecc7a9748985b7577f84cc064e8ff940f8935b92b8e21cb0a19cfb231acbf1d200a43f97d3d3446174d53316ffe6047bb4caac55d463bee4d2486564230247f7b811a5432954cb9617714d773586e53e110b0f500fabf512ec275ff577687a277bd806b7b4876af669bd82a1bb4f42c1092c9bc0930ee46e4d885040b4b10eaf0725fb5282631d578a0a3642d15928432b7103b3fbd54b930c5785c3c8f5be57411c55613ab5436c39e35a9738a18ce4500d2533a2c545338e719126173eef8047626c024e997dd0c47ffde79ac45bbde46a13d6150dfb6428de1d46e43d451b03ca4fc4e270ca4970ab80c2acd33735ea1cce52f4f68aba922fc4d073d91b1e4ae714a06b69348c5025aa908141e8aa5918a330eba81ffa550a57123a553a587f8d8833e838658f17ce0d30bbfa2bc4187f2994ea15dd5d28e5b495c046c1fafb5210f145d36ddf4cdbe6d26aef464f362b2ab4cba56e59b02b1b022d0b4f6e80082c0626d571cafea5b7f1d11517f7d40c24048e9930aa1c38bee537a443b7e4aa9d82acbfe79f46a039d152bfc54abcfd29d0c8c52ff9387e1611f69c835a52000d26686abb7c1c3ca4c13cedf8839c8bc7b59a82e0a9ca96bb21664a5a3ccc6bcc9292bed327a895fd03dfb143b57a6d7a925458efef2f635bd0da232db9692e62574574e9c4911091d481e9f34aa8fd1d53577be88a6b1422b073d2355e106911112d2dec8dd4c140d0bbe61cb3afbad3b76dd02f54838765f676404d5c0ecf3b37c739ec9b34d705b102b485e2cfd2d820e65df9e5cadb6a153dffb280927857516b18629665253e646e489d0e6b214c83582c725cb910f2a28bfe26db7669bc750418b227ba8179e1107a8c0c87977fa0c3da1751055be573e50ad598f19d11f7eaedfd7c2c8bc216799c93a16b09e5037dd79f30710d8a50074d48185dd90f83329dc7e86e4da353164a083f5b51dd95089f1d76834d62a2cceec77a9f81d2c726e5967846d7a344dc3ed732ab8aee146b6cffcf302cdfc4aa8e66dacee1a5f45ee0c822a7c22373f3481aafcad1e1452c9ca6a657cde1c24d8bc70f43b968f159a93fa1375fb6711ca21fec66dd38535a7db70716b3c2007baca88c27ffec56f5fb4a55764835f562f1ae7acd6f5d80b2ad79a54fc6a68494306262178dc9972a0b54a05f0e4e04ee11f3cb8fb541723ee35b2553eb0c30868111123e4057c688f870fae8eeeb15068771fc36134e16a9ae5d13baeee250c8530e31b0b5fb66db406b78784e26b0a844ae35b96036a71a08d06728ec83649f99bed4f15d2e36d0cd79f564312044f9b452711e9de982f2e51f31ee3a7102c989eeb5bf9f55775210f8d15880b9435e1f584940523330b35fa815b464f58307da3849d156350245896c00ccada4b63de32d6335b71e0746cdf90f477b2bb7069be932b90324a44b957c2919cd9be0fba1bc787d973741183f909f4f4459b5b24b05bf4b8e02d54e992edb233721145625fc5a315cb680bb57e5076c3c1c774bb676cec7eca5665491c9f4686c1de090a4f919480f74559474f3e3a90b691555b616e9adefdc367085fec316aaf9277a4a6948bcfcd0b3b2112a42e8c1cd400520b13dbacbcd408ee0673dff4ec1167bdc6de364b1c25735632bbf1a2f2f313751420a06449355f85636236a5d4b80d240b71c53e9db536e59f31de78c5aa04eda09420348ffd0605c24e174611322aecc915ad63b95212cb5686047a14d84048a2b6fac067276bf29536ff133283082ea435be24a79859f2a7ea8b1601810f16f12f5ca4c7967b5d5643327dad00682c82292a21e6e35ff5a31397ae4d7e0ce9b9eafa9d1f520ac44ee38514352844a7825e93d857ee2f0dcf6601b4ffcd10d73649c4c305ca0cd1e09a2cfda1b53f86310fd31115cb6d3545123147afa93a802c5221149b7e5e49ae9c470ee5d2507c59781af15ede13fe4806f7e703ab20c89f522fb06cd415b3b18b6379845f4f73c2b6ed368e49204f3f24cb94867644fd84ef51c8fefe172e8e683fd37a997916487bdab2411557178c81106e5f552b3b4660fd74b117713f314058d9f6b32ca25e1535c2f4506655869a6d1fd8cb732e66ee797362295f8b83f2d1fddbcb13d01675ecca6b9a42ab6d7be4762793582f405ca575ba8609650e06e64b38e11b5bdb8f44da9abd41427235e4eec5d93f029fec56d5f46659ab077fb4ed3a474837014b3b8ce9ac0c795ddc6f1b380e6d6a87fd2847469c3060215c4379eea942a9ccdfa9212de251e1ff3b780237c9286653afeb192fa6334ff044e3d6f43265c22518404e3ff84cba6d789c79ff8b1a174e80d06599ee46695499695892cb1f50febe7037ba2a7ce07b2eeec74492796197a88194e7a8508b4be6289dba8f549340609fb36b7849253d0084e2ab686318f00a23b53fbb68cf479dae4e68a5226f651bf74f394050be05b9bf719e0b5e83b6044a90c496223c771d30fa319c37a5439fbd80d6130854b327876db0f42a7a1eaf26d99467601084c4884c4f833f4a56a50c7399257878ff767e6840eb705d9f0fd34b404516a81b55be0ff2e33313de4e9ba8bf8e27efc81fe4d600a45cf93f74f753c262186a5c947150da992fa6f4bc4de93852018474ed588871c41823b108f30de5df20b970fe023b5c0a39c39e3a4dd72bf128d49b79b948fbc25deb5a995efe64fd7580d4965860ed4b6f452740a5448c816869b62b861518aa57419941c5d10c8a457b0578741c13bb72c6f6f0fc0bf79b5e0b7c58aa41c08d68a2d292e5c2043a0d33baa9d28850b32e34634c8ad25b4d15876ac9dac0ad3a36bc3f090c34230e0ed3f45c964713583fbde330c6a16ee75b308676dd740396467a83d57c05d22756bd8f6bcceb7a8545fff6d32e0ef2143265c44a80257a583e3255a4874220037da5fe123d822d284dededbc779dcd170bfc8f31a467ae29031ab623948b61d64db2a5867f1d54046a4596141dac03be1b9980a331a55b1d570d0b4482494dcb7093f8bc5b2b6bfa7a3a2d4f01a7455e053ba076e18e8e055d8ba31bc33edb3a710b868e596d7b4e4c92d1df17c958e40108dd2b4c502afc06ba26ad32bd84a7052b01c0b0c7e9180eafc16398cfc6525dc1c6f52624358c65b970aefb72016805f0305519a4f9de04d331f694d66968042b23d92af82c4d63dc5026e09ae621631527de36e78b234ac2e1b9640ea5a6135490be2b822986454be253c5424b626f1ab4da484855f1356575e98014203e3ef52afefc8351b63686aa7039c8537748ce09224e316da55566a47b3c19c87847e96d5112b3681f5f9e25520342f46a2fb651858937153a68b01b92c5bd221b03f565081080c4f917958e062baf62603674ffd0e3d6ab48213956c790313e0a38039f580decd2e120d36690bb1af263056cfe9b761e374d5279afd94034ba682bf00e6b57100340425227085000237967b22d34593aa82d7b66d4b4a635eb2d590d51b201f435834539c01b5b07e42023a06fbf81ef4d0d32284564acf772d041be1aca1c0786c2207578536a7c60b26f5778de093c89fa1301b1133f15810905e62a6d19a7a29f4dfefbe58e91b6a63fbd5029776f04f635e148e4aa8c7cf50b92b1af593134e905182b0b40a36c824a0ad381c557929615df5cc7a1420a3f7b100ee0bd9aff8f0dcc2fb560feba6323b83ac7710374b80dec9050b24c40e50a628f8b2833521d2935eb928e3f5f8654abbd75d5c700113a89aea8979a21990bea403c72b973a9651d9da6ef07464d4b16a45d09b5bbd16360394e1e044b3b135387797f9cf80e1e99240c9a58febd30040b52c1815d3e2f6ed8d1f3c2c86a69d9b9428ebfcde80e4e848f6e51c9f45d0880dcef62036a4fc6a8ee74c901e12fb9a3c19fbb2f70379730674a2c76017723430e05ecad813733d115be1484f929e911c7c76ae00c14d5d9bd0713dce43e6415af3725f784396b5aa84dd576c261b8eecdb950181d1670396d1e602f5e7fbb996e8a1b1efe072905b39abc15b85fe9a340fe5561714bf899c8ec8a66d864b928923b0737452a122b1daa34482c7a0e33ca43109fd51cf6457d4b19156e7022e71f6b7c83a81fea6a10807e1b7f3f3abd0542cfe48a1a5275304db4904327677233e49868086ddbea2c7baf569b26c63d85d61ab040067239bdf1b4f6d47aaf38190ce79ba75d3b8d991a48f19503332d725eaa17b92d4258d6178f57f22a69d76372e9da427f5b463441f5396e367b64dab92948b2232c932610e5828b3104c177c148309e0c70f2baf14cfa237ac80c9d2b7c38014d7679b9aa4cce652646fcbb484ecf80493a31b6c8723e2827b8dbae93ee5fc722b7a1d7f120b7ad353fd6b431880b3f5e736b54b0c024d3070b279155bdd3ad6d74ac995110353f4b5d1e9d1259a8b902550e78db7c4d2d2e0ea8aaf91587996d6db8ffaccc4a55441100bbe767782751d39f505d3e46807acdcf7d731e5c25096a972c9691d2fb35b2515ab2acf88b268ad267be45e0da798295a1471fc79e1b48f5bb76d4ba1b061790bbeb863c3f3aad75ab67e14b192a4457f4b4fd6c285d748a6ab334f3c66506efb163e87a9f6c939e37c34c885344a9996556e4c9c503236f45d35030fb7dba18f275eea223271618d5421455de32aa390a6406d2783c29ae3f7835cb1c3d664bf6cc6921aa4cbc8c6bfd9e0817794e782917259676736ed061621d63a31e94676779f8d5da313512a85f4cab9c778ebea77a677b9e20693ad5435dfbe730d5825e98c0472e5917b3cd4e4e883906ec5f77981003f30ccebf34a8c6188339d588ca30f6cbc7478f4e901a48ed6f1f5ade01287e0be64f896976eb354cd453b9d4c8b9fdf7d2465e15238dfce40c6aa371127c5bdaaa4713a8a6b681a4d32ac75e5c6e094fa25e3d6e0934833ec218ab98e2e4d0e388478e09b6c50e887e1709ae3d730b78d8047c2785ed64615806e08b1e6b46aa6d77d33232a00d0a9e1f40dbc45b01f48e3896831e163005de15e0fb03221f68b5285849dde06880275b1fe340dba9ac4b77d44955c8fff1aa3e92c6e23b112078152f655630447ceb4524f930ad89858d6401cf58fe844e2026766a65807bd61f01cf6bdc29ac950349d941d7a16bf1ab45d0ab58093f7a4b24580e45749ab833472e8f4adc10467369d4a2d7c526c1917bbf20afcf7e16c255e0477f4525881b6e8be18d235831cb7538eedce152104a698336cc4597fc3a18340a43a73a47714a87693a44336d220feb24978f3ae0020f6d1637a4ab9ffa78e3590fb112dbc57fa1d99744b470620ea824a68d9a5422140d5314517f15f5259c4cd772822cde0fa1e8d0ec87b83b2179464ccf468712387b24be65f016ff751c8d1ffeb72b6e2c03b6ecb184358d54e80c343a9d3a94143a9ff65e6d781f4818b9f6eb28c5264e29e02d038b3b434e4fed821c1e3b281e07f53be7cbef417b2aca36c2d3878323e6e6627e6897a075e344ac5bfb3b66531feb0ee2fff1e639604dd2aa8dfadd2a8e5afdfb6159796296b1ca109b9c77109d1c1f416a99dd283463e2e53a0a1817997d325ec2940e7765704c4e26d59d02c5e347aa191f942837262ec53b5e9c749ab3771d6a184e080fa8ddf94d8f015d392055e2ae3dce47eda469173c2c4c3d0ec1b4735e7f9822cfb0463e03728a39278c8b1b08bac62983bf0b0e8265453af51aec8cda8eff46b878b05f830c4b5f2fa2efb0a031343888def09f7489a0686c0c49e985fe5e498bd162900966a5700b6b3d2455f5db26b1dbfb04619f2d411819ca8f5635e52d013824cecea32f11856094084b7b137631229b60f963ab135cdf871063eae540af95d972e5550a0e5416773dccc9726b2d41c078d0462664e3382aad2b3f756584ab471faa7aa479d256f21d1492b86d93e3c25a55a1ef686e758ead2b5de26c8dddc2781191164d9d47a6795309505105f7a5393b49e0298043e5b883e5ef1cbcdfb035ecf64e757386a9f154307f25f910bd0dfa751565253c2c6e439bef59eea534f0424b3959f93106cd5f5efc503df44e6c5c02e84737b4ef503520ce279650dffa656f6845b7e8eb3691b7fa3940dc314e4d83fc0f71844572a417db1901d1c9f080fd14320d18aa16cc20d00db6299bf50a7c2e1b17483d96f7866e13316ea6cd13baf91b74f7dcba11e1277e45496feeaee38a1354d088e02af5a1323cfaca4011f6473df163c14460b72053acc42d5aa7ed6b1b5ddc445186f55c6967f008f354976f4ea4620b5890a64543fece03b4deb94c62af353466c8478a4e71516211c4673b19bf2add6fae2dfe1454de5776f020fa5d701eff44d53dce2065ba64a6fa81126993ea740896bc117d362012e9ef145d6e4cbf81e26680ee7ea443f60c37a7e52dcced09db9402f32c2f7c0db52be53051a40a0d45fc0a3012fcf66553c6044621fbc0e2fef47d264e4c51ee1d725c56777447692c999f31291d1bd68b6747f2343dd1501438d1ba25e5bf924df84d84574ddcdf7f9b19875a7046e3efab4e49055eba5943ac6aaf5d72bcb725f21ccf6b60d128bbd88d30224bf6847fb5a9d032f768534c5837fb4974c20da82e53b3548987b08388fa2113ea7c8da3ef2f121c8dea2e8ac9821268338dd0646427ae62aad9f62ef94daa0d8a6762dca9585a45510ee4bbdad7740b9a19b616ca86773d32d4b337dabfea25338ab4720c693d2d9b146b1f686cbc10dfa00d7e0b911f6edb40b0e92829d430276eb5aac515b565ed1e2c10d5f5722881107d7fd7bf305e6b4597ccb9540572c0c5070649edb43616576f139bf1661a337895c659abf71862ecc1808216546619bad09bfd78716ca3b8957fafe23c5d544d00ce1534341331105ba2d4cb4c00fcf6d2aa3efde755ea026a124177c844d6e1d3cae97aaf4e111c9612e2316827946b7c47ef6de1513555e413ca22d1562860330d077ee97d4784bb5a93f9374765bd8129057fab44c224ff3f5fc318114b3fea81fd5a201583fe8e74283be42e72d386785c04a4590d78cf2c7e28dd7c94555b2d1b46bb3f236954fcf2df9301f7d13274c35f4b4ee44475858bf396592212e0d2dfb71346713a6539a65fb32de5cd35acf668b8330b0c49d6d136b32ed3fbdae0fec0223f4114fc7605ee577c6fb85f4241159c475aacc8d36d3c753a873667ab84d32e24540a11f59ad0c6079b39b9766a098f1767dd79ae08b02d7e8937fd3c550201431a7b12c8fb58532a8c30915809135a70c77f12624cdd2c5c246c949c2c754e67c8897019e4a7ec3f30a321d71fd574762473fd2aea9c6f3cb04a5a713b4902018107df6c7c8bab1f51a2cc5a4770bf50868e281f0a22d15d389ae80411d52c260319527729f17345644ebb85649a4527e20e1f163f87006e20244398ddc9c17a76a65e60c2367a76fe927ba622a93d2d20ef19df0abd997c18e3974e350c222e1035fb0af8a5ea19899618ad0b5a4c376f4d96ecad32347afc00a98b5a138f41699f4f593a10ee4eba2e4ad31e91e75242263dbec35f896aa733d1e2f7fad82c4c373e2e7953d47ffa89e1a930ea346a06427d21d2f57d0771ba0403d3a92502cd89fb405f32bf483c7c77714204a403c7627c0fd0e3f434c3548706eea5e25dafe477b9e674ca38fe3aa2b09211b66ceafe35cadacb2c4e82d083f45447a6699d1bf0eddaac381d47d6c8e90e2a1c461ff4e9870e700f47181ccd6942df38230935926f37934411e202dea595ff9e3d9fac136d43c0c00e2b38d4bedeceda689ea4f244bc8b7d75502896eeb04a2219277507f10c5a8114eb45c0b1fabb622bc4bb3b5c26eddd521882c73b43300c240fb5672dacc40d37fe7b8523423ef21dd8322d511e24ed404035fd58f5dd621a52e4c0af2290d800ae035aa2730094578c1b9deffc44fa1539d9931e3d9ad31fe6952ea281bd0568ca55cdd940731e0d155488b603463d482a8544212d0d2948def905d518ea217c4dc373d2cbb09a3bf05a444f8fefed44d47b47c5860cda2bcef4a2a865d9ea2fa79ed5699a577c714298bd4840a42c599f9e05d70df1d6354574f62ec457de2cf8b83045281c8460e20c67cc1ca2ef0217197732dbbea4671758cf8fed22222331f08f3c83f6da28f8a2c24abd1c654a64179e9ee3493741038e0e80c2531b4fc617944545dc8a28bc8df859a5d378098fd6b6792a85c6284fa2800c2e4e35492c7ba3faa29c26651d38c726cb45293daeb338f177266240af94095da381050ac34185207673ab0db0505cf2bea05c0979425e7a1643d105e89d56c95a7bf6603dd1e90dcb49b321a1babed935907d4ef113d7e6df7f2006ec74c626e31d4d2c47bcb5ecb64f3e3071c3e52ffd54c4562007d846a4108042f2ef2157828d3e4208eb21f24569053faef88ae3650ff740391d46ebf693d0573df8f9c62ee6ad01fed8d7eecc2dee4a0398f59c9a64a81cf8e01e6547524c64bd782f3d63cc6d384a88e58d3709740bd204127176920d5e60e931b237b74554758d55baa3d351362bbde7234936541095edc9b49a422429942f21856544fe02cd3a02c55e2eaf02b3dc46b9abea142896211e49ed90b9316a2b4fd2f4d79b6e43150e7cc7e6903d6333fd410494817e444a1a866248f05ef3342e8a7d82f72441d7fcc0f890ef7b4da453de7104c902aecd173ff222d0048bb032cc67e35145726af656944d9b2dfd2fb1fd619a666fe1064b897bb3c122c22fa170150e6d775d7eac62b5a3d81a3d6e3673fd5c442518a2ae6d2fdac040a8d418c3ef0c420b63d7a51fb837da7a21993a1616cae065da6fa4ff8f0d7b02fa0db7521e11db4397e834cfe1e4986ab0d5e09a65eb3741644df6b9afc30d125233a38c57e447475db51badae651a009f34314180511c270bb9dfea77da3d6b16c182ef0bd8bd5372fd8ffa1232d7160629ca1442e178421273064447add10d552932f44f43090b1006738eb3edb53fa0bd0ec51524dd7c7f7ea9df6cc890529809741891107057fbfd77783b1f300db68a1bf958d3c83561db4205f1fd7e71b2493fed64aa4760aaf4c9088a794d56d0b8860169d86a7770ea39b495c6a41cfd32e37b8b2c900c1fcfc4e9c4d50d0f7fae615c039a9a0573b5d491cbd8067815f2e2d392a4af37f6de2d22eb89d16522d6cbbcd7ffdf68331711befede270829c32b2e0cc68224a26699da9387e6151d90910af2b55f132db5f9564a91c918b625f8275ea3585cad58a2c16745044503d9257090cd0421dec1ffa832d32633cf4d6f477ff18c401611a165ec62537346c1a7dc48c5577c2a19051fa2018f27cd916e4b4ab33b0c666587a16e6a0e40167262712c4aea6ba5eb1d65ec6c9d158179985bf4082806dc63faa0c7673c1260a9e2ce6c80d94f6b11023bd75b415de85572d6b584193acad82180975eff2474f2263864b41927f136b580178d817f239cb972f4665d1ac31d03945e58b736eed94f367e863d6391653713c665ad3da95e5ccbe88de725b1bf8bb84e7a37667e7e913e3d4a005625e3fca5618f1e5d6fc63cbdb4831e7cc175e73d11f6b20c9d9e9547d36f000c175c0d1e67484430354d66031afd9b255847d460ecf60722644a0e23161b2769473cc42943f03365f61b65d7c717411329c3b702baf10f34e68f8c9cc4975f535049d3c71e796513737f08adb748134cf80405ad9bda5138b406f02c8230d55e45edd9ef14f6cd5dd83571c4169d826284bf6b3662f21175086483da956e6a4357550e5bdefc9e01c957299a9773de5277ac4fbd64f43f51dd63f8797aa8f3455f4b913f70d87b78226affb91cab0c6b7bceaebd42d75862e9438185fbda7971b590c5b41e601e4f29c89cf9f4853431a873015306c9fc37a3f3552d57f67d04e470048be5584d1950a16b86c4a1926f884d227826da947e8efd5811b54ca71eb95fe97c7e56b400c01b02645e7673029f1a4a5ae70ad509dd85fee7003b64624889cc64b716f12102233841ddf9dd04715a739b024c373bcc0ca7fbaa63ff037f651cd5aa0e4b4af494a63c2e6cd41de1a2ad5903116e4af349eb69e9d4ce4c2104c176acebaa2a64679d5706544363b0ce3646744b632394c881d9efffd926f3a7eec2d607ae7bc25b400a0f2f1c7463f16167b7f33e0d1867fb20d7aded1669da0eb5a53854090d347e3764a81903a819b64aefa1527b912d8ef9594ec4278ec25884fa88e4778010f1ea106cfd6d9b67c1400d671936984dee91a697ab162fc3487b2e42755263fcc87bc93bf405ebce4e9e4fcbbc19f7185da583d75d2583b736fc14ed5d1d67a0e2fcce97b66d7196b172f483d603455a10b31991b72f4fe7aaadf5124002937ba2f719b7fc5f7fb54aff88f4753b7d898b3eaeae3a46b7158d0db5f73f3b6f0f67c11c61e23ae9eae331f6ad7a12334586746ec7d9031c55f87be1bcc9339fc307831967ba1f9ddf51809f2598503964ff64d9d8be255221f4717f6c646086434a10bf088b10542cbb725115876a42c538d8e097a8447b4261eb64efb66a8638fb60c6c3f06d14b637fa1fb14871dfc39cebf2e90b51ae731cd0bd3cb2429a915a236efbd94d6c78b2e8b761ec186e86f0d2fe1e5072a336424590dc5c1f53a5ebe0f3eeeb40665bfbd9d41ada79d6f6a52890a5c54c677a388d5a899e748abd9e019f2f1125f033dc3ee6df8803b900a10272416b33ba76bf36cd29420a2262e52480bd9463ef4eebcce699810431b17d28dba0ae2b07f2bd347bfe3f47b3827bcf45f2c5098c92aad7f52a6600779d051f7e84ca12d979b0f8147dc433259902b011029a4db98691e93205a2572a7fbd50f188ad6bc8f5310355aba30ebbc7e96766fc21383067927ed7e4fe2b02ba85d09b678e12ebdd61b249a24766a5a9cc0d2e405b52deed414f87a82c668279da8208c9fa293e2f10ef04108b4be0474325b5f2f471c9f8f00ede72eb4edceb1917617b390107eb9480e46d0e5f915272efa3ff0b17c665d707f9ec2307d452637725e5217ea84b7fcc4fa1d866ec1f0bcd838d8638815ff99707c8bc7b0103273a83cc2302af81fe7731a678160ac142d45ebd8f7d92000bc77eca59244612cf4c00b13c05b3e8d25e61e6ea0e0472c2deacacd465012731667a22f45787c1f3414200c740f829fda6d906dc69a33616e59394ac5a032642717067a67348b4393f7297767cd5b2bab0906ec97eb3346103f5815a6c1299e185121f236a9d75ccdefe6b7931fc568d3017f799561f807af00e10871b17c6ca030af33a61d88fee615f88df3af56cf52c42daad1e5be4110cd781df33feb4ba95dce46a21a94daef4985d940365b628278007f0318ea8ec4420dd962f325aeebb5a6ae92992add561e5b28c30c54e5ad785818a067d39a0f85e4c1a2a8370368d04d3674eac001d2b9cf7706bb511040ed056a200ebe0997cd669595f2b1ca44d0cfb8045b7f344fb3af81e7546749801711a87416a78abf113beb564d33d944cf19a1d236ccd7f38157c347dbd014d30f2f16c2a2d4ba6a1ce12703e151f5eb73d2abe681bc90db4bc978e61cea22eedc107ce6c00986bc8c1407202337f7cd39a9cc92763ac8c2ea5e9361702f68a35592e867e72e51461f0790c2bcc16c23b8d614f404cce67a8700225382bc57e6db72efb672c9606ddabee13546592c33f921d944257d84c9e32f35f341ecbfc389755a664b60951444d4f073cac7120bbed1b350f844193ad2e765530b8db9391e66c1b3ce78964d7f42c0416e15560d8e13c1051303f462aa718507c62a7d52c20e48e4abb59be08089c6903832e8862951f750a3954a5a0f65ba161678f81eb6b02736b063ed669f005d8689d41322299ee41750ee90130662edd2dde811704c7a84e792f424638c76c4c20077deed4de2bab2c33a204e3192b7227fa56e5e0a7d1a278dd3853c528e6b72771531bf79b93826a3d285521549eb57e3630c9452a074940b38af0300532f359e42aae3afc357448bdcf955cf8b51d10344795a13103494edf0cab7b36924d4a81292979923511565d12ffc9cc67ca0425dc276b3b275948ce3f3e0bb3e982484b4855b2b4aebb717b8d0fa457f31d77341c16db764f0d5b33c7fdf2dc81223c93e2ac503bd8e67e115ba7c284bda534fe80950fb5c3040c80c772ab30716747f0c2124f22c971443fd4e075e155e973b2e55fb2ec368d5f0c55f7b78550f8504dde5cc1b17a6b51adf77a526d5b447fb295960da2a79c3c22b66391c807a10c7667e223423c9665395706fadaf2b855232e270cd6e30735f9e04d6c09479f01501ad394c39f627861e1f976d5f6fa4054d669d0460c153ec2f01f554060f23fea0775d485000f1eec1c0be77b264b2a2e45674622ebd23e35c75a9fb2b7e9092e67e696bbe6de7fdc2efada9797f82e34138c7333c7884af511b1ff31821a007e713edfbd842d48cfaa5b91bfe4c66067042f5e0e4a7e32dd2299131bf0451397dcaba67a0a3940051cd6c77a495f454e24631526a40336069a20a13d6237480bde39a18e5b514d2cb4d256f65cce0cb9661686e119a6016ef1dba326da9405153fc7e4724e2a6368155b8ac1515671204d2417ff94b65be2d6b9061ea32c5acde329d8c775de6693c29605ccaeb235c98fb84ed383834f846ac45981cc77162c1f4427a80eea555b37e2467a60cf39726dfb00bf837f35b3ef6c52d9e2883d62b9e2d4b5dfc0547468ba7c3c97d9736633e6f6c4cad60cd12d7dda337d7679de59900d2499ba30c435f04418142e4743abe1a78e7356076ca0345bd131a13933ab19ab23c50c1f30f6ad4dd7af4a043a473774cdba966e2619a56eefbcc43e43a7127386056c3e84643e3fec325c2423f678adec43d074016790f79e522435e056211bce77e70a1f0312a92cb1475776c94cf84416517988798b11699b222889741f435477f254106d8fe93026474edfc77d2bf9d40e36fa576caa142a5f7d1f15cc5e2e755312bda0e9d687684960323df031194e224a9b17b703f4b7bf3932f3f7b90c5a8269736ae89abde5be63a1ccdc511b90976dc8e807b9d3a8f8041e50f684a0fc9373c15aa48436bd087fd71aa4c19411555e5c8981f5613c3c1c9d12839211c63d5bc797ed89cae45c09a55528177b9d120398c0e82339756e0f22b60502dc346c401b752916e00ae065a3b33766ee54d664aaf1f109fc38cf6ae62c2445c28c5371e8e831f0c729e4721f7c7f7ac2f8df77490bc0ecfec5422ff22d14a66321391e0276a578dda5f22934e5bd728fa1e3517f0295a4b094803ee588ffe33f0be05fb30792cef1d9fd110116df1c7d4b416cef99d99a4921316df6669355a60eea28fca14077f0eba05afb7c5d654a9b3e66ba6d0b5acdb9ea6e33d2858306896b718fcad574b04465535b5dce9ea444e45f784eac2fe1443b42d3b1e376f724df3c7dfc43c3a54dfa3b351c57bdc17a4674e55bba81726627157c1ff0c5c9eb4c5a818eb6a6f181063090415efe4b754218af143ab61d8fbd24bed9e26757075f150441273bada40b13e3d60606d2fc316401d848775b54cd7e34517c0bf90ed905304e0dd3cfea7b34dbd50f3addd51762d7380d15b8d31358391ba4f7eca0d13cadd07ee2dce1360f9ad063e14f979579ad02bdbd10abe913fa652aa0fcaef86053c5e9a90a41b66616ded75f13fb1602b00f7d61a2e9bf317d97cdd1a7c58b40d62461b2fd88c87e2639430dae934a4622ce1858c8357f5f7062f4ec7a56714668943eb126d0ed68eadfaa61d045be78b18f2f5d6fb3d9118be95437b9c3c61153ff4a2dec58f41a835abd66c899d80ff084b897fcdae04873b0c1d68c1c45623d912b41e044514ccaac3b33d290f86458c940c089201c1987ae5a57253ebd3bac0ae79274b60e24fd648c4984e6736afb365728b33829393356419ac29f940473d26fbca40329683cf2aa558d7d677148206a2887557205d4387fd02ce02340b44d6f214415b26139220d8bccac652b98230eab5f3b4152af32faa094f8ba2436f946d3288e5b66488dfbd20479aa12f0872d2e61cebf704df6c45ae475172421f892c5fed1d961507f0102cd72955cc8786c535530622ac0abb74b52067b789742e065b6f47b6a67649d2de6b97a788fa135944012f2215f42f0121cc47b1d9b6cc135022f8d6de524af8022c5e25e961605d3ddf9110cea7c9519b9ef931541416787282298582bc00bb180afd17ada9cb30cea4f45595b05ae6c8e0f2b29cc2b3753d0200960b39481ef166a001623e7671ebc408823fed1a369919b4c5a89028fb27f70904ee2f7ae0569398649bd8862013235073aa417c8cfa6c55f58d1f9e2d2281d6e607e231d0ff0f2f737a812d9e601b17241f536a968c79f0a1d68aa2a9de3a78e250a3c81aaace8d5680fff2794ec78567d6d24c75fc6d7281cd2c457ba37a6ac4f600110c1cce211210c1159c77776312002a730bfdf2e5e31eb9b838ebf70606853d7f3ed88184a76ec599428cf0f6c5b6dc844212893d030a3dead68669fe0644f0f8b607dbc671af3a7ac38c3860023d1d805774b7e6e1958db6f99394d237339f876de9accd84f62292e81e7976d1b227668716596e72f5e8df65eb3311f5b7bc68d44022041624eaae9deb013ce406f53bcafb694d95c11477f0dd57a9c6cb6760251da4ee201350523bbac087e4bbfb6cd07eece11106016cd455fcb722b0e7d273a107c6542c9421b43476bf60838cbb2e0536a8117b4cb1c11ab01da19de39c4530108a47b60a5b28ec2f6fb777fb2ea4ba79f9015f4e0d73d71679655eb6788488aa13117ca2f2e96a56c42488a2e9fc0e8b7740dc344cc210bf422219695caaf4842815ad085f95d211bc052589cee689d4e4a58c3a32d94ded7eb77c212679dd22417250754c52cabaa9624fb8a214a04ba051b1fdc135beb138307667d63f04cdd7f7d4deb900deb88fb170d089069f8367b7c1883bdaf3772101a27326cd6f1788e1ef65c680fb4edf85728d5980b5c13ff62f9e007d09a2fb5252589cbe10a2df67b98ae739bcd6bc729749a779d26fa413ace3022ee8f417c24138e353eb9d9625433ec8b52609c6a65a7315bffb718ff2ab86e51c4af1af555cdb176c1c9768f4e033396c6901026699c8896c09d7bdc2a719f79b577625b4ee2e084af25a99c31a10d02ebafc5bb58b718d6d87bca4849735fb0d6032529658fe5a87195d58f4425c861ab7ec7d954e421fe5f8c83d21768c4de7ba68dca38ca98856b91d21273a71afc432cf4c755865bba252488f1124740f52f08ec6169fe29e2e5416dc248cd8e488e7971155b8d33f54ad2a51440a773b3d2c8417b44476dbea9295269179a71589540629847aaae43c31e53c458eb5dc03245107f751303470cb26b323acbddb0604c7e00432593d7e50247d90d56996a78ec64a256f2ce833d1b8c943d84f606bf5c9cf46aa2fbf34dc7658c5add54634cd6ab262f81076f7efbc2284ed9eb9ef4bee54f45a5001ae858f01d74bdd79f39d6b7992f1c363f640c7265212d5a8a2439676408051df1d7c50f8770db1cc32d9d9edb707b31ee0bda4cae329af9bafd66f93b5672963df3a970f52c434f771051c77c7181e557f887a6d150cc2472bfca84d61de16dba0660e7c60b3bc24d29c3be8462752c7d4b5033dd19688ebfcde2b5f6417959f1be8182d168539dccb50b05eb76a9d435f602226e51715f612ed706d67934f35ee250bd1c07fde5f8b367270e625db789491513bc551460b1dede5d6f5a7445e8ff63cdc61448d10c18e4de46686fc4d2207c8d641f3808f6b06efae65f8a61c0dec1f0002a82616e19df2bc63619494ca32f8fd701aa08366cc476834249945eb961dad67ec4a8a2defb7dff63d02cc9b747898e18c63d7636d893110b23d49e8b757f680c20ca67d732b5fd28079a3bf1403b8a410645809f510d5657baaebc27df73ed4f3b4328ed0f99b511c0b1d1c1a8e0345da02079d00036442d21be90e07124077b878ab6fd129c3261046d2060c36a512785a137001242b005fefacb5008d4a01b46b3b6cd69ce900312e7346cea1b96486d695bd0ed076845dab0fe17d1e1583033fae5ef4c7b4249103312fa771cef1a9114e39f79cf2e3e4a71f2b8d078320d40653aef35a6fc16555b40460a9131423f1b7943024749012a243abe6efa1967010539dc57de5038f0050b2bf08ab623a335f7ebf1760f081c38c6116c3ea85943d9470fca0e9a1d944eab02c4e2ee616f1661a4f2055875f531f890a561a44f5eb2e91643a7584ecf1557a3ca0c43022728a255dc04673c7f2dfb03f9d53d32a95c6076cb04a538bf1373075dfc3f1713094932fb05d4594bac9570a25c480629da06925333c92b322468366fa0207ba7e9bd2823e8ff64e20bfd2449322e0c9ef703692bc2ad363f80271d5055067c1e56bef2e8900076d4292e17eeccd93cb60334bd9394e6735e2d106a1fbf57136319d85f5cf92558e17965f55fe27e0c100aa674c8e13f2ba0a50036b973343fcd355ec0117a2043212322e5d10eeb4154e3a6ebe71db4435a04bfb7f8ef9e6c4625c295403f1d6aea6352a4be5a5a519241e2d6cd495815e9a11a1539d73b113e71d5092e7e7e143ac42ab490a7fe4ca0eeda49f23761043253801da6cc5b13d8be1ed0d09c7f123c31ee6e8cf359425d328bb4020de1752d26c47d0063456e68178c4fc5ce1c3d6dec0cc148f3773ef93e7ad857101636dea8fdf660fc1227147ffa8a99f5822ab137dd10e55d423aae8583c1e96d165701562c6ecb129e6a02cb2a3812fd27103f5bd9dfcdfaae3a15c85a197f2bef7e96518bef21f1f661678cee4f7785b353536bffbbb90ada04fb99a6fc477b152cbba9a2c07138ee4d657778400c5fc2647bae6ceb2baa387588780a77b505e61478c194cee3f2e11a834ea8be6e660765d74278f5e7005765e31749ea4266036aa27236b5340b7e6e8f8667dc017a06228f5ab108822303766a2eebcba9f6d71651131bfb2f52301dc1e6856e6834675c1f6c5be8b4fbe7398b52e09c08b6e7795e7d8bee5e0af31e8ccf479b9e940e35387053c264109e4d05aa797dcd32d90aff0ccde6c055bb29a085a21b4cb3640abc542a86f655214d21c10cf77b8f1358f73d9c92c72875712c7d21df6d8301470f8439215d5f0054d1e53a01b63c512f6704ee76af092d1bc99c5a793342df5c3dac1709aa0e04683d4864ac62762810d50eb98d8e880805571eebfab9798870fb213bf5dab77a74f6a8c6985b7f47403b95b2be0392153ab41c5fc9f9ff223cc1f3b1413b33351c6cbb7cc8b15f9f2a662cbf24c6ca6c680d00a9f717436e087a76a7b0ce7784079f69d540f12113557d352e25be46030a8849353a893d044f298442280750f911a8b8c3309fad592deb008ab28d6b383f7bb1298542497e226e24176cdfeb4e2d3c1dcd760a34a926f107258ac8b6dc41b5fd5d468681ac5d3aa09ec4c4c60d00b25d756f9ec23551a4b06bc4db0ba524ffa7df23b76a4c4137d44f552d92152afb253d262c4ce07633aeeb36ed703945b93c3ae21916b61daab7a673118a7e36c595bf0049cc514e39970ff780e9ab3a9c090e69ccf8431024a42e1b0dac77422e22fc822f3a8e121514567ef840623ef493f1e46617fd422730235b62cabe7335fb82621fcded5c83bbf91793aa3465e133db5d1ad195618403aa485e3ae764f992f05f62a4561525ba5cff1632af4a56e39ec465052422fe90686ac245a061188863d0da5f113cdec5386075964a48b3f49d42d8acca0c92319e2ec413ac20e60517713021900ad361e79fccc4ac67badfe2481d1cc53cad8f9cf301c0fe0e7359477baebb786e6492143a9369d85722f98c1ace9cfc3640dbc3a0849c096c9f09d38d82ce46755d4876ea0471c4019e5abf58082c97032fa9050c49353a015850e48a088aa843b74515fa4c19dd295e10bb897f19f33888a89b89964bd40f4001721f80873e4ace7f16c079f0e07a2ca9eb9389cff571431c0260ef1fad6c7106394e8cfca9292d8f4300fccd417978eaa213a0bf7a0f081b9c637661c513d27dce80d5d1f92f00c166fa8cf57476db88d7d9c1c00c3080b7ba8f9fb94d3437d0d280003f5c481b2dec9eda8b6413a62687ee89eb51128f620073747730460e9a305cc7f5761a1cdf426b2b92aa0a1ccd35c6403bbd2222e4f19e3ee9d46ca2cd70bfa5f7b34eaf6d09682dbd3d034809a859be95fa4aa8ad825318eaa6320cd5ca5e21ea6424e6188a51bad9b02023f5e648912d2b36c8bb18f775603565166db917a5d1fe725203557adddc5247a5c526d32d697d33661f0b97109cda3e8591b05b6cb9d95cadbe560ac6716d0af6a1c74f47aefd3538f12163b2261336848d8f83fd4a7d6aa9f7328743d69d2c41710f290f63d84c4cd4a80302bd4d4c19f20b54d5326e292f110236cbcabf1e1428c5040740041bbdc71acf70d964319931d1c393bc153c13202001c622745135660af7f4c8927ed6c26a71758291282ab688f9d7321176a73429c7ce2e6922427bba58377ca2636a6d30c40ebf5d7a270c666b66802f0155949e28f25a4d585848b2f03ce95f531524634463d68518d6aeeeda95d5883e4cb904a3de79713b46769439f292c1106dba57411cea9d7d0f86ffa14928ed7cbf733cf6ee0331654cd70013bdb4da699000b8b0d235a4601d8694577ad0f11d8a17f966cfb7fe6f1343710c144fc43c616811486f3caa0b189d12749889df1cc91d9cd4ad4038280249c416a7b0756b4bd1f711bea9ad4c6dee7e6cca730776645542f7b2ef8e5ea23a472678936336137dbe6981f0db72cbe9419cbfa5f271424e7afcf36d1e3a9faa907b9e782b2775b880b7cd8e0873862fd337510d61472eb8e42a1967437f9cf9c9d65f5fd453be1a2607253aa33058ed76c399e7e952f52757a9a3a9bf23fb001bd4c432131a0427f56c34696c675d15d32bf07fe67ce21ccb87b67df668d94a0c251ecf6b76fe6e408e0d82e1744410b272296ccc7be698f1a8668c647e1e5d457e7591862b7fb6d5a1408b755f11b7e0e757d772720a142bf26427e34a37e87a5fd9cc2344b765b47145dace1f439a8b505a33bd0dd312b4402744200a76ccff6cae86db446d646142731c471ae34bafc99b92f003dc9c309cc1a43367176436234c0567530f0e575d58b2dd19699e7cffa9f6341bec82f6969ca08075cdc3ac7d56f1e3773d673be1ede02560dbc4efc19fad620ba2d52c22db67d5508fcd90940660c37746fac3eecee9f60ba26944274e40297a25b71f2b1d06522b92eb70bb70b9663a7898835b168cc24721df3bbb5402604e5dea91b1bf68a64bb210a21d86c4645b6a6b732bdb86a576d4fc580ba815dc25eca66ce4776c7f62c3ebda3091977024a94bf19b2e1fe4590df55edab8ae42056fdae27f33f8cd28162a12399f29f73c8c34b4f30677540b8cc6f26dcb591a712edfc2b6b5f0f15e1819b059321df836ed9b65ec63360b0979290b92f9a0a344ef5ef44098bf7865bda9f4dfd752c257c0295a67bf06d4631434cf21037ca777766c69d329b79e2e22002fb9422c31269a4baedd04f5fc0933582c64ef566141ff8397951610d276c8898abf358ea51802a9bb4f2a857c6c988d602f74c5c1339feeb8c5c3c63d77b1ec13898922800846db87948ec85551b54ceca84f451a315ce171a6cff8487737c2915d995fc957424187d95c801f41144f5bc270d514713e718c00f0f4c83795ad0910b9e7797c22fdcd818bcffc4eeaf4a9f9b894791513385236602ff32ccd93f2ec54bea6017fc2abab26d9d54838028ad15c30291a46c1236de9bba81f105e0d55324b2a70b7168090e59e000e35b79feee31ef3107dc8dafe8c0dab39a43ed5682b4d962ef8ba1a956bd8283ed347b29ae55843393288ee24bec6840a7db3ec304279cd21c4a04e710197353eb8c472d537d17518a87b822195f90e59f305bca421b6413920eb9c1d7c99463a24179e7175114604a0d8d0e2bdf1c241143f4d9f9d495951864c5912ceeb712383ca623c5b7707571f458ee4bb0b7b5033d79fbb9ec307234af6f7081818132ffc99a778133a311d56dc6e3db2f2477cf64a65e9fc94407994db1ef9c0ba36184e21a4c755593f3b8152a5c555fe5f3929f730347edcb17cf0832d8d4cd90f66ff834954fb97826c32edae17535c13559cff60bd6403060c75e13de69e6d2d3bf004aa164e056468f21aa8bda70f984b26fc1e689a8a7b3d1f8539a47f2f3860ce81f98c9449d459784a623da85f044e9f47ac6e40fd036530a3cd530ff9475e5d751f91a0a92d2b37b6a2d8eb97d702f41bccc734b7c71722cd305e97ea4354efc8bd9654d33b1adaf83775b20ccd7ce2adb9fb030c132be6203df54f84ac5bf1502e6b9b6d3d1b1cf412e5a6f7c277778610f4dfe0eb54c42b6556a8692a560c90c900955fb87fd90fd383ba34911dd51cc02bb2d33958dd7ed89d8547876211a50a73a9eacb33c44c44afaeaa0a30d46ab1e46cc0b129aeee3754d32b5c21180428468aa3a56815b6e2a6a9908d231f75b30631550e1c8c0c22e79ff75144b1417db60a155165dc726b6afed4e638f75f3887fa8d7c5c539780ec02d3f316fda289f3e3eddf0600434dab6b1b33788241e5e230fe1960d196f94e8b475530749ba28c642a4b0981c5c30ae5247b5cb644670b7d9281164cf5159666a9c70cf322f97716b87125154b2656d2220a2cfe358d6eeafbf457e85fcc4a6172ff090c7e746bca4dfb3bf9007e8499247b62c20cd64c2b95b3779d0e3ece3a3d7140d6790d5857a2be5ca7a41891287dd571833adffe30d83e69bcfc127837330a1c3150e697f1b0b43615cba48da5a5b3234a14f962144392578bf91bb62b0ed021786dedfe7bce20378981588159ff9a6f43287f5dc4733e5147709f2192ad4d103613bc43657688700bb18f59b0d63b512eff171731dbe029275bf43b20dc943158644ed9db7130189088215ae9e8ba706e416c8903602f4b000520150e7a612de2a2feb3779e8a43d0fea8b9fd3b130eea9a31218ff5d209cbfc2528afe5f50b17b088b815f9070b344f45fa478ab23bf11200a8ac82bd12cff5e87b7862944bf5b3a34cb35bf81ba13ded3fafd8c1404aea19c1e69eb76cf475870be182842dbbfaeefa2efeee6a1ae449ea6ffdc10933a7318e49d2646d94f0a6c22b12c523c11b83b4e9c6124bfbaedbcae8a2db09b57e3f88b31277166b7f99c1a8d4c02c559253757f890d6d6c1a6d6409667a0dec628855aeb1282b6e65e1979f2b0b3091f88aaab199753e8cac1d99a4120d03fb7329bab494820646801c1b945bf2400f3dd411dbd05b52ee4aca01938f865b59dd921354c6e4257b9164317c59a930badc8a673efc2834cf7ba7ff5e839a4afac0c3b7c9dfeb48a75169b694d52a6ca19947b7051f1d5b4ba21d2f921b7b02d350c843690d98253a6ea526f4d27c40ef63d98756f47938d1fc316f6a8e3d33b9584a4a462ba42aa84a36486ee684292134006394f3c4298f4533a149d1e7553272e04c1cc6863cbeaf2fa12ac2a71579084e358ed99e53e48b44ff07fc1f79328b16fb06380d59aec322442265543262e1e6addfe31b58d48c69908187354431572d49275de440fcf487cbb65a307e12191c87d725a431526a0225f40db26c6f3aff8e6780b77272bffdc27d3e8f4b012c0d1630b9e976995a81a2f108073cac878cff5e94036e62a9151728e1b46ffa4d25211ac89c4a5289f60dfe158168473e91fa3570556bcf844b795c2eb249a7129c3e2e28561c15beaf1775ef934c28ac5f6773aea4760845ae6983dd117fc4c0991487bdc5706b52f00cdf921f401797a1098d19bc076f2637e87aec993752cf23ca76582c1bf7d0f7b20b638d2b114589015196ee47e0a95163e7ea141dcc1f6b7591d3a73e8c8e90345544ac394620c9a232d1ed56febc7fe765b0407b76dac15926adab1e4753b1a281922a4e6ec628c1efb3c0693a954d39e3d36066949134651819880de72e3b2ecf0dbc66f70629b01243766dcd4f9bcf7dee1e4185b3b64b611e3b6ddb9f15d3e773b400f9c3036d9fa280501bc798c97db9902b49df38cdf9e1ac2f6d0dfbeb3497f71313827453b406c04befdb0b67bd3b2063f75ba0ec3738db260733ce3e6d52283bb56db8a23f89a7649e9549f346d5832ed96c1d7c8782452d572444f12f6ed56683fff5f0387c84285bb748767b7cb023e357b071a9110a2ee6a7e69ea2348e3e8ac131e2db057329631d4d0b8c6d0e3ae43753f6ee4b353bd2e2253bebcd186037861e7f82e17e6353252998e94c6978c2e96e9fb901021238ffd552691e88725425ad1cf34adc78696941ce49905954d29663bcb5857a2b897f3d09494eb63919371d8cc711425cd33b203e27204208f885cc092656e150e128c851cd967a1faedeb3ac8643a066dfd41e62741c9c0aa24726e7840a0343e00326e5bdac65587954269665689864e713ed6a2aafad56a7eda6d48a710f5ea039098a96961a33923a2536bdcc8f39503e30670892923156cf3dcf0690ce169b7bc9608edc0451f9bafb64d4e313747ddf834c40a7560e5927cb38a6b5d322f7c42dc76a0f38733adf6e4e962d5c724536aed9f37e2a0bdb44464957c307518d1d6d10b64b0a6ea70f1261390777797bc20b8ff906d17512c65d50aa7d3402e7bfc078c04cbb70bee37ffc6e74ba1dbdbfc51ace974a784cf7217ca95b182444157a7a47feb92e069bd11586d406797f856b1547e5cb7e09392bc82b3fc663ca5ab859fa3fd544870cdf95979f0078f0a7fd23ef03dd5eb7048ff22d0efc38d46d4a2b1bad7f3faf278e3b0636e769c84c287cbe5c8b3883a5ef0030378e6a0817c12955d55d4328be73c874a257131306d51f19808630077d513f62808f18b5f832ee74bd1463ab6ca57cd054ac25fd0313370dae83776f6fcf2dd96359564e8b137c70689e55f272c9852502014d2fd3bda093a7f5638456a21b72bdc346134eca5c67299565a269297f77099c71711c5dad20fae9596a50ff39f446375036109873cd5db45897dcbe032e8a2479ba31aa56601625186571f217295b705bce2649775defc1322e4ae9bbc419d421d47a7f3c641e104cca4f27c1b0337d3a939c2eab2b642857f3dc84aaffe1dc7e4714eba3dbadbf4f15fd40ad1782e262c8242727eb29f67051282f41a2bb4b188c568563b725a041a4826ad2dc85c074c0e672230903696ff5a40afc22ff0d5a4fd7df3e0281555d7d1934926b37b328185bff76d190dd6fbff56d131ba31e5c90c48304a581713e6eea58103129fb2d5733147efe832b41fa6ffef7ef68781fc76efc594c517d69ebc1e4bce8eda06907bf44187060a112f1c50a3682794e28627848c22ca2e1064a5597409717d50c88d136e691bc77608932df9423e3b3338526c6cbf834351a137c1a389017a534ffce0da47d9d35274df6eeb94b093a0b8594cefd75351f440851d414a23ed05fd81393f2f058b123a51281feba84311bb826be24e5a3a934ef519d2cc8208573c74de13776471b2de3aaa287b71dfe7cdf46a2847f54867bbdc7e042f5ddeb7b72f23af89a976e0042eb07904531eb0bafe6f4f03cf60c72c6667aae67d83705be2614c5e205e248a312fd7aec8b041ed350852f5e12e7049d558c480b488043b79862cbcac2a022982aef40f444f346a79a2ea1059b0743e0f8591ae3c7fa2d3130b993d419467c3a1a11a336459a24f05e953a20def4426fb65fc8a58b1358f90d04e060c5c571d2b1d2df9baa98256d81d67ace3ff30fdb03fd7487f0de3b68db9890f3eb593b1e393426618d263900edfba338ae161ed3970d0547dc700dfd0213f2a7621b395d38564ebcb7d9446f2abba1801d63473a869b7507a17d4124b60f810b51bf24ea91eb185bb86b2793c4457b358b477441fcea64c975b1685461687b65a3ff1b761e988981c87c3632df6bb3de40b07724340358a005f8017fb2b1b92bc13b5741d788d13165e2476a8c158cb8c38800bc7d4932e661634e42ff99728e376301e528ba16386a5d2e222b8a926faf1324176f69bbafbd0e02659edc6f57fa421c4de43d1617368022174de2429b726e0c19a8b791aa5d085276ef6d2e49321474591be0b0c606851a79f9c5352400cf703cc874da44c2c8630469d658085c1a5814ff32331eba696b6f91e488b384552cbd92da6ff683e95e632696d9866c2d4553bcd3a41560b909d2694e3f634120464531e71ac865af2011b8ba6fdb7a7f63dd5a236d4b39183f9dc945aee841be3402ad314c4f68000774658ced46b6504cc37373b1d6f9dd45d64ff173d548421cd7a3aefd628aa7636cec3148a304701d0398480ecfb2ba1d3e2433a7b16f5c2e13492eeff76bd7066edf6435237e961b396ee87f91be4612239c0aa4233e76775f3428ca0ab32572e7a55dcb88d4107f070a9e49d5b59b7e9c41c82751f6647d3f927f2a9e42277d89e9df153fdca55f4b6bcfff42469d23fcd8dc3077c189625a00baf3af2a9114c7d35516e91e8c796f198b64faa45a7df57e1108e312fb41ad67c1622bdb70412d9bca46995be31228c0b885b44e9631e71f1476c466235561555eaa7e8ffb4f76e4cc1385ae6d55be40afebc06285040af21cf20709f5388ed09457d3e0b875d4af8431441d40153d4f5aa78cffae5c748cbab615bce225a03b588a84ee48122ab40f12e32353134ff9d0a99c633b72810e34a06591756e6f556ff73b496e2b97fece2223c2790711c625b9c6e3456d67e24fa936e0676b0de32eca03e1ca4ab765c42d4645930bf57524eacefd8d1cb65bedc01984f90d2e25547c193f025f28bed33a98ca8b20b0bb6153fbaec60fabeeeb580bf6ce3aa12e00df0fe90e34887cee722e374a7fe70e0f5e22a61123ec64d22b53a95330f098dcc6cb6a2f3853d2248762c7c172a46c3f1a052d5d041cddcb73bb398821d6427d6aa47b4c51c2b84e0a356679245da0771895c7d53dc4281c57ca5c0c735c465ea5452b171e5977a3a788b62300769e73c717ea69523e1b1b6350b4123f2055d2455efa01667d0c20667fd04e40bddd5f4c93403c39cf8152ebb5885152f51e66c109c4892b80bc0fc008227d6a8e4ef72839780d341778b4c0616e047826c79132d15cd522f8cb12e08f8380330a5d361bd5a8be626b68deac856f7d7aba654bc01482cc6abd9562f4c608cd307a0b62c6c47d5753ecf0758b0a83ed7892cc0db4277b417c3d600f10f3774c4f67e5b9f6dff95a6fc92d2f12633149407d249c0605e7f6013519fcda7298b975a4262324caf69875d8821306b3d1e76f07a97e250268104a65b0a365dbc8b97fcb6ff915a9200f360af17fc1960343271a197deffccd1c6aef77703b386d535e2778955975cec93474f3a3a69a0aff279d2c24dcbe87d7629dbcd92df98c8a5d8c391ec187611c171c4d84f6d6892f1b78499e0b49769f5050f8bcb8f59c3b0081ffcd2cd63e5102b6c306f3f331c7138dbda4432b96a60327908e715a9bdd7fb3d55a4a23ebc669a93bb1f1b121fc00038682fb81b64821f67adc3add40ff1f4c1035d377e76274982a9943f3b4ea029432abf72c06a56f4e0ba165050ac85cb7f8e7ec20f59c7bd9bffc15f34ce503fb429a233be4797cd6e4cf576a1f6b2f05ec5b21d3dbc60ff09971978a3481674a9b7aa640a5fc02017e14c428b22129257644ee00f6f95db7aa814033bc2e107c169a0c8278940f0a22c7648f5f625abb42d2d66666d7263cc27f5107403537a5de67711ad6ec3fe2b580a2f1390a3b _Values: - {fileID: 1381594469} - {fileID: 1381594468} @@ -11561,7 +11637,6 @@ MonoBehaviour: - {fileID: 2800000, guid: 5cdeb515d6f83b34c9f441349d56525e, type: 3} - {fileID: 4303436613740383453, guid: 4b0098f7176cb49d6ac968b7d3ca4c51, type: 3} - {fileID: 2800000, guid: 272e917ee31ed1b4a90e7ea53131b352, type: 3} - - {fileID: 225916005459818471, guid: 6868f1f1eb20a43eea8d90883b83de2c, type: 3} - {fileID: 2800000, guid: 0133a5fc021cb9c4bbb55681a278e7df, type: 3} - {fileID: 2800000, guid: 85659a6ec2abccb4d8b6b7ed2678e6f8, type: 3} - {fileID: 2800000, guid: ffec42baa7af925408945babbfba5a73, type: 3} @@ -11632,9 +11707,7 @@ MonoBehaviour: - {fileID: 21300000, guid: 1c1bef4b40e990c42aed6432ebd324ef, type: 3} - {fileID: 4681758326963788470, guid: 7440905e187024cd9ad8923844776f82, type: 3} - {fileID: 2155341055219784103, guid: 6868f1f1eb20a43eea8d90883b83de2c, type: 3} - - {fileID: 7819072094691725340, guid: 6868f1f1eb20a43eea8d90883b83de2c, type: 3} - {fileID: 8315257099010545835, guid: 6868f1f1eb20a43eea8d90883b83de2c, type: 3} - - {fileID: 6615467020619937658, guid: 6868f1f1eb20a43eea8d90883b83de2c, type: 3} - {fileID: 2695193391143546800, guid: 6868f1f1eb20a43eea8d90883b83de2c, type: 3} - {fileID: 5446580967707006926, guid: 6868f1f1eb20a43eea8d90883b83de2c, type: 3} - {fileID: 2607937346778766047, guid: 6868f1f1eb20a43eea8d90883b83de2c, type: 3} @@ -14528,7 +14601,6 @@ MonoBehaviour: - {fileID: 10302, guid: 0000000000000000f000000000000000, type: 0} - {fileID: 11500000, guid: 598e68924c9f6324bbfd049d3bae754c, type: 3} - {fileID: 2800000, guid: 16e20df65147743bb9690faa87141948, type: 3} - - {fileID: 2800000, guid: f20112bdeec2e8d4d9f80e8390e37263, type: 3} - {fileID: 2800000, guid: 3b01fe90eb34c7c4bab30f287241c158, type: 3} - {fileID: 21300000, guid: 3b01fe90eb34c7c4bab30f287241c158, type: 3} - {fileID: 2800000, guid: 7fe3e3ef9e5ebd04d9fe53b5637a6ad9, type: 3} @@ -14539,7 +14611,6 @@ MonoBehaviour: - {fileID: 5207693900278283751, guid: d00706ed05d0c4a55943214fad99b6cd, type: 3} - {fileID: 4027344994281376666, guid: d00706ed05d0c4a55943214fad99b6cd, type: 3} - {fileID: 2332323450028543561, guid: d00706ed05d0c4a55943214fad99b6cd, type: 3} - - {fileID: 4736533538822964513, guid: 6868f1f1eb20a43eea8d90883b83de2c, type: 3} - {fileID: 8804141721934180533, guid: d00706ed05d0c4a55943214fad99b6cd, type: 3} - {fileID: 3107239986187882805, guid: d00706ed05d0c4a55943214fad99b6cd, type: 3} - {fileID: 3331079074542817413, guid: d00706ed05d0c4a55943214fad99b6cd, type: 3} @@ -14555,70 +14626,6 @@ MonoBehaviour: - {fileID: 21300000, guid: 16e20df65147743bb9690faa87141948, type: 3} - {fileID: 2800000, guid: e963dcd72924ca1448e01147b483fb05, type: 3} - {fileID: 4800000, guid: 650dd9526735d5b46b79224bc6e94025, type: 3} - - {fileID: 2996620693064889717, guid: 6868f1f1eb20a43eea8d90883b83de2c, type: 3} - - {fileID: 3431036855713867231, guid: 6868f1f1eb20a43eea8d90883b83de2c, type: 3} - - {fileID: 5092296800143683180, guid: 6868f1f1eb20a43eea8d90883b83de2c, type: 3} - - {fileID: 6891730074645321655, guid: 6868f1f1eb20a43eea8d90883b83de2c, type: 3} - - {fileID: 7243586734312054523, guid: 6868f1f1eb20a43eea8d90883b83de2c, type: 3} - - {fileID: 1533738010101455370, guid: 6868f1f1eb20a43eea8d90883b83de2c, type: 3} - - {fileID: 5098805962143818570, guid: 6868f1f1eb20a43eea8d90883b83de2c, type: 3} - - {fileID: 6375172172451430015, guid: 6868f1f1eb20a43eea8d90883b83de2c, type: 3} - - {fileID: 6662225740777612484, guid: 6868f1f1eb20a43eea8d90883b83de2c, type: 3} - - {fileID: 2819373286514868745, guid: 6868f1f1eb20a43eea8d90883b83de2c, type: 3} - - {fileID: 8567237304989610885, guid: 6868f1f1eb20a43eea8d90883b83de2c, type: 3} - - {fileID: 8970866692769550777, guid: 6868f1f1eb20a43eea8d90883b83de2c, type: 3} - - {fileID: 1707365937668837278, guid: 6868f1f1eb20a43eea8d90883b83de2c, type: 3} - - {fileID: 7446366907587489160, guid: 6868f1f1eb20a43eea8d90883b83de2c, type: 3} - - {fileID: 6108287664084560445, guid: 6868f1f1eb20a43eea8d90883b83de2c, type: 3} - - {fileID: 7797533632768020482, guid: 6868f1f1eb20a43eea8d90883b83de2c, type: 3} - - {fileID: 7133742615254542150, guid: 6868f1f1eb20a43eea8d90883b83de2c, type: 3} - - {fileID: 3284612557130195429, guid: 6868f1f1eb20a43eea8d90883b83de2c, type: 3} - - {fileID: 2923287152282970094, guid: 6868f1f1eb20a43eea8d90883b83de2c, type: 3} - - {fileID: 1637556317455541890, guid: 6868f1f1eb20a43eea8d90883b83de2c, type: 3} - - {fileID: 4609825396934787760, guid: 6868f1f1eb20a43eea8d90883b83de2c, type: 3} - - {fileID: 1364360787510668364, guid: 6868f1f1eb20a43eea8d90883b83de2c, type: 3} - - {fileID: 1659018885630350022, guid: 6868f1f1eb20a43eea8d90883b83de2c, type: 3} - - {fileID: 6625566763393588601, guid: 6868f1f1eb20a43eea8d90883b83de2c, type: 3} - - {fileID: 1542431697946926042, guid: 6868f1f1eb20a43eea8d90883b83de2c, type: 3} - - {fileID: 2365395194828733640, guid: 6868f1f1eb20a43eea8d90883b83de2c, type: 3} - - {fileID: 4038212308604828785, guid: 6868f1f1eb20a43eea8d90883b83de2c, type: 3} - - {fileID: 1902234143712973442, guid: 6868f1f1eb20a43eea8d90883b83de2c, type: 3} - - {fileID: 7029003130036819675, guid: 6868f1f1eb20a43eea8d90883b83de2c, type: 3} - - {fileID: 1253331543872638794, guid: 6868f1f1eb20a43eea8d90883b83de2c, type: 3} - - {fileID: 4939449854428195718, guid: 6868f1f1eb20a43eea8d90883b83de2c, type: 3} - - {fileID: 977809222508092083, guid: 6868f1f1eb20a43eea8d90883b83de2c, type: 3} - - {fileID: 8555755573743883259, guid: 6868f1f1eb20a43eea8d90883b83de2c, type: 3} - - {fileID: 8958174604566253673, guid: 6868f1f1eb20a43eea8d90883b83de2c, type: 3} - - {fileID: 1170140254795501554, guid: 6868f1f1eb20a43eea8d90883b83de2c, type: 3} - - {fileID: 6781180603864146931, guid: 6868f1f1eb20a43eea8d90883b83de2c, type: 3} - - {fileID: 5642656977494944196, guid: 6868f1f1eb20a43eea8d90883b83de2c, type: 3} - - {fileID: 8722110726942852161, guid: 6868f1f1eb20a43eea8d90883b83de2c, type: 3} - - {fileID: 2491773873746618557, guid: 6868f1f1eb20a43eea8d90883b83de2c, type: 3} - - {fileID: 640675023150255947, guid: 6868f1f1eb20a43eea8d90883b83de2c, type: 3} - - {fileID: 986401446038852936, guid: 6868f1f1eb20a43eea8d90883b83de2c, type: 3} - - {fileID: 7376548411769734292, guid: 6868f1f1eb20a43eea8d90883b83de2c, type: 3} - - {fileID: 8148999115808574788, guid: 6868f1f1eb20a43eea8d90883b83de2c, type: 3} - - {fileID: 2844229588857528951, guid: 6868f1f1eb20a43eea8d90883b83de2c, type: 3} - - {fileID: 5324828468156544891, guid: 6868f1f1eb20a43eea8d90883b83de2c, type: 3} - - {fileID: 735811043642911989, guid: 6868f1f1eb20a43eea8d90883b83de2c, type: 3} - - {fileID: 1542878924835214833, guid: 6868f1f1eb20a43eea8d90883b83de2c, type: 3} - - {fileID: 4754026303783976574, guid: 6868f1f1eb20a43eea8d90883b83de2c, type: 3} - - {fileID: 4585145368629256910, guid: 6868f1f1eb20a43eea8d90883b83de2c, type: 3} - - {fileID: 8742902831643268706, guid: 6868f1f1eb20a43eea8d90883b83de2c, type: 3} - - {fileID: 3405654275026580897, guid: 6868f1f1eb20a43eea8d90883b83de2c, type: 3} - - {fileID: 1688820265103695840, guid: 6868f1f1eb20a43eea8d90883b83de2c, type: 3} - - {fileID: 6805631879946088149, guid: 6868f1f1eb20a43eea8d90883b83de2c, type: 3} - - {fileID: 4656765475001384646, guid: 6868f1f1eb20a43eea8d90883b83de2c, type: 3} - - {fileID: 7244280250731221200, guid: 6868f1f1eb20a43eea8d90883b83de2c, type: 3} - - {fileID: 3455558476079360249, guid: 6868f1f1eb20a43eea8d90883b83de2c, type: 3} - - {fileID: 1036050143864743483, guid: 6868f1f1eb20a43eea8d90883b83de2c, type: 3} - - {fileID: 4463905498027794830, guid: 6868f1f1eb20a43eea8d90883b83de2c, type: 3} - - {fileID: 9117481800471364653, guid: 6868f1f1eb20a43eea8d90883b83de2c, type: 3} - - {fileID: 8309161937683650865, guid: 6868f1f1eb20a43eea8d90883b83de2c, type: 3} - - {fileID: 5626799352103356858, guid: 6868f1f1eb20a43eea8d90883b83de2c, type: 3} - - {fileID: 7748755508776540552, guid: 6868f1f1eb20a43eea8d90883b83de2c, type: 3} - - {fileID: 1180790755282623953, guid: 6868f1f1eb20a43eea8d90883b83de2c, type: 3} - - {fileID: 2678503443977642295, guid: 6868f1f1eb20a43eea8d90883b83de2c, type: 3} - {fileID: 2800000, guid: a09d9ea1d290ec148a3ec65492d3b299, type: 3} - {fileID: 21300000, guid: aa2a89f62c544a54692da9f0c22a44e2, type: 3} - {fileID: 2800000, guid: aa2a89f62c544a54692da9f0c22a44e2, type: 3} @@ -14633,6 +14640,30 @@ MonoBehaviour: - {fileID: -2239278724076068761, guid: 72f7a32ac9c7676409eb438757bc6b4a, type: 3} - {fileID: 2800000, guid: cecdbf60b0c9d47c9a26b99a41425de0, type: 3} - {fileID: 21300000, guid: cecdbf60b0c9d47c9a26b99a41425de0, type: 3} + - {fileID: 11500000, guid: 0047a92c04d25bf4db4bf2670b936dc0, type: 3} + - {fileID: 4373037038321954862, guid: d07bb3561db3fa945b43f4bcffbd28fb, type: 3} + - {fileID: 5075741739930138068, guid: d07bb3561db3fa945b43f4bcffbd28fb, type: 3} + - {fileID: 5517159431924024882, guid: f3be65e0ba670014d9aadb8a7d5018e6, type: 3} + - {fileID: 7986888078867694945, guid: f3be65e0ba670014d9aadb8a7d5018e6, type: 3} + - {fileID: 1245899045477576615, guid: f3be65e0ba670014d9aadb8a7d5018e6, type: 3} + - {fileID: 2422713327444875072, guid: f3be65e0ba670014d9aadb8a7d5018e6, type: 3} + - {fileID: 1258299959} + - {fileID: 2595472339849441637, guid: d07bb3561db3fa945b43f4bcffbd28fb, type: 3} + - {fileID: 11500000, guid: 9541d86e2fd84c1d9990edf0852d74ab, type: 3} + - {fileID: 7218990644326672365, guid: d07bb3561db3fa945b43f4bcffbd28fb, type: 3} + - {fileID: 2800000, guid: 3ee40aa79cd242a5b53b0b0ca4f13f0f, type: 3} + - {fileID: 2800000, guid: f66c4aa44c09b6a42a2b5b9f9334d824, type: 3} + - {fileID: 2800000, guid: a7ec9e7ad8b847b7ae4510af83c5d868, type: 3} + - {fileID: 2800000, guid: 02f78a9ec76d40f49bfac78c64a754d1, type: 3} + - {fileID: 2800000, guid: f87b5805002ec9649bcb1b96d8a16ba9, type: 3} + - {fileID: 2800000, guid: b0f85f7da5042c0448a526d5ecacbfa9, type: 3} + - {fileID: 2800000, guid: 3028dc075ba8c584d9bc7d1e0255e038, type: 3} + - {fileID: 2800000, guid: dcc0ed9263c0d524aabeb5f4bd75ecee, type: 3} + - {fileID: 2800000, guid: 93f09189124b21e479fc891dbc1b93bf, type: 3} + - {fileID: 1028237568} + - {fileID: 1028237567} + - {fileID: 2800000, guid: 2fd6421f253b4ef1a19526541f9ffc0c, type: 3} + - {fileID: 2800000, guid: ee148e281f3c41c5b4ff5f8a5afe5a6c, type: 3} --- !u!4 &1926461710 Transform: m_ObjectHideFlags: 0 @@ -15115,7 +15146,7 @@ GameObject: m_Component: - component: {fileID: 2088191384} - component: {fileID: 2088191385} - m_Layer: 0 + m_Layer: 8 m_Name: GridController m_TagString: Untagged m_Icon: {fileID: 0} @@ -15138,6 +15169,7 @@ Transform: - {fileID: 1258299955} - {fileID: 980378615} - {fileID: 1892830638} + - {fileID: 1028237568} m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!114 &2088191385 @@ -15158,6 +15190,7 @@ MonoBehaviour: yPlaneEnabled: 1 xPlaneEnabled: 0 zPlaneEnabled: 0 + isYPlaneShowingPositionText: 0 --- !u!224 &95561077428562386 RectTransform: m_ObjectHideFlags: 0 diff --git a/Assets/Scripts/EditorGame/Base/GeneralSubmodules/SelectSubmodule.cs b/Assets/Scripts/EditorGame/Base/GeneralSubmodules/SelectSubmodule.cs new file mode 100644 index 00000000..184748b2 --- /dev/null +++ b/Assets/Scripts/EditorGame/Base/GeneralSubmodules/SelectSubmodule.cs @@ -0,0 +1,38 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.Events; + +namespace Ichni.RhythmGame +{ + public class SelectSubmodule : SubmoduleBase + { + private GameElement elementToSelect; + + public SelectSubmodule(GameElement attachedGameElement, GameElement elementToSelect = null) : base(attachedGameElement) + { + (attachedGameElement as IHaveSelectSubmodule).selectSubmodule = this; + (attachedGameElement).gameObject.layer = LayerMask.NameToLayer("Selectable"); + this.elementToSelect = elementToSelect == null ? attachedGameElement : elementToSelect; + } + + public void SelectGameElement() + { + Debug.Log(elementToSelect); + EditorManager.instance.operationManager.ClearSelectedElements(); + EditorManager.instance.operationManager.AddSelectElement(elementToSelect); + EditorManager.instance.uiManager.inspector.SetInspector(elementToSelect); + EditorManager.instance.timeline.SetTimeLine(elementToSelect); + } + + public override void SaveBM() + { + //这个模块不需要存档 + } + } + + public interface IHaveSelectSubmodule + { + public SelectSubmodule selectSubmodule { get; set; } + } +} \ No newline at end of file diff --git a/Assets/Scripts/EditorGame/Base/GeneralSubmodules/SelectSubmodule.cs.meta b/Assets/Scripts/EditorGame/Base/GeneralSubmodules/SelectSubmodule.cs.meta new file mode 100644 index 00000000..d16ddeab --- /dev/null +++ b/Assets/Scripts/EditorGame/Base/GeneralSubmodules/SelectSubmodule.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e91fffff157a0d543850b1ce45419ff8 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/EditorGame/GameElements/GameElement.cs b/Assets/Scripts/EditorGame/GameElements/GameElement.cs index 06ca8d10..7d4d88f7 100644 --- a/Assets/Scripts/EditorGame/GameElements/GameElement.cs +++ b/Assets/Scripts/EditorGame/GameElements/GameElement.cs @@ -53,7 +53,11 @@ namespace Ichni.RhythmGame this.tags = tags; EditorManager.instance.beatmapContainer.gameElementList.Add(this); submoduleList = new List(); - if (isFirstGenerated) SetDefaultSubmodules(); + if (isFirstGenerated) + { + SetDefaultSubmodules(); + } + SetParent(parentElement); EditorManager.instance.uiManager.hierarchy.GenerateTab(this, parentElement); @@ -70,12 +74,17 @@ namespace Ichni.RhythmGame } + public virtual void SetEditorSubmodules() + { + + } + /// /// 在所有物体生成完毕后,执行的初始化方法 /// public virtual void AfterInitialize() { - + SetEditorSubmodules(); } /// diff --git a/Assets/Scripts/EditorGame/GameElements/Notes/NoteVisual/NoteVisualBase.cs b/Assets/Scripts/EditorGame/GameElements/Notes/NoteVisual/NoteVisualBase.cs index 1066ff65..9f089f76 100644 --- a/Assets/Scripts/EditorGame/GameElements/Notes/NoteVisual/NoteVisualBase.cs +++ b/Assets/Scripts/EditorGame/GameElements/Notes/NoteVisual/NoteVisualBase.cs @@ -4,7 +4,7 @@ using UnityEngine; namespace Ichni.RhythmGame { - public abstract class NoteVisualBase : SubstantialObject, IHaveEffectSubmodule + public abstract class NoteVisualBase : SubstantialObject, IHaveEffectSubmodule, IHaveSelectSubmodule { public NoteBase note; @@ -15,11 +15,17 @@ namespace Ichni.RhythmGame public List effectPartList; public EffectSubmodule effectSubmodule { get; set; } + public SelectSubmodule selectSubmodule { get; set; } public override void SetDefaultSubmodules() { base.SetDefaultSubmodules(); effectSubmodule = new EffectSubmodule(this, EffectSubmodule.EffectSubmodulePreset.Note); } + + public override void SetEditorSubmodules() + { + selectSubmodule = new SelectSubmodule(this, note); + } } } \ No newline at end of file diff --git a/Assets/Scripts/EditorGame/GameElements/Track/PathNode.cs b/Assets/Scripts/EditorGame/GameElements/Track/PathNode.cs index 3d539767..3a84eeaf 100644 --- a/Assets/Scripts/EditorGame/GameElements/Track/PathNode.cs +++ b/Assets/Scripts/EditorGame/GameElements/Track/PathNode.cs @@ -54,6 +54,7 @@ namespace Ichni.RhythmGame public override void AfterInitialize() { + base.AfterInitialize(); Refresh(); } } diff --git a/Assets/Scripts/EditorGame/GameElements/Track/Track.cs b/Assets/Scripts/EditorGame/GameElements/Track/Track.cs index a36158af..74872195 100644 --- a/Assets/Scripts/EditorGame/GameElements/Track/Track.cs +++ b/Assets/Scripts/EditorGame/GameElements/Track/Track.cs @@ -47,6 +47,8 @@ namespace Ichni.RhythmGame public override void AfterInitialize() { + base.AfterInitialize(); + if (trackPathSubmodule != null && trackPathSubmodule.pathNodeList.Count > 3) { trackPathSubmodule.ClosePath(); @@ -62,7 +64,6 @@ namespace Ichni.RhythmGame trackPathSubmodule?.Refresh(); trackTimeSubmodule?.Refresh(); trackRendererSubmodule?.Refresh(); - } public override void OnDelete() diff --git a/Assets/Scripts/EditorGame/Grids/EditorGrid.cs b/Assets/Scripts/EditorGame/Grids/EditorGrid.cs index 8097735d..6fcd41d0 100644 --- a/Assets/Scripts/EditorGame/Grids/EditorGrid.cs +++ b/Assets/Scripts/EditorGame/Grids/EditorGrid.cs @@ -1,4 +1,10 @@ +using System.Collections.Generic; +using System.Linq; +using Lean.Pool; +using TMPro; using UnityEngine; +using UnityEngine.InputSystem; +using UnityEngine.Serialization; namespace Ichni.Editor { @@ -7,6 +13,8 @@ namespace Ichni.Editor { [Tooltip("指定用于计算缩放的摄像机(若为空则使用 Camera.main)")] public Camera sceneCamera; + + public float cameraDistance; [Tooltip("指定网格所在的平面:0 = XZ (y=0), 1 = XY (z=0), 2 = YZ (x=0)")] public int gridPlane = 0; @@ -21,8 +29,19 @@ namespace Ichni.Editor // 内部缓存材质 private Material gridMaterial; + public float logScale; + public float gridScale; // 1, 4, 16, 64... + + [FormerlySerializedAs("showPositionText")] public bool canShowPositionText; + public bool isShowingPositionText; + public Transform textContainer; + public GameObject positionTextPrefab; + public Dictionary positionTexts; + void Start() { + positionTexts = new Dictionary(); + sceneCamera = EditorManager.instance.cameraManager.sceneCamera.sceneCamera; // 实例化材质,避免修改共享材质 gridMaterial = GetComponent().material; @@ -35,27 +54,103 @@ namespace Ichni.Editor sceneCamera = EditorManager.instance.cameraManager.currentCamera; // 计算摄像机到网格平面的垂直距离 - float camDistance = 0f; + cameraDistance = 0f; Vector3 camPos = sceneCamera.transform.position; Vector3 gridPos = transform.position; switch (gridPlane) { case 0: // XZ 平面:垂直方向为 Y - camDistance = Mathf.Abs(camPos.y - gridPos.y); + cameraDistance = Mathf.Abs(camPos.y - gridPos.y); break; case 1: // XY 平面:垂直方向为 Z - camDistance = Mathf.Abs(camPos.z - gridPos.z); + cameraDistance = Mathf.Abs(camPos.z - gridPos.z); break; case 2: // YZ 平面:垂直方向为 X - camDistance = Mathf.Abs(camPos.x - gridPos.x); + cameraDistance = Mathf.Abs(camPos.x - gridPos.x); break; } // 利用对数函数计算缩放等级:距离越远,网格越大 - float logScale = Mathf.Floor(Mathf.Log(camDistance / distanceFactor + 1, 4)); - float gridScale = baseScale * Mathf.Pow(4, logScale) * scaleMultiplier; + logScale = Mathf.Floor(Mathf.Log(cameraDistance / distanceFactor + 1, 4)); + gridScale = baseScale * Mathf.Pow(4, logScale) * scaleMultiplier; gridMaterial.SetFloat("_GridScale", 1 / gridScale); + gridMaterial.SetFloat("_DisappearEndDistance", 100 * gridScale); + + if (canShowPositionText && isShowingPositionText) + { + GetPoints(); + + foreach (KeyValuePair positionText in positionTexts) + { + positionText.Key.transform.position = positionText.Value + new Vector3(gridScale / 6, 0, gridScale / 12); + float scaleFactor = gridScale * 1.5f; + positionText.Key.transform.localScale = new Vector3(scaleFactor, scaleFactor, scaleFactor); + } + } + } + + void GetPoints() + { + Ray sceneCameraRay = sceneCamera.ScreenPointToRay(new Vector2(Screen.width / 2f, Screen.height / 2f)); + if (Physics.Raycast(sceneCameraRay, out RaycastHit sceneCameraHit, float.MaxValue, LayerMask.GetMask("Grid"))) + { + if (sceneCameraHit.collider.gameObject == gameObject) + { + Vector3 point = sceneCameraHit.point; + float radius = gridScale * 16f; + float step = gridScale * 4f; + + float minX = point.x - radius; + float maxX = point.x + radius; + float minZ = point.z - radius; + float maxZ = point.z + radius; + + // 对于 X 与 Z 方向,根据网格间距取整,确保从整点开始 + minX = Mathf.Floor(minX / step) * step; + maxX = Mathf.Ceil(maxX / step) * step; + minZ = Mathf.Floor(minZ / step) * step; + maxZ = Mathf.Ceil(maxZ / step) * step; + + List newPositions = new List(); + + for (float x = minX; x <= maxX; x += step) + { + for (float z = minZ; z <= maxZ; z += step) + { + Vector3 position = new Vector3(x, 0, z); + + if (!positionTexts.ContainsValue(position)) + { + GameObject posText = LeanPool.Spawn(positionTextPrefab); + posText.transform.position = position + new Vector3(gridScale / 8, 0, gridScale / 16); + posText.transform.forward = -transform.up; + posText.GetComponent().text = $"({Mathf.RoundToInt(position.x)}, {Mathf.RoundToInt(position.z)})"; + posText.transform.SetParent(textContainer); + positionTexts.Add(posText, position); + } + + newPositions.Add(new Vector3(x, 0, z)); + } + } + + List toRemove = new List(); + // 清除不在新范围内的Text + foreach (KeyValuePair positionText in positionTexts) + { + if (!newPositions.Contains(positionText.Value)) + { + LeanPool.Despawn(positionText.Key); + toRemove.Add(positionText.Key); + } + } + + foreach (GameObject text in toRemove) + { + positionTexts.Remove(text); + } + } + } } } } \ No newline at end of file diff --git a/Assets/Scripts/EditorGame/Grids/GridController.cs b/Assets/Scripts/EditorGame/Grids/GridController.cs index 850fe139..e74565e2 100644 --- a/Assets/Scripts/EditorGame/Grids/GridController.cs +++ b/Assets/Scripts/EditorGame/Grids/GridController.cs @@ -3,6 +3,7 @@ using System.Collections; using System.Collections.Generic; using Ichni.RhythmGame; using Ichni.RhythmGame.Beatmap; +using Lean.Pool; using UnityEngine; namespace Ichni.Editor @@ -19,11 +20,14 @@ namespace Ichni.Editor public bool xPlaneEnabled; public bool zPlaneEnabled; + public bool isYPlaneShowingPositionText; + private void Start() { yPlaneEnabled = true; xPlaneEnabled = false; zPlaneEnabled = false; + isYPlaneShowingPositionText = true; RefreshPlanes(); } @@ -38,11 +42,15 @@ namespace Ichni.Editor var yPlaneToggle = inspector.GenerateToggle(this, gridSettings, "Y Plane", nameof(yPlaneEnabled)) .AddListenerFunction(RefreshPlanes); + var xPlaneToggle = + inspector.GenerateToggle(this, gridSettings, "X Plane", nameof(xPlaneEnabled)) + .AddListenerFunction(RefreshPlanes); var zPlaneToggle = inspector.GenerateToggle(this, gridSettings, "Z Plane", nameof(zPlaneEnabled)) .AddListenerFunction(RefreshPlanes); - var xPlaneToggle = - inspector.GenerateToggle(this, gridSettings, "X Plane", nameof(xPlaneEnabled)) + + var yPlaneShowPositionToggle = + inspector.GenerateToggle(this, gridSettings, "Show Y Plane Position", nameof(isYPlaneShowingPositionText)) .AddListenerFunction(RefreshPlanes); } @@ -51,6 +59,17 @@ namespace Ichni.Editor yPlaneGrid.gameObject.SetActive(yPlaneEnabled); xPlaneGrid.gameObject.SetActive(xPlaneEnabled); zPlaneGrid.gameObject.SetActive(zPlaneEnabled); + yPlaneGrid.isShowingPositionText = isYPlaneShowingPositionText; + + if (!yPlaneGrid.isShowingPositionText) + { + foreach (KeyValuePair positionText in yPlaneGrid.positionTexts) + { + LeanPool.Despawn(positionText.Key); + } + + yPlaneGrid.positionTexts.Clear(); + } } } } \ No newline at end of file diff --git a/Assets/Scripts/Manager/EditorManager.cs b/Assets/Scripts/Manager/EditorManager.cs index 3192d2e0..b6e944f8 100644 --- a/Assets/Scripts/Manager/EditorManager.cs +++ b/Assets/Scripts/Manager/EditorManager.cs @@ -92,6 +92,7 @@ namespace Ichni beatmapContainer.gameElementList.ForEach(gameElement => { gameElement.AfterInitialize(); + gameElement.Refresh(); }); } diff --git a/Assets/Scripts/Manager/InputListener.cs b/Assets/Scripts/Manager/InputListener.cs index 1cbe694e..701b63e7 100644 --- a/Assets/Scripts/Manager/InputListener.cs +++ b/Assets/Scripts/Manager/InputListener.cs @@ -35,6 +35,7 @@ namespace Ichni.Editor ResolutionHintsOperation(); UIOperation(); SwitchCameraOperation(); + ClickSelectElement(); } } @@ -232,6 +233,20 @@ namespace Ichni.Editor } } } + + private void ClickSelectElement() + { + if (Mouse.current.leftButton.wasPressedThisFrame && !isPointerOverUI) + { + Vector2 mousePosition = Mouse.current.position.ReadValue(); + Ray ray = EditorManager.instance.cameraManager.currentCamera.ScreenPointToRay(mousePosition); + if (Physics.Raycast(ray, out RaycastHit hit, float.MaxValue, LayerMask.GetMask("Selectable"))) + { + GameElement clickedElement = hit.collider.GetComponent();//TODO: 对于Hold这种复杂的元素,需要使用连接脚本进行获取 + (clickedElement as IHaveSelectSubmodule)?.selectSubmodule.SelectGameElement(); + } + } + } } public partial class InputListener diff --git a/Assets/Scripts/Manager/OperationManager.cs b/Assets/Scripts/Manager/OperationManager.cs index 150d6b56..5bd70939 100644 --- a/Assets/Scripts/Manager/OperationManager.cs +++ b/Assets/Scripts/Manager/OperationManager.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using Ichni.RhythmGame; using Ichni.RhythmGame.Beatmap; using UnityEngine; +using UnityEngine.InputSystem; namespace Ichni.Editor { diff --git a/Assets/StreamingAssets/ThemeBundles/Windows64/Windows64 b/Assets/StreamingAssets/ThemeBundles/Windows64/Windows64 index f7906fc0..d7dd5efe 100644 Binary files a/Assets/StreamingAssets/ThemeBundles/Windows64/Windows64 and b/Assets/StreamingAssets/ThemeBundles/Windows64/Windows64 differ diff --git a/Assets/StreamingAssets/ThemeBundles/Windows64/Windows64.manifest b/Assets/StreamingAssets/ThemeBundles/Windows64/Windows64.manifest index 5a5fd9d8..674d339a 100644 --- a/Assets/StreamingAssets/ThemeBundles/Windows64/Windows64.manifest +++ b/Assets/StreamingAssets/ThemeBundles/Windows64/Windows64.manifest @@ -1,10 +1,10 @@ ManifestFileVersion: 0 -CRC: 325561354 +CRC: 2337150799 AssetBundleManifest: AssetBundleInfos: Info_0: - Name: basic - Dependencies: {} - Info_1: Name: departure_to_multiverse Dependencies: {} + Info_1: + Name: basic + Dependencies: {} diff --git a/Assets/StreamingAssets/ThemeBundles/Windows64/basic.manifest b/Assets/StreamingAssets/ThemeBundles/Windows64/basic.manifest index ae74d409..52e80a1d 100644 --- a/Assets/StreamingAssets/ThemeBundles/Windows64/basic.manifest +++ b/Assets/StreamingAssets/ThemeBundles/Windows64/basic.manifest @@ -3,13 +3,13 @@ CRC: 3025065508 Hashes: AssetFileHash: serializedVersion: 2 - Hash: 40b908b0debf98ce57405f4ee342cce5 + Hash: 94a47516420622b19f8a3027ea5225f2 TypeTreeHash: serializedVersion: 2 Hash: b0381af468dfa38d2d34223ebeb2d739 IncrementalBuildHash: serializedVersion: 2 - Hash: 40b908b0debf98ce57405f4ee342cce5 + Hash: 94a47516420622b19f8a3027ea5225f2 HashAppended: 0 ClassTypes: - Class: 1 diff --git a/Assets/StreamingAssets/ThemeBundles/Windows64/departure_to_multiverse b/Assets/StreamingAssets/ThemeBundles/Windows64/departure_to_multiverse index b49aadea..76b6158d 100644 Binary files a/Assets/StreamingAssets/ThemeBundles/Windows64/departure_to_multiverse and b/Assets/StreamingAssets/ThemeBundles/Windows64/departure_to_multiverse differ diff --git a/Assets/StreamingAssets/ThemeBundles/Windows64/departure_to_multiverse.manifest b/Assets/StreamingAssets/ThemeBundles/Windows64/departure_to_multiverse.manifest index 8caf796c..3de3463a 100644 --- a/Assets/StreamingAssets/ThemeBundles/Windows64/departure_to_multiverse.manifest +++ b/Assets/StreamingAssets/ThemeBundles/Windows64/departure_to_multiverse.manifest @@ -1,15 +1,15 @@ ManifestFileVersion: 0 -CRC: 2114727793 +CRC: 2545563612 Hashes: AssetFileHash: serializedVersion: 2 - Hash: f622966d9d3bb4c4fe15f1377b604033 + Hash: ee1494abca029c6f32fd1dff8d5695fa TypeTreeHash: serializedVersion: 2 - Hash: 0e4abbae5628b06ad350c372eef19b9f + Hash: 7d4efed0a5b6066f81d3b84d7269aad1 IncrementalBuildHash: serializedVersion: 2 - Hash: f622966d9d3bb4c4fe15f1377b604033 + Hash: ee1494abca029c6f32fd1dff8d5695fa HashAppended: 0 ClassTypes: - Class: 1 @@ -38,6 +38,8 @@ ClassTypes: Script: {fileID: 11500000, guid: eb907071d10d7324995ff3aefbc2f1df, type: 3} - Class: 115 Script: {instanceID: 0} +- Class: 135 + Script: {instanceID: 0} - Class: 198 Script: {instanceID: 0} - Class: 199 diff --git a/Assets/ThemeBundles/DepartureToMultiverse/Prefabs/DTM_NoteVisualFlick.prefab b/Assets/ThemeBundles/DepartureToMultiverse/Prefabs/DTM_NoteVisualFlick.prefab index 38698acf..82d723da 100644 --- a/Assets/ThemeBundles/DepartureToMultiverse/Prefabs/DTM_NoteVisualFlick.prefab +++ b/Assets/ThemeBundles/DepartureToMultiverse/Prefabs/DTM_NoteVisualFlick.prefab @@ -11,7 +11,7 @@ GameObject: - component: {fileID: 3696885805842513021} - component: {fileID: 1753672430692802679} - component: {fileID: 4142404261985180642} - m_Layer: 0 + m_Layer: 9 m_Name: par04 m_TagString: Untagged m_Icon: {fileID: 0} @@ -5024,7 +5024,7 @@ GameObject: - component: {fileID: 7438145502796607997} - component: {fileID: 9064599069041618745} - component: {fileID: 3474543315902431745} - m_Layer: 0 + m_Layer: 9 m_Name: par04a m_TagString: Untagged m_Icon: {fileID: 0} @@ -10037,7 +10037,7 @@ GameObject: - component: {fileID: 3299868705770614206} - component: {fileID: 1901828079977603611} - component: {fileID: 4431631944462980817} - m_Layer: 0 + m_Layer: 9 m_Name: flick_a1a m_TagString: Untagged m_Icon: {fileID: 0} @@ -10120,7 +10120,7 @@ GameObject: - component: {fileID: 5370377777275976487} - component: {fileID: 3917862816570112133} - component: {fileID: 833779999936744054} - m_Layer: 0 + m_Layer: 9 m_Name: glow01 m_TagString: Untagged m_Icon: {fileID: 0} @@ -15017,7 +15017,7 @@ GameObject: - component: {fileID: 8611613071781333384} - component: {fileID: 5548396852909566948} - component: {fileID: 5753738576904031524} - m_Layer: 0 + m_Layer: 9 m_Name: par02 m_TagString: Untagged m_Icon: {fileID: 0} @@ -19940,7 +19940,8 @@ GameObject: m_Component: - component: {fileID: 2828557749403774688} - component: {fileID: 1230482840604333981} - m_Layer: 0 + - component: {fileID: 2070171037236872191} + m_Layer: 9 m_Name: DTM_NoteVisualFlick m_TagString: Untagged m_Icon: {fileID: 0} @@ -20015,6 +20016,27 @@ MonoBehaviour: - {fileID: 5329694043409909306} effectPartList: - {fileID: 4411086403337526732} +--- !u!135 &2070171037236872191 +SphereCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3918812215425595527} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Radius: 0.4 + m_Center: {x: 0, y: 0, z: 0} --- !u!1 &4411086403337526732 GameObject: m_ObjectHideFlags: 0 @@ -20026,7 +20048,7 @@ GameObject: - component: {fileID: 5775432071062757210} - component: {fileID: 6187850938271604080} - component: {fileID: 519867058309275128} - m_Layer: 0 + m_Layer: 9 m_Name: flick_a1_HitEffect m_TagString: Untagged m_Icon: {fileID: 0} @@ -24864,7 +24886,7 @@ GameObject: - component: {fileID: 8072592048360139444} - component: {fileID: 7081457195764682605} - component: {fileID: 525850553428118339} - m_Layer: 0 + m_Layer: 9 m_Name: par01a m_TagString: Untagged m_Icon: {fileID: 0} @@ -29786,7 +29808,7 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 3280136974552143098} - m_Layer: 0 + m_Layer: 9 m_Name: NoteMain m_TagString: Untagged m_Icon: {fileID: 0} @@ -29821,7 +29843,7 @@ GameObject: - component: {fileID: 1274785644855947655} - component: {fileID: 5297544294083692610} - component: {fileID: 9123137095137921433} - m_Layer: 0 + m_Layer: 9 m_Name: par01 m_TagString: Untagged m_Icon: {fileID: 0} @@ -34743,7 +34765,7 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 3203352819390645997} - m_Layer: 0 + m_Layer: 9 m_Name: JudgeEffect m_TagString: Untagged m_Icon: {fileID: 0} @@ -34777,7 +34799,7 @@ GameObject: - component: {fileID: 784185854093081322} - component: {fileID: 1453373587200077590} - component: {fileID: 7897050903833976728} - m_Layer: 0 + m_Layer: 9 m_Name: par03 m_TagString: Untagged m_Icon: {fileID: 0} @@ -39701,7 +39723,7 @@ GameObject: - component: {fileID: 7577344205022955196} - component: {fileID: 6811687827371002137} - component: {fileID: 8746851071254461907} - m_Layer: 0 + m_Layer: 9 m_Name: flick_a1 m_TagString: Untagged m_Icon: {fileID: 0} @@ -39784,7 +39806,7 @@ GameObject: - component: {fileID: 76670953897841891} - component: {fileID: 4112188810025275018} - component: {fileID: 6485893021945564903} - m_Layer: 0 + m_Layer: 9 m_Name: glow02 m_TagString: Untagged m_Icon: {fileID: 0} diff --git a/Assets/ThemeBundles/DepartureToMultiverse/Prefabs/DTM_NoteVisualStay.prefab b/Assets/ThemeBundles/DepartureToMultiverse/Prefabs/DTM_NoteVisualStay.prefab index aea86650..0eea086d 100644 --- a/Assets/ThemeBundles/DepartureToMultiverse/Prefabs/DTM_NoteVisualStay.prefab +++ b/Assets/ThemeBundles/DepartureToMultiverse/Prefabs/DTM_NoteVisualStay.prefab @@ -11,7 +11,7 @@ GameObject: - component: {fileID: 1532952502113335888} - component: {fileID: 2228000400836702485} - component: {fileID: 2655143723270843780} - m_Layer: 0 + m_Layer: 9 m_Name: glow02 m_TagString: Untagged m_Icon: {fileID: 0} @@ -4899,7 +4899,7 @@ GameObject: - component: {fileID: 8859053657663366676} - component: {fileID: 7452429476223591256} - component: {fileID: 3411072126441206061} - m_Layer: 0 + m_Layer: 9 m_Name: par02 m_TagString: Untagged m_Icon: {fileID: 0} @@ -9804,7 +9804,8 @@ GameObject: m_Component: - component: {fileID: 2828557749403774688} - component: {fileID: 1230482840604333981} - m_Layer: 0 + - component: {fileID: 1149845662485922453} + m_Layer: 9 m_Name: DTM_NoteVisualStay m_TagString: Untagged m_Icon: {fileID: 0} @@ -9879,6 +9880,27 @@ MonoBehaviour: - {fileID: 5922952087749752714} effectPartList: - {fileID: 5131198242182004625} +--- !u!135 &1149845662485922453 +SphereCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3918812215425595527} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Radius: 0.4 + m_Center: {x: 0, y: 0, z: 0} --- !u!1 &5131198242182004625 GameObject: m_ObjectHideFlags: 0 @@ -9890,7 +9912,7 @@ GameObject: - component: {fileID: 1858639822223451112} - component: {fileID: 2909987453499239890} - component: {fileID: 8164676518475223736} - m_Layer: 0 + m_Layer: 9 m_Name: drag_a3_HitEffect m_TagString: Untagged m_Icon: {fileID: 0} @@ -14724,7 +14746,7 @@ GameObject: - component: {fileID: 4832900275935109613} - component: {fileID: 2784291562309175680} - component: {fileID: 5431012294727193458} - m_Layer: 0 + m_Layer: 9 m_Name: NoteMain m_TagString: Untagged m_Icon: {fileID: 0} @@ -14807,7 +14829,7 @@ GameObject: - component: {fileID: 6279482037342195367} - component: {fileID: 413584224594807826} - component: {fileID: 3079336707146369278} - m_Layer: 0 + m_Layer: 9 m_Name: glow01 m_TagString: Untagged m_Icon: {fileID: 0} @@ -19702,7 +19724,7 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 3203352819390645997} - m_Layer: 0 + m_Layer: 9 m_Name: JudgeEffect m_TagString: Untagged m_Icon: {fileID: 0} @@ -19736,7 +19758,7 @@ GameObject: - component: {fileID: 6760736669114547885} - component: {fileID: 8432502363001158554} - component: {fileID: 7182650156232976990} - m_Layer: 0 + m_Layer: 9 m_Name: par01 m_TagString: Untagged m_Icon: {fileID: 0} diff --git a/Assets/ThemeBundles/DepartureToMultiverse/Prefabs/DTM_NoteVisualTap.prefab b/Assets/ThemeBundles/DepartureToMultiverse/Prefabs/DTM_NoteVisualTap.prefab index 447a3b4a..b0ad19bf 100644 --- a/Assets/ThemeBundles/DepartureToMultiverse/Prefabs/DTM_NoteVisualTap.prefab +++ b/Assets/ThemeBundles/DepartureToMultiverse/Prefabs/DTM_NoteVisualTap.prefab @@ -11,7 +11,7 @@ GameObject: - component: {fileID: 6535657816171745140} - component: {fileID: 7578403851185679711} - component: {fileID: 4182222797866235831} - m_Layer: 0 + m_Layer: 9 m_Name: par01 m_TagString: Untagged m_Icon: {fileID: 0} @@ -4917,7 +4917,7 @@ GameObject: - component: {fileID: 6994804264711109275} - component: {fileID: 208688669667202802} - component: {fileID: 2565098131910805442} - m_Layer: 0 + m_Layer: 9 m_Name: glow02 m_TagString: Untagged m_Icon: {fileID: 0} @@ -9805,7 +9805,7 @@ GameObject: - component: {fileID: 1794876494152332505} - component: {fileID: 5963473695947370674} - component: {fileID: 7576547203323973173} - m_Layer: 0 + m_Layer: 9 m_Name: par01 m_TagString: Untagged m_Icon: {fileID: 0} @@ -14702,7 +14702,7 @@ GameObject: - component: {fileID: 4617362163218526595} - component: {fileID: 6464556335278322898} - component: {fileID: 394608986724185900} - m_Layer: 0 + m_Layer: 9 m_Name: par01 m_TagString: Untagged m_Icon: {fileID: 0} @@ -19626,7 +19626,7 @@ GameObject: - component: {fileID: 5339557819602748331} - component: {fileID: 8466080989844526628} - component: {fileID: 1021004738769019488} - m_Layer: 0 + m_Layer: 9 m_Name: NoteMain m_TagString: Untagged m_Icon: {fileID: 0} @@ -19709,7 +19709,7 @@ GameObject: - component: {fileID: 7055168494208079925} - component: {fileID: 101266917266417953} - component: {fileID: 5882269391717046013} - m_Layer: 0 + m_Layer: 9 m_Name: glow01 m_TagString: Untagged m_Icon: {fileID: 0} @@ -24606,7 +24606,7 @@ GameObject: - component: {fileID: 3386581833133170889} - component: {fileID: 1434440158308207494} - component: {fileID: 4317225974234560260} - m_Layer: 0 + m_Layer: 9 m_Name: tap_a2_HitEffect_bad m_TagString: Untagged m_Icon: {fileID: 0} @@ -29437,7 +29437,7 @@ GameObject: - component: {fileID: 8651835393486798173} - component: {fileID: 2994105552959979108} - component: {fileID: 1374382528206237598} - m_Layer: 0 + m_Layer: 9 m_Name: par02 m_TagString: Untagged m_Icon: {fileID: 0} @@ -34343,7 +34343,7 @@ GameObject: - component: {fileID: 8547645045753052840} - component: {fileID: 3118793645197368392} - component: {fileID: 5124097089292900403} - m_Layer: 0 + m_Layer: 9 m_Name: glow01 m_TagString: Untagged m_Icon: {fileID: 0} @@ -39240,7 +39240,7 @@ GameObject: - component: {fileID: 5104540199728059031} - component: {fileID: 8482321999023847032} - component: {fileID: 4007673131382259424} - m_Layer: 0 + m_Layer: 9 m_Name: tap_a2_HitEffect_Perfect m_TagString: Untagged m_Icon: {fileID: 0} @@ -44073,7 +44073,8 @@ GameObject: m_Component: - component: {fileID: 1955393630991878621} - component: {fileID: 2759238525513880590} - m_Layer: 0 + - component: {fileID: 2624384507000342927} + m_Layer: 9 m_Name: DTM_NoteVisualTap m_TagString: Untagged m_Icon: {fileID: 0} @@ -44150,6 +44151,27 @@ MonoBehaviour: - {fileID: 3962667349093420373} - {fileID: 8421954391491056687} - {fileID: 2692832340720825416} +--- !u!135 &2624384507000342927 +SphereCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4673306895708997148} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Radius: 0.5 + m_Center: {x: 0, y: 0, z: 0} --- !u!1 &5850232885066616162 GameObject: m_ObjectHideFlags: 0 @@ -44161,7 +44183,7 @@ GameObject: - component: {fileID: 1605243954446836928} - component: {fileID: 174598738744585094} - component: {fileID: 7533481135996441100} - m_Layer: 0 + m_Layer: 9 m_Name: glow02 m_TagString: Untagged m_Icon: {fileID: 0} @@ -49047,7 +49069,7 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 8380884215211300867} - m_Layer: 0 + m_Layer: 9 m_Name: JudgeEffect m_TagString: Untagged m_Icon: {fileID: 0} @@ -49083,7 +49105,7 @@ GameObject: - component: {fileID: 6862557031577424204} - component: {fileID: 3049294213425972614} - component: {fileID: 4821337451845823327} - m_Layer: 0 + m_Layer: 9 m_Name: tap_a2_HitEffect_good m_TagString: Untagged m_Icon: {fileID: 0} diff --git a/ProjectSettings/TagManager.asset b/ProjectSettings/TagManager.asset index de54f733..6e9a5c23 100644 --- a/ProjectSettings/TagManager.asset +++ b/ProjectSettings/TagManager.asset @@ -13,8 +13,8 @@ TagManager: - UI - BackgroundUI - - - - - + - Grid + - Selectable - - -