From c79243999b92d2a0124f5af0f9c894ea2ae2a37d Mon Sep 17 00:00:00 2001 From: "bocska.karina" <bocska.karina@hallgato.ppke.hu> Date: Wed, 11 Sep 2024 21:19:05 +0200 Subject: [PATCH] project added --- .vscode/extensions.json | 5 + .vscode/launch.json | 10 + .vscode/settings.json | 55 + .vsconfig | 6 + Assets/BlockSide.prefab | 328 + Assets/BlockSide.prefab.meta | 7 + Assets/Editor.meta | 8 + Assets/Editor/pointCloudManagerWindow.cs | 479 + Assets/Editor/pointCloudManagerWindow.cs.meta | 11 + Assets/Material 1.mat | 135 + Assets/Material 1.mat.meta | 8 + Assets/Material 2.mat | 135 + Assets/Material 2.mat.meta | 8 + Assets/Material.mat | 136 + Assets/Material.mat.meta | 8 + Assets/Models.meta | 8 + Assets/Models/bjorka_from_tetra.fbx | 3 + Assets/Models/bjorka_from_tetra.fbx.meta | 114 + Assets/Models/linear_colorspace_bjorka.fbx | 3 + .../Models/linear_colorspace_bjorka.fbx.meta | 109 + .../Models/tetrahedron_downsampled_trafo.fbx | 3 + .../tetrahedron_downsampled_trafo.fbx.meta | 114 + Assets/Models/vertex-cube.fbx | 3 + Assets/Models/vertex-cube.fbx.meta | 114 + Assets/Pcx.meta | 10 + Assets/Pcx/Editor.meta | 10 + Assets/Pcx/Editor/Default Point.mat | 33 + Assets/Pcx/Editor/Default Point.mat.meta | 10 + Assets/Pcx/Editor/MaterialInspector.cs | 32 + Assets/Pcx/Editor/MaterialInspector.cs.meta | 13 + Assets/Pcx/Editor/Pcx.Editor.asmdef | 16 + Assets/Pcx/Editor/Pcx.Editor.asmdef.meta | 7 + Assets/Pcx/Editor/PlyImporter.cs | 396 + Assets/Pcx/Editor/PlyImporter.cs.meta | 13 + Assets/Pcx/Editor/PlyImporterInspector.cs | 38 + .../Pcx/Editor/PlyImporterInspector.cs.meta | 13 + Assets/Pcx/Editor/PointCloudDataInspector.cs | 18 + .../Editor/PointCloudDataInspector.cs.meta | 13 + .../Pcx/Editor/PointCloudRendererInspector.cs | 35 + .../PointCloudRendererInspector.cs.meta | 13 + Assets/Pcx/Runtime.meta | 8 + Assets/Pcx/Runtime/BakedPointCloud.cs | 77 + Assets/Pcx/Runtime/BakedPointCloud.cs.meta | 11 + Assets/Pcx/Runtime/Pcx.asmdef | 3 + Assets/Pcx/Runtime/Pcx.asmdef.meta | 7 + Assets/Pcx/Runtime/PointCloudData.cs | 100 + Assets/Pcx/Runtime/PointCloudData.cs.meta | 13 + Assets/Pcx/Runtime/PointCloudRenderer.cs | 138 + Assets/Pcx/Runtime/PointCloudRenderer.cs.meta | 16 + Assets/Pcx/Runtime/Shaders.meta | 10 + Assets/Pcx/Runtime/Shaders/Common.cginc | 22 + Assets/Pcx/Runtime/Shaders/Common.cginc.meta | 10 + Assets/Pcx/Runtime/Shaders/Disk.cginc | 126 + Assets/Pcx/Runtime/Shaders/Disk.cginc.meta | 10 + Assets/Pcx/Runtime/Shaders/Disk.shader | 42 + Assets/Pcx/Runtime/Shaders/Disk.shader.meta | 10 + Assets/Pcx/Runtime/Shaders/Point.shader | 97 + Assets/Pcx/Runtime/Shaders/Point.shader.meta | 10 + Assets/Plugins.meta | 8 + Assets/Plugins/PointCloudPlugin.meta | 8 + Assets/Plugins/PointCloudPlugin/LASzip64.dll | Bin 0 -> 262656 bytes .../PointCloudPlugin/LASzip64.dll.meta | 27 + .../PointCloudPlugin/PointCloudPlugin.dll | Bin 0 -> 207872 bytes .../PointCloudPlugin.dll.meta | 27 + Assets/Prefabs.meta | 8 + Assets/Prefabs/Block.prefab | 123 + Assets/Prefabs/Block.prefab.meta | 7 + Assets/Prefabs/DeformAnchor.prefab | 326 + Assets/Prefabs/DeformAnchor.prefab.meta | 7 + Assets/Prefabs/Quad.prefab | 328 + Assets/Prefabs/Quad.prefab.meta | 7 + Assets/Prefabs/VertexPoint.prefab | 326 + Assets/Prefabs/VertexPoint.prefab.meta | 7 + Assets/Resources.meta | 8 + Assets/Resources/CCOM.meta | 8 + Assets/Resources/CCOM/Common.meta | 8 + Assets/Resources/CCOM/Common/Scripts.meta | 8 + .../CCOM/Common/Scripts/GEOReference.cs | 37 + .../CCOM/Common/Scripts/GEOReference.cs.meta | 11 + Assets/Resources/CCOM/PointCloud.meta | 8 + Assets/Resources/CCOM/PointCloud/Data.meta | 8 + Assets/Resources/CCOM/PointCloud/Data/0.las | Bin 0 -> 2018322811 bytes .../Resources/CCOM/PointCloud/Data/0.las.meta | 7 + .../Resources/CCOM/PointCloud/Data/readMe.txt | 1 + .../CCOM/PointCloud/Data/readMe.txt.meta | 7 + Assets/Resources/CCOM/PointCloud/Scripts.meta | 8 + .../CCOM/PointCloud/Scripts/pointCloud.cs | 31 + .../PointCloud/Scripts/pointCloud.cs.meta | 11 + .../PointCloud/Scripts/pointCloudManager.cs | 1260 + .../Scripts/pointCloudManager.cs.meta | 11 + Assets/Samples.meta | 8 + Assets/Samples/XR Interaction Toolkit.meta | 8 + .../Samples/XR Interaction Toolkit/2.4.3.meta | 8 + .../2.4.3/Starter Assets.meta | 8 + .../2.4.3/Starter Assets/.sample.json | 4 + .../Starter Assets/AffordanceThemes.meta | 8 + .../InteractionColorAffordanceTheme.asset | 74 + ...InteractionColorAffordanceTheme.asset.meta | 8 + .../2.4.3/Starter Assets/Audio.meta | 8 + .../2.4.3/Starter Assets/Audio/Button Pop.wav | Bin 0 -> 51580 bytes .../Starter Assets/Audio/Button Pop.wav.meta | 22 + .../2.4.3/Starter Assets/DemoScene.unity | 10618 +++++++ .../2.4.3/Starter Assets/DemoScene.unity.meta | 7 + .../2.4.3/Starter Assets/Editor.meta | 8 + .../2.4.3/Starter Assets/Editor/Scripts.meta | 8 + .../StarterAssetsSampleProjectValidation.cs | 76 + ...arterAssetsSampleProjectValidation.cs.meta | 11 + ...oolkit.Samples.StarterAssets.Editor.asmdef | 21 + ...t.Samples.StarterAssets.Editor.asmdef.meta | 7 + .../2.4.3/Starter Assets/Models.meta | 8 + .../Models/Primitive_Cylinder.fbx | 3 + .../Models/Primitive_Cylinder.fbx.meta | 103 + .../Models/Primitive_Pyramid.fbx | 3 + .../Models/Primitive_Pyramid.fbx.meta | 103 + .../Starter Assets/Models/Primitive_Torus.fbx | 3 + .../Models/Primitive_Torus.fbx.meta | 103 + .../Starter Assets/Models/Primitive_Wedge.fbx | 3 + .../Models/Primitive_Wedge.fbx.meta | 103 + .../Starter Assets/Models/PushButton.fbx | 3 + .../Starter Assets/Models/PushButton.fbx.meta | 103 + .../Models/XRControllerLeft.fbx | 3 + .../Models/XRControllerLeft.fbx.meta | 103 + .../Models/XRControllerRight.fbx | 3 + .../Models/XRControllerRight.fbx.meta | 103 + .../2.4.3/Starter Assets/Prefabs.meta | 8 + .../Prefabs/Climb Sample.prefab | 241 + .../Prefabs/Climb Sample.prefab.meta | 7 + .../2.4.3/Starter Assets/Prefabs/Climb.meta | 8 + .../Prefabs/Climb/Climbing Wall.prefab | 8123 +++++ .../Prefabs/Climb/Climbing Wall.prefab.meta | 7 + .../Prefabs/Climb/Ladder.prefab | 3399 +++ .../Prefabs/Climb/Ladder.prefab.meta | 7 + .../Starter Assets/Prefabs/Controllers.meta | 8 + .../Controllers/XR Controller Left.prefab | 801 + .../XR Controller Left.prefab.meta | 7 + .../Controllers/XR Controller Right.prefab | 801 + .../XR Controller Right.prefab.meta | 7 + .../Prefabs/Interactables Sample.prefab | 221 + .../Prefabs/Interactables Sample.prefab.meta | 7 + .../Starter Assets/Prefabs/Interactables.meta | 8 + .../Interactable Instant Pyramid.prefab | 322 + .../Interactable Instant Pyramid.prefab.meta | 7 + .../Interactable Kinematic Torus.prefab | 322 + .../Interactable Kinematic Torus.prefab.meta | 7 + .../Interactable Simple Cube.prefab | 259 + .../Interactable Simple Cube.prefab.meta | 7 + ...Interactable Velocity Tracked Wedge.prefab | 322 + ...actable Velocity Tracked Wedge.prefab.meta | 7 + .../Interaction Affordance.prefab | 205 + .../Interaction Affordance.prefab.meta | 7 + .../Starter Assets/Prefabs/Interactors.meta | 8 + .../Interactors/Direct Interactor.prefab | 138 + .../Interactors/Direct Interactor.prefab.meta | 7 + .../Interactors/Gaze Interactor.prefab | 382 + .../Interactors/Gaze Interactor.prefab.meta | 7 + .../Interactors/Poke Interactor.prefab | 258 + .../Interactors/Poke Interactor.prefab.meta | 7 + .../Prefabs/Interactors/Ray Interactor.prefab | 413 + .../Interactors/Ray Interactor.prefab.meta | 7 + .../Interactors/Teleport Interactor.prefab | 413 + .../Teleport Interactor.prefab.meta | 7 + .../Starter Assets/Prefabs/Teleport.meta | 8 + .../Teleport/Blocking Teleport Reticle.prefab | 278 + .../Blocking Teleport Reticle.prefab.meta | 7 + .../Directional Teleport Reticle.prefab | 182 + .../Directional Teleport Reticle.prefab.meta | 7 + .../Teleport/Snapping Teleport Anchor.prefab | 137 + .../Snapping Teleport Anchor.prefab.meta | 7 + .../Prefabs/Teleport/Teleport Anchor.prefab | 229 + .../Teleport/Teleport Anchor.prefab.meta | 7 + .../Prefabs/Teleport/Teleport Area.prefab | 228 + .../Teleport/Teleport Area.prefab.meta | 7 + .../Prefabs/Teleportation Environment.prefab | 439 + .../Teleportation Environment.prefab.meta | 7 + .../Starter Assets/Prefabs/UI Sample.prefab | 754 + .../Prefabs/UI Sample.prefab.meta | 7 + .../2.4.3/Starter Assets/Prefabs/UI_2D.meta | 8 + .../Prefabs/UI_2D/Dropdown.prefab | 1171 + .../Prefabs/UI_2D/Dropdown.prefab.meta | 7 + .../Prefabs/UI_2D/Interactive Controls.prefab | 703 + .../UI_2D/Interactive Controls.prefab.meta | 7 + .../Prefabs/UI_2D/MinMaxSlider.prefab | 449 + .../Prefabs/UI_2D/MinMaxSlider.prefab.meta | 7 + .../Prefabs/UI_2D/ModalSingleButton.prefab | 512 + .../UI_2D/ModalSingleButton.prefab.meta | 7 + .../Prefabs/UI_2D/Scroll UI Sample.prefab | 1419 + .../UI_2D/Scroll UI Sample.prefab.meta | 7 + .../Prefabs/UI_2D/TextButton.prefab | 338 + .../Prefabs/UI_2D/TextButton.prefab.meta | 7 + .../2.4.3/Starter Assets/Prefabs/UI_3D.meta | 8 + .../Prefabs/UI_3D/Push Button.prefab | 477 + .../Prefabs/UI_3D/Push Button.prefab.meta | 7 + .../Prefabs/XR Interaction Setup.prefab | 272 + .../Prefabs/XR Interaction Setup.prefab.meta | 7 + .../Prefabs/XR Origin (XR Rig).prefab | 2840 ++ .../Prefabs/XR Origin (XR Rig).prefab.meta | 7 + .../2.4.3/Starter Assets/Scripts.meta | 8 + .../Scripts/ActionBasedControllerManager.cs | 453 + .../ActionBasedControllerManager.cs.meta | 11 + .../Scripts/DynamicMoveProvider.cs | 189 + .../Scripts/DynamicMoveProvider.cs.meta | 11 + .../Scripts/GazeInputManager.cs | 95 + .../Scripts/GazeInputManager.cs.meta | 11 + .../Starter Assets/Scripts/PokeStation.meta | 8 + .../Scripts/PokeStation/IncrementUIText.cs | 45 + .../PokeStation/IncrementUIText.cs.meta | 11 + .../Scripts/XRPokeFollowAffordance.cs | 206 + .../Scripts/XRPokeFollowAffordance.cs.meta | 11 + ...ction.Toolkit.Samples.StarterAssets.asmdef | 19 + ....Toolkit.Samples.StarterAssets.asmdef.meta | 7 + .../XRI Default Continuous Move.preset | 135 + .../XRI Default Continuous Move.preset.meta | 8 + .../XRI Default Continuous Turn.preset | 115 + .../XRI Default Continuous Turn.preset.meta | 8 + .../XRI Default Gaze Controller.preset | 627 + .../XRI Default Gaze Controller.preset.meta | 8 + .../XRI Default Input Actions.inputactions | 2302 ++ ...RI Default Input Actions.inputactions.meta | 14 + ...t Left ActionBasedControllerManager.preset | 79 + ...t ActionBasedControllerManager.preset.meta | 8 + .../XRI Default Left Controller.preset | 667 + .../XRI Default Left Controller.preset.meta | 8 + .../XRI Default Left Grab Move.preset | 103 + .../XRI Default Left Grab Move.preset.meta | 8 + ... Right ActionBasedControllerManager.preset | 79 + ...t ActionBasedControllerManager.preset.meta | 8 + .../XRI Default Right Controller.preset | 667 + .../XRI Default Right Controller.preset.meta | 8 + .../XRI Default Right Grab Move.preset | 103 + .../XRI Default Right Grab Move.preset.meta | 8 + .../XRI Default Snap Turn.preset | 131 + .../XRI Default Snap Turn.preset.meta | 8 + .../XRI Default XR UI Input Module.preset | 127 + ...XRI Default XR UI Input Module.preset.meta | 8 + .../2.4.3/Tunneling Vignette.meta | 8 + .../2.4.3/Tunneling Vignette/.sample.json | 4 + .../Tunneling Vignette/TunnelingVignette.mat | 166 + .../TunnelingVignette.mat.meta | 8 + .../TunnelingVignette.prefab | 129 + .../TunnelingVignette.prefab.meta | 7 + .../TunnelingVignette.shader | 78 + .../TunnelingVignette.shader.meta | 10 + .../TunnelingVignetteHemisphere.fbx | 3 + .../TunnelingVignetteHemisphere.fbx.meta | 108 + .../TunnelingVignetteSG.shadergraph | 315 + .../TunnelingVignetteSG.shadergraph.meta | 10 + Assets/Scenes.meta | 8 + Assets/Scenes/BasicScene.meta | 8 + Assets/Scenes/BasicScene.unity | 520 + Assets/Scenes/BasicScene.unity.meta | 7 + Assets/Scenes/BasicScene/Grid.mat | 160 + Assets/Scenes/BasicScene/Grid.mat.meta | 8 + .../Scenes/BasicScene/Grid_Light_512x512.png | Bin 0 -> 2530 bytes .../BasicScene/Grid_Light_512x512.png.meta | 140 + Assets/Scenes/SampleScene.meta | 8 + Assets/Scenes/SampleScene.unity | 24787 ++++++++++++++++ Assets/Scenes/SampleScene.unity.meta | 7 + Assets/Scenes/SampleScene/LightingData.asset | Bin 0 -> 22644 bytes .../SampleScene/LightingData.asset.meta | 8 + .../SampleScene/Lightmap-0_comp_dir.png | Bin 0 -> 250293 bytes .../SampleScene/Lightmap-0_comp_dir.png.meta | 135 + .../SampleScene/Lightmap-0_comp_light.exr | Bin 0 -> 1148009 bytes .../Lightmap-0_comp_light.exr.meta | 135 + .../Lightmap-0_comp_shadowmask.png | Bin 0 -> 58291 bytes .../Lightmap-0_comp_shadowmask.png.meta | 135 + .../Scenes/SampleScene/ReflectionProbe-0.exr | Bin 0 -> 244796 bytes .../SampleScene/ReflectionProbe-0.exr.meta | 135 + .../Scenes/SampleScene/ReflectionProbe-1.exr | Bin 0 -> 273150 bytes .../SampleScene/ReflectionProbe-1.exr.meta | 135 + Assets/Scrips.meta | 8 + Assets/Scrips/BlockDeform.cs | 307 + Assets/Scrips/BlockDeform.cs.meta | 11 + Assets/Scrips/DeformAnchor.cs | 227 + Assets/Scrips/DeformAnchor.cs.meta | 11 + Assets/Scrips/DeformAnchorOld.cs | 59 + Assets/Scrips/DeformAnchorOld.cs.meta | 11 + Assets/Scrips/SelectPointsEvent.cs | 54 + Assets/Scrips/SelectPointsEvent.cs.meta | 11 + Assets/Scrips/TriggerEvent.cs | 69 + Assets/Scrips/TriggerEvent.cs.meta | 11 + Assets/Settings.meta | 8 + Assets/Settings/Project Configuration.meta | 8 + .../Android Preset.asset | 57 + .../Android Preset.asset.meta | 8 + .../BasicScene.scenetemplate | 113 + .../BasicScene.scenetemplate.meta | 8 + .../Performance URP Config.asset | 109 + .../Performance URP Config.asset.meta | 8 + .../Quality URP Config.asset | 109 + .../Quality URP Config.asset.meta | 8 + .../SampleScene.scenetemplate | 401 + .../SampleScene.scenetemplate.meta | 8 + .../Standalone Preset.asset | 59 + .../Standalone Preset.asset.meta | 8 + ...niversalRenderPipelineGlobalSettings.asset | 41 + ...salRenderPipelineGlobalSettings.asset.meta | 8 + Assets/Shaders.meta | 8 + Assets/Shaders/DeformTextureGraph.shadergraph | 1059 + .../DeformTextureGraph.shadergraph.meta | 10 + Assets/Shaders/DeformTextureMat.mat | 61 + Assets/Shaders/DeformTextureMat.mat.meta | 8 + .../Shaders/vertex-shader-graph.shadergraph | 792 + .../vertex-shader-graph.shadergraph.meta | 10 + Assets/Shaders/vertex_shader.mat | 135 + Assets/Shaders/vertex_shader.mat.meta | 8 + Assets/TextMesh Pro.meta | 8 + Assets/TextMesh Pro/Documentation.meta | 8 + .../TextMesh Pro User Guide 2016.pdf | Bin 0 -> 694398 bytes .../TextMesh Pro User Guide 2016.pdf.meta | 7 + Assets/TextMesh Pro/Fonts.meta | 8 + .../Fonts/LiberationSans - OFL.txt | 46 + .../Fonts/LiberationSans - OFL.txt.meta | 8 + Assets/TextMesh Pro/Fonts/LiberationSans.ttf | Bin 0 -> 350200 bytes .../Fonts/LiberationSans.ttf.meta | 19 + Assets/TextMesh Pro/Resources.meta | 8 + .../Resources/Fonts & Materials.meta | 9 + .../LiberationSans SDF - Drop Shadow.mat | 106 + .../LiberationSans SDF - Drop Shadow.mat.meta | 8 + .../LiberationSans SDF - Fallback.asset | 343 + .../LiberationSans SDF - Fallback.asset.meta | 8 + .../LiberationSans SDF - Outline.mat | 104 + .../LiberationSans SDF - Outline.mat.meta | 8 + .../LiberationSans SDF.asset | 7821 +++++ .../LiberationSans SDF.asset.meta | 8 + .../LineBreaking Following Characters.txt | 1 + ...LineBreaking Following Characters.txt.meta | 8 + .../LineBreaking Leading Characters.txt | 1 + .../LineBreaking Leading Characters.txt.meta | 8 + .../TextMesh Pro/Resources/Sprite Assets.meta | 9 + .../Resources/Sprite Assets/EmojiOne.asset | 659 + .../Sprite Assets/EmojiOne.asset.meta | 8 + .../TextMesh Pro/Resources/Style Sheets.meta | 9 + .../Style Sheets/Default Style Sheet.asset | 68 + .../Default Style Sheet.asset.meta | 8 + .../TextMesh Pro/Resources/TMP Settings.asset | 46 + .../Resources/TMP Settings.asset.meta | 8 + Assets/TextMesh Pro/Shaders.meta | 8 + .../Shaders/TMP_Bitmap-Custom-Atlas.shader | 143 + .../TMP_Bitmap-Custom-Atlas.shader.meta | 9 + .../Shaders/TMP_Bitmap-Mobile.shader | 145 + .../Shaders/TMP_Bitmap-Mobile.shader.meta | 9 + Assets/TextMesh Pro/Shaders/TMP_Bitmap.shader | 143 + .../Shaders/TMP_Bitmap.shader.meta | 9 + .../Shaders/TMP_SDF Overlay.shader | 317 + .../Shaders/TMP_SDF Overlay.shader.meta | 9 + .../TextMesh Pro/Shaders/TMP_SDF SSD.shader | 310 + .../Shaders/TMP_SDF SSD.shader.meta | 9 + .../Shaders/TMP_SDF-Mobile Masking.shader | 247 + .../TMP_SDF-Mobile Masking.shader.meta | 9 + .../Shaders/TMP_SDF-Mobile Overlay.shader | 240 + .../TMP_SDF-Mobile Overlay.shader.meta | 9 + .../Shaders/TMP_SDF-Mobile SSD.shader | 106 + .../Shaders/TMP_SDF-Mobile SSD.shader.meta | 9 + .../Shaders/TMP_SDF-Mobile.shader | 240 + .../Shaders/TMP_SDF-Mobile.shader.meta | 9 + .../Shaders/TMP_SDF-Surface-Mobile.shader | 138 + .../TMP_SDF-Surface-Mobile.shader.meta | 9 + .../Shaders/TMP_SDF-Surface.shader | 158 + .../Shaders/TMP_SDF-Surface.shader.meta | 9 + Assets/TextMesh Pro/Shaders/TMP_SDF.shader | 317 + .../TextMesh Pro/Shaders/TMP_SDF.shader.meta | 9 + Assets/TextMesh Pro/Shaders/TMP_Sprite.shader | 116 + .../Shaders/TMP_Sprite.shader.meta | 9 + Assets/TextMesh Pro/Shaders/TMPro.cginc | 84 + Assets/TextMesh Pro/Shaders/TMPro.cginc.meta | 9 + .../TextMesh Pro/Shaders/TMPro_Mobile.cginc | 157 + .../Shaders/TMPro_Mobile.cginc.meta | 9 + .../Shaders/TMPro_Properties.cginc | 85 + .../Shaders/TMPro_Properties.cginc.meta | 9 + .../TextMesh Pro/Shaders/TMPro_Surface.cginc | 101 + .../Shaders/TMPro_Surface.cginc.meta | 9 + Assets/TextMesh Pro/Sprites.meta | 8 + .../Sprites/EmojiOne Attribution.txt | 3 + .../Sprites/EmojiOne Attribution.txt.meta | 7 + Assets/TextMesh Pro/Sprites/EmojiOne.json | 156 + .../TextMesh Pro/Sprites/EmojiOne.json.meta | 8 + Assets/TextMesh Pro/Sprites/EmojiOne.png | Bin 0 -> 112319 bytes Assets/TextMesh Pro/Sprites/EmojiOne.png.meta | 431 + Assets/Textures.meta | 8 + Assets/Textures/plane_alpha_cross.png | Bin 0 -> 1595 bytes Assets/Textures/plane_alpha_cross.png.meta | 140 + Assets/VRTemplateAssets.meta | 8 + Assets/VRTemplateAssets/Audio.meta | 8 + .../Audio/Button_14_hover.wav | Bin 0 -> 13576 bytes .../Audio/Button_14_hover.wav.meta | 22 + .../Audio/Button_22_click.wav | Bin 0 -> 22052 bytes .../Audio/Button_22_click.wav.meta | 22 + Assets/VRTemplateAssets/Fonts.meta | 8 + Assets/VRTemplateAssets/Fonts/Inter.meta | 8 + .../Fonts/Inter/.gitattributes | 1 + .../Inter-Regular SDF Material XRay Blue.mat | 107 + ...er-Regular SDF Material XRay Blue.mat.meta | 8 + .../Inter-Regular SDF NoBackfaceCulling.asset | 2785 ++ ...r-Regular SDF NoBackfaceCulling.asset.meta | 8 + .../Inter-Regular SDF Overlay Material.mat | 106 + ...nter-Regular SDF Overlay Material.mat.meta | 8 + ...r-Regular SDF Overlay Outline Material.mat | 106 + ...ular SDF Overlay Outline Material.mat.meta | 8 + ...lar SDF Overlay Outline Thick Material.mat | 106 + ...DF Overlay Outline Thick Material.mat.meta | 8 + .../Fonts/Inter/Inter-Regular SDF.asset | 2785 ++ .../Fonts/Inter/Inter-Regular SDF.asset.meta | 8 + .../Fonts/Inter/Inter-Regular.ttf | Bin 0 -> 278284 bytes .../Fonts/Inter/Inter-Regular.ttf.meta | 22 + Assets/VRTemplateAssets/Graphics.meta | 8 + .../Post Process Volume Profile.asset | 102 + .../Post Process Volume Profile.asset.meta | 8 + .../Template Lighting Settings.lighting | 66 + .../Template Lighting Settings.lighting.meta | 8 + Assets/VRTemplateAssets/Materials.meta | 8 + .../Materials/Anchor Materials.meta | 8 + .../Anchor Materials/Anchor Base.mat | 136 + .../Anchor Materials/Anchor Base.mat.meta | 8 + .../Anchor Materials/Anchor Blue Glow.mat | 166 + .../Anchor Blue Glow.mat.meta | 8 + .../Anchor Materials/Anchor Glow Gradient.png | Bin 0 -> 128638 bytes .../Anchor Glow Gradient.png.meta | 120 + .../Anchor Materials/Blue Anchor Arrow.mat | 138 + .../Blue Anchor Arrow.mat.meta | 8 + .../Anchor Materials/White_Mixed_AO.png | Bin 0 -> 338405 bytes .../Anchor Materials/White_Mixed_AO.png.meta | 116 + .../Materials/Controller.meta | 8 + .../Materials/Controller/Blue.mat | 78 + .../Materials/Controller/Blue.mat.meta | 8 + .../Materials/Controller/Controller.mat | 131 + .../Materials/Controller/Controller.mat.meta | 8 + .../Controller/DefaultMaterial_AO.png | Bin 0 -> 891404 bytes .../Controller/DefaultMaterial_AO.png.meta | 92 + .../Controller/UniversalMaterialGrey.mat | 132 + .../Controller/UniversalMaterialGrey.mat.meta | 8 + .../Controller/UniversalMaterialWhite.mat | 132 + .../UniversalMaterialWhite.mat.meta | 8 + .../Materials/Controller/White.mat | 78 + .../Materials/Controller/White.mat.meta | 8 + .../Materials/Environment.meta | 8 + .../Materials/Environment/Arrows.mat | 132 + .../Materials/Environment/Arrows.mat.meta | 8 + .../Materials/Environment/Chrome.mat | 136 + .../Materials/Environment/Chrome.mat.meta | 8 + .../Materials/Environment/Concrete Blue.mat | 133 + .../Environment/Concrete Blue.mat.meta | 8 + .../Materials/Environment/Concrete Grey.mat | 133 + .../Environment/Concrete Grey.mat.meta | 8 + .../Materials/Environment/Concrete.mat | 133 + .../Materials/Environment/Concrete.mat.meta | 8 + .../Materials/Environment/Concrete_Albedo.tif | Bin 0 -> 2220452 bytes .../Environment/Concrete_Albedo.tif.meta | 98 + .../Environment/Concrete_Metallic.tif | Bin 0 -> 651864 bytes .../Environment/Concrete_Metallic.tif.meta | 98 + .../Materials/Environment/Concrete_Normal.tif | Bin 0 -> 1707440 bytes .../Environment/Concrete_Normal.tif.meta | 98 + .../Materials/Environment/Dark Green.mat | 133 + .../Materials/Environment/Dark Green.mat.meta | 8 + .../Environment/FauxBackgroundBlur.mat | 32 + .../Environment/FauxBackgroundBlur.mat.meta | 8 + ...osted_Glass_Pattern_AlbedoTransparency.png | Bin 0 -> 2795364 bytes ..._Glass_Pattern_AlbedoTransparency.png.meta | 98 + .../Materials/Environment/Glass.mat | 143 + .../Materials/Environment/Glass.mat.meta | 8 + .../Materials/Environment/Grey.mat | 133 + .../Materials/Environment/Grey.mat.meta | 8 + .../Materials/Environment/Grid Dark Large.mat | 93 + .../Environment/Grid Dark Large.mat.meta | 8 + .../Materials/Environment/Grid Dark Tight.mat | 93 + .../Environment/Grid Dark Tight.mat.meta | 8 + .../Materials/Environment/Wall Cut.mat | 132 + .../Materials/Environment/Wall Cut.mat.meta | 8 + .../Materials/Environment/Wall Default.mat | 132 + .../Environment/Wall Default.mat.meta | 8 + .../Environment/wall2_Base_color.png | Bin 0 -> 5356 bytes .../Environment/wall2_Base_color.png.meta | 98 + .../Materials/Environment/wall2_Height.png | Bin 0 -> 881678 bytes .../Environment/wall2_Height.png.meta | 98 + .../Materials/Environment/wall2_Metallic.png | Bin 0 -> 1118 bytes .../Environment/wall2_Metallic.png.meta | 98 + .../Materials/Environment/wall2_Normal.png | Bin 0 -> 2221264 bytes .../Environment/wall2_Normal.png.meta | 98 + .../Environment/wall2_Normal_OpenGL.png | Bin 0 -> 2791293 bytes .../Environment/wall2_Normal_OpenGL.png.meta | 98 + .../Materials/Environment/wall2_Roughness.png | Bin 0 -> 160891 bytes .../Environment/wall2_Roughness.png.meta | 98 + .../Materials/Environment/wall_Base_color.png | Bin 0 -> 5356 bytes .../Environment/wall_Base_color.png.meta | 98 + .../Materials/Environment/wall_Height.png | Bin 0 -> 754498 bytes .../Environment/wall_Height.png.meta | 98 + .../Materials/Environment/wall_Metallic.png | Bin 0 -> 1118 bytes .../Environment/wall_Metallic.png.meta | 98 + .../Materials/Environment/wall_Normal.png | Bin 0 -> 1805895 bytes .../Environment/wall_Normal.png.meta | 98 + .../Environment/wall_Normal_OpenGL.png | Bin 0 -> 2256098 bytes .../Environment/wall_Normal_OpenGL.png.meta | 98 + .../Materials/Environment/wall_Roughness.png | Bin 0 -> 146899 bytes .../Environment/wall_Roughness.png.meta | 98 + .../Materials/Locomotion.meta | 8 + .../Materials/Locomotion/Angle Indicator.mat | 144 + .../Locomotion/Angle Indicator.mat.meta | 8 + .../Materials/Locomotion/BlinkLine.mat | 80 + .../Materials/Locomotion/BlinkLine.mat.meta | 8 + .../Locomotion/BlinkOcclusionPass.mat | 132 + .../Locomotion/BlinkOcclusionPass.mat.meta | 8 + .../Locomotion/BlinkOcclusionTexture.png | Bin 0 -> 228196 bytes .../Locomotion/BlinkOcclusionTexture.png.meta | 92 + .../Materials/Locomotion/Blue Standard.mat | 150 + .../Locomotion/Blue Standard.mat.meta | 8 + .../Materials/Locomotion/FlatBlue.mat | 82 + .../Materials/Locomotion/FlatBlue.mat.meta | 8 + .../Materials/Locomotion/Standard White.mat | 131 + .../Locomotion/Standard White.mat.meta | 8 + .../VRTemplateAssets/Materials/Particles.meta | 8 + .../Materials/Particles/ConfettiParticles.mat | 148 + .../Particles/ConfettiParticles.mat.meta | 8 + .../VRTemplateAssets/Materials/Pointer.meta | 8 + .../Materials/Pointer/Pointer Outline.mat | 87 + .../Pointer/Pointer Outline.mat.meta | 8 + .../VRTemplateAssets/Materials/Primitive.meta | 8 + .../Materials/Primitive/Cube_Fabric.mat | 132 + .../Materials/Primitive/Cube_Fabric.mat.meta | 8 + .../Materials/Primitive/Green.mat | 133 + .../Materials/Primitive/Green.mat.meta | 8 + .../Materials/Primitive/Interactables 2.mat | 137 + .../Primitive/Interactables 2.mat.meta | 8 + .../Materials/Primitive/Interactables 3.mat | 137 + .../Primitive/Interactables 3.mat.meta | 8 + .../Materials/Primitive/Interactables 4.mat | 137 + .../Primitive/Interactables 4.mat.meta | 8 + .../Materials/Primitive/Interactables 5.mat | 137 + .../Primitive/Interactables 5.mat.meta | 8 + .../Interactables Bouncy.physicMaterial | 14 + .../Interactables Bouncy.physicMaterial.meta | 8 + .../Materials/Primitive/Interactables.mat | 137 + .../Primitive/Interactables.mat.meta | 8 + .../Primitive/Interactables.physicMaterial | 14 + .../Interactables.physicMaterial.meta | 8 + .../Materials/Primitive/Sticky.physicMaterial | 14 + .../Primitive/Sticky.physicMaterial.meta | 8 + .../Materials/Primitive/Torus.mat | 135 + .../Materials/Primitive/Torus.mat.meta | 8 + .../Materials/Primitive/fabric_Base_color.png | Bin 0 -> 110665 bytes .../Primitive/fabric_Base_color.png.meta | 98 + .../Materials/Primitive/fabric_Height.png | Bin 0 -> 25659 bytes .../Primitive/fabric_Height.png.meta | 98 + .../Materials/Primitive/fabric_Metallic.png | Bin 0 -> 1118 bytes .../Primitive/fabric_Metallic.png.meta | 98 + .../Materials/Primitive/fabric_Normal.png | Bin 0 -> 8544 bytes .../Primitive/fabric_Normal.png.meta | 98 + .../Primitive/fabric_Normal_OpenGL.png | Bin 0 -> 98761 bytes .../Primitive/fabric_Normal_OpenGL.png.meta | 98 + .../Materials/Primitive/fabric_Roughness.png | Bin 0 -> 110586 bytes .../Primitive/fabric_Roughness.png.meta | 98 + .../Materials/Primitive/torus_Base_color.png | Bin 0 -> 1044374 bytes .../Primitive/torus_Base_color.png.meta | 98 + .../Materials/Primitive/torus_Height.png | Bin 0 -> 1695670 bytes .../Materials/Primitive/torus_Height.png.meta | 98 + .../Materials/Primitive/torus_Metallic.png | Bin 0 -> 1118 bytes .../Primitive/torus_Metallic.png.meta | 98 + .../Materials/Primitive/torus_Normal.png | Bin 0 -> 9295 bytes .../Materials/Primitive/torus_Normal.png.meta | 98 + .../Primitive/torus_Normal_OpenGL.png | Bin 0 -> 5982139 bytes .../Primitive/torus_Normal_OpenGL.png.meta | 98 + .../Materials/Primitive/torus_Roughness.png | Bin 0 -> 3179 bytes .../Primitive/torus_Roughness.png.meta | 98 + Assets/VRTemplateAssets/Materials/Skybox.meta | 8 + .../Materials/Skybox/Horizontal Skybox.shader | 77 + .../Skybox/Horizontal Skybox.shader.meta | 10 + .../Materials/Skybox/Hub Skybox Blue 2.mat | 89 + .../Skybox/Hub Skybox Blue 2.mat.meta | 8 + .../Materials/Skybox/skybox01_openGL.mat | 32 + .../Materials/Skybox/skybox01_openGL.mat.meta | 8 + .../Materials/Skybox/skybox01_openGL.png | Bin 0 -> 19833250 bytes .../Materials/Skybox/skybox01_openGL.png.meta | 134 + Assets/VRTemplateAssets/Materials/UI.meta | 8 + .../Materials/UI/BezierLink.mat | 105 + .../Materials/UI/BezierLink.mat.meta | 8 + Assets/VRTemplateAssets/Materials/UI/Blue.mat | 78 + .../Materials/UI/Blue.mat.meta | 8 + .../VRTemplateAssets/Materials/UI/Handle.mat | 129 + .../Materials/UI/Handle.mat.meta | 8 + .../Materials/UI/Torus Cursor.mat | 80 + .../Materials/UI/Torus Cursor.mat.meta | 8 + .../Materials/UI/VideoTexture.mat | 124 + .../Materials/UI/VideoTexture.mat.meta | 8 + .../Materials/UI/torus_cursorShape.png | Bin 0 -> 147050 bytes .../Materials/UI/torus_cursorShape.png.meta | 135 + Assets/VRTemplateAssets/Models.meta | 8 + Assets/VRTemplateAssets/Models/Anchor.meta | 8 + .../Models/Anchor/AnchorArrow.fbx | 3 + .../Models/Anchor/AnchorArrow.fbx.meta | 112 + .../Models/Anchor/AnchorBase.fbx | 3 + .../Models/Anchor/AnchorBase.fbx.meta | 109 + .../Models/Anchor/AnchorFade.fbx | 3 + .../Models/Anchor/AnchorFade.fbx.meta | 144 + .../Models/Anchor/AnchorFadeScale.anim | 168 + .../Models/Anchor/AnchorFadeScale.anim.meta | 8 + Assets/VRTemplateAssets/Models/Blink.meta | 8 + .../Models/Blink/BlinkVisual.fbx | 3 + .../Models/Blink/BlinkVisual.fbx.meta | 97 + .../VRTemplateAssets/Models/Controllers.meta | 8 + .../Controllers/UniversalController.fbx | 3 + .../Controllers/UniversalController.fbx.meta | 112 + Assets/VRTemplateAssets/Models/Cursors.meta | 8 + .../Models/Cursors/cursor.fbx | 3 + .../Models/Cursors/cursor.fbx.meta | 97 + .../VRTemplateAssets/Models/Environment.meta | 8 + .../Models/Environment/Arrows.fbx | 3 + .../Models/Environment/Arrows.fbx.meta | 106 + .../Models/Environment/Blaster.fbx | 3 + .../Models/Environment/Blaster.fbx.meta | 106 + .../Environment/Template Environment.fbx | 3 + .../Environment/Template Environment.fbx.meta | 106 + .../Models/Environment/Torus Cut.fbx | 3 + .../Models/Environment/Torus Cut.fbx.meta | 106 + .../Models/Environment/Totem1.fbx | 3 + .../Models/Environment/Totem1.fbx.meta | 106 + .../Models/Environment/Totem2.fbx | 3 + .../Models/Environment/Totem2.fbx.meta | 106 + Assets/VRTemplateAssets/Models/Marks.meta | 8 + .../VRTemplateAssets/Models/Marks/Marks.fbx | 3 + .../Models/Marks/Marks.fbx.meta | 105 + Assets/VRTemplateAssets/Models/Poke.meta | 8 + .../Models/Poke/PokePointer.fbx | 3 + .../Models/Poke/PokePointer.fbx.meta | 105 + .../VRTemplateAssets/Models/Primitives.meta | 8 + .../Models/Primitives/Cube.fbx | 3 + .../Models/Primitives/Cube.fbx.meta | 102 + .../Models/Primitives/Cylinder.fbx | 3 + .../Models/Primitives/Cylinder.fbx.meta | 102 + .../Models/Primitives/Sphere.fbx | 3 + .../Models/Primitives/Sphere.fbx.meta | 102 + .../Models/Primitives/Tapered Cylinder.fbx | 3 + .../Primitives/Tapered Cylinder.fbx.meta | 105 + .../Models/Primitives/Torus.fbx | 3 + .../Models/Primitives/Torus.fbx.meta | 102 + Assets/VRTemplateAssets/Models/UI.meta | 8 + .../UI/Spatial Panel Manipulator Model.fbx | 3 + .../Spatial Panel Manipulator Model.fbx.meta | 105 + Assets/VRTemplateAssets/Prefabs.meta | 8 + .../VRTemplateAssets/Prefabs/Affordance.meta | 8 + .../Affordance/Affordance Callout.prefab | 850 + .../Affordance/Affordance Callout.prefab.meta | 7 + Assets/VRTemplateAssets/Prefabs/Blaster.meta | 8 + .../Prefabs/Blaster/Confetti.prefab | 4983 ++++ .../Prefabs/Blaster/Confetti.prefab.meta | 7 + Assets/VRTemplateAssets/Prefabs/Blink.meta | 8 + .../Prefabs/Blink/Blink Visuals.prefab | 233 + .../Prefabs/Blink/Blink Visuals.prefab.meta | 7 + .../VRTemplateAssets/Prefabs/Controller.meta | 8 + .../Prefabs/Controller/Left Controller.prefab | 109 + .../Controller/Left Controller.prefab.meta | 7 + .../Controller/Right Controller.prefab | 114 + .../Controller/Right Controller.prefab.meta | 7 + ...versal Controller Materials Variant.prefab | 121 + ...l Controller Materials Variant.prefab.meta | 7 + Assets/VRTemplateAssets/Prefabs/Cursors.meta | 8 + .../Prefabs/Cursors/Torus Cursor.prefab | 121 + .../Prefabs/Cursors/Torus Cursor.prefab.meta | 7 + Assets/VRTemplateAssets/Prefabs/Setup.meta | 8 + .../Complete XR Origin Set Up Variant.prefab | 5655 ++++ ...plete XR Origin Set Up Variant.prefab.meta | 7 + Assets/VRTemplateAssets/Prefabs/Teleport.meta | 8 + .../Prefabs/Teleport/Teleport Anchor.prefab | 958 + .../Teleport/Teleport Anchor.prefab.meta | 7 + .../Prefabs/TutorialPlayer.meta | 8 + .../TutorialPlayer/Tutorial Player.prefab | 1966 ++ .../Tutorial Player.prefab.meta | 7 + Assets/VRTemplateAssets/Prefabs/UI.meta | 8 + .../Prefabs/UI/Dropdown.prefab | 1620 + .../Prefabs/UI/Dropdown.prefab.meta | 7 + .../Prefabs/UI/List Item Button.prefab | 861 + .../Prefabs/UI/List Item Button.prefab.meta | 7 + .../Prefabs/UI/List Item Dropdown.prefab | 315 + .../Prefabs/UI/List Item Dropdown.prefab.meta | 7 + .../Prefabs/UI/List Item Slider.prefab | 1051 + .../Prefabs/UI/List Item Slider.prefab.meta | 7 + .../Prefabs/UI/List Item Toggle.prefab | 772 + .../Prefabs/UI/List Item Toggle.prefab.meta | 7 + .../Prefabs/UI/Spatial Panel Scroll.prefab | 1816 ++ .../UI/Spatial Panel Scroll.prefab.meta | 7 + Assets/VRTemplateAssets/Scripts.meta | 8 + .../VRTemplateAssets/Scripts/AnchorVisuals.cs | 104 + .../Scripts/AnchorVisuals.cs.meta | 11 + .../VRTemplateAssets/Scripts/BezierCurve.cs | 202 + .../Scripts/BezierCurve.cs.meta | 11 + .../Scripts/BooleanToggleVisualsController.cs | 91 + .../BooleanToggleVisualsController.cs.meta | 11 + Assets/VRTemplateAssets/Scripts/Callout.cs | 99 + .../VRTemplateAssets/Scripts/Callout.cs.meta | 11 + .../Scripts/CalloutGazeController.cs | 80 + .../Scripts/CalloutGazeController.cs.meta | 11 + .../VRTemplateAssets/Scripts/DestroyObject.cs | 19 + .../Scripts/DestroyObject.cs.meta | 11 + .../Scripts/LaunchProjectile.cs | 36 + .../Scripts/LaunchProjectile.cs.meta | 11 + .../Scripts/RayAttachModifier.cs | 43 + .../Scripts/RayAttachModifier.cs.meta | 11 + Assets/VRTemplateAssets/Scripts/Rotator.cs | 18 + .../VRTemplateAssets/Scripts/Rotator.cs.meta | 11 + .../VRTemplateAssets/Scripts/StepManager.cs | 39 + .../Scripts/StepManager.cs.meta | 3 + .../Scripts/VideoPlayerRenderTexture.cs | 40 + .../Scripts/VideoPlayerRenderTexture.cs.meta | 11 + .../Scripts/VideoTimeScrubControl.cs | 192 + .../Scripts/VideoTimeScrubControl.cs.meta | 11 + Assets/VRTemplateAssets/Scripts/XRKnob.cs | 439 + .../VRTemplateAssets/Scripts/XRKnob.cs.meta | 11 + .../Scripts/XRPokeFollowAffordanceFill.cs | 244 + .../XRPokeFollowAffordanceFill.cs.meta | 11 + Assets/VRTemplateAssets/Shaders.meta | 8 + .../Shaders/FauxBlurURP.shader | 153 + .../Shaders/FauxBlurURP.shader.meta | 10 + Assets/VRTemplateAssets/Shaders/Grid.shader | 75 + .../VRTemplateAssets/Shaders/Grid.shader.meta | 10 + .../Shaders/InteractablePrimitive.shadergraph | 3828 +++ .../InteractablePrimitive.shadergraph.meta | 10 + .../Shaders/TexturedFresnelStandard.shader | 102 + .../TexturedFresnelStandard.shader.meta | 10 + .../Shaders/TexturedStableFresnelCommon.cginc | 54 + .../TexturedStableFresnelCommon.cginc.meta | 7 + Assets/VRTemplateAssets/Sprites.meta | 8 + .../Sprites/CoachingCards.meta | 8 + .../Sprites/CoachingCards/Coaching Step 1.png | Bin 0 -> 9845 bytes .../CoachingCards/Coaching Step 1.png.meta | 108 + .../Sprites/CoachingCards/Coaching Step 2.png | Bin 0 -> 8279 bytes .../CoachingCards/Coaching Step 2.png.meta | 134 + .../Sprites/CoachingCards/Coaching Step 3.png | Bin 0 -> 7754 bytes .../CoachingCards/Coaching Step 3.png.meta | 134 + .../Sprites/CoachingCards/Coaching Step 4.png | Bin 0 -> 1367568 bytes .../CoachingCards/Coaching Step 4.png.meta | 134 + .../Sprites/CoachingCards/Coaching Step 5.png | Bin 0 -> 35937 bytes .../CoachingCards/Coaching Step 5.png.meta | 134 + .../Sprites/CoachingCards/Coaching Step 6.png | Bin 0 -> 1323203 bytes .../CoachingCards/Coaching Step 6.png.meta | 134 + Assets/VRTemplateAssets/Sprites/Icons.meta | 8 + .../Sprites/Icons/Checkmark.png | Bin 0 -> 690 bytes .../Sprites/Icons/Checkmark.png.meta | 135 + .../Sprites/Icons/Chevron.png | Bin 0 -> 417 bytes .../Sprites/Icons/Chevron.png.meta | 135 + .../Sprites/Icons/Forward.png | Bin 0 -> 589 bytes .../Sprites/Icons/Forward.png.meta | 135 + .../VRTemplateAssets/Sprites/Icons/Pause.png | Bin 0 -> 642 bytes .../Sprites/Icons/Pause.png.meta | 134 + .../VRTemplateAssets/Sprites/Icons/Play.png | Bin 0 -> 962 bytes .../Sprites/Icons/Play.png.meta | 134 + .../Sprites/Icons/Rotate Left.png | Bin 0 -> 1445 bytes .../Sprites/Icons/Rotate Left.png.meta | 134 + .../Sprites/Icons/Rotate Right.png | Bin 0 -> 1454 bytes .../Sprites/Icons/Rotate Right.png.meta | 134 + .../Sprites/Icons/Scroll Down.png | Bin 0 -> 403 bytes .../Sprites/Icons/Scroll Down.png.meta | 134 + .../Sprites/Icons/Scroll Left.png | Bin 0 -> 376 bytes .../Sprites/Icons/Scroll Left.png.meta | 134 + .../Sprites/Icons/Scroll Right.png | Bin 0 -> 376 bytes .../Sprites/Icons/Scroll Right.png.meta | 134 + .../Sprites/Icons/Scroll Up.png | Bin 0 -> 435 bytes .../Sprites/Icons/Scroll Up.png.meta | 134 + .../Sprites/Icons/Teleport.png | Bin 0 -> 2509 bytes .../Sprites/Icons/Teleport.png.meta | 134 + Assets/VRTemplateAssets/Sprites/UI.meta | 8 + .../Sprites/UI/CircleMask.png | Bin 0 -> 17378 bytes .../Sprites/UI/CircleMask.png.meta | 134 + .../Sprites/UI/Circle_60x60 Outline 4.png | Bin 0 -> 4796 bytes .../UI/Circle_60x60 Outline 4.png.meta | 108 + .../Sprites/UI/Circle_60x60 Outline.png | Bin 0 -> 3868 bytes .../Sprites/UI/Circle_60x60 Outline.png.meta | 108 + .../Sprites/UI/Circle_60x60_Horizontal.png | Bin 0 -> 3286 bytes .../UI/Circle_60x60_Horizontal.png.meta | 135 + .../Sprites/UI/Circle_60x60_Vertical.png | Bin 0 -> 3286 bytes .../Sprites/UI/Circle_60x60_Vertical.png.meta | 135 + .../Sprites/UI/Joystick BG.png | Bin 0 -> 12251 bytes .../Sprites/UI/Joystick BG.png.meta | 134 + .../Sprites/UI/Joystick Segment.png | Bin 0 -> 4253 bytes .../Sprites/UI/Joystick Segment.png.meta | 134 + .../Sprites/UI/Round Radius 10 Bottom.png | Bin 0 -> 2069 bytes .../UI/Round Radius 10 Bottom.png.meta | 108 + .../Sprites/UI/Round Radius 10 Outline.png | Bin 0 -> 2914 bytes .../UI/Round Radius 10 Outline.png.meta | 135 + .../Sprites/UI/Round Radius 10 Top.png | Bin 0 -> 2047 bytes .../Sprites/UI/Round Radius 10 Top.png.meta | 108 + .../Sprites/UI/Round Radius 10.png | Bin 0 -> 2543 bytes .../Sprites/UI/Round Radius 10.png.meta | 134 + Assets/VRTemplateAssets/Themes.meta | 8 + .../Themes/AnchorAffordanceTheme.asset | 68 + .../Themes/AnchorAffordanceTheme.asset.meta | 8 + .../Themes/AudioAffordanceTheme.asset | 39 + .../Themes/AudioAffordanceTheme.asset.meta | 8 + .../Themes/BlasterAudioAffordanceTheme.asset | 39 + .../BlasterAudioAffordanceTheme.asset.meta | 8 + .../Themes/BlendShapeAffordanceTheme.asset | 66 + .../BlendShapeAffordanceTheme.asset.meta | 8 + .../Themes/ColorAffordanceTheme.asset | 68 + .../Themes/ColorAffordanceTheme.asset.meta | 8 + .../Themes/EdgeColorAffordanceTheme.asset | 68 + .../EdgeColorAffordanceTheme.asset.meta | 8 + Assets/VRTemplateAssets/Tutorial.meta | 8 + Assets/VRTemplateAssets/Tutorial/Images.meta | 8 + .../Images/1-welcome-screen-image.png | Bin 0 -> 73781 bytes .../Images/1-welcome-screen-image.png.meta | 140 + .../Tutorial/Images/project-header-vr.png | Bin 0 -> 150666 bytes .../Images/project-header-vr.png.meta | 116 + .../Tutorial/TutorialLayout.wlt | 1136 + .../Tutorial/TutorialLayout.wlt.meta | 7 + .../Tutorial/VRTutorialContainer.asset | 73 + .../Tutorial/VRTutorialContainer.asset.meta | 8 + .../Tutorial/VRTutorialProjectSettings.asset | 34 + .../VRTutorialProjectSettings.asset.meta | 8 + .../Tutorial/VRTutorialStyle.asset | 27 + .../Tutorial/VRTutorialStyle.asset.meta | 8 + .../Tutorial/VRTutorialWelcomePage.asset | 52 + .../Tutorial/VRTutorialWelcomePage.asset.meta | 8 + Assets/VRTemplateAssets/Videos.meta | 8 + .../Videos/onboarding_video_final.mp4 | Bin 0 -> 18148916 bytes .../Videos/onboarding_video_final.mp4.meta | 18 + Assets/VertexMat.mat | 138 + Assets/VertexMat.mat.meta | 8 + Assets/VertexShader.shader | 60 + Assets/VertexShader.shader.meta | 9 + Assets/XR.meta | 8 + Assets/XR/Loaders.meta | 8 + Assets/XR/Loaders/Oculus Loader.asset | 14 + Assets/XR/Loaders/Oculus Loader.asset.meta | 8 + .../Loaders/Open XR Loader No Pre Init.asset | 14 + .../Open XR Loader No Pre Init.asset.meta | 8 + Assets/XR/Loaders/Open XR Loader.asset | 14 + Assets/XR/Loaders/Open XR Loader.asset.meta | 8 + Assets/XR/Settings.meta | 8 + Assets/XR/Settings/Oculus Settings.asset | 33 + Assets/XR/Settings/Oculus Settings.asset.meta | 8 + .../Settings/Open XR Package Settings.asset | 1925 ++ .../Open XR Package Settings.asset.meta | 8 + .../XR/Settings/OpenXR Editor Settings.asset | 16 + .../OpenXR Editor Settings.asset.meta | 8 + Assets/XR/XRGeneralSettings.asset | 142 + Assets/XR/XRGeneralSettings.asset.meta | 8 + Assets/XRI.meta | 8 + Assets/XRI/Settings.meta | 8 + Assets/XRI/Settings/Resources.meta | 8 + .../Resources/InteractionLayerSettings.asset | 47 + .../InteractionLayerSettings.asset.meta | 8 + .../Resources/XRDeviceSimulatorSettings.asset | 16 + .../XRDeviceSimulatorSettings.asset.meta | 8 + .../XRInteractionEditorSettings.asset | 16 + .../XRInteractionEditorSettings.asset.meta | 8 + Assets/scene_untitled.unity | 341 + Assets/scene_untitled.unity.meta | 7 + Packages/manifest.json | 47 + Packages/packages-lock.json | 542 + ProjectSettings/AudioManager.asset | 19 + ProjectSettings/BurstAotSettings_Android.json | 16 + .../BurstAotSettings_StandaloneWindows.json | 18 + ProjectSettings/ClusterInputManager.asset | 6 + ProjectSettings/CommonBurstAotSettings.json | 6 + ProjectSettings/DynamicsManager.asset | 38 + ProjectSettings/EditorBuildSettings.asset | 23 + ProjectSettings/EditorSettings.asset | 44 + ProjectSettings/GraphicsSettings.asset | 71 + ProjectSettings/InputManager.asset | 1112 + ProjectSettings/MemorySettings.asset | 35 + ProjectSettings/NavMeshAreas.asset | 91 + ProjectSettings/PackageManagerSettings.asset | 36 + .../Settings.json | 11 + .../Settings.json | 5 + ProjectSettings/Physics2DSettings.asset | 56 + ProjectSettings/PresetManager.asset | 7 + ProjectSettings/ProjectSettings.asset | 943 + ProjectSettings/ProjectVersion.txt | 2 + ProjectSettings/QualitySettings.asset | 313 + ProjectSettings/SceneTemplateSettings.json | 167 + ProjectSettings/ShaderGraphSettings.asset | 17 + ProjectSettings/TagManager.asset | 45 + ProjectSettings/TimeManager.asset | 9 + ProjectSettings/TimelineSettings.asset | 16 + ProjectSettings/URPProjectSettings.asset | 15 + ProjectSettings/UnityConnectSettings.asset | 36 + ProjectSettings/VFXManager.asset | 12 + ProjectSettings/VersionControlSettings.asset | 8 + ProjectSettings/XRPackageSettings.asset | 5 + ProjectSettings/XRSettings.asset | 10 + README.md | 93 + TETRA.txt | 720 + UpgradeLog.htm | 278 + ignore.conf | 58 + 880 files changed, 155040 insertions(+) create mode 100644 .vscode/extensions.json create mode 100644 .vscode/launch.json create mode 100644 .vscode/settings.json create mode 100644 .vsconfig create mode 100644 Assets/BlockSide.prefab create mode 100644 Assets/BlockSide.prefab.meta create mode 100644 Assets/Editor.meta create mode 100644 Assets/Editor/pointCloudManagerWindow.cs create mode 100644 Assets/Editor/pointCloudManagerWindow.cs.meta create mode 100644 Assets/Material 1.mat create mode 100644 Assets/Material 1.mat.meta create mode 100644 Assets/Material 2.mat create mode 100644 Assets/Material 2.mat.meta create mode 100644 Assets/Material.mat create mode 100644 Assets/Material.mat.meta create mode 100644 Assets/Models.meta create mode 100644 Assets/Models/bjorka_from_tetra.fbx create mode 100644 Assets/Models/bjorka_from_tetra.fbx.meta create mode 100644 Assets/Models/linear_colorspace_bjorka.fbx create mode 100644 Assets/Models/linear_colorspace_bjorka.fbx.meta create mode 100644 Assets/Models/tetrahedron_downsampled_trafo.fbx create mode 100644 Assets/Models/tetrahedron_downsampled_trafo.fbx.meta create mode 100644 Assets/Models/vertex-cube.fbx create mode 100644 Assets/Models/vertex-cube.fbx.meta create mode 100644 Assets/Pcx.meta create mode 100644 Assets/Pcx/Editor.meta create mode 100644 Assets/Pcx/Editor/Default Point.mat create mode 100644 Assets/Pcx/Editor/Default Point.mat.meta create mode 100644 Assets/Pcx/Editor/MaterialInspector.cs create mode 100644 Assets/Pcx/Editor/MaterialInspector.cs.meta create mode 100644 Assets/Pcx/Editor/Pcx.Editor.asmdef create mode 100644 Assets/Pcx/Editor/Pcx.Editor.asmdef.meta create mode 100644 Assets/Pcx/Editor/PlyImporter.cs create mode 100644 Assets/Pcx/Editor/PlyImporter.cs.meta create mode 100644 Assets/Pcx/Editor/PlyImporterInspector.cs create mode 100644 Assets/Pcx/Editor/PlyImporterInspector.cs.meta create mode 100644 Assets/Pcx/Editor/PointCloudDataInspector.cs create mode 100644 Assets/Pcx/Editor/PointCloudDataInspector.cs.meta create mode 100644 Assets/Pcx/Editor/PointCloudRendererInspector.cs create mode 100644 Assets/Pcx/Editor/PointCloudRendererInspector.cs.meta create mode 100644 Assets/Pcx/Runtime.meta create mode 100644 Assets/Pcx/Runtime/BakedPointCloud.cs create mode 100644 Assets/Pcx/Runtime/BakedPointCloud.cs.meta create mode 100644 Assets/Pcx/Runtime/Pcx.asmdef create mode 100644 Assets/Pcx/Runtime/Pcx.asmdef.meta create mode 100644 Assets/Pcx/Runtime/PointCloudData.cs create mode 100644 Assets/Pcx/Runtime/PointCloudData.cs.meta create mode 100644 Assets/Pcx/Runtime/PointCloudRenderer.cs create mode 100644 Assets/Pcx/Runtime/PointCloudRenderer.cs.meta create mode 100644 Assets/Pcx/Runtime/Shaders.meta create mode 100644 Assets/Pcx/Runtime/Shaders/Common.cginc create mode 100644 Assets/Pcx/Runtime/Shaders/Common.cginc.meta create mode 100644 Assets/Pcx/Runtime/Shaders/Disk.cginc create mode 100644 Assets/Pcx/Runtime/Shaders/Disk.cginc.meta create mode 100644 Assets/Pcx/Runtime/Shaders/Disk.shader create mode 100644 Assets/Pcx/Runtime/Shaders/Disk.shader.meta create mode 100644 Assets/Pcx/Runtime/Shaders/Point.shader create mode 100644 Assets/Pcx/Runtime/Shaders/Point.shader.meta create mode 100644 Assets/Plugins.meta create mode 100644 Assets/Plugins/PointCloudPlugin.meta create mode 100644 Assets/Plugins/PointCloudPlugin/LASzip64.dll create mode 100644 Assets/Plugins/PointCloudPlugin/LASzip64.dll.meta create mode 100644 Assets/Plugins/PointCloudPlugin/PointCloudPlugin.dll create mode 100644 Assets/Plugins/PointCloudPlugin/PointCloudPlugin.dll.meta create mode 100644 Assets/Prefabs.meta create mode 100644 Assets/Prefabs/Block.prefab create mode 100644 Assets/Prefabs/Block.prefab.meta create mode 100644 Assets/Prefabs/DeformAnchor.prefab create mode 100644 Assets/Prefabs/DeformAnchor.prefab.meta create mode 100644 Assets/Prefabs/Quad.prefab create mode 100644 Assets/Prefabs/Quad.prefab.meta create mode 100644 Assets/Prefabs/VertexPoint.prefab create mode 100644 Assets/Prefabs/VertexPoint.prefab.meta create mode 100644 Assets/Resources.meta create mode 100644 Assets/Resources/CCOM.meta create mode 100644 Assets/Resources/CCOM/Common.meta create mode 100644 Assets/Resources/CCOM/Common/Scripts.meta create mode 100644 Assets/Resources/CCOM/Common/Scripts/GEOReference.cs create mode 100644 Assets/Resources/CCOM/Common/Scripts/GEOReference.cs.meta create mode 100644 Assets/Resources/CCOM/PointCloud.meta create mode 100644 Assets/Resources/CCOM/PointCloud/Data.meta create mode 100644 Assets/Resources/CCOM/PointCloud/Data/0.las create mode 100644 Assets/Resources/CCOM/PointCloud/Data/0.las.meta create mode 100644 Assets/Resources/CCOM/PointCloud/Data/readMe.txt create mode 100644 Assets/Resources/CCOM/PointCloud/Data/readMe.txt.meta create mode 100644 Assets/Resources/CCOM/PointCloud/Scripts.meta create mode 100644 Assets/Resources/CCOM/PointCloud/Scripts/pointCloud.cs create mode 100644 Assets/Resources/CCOM/PointCloud/Scripts/pointCloud.cs.meta create mode 100644 Assets/Resources/CCOM/PointCloud/Scripts/pointCloudManager.cs create mode 100644 Assets/Resources/CCOM/PointCloud/Scripts/pointCloudManager.cs.meta create mode 100644 Assets/Samples.meta create mode 100644 Assets/Samples/XR Interaction Toolkit.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/.sample.json create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/AffordanceThemes.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/AffordanceThemes/InteractionColorAffordanceTheme.asset create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/AffordanceThemes/InteractionColorAffordanceTheme.asset.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Audio.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Audio/Button Pop.wav create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Audio/Button Pop.wav.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/DemoScene.unity create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/DemoScene.unity.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Editor.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Editor/Scripts.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Editor/Scripts/StarterAssetsSampleProjectValidation.cs create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Editor/Scripts/StarterAssetsSampleProjectValidation.cs.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Editor/Unity.XR.Interaction.Toolkit.Samples.StarterAssets.Editor.asmdef create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Editor/Unity.XR.Interaction.Toolkit.Samples.StarterAssets.Editor.asmdef.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Models.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Models/Primitive_Cylinder.fbx create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Models/Primitive_Cylinder.fbx.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Models/Primitive_Pyramid.fbx create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Models/Primitive_Pyramid.fbx.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Models/Primitive_Torus.fbx create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Models/Primitive_Torus.fbx.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Models/Primitive_Wedge.fbx create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Models/Primitive_Wedge.fbx.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Models/PushButton.fbx create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Models/PushButton.fbx.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Models/XRControllerLeft.fbx create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Models/XRControllerLeft.fbx.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Models/XRControllerRight.fbx create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Models/XRControllerRight.fbx.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Prefabs.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Prefabs/Climb Sample.prefab create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Prefabs/Climb Sample.prefab.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Prefabs/Climb.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Prefabs/Climb/Climbing Wall.prefab create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Prefabs/Climb/Climbing Wall.prefab.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Prefabs/Climb/Ladder.prefab create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Prefabs/Climb/Ladder.prefab.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Prefabs/Controllers.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Prefabs/Controllers/XR Controller Left.prefab create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Prefabs/Controllers/XR Controller Left.prefab.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Prefabs/Controllers/XR Controller Right.prefab create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Prefabs/Controllers/XR Controller Right.prefab.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Prefabs/Interactables Sample.prefab create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Prefabs/Interactables Sample.prefab.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Prefabs/Interactables.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Prefabs/Interactables/Interactable Instant Pyramid.prefab create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Prefabs/Interactables/Interactable Instant Pyramid.prefab.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Prefabs/Interactables/Interactable Kinematic Torus.prefab create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Prefabs/Interactables/Interactable Kinematic Torus.prefab.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Prefabs/Interactables/Interactable Simple Cube.prefab create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Prefabs/Interactables/Interactable Simple Cube.prefab.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Prefabs/Interactables/Interactable Velocity Tracked Wedge.prefab create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Prefabs/Interactables/Interactable Velocity Tracked Wedge.prefab.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Prefabs/Interactables/Interaction Affordance.prefab create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Prefabs/Interactables/Interaction Affordance.prefab.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Prefabs/Interactors.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Prefabs/Interactors/Direct Interactor.prefab create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Prefabs/Interactors/Direct Interactor.prefab.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Prefabs/Interactors/Gaze Interactor.prefab create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Prefabs/Interactors/Gaze Interactor.prefab.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Prefabs/Interactors/Poke Interactor.prefab create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Prefabs/Interactors/Poke Interactor.prefab.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Prefabs/Interactors/Ray Interactor.prefab create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Prefabs/Interactors/Ray Interactor.prefab.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Prefabs/Interactors/Teleport Interactor.prefab create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Prefabs/Interactors/Teleport Interactor.prefab.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Prefabs/Teleport.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Prefabs/Teleport/Blocking Teleport Reticle.prefab create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Prefabs/Teleport/Blocking Teleport Reticle.prefab.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Prefabs/Teleport/Directional Teleport Reticle.prefab create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Prefabs/Teleport/Directional Teleport Reticle.prefab.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Prefabs/Teleport/Snapping Teleport Anchor.prefab create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Prefabs/Teleport/Snapping Teleport Anchor.prefab.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Prefabs/Teleport/Teleport Anchor.prefab create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Prefabs/Teleport/Teleport Anchor.prefab.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Prefabs/Teleport/Teleport Area.prefab create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Prefabs/Teleport/Teleport Area.prefab.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Prefabs/Teleportation Environment.prefab create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Prefabs/Teleportation Environment.prefab.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Prefabs/UI Sample.prefab create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Prefabs/UI Sample.prefab.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Prefabs/UI_2D.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Prefabs/UI_2D/Dropdown.prefab create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Prefabs/UI_2D/Dropdown.prefab.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Prefabs/UI_2D/Interactive Controls.prefab create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Prefabs/UI_2D/Interactive Controls.prefab.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Prefabs/UI_2D/MinMaxSlider.prefab create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Prefabs/UI_2D/MinMaxSlider.prefab.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Prefabs/UI_2D/ModalSingleButton.prefab create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Prefabs/UI_2D/ModalSingleButton.prefab.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Prefabs/UI_2D/Scroll UI Sample.prefab create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Prefabs/UI_2D/Scroll UI Sample.prefab.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Prefabs/UI_2D/TextButton.prefab create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Prefabs/UI_2D/TextButton.prefab.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Prefabs/UI_3D.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Prefabs/UI_3D/Push Button.prefab create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Prefabs/UI_3D/Push Button.prefab.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Prefabs/XR Interaction Setup.prefab create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Prefabs/XR Interaction Setup.prefab.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Prefabs/XR Origin (XR Rig).prefab create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Prefabs/XR Origin (XR Rig).prefab.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Scripts.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Scripts/ActionBasedControllerManager.cs create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Scripts/ActionBasedControllerManager.cs.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Scripts/DynamicMoveProvider.cs create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Scripts/DynamicMoveProvider.cs.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Scripts/GazeInputManager.cs create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Scripts/GazeInputManager.cs.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Scripts/PokeStation.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Scripts/PokeStation/IncrementUIText.cs create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Scripts/PokeStation/IncrementUIText.cs.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Scripts/XRPokeFollowAffordance.cs create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Scripts/XRPokeFollowAffordance.cs.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Unity.XR.Interaction.Toolkit.Samples.StarterAssets.asmdef create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/Unity.XR.Interaction.Toolkit.Samples.StarterAssets.asmdef.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/XRI Default Continuous Move.preset create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/XRI Default Continuous Move.preset.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/XRI Default Continuous Turn.preset create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/XRI Default Continuous Turn.preset.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/XRI Default Gaze Controller.preset create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/XRI Default Gaze Controller.preset.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/XRI Default Input Actions.inputactions create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/XRI Default Input Actions.inputactions.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/XRI Default Left ActionBasedControllerManager.preset create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/XRI Default Left ActionBasedControllerManager.preset.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/XRI Default Left Controller.preset create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/XRI Default Left Controller.preset.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/XRI Default Left Grab Move.preset create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/XRI Default Left Grab Move.preset.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/XRI Default Right ActionBasedControllerManager.preset create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/XRI Default Right ActionBasedControllerManager.preset.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/XRI Default Right Controller.preset create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/XRI Default Right Controller.preset.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/XRI Default Right Grab Move.preset create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/XRI Default Right Grab Move.preset.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/XRI Default Snap Turn.preset create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/XRI Default Snap Turn.preset.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/XRI Default XR UI Input Module.preset create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Starter Assets/XRI Default XR UI Input Module.preset.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Tunneling Vignette.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Tunneling Vignette/.sample.json create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Tunneling Vignette/TunnelingVignette.mat create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Tunneling Vignette/TunnelingVignette.mat.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Tunneling Vignette/TunnelingVignette.prefab create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Tunneling Vignette/TunnelingVignette.prefab.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Tunneling Vignette/TunnelingVignette.shader create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Tunneling Vignette/TunnelingVignette.shader.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Tunneling Vignette/TunnelingVignetteHemisphere.fbx create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Tunneling Vignette/TunnelingVignetteHemisphere.fbx.meta create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Tunneling Vignette/TunnelingVignetteSG.shadergraph create mode 100644 Assets/Samples/XR Interaction Toolkit/2.4.3/Tunneling Vignette/TunnelingVignetteSG.shadergraph.meta create mode 100644 Assets/Scenes.meta create mode 100644 Assets/Scenes/BasicScene.meta create mode 100644 Assets/Scenes/BasicScene.unity create mode 100644 Assets/Scenes/BasicScene.unity.meta create mode 100644 Assets/Scenes/BasicScene/Grid.mat create mode 100644 Assets/Scenes/BasicScene/Grid.mat.meta create mode 100644 Assets/Scenes/BasicScene/Grid_Light_512x512.png create mode 100644 Assets/Scenes/BasicScene/Grid_Light_512x512.png.meta create mode 100644 Assets/Scenes/SampleScene.meta create mode 100644 Assets/Scenes/SampleScene.unity create mode 100644 Assets/Scenes/SampleScene.unity.meta create mode 100644 Assets/Scenes/SampleScene/LightingData.asset create mode 100644 Assets/Scenes/SampleScene/LightingData.asset.meta create mode 100644 Assets/Scenes/SampleScene/Lightmap-0_comp_dir.png create mode 100644 Assets/Scenes/SampleScene/Lightmap-0_comp_dir.png.meta create mode 100644 Assets/Scenes/SampleScene/Lightmap-0_comp_light.exr create mode 100644 Assets/Scenes/SampleScene/Lightmap-0_comp_light.exr.meta create mode 100644 Assets/Scenes/SampleScene/Lightmap-0_comp_shadowmask.png create mode 100644 Assets/Scenes/SampleScene/Lightmap-0_comp_shadowmask.png.meta create mode 100644 Assets/Scenes/SampleScene/ReflectionProbe-0.exr create mode 100644 Assets/Scenes/SampleScene/ReflectionProbe-0.exr.meta create mode 100644 Assets/Scenes/SampleScene/ReflectionProbe-1.exr create mode 100644 Assets/Scenes/SampleScene/ReflectionProbe-1.exr.meta create mode 100644 Assets/Scrips.meta create mode 100644 Assets/Scrips/BlockDeform.cs create mode 100644 Assets/Scrips/BlockDeform.cs.meta create mode 100644 Assets/Scrips/DeformAnchor.cs create mode 100644 Assets/Scrips/DeformAnchor.cs.meta create mode 100644 Assets/Scrips/DeformAnchorOld.cs create mode 100644 Assets/Scrips/DeformAnchorOld.cs.meta create mode 100644 Assets/Scrips/SelectPointsEvent.cs create mode 100644 Assets/Scrips/SelectPointsEvent.cs.meta create mode 100644 Assets/Scrips/TriggerEvent.cs create mode 100644 Assets/Scrips/TriggerEvent.cs.meta create mode 100644 Assets/Settings.meta create mode 100644 Assets/Settings/Project Configuration.meta create mode 100644 Assets/Settings/Project Configuration/Android Preset.asset create mode 100644 Assets/Settings/Project Configuration/Android Preset.asset.meta create mode 100644 Assets/Settings/Project Configuration/BasicScene.scenetemplate create mode 100644 Assets/Settings/Project Configuration/BasicScene.scenetemplate.meta create mode 100644 Assets/Settings/Project Configuration/Performance URP Config.asset create mode 100644 Assets/Settings/Project Configuration/Performance URP Config.asset.meta create mode 100644 Assets/Settings/Project Configuration/Quality URP Config.asset create mode 100644 Assets/Settings/Project Configuration/Quality URP Config.asset.meta create mode 100644 Assets/Settings/Project Configuration/SampleScene.scenetemplate create mode 100644 Assets/Settings/Project Configuration/SampleScene.scenetemplate.meta create mode 100644 Assets/Settings/Project Configuration/Standalone Preset.asset create mode 100644 Assets/Settings/Project Configuration/Standalone Preset.asset.meta create mode 100644 Assets/Settings/Project Configuration/UniversalRenderPipelineGlobalSettings.asset create mode 100644 Assets/Settings/Project Configuration/UniversalRenderPipelineGlobalSettings.asset.meta create mode 100644 Assets/Shaders.meta create mode 100644 Assets/Shaders/DeformTextureGraph.shadergraph create mode 100644 Assets/Shaders/DeformTextureGraph.shadergraph.meta create mode 100644 Assets/Shaders/DeformTextureMat.mat create mode 100644 Assets/Shaders/DeformTextureMat.mat.meta create mode 100644 Assets/Shaders/vertex-shader-graph.shadergraph create mode 100644 Assets/Shaders/vertex-shader-graph.shadergraph.meta create mode 100644 Assets/Shaders/vertex_shader.mat create mode 100644 Assets/Shaders/vertex_shader.mat.meta create mode 100644 Assets/TextMesh Pro.meta create mode 100644 Assets/TextMesh Pro/Documentation.meta create mode 100644 Assets/TextMesh Pro/Documentation/TextMesh Pro User Guide 2016.pdf create mode 100644 Assets/TextMesh Pro/Documentation/TextMesh Pro User Guide 2016.pdf.meta create mode 100644 Assets/TextMesh Pro/Fonts.meta create mode 100644 Assets/TextMesh Pro/Fonts/LiberationSans - OFL.txt create mode 100644 Assets/TextMesh Pro/Fonts/LiberationSans - OFL.txt.meta create mode 100644 Assets/TextMesh Pro/Fonts/LiberationSans.ttf create mode 100644 Assets/TextMesh Pro/Fonts/LiberationSans.ttf.meta create mode 100644 Assets/TextMesh Pro/Resources.meta create mode 100644 Assets/TextMesh Pro/Resources/Fonts & Materials.meta create mode 100644 Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Drop Shadow.mat create mode 100644 Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Drop Shadow.mat.meta create mode 100644 Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Fallback.asset create mode 100644 Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Fallback.asset.meta create mode 100644 Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Outline.mat create mode 100644 Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Outline.mat.meta create mode 100644 Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF.asset create mode 100644 Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF.asset.meta create mode 100644 Assets/TextMesh Pro/Resources/LineBreaking Following Characters.txt create mode 100644 Assets/TextMesh Pro/Resources/LineBreaking Following Characters.txt.meta create mode 100644 Assets/TextMesh Pro/Resources/LineBreaking Leading Characters.txt create mode 100644 Assets/TextMesh Pro/Resources/LineBreaking Leading Characters.txt.meta create mode 100644 Assets/TextMesh Pro/Resources/Sprite Assets.meta create mode 100644 Assets/TextMesh Pro/Resources/Sprite Assets/EmojiOne.asset create mode 100644 Assets/TextMesh Pro/Resources/Sprite Assets/EmojiOne.asset.meta create mode 100644 Assets/TextMesh Pro/Resources/Style Sheets.meta create mode 100644 Assets/TextMesh Pro/Resources/Style Sheets/Default Style Sheet.asset create mode 100644 Assets/TextMesh Pro/Resources/Style Sheets/Default Style Sheet.asset.meta create mode 100644 Assets/TextMesh Pro/Resources/TMP Settings.asset create mode 100644 Assets/TextMesh Pro/Resources/TMP Settings.asset.meta create mode 100644 Assets/TextMesh Pro/Shaders.meta create mode 100644 Assets/TextMesh Pro/Shaders/TMP_Bitmap-Custom-Atlas.shader create mode 100644 Assets/TextMesh Pro/Shaders/TMP_Bitmap-Custom-Atlas.shader.meta create mode 100644 Assets/TextMesh Pro/Shaders/TMP_Bitmap-Mobile.shader create mode 100644 Assets/TextMesh Pro/Shaders/TMP_Bitmap-Mobile.shader.meta create mode 100644 Assets/TextMesh Pro/Shaders/TMP_Bitmap.shader create mode 100644 Assets/TextMesh Pro/Shaders/TMP_Bitmap.shader.meta create mode 100644 Assets/TextMesh Pro/Shaders/TMP_SDF Overlay.shader create mode 100644 Assets/TextMesh Pro/Shaders/TMP_SDF Overlay.shader.meta create mode 100644 Assets/TextMesh Pro/Shaders/TMP_SDF SSD.shader create mode 100644 Assets/TextMesh Pro/Shaders/TMP_SDF SSD.shader.meta create mode 100644 Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile Masking.shader create mode 100644 Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile Masking.shader.meta create mode 100644 Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile Overlay.shader create mode 100644 Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile Overlay.shader.meta create mode 100644 Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile SSD.shader create mode 100644 Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile SSD.shader.meta create mode 100644 Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile.shader create mode 100644 Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile.shader.meta create mode 100644 Assets/TextMesh Pro/Shaders/TMP_SDF-Surface-Mobile.shader create mode 100644 Assets/TextMesh Pro/Shaders/TMP_SDF-Surface-Mobile.shader.meta create mode 100644 Assets/TextMesh Pro/Shaders/TMP_SDF-Surface.shader create mode 100644 Assets/TextMesh Pro/Shaders/TMP_SDF-Surface.shader.meta create mode 100644 Assets/TextMesh Pro/Shaders/TMP_SDF.shader create mode 100644 Assets/TextMesh Pro/Shaders/TMP_SDF.shader.meta create mode 100644 Assets/TextMesh Pro/Shaders/TMP_Sprite.shader create mode 100644 Assets/TextMesh Pro/Shaders/TMP_Sprite.shader.meta create mode 100644 Assets/TextMesh Pro/Shaders/TMPro.cginc create mode 100644 Assets/TextMesh Pro/Shaders/TMPro.cginc.meta create mode 100644 Assets/TextMesh Pro/Shaders/TMPro_Mobile.cginc create mode 100644 Assets/TextMesh Pro/Shaders/TMPro_Mobile.cginc.meta create mode 100644 Assets/TextMesh Pro/Shaders/TMPro_Properties.cginc create mode 100644 Assets/TextMesh Pro/Shaders/TMPro_Properties.cginc.meta create mode 100644 Assets/TextMesh Pro/Shaders/TMPro_Surface.cginc create mode 100644 Assets/TextMesh Pro/Shaders/TMPro_Surface.cginc.meta create mode 100644 Assets/TextMesh Pro/Sprites.meta create mode 100644 Assets/TextMesh Pro/Sprites/EmojiOne Attribution.txt create mode 100644 Assets/TextMesh Pro/Sprites/EmojiOne Attribution.txt.meta create mode 100644 Assets/TextMesh Pro/Sprites/EmojiOne.json create mode 100644 Assets/TextMesh Pro/Sprites/EmojiOne.json.meta create mode 100644 Assets/TextMesh Pro/Sprites/EmojiOne.png create mode 100644 Assets/TextMesh Pro/Sprites/EmojiOne.png.meta create mode 100644 Assets/Textures.meta create mode 100644 Assets/Textures/plane_alpha_cross.png create mode 100644 Assets/Textures/plane_alpha_cross.png.meta create mode 100644 Assets/VRTemplateAssets.meta create mode 100644 Assets/VRTemplateAssets/Audio.meta create mode 100644 Assets/VRTemplateAssets/Audio/Button_14_hover.wav create mode 100644 Assets/VRTemplateAssets/Audio/Button_14_hover.wav.meta create mode 100644 Assets/VRTemplateAssets/Audio/Button_22_click.wav create mode 100644 Assets/VRTemplateAssets/Audio/Button_22_click.wav.meta create mode 100644 Assets/VRTemplateAssets/Fonts.meta create mode 100644 Assets/VRTemplateAssets/Fonts/Inter.meta create mode 100644 Assets/VRTemplateAssets/Fonts/Inter/.gitattributes create mode 100644 Assets/VRTemplateAssets/Fonts/Inter/Inter-Regular SDF Material XRay Blue.mat create mode 100644 Assets/VRTemplateAssets/Fonts/Inter/Inter-Regular SDF Material XRay Blue.mat.meta create mode 100644 Assets/VRTemplateAssets/Fonts/Inter/Inter-Regular SDF NoBackfaceCulling.asset create mode 100644 Assets/VRTemplateAssets/Fonts/Inter/Inter-Regular SDF NoBackfaceCulling.asset.meta create mode 100644 Assets/VRTemplateAssets/Fonts/Inter/Inter-Regular SDF Overlay Material.mat create mode 100644 Assets/VRTemplateAssets/Fonts/Inter/Inter-Regular SDF Overlay Material.mat.meta create mode 100644 Assets/VRTemplateAssets/Fonts/Inter/Inter-Regular SDF Overlay Outline Material.mat create mode 100644 Assets/VRTemplateAssets/Fonts/Inter/Inter-Regular SDF Overlay Outline Material.mat.meta create mode 100644 Assets/VRTemplateAssets/Fonts/Inter/Inter-Regular SDF Overlay Outline Thick Material.mat create mode 100644 Assets/VRTemplateAssets/Fonts/Inter/Inter-Regular SDF Overlay Outline Thick Material.mat.meta create mode 100644 Assets/VRTemplateAssets/Fonts/Inter/Inter-Regular SDF.asset create mode 100644 Assets/VRTemplateAssets/Fonts/Inter/Inter-Regular SDF.asset.meta create mode 100644 Assets/VRTemplateAssets/Fonts/Inter/Inter-Regular.ttf create mode 100644 Assets/VRTemplateAssets/Fonts/Inter/Inter-Regular.ttf.meta create mode 100644 Assets/VRTemplateAssets/Graphics.meta create mode 100644 Assets/VRTemplateAssets/Graphics/Post Process Volume Profile.asset create mode 100644 Assets/VRTemplateAssets/Graphics/Post Process Volume Profile.asset.meta create mode 100644 Assets/VRTemplateAssets/Graphics/Template Lighting Settings.lighting create mode 100644 Assets/VRTemplateAssets/Graphics/Template Lighting Settings.lighting.meta create mode 100644 Assets/VRTemplateAssets/Materials.meta create mode 100644 Assets/VRTemplateAssets/Materials/Anchor Materials.meta create mode 100644 Assets/VRTemplateAssets/Materials/Anchor Materials/Anchor Base.mat create mode 100644 Assets/VRTemplateAssets/Materials/Anchor Materials/Anchor Base.mat.meta create mode 100644 Assets/VRTemplateAssets/Materials/Anchor Materials/Anchor Blue Glow.mat create mode 100644 Assets/VRTemplateAssets/Materials/Anchor Materials/Anchor Blue Glow.mat.meta create mode 100644 Assets/VRTemplateAssets/Materials/Anchor Materials/Anchor Glow Gradient.png create mode 100644 Assets/VRTemplateAssets/Materials/Anchor Materials/Anchor Glow Gradient.png.meta create mode 100644 Assets/VRTemplateAssets/Materials/Anchor Materials/Blue Anchor Arrow.mat create mode 100644 Assets/VRTemplateAssets/Materials/Anchor Materials/Blue Anchor Arrow.mat.meta create mode 100644 Assets/VRTemplateAssets/Materials/Anchor Materials/White_Mixed_AO.png create mode 100644 Assets/VRTemplateAssets/Materials/Anchor Materials/White_Mixed_AO.png.meta create mode 100644 Assets/VRTemplateAssets/Materials/Controller.meta create mode 100644 Assets/VRTemplateAssets/Materials/Controller/Blue.mat create mode 100644 Assets/VRTemplateAssets/Materials/Controller/Blue.mat.meta create mode 100644 Assets/VRTemplateAssets/Materials/Controller/Controller.mat create mode 100644 Assets/VRTemplateAssets/Materials/Controller/Controller.mat.meta create mode 100644 Assets/VRTemplateAssets/Materials/Controller/DefaultMaterial_AO.png create mode 100644 Assets/VRTemplateAssets/Materials/Controller/DefaultMaterial_AO.png.meta create mode 100644 Assets/VRTemplateAssets/Materials/Controller/UniversalMaterialGrey.mat create mode 100644 Assets/VRTemplateAssets/Materials/Controller/UniversalMaterialGrey.mat.meta create mode 100644 Assets/VRTemplateAssets/Materials/Controller/UniversalMaterialWhite.mat create mode 100644 Assets/VRTemplateAssets/Materials/Controller/UniversalMaterialWhite.mat.meta create mode 100644 Assets/VRTemplateAssets/Materials/Controller/White.mat create mode 100644 Assets/VRTemplateAssets/Materials/Controller/White.mat.meta create mode 100644 Assets/VRTemplateAssets/Materials/Environment.meta create mode 100644 Assets/VRTemplateAssets/Materials/Environment/Arrows.mat create mode 100644 Assets/VRTemplateAssets/Materials/Environment/Arrows.mat.meta create mode 100644 Assets/VRTemplateAssets/Materials/Environment/Chrome.mat create mode 100644 Assets/VRTemplateAssets/Materials/Environment/Chrome.mat.meta create mode 100644 Assets/VRTemplateAssets/Materials/Environment/Concrete Blue.mat create mode 100644 Assets/VRTemplateAssets/Materials/Environment/Concrete Blue.mat.meta create mode 100644 Assets/VRTemplateAssets/Materials/Environment/Concrete Grey.mat create mode 100644 Assets/VRTemplateAssets/Materials/Environment/Concrete Grey.mat.meta create mode 100644 Assets/VRTemplateAssets/Materials/Environment/Concrete.mat create mode 100644 Assets/VRTemplateAssets/Materials/Environment/Concrete.mat.meta create mode 100644 Assets/VRTemplateAssets/Materials/Environment/Concrete_Albedo.tif create mode 100644 Assets/VRTemplateAssets/Materials/Environment/Concrete_Albedo.tif.meta create mode 100644 Assets/VRTemplateAssets/Materials/Environment/Concrete_Metallic.tif create mode 100644 Assets/VRTemplateAssets/Materials/Environment/Concrete_Metallic.tif.meta create mode 100644 Assets/VRTemplateAssets/Materials/Environment/Concrete_Normal.tif create mode 100644 Assets/VRTemplateAssets/Materials/Environment/Concrete_Normal.tif.meta create mode 100644 Assets/VRTemplateAssets/Materials/Environment/Dark Green.mat create mode 100644 Assets/VRTemplateAssets/Materials/Environment/Dark Green.mat.meta create mode 100644 Assets/VRTemplateAssets/Materials/Environment/FauxBackgroundBlur.mat create mode 100644 Assets/VRTemplateAssets/Materials/Environment/FauxBackgroundBlur.mat.meta create mode 100644 Assets/VRTemplateAssets/Materials/Environment/Frosted_Glass_Pattern_AlbedoTransparency.png create mode 100644 Assets/VRTemplateAssets/Materials/Environment/Frosted_Glass_Pattern_AlbedoTransparency.png.meta create mode 100644 Assets/VRTemplateAssets/Materials/Environment/Glass.mat create mode 100644 Assets/VRTemplateAssets/Materials/Environment/Glass.mat.meta create mode 100644 Assets/VRTemplateAssets/Materials/Environment/Grey.mat create mode 100644 Assets/VRTemplateAssets/Materials/Environment/Grey.mat.meta create mode 100644 Assets/VRTemplateAssets/Materials/Environment/Grid Dark Large.mat create mode 100644 Assets/VRTemplateAssets/Materials/Environment/Grid Dark Large.mat.meta create mode 100644 Assets/VRTemplateAssets/Materials/Environment/Grid Dark Tight.mat create mode 100644 Assets/VRTemplateAssets/Materials/Environment/Grid Dark Tight.mat.meta create mode 100644 Assets/VRTemplateAssets/Materials/Environment/Wall Cut.mat create mode 100644 Assets/VRTemplateAssets/Materials/Environment/Wall Cut.mat.meta create mode 100644 Assets/VRTemplateAssets/Materials/Environment/Wall Default.mat create mode 100644 Assets/VRTemplateAssets/Materials/Environment/Wall Default.mat.meta create mode 100644 Assets/VRTemplateAssets/Materials/Environment/wall2_Base_color.png create mode 100644 Assets/VRTemplateAssets/Materials/Environment/wall2_Base_color.png.meta create mode 100644 Assets/VRTemplateAssets/Materials/Environment/wall2_Height.png create mode 100644 Assets/VRTemplateAssets/Materials/Environment/wall2_Height.png.meta create mode 100644 Assets/VRTemplateAssets/Materials/Environment/wall2_Metallic.png create mode 100644 Assets/VRTemplateAssets/Materials/Environment/wall2_Metallic.png.meta create mode 100644 Assets/VRTemplateAssets/Materials/Environment/wall2_Normal.png create mode 100644 Assets/VRTemplateAssets/Materials/Environment/wall2_Normal.png.meta create mode 100644 Assets/VRTemplateAssets/Materials/Environment/wall2_Normal_OpenGL.png create mode 100644 Assets/VRTemplateAssets/Materials/Environment/wall2_Normal_OpenGL.png.meta create mode 100644 Assets/VRTemplateAssets/Materials/Environment/wall2_Roughness.png create mode 100644 Assets/VRTemplateAssets/Materials/Environment/wall2_Roughness.png.meta create mode 100644 Assets/VRTemplateAssets/Materials/Environment/wall_Base_color.png create mode 100644 Assets/VRTemplateAssets/Materials/Environment/wall_Base_color.png.meta create mode 100644 Assets/VRTemplateAssets/Materials/Environment/wall_Height.png create mode 100644 Assets/VRTemplateAssets/Materials/Environment/wall_Height.png.meta create mode 100644 Assets/VRTemplateAssets/Materials/Environment/wall_Metallic.png create mode 100644 Assets/VRTemplateAssets/Materials/Environment/wall_Metallic.png.meta create mode 100644 Assets/VRTemplateAssets/Materials/Environment/wall_Normal.png create mode 100644 Assets/VRTemplateAssets/Materials/Environment/wall_Normal.png.meta create mode 100644 Assets/VRTemplateAssets/Materials/Environment/wall_Normal_OpenGL.png create mode 100644 Assets/VRTemplateAssets/Materials/Environment/wall_Normal_OpenGL.png.meta create mode 100644 Assets/VRTemplateAssets/Materials/Environment/wall_Roughness.png create mode 100644 Assets/VRTemplateAssets/Materials/Environment/wall_Roughness.png.meta create mode 100644 Assets/VRTemplateAssets/Materials/Locomotion.meta create mode 100644 Assets/VRTemplateAssets/Materials/Locomotion/Angle Indicator.mat create mode 100644 Assets/VRTemplateAssets/Materials/Locomotion/Angle Indicator.mat.meta create mode 100644 Assets/VRTemplateAssets/Materials/Locomotion/BlinkLine.mat create mode 100644 Assets/VRTemplateAssets/Materials/Locomotion/BlinkLine.mat.meta create mode 100644 Assets/VRTemplateAssets/Materials/Locomotion/BlinkOcclusionPass.mat create mode 100644 Assets/VRTemplateAssets/Materials/Locomotion/BlinkOcclusionPass.mat.meta create mode 100644 Assets/VRTemplateAssets/Materials/Locomotion/BlinkOcclusionTexture.png create mode 100644 Assets/VRTemplateAssets/Materials/Locomotion/BlinkOcclusionTexture.png.meta create mode 100644 Assets/VRTemplateAssets/Materials/Locomotion/Blue Standard.mat create mode 100644 Assets/VRTemplateAssets/Materials/Locomotion/Blue Standard.mat.meta create mode 100644 Assets/VRTemplateAssets/Materials/Locomotion/FlatBlue.mat create mode 100644 Assets/VRTemplateAssets/Materials/Locomotion/FlatBlue.mat.meta create mode 100644 Assets/VRTemplateAssets/Materials/Locomotion/Standard White.mat create mode 100644 Assets/VRTemplateAssets/Materials/Locomotion/Standard White.mat.meta create mode 100644 Assets/VRTemplateAssets/Materials/Particles.meta create mode 100644 Assets/VRTemplateAssets/Materials/Particles/ConfettiParticles.mat create mode 100644 Assets/VRTemplateAssets/Materials/Particles/ConfettiParticles.mat.meta create mode 100644 Assets/VRTemplateAssets/Materials/Pointer.meta create mode 100644 Assets/VRTemplateAssets/Materials/Pointer/Pointer Outline.mat create mode 100644 Assets/VRTemplateAssets/Materials/Pointer/Pointer Outline.mat.meta create mode 100644 Assets/VRTemplateAssets/Materials/Primitive.meta create mode 100644 Assets/VRTemplateAssets/Materials/Primitive/Cube_Fabric.mat create mode 100644 Assets/VRTemplateAssets/Materials/Primitive/Cube_Fabric.mat.meta create mode 100644 Assets/VRTemplateAssets/Materials/Primitive/Green.mat create mode 100644 Assets/VRTemplateAssets/Materials/Primitive/Green.mat.meta create mode 100644 Assets/VRTemplateAssets/Materials/Primitive/Interactables 2.mat create mode 100644 Assets/VRTemplateAssets/Materials/Primitive/Interactables 2.mat.meta create mode 100644 Assets/VRTemplateAssets/Materials/Primitive/Interactables 3.mat create mode 100644 Assets/VRTemplateAssets/Materials/Primitive/Interactables 3.mat.meta create mode 100644 Assets/VRTemplateAssets/Materials/Primitive/Interactables 4.mat create mode 100644 Assets/VRTemplateAssets/Materials/Primitive/Interactables 4.mat.meta create mode 100644 Assets/VRTemplateAssets/Materials/Primitive/Interactables 5.mat create mode 100644 Assets/VRTemplateAssets/Materials/Primitive/Interactables 5.mat.meta create mode 100644 Assets/VRTemplateAssets/Materials/Primitive/Interactables Bouncy.physicMaterial create mode 100644 Assets/VRTemplateAssets/Materials/Primitive/Interactables Bouncy.physicMaterial.meta create mode 100644 Assets/VRTemplateAssets/Materials/Primitive/Interactables.mat create mode 100644 Assets/VRTemplateAssets/Materials/Primitive/Interactables.mat.meta create mode 100644 Assets/VRTemplateAssets/Materials/Primitive/Interactables.physicMaterial create mode 100644 Assets/VRTemplateAssets/Materials/Primitive/Interactables.physicMaterial.meta create mode 100644 Assets/VRTemplateAssets/Materials/Primitive/Sticky.physicMaterial create mode 100644 Assets/VRTemplateAssets/Materials/Primitive/Sticky.physicMaterial.meta create mode 100644 Assets/VRTemplateAssets/Materials/Primitive/Torus.mat create mode 100644 Assets/VRTemplateAssets/Materials/Primitive/Torus.mat.meta create mode 100644 Assets/VRTemplateAssets/Materials/Primitive/fabric_Base_color.png create mode 100644 Assets/VRTemplateAssets/Materials/Primitive/fabric_Base_color.png.meta create mode 100644 Assets/VRTemplateAssets/Materials/Primitive/fabric_Height.png create mode 100644 Assets/VRTemplateAssets/Materials/Primitive/fabric_Height.png.meta create mode 100644 Assets/VRTemplateAssets/Materials/Primitive/fabric_Metallic.png create mode 100644 Assets/VRTemplateAssets/Materials/Primitive/fabric_Metallic.png.meta create mode 100644 Assets/VRTemplateAssets/Materials/Primitive/fabric_Normal.png create mode 100644 Assets/VRTemplateAssets/Materials/Primitive/fabric_Normal.png.meta create mode 100644 Assets/VRTemplateAssets/Materials/Primitive/fabric_Normal_OpenGL.png create mode 100644 Assets/VRTemplateAssets/Materials/Primitive/fabric_Normal_OpenGL.png.meta create mode 100644 Assets/VRTemplateAssets/Materials/Primitive/fabric_Roughness.png create mode 100644 Assets/VRTemplateAssets/Materials/Primitive/fabric_Roughness.png.meta create mode 100644 Assets/VRTemplateAssets/Materials/Primitive/torus_Base_color.png create mode 100644 Assets/VRTemplateAssets/Materials/Primitive/torus_Base_color.png.meta create mode 100644 Assets/VRTemplateAssets/Materials/Primitive/torus_Height.png create mode 100644 Assets/VRTemplateAssets/Materials/Primitive/torus_Height.png.meta create mode 100644 Assets/VRTemplateAssets/Materials/Primitive/torus_Metallic.png create mode 100644 Assets/VRTemplateAssets/Materials/Primitive/torus_Metallic.png.meta create mode 100644 Assets/VRTemplateAssets/Materials/Primitive/torus_Normal.png create mode 100644 Assets/VRTemplateAssets/Materials/Primitive/torus_Normal.png.meta create mode 100644 Assets/VRTemplateAssets/Materials/Primitive/torus_Normal_OpenGL.png create mode 100644 Assets/VRTemplateAssets/Materials/Primitive/torus_Normal_OpenGL.png.meta create mode 100644 Assets/VRTemplateAssets/Materials/Primitive/torus_Roughness.png create mode 100644 Assets/VRTemplateAssets/Materials/Primitive/torus_Roughness.png.meta create mode 100644 Assets/VRTemplateAssets/Materials/Skybox.meta create mode 100644 Assets/VRTemplateAssets/Materials/Skybox/Horizontal Skybox.shader create mode 100644 Assets/VRTemplateAssets/Materials/Skybox/Horizontal Skybox.shader.meta create mode 100644 Assets/VRTemplateAssets/Materials/Skybox/Hub Skybox Blue 2.mat create mode 100644 Assets/VRTemplateAssets/Materials/Skybox/Hub Skybox Blue 2.mat.meta create mode 100644 Assets/VRTemplateAssets/Materials/Skybox/skybox01_openGL.mat create mode 100644 Assets/VRTemplateAssets/Materials/Skybox/skybox01_openGL.mat.meta create mode 100644 Assets/VRTemplateAssets/Materials/Skybox/skybox01_openGL.png create mode 100644 Assets/VRTemplateAssets/Materials/Skybox/skybox01_openGL.png.meta create mode 100644 Assets/VRTemplateAssets/Materials/UI.meta create mode 100644 Assets/VRTemplateAssets/Materials/UI/BezierLink.mat create mode 100644 Assets/VRTemplateAssets/Materials/UI/BezierLink.mat.meta create mode 100644 Assets/VRTemplateAssets/Materials/UI/Blue.mat create mode 100644 Assets/VRTemplateAssets/Materials/UI/Blue.mat.meta create mode 100644 Assets/VRTemplateAssets/Materials/UI/Handle.mat create mode 100644 Assets/VRTemplateAssets/Materials/UI/Handle.mat.meta create mode 100644 Assets/VRTemplateAssets/Materials/UI/Torus Cursor.mat create mode 100644 Assets/VRTemplateAssets/Materials/UI/Torus Cursor.mat.meta create mode 100644 Assets/VRTemplateAssets/Materials/UI/VideoTexture.mat create mode 100644 Assets/VRTemplateAssets/Materials/UI/VideoTexture.mat.meta create mode 100644 Assets/VRTemplateAssets/Materials/UI/torus_cursorShape.png create mode 100644 Assets/VRTemplateAssets/Materials/UI/torus_cursorShape.png.meta create mode 100644 Assets/VRTemplateAssets/Models.meta create mode 100644 Assets/VRTemplateAssets/Models/Anchor.meta create mode 100644 Assets/VRTemplateAssets/Models/Anchor/AnchorArrow.fbx create mode 100644 Assets/VRTemplateAssets/Models/Anchor/AnchorArrow.fbx.meta create mode 100644 Assets/VRTemplateAssets/Models/Anchor/AnchorBase.fbx create mode 100644 Assets/VRTemplateAssets/Models/Anchor/AnchorBase.fbx.meta create mode 100644 Assets/VRTemplateAssets/Models/Anchor/AnchorFade.fbx create mode 100644 Assets/VRTemplateAssets/Models/Anchor/AnchorFade.fbx.meta create mode 100644 Assets/VRTemplateAssets/Models/Anchor/AnchorFadeScale.anim create mode 100644 Assets/VRTemplateAssets/Models/Anchor/AnchorFadeScale.anim.meta create mode 100644 Assets/VRTemplateAssets/Models/Blink.meta create mode 100644 Assets/VRTemplateAssets/Models/Blink/BlinkVisual.fbx create mode 100644 Assets/VRTemplateAssets/Models/Blink/BlinkVisual.fbx.meta create mode 100644 Assets/VRTemplateAssets/Models/Controllers.meta create mode 100644 Assets/VRTemplateAssets/Models/Controllers/UniversalController.fbx create mode 100644 Assets/VRTemplateAssets/Models/Controllers/UniversalController.fbx.meta create mode 100644 Assets/VRTemplateAssets/Models/Cursors.meta create mode 100644 Assets/VRTemplateAssets/Models/Cursors/cursor.fbx create mode 100644 Assets/VRTemplateAssets/Models/Cursors/cursor.fbx.meta create mode 100644 Assets/VRTemplateAssets/Models/Environment.meta create mode 100644 Assets/VRTemplateAssets/Models/Environment/Arrows.fbx create mode 100644 Assets/VRTemplateAssets/Models/Environment/Arrows.fbx.meta create mode 100644 Assets/VRTemplateAssets/Models/Environment/Blaster.fbx create mode 100644 Assets/VRTemplateAssets/Models/Environment/Blaster.fbx.meta create mode 100644 Assets/VRTemplateAssets/Models/Environment/Template Environment.fbx create mode 100644 Assets/VRTemplateAssets/Models/Environment/Template Environment.fbx.meta create mode 100644 Assets/VRTemplateAssets/Models/Environment/Torus Cut.fbx create mode 100644 Assets/VRTemplateAssets/Models/Environment/Torus Cut.fbx.meta create mode 100644 Assets/VRTemplateAssets/Models/Environment/Totem1.fbx create mode 100644 Assets/VRTemplateAssets/Models/Environment/Totem1.fbx.meta create mode 100644 Assets/VRTemplateAssets/Models/Environment/Totem2.fbx create mode 100644 Assets/VRTemplateAssets/Models/Environment/Totem2.fbx.meta create mode 100644 Assets/VRTemplateAssets/Models/Marks.meta create mode 100644 Assets/VRTemplateAssets/Models/Marks/Marks.fbx create mode 100644 Assets/VRTemplateAssets/Models/Marks/Marks.fbx.meta create mode 100644 Assets/VRTemplateAssets/Models/Poke.meta create mode 100644 Assets/VRTemplateAssets/Models/Poke/PokePointer.fbx create mode 100644 Assets/VRTemplateAssets/Models/Poke/PokePointer.fbx.meta create mode 100644 Assets/VRTemplateAssets/Models/Primitives.meta create mode 100644 Assets/VRTemplateAssets/Models/Primitives/Cube.fbx create mode 100644 Assets/VRTemplateAssets/Models/Primitives/Cube.fbx.meta create mode 100644 Assets/VRTemplateAssets/Models/Primitives/Cylinder.fbx create mode 100644 Assets/VRTemplateAssets/Models/Primitives/Cylinder.fbx.meta create mode 100644 Assets/VRTemplateAssets/Models/Primitives/Sphere.fbx create mode 100644 Assets/VRTemplateAssets/Models/Primitives/Sphere.fbx.meta create mode 100644 Assets/VRTemplateAssets/Models/Primitives/Tapered Cylinder.fbx create mode 100644 Assets/VRTemplateAssets/Models/Primitives/Tapered Cylinder.fbx.meta create mode 100644 Assets/VRTemplateAssets/Models/Primitives/Torus.fbx create mode 100644 Assets/VRTemplateAssets/Models/Primitives/Torus.fbx.meta create mode 100644 Assets/VRTemplateAssets/Models/UI.meta create mode 100644 Assets/VRTemplateAssets/Models/UI/Spatial Panel Manipulator Model.fbx create mode 100644 Assets/VRTemplateAssets/Models/UI/Spatial Panel Manipulator Model.fbx.meta create mode 100644 Assets/VRTemplateAssets/Prefabs.meta create mode 100644 Assets/VRTemplateAssets/Prefabs/Affordance.meta create mode 100644 Assets/VRTemplateAssets/Prefabs/Affordance/Affordance Callout.prefab create mode 100644 Assets/VRTemplateAssets/Prefabs/Affordance/Affordance Callout.prefab.meta create mode 100644 Assets/VRTemplateAssets/Prefabs/Blaster.meta create mode 100644 Assets/VRTemplateAssets/Prefabs/Blaster/Confetti.prefab create mode 100644 Assets/VRTemplateAssets/Prefabs/Blaster/Confetti.prefab.meta create mode 100644 Assets/VRTemplateAssets/Prefabs/Blink.meta create mode 100644 Assets/VRTemplateAssets/Prefabs/Blink/Blink Visuals.prefab create mode 100644 Assets/VRTemplateAssets/Prefabs/Blink/Blink Visuals.prefab.meta create mode 100644 Assets/VRTemplateAssets/Prefabs/Controller.meta create mode 100644 Assets/VRTemplateAssets/Prefabs/Controller/Left Controller.prefab create mode 100644 Assets/VRTemplateAssets/Prefabs/Controller/Left Controller.prefab.meta create mode 100644 Assets/VRTemplateAssets/Prefabs/Controller/Right Controller.prefab create mode 100644 Assets/VRTemplateAssets/Prefabs/Controller/Right Controller.prefab.meta create mode 100644 Assets/VRTemplateAssets/Prefabs/Controller/Universal Controller Materials Variant.prefab create mode 100644 Assets/VRTemplateAssets/Prefabs/Controller/Universal Controller Materials Variant.prefab.meta create mode 100644 Assets/VRTemplateAssets/Prefabs/Cursors.meta create mode 100644 Assets/VRTemplateAssets/Prefabs/Cursors/Torus Cursor.prefab create mode 100644 Assets/VRTemplateAssets/Prefabs/Cursors/Torus Cursor.prefab.meta create mode 100644 Assets/VRTemplateAssets/Prefabs/Setup.meta create mode 100644 Assets/VRTemplateAssets/Prefabs/Setup/Complete XR Origin Set Up Variant.prefab create mode 100644 Assets/VRTemplateAssets/Prefabs/Setup/Complete XR Origin Set Up Variant.prefab.meta create mode 100644 Assets/VRTemplateAssets/Prefabs/Teleport.meta create mode 100644 Assets/VRTemplateAssets/Prefabs/Teleport/Teleport Anchor.prefab create mode 100644 Assets/VRTemplateAssets/Prefabs/Teleport/Teleport Anchor.prefab.meta create mode 100644 Assets/VRTemplateAssets/Prefabs/TutorialPlayer.meta create mode 100644 Assets/VRTemplateAssets/Prefabs/TutorialPlayer/Tutorial Player.prefab create mode 100644 Assets/VRTemplateAssets/Prefabs/TutorialPlayer/Tutorial Player.prefab.meta create mode 100644 Assets/VRTemplateAssets/Prefabs/UI.meta create mode 100644 Assets/VRTemplateAssets/Prefabs/UI/Dropdown.prefab create mode 100644 Assets/VRTemplateAssets/Prefabs/UI/Dropdown.prefab.meta create mode 100644 Assets/VRTemplateAssets/Prefabs/UI/List Item Button.prefab create mode 100644 Assets/VRTemplateAssets/Prefabs/UI/List Item Button.prefab.meta create mode 100644 Assets/VRTemplateAssets/Prefabs/UI/List Item Dropdown.prefab create mode 100644 Assets/VRTemplateAssets/Prefabs/UI/List Item Dropdown.prefab.meta create mode 100644 Assets/VRTemplateAssets/Prefabs/UI/List Item Slider.prefab create mode 100644 Assets/VRTemplateAssets/Prefabs/UI/List Item Slider.prefab.meta create mode 100644 Assets/VRTemplateAssets/Prefabs/UI/List Item Toggle.prefab create mode 100644 Assets/VRTemplateAssets/Prefabs/UI/List Item Toggle.prefab.meta create mode 100644 Assets/VRTemplateAssets/Prefabs/UI/Spatial Panel Scroll.prefab create mode 100644 Assets/VRTemplateAssets/Prefabs/UI/Spatial Panel Scroll.prefab.meta create mode 100644 Assets/VRTemplateAssets/Scripts.meta create mode 100644 Assets/VRTemplateAssets/Scripts/AnchorVisuals.cs create mode 100644 Assets/VRTemplateAssets/Scripts/AnchorVisuals.cs.meta create mode 100644 Assets/VRTemplateAssets/Scripts/BezierCurve.cs create mode 100644 Assets/VRTemplateAssets/Scripts/BezierCurve.cs.meta create mode 100644 Assets/VRTemplateAssets/Scripts/BooleanToggleVisualsController.cs create mode 100644 Assets/VRTemplateAssets/Scripts/BooleanToggleVisualsController.cs.meta create mode 100644 Assets/VRTemplateAssets/Scripts/Callout.cs create mode 100644 Assets/VRTemplateAssets/Scripts/Callout.cs.meta create mode 100644 Assets/VRTemplateAssets/Scripts/CalloutGazeController.cs create mode 100644 Assets/VRTemplateAssets/Scripts/CalloutGazeController.cs.meta create mode 100644 Assets/VRTemplateAssets/Scripts/DestroyObject.cs create mode 100644 Assets/VRTemplateAssets/Scripts/DestroyObject.cs.meta create mode 100644 Assets/VRTemplateAssets/Scripts/LaunchProjectile.cs create mode 100644 Assets/VRTemplateAssets/Scripts/LaunchProjectile.cs.meta create mode 100644 Assets/VRTemplateAssets/Scripts/RayAttachModifier.cs create mode 100644 Assets/VRTemplateAssets/Scripts/RayAttachModifier.cs.meta create mode 100644 Assets/VRTemplateAssets/Scripts/Rotator.cs create mode 100644 Assets/VRTemplateAssets/Scripts/Rotator.cs.meta create mode 100644 Assets/VRTemplateAssets/Scripts/StepManager.cs create mode 100644 Assets/VRTemplateAssets/Scripts/StepManager.cs.meta create mode 100644 Assets/VRTemplateAssets/Scripts/VideoPlayerRenderTexture.cs create mode 100644 Assets/VRTemplateAssets/Scripts/VideoPlayerRenderTexture.cs.meta create mode 100644 Assets/VRTemplateAssets/Scripts/VideoTimeScrubControl.cs create mode 100644 Assets/VRTemplateAssets/Scripts/VideoTimeScrubControl.cs.meta create mode 100644 Assets/VRTemplateAssets/Scripts/XRKnob.cs create mode 100644 Assets/VRTemplateAssets/Scripts/XRKnob.cs.meta create mode 100644 Assets/VRTemplateAssets/Scripts/XRPokeFollowAffordanceFill.cs create mode 100644 Assets/VRTemplateAssets/Scripts/XRPokeFollowAffordanceFill.cs.meta create mode 100644 Assets/VRTemplateAssets/Shaders.meta create mode 100644 Assets/VRTemplateAssets/Shaders/FauxBlurURP.shader create mode 100644 Assets/VRTemplateAssets/Shaders/FauxBlurURP.shader.meta create mode 100644 Assets/VRTemplateAssets/Shaders/Grid.shader create mode 100644 Assets/VRTemplateAssets/Shaders/Grid.shader.meta create mode 100644 Assets/VRTemplateAssets/Shaders/InteractablePrimitive.shadergraph create mode 100644 Assets/VRTemplateAssets/Shaders/InteractablePrimitive.shadergraph.meta create mode 100644 Assets/VRTemplateAssets/Shaders/TexturedFresnelStandard.shader create mode 100644 Assets/VRTemplateAssets/Shaders/TexturedFresnelStandard.shader.meta create mode 100644 Assets/VRTemplateAssets/Shaders/TexturedStableFresnelCommon.cginc create mode 100644 Assets/VRTemplateAssets/Shaders/TexturedStableFresnelCommon.cginc.meta create mode 100644 Assets/VRTemplateAssets/Sprites.meta create mode 100644 Assets/VRTemplateAssets/Sprites/CoachingCards.meta create mode 100644 Assets/VRTemplateAssets/Sprites/CoachingCards/Coaching Step 1.png create mode 100644 Assets/VRTemplateAssets/Sprites/CoachingCards/Coaching Step 1.png.meta create mode 100644 Assets/VRTemplateAssets/Sprites/CoachingCards/Coaching Step 2.png create mode 100644 Assets/VRTemplateAssets/Sprites/CoachingCards/Coaching Step 2.png.meta create mode 100644 Assets/VRTemplateAssets/Sprites/CoachingCards/Coaching Step 3.png create mode 100644 Assets/VRTemplateAssets/Sprites/CoachingCards/Coaching Step 3.png.meta create mode 100644 Assets/VRTemplateAssets/Sprites/CoachingCards/Coaching Step 4.png create mode 100644 Assets/VRTemplateAssets/Sprites/CoachingCards/Coaching Step 4.png.meta create mode 100644 Assets/VRTemplateAssets/Sprites/CoachingCards/Coaching Step 5.png create mode 100644 Assets/VRTemplateAssets/Sprites/CoachingCards/Coaching Step 5.png.meta create mode 100644 Assets/VRTemplateAssets/Sprites/CoachingCards/Coaching Step 6.png create mode 100644 Assets/VRTemplateAssets/Sprites/CoachingCards/Coaching Step 6.png.meta create mode 100644 Assets/VRTemplateAssets/Sprites/Icons.meta create mode 100644 Assets/VRTemplateAssets/Sprites/Icons/Checkmark.png create mode 100644 Assets/VRTemplateAssets/Sprites/Icons/Checkmark.png.meta create mode 100644 Assets/VRTemplateAssets/Sprites/Icons/Chevron.png create mode 100644 Assets/VRTemplateAssets/Sprites/Icons/Chevron.png.meta create mode 100644 Assets/VRTemplateAssets/Sprites/Icons/Forward.png create mode 100644 Assets/VRTemplateAssets/Sprites/Icons/Forward.png.meta create mode 100644 Assets/VRTemplateAssets/Sprites/Icons/Pause.png create mode 100644 Assets/VRTemplateAssets/Sprites/Icons/Pause.png.meta create mode 100644 Assets/VRTemplateAssets/Sprites/Icons/Play.png create mode 100644 Assets/VRTemplateAssets/Sprites/Icons/Play.png.meta create mode 100644 Assets/VRTemplateAssets/Sprites/Icons/Rotate Left.png create mode 100644 Assets/VRTemplateAssets/Sprites/Icons/Rotate Left.png.meta create mode 100644 Assets/VRTemplateAssets/Sprites/Icons/Rotate Right.png create mode 100644 Assets/VRTemplateAssets/Sprites/Icons/Rotate Right.png.meta create mode 100644 Assets/VRTemplateAssets/Sprites/Icons/Scroll Down.png create mode 100644 Assets/VRTemplateAssets/Sprites/Icons/Scroll Down.png.meta create mode 100644 Assets/VRTemplateAssets/Sprites/Icons/Scroll Left.png create mode 100644 Assets/VRTemplateAssets/Sprites/Icons/Scroll Left.png.meta create mode 100644 Assets/VRTemplateAssets/Sprites/Icons/Scroll Right.png create mode 100644 Assets/VRTemplateAssets/Sprites/Icons/Scroll Right.png.meta create mode 100644 Assets/VRTemplateAssets/Sprites/Icons/Scroll Up.png create mode 100644 Assets/VRTemplateAssets/Sprites/Icons/Scroll Up.png.meta create mode 100644 Assets/VRTemplateAssets/Sprites/Icons/Teleport.png create mode 100644 Assets/VRTemplateAssets/Sprites/Icons/Teleport.png.meta create mode 100644 Assets/VRTemplateAssets/Sprites/UI.meta create mode 100644 Assets/VRTemplateAssets/Sprites/UI/CircleMask.png create mode 100644 Assets/VRTemplateAssets/Sprites/UI/CircleMask.png.meta create mode 100644 Assets/VRTemplateAssets/Sprites/UI/Circle_60x60 Outline 4.png create mode 100644 Assets/VRTemplateAssets/Sprites/UI/Circle_60x60 Outline 4.png.meta create mode 100644 Assets/VRTemplateAssets/Sprites/UI/Circle_60x60 Outline.png create mode 100644 Assets/VRTemplateAssets/Sprites/UI/Circle_60x60 Outline.png.meta create mode 100644 Assets/VRTemplateAssets/Sprites/UI/Circle_60x60_Horizontal.png create mode 100644 Assets/VRTemplateAssets/Sprites/UI/Circle_60x60_Horizontal.png.meta create mode 100644 Assets/VRTemplateAssets/Sprites/UI/Circle_60x60_Vertical.png create mode 100644 Assets/VRTemplateAssets/Sprites/UI/Circle_60x60_Vertical.png.meta create mode 100644 Assets/VRTemplateAssets/Sprites/UI/Joystick BG.png create mode 100644 Assets/VRTemplateAssets/Sprites/UI/Joystick BG.png.meta create mode 100644 Assets/VRTemplateAssets/Sprites/UI/Joystick Segment.png create mode 100644 Assets/VRTemplateAssets/Sprites/UI/Joystick Segment.png.meta create mode 100644 Assets/VRTemplateAssets/Sprites/UI/Round Radius 10 Bottom.png create mode 100644 Assets/VRTemplateAssets/Sprites/UI/Round Radius 10 Bottom.png.meta create mode 100644 Assets/VRTemplateAssets/Sprites/UI/Round Radius 10 Outline.png create mode 100644 Assets/VRTemplateAssets/Sprites/UI/Round Radius 10 Outline.png.meta create mode 100644 Assets/VRTemplateAssets/Sprites/UI/Round Radius 10 Top.png create mode 100644 Assets/VRTemplateAssets/Sprites/UI/Round Radius 10 Top.png.meta create mode 100644 Assets/VRTemplateAssets/Sprites/UI/Round Radius 10.png create mode 100644 Assets/VRTemplateAssets/Sprites/UI/Round Radius 10.png.meta create mode 100644 Assets/VRTemplateAssets/Themes.meta create mode 100644 Assets/VRTemplateAssets/Themes/AnchorAffordanceTheme.asset create mode 100644 Assets/VRTemplateAssets/Themes/AnchorAffordanceTheme.asset.meta create mode 100644 Assets/VRTemplateAssets/Themes/AudioAffordanceTheme.asset create mode 100644 Assets/VRTemplateAssets/Themes/AudioAffordanceTheme.asset.meta create mode 100644 Assets/VRTemplateAssets/Themes/BlasterAudioAffordanceTheme.asset create mode 100644 Assets/VRTemplateAssets/Themes/BlasterAudioAffordanceTheme.asset.meta create mode 100644 Assets/VRTemplateAssets/Themes/BlendShapeAffordanceTheme.asset create mode 100644 Assets/VRTemplateAssets/Themes/BlendShapeAffordanceTheme.asset.meta create mode 100644 Assets/VRTemplateAssets/Themes/ColorAffordanceTheme.asset create mode 100644 Assets/VRTemplateAssets/Themes/ColorAffordanceTheme.asset.meta create mode 100644 Assets/VRTemplateAssets/Themes/EdgeColorAffordanceTheme.asset create mode 100644 Assets/VRTemplateAssets/Themes/EdgeColorAffordanceTheme.asset.meta create mode 100644 Assets/VRTemplateAssets/Tutorial.meta create mode 100644 Assets/VRTemplateAssets/Tutorial/Images.meta create mode 100644 Assets/VRTemplateAssets/Tutorial/Images/1-welcome-screen-image.png create mode 100644 Assets/VRTemplateAssets/Tutorial/Images/1-welcome-screen-image.png.meta create mode 100644 Assets/VRTemplateAssets/Tutorial/Images/project-header-vr.png create mode 100644 Assets/VRTemplateAssets/Tutorial/Images/project-header-vr.png.meta create mode 100644 Assets/VRTemplateAssets/Tutorial/TutorialLayout.wlt create mode 100644 Assets/VRTemplateAssets/Tutorial/TutorialLayout.wlt.meta create mode 100644 Assets/VRTemplateAssets/Tutorial/VRTutorialContainer.asset create mode 100644 Assets/VRTemplateAssets/Tutorial/VRTutorialContainer.asset.meta create mode 100644 Assets/VRTemplateAssets/Tutorial/VRTutorialProjectSettings.asset create mode 100644 Assets/VRTemplateAssets/Tutorial/VRTutorialProjectSettings.asset.meta create mode 100644 Assets/VRTemplateAssets/Tutorial/VRTutorialStyle.asset create mode 100644 Assets/VRTemplateAssets/Tutorial/VRTutorialStyle.asset.meta create mode 100644 Assets/VRTemplateAssets/Tutorial/VRTutorialWelcomePage.asset create mode 100644 Assets/VRTemplateAssets/Tutorial/VRTutorialWelcomePage.asset.meta create mode 100644 Assets/VRTemplateAssets/Videos.meta create mode 100644 Assets/VRTemplateAssets/Videos/onboarding_video_final.mp4 create mode 100644 Assets/VRTemplateAssets/Videos/onboarding_video_final.mp4.meta create mode 100644 Assets/VertexMat.mat create mode 100644 Assets/VertexMat.mat.meta create mode 100644 Assets/VertexShader.shader create mode 100644 Assets/VertexShader.shader.meta create mode 100644 Assets/XR.meta create mode 100644 Assets/XR/Loaders.meta create mode 100644 Assets/XR/Loaders/Oculus Loader.asset create mode 100644 Assets/XR/Loaders/Oculus Loader.asset.meta create mode 100644 Assets/XR/Loaders/Open XR Loader No Pre Init.asset create mode 100644 Assets/XR/Loaders/Open XR Loader No Pre Init.asset.meta create mode 100644 Assets/XR/Loaders/Open XR Loader.asset create mode 100644 Assets/XR/Loaders/Open XR Loader.asset.meta create mode 100644 Assets/XR/Settings.meta create mode 100644 Assets/XR/Settings/Oculus Settings.asset create mode 100644 Assets/XR/Settings/Oculus Settings.asset.meta create mode 100644 Assets/XR/Settings/Open XR Package Settings.asset create mode 100644 Assets/XR/Settings/Open XR Package Settings.asset.meta create mode 100644 Assets/XR/Settings/OpenXR Editor Settings.asset create mode 100644 Assets/XR/Settings/OpenXR Editor Settings.asset.meta create mode 100644 Assets/XR/XRGeneralSettings.asset create mode 100644 Assets/XR/XRGeneralSettings.asset.meta create mode 100644 Assets/XRI.meta create mode 100644 Assets/XRI/Settings.meta create mode 100644 Assets/XRI/Settings/Resources.meta create mode 100644 Assets/XRI/Settings/Resources/InteractionLayerSettings.asset create mode 100644 Assets/XRI/Settings/Resources/InteractionLayerSettings.asset.meta create mode 100644 Assets/XRI/Settings/Resources/XRDeviceSimulatorSettings.asset create mode 100644 Assets/XRI/Settings/Resources/XRDeviceSimulatorSettings.asset.meta create mode 100644 Assets/XRI/Settings/XRInteractionEditorSettings.asset create mode 100644 Assets/XRI/Settings/XRInteractionEditorSettings.asset.meta create mode 100644 Assets/scene_untitled.unity create mode 100644 Assets/scene_untitled.unity.meta create mode 100644 Packages/manifest.json create mode 100644 Packages/packages-lock.json create mode 100644 ProjectSettings/AudioManager.asset create mode 100644 ProjectSettings/BurstAotSettings_Android.json create mode 100644 ProjectSettings/BurstAotSettings_StandaloneWindows.json create mode 100644 ProjectSettings/ClusterInputManager.asset create mode 100644 ProjectSettings/CommonBurstAotSettings.json create mode 100644 ProjectSettings/DynamicsManager.asset create mode 100644 ProjectSettings/EditorBuildSettings.asset create mode 100644 ProjectSettings/EditorSettings.asset create mode 100644 ProjectSettings/GraphicsSettings.asset create mode 100644 ProjectSettings/InputManager.asset create mode 100644 ProjectSettings/MemorySettings.asset create mode 100644 ProjectSettings/NavMeshAreas.asset create mode 100644 ProjectSettings/PackageManagerSettings.asset create mode 100644 ProjectSettings/Packages/com.unity.learn.iet-framework/Settings.json create mode 100644 ProjectSettings/Packages/com.unity.testtools.codecoverage/Settings.json create mode 100644 ProjectSettings/Physics2DSettings.asset create mode 100644 ProjectSettings/PresetManager.asset create mode 100644 ProjectSettings/ProjectSettings.asset create mode 100644 ProjectSettings/ProjectVersion.txt create mode 100644 ProjectSettings/QualitySettings.asset create mode 100644 ProjectSettings/SceneTemplateSettings.json create mode 100644 ProjectSettings/ShaderGraphSettings.asset create mode 100644 ProjectSettings/TagManager.asset create mode 100644 ProjectSettings/TimeManager.asset create mode 100644 ProjectSettings/TimelineSettings.asset create mode 100644 ProjectSettings/URPProjectSettings.asset create mode 100644 ProjectSettings/UnityConnectSettings.asset create mode 100644 ProjectSettings/VFXManager.asset create mode 100644 ProjectSettings/VersionControlSettings.asset create mode 100644 ProjectSettings/XRPackageSettings.asset create mode 100644 ProjectSettings/XRSettings.asset create mode 100644 README.md create mode 100644 TETRA.txt create mode 100644 UpgradeLog.htm create mode 100644 ignore.conf diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 0000000..ddb6ff8 --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,5 @@ +{ + "recommendations": [ + "visualstudiotoolsforunity.vstuc" + ] +} diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..da60e25 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,10 @@ +{ + "version": "0.2.0", + "configurations": [ + { + "name": "Attach to Unity", + "type": "vstuc", + "request": "attach" + } + ] +} \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..a556466 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,55 @@ +{ + "files.exclude": { + "**/.DS_Store": true, + "**/.git": true, + "**/.gitmodules": true, + "**/*.booproj": true, + "**/*.pidb": true, + "**/*.suo": true, + "**/*.user": true, + "**/*.userprefs": true, + "**/*.unityproj": true, + "**/*.dll": true, + "**/*.exe": true, + "**/*.pdf": true, + "**/*.mid": true, + "**/*.midi": true, + "**/*.wav": true, + "**/*.gif": true, + "**/*.ico": true, + "**/*.jpg": true, + "**/*.jpeg": true, + "**/*.png": true, + "**/*.psd": true, + "**/*.tga": true, + "**/*.tif": true, + "**/*.tiff": true, + "**/*.3ds": true, + "**/*.3DS": true, + "**/*.fbx": true, + "**/*.FBX": true, + "**/*.lxo": true, + "**/*.LXO": true, + "**/*.ma": true, + "**/*.MA": true, + "**/*.obj": true, + "**/*.OBJ": true, + "**/*.asset": true, + "**/*.cubemap": true, + "**/*.flare": true, + "**/*.mat": true, + "**/*.meta": true, + "**/*.prefab": true, + "**/*.unity": true, + "build/": true, + "Build/": true, + "Library/": true, + "library/": true, + "obj/": true, + "Obj/": true, + "ProjectSettings/": true, + "temp/": true, + "Temp/": true + }, + "dotnet.defaultSolution": "szakdolgozat.sln" +} \ No newline at end of file diff --git a/.vsconfig b/.vsconfig new file mode 100644 index 0000000..f019fd0 --- /dev/null +++ b/.vsconfig @@ -0,0 +1,6 @@ +{ + "version": "1.0", + "components": [ + "Microsoft.VisualStudio.Workload.ManagedGame" + ] +} diff --git a/Assets/BlockSide.prefab b/Assets/BlockSide.prefab new file mode 100644 index 0000000..f9631fa --- /dev/null +++ b/Assets/BlockSide.prefab @@ -0,0 +1,328 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &4336518853162009200 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7933363895158644391} + - component: {fileID: 4859743426618576634} + - component: {fileID: 3049391561944566963} + - component: {fileID: 6325516762649591782} + - component: {fileID: 7790402254797646519} + - component: {fileID: 6681358294109604166} + - component: {fileID: 2131982098473261947} + - component: {fileID: 2684576866006412536} + m_Layer: 0 + m_Name: BlockSide + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &7933363895158644391 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4336518853162009200} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1.21, y: 0.2525534, z: 3.7599} + m_LocalScale: {x: 0.05, y: 0.05, z: 0.05} + m_ConstrainProportionsScale: 1 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &4859743426618576634 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4336518853162009200} + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &3049391561944566963 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4336518853162009200} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + 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: 2100000, guid: c07dd69158c788946aa2d944960f264d, 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!64 &6325516762649591782 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4336518853162009200} + 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: 0 + m_CookingOptions: 30 + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!54 &7790402254797646519 +Rigidbody: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4336518853162009200} + serializedVersion: 4 + m_Mass: 1 + m_Drag: 0 + m_AngularDrag: 0.05 + m_CenterOfMass: {x: 0, y: 0, z: 0} + m_InertiaTensor: {x: 1, y: 1, z: 1} + m_InertiaRotation: {x: 0, y: 0, z: 0, w: 1} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ImplicitCom: 1 + m_ImplicitTensor: 1 + m_UseGravity: 0 + m_IsKinematic: 1 + m_Interpolate: 0 + m_Constraints: 112 + m_CollisionDetection: 0 +--- !u!114 &6681358294109604166 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4336518853162009200} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0ad34abafad169848a38072baa96cdb2, type: 3} + m_Name: + m_EditorClassIdentifier: + m_InteractionManager: {fileID: 0} + m_Colliders: [] + m_InteractionLayerMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_InteractionLayers: + m_Bits: 1 + m_DistanceCalculationMode: 1 + m_SelectMode: 0 + m_FocusMode: 1 + m_CustomReticle: {fileID: 0} + m_AllowGazeInteraction: 0 + m_AllowGazeSelect: 0 + m_OverrideGazeTimeToSelect: 0 + m_GazeTimeToSelect: 0.5 + m_OverrideTimeToAutoDeselectGaze: 0 + m_TimeToAutoDeselectGaze: 3 + m_AllowGazeAssistance: 0 + m_FirstHoverEntered: + m_PersistentCalls: + m_Calls: [] + m_LastHoverExited: + m_PersistentCalls: + m_Calls: [] + m_HoverEntered: + m_PersistentCalls: + m_Calls: [] + m_HoverExited: + m_PersistentCalls: + m_Calls: [] + m_FirstSelectEntered: + m_PersistentCalls: + m_Calls: [] + m_LastSelectExited: + m_PersistentCalls: + m_Calls: [] + m_SelectEntered: + m_PersistentCalls: + m_Calls: [] + m_SelectExited: + m_PersistentCalls: + m_Calls: [] + m_FirstFocusEntered: + m_PersistentCalls: + m_Calls: [] + m_LastFocusExited: + m_PersistentCalls: + m_Calls: [] + m_FocusEntered: + m_PersistentCalls: + m_Calls: [] + m_FocusExited: + m_PersistentCalls: + m_Calls: [] + m_Activated: + m_PersistentCalls: + m_Calls: [] + m_Deactivated: + m_PersistentCalls: + m_Calls: [] + m_StartingHoverFilters: [] + m_StartingSelectFilters: [] + m_StartingInteractionStrengthFilters: [] + m_OnFirstHoverEntered: + m_PersistentCalls: + m_Calls: [] + m_OnLastHoverExited: + m_PersistentCalls: + m_Calls: [] + m_OnHoverEntered: + m_PersistentCalls: + m_Calls: [] + m_OnHoverExited: + m_PersistentCalls: + m_Calls: [] + m_OnSelectEntered: + m_PersistentCalls: + m_Calls: [] + m_OnSelectExited: + m_PersistentCalls: + m_Calls: [] + m_OnSelectCanceled: + m_PersistentCalls: + m_Calls: [] + m_OnActivate: + m_PersistentCalls: + m_Calls: [] + m_OnDeactivate: + m_PersistentCalls: + m_Calls: [] + m_AttachTransform: {fileID: 0} + m_SecondaryAttachTransform: {fileID: 0} + m_UseDynamicAttach: 0 + m_MatchAttachPosition: 1 + m_MatchAttachRotation: 1 + m_SnapToColliderVolume: 1 + m_ReinitializeDynamicAttachEverySingleGrab: 1 + m_AttachEaseInTime: 0.15 + m_MovementType: 1 + m_VelocityDamping: 1 + m_VelocityScale: 1 + m_AngularVelocityDamping: 1 + m_AngularVelocityScale: 1 + m_TrackPosition: 1 + m_SmoothPosition: 1 + m_SmoothPositionAmount: 8 + m_TightenPosition: 0.1 + m_TrackRotation: 0 + m_SmoothRotation: 0 + m_SmoothRotationAmount: 8 + m_TightenRotation: 0.1 + m_TrackScale: 0 + m_SmoothScale: 0 + m_SmoothScaleAmount: 8 + m_TightenScale: 0.1 + m_ThrowOnDetach: 0 + m_ThrowSmoothingDuration: 0.25 + m_ThrowSmoothingCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_ThrowVelocityScale: 1.5 + m_ThrowAngularVelocityScale: 1 + m_ForceGravityOnDetach: 0 + m_RetainTransformParent: 1 + m_AttachPointCompatibilityMode: 0 + m_StartingSingleGrabTransformers: [] + m_StartingMultipleGrabTransformers: [] + m_AddDefaultGrabTransformers: 1 +--- !u!114 &2131982098473261947 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4336518853162009200} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0a1302d0d134fa8a2a5b3bf4aec3c20, type: 3} + m_Name: + m_EditorClassIdentifier: + m_PermittedDisplacementAxes: -1 + m_ConstrainedAxisDisplacementMode: 1 + m_TwoHandedRotationMode: 1 + m_AllowOneHandedScaling: 1 + m_AllowTwoHandedScaling: 0 + m_OneHandedScaleSpeed: 0.5 + m_ThresholdMoveRatioForScale: 0.05 + m_ClampScaling: 1 + m_MinimumScaleRatio: 0.25 + m_MaximumScaleRatio: 2 + m_ScaleMultiplier: 0.25 +--- !u!114 &2684576866006412536 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4336518853162009200} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 98b85445213936746822c3b05e91cac9, type: 3} + m_Name: + m_EditorClassIdentifier: + parentBlockDeform: {fileID: 0} + normal: {x: 0, y: 0, z: 0} diff --git a/Assets/BlockSide.prefab.meta b/Assets/BlockSide.prefab.meta new file mode 100644 index 0000000..cc22869 --- /dev/null +++ b/Assets/BlockSide.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: a8cb4e31c32938946b7351585af6bc07 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Editor.meta b/Assets/Editor.meta new file mode 100644 index 0000000..7627a56 --- /dev/null +++ b/Assets/Editor.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 42b924c4430261c4c94a27a4d8745e9f +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Editor/pointCloudManagerWindow.cs b/Assets/Editor/pointCloudManagerWindow.cs new file mode 100644 index 0000000..4e9ac28 --- /dev/null +++ b/Assets/Editor/pointCloudManagerWindow.cs @@ -0,0 +1,479 @@ +//#define BENCHMARK +//#define ALTERNATIVE_LOAD +//#define ADVANCED_SETTINGS +//#define POINT_IN_SPHERE_TEST + +using UnityEditor; +using UnityEngine; +using System.Collections.Generic; +using UnityEditor.SceneManagement; +using System.IO; +using System; +using System.Collections; +using System.Runtime.InteropServices; + +public class pointCloudManagerWindow : EditorWindow +{ +#if ADVANCED_SETTINGS + private bool frustumCulling = false; + private bool LODSystemActive = false; +#endif // ADVANCED_SETTINGS + +#if BENCHMARK + private float FPS; + private float escapedTime; + private List<float> FPSvalues; + private bool benchmarkActive = false; + + private bool playModeWasInitByWindow = false; + private string PrevScene; + private bool benchmarkFinishedLoadPrevScene = false; +#endif // BENCHMARK + +#if ALTERNATIVE_LOAD + private DirectoryInfo currentDirectory = null; + private List<FileInfo> fileList = new List<FileInfo>(); +#endif // ALTERNATIVE_LOAD + +#if POINT_IN_SPHERE_TEST + private bool downScale = true; + private float sizeDifference = 0.0f; + private float workingRange = 0.0f; + private bool pointInRange = false; + private bool pointInRangeLastStep = false; + private float lastScaleWithPoints = 0.0f; +#endif // POINT_IN_SPHERE_TEST + + private static bool outliersSearch = false; + private static int tempMinNeigboars = 5; + private static float tempNeigboarsDistance = 5.0f; + + [DllImport("PointCloudPlugin")] + private static extern void updateCamera(IntPtr worldMatrix, IntPtr projectionMatrix); + [DllImport("PointCloudPlugin")] + static public extern bool updateWorldMatrix(IntPtr worldMatrix, IntPtr pointCloudID); + [DllImport("PointCloudPlugin")] + private static extern IntPtr GetRenderEventFunc(); + + [MenuItem("Hydrographic Toolkit/Point cloud manager")] + public static void ShowWindow() + { + GetWindow(typeof(pointCloudManagerWindow)); + } + + pointCloud[] getPointCloudsInScene() + { + pointCloud[] pointClouds = (pointCloud[])GameObject.FindObjectsOfType(typeof(pointCloud)); + return pointClouds; + } + + private string OpenLAZFileDialog() + { + string currentFile = EditorUtility.OpenFilePanel("Choose file", "", "laz,las,cpc"); + if (currentFile == "") + return currentFile; + pointCloudManager.loadLAZFile(currentFile); + + return currentFile; + } + + private void SaveLAZFileDialog(string pointCloudID, string defaultName) + { + string saveToFile = EditorUtility.SaveFilePanel("Save to", "", defaultName, "laz"); + if (saveToFile == "") + return; + + pointCloudManager.SaveLAZFile(saveToFile, pointCloudID); + } + + private void SaveOwnFormatFileDialog(string pointCloudID, string defaultName) + { + string saveToFile = EditorUtility.SaveFilePanel("Save to", "", defaultName, "cpc"); + if (saveToFile == "") + return; + + pointCloudManager.SaveOwnFormatFile(saveToFile, pointCloudID); + } + + private GameObject getPointCloudManagerGameObject() + { + GameObject pointCloudManager = GameObject.Find("pointCloudManager"); + if (pointCloudManager == null) + return null; + + return pointCloudManager; + } + + private void createPointCloudManagerGameObject() + { + GameObject pointCloudManager = new GameObject("pointCloudManager"); + + MonoScript script = Resources.Load<MonoScript>("CCOM/PointCloud/Scripts/pointCloudManager"); + ScriptableObject myCommonClass = ScriptableObject.CreateInstance(script.GetClass()) as ScriptableObject; + pointCloudManager.AddComponent(myCommonClass.GetType()); + } + + bool firstFrame = true; + + void Update() + { + if (firstFrame) + { + firstFrame = false; + pointCloudManager.OnSceneStart(); + + Camera.onPostRender -= pointCloudManager.OnPostRenderCallback; + Camera.onPostRender += pointCloudManager.OnPostRenderCallback; + + EditorSceneManager.sceneSaved -= pointCloudManager.OnSceneSaveCallback; + EditorSceneManager.sceneSaved += pointCloudManager.OnSceneSaveCallback; +#if ALTERNATIVE_LOAD + updateFileList(); +#endif // ALTERNATIVE_LOAD + +#if BENCHMARK + benchmarkActive = false; +#endif // BENCHMARK + } + + pointCloudManager.checkIsAsyncLoadFinished(); + + if (getPointCloudManagerGameObject() == null) + createPointCloudManagerGameObject(); + +#if BENCHMARK + if (!benchmarkActive && benchmarkFinishedLoadPrevScene && !EditorApplication.isPlaying) + { + benchmarkFinishedLoadPrevScene = false; + EditorSceneManager.OpenScene(PrevScene/*"Assets/Scenes/BenchmarkScene0.unity"*/); + } + + if (benchmarkActive && !EditorApplication.isPlaying && !playModeWasInitByWindow) + { + escapedTime = 0; + benchmarkActive = false; + } + + if (benchmarkActive && !pointCloudManager.isWaitingToLoad && pointCloudManager.isReInitializationObjectsAsyncEmpty()) + escapedTime += Time.unscaledDeltaTime; +#endif // BENCHMARK + } + +#if BENCHMARK + static bool loadStarted = false; +#endif // BENCHMARK + + + void OnInspectorUpdate() + { +#if BENCHMARK + if (pointCloudManager.isWaitingToLoad) + loadStarted = true; + + if (!benchmarkActive || pointCloudManager.isWaitingToLoad || !pointCloudManager.isReInitializationObjectsAsyncEmpty()) + return; + + if (!Camera.main.GetComponent<Animator>().enabled && loadStarted) + { + loadStarted = false; + Camera.main.GetComponent<Animator>().enabled = true; + Camera.main.GetComponent<Animator>().Play("BenchmarkAnimation", -1, 0f); + Camera.main.GetComponent<Animator>().SetBool("BenchmarkAnimation", true); + } + + if (benchmarkActive && Camera.main.GetComponent<Animator>().GetCurrentAnimatorStateInfo(0).normalizedTime > 1 && !Camera.main.GetComponent<Animator>().IsInTransition(0)) + { + escapedTime = 0; + benchmarkActive = false; + Camera.main.GetComponent<Animator>().enabled = false; + playModeWasInitByWindow = false; + + float totalFPS = 0.0f; + for (int i = 0; i < FPSvalues.Count; i++) + { + totalFPS += FPSvalues[i]; + } + + Debug.Log("avarage fps: " + totalFPS / FPSvalues.Count); + + EditorApplication.isPlaying = false; + benchmarkFinishedLoadPrevScene = true; + //SceneManager.LoadScene("Assets/Scenes/BenchmarkScene0.unity", LoadSceneMode.Single); + //EditorSceneManager.OpenScene("Assets/Scenes/BenchmarkScene0.unity"); + } + + FPS = 1.0f / Time.unscaledDeltaTime; + FPSvalues.Add(FPS); + if (FPSvalues.Count > 10000) + FPSvalues.Clear(); +#endif // BENCHMARK + Repaint(); + } + + static int indexSelected; + + void OnGUI() + { +#if BENCHMARK + GUILayout.Label("FPS: " + FPS); + GUILayout.Label("Escaped time: " + escapedTime); + + if (EditorApplication.isPlaying) + { + GUI.enabled = false; + } + + if (GUILayout.Button("Lunch benchmark")) + { + if (FPSvalues == null) + FPSvalues = new List<float>(); + + FPSvalues.Clear(); + escapedTime = 0; + + PrevScene = EditorSceneManager.GetActiveScene().path; + EditorSceneManager.OpenScene("Assets/Scenes/BenchmarkScene1.unity"); + + //Camera.main.GetComponent<Animator>().enabled = true; + //Camera.main.GetComponent<Animator>().Play("BenchmarkAnimation", -1, 0f); + //Camera.main.GetComponent<Animator>().SetBool("BenchmarkAnimation", true); + + // Only in play mode + //SceneManager.LoadScene("BenchmarkScene0", LoadSceneMode.Additive); + + benchmarkActive = true; + if (EditorApplication.isPlaying == false) + { + playModeWasInitByWindow = true; + EditorApplication.isPlaying = true; + } + + } + GUI.enabled = true; +#endif // BENCHMARK + + if (pointCloudManager.isWaitingToLoad) + GUI.enabled = false; + + if (GUILayout.Button("Import LAZ file")) + OpenLAZFileDialog(); + + GUI.enabled = true; + + pointCloud[] pointClouds = (pointCloud[])GameObject.FindObjectsOfType(typeof(pointCloud)); + if (pointClouds.Length > 0) + { + string[] availableIndexes = new string[pointClouds.Length]; + + if (indexSelected >= 0 && indexSelected < pointClouds.Length && pointClouds[indexSelected].UTMZone == 0 && !pointClouds[indexSelected].North) + { + GUILayout.Label("UTMZone : Information about UTMZone was not found"); + } + else + { + GUILayout.Label("UTMZone : " + pointClouds[indexSelected].UTMZone + (pointClouds[indexSelected].North ? "N" : "S")); + } + + for (int i = 0; i < pointClouds.Length; i++) + { + availableIndexes[i] = pointClouds[i].name; + } + + if (pointClouds.Length != 0) + { + GUILayout.Space(16); + GUILayout.Label("Saving: "); + indexSelected = EditorGUILayout.Popup("Choose file: ", indexSelected, availableIndexes); + + if (GUILayout.Button("Export to LAZ file")) + SaveLAZFileDialog(pointClouds[indexSelected].ID, availableIndexes[indexSelected]); + + if (GUILayout.Button("Export to own file(.cpc) format")) + SaveOwnFormatFileDialog(pointClouds[indexSelected].ID, availableIndexes[indexSelected]); + + if (GUILayout.Button("UnLoad")) + if (pointCloudManager.UnLoad(pointClouds[indexSelected].ID)) + indexSelected = 0; + } + +#if ADVANCED_SETTINGS + frustumCulling = GUILayout.Toggle(frustumCulling, "use frustum culling"); + pointCloudManager.SetFrustumCulling(frustumCulling); + + LODSystemActive = GUILayout.Toggle(LODSystemActive, "use LOD"); + pointCloudManager.SetLODSystemActive(LODSystemActive); + + if (LODSystemActive) + { + for (int j = 0; j < 4; j++) + { + float tempMaxDistance = EditorGUILayout.FloatField("LODs[" + j + "].maxDistance: ", pointCloudManager.LODSettings[j].maxDistance); + float tempTargetPercentOFPoints = EditorGUILayout.FloatField("LODs[" + j + "].targetPercentOFPoints: ", pointCloudManager.LODSettings[j].targetPercentOFPoints); + + if (tempMaxDistance != pointCloudManager.LODSettings[j].maxDistance || + tempTargetPercentOFPoints != pointCloudManager.LODSettings[j].targetPercentOFPoints) + { + pointCloudManager.SetLODInfo(tempMaxDistance, tempTargetPercentOFPoints, j, 0); + pointCloudManager.LODSettings[j].maxDistance = tempMaxDistance; + pointCloudManager.LODSettings[j].targetPercentOFPoints = tempTargetPercentOFPoints; + } + } + } +#endif // ADVANCED_SETTINGS + } + +#if ALTERNATIVE_LOAD + GUILayout.Label("Alternative load : "); + if (currentDirectory == null) + currentDirectory = new DirectoryInfo(Application.dataPath + "//PointClouds"); + + if (!EditorApplication.isPlaying || pointCloudManager.isWaitingToLoad) + { + GUI.enabled = false; + } + + if (GUILayout.Button("Go to parent directory")) + currentDirectory = currentDirectory.Parent; + GUILayout.Label("Current directory: " + currentDirectory.FullName); + + foreach (FileInfo file in fileList) + { + //GUILayout.Button(file.Name); + if (GUILayout.Button(file.Name)) + pointCloudManager.loadLAZFile(currentDirectory.FullName + "//" +file.Name); + } + + GUI.enabled = true; + +#endif // ALTERNATIVE_LOAD + +#if POINT_IN_SPHERE_TEST + if (GUILayout.Button("Test isAtleastOnePointInSphere")) + pointCloudManager.testIsAtleastOnePointInSphere(); + + if (GUILayout.Button("Test search sphere size")) + { + float minDistance = float.MaxValue; + int pointCloudIndex = -1; + for (int i = 0; i < pointCloudManager.pointClouds.Count; i++) + { + float currentDistance = Vector3.Distance(pointCloudManager.getTestSphereGameObject().transform.position, pointCloudManager.pointClouds[i].inSceneRepresentation.transform.position); + if (currentDistance < minDistance) + { + minDistance = currentDistance; + pointCloudIndex = i; + } + } + + // Multiplying by 4 to decrease chance that we will not "caught" any points. + workingRange = minDistance * 4.0f; + pointCloudManager.getTestSphereGameObject().transform.localScale = new Vector3(workingRange, workingRange, workingRange); + downScale = true; + sizeDifference = workingRange / 2.0f; + pointInRange = pointCloudManager.testIsAtleastOnePointInSphere(); + if (pointInRange) + lastScaleWithPoints = workingRange; + + pointInRangeLastStep = pointInRange; + + for (int i = 0; i < 20; i++) + { + workingRange += downScale ? -sizeDifference : sizeDifference; + pointCloudManager.getTestSphereGameObject().transform.localScale = new Vector3(workingRange, workingRange, workingRange); + pointInRange = pointCloudManager.testIsAtleastOnePointInSphere(); + if (pointInRange) + lastScaleWithPoints = workingRange; + + if (pointInRange != pointInRangeLastStep) + { + pointInRangeLastStep = pointInRange; + downScale = !downScale; + sizeDifference = sizeDifference / 2.0f; + } + } + + //Debug.Log("lastScaleWithPoints: " + lastScaleWithPoints / 2.0f); + //Debug.Log("closestPointDistance: " + Vector3.Distance(pointCloudManager.lineToClosestPoint.GetPosition(0), pointCloudManager.lineToClosestPoint.GetPosition(1))); + + //Debug.Log("pointCloudManager.getTestSphereGameObject().transform.position: " + pointCloudManager.getTestSphereGameObject().transform.position); + + //GameObject closestPoint_Fast = pointCloudManager.getPointGameObjectForSearch_Fast(pointCloudManager.getTestSphereGameObject().transform.position, 0.0f/*lastScaleWithPoints / 2.0f*/); + //Debug.Log("closestPointDistance_Fast: " + Vector3.Distance(pointCloudManager.lineToClosestPoint.GetPosition(0), closestPoint_Fast.transform.position)); + //Debug.Log("closestPoint_Fast: " + closestPoint_Fast.transform.position); + } + + pointCloudManager.isLookingForClosestPoint = GUILayout.Toggle(pointCloudManager.isLookingForClosestPoint, "isLookingForClosestPoint"); + if (!pointCloudManager.isLookingForClosestPoint) + { + var tempGameObject = GameObject.Find("PointRepresentation_PointCloudPlugin"); + if (tempGameObject != null) + GameObject.Destroy(tempGameObject); + + tempGameObject = GameObject.Find("lineToClosestPoint_LineRenderer"); + if (tempGameObject != null) + GameObject.Destroy(tempGameObject); + } +#endif // POINT_IN_SPHERE_TEST + + if (pointClouds.Length > 0) + { +#if ADVANCED_SETTINGS + pointCloudManager.highlightDeletedPoints = GUILayout.Toggle(pointCloudManager.highlightDeletedPoints, "Highlight points to delete"); + pointCloudManager.setHighlightDeletedPoints(pointCloudManager.highlightDeletedPoints); +#endif // ADVANCED_SETTINGS + + GUILayout.Space(16); + GUILayout.Label("Outliers: "); + + if (GUILayout.Button("Show outliers")) + { + pointCloudManager.HighlightOutliers(tempNeigboarsDistance, tempMinNeigboars, pointClouds[indexSelected].ID); + } + + if (GUILayout.Button("Delete shown outliers")) + { + pointCloudManager.DeleteOutliers(pointClouds[indexSelected].ID); +#if UNITY_EDITOR + if (!EditorApplication.isPlaying) + EditorSceneManager.MarkSceneDirty(EditorSceneManager.GetActiveScene()); +#endif + } + + outliersSearch = GUILayout.Toggle(outliersSearch, "Advanced outliers settings"); + if (outliersSearch) + { + tempMinNeigboars = EditorGUILayout.IntField("Min amount of neigboars: ", tempMinNeigboars); + if (tempMinNeigboars < 1) + tempMinNeigboars = 1; + + tempNeigboarsDistance = EditorGUILayout.FloatField("Max distance of neigboars: ", tempNeigboarsDistance); + if (tempNeigboarsDistance < 0.1f) + tempNeigboarsDistance = 0.1f; + } + + //if (GUILayout.Button("Test closest point algorithms")) + //{ + // pointCloudManager.test_Closest_Point(); + //} + } + +#if ALTERNATIVE_LOAD + timePassed += Time.unscaledDeltaTime; + if (timePassed > 2.0f) + { + timePassed = 0.0f; + updateFileList(); + } +#endif // ALTERNATIVE_LOAD + } + +#if ALTERNATIVE_LOAD + static float timePassed = 0.0f; + void updateFileList() + { + fileList.Clear(); + fileList.AddRange(new List<FileInfo>(currentDirectory.GetFiles("*.las", SearchOption.AllDirectories))); + fileList.AddRange(new List<FileInfo>(currentDirectory.GetFiles("*.laz", SearchOption.AllDirectories))); + } +#endif // ALTERNATIVE_LOAD +} \ No newline at end of file diff --git a/Assets/Editor/pointCloudManagerWindow.cs.meta b/Assets/Editor/pointCloudManagerWindow.cs.meta new file mode 100644 index 0000000..1338610 --- /dev/null +++ b/Assets/Editor/pointCloudManagerWindow.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f44752ad5195cdd428d9464bd96c3333 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Material 1.mat b/Assets/Material 1.mat new file mode 100644 index 0000000..536c372 --- /dev/null +++ b/Assets/Material 1.mat @@ -0,0 +1,135 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 8 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Material 1 + m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 + m_ValidKeywords: [] + m_InvalidKeywords: [] + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: + RenderType: Opaque + disabledShaderPasses: [] + m_LockedProperties: + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BaseMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - _AlphaClip: 0 + - _AlphaToMask: 0 + - _Blend: 0 + - _BlendModePreserveSpecular: 1 + - _BumpScale: 1 + - _ClearCoatMask: 0 + - _ClearCoatSmoothness: 0 + - _Cull: 2 + - _Cutoff: 0.5 + - _DetailAlbedoMapScale: 1 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _DstBlendAlpha: 0 + - _EnvironmentReflections: 1 + - _GlossMapScale: 1 + - _Glossiness: 0.59999996 + - _GlossyReflections: 1 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _QueueOffset: 0 + - _ReceiveShadows: 1 + - _Smoothness: 0.08 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _SrcBlendAlpha: 1 + - _Surface: 0 + - _UVSec: 0 + - _WorkflowMode: 1 + - _ZWrite: 1 + m_Colors: + - _BaseColor: {r: 0.36645603, g: 0.5754717, b: 0.4824843, a: 1} + - _Color: {r: 0.366456, g: 0.57547164, b: 0.48248428, a: 1} + - _EmissionColor: {r: 0.18867922, g: 0.11836951, b: 0.11836951, a: 1} + - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} + m_BuildTextureStacks: [] +--- !u!114 &5421862830262011974 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 7 diff --git a/Assets/Material 1.mat.meta b/Assets/Material 1.mat.meta new file mode 100644 index 0000000..ddb81d1 --- /dev/null +++ b/Assets/Material 1.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f7d23c7a57a992c4282494782cba5215 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Material 2.mat b/Assets/Material 2.mat new file mode 100644 index 0000000..de24a1f --- /dev/null +++ b/Assets/Material 2.mat @@ -0,0 +1,135 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-2687682194335996857 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 7 +--- !u!21 &2100000 +Material: + serializedVersion: 8 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Material 2 + m_Shader: {fileID: -6465566751694194690, guid: d8ca8534cb652cf4e84056ecf49a2973, type: 3} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 + m_ValidKeywords: [] + m_InvalidKeywords: [] + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_LockedProperties: + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BaseMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - _AlphaClip: 0 + - _AlphaToMask: 0 + - _Blend: 0 + - _BlendModePreserveSpecular: 1 + - _BumpScale: 1 + - _ClearCoatMask: 0 + - _ClearCoatSmoothness: 0 + - _Cull: 2 + - _Cutoff: 0.5 + - _DetailAlbedoMapScale: 1 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _DstBlendAlpha: 0 + - _EnvironmentReflections: 1 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossyReflections: 1 + - _Metallic: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _QueueControl: 0 + - _QueueOffset: 0 + - _ReceiveShadows: 1 + - _Saturation: 0 + - _Smoothness: 0.5 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _SrcBlendAlpha: 1 + - _Surface: 0 + - _WorkflowMode: 1 + - _ZWrite: 1 + - _isLinear: 1 + m_Colors: + - _BaseColor: {r: 0.9063317, g: 0.9063317, b: 0.9063317, a: 1} + - _Color: {r: 0.9063317, g: 0.9063317, b: 0.9063317, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 0} + - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} + m_BuildTextureStacks: [] diff --git a/Assets/Material 2.mat.meta b/Assets/Material 2.mat.meta new file mode 100644 index 0000000..7982a07 --- /dev/null +++ b/Assets/Material 2.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1fa216249ca2c7b45a99051e976ff78f +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Material.mat b/Assets/Material.mat new file mode 100644 index 0000000..d926dc8 --- /dev/null +++ b/Assets/Material.mat @@ -0,0 +1,136 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 8 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Material + m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 + m_ValidKeywords: + - _SPECULAR_SETUP + m_InvalidKeywords: [] + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 1 + m_CustomRenderQueue: 2000 + stringTagMap: + RenderType: Opaque + disabledShaderPasses: [] + m_LockedProperties: + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BaseMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - _AlphaClip: 0 + - _AlphaToMask: 0 + - _Blend: 0 + - _BlendModePreserveSpecular: 1 + - _BumpScale: 1 + - _ClearCoatMask: 0 + - _ClearCoatSmoothness: 0 + - _Cull: 0 + - _Cutoff: 0.5 + - _DetailAlbedoMapScale: 1 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _DstBlendAlpha: 0 + - _EnvironmentReflections: 1 + - _GlossMapScale: 1 + - _Glossiness: 0.59999996 + - _GlossyReflections: 1 + - _Metallic: 0.8 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _QueueOffset: 0 + - _ReceiveShadows: 1 + - _Smoothness: 0.21 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _SrcBlendAlpha: 1 + - _Surface: 0 + - _UVSec: 0 + - _WorkflowMode: 0 + - _ZWrite: 1 + m_Colors: + - _BaseColor: {r: 1, g: 0.7123975, b: 0.25943398, a: 1} + - _Color: {r: 1, g: 0.7123975, b: 0.25943395, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} + m_BuildTextureStacks: [] +--- !u!114 &6375859116489248015 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 7 diff --git a/Assets/Material.mat.meta b/Assets/Material.mat.meta new file mode 100644 index 0000000..d79f3fc --- /dev/null +++ b/Assets/Material.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c07dd69158c788946aa2d944960f264d +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Models.meta b/Assets/Models.meta new file mode 100644 index 0000000..4ebfb52 --- /dev/null +++ b/Assets/Models.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 4eb8bb3c3a2d3e44e8f7ff0e2308edae +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Models/bjorka_from_tetra.fbx b/Assets/Models/bjorka_from_tetra.fbx new file mode 100644 index 0000000..10ef701 --- /dev/null +++ b/Assets/Models/bjorka_from_tetra.fbx @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:086cf7707ba1d454c8928a53548f80ef931aec801fe5ba0faa37652f2bf2a240 +size 296129436 diff --git a/Assets/Models/bjorka_from_tetra.fbx.meta b/Assets/Models/bjorka_from_tetra.fbx.meta new file mode 100644 index 0000000..c04fdbe --- /dev/null +++ b/Assets/Models/bjorka_from_tetra.fbx.meta @@ -0,0 +1,114 @@ +fileFormatVersion: 2 +guid: da7215fc737ba47489f5c28303aa0d81 +ModelImporter: + serializedVersion: 22200 + internalIDToNameTable: [] + externalObjects: + - first: + type: UnityEngine:Material + assembly: UnityEngine.CoreModule + name: Material + second: {fileID: 2100000, guid: f7d23c7a57a992c4282494782cba5215, type: 2} + materials: + materialImportMode: 2 + materialName: 0 + materialSearch: 1 + materialLocation: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + resampleCurves: 1 + optimizeGameObjects: 0 + removeConstantScaleCurves: 0 + motionNodeName: + rigImportErrors: + rigImportWarnings: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + importAnimatedCustomProperties: 0 + importConstraints: 0 + animationCompression: 1 + animationRotationError: 0.5 + animationPositionError: 0.5 + animationScaleError: 0.5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + extraUserProperties: [] + clipAnimations: [] + isReadable: 0 + meshes: + lODScreenPercentages: [] + globalScale: 1 + meshCompression: 0 + addColliders: 0 + useSRGBMaterialColor: 1 + sortHierarchyByName: 1 + importPhysicalCameras: 1 + importVisibility: 1 + importBlendShapes: 1 + importCameras: 1 + importLights: 1 + nodeNameCollisionStrategy: 1 + fileIdsGeneration: 2 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + keepQuads: 0 + weldVertices: 1 + bakeAxisConversion: 0 + preserveHierarchy: 0 + skinWeightsMode: 0 + maxBonesPerVertex: 4 + minBoneWeight: 0.001 + optimizeBones: 1 + meshOptimizationFlags: -1 + indexFormat: 0 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVMarginMethod: 1 + secondaryUVMinLightmapResolution: 40 + secondaryUVMinObjectScale: 1 + secondaryUVPackMargin: 4 + useFileScale: 1 + strictVertexDataChecks: 0 + tangentSpace: + normalSmoothAngle: 60 + normalImportMode: 0 + tangentImportMode: 3 + normalCalculationMode: 4 + legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0 + blendShapeNormalImportMode: 1 + normalSmoothingSource: 0 + referencedClips: [] + importAnimation: 1 + humanDescription: + serializedVersion: 3 + human: [] + skeleton: [] + armTwist: 0.5 + foreArmTwist: 0.5 + upperLegTwist: 0.5 + legTwist: 0.5 + armStretch: 0.05 + legStretch: 0.05 + feetSpacing: 0 + globalScale: 1 + rootMotionBoneName: + hasTranslationDoF: 0 + hasExtraRoot: 0 + skeletonHasParents: 1 + lastHumanDescriptionAvatarSource: {instanceID: 0} + autoGenerateAvatarMappingIfUnspecified: 1 + animationType: 2 + humanoidOversampling: 1 + avatarSetup: 0 + addHumanoidExtraRootOnlyWhenUsingAvatar: 1 + importBlendShapeDeformPercent: 1 + remapMaterialsIfMaterialImportModeIsNone: 0 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Models/linear_colorspace_bjorka.fbx b/Assets/Models/linear_colorspace_bjorka.fbx new file mode 100644 index 0000000..0951128 --- /dev/null +++ b/Assets/Models/linear_colorspace_bjorka.fbx @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7931b7e340a864a0f73443a08a3949e96dd204bad7eb8b8a35084b76fe988f1f +size 268220668 diff --git a/Assets/Models/linear_colorspace_bjorka.fbx.meta b/Assets/Models/linear_colorspace_bjorka.fbx.meta new file mode 100644 index 0000000..4ad1451 --- /dev/null +++ b/Assets/Models/linear_colorspace_bjorka.fbx.meta @@ -0,0 +1,109 @@ +fileFormatVersion: 2 +guid: 4bd416c6d1b9cbe45b37d5ce64fb3b5a +ModelImporter: + serializedVersion: 22200 + internalIDToNameTable: [] + externalObjects: {} + materials: + materialImportMode: 2 + materialName: 0 + materialSearch: 1 + materialLocation: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + resampleCurves: 1 + optimizeGameObjects: 0 + removeConstantScaleCurves: 0 + motionNodeName: + rigImportErrors: + rigImportWarnings: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + importAnimatedCustomProperties: 0 + importConstraints: 0 + animationCompression: 1 + animationRotationError: 0.5 + animationPositionError: 0.5 + animationScaleError: 0.5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + extraUserProperties: [] + clipAnimations: [] + isReadable: 0 + meshes: + lODScreenPercentages: [] + globalScale: 1 + meshCompression: 0 + addColliders: 0 + useSRGBMaterialColor: 1 + sortHierarchyByName: 1 + importPhysicalCameras: 1 + importVisibility: 1 + importBlendShapes: 1 + importCameras: 1 + importLights: 1 + nodeNameCollisionStrategy: 1 + fileIdsGeneration: 2 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + keepQuads: 0 + weldVertices: 1 + bakeAxisConversion: 0 + preserveHierarchy: 0 + skinWeightsMode: 0 + maxBonesPerVertex: 4 + minBoneWeight: 0.001 + optimizeBones: 1 + meshOptimizationFlags: -1 + indexFormat: 0 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVMarginMethod: 1 + secondaryUVMinLightmapResolution: 40 + secondaryUVMinObjectScale: 1 + secondaryUVPackMargin: 4 + useFileScale: 1 + strictVertexDataChecks: 0 + tangentSpace: + normalSmoothAngle: 60 + normalImportMode: 0 + tangentImportMode: 3 + normalCalculationMode: 4 + legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0 + blendShapeNormalImportMode: 1 + normalSmoothingSource: 0 + referencedClips: [] + importAnimation: 1 + humanDescription: + serializedVersion: 3 + human: [] + skeleton: [] + armTwist: 0.5 + foreArmTwist: 0.5 + upperLegTwist: 0.5 + legTwist: 0.5 + armStretch: 0.05 + legStretch: 0.05 + feetSpacing: 0 + globalScale: 1 + rootMotionBoneName: + hasTranslationDoF: 0 + hasExtraRoot: 0 + skeletonHasParents: 1 + lastHumanDescriptionAvatarSource: {instanceID: 0} + autoGenerateAvatarMappingIfUnspecified: 1 + animationType: 2 + humanoidOversampling: 1 + avatarSetup: 0 + addHumanoidExtraRootOnlyWhenUsingAvatar: 1 + importBlendShapeDeformPercent: 1 + remapMaterialsIfMaterialImportModeIsNone: 0 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Models/tetrahedron_downsampled_trafo.fbx b/Assets/Models/tetrahedron_downsampled_trafo.fbx new file mode 100644 index 0000000..433566a --- /dev/null +++ b/Assets/Models/tetrahedron_downsampled_trafo.fbx @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1f2b809037064893f9007d18c267bda34f48e19678a09dfd218864c5c825afc3 +size 2327292 diff --git a/Assets/Models/tetrahedron_downsampled_trafo.fbx.meta b/Assets/Models/tetrahedron_downsampled_trafo.fbx.meta new file mode 100644 index 0000000..990c382 --- /dev/null +++ b/Assets/Models/tetrahedron_downsampled_trafo.fbx.meta @@ -0,0 +1,114 @@ +fileFormatVersion: 2 +guid: 1d38bbb85fb049347b6bf6b167e94d22 +ModelImporter: + serializedVersion: 22200 + internalIDToNameTable: [] + externalObjects: + - first: + type: UnityEngine:Material + assembly: UnityEngine.CoreModule + name: Material + second: {fileID: 2100000, guid: 1fa216249ca2c7b45a99051e976ff78f, type: 2} + materials: + materialImportMode: 2 + materialName: 0 + materialSearch: 1 + materialLocation: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + resampleCurves: 1 + optimizeGameObjects: 0 + removeConstantScaleCurves: 0 + motionNodeName: + rigImportErrors: + rigImportWarnings: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + importAnimatedCustomProperties: 0 + importConstraints: 0 + animationCompression: 1 + animationRotationError: 0.5 + animationPositionError: 0.5 + animationScaleError: 0.5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + extraUserProperties: [] + clipAnimations: [] + isReadable: 0 + meshes: + lODScreenPercentages: [] + globalScale: 1 + meshCompression: 0 + addColliders: 0 + useSRGBMaterialColor: 1 + sortHierarchyByName: 1 + importPhysicalCameras: 1 + importVisibility: 1 + importBlendShapes: 1 + importCameras: 1 + importLights: 1 + nodeNameCollisionStrategy: 1 + fileIdsGeneration: 2 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + keepQuads: 0 + weldVertices: 1 + bakeAxisConversion: 0 + preserveHierarchy: 0 + skinWeightsMode: 0 + maxBonesPerVertex: 4 + minBoneWeight: 0.001 + optimizeBones: 1 + meshOptimizationFlags: -1 + indexFormat: 0 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVMarginMethod: 1 + secondaryUVMinLightmapResolution: 40 + secondaryUVMinObjectScale: 1 + secondaryUVPackMargin: 4 + useFileScale: 1 + strictVertexDataChecks: 0 + tangentSpace: + normalSmoothAngle: 60 + normalImportMode: 0 + tangentImportMode: 3 + normalCalculationMode: 4 + legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0 + blendShapeNormalImportMode: 1 + normalSmoothingSource: 0 + referencedClips: [] + importAnimation: 1 + humanDescription: + serializedVersion: 3 + human: [] + skeleton: [] + armTwist: 0.5 + foreArmTwist: 0.5 + upperLegTwist: 0.5 + legTwist: 0.5 + armStretch: 0.05 + legStretch: 0.05 + feetSpacing: 0 + globalScale: 1 + rootMotionBoneName: + hasTranslationDoF: 0 + hasExtraRoot: 0 + skeletonHasParents: 1 + lastHumanDescriptionAvatarSource: {instanceID: 0} + autoGenerateAvatarMappingIfUnspecified: 1 + animationType: 2 + humanoidOversampling: 1 + avatarSetup: 0 + addHumanoidExtraRootOnlyWhenUsingAvatar: 1 + importBlendShapeDeformPercent: 1 + remapMaterialsIfMaterialImportModeIsNone: 0 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Models/vertex-cube.fbx b/Assets/Models/vertex-cube.fbx new file mode 100644 index 0000000..6684aa8 --- /dev/null +++ b/Assets/Models/vertex-cube.fbx @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1b311a2f03798873d35cf8d781df9f2ef14d6a8cebb50bb94edda39db7f69461 +size 15484 diff --git a/Assets/Models/vertex-cube.fbx.meta b/Assets/Models/vertex-cube.fbx.meta new file mode 100644 index 0000000..679502a --- /dev/null +++ b/Assets/Models/vertex-cube.fbx.meta @@ -0,0 +1,114 @@ +fileFormatVersion: 2 +guid: 7f215f4ac47cb93459a4b8dc0e41bd6d +ModelImporter: + serializedVersion: 22200 + internalIDToNameTable: [] + externalObjects: + - first: + type: UnityEngine:Material + assembly: UnityEngine.CoreModule + name: Material + second: {fileID: 2100000, guid: 0ef4dd19062dfca4bb226f6c4d6b7b29, type: 2} + materials: + materialImportMode: 1 + materialName: 0 + materialSearch: 1 + materialLocation: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + resampleCurves: 1 + optimizeGameObjects: 0 + removeConstantScaleCurves: 0 + motionNodeName: + rigImportErrors: + rigImportWarnings: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + importAnimatedCustomProperties: 0 + importConstraints: 0 + animationCompression: 1 + animationRotationError: 0.5 + animationPositionError: 0.5 + animationScaleError: 0.5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + extraUserProperties: [] + clipAnimations: [] + isReadable: 0 + meshes: + lODScreenPercentages: [] + globalScale: 1 + meshCompression: 0 + addColliders: 0 + useSRGBMaterialColor: 0 + sortHierarchyByName: 1 + importPhysicalCameras: 1 + importVisibility: 1 + importBlendShapes: 1 + importCameras: 1 + importLights: 1 + nodeNameCollisionStrategy: 1 + fileIdsGeneration: 2 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + keepQuads: 0 + weldVertices: 1 + bakeAxisConversion: 0 + preserveHierarchy: 0 + skinWeightsMode: 0 + maxBonesPerVertex: 4 + minBoneWeight: 0.001 + optimizeBones: 1 + meshOptimizationFlags: -1 + indexFormat: 0 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVMarginMethod: 1 + secondaryUVMinLightmapResolution: 40 + secondaryUVMinObjectScale: 1 + secondaryUVPackMargin: 4 + useFileScale: 1 + strictVertexDataChecks: 0 + tangentSpace: + normalSmoothAngle: 60 + normalImportMode: 0 + tangentImportMode: 3 + normalCalculationMode: 4 + legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0 + blendShapeNormalImportMode: 1 + normalSmoothingSource: 0 + referencedClips: [] + importAnimation: 1 + humanDescription: + serializedVersion: 3 + human: [] + skeleton: [] + armTwist: 0.5 + foreArmTwist: 0.5 + upperLegTwist: 0.5 + legTwist: 0.5 + armStretch: 0.05 + legStretch: 0.05 + feetSpacing: 0 + globalScale: 1 + rootMotionBoneName: + hasTranslationDoF: 0 + hasExtraRoot: 0 + skeletonHasParents: 1 + lastHumanDescriptionAvatarSource: {instanceID: 0} + autoGenerateAvatarMappingIfUnspecified: 1 + animationType: 2 + humanoidOversampling: 1 + avatarSetup: 0 + addHumanoidExtraRootOnlyWhenUsingAvatar: 1 + importBlendShapeDeformPercent: 1 + remapMaterialsIfMaterialImportModeIsNone: 0 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Pcx.meta b/Assets/Pcx.meta new file mode 100644 index 0000000..c172e2a --- /dev/null +++ b/Assets/Pcx.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 9aa9463d665a3fa4dbfef7127a35cbf4 +folderAsset: yes +timeCreated: 1508941553 +licenseType: Pro +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Pcx/Editor.meta b/Assets/Pcx/Editor.meta new file mode 100644 index 0000000..2c3efbc --- /dev/null +++ b/Assets/Pcx/Editor.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 1ff2666a12e1c5e4a82171deb16421e3 +folderAsset: yes +timeCreated: 1508991152 +licenseType: Pro +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Pcx/Editor/Default Point.mat b/Assets/Pcx/Editor/Default Point.mat new file mode 100644 index 0000000..b19263b --- /dev/null +++ b/Assets/Pcx/Editor/Default Point.mat @@ -0,0 +1,33 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 8 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Default Point + m_Shader: {fileID: 4800000, guid: 1baec256dca7c1642b87d05510e75a3f, type: 3} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 + m_ValidKeywords: + - _DISTANCE_ON + m_InvalidKeywords: [] + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_LockedProperties: + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: [] + m_Ints: [] + m_Floats: + - _Distance: 1 + - _PointSize: 2 + m_Colors: + - _Tint: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_BuildTextureStacks: [] diff --git a/Assets/Pcx/Editor/Default Point.mat.meta b/Assets/Pcx/Editor/Default Point.mat.meta new file mode 100644 index 0000000..7f1bc5a --- /dev/null +++ b/Assets/Pcx/Editor/Default Point.mat.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 068f66693b9c4b64b8fe01cf78ce88f6 +timeCreated: 1509200963 +licenseType: Pro +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Pcx/Editor/MaterialInspector.cs b/Assets/Pcx/Editor/MaterialInspector.cs new file mode 100644 index 0000000..98bea34 --- /dev/null +++ b/Assets/Pcx/Editor/MaterialInspector.cs @@ -0,0 +1,32 @@ +// Pcx - Point cloud importer & renderer for Unity +// https://github.com/keijiro/Pcx + +using UnityEngine; +using UnityEditor; + +namespace Pcx +{ + class PointMaterialInspector : ShaderGUI + { + public override void OnGUI(MaterialEditor editor, MaterialProperty[] props) + { + editor.ShaderProperty(FindProperty("_Tint", props), "Tint"); + editor.ShaderProperty(FindProperty("_PointSize", props), "Point Size"); + editor.ShaderProperty(FindProperty("_Distance", props), "Apply Distance"); + + EditorGUILayout.HelpBox( + "Only some platform support these point size properties.", + MessageType.None + ); + } + } + + class DiskMaterialInspector : ShaderGUI + { + public override void OnGUI(MaterialEditor editor, MaterialProperty[] props) + { + editor.ShaderProperty(FindProperty("_Tint", props), "Tint"); + editor.ShaderProperty(FindProperty("_PointSize", props), "Point Size"); + } + } +} diff --git a/Assets/Pcx/Editor/MaterialInspector.cs.meta b/Assets/Pcx/Editor/MaterialInspector.cs.meta new file mode 100644 index 0000000..6dadc45 --- /dev/null +++ b/Assets/Pcx/Editor/MaterialInspector.cs.meta @@ -0,0 +1,13 @@ +fileFormatVersion: 2 +guid: 4736c2a79e939b44e802153fac6e403c +timeCreated: 1509199624 +licenseType: Pro +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Pcx/Editor/Pcx.Editor.asmdef b/Assets/Pcx/Editor/Pcx.Editor.asmdef new file mode 100644 index 0000000..69e6941 --- /dev/null +++ b/Assets/Pcx/Editor/Pcx.Editor.asmdef @@ -0,0 +1,16 @@ +{ + "name": "Pcx.Editor", + "references": [ + "Pcx" + ], + "optionalUnityReferences": [], + "includePlatforms": [ + "Editor" + ], + "excludePlatforms": [], + "allowUnsafeCode": false, + "overrideReferences": false, + "precompiledReferences": [], + "autoReferenced": true, + "defineConstraints": [] +} \ No newline at end of file diff --git a/Assets/Pcx/Editor/Pcx.Editor.asmdef.meta b/Assets/Pcx/Editor/Pcx.Editor.asmdef.meta new file mode 100644 index 0000000..f527c63 --- /dev/null +++ b/Assets/Pcx/Editor/Pcx.Editor.asmdef.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 8af269c4666d5214fbeaa6662ea7322f +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Pcx/Editor/PlyImporter.cs b/Assets/Pcx/Editor/PlyImporter.cs new file mode 100644 index 0000000..1a572d2 --- /dev/null +++ b/Assets/Pcx/Editor/PlyImporter.cs @@ -0,0 +1,396 @@ +// Pcx - Point cloud importer & renderer for Unity +// https://github.com/keijiro/Pcx + +using UnityEngine; +using UnityEngine.Rendering; +using UnityEditor; + + +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; + +namespace Pcx +{ + [UnityEditor.AssetImporters.ScriptedImporter(1, "ply")] + class PlyImporter : UnityEditor.AssetImporters.ScriptedImporter + { + #region ScriptedImporter implementation + + public enum ContainerType { Mesh, ComputeBuffer, Texture } + + [SerializeField] ContainerType _containerType = ContainerType.Mesh; + + public override void OnImportAsset(UnityEditor.AssetImporters.AssetImportContext context) + { + if (_containerType == ContainerType.Mesh) + { + // Mesh container + // Create a prefab with MeshFilter/MeshRenderer. + var gameObject = new GameObject(); + var mesh = ImportAsMesh(context.assetPath); + + var meshFilter = gameObject.AddComponent<MeshFilter>(); + meshFilter.sharedMesh = mesh; + + var meshRenderer = gameObject.AddComponent<MeshRenderer>(); + meshRenderer.sharedMaterial = GetDefaultMaterial(); + + context.AddObjectToAsset("prefab", gameObject); + if (mesh != null) context.AddObjectToAsset("mesh", mesh); + + context.SetMainObject(gameObject); + } + else if (_containerType == ContainerType.ComputeBuffer) + { + // ComputeBuffer container + // Create a prefab with PointCloudRenderer. + var gameObject = new GameObject(); + var data = ImportAsPointCloudData(context.assetPath); + + var renderer = gameObject.AddComponent<PointCloudRenderer>(); + renderer.sourceData = data; + + context.AddObjectToAsset("prefab", gameObject); + if (data != null) context.AddObjectToAsset("data", data); + + context.SetMainObject(gameObject); + } + else // _containerType == ContainerType.Texture + { + // Texture container + // No prefab is available for this type. + var data = ImportAsBakedPointCloud(context.assetPath); + if (data != null) + { + context.AddObjectToAsset("container", data); + context.AddObjectToAsset("position", data.positionMap); + context.AddObjectToAsset("color", data.colorMap); + context.SetMainObject(data); + } + } + } + + #endregion + + #region Internal utilities + + static Material GetDefaultMaterial() + { + // Via package manager + var path_upm = "Packages/jp.keijiro.pcx/Editor/Default Point.mat"; + // Via project asset database + var path_prj = "Assets/Pcx/Editor/Default Point.mat"; + return AssetDatabase.LoadAssetAtPath<Material>(path_upm) ?? + AssetDatabase.LoadAssetAtPath<Material>(path_prj); + } + + #endregion + + #region Internal data structure + + enum DataProperty { + Invalid, + R8, G8, B8, A8, + R16, G16, B16, A16, + SingleX, SingleY, SingleZ, + DoubleX, DoubleY, DoubleZ, + Data8, Data16, Data32, Data64 + } + + static int GetPropertySize(DataProperty p) + { + switch (p) + { + case DataProperty.R8: return 1; + case DataProperty.G8: return 1; + case DataProperty.B8: return 1; + case DataProperty.A8: return 1; + case DataProperty.R16: return 2; + case DataProperty.G16: return 2; + case DataProperty.B16: return 2; + case DataProperty.A16: return 2; + case DataProperty.SingleX: return 4; + case DataProperty.SingleY: return 4; + case DataProperty.SingleZ: return 4; + case DataProperty.DoubleX: return 8; + case DataProperty.DoubleY: return 8; + case DataProperty.DoubleZ: return 8; + case DataProperty.Data8: return 1; + case DataProperty.Data16: return 2; + case DataProperty.Data32: return 4; + case DataProperty.Data64: return 8; + } + return 0; + } + + class DataHeader + { + public List<DataProperty> properties = new List<DataProperty>(); + public int vertexCount = -1; + } + + class DataBody + { + public List<Vector3> vertices; + public List<Color32> colors; + + public DataBody(int vertexCount) + { + vertices = new List<Vector3>(vertexCount); + colors = new List<Color32>(vertexCount); + } + + public void AddPoint( + float x, float y, float z, + byte r, byte g, byte b, byte a + ) + { + vertices.Add(new Vector3(x, y, z)); + colors.Add(new Color32(r, g, b, a)); + } + } + + #endregion + + #region Reader implementation + + Mesh ImportAsMesh(string path) + { + try + { + var stream = File.Open(path, FileMode.Open, FileAccess.Read, FileShare.Read); + var header = ReadDataHeader(new StreamReader(stream)); + var body = ReadDataBody(header, new BinaryReader(stream)); + + var mesh = new Mesh(); + mesh.name = Path.GetFileNameWithoutExtension(path); + + mesh.indexFormat = header.vertexCount > 65535 ? + IndexFormat.UInt32 : IndexFormat.UInt16; + + mesh.SetVertices(body.vertices); + mesh.SetColors(body.colors); + + mesh.SetIndices( + Enumerable.Range(0, header.vertexCount).ToArray(), + MeshTopology.Points, 0 + ); + + mesh.UploadMeshData(true); + return mesh; + } + catch (Exception e) + { + Debug.LogError("Failed importing " + path + ". " + e.Message); + return null; + } + } + + PointCloudData ImportAsPointCloudData(string path) + { + try + { + var stream = File.Open(path, FileMode.Open, FileAccess.Read, FileShare.Read); + var header = ReadDataHeader(new StreamReader(stream)); + var body = ReadDataBody(header, new BinaryReader(stream)); + var data = ScriptableObject.CreateInstance<PointCloudData>(); + data.Initialize(body.vertices, body.colors); + data.name = Path.GetFileNameWithoutExtension(path); + return data; + } + catch (Exception e) + { + Debug.LogError("Failed importing " + path + ". " + e.Message); + return null; + } + } + + BakedPointCloud ImportAsBakedPointCloud(string path) + { + try + { + var stream = File.Open(path, FileMode.Open, FileAccess.Read, FileShare.Read); + var header = ReadDataHeader(new StreamReader(stream)); + var body = ReadDataBody(header, new BinaryReader(stream)); + var data = ScriptableObject.CreateInstance<BakedPointCloud>(); + data.Initialize(body.vertices, body.colors); + data.name = Path.GetFileNameWithoutExtension(path); + return data; + } + catch (Exception e) + { + Debug.LogError("Failed importing " + path + ". " + e.Message); + return null; + } + } + + DataHeader ReadDataHeader(StreamReader reader) + { + var data = new DataHeader(); + var readCount = 0; + + // Magic number line ("ply") + var line = reader.ReadLine(); + readCount += line.Length + 1; + if (line != "ply") + throw new ArgumentException("Magic number ('ply') mismatch."); + + // Data format: check if it's binary/little endian. + line = reader.ReadLine(); + readCount += line.Length + 1; + if (line != "format binary_little_endian 1.0") + throw new ArgumentException( + "Invalid data format ('" + line + "'). " + + "Should be binary/little endian."); + + // Read header contents. + for (var skip = false;;) + { + // Read a line and split it with white space. + line = reader.ReadLine(); + readCount += line.Length + 1; + if (line == "end_header") break; + var col = line.Split(); + + // Element declaration (unskippable) + if (col[0] == "element") + { + if (col[1] == "vertex") + { + data.vertexCount = Convert.ToInt32(col[2]); + skip = false; + } + else + { + // Don't read elements other than vertices. + skip = true; + } + } + + if (skip) continue; + + // Property declaration line + if (col[0] == "property") + { + var prop = DataProperty.Invalid; + + // Parse the property name entry. + switch (col[2]) + { + case "red" : prop = DataProperty.R8; break; + case "green": prop = DataProperty.G8; break; + case "blue" : prop = DataProperty.B8; break; + case "alpha": prop = DataProperty.A8; break; + case "x" : prop = DataProperty.SingleX; break; + case "y" : prop = DataProperty.SingleY; break; + case "z" : prop = DataProperty.SingleZ; break; + } + + // Check the property type. + if (col[1] == "char" || col[1] == "uchar" || + col[1] == "int8" || col[1] == "uint8") + { + if (prop == DataProperty.Invalid) + prop = DataProperty.Data8; + else if (GetPropertySize(prop) != 1) + throw new ArgumentException("Invalid property type ('" + line + "')."); + } + else if (col[1] == "short" || col[1] == "ushort" || + col[1] == "int16" || col[1] == "uint16") + { + switch (prop) + { + case DataProperty.Invalid: prop = DataProperty.Data16; break; + case DataProperty.R8: prop = DataProperty.R16; break; + case DataProperty.G8: prop = DataProperty.G16; break; + case DataProperty.B8: prop = DataProperty.B16; break; + case DataProperty.A8: prop = DataProperty.A16; break; + } + if (GetPropertySize(prop) != 2) + throw new ArgumentException("Invalid property type ('" + line + "')."); + } + else if (col[1] == "int" || col[1] == "uint" || col[1] == "float" || + col[1] == "int32" || col[1] == "uint32" || col[1] == "float32") + { + if (prop == DataProperty.Invalid) + prop = DataProperty.Data32; + else if (GetPropertySize(prop) != 4) + throw new ArgumentException("Invalid property type ('" + line + "')."); + } + else if (col[1] == "int64" || col[1] == "uint64" || + col[1] == "double" || col[1] == "float64") + { + switch (prop) + { + case DataProperty.Invalid: prop = DataProperty.Data64; break; + case DataProperty.SingleX: prop = DataProperty.DoubleX; break; + case DataProperty.SingleY: prop = DataProperty.DoubleY; break; + case DataProperty.SingleZ: prop = DataProperty.DoubleZ; break; + } + if (GetPropertySize(prop) != 8) + throw new ArgumentException("Invalid property type ('" + line + "')."); + } + else + { + throw new ArgumentException("Unsupported property type ('" + line + "')."); + } + + data.properties.Add(prop); + } + } + + // Rewind the stream back to the exact position of the reader. + reader.BaseStream.Position = readCount; + + return data; + } + + DataBody ReadDataBody(DataHeader header, BinaryReader reader) + { + var data = new DataBody(header.vertexCount); + + float x = 0, y = 0, z = 0; + Byte r = 255, g = 255, b = 255, a = 255; + + for (var i = 0; i < header.vertexCount; i++) + { + foreach (var prop in header.properties) + { + switch (prop) + { + case DataProperty.R8: r = reader.ReadByte(); break; + case DataProperty.G8: g = reader.ReadByte(); break; + case DataProperty.B8: b = reader.ReadByte(); break; + case DataProperty.A8: a = reader.ReadByte(); break; + + case DataProperty.R16: r = (byte)(reader.ReadUInt16() >> 8); break; + case DataProperty.G16: g = (byte)(reader.ReadUInt16() >> 8); break; + case DataProperty.B16: b = (byte)(reader.ReadUInt16() >> 8); break; + case DataProperty.A16: a = (byte)(reader.ReadUInt16() >> 8); break; + + case DataProperty.SingleX: x = reader.ReadSingle(); break; + case DataProperty.SingleY: y = reader.ReadSingle(); break; + case DataProperty.SingleZ: z = reader.ReadSingle(); break; + + case DataProperty.DoubleX: x = (float)reader.ReadDouble(); break; + case DataProperty.DoubleY: y = (float)reader.ReadDouble(); break; + case DataProperty.DoubleZ: z = (float)reader.ReadDouble(); break; + + case DataProperty.Data8: reader.ReadByte(); break; + case DataProperty.Data16: reader.BaseStream.Position += 2; break; + case DataProperty.Data32: reader.BaseStream.Position += 4; break; + case DataProperty.Data64: reader.BaseStream.Position += 8; break; + } + } + + data.AddPoint(x, y, z, r, g, b, a); + } + + return data; + } + } + + #endregion +} diff --git a/Assets/Pcx/Editor/PlyImporter.cs.meta b/Assets/Pcx/Editor/PlyImporter.cs.meta new file mode 100644 index 0000000..8a948f4 --- /dev/null +++ b/Assets/Pcx/Editor/PlyImporter.cs.meta @@ -0,0 +1,13 @@ +fileFormatVersion: 2 +guid: 183c1cb276390b14e883dae29f585dfa +timeCreated: 1508852153 +licenseType: Pro +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Pcx/Editor/PlyImporterInspector.cs b/Assets/Pcx/Editor/PlyImporterInspector.cs new file mode 100644 index 0000000..861e340 --- /dev/null +++ b/Assets/Pcx/Editor/PlyImporterInspector.cs @@ -0,0 +1,38 @@ +// Pcx - Point cloud importer & renderer for Unity +// https://github.com/keijiro/Pcx + +using UnityEngine; +using UnityEditor; + + +namespace Pcx +{ + // Note: Not sure why but EnumPopup doesn't work in ScriptedImporterEditor, + // so it has been replaced with a normal Popup control. + + [CustomEditor(typeof(PlyImporter))] + class PlyImporterInspector : UnityEditor.AssetImporters.ScriptedImporterEditor + { + SerializedProperty _containerType; + + string[] _containerTypeNames; + + protected override bool useAssetDrawPreview { get { return false; } } + + public override void OnEnable() + { + base.OnEnable(); + + _containerType = serializedObject.FindProperty("_containerType"); + _containerTypeNames = System.Enum.GetNames(typeof(PlyImporter.ContainerType)); + } + + public override void OnInspectorGUI() + { + _containerType.intValue = EditorGUILayout.Popup( + "Container Type", _containerType.intValue, _containerTypeNames); + + base.ApplyRevertGUI(); + } + } +} diff --git a/Assets/Pcx/Editor/PlyImporterInspector.cs.meta b/Assets/Pcx/Editor/PlyImporterInspector.cs.meta new file mode 100644 index 0000000..780f302 --- /dev/null +++ b/Assets/Pcx/Editor/PlyImporterInspector.cs.meta @@ -0,0 +1,13 @@ +fileFormatVersion: 2 +guid: 95b6a588a78b42349b595f58b4a69570 +timeCreated: 1509009112 +licenseType: Pro +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Pcx/Editor/PointCloudDataInspector.cs b/Assets/Pcx/Editor/PointCloudDataInspector.cs new file mode 100644 index 0000000..847c0de --- /dev/null +++ b/Assets/Pcx/Editor/PointCloudDataInspector.cs @@ -0,0 +1,18 @@ +// Pcx - Point cloud importer & renderer for Unity +// https://github.com/keijiro/Pcx + +using UnityEngine; +using UnityEditor; + +namespace Pcx +{ + [CustomEditor(typeof(PointCloudData))] + public sealed class PointCloudDataInspector : Editor + { + public override void OnInspectorGUI() + { + var count = ((PointCloudData)target).pointCount; + EditorGUILayout.LabelField("Point Count", count.ToString("N0")); + } + } +} diff --git a/Assets/Pcx/Editor/PointCloudDataInspector.cs.meta b/Assets/Pcx/Editor/PointCloudDataInspector.cs.meta new file mode 100644 index 0000000..bdc1ede --- /dev/null +++ b/Assets/Pcx/Editor/PointCloudDataInspector.cs.meta @@ -0,0 +1,13 @@ +fileFormatVersion: 2 +guid: 8411b5e94234b27449f0b9ee5c00708d +timeCreated: 1509012153 +licenseType: Pro +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Pcx/Editor/PointCloudRendererInspector.cs b/Assets/Pcx/Editor/PointCloudRendererInspector.cs new file mode 100644 index 0000000..6cb8915 --- /dev/null +++ b/Assets/Pcx/Editor/PointCloudRendererInspector.cs @@ -0,0 +1,35 @@ +// Pcx - Point cloud importer & renderer for Unity +// https://github.com/keijiro/Pcx + +using UnityEngine; +using UnityEditor; + +namespace Pcx +{ + [CanEditMultipleObjects] + [CustomEditor(typeof(PointCloudRenderer))] + public class PointCloudRendererInspector : Editor + { + SerializedProperty _sourceData; + SerializedProperty _pointTint; + SerializedProperty _pointSize; + + void OnEnable() + { + _sourceData = serializedObject.FindProperty("_sourceData"); + _pointTint = serializedObject.FindProperty("_pointTint"); + _pointSize = serializedObject.FindProperty("_pointSize"); + } + + public override void OnInspectorGUI() + { + serializedObject.Update(); + + EditorGUILayout.PropertyField(_sourceData); + EditorGUILayout.PropertyField(_pointTint); + EditorGUILayout.PropertyField(_pointSize); + + serializedObject.ApplyModifiedProperties(); + } + } +} diff --git a/Assets/Pcx/Editor/PointCloudRendererInspector.cs.meta b/Assets/Pcx/Editor/PointCloudRendererInspector.cs.meta new file mode 100644 index 0000000..4df96ed --- /dev/null +++ b/Assets/Pcx/Editor/PointCloudRendererInspector.cs.meta @@ -0,0 +1,13 @@ +fileFormatVersion: 2 +guid: a237af582c9918148baae596f2936958 +timeCreated: 1509199040 +licenseType: Pro +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Pcx/Runtime.meta b/Assets/Pcx/Runtime.meta new file mode 100644 index 0000000..b9ea08e --- /dev/null +++ b/Assets/Pcx/Runtime.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 18f31f41996fe424b95386d159828448 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Pcx/Runtime/BakedPointCloud.cs b/Assets/Pcx/Runtime/BakedPointCloud.cs new file mode 100644 index 0000000..c33211d --- /dev/null +++ b/Assets/Pcx/Runtime/BakedPointCloud.cs @@ -0,0 +1,77 @@ +// Pcx - Point cloud importer & renderer for Unity +// https://github.com/keijiro/Pcx + +using UnityEngine; +using System.Collections.Generic; + +namespace Pcx +{ + /// A container class for texture-baked point clouds. + public sealed class BakedPointCloud : ScriptableObject + { + #region Public properties + + /// Number of points + public int pointCount { get { return _pointCount; } } + + /// Position map texture + public Texture2D positionMap { get { return _positionMap; } } + + /// Color map texture + public Texture2D colorMap { get { return _colorMap; } } + + #endregion + + #region Serialized data members + + [SerializeField] int _pointCount; + [SerializeField] Texture2D _positionMap; + [SerializeField] Texture2D _colorMap; + + #endregion + + #region Editor functions + + #if UNITY_EDITOR + + public void Initialize(List<Vector3> positions, List<Color32> colors) + { + _pointCount = positions.Count; + + var width = Mathf.CeilToInt(Mathf.Sqrt(_pointCount)); + + _positionMap = new Texture2D(width, width, TextureFormat.RGBAHalf, false); + _positionMap.name = "Position Map"; + _positionMap.filterMode = FilterMode.Point; + + _colorMap = new Texture2D(width, width, TextureFormat.RGBA32, false); + _colorMap.name = "Color Map"; + _colorMap.filterMode = FilterMode.Point; + + var i1 = 0; + var i2 = 0U; + + for (var y = 0; y < width; y++) + { + for (var x = 0; x < width; x++) + { + var i = i1 < _pointCount ? i1 : (int)(i2 % _pointCount); + var p = positions[i]; + + _positionMap.SetPixel(x, y, new Color(p.x, p.y, p.z)); + _colorMap.SetPixel(x, y, colors[i]); + + i1 ++; + i2 += 132049U; // prime + } + } + + _positionMap.Apply(false, true); + _colorMap.Apply(false, true); + } + + #endif + + #endregion + } +} diff --git a/Assets/Pcx/Runtime/BakedPointCloud.cs.meta b/Assets/Pcx/Runtime/BakedPointCloud.cs.meta new file mode 100644 index 0000000..34f4fe2 --- /dev/null +++ b/Assets/Pcx/Runtime/BakedPointCloud.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 7e24966311c3a42b880056b5d15db86a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Pcx/Runtime/Pcx.asmdef b/Assets/Pcx/Runtime/Pcx.asmdef new file mode 100644 index 0000000..9a6f2cb --- /dev/null +++ b/Assets/Pcx/Runtime/Pcx.asmdef @@ -0,0 +1,3 @@ +{ + "name": "Pcx" +} diff --git a/Assets/Pcx/Runtime/Pcx.asmdef.meta b/Assets/Pcx/Runtime/Pcx.asmdef.meta new file mode 100644 index 0000000..ec72e8f --- /dev/null +++ b/Assets/Pcx/Runtime/Pcx.asmdef.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: e27a0cdc43c9d0e478a5dbde7ee2e5c4 +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Pcx/Runtime/PointCloudData.cs b/Assets/Pcx/Runtime/PointCloudData.cs new file mode 100644 index 0000000..bb6a87f --- /dev/null +++ b/Assets/Pcx/Runtime/PointCloudData.cs @@ -0,0 +1,100 @@ +// Pcx - Point cloud importer & renderer for Unity +// https://github.com/keijiro/Pcx + +using UnityEngine; +using System.Collections.Generic; + +namespace Pcx +{ + /// A container class optimized for compute buffer. + public sealed class PointCloudData : ScriptableObject + { + #region Public properties + + /// Byte size of the point element. + public const int elementSize = sizeof(float) * 4; + + /// Number of points. + public int pointCount { + get { return _pointData.Length; } + } + + /// Get access to the compute buffer that contains the point cloud. + public ComputeBuffer computeBuffer { + get { + if (_pointBuffer == null) + { + _pointBuffer = new ComputeBuffer(pointCount, elementSize); + _pointBuffer.SetData(_pointData); + } + return _pointBuffer; + } + } + + #endregion + + #region ScriptableObject implementation + + ComputeBuffer _pointBuffer; + + void OnDisable() + { + if (_pointBuffer != null) + { + _pointBuffer.Release(); + _pointBuffer = null; + } + } + + #endregion + + #region Serialized data members + + [System.Serializable] + struct Point + { + public Vector3 position; + public uint color; + } + + [SerializeField] Point[] _pointData; + + #endregion + + #region Editor functions + + #if UNITY_EDITOR + + static uint EncodeColor(Color c) + { + const float kMaxBrightness = 16; + + var y = Mathf.Max(Mathf.Max(c.r, c.g), c.b); + y = Mathf.Clamp(Mathf.Ceil(y * 255 / kMaxBrightness), 1, 255); + + var rgb = new Vector3(c.r, c.g, c.b); + rgb *= 255 * 255 / (y * kMaxBrightness); + + return ((uint)rgb.x ) | + ((uint)rgb.y << 8) | + ((uint)rgb.z << 16) | + ((uint)y << 24); + } + + public void Initialize(List<Vector3> positions, List<Color32> colors) + { + _pointData = new Point[positions.Count]; + for (var i = 0; i < _pointData.Length; i++) + { + _pointData[i] = new Point { + position = positions[i], + color = EncodeColor(colors[i]) + }; + } + } + + #endif + + #endregion + } +} diff --git a/Assets/Pcx/Runtime/PointCloudData.cs.meta b/Assets/Pcx/Runtime/PointCloudData.cs.meta new file mode 100644 index 0000000..637595c --- /dev/null +++ b/Assets/Pcx/Runtime/PointCloudData.cs.meta @@ -0,0 +1,13 @@ +fileFormatVersion: 2 +guid: 26ff0e71eabe6a448bdec7f94568233f +timeCreated: 1508997921 +licenseType: Pro +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Pcx/Runtime/PointCloudRenderer.cs b/Assets/Pcx/Runtime/PointCloudRenderer.cs new file mode 100644 index 0000000..d498687 --- /dev/null +++ b/Assets/Pcx/Runtime/PointCloudRenderer.cs @@ -0,0 +1,138 @@ +// Pcx - Point cloud importer & renderer for Unity +// https://github.com/keijiro/Pcx + +using UnityEngine; + +namespace Pcx +{ + /// A renderer class that renders a point cloud contained by PointCloudData. + [ExecuteInEditMode] + public sealed class PointCloudRenderer : MonoBehaviour + { + #region Editable attributes + + [SerializeField] PointCloudData _sourceData = null; + + public PointCloudData sourceData { + get { return _sourceData; } + set { _sourceData = value; } + } + + [SerializeField] Color _pointTint = new Color(0.5f, 0.5f, 0.5f, 1); + + public Color pointTint { + get { return _pointTint; } + set { _pointTint = value; } + } + + [SerializeField] float _pointSize = 0.05f; + + public float pointSize { + get { return _pointSize; } + set { _pointSize = value; } + } + + #endregion + + #region Public properties (nonserialized) + + public ComputeBuffer sourceBuffer { get; set; } + + #endregion + + #region Internal resources + + [SerializeField, HideInInspector] Shader _pointShader = null; + [SerializeField, HideInInspector] Shader _diskShader = null; + + #endregion + + #region Private objects + + Material _pointMaterial; + Material _diskMaterial; + + #endregion + + #region MonoBehaviour implementation + + void OnValidate() + { + _pointSize = Mathf.Max(0, _pointSize); + } + + void OnDestroy() + { + if (_pointMaterial != null) + { + if (Application.isPlaying) + { + Destroy(_pointMaterial); + Destroy(_diskMaterial); + } + else + { + DestroyImmediate(_pointMaterial); + DestroyImmediate(_diskMaterial); + } + } + } + + void OnRenderObject() + { + // We need a source data or an externally given buffer. + if (_sourceData == null && sourceBuffer == null) return; + + // Check the camera condition. + var camera = Camera.current; + if ((camera.cullingMask & (1 << gameObject.layer)) == 0) return; + if (camera.name == "Preview Scene Camera") return; + + // TODO: Do view frustum culling here. + + // Lazy initialization + if (_pointMaterial == null) + { + _pointMaterial = new Material(_pointShader); + _pointMaterial.hideFlags = HideFlags.DontSave; + _pointMaterial.EnableKeyword("_COMPUTE_BUFFER"); + + _diskMaterial = new Material(_diskShader); + _diskMaterial.hideFlags = HideFlags.DontSave; + _diskMaterial.EnableKeyword("_COMPUTE_BUFFER"); + } + + // Use the external buffer if given any. + var pointBuffer = sourceBuffer != null ? + sourceBuffer : _sourceData.computeBuffer; + + if (_pointSize == 0) + { + _pointMaterial.SetPass(0); + _pointMaterial.SetColor("_Tint", _pointTint); + _pointMaterial.SetMatrix("_Transform", transform.localToWorldMatrix); + _pointMaterial.SetBuffer("_PointBuffer", pointBuffer); + #if UNITY_2019_1_OR_NEWER + Graphics.DrawProceduralNow(MeshTopology.Points, pointBuffer.count, 1); + #else + Graphics.DrawProcedural(MeshTopology.Points, pointBuffer.count, 1); + #endif + } + else + { + _diskMaterial.SetPass(0); + _diskMaterial.SetColor("_Tint", _pointTint); + _diskMaterial.SetMatrix("_Transform", transform.localToWorldMatrix); + _diskMaterial.SetBuffer("_PointBuffer", pointBuffer); + _diskMaterial.SetFloat("_PointSize", pointSize); + #if UNITY_2019_1_OR_NEWER + Graphics.DrawProceduralNow(MeshTopology.Points, pointBuffer.count, 1); + #else + Graphics.DrawProcedural(MeshTopology.Points, pointBuffer.count, 1); + #endif + } + } + + #endregion + } +} diff --git a/Assets/Pcx/Runtime/PointCloudRenderer.cs.meta b/Assets/Pcx/Runtime/PointCloudRenderer.cs.meta new file mode 100644 index 0000000..4483c47 --- /dev/null +++ b/Assets/Pcx/Runtime/PointCloudRenderer.cs.meta @@ -0,0 +1,16 @@ +fileFormatVersion: 2 +guid: 3b5900aba1767854aa98592c99eb8b8a +timeCreated: 1509113340 +licenseType: Pro +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: + - _source: {instanceID: 0} + - _pointShader: {fileID: 4800000, guid: 1baec256dca7c1642b87d05510e75a3f, type: 3} + - _diskShader: {fileID: 4800000, guid: 7ebf1f15e5b03014d92704caa6c97e2e, type: 3} + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Pcx/Runtime/Shaders.meta b/Assets/Pcx/Runtime/Shaders.meta new file mode 100644 index 0000000..a08a4d0 --- /dev/null +++ b/Assets/Pcx/Runtime/Shaders.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: b630145d59c3fd94192dee25504cefc7 +folderAsset: yes +timeCreated: 1508941566 +licenseType: Pro +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Pcx/Runtime/Shaders/Common.cginc b/Assets/Pcx/Runtime/Shaders/Common.cginc new file mode 100644 index 0000000..8271527 --- /dev/null +++ b/Assets/Pcx/Runtime/Shaders/Common.cginc @@ -0,0 +1,22 @@ +// Pcx - Point cloud importer & renderer for Unity +// https://github.com/keijiro/Pcx + +#define PCX_MAX_BRIGHTNESS 16 + +uint PcxEncodeColor(half3 rgb) +{ + half y = max(max(rgb.r, rgb.g), rgb.b); + y = clamp(ceil(y * 255 / PCX_MAX_BRIGHTNESS), 1, 255); + rgb *= 255 * 255 / (y * PCX_MAX_BRIGHTNESS); + uint4 i = half4(rgb, y); + return i.x | (i.y << 8) | (i.z << 16) | (i.w << 24); +} + +half3 PcxDecodeColor(uint data) +{ + half r = (data ) & 0xff; + half g = (data >> 8) & 0xff; + half b = (data >> 16) & 0xff; + half a = (data >> 24) & 0xff; + return half3(r, g, b) * a * PCX_MAX_BRIGHTNESS / (255 * 255); +} diff --git a/Assets/Pcx/Runtime/Shaders/Common.cginc.meta b/Assets/Pcx/Runtime/Shaders/Common.cginc.meta new file mode 100644 index 0000000..15b02be --- /dev/null +++ b/Assets/Pcx/Runtime/Shaders/Common.cginc.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 53dbcdad165c00f48b5e7ab3b658b33c +timeCreated: 1508924405 +licenseType: Pro +ShaderImporter: + externalObjects: {} + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Pcx/Runtime/Shaders/Disk.cginc b/Assets/Pcx/Runtime/Shaders/Disk.cginc new file mode 100644 index 0000000..2105cf5 --- /dev/null +++ b/Assets/Pcx/Runtime/Shaders/Disk.cginc @@ -0,0 +1,126 @@ +// Pcx - Point cloud importer & renderer for Unity +// https://github.com/keijiro/Pcx + +#include "UnityCG.cginc" +#include "Common.cginc" + +// Uniforms +half4 _Tint; +half _PointSize; +float4x4 _Transform; + +#if _COMPUTE_BUFFER +StructuredBuffer<float4> _PointBuffer; +#endif + +// Vertex input attributes +struct Attributes +{ +#if _COMPUTE_BUFFER + uint vertexID : SV_VertexID; +#else + float4 position : POSITION; + half3 color : COLOR; +#endif +}; + +// Fragment varyings +struct Varyings +{ + float4 position : SV_POSITION; +#if !PCX_SHADOW_CASTER + half3 color : COLOR; + UNITY_FOG_COORDS(0) +#endif +}; + +// Vertex phase +Varyings Vertex(Attributes input) +{ + // Retrieve vertex attributes. +#if _COMPUTE_BUFFER + float4 pt = _PointBuffer[input.vertexID]; + float4 pos = mul(_Transform, float4(pt.xyz, 1)); + half3 col = PcxDecodeColor(asuint(pt.w)); +#else + float4 pos = input.position; + half3 col = input.color; +#endif + +#if !PCX_SHADOW_CASTER + // Color space convertion & applying tint + #if UNITY_COLORSPACE_GAMMA + col *= _Tint.rgb * 2; + #else + col *= LinearToGammaSpace(_Tint.rgb) * 2; + col = GammaToLinearSpace(col); + #endif +#endif + + // Set vertex output. + Varyings o; + o.position = UnityObjectToClipPos(pos); +#if !PCX_SHADOW_CASTER + o.color = col; + UNITY_TRANSFER_FOG(o, o.position); +#endif + return o; +} + +// Geometry phase +[maxvertexcount(36)] +void Geometry(point Varyings input[1], inout TriangleStream<Varyings> outStream) +{ + float4 origin = input[0].position; + float2 extent = abs(UNITY_MATRIX_P._11_22 * _PointSize); + + // Copy the basic information. + Varyings o = input[0]; + + // Determine the number of slices based on the radius of the + // point on the screen. + float radius = extent.y / origin.w * _ScreenParams.y; + uint slices = min((radius + 1) / 5, 4) + 2; + + // Slightly enlarge quad points to compensate area reduction. + // Hopefully this line would be complied without branch. + if (slices == 2) extent *= 1.2; + + // Top vertex + o.position.y = origin.y + extent.y; + o.position.xzw = origin.xzw; + outStream.Append(o); + + UNITY_LOOP for (uint i = 1; i < slices; i++) + { + float sn, cs; + sincos(UNITY_PI / slices * i, sn, cs); + + // Right side vertex + o.position.xy = origin.xy + extent * float2(sn, cs); + outStream.Append(o); + + // Left side vertex + o.position.x = origin.x - extent.x * sn; + outStream.Append(o); + } + + // Bottom vertex + o.position.x = origin.x; + o.position.y = origin.y - extent.y; + outStream.Append(o); + + outStream.RestartStrip(); +} + +half4 Fragment(Varyings input) : SV_Target +{ +#if PCX_SHADOW_CASTER + return 0; +#else + half4 c = half4(input.color, _Tint.a); + UNITY_APPLY_FOG(input.fogCoord, c); + return c; +#endif +} + diff --git a/Assets/Pcx/Runtime/Shaders/Disk.cginc.meta b/Assets/Pcx/Runtime/Shaders/Disk.cginc.meta new file mode 100644 index 0000000..ed27a20 --- /dev/null +++ b/Assets/Pcx/Runtime/Shaders/Disk.cginc.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: b8e5cac6daf67de449b3cfd878a77876 +timeCreated: 1509292824 +licenseType: Pro +ShaderImporter: + externalObjects: {} + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Pcx/Runtime/Shaders/Disk.shader b/Assets/Pcx/Runtime/Shaders/Disk.shader new file mode 100644 index 0000000..8f3ae87 --- /dev/null +++ b/Assets/Pcx/Runtime/Shaders/Disk.shader @@ -0,0 +1,42 @@ +// Pcx - Point cloud importer & renderer for Unity +// https://github.com/keijiro/Pcx + +Shader "Point Cloud/Disk" +{ + Properties + { + _Tint("Tint", Color) = (0.5, 0.5, 0.5, 1) + _PointSize("Point Size", Float) = 0.05 + } + SubShader + { + Tags { "RenderType"="Opaque" } + Cull Off + Pass + { + Tags { "LightMode"="ForwardBase" } + CGPROGRAM + #pragma vertex Vertex + #pragma geometry Geometry + #pragma fragment Fragment + #pragma multi_compile_fog + #pragma multi_compile _ UNITY_COLORSPACE_GAMMA + #pragma multi_compile _ _COMPUTE_BUFFER + #include "Disk.cginc" + ENDCG + } + Pass + { + Tags { "LightMode"="ShadowCaster" } + CGPROGRAM + #pragma vertex Vertex + #pragma geometry Geometry + #pragma fragment Fragment + #pragma multi_compile _ _COMPUTE_BUFFER + #define PCX_SHADOW_CASTER 1 + #include "Disk.cginc" + ENDCG + } + } + CustomEditor "Pcx.DiskMaterialInspector" +} diff --git a/Assets/Pcx/Runtime/Shaders/Disk.shader.meta b/Assets/Pcx/Runtime/Shaders/Disk.shader.meta new file mode 100644 index 0000000..840cf37 --- /dev/null +++ b/Assets/Pcx/Runtime/Shaders/Disk.shader.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 7ebf1f15e5b03014d92704caa6c97e2e +timeCreated: 1508921654 +licenseType: Pro +ShaderImporter: + externalObjects: {} + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Pcx/Runtime/Shaders/Point.shader b/Assets/Pcx/Runtime/Shaders/Point.shader new file mode 100644 index 0000000..d9cf0fa --- /dev/null +++ b/Assets/Pcx/Runtime/Shaders/Point.shader @@ -0,0 +1,97 @@ +// Pcx - Point cloud importer & renderer for Unity +// https://github.com/keijiro/Pcx + +Shader "Point Cloud/Point" +{ + Properties + { + _Tint("Tint", Color) = (0.5, 0.5, 0.5, 1) + _PointSize("Point Size", Float) = 0.05 + [Toggle] _Distance("Apply Distance", Float) = 1 + } + SubShader + { + Tags { "RenderType"="Opaque" } + Pass + { + CGPROGRAM + + #pragma vertex Vertex + #pragma fragment Fragment + + #pragma multi_compile_fog + #pragma multi_compile _ UNITY_COLORSPACE_GAMMA + #pragma multi_compile _ _DISTANCE_ON + #pragma multi_compile _ _COMPUTE_BUFFER + + #include "UnityCG.cginc" + #include "Common.cginc" + + struct Attributes + { + float4 position : POSITION; + half3 color : COLOR; + }; + + struct Varyings + { + float4 position : SV_Position; + half3 color : COLOR; + half psize : PSIZE; + UNITY_FOG_COORDS(0) + }; + + half4 _Tint; + float4x4 _Transform; + half _PointSize; + + #if _COMPUTE_BUFFER + StructuredBuffer<float4> _PointBuffer; + #endif + + #if _COMPUTE_BUFFER + Varyings Vertex(uint vid : SV_VertexID) + #else + Varyings Vertex(Attributes input) + #endif + { + #if _COMPUTE_BUFFER + float4 pt = _PointBuffer[vid]; + float4 pos = mul(_Transform, float4(pt.xyz, 1)); + half3 col = PcxDecodeColor(asuint(pt.w)); + #else + float4 pos = input.position; + half3 col = input.color; + #endif + + #ifdef UNITY_COLORSPACE_GAMMA + col *= _Tint.rgb * 2; + #else + col *= LinearToGammaSpace(_Tint.rgb) * 2; + col = GammaToLinearSpace(col); + #endif + + Varyings o; + o.position = UnityObjectToClipPos(pos); + o.color = col; + #ifdef _DISTANCE_ON + o.psize = _PointSize / o.position.w * _ScreenParams.y; + #else + o.psize = _PointSize; + #endif + UNITY_TRANSFER_FOG(o, o.position); + return o; + } + + half4 Fragment(Varyings input) : SV_Target + { + half4 c = half4(input.color, _Tint.a); + UNITY_APPLY_FOG(input.fogCoord, c); + return c; + } + + ENDCG + } + } + CustomEditor "Pcx.PointMaterialInspector" +} diff --git a/Assets/Pcx/Runtime/Shaders/Point.shader.meta b/Assets/Pcx/Runtime/Shaders/Point.shader.meta new file mode 100644 index 0000000..431b0c1 --- /dev/null +++ b/Assets/Pcx/Runtime/Shaders/Point.shader.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 1baec256dca7c1642b87d05510e75a3f +timeCreated: 1508905738 +licenseType: Pro +ShaderImporter: + externalObjects: {} + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins.meta b/Assets/Plugins.meta new file mode 100644 index 0000000..8f33fc6 --- /dev/null +++ b/Assets/Plugins.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 24c780f35903d11479c25548dabefd94 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/PointCloudPlugin.meta b/Assets/Plugins/PointCloudPlugin.meta new file mode 100644 index 0000000..a832420 --- /dev/null +++ b/Assets/Plugins/PointCloudPlugin.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a6c495b35055bc0459d63d97563f8c8b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/PointCloudPlugin/LASzip64.dll b/Assets/Plugins/PointCloudPlugin/LASzip64.dll new file mode 100644 index 0000000000000000000000000000000000000000..7a428b571314b3eebe1161dbfadcaa8a3e6aac7b GIT binary patch literal 262656 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͊=#K4lk#Be5oiDAtFW`;Wlm>J9uGBZp#$jq?x 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 Q*53fdDJVWi@vsd60FpoQ`v3p{ literal 0 HcmV?d00001 diff --git a/Assets/Plugins/PointCloudPlugin/LASzip64.dll.meta b/Assets/Plugins/PointCloudPlugin/LASzip64.dll.meta new file mode 100644 index 0000000..413fbf8 --- /dev/null +++ b/Assets/Plugins/PointCloudPlugin/LASzip64.dll.meta @@ -0,0 +1,27 @@ +fileFormatVersion: 2 +guid: 3bf94860a2d488c4e8902d467ba08797 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Plugins/PointCloudPlugin/PointCloudPlugin.dll b/Assets/Plugins/PointCloudPlugin/PointCloudPlugin.dll new file mode 100644 index 0000000000000000000000000000000000000000..79e23960bc1857e1118ba30309c9bad1182e035f GIT binary patch literal 207872 zcmeZ`n!v!!z`(%5z`*eTKLf)K1_*F~P<TlWMg|5x`CWVrTR6`u?qKves~D1zS*%b{ zl%HOdn5&SSn3tDdqL7rTP*j?ykeR38;vcM#o1c=Z$IHv50yX*Y=Sh+6lm2kQaNnzZ zuE~@BaIwGq!QBt0|8qA_`olH(=TGi7F#jj_Y%u+oyAdq@m%9n9|1X#Qq(59-FTZj( zfayPA^;|ERxj_23Uj75~gEEsdKz2c`hf@Kr3=Ao4Yz#X}ekH*KKQJgMa5M2KGUPBZ zFx-KNDnu|bFbIIz4U8ZP#Aae(U<0vPpfrd*ff*903=9lR3<-=dO;EiIn0$!HgP%+c zBCHGyU;Z&M=zuIJU}pFMGB1Fc!9yCvfZ_&b1`S3Ah6n4I7z&_5$W+66CI$@#28IP| znHU^E=D;Kym>3R#A{)j>qxDKsD@qs`7|gSv{sj3QO}zpGLxNsWN@7VO1B2OA1_p)( zCI*IS3=9kfOem%~FfcgiL6k8#fFfLh84^HjpcIEt>cGHoK(7Fz5bVbQW(Ecs1_lNm z40R5AMa4zQ3=EJkDPRT#E(3!GHg%~v`N<66Fk)zcs?)+y=Y(*@$Ygo^S4}KrVmJc> z9=*Jo=}ZhSb(|oAFun|o-~2}7Grs_D%^W5M{_q3*dI!rz_`?r;<_|phnO~6ARhF5- zqxp!&VSbH+FKhys7(jvsFu^lt&Up0lYJ$u^;|Mn&%-;j!H^0$v+#$xmz~Ip<8s5vq z;L*z)A<NA0LYNyQ#LJV;1h(L1H$;O+^Baww3JeSkFBaJ{F?e(`cyu~&cyzMH$T2f` z9A{0GgG4!h_<=P3de%6IXtEqL13Soy<E#mC%nTe13=E(71z0D{hPYQkj+w!y`@k+x z*7oS-Rg`09c%kx%kzs;IFYli;sQujN_A8;-e+OdILsa|kK|~)T?0<k{zW~(!8L0Lz z1lhmjBgFn5nEl-j-~jaK<?T#kVt82t;hq77hpX`ck6uyEMsVN-%P=#%xW)+%yz?;4 zeo)nj_^^SBfb{<t^~+~s=wz*thDIhVae(6Qzp7zA*k*{JL$F8l8-<+`pcqiFVPf#; zzJZ7YaZtn`XO)pfi3CZAsGKZ35~O7jk-$9*5($@Om>G69fQ&t94T@OSTQbZH9=#nP zA&*YpD<EDc?^O_GeXvA?U%myLfjv4UJem)1cvv4S{o>KfyBFePh3J>j_Fz|g^z!Zm zg_jS63rde*z6}~*#~vJdU^xY-9LUEI|9W)a^yoh1(aU?Z1e^^#dV@JUI=MZ1JvjIU znf{CR<%2@vut)O|h3LZ|ZE)<-9mwI)%X+tjiNT}wk_W%*AvF2U7!{6iP?&o3vZjMn zb^r9}WbD4>(R`5Ozo>0K6T`Q|j3vCgKq2nYeg4IBE09$&Dh3|i$3gbRqnX#sst7Wr zlM!Tq$A8t|dEjt>Imn}zH4`L%+!2)889X{2LC(_y33W1hbRR@D?F=Y=d3f~ts3^QR z^#A{Vk6zK+k3j(i5_s&z#Bc^Je3lkt4WGO`kS5mS#h{pF_UJ~06q^22?E3W}`r|S6 zgVL`@FYnr7CWil_&vQ`x3i7i{Cle^<I=wg`J_Fll;L*+K*?q$W6r~|53jYHnJi5I( ze7Ze2K+)xC8OTw}*UfFoQOdD_(WCi@LG)px0}%R*N4FDLp^v2}M=6JkB~vN$2FAli z2Oy@OIpfjI`O-%h;S7&nR>fi_2AK324_JH~82|U^zUA6_pj5)6)5@jSo!z6eO2DJD zO2VU8^ji@V!)tZN?i2q-rE{1VJdYpv4+{NGYmd%q0gujV3D5rroGfe@O22z_U-0NY z{o*Mr0|O{nyJJ)wKrV%+3b20_Ji2dwJH%MR1uo)VEU^G3Aw(R2!U={wdRZHbu({X4 zqnq_SCo_YG@ez+s7ZnSS?pq$6Au1Zi|2;ZuR5Uz#LsT>zyHC8>tqqD}7Zn2!glj#z zPkXc;DCKqOb?5cy73~1|j>D(>fJb+TipC2~RtAO%9^F1F8ZU%&ATI0nQL*qaKJ#Lp zIfx&l65!E%!~yIlc=#zecK?6|pbRLIds#C<uIqH-0L6DVD1$T~QHVd>eg41b@hm2W z)&r%|oz@<`tVUpE&K%I-GJs^FPG*l@R&}gWu%H3c;P4Fa=w?040S^lgP(teTQPJ?| zzUkBJqvD#DmIf=IJpZ5EarVraGmhUM9DK#hzwOY02TZ*@0!$}ev<^Bp958V0V07s| z)OxA(noqBbimPY$MNo8#!J^Yg#RC)$)6BrNP(buykpCq@!@?cI93iDfx2dEEGlNI# zH~v;-Mh1pnzlawdAl2O;K+zPyAAZ320KXs`zo44{zo44}zo44|zo46gN2gnWtMPxI zPCK8@Iu4)CIsu>FG6|o~5|s$oPCMVuIu75?I)Ppfix*ZP(;)S%XQvxTSi-lnPQkac zPQ&xKn*pd^^*ruo0jg9TkFzl_G}wD~$8k7z|99+u?{V-ivq$q^f#O0)(f-a96rVpl zTHlr!d3O6rc=U?A1r_5SjlVz*<su1>=0oZ}-HtyzwNH5TI{xrz{vltk=h=PY#RpR+ z2G7nq36I`(P>tZ(>89Y>>89af{i8&~qf_3a`8bD%^^ejouciKruE=6yIOEyt&+c*X zC9_BC$r3h??!%uwR(o`sz7=9-@aR6~(H*0b0E&3Wc*nT-xLA1hgqLT55}-1_`4>l# zp+`5TN3TdIsI3ckC&-N;w<5b!9^_6BQzi!E10KhnB|rh=(djIZ*2xUADf;k#QGSra zz{v<scr;f^2o$k+bTb|Xm%iZirQp#GvtOV{2W0>MLwK!L1X+F7go(l9xHF_&Kkh8S z&%nTN3|yltfGnSs2`ZH!<{KXX`L2@@Ua&X{cyu~S@XIrR3l<ip((f-OF+z$I)H)4Z z-gY1IZ2SR@ux_s(p3Mi;J+u#cG#`LOn2<;JK~GS*bOO{gd}(R|Dw~DD)`RL34Ub-4 z(>#!vdOFBS@UQ?e!0FqgGe<=Ml*T=p-#B=J^7$v9?vKWAJ&qp+mxKQgJ6PyQfeJr= z3Eyr90g!##2Ry8A@VA3n1wNfADhZywED}DQH7XfC-Tys0-32_Fe+m>a`*hoT^s)$h zS|2Zy_U>h2_pts@F63kVubkDV`{`?L-|pu=+Rt7y`*c6{{C~i+mq*^S`}&IrS0)DE z?js)E*F3w=zi@G7V({rc?Aa?K<EwqdyO&4ZgZbJEJ+LU)x)ha!*AgIqXn1sA_UJzE z(OIIR@S>Or6r4XmDX+k@`<Q2^o@ZyCfM;i(1it{gBPfRo_zO7l3;GFobmj{<bm)6@ z=crV89CruDBdGiXrPRX?!J*-fVc=NU4+@L_|Nqx}cHi*me&y5s(Z~8YfBR{0L)Q_i z?YBU&ghywjz>CQ)ObkxPSd77~X~($u*yzKc5)kAzkLDBn9@fXpG(BLW0Sz9YDD6J+ z!qy1XZaGk5>d{-E?$P}0fk&s?kJt7)!43BAA0E~RJ@}n|di44;dNlq7rwAdBUPpBg z>w{%JulM~Il?BBxC<}7E_+$vm`yXC28Gi!>U#FQz_f^l%I029DbD)g<;*B#C1K54t zB`OM_gadKp3#lLf|DSnL^8NpRQ2KBP1{Z#y29xnOP}1l$^y&WO(OD<}PSJ%Dp4Jyi z#XOEf{oj2Ml=na(7aM)pQ~RICURa=cSpP*2tN#MUaz5S1Jvu7|UZgmKTzlA|!^9fN z1aO-R6j(>g`JrL(0ulx<J-W|&K&$EIgNz>hPA6a?q74g?D39(FFJ2o!LX;0BL`D9K zeoAFxI0FhQju*#4YPvsw-D2$7eGOdecc1g<%$9g@)CugcV=Q){m{fpz?M28pP$<0v zk)U9LV~5}{#}G(@@#!uU@YoIWzfX6HN`XiBVNdO29^D^3tPk-w*@1F=XO2pOM|UPT z?<n~7+8B9uU-xJ}#qVK#xm+IP$?n4*7hi(1yY-85K961&O;Ag~`ho|)(+yBP56W^L zpb&rt22w!iKm&rm?HnkLcAt20Pahl@{4Gr&f!+#rkLKqOJUZQfycPt71lNnbAO+n& zUNag0_vv;~sqpN+0;;RPxhhV=uh)hhRJ|1WdUVUZSnbHf;M?oQ=+S-Iv-|vuIgX$< zXDB1Q;PmMB{sAhpJ+yCn^g2U|Dqc{k=|25pqCOMDYw7=@xhYHxXI>=2O#<imAdpF& zcHnxWMkNE3F%x{cYhbC=F(xkh@Qce|KoOAp6_QNh;qTGQ$|%T;X#e?ix~NF_bo!_$ zfD*Dt^BW7#?hhWlpse2g%cJ||i__qSUXF@}Pxm=c0yyrX0_yHEfXfn&|DxR~ptj6T zP&D#;fKs<bd|WJ|)8WzSqrw4dm<b@+1ZpW*fPC6pqZ08V6Kq2b$cEFPt|QC_<4Ydh z93IUlnf{C3OUAGSY6YlV1GPUuB{RrGP_u_$vqZ%J)Ne0hVo3AguRF!B@zMC(i$ah+ z$v=>?T&J-|XR&}sXR!o0_q_u}I<%tlX#OuyECup#XSD#xC8u9>+A%SJ^54rIkUCIr z2b}Y;6;so6!RZLCn6gICqP@PD#Z(cfm?}$x=RI$bQLwycd<i-0{jdd<P@sHQEg|61 zeY%L*qnq2KH=L1Q<6fF4f89r)Ue=I8CWaT{|Nj5y*8l}d_hE2>4=TPv&5RempFyc) z`6qZP0oTU{pZTLsf+Bz3zyJS1r82nB0Zv1p@a6#5Afe%)jO-W=N-PgN8s8`|GB9{{ z-|*@F<<S}X!`1l7XGeYk4-Sw?y}k@Dg8%*hKjAaKfHw<7WX20es0cS$z(>X4g+53G zl&>5>&2JA#HR{@1qQdOaYdWuhiNVwQSW%5<uLCovE$QIV3vN~a6!7482C;fsYYUhd zJgg6wNqhCOFoWw-59@p7td8A(UUPeN|Mt-S_nO(W`=3XzH?!ye10LO%U+~z0YR}^y z-Pb_vTu_L5^zvByXn*(U4P*9TzV6$7?8PI{$V#t^iot7fP=izh?0rx%*b8#B*6;uS zK{Y(6Y5SSK-bE#WUx0yM&_yMHU%*3vU(iP-!KX7pz~i_BxC%VRz~Hz8G@$9xD|#5z zP4D$l33#zog@FOA&GiOEm+uQSO+LN8GkkhoZ-6?#6)!~985kzO%_)YOQ}H4eZq5#< zIVUj9Vesj7-2p0+&Z~iYI-wUlnturtnR@&`<k9WB!=w8ktc;QYmrvcEKS1Rxv^iDA z{$KQ3Jg8WDqs0X3D1}Zy((a>DL4^KkVEt>fm>AOd^I0W2K|?O}t{ul*R4N!ex<fx8 z8R&b12=m;)=EXqV6QYuVq~Av+fCvLv!3Ib}9n{_dc94ro!Z8<>00vOE&;!Lt10syv z6bA~U6Pge|n!t>7IOd{a0P^Gpu!$y+K%YT`fr(%P%b^B7ZU?*3b;U8)86e{%kd0#? z!Z;zYaT=OT44&P`eR}7pKr(Q&foFHIhiCU=P*=n;CLXCT0xAH&`5#n%D|mGO0yp%6 zAU5lGbn}D!0_!<p>yhMxx&_-bK-~g&Xtw~;oIJ+P;L#lnH;9{%L24j_a=`{+_Ad~9 z?f;^>v1l!Nhv2YqkH$9>z(qJ~-%lpU078pO2Lq`1`so2`yoIP#_;mKDfI4=c9Qg$p zK7q2cf@8M>N2iO52B>4K02*H~c=7Jn|Nj$wKrQ~}3JC#F`ODw|>S&yMaYX@~wL(-# zPdJq^poG(}4r(rd$1PkyN%%S_;~TuNkp(r|Z-C0HULTc+7do;G3=@1n#rlO8383QB zqdN>9j(o`B2+GQ!NI~u*R)E4$Rh@~!__hbA>3iG_Tt;=sd31-vOaT=N{ICK6Ylqkp zWXgRt&^SxH0IY`qj?x}*u!2SmQb5v;M?m2o9|!9GO^#+_nDAe;CmJ<^Ji3o~bVhK1 z8r30=q2N)4-W4}M)llP`4~z^9{F((j_%$n5_;&vQx3i}nU|?WyHGbmKnWAFg)2Zas znIzzG+zIRrmky=lE-D6~*(Y#a!~?EqdS`$Jb&q`i{~sg?8W{#j`a>(K9WPcvWkCI9 zunfGyngEpnb!0&@{9yBZR4iVUL1p9_7#KkHmj|f+0+l<S+6O#(P2XpNhD&}h^EWku zQW>=V@&MIe7NCA0xc;*6=w&?#Qi#3&;)T{<touPuMykQQ%#mv_GtdZCFORk34v;b* z?c>mT?1d~?!bQd6wXDZ+7Zvc76}TeX1yTq~Toy0lzd)+82=I(by^Bf)xK46WiGWll zJ}Mb#wFxK)?HNE-8hALOSCj$d18~Z`Bnzw3pt^mrX|4x_7^G^806C)Kg_QyW1IXC_ z$i}YB0ObZBm5LYDaAPeXj`H=u;->$M3=BTKzB_z+T`fF%eQ&&YA`dl{8OgE1U{if> zyikK1DgiZA1Dm1jAVb0F$EVj-!lT#s$BQ1Ax%?n=Awenn9W+S<l07E_3IhXv!O{wT zfeHbB!M&hj2Ak3Hpa~M!3LonaC1IZMEbQ4$Fbl_mGGCH1XiyfCc^!|jF*x!InmO_d z)(PwarPX7u6%4Q0J-VlYav!*wfL8UyRMoG;L8TF+GNh^(0BeU<T0e-WW!8YTA5wzU zf_jaRN{i!|>km++WdJq~>KX|mjEe;uSF8ka4Wyj_bqz7?1UayF6R2wzG(cSQ;+X3V zkZS^vU1LFnYtDy(!se+W#5JThgZjbxmnuR6M-b{9cr&N~**y_NxW^uBUMR#pAu7oF zeN>1s;9n@nLn2TIHPnN{$3-RMn2SmTxEX{TM4&No!cE21U?UGIK>Vl+Gt%Rji;4v( z&`E9vMS%@0fEswG4(vvFGYHa@g(eANnzGzr;}oIB^+Jt1am;lGgGcw&4WM=csBvr# zs!F@Td7p@g*cJi`$20Ow44`_#Uj|%JfHlAH{s^gf{@XJ^BqhL-zCT_V!er{9G9nO} z8!yCRGXJ460$>?X&GY92)VTkQ7&VViuWofRsN9q-0#VIBn2M@AdmWfSohJ{E-WnBH z<x`_#;bZ+C+-qX@u)a|)<YE20oYk}Y%WGbb?(ZJjpI@`?gOu<7OyGXg^%qwRK()>> z@F>9f7Y9HCM7=!bjypige6){w^aeA5h9Q@OB@nd^NE+0HRM-V(^@6<c@+~>F&j0_+ z3=r!)dPTdEK;8tkhhoG*B`yQMplb!BB=5yl;{Im`)etv)dR;3Z70*FQXch6FA7Qcq z)Z~g6OmLI&))D{ZLB{@oRuD5@WW!ChN0@pm5#(Oq886m~!JLb?Hv3=C;L{6EKhO$o z#|vS&x&Ij;mAyx=XdT4d9WO%R=Hjb-|NsBb=+PS*0U9JZn8u%fFpa<X1_y|Dz@zyG zs9SvzG>&k>v-{i&W-)MsHWax~@g=5ASrrJ%3kPH%g(S)OGaIbEQ3g_eysd&{cWC|$ zMJ|tgi7B#Wz{VLtT|;u=b2k9wna|P?*Th3z1M7p4T%GlSjawoO2^-QY5I?Z~6sU79 zR6+s=R)LUJ-~aXp`A`tzBy#GIU0?$)NI`<g2I3~l>X3A>k+o1GUsiy<>7oL!Lr881 zh=C2%ff_giVxTLm9YAs;=eQpz%<f7;yzB`z4%)~ew+<-+8`>cWtwVIcMLxI;c)|V} zR_Om{23If|U`gK}FW$a_%dmrGR3I`pUR*}V@PlO(z%rl$cn3mC9;5d{)mmeo7ILl8 zr3ESlQEH7aCJ*MzFABjD_-l>L&&jJb{@cTAjgT0S{h(SyO%PTL6Rb7<*ZcJPBGnq* z!mwK7|9`m2zoH=~SG+hQ05cg^t>M$_i>NJZg~8)`kjhbXGuRm4886!4rr@e3(5r_p zLSTcS9g;MNK|5a9!VSVzFA!TFeC8*!KA7bV$}AhiAY~rO^+7aPd!ZO4uYuMvede!s zCA&W00UM_Tbq&e&!CBCnqZf}wA+GT+0hdhh#wf}4K^@q*DWZ_DA-z7Z1M3fgI_E$! z#5okz2d_Or(ZvXH5;^t3DzE_uL?A(=191~&^+7n;$XuwAH;cgDq@+Gz0~;s<H4wBO z2$ZPEt`D|*fWqvoFvQE25cj!KSRW*T4XqG{)(1A=;@h|4#jhuzi4{kF0e=gK(2p0- z;X)>0AxN!p5iV)~76ldkdqHBfE%R5YAeZ^mR6r#omNLH<EP=nw-~W)*G9O+dXM}<5 z1(o$y+^`ZE_f!iwz!0-7%Xz_tDYR6Ug&I}y;yoA4D547Y1QcVgg@Rn<JLAPlxGA^` zci#$l!(R%;lsOPncDzW2n?h;HF3Ck^$$r2Ul<cnwKuRx?OZG;v_UQtUT*I6X&ei0X z>_%YYJfN;2xn%$B0`d$e)HS7f5Z931(q95LZWli!Y)CKJQ^5MG_#uJwEEnP&SjkTM zjF|}7JS~uWK-s^*v-yWW5ihuNAEFZRV(G2_|3Oo8wGfNo#WlFY{^I8U{}VhQ{m~b< zAspWyFD^n^6)%q8{Quvx`xt0a2{dN!*&XfR$gffS!I591`T=ZeDb_ItGzATsR6@c& z-FF}}G~kh!Zq_&V;WIP~Kx60Kpcxv^&fpWio!%E5`862$HC<E!9Qido1o$<5R1zHd zH5?Q`Vg(>E14n*M?;XCq&K;on8ig10p5vOYQDFxs`Vi2V2z)NoM@4~%!Jd;&pp<f- z7nGe{R1`p?D-Isr;Q1Pb7d_0#^ECl4YM2r8H5)*MFX{6&rM%Rbuh9p&w-aN&1{BDk z`I;>}Obi~4M?kRvnXh^52%fLG1KD-}k1_Ci0nmD0(5k@hU=9!MiyqC7e!%C8Kr>FD znJ45~Cuz`-^?Dxg!o*Hyk4|R}(7Hs>vL?{PP!);|pur*m(E2+G@MHya=26o4EohNY zH%O<3N4K;`>+O;het8#ASO;r(bX$W*PIW!Hy#+wycKGHb{XmXU;$dRgWdR!N> ztr|M+tijK~z~Io4E%1UB6cpX}JzD>lF7)W;gQ)9{QLz9mym9d8E&<K)9Z`sXd50Uc zh;SElCj%siK<-z7x!R-qr$_5;{+4xMn{revjNgKM<>1j>$l+mquOuLC0!h=LB_Ow_ zaf2q_vIRhEJRxq@_Gmt=;9-5QbQ5S!wmVz^5-AVxMv4Z=EGdv#-6bjx9-aCgo%tM~ zrGFq_T7XuKcz|Lk{_ua%8%X;RAnQfhJ-Qh^m=7KH=w%T^tX&0#0LcFmQ2&G06M0yl zDoFw_Ck2hF60?@n3FNRwF3_YgWDTkD0Z?-3VCENK=NDw=7w{M07xWeYuc?HtPV8U@ zEn0!DJy!rZSrz7FuzR3OITef#faeey!3&2VOHMtSt0V+Gx{JVTGmSjpYZ^VQzw@`B z0mU0^DPQwHfnsIH9iVw^kIq5?&+cn4_Dh4;!hr${v_c%b81Aq~_c@Q|ll&gm=gV|3 z7c}N@g0!6QXa%il1TAuGe(=Df)8of$i(Qa4jXyoCPkHb={ldDY(dG5-|Dv9D(8WTm zFXT9x7<@oW&N`Vv>r+6Bo4QYUbXH5eki+J*7k=kK%YRm!gD?MqtT#^Z=w>ax1ub}8 zR3bc@D>E28x^MEgfXai0%0dSImSv!@=w{pnTKEN8abNL2K%)7_fBu$Eu!MJp2WZ8N zM{jTms6bQztwWCh&752O7d5Z}t>!AxXnw(1qTc+2sWkGKb0Nb9Mvv|q(CQJ;RE6=G z7e*YQNz)?<(T72@AUOk&krp1>KT70%y1PNM^PquS3!m=eyFhci|3#mJ7V234DCKOZ zE@a@Ja^Uq^qXVy3f((Y5d5;}tCMa!!Fep6;fHEO8kv4-DhJ!p?6719MDB;oTSm0^N zP^#e3JrO*8*4+sjQ1<NP(7x!=?QG%E$>GuM9MB0`fAwNNXr3D4GUNX(2Rynzd+@t_ z|1Vl@3-&NOXxSiWK)w6)G3OcvkhlJeMuT=2b@P_I1f_#xpwh&_qtm;@qjNXdgPqkG zpyXr$$$MuY@dGPwTThn6dUOX1c<e||g8)!Y|NhG3;4fy6?n532U)XyvU-0M^ndEWs z5fk3*4=$6X*>RM~&#Ymy^q`;;0Oe-`kM5tKrGnj_0zTdD5}w@$Kx>4oKa|^pg4DsI zm&FjACA*J<n-<I--RvH{G8{gj#qOtHOqBpFT{C6?Eno%bQ)nq_5P#UG`xM9$1<(?Q z?(;8ZGk^+pNEvGo58iJ8-k)UP*?qvL`xI=&c=t`?|NQa}koDrwjVPYoCtvu07X2Z1 zet_q*nISU+pfaNZzAnq5!vd+$FaU4vI0FrD1K;iwpuH5`hhEG9tw{y%7cu~^K!mJk z1qFzOPj@BKdRC9_!@k`QJ++U6Dk{)w))0`+&K#8juU;K1P>wP1=)UUHnWLfsTF&YN zUg8Q`X>5JD+{&~2EXXn7b*(<uFUmE&P}jBgIx~9Mf|oa2dh~jzdsv^~Z~Mi-!0?*S zV<%|;0%%XHNAp4T7rd<Cg^2tu{h(k(UeGE6Dsp&1D}Z0JfRY|~O{+&|o`7GkiM>bn z8u02DU(o8~I0=vL^PbIr1&TsEy5&HN<}QkXx^zc9yRU#|1`dlcF?jZdGCCe((PMxo zGJLCBH?uG?yjJ=z+HVOexw@~tXh1QrNQ{XAVi<Ult4}v5jJj(;Tg-A)3VfjJu`L|q zAuC-wPk{=t$0xys7%1@xgoc6ECPG$^G`~@BHU0*Qy-q{V?vFm;qWXtVXQ6~|cZGm& zccOr2cYuUvx2J?h_aRU1<Nm!mHa^x5%0oS@Pn8FNR{wZ(ALbWi1}$a;S2Vtz1p=PX z#eA+E1|H4Tkd;5op5Uz$%%0tbzP&Cgj2_+Byn1;oUMvx1V({tA7I+ET4&$kP#>e_+ zd59yw03%ox#AHvX$%O)*(CWpt!_cGK7-ELqi!@PCxm6Fb$Q~3c-Pb+3&%N+~nSC4- zy@<8s-A6sOk9%4l;cq$yZZsc-EU7<=ZLR7nCU6odG4<&!Q1@(p_P`Ugq@MV-s;A6B zk=S~&gyY40CQ!Qg;L~Xg@-S$5xJNUpqe1CqvIxjCbr8>(fkVNg`<izzkKKz3kQ8V! zQ;bRmsKf)WL4$S_UMxHTis#?Q!SM_#yFqvdsN_EkVnHw{{=w^0!G)B9XZKBTA@$3* z^<;^oN9)N__5Y#*=1dI789>$Re^C*0CI-lMU+}WA?h;T30JKlbqxD;fl85#0B3bb2 zs%tOq2!jhpG-W>B$Bi$&$P)sE;kS~-9@f8$H~be}X9luC33R4`=qAv9C6KNiAU>#o zhZp9s@&!_!gZ6WNwZghzai1xubHTdZAJo)C*{=v%&wZJRp;HjNa}vvb$<7!Rh0rkY zD&3tPjc>s1`)<~$m!P$~tGP$_Cvf}6_c&;eOt0_z7dO6vR{j3)=yW~KFTlpH=_>Bg zTp_?vA_^Z((Q*Y987E%6`w3F%EAP?G=+f;f?$H}6{y#uq0*Ll#uGJUt;CBuc_vv<3 z2kjI+_!HD^><-ljH_o9`^x{Nxurf?R9jrPACI*k=uIEAJ8)SWw>wRz&(Dgi|4d{E{ z<2dHB!d}<&9?iASK~8Z!@6pRU*%B0n+@Kw^p#9^5Odg%C;>TR&89jP^#s7<jfHp1l zvikagR55#WhdxJk?Rg?xyUPUR+6(^~89aJfWg+H(f>F>}0#v4V`<jFLS0Nzz?l~$q zKpD632q;>>y<u?r1yv^s9=)v3!5bry_uuX{W`gd&)c|SiKK~*eY!GPqGiXIRDCI&j z0+a-q2X5K~fVM?|_VR){wV?G?h;VdKaR9Bm?-dOLZ88BbYF0h-|NjJj0cKE7S^?B- zGXQs>LD9JCFE|>>S=l(>7!)*H|AB)h$`=&G?9diKfk*R^fcV3p{a6*dKv@&iv@>`i z`xmsyH$+7N#B~7G-kL5d3NO?^wR*4U|K*@;;iKa4;yE9*fdcX`xP71i@^3He640`@ zPDYR3Kn{=YpU@cZ_2&35nq>si%v$XOaYireNgpN#egRM{fkLwr<T8FicL`8A1ZxeP zLF|`>n(u<sd@hLj(oplekHgJIHr1n-^&x0G2kQRkZQdY95w-t$F*FPmUOeW-vj5o( zYk86f+WXYY>JPRCr93f)?;M6CAn?wvZch%-_7_=?ZpQxs0-%P2kWV)QxY6y=4c=7e z`5(MR>M*2z3fhlqd=6T|xTtu5Hi2lkbRPnB0$e@1Z?;~lba(uI1JYh2c0a1;|C5f# z7<FHpgS1h&pVjRYsN6aXTBQlz&wA`PBWU+hK=fhocm~M*#b*)j_vt<a_5!FC0oqUN zxeK&~78F1eJpZ5c>^|iA{ej0p9NTF@n$h>u9y^I@zZ=|skLEWXpf$$|#+SNT!*4S& z@M~NI@fr9v-hifUBRKdq&UkbNYB*XS^ymyU@aPP*aOC#^u{}IG0|Pud10z213o?Sv zld!l28YPT8)XB<sn~4Fme3}2)+tAPaf`L4r`6ESTBbgY$TV?n)K7ZyHbQIv%IQp4C z;+0FMr^9Fdh)11{9H04P4taD2DtzXTIpxtADDjy;=F?|>!5kHZ&-@X$KJyER&WQxs zA()~f^O-;9#b^GQho3=P9t1vvmQ0I$<`*nck@(Cn7^9-XAM%Pn<PpFAo6r1$DJmLe zoM3}A_%)t>=8w6@A99Od|4tbjSgl64i;4!nfQyR2Cw>7R6$S9#6@EcSmrwkHo*|u% zF`#0&`H071NPZLu_2_=%(flT%nN{W%69WgRr>a?^60j3=h!DSKjf#T{s2nqR@%}F( z!_EXy!P)7o@Z#f7M$oYvwt^9$PP6NQ&o2A|tZyQ~8Rj#;fa%|Ga3#kt$l%fGD!?!3 z0Ky9Vf({1!f({P+f(`*L-QEtMEiF8b{}1wO9OT!y=?JcwBJY3Zk39aFKO&mtGk@ec zevJ#C`6HM=^G5`8@QWPqT2;4{Bq=!qA6;0~j=f(PiV17`)$ey7ez39u7i1pQ=W z;153lvfHQE^?*nB34TEa;#>i;-H|{1#%KP>`(Vo>&w(swfx04^gJ0wj%oVXGUUYy8 z*=~?4963C?LC)~t@PNDH)DO5j_ys{*M<7liH8l7&E`!1X<^+&i&_ja(;SK?)I|LB! za6-6)r0{^)8hM;w;{w0N4SeCy@CTGD!QmhQwI8%s6&fFhz9WYN5fK4R3&$b0Msq-8 z0_u1qhX}@=fJMlQKfmE_P=LBY0TBjv2sc2DAu3JW<kvU|O%KOGX#x@npoDoDnn*EH zW(mR_8c=s=Al$L-8$2vXaR;^>!U2jOaL_~qgAxVvXMW`Hc=HPs9>EG8olXWIcYyPT zM|XgMM`x783qA7Oag$%;A}Aaj`NJ=K=8wG2uW=aU3P`X(oPnN4Qo!!;1{XyE{2Jgg zMFYG$!_fldE{|>x3sCrg25TxjnvWzv_sxKZGC=J)P(k77;?eyHbb8UOU{KNW^E1DI z&}aUbgN_>*`SlN#^L^$Qa18j&A90Xh|3VqFtI+|FfX8Qkfgl!;GPs%$bTvL8HK5Y^ zAgKM5z^{LZzx^ZRR3XO*sAB&1`=GV<-GK&(;UdrOQy$v>8Xn(Yq7E6kwj6+r^?5Y@ z`ohS-P#oc79d1#g-R&m8FTm!=FUaKB=_CL;jKtkQ<Ui}`D<JQHjxgvh0e9RSK*Ko4 zJbL{#Ji9Nw$T-iy@SnBq3KMvY4^^2*bG-sXDF>)wY542^f8*QW+8uFTg-5qLc(08D zzW|#@HxF~Sn?R?FiUFuRS9mf1-~azD2TE6ZG#}>hX#VX`a}gB$2}TD%y(~}%5^_cd zsG^2pP<y7il7pdy{lBP!CaC8MIxPw&3p$U8b>UHb{i)_R72Ov>tx<y)7r?DhjK*o_ z7f_p3G-)oVeF<uuda*zor=atTI%8B|^BF!W9ATh=3dqqJ4lbaM*hj=(7Db=VL;=vw zanMebG?z|AP^%r(-SzCw;P7aD%inSeRFyUU1?{=#Z-2zVz~I|$0on+o;A(u*rTeI7 z_jSkab1yPqFoKUoI`~4N^#Fe>Xv2(0@@0?iIsp&s>*W%lZN$xW5*(o2OKcvUVFGC` zohkvZy*xl^<GfF|pM+=kK@aWY9@Zzy)j{$;-N!tee{z5hFJSZRwW$C#4cQ&}w;xIS zygJPlq?ga9`=m$rMbHRE&2G?+m~$Qw8+^L?K>bmK+s-~`WbgnxtW*}{knR}J2ry*u z3A9NSJOB_AA9uL>#EZs%p#J}D(2mva6EBKEyfbHfx)1qiAN0KV!?XDZ6MxS&1_lO~ zZcfMUgUt`_>pC)6F*N^>DrWWQb!0i5=Ggo*ri2?r>GQX)0S$~a|6r+!;@|Gbme%|u zrUXRlmj-w?|6nN*;NR}Z0Ty*gYyP2MV#UARkqOL)s1kPJ-|ong=GgqhzC;*A>6P%L zHUF?L6-={qWGUtL=yhZ}?AiQ-xyB7mrx{oy$UYsg$!Z{_9@d9S6hKLze>+DS$eF@v z%|G=^cs-gAFnL%XDt!StjpNLjwB|}3y;5oZ?T&hBtp~t|{iHSj&@1IkYpyf^jd>%T z{R2wXp!0tYyk=wou|XKT|E>8=f=73egirS^P>Z(vl1KADaC8cJbXN&@F#iW_XTSK< zt5-zaqxmNje-G%OKgVt+q#)&Q76A=sHveR<k#ywW?!*EL8vYgmMg|6ur}$ggK+>IS zR3KyK*%F`~vJs%s&H$gz5)}`h?$4mZFdRIZ|AK8c_UWz`@a?|r->XvxQe^;fl5e-L zXZKal?sJ~Zzg`Ib1I;R*0!^)Ue|W(RZaQ7_>3-m;ea*-ELW!GC_X(fwSH9Y(JTLzB zy!g|z`>e0^Sx<halb{4D<J*1ASNqTeXa4OhOlgkROr@2c&4-vgnqM-OzV@|#S(H_t z0UBsDFh1#H{k$Z{k$*dj3dmE?R1xi|{mtXzKOgIV{7rHozk$YpL2mcxW(I8{PwV6< zc-aO@Q{AUtr2qZ@-^cm_f6FhhlP`m26q}DE#K%Ryd;{Jk4H9|rkdcAm<vNfS>#wCe z9?g&bc{KlGt8sZP=*Yj_^&i-Bb5LlO82VWMEtd1_b!P<4e1S$0z`^Fx&FplXr6LAA z@awn}M1wXl-(1fC-c9ML{l}x*TL3f>pncHe;(rh8ALTk8y*ield5O+!&?;AOrZ@KK zWwH0{zT(l#<M-kZ189^ht&=71wXkpZ8PGVj0yxA^zcAbgGWRfO{M7>#Q~{tP8zMkM z#h^$A9YEj!s`x<D#V?lbf{xOG`%?~}Swap_hrIhBsF+~{O$mWV6bwAN9YIqkAOQ=0 zP=%TX+CpvcV#;2yWuP(uJkAbEyC4iT4|LKK$h_uC2@W5Sp+4P=Afr6HPx$uAICyqn z_U*p>;{Nad|2?e_m$<`n6&om5m2!e|m8bRL(ib2}El{?D_a`0sw+H?6?DhJW*8D4` zgfFf6mwpL{PxnR8fo_j|wQu==Z1%kP8#ElE;n98Cr!z*y;Ki~f*j;<(j033dR{%}? zTAwOO2hA>Wcyv2~w~7jRfCind50*QDDs2N$OThv(I|MFUJ-W?3dSw_uQz+o^$8#@| z{xdQdA4uzDF$NErfCef-ql%E>3DBfT_j!-*3omAG0XYSJ6dTBB==lf+povq^=ntr~ z@yVkT6!14e$Lv5|RRwmHk;mSDpgFz&|LehrB0K=qF~=Pt#|Jh4=O|W!&3RS|cywQT zaT+w50~xYS0H5>~7kd~~el(wC_pm-&#_s_>8Uj>Bc`%=Rt-p&4WM216(5xmxhTrLx zM{g*jhxNtsN{?P1A=ptRde9R(%92476%KDe6&ZN0ln;C$3~a7c@V}^wBB(BJJz2u~ zLh=nGgHJC@EqJ+BCo^as33N&sXd*OQ;)N&{_r7r31gcsVY=kCSP(p)ZhhR_yW`It1 z>AndX1PA~P-GiGSppJcSh>F6C8LvPiV!f;x;Gsokk6v#LkM8T>`f37r#L3x%U(h)M z6#UK}9-Yn+9><*%z?FI@NCw=BbWt%#<Im^)>j~;k*ZZhAq=A|_9-tKty}bIWpyA~M z9{jE+Ku%DA9_#{2xE}uxG}thL4qgLoO$Oy41#k{h@aXl<0FAd8fX=W0JJXO6y2J&v zC7Gkh8h(gWw-0D)h2W<Dhw`A&yYH_+2SI{Lzats(kn_JF^QRz}fk)m9JfSm#H$A$c zry+m_?cl+c`4SRbmY~s1&^c$I;JWrA2t2OX>+JywJ6A9V;(J5T%D`3(-={&=d*Jnd z_j%BKBiQ%G3}D}b&%f{hwGTlv^zdmuXl#Spe~uX*@Xg$Z!Q*|9r6<VeU7SR0A@|-5 z9Vc>C_w4@Y3EGwnUgyy1dmr4COTF&X32(`P)@QhMC?0pc4r<4}SbmR@!KM2HIJ?wC zT44Mh-R=S&oxaCCI$h86Yq%ay<F9u;?$hgf+_C$bN3SpYi>`%WkHDH#9^HH%-ER1_ zJbw`m(y|kLBHBLi(G%US-#uCnIP$xk^JMnt@L={8_h3HZ(OoRyVg0eZ(xcm1!o&Jt zNkOrQhxR#eL+<no=CuqApo;Ew6llkCaR_LGP?4WUw>5aZ0cbkv^oyOpKp8Yx0%^?+ z^aKh2A0FC2J$l{2r`+(juLTzZKS8bj<)GFn^w1UGZg&pPZgEg0Hsv8`IX!gw`fczr ze5YU3KLoX`L)kr=Yvlz%a|`S~pjn6R(=Sp%GR?K$8A^0~yN`MFimrib@c~Knf=2Oc z|AVzW_W^mn`}7MVkPNtf43_Y)K2@yj(d&q)Uw?rML*}&OEF4M<uZ91MK9*r(IODic z3FJ8UwcscS{f|61@EkNK1zl+b^)<%18S_Afyx8)bk-?`k^}EM$*Z-gtam@8OXeXpR zvT5u@m=*vwEe+I!1{J`*>Y#~*-_Jm$-yCqm3$*YK?`aOu@iS1>BLOPs6u@Wxcyvz$ zuRQ>*&@uGr_RK(zPb>?%_}f2&S~1-xUfg=d$YA`<<9IVjKgeqyoy8Rn9mN?Q-N6YS zpwsKjJi5I-;3W?%xUd>J4{B)ZGe%I#Ln<|kJv_RD9l+)pd31YgpqnRw#k}$$&+Zd1 zEJ0@Vvi8Y?#@CB2JdQg%fC^%dUT==H&SDLZPUiojky1<y4&RQ04mkxa^#DaU6G$6) zT@)ywK})~DXF2{CJu8Li+JVauP<;!TdW3~y_f2rT5*Lu5=^&6hCq89lF#eAckku6q z9iYV^qz7a(G$3uBf&#J{DIlxK2}pC013x?gPvW@BfdaA`Eg-8w0SW4gLuNWX{;RS| zf|kb3mqZIKc>42!9Xbo@lKk}OWql(HG8jB>1Fk}uKvDExbgKlYQ_Xq|G`G^p4w_K` zPp0&;z5&f>bh3kn96Wl1HD0iM2Ujxw9v;2H9xuLqgYYsudV@1w`~WXh?LLlhAz}jA zA=snw4XDlI*?ogwfC)5;t>Dosnh82<1Uxh5y&gO>=Ar^#WeQ%`qyTE6^@f1XoC2NY zbMiZ=loEXfK0F#E;PnO3{{p2C4$uiCAHb1v)3f^r)EWbiUQsTnH4ZPHtb<wu9_j$E zd@=wvk`;WqPeW^T2hb=)!i%aOVC$-()+M~S{TX2$xc&mKKLpKb%-;g7t6WqZJi31w z-}dOf*eQS9odtCAez&Jg_d!SH1CG`QN;5j+Id<eSGB9*|2{`Tm9j5T@AfqF{%YjaJ zmhOWGUvRBpEK%)t60zlBU|3MfwHs8aygbRkz+lS^5dgLFUV={VJNS~tqx<-`gN!9y zyFsP-OVGNp-Jqt~%Q*}T3>RO5q}W`#y#!vfIf5I69?ex293H)13ZR|>C#apR@WSaH zBSWV<N9%!7cTk%b?6hx(86i%Cx$7{*T~ggHDkflu@wX)Z|NkHCB>ooADPsp;vot?u zY(C8NS^?_m<`+yQ{GfGcT+J_xN?4nJxRtW*2Gz|T-N!p6zzuC56$ency7(ceZUYTZ zKqe}|xgC;zq3!Dg$L<&4nRL)$#4TSyDGqw(TqkHu{WNH$2)M(=?eYIWTC<HKL+Lk< z)&u-4qM-hywX*<!D>sPM%laME-UGM)j=QK>fSm(NUJfs;W`HXn@G-l3A3(Nrhk%yo z{o*LHf)|9{AXgLKoX;l)YSO8Iy@upIpI&DTkKSN~7t3xlf)1*+_UJAKH7GS+)V>Fe zxRt2E`%9qA1{&wFfvD64HGW@&gH@G2Ha_rLu=xjTDUZXqqf9%67#JA%T@SV%C}lt9 zqN2d~nydMTP^kil4La~cg#p|s0I#5Ku3%zdcr69qO%9gtbWu?O&DJS+basQ}Kz-nD zNF@j9b3%t(!RZ}b{s#DTAM9r8bQI`zQt5OQIqoO}x+38_6X>RiQiX0W8IOYx6}p`i zJeW^-c7hICb`tUIWN<w0AfpG$nY|GT9=%>VphhjCxeZ!hjEFi=gBzSYLHW?&#iD88 zmED(px}zmLn}36cHH1C7s|7rJMXEfzPrV3y`~N>^oW~MNZxlSn1Co^S>2><&2vfla z>aUh?cy?d#v_4S!#8dl{$HiYB*1w8MKqn=FEdh@|1Pd6SOzY$c06E71RAGs}gC-0Q za4m_FFo-$4>Z>p)VQ}Avq<PR#YC!zq7w1>~|33km@SzmAKMpz{7JQx`sD?N4==M~A zCq!rskF`ct097QQHZb^rS_^PR-05tP2FfnrQ(pgz=7QV-wF*qZ?2F_8t@$<sjZYYW z7wL8%|G<CHnWOm!W2rPKOuA417x=(`u$rg&KVvB;R3v}{vW^sNI>J0q+1R`uxoo@% zYW0H3d&t)M7pV*k44?P~7(hpI_p;W5)PfG3h8zsl?V_U4>7!x*>U|l2dtU~v2TCNH ze=zb-Jpf9z-~uG+E^Ln3=s@eqlIO5W<3;CBq;4m)erSFJa?|^D2sau3Kkf)Fr#me{ zBRb7h5}<ibP#MVtEjK~k98fn|^d=)ir!%Oq1dYiUfQxTXduAu7K<9To*y+sDeH>C& zD!|LiQuh6zLj1KQxVS83-w!ImUuz$H&(i#yvH3Wt#B>H*kFCVq4=$p*4|iI_eOqz| zl5`TF>pH-J4ITdmm6wk2)1B6+1pNK~-=p!(2Jlu1)?aI(o^D;h1RBx)=+phmqx+}v zH<#{zoh2#;F1>EdpmZMbLgDBC|DYab>wyxfP8SsgpI+6cYe9?cQXsR(3NOpqV5jnU zc3<`A^?mVT&cFZvK@ka#ISWv9Cda5)w4N*x=ym?T^85e)|4Z0Fr(wR{<kPD<9b{TB zYeet=|INR-%6T2TduDJ{GB9{DpZNdKv-_)ObFBnN5sPPcDT7CExB_?_1r#Gf9=*OA zF9ffH3eOTTu+utWZUP;xYy1r~ybkKlalCka4Wz2{mPfa%hKIH*N2!oUx2u7NwyOYW zR>al9L)%pXR7*@bVEheqI4)=)6+Abt05YlNKxwF}r5%6kL{`w*M67FjK+|O|DiO^; zxcJ-SSs55Sl215xPw6lLJNv@_N6o*v_}krB85kV9r_4xzi~eBdpK`ENz4<p2e=9!| zcuTW_AgDm@WnH)i)D(lx$Sb^5W@TV#{=rfz2Rf${a!x919jX!ruo5Qz)}xFJ49&lp z`CA*o6<a)bZ$)!8q^ryA(d{hY(<|fX3pyb6@(aTkkkL8|Sm}ptv`*TyH|QV#b}sNB zIkb56>AnOiKc9le<`jIjZ+Tw)4H}jMp8>A`jtaJkU>_NPk~kzKaJ+c*2C`M22kgsG z4Ub-5ju&@dfErVw93IWJ3LKywCI`IMmIken>OTD<=ptmw0yA1Yx<eJf#jPd0`0MuN zAfhAJ4qCnRV(v{w@NtMg&B0?pt`cdTpd=6q?&$D0tp{Zf*ty@`z8XZBs}DBU^(G_3 z%R*)b2555i?apQJ==E0s56Xg)E2pdR0nhHMFDfoz^Vv%yW(J0qll(1uAS1fZLQV1P z_GNf+?h;goYllx~>I8lP*A7ss1gFUVObp=l3%%hApv|;Dz{h3DPGVr_bW!mDrQ!h4 z3J(vE`hB1QN5^J62L9Gk@UhgjKa6if$9G!)^S2~0!Ll(Z<6D4+4OG5@^S%RUM$3qa zfuXrZ#e$i?1ysaA{8n$l0XoLqU%{i>-2f?-oqh^QWsVT@@uf96(D~!|l3VBuSZa%1 z;L#g8!=u;t#EV&d3=EFV=NVl(Yg7!tiOokP<3-7<|NkAE&ohBVJ$ge=fEo=MFLIy# z|L@y<4wSTdLFZO>pMP=d7f9vvzYvw(p$*_9WsXQvKA<Ci;iGkupxsp-s7G}2w+k{d zFud@&4(jiLnyklN8$h*dS|?~-ZFlGcu#sj6BYjUGr6%kqf)*0L_;rnu0TNGVL5(?i z2L_Mc&;XBae}@;=7a19ve+ZQrwH_#~No%gH(JPhY-|kwM)_S1i7I=z^E3J7iXk37y z<P=2L`4@iQ{{MgN13KBRGxmo^cPwauC#V_70IJ-Lx{txDbXjNxE&vhZ0af#eO5Fvr zI2@E}x(|1{uJGwh-M}y4x&oB8K+Y{ydbtHOODZbI4c^2i&dtPdrqgwYPiN`@egW4V zAax$yz6_v=B5$w_j^KubJ=jUz%pTCjL@`hEKgLo`uu{-cIF8q{$6ZuBpoL&1XeC}J z_}o_)6>z%t=<Ws8VW93q%2iN(I7bE4`~>Z*106#b?-=I@UEDk&xR`+fgm)D&Fc89p z#S9GS_&@~%12)`V%)o$-v8e-zf$C^b`vWrG3F@SRqRXS3HGLVhN_J5x@Bj@FeLU`> z0&cH^`{tnectLQN5<D>;@S^=WxM+o(6Wz-i0MZU=ErU*DZLU$t0F|viDgnFgK!^N+ zyL~R*he4U!;6>O4aD^!L-9^O#6k0n#?RI|G8=WyKKCd~ByQuhpQb==+iULDPI_PLt z&}pw6MaGEK46+2#_YuXCLCULM=wD$36&eZ*rKO-oO93d7_FsmKoq@dV*&VIm*<GyR z+5I^FFlZnhJPihF627nik1ceA@++vpyAzkqv$5D**7jd?1_u+v86Tvv>F4j^EkH>7 z*7%a+js>79v-{=?p(mhuACJyvus~<?3Xphb^9BgDgOP!uqxk@c10Ivdyzd8eo~D3D zXMu!AXN3Y}PegCVN{_}jpb-du&4L>q-K=d(pb_jU&#&>(qx++)@&8Z!@t@N8^*@(0 z^J{$e=$3Tpv^~CwiNU4Qb_ayox`_$0n(oDNP&Lr$Iv<=Gu&z<_==QDu#4o@IT6MO* z+moZycRPRh$xr-I=Uk0X`t-W42Q^$7uK)k<0ooAiAn{_!Y*0lEo*HqT51J}A@ae4W z_vx&i?zjWgH1+5eeJKVS3j!U%Ts|MPt+%uGzfWf^zfWhaxZ@5vaIG$S6|Bbh|BDc? z63CXc(El$?SN{M1!U1fD>v@k(*Y!S~wdZ|0Yw!DX);@>Z&<@dk{)HG=cXt~oVfbjf zRd^o!!Q#{FD}q=EigdpU(d$87ML^f9fRof#hy||w9^JmvA?IHE^qQK3>~H=d%-;mE z*t6F`*rU_6A9QS}0ca2&d~B$JM=vYr_!1A;v7tVoD<nKY$6kAO{|6o5_S;kY-)q+W z!r&0`76$L}zWhS?G3da!<DhMV-KSste*_xN105R*Qs$$5+_N`K*n|1{i)Ua7(An3J zV?)8xpmyjk5DQd^8NAR~@c%z(X||y2f5^@%Uw)rX#LlW?pq43U?S1I~7kih3`=z1N z!DFJ3gCBi}nte)U1@%ZPFEBDVcK`S24y*8hM2Cm=A&-MUSU^qWmV8D~hv7SDUJMo= z9^Gsn-5iem0z6`#-63KeouS)3z&qm<I$U={SQ;I!dmt=>4%fXN2VYrqgzn=Pa9#h2 zU*I6WpzC^mP1paOwfr8vq5og#+yV`N@VA172w(i40ZOFU5)h<ODcT3x&(iCA{>9Zf z;1pT|I-?erj3EIiS_M`EO2!+&ih4mo6{2GBV&by@|6j}@WQ8_ZyYKlIMIhZC-EI}2 z<-#Uxj@>bA9B3H_RFZo1ih|BLfyA8M98hmau=IUr?027D-}64buJ0kG@Reo%|NlSk z*?dd@64rg76zHLS%H!Zq7LVlP9@Yo>n-={0|Nq7B>A1oGnoXUALD|&z{ELgTF~h(J zoG3-7fz^P*U=3IiJPdl5g8DPQ@}SaL@f@Ud29;Z$-O(DJ-Ngo;-PIP3prZw#rwYJ^ zfk0Im7=!9F*m|oH74S%?gGV>()cMc?4}5dfOaAbapZV*3R1}PFcYg+HF@TNUYX??% z9Q?)N(R!(b9~5Q^FQOKKCfLD;>7VxLcCGN}ZUu!6=%imzIt1Ut(0ZUm!=w8$zdVCe zw+j<XCriJ_|AQXAK>}!stxpu)165%f;AKq5JrDk1ay32)YTsU24YH*dWU`00Zv`mW z`NI!*w4SVB|Lno9b?~()sKs{iMe{>O5AK5?p#z`!BMyA#k7TvgW@7m4!mo3HKm4R; zGUyl%mLhYHUU$%->K~7TFPXq@k?93hqZ2;!M|k`I5r01OM{s}`EFR4V1i<TJ9>3;w zZ9PyT_nAL}XTHb(!yeYRiavuxc+wpC^A7MwANb54cj7a@VDAx7{nPrt#L7eayGQf0 zKcIor#(&@qiZUL}$J9N#>wkcjkRcr*Kba9UVGlZX|NM)^XF!c3(0QW9XI@x=IWeH~ zO2Jouz*iK4;}bF;U*XZsdI_|?&KP|8R|3BPlSk(o70@mk<G1_*Uf|1Dx;s0-2S&T7 zD0Khj*8~mF2skP53wVKt)Ez(~0UoU<`CCA3S<C7K{<bNg)Yw^~QqcVsUVbzmWCG;~ zB@gCvkcAKbMNcq-mOFNXOm96<%EQ0iMa3x1(uGf`M6laA!Q=mNkLF_z9@amK4!w2& zE$BG-jE#T03!jKbuLvKgIjpVe9Fx|WCF0TD3^K!`+sDA-#r)HtFn|bj<``Ibbb~Db z%~ThFOtt<|>e}oaW7ZqM*cqI#1GKc=<NG6z<DhHs{(JB{9P;SC@L%-ne@2GaVjy+k z#qY<RK{vlL{1-j@AJi3qm=3kIH$+9r<KS~P{_q13kMRq#u=5MLunT|)1rT8Xbzxek z4m->}pzvTm|6lYpXge0vjlCf%X5dh8+yQFyrFFVk3PII_giSyKB2WR3=7VA$AOpG> zm>BrC`>2?JRuF+=F0J)si2<W`%nOfmprDux4x3IFD_BstfXxDBmk5t;A4`iDUf?k% zAC&}9>A-vnJiJyBkFs3o40vi2eBVq0|8^#y?vH8U)i3<potV-(9hthFSUMe9__sT8 zq;)!S@NakGO6zpw^5}Nr@#u8q;os&Y(%~q=zs*Us!%>u9z)6f>&{2$Ez)Ou^&{K_H zz{!kX(9w)vz{`za(9?~7yHi+Nr(+oZcBhE6PR9uT?Osu7j-7r{{M&<~96Q5ey4?~S zJKYlax4ES_cDSYRZ+A;ebL@0W>vqd<>~zcMcFS?>bj#^>D{$;|E9iDBaqM&}>2|Ad z>~yQ>cB^shbgO~Zd7hnZ;DVvM4KzXN*$JjRy4xmzMy@--lt*_P=$v!UPB7)s-3AI_ z&rUGq(cQKJq7p=Tbhm+a^?P=LDUa?p(6o(bCz$f+ZUZeB_3Q*w9^GvxAo@U*M|ax= z2oFSgbhm-$E<3@LM|T^jg7oYJQy$%IFCZ#GRCgPw0C(&JQy$%IpxcE#JHeDkcN+s} zeOxD)^5|{@-SF($38p-{+d!)eJv+gaM|Yb9L?wvw=xzgFUeF1qJi6OJ3l=>)!IVdL z8|Vah&rUGq(cK1`Px0&oQy$%Ipu34ZJHeDkcbf;qOc3SK-4+1hfhdpewg?ChM0s?# zf%27SCz$f+Zp(nkfhdpewgLzbM0K}SFfuT-9w-q?(>?)C4BFE`BGBZ}dZ45TG=yDY z{J-@;NfM~$Dd@hB+J0#R=L68-u4nf-egPI{egPk50q_bWegPL|1yDI=01`tg)?Qrw z_5XjjTY^V#v;(L-vi?!D4K&+X02=<T@aWzG-reodd?dj!4l(x$DqulQfUW1LQBep* z9;Y>U^#A{k3vvt$FUoE(GI(e|;Md%uazGArDE}Un4RQ<&F8rD;DhnWt9+e3Y#uSwX z2xE>)0fezcB>}=%qY?mNY*BH5F!rbz$bl+8)-Thc6?Cfx_{M{u#s^%wA9T8?M1XqO zKE0U|9=(Nvpe;M1o+{w_PJp*S1$39i*%uPc3=Ay?N-RB^>or))jKE_sy&u>Z7+%;l zgAVd)KEnuFB^?1G0z7&lQlFoL8g?Ztn;Bm-8Qpf=587Yp)BWA?+Y!bRDaYm~|3Ioy zwIodV|G(une~XVR0|V%apmQ(!O2E?urr(sA7+m-@zI}4x7m#ICVPbIP*ZA$iukp{7 zUjwxNr$i;em0#mE=pg<KP&NEwYagf;)p~&gw8#e3mF^YY1v>Jiw-+Sz;@SjIGw6nI z_fd~t(Txy^4;%~(FU~fAC!G$1R{kZ<`Tze#4#Xe<(1p955Q7RK>On#;dLah+^txMk z^onkW$OLdQFuVXQ*_hzd%UTT*>%QR8+iL(4?%4-ww1HMVTzJ6%ZejNJg4I9n2d&1v z3JN}ux+jgGS;^k17eE$wpLh{+4b;%@ow@<a|8f=V1D{@2DUb!d;T9gfy%Rt>xtic! z@aXL=0135&ECpSp(c9Z0&A{-Y9bz~{GOHhKGDLGMlmoKnMF5loa>I+meGp|IKn89D zhYG|nu4kZ#E)DkSW$gzYz5;QI02c$pi+Yefj?HJ7Kye)aaex3j1H%h8s00g00-gxK zQoEmmjDx3}Z%0^4#2lNS{06J^=<Nk7G6Olr@!Jum5>dzICx78`AWLWUfddkhkY0h> zAHBUBK*EzjG3(JgbpjVCKb&~Md=>1UsRdB};w!KKJqbD}1>%bUkWSDECeSNEK(PoC zGTRH%435<ctPBh<%s_@i^2G)aUk$|f=$#6Z^yuvci+y?v(gWp`_Ch!y1urt790QQi zx1k)c)#sobkRx9lgmOSWcwqwNfc>W4`~UxI9uH{jW;TNEKA3s|<T0qwvCAOO`A2v( z9t4%5pwzv2J1B?rf>gao@BRPZznjI*vp3+6XZP6`<=g-NZ?MqgZw+N<VDRh>`1>Li zERxLM>I@P2_aYc9Qo!G82od@J!VxTz%-<@{4st;60Z>wtaYL{J@<FA=4n<Ji1)4sB zsL;x1VAu(oNO-Z}D5#xs19}Y;ICMc~{1-L<%E;i6Z0xuLwB!zSM0zh+>wi%>kVJQQ z1n8cw&aMfJpkZxvHJ}YQ9^L*Cpb^i`#u;EWAnTCLx%LITb&;7r>Ht`2<3Uh0Xng6# z-*Qj^BnZ1=s{67B%<9EhwSf2VzBrCkS1xv4p!FLsCgRj(j-d-w@f%-y5r<O?3sx-< z=V{>7b?!5IIDjkypDq95QyH$Hn1P`S)ao$4^kP3wEvZ<wK%Cc!Q<pw=UEt6QhU)U@ zc8>s66B|G-2QhYlnn$1b1vY>hMxQ_%XcIuf6F_eK<jNm&4aA!PY8ioe_d&b`pq9}m z7yg)MFLF9S*`)OYC^Nyzf6)0Zy}clz7rkAejCI42U*i<0Y~W^Kc(H2&xP%8?*}fm5 zQUD~(+zl26*DUPQAi3WFB=M^A|Nj@P5NiUs5%m=pL^DX}g&N$N)1YD=q%9a>O$J0| z0Z4dG7s8qaQz6z&07*21teMvi_RR()YZfzuh7)>0LNE4r!hCZER1bl)y#dt$KHVVS z2tus601`Guvc?i>%?FT#49FUDh&2K{2;bO1tN{tVh=5oF%4whY1v)`l&7-$BfQNzM zMJ>X*O%NRhAmL-32w$C=0`V1C{o0QI|6iPF1N*7~$-1+kLs)uyK|(KHg2EPbg{pr9 z$U0EV7E~sK%;iH^7Ywm(0!TO<$+~E$bsInub|C8_A=X_$vMvr{9Z2X!6{>ZhrZcG8 z;$>iXF&|WIK?3s&M8^k^sV_PZzI!tn;yVG5`t$Ao|G#+E3ih1=FCsACgF4K;y&$0% z+z{)!uYnQ<NYknPVADV`wj5$f0Z6zRY)LO`H%JUzwg!NN|7-=T1}Dn`sNG=o!R-)- zOaQ5J14U?aeFQ_P+lwfOdp01sXFaIz+S>~fdQlBh+I_>LSJV<@Q*ZADkO8S6(?BaU zx-Y!ooD523{t+I{2P=HKzkxPAEXxK}%J)1DK4t-}wwb;kR1tiDsE3!hhVK~}d|SWq zx2$FWT~T!ayk7mY6Tbip8z|FzbbC~IGM_NM^g^SEf#Ea1AOlFwhm8eE5>mi$K;$_< z@-A!~$nxN#<V7JwzZ3s9A2uF{v_pkshYte}Scn%{h!-rxhb+YB*?d62v-uq(e`_pw zOCz|pda=+B<m_)R&2_+4q6esY)SbY{(ER~4=^AGXmUZdeY9Y<Q0IG!#w*LR`)7uK- zf|^d<y<i>D6F}2B{H+IVK&DJJkOqYuM2Z0_6>Y=7u=50H#xiafXqW=jZ0$br;^VXb z|9!e&fL1+bcyvQ`o_L}4;s1XZOR%l{Qx7_J^nxZoUX(P0Q{4xoSgr((dGz*zgkDSq zB?53P*Z*T=fNJ;XWvvA52H|%FH+T6M7+&PIf|D00F+PGM5&@9#H;6De)%^k$WT3(m zByqRp|Nj?1n!t7k@F7zCUy!-Iy&$0%l2E&$UT8jK21@!M-TzzQwzWWPD*y?1AlcRf zwQT}OA|GU17sR#=NVfGuYy%0sSlt3jtv5WndqF|n9hd<s89|yaHNq`Zhgfz2BrJ_& znLO084<HF9kY%zE%LMolUQ>ct1`>K<hhiD1v;qwtfC@)`28I_2kU|#}m`5RTVE__d z3Gp>JFxP?#G?@Ac&Hw+uSltK?%mO4EH~a-nPV|C=UYr5NGpKL`dk<tIXz&75K7x#X z2Pp_aHbz5ioB$FwN3zixYU2iwgdE65ONfmZkZiPr*a#AO5rttRc=V&US3rP);YAI? z#*dJI`2aHbXfrsl!G1gmDn&s>DoFjBrvLw69B%;o(LewZs%QRy{Rk3z@d6a+D1HPD z!hkwQAQQL{Hnu}-3;+oSBiR@ZwXpysVFj`=6k_89Bpah3HiCp+lwsHi8qD$N?Y#gp zVFtJ;2G^;w5F0mugda8`{P+~wya%g4(fI%Wi^ug~KYl>6@dfCVlipsC&<hp}8^NPU zy}bs43=A*S5H@axM1=rII3LNzVyKN^^<khW>~008c#n+MlP=vqOWA$8cYvBupg9na z7a<Vm1PCI6JQCs@kkE@#umLwfcT4y7ZUEW!c_-L+prj-K4JnZD8*nb_W&Hxu46c?6 zK*Fh@RpF5G|HaK7XiWr?*wX;vfX!SFiUnx3bhr*2J{OQ2Bmvq!)7uLYdhrCL6kK2} z0@>8t`vGLyIgn{kYl^^2y&%;R=vH{4R8Rri8vrV%(=5SjZ$9(aw}SXSom&&Yh4gh$ zRs$(u4Fwg$;0_je(6IaZi$}=}4E!3byFpVi-R=?mf(_snDZk*>4>I7EG`K;^ufci~ zp#t0{b>SDB3s&O7FE|6#67>XClHmMlS(w1zR=@<RAMT}r>pzd~iJ<YUwB{Nq5eCrd zl_64~k$?=4qdwGw!%Fl7#K&N<Gijjx;~zYFMNc7#ZcAfe@NE9~pTCtIG}dN)tW?{h zw->Cz8x+xy!q4OXF^}fM4&9Ck9@ZcDo1cRA+tz?8I8g7Z@gQhe(4%)MSXXE|1H%i0 zT5yyI2qDsl=}&OB1PQ$e1e<)rr`tWkv+)2#x2OxmRR%%~3@;o&{Y7Z(T<QA%-*G2s z#k*^-BdbU6)BupFP&ZBoMHR#mkio?ZFRrWr+1(3L^`fKh|Nj?@Yd`|61t4wEhWv^j zV8?)jUK{}>A5i+}ogl=(@bVI9<N#tK#9<I`)uk~oyoiLDv;oPaIEYCgp%+yUlTf{t z3r&h3Z)N7e2WVdW?fn1Wx7SS^;x&)nsUJY5LcMh$1)iv2-uk;7<cnUAsuvq;|Nnn+ zrWz#BDj<vq<BQ+H-U11|cngXGu(u3^K@krQYOrCwqA!0kGQ7Bxi*QT<s3e5NdoWlh zIMultfAj3V2O7x?Xs%3P;BNyR+UaWi#I^ekXx*8^uJ!E<4E*w-A#?_h?nZEWbg~T5 z5aMrjW@KOhZ<Kp+cq?dr{0Foi^?@jJ1k3q%yJ%QAg3dQM@uFw_|NoBs+x^)fef{qb zJ&qp)t!DG!cR1+Led0yUR&dkMm4ACUo9Dqt%uw^7*}$*cMa#mo`2dG+_bJcrOCSx_ z>;M0E?f#PHYMsu;-@F_Yug%BU9QQKtfZWWG=3<%mtF+`rOBFaA1EApu+B|X<5~(1e z7fV5L-hG3AyBMggA<V$=B6$nEJlg_MSO5~1sRavzD=Gz0sS8uj3^u_(f`2<(T4y7u zjpYc+PRBSL`M0~XxmbVT?<x2XYM|wS_L9V?1b{;o=Dq*mgIWVTn~yqxw(~>s;0^w! z-hco9yL6|hM1YnigLjc<fKKP^o$7$pF63x~G#OtTGBCWDT?zK+2B=3t!<Gv`qbR+- zAfXp~K<Npkt^`FZsLccN-92z=4X(L<LsHoVkg$3U!qeKImOe~9U-ke0FEk-G3Wz|G zD9A=Vh>akj7hV`Pf=W<O!79SQ@FE9c<4TB)1|Z?B)d(ARwt<Ve-T;uqoT~r-Uu>@c z`>_DY#ywxanF1vA;sz+LQTzy+_5rndKqmZx)Cr)9DjZ_t1dy;Zl8x?A8#jO?w5mYk zjo&<adsl!8U29`_RRQArbZ*@t4eCw^m^$(@G5CU(U)DnkaA^6>I<p778@Ytr1JcC* zf8jMNXc-a%s9Rv94=Mv%LD30X5~A5^zz(`219UonFKDYBzd(Qjzvk2cuxNw<zvf)f zPH29C1P6Z2r3GNoi~xSkwV?Hip1r-`HBa4v93Iwz0wr?%f=v8^UIP4rK??kWQ3m{i zNe=viSpgo+jvNWEd3<`omc2OH2693#$O&oud7Pj5pPlr8v<*J-M|OacM;d=#AjfC^ zXO}+lM@|66UK)R1B+F<1XSYA`N6r8TZg(rF;{4>uFUZ5@f#8IIx?gaq7&g#^KFA{e z?H(Fw{CNjKbK;Ktk%vAz@<$&0%&&6-*3atjVdnAZhJ?#@4=qA!c@b)L2&v^msO5pG zh1l8v^4e#9L6!}eD){w}l`->cd;qEZ#4iA@>(lu450-I!;uq`y)%+ltG=BXKP#q5u z1+hS)AoZX@sx*H6LtvQ+ARb62jbDEPXk-c^3SxmoLFz#*u{3`D!(f>iARb62jb9(! zVt|N(+72H7k9js9lkjLhEZ}MVoxiE)@Bjax5&{x|4HYSj{H?RW`vQ)6H2-7aZ~6(o z={M}JZ}&OSyqO1hbhQcWb5K{i;WK~SF{IdVs&MM?;ou=o8830l_|TNOG_YW`Rfb4) zvP7x_-O?T5(GB;kO9Ka1dv!3(!>&%3NOgJ`>Uc2hb?oqAv>{TREs^T%Jev=&`1X1_ z_*x(0ZxZ?kI%MS-e{&D`;G+|s2OqMa8N`Aa`yh7_5&IxzM8rNw8K39>1HQeU0zTHq z_?xQ1%}aOCz+D3<Ie+4hZ2%?qPyB)nprL%w7$Uqd5@-PRBtP-TfJga1@e6`!gmedJ z2A@CtTN=OKIsPtC?&EI-o$?LJPoU}iG=9Bf{9P|VE3sQar$2$jK{NUgaZrDXzZG;u z)Qj*UaQ$)tseXxh2d-a0LN6*xAVUVdqHZ6-q8~u@L{bT&%3=feMj+k-*#{bQh73r% z@W)&L@gM`zF8nbwKxF|)1U@Le01^NKq7CezvlT%n4>o|uP(dT#`~nRi4gBF?VenWd zM7RT_i$DAns5k<RNxn2;VqkdDTL|`vfGDDFp7a*%W{}W}b;U5B%=rKoH4tTBcrl|G z;S-zs|NmdOLre)kGQ|gC3P|Wh2GkTtF9I~i0E!4u!w6(rS0&gqP<`tUv7`Vbd>P4- z>vfPCega5hSJD6fFRm7V-Ms<H##^A%OnQ4kLNC67A_%312gNU_RRS_W0%7CV_h4^b z00}1|*_aBo@dHT017u?|#6|%zL`Y>oYy=6tXu+@%lyX3=7%>Kh7t1Q(ew+=l(Eud; zz6dM~ZY+KVH5_5;uYm%z+aElUF%gtdL6Z>^VJT%Ms3HJ~%mhU>C~YhR=M5MBn1!HN zMx^)#P(Xj;7Z43)g(a0nNKyg!?LYAgbbtbeKl~J^_5dXfNQ!~UHh?_AAASfb+W<;9 zFCz27VPAk05^=A=!3Yw1Q3ZB8Y)WJU$e+v0!TtnA@fwKA2_WGQg<xT@_rHLekf0_Q zNaA|I|Nk#O<$<lafMgBmtQ6273P_DG+#1l7h=4e#zlg9V6k^Q>kjhRZYkHy9fYld( ztm%eWV<3)**9ot{z5xlnSObdoZjf(4Qz8W*Yi^c-oelEMKZwczkgyVxHEK|6!0I_c z)~G<NnSf-CCPXtx=!Gl98c=Zt${*l3>g~M%GB*oh-F%3S4Itso1z=Zz18+O1Z3+q) zki@L~|NmcX%>@VE2PEruy#)ITB=q7MC<;OO17%9YK!Snc#qUzExgg&;K&%r03A-R! z=K-}2tX>;rog2iu00~4OdPA%O3B5>1wGNbuK)D}eZV$q`hY%eFAmOX|U{`>Bce4tb z`#}<W@<83Wb1t1FDgofev<e$&G~}Ca_d8HV@KH$swOWwRI|L7Of8rNt0_6orQGOL% z#Dh*g2Z@7n07QH*SbRHVZ)y`L?L)+ug2m^9`i|gv7En|61(P$VSqu(9aGv_aAHe`R z8>tsEWc1hxJjjDAbioO(!-3-ye?%iBvw>!Az$R{hXmQ{`GG-2v9s!UZaNr?aQ3KT@ z@Uk83Jh0`E>?#0W<^G935?nica^#O-;R7|mS@=A<r-Cd5r8cCp0@P0b#2*QE6-c#< z7zaqXix>xX^`JH(NIl3!5cL8O^#VT72EH@D01sQ53%~xyG7%&{op5Ae07aHT8o&Pe zGGQc{bs!mj0gF%0`~og)93ZVf%2-_ZHGZTy^6MWc6Gc+n1XAn5FW|rdQ7r&ceF8;E zJXDE?07&~$6gg+8T!sLD_<>LSQ3pYR=F#m?@!5%AkVOO0M*%woyfDB$0yM`2l6TQ$ zK~W%(hM|DNvGL~%W(EfS-e6`1h8HSX;0$>Iw6GVn)7jPdzfb305Z9-3?*mYqyL0ag zMg|7gUUyE9UeR7iUI59zc$o`I|J@+l!LAeFfnHB6@WQVMG+MIjjigVvtAYn)6C-Hh zbn_1*{-!?AI*VQhBacp31&`iX0q7QoSOJe-)_jop)`!bvy?R-gJ$iX{!Tb~DydKs! z%lLe{fBR_ve9h*#AF`g@+X%YJL2nZy1L(GlUeP}<K;tl{Ux;mDWbo<*ZFB%B_0>M^ z(JT4@B-eb%$dmc{i*Fl2rH-qBtMUKW%AoaG8X$EZy{x-Iia>ilcR>Vv1zs5BL-#$j zUH}E0fQJCTVDAHF1_rd<503o1-bncLwt_+jw8#b&zFR=0q(`r>z>8T~pz<#R9NZg_ z3M4C#g}uEXp%>Rcu>mRnJPtl%@#yxf@L)a%nH_u;3hu6RfLaTn62}TsNrMVRdx#Mi zK*Gk^h!V;iVtMZekc1S-ep8730+NUVao2NDNc4h)UW9?{2aiI6#u%ZtgXbP|5Vjjg zGBCW@1F7bGx*Y^Ox;-QyTUk87@!JZIUuOZ(5roY@!DlQPd-Sq0fE;Rl3>>{|9=*K# zKz3V$qxT~ydjFwBuOB3Ouf6c!0E^yUkcRGaFU&W9qu0)H2Pl>x(YyFLBLgUEr8h7# zfTC3uIa)(N8WGXjefmWdsBY-K0lNG^u=N8tV!c5T3)+k313E|!dRWylW(H8iN`bCV zbO4Qnf}-^<sL>3X90Y~Mfeg@Kmyb#Sc(BXy|3Q~dAC&-5_tvxdsDNkkM{p09>(~GP zpIktPrYC@wGxDzb4RYo;Q1%81gV%+?IN-G*U=F`PiAusJe!&fp1{A1iF1Q2K@&e1c z@C!D88eK5X3Q&9NML-%jk%6vc1Wl@1_;hXsv3)wXGBAM>?N$!(K3iT;!Q3lq1>X77 z3sUhyEbIUO36A_4=Rk=Jv|y|i)I8|Eff3D|MRlIN4xEr<DnEmAFld7@D2jE!=Th0q zfKF1fK2|2?)yu->WBsF?*VFntD2l)NYJY#t=D3d&Y`Y&PI0s*Qk+TjI#m7JsGu`K2 zM63fxubJZxkTPHGW1hWXoS?Y1Uk47f*O0gcNqY3MZUCQm<f5Xm3oOum`bAwfxPJhN zTLBi($P_qk6<9$2FNWWt2aQ{CpWarG|2=xAf)u~_56W5|-BUT(7#P4Cm>`#!^nL*C zvq$VW#J+)ciwpz9i=DF>8D5-70mp*?Xsa`*Z1w5f3S#?oZdHK9g9dUuY<d96hoJ6H zUk2z@AdT~&*+kHK)_*x*|Bw(3Tc3b7(bz5p9p6MkG(25{91R!O;E0ADYp_IvCCDyt z7K25@_e`*}A<+QZl+P~!js^$p(IDp2+X@OGkKU;u#V;yAEmx23sTyd}AOPYMiUt$V zpr_F+Mur!T$>3-(K#B$s+oyA@10)(ekfT8xbQVf)FG$4;_H;;g0L6m=C?3in>57DS zumx?u>$TN=%*fzDLOjH-Mve#1)i~n8U^SL_IQR&%xB`(K@<F9Otf&h>WQPRo@gNEs zVFiU&?^KZD7au^4UXSjn9-wds9To@84xk_b?M{N8{enF^YzCE(t7b4Vyx5rtj)wq{ z$<XWoVuL0vA@Pub91n{@$Efu7f>gYyPld$82~a;26c6tp35$eyIQkHrAGU&yKq4U? zuC7Fmhl49|#KVe}SmMDGWEV<)cn&I<VewFah=&I3@gU;U+Y0i(NAFaS;ujft;0D*! z477L%0PzXs2P04$KxsN7!wbU%a6EvfYhl#`i0#w4wE+?j9mw$@4cdIu+Y3_h;(Ic< zSOV1!1)yk1homdaXy9*Zgfs%M)ev3}z)@iZD(^^$3a=H&QDL?MEh;>EML*sLH2|)? zkXnHyHco@`HA-wmrXrP26A-bn0DEi*`}DSgLIJc^n}vbl#jPAjY;=G^A1POWLWW?j zSPdEgm@<`-;l<)OaBNIK$`v5CPv=(9kpe!QTUQ{*M(-_fB>__LA~Ok+E6#%Ytf1() z0ZCq%(SftFK7S7!75ndzRyyrph8z{Em!U-ktg@c83`;x&gX}_yhl`-{8I~(HAmZTw z_IMET>1_r1-=lXbNb!pxP=nW_d+G|bc$fg<6Ur4@pm8*wDWE<Bd~6A{wCR&0f6Os( ztBPN+0knP_sXq$puR}&_k5$>0T7yPoVO{kq-BN83AJ#>$k_8=71!}YjfXAr#!&#F* zF*3kLiC-*>0Z0A@q{s)ceLA-ufMmrJ$dNw*v>T_l7o_4vP69affsO6}JFvHR11J$( z1~odcwAhrui9iWUi|z9ra3VMb%INs=BludoUOy#hi*45u<V3J+2`mwSltEf-N}v{7 z?-Jxh0Fw0RWsL*b1x^HDf$q~U&VVWhSR%N9NCXeCCjvpA-d0dJfVx?r%;=j54vwiO zK#`7=89_lpFf;0a=8D-TF*3Xmiw4KX1*G@@v3)wXK7ho>3*`7<0G+$i+Y3_h;!Ygc z0g(8Z0qRZn_I?00<(wg@8zWQVj*sr!;P^<oO(0W(gANfNT8ok6Lu@gQ`1rdBOMH9- z6)Pz5VFRipVDa$*5g(u<pL{^~4Wsss1VG(hP^k4z1u1^97u0eBwV;{NTF@Xhgfit~ z&=RQf382Gsw=#eXINr(u>Yp(%FdS<I1u6qtZUl{nRk@TpfwCSvE1HxVf%x#Os8Xr~ z8d&<oF904%^5|{^4G?*Bf_b1x88Ek-byqIVY3~xZ7hfX4DI@@?1I>92Tqc8rUWkGc z5NKVC=;@na(E?EO=YJHUPrevjNVD?bvBmvGAH<dkNVY5n9W2w^3le&<J_=lOdGw05 zLTuRpvSlWcEw*W38^JT!zO4sJqCC2L!ArxmPk8KDy$TGpAlJb#LC!>g-XI+0aqtl{ z=#pRLMxAfB!w>NA%>n4S&Kv@u!OasdF7<(uYQ6-hr1a<wsPO3R054&*K2^fw)9u9J z(Jl1iQ7Qw&i@o9CU=skvCbaDbVuQLu;Bl0#8lZ!6U?+Zj2c0w0+Y3_hqB$Dmlg_OM z5Ood^$^)!i9NdQ#T>vQ;K`LH^fR*>Qg7kv=5unbxLF)hiFRURh2taZHhz)9eLX6A+ z8wowoVK2l5AQdkdK}Pb2fBWRfAN7ep{6C2P?Ft&5bLEdZ;?udc0AfG`gz5mB13eT$ z7UDFJiWfVh{{QFKIL0q>9CSL0!DknKL01c(-d>O;KE196pk^M(xsIuz!846FpZEoA zOJ9R(i^%t%_#<*u5*+z89)IGGd=47beD27vap)6&<Z%$^*eCud&|u*ckTdzCzVd6l z;1_xGiC-|+;WNKrsfS0es{^R5r{Ku1amSHg<1%<-NVk8)iz7S#|9>GL29BKxNMQqF zgW4bvKdnIaQzYnMwBBBjiWg5KA+ZBG(+^Z@L6n~WD~H_fD5?c1B|$1)Yy&IrZ3XEC z)!!iRPD=j&|Ha%;kPBQ3K#sKV=`1Y(wMIeL7<Fz14gWgsfX0g|*lyo~7dar4T)J5$ zazK~5_43LxFu1lJsPq6|H|WB^;Q60^_YJm!YzH6l;(Ou6<;eg49UIRu8~`nAbA8~^ z?fb%``ye>?{1D`CYJs$i1wA@lA9(b}UH}c9c<?*NUhwE;)w~AEO}2ud@&s|p%a3v) zPwV^Tte)N9K&QNX_SF9VnsuKbIO%%}f-B?8FLdXER<S{bPfov(oC_*@c#Iu)fRy=w zhEKu;J(#b(U;s<FUVsjHf@D2<Sr>qc7I5hg5%9h6!WNWP1sM1RTLoA_qbJ}YPX*A~ zgPjHNtF(_XfJer7eR^FBKtm^>0iz>{;Ce9h1$f-V5Okt=x9<glRq#I09-WphMur!Y zgFz{w6*PzsO$=K>Y*1Q+qz6!e4o?rF=RrR01*v!u8UFwO1eb1B#w>7>P=zK5SI6%+ z(m?k&?f_lp==l8st_vJpx(~HpD!oSe{gbUAt0C#(!;8b=kn|t{P7e$okdp!-=|Pmg z2{b$6+3O(c(do+I(Hr{#mL5KM^s<^>0jCGaE1-tJ;WBB^m^f%C4O@B;g`@{jXnK&H zjhr4hXM;islpa9Je6&Fa=ij)@$N)+bZ)btzTt7gQ1W18LFY8i}EI3I(1bjcd(2DpE zIsK>A0FfjduqO#FP#YcWqNyOoFV@9FQUwQcs`x-KRjdc?>CNk4WOz{<2u>B?Jpj=9 z1H=XuIgnHVT44cC75_m;i}dz_RJ?Ew1zQc8rQq=B2HltG5yKyK5_HB(!HZ>}%*wy( z4X01HYlBC(ZwEZ9iol~r#G})-0dy8q0W@x6R0=$LS=V0zN6r*bML{UDihzT{TLc<8 z4KtA=Cub%o0zi=iQU=MaBA}QF21~f86uedek7R?SL5DzrYy?LQM8HR-;6+~;EN%i2 zag%^OZa6?qXRw2&f)u|Hg0x&iJHT;c1kSNOp!44d96cz>!NBn1VjCmFiwFMT$N?=x zfn`|`8`NrsL=I?y06cP%KnI}o_JUNrSQd;DIiL6i3S7D)d_V)%5S^frZlBJrpfPU8 z9ngc6EWvd^FKCUyi_~Dq!A1d{u@OEHLw$N(13<&{3=9k}zQz9k|H2XCJkZcM%y}R- zsO<rs-`Wal_`#ib7<9f!Z!bv23wBKB1$0M5_;hXsExrZ~AVLfPog)Ev-X_rLn!UXs z6)%njL7bP+8Jpn)G1RBmH38Hx0d0c{2RUz%A2{^Di=UxM8^i`ROdzI%PMd%`PX*#U zkct->L68DZA{AWVeU*XKfi8~UZ_u~A1KA8I?<Tys90V@!K+Qm(Zr24K-M%Z}nTi`; z|8aYCx-RhOjhz6^Q?U~~dRb?m2WP2HP?=6BOL2o!us1g}OX*HS&Qg-oU|9;J43ed| zL0O6cEa5r<TG)YPJ$hLsKo){?6hy#x!VBAAScWP<WT*x#8LIh=0%(*D+~J!FQv2c% zs2T3j9l8RXpP)711cGJVMNl`ksTnj9;UDorckBQEFFJg{DFeJS9-1;hY*5n(k}^Om z+TkgK>jcQty&x4Y`~sl)>NCGU2k6iyaEa%;;l<Vv(4nJe1bn((4|sHgj{}8NMH29+ zk?`nrJ>bzBy8#w88$kD)gU{r${dbm#sz?G7H4@OMnKT7CYU)5^Exn-94x|hcH4>nx zNd-%|Zh%G&NY<m5wHIU|IBFmQz8hXF3WP<?1Vq#<z#26ipaU2JK;w3h_yK8np#*9< zdUS`LK#rdc1mnj7)K-1e2#Oz2T>?6swX*|s_zk%4(+y#^o-ASa=xhY7lJ@LA3OYeo z0Ca4$D}!%mslYMNDhv0BV-0s17#J9RI?E$oEb{`#FnIh18p9wqsIdcyVbCFv@M8)e zfX*T4?FFfLk>dw#ctg~I*6sUrZUt?wbljl{jsVd@Xe|gTX>7sDds{(zK@D$^m}CSv zkxX3xT9OYs;L;Ltz$N$y4T52!4I1D$*8oa)<&ZO4mfmAz0QsJw&0Sz8D+2?=f6=B* zj12tS*jf&hyaVkB2mr-N#7mo9|Nnb8+t{&`yS-T82@Zt|NWI;M&`JW-uRZ7u>+N2L zh<*TxuJ#560OY_D|8US!chDIn7eGT`4z}PkN_xQ@=0*Si^KZKWT7?9Xo8kpN%cV8^ z|Ns9l)FBoNNFip!Gay!ggkE?+EQXxM(hQLZkYZqXVQ&rEoYKph4iW=z4l@7=dqCFj zffonu2?GUgZ!cK=e6RoiUp@t$qPNup?9~D!8&5%E6(scH8Yn$<-+-(pxd1XV1hU-^ zG|S(392C&K8$iOoVBhz$9tCLzyI=xH_!wk8AJ_#}P#1vJ%X&ea12$6t%2@%LA}iKs zV0Z~?Dg76Hv6+$K%zx2`5b73$x(uPtK&Yb-Y9EB!zL}9>!hg{X5Z+1%wFpAZhEP)= zR4+tj8;E+b!5th3ACLm!=n=5rKteArf?@?chVmceyWU;_kUMvKBH}w9+@^yrX!<0_ z!0<8!l%OLZ=1yQoL}xC<T#(R<O1Qb(A)*^VN4_K@nadvf|Nl!#kWsu4qb?vBr3BFg z5_+KrF$$70JRuSSp!SfeB_w6&g2ce_@&ROt9%Ka|I9?WoK%xSq9(+s6iv@1r@GyWL z3Iy7Svh^@HJU~J(4uaAQI6T%vL<2xJt@c2KhkwZb|1Y8-rW7EVk`GZ25_(Y$F$KIr zYXistE5v@1a)`PKAmPtQ=6(mae|met>TkJ2+zmdd#}^bn-M!#5n~cxA$g2U>+;dbw zhemmJM_YJy7dv=%S9^euY;@$;sD9weui<>bm0!dAfGfX7@CH|Yjpzlg{2Iv<T=_M! z8(jG{K<ftoyYg%7PWTVX%#Xo0!p1trKu>yvoR{m-&FIlP6Er~YksQF{(aX9Q)Ew$; zk@5hq$7b~C?FMNFNxJklfdpMTTclh-dHuBpXxn6W258fkXxVyDIeyv$bU%d0f7SB! zNH^(#PRBZP26QqnXtm?Z>K?EhfA|681N?%Fpz9PtCuw<r?)L><rIp~(&8qJUJ;cgI zB>;LejDzui@F}^BpsO4m1w5J$N_ccydURF_cyv}ufX@LJJ-;6`{{sqdk6v#J4CxIZ z=@zhbXLW=}XLW){XLW{0XLUjM@iu1x5Fyy>FYrRJ8Z_T4;nB;hzUBXa56~qiprhA8 zJsb<ry(Su+H7W|AOH+GU(_%m;SQ(%EFPgFeqzQEHZtH=PEX!(+(m0TNHGDw#6V`)I zdgca+a`pN%{ue#AmXYBM_y97HsRsW=S=WKKZk2F$pZG7j6D%2ifM1Xqd|iu=N&x7f zzNjit7=unF2VIGJ_`m4P^^6P?I%`xcc7o0){V!Sw(gz9cGiMxvL*aKMH@*S&=RLYv zuX{towM7Lq3gipAZ}0~AVCt71ogpd}9-VW*2b{SYKiR<e!G(WAq5yx(S5U*>*BO+h zTvRkbE&dG9Za@tXVF4l>Tzg$qcszPVZ|nnQG9ML<7jmGq4Uz*NSRVmmC4f}Pc=U>{ z0vAF)DjqL>xPh`<FUZv15EYLXHz2L7a0zfr!oZ`O-{b!w59q)t_-Z(xZpR;<+9y1E z9iaoKTR_`byHC8BSqU25P8aYv?k)kkKkXPhgGYBT%%J~=Ji58@8&m`}D4>#&!RWwC zZBPRTl*X*jm$-R!7YX=up9fu2App9)naiWwQNqLeL%E7i_eb!3e#}1Ih8~@T0-!6N zyDxfnpL_A9i;=;#L&fYhXp!fOI?x)@USA6j>(e0PiUoYS!Pf?XjpHW5xVc@73~q4a z^qoP=ZfYYSEdy6Uk8V=J478IAbc0N41@17@0fjsw%p^c3a-#))xf93`g$hQ74UET_ z89bm97(SiJ0v_Ex-~<Lrwu{Rd89W+~fKnj12#Sf1i;X_~U-a}Ea9wv~4Y)V}-#?@P zNwUzhwsTZAcr?BNb<8}vS!F$;Dc9A*xBDUZR?%A?-5)(VLlt~FT{T>d-$D{>rT~8n zXl?_Pttwu)=l=ii)0sNMqdP3a!#b>>L<MwpLIr3$oPci!XiJ=9uPeVxM~+H`PiK;X zN3&ao#%m#;UKf=Lk6yoo7wMj$CZ_8Ia2%U?^ae13jy$hGYR7?7CE6_lW$gb&->zn4 zIP-$JoRQ&$kOL^|xGn(Y91ow)+yy?Jxf^^sb9XrIfOL;UcN_xc8{Y*lo;!o8gl@kK z4{g5$#BK8)-(UK49|E174Vp+e_`=?Y`G8NauPfpdZSZ)UXZIn`?+-k14ab4*5e1FM z`SiNFf;*R>E7nR~Kv@uU84Sp08IYc(;~pu{XhE;7{vk#NPwOK^HJ-f=QXuyyc=VR2 z1VB47AXYD{D#-EH$H1d$;Du>Ip4Q*XS$(^|zUKDn2Cq(I_U-=S(d#D#?!a7oaj_kF zVr_3bWMa)%`<Z8NxRfXJHQ(+dFP681g2Y87;I%lY@X!DqMxX$`YZ>I~_b$*bi|YgE z!Py^tIx~>RQGI$r-Qmy&FIs%SK?*r@UZBVfoUTD7Dq_+MR~%}t0>z<yDfr%2<gx@( zB6)Ok7s<f#MDrnaM4@yET9&Ysf-+b(^6EIGoC+$G`0*D?pxy;2lkF~HWB`?D(8A59 zGhe`?+t&k>y<AE_wZa?~P{+oj@dzlpI3nGT@M4NB$p5{r2SCwR;M19Vz^60!f=_4e z4S4diJOB!7-vci)96@S9S9|UN)#~88hqVuSH2>h_Z{h(Jh@g}5t0lmzPnkhAA^2uJ z4bWhk0%(bvPcN@5#4LsvZydo5H&D+vl;OocP&>TWPXbi_x%+fuDgQvHudDiW{{&|> zW}j|LpUy%7-|l0cpyKrWi@B|g49>?`%o$#Dcy?cVp=SqbeE3;-Sf4Km^XV>!6wmb_ zr}=dAgUVBoc_z5c^M#ma$KcbM1}#S21Ye4RuN}Yk;=C=Wd_|J@1HJ`AVg<O!5(H5% zye<F#hgG&`&YW=w^JsqK-~l=}W=DD&1bAo%CV&d5@2|i|VS|rP2Tcp|w<v*onI$R) z8yH=UzkzDnLIHm8nG8PNo(Yh~4d^82PS8otpeo+e`ecc-XLF^5fM<84KoPTVHz&xK z9@aO?RXkv!=Fx5G(HSY=1M0+`_w2s-BE5x?!KK5*8dM2ge(@7@k`U-{({2w1aLwV- z=@-%FCg{;!m*CNzm*LSHui;^Rw?qZBvjTK#UibMIrRku)qO*cW^I;8-PIm>5=HnnW zr4Ky1<1#>pqFQ)#gWT91`~h5P>w0v1-vH$?NFFJY0A&zR<$+Xdm+OMk^z%Yc<|uyQ zaoibn@(Y7YNAV3%0ek~=-f9HsvUCH`CFXI5|BEhI2B{;Eg8Pg|H~fAE#0A4EEFd>x zEdb4KYZjdF=w^N51g$t)!Hcm#H#9u?%r9U%<2)mSXLFqf1AmJz=zgB&It>>7Hc!w* zTlW#iHa9`fUOx%X?l1$ew^%&8K|D8&h8o5{dZo@FNrXg04ddVBQaud8e+8wI7=r(k z`CGPtXYE;6_`znzA?qViHiTc|VPJ6VzT(^M7vb6MS>f5;2&%U|v=4$#?e|GO(0ZUm z|1-Y;Bfs9UDy9;t&-?<8ED$yyh|K|EGyOm0(R@(Av-t&M=|#`(M$iCDXF!H$w_Aiq z_XH5nqnq^v+#TKEb(%=-C`o(~WC^anK7a}k51-D|4?dl#plf(J;NvI}+rS0LhZpLg z!p5gFRluh+Rl%n-Rl{+II%Mp`bPrgGzzY_zl3v#j9=)LgFP^#m|L@rwCgIWB3tBt+ zVj5^+qDSvk5XYl=Zv+zqgMbIWGlbvGY7Xibv>qrCbcCc|4CnH<ZUmiD*?q^e+b_Zc z7G#bUpfCg77`X{FTiE@@v-^)nw`0X;egPH>NH`UL<`;0WfCgY1m;(*LNDoM;d2~+z zZ>nd$=F!bM59$!mR({aRR-_Q)Z@mnf_U&e6!lxz;RGj`l?9qH&z@zzC0v6|b%<!<j z!QT`D?ufA-^?@Z7EPgg)12t1vIq|9K1~0Xq3JOth!i6q51qU>uDwG6eRkY>|f4dpz zyi)T#Mh4GbHwn+?Is@<^oSTGiXPU+_(82{b*dUy5XIjMT3{bveDNlSMVGd3?;9A1L zr!&>Sr!y5qdpLscrt#<%_1Xze76vcgT7lXjov8snov8^vov9g)JFFln=QQYOvtHkT z7pK5V!1MZ{0Wa3L{QnP51deTP0{rp}(800P`HT#X{M+0FTMm@Gc`5zp|Nj@0%)qVy zPlbbQFYxJH3d%}8ol8NTAb2XCv>EJ{f)|Mpi+Vv<YI*JeO>%+?9#El}hS+cB`Tr!S zG4}m2T6;_DX2W3v#|}x4?pq$Mmr8H=^n$PEf;PAcUa(k$Jc=?qwwn*!+A^I83JmMR zMb)0Y4t$VFvKkfGBpHa+%UT0gava>)Vh2@mLY~(DKvUUYUUPeNfA`e>_L>>AMWojs zw7VK~A$&?5bhP*y=yrsFI*=cE%ssU4dG?0!c`#q|=|23z3M>km7!wC|!!>+B_mqGt zfL_pCSd%rl5xs#w`~c`avIC&wDFj_NKpS2Md^!`58(xk(Ko@3t^omw*0$Js|;RRDF zw6O-h;R!VH?W2-_rVBFT9ikHO;))Zv4FVlahNMzo<k4hYt+na}pw`;NY{*@3e@}uA zIIVX*aLjcB=#FskWE_7J=uiz%?bMAjA;;e&1R9qDwc*h218e)q1{!je2b=9_0!m2m znRExA&ZVGUjZf!N&>AV9&ZUr<bm&SIXYht7$V@uF1t`*cv85>3eF@~GC*KJ#wt`JY znHPd3C!_7)xrL$%XmVQM(OV0f9;%(-(aS0iRzON(5(f=Sf!bu?#Kc?!iedD`^cFOF z((5|mwHR7j@}2O)+!CCWE<lsg14vT308L5{&=LhaDH(vqR(gFeyx5*ZOj3fxP%kJo zwK+gi6J+%SG&Lcwp1_rwbmxImlXE5{HLX7mNlg!qxn2OJCh$}gf72rt1_p3y@<p1C z;%_<%62_L8*06vQ)1|o}qyHF!6BB5l7*w%>5)+8+)43Ep)7QBaG64@wOyAalf*LXb zf5;S+m^zn&CVYK5mxAhWpU$O_DPeg?nOP1xJP9&;`(iR!d2cJobkOQf&}dG+{r~?j zRX`JDr4VO;=6+$$0I_{KmqKQWmqKQWq0Y#MI0K~Og*DjR&ZPq2rtDJC7FVCnrI4v# z8Hh73YyrC(q~Zk+Sb1+NNH1t@3usXIh28)EFXw{hf!-N_LjyF&3v&jD?bEpwbkBfK z=TgXwFw_|@)`HCisd%x)1Qf%F{z^A^hXbgY)ciw=zsU|17rm|EY7Wt!fbc<A&w^}& zbYLJ|UfwO>TA&xyk9whD3O>ggTA;0h*b0`>OMoUs@HQt%`t5~m216+gK^s3nHGS_? z&~~U7-$9KZkM60U8E9}VYz|I7VB3foRG2XvlycUkK@z3ZQE;Mc1>LA{tQF)e29Iu5 z8COU{LBgYVss*^232oAWnm?cm_g*yVgTop$uL<%!DCL3Jpjr_Um5^CbXjs>*0f#k6 z#S0H(NXi3sOF^X`L^-JE>9_;BIBhDp)Q3!|NrIL4wu1D67Wsps{Hx9X|1TK8E&z?~ zg0@D2`u71KA^}8X!0Tfsu+5<E{skk5y`bwXAw>sd<3Kmqhn|qj!ae^VaB8q&0^JSX z+Y3_pVkTHyH&kse<oavS$}vaiW;xUU8$sh6$KX@7oF1JJ)xC2;CP2qIAnab&Tc8ph zHjfS({uA=Bz6Yv&|9~pr-yYikUNd`k|MTeehHS#S{Ni~TsPa7ynttj&{o-;NC@6WX zeYC%O^oDVIFkkoWKK5cSShN*n-)l)w&8q>rdPM<rzZldXj3%(e2HMO8O>B@IZ)k}P z6r{aVL8@N#fZ7=z-BZE71})&WfFw1LJwzlm-I<`I=9~f^`+&C^`J48EayDq>0^D9F z!k{NJKnDFvW@LB?PJJx8;M51Xh0jF=l=?tyP`L+5PLL^AXzKg75)@>;AQdl889-72 zXg4sZ+=D0w?WK0yAq#R=ujqQvG(>MNNX3iUVCB87Aibb+50v`Ktw6omUQkaEG<L#~ z44GvCbr)f?EZ`Xy=%rYWG4Zj7UnFUQF7F0aX5jnLLGu&+CeThLD8RdKf`&qfnV-;K z&dBhB8RRak^AiFf=_mT2@~pEu0yG_gn3JeY0!=S~<|LRu5}1>?<P4jWxG){0iP$*_ zqp4_f5`|L{a}ugxNsKv(V~L>AC!{$E*6FBo5_hLSyY8Uy1K(dA<_NkV6V!0>=w@{@ zh6ZE{c;3OY`vs`o3>w!BQK@h>{tp?{trXyISp}-Mj%$Gu4`{xi(?ul%G$sfh7_<Pf z99(<dL6Z={%Ros6Gzl?N51e3XK)2@Bs6>DiCAjvwOMCQ+ZUa|jpgD*Vup-19L<p!s z<w4Ta0qDqA(1?a;B6#XxGAJ#Arw+hl{Z){${wm1W6m;s~2l~`OrGQWOaqw8zxfdIY zKvM@ccA!z4>o1(OL9?%U@IflL+lU#WcL2GoHUVRZz8XA459$Sh@&Q8vC>H0afLatt zL-p}-v4{VQDuZJF%o*@Zp-7NNFUtkcbRGD9DDbUt3Lf2s93I_2eYypGx=(p@pYz-e zTMzH4eaf@@FlbeLH|YL5CQxy4@P)kx^9dj8lf~lRy)2%dy*!6JI{i67*L8V-rVrx} zmnHagy9;=BANJKg<oW%D$H8AnE9!l$PnC&+I#b=}5n5ip*Johx(LPzC1WIKN#+ST% zWjsB)&v_ht%na(^a1?-+W_|_@EID{|mLppR>e+!YY(Dg+M>i+vI@?%}?qC6=rTy9$ zJ;1|wNN(}y6#=jAhmGN49qW<?#lY`4$W^4w9-Yn{;2lGtiPFRWMUPE}W)JZE2M1{W zQvo#L*?sDTHTXWC6CT|^{)_TYVgy~xBkXb98GP*x$S0uDF@^ZU9^I$GvzXm6Di9Hm z|Edm?7#X1cX$D<t0va8-S)%LF&A1CZt{WiH{NsO#tVee@C<Xi%<(R_AV0^Om0RPN` zy^jAuu@HUO_yB|k2M%a_GZ-|$>EY4MI!PazXI)e*jKBGIp8z?y^-?LPZ|eb<UN@E! zW|!_`9^IWFv%%NI%>yr6**zIln(#v!=bbg6!!J*JbngbKI_6x%=+IGI_+PYbA|r!G z>;DozAJFZd;EE758w0Kqq1TdwuCn*&KL1~oYceR+`lu*)bb3p8bb2d*W-v57IzcnP z-VPv+fk&rzfJdiyghw~8k3Hz_xx*fvU>iXrmku7C-X$KL#Tl=ej1Pd6TY&Pyml*JM zXdZE>*P)$p2o3|qj)6xv>qI?x0BCr2J8*b*fAC~x02N&D(EbT(St*nhym%T6zU3y} zqq`sEQ_zig3jamZCxODEG|;2lO~9kuU&5o)y~Lx}y}-kg5wxjhI%r(Nr@I|oNOlUk zXdm+E_P6lp6!hr!4{!n9!{%QCy3S3(qf^+U(;GCu0J;o?;kBso0gvO%pg8t8?hF<J zCpOS{u#buc$a|s??-|5n`VTbu28v^l7uV?`yy(&GXyMaaSm4<G(zE*mc((YakEKDW zfMfGd#!@bi=E@9)Qf80;=RBa^=WhX>Sn=Xj5ZLQA9<AR>S)2bdmWV?WoJ;pnkM3*# zMFS^-Lm?U}3=NxPh^VVax3dJu8YPeJ$&m19hJ=RzI6OeHEa=hg4G9l#Sa^tgbozrP zfx(`Kga<n$Jlw%T9-Zz29^J=5(G3m{)@X2a8#u;+rzK&j9W;L)?g)x-1+f1-K^p*n zd366Q;Rj_4$N2bYkN>JO`amhr(ZQn=be3ypiHe6u_h(QOF2bjq!?*Qh35Q3wV?;N{ zYbN899?35~T5s0{ww|oh^{~F{*?rQ3-{-YY_t6)7azLiINBA)R_0Ybnso~M>@8FSq z)Ps=`q(Q+4l5#-CiTHFM2A^Hx2}=J)6F_%~-2jc0M|fy|293izcz|*q$Q{i`6hMvy z7u8@-IfRCRZ}T(o?0(_X{mG;Iqi^ehdTwwwH*k!Li#-hXDA<2szQ=#n6TKjpIa+{9 zRSl2syB^&Fp!+;Qz6yZ(>R{{15>wDsYziLMM?Jd#dUl`l;CK4r(|!EK<7|+2w*VjJ z?;hIsH7z{4{VYINpn`AuWMuSc-UrGO4E!yi18jV{-6TAE-3mM{8A=sAy8A#;?$JFB z6y=_s9NHH>y4@^1IypSL-2yrVJQ{!h=VxFjvp|f;`E-MCS_KD>;|`FlXZN}PqF+H9 zs+d1`Xy5R#1qqg_f~HI^fv!oHhH60s>bd`-M?q1leZxchHK>f$@aR73(R>6P9*Cd> zhbJgZknel*=zinT_y*)5k8aj{Eok;}{Q;Vs>2|d6=;i>`Dxec31ALO1yn0y}J*-a@ z%Q*Hr{O@D}XYX!7k6tH6k4{GZZA>rKL0z}z{UGxgO1Z$@+n2(iEtB2u5}=X-8cfqc z;p5TW4+<?$Q0TaW0tpma?x0|TBpr|D`V59rng5~&eW0u6|L+E62>zBspi4ft-FOKK zGUEdtovt@LI$d9Q9Crmz$8@;f_%Hgu7p%dh`v89nsDlaFd=vV?!}?UQf=90-BUneT z>kUw6)`Q>K^@d9a3&$}R4n~I8ysrG)PI&bC-gprRx`?jV_l8Gv?FRuz{>g_t_?>-k z_;mZe@L@jb)9ZS}wdIlzzpLvFk6zakpn}uFqu2E!h+*K->v{pi(C~oHU@Ca@hL?DB z`)B+YE$RjpA0@1ysf{SG!tU4?9+s{rN>f1A!fZPLw#@^yK3DsohxH8)ey77AdDoT$ z9{jGpH$1d&`1Cq6di07gzA(=OHJD>xKuhbFzyAII-~5BAG~5I1$J!5|$q3gQ{QD$c zd!h<?bo(Cg(7x%xd;^qe71Jho{6EdVkB8f%dpal%|BKf2fNHkeb!;G&uOISni@org z6&w>D-Jy`VGwATt4Nx-)I(>#~c&e`()T>$&#>fCF+kJn4igv3oNN)yYpJ#WpglBiL zf@gQNhG+NV*u!U_?E!F7ya`Q>5+2>o0UpT$9?Ta(G0MrmjS*D3MIQ!Tp#^GJ)TkKz z53uO|(fs3oDL1Ij1UE6j^4-@xx=;TPPym&sHISwUN{tE19}<uP6k=!hFQ~0%ppxCg zlA~C+`Pcsv4*qS9|E&*!^1O4ve+G|kXA6)29L5Kl|NrNAJr2r*4j?yy8akkx-55Xx zP;vAB|0Q`I&D9wUrTh;3+s^+NmF)(n)KYJsZf^^Z-rxdHOTiLvpYC7@pI+wxhYl;x zZYB@wLnY!Koy{HKNgxJ~WDZYePLIxRP#*H^6arbTeXIF!p+~2HXE#Hq1juVKDsby# zR2;zh5bB)H7|^ZA@GM`W2F>y=Dit8F-faH$zm(nhz{^<B_)mABgGV=$N9%zSd5`YE z2%lsoALav|)(46O{)={XFfurFSactMX#`RVtwcRKw}7wZ<!|8!b#%KOB|Lf^VWs0l zkdr;SJHbAIl#b4zj1P*>P63Z@?+lODlc1IaILI9M_nrSQD%{1$uoIN?tq=0Mp6@>R zat{M&4&6n?!J(r@B><GmKmk|c0bc#m>7rr)YJ&xWxDg;p4NyZY0L1kGaTWfHzHA3) zK&|E%j3ug|Y?8sh54^GhZ0mo~g`KE2zV-z**&RSeM0jX_D3SMpG(bUXbs~JakAVsz zhX0~bouF~+52aEdg#pK$3mH8uT~s{4ZU?*kH7g_@x*;J1s>>@t8Nf0aRNu@|0S&`@ zG#&xvgLrtUjcAaTuzUPhz1z;n0G9(5=xFjs(dA+J=cY$5>xBiNVuBIY-YL=d==PNG z=yis)-+a0u4HZbU1>9-_MGmCd;vC@8$<R<;!vJa<oPMzlv@Qa)6zqrss6mn52I~%- zfi5=l=oWejn$iUK55VIO0iYTMG<12~MFn(eFoQ=gEB``>gL+wc!A^4&@Mt^;TGjbq zRHcoPVFE}gBRIO_!Am8(FN0gq3?Mm=Zg!7k4;GJJ)`MWZES6A_-ie^~o}D3<e?WQJ z0hHZE`M^4QS<lS}S;&0MxrX7Gb0Gs*?o=xygU4~ub(o-=IT<{<d2fJv_n<~LyxRiK z&>0@hM*<Kr0}6dmd&{Hw4W#b_?tf)^bO&?1D3bv7UAU2!LV<c^u)Y|J2Yg9|N3X~v z&`xW@eX;yN9DOk>MBtw}bB2H0p*BIJ6awyxK+7{|f0q%|+0{PbaquUThxNr`Vb5Nc z2_Bv9$lc2_9}iGpR{Ma*!5>T>))&fzJWx8WZmJ9n9@-b70esG*S7s_G@Qg2kx~+kr z!IfSXV@M&0YB0P!hxJ$O!2MP2iyqC7{tym?tN<K=VA={zfgmSIV0hZ2`<6$yAgF7t z4eHUecv#;omi7SM=EZ!=qcffZ;?!<v3pD<4nK#J)9@>XM6Yw6^H_D_uz-bRn-OG94 zaJX3_;nRKC_>$+r2P_`l=UxPW#wEape};71L8URma7e;|l8F2X>Axd|#|OgU5#^5~ zJXBkt;el>GuJHlXGzl6XU?pt*Z9g2=FKdQc56=Iv`t%p5$8CM8B-5ii5VXXVqsS06 zYSAka$^^>f(6$5C;RqMda72zDD5pA0fF?FTEk9?0v`%Jz0d{^tW_|&G0e(Sm0dPO* zxI0)$S|>Yr9Wp5Nn~x~OAO0`O2X_}V_#x@h0AyMSXpt}zD5Z2d33zlmNqBTS3V2!{ zDAMuNKHzD6(1+jYga>FP6X=9HPOn}OM&Is(pxfYHN`Xda4}%)q(T88mmPB1&6%6UW zD0p;#0<F3|ei&4jdHg@zU?as)`W<W_$Rg1CTtm>xiFVMWtcUhtkJj6zkZz8GV_aPH zVQ^>7v-_M^uZ{tz-{Jup7Yy*}b!Bwn-)H5keax}@`U{zOP*w5+RAHM!?%x3~ssc}Y zvc-d|JsXez$3eP$w2ymqp9g7r9tYD@deH+iDFJFTd4PLnprZ@}Kurg*BRsYLd2}Ct z{Q#y6)LjEP4i=io<)QVdk{obt0CKH`M|YI~DBy%3%fEh<n}af`0cg^{`3G3W5VR=X z2h?~u_aZHhkpZ-74jg|aDh43;Sb$s+eHc7gcm2f^(6P(iH7XV$CE!shI0NCBGiSi* z4>CRlZrynFvYrBMr|m@4g1SC<8!4dXl?Sw~63{7tr~@~FmX>#){x6zY&&V*r;oEV> z65d^)Gl4*9;-EJuOb>&~3vk;LUTuKNCk~L;!Ih$dM|UHrw({t{+5O8W*#T6YeVWP0 z;Mv*20TBmFgJfKLJ3u0?ojn|&eGDFr2SGa=Uda3a4J|{rGb{%!hyXchT^%C>*hPZ7 zK${mldb>e-Uuc6}Ria|y(c26Xz;qrsyg=)jJ(}MHcyzPI%D|h49<HDvvqPY2yf;$9 zqZvFP#ZY1n8ewfdz~Yh2;lX^~)%bv8ZvfMO(IsG~_^5yvdxm>~LSqhOZ8fM8jf*|( zxWj<~v{LM%2Wam=Z!Jj02anbRrK}#^?622?#@66fw0a#QgYjEX4ln=_79hd_)XZ}L zHSR1xBQORYpl<WJdXO=onS)Me36D-^1&?kQ6$_6}P(#Mq0mO0e=yVS7=yZ<o=-doy zX?b+BzSL%7@aS|d@#xIX02!qKZWipW1<xU!c##FZ(fR|}nRd0{0ZlfL(${>TK{&A5 zc8FTgSXJxE5=oD4#{U5VpiIc;)6D>G9(r`2aQrU-YN3FFs`WO1%b9=w|HH$~_|kvT zq*_LXmnZ+Blpbf!v|cI^X@136!qxl>G-%c9$Z^=C*OBG0NB2Q+Esr5D0Fvi`%Y)LJ z1Sq@|!W}_V7|m}CJi4PeK*#%b8+q*g2P%#J|E~v41u1|=!#gc~Ix7WyIx8hStnc!- ze+L!Joh2#}9>*QQg{nvMZ;oOa&~i=COds=YP=&uEijg7BrPIdx<r<K3&}!Qg>>k!f z%LF{YEne_~++H4r*G4<R^JCpFJgg5QN%1?q^yu{k4J`1tgD!XQU_R;5_>)0^fuTs- zqt{X0!}?%ZIq0q=eGgD)^gs!pM{j|;NAt4>9-VGKUQ7NLHLGQ0I0G7};CjIgQq%nb zG^P37qcdIr;!KZDb5Kdx2|A+Y+zUpigN;EA`v~y3T8v5psJsKU@eDu<k>d})P~`jn z|ICYOUX&OCg{J^0JS9Lu#sS}}()`B31ysU(G(G_8gLrg;cL;$(4YaMJgYmeF3TWP+ z!MD4B1AIv+Xq|*-BPjgq`P)H@A$+?PKpR|LjZeCQma1HF>^}d3%MO&DZ+IMhp#ZvU zXFn)-lTUkehY5ICpDGsz4VyLBfo5nty4gHB{RED&a4@{~^5}l)q5TRpGUeHQ0Mv-F zeo?LtlJ@96<_Rrr**tn}1bn)Wg6^?D|6*P^sJzu@c+Kb2eb%G<DyS86NQi;Kr~8}- z!~&mgK2XmQ;k0~PMh1wxN@YRr=myQEb*}->hk+Krf&$SoCO+<P_lXzVgFqoE=<)ym zneG!WR)To2LK+mFNb_q4K;uW<tk1-u#ZHR~=yWfi?vKWA!F#2AR198Jru_du!NFpU z3g|>U{uX0K28LeWh!;X`ph@c=;7%TB3zHzjaR<;U5QgIpphe)I{>J(#prV!Cv$q^P z1g60+$i^?|Cg9N<r{K|<r{U3=XW-G9XW`MQ?a>KY{tjwtfQpR(kK@NdSp`&=1$cD2 zfqR1n9@aNXil7r)97U#}%{pj}8Sp>|Xe}|)I%59zi{PI8i5Ih7LERCAO=+Fl{2Jgr zSIqnxJ}M5777b{S_PC3R2gogHojEE7ph7AF6h;3*A>r9+=Gh&`;oDiq0U91u?>_#4 z|DZER^AASQnRCpb0!rWm|G{dW=KqYPoRA@s{{bA`b5z!V0~@qbq0b(a&O%f?JV5(@ z9TEF~eL!_D`~V1LEXyp*`2LG-uLLhJ-vFXs9CLw;?(~484%ESoZ~>V<M+JO_SK|>- z9D`B^Xr2zV-^(!sS~59!biV@SDh=aHzTH1iT1yrp+ND2yyAuQ;{b_KC(tXfV`-q42 zVg9B+pzv(2kPrZkK7a-nK+$9Yx`@mGwB+2vw^v8Tvr}w8C@Xq)h6#9fhDmsKfAg_^ zUsmDS{nw-UJimwa&oUhkP~Ve*fq|g`RLeCVPzMz{yPP3~juA?sV+&b1V*LX&YV6VL z&j>5AgkU9B!Rv$nMdwz)3#KBFIiP~cqx+L*r<qUpVc*U?0gvvho}G0PpxDd~1<e5S z$oY030p0Hy1LA^OIG)|doQ|>RF?e)u0oR~D-Jmqke8d41h>kI_(T87@ae^|~1rC&= z3Y^6}n%`)E8<{@cj^Jh%Xu7LZ)T384vYnCP#m5j(qp+0Kqxp!&;SHc+G>yYxeJ}!) zKf##=JZWkGY0!asQ$+$E-9JGsI;j^I%t0e~E}$8$7!`%?3!vtWhDZ1L7ym&=T6D*N z<`<4birVHQ2Jog3*b0Z>P)EqdspdBhKHa~-@edyB|7d*41JYXd?ami~tvB@ef7r=F zgt_!PT0%IAlo0AM5<-d!I3d{k^{QxNO$g6H3E>a^gs{<(f`l-o44x1&LFOP5f^YXx z-_A4v&+hB6gpd>r-ddyws<FDSz6b`757nqxKoWu)QbI@pk6=O)LM$jD<g$Yj!f`fu zLV(8~xD%FuHU0$5An|7aQfvT;KMT<4mct8MUr_Th1T^b;{)NFOP)8?3B?4SZSb22& zs5l^s3V10Y173&?T1W`mgabJ$u8jS^=)_Xc;O}w=P+<VBERKUxG`JB4-Wdu`4<IMN z>emv`NF{i83hPxtXoUc3&UL>uz65ff#(z=WVsI;sRaXhrh65$RZeGh`Muz{Q-Nhh# zK6rG8a(MLG90lcS4{IlhVt$WqF9DBk8GcX)3p9s%yP-;jp+w}r=*J?^0A7JaF|P;s zG<z9#kP=r=BUu5&vIbR*y*?@m|3$?>hJz-f!y&Srpjqth(=UX;<tVt!4FC@+D0p<r zPE-WlVDF=%@n5tIWCdvG+eZaFYikEq585#U*^N@70&0Lb#2<da0$NWDnZJgXjv7AQ zg#sSCK`jPI@pssjfBR2Q?PH*=I?X>A`J1vp<FK7MDiI#tnG&EP5VA7Ow>OQ^v-=9D zI8^XxKE>{8{MN(zGDhPp$OBaMANIKT60{1@`UQppLyuk-O;G>X`ho|)(+#8sT(38z z@%A3nK0!3zbf85cf7>;XME8jod7$<TXhk15)_W_|J({0C@aS~^@mdJddh-P-=>7p} zz5VrN{^rw}Cg9N-C*cd4A3X2T{FkFBz@uBvqx<p;+W=5$DUu5sI!JTvw6RNb?aZ-b zf)84FbbJ2*S6A9MJ$jwN+iuHwK?4xor(Y=BF*3ZC`Y-yw2$U(iuf6!-&&YsmNT;1g z_c5RD6czAZA#lqu0#xiOfXYcwu^ShC_yr>iD6d5`!}A&_0Xu|+gUU0H<~J7L_}Y(% zuj9VmFQL%|y3cGPIJRO`3P24TaJAl@DFIqa2woec;MZ$o<k@{46k#6L*D)dk5?jX! z#?~(naBTfRjxB#kY>9y!fGxKELSyTI4Y<JLZvm}@@aT<D_h^3nz@yU{9$WK43c7EA zV(W%SH)Ji8e=m!fPiLKgZ?B4k2e@WC?bB<+;K_W<r`N<89EFh{-FBcg{#AaU4VA|| zyRUk7pLqcq-7!Ak(F=`I$4)k+xb%m{<xh`ZcX(X>1l2L&HjE6fmH&$x7eeDw1;tb` z@DNoR$h1y5XryX@TKWc{oLc}I-T+0ag=3s!Y<%3|7dlL!NNr<;MXCdI{Kfzro8XBr zXzugq{s@XqP*e(oLK3{^4Vv-LqmbXj`f|AyS_UiEM9Wa1={#F-x5w0@*F)XI`UHR5 zJ_ZJc*L)s3LFE^?VbXk1{e`+UIATf)J&?1I2&l)&3u>~kgXFt^yk-Jj;sS~aH%3q{ z0*&D|{}m{5gl3^%KA<cV%7_%sxbw_=D@KOb{QpHy=R?DJ4@fsSqku+dz+svI3r^6? zbM)aC_ZdKeX$c}hc>{z&`}@HQ6f``#GX*@51Jsp&+fNVeqwwNP6&$MI6>upk2|m54 zkW#D!bcjKrgh%r!NT`Bl?z^GImXGy^a!s#Z7DJ?B3R|dxR*YeU>P1UPs8-?#)r}x| zSg59fI#19*^=$qpP~-&-)TQ2_{YGJoE*&=d$6WM5o5+8G<5U7)i8RrYk>Rz(f6?4L zXz0dyGcq8I00%RuJW2qCHF%dHDAj5>#)CGczbOCz@Bf(>7yteHf5yZ5R7nM>5(U@y z3ZSN#g-7=<<8L0_H$hv0puH7=A{|g~1#wIP)=^gj(5UM-3s5HoaaV>zhcS3prS<*N zO`t}d1t=pyXB+>EuE~Xs{DNW|G#(fRt-mY~b(b$_*&S#thlllL{&pL1JcHY`r`Tat z7x<V41y|!IG^(o3g335-h2IvCME8joht0vMfxl%MNB}vXL941oAO(=B>JKO(cy?d+ z?v*j~=`4fpWPLHq6Fe@WVht|!3_ZH}V5J*8$AP+rpjry4dswak3iSq%>ELJw#W*;3 z8GsT1DB3L?<H4h`|3&R`KuxNOzo6*9^ylCIGiMya;oT_<pYB8f57Y|ir>FK2P{#^X zYPEyI9dwEzto8w=77edn6D5!CYpBfynp8lbZaLCe52Cs785HE*Ctlc_LF1qwB!Hy? zk^?D#R6ut@t!MvU78TFVG6BzC8wt<~Lr{Yu*0bBpqx;$m9uG#)^~NP!j{Mt?dUl^r z`@9+!9p1ex>S->WI?nKT@#yx0);J$MdfnhP&PPx`?Wrjv!)x{bq6f1W8P0%qb#HRV zFxk782W+CZXQ!MesPR&w0*OOVW+{L*CBPBs7!!Z^#n#`TDC7r`kbDCp!SxTcz=Ri; zsQKqVC~&~F52#3l)<6m*);N~%8fP1}8fU8sG$y)1mLcZ`M6ELsqy|zx`gR`!<pWUr zr87<fR89A}F)}zFW3glK0M$Uc;JkoT^I*#d%AkBu0WuVt55OC?Yg9m4Km(oytTRDb zp!63g{LcRbWdT^wfoTWO^1x6~a|~SH><10vKq_!ha|~MDfO3N`EH{9fU<RPoaG(aa z1Zb8;!Kc?o3*;A2_*!2tw*pr=(6$#+l>={U^|~{9Kq_)Xu!7PwMwJt13=P&UaIhk^ zun@s&1ya*}<294<ZBV<)r`JXs)UE<`Wqm*^5>JDxpI~U4O3fA2raEeT$+P?Xi{s9a zy2$Yuiw*-)+Q!|Q;xuMtc&+$f^l3V@9=hg&WL~*5I1+UjJfLl<5)}<lp@iO+iUker zym<Hn6erdo5*!s^0%<<dQ{jb}E~t|RKBEFW8OROqPU4#klm{h@cq8!K<8jDzAZWd4 zS|>APis-+n8p!!z`#=+nttUZumoq{J;{Pk43~+#|N&!$B2>~_R!5K}#r+W){7!x#| zy+;MKW(7QQ<kP(dJpSU_{Seef=@j(n3>5I_zUkeoW9QKsDB)rKp1%!r-w9~-9rtk$ zL|U^xUZ#mOwgeqmN;CvVeu*hc)7oJtcuP|E56~Dnztc~wV@vU`_x%@jOasMH>&X(X z7h)izK;<B)-P0)t>MnKW34qQWfwaJ1@PktVXlx18+<w8}3>xp%W`GXdf;ycFpd95G z3mUSGJ^Z5e8#E_@!UsG)8v<U2nE<i?w9mmuCBXQ9XN`)%i%Y7E3@+UdK$kmdx~MpK zblQ1z)(LnVcLN`2<j`RU8u|wH(tNs$u?&6RVqjnZ9ZUro_XaHwcIZCw;;kwuVZaBz zcZ0GAEe5_p`}B^npbmVW{Qdtwwt;W3+Z?;kya)g}4m>1Z3Lb**o&#R;<k5U2!7&aJ zfZZov9I^&Aeq{_HgWg*}JWzi=92|}oo;$&3@2^_L1zy$q)6@DQfBO_r8Px5`;i1hB z3ikxiJcEJ9Uf8|_P`c^_RV3eEdUX2>cxdxON~i8$o(KOkd3GQ70H3k*1ElWzOVkYr zo}jtvQ?Tyh1^#wDkX^kjf}YmLidj9okG<yfv_8n+E)EfP@aQ#xjF~k41Gio^J$n7r zJ*?01w}H>qTB-+5yZkMn=tD`rA|9>ZN_au_WFtroq~P-IWvTb*<vHxxeaut)cnQBx zFN*_sy#(_MW$+M)xJUPCpKf;!AMHagG95qz`Rt(U3Vgu+>^=%=9-;dPV;h5Kw+Fb+ z_R&7*+3NtQv+aDk4}wYyL$F(NR1Ca(S;`>2lwO|09=$Ab9-Z=_R;&i7VovY?ZRr3l zwQfFQ;TQ*6F>ogdRK0|8GccTaQScd>DZnKQgm8eI;sL5)e7YZb?t-780y?AYg-<u5 zXZInGZch$R?F$~?UwLYu@Z1SGWF?Kwr~8xV!GA2E<^ed~K7f>heTlRf1C%aWK&N_w zLIQMBlJ*Hu(x?D6)eJywG)Py|r?-j`v|;7oFJ!&wab5?BTtUz7^PbknJ@}nZcv_$2 zZ%>B^cY+3na7McmXd~J>9cZ+xgS8;lSEBG}?*gd-l|`Q2cfEUAw)u1)_UY6)?9*!k z9`N?<%#+|3aAj}=O}+^D3OMo$`U&`S<_dTmcLkRiE*-fH9^I}Ao}F$A9^K&_9^L#t z){jbrJ-e^GxW@}xR~63T+v}zQ8Z$Tt=JSKbj^aUTU;O<9%De0yh_h_E{RQBu2PteY z7G7aXJucAH^I02|B6CzUynA`}LsO5)X^&nWSn4qVMIv|xtTUVgyp$iDfWRB^{)^5? z0Hq-zPEZ=s`G}f^96~{hvot(m6Q%Z`Igsw3p4J!m+x0<#+!>=10Gh@FO~Qg&B?>;> zg&aQGh92FXpb`MQimUsg=fQtW9v5GMC;LwDxBmu}m%S!j9@bxrSv|VHf-?69{`Myj z;jN&-1P_dieGIf!?Ti*QhF62tBE>KwW3K?Ifn;o-?xSA4Jez&BkAbr@(~A)B&;xRI zo&_Ex0>_b|M|ZdYXx$j0#a@P>JX@;;3iT2d1&>~q)u3$J>COSpvE88g=<XQM;!k%0 z(1=_-Xv3FLJSddcu!BPR*n3zgJ3yA-AOe^lvJeLxz~(3coC6*><?ztf1cj}qHlN4A zpDZ5T7d;OCWr2n*sG<T5%d|6tboR<{d05{A1@Jvk0N>zme*+3M(8{mI->_2CTiwI@ zG=JMAP~hfkLIW3cg){mn!);KhdHRJnNDZVF?a_VKr~8=4!G|m!%;$ZykCt$QR+t%I zdhy<pk-@WD%%l6fZ?_w`%rvzIiSU6kf}v-37&MUauOKr81+oO#I*`|US*$^2V1Q?* z9r(^!=I@}Mr-El^8HZ=58#tUD<3Pt6os0zqv@;thpkv>`0vb{rg68v(=EM~|x+Q(O zfBAMl08Qy=KLT|<y8{J4=h$dp_Bi;T1$@Ai^)LQ5aB|xRZJqObSpVa1e+3Fm(AK<T z@M^1^+oRV+(8Kz>2fx#I&}^rb$H7M|NG)5;@hd;*n6JJDsJ-af$>!PV2Juk$HPC^F zr&&QK!9XY7KudRCfrfbwK4<Y@{_P2xQw6PY0-a1210HMnFM28l)a(Ln9@PHqaqu6D zhxNa*gP;)e?7j|)uI|$>mV@Ibj>D^0#Lh$e6}WCY`T{h@<I()|g9r0#&(1s!P+Jw; z=7Jdf;u8x4!<jRn{Vt%UD5z900M#f+wf{%(tSF-=sMU{Bqd=PyOrWv@lvuluf?5I| z%r8JnvDPS{BWOIj{RBX#Q$uQ$0?>p3<Omg?-XemPNg1!laqwC(k6wTE*QOqzmPGeC zPwQjwS|u8sMQl7h4nAk~X#5Y$5B};N*5~=#Y(dpYyc#q=fX)>|Z$<nE<%jbxtU+oZ zg^eS>0J}$T4ybxK?Q!ras|WLIenC)80$%(Fs!9ah75D{R6&(2m{0;a8eGMG>1>7C@ z1zjCLA_4q@z5zbnZX6!nV!qZ7N?Coh551Q3?LGo(bbJBLVS?m(eG`1OkANzhhhQN# zXgdTRR_NggZHFM1OX90ZR)U(2opRp2JY}E_Pzs=?+QEmc9?YjbI{i32dU@nQnGW0- zDFCn70PW(52Q|yVn_B&%Kw0ku6DaFFdIidQ;PIYNaKFXEr<>EK`<JKoMYLuJxB=qZ z{Q}$oIqA6rnpJr~$?M=BX3y>;pycAi`~cnnVMeS_1{IVo(?M|ws!6*Kd1{{oH9!g= zZBtNl6jCd}(+slS?gJj($c@fWkU3~c<ph7b9Yna(qt^tq1&;x<Zju2d7XuY&a$y9k z$67b>fYiW~iz|b7FUu0pNKmg%GdQhuy9#u=3V@oL9^K-;)<58>;5aB1yfXz=IiPCB zSHxHQIA|LFHdqMU8Vv@u!4ORgc(Ve@$Ixa4Vj2otVsM2vE9NLOGI;m$Z1d=pha`qx zk#0z%0@UgOHS|F_9W*f74IZWQ2NlAgF(Xhf?eKq5hX_z=*u?-!4Od=(QUhqeGk6&~ z*De7D28Neb%4pjKz>B1KJi1|>;RFGc-Y{sq7QUX{GvGy;ET|h63|SUp<k9VIKvV}^ z0aUZ>QvwyZ9><-*3s*ckogLCToxzJCLC2`JghR%O!Rr%xdH?2v=4_XTLIj}+6huMC z3wl{UgEm8V-}LBY{C0@3glks>s6vfW0=W;g^i~17iwBf8A?rQiGhY1QKI=~p>kH*c z;5FaS%30f^7hE})`MkKM2r}mcXaa@L1Jpfle(=Df)8hwdNd8tBsJw5zUBU&b9o8r^ zGJrSUcCv%l%risRctSc23h{?ucs+;21jzNE@B|Gmgn=`the!7zNB(U$J+u#kcBD2x z_ya1iyMKDvf~G_H!5aZRTEFr4fu>7AV>_V9X3#`gI_Nqr@b<&*bD)%>0qW~%9|yPn zF8%{8A<@3(!Tiw!WMcE9KQ8>+PJ?P9>qE7mWd)$&w^Hz7+W%hjffRS2dyxv}zXugR z+Q-5Az;38-@UZ^N-(m#XvDaJ9;@N%A$NDROixLw9!#)-U1_pjj&|+Ne?}+`2pZNuh zJ-SbS1}($ZKgQp-5wz>4*ZGe}_jMoUW1tFlmJ#T@7eVuvr$AEOSADdvdmjA7<lBA7 z^WqQR)&u-~iy0Uge0#nAdtUrG;j<IJfKU4$&;KVpyH9v_U+}d)SZkbyu+O8HMacLP z=%BlH7Jhw~b`Jh&hd?KUFkk3qncm6L@6mnA)B0k~4NvQnr9zJ14l$PUICZ;B|I^9R z@7e41-vhK!{NfKE>w~pQ{PHdg44||0+WGZQlnH<47X)cP;qm{32UtbT<IntpJpCXi z_JhN#`4<y^4`|jD92P#kp?^HIzkhb*7vS>kKGe<bqkY`-;14F_lg5`EJDGfYJwP7v zZ9Q2>f%^|Y+}{pyzX#0y9<3+q@Vnom^<@2H&*oPwU_W^FvKWD5x%meNf3GL#Y`*3r z9-!6-xKZ<&U%>f~N3ZiAe*I%*N}y??G}wBZ&!Dr;yH9-P7jXFF(fopiU;kM7>(Bgx zh91p_SwKrfTYvopU1tYM7sy6JQa>pD!^;!S|G^ypMOO!c3h~<|yx<ZFl%=N1feQ-o zB5uffd<D<$8=#4-NRRHrKD~|-9@+<8jZcE(%cqmuuhWO&hi@kjgCoCy!wcVD2MvBf zW=DPjj|-sna=x7&7eMn<p2r<-fYy7tc6c1{?Dlxz)#=0Vz_Zumg@^U2(w*S#9H(EL zdjeX~f?j?ogh2*r6hQs1?oS@thd>86AN;}W)BVx2`M@90K9XLUCeSK`TF?@@UT+o; z>(9kXpZNv2k%IC>xd6ZZ!E$bo?i>6XCp@e_6g~2=K3^;iRmRA#f1;cZq=M6<`5=pj z_4%Tg9^Dr~Cv00^=Who0u)B|gdUVYPn4ys;z~2NKaPjGN;^3DD6&j%Q%lw&NfD2@p z9KZfS{`PmEW;5vGMbIgmpZNtjKl2MRfouS!RF6NNy$*jq^9wK|G+2UaQ|l8YJV+WC zz#8}km_eF2Kx*Z|hKquZ2(~^^!V6dH$S(*{42l63&t3->RMT&RorA@6kLE)H9=+~g zJev;)cvxTHZ!!cWOY7^!1|S1qev$$OkQ^v6AUhB2ACKlkEFRX^i!S(BpDVNT>~;LZ zFAoY24v>D3HYt$1l{}hXvw#+Ag7h<g<`?At%rD5`+5D0Pl$<@SKNg+wu|8Mo?qPkM zzXd$I0S!CmZpKcKdeBv2%%I@tW&#Z`9|q+pCXn4PLqJQoyDz+~0T-qhUY3C9=7WDc ztgn~qf~@tiK3&2G3PHwhX2(v(&-{YS-Hv}enqPv$2x9t6zJLG!f94lpa_na81e^QW zkzbJU<@dk;|HCGaVpJkLLCr%@S0pYz4!O$y%rC$RN~YQeK_^;(c55~N(BSU_Z^`@* z+P=l?(<=iR$?IhSH?BY>9w<i3Kna6~1C+r*PGkWkT^_K6EXV~spm1UVg{2_B{spjN z5r|@b0VbdBLq6IEK-$0>Kqhg4G=YMjMF1LiWip_$M*x)kKq>`b#t4B``gR}m?Y`)v zeZW`yGDw;MM1YcU8Q3HakRm3K7$b-PTO$V&;{*|4#X=wh!HNYyVoabw{LC)^@dLz3 z{DLeXg9JeC0-GHMQVH?~NVNzD$OPxl{DMND!k^<X$OKSb08+pO3mCXwDP+CiKmn-( zX=OZo#v|GBkB9b&mon#ID@PzDAZVNpywwAgsvTWCx<7s97vSvz9WLMf^E1DI(r5md zgBuw6^^cT;&%X`$%pY-(U;jZFlhFatdAJ^*`2~VlK#KVF4?&cKK$Kj7De?KtFA&86 zQUYrHIPmKq=5GfLFo3j2K-AvgZ(qv5z|eAlzhy4y(9Uj84ddG$-JS->t=W?<kV9_{ z{z7WdmKb~XI)YMx!w-JFBUO^6;^3-)U++*AZz(9rF!1Xgu3{>Q1|5>#d_cs<`cTnD z56gIk5_52Q?a}S709voC@QGi5?GwKsc!?elbGI8ur;Ccli@TsK)Ow(l$D{c$hez{o zhnjPsLrp+iwxAp43_x3`!F=!%QqW;L$V*5;^P`}?a=>SP0VfX6?wg<aW5Dj^^6CBs z3K$lT?vJ1OV<JIe$oZK+@&LFE!>{q_Gk@gm&-{@mKl4Z2{LCM51GHvb?{GOM_@uVL z!>>8`H4eXcsR?Sl2!sjnhoAh+A9aFX<IrdRh-3Uw2h#ZUPw=;wGlCjLH7W}H;s5!g z4t?g2`uB-H;$RxT{txIffO9W085tN}dV&hsZa?t;l>(1$&|>o%l?o5-vp$_mAd^l1 zeL8bgJY2e;d+vn|BE!4yND;!{au5`Qoh2#`F5TZJfHH?WD2>Os=z%B!evn8w%V$Ua zm=HZM#iIxE_GkXcOHl7#{LCK#I?Iw@?-0zphd|yv^x~HW$h%<A{U}ofZDsZ8brtYs zKIUN^EKtJZ*v$YcqMSKcKxaIielcGWG#s0!;rRcEN4K8=$hq2QJ)4h-cz`>}NUruw zKH>qMW&IBtpDj^w08N2=_;f@34qA^@;9*&(P@>?`?Wf?=eVSk68fe0`n}`2}6ex)_ zALsCB{_jxp0MtFM;MV|!xCW%n5#We?D2xN-yc-3N?mz?3>ZcMF5AY!<jvC<gS{Fbw zCIO!NVIl0&{T<Yn1|N}x<lGYQ)Qdy+`w5^h0M$@F%tx_@!E6Q4HVHQk$N$G5VQ?JO zFKj-FEewu%SRX1{3-YZ4XcRdB)Ry-E`&$*(-h%l5F!<;_9{v})pgIxe`NyCkBV^Bl z=aW2|-#C2Y7hv@0{@Lxw;n6Kx_yx3%RkY{}=*nPFh65D@JfQ5>?FhOC*hNJLv_+*v zlwZI_MS)+C3AEp_nbq<OBZJ6mF3^rDg%@8HK=*amD=?H8f(n%Y<J-{ohDW!*f=90? zE69#+9?2J=x(}XrAAtuDLAyWTi@Y5mO{t3itXkhded|vRw&h>IdEqB0BPQ@`eBy6q zU}9i!;Rnqges<v(U~=Kt^ieTz<kvU>;(CE|t|Pz3O&5O65ETVTW_IBh2;u-;eGJX- zpnMF@&j;}4XGt|s0v8C!m7hWPM|pJnBbAGwyJbLAz#g4zRKUCYpa&d)@-1k`K7Z69 zP?{>>*Q`+q;1B<gQUs`bX!~nmWCs40%b+XFS@S+KGBCb84r(BEmxBsq?Q`9)JwTUc zfF|^qK?xH)G4!LP%%xlP)MrM9v<Z&<8V4Q!ANkB5<Hq91uW`YpQ+4BKke_12KzBKR z=8y5?K+Eo+tp1rl;v!~t=T-&jgk*RA_H5AT>roF-_Dw$OX??tCGPoSqLg^2H;vbwj zuX%LyaKDfRXHIC*{n(=$8b;6~4nX-d0F=@TKsg;0S{~hVz!T~&pnWb5E}&g51}^*> zAu0;|8YL<T9?eH89OK}L2bR7SJh~l0yVF4Za}!W{v_MLaJj|d`Z$9ws{)@Aq`~s?S zVAaWeP?EIp>2}uujpJp5PppAY4uNtidPzmp2#zIm1m~6@Xh*WU26#f{xVr(AwgAz) z62K9A{>4_1qVD71%zOC1XqOxEAP2}d9H6l@@Foih(CRJNc8CCv?kEjc<NqGrUP$Q? zlxrM3v_U;?)AD@KsQ*Wg?=L~A&j6f-6nwisIClTX7~A7-0Sy#^DhCTtes$?y13qv9 zl*3xU)7Oyw!k_sCf`9PqU9XZY1$9)M|2XpNxv^C7mx5aS%peX&6;nwP$Q(BgevR{= z`D2(r^T(V5350=iYVaSl<cGVq=}}^2;Mf09CgQ@cf54}=`Uk(phcfp6Y%Z31wE`ah zk9#y97V)(H!{3ztAJWBi@ac^K&4xuAc!EwH%m&{t2EI`Yl+p}f$6tbn#~{rw#D3P^ z9F?6Ojc-7^t3UAzFnM%;>UQFA?EVQ_AkrIponLbcIAQW@d;;Cde*L&>Iw%r5UGKlJ z{08bI-T>`Q1qA{tV;&>J%Tg8w2LA8^oi!>NKE1x_pZNvB>r#(-bYJEdbbZb*==z;s z(3PEE&{dpY&{h3~2q>d;M}scaeC`3-|5*pF#kZ({_5p%S0Gk9_DRvoZR_7k@!G<qx zf$oOrj#lvLt^Mw!{oA9{^}XXh(4k<^_LVS_Ziv<w%fWpI7I}}}Xb#WjcZ{VsJ-S_= z`*cH01TAj?*$TQ&!ZeqWp*uDml(9lT^9#6vnvo8m<{qdq3XabJP^6+4DY)ZwhXN!{ z*{$!_F!O7C@aT4ZPd(G4FirnXJ=6clW4Qf4^-Q0KX*xUgOn1OEou7K9Ka#@;8FA{F z-hyemJoQXh!!%u;dZwR{#RwUF>Y1K}W;(ydF;EQ(I=Pi!15#jlG#&w!X`mH%pdt@c zp9p~J6T~4X4xr79oj#ybFF}V;cJn&CU}Q-3=w?v`jiK)Xjq7@J%bf6FzSYfa$y&_7 z#89W`(aW2~z{K#vR)CSA**1=WiQ#`Kk4G<WC`j-GKO+N3X$(kdxkoQ=Fi2DgtkfN> zH0i%6vmIzz*n#7$QXrB4|NnQgPI<!!-3{N%+wq2x0o1T?>^^Ytg`A`D0hi1Jsh#XO zF3g8qI$0)yhIAW$6)-U{6x}_}8vKTl0mSy`<$dv=k>Q0q)B*SZGcwc}di3&M1Bp)L z2f6jse@2G?r81qSoBlI09A{ngpOFDHQ0CFgyAh;_ho6z5!S?KJMh1ow3D5<I%;5cK zC;p3aIWRIDW8Dmr@#r-7=mhN%E(aew)GMm%2bv!^|Ki`ZfB!+t*+7R9y?7|Vz~BO! z;R+Y<0Ud@3T2ynfSO#($p1Xi&^G^ZL{z!h84i>><E`p2<uQ@?y%f0w{?*IQ6O9U7g zK&J-B3;Y+I0a^kz!}yZN_s^gsWI<i%GVt-5pdGFUJeq$n7MXhXIxvC{Hvu&yAO^F0 z^vW>#XdeRgyg@s#x-Y-blV)Ua;NN$Yf7^i$=GOua9XX%{nx{ZB0L+4*L;sI?H2>o+ zYJ_fij{tQ=5<I#Q+s^J@L7u#To}U3}nt<kq6+#_BlhdH-jNTlTlOBz4K&SqDbhDb? zVr1|zKH|~ost!(VzVls;pSX0UPWR~bef}c-FZe{`)a5>%soQ-zQ}=_mJoSoR2kju~ z^<DmA`PF~_CpdQB@#r;m31?*Ru}uBW-?ou~fgx>zN3ZL1kLKF{;1leg^KWC3@HqH_ z#f5(xkAX+G?{<&w(EXq@;9#fvZTIMPUGCBR3#@#(O9v11R6kA+kUjNhLAx1|4fNpO z$0E`EfS*hQ^*{#xKkQ*0`<=fj5Y+bU^<{ri@dx7F<363K*L^xu??b%%0(AODukY~} zJFfiuKf$y64#c0Jtv$%|8?Njg&9(Ai53r;A_qs=S=zV1WUiavAJr48laa8{vf6;#i z>|Z1U(fv!Jfp#DRk^Sq_sqWL6F5uId4$UddAWwFme{tpVzyHTwLG#88p51pmx?R6} zFdy*g&fV|PUAo+-yY{|Mcj@txnhF0!LF<D+TYVa8+5ewtKJoAW0q`_yceq6J4@S^Y z53b8SoBx8s<JfB+kas<s{|k8XJ0J6~J_U+4iDG%kk&d9XK)*nzq=IrCJNPt5P=J7j zD$c)XIsN~?$N$4nhj>`uC~5_n1Ik$8jG)z9&;`ff4g0>`Wj{cByP6T3SFc!s7yF-k z@thUB<1|zr6zWCLvk%#cIQwuC$b=UwSV7l^rHXqTca;ZCPaJb)X8?H*<d9HC(0W{C zhj?_C{qWE}=7Ho8Z;&yd<&|+zhx|u&$a5kb!U;0rg*+>$NIUM)?W^u#eCEX#7Dfi2 z-Z?6u{OpNzb1zbx8hisUw0`kXfljh^-!%U3(P;^}`pwd#6Zu}-?;eZ{FHT?l_kV&% zXLSYa2;<J(kRAHFA-(F|kWTe(P$lNkxf|R`?A#5$^`mq54p0}Wb2rFQ9-X^EjaHA& z-Js1|ox4GGU|Q$yI}jD112jB3cY}`D@aWv_02*L8-VC~Y0~E#%9WV*-VW6G6L03<B z9B&3)X91OmN`S9?=-k}^(GR*%0xA!c0Nokk(YbpANWOD7co9u!HHSxMwE({ct6&l% z1HT5Z6qpiq22-*=AWG2Lf?v?vgI_Q>f?qH?qt{>IMG7-$R~6{2hwuaZf(-nE4gwyX z6&xO&6(Cx|qtn8p6LO7ij0*VVBWR}>8vZ3J;Qd_*9^E%zWS;r=-}oD7pjiPtb_u$* z*QM7Dbf`RE5NL;=kBY(zmka;?gOoVHlmxi+x`}x7iv9-8$MyQCIJ{82@b5o(^anIv z>+pi<*1!KA-PWLEty4f(+P0o7VSSPN0n``r2OkRS2)+~&_2@Qm_5p3?0Clb5x82?Y z-Bj0o;>Btvkf+NzV3q4G&_RHp%4rfvqT3s6EF1Lr9Lr)3(3HEk0F>Xo8yv~4|4Sr2 zdiz0ln!S+U{Qv(h(8UWNGyIqs8D7MmM)#)U4jxbv=@n&yd(`4QL=hsm9Crvo6tO}T zDZCIq4+#wiP-rN;_;Ldj8r|Ro(0a1O*Q0wfIQoh4{(UCU60;L8)-Zy+zZq;s=VnME z+6*?Odon1kA!X!laDqcF3NQk-6KZN0#8iwlyBTam_he8iM>ZLp)bX0E4>kD@1K7P7 zxn(ohi0;Xt{Do{XIQQW-`6_7ou=~V|MG%uQ^66%<5#8P33=a)vP<Dr`8HF!r#GcA3 zpoY6b3<sOhxfxPuYzCXs-3=~Ypaz2r7h>X19%}HL|DY=kHiOOR+zctAHiJ#+1|P-> z8ixWU3~*6KjKQE4x1gmmlOYB}3dGHj0&z3gly2_|kg0Ca!^F|T0qga~B_I<W!6p`0 zz)rd9+zc*syMqnD5vB`jUw3;;AXZK`A5uq4VddH&gMR!2`MFrb<G8Z{q%16!01c^C zpq}0EUv#rEcv#D)`%bW9m`CFqNVu@dT!1zVT~rD@JBwfVbbs{iOupgMyAYHOTsj+< zFfuSW@@p3F;Me&0nO|@tC}Vqev#7X$?$`mH1_HTb$J5$Hg`<Skv(rU|!v}ImzwvF4 z?!pSt#s=+UKAk=)5#YlbL8l9JgKkgiT%!WIT*{+!4|t%<rxP+Z>3RI<H_#+RCuC=j zOZRV3Hw3=k!L!#@#IyUYkM#@w<{zMZ&^sM;&Kl^NaSz|#R3_i<k3QPp!0Yy{-xXJQ z_PTO;SidOA|Lnvs;9>_FD{&EH0dYj^KJ&+jh=G_scA#MuA2IY%6s!ZYLi`$sUKH_z zD(4W;bdZaR189tl57c(~=V*O{zxNl|Sw1TNJ+03bS3+EHqND(16U+r7AP(3CAz}g` zHp~eUXoGWDoxlrn!h1fb6ZrK%xOBUyIFundp`3|<!Poj3#C9L+2PFld@jn-Hi2qeU z91-)+{4pV73Lv(RIV1oyh_<~DpY1<E`LWkWg%K?P9Qg%cPA~yk3w444hz)as1<_7; z$BQQb%D`)xd{iPldwm5xnh!a6G#_R0Y(ByQPADGMFZr7;fd=7veMLOF|AF|;p#1F9 z{nfYoq36M8ETBb~+Q+~t*7`+pIV2Wel;nZj3i5;_e~gP6X!=e-#2hr2Ct?PY0r|p_ zKgP$5sHDULibr)`&>lcv5qLCm|33^)Mw>x3-v6VX&Bp{l?rX{d<%(|5PWx`q4cXn0 z#5M_Zv{E;pXRnO8NB3pd?i2hP*Iq1t_5VM={;{%{W6nJPJ-gj19FMuM^D@9#d~g>3 zf5%=|F3;`|70`6Aho^Ojia?1FI5~APc{aPKaIm~=0S$!qx`5{C&b;tt1@)<2R2*Ix zcy_meig2)ENB(U->^vRbJg>z;b7lchIf$@hhmSoEvIsBOAss&KyvU+_Fi}2aQGS>x zzc1t@e&60@ppwb6yR5?V|54BGlaQiC`<y4}&eMZGSwMTy7$EU=kiY2+c(WL!ECFp0 z1Q*`jkRk^(9Re<bx>^5T1GNny+X_K*A)v$nDnTKYNQ_DbXmnYo*MsAQ_fJrP>!On2 z(aC!J8mIyWm$w<vQ^<uu$1V1TsAT+~0Iof|V^lJHyZtIWx=;Idw}D4Gx|w}J3k<_J z9Gf3}02QMKAVR~{_yEW&3a-W{|4#t77P>*VNgAJdvEv5==&E~AiS3AfzXr6unWG{B zx?@AZqnkDA9V5eD1_p)(>!ZD(N~NLKM1$Y?V>hqsJ4OcUv%R1lkPW>un*7c;wC^?l z{$DEK(aSsa79+!p1a=07?hCKOKqCnTz157Mg4fmfq^t3P*4rhb9=*KzAXQfEpd@g@ z5xgVD_>yDyf$!gqFLj@A>^}JYyY;~$Zm5{`<<dhS=E3jZL6gGZJ*XDU*Q~GhvS@+E zH5__Dn`#^QoezR$USNx6z~@hZykg;je*T1S_ebb{VDM==so+L_4d}k66wsmKsf^G= zbTmLmPk`q96nwft$0S|`Z3sROI(`&<bdHbp5AYcjmY`*)){vue5NA*zHUx7sVmaBv z_d5fF2dE001<IY+_gQO#)IfHKxbW|T>`C?1eg`@$$G2C-&I5j44!DCG4Lz5FmlJ%$ z>`~8N5joKLuZ|rocAlU@^u=cmPze!E+%X_8zA-So*8DGeL>sg!w)@(PtsD?@y?RB= zP|cmq0ZP4)lXSr2P@vPQx<LU7UdjsIAq76ZV#glPMqwckiMfBo(g$h(h)4HFkM2ML z-|jCSpjD**m_VBxeXKw6w=D;S*Iv*J=Kufy?Ln(n+kb+DK>J6IqU;~h5%jcv=gIH% z4%D-;^XL@;A6<=T33X%cj&=i$X?34}@%k$R1L&w=Hjhp>4iC_#nC`1DW`V9v?qu@? zUF_|~0baFm!=smH1$g;>_lXy?*g>axv21=F`Cqh83mj^ZU}f6(J-W|(9Q@7XWBs|z zz@t|Nv^0kSbf9KBJE-cZ1MMHN2Jas^54vzA5F~o=FOx?v%lg+mzTHP&*h7ro4t5S` zaTsEs%8SL9zzdNaf<wbVCqh70VS?5Nyz&6uc=gps8@#X)v~LWy?ZzH-+P81_1JI5c z>tp;akPSGXZDyxHSvCQ@-njcBDCuYT^j0u}Hbr$G1FcZBK2Z+ZnZxC2{oRw_={xAS zg=Qwu>8?B~9^F5jI(asDbf56)cINQt7WV5k+2CpY0=n?tr~4>q;e9C^XmNluhi9)J zix21wn5!?6*g%264Ql=x5_?Fv38=~H`h|hPtCwfLN2fJt?l}WAy3^?m+FY?6R8S;< zuO0%0R-9uDDE<8x{jLF8NMCsI|Nk=%!SE4I@VV}%K)W>ez?O^nf-a$9<+u!*c0B^> z;_e2Gxt}?6h6gms-_85&6383BK-)YI{zsa?2i5i%6V29_`CEcPg-kc^u}g3hJ99w$ z+CX#R&>a<>H7Xe%C~LAnMGexn3Q*9?2zprG^Wb;72U?U0>IgZ4_E>s!|M2c*+3(S- z)9%rI9%cUntM?^P@QT`8Vr1~O{s4&$8PK^6+J{~|2Mq>wvuc2p^n!Lm90MJ5aS<ZQ z1=7)apd`$ro0kvaZglT~79~Osw})?rkn!yXZOc8R?x}qMc}S~59Xz&n;zjo-(A5s0 z4H33WE`po~4hE5ak6xbH9-X2yKw`Zj{h(Fr-JoCs6($~?q8%V{P=tb#f2?Cn^x+pv z&x2F{nKR)11>mX#R4#z_0EBz=@<6jZ<cwKE=rLtwwxF|<PJaZgX##Hr5JcVz0NQ7G z_`m2GHBb(2Jz2sD5_mcHBe+BWou2q2a69Py9ng7;@EtZF`=UL1Stfb(@_-j#!cK`q zwKE*Qoe`*ZY9iTrcN_Y6ee)X*pYDr}J3;d$-JFirCrf>O!OMj~?JQ814EW<{Ea2Pg zz{0=llf0vGz>n@jDvaN5NT0m;s`26d4IDEajXQMM7#NICId*pJ;ACL%Y<|gDdfc&_ z>*Y%Z28PC;4?t7jO?SbI_GcXdosQfoqvF`jy!$Z&$oyay-(F`H;|n0;jW0k9ckE_B zHow~hYJRuFxBvfrdnG)YUo(~-@$H=zz{|j}y9d-I>}CefZ+Bk+ndWFLfX}!spZ@;` zITyvaqmJE^8iW}b9F2omJi296Kn6G(gM}cDLUvIX%tc)XI2jm>PdavTbsu!>4ryZP zb!2qxWa>WU*xl43%)oH)CAacHkhfIVMp*qn_<$YE?z#W}|G@|RAojr*LdJ(YnvZZm zR_Qu`7AJz&u7K{^=nhwabm4!%>l;w78~p^JbWkx?_a1Z~rblPEghyw%f=6dK=!PxO z9abD3pu1AQ+kCV^%`*#7I|{LWOcFe*_QL)>C>@^$9b5>$6UxG)+n)n01!@k(zm$Iu zy43lvGPu_cEyYmgdms*Pt`v~)=)PGZ20gQ1fWHZRbW%6x%Q>Kid$;VXvy2R&wq-Z( zjkBOq?69ZyL63t!m_f6k`99r&5+LWn``2Eu4d&gKy}Eh$K;y=qple>4J-UU#=afPY z!w0R(X#OElDg$cnS~Hc3c!1WnSvzr*f^MP|@UV6gD9QEgKJ5Ab0Mt4k>jOoLNIKmr z6BNo4@4y+jyF|s|7&C*%acA%zbdTfCp#4(}ppg#f=&M(^2_M*{x*px!p1nbc<`T9T z<OP|%=Pf7-j=f&^Uv#PxG@QZZQ8(+~Q=nZC2THAbJt|&Ayalf%F+K?$2<8`bP~aDI zFyI$-aNrko2;diVNbu<NC;$~tJ%ylaR9W|)Vr1ao<{$tngdhnG8ik+)ArK0>)vFnN zfcu<%(D4`751?utbQ`%Qc+-RL1<2h~q2N2lJ@}mu^6z8lWCja@IS!1S&MZh=CeR&_ zpnI(#vdo>%pxKxU5S<Pzoz4PCidj3IMUc2`pySvPdf7XjWsqb!KnJxWWH~#XRgh%4 zI-NC;xZIu2I!IiePG<uoE^nu^2@;nNbn-jGWd2TP8zfnQPG<)su3)FL3ldkT)7b-w zE8OYqgTxg99V3r0S+vtR1W8s5bih19R=m?WrpN$1=0@<8)NBP%Tcq(dDCziq08PzE zg4v)xV)Kyz@FWa0u0a$izM<!{K-P`*=BV6+u5<F}W}UkS7X9*|!*#oVx*9)uVX@`k ze~(_*^&XwB;y#_J>p?TJKAow@U3*<rI6ZnrGps<f2EOZG@bCEde}YeE>Uq#4rcY<; zbC3#dk6zI*h>G(s-fjoY?i@b`YIyr}A4{76xz3s$be(ngb&p=(^DlNi{`a3>fPr7o z^*!VcXy5-noe2US#~r{~?HB`t56CUOq3>Vx9|W1!9s1k@R3t#>*3J_#rDY}$3N)Wr zpg=q3@&7=B4LkU9jUO!h%}+ra1zk78y$qU!hI`p@2OFrD&?{PD3iY!z$VbS2cH9vR zQBnxn7!LB$k8S_{Pk^n5{eP^%#+;$_J7~il)W;_t5$)r-2atTs-xSXTnxsGE(d|o& zuN~w-z7BiI!0=KHq!ASU9=#5XVBddhsImB?$KP@a<oNDm@cIE+{%<nmf?^LG^8X6> zTR@#?T=M^uOY$0Qmw;wqN>g7v+(;mdML=hH_4=-Vv3)CAx^mnR4svF%XfEimK~NY^ z0V{zdjPozb_W%3;5_AH|PLN$M)L(!i8g%d9a^p*mJ3wNfvhfCJ9Haa6i-^bn|NC^m z03~maUJnV6?t32p4?8y4$b(a*qXg(GMODyI1mLsqeYy=n*BSV99|j%4+<orF%byGk zj>lN!7+!Pxf^I#!{GxmlXx2;C<0z=mzFq3n>s|3;@pI5Pjq7s$@B>5@+?TUKX58@T zWMu>y)9d=)qtkV{N3W>Tad66e|03}2zyChnACPk-=srI5^tJv)#g>2nC-`=s_3b|9 z(HpuRw1=)VA7r{{+%ZN54{Oo*V~h+Xygr>;9?h&?#~2wnUUT~Nx{ALzzY`R0zVe__ z<?u5QdydKnP{2dh5P|jsg0`B&))Ilr7x4LMA&#LQy^!@Dkbx^!*BwaZ$|H~NpD!M- z|Mwq!fQ%?3=;*>;-|aq~xgdPpr!)7wYp*Nkivyeg{detk<@V{!z3$N~DhN7ux-<8= zN3ZX7pU&L(FBX6@DWWU^xBoo<A8@nKVK4pe0nS|4Uu540&C9uN_vj7%&M&|KDpGtp zGXy{jE@4Fqzo0L>ONYh_hrOUVyU_R0(xlt>I&nqt3n@^(`u7wRK%mmZ1>%5aP-$`n zRGNHW_wPTX<N*26qgT|*5Hzcwd)x!!?ej0LZUU(Q6&z5{nt-;EBYSr9rhotW<rzHw zA9JzLF^7~Ny}s8$+kHFk5$(m;J>+?j73@Xnrwj~62VSN@3J-92yIAC~GlB|{(y!10 z1hkb1TmXOu7a36HK?TTkPyzxKAXw!86_iwabRR?2^gp>I&Ba1D?+7D9Y3z&DYe69e zDutn8`A#1#EIT)XR3L@r4im5nM8Zkm2oJF9FT8gD`)_pMCFFSJIVzw@V{obA)42t_ zfZqo?^Yh~2V^9MdUVM0T-*_?Y3n<P{zYx0*DnUMgOOWn+ph5&*e*Qn~YM~<oN{^6& zM8&83rw6nkv4j^S=RpTZEcnX6;M$=h4=P8_fI8;->p;0wmf;|z9I*qHBhinEZ~XPA zgY<*Ski7>$g@)*}Lm<lc`wP*Vpt9o!C<uKzbHP~-vYs0)eQgJ&FN+QT{`+>H^XLuT z?hCqa>GX@X43K{zquBi0ZnPXI(eUUN6#$uTEh=~jQkocfG_(FW2r5lf!KF##RtARG zQogO<N<=~Xyp!%jC*wh!gO5PFVjuy|zwIz+(IO}!Jh~x;kJ}^gh%=}#K`U?^LW4nT z;KNYMn_E8J4_`E{29+@1JbFd>jTu3UuYEd8L22OmXa0KE@2<UW953S5|N9TUsl%tU z^tey=ai7l8>pq>O_hIqp`Tu~sg$YaPchFT4U?=tZ9tRKXLVW*18e~Mb?|q+M+Z{%r z(Hz(79<X(I{6#gMy$<{y%|8V^dP|Rcbh=*m;CC)P?$OIS+Xz(h9xD^`>SbXA4FU6d zT7NI&^XdNPtNr~oo8vyv<SBTio*zGGc&z0!1A{N<o|o&OwLAr%85kUQfR*%y^ZRNa z^Xla>^JKpEBK$LGM8x&DtMRwjG9JfWR5U<}JbHbP?*cJ=I%`xEUd-44Zg2SXx;_UL zhaSD5>^_|ZpdyhSsYnz*#=!7GcL%t<xDPK9j}uoUUKIruiLW0pFueG+^51{{@B^U0 zciaJ5hwjlUS_e9Ru-6w76EAM81tmsM(1S2I_~HFONc)f(ToYf0&B=oN^J39jkkh~c z?++?YyI}$ExR)0+31xk>sLZq1ffrloYlG~!Mh|^%Xy`Nhc7KHgJufKeIX@u>{nw8m z-cirqa9*TvzYiLb>4k*57-(aj2FQ(`-B%$YuC|`&5Z}EG<gHMWLp)go6ylZlK?Txr zkN*c88*ErWp$4jjnjV6uA8qsZfjZpZe7a3z!K~w;MQaBkUGES`{`c(W`373;*?dp} zT)u-F$IRfyaixR+{8A7f>jR|%pd#wQ2L=Yv{6jrxj<x%^$Nyt6Gp#=qZF=!{IVcbQ z_vjVv)`#Z7TI4+F&hg^b>VN-zI%|*nbk<(?>8!o)@&CB1g^dlUh6B})pv?AS+iFmt zfa2P;7*yQD<JzP72X9dYBARPqnXDF+$wENKX<HvJllJOmVFw+&D&%SXubkDh`}=Ed zkM8fD+TTD&(L>_epBGfr$$kKpL!jYH&=Mg|5KsG^XKxs<2lF+LULJGb?xQb0gGNev zU5~#;i|7&+g%`GKu|#wQM%Hrauy}C^)T;t5&xG_{x_ybvT2(@zh@Nm46w#MKhuUd= z`u~3e<7+0P1F#82(9R9;;*jnw;Q9=@<{Nz2WHf4z&>=K9EF9EaTcaWXT94ZJ<^y<$ znRW6yXp5~CT<SI3R)Tg+d34__wcS|(YSdi1LwrTVmIxk&Fy95bh2B;jWKyZ|PSA#@ z7u^tJJi1Td7|nQ*SqawsX(wp!6u9T;(ftorK70H>-e6-5N}t`V3VT5H{1z1hQ2WIC zN4Y+zp7rRoWdMoyn!el(DxQz~@H?B{+YK5mz6`2)wBLbS?{*BYg+NCs^zt48%Uyr5 zY1#k(FKm~B((hZ3UQuq)(X+iiDh8n34JI5wEDzUSSHTxzD?ugLF`v%0pebmd&b6TB zLq45rL5mI{EmF`8G~Jg$n*cRHuIuduDSUBn1t?wjf|U96svgh*Ij|L^7gB}n=L5Bs ztdH|Ifd-&GdmZ>djS&lw0iY_S6RgyycPq#&AAV;r?a|BHro+hKX??6r+8bQAJSZ3P zwf<7h>f8Mn)Ux>JtNrISvrqSb&{$ZnA0KF_UhOTYPy=N(P>=|{1!aQcp1mO|e7@Sp zy?c4=JejY*`27YXyhjCWe{U<u($|upi5?9Ph<89|xOAqdD7-LV1<eJZ^@;)>0v^4g z8=#Hu4M;W20Z^m+G^iKYJrx`T-Ah!!p##bh<{sVPFe0wLN#zG+it1Yo3@#SBF1tYK z02~J%$6G-rgX%t)4shh~w>p7Ns{tKh?gKh?I!6T(kI?=(a%_R_j4^m&wH(w<1zjX| zVLha*`^Ct>;L@RccPAsm3z@~B#wO^RI#6mb@aPpaQUKWwx`YdsT0CBSTLvoQ!1kji zjtP+VmNBTbI|dKN%P)>DLrNH?+rcLrf@2$!Fg%)n@bNc+M(9C_0#d`x1x1JlBu#km zJ43j=tev347p)J2%Rpvm8F&v=27U#VfuF%;AgC<-f54;Hn-5f^gT{}1KuwKnpq?Tt zXf#RtpJ#6vAEXR4_US(U;yq~S1ZNrmm4wDCh))B@!EGpT8UQymNQ?VSUQpcE-(X;P z(YFviHkQa?#zw|ckSa;ga5Q-KtXDKm6QU{s6y*V+n9O+Lv=r1y0NoAQ8=?~MLV5ka z|1Z_q85oYSKHkpA!06G<x?(G+U4EcM$)~p$v>3vtw-tOFK<`xWGL7C|(3XV%7g`UL zB)s^t0Awd}I^n|NvU5v7szBRAL2d}}=oNjVf$6dpOHf?ax$fWp7gNCIbAtVp`@y4E z^f6dtE`vv}?+2gGT#gq-OaA@uhPt!&Dgy&U>&Z&T?>BdxJ#*%aZ?EV7?+*{YV&>m= z=)eOemtGbDSEd7wS|=I~8aQ@vcAsj!RC>*`H}L;4Cf(O4^9P>)Pl8P#r2D#O_eG!H zR*=0Oy}ki2o-FzI--UlWIKX^*!R`UKH(=&Det!UWPA`uD(@7VtgN_Xc3|u=HUAhl} zoC7t@v-_e)ukVHzlfedVYXt>8+&~8gGR-S^;S4no6o(X>=c7{a;?rVKmiF!N=rv7O z2Nm?L4Uo+2xDT}A*wgx0QMG5U0}muOgAZ_XZSdfC2C;fs9n?Yn1!y+*u>Mdk<Y5iY z#(zQC__v4lKTuQVAGq1-%>&BDLC-<O^>OgY0H<Hrfq2^AJ$l1<JeaS0^zvByb{~78 z0UDI*bx|pJEe<-BPXm<v3qUtuc7n2S0Vthy=1%bF6-`wECBxhW9=*O3d^&SiID(cT zGl0fZ1YIY9IuZPWz6(G_Jgj&J7409+g3_sPflsfi0mx(nka__R0gyU=L01EqT7E%a z2ax)N3!u~w+AHPJD{2oq#}QP5zE}w{W&`MG36L=XsK&rYhWQ136+p&Ff{lUpG~R#? zQ0(<l33!nNF($wVQfztj`d&aW2wb5doYV`dhC#-iI*;V4nPB65FT4-|o96n#qjxH( zrG;t|NCe3wP`4Fi(t}l?6abk(0bOP7djYj_lf-fn8h`t8CI*HV3onD3d*Bk%r!)6~ z$8pyekUA~*0=UF9!CG5lH!uujU;x;_5YYW$zXXbmKzFkR5aSw2kY-`9=1>h#A(a5? zWoAGe1Daz8)!l|3-M#|En06X;Oyki@AiqH_lY}}2ZSDiRKl(tLJHVPlJwQ%z06E12 z<`l@vWsp;dG7Ypk?u8Y^v=!hm1!<i?j4xP04*7o(<crV_pU&I`9>-l*K%9{~0c;dF zd<%#%3$(lI#b&TsQ$efcd^&R*JdV3|K#a>#DFB<N>(T9tW}GON#8aO4A_Htx=n1&C z4XCcbs?Gd`Aw*jSSeuDQw=Y`az;$QeT~<(C{P_Z?=z%uGyL-VM2;(y^8ZLlGaX=jm z(B)a+o(N<<3Uug4_ZyGqHwm!OnC?%YUTF7CaQ~AL)V^>2!BQ-2bO1Co1kPXJ)AQqF z4|{YUZ>V7ejcYkDf(9Wu{^)_mYCxll{4Jnr*`xb7V!s@!QqXuLsA=udeH_~ULzVwm zP*RCu{{Q5Xlm^>->lqmsN~2#$&jjzL=@m_r2D!oafJbL32w(8%EWP2<>&Eut=bV54 zU3%R@JvvJtc=U=^fzFQXEdAio>-)f?v-HP{n{z<Lr0W5X-p~gx_ACRBM!GRFFc^OW z-EI!j1XA5u`U5mE4jK=!FkveF4$}T&-W*Wd)c3)Q(g*)RThB{lUv$p^6<46~QK)_A zq(IB+knGEx15yzL>RN!D+AHb-anS{jUa;$Lyl{uO=z&LX=z$kn5Ep@3HlW@II8k=n zrmO+qVN+`A*z2G0;@CNGUl30xZb>$1#PEklC#%*PuzMarJof<<1fKs7I9r&om3{|R zJ-xmUUL2bZ_19e3z$zk4J^mkeurRR(wU|NU0|!8L-L%=D5lYbP#sSbhCgnLG%l3e8 z-vF(e1*HXybaMs_!08XP(Mcf`ln8s*s02W|!QkyS-K;(HVclR*qBH)+AASIO%P3gW zXa0H@6$8+b_1zz#?Uw^i(D(suqxw4w<Pi|-@;%U4><{o_%~#9}43Gnvj(KzkRDdpz z=<WbJQu`F>U<uHk2GD5>x3w7=K!=LAo-7IV=spLEf6!@cT>N^+s+dYZ=LfoQu|PPY zpd&81I3OGj$NvXFYj_<zy2C3x{~z?|ZU>v*d{6+i`tINl7LOS|)+dTKfqc_hqT&Je zMg+)w(9D;Gi5w_&4}&UO56|vvFU)8C`wzK7v%ql&=z{ncb3wxoy`W}|ch&#@9?dl> z2?C&vPacjtlt2j!B;~>H9HQd!;#TAT|BgGryT*G#7lZctHvAXm1?{=%ojw7yatAsn z2onAV+J@3QeFmEF{r{lhPKXiHLH2uq4LJc(tpHXHkp&sD5hARCCOiw-5b!c<up!M5 z)u3rDm@7es<UoXffR-ph9S;%?MK**1G*SXK#15hwbbU0kA?gre0W_BgfP}mKD`3$A zUjM=Z8bt&9t@~aYqPzmdx1>j}h$JXx+4x&P=fZ=IE(1q98-L3o2Jo4rPT-hl<8Rr7 z=HMlu{W#s>6`&9U9YP3o9`oh@qMfKx97s}ms8T$T=AH*gS1_s+FOrl6suUlRlq{+g zKavy^SjxY`19Tu3G@Tw60Np7HPNyE$ANZTTflfo|_3e0(d+6VP&`AcM90FPbFXz$i z0=W@0*@MNgH-O0l)SC5RKJi~P2yCv4N`XhR2a889>nRCPx#Pl90M-H$?49TVI%gn+ zC&vS1He)$x_p|SW|DyeWL8Iut8vjM7f>_-lpp%Av34m_w_EGUbtw3?rgqQz;j#++r z64WZ_1(hA3Nz}TNpw$a=R6vD`XE*3rnqmvkj@h_)*r*)1JOUj7jI?hav_1oz*1B2$ z&Vm+4uHqh@q1S!7UmAY{Z7^tX+yl9#iqWInL%>7Zg9E(yw$t~xN9#%cmZbs=3@-{N zfyyG+=^mY~`#m~Kr+ajkF8AmxUGLKCCgss9Itx;NO@HAz4ZPjlmBFXmLBL1bfdh0( ztxvBnkLNB>UlCMnBGRYl|C69wM!rArz|~#z=|1EE>94u+fIDlT#`sf^9X{Qz?H=8} z{m^dEelt+-wb#^88Z>-$96Wk&=F#ce?$KML5&-TN@jHW9y{s-Ew^|<u&z^t>c6mLm z|CMor#xWpcy5Bu|{mnp~q3-K1Ja2(oBd{@D(_5gp<uUgGk7<~BFkkcSKK?=;Eb5{X z0O|;V&gcPkfIw@r!Ci;+>EN*p(3~-}ufy(Y{0%f`0&C^FbQt*bx=sg8GQapa53)w1 zAKZ8{1t%9Dl>j1^rOf{WN;6xJgSLPAGJsaLd1yOwcz}oS-+>yL>n6aXaJx@u>2#mY z(&av#rRyDcNP$aT(W{c+M#%IREmNS8=+W)K;nK|jia*!Z1C{=c-*14*dD!?V@%>}Z z|0f-fG3vfH2Wdx|pMmuMiRrH+$3Mt<=<#m^iT_MVNc>lM_Bt40kN*mgH?5DCNx=s8 z1wjM*EXLnJonhFxJ}3<sLDPWi4dgUncmp{N7(vs3G*}c@8c3c>N*ee&hukzU`xht; zY&;4YkUi(w9m?R*?Ihr#?Zg3EY!7Zd)Ph#hc86Ag+Z(RkN4igYbUSf)C5v=)-?F~Q z?|0Ls`;nvd1y_FG2cTp5nGZM~XF0?W;C#Zf+m!*79K4cwIy{(9Iv#g9#ezee11$dk zAi4uUt%e?ubsnG<l`I~eP696^`v@dT2XSbkd_NJij;Gg`$EEvl>+MQs$L}`=DE*~Q z0=WdG{MiQ{oa?n!0=d@uSW%^CuLBqM<i`nC0xy1kl=FI8|1abA>HZFyyk++3{^rr^ z&jn3-r>=sc@))Qv=|2Br+g0#p19PA5W4_wQJbS~rK-0Dhu7VPzi%I}!-c}scvV>gI z1RA^nmq1S^VWd9f;s>%Q4pRJ7%_2AHDf|E>J+s3M3@==J2*hcQC^Sx`CxAk-*O$k& z`-p4nlS)6w?>CUzF9Q_6tzcK7#IH}UZ8*r$%|E#C#jPz!4WeqnAGhx=BggHn%h=-f z2xzdR7f;-BP9!>R=glBDZe6~C;x_6a1A|XzX}ia9*M885!Z8<>00zg#KcKb)e@i_F z14AR|DyRnjmSPT2!=?7Pi?!<0NsJ7oA=a{-lNlLGeXMQog7_{T-K+;deWTU`r8>PH z3NH>H0IzS`4muVWay|tpQFaz^fYPZ?XMu!ACu{$FMur9p2L6^apz|yl7+gA4J0>wQ zbjq#+k+v<97#SS9j~sl!(&@Ut*O?K_I1V~5r1rj}_MQKS4?bq;jD3CF^*v~eu(S60 zao5iv){E(#h}7!QSv%dMvv#>hXYG2IUUyK-=7111t>*Wlq*eaTb)eQVW$E?h6wqX- zD3S}XR?IdqH@xlvxuLT}CBUb%wB4t(wBK<@I;8Tx09FHP9vuTK0yii?a}Ud>{rms& zAsgs?BjWRuPcKq^TMG6$N`7$M&kCt;4+=r*ThKH*E2O{!-IWEJVFZmn2YB?dE(W>G z`Y^b?1)fCW^|ZbRYH$7agbY0Y_vrOz1s8aiU)%(b{u~GO<-1S6I0_o{>E*HZ(f;q* z8^-Fvd>z!@S`QX=Q3){qkF~}1wHG5#cz}*NL0JS0Det<blA9+CK7;av+dc+{7oqL& z6m%Xr1;HCuH3HByq}>gQKX4u9`Wm!;nY{K7*c7z*08In<^qN`<BI1JwdweK?jtC_b zA3V_b@H`J{`@rJE^gO7lfyD=CG5{1G@?cTi@sZj?bbS1pOm2KE_y~%RZF?9PUL0*D z5Fc+q8~%HJr@xrpiHMK=WXDHn7swQp`0(j9-48le0aRarvIev*fSxs$g4E!S3eax; zUT;WS;PQ)oXOW{~)mcbXcxZq3><#1cV7~6teeA^)uqZStpiKeLrFPxdK;tn1FK%@a z9ToYYR*pw^DCs>B(GQ@g(B93!@WQHvKvX31LbHZI2PhE1S)=y2D`-fSwD~ur^6Dtq zD3thc+{X<rCQU8*K>6bsc-ap(_WYp;N*%CB0nL{2dO*u7*hHB}uQxX|e`uZoM+&H| z)qVPf=ov_)_<$$NxWVPsu^0bOgG8Z`0+}j<^bnzu;@U}cq}&2EO~{IrhIgPynYI(u zJq)ez?Cu2*>S><>4H0^RZ*yhwus&Gk|DwH#K$NZHhDKRz8z{4Of_l}Rwe23Awf&Ae z+`+*t`iO^-;brd6|NlYv33kU`_vsb}oyvaj0gDIop-vwagH9h64UbM26$PJO-}|n{ z2Ryq&1w6V>JN};pIxWDbTiB!5^*%^}LuZYOg=e>`0ElA%I=B|J4AG_A7j&+lXLl$E zL>J`zAzyLOKuPEhQ1fGs3i#xp#v`E74{WQ=LHAc3@#u_D0F9V{PZ?bC0yI<vS;geS zuNlzc!ml}_;{X5uF8rDcG9dJd2+$C3H|vH@*kDS63%|xi{_q2i{Q8IZo036YZRf^+ z|BXQl*OYj`Vddb_Sqs7e9-XxjF1_wNFBDt<{pSxq3CfkABSWH2z32zE0=j)vJY0I~ zrF=k#p!oEfegcIxctt4ajBL;puM~JJqc=vy02Ck&9-vy*z@wM-5lE%=;WALK7F^2; zdRpHrXMwC%`wU*G;o1Eilxlmur9i{p`Jmw>_)3jv5Dz@6Aq8Ej0V>&DK_gJTE-D7l zdKT<l(A9&W^!uW>4V-R$dR-krBO9P0+yYQV3%Yor05-V6FX-Fg&|&dH0o2j!hECM+ zH|c;jvUmHapiQsg8W2158kBl(Yy<6|d%2bqJZ#C@+rh|S{NIsZ?-1x<=|~O`naBbn zHLJ2qGe7eSuts%&4h+ycS`}Ry3F7-f_(!U|OFcn+CkX#=m3675M>nhXRPdsVQbo|I zX?oir^Aeq`B2yU|pbN}E{`2UpkZ`cD;BVn!VqkFSu=wo4FDS~;!N>q&=ss_UFjOBw z8M1fVLHCVaf5E_@&B{8Jk)ipA2!E3{cp=de6$LQ82E6VJG<^R6e96Nel?$MCLj0O7 zDxmv#UHCP7z~g@ZMJIr_qsZQz0y^>Zc_-_ZDWK&5|2?`{&rM-u@X$UC-44m$6377# zCfiHGj0}+VnO@y2zZ-UdHq$cjw@5&w9W21{_8AgspgHr;`~n^xpZNuSR7ybCZ$yBl zDnOzcV9^?osLf}7LDvS5pwDN1LEjdTSPV$410<FM66*npf$jisod6OG0EtZji6wy4 z%>aoNfW+p2#9TmP3qWEaAh9JNu@sQl3XoU{NNf!#cyl*^$kZ($GIqyt*F6jj4fZdL zD?vk}t{XsJG4Sa16?ic*3seTkZkh~^3;|Hu5cCCIi&6l(Qm51elu8`HqOKNx-6p?5 z2i~}4fXFZl5E<tIBK;zuC-^`w?*QFu5pe>1s$Ik_(Aod|dWXxi!Ti9(ud`lw*Merp zKus~w(l*e7E=BOU6g4Ui;H(1@^?0G$2vTJaDk(w5La(R^SW#_&N3Soal!$o2-1rZC zI-Y??Z>YnIr(OU48y|SNjg5f;bWO-1@bHe=XBYms3!dF(VB2HLK<Pe)@3RYk4Cq|# z$ZwxrLD!AA@<)Ph&WZT=*^xiu1Hay}a_E&K$3S;*9D7lA6m%e##;MQz5q{tcq%=Ld z-8g)E{Wv_W9XU!^JUbmZJiGZkdP6~1BwTv&YZhoCN;Y~DBLgTgfzFBPb`<ac4K#wT z0|HG$9AE{7yy=69pse(*RHfHX;l<-ku&i_vB;5T0EjR519b*4t?<SB=-hUt^y`sMv zL03u$lp1(+-{^L=fJ`uSx+?f}>-+>=ve;=2IttOFvs&WCm3q+H2xke8&T0jZ<{vyo z20q=NLF+e*n0>m9p@;GvcNPFgOt0u#Mn(qEQpMaOpw*jhJPfZze0q7OGcq#l0;}jg z{o+&2|Nq^t3Ld?F9H00Fi#0l(4L~U_*u<wZ8+6?Vhev0uf`@gWKna&er<6ytBL`&L zlfny$B@7HNoU1`G3^ojOZM{dYs3hosiB8mXAX^VoWrs)yIbcOd>EL%Aayq!%@$dhO z7gZol$VTr29j=LH^r5<c|3C4A0<Tvzj16?`x&<h4Iqm@MG)AtBUd#Yn;iF>kiC?hv zfKRXMfzH?y;AE%Q`S1UWN+j!Q9XxtP1HiT+xiP#By(T*fYC(W%GH@*h8K4J63x5-6 z{ug<f5?UR00d!tzujyWp6_~3IJ-WZY=Jn_X*JZ5xz#-7<4eO^YJjB3&Sa;Za2sGyh zQsUVg#^a-X%%hjb*n|1ni;_bO44_#agV!n^y{sW1i$MDvKq?_|4{DNtv+9fW^=P$Q z=mk*W&oAhD0jX|#0NUu_0_p(5>Nd!F7_@o~`yv!+W(I~A%o`XOUI<kp$7+E`ujmW# znVq!_AjcGVbk=sfcvk~T<*fJnK!>OLhI;IWO{jQv^ZfAWW<;KGft2^2|4({!ANM3~ zekBw-zhYqg|3z~x$SNNd57ZbG<!@>S?T+Ym5XI37Q3oB{(QC@h0$Ff|*%(1YpeQKa z_j-$hnk3zqUpzQ~9D!#JfFcm2#IrX{6e$8XgGP$LEfP=!E(Qe>C;~w$cYz2{qeuZ1 zW(F_b)j}iCMWq1JJ_-E*jlmB{F$k)`Uo?TbjAX<h=(x%kj_W|>7OPt?XkGYuP#KR{ zOytl}qhjFK&GW+(6hQ$Tph)u7J_MQ-1Kkngi8>#W%+lrA9a!PP47!es<q*H#@hYYg zS<vkKAr=S+bl;iFAr1(K+427okN*cftxpsk@#tn{?FLO!)@p#}HiddUI9}we1r4jQ zzU=~uTYw7d-cSwD38&EGym%+~fSeqv;nmIa^Toc$;Ih3QEXLZ<!^q(I|2VWk;bZ-S zziIDxP)k??(j;;0J_0&h4Agw#*MKxvKy$00<_l;i0caV$3%>@W)#B0Zn*eH<?^y$? zrst@D7V&s?M|-&PYXom_<=2Q_;L5L&Ji(P;Bf9}KqZ#iQ2ig|;U-a}t28J{LMUQ}} zGiT0pvo7jEzGD`8zQI|Lzq>g=$2fFzz6hTV@&@k>kl+s3Svnrty!$}{Xa~oD&d$(4 z9BBZaKLwp<uK+r<%fX|Y^;9jimG7cr;nB^S3^D_BER=vpH<w2@=Zja<K$eMSgT&!C zX?bXi27v^+k9vH61+Jd!K{t_s&T<D`^8q@l>)>zjdAkQ+*n2SF;BR>k$_q#bx!mA~ zT>9R98I+nLUI_03Tk{7Lk=;L_X`E%YN4M-pkdXE*k6xa3pYFq;BP<O-n@=X~1trO& z9^YT1o#xZaGRdcxr`@9)cG{eVhxU2Uc|zbre@=NEd};5&e6b|PNBg`-uOEv?_fa2E z3Gxz@1;I)Vfv#`%V7>rKxQ^W}9Dh0;|2THDaC9<)cr2ZcEFhYr(~%?1kw4FcgU6%S zQ-nYIz-N9z#~&WeuNX^Df(}NC0Oe7I7hT|Wtv)IipyV-k70A&sDhZ$y)iOXgJH;J- z;n4v-TnBVNPcZ2IDbTu;<1Q+o<9r#wYflV3x^H@d?*|8MOK@tiVFK-40^Mi(Vpln+ zGYeWmGhsI<2rqyq!9XL(9^D<_1rwdz9^D<FRUjUqW1G4=Kr27Mhc<P0fEJi|bb3p8 zba#Ljm3VY|D}eG)H|UZ^2N(XR1E2T>oi#kVnLN5dx0pD3K!pqtLOxI-3xrSrRLB7# z6ap3UKnO)Zg#!4uH-UNpY5aL7KJ!02`H5f9JK{6HK+_RWKLO$d&`m}Tpeu<%_ql^Q zvfZH7a2c+~psjN*otB>62V6R>d_b$>KKgXl?f`9JJb?%>Hwzok61i^B60RLDI?6yH z=DXuXJSfe98gvq%EhF6>prQ`E9zYnx@2mkWYxv2?-wHZN%%gV#sIv_++{4mKz@z&o zD3bV{ssucmt0V-#7J?2+7Xq!@>h<06LJ4F`bL|BIk6zy$9{kR}JN}EtftCezhhFGp z1I>N&H_ZmEkm>f_0iFXVc$CG0yPzK8wiTcx1a{kz3{a;(F7~iT^G_!JHec{M8YWOi z>zo5Vq}8K$2F%eumd*l@jOu#Ahu_H=v^&kCxmp5zr-CrZjV}sH|NZwsbMcxxAlqOr zE&?reB+|8??tom&0d_6eYEaODgUO@$2NQo2Xw{EL^MQZ+89@%VKJL<e+=t)k0NhQ| z9=*X#V0Yap0aewd;K=jnj@{wW{7=BA+x3J8zw>Dy>*JsU5k=qpVPJSsyc4tmrG(kB z`@dtS9Y|S`iAQf3Bj|uH_&Lhm(LX@v1A$6?q+{S+K(6)ZKK&wmImpA%;Oj;W<`;ei zpoZW9kWU<UfaXIzdPS2!r_%KLLXzAIof4Re8;(0dKtAgg{qY;rBJ;fg^8AYzTqU3e zuj>wv-q0H_-hx^o&G2}9v9<{P{He|u6%NoSC-~CK1kmw4oxJiLj0_$-UAEp`GKXtd z4X8v^@YpF>y)kdnm8c#N7rani;r|7XUS4l8a0Pj!9aIelaQwgI(apLY)LR$u=$75q z%*bH;&7<4)EJ(WbcByEuAIA%cWuPDcZHu1P460TQJi5ifWtqngkL&GKKk7EGf|SoY z$~V4eub)=7AH>!8f9bz~M<?@(O3;LlN<OHy#|{br&_IeuuV@e`6hIfIK#b}vQL%XO zuLzVAMa^45Lr9=A)920x1rDex>Avvd0=P8@THoJYqEg|}d?W#McO~o3HjrxGB2m!U z9ti@V^)?6$s^2(5J$l!u9DodTIe@ZqH|vu!Xf4+YIuhIXHb`9oXgzd-1IUfXT~so_ zE9AOa7d3%;bq7ktd%Zbc@Gb>~9;jyQ1WnMjf#g8dFr!Z|Z)Y1L=%6N0hdkkbfP_ak zYdT1}6{OXJ<He;VC|bQia$v2X^Ikw+=nPQ-9UkhqV+F{Gy`m4FFfjZNNN7D!S@Gg& zE+}AHL96aSVQb;hITym73mWS4=$s2#N(b7=>(MK^{2nNQ^@3EqSX~Gnv5Zl10C_P0 zL_|35kOz6PSM(a_FjVm2^erG|KD`hdK<f@)BvpfQ8SCOknD;$6UhqNvVBi7vemh7G z=7%a!q{00Fu3maY&preBp`!IbW!VcwupeAN4gu{F>O^xA)a|c9MIzWq9}B=P$Ldiz zi2KdJ?uU5v5J)-be0>Lx-l<@(FQ@{QU$#G5K=nooXk&^;FRL<0ODEW$opV9U6+Mo( z{$XHXU;~-hIhTczfuVCQ52zgOWo3q_1(i&lbHP>T@m3i|1_l|B+T*P%j0_B*ZdB)7 z9gzBN*763VuzIuz65r6UiU!HS!m6wVl#fDGG(ag%0Tkapy}TbEfjR)-;u_+C{{a!u z61u^oGj>X6?408+DizEO3=GFzRBAxQ<Z)L}h0Wm6&HASv$?9}es~>>mz*hV8vfc)z zyWS9$ivJTpTYsPytl<aUzgq9R$D=d$%yHKR5W_)dhcg^^T>;Lv-K;Y}=D?COGpZdm zAUT*F<)C7sH*~@O381swK}X1dk|%ft_LNNw498qq_&vH=JwaMv#%)=M5?Z<-Ihb() zU?+z@_&))(GsL627nEf|t*3a9rtUc^0iX=icm$NSVe0~6C4dL$*w6?85AcL~1@iqm zD|Ub`ertTAzzn)#w%`Q6X2lK{eocoJF8rDvGw_auyYOpn04;@d;n&<@0T~;gQUohc zAj9$>U5($mSgZsMJo2}s34jVv#8SiEux_kJ^G_E3rmdjybLK2i4tL$*(doLur!#kl zPiO84pU&J1uD!0Hn<mbHPR;-|BW~w{az!^As8@xw*iaU_9v|HQJ?u$b|5p~=|Mk7` zqAd?J6V>hd!lT>w17!5Vai2bTy4#lP8v|%}Y*D>uuY<lvr|S!k-q;)9zA(RY><yn@ zRf%s53_jM6%cMPfStLM5GYENF-v{lOglx6))cz0NYUR=Etq<+^KHmuH_#Ou@@j3nC z@<vc;1)5>~?$s-z4%%mR04(Hs!vh{tpv~hYDv(t^pqcVs-y1I&^8Z0jz5<=$F5n>m z8ovzyZI*&{bwMjCdO<a7h>F9DNoC-G3;h6UYQZj+xk1D#L(40mhKv7v1_qzb+!r3l zT|a=Ag1Fvb;1_VS;Ma6D;1}@o;MeqZ;1_U<;Ma5w;1}@A;Mep`aNMKI06J`$wW*$w z!Lj+rfBqIX7SQP9whNy7RF#!lp3M1l+SB-&$NtTr3<oMi_}5?O-^LmYO8&+dJRm$b z6rLr5=b<c`1LAcb0$=_k>Rt~T<?}hj;nU5l4PslLERpwMzU0}>a>>QoQJ_S0f(Pg# zdXH{T4iLZeBPeFhf{yraJ?X*kdeGDQAb-nZW>A-v^;{jOS`A(B!ZIF|dO;^6N`SU) zX}W@k7Wg&6(`ozy4hsC5t)K<F`~n^Z{F=R>JnGZS+7Hpr@#0q;l6D6NeogR}Lw*5| z0DevIj%9uUhXj62@NQjx0gnQHP4EU7mu^;{I?znUwhN#Tf`o)M$WVB==%Mfw5j+oN z(GcWt(FcV^HzZtyL2T=jC348&B0@M=T7QCea>b^Bb7_M|r|SaHRwJLzT+sf$8IC)^ zWn`}?5BNY4--Z{)S)eS{xfasiUJL3<_;juXT^0g5$+%baHTW#nUXb()cCgxB*9MQ? zsbGO;#sB`l_?QZ^3tV4<EQ4;m2Jg0wfZI0*Yz(NWbSM*KVQ(+!Ty39jR^vL*1#k?c zln1RKt&k$2;YBgnP2H{&Ji2{nK#PR^YTzQlH2xE)NH`9jQC9Qlbe-VQ8`}UY5*j>u zSyMo+!W_=@1nsEz=tf=yqXsP!uB?R?3E)lC2SB4Z@I^3c;7R4<FIIs?T^m4U0m_<V z--Z`ovY=%_D<}X#V_*D&y^ui9fbVz&mj|E#g$8qd5u`|%fm|ejcA3IX4+UR@0^TU5 zeGvIXU9}6KBEe=hxJa1baolwVq)2FB@abF&Zjl`aw=f`W$yQJ^1KOGlsesheVxYmQ z{j)%o9w>4(JUUq|K~mio9^LF7-4PNVy`c+U?27<}3WsO&LCE!A;C78i_xb;qU+3~` zu<oyBWZ(zoM-AR1U?wC>YOo#y^B}oWgZBiO2hN!M8mzObK$;+#P=j|4m<P#+8m#lc zJV;j5;9UUbfpg<$et}fbRFbR1XMO=+&}HzU3848TSCh~D0<kWi`2})AKJyEdrho)f zEk5%L)OvuJz7ZfYGy_D|+JMMd9}t-v10qXv_>Vn#_?che0spZl$3F85Jmf$2MEx_r zz$5-+Pb~R0Q&b%IHB${-`HvlV2vUC-#5x9I9R;z}L9AmSmZb~mcIyBaeoa>gSFo8b z`~uHGtYe>D`2`+=Sn43wBM=LuIz=VHg<mr@z?J{l|A!!%-yjxP^<NMRtok2_1yWt3 zQsBa`S(^X~hJw%h0<EBx1fTf@z#A1l^9xJ`6?!1oxPs;n=YkFz_{=Y`7PQpuGrz#r zC7?|wF8l(i6`%P9_JU>vKx%tIcNu^fQ$ejH5TmvRM9%GjDqjma0Tv{(bqxap1K3*x zf~o)%7{mq@*b|`e0Bay3w3dQOc~FoL8(@3E!NM=F6x7lL1smwd1yHbo_6mc74Ybn{ z<U#PZ_RstRbB}<$&M&YQbPOCQ<eq@|F8l&ZK^qf6fd{&72&4mi1_+2T6|^-8#MrwB zs&+1DtP3Qv7Ib+Th_Uqzap4DcCrLpF@(@Wu2=X~eK?n*WpU&JL9^I@GB}ipQ^EBkL z<8LvjJI~?K&FIk^`U7@%g)eB11avuKx9F2{Muz_rz`e3=u&_tB=!G(nSOloq0TFZD z2|8yKqTx1J64dGO>2)pefSu6*s%dukf@<^&kZtO{px)7orM?UdFC60WRaoE-R<Ee{ z8&GQxWQ<@k=$KE9tsn#VHTHts=EAQ5?vK0hYxIIP7$Y}?9d|%`h=O1fe0RLKko50A zzh<cczh<oiDC>jrzi)yMsPhPMTj-7#f7<^2_t+n3sb!a1=0CI9_IoKK!+(Cr2wu0S zUO6L!hw^pEvVWg$Ubb>@1L`1$PdDqUGSITA6R?KD#pX(Z|0Rfq0*DK5KOOLZwVw`@ zxO#NE{s0e}&IGON@#qcZc=0U=6k;4Mpi@*pb2s36p|=&}b5M64)a?g{dZ2_yx9^Yt zmtPx$Xpe42G#yhRIv@iDU>%~u;CKSr)NCsS@f@i5@#q!}1PyT@c}^4Lp>7|r=XgPE z>k}o4kX8`HbK;=$5@GE_oc_~<`!CW0>^aFGcqL_g$)(qc5#;v&mtTv6XwW2GFK=Ec zBLhV4e}Dy4*cE&;iAT3+B*@hP5$M8NU}2AjeV|;-z~4F-ylNy@#HBM=#-%ft$D<o^ z9gDVGMe~CXovs|mT|uD(>I}axK*}gllaVvZ6_6CPV_C=H+kGAsioKy6{{til7&;52 zv-LnJxaMX>F|-~e1vS)90AV83OFrGu`(VN<;Ep~7a<hwyL8l97Q5ZZzJ-fvn|6h9X zEgD}=0*yI%^ollKhvlT>@t~$3Bs_ey-6}i}{$TNev;>j%pz+JQFo4>FMDIUCX%8kR zfbBqT5Bl_)f=XYH<{!G?rl2mirr?4X3=AFwn}UBldcAd_O~I3kLFoy${&wqPkS{^K z!{?s8VY=X^;E@;e!J?3+U<#;PSfZlf*?k4HYxBj+1ZY#xbqAy!=z9XAQwVMZhVFP# zn?Ys^P~{k?1!y&qf#FyiD1kD*X7TB*<ABDvN4MzYB2eK9s_UU*phLVE{!aka7{^^1 zK#LMwI&&4Ek{-RG3Lc%H0ioVd1`tERxBEOa$4mfKyC8Kw-JBlX(?CrR5ACoDkAuHh zT#XMn{twImNrL7$0|Y#}d%@!m#%EqQO#pS{=BR+iH$0JU9ChT^DE{EcuTlNLm0!d8 zf-Ap<_W^9PlCJz3n+yK`|L@ALu^V(n8+4Wube<&AAd5%y8;jPHrF9<Ntc8W3K`rp8 zUX6;uf6#bxS}v$svaJWnwB9b20S%#^>IapDH$df{2k5dFSx1l}&}E#Y3@WR<0?lpJ zsDQ5}a`0$AVgZ@cB>z5uynfJerR3ZPAORZS)(3m*G}?UtASuXw0Q~)+`vBe^W?+B~ zO@V0#(EOf4H!n{P=AGdzC%So<EO}j97#ZqxJ$iX<S{NB#a8F@iXtp(I0o}qa@n5v$ zAOk}us~%`Pv6ojGq@Zgu$fB5oprv<WEuf`$ie<w8MZLiaSzADtaEIhEGBAR!_han^ zg?%?~9f$&Ns|H^yV2;?Y%D+uiJr5L#JU3r#cmuuTmo*HezMIz_L_xJ#-zd85(aqYD z4JmpZK?m>O?*$dTphL}wJj9t#=s)N(TUI-eDcvVPAs78}rxap3^b9z>K$on7M@~U= z%Y^1bS4Dx!QqX*8!#v2L58R-6*673F^6)di0P|;lK~|SsMuyM)0^Xpda=g|Mjxz^H z#t6dk=K0Jo$g2tAI17Me6d)XL5s-{HgySp$lHr4Jyk$T#tPqZ~0!Zdh4#XZ6kj!TY z$5{g;^9sW8)&a>pgm9b<Kr%NV9B&hl%y|gM*#abU48rlY;n!eo0<#5qx8;CVZaP@- zYw*^CnI0be8mui~rb7h325%>r>5;L45fTpIbO<9r^8=9iCD1gy1pLhVogR&EAmtG2 z%2?=7r>nh3_f6=)u{wBzZ>hOsZy0ETQ~gDA!vFu>%s$<|>W-a^-OenIosKNs&K!=N zjvU?2JdT}?Jl)O$j-8GI-OeJ8osJ^i&JvEDjuPF@GLD^>qJ!j-8GQ-OehGosKHq z&Ki!LjvC$0I*y%=I^E6&j-8GM-OeVCosK5m&K8cHj-Vc=v(0BmenCeYhi#0G-S>RD zWd*>g$W{<co%hr}?YV#TDlpIjE&m2Dj9>z_{lIGyF7UVXGcYi?c3=C<FTgAEih<!1 zzkq1SO9lqeygz*ZZ}&O>ZWdwh?hs)PPwfk!`>{M)FO_I{b|3WBKA1KEw1kp{;WK{> z1AoXt{-^_K{Q8H=MLhn4h7VXgtWOo)b1?e$5_D>f$N$5g&4(mBy1_2%J`P!tfaD$z z>sv(=Uc3$lC123Oa98k2uRfin?|nK;zeCQ)_UIM;^#D{s`rdzWFdS4vcb5M5=`7{< z=`0m@+yP#2*(<945Uk|?i+Nxrpk?O0q5oerB!XsmL_cPNR#&;IdsvIU%VcCI;eW9` zj)B3Wne}=mBZCC!PH^61nT!lCE=GdtWnXpQ){`aH9^Iklo{&3OLBoge+0^Dk>b~8c zKR}m;AkC(J+sD9g#<Tn63(hVE1_%Ca$2_`y?Li~>b2}lG6ewwVc1J6Cb{A`Sc2^rf zE1THEM5IT_Xkyai=hy*Hj~*GIg4EU%Oo3ya`1IKF9FiW7JR9Kj7#&C;J!XL?AARq? zFbu^=kFKDJvtH5b5GDU#@PU=U(&L9XaC+2Cho?uibZ~l9j{&Dg{&ZM+{Flba@WL^i z?DUwn2bvx$+fmaaZ#zlp5qUl-N9BM=;~P+~)uWrWH3F6<H9R^)fB1C2a_Mya;M4sO zG7F%<%E0hKFaWw^;s$6<1!&tcsK^Zf5eXn7!==}q9i0DNx?Ml`^!oCG4kQ@J{ldK9 z!C}zRo}nS2r~<8)>@^L%3yKF&iyFLZ!*RbXXu+iQaqwZ@vfyE1%)J|yplM#rZUJb) zD>rn(E3;?!caL6gS!lOl({zwEkYg!MznBN&fj4i+B5mI2m<}rFaBbeW5CZNPfaZt; zKs^J{Onm`lc_irA6X;$^*zS#_7?2mCyElr=K_|YUt#HM)bAw|SsBa+G3fg}PiaL*- zu<0G2Zqdc5j0_$-V3R*S-MmeykXa57;|u)TTt9m7ufGUkenK!mLz!SoS+pEv26)oP z6Ev&gNq9N~bQ5ChNl-}*o#km&VgjB2>5EvE0cuP4iu!;K_CQ-%oe>C91seMYB}>pL zn{~HA4Li_c7+A8+c;OTXS*l?G3f6!Z%F+M+ztBT5AEfimO-!8}Af4T;jVYjf@5}26 zU**d$59zNGyPg-3KDUBODe!viUell8^GuM^Cus2lXm1hduz7hL>GLrt9EeJv^3e1t zG!;30{+q(U068*69w~jkn1U~T8U&G&J`Y7Ar%zK7(r3nYQ2MNEVqn+_>P)`SXaf~` zt{*(QZ-7P*UwAl!dT1OTosklt?Kz;?cKG=vpv$gJ)O~tECpm`xcp(c`%HYxM0BZM| zuzNHgXYpwM?@)AoH)xD2Z30Mri8g4F{RgnwZ=678!!<B_G#_U1X#5RwN6}@_YFdzO zFFV*k=kI*|58hEGt6}`_zYC}=Fb%uOz~I8a?FAx<ICrybaq4W@yg{Ft!L{Wre+%eR z@fX{?Kq(eH;@DXWI*;=zXso2O7JMG3M`!Jd7gPNH{Rg?N2dopc1gU^O>g0>RL7+tJ ztLoc*48ES+6SNwXsPlSMq2*)13sZkk<oKv$fL4<yK&H<;nturKH!TDej=c^-uyhvy z>If%*_q2g_j<?-_43{W*^|CO7c4A6`&n*R&iy|J~pFMh6gFq^@KfGq$Cj>GId=9Y? zXm{JhN#F$N(JQJCQqq0;Mdc(=auZd!0a{oBQti=vNC>(wz(@Poi%77%i%Nh;ujy}4 z2=&VDG5q)cwJfM}r2*Ce%HO-dEYPy87rh{VbwY}YgCHHKMTO%I(CQS>EU_S{*9V=G zcL0^KusM0q#yIv$P$>JTfKEEyfON1ZNFBeRE6SPIAob<dAoZYW#?T8dPKAMjHWYF~ zBk0UYv=bV!?>k@s6?fhBpu`6&(!qyJq7~`bH6I2o(C~w5&HxpHXsg}9^M_#b(9V6t zZeB6Synl5d$Aor(j6)m>3R*lLfG`g2&`Rvafz~0tSYHPk+&kvk{7-<t>DeF9fquC^ zJiE`n*!2apgniosk6u&#YoHYJ9l1Z_-0icK!Kt%n^8r0j271EZ@(UDFrS3=>XoE+u z=#(p<a=Z2b=<HyR&e{_%g1uoG2&5C9f%f==q6(aW!2N6Rc~``i->UHZ^VJ&^$r$-Z zkiQ8uSLWI4Ac!OX#DY$Su|8a;=>^R{3ZVSM1Ij<r|3&jQF)*BgWFuveLU1+`gl8i` zP&V@F2L;kGk6uv*kdp4xFN{D#JH4VGuYj@<NVP}vAwi^UBm|a+WTP{naO#yU)q`gv zum*580<*x`$j#^9e^9)Gw#!w4bdZ&e4wQnz8j_7BU}mEUuq+2UYZ#P`3@SkCL0bkx zFT7|5^((tWNj$n0wEFFZOARRHlAew3gT~3&p_-|XjX>S?7u%~rj=`Oc^gtCOS~kLZ zh^xzsoNA;j^!U&J|1a#gL5BNkfV!%msz9~m92HOtA8{64wFk7T3K<vuFUq|EWrPo{ z|LOxe?;mAQ1vEA4(ajp-1M4uDyFhLc{NxPoXo0RVd+yVj`rfBA^}kPND!b!8(5dCF zpu5RL%RuMv_WHhmanv2u*Xs4vaqT|t+WNoJ!x40BnG482#Gbc7h4adE!1>qr_zN=+ zkaNJdj`-e()_%RVH$aEvHvixRPZn^3Z};hqJr2&u{LZnU3rO~ZRKQwY9@alVr*?yv zl6?UkRQB0J`#WgC(l?J@Z%$~dYfd*Lw{~9#E!OVn232@G#y;BLJbJ@9!3UKcdr<@y zg<L>V0-A2A0ZkTM1Kl|DVvh&7&BZV1Dh}!r@C*8?W8R+l-lI2E{6$~@WUc^q)y#j; zJ%Y!HSU~n;EvUW4R|z`6$F@9@k>Ld!c=X!W9F(qRRY1}eC?OyZf%tYOgU>pQcZ@?G zZ|`MY`S<^S$Y3}0K3SCUI;3+DA9ysr0nMs<bhCc-ge5NtSL1J=`30Cj!-w^e;K4{Q z@StZIgyRGr^vs2DyugE=DG-hmc+fK%!tnwRdImu_PN2pgt0#ox1s?QtfN-3^gP!IP zju&{)QxC#%0uOqsLO5RFK~EV7#|b>>DGcFwfd@UgARH&~peG}Q;|1D}&HEz)>;)&# zrfb&y;b4vzXlFI=HVDTFw6B|WErjC*+PTfU1j2CwZO>+%4dHl!_F(f)f^eKb8^BpR zAsjEz9&g?T2*(Muk(;#~!tny_*5=KFaGXFp#aUA!952vraNZaQ#|gCMn>851@dEAZ z=JkSboGL)E;0WP()qsX~Ey6*o?qr{WsP5A*a$o)b@3{xIT(so?e+vgQ1A}AtH=kbJ z=yRZiW9xJdbpDGysIYKRsQ|Sm3qS{MRQPn3cKCFbPJj;-UId@i;iFRVV!HFc{}Vp* z3-D~_k2(oD#rOp)IK%e(iu!<VnsWeco(Ih$gUb)k?juC5Clv+ff6(}VsSCIO0C&24 zR6L+X0Js6%2&!&D4d70YEO=x9c65?~kM(QV#T!4$VarJWfwsW@1}!6H-4AYw_Ie9J zbN@Wha837d=t9!2c5v>ucH99{=A(Vwvo~DGgZcW4La+pA(Rr_IcNilBQUe!!-xQ>Q z3pxnk#TpmT%_HE`rb<*2KmnNnZO(#+3_wdv6MQ-gke8G}8oeI9q8p$A9PmOd4_2zo zfR-vN&@}n<`hq$|Gr)_Yr^A-6SAfs7e&G!%Xf{CGf#8A$v<45hEKL%;VWr#ihX-O= z8h`tDP^)r92?N6fk8Z?4^&ritr)gr>4cc+_BC7<nq78H_JZJ+1cugDV#50h29!QP> zong@p-=2isymF9hq@d;@n#;#rR16qAx<hY(jWYyqbn-obRET0X4b&@qai$ow!{Zoe z9}j;M=imSTeR_4z1cO#=oPBZS<^TVn?4igEI_>3~N3U)0X>j(iKFz@JVwnv*d${fZ zMJi_Q*bF}R1C%=|9YDFmkzc@PD+4TlJO!s`>g5knN9_4SkiQAExeVOE#gacftbdo8 zgIczrW!8G2W!8$G-Tz)|{uiCHoPlA&f6-nD)dr#JK@@ns<^R{L`@zl6UT;BY-brc! z)ts=r<JSVqJ0N9{ydwz8JEmX>aNe<HIK=?VJ786vH7W|bKrB%6-{3`oBl&r!1RDGS zFJ8e`a=H?gccODaA=wKm`atKwuK^Wg9^IiN<{famHm8uxyaT=hS+9_4c?Y!a@5Q|W zh<Uj3jxJ{25yet2lt;dpQh=0iK7iV_Z4W`S=e`o4_J<V6p58espq2tsyVe1%U2D7) zoWOJ-lq!UhTZ+=y1+_<dSu?*Qw@<+PFE~6pD+EG4dRKr>6avj8f_CI+7QEosthfQ% zb8!N+=K{3*B4C9Jzh(qz_eBEeB%&42lZZBe^nrF;Ku;o4bA&Z#9(Z)yY6O7hod1^^ z_4*sUhz1oBovb1Oj10!N(<bZ$Ewp&y1`_PH{qGN2p}=D8(R`T0qxrW%5oqlxYi9ts z)xbLuLW|CX(6XfvTDKNLn}Svrf94mkO$6~>_yuHRpbXx4C_^_2$`Fl(GE5^t41NJs zkb6K&5n1^`0xtXls$5WpEo%THd~qja@gcteD~mtm6qm!F`2}Qu`+-$}SIB}?fEc`= z{2(fhe&!d@eF;$kUONj?0b+<gfT{o~H@yx~0bW(Bz^|F20$R+f+Uv*20A9ZcS(6A_ zH4E}$A4sPwzrb&hlVw{ViVj%9mY{-kfY#mq2d|d}FCXR2hHCi>(xRK_$H)L)lWPDb z3qXRbDi9}toC8^r3$hfv(Do5XUep3=#6J+vR1az^Sg9pQ2(<k7Kgbav-+@;09ykVC zCk&E0>cS6NEeu-H+W_LL?(qdXphg9>D6n<{NX&MPFCzm;nF7CN>H?4-9)hL<5<sqa z2wH9pQUqECdjRYv(1PG65MP3dHwDllVerCN(E8vf@U_SP!HPkyd147t0$DQ*iUZKX z;S?3n%EZ(IF8rEMr(6IB2q;)wH@wJG0iRb?qoM<{+eO8OU*kK7m7=2H%CB(J$( z9hMdI1;qAI@%ik^A9D@Fu2FGt<=43B(Jc=Wy3en1&5>W@&}aV0Yo8tYBM&+9Yn%o# zPJiZ)xB%Yd6>*VY?-1xLoRgpV15dr?=GQp%BC8H`zRn4dc{wTppZViHf{xg^_?chO z_%pvii3(_ycHB+yF)%Fr8pl36^2Zzn@uE3g_%*J(@@w4q?8+Z;#g$(J6fzO_K)mOl z`Qr{c@@rgn<kvX!nP1SE2jno1?syK6dk%q!%OK(mrppd|<_|pdngisr3$+ZOv!w(| zR8;si&Vd|QqhbO&(dR74g`kj$y8&W7_{<*%a=)N3$VFhcv4C6w3M0W}4zLsX1-*Gd zV)s3|;|0KOb>WXlQE>se3*-_|V1b<kak3+SB!0J<K;4$35(05s9I|^{_yvVw4i$`M zfjKLg0~Al!Kn{XBAtpt|1?+lP{+RoY{2G@&gB%J9HIMFi36R4sIr3{91~JZnh{JdT zY<>+az$_q+5~xuD9q1GT3NV2j6%9~mA-fZ6xW!xr1tDs<#oY7gjt8YjP#niRCpXmo zRf8Rf2rEc1fy;{!l?YG-ftL2iJ%Bi0Fq#FF+)hE<1Cl+@uW|h|f8=#gm^t!mfR0!2 z2Boc&9^LU8pa23L`xJQ+ZzxrQ9O1|x@#!;v+z(KQfK0IlF;0BukNW_!%o%j7l%O}L z8(hre(e3*HR7rl#05vA(sDQRxdUi((cy?DyP_U2=(V;(tR)P9--|_6sRtR$h9cs|{ z2DGBpm0#0)g)6^i@C;Xe&FBtSe$B<8YSE*cRo)6(4Z461kkCEg4%)r#(`~!n9kkE@ zlv4$GHy>kQ@YFsIIwH-d`=cv=_$62V@Y}BZ;ZMNlLV$*%Jv*ZXJhk6@c7pt*S$xBh zU$gpzE5D}m4p)B7)u5`^m0xo+sOkk5V+9@u|1u-i!^nJZ*nJnY5R1R%CTN+xfU|{1 zcXb87fVT%|Q-%V+fOCXL_iWG%kB9bseoav4;oxr;keq`@>uvs)#n5&8IV#|-Atfr{ zeIhj~I-qfC(0Up-4o6VA$RA-2;_*51YyA7nA5jlV9|B=4uKXGxpGLTIeCCfi_nAND zIw;*7_zXG=j30D*S>%Dw{1F$S$pTsiB9%00pm7;~{S##ZF8mrNT=+Gvx$tY;cjec3 z;L&_sz@zy!BY$fdXp`svV;<ID`J1@Fhazf#w}fbHQ33hOg<oTh3TO$73%^DS_y$?f z`7oe8$e<Z5@P44~J>Y>u(5*Taj0_B)UHJvYKtvp<v=U6?0F6?D4~*$fgQPT2%zJic zTVPwC32mCi9fqCf$N}2l3b~Lc;{<fnhhMYc2ES$nsA=T@YFc@$@aSfJYYt5@t`|JI zS^Hf<JJvz_{cBwr8Td6me&!dj^w2&IDsDlCn%o01JV7VvgO&yIw;Td*6=1pVVzB`f z<NPhtL0;h(Z~z~u2O72k_Y-`<hvb3AU3^qP`-2=n!znH*7NBG8K%*o+DmI|A?m*)= zE-Ii6MINAG86Qw-DBu7ZZE*qJup{6B8bkqAdHeznpy3@CPz@#E0UEXOQ335XasUm+ zxTt{62JrxmvG}OOfXsCPpWX**-gtlpb$nD(K%$_r8W)uekQ+clFg_|E(`!@|Kv~{J zMFm9psAwE_QPBY(uXjZg6b+z*2YN#x2U5K-lm-n3+XlISn~Mye`2}4;XBGv3M$bZz zfD8te8NMexx>@dn*Z&)S=8p+u`OF`~_L)D%kK;2uH4-SKu9Sgl<#X@@>P$dsveVSl z4Ky?qdcdXARL&KY!OyvLn0C7`GQ9Zi|Np;>g=xJDBSUGlN4M>IXOJ}O1`zfCum>df zdsyG#Z?gOM|3BzXFy9NHQcXSu<jFa(rax%)73j=6jOD?g^ai?eWdq~uBd~>nP}-;a zPN-uj=r;KdkH$9@j0_B}{F<|&<x{;WEVX^`=w?-P1~thvZhC05@_}4-@CUO`@=G7< z7yQj_Y@q8k`8(>^7#KV|qd7b~iv>W%k#A@63*XM-2fm%vpi-&$1gK~Nl}gT_0?`{( zAO?5*7tNmr>dM;gZ~`5U+3BK^(ES~Be3*AP&wG#ViJ%<np&bZbFx`5IzonBI+~~5M zc@Wg)l}*|W+M@d$wtu?u4?`^j1AlumGXn$20H5x{3g>PY6OK>L`~oZ{ovt@Lx>>`V z7(s>VC-BK=Ab)^7p~=X=(6AGfF&Ow;Kpjet?naQ^{NV>YwU2=lrGdx6A1wT!t@eUG zDkl8lpejE^#e!esJLuFI&}Jv79?#x5&`FH~t~WqhUHAojuYmGm=mn4g9?2gN^YQ!w z!9N`N^)6LOmr8!-7jXXL$gg*>im#Lhw6fKaU++K_Q%NF-4Js8cftI-b0kJ@JWz0!v zk_6G9LK1W)BIu|`e!YXBhT^5q{DBui4aI{m97{k+@&dp9r!tXG`~uED_%%LtGk*e| zpb6T-VBzuqxJUD00T1hc{7sqv|NsBYFA$<);n6G0vI`v8kb(eII&_zI82^9G$**yp zU*kN##&LeV<5eQ1Li~E?t9VPf`Sq?>vGKR;0hKGx{4qWzET5hEV^~Z;WQYkU3qjoq zD%fGiQl5gk_uFUwz>g63PAmqw_k$z9{%8KSJkU_oVlB{&CisHr&Ki{rk6zKpouDbr z8kGuA^FG6)v$o+yogV147Vr_Z4xjm>&b@eR1eu470L|lruB7qQKH$;(Lzuq_v`Npi z*FhLOebEbE^$wZ=1f5Om;L*z}zY~<TOj$v8zz$Xh-6jk^2%Z-_CiCw#>waO-U?_MB zUl=s^c&-SPkdJ$IgLlF1DgsS7f|c}!3HxXt2VFx78k1RA1WLIsDh{9ncV!pufRD<6 z)Pj8DunWxUj8Rc|aZ4XO776O=WPk=EJ$geYfV$)Sg03htgrHOX^2|Zr4N-{zkIsQ7 zv>m|13`m20pkc@6L+U6)kHVl3)=dC8-qy&Tk-@v0<vr+X`{pA89-XBf9<bZmJSsqE zFMA{(1m99M0W=iBtqBV910J2V6C8Jdqo-GN|8|i7d?$bo$XW2>r4DHDF81kv(e_E8 zta`#l+eak<nqNKsp9bHj>j=G2_tb%hpzC-AU6~HJYMpRwIB4L~!R-RRkoSsDuj^Bf z?#ti+dNElS<W(P)2#;RV^6em(gQ5?zf^8q@co9$QWBg5^{Oj54AcrHCV?YkIK3paX z8k6&|{!lIgIyYO$qZ@p|EZ2Y0zmvfW4WakU%7Nne6==Mr8+Om^HPF~hZ<rkD_-w>I zvj@PU;0OjCLkya<>h)1^0Hq7?{4tvzWd0bGjJHA0?Ctdd)o%4JDix3cY3Q&uIL<-C z))k;ghfN8CBD*mhJRLj%blW&cG3es)&I$qa1sEWuVWyzK3T*%<3-F9;25PdvI-~0I zLJG8yxI088B8@+vwQ&yv!!Z|?49E#)6=1W#%a+iR7_Mb?8z+IL(T>N0mH=t=fGaI< zdkZu+3~FzICT2nHEzkyVpYA;>;N9QdTU0=M?m_4Ffj7o<?@<9AZsO6sMFo7oSvRCj z@4~M!MFrI40v~{3eC7oU#F{xO;MQB?5m3$M7#n-oA=EJhbehl!$Z100yWP84r|H2e zx(c7}haR1vOVMtDRt0pkYTJO0C}x!bQ7eD^|No!A#giRW@N7{@03BP>xkn`fyt55* z9<op87Vw?!poLcgOrVoV_Nai?u7Fy;H7Xq7Q;|Uj4!ZDb&H<m33>tHgQE}ndTmn8V z8N^Ld0e4|izzu1^RM4Jm!59_rna#1FCKIS9%`aG+@n6&o>_*deYfwAztxvaUsWqtO z0P2Sc@K){u^&F0YdJc~K8Xq0I|AKoA4xl<(`<qAS9F+)=2M+#YcI>{3=nt^Sxmc_K z)q*7<`~ndkpmvc9cmP5mAO%$OoaR4v`#-Fieh1o22OTzi33R&fXa0y=pc95U!CC?j zgGK`mzc`c&szqXt@oRhlS2P?R$;Umcj}=XH<k$NMsxTI_f(A?XfRC1T0UaR?I&aa1 zUvmoVQ0X<`Xm<exE2t0W!mqhU1+;1Mzo=0k$m~edI#5yF>zlBd5meK%`tJnQApby} zQAhsBA1@|<0d0i}f6KoO)Nd5bQ88#aP{Q_^Ul24v<H9c>%Cw7tVV?-72c&Vl<#q{+ zBY*gz&-@XfdrK4eHO{>V`ttujLW_gd@e<ya+n{di5B_aG_@^B9Xnx07df1g;<Etyb z#^3*<vp}0?x>;XaGBWsf|MlrMy=e(*bb#Xn91&?OAcqT-sF-;4+VX8?U_hLf;?Zk* z7<B%yJg6l82S5K>jD>*#)>?Ns?%D%t>4Hwa_UQFpz_015z%Sqs!LR9S0NO_X8Ke;0 zXaTp-A+34PMt^8)9vrcd*1Qi$Eu=Lc0E%u%YaZM}hqUIwEp$+O8`?sLwC2GrbVzF+ z+(HK>O=t@p(wff!nG0#ngErkmTl1hD_70HNJZL+;2c$J$18Ts>g2w&?Q(Hds3zl}g z5R?N|!JtDmLP6{P7+w_cg98lQat9qM>H%uG`-*^U0kzy+CH{-5_JG>>ta%oo!=6D$ z%yN2kJ97B+dLkVT4Q|_jj;R&^9fx__;s5^^Zc3oW1!!L;<X+`oQ5n#A7M-9Ao<RjS zNHpSwf*Pn4WfimluX8QMc82W)QqJpeEd|fF`Yw2J3~aLR4xet<4e+^EtD-VUwH3R- zv)94OgWoxJ0qArg&?J&HtinQEiw<g(cxZzfC06i8i4~~AvdjY2j<5<#H4D@z0V(n5 z4Yz_fO0K=&0UbZy>$>2z40!b*M1}8yU0?>d)(TLEw?rJEEs+PHotgZCt`A@p6ThJE z2T+ak1XROyhwcE^5};Ln3s5T@>?`5eKx@~Qg7*cOt}+A74Bqwb=K1H*ZRpbt>SMbJ zcxoSkUkrB-v>TzjPQatvv%*vR4=CG*f`=et!6Oi<IvxlAGkJ9SCZr+u!+{Q_RWWho z*ZAU@%reK3U*q>@egPj93&{DkAu2Ym;8EBJlY^i6BWezU3gQTtgQO2l@PGzEPiKHq zqi=!>^6<nv7k-WJuKXH5JpLc{u)Ys%Z@cgd#Hd)f8ovek0#x#YhHpUy!&lHry}My6 z2z;#51WLGlI@1Jvx=lMk-LqcPnIIM2tWBoi({DYs!6gj%^xOTvLCXkJCxEM2P>Bkv zRzb(#f~!l=as8iN`2}@Uz~djFY8AvSQ2~v4ZUGOKf%xEBO9N8cf`&gpl?JG~2Gwey z>Katbfsf4vRck)okm}E;8&Vy5bVI5~P<;)mE?xLFAl04=zXqhj^XT@i@Gw5}A~+O$ zSvIIbc8rNV{9m-G3pBLW!JBT1e17g{et|%i&-?<BpyNv!LCY_0nS%QBf}+<TwCp7a z&ASh*543(uAvDY}#H0C5fbm;?%@P#{{_vCF6LUSgZ@6?n`pjSNqhbI(Ta;hp1Ng>i z9p=*S(59xs3k@Yu0~WLc@n0%v-t7ap_}&IOOQ*9$rNXD%l+A>Z0d!e3xVhPV&Zpb< zjWMXOKksqyC$mTE$&x}}?eCxkg9V-k|1pEc#Srza&3g~XL9iaZ{t^?w_kS~k4mWMC zlo0Ugb_Ad2$?0Q#pcHh%=Zl0i28PxHr7Rm5Uo#mUXgT1)@AA*%|54CQpw{n-HiFKn zE%0dlR>J4neS}}*oJaS$7oDM?Q~-A99`JA%C>B8*oB1_LR6tvA0~}-EOOzbK9m72u z-++!b@#to)Q-!vRTvQ5-|3kwF<PQfB0p98o0S+%4Mo@TNgfz{6C_uu?;l;TWkkyb& zp#4DCXLQa{0i6Wm(YZziw2>NgaXIKj5RY!tWFt@zt^wa+4QfPzg3_ZEdKiCLFzhgX z8zWEy2jeh)&|-C;&L!YMycZh53=E#V>sNp#DZ>wVbjNb|bbs*Bj%D!ae(!PcHxqcr zDQN7n#K~g^=){cw|Nq;AhF97Tff_{JmtQ<f0L3%tF3J-=-4A?vb!LD}@zB2I(|!2G z%M=C%kTIUUEOTCSfo|9J@aaxbaey564_d&J;L$7kej#Wm#Llz(oM&g9fM;i&#ES>= z|NeXS#%XwV)+u;^?*iZe-3Q>=Tqhw?q~+Ny=g}*A1$-plY0u+s0-&~t;|>t{qAZ1h z!J(sC1f&~$^8ea}3=F$KQlLu#e#n3>@&&ENvA$6v0P5)`fcDaNpMG&J`u~65&N>C( z)+Z$nzS?g<OMwplW%BA3SqmERg{?=C_3chk0iU7@DqfNH{rzhLcYn^j5Ck890ooes z#{pV@k>Ft+CQ-uW(`n?<>?XkRnhVrDO?Yw6nSsHxo8P1PAcu$b*%Dr#ZdVSE?ofso zuF?PhgCx4I!*6+oT)t3}=G*OFfheCr)wM@5&jj#&oh&E7*K&dmRC3^ei@KbE-r~s) zy4({i{QnSGy~_#6J)YhCD7IK%C|UtF*V<8_gvF!NQNW{{wHwsr2ahDQLJ#=-7yxS4 zvlf9REI>Ia12hcSda^{=19UD+h)M?RV3rz{43M*3jZb=ZPY0*e?(-hq?4H^enjd}W z3{f!v9R=Xo9nRqcI-K9t_`rYg2@;+lpLlS1SbKoo;UVDB?aJU`?aBdil`99RlLH!s z1{I#5{0S;FA-MyZTe=~+2UN&HEcH<-0F|BMAeT2D0cBdp`1r#wj_dya4;|lg4E1P! zQ{d6fx*2roz3~xH@^o-DehbaZpoWbCh%f*V7NGmY4!Bw9fO2!^9B^Lr=)MTbtsr-S za<>8~%YrNd6#yBa<**5$^bi4BhZXSRpA01DE4;V@%0aCMO7cCrZC~htYjTfn-D{w* z)&A>o@ISLh>;IA<pY8$;kKO_apYA#d$bJo<UKLQ^gTbTwnrAnUjz{xB3D4&L;6hN$ z1EomxwLVtL`63_@R34UiK`PUt14ajYx@%Mde7Z|iB0#w^0UD26RKSkzhK%#WN<h%4 zy#pu&ulj*@C>|+rj6LkpZF^l8vLHdb*I(hqEk9V<a{wgV{R4Ut2&m=b)0rXR(XIO* zEa5KT+5Oc++nvL=+e8P{>jGC3M;RCxklG&}-R>M7-7+71EQ=NRTRTB5nAY1RVIJMV z65ytifk!ttsHFtkkn7V8I)eO=x~KLDk6sY-hdh7#DNqBi`^1ZCKL&<f8sK^;8*~+w z$8l!~(4sGw4(%85ARmD&>(v46+~M%BepMm`nn3mFJ_{|#6cRwgG%VU4o$dl2|Ic}J zgQ#O5AAnsCx`^BtG;z|cE2j&JK^Yy7*4rgApoO|qz5f5-bpkw{aQej;@OeVIKXn)x zJbP_)JbJ@9Jgk3}D0p<szSRL0*XN-Yt_Ph&*vn$=(aCy6hmm0e<4ga4|Ns9No!$hh z>cJ`2qxp>ofA|4V6BOyRbZBY??<YIp)L_F1IxW2$T-_+V=#+vby7)NA0RgNY%||>A z^KWkeEs6uP!DfR9==u9owLmd^pwzI}BjLplA4m*$pMXX!zo3Hxzo3Hwzo3Hyzo0|F zi)$}I<29`DT8s?*+Z+TunvcMa;0K>)py1Jc6Lge+>&cQ#kM3ZO7t6p0hH`uCfbCcJ z=nfX}(7x#L{S|n}c{l7xdXHX_AdiEOm|-Qc1eW+Nm-g&F@uJ@cbdi)tC$mSVGlxf~ zGsqDN(TD$wMm53%4|LvqxJUCF1&?k)kM5t~dy9{Q3VH_6+5fF4OSD1FAq(X8hex;M zF3=$tFZ6vtZB>->FZjVSphFzuUkdm@Y=NE6L5lgHh<tJ08;kiM8Ho8Cydma8;^&Ze zuZROmxOjAXfGa4ZVasxU(6U4DDH9qm3%o(6X81KgOaa9-1cN-R0G?R`2MeQ5_eam} z8$R8jJAzJlXrJ)tehHcm^{{@$-+T>}8(|Fsc@NN?r5@H7_}gED#CuJyf<n@x@gL~y zmm*D%UO#mY>vQ~VXF<Cnwt6uzfU|oySZ#&6NAvRs9-Zz#UW<TQW4xet*hG+;?jNt2 zjQ@MIzAZ5XUs5FU7Gmlzu&G$1-x?JC6F{1KS?oMJ?L0f(I6OPu1U#&Nl<;_T%6l{) z=kT!pQToNBy99LYdJJgz_lSZcXvXKisC7MP%S`h@cH{pZ2VXLKS|9M>cRvqmlV0`c z{^8Mm*rPi}CE~NkYEV3Y^}JZYk2tj4r~8ga;~P+I#4o_*(R~m!j+MazYDO3EYk+wM z{KpQ4@@w4t%pZA!U*j2Qp-ck5#zB68Dv-=7evNCOsc6u|?D5b1krzJmM?M72i0|M( zcJlvc{>YD@nQ_o;P&8;ZD7nLhUm!_<U%(5rU;(r+<qW^ZL0A4`S3*J7xbkb<apgaD zW)*1l&;QRZ{E<&V1ZdGi#4`}<F35capsAOL%OE$o@JF5n31#qncHxh>15$F7U*j3b ztssF@AV2U&KIA`k5adv>lU(>Cj)2_7uW=saUjAd}LqXFV$BwT8En+y#e+)D`5_$GB ze<b)2!-t>wBTj$jkNo?YKLRvf^bgdkE&wecIRzp>K@<V*nu2_B06a2x0JORYya4Gq zh-K-*FUZKRQKOOoI?(3?Xu^00=s=$pple2EfUX(o@Mt^&iUR0-apRjGpr$Q2oS67Q z%kVVrfM#+e$XbraFSy{xzyJUF1%ed#kKI|tFF0WbnCoTW$}eEy$S>dkT66OqG+qfB zU<Fy^01{Pj<v;cvbh^-WkWc_f$iS8V*!5Mepj05}q5?_<uKXJJpb_^D6!@Ssiw=Rt z_dx9zM}Cc8pa^i`k9-M=0at#FQy@7|Tf>oG<2^{j4Ny`#cJMz)9DEv~3xDJXevL!? z#}0*p#6Z0Wkh%j9u~i^3&>4N7`6GWoguq%sr|^N4UEtR^;>dsOeJKC2BcY&C^#Xp4 zvmia7VdBsHktaZl5%?ny^J{?9$|-)0tNh3A{0Dg+w7&8)f8=Y>Kvj;40EkLa5&6s? zdBufaAV&qXoaDPBzs7UWkl<HGevP}1{KxKwy7CJ={mdWv_%naRCy*(i!EQ(J`h;U| zSAmq?{mdWn(1l+!M+Fq#Z$N40qbvWhH~&Gmp@9<B4Uo_S7k<q(;1vj;`6Eiewnu;@ z?|%lZgc9LD_6@YSC*l`K?d{L}0$=!#eFH7-i}?4MU*I$Uv2W_2T=3n6U!X?Cf&bVy zONbjZu7d(4L`A}tU*o(Z|FQd_uHeCmW9L_ay}}>4L<Q>N_n-MAb5soYH9)KQzW)a; zPjlgqgsh6-*SP$dKe7ir)((pC&-{^)(RfFGjh~<SBOx=?uF$xSQ7HiV`7=m2IQsY_ zUV)s^q5_UM7ygLf{DOv``6C-Z>GCsw1Zc?;_%^r~pZOy<fKn$YiGj5AfER0ka`FWb zcL}(A>&mYIPHT{+9w^iP1W9gDfu^5`Yap@9uKdR?Jp_f<TM+jji1h?C_;Lj#0nVpa zLGcPYVe}Gsjo@_`evPj#prH@QOvPOn{$pSNyYOqA1?jK^d)$RTGDf8U<~&sQKpeoY z0ZI>$U<Ek~;z}2O!9W2}dU4^`0F`EuAu1C58i!r@kDXlw3TklJgGTY;;S33LlwjTi z?o&g<782&4`6FJrfJ$r7V#9;TVd?@JU<!Z*C_D(Ek>JQ50Sb&rL;!;VE%G}klwLUU z3xLzsWf#!sd4LP3#B%`2y#34{0ZJa1z)MQe0ur=N^Aac-Mu5x2W0251_7zlw+=GP} zB=Eq|2MIh-jDX`75>B8HgM=eE%t67X;L|%t1ymqH{0a6K=zi0y{2F&b%0pBnKyd^O zN<`p8Llc~ypy?D6fUtB54GI@f$_AAmpy+{T0$5P;Yn%qviXb(hA_O^BAYlqi{orVE z<&XRhiW1P7Y@qd6ASIx6pT#er$sDvyLf{xE7(wCr0$d@0lILY`T>uh$0<I9iArJCp zi3&L64}xnAko;R$evQ?j^&6l7LXHPV{)l6sGvPq%!9byU6{G-M3ta%QK($by0l41r z?0$^CKP^W^0@NN-2zP|-PiuZ-;M4u7n>Sqvv?^rVL!>h?j30RHf}fbdzy1;bHdZGk zMg||_2R;y<DGE;m!Sm>5jaFu4@KiqH!F<4@ThvS$)P0Bn9f)o#1(LA7U&`Uxec!YD z{cBf`Zk9vV-U20j9@aNX3_ZG|Ijp?}N<Vpa$~hi$<6!XYJ_c&qfNy3h05y$3H;x#9 zF4zHW^^8C4)BW3{`!#$3h~2}Ib-xlLLn)s}FK^pSP;1hn1k`luWnG{IT6XRNy4~X~ zsGF?e*z2qC;*bNVLHof2bOK~IYl0#pL#La7PiLNlN4IDhNJp<1Bd90Sda{E3vj@M{ z!Plao_UgqK%?}wpxDSGaKx;M*cy!z5D={+ghhOq&{SQ%k{Wa)VDUXXUJ-UxKKVbCW zJ^@k<S^{^8Ujwwz@f2uPIU`7y{%QW{2S6KVZi80g@y8v05fH?{V0;pE23E;D1_plp zgGFMW`C|_9>mMxU^#BdNff}3*9^D`_bq;tiAKb|SYO`7&^x$_t;bHx=Skj~MKWK2b znAfA%<}XM!NR%1ep}77+n+N1=-YtrtXgcG;eA1&^v>!CK(Cu=H!=qca7{s<dT*?j( zsn;4F-6E&D{RBWm9wPkm44^YAtPhnGgNAObJp@YMdvr^HgAm+M_vn7jui>Jikj4+X ze$1!4Mn%D+TU0|4bYHA92dH1%DJlixb=vuWTfqh%oy8m;-K?r$=Ri^oF9XO4-697) ztVN$HFfx=1d32f_d@TpE20YfG@p`(4_0>`~urQC0rOQE%QdW=7l7k$coo1l4!}xOl zU+4%5$XOhq+m?~iy=V6ipYBht{M!^z6FuUX82<GS9r?F8FhY_%n9YR5W`?pox_NWt z5#h+{E)P!bCpdh%ZM8uXNXgyaqnqc1V>g4fGdRWHEYSd`cxQpqPad68$DH5^zQCjT z2qKxs#bQh7*W{oHeeN_+LiaC(B=qfa*b@3pTTqNc6FNI0kxvAvCO(mO$&r)DWk9;% ziTnmEk!SnE5_$h@8YJ>>Tp%y=o|i>Lj_4{`P~<=oc^`<4NaU(WiCmDJ6z(RAoWd<Y zJoFUq40a1Nh0B5Lhoo?3S@Kf&IY<ikus&5%4oc(_kbwixHBKJgzd)Br-2{yjfQF-5 zPnOug1~8f*{lPm{p#$oyKDGvpq#A?sW@oX0NAqC`59|A-n?a?p1*lL4%{nN=AO0^o zw*alf4!YU`)H&ta1sWT8In$bf0bUn@di0R~DCow!&-?;WpmnHT5})}6f=nFwHH%+> zmKWam%r8(S0`7D2YrF?{HC-SrPXR9#evRkg{wBEcci|TZ(gCf>o&l;4qbywcHIqAF zOZE@B@N0lNs^GfRg<s<}Xbm-}?sVnX+zqX}1*$-+@&$@yKy7t!cjYnYHe*mT^|K>r zzXhnf;K(0&7$gt6@jK=LsLB5bEa%7{30kNd1M0beL=S!Dj{)^;K<s0V{2CWQjLV<- zV_tw4DTFwJJmJV630jGm16nj2^WZbTfD>p_Mdb0%{4p0k^9w>I4xLOs^G6>1%r6+C z;sIK7@5mo{*@a)@Hb@cJ6tJv-7iht6h>8zX38*U|P$dAe^*&T3XgdnT9MHOeAkbRd z$Xg&E-T?c+g<mj61=QCTh|&Pt=n7ul9|Mu)j|BS|<g6GK1#qys@<-kWD|7+54YX!g zAjrazU*i@id_a2xZhhvDx$zlfENJ;-6sQRdRUdN!w3PyCCTQn~U<h~v$U%@+P)GeB zs6!S5-X<XsW#S5Ih=Hwh0j=6~;RopljXxax%rD>t8Vrbm8Uo(ABgC%(k~{=zeDg;J zf!3?P0r?ZWGbKg^baR3WC@g<~UE|0f`R_BoAd3okGT8?#<^t+WI)Ks<csD*|wKRCe zbL2tL8WjFWFVGqV7Zvb69RA3|j{F)QK)p;y{>Yb~`2~_dJ;^BW7MrJ^`D0#zqTwTG zvy*@$zs6G+evKG#r!NN78;pGTnLp<9XZ{#azY!!3@)9_J!L!I5pZOz>e+KpRK!F&d zqVO3sx2ysRs7Ihx`=F&0Ah$;x0SO%fSq@s5c?IDmi_iQKM?dpNg8INQk3c<fup<RQ zzH;G@0qtpXQDOPa9|775R-yum{Ey(JCZHw#5ujZd0xl{#pfH7|*Ann<wGvRO6?6fw zDR%*{7LNh3BSE{3Ktm{JKwbr#1KJjH_%nYb=wJeY5EUL!Xn;D_5#Uv{DJmf#m%sYV z56MrTK=}Y1r=XDZQBeRX2kj%d^O;`&lqDSbBi@3<9)T}|2aPPf0MGiXeCCfSfhl(Z z-8&A7MHSE%p3nR-DJr1z4syVY(sMv*AQF_ZK`Y)J`6JJR-3dx4V0Vgu9CQ;zJo?NZ za{|P82ih<67@R~vX)FTbHVsf~{s<_Yq<|L5N4)#YFHi)|LnSIMAmJDlpU;l`kte}J z0^ogjIVzx(;{#6G5pVc49)L{$_?bU42{h(#<};{B0J+EoG=>CPdE=s@1Gd%xEX5xQ z>LY;0XbeCx!XN1*0<r+qCl>GlEy<5L@tI$MHF^qYaZTh6(3lsvuj0ZF@~;4o3TRm5 zGk+x5T2KgrL<D?5@gE7wA2H9tX$|DZNYHK^P@FpQL&m&PK*1&eN}{g(k+;Al5)Z$C z5I7n@8z*8wqlUK}K|^h>{E??XVFM~b1wmeR;g5m%Ir0HyASV>my#e_foPr`i<pgN2 z3BQ18`ee{rFVL9KD*j`aK%<IRAdZdzt%$z)nLqBc3%>?v;RR@0StKZHM}m6uB`N~G zz0#mg;y-?kf1rMx3xDJ{7k-U<uKdT|K6C+PTo?XG9~IEvFM(I!&Jm<oXHntTxb~Sp zGDIZ?qzI(O0yN$T>i+XU1{hO7<9Wxvfwn*X2lvB1fP(#p3&;Q${>Y=CQ3_DE-UJlu z|3L?OgEr$u-f;nGcj1o&C0tP4v4EWNnIB~Rv2T$5j36DLL87;yZn(e?ST9lFHMp0^ zf9x$NU%qw)4g0wAANvpP<b4BecY5*Jm0#c|xUUHEA$VBh4gayX>flc0XMTY<AWfDa zO(5c}CI7LvppKy-tmEjyFIWl6Kj0eBg<mie)MEr!k^F+00>~XlP-TsnkARJ;^FwY2 z<==av`?$yD2OicJ%0T@svmQ`0^h6rC8S3;O)E+VL=$2I%Wn}Q+KJLN4_k>UP;r|Cc zE<g9^<y8cU_KMiQP<R2FrDtUn1+B;O|L@buD+iM5w3P=@-3%VxCp@eVL)Y?mg4Q}9 z?&*SG-^ITzK+uJMTLfq^n2+&2AO7|CeT;AMZwnAYFomH^5ap|U)AQhC79VEWnIfQ- zecV3Qr%O3KJDEK@ojG2YdUgkMxO6)RxL7+0l<NC*3;9@IC{gt3_TcdB<OEGS_;w0- zb_a2IbTavNI&t`PdUAMl25^8iTliR?D&hC&4&ngmF0u8oK2`eBryC^8<<srS;n^wZ z)9u9J*~#G3>BZsG8OY(&>A>L$I(q$}hxO?aBcE<w84*T?mm2>;%Pxcn+WPt!s72-g zYLOX$hX3OapMlQr5Qwj~E>L_)q@u-Fxe&JaDg=pw;;Y~pIKBdf;PI6QlIpb02T?SS zua|;@FurmGDU7e+Fyt|r0N?Hl;57$6-M@UgKl*fY`g9-i)jsI48!;1k*z@}fpYB(l z2mdm8b{_@ZjqSty0@UvI)IJHC4?;gz+jBSg%<WaHxIC>d^S8_ft#<BpVgy-Z;o0pc zfJ2){_bHEyFFm^tgQo02(`YfE#WlSwf}Y(Uz_U=!A3Uu;^S8S~gv)$-RX}s)44`o) z4bR3u;0ZA^&t4xDbx-Rv{B5$JwSm6+(0Mivu&xUDJR4{^f`RdEpY9M9h1WWu^)8a0 z-Dh6Ng49E<ABW3w8sF~z4Jl$eOH?$xdRcNogB+gBM}2yAj(hf&f`_^sK<-fR?LOq$ zef32e=t{lL92EuM?l2C|ZZ?nZ^S;)<N<BQS50zMhx=CrU^;|yP9s(Yn5duEl4jdkx z5gZ=f0^qw=1${alLAhN3w4%YI`GAC{^`X*B9^DsTE&@&FTOThm<_F#HL4y9{VEr$w zKK%!uMW^7|?Z@F`{j<c+x7VM;v-_y0_Hm!y012Po2nEFY8eh=NXJ;gbXSbkdr=(}M z;}6fy$R8e^Y~GzBT>hOb+#b!xBz${4B|Jf^4Xh8Ap7Q{0W;yrb^2h)GCxE6bTThn6 zdv=F$yg2yr|9{_ZHb@dUfi%~Ro`5hWxk1NVcy@dI@X<c#+3WDbqxpw?xs^}%K~Udu zxh{C!6lhtMg-0)sgGaB(dC$%;4$od58_!NZ0Z@`{J`w;Q$BP5afrll5wibN&^!NXn z7pJ(OLpR_W2z0+Vq-WdBn!p3<!N2n87WD(OzIteX^3Xoy+x^4i;6G;2ng>r<xhL;w zeSp6Ov;)DTo7VuOTKg0z$vA))^mW#N=2<U#Tzmyt`_fy$=-GY1L;H}2^$GrV(1eLc zFAJAv_dieTV;=m@KRm5}@V85XR!hJJ)EfVTleeZvufMv7^?Clb-=JCKd>v@&1`RiR z^hT(AG(Ude(di7HMgCvH>(PDwg*Qk|_l?&~#<xMsiF!>wdvvmSbf5O=W^LdG`A@Wv z8+7r}i&9n}?L)6+e7cYNXdilEVh36T%o+<)((A|JqkYt)`|1lhJMcJ%JxH|mWQmDK zx2Q9S4L%tD2i}gp11Pe7X)`c*_40i7=#>4<1scLAQHk*AKIYNM`-Ka%*^x&cwEQLj zRKYlSbn-q22{s>5aEy-wt?*os0E#s!&j0_<yfFFr7rbN%6v!N5;f`UTWempueY-z+ zbXs|IfAZ+8;_&FK67cMf;PBLz0Ik0RZ$1WX<ARUjLKgA$f`&7DWkBcfFnBcn1_!i; zN3XZKhxO^Q+!tKh;6N_n^XNqsAFsv#iwc6A16tw24O-#ySPK+1KRi0^JisefKzGBO z_vmyJ@az`z?2hArE@`=A!vJ0k=+VnE-=ouw1L9SXALHWV4!?-~07{bP9PlLR(aqY) z0bYAj!tC+?!4A;9p~wRq9^I^#1ms^5kY9;czB2|olphMJH$c18dvjDydNjTPr@3a^ zSKOd<+I_Pm*rPj80=6cJ6EyaUcTG|%4`}J%i5Jf`85oTJ!&V}J);BtISogX!zMRDe z3Q$i0&pps3m-U|AM?iH$^A9!trg<RQ=4#NA*V9GJKHc1)6+i~yGpl<|&6_~uNuXU+ zojxiG9=*QeFH*jP?uM?_7Xa}*_?>;l|BD`o0@)C%@6pMs3QEPzzXXb`J-U6xL5@e9 zcZF+zl3*MtIjU=d3}Jo3#mE5K^wiT1^3E|=anP<OS9Q=Dk5+ef28I{HpZ@*_4exi> zUU%tr=kn+k)yxMir}DiH+V%GQ#pkbo|9f<M3m|)PKQCyN8CFk%Y9i20?;zhz_vu`t z0=l{FMcuc5|2?{W*ZcI^W;cQ|u<LTj_5jDd;^1oIXi<e{uY)*bpFrt!k51R+9{kRw z(>;1w0~<jn5g!Ae$HwLZI*ZZM`g=L6PxtrN+&<mkd_iY1`gVT>ohH@mC+^XG?S+69 z1A}k(G4N?@=U)7=WMJ^se&^X6F7C;E&8wHk%(wgKi)WS~Pr6PA-Qk&|qT$i&JKeMU zDrohe!V81%fB$=Q)^7Lc6<yl^SyI*OyB!o9#~pWoCK*7x)C66(gZ2*a3;G^M-p~d* z-*kflcthKDkKWMlAf<>6ZQqf$7qEkrw*CW!Zs>W?Qb|xqfzzq3N4M{G)VRjFug&9y zlR7ApL)U|1cvUNCZEY>YonUiJJi2|Sqnd*&&D@O!rJ2uaAmfnYT86*rCg|u<j07zM zE}KlZfzBdEj`Hg-CVv4Z==Y!meI1mbum2Z)9}Y4%^u0$XYX~S)!xHp$;vDAyc3c?P zaje2113<f!#X#+-(D(4v>$rmp>?qO998lE4(y#GnPzXB<_-H@yZ2lv|-^7Q<L%!QV zttAcc49km?pTUXtyhpDo=!|5aZdcGDo1WSS9QP@M6YVi@qE!YZTA$w9?H--3$9?#n zLFtC|1LzcF>*Hn8-n}gBpbeQqKGy$0iT3$xZr|?bKHAS-Gy8Tw^Zb9nv)5nQv-|ps zXme1aJpx`Ydj5qwh^PI<qc=?1llh8wFAw-SYD067&s?{I5-q3{>Gj<X--=oN1)ONV zd-RGrfKJm12OW|89h7L<9d~epwu1>U@C&+rhbCHf^hEnx7M^IQqbAzvNQrhiDA8W{ z4GPjwesCfKCD!k#@rWa_PE`S?g7cun`nL(3SRw8Mn*&O$Xo((IVl{{aB~~{T25`x? zsR=aTQ}24*p`&*DOA%12uzw3n72n~hA{e|a$QNSc3)zn#FCe9g2OQXnG)OY{osN_$ zHh%=CiuE47rY~wxiZXbrsP^o2fTap>Q3gsCprY(n4fwud5>kb$DRQbX1o1$rLUaPi zBt*iHFa;+JaA^if7}MbiBk2=3VO;m<6}?{#E6pH<J924u9hxwnqbH0<(%^*g-J>^j zJ8Ht%j+8KtgA&H}pP*0;eGiUMP{KgV;5ZUSjS@IvfJ?C_4d8?UaUa+mP{JUx6cY~z zB@A69NWz%e07)3j9Xe{KdvvqjWCpiaN`pyTq#VKmX%Jjf1XbSE0^p_&tX<&HVg0g` z4HWpIOyC2cPy83<3<i0JHw$E4C#&^;a5Jrx<G<*SAO?olO&-0X@2fz=4iCY55qO<Y z)p7q9y%5B}@G=~<V!2oJ3Rvkjh*EKgQU|D!-2X+Ff|Tk&l<ov8?S?3Q!vvZFWnGI< zS_M+d2vNEWtTX|l^dLlO5kjdyNa;1u&f;Ft$zY|X5T(-~O6~ta{KWlVR0X7THAHCz zSSc4oX*NWu2}0@5Kn8}F4G^WdV5Rp1!6D@UQF;@h^c+ZOC`4%zSm_psQc;M~c?hM8 zK}xkCO8vn~J0VJ6F@i&&8=<rUr1bw^&?Xa68?e$ih|>KKr4k6Gz96MnAW99vN{t~( zr$Chc{R<BPC6H3kS;!u}qIzJZ91x|M5T#lOrQZV>7+%&vOqB*Jy$jm$(9LTHQTiOA z^bAO8FhnT_Sm`E+QelYF7KGA;Af*}*rC%#SDXSf#^aTSr1QsHcmVuQ1{R0kxM_{Ef z5T$z|O7s4}z2yy3dI_TRJXonAMCl}m(%T573LvG+Axe*cm9jyUrbCo^Ae4UfXJB|) z15vsYtn{`&I1Si9l!_wUdJ3d85TbM$Sm_3cQbCAPDTJx>K}yviO1r^ITOmrHfzos* z>+|1mZ<T<Q{{9UPfeNtFD2USC5T!N<Q$0aSFF=&$f|cq+lum#sU5PMN4y1G`L}?aS zDGNktDn#i#s8XT-qM!X37+zNW25lF}2m+5gibjBSTmo-&;5CNmkb&snZ{YzC5Q)Zs z)vSZ4;fJV6fT?)_>gx2027uLcLDakkCFV}nCBML4=WjUzQR4zulLk?99HQn2Obux3 zq(`r)1z3#}M9pG|ni7~@H4t-5z-r_mYU&|s7QoB_U*+5@ssUE>3%sj>HyWa54or;+ z#2gv0nrjd><`6XuFuOqObUk`SCBSMnLDUFC)WH1(x>DPtS5yS7rVpa#Jt!4*vSz^S z0&hO*73Bb{$%3dk4N<cOrUrC3x<{`l3s{XCM9p%DnjJr(VF+66>(MLvqXLx4lpt!F zA!?pL)Rcg>%zXgMGeP8&A@Vj*c?XYP(HCI(N8pVLyv`8$CqKY;lqkUE4}s)6S*0Nw zOJzK|dBy*NEZzu`=sx|z^4Z`2;K~TJdGGWKt!ID#8y^5IA_Vn-J-eeFJiCiMKu0FU zJH|Q2#K#_fVg3-*i#G(5+F()@Ov-~u@Gujc0F7S=fSNrLpb<&b`^AvXb5{l3feqS? z<tot`qT=Dx{n7XvXtSqh_X$sJKMwFHQ|n3omU}D=46T>=`>wGtFnA;%@~}S0-+l^Q zu{!+l=&n!zS>o`b{qf)b9=)y$JUT(g=ysMa@aQbv;L%yS!==}a+oM<Xc{!-2^<D5H z?)l&U6F~b+J-P!0;KL^MppmQQA7cDXi$K<Zc3BlMgZ8t4cCvvwr5d2lxPlmHqfsyK zDu`hXFCIPzpWN%Zz@s;`;l<|<fB$>5{^xJe1|3oWIwGmw_k~aQGmp;FA0FNF!AVJb zK4`tK$HCt$;IW(OpneBz#El=k0aG31fP;@&VB<DA&~Y37Hbxc(h8KR4kl5z)>8()r zY<~X06ST!b=D%pDAE-!Zy$u>8JN-gk64b!_@tWDE`=3u|?F-*t6?vb|RJc33r-R)A z-p=XSeg1_wXh^8}@dq#PNRR7>*DOBWwJ&_T^8|dg^Ef;Y{$=*)l|5AkI!*oT3#muo zz&-#9>;jL@(gPlyr58LpOK(8B3m(0q6=mSyKJeoG)4%^G`1JaUdUl`nK)MwR^?Y^@ z(A|*_Jr2HN=HGVczyr|nHv+Cq2OPCdG#oT=?BE0qq_<uwy$TvibMWbPg`LtK@S^`2 z$oy{b>482f8IYj?kLDj7{7s<UZl1lMF=&u%Z;VO+sJjKfric~fMC-$4kZX#1dEb_T z1`AGr?rXSN&g#((IkVkE`{!%c{h*$^N3S;rXr!R~@{3oXlhwM9d-RI#0BPzz{o)d6 z$fTFY8qzEVA1NR@2PD^ghy!%o(I&7w_;{Wg6^GZ5+lj!Yf(|&^1!jRRSb6dO+28;C z;O<rfv{gO91NE$SpI+Ak;N;fw4wRC~I48XdbkvcPIH*mEaZWmD1l_Bf<)w#Zg#v#o z2e@$*$l=v1^2)2%<|SxPo1ABNoB(9#4>TBiPXiRwEY_gyI3Uf<IVv8E{H>t1RUX~< zJiFZlKm%L{e=vjN&ZG4}iIGRQ$W0H+Duq%`pI+A&FKj@?`TxTp&B)5FZxmhg=}!Ft zN{1f3@f9Aut}j5#T={*vT|a;aXimS__!hJ&t@MFMH|xI7;CxXk-Rr^eLQ@RnIna%G zodzDAtcyT$-5_Ng9<3)!1U*1|SwkPdwz7gG*x)yu3wv}sb9iXuxZT{NJDkI#`<&zd zOOD6b7=2s+mpJ-rKlf~Y@&R<m7Iex+*|YhGx^H*=574QVu)V~5|3x=>fe)Zw4Wc}| zuYmI1Zc$Jh26Bvbuqf!X56G%@<m;|s1#v9sRDc(}xBvd1@M1ZbeE8|#|1+TS7G-^A zZ;r}M=x8SBuo%#m0*`Lit<M-3Jiz5Gzi;;spHA2L9^Ide|NC@jDS(f2tM|R`(OLW4 zqdQ8#qx+Okcaa3>A|_BN$mP-en}@&k2xtbV`>;o^s8R|8!;710plzr8t!tSX7+!GP z1C<D%!_hijr-Mpl1CP$yc8|{5ewSY7{~o=f>EQFeK=&%#eF)02y=5Ao9Qg&z96{sA zowe^hI%`1#XY7tUK&M@M^ooXMg3^`m`xk2;{{8=nU$As}XY6_(&;<uRy{^kWdPCp8 zaDMam|BJr62%DFq*bFa>UKfIl0@<Aivimc?fS(EERQ&fZ&V$RRZdcG4BRiz@aNGkv z1*O;abq1)<eFS_7B#%d@>wk~l*!R#fB=)^WFY7hX;TEvFUZCTP_d!E7;PJ)J(DB7D z9=+Z?(2`?=DyUNq8DBj8VvZ_!?!eer`<Z8NIFBduHQ(+dFWOW=&UJn7(_5wi8m<9f z4qpSh?*()@{QDPY9>IzTtiy=MK#2$x6TP9^UnIN&ml2`t(Ec#!Dh1#79>^oXpo7pr z2cjYFVJKt&FUsx#>JQ5bgF3LT3_iV}F)@KK6VT8=H^+;WzyAGyA#w*4@~)u4tL5M^ z&(7N89-X!4;o)8kJ_5{l`-@liK~diAdf!Le^}6T5A51>IzAT=*U?+NjXAcqcbKv{7 z4iR}@2a6|U53Iq9)&~$v+C92``=K$pUld$nn;NErV)A$qXm~}`qtmtB1NG7lk6u>g zbWrhs7(7<Y3_9jc$kX~Bs2=zZzPHCy``c^iZJwggxO}1vs$yZcd0tQk#Tw||o`0Ub zVWQxBdyc=@1r|lz<_VfCQvelSpoIK_=^-p8-$M)g|Hwlq;FxsX4o>USUqB+V9~6=N zO@^SRJt#6kN72G#lfMZxh6S2h^gxYK{<hzYp!T1k8>o%YeGZnh`8=9`i}1HTX9W2K zl(Qoe7#LpsSAyhh(CH{1y<r+2y{^|itPg?CRdC|)=oa$m^}YV0OzQvt7lOA4B!PlF zP^kEBfARb-BzEv50oeR8x$%DwVgpM2gU*NW=`~f%L&U!b_V^b9xfGF?KY;FT!5;r2 zu=rO5g&I8mL1R3<u=p2&#XndSXZ+tMKK?=N9FOi$aQqjUf=5kJ;=V`*OT2?}vaJg! zCkOL`99uizquceqN4M{FNTtjKs*giGx-a^6v%}}_J(5{=c`zSvJkD}}A;9?roa=G` zeCPxcAAHmV=-f;+L#=-l?E+P_79QQ9&pp61segzlb0#~3T)Gl84c6_;4?2^;5zL0v zh@gXZz*Sk}5l}A$G5d`;i5k)caR>%YoO*P#3cqDw=)UREdZ1Lf*F)ij2p?n!vy=7L z8_?2u=uUT!PSA1%4~g!}9^j4C3ehjEKEo#~LF>05(}a+1*^V3@-LE{l1%0}|`aq}7 zA9!L+oqKfu1kawkf|@qno&p|_sq+MIr>3(6)J}y=o!6)+`1DpFPo0COa==sP-#x95 zd+>vnh<xC0X9StlYx0!=)M02u-+=uXG<9wQnpy)*Z-6@*y{J>?-$31hb1wuyYG706 zEGmAzCZ9c_bLXH#8N@xUp_As4&`I<EpcBZt-8noFGv;sPKus2YPy`!#bccgC^*2Al zKUHo4nkqlf1Fr6VdvwZ!_qBkwCw2OBc=Ynfffiw9fF_O;JUabB`}#GY9nb%wwT_@v z@%`n$|7TtZUiu4d?|>FGICymb0w224eRCHh1A~G`FYg8y1_sBSObnpHPR0&&)aK!x z48jZy-*31|pY&)>Q88d}QT9<uFuv5BqN2gz(&?iDzNlK^zvx$628Qkntp`e!eY)8_ z|DW(-KIF*1jl-jtHQJeh0d(L(38&}(6CTa47)zgloEqTKeaNHvh(rA0GiN;htM0W0 zm93z;WsutvJi1w(K^H`WT3jwF5so`SM+|s$-}31`<k9`pu{ZG7f6+y@pn|r9#rVK$ zhyS7}b_@*7Ka5IPn}39tg0CP}@aR7OUsMF5N}}6E#RhcvLAQ&F59kC0;{%{G5MHzW z7u5o<VE`QjYJBDeFKCjgdk%OXs7LdW1d#L2IDqm*fJZm$deBAP5I1>%T+{2KqF{W< zaVO{qjsK#85UY4Rx<L(yPG;i+AmdMicfWw{z%oAbVjXB-Nb`|^=)<54@n3YEJp;qe zmwy=;tPhs({uhn60cEY$1N>7Cb{~Ws5&=5TqT5BK0JKZY2Q+)_+I_;O`w+O(^IvqC z4Ff}`i;6+(fl{9Tq6xNOp2=(0<`fkZ28cVFk9dIA2SCo17x3&XmIw!*E#Lemz_a_M zYxf7A?qA(M8-IdaQ4-$xbH+6Wh7$koEh?a0)SkW09L*^z1q_~@&KEqJlTR>!CLMh{ zy>~#J!N3AaEb2B449ztv1t7OLlsGr1s5mejcTsVPWMN=<3EFrLN<0<}uHENA3<Cz= z?&DAkc7cX=KxTpu)cP-a*Ba~vht>n2f%|?N28P#6#s@lGR9tM|Ff%Ze+JOu}H3_8K z_)_<Is0p(XCh+_h^@RkG3phwzz(L~R1M1Csc4upNb{88!y9eNS_JG}0lOX^)Pu-)l zLIJ#vB*3FN;Q@nZ_f3!Hgc}U5-6veSA?Ln3f;Ms;a_KC%0A67dabg!JJi1^07ZpXg zg5$sFacgvc*hBo`(tRGpFktZMKIQ`T$XQUAMB%^aB`bJP@cb8Tff$J55l}t?Z%@ns zl>h~xJ|bw3Vt`}ZVQ{|&ybcX?ctr>}#-ZypK=JC)&H5O05jQ9;yQ({Oe{eN^()^6y zr~8vn_s`v+H6_jenD|>jO&gc)!~aF~tiXAVvm^GoOK0lq*Sszrsn7q5z6Uwc^|eR0 z>vK@?fAFP3^UnbO*1L=h46WbzTdp!PF!VZZ1|9Na(EY=uGet$CHxP7Ow1V|#&+ha5 zuD@N4Pr7s;|1UZZv?`$chDY;{|E0qJMW;ip1KIMj1Ju6iOi?iaDF&J0(tRA9Y>vCA zD1fdT_Uu0QUo-}60%$4N|5DxmqM;BIltCtRy1w>k{{5f7#Sv5ubf5k&`rZQUow}F$ zj0_CT|5!?^J$gf*gI4Vb{`vpE^+1UXT;KoyC5ONT$!>@quh*MFO-fMb{poLz+R`gv z?_0XQuQl~({tsDY^<T6HqFfqc^Gs011G2dkEX>~u$`t=a-&=!9z24C8AgllV0vT6g z(&_pdWIK{s4q#0s!XUFs>ODZ_=z@hxi~ftQhMK_-a?&oa8KrwXx?TA_EM32s%6fo$ zXV$LbrNSQFuIwJxuJWav$6a58Hb=dl0glT_;P`emKHv#DGU@z(QAe=ZCFqgOWXZq) z3QBNf`>KOl823S^uJ+D>6ctzoK0)_Eb;hW0fXZ|S<4YdhH~)+7HV212PjiY&48t)O zl?cYy&i_T1S}-txPJL$RK4E>lRMWBf<bTjL@(Pfnj6uQE&&a^geF9X_fr{6IFIZME z^1GY|8Nkr#qY?uu>>@xJA^=jWK+0D&h-K`?2f(E%i17HYYGDDIbAF@Y(fsp&iQs=x z39zbC_Wz=BR-gz0oz4TwgphkRL5?@@Xtw(A2|DiNmPhx;5)qGXuK%JB%|Jc@X;TMj z1J{YJ#^8!lfx!oK!t*)D-ay9xqAScm11ikm)NT7;bf-B|Ri%%i4HQo2{)-kPY2x@V z+F}kVLO@=00A+U%&^FEZ!(exUoTvb*7<V!-Fff6R*>Z5)0V-KvG%_<Vbl+$_P$CIA zstV*|uK%L%OhHaB(d<6_S`TU>`2N(YAOHV%{{W{m5pX&?3RVd6qq8Lg!x@mLVpL#j zy+L-v%a}0GsmKAKA+N?a8$cbbZq^3S{mGyrrWG{7;n@AdvFk?j^M4+oQs!gBW5yEU z?&AkvFs)!L;o1?-z`*dblZk<$`*`!o{}*4ZU@Vbxu|8QM>ezko;0vx5j3q2Bw@cZZ zpZ|5~^b!D#6Gt&IFgScWuEpPSk%55$q*loB;7cyYZwDDmI9hJ=x9$RWUtLr*j4y$U z2tkNn0{@Gen}K3LfxlG(<j~#_l>o2;4$y2qs0iZzFDhcj!0_@XxWG8^U-X*^sMY48 zlF}Wb65!J9qLSm%4LUom(?!MRwJ?b70TOiqr9zwT5EYG<+a+Axrw+d4`gV}9)TA>^ zz_I(JWA_D*gO3zExG#Eu;)wyYjLk#&phssIN4JlPjR*HZk50Dc=U4e#>KQ?2TyHxK zib(~>=8ue!*mP_@DB#(B&GFzv(HEe@3BeJo0E$=za8l;`FDhyRidg=ZN>FY&{1SB4 z2q=CP9KIb_<8Rr-0BYcYS}UNIp9UzUo&GNx3D#4p`CnAtlz{;y`i~idi~~i#i#a&@ zUp@nuWG*Te&Cl<4gIYD6Y~V=j^b=UYSQ5g&>mgUMyCZl@ILHnKkM7fuOz;_El+u6E zohEQw)`1gQ0z_)zf6;qpAX{8iR65;6Ub8f(i7+%j{|#yVIkx;P2?iOd0WtFBf6)aH zeOmuT)8Iz(w}2<`L1iQ-Sen1p4HVF#%^;&e@ng{Z{5fc)Ww(opMW>rY>;F<4aDwLr zyXA@z$j2o%#s@sQdqK$-RL*?|r=&S5pmdG6BJVNyv?H)yNM@M<)(Z+PF_2|Dj2IXg zUhg;qu8SdMpkwy|pYBV>|3T+{b=IgDbYB29qBT6bPq`YOgw<y*z3%M)MZ1j<g$5}9 z8-oL_J4Pj-`#7YC`>)z=%)kKZV}aVIpfkiEm)&K8qNvkF#RAkn<@4wk?YIsy3bd@8 z!=sb63dCzZ0y_IkmCuBM;lC<_3D_7&2M|mm#*;j(d3Ro9U?>&vICxMX?fb$1|4SJU zdmKC|@Ny9sNEf(m46^$*Kd6*GD*z5YVGw&O=n%8k10~NvTSGuC-rxUA*j`-b2K7i< zkN*9C=H+t``wXOgt>Dqinhq+MyKj1QGJZS6Si%K9KJ3Lc(9((S!w^HxfXek3$-H1& z6jMFASyT-`-tG3_c+KizeWFCf_`nAb{*AnAt}!r_zB7W9`x_Wve+Sh?&2Kbbs6+I! zzbN8nV0bP0g8T2^|J^5EC_o&}Vszj&`wK|{28IocpxOf5PB%XJ!j_SNq2&PoRET*n zvy=ruqNN~BLNCN19QGHy0t^hV-yrFK@tdE4;l($8xS=5Zpn4J1WQ9!jflF}D?w_9B zAG&XObiaJjzytDPsaW%G#!^9_?qi_5de#HfR(b_4i$YW)y201Ff{Nqr92E;todDSu z{nC#gQop^h1{+c$;L*#w22>U|AJKT}4{}Qy<G=r{2TECA_=1%l(SZ3g5Xyh)!Oy?| ziCg|{tm#)l*Rz1z3H&aHJ6OZ7GBCU_;$mQUp~w#p0g)FX5DusD$rqgb3=FSdb-`i{ z7RL>?GFKTu;|ite%|98-vtG>P26?kYqxE*FibpRm8_3{=d?2w>kgNGX{E1+GiJsAc z*T$eVY@VQ+vH8UR&;0eQSFeDQHtW4B;3Y?3+M|>8`4t9+W2_smFfcHJqd_71@J?1x zFW(NF;5?e&NceOg+~FI=z>sFidUD<0|D_ck$-IBofd=G6cY-M9Q;n7Zt_%#N@jJMg zK*}5?N<)0K5Akmg6!B<2B;mn)k$<}*n@2BCgHJEdDUVJO6;JDnB@*3UJU-S3i@3U- zIG7LmSRW|j@Mu1y@%p~;C6Cri;FKcLT&2QL3raIw8yH`+865x}#Ou*~MB*?cyt{6` zXy#&IFuv4!poAM#=Xtb?-n$HnQBa<RsA;ghe3^lPq3dP|OUtEFo)@!t85p`wznIJm zO=1eshY{sMv+cUe3=E($r<DCg7%u|@D63xf=;fVpnStSjB`?G-4}O=+kUlwBGdQ2^ z24%hPH>3}IzX9sIgAOfx$^8dByaTHH!DX7lt_7ep)63fhvP9HG4>V@UyA@Qhh=zkW z-8VpkNTMFSyf46lPH@4JdXHYw&*0>I`oE}`E=Z>+GpG{oKJC%{<G-jmNT~IHi72Qf z6Y%J?^#g@NC#(Nu28P#iuEr-_jSm=~gw!vOL25f$|6BskWR<8GpM25r7kuKrq(?8W zEGYIhK;G$&Q855F2NmKE?_>uFYjT1ceQz{8dU=mt0`+IhL1uOHZUCEgvV`rw=w8sS z2~fKb68@m_yO(zcSh0~V14FYigGVoK2biw~(hMqJUxJ2`kkw~^<(YID7`j;_z;{LS zhF)S|=oaO_!NBnUKqss783u+<W^kz%!2qhNSwIy}H_L@?R*f?Z49=Y_jQ>SXL7bux z{W60AmPaA(;Q*VzNQZ%;*_xqLu$lY+Ym=QRATKt7YNA)o*8fZ1!%gqzopBv>lsm`{ zk8Y6@-K<AWGcY)IvVbz)-iy!#=kZ@PQU?}3-K<wZ;;jctggknAJ3;K`BN`t6Rl^KG z?IYg$i=fbR1Uayqw+JC^4l)5&26%L{wqFF50iZ~gb?H9n(JSf)QrpXG4x&Io=kZ^a z8DwNHuL;=5YoH1CZeIC|3=FQu2f8o+7kvW~>E#tg(y>w->dw|nC6>*v7)vxjgjn-0 zQ2P?prv(@2FS369|Nolxh4ruh|M|B;%5%@|3n00dptDbXTMzJ01rNTw1dk>{%IOjn z0nqdqWIR9t(t<TU`Qp|uPzvL30mbx-#Gn8Fcirf4QE_nC&e&|L2pVtYZw2j1JI*S2 zfdO>96T^!&KS4T5{9k<L0NqOsB94NV!1juM0&O+x<-M)X!0_S_C%6dIeBlXE4qBbE z3nDKJlApuLz;K*(&v^#WIXesvM*q7`zu5Qt|9^*;|E2aXCV&hC^`<QtN>n_$PrTs% z4YpLmr~BA0(D0sT_c@PlW}j}}d3p>Cj{h(IXJx&>zyMj(!USshfGd>}P^D6%0_tce zIL1LU%O6$-h6%9x3sh?vICTB&W<7cy<luT<h-OedWDtM&|A|i4HRl-^Ubz2&hKxe9 zEf>hqrRFc9fBygfVjE~DgenIEL$m6qbD#q4^o#Gm{{J_=<j{5gh2Zc1|G(XkzTNzo z@kQ*<|NpxWzg`5%vE?8~OgIA>uTk*nbdcx_5b)^qfNlJ709B)){fn)aO8G5CHO@0I z)Uz8Oc=?WjfuYywfAbH<a#xRT)*YZE)_S0n>$nT}lsbmjBL79ZLD};LWKa##V)p4i z)_omxPWFPo|NnQxr9i7s;8I7w{Dn$2|7R>UYduhE1g^9}+E#*Ah_`;@pL+1cF;M@g zo7Em-aS0zx&3{o5T?U5M|0S%=|Cvi2;Ku49*;u0K(ap*V(OJsb8^PEaqhjz{1g7@C z=tUh+Uk~K+*KEeOL9&p;IYDDW4vwJhM6h@RtuGP)MV^9Z_YY8e<74wL#!}W7*`WS> z_i@l*{y9*$!2r~#umH8Z;$QavgOvNtZ!~<n9W6Y%PkDA<e8I~AO*f$Y1F3UdyCpoj zZ#gzU{^8So((xMui%<8(5@E+~2M*ul0G97Je3&nKB%kn6zUY~J*sEJaz@yt)pxcAP zquZI|n+qc|e+f7LHWx<b<_8~qm{0f^pYrTJ8U3>K>;M0-c4GHU<CFhIl|f4<K+Sw1 z4N##Y1LmIC#mT||%F_zb9{*JZKw_OfDjXioZ!C6#HoW{7Wzhg7)Dm{^F!xzak6zwg zXBik?tOPeAL2c$v)`jOl6%mNtd;rv7HU#mzS-U_~C+lxe!QBlyEWMNU|5;Eryn2R# z0c7oQ*7Ii|x%@cmO(+YzZN($|0H}Jn2-10+g%Okk5#rsvk;g!77#|h|m>{D^H?Iv$ z(4&`ELJu^r2ueE5M=TD5%F!@T<T-%HQ+|WDXKen#0NQ8dYJ31RY?9ys8WMX6l4(6q zVhI{zv|s>rCNn&`LsSxcx=(;sWf}N%9|H*%fH)e)CqY%Z!hg|SY77kjk2n8ks@Vwc zXT*Wq5+2Qo0t_C#tY>sVj&%f$>~91!89llW9zFwVmwSK=Q+RO+RLk~?9-adVMbM=O zvsoAz&b(X;A|ZVtM3YwlRDbg?a_K(kYJA(J`;uehhrE*19LL5_nR%(6F5RcQKY;3Y zXGT}<3;c^58$Y_I=9PA`sJL=p?2J)i>HZ0d-Odmdp3-QKW?uE9px(>}`~UnN$65J7 z1#bfbgY5w}Murj%+XOZyh7v{F0uUv|y5Z-a|II%X%2hmeGBSW51A_<u;)BH^F5Rq^ z7Z?~En@=#hbh74MU|@L7?$XVg3MwB#tp%4}kKfiGYSfHR@-OOSQE}-8Wi%F;Gx&Es z<}BuN<v!@r$!c@~lsFoWK$3(@CvWW$1_u6J&qer~CxQknI(ajWFfi<9V_;zDlud-l zNf%f0?|Lp%Tx@)jpAkA*aKWQ91ayp<i;9BMVXMQX;oYppM;I8IPjDP(RXW1J02%`A zWK}rAz~K1putJGN^9hCHtei&}7(gxFPFD6K3=BIM7?>}(DBp0gzELUx>H{mNJg|9C z%G=EQ;xGe)L#OP$!=U;*MnwZuewTm;cm(1P8y~P_y>pm>fq&|O!_BIx=NT9nAmdG; zps^kY(6ZacHwRcjbvZP5EmHyKE|%`oXEk?%9QNYKe^7Dm(d+xcamNMF61>UaAs62d z|3w|a`%>n<0A;=2sW(6?_qtDm&bk-X2g$S^D6xU1+};OZS+F8R>OJhy+xr3}(dh%; zN%jGhkQG3M!#B{%f$r85Ajw`(H>tA~WR3A9k6y5#;||dJHV<(A29L$Q_yZp50ZW1w z<|Q0=Q3()bU~o9@q7njXJNy^DqzoD~V)W<*Ekx@C6#%`iA3*mub-Ji{fGnK|vb5Jn z#o@nboiZpKN_kptmvZ!aFu&Lb%DmlkR4%ZBFDU_qSuA9XULn+@`weu;HQ*5F4kx2U z_jPB2S~u2*OG`YOQzaNYdVMASixz>5?{<~&=yVnMFB+rFz|eib!w|&wfUtXg6(D>A z5Z@KF6Hvh8-~$B@V^<Is@Gw5;u@f{F@*lK}S^1#HPGf{s9{er`Jvv#>g6_oZj#2UO z_<q5olXV-2+k8YJ_OM4UZ{b-629N)$pOirTeve+>#Ip<xFF{Aid-SrVo&}{1Q2+Y% zfxrJfnmJTnJOh;j%^XaSn!%%&b>>r$8c=%*RC+0R^vcR7g31V6i9`m5*FqlMpi5>! zjcpE4!PR`2!^8T1(Mu0dgB@H2LDC*f?`QDg^R{miQ1zYxt^dKI7d)(S=FFM@s<)Iu zrNkC6xeQFs0Fzx{vIb1P1Ct-X<S#JkqXN>^2PPZ9WD%H50h3{1(gRFdfk_=ODW?Jo zs|}2Y&p_HL93Gu$b4v=I-H{d^-Jd`kmAhYp*5h=a^X&fV)9cLgVgqP2)|Evi?b{7- z+ssw^faCWYF3bm9TAf)+1bw>C`*t7m0Bx^7`$7d2+Tfr<3<h)~8gDS~LusV(o#r<J zKAj>eKA?E<HNNfB8=@lNqkX}b-|2FyPq&P!00RSqul40(u{6iVM+_f)duKCz`2XMW z7&Az;^n*{gh>A~l45*GhB5?S>s)-UPoYcUi0GJd4lUKmxHE`O2Is%D8xaa=^Bw;uc zNnZ7pGAK-8QXaispz+L?DO(`>za2pLRVa9LzuE=rL3woh2E3U1_WyrS0s>vl&=mk0 zXWsr0v|p+VtfKiK$IIsrkogiX%O5}t1GSfWyFd;1mo7U%V*_2FV&kO+glzyaN(aIQ z8>;|egAN&dDFR_vfYfk6*r2mBU;fz+HyZ2(kM1teK>f=n+rdr%tG@wa_jZBJKLcWS zL!5nJ```a?|8=_>G(TW$Jy0UhoNDmTqq`S$SHX+9Amz{u+XcGd@MSkhq_+!fc|C*; z_Czs+Z2@v%I)n`hkC)L<HX{SWOMeI(>?mgl8#JQ)(j3ADdsG|32KAL*%0t+ow#Z9i z2pjAMb_g3R{(BoZAi;XyL)c(9Jch8rZnzF%gYH~>c^b+FxpO~+4Yq4Dgbnt~atIsj zw%HIi*uVV{HfUSK%Vr20?4EK68|<EJ2pjC4cnBNpo?r+Y>>hUr8|)ryC>!J+eFz)u z9%Tp{>>hCl8|)r#2pjC4|69R+2fODpgbg<HIfM;%&us`B?9THLHrPFfA#AXFwnNxp zH?M}U!ErPn!Unr%GK39wPdkJSc26~g4R%jHgbj92@>X!d^yr49@eq(ycNb`~_@xJk z-P;A4Gkj?SVt03e?n`=U0AYj0RY2_Ct^!c7NI;B&q;F_CW`T-fre9u2`t>b%k+20+ zb%1IcuvReP0ZscX>%sX0l+Qex4{E$L0jY(^c{CsNc&P&7L+z4)mIWXKJfLnp0vgnV zu)+GjYzCVL@&{P|lg(i7pTX@uix&<cJ7AeB0pwFXkVr2iG?c)$dUQkbZ3x6ZP#y-` z*8;H*%J+C#0=3TrsvBm%M>iy#Lm=uwVe8R+P~l|@Xm31Jtp!vs*ndzzt3bs-<sm5R zifl$ND>$HK#dnY1UJlSA_K%xj!R^u81x|bKIYBp}K-iBVY|zNY%j28S4P$COPy&j$ zzaG85884Q@O*-QNb&m-r<PHdU{6YK!4z(X3<xq8RK<w@=u=oQc_7x=diA|8Wf%+E| zCND*%L(E5tuK;*?81T=dxAy~RY=IYK3?#}Rk^iz9Bm!mUgV?=Y0bC3WFOwnc4<PpS zjo^HG0mMEHVQ&Dj?ICI=fY`<mb^(a34q<o5FfhEFy%8m>0-7Iy!b+eyHQ=vDZ?6D1 z1H+3SAS1z!LUlb0B!&WhgA{^BhWz0QJ$kz~a5FHxv;~Ruc1-}W4I%6T5PK<v9ROm_ zgs=@j>|O}_0viLvOGXHL1Bm@~1K5WLKrZIY0`07ZB;r_z8Ur2%hL?dLHZ-JMLG0eH z2_SJx5F0A43u5<neE^9og4j@TQ4qVgD}a}Q;Uy=C4Hf?jv3CPV{3D1B6@Ln1_jU>J zF)+Nm31UOV&w|*!T@yg!2O;bN5PK_#4OO!e!UmU;bCK8+LG0eH4V(-NFIz$E?k=#J zN)WrZO8_LE3t~gX6CrF+k?=AU#P01f;AdcX=?P*(?Xm^2d%Grp#0^1gsJJSK-P`p6 zBrXYJL&bSP?B1>b0Z{mZ*iiAWpyI5zYXeC9C5R0bzYAjbb_obFFuc47VnfA`g4n%X z1t9UAAU0HdEr{LQbpa&45X6RxPX)1iy9|Utv+5u=RJ<0%?(NzD5-)_XCxF<gAU0G@ zB#7PH6#z;be_OyMLI#NK2oi^?F-2l)BC%zW*n$u?sK|TC3S#$mO%MUiszZuKa9q4a zVm}12d%He>)LaFzq49DO#P00^b;n-r1+k&x8$s;et_`9L3@?{L*egKp<eUOd&tUU= zA>tRL85mwRLf9KX>{1XLYEC8+I~Iu@2x9kkO%P*Xc<BmaL)BY?*u7mJK;pU}HdI^@ z#P0115NBX`DGFjk#W_Lj-mVQG@xN=q)ehKgA3^NiE&&M!hL=x4Y^eI1Aa-w80Z9BT zhz%7#2x9kkT>y!11+k&xD?#kuE(1vhhL>|eY^eA|5WBZ)0!X|S#D<Djg4n%XpiQ1H zb3tsVcp`}1+w}pYJ`}`;ihF|Cy<G-Upz;UAhKd`4*u7mJK;?-lhz%8&1hIR&1lSoE zUh;z2P;o{OySK{#B>r^`A{<_V*u7l=Ao05(HdOsZ5WBal03?1C#D<FR1hIR&CV<4( zg4j^;g&=ls*9MUIR1g~~-U(v&c70%GV0c*zVnf9Xk=Ut7>_{ZGFB01kiERpE_jZAX z_+M&**ibWNLG0eH51__@AczeWX9cmL&7+^I5q^J*#D0jxz6xUZLYiMEL2RfwdqM2p zt_>jbH-gwu@uf)YnILv=*9A~G@PgP-HH{#4Z&v^~{jY{rsj&8u$s4evK!qRZgt?a? zAjOc(?$LbE;-w1;KjCFcAGl!f06FBv9!OmbuAia(84-y33XnVpgbkXmdiiG+)MAig zQ2(mC3v?Lw%O|VA_Jc0Td3giG?(G8WJp*EQcY*CW0Alw-`a)Yk>~2VVa|M!_F#k+} z$b<EDfY`lV4xj{317bt`^|AoO?(GU-Vqkcg0%AkOBaqlWAa-w80!Xg|hz(U^0%AiW zNCUzKCk7c18>&VC#D+#X3xo}hxF0LQeg%c~%Qr~u2T1HID<R<o_s=W19&r3@L8t}C z&k_*77ZOepyHVl;9F8p@`R*=o98^Hf21S8KFSr~0G6gDz)FM%Uw5LRyQx*Psbo&~3 zG#&)?8vcuJ5QIz)f;-fp;vLjN_4u#a0TPG!-Q&ONCP7d?-2>WhV1aIRMlv7Te+4xo zLFN~{c(4N2AO*P$f?@4RmDT?ceP3ALUg5>gyGVU|@Ib)sf8c-uu|1j(I=u9L0|`io zaiI1oSn9v37if73v=wT$8Wv)x?gKU5K<@hs9!PM&>OS7BmlzmcK6&^b;XZiZ9HbZI zH;Wf6SoDIN<N-||PnLrlWT4P|c>}_p0LnXOAZ$>-=jDOrC{0Uf{P05KN8`l;kXmrN z5@a$2L;EA(G}8c*hxAW8nh#dIe9!}~C_#35G#&(7x3?QvXa&dxt5AdvfP|K#Xat>C z_)-PQ?8buupe~3YickSa=-)DM<Unl%tzmoV-3<$Ru!B8%c{BHblGj0wmlyg$$3^f) zLiiFdADjb)5wGW7sQd<qyd{J$@$vvj9@=M}0<sC3A38v6Xuqlk#D<C&fY?y+lx0X^ zyXypaG}u?+MdWQ*`hq8nU7-Br(e117!Uits0X0Q#8A@V<lyBfJI19)wXxa5+DL53s z0saQWhKfG`v7zq20%AkOPk`7^@jW0mRD1)74HaL4#GV0SL)G+v*xg;=m}~&Cq2eVV zHdH(V#D<E;fY?y+01z80?gC;%#VwX1eCYwLTvQ<PpqPCrfhrF!^H@Ogy<OlTiyuqC z{s&#B_3{l8`vHjE3mFf)0%CV}fz_NqV($U5p=vgO*}Rpzpy|P(7o1))A$*CK8_pod zDKy#)UbNnX#VII$p!x4e2RPw_`<4+)Q2YnZdoEzRAbooaRC(~2hYCa<oINBUY;aic zK-ge27$9tLdib&!90s5Q_2ml?ySEFh_YQ;&)_VcM2J1ZnVT1MVSd8R8Sot~^<afx} z!H+rMsai;W>I_j4fQ^ZIbcZ^CQ?A<_&;ie`8Xn!D1}{$bfTn1SPrmr{;{Sip+&)+% zl<??=)Wa?i`$4lPFIPaq3hZwkh&b4d3J^9pU6-_j!xJpd0TPGy@&7CW<zYyA`~YG@ z#h-xK(9-w@hz%7#17btP4=e)5XZI_QZbsvijTWp743Modv4;`kHeJ4;)dvc(FW21y zO&P<y-sP+CV$QAq|0h63f)VP${Fi@kz!V#Rx2Q3Kj@|W9(Ev@o`SkKGy9*Alg6_}^ zk8a<D7j`!wCK;e_pF88x%lmLE1H;QD=OJ<A(aZZ1#GiuT{{-<{5PZpP3=A(zVEpDc z8Xn!EzS}@)`j<eFxkopz28aXNuX+%6qAIQv+WNRbiz}C0`~M%bP)@)UvMTP!R?u=d zkh2&dlQGb^1yLToygxzqZ+QkOhC%M#4st(?4{?v_3MBUkfH*|C=O1W|=nE03dm2n2 z?s>2r<ernuK@)$VHB}&Yz%XdtnMb#1>sBQD5<ncH?CS&Dx8y3+|4{o3!2XxqirYTk z+AW}EV<$_zJi0|2L2U58%O9}t#(J-+GH6?##nu1dV?2+unr&eK1JJTW5E~rS|3!a; zR+qticLtO`PJ-e;#1)c9LG|4h28Nek+Tnaf5dR5+4|31Tkh6dPL)MbLb_C6ob$f%B zCahZxnzv>2=ynkJFM1KQxvcvHXjzpY=-B9PCeX${hX10V0~&XM=5au)a@((f4pEma z0qJbLUAh^R{-Y0rT|P<-{Sf%U0-APbVBlbd&{9x3LI}clgVGvMS^!EjK<PJv5Ouep z^f@Sf07|cc(zBp+2b8XX(jTDqmqE>Ig3^ni^bRO}4oW|R(*K~enlQwEJ1Ff1r6Ztp z0hDfl(o>-H3MhRDN?(K0pP;mW2*g|!C~X0yL!fj9lx~93GobW3D18D-r$OEM0P0Uz zifLhkm_H9n?}E~|pfn#lL|z9<$3f{fC~XFdCn#M8rDs6tRZw-ip!6gjh<PPYIt)r{ zLFsqg5cwrgIuA;#LFpY(bMJ9M)Xjj>F;MygCq#S~lrDqPEKvV&a6sghpyKDC{0UGx z1WLO=)x*N+6EqzEK<O7y`W}?7;f0u61f^r3v<s9rg3?k@ngK>bEqDd>Ka|UG2u=O~ zAH@6%P#UIAj~^nQ0i|o8@&!;nOkEHfpG_2^j}J=2)V+Y}KLxeF56a&HrE8$(*a<-N z8$oFeC@lr0nV|GDsQOb-dIgm3gVI@0b7A%?K>1csS_!I73Q7w=X*MV=237Y7N=HEH zUr_faK=~h_{5B~650r-4dk@NA1*Ku)9#DH=d<!Vw0ZPNfH#}u*0Ij!y(FYQk!2Abj zG)#RLR2;^a5oQ3ZXApqU0#I53N*h4w0w~=8r6)k?15nyQ5TgG8l)eC^8H6C>0#Moj zN;^R54^Wx`>J9-Y4Rari&Ip3|3&tmx289(^FC!ylp&6KiAmH){p<%^RWT;@!WhiE- zWGH6PWk_L2Wk_R4WGH3GVJKnHWyoR3XGms9WXNGih5CBKdPul$@q^Hi^-u^hk)ePg zlR=ju7i?ZRLncEWgDyidLq0<hLn_p!JceY346x~j47v<P47v;k40;SH3^@!rP+J%n zvKdktiWu@3QW<g>j2VnD<b!ikQwyB)^HMTPGV}Ao5{ohulX6m>gJA}QCuXNQ=Hy_g zfXTz?05xWCdj9~WH8w!}H36FL3ZV3hjo8JL5>pfsb8_;N6G84^V2Id+U0rBic3ysY zo<eFxa%urYDcA{M{Y6EIl?r*O<qA2edFdsfF-C^slA_GKbcK@qe1)9+ymW^2)V$Q9 z%w&e*(&XgS;$nv4%HopLTn2{Z{M>@llGNag#FW$`1_p-Ayt2fc%oGKv{(}5sZ~!sP zfcoo$C?x+CK<Nf3{XqmG?f~U8K<QGLyNinQLFT(eI5}UwcWBaDcALxkpK`XWESw5D zsfVG16|!K`gn@x!0}}(o0VW293rq|QZ&(-@f?QnPN|+!kEkPZ2P>F2=@;z&?GiY&; z0~1J%p&>|2f`NenG>8BiWK>~bU;v$l1yVYP0b)LAxhE)3f|}zXaS$7XLC0W%7Hq=g zLAx?Q;xN31fq{XOfq?-gkFMXTG%YQ)$bbPt8$xOS(h`Q%t3h^y%mKL-rVr!?kewj$ z4~z_;a|=Mu0k0+n*##1pU}6AWegPK;4b+1;ATvOVn9qO|fldqg4_Z;k0N&6Fl2>uf zNzF~oD*-toq_QBDp@JbTCqEJ7l+~b6gsis(sl>$Aj0_Bw3{?!t`8oMT44HW#O`u&4 z`1BMpGB8+zw#-7^lL2Le!Y~WU1|1TZ!^pq@T5ki26Hr()f_=@xFbAp+*)@iY3=A;; zg3JN=*9EE$R9b-4!f2Q}LgC_@nOu}#oS#;rpb@00;NcVOqX0?w3eNet1(`XiMGBUB zMwWV(rbc?khK7a=t5>h~40iVexgBI5i1tV02Ya|ih%hlQ1Te5Nv@$R-WN|PsE&@eo z0mwCw_=E95&IkEr9!UOyAjn8?{KhjdFbOd*F=Q|>FoFCzn}LA^G&uoM55mhC7`m96 z85){rN-`9Ibuch+F)%SOf)p_@Ft`;#>{`yi(9NU_Q76P807`CfH88bo1rTv$wMs~8 zLH6NO>x85h<W_XG3=9k$FgLm}LEPoWB+%f<0I41Y7#P?=ZUcE9Ngl*y@Md6Og~@S2 z{fX{QkV251p!@@(L425>43W&1g6fBvBhSFX3}YjQ=O?&2r0}eRxO)@SJ)kgQfX3Gf z1_sVgP&UXskQ~e%ZhR1Zq6`d-b_@)R!6A+zQ$RNmfKCMfITRWOpfmvGLgEO<A%X^l zIT6Z;Rst%I!}f|AEz4TX$Yob-@St;XBgjuHm_Uh?fdMoS3UVY169YpC69a=|ex4<0 zO%ez*F#Y=v@*k+oW@G@Bwjk9Ytir$uW`oQCnFetVBh$bC@(c`2tPBhd3=I4eAZ$>3 zlYas$s9<8?Z(v{uoxsHKWC06ED+7N6Bf}HW81w`Nh9?a$F=nvXDzF%&S^((-$;0$9 zA7Ehk-@pJ?_XJcwGchpm8~~ZY2rA4N_#ZGbJedG0HG@4|g8qQ^@i8zm*fTINL^3e2 zxb=Z*5U>Ln;u#p2iv%F?3Sxf}faIT41_tI&piRpR3=HWE3@jiv$fqC-%EutujDdj_ zBo6Yun;b-+1p@;IEX{?9Ld=EP2hwB2z`zBQhlzvqvq9YeOJms7fzrk@DX5vyv<S+N zAUA-_hUtZw3(7;FbP6itKohkf{h%@qv^oN0CkTVofM|Ah1_n?b2C+dHBn~o@pPzvt zz(3eC#M9r8!P(!(KZs#9sEqW1rg>cE@iQ<m*ntd!<_WlY3=B|Xg2UniV6BhUtD#C6 zK<V{}<JIGQezMcT-#njly7mibW{UwdaSh5>pww5xz`(GFfq?;ZL^deBx`4KOfDB;z z{~r{ypp?o0POl&q0y8rG2d7U4Nc!9WPAeSXw6y`2RzP6`Dt7r87#NZS7??rn0c13C zdO(kNkUT7$LG2PyxPih2<Q9+|2!s3&qCw#a4MuP{>OjK>r+NkkhTyRH5XT^Q*ARx) zs|(QDX$oSHc9{W`J^-cB+i9w43=9fYR$wP7R6^(qD+LCHSS|(~1qKGLXa$C71qKF% zSOx}=EU4X?oLF1}a&uZ@PBEx`Us6;Gq8O|clo*tB6qG=6S_}*fsTG;UCB>k&W<e!L z41`Nki%UW>ic%9n`(qgx7!uP;Qi~LdQxl7lGyIcFic(W`?K1N+OEMF4GOJP<7|K$M zN>VF4^V0J5iZiQHH8eqvU|?W?sC6w%%>&uMz)+B%nOCAvo>*+9P?VaLnp~2a0ui$U z*~-A60I?`7zeqs?q%u>%R>8npAydId0mBMwg-mU2O^80X%$(GCpZvs>c%S@qP#VoI z0JX2vGILTD(u(qP74nNR(=+oDa};20d58n`gHnt0ON)|Ii}jtI{eATVK<;zS$uCXO zcS$Ts)Q6bPzz~uTX~07}0uap%3=BnydFiPUa4v)&iN=pY@Do$AN{dTCtv@|b^f4gu z!Lf?O2gkMoIKYY-lJoOQ5;OCP!3ltYfg!oHs3<kB1mRo-TZO#RoScFZP%EB+!NtcX z-Zd!5KM2}maxO|uECGc`PGWIYW`P1IW>bq4(h@UsQbAGd3Tpp@(i2o9zaTXai}L&; zr~}edOTfluq=Gso5LbfC0|hk>E5JbsYRMI)78j?cK*A(AGd(Y{q_ij%!esz^s8}I6 zzcjA|Bov|Go0(^&z!0I}n+OW9NGLxN%8!Ebqo900N0)d*OAF(8BLhRj_|OpF_^AB6 z)Od!_5MPC={Jd1C^BIZ@5<zJflwd*DfaF06!ED!nV0VyXK{QwZREI$Q3yuyVybB2z zUAv0-;^f4f)cCZ-<dXa%1(<ORF!?G1@|8H`LGcHQABcMxpyny0<fj%Z<mHzrK+}st zep*^_Y6)B(T^Onl<W7i6m<wU<tBl7kUWF!JP?VaSS)7@l2MRa_1_mQd1&k!BYlq0f z(V4M&u+D3=K`hK#()1aUsm}<ZFE6#+H!}~BfkFJl3RHe(9wI|S<Wc#Vd58=Skw@^c z1Ol|!j0n!iOarHJP>|tP7lo=WC%+gJ@3`_<N@{UQQGO*(B}u7i`9-M;P&Z^&r9uj5 zNVyde33oW87{*Wr%b%Hf#h?Nonu!@e<zq==jzV63N@}q}GN`P9X7Hf={1T9;f}^98 zlLDw}fMfww@mz2o2ZaNgI5^LP#C;Ph6jD+PN-`kY85|1=it;Nma}!Ha-HY-|^HO|L z%TjZolGw^eUAywcVz<(qoJvqFk(#1ls{pDGtr-{?kjqI>Jra;uk^vs7$pF_>3OT98 z#R?@Esd)+}4B$!=)TaYgEXj#^>Lm(EsS0Tz7bs-rLF!bHdqI|fBB2Cahk`0RkaT%| zQMQ62Ox`y!FEJfFsspVT!SzmYNIpn2YBkCL63Wa=hkFnl#vluz38B0w6I4M%OK%2- zVrY2<$;S$y`V^~5v~nJ13`RMh3aTFza#M?o6Vp?R85n$BgM%I2UE%J5*#|3+Kn8)F z2jeHBrdyCSsJehvKMa`Z7F7v>cmV}&aAH|1G)S$iiWAFH-AeP4HK6T-;KVYJb8tlm zLs=@ge1?z5f#L|XC`e&9WW28-9nwylkOH9%wnM}Vm_Yp_28Mv&P;n^T@Dsvc@B=~{ zLB~@Kp!|lf5OISq5IW&Agbw%wp$k4j=?@TE0ZLzZ58*rPfY^^dj+wCqyZ8jCxPU)I zKWyByVHZUG4HJkzK>h}e;Vsw<5nrGU5pRIf209S_gg}TnJGMg9p_^-9Xk=_+YG!U> z>FDI_;_3!67la|jjc;mhei68>SzMA>RHBfdrceh?Dc~FcQkR;Sf+3ohp9gNgg5*<D zb5cuE9g|^0tq{I{X-Q6IYEdylTo0s}0o*<X)lLdV21Z7D7J4RnMn)zk<_rv=bQPbM zm<ux)#8&|Ep()!rF((J)5Xa)mJpY2!JRip>kP^3|{M^vI%#un4co~pdk(yjulA5BB zl$xAaTAZo?ZhL}^QphY;$jnR5FDgn+h8OrycTr%zi;oYuTme=0Ir)hxsVNFjJ8~)^ z{_;ck3u+w$%svwRg4ZsP*<qkj>BJIPFfzdS3I&PaG8@kKbODEKNKvIi325v)5mJW) z6y<|@1M#51jRzILAVV1#7@*=XV;Bk`>fn5k$3Yp}$1xbxtOdCfUIv1UfVESR<jYcv zz)2ymG&c#Q3<9YKwVQ)O9D_m_7#KiBhk`~@X=Y9exY-D5StFYRQV$DHP~j7jPeSSd zxwJeH(pUp|0wwl9CPOgU<|DEbB8h^lDTulGc`ikX<u2e{1Zi_;=D7!i`hw;hKq?U0 zb?wqqOM;O)ej1v(c3|n^kbH;%NOcv+RIqvAoUBluS&{*1EyEQnq-7Qrmnft{#=yae zfq{V`H?hJqFC`V!#0Oc=keiu@!Uqe2)Ir4+Y;6^C5{pY94oLBZ39G3oz>Gpy0<}Rw zO%38AXHXv_BsI4HrV#AzVz4mCez4P0lJYC`iZatPpcxm$%}GVH+dzCIX$EjVN<mQp zF0P=jkR1kUD^&z%R;4P~LG1?hFhlZ#Qu9($i;&yJ(4b_1lxK*3Gnk*5pQlh<kda!H z3T{b(azEISu)twpV1S27W_}*nLR(viS~WF9cxC42Ij81<+6%U}3dvxWf0|QKX>kUF zEk%HV0c;9d9~<O6h&ZDChnj%EP6T@;D7COOwHT>i8yeyZ>X;!4Tu`P-PRz*xm9(WL z3QAA~N(%W!`iXfd3QB(YMI{+ZpukZ`%`GUY1h=>RK#oAv0}O89mItT^0=J}6p`!~5 z#o&oHJxuw6%!<?;xHMu+4K&sO9#(@`fR_G~Qqwc@u;v12P!uN@rKaW;GbE;@fQqry zypp0yP-CVnGqpSbQr2bW=lLd<6lEr-7DHyQib4LsCl5_Tpa4xy%uOvyWMD`GjeUTP zsZan7wIt^kR4Sw-mL!6L0Mac}NCMB1=|F=5)HO!L3&eK}Skni1WCY}3g<Oz3D-;q_ zK$Q`;l!RM9v|tA%al)oBFhIf$Ttt9^tF#~`u_V<Q>{*bvi40E$29UEc!x<5Pv0&2} z7|QdDa#BL_!!lFLA)y!z2@!;|QG^+az&RT-76nq73K{`})_ov8q}+nFR~Q&lGK)(R z^O93T@||<?i&Kk1#f?I4F+)gZZmL3YL26zJ$eXCTKu!baBXC(;9Gw|UT3HQpM`>Pu zQA%o2YD#==Vu5~fY6)UW8YB&$Z_Y?8&QM4yP0mgQjV+Ysfd>{D7#Q>ea!S)P^NNuM z&LATCkebrWL@y;Lhk*e)(ge<nAcH|w9w@=5<m5oJ2c(?<H?P9NEZ)on%@hU(1@HuU zYD#Jf#3&4N5_3vYi}DgnGRsoojRZ)!Se022pPpJ053T<}t^k*pAaO_`fKZp5lbQ$~ z%7Ap5!1};lAc!uwK9G6kiAA8HGKdURJ+wQ6q7Kp(iwDOTwAY6s50*fa29@U^_krwz z$b(15;QESFOX4BsLac|W2Z=+}msA#{#wX^b#DfYPxW43!)a2~=wEUv@%)FA+^wgsG z{Ib-dw4D5MRC5wbOY)&3JrD_~|KR3BMB(Ow#FO*$i&8T45=%h+M5ua@`>~0G)TgKB zXQx(z3N=LdL&a0_OOtX^;|mgt5_2I6pyom46N{5GGm)iX{!dIviBBvkDauSLg|tbb z`at4kIYn^y7NzFqm!-yog}`2cs)MA5c<3l$d?u)Af-GN9lv<oxRF)bKUbg`rS&awH zT$d*nL7Ko&bBZ9<Sv({`#-~=4q~?JdpD=gA<Uz|k5=%0ZGIKIZD&uqWQy`|m-3jt< zaz<%hHZ&Sx`a#|Ict}qf>^zt_SO}7qu!w`blbV7>9#W3RXXb&5D^M2=>W^elp@eJ^ zR6Mn!ASXYw1T&zZ@+qkxpMeH^<BL;sQj<a166_$TJlOr9u}oNofQn}%7Gs(T(g>B$ z%qz}JNsR|}s1ozib5ddcE>2C&M)np=9ApJfaj0S7`~tEAgrW98{0-6#bzo^;N<O4_ z2}zF_<8}&=LOv7R{s5KGAk!G2?YR_46BDIcZ7}D$u581=&;Xilvu9vv08Mi;REw;0 ze^}K5W-~B60MQN%3=Iwp4E4?o3=HxA|JT=pOa`s7`2YWXJp)6-e$a(V|NqzjM-u-J zGY=$&zz{nSd<F*4*=@*t(EJ}VAD1~W`;qAS{~$*|G1Lsu89pE;h(^IseGuyZ`~ME0 z$v2QnDq{f!$T~1|V-K`I#xE{FX>@te+&YFB4Fz1F<4x#RoPfIT29$mPrC&hl4^SGU zZ%4_mBoGanF9wz82X-?t99RwFF)+a7Kx=$J_m^4hVPddYgDS_%z`#%ex{q-W6N3+$ z9B5t@WH!0@#ePV5e}K{_v?1|wpcNtxF&8vT3}K-p2PI~P8|#@EHmrxZ7oq}{1gZak zEDu_&hO9&hHj|53j|G}92APYj3}g<Be?ftnVZlZw1`TwxKoilMm>4uRGBMo1A_vls zY)*g@GlRe;CWZnmYLV4-C^0isY-9qh=>r*of^pdeawAM3C^LcBAb)|}4PwJE$ZVKh z$m&4$!PJ206$;Goq>rr5VH0ZDuh_)IZ~;vWq#sv!fOPNJ2qHnM7_jOE$$;FLfuxRM zBX)a0YC#yJegcwu5FaEC!XUqZ-2DPc9wd&8K`siwA`eO}0a)S-r2YVsII?{|6qp$_ zHZg(LiXvM9W`pEFdO;lIa0RIciNP=^t-#DgRtHKyFf|}r0Y`eifW<E$^`JEv9NS<n z0EvJX_JG$;9@vg54w9X)m5HHXCliCi7AA%dJD3<ab}=zzY-M8Du?>|EQcDUxv6+cs z#}-WcV15Rf6`;z@;IWN~VZmlhbs#yITIBEnsR!wWVTmnF3=_69F>q|foku}x0~DFT zYdb+~Wb;0N55fhBLa>7hc6C3{@&L?jAYB@Y%nUC;;YPr}Hx!u}47M>bOu(Y<gbFAn zf=oj#w=#C1hE0Vc_IxXVrVivLm>ZG(3vwsK76?g9*nwQe#lXN|fD}(BltH2l44`!} zAd^7p4pbhk03Wao5`ka=WoB^N1M!gE5wI22Uof|V)Pdp(6fZl_)PUqZK<x#wk<B}S z9*=108KfQ`2KmMSi+vzhb|Crt!4~Z4jAJ`#`2}Pj!)}o2P*<r!(j92^7_z@2(EJsl zj6MEmps8bkng=o+pLxjPen5$tL1HHpg8`Ou;sILNz~Ud>eDwGSrFobyk=+5x2Oz!Z zm=<Lb$PSPj641&;kT_@^bOTb}K@Ja4UIXPT2PAor9%Kws?|~Hd2D_LTh%J*q=77Q+ zWCn<h96q3U0ExjcuJWxzg&BMXK1>}bAA&ZWFTmngkQz`pY(R4FgKbO<2hj2?NFBDa z8zc@gzXHkZ24!Y=8G!750i-+w(g(vJ`wfun->`#;0X=QO)PiVG*hC<u#|$JkNFIhk z?)rdaCvrXksR7A@$|v-EvOtj;yb2zq2HE`@XmO4l&dBP}!x`jW(EKXMK2X^QD(4!o zgfGZG5C*A#fD|6Ed<803k?ldxS0KG03<}R1NN$bT#l(OsPC@EH_JL>+2KgQ2PX*+1 zh=G9tw1<PKfvF*8HxmPB{bR>&CI-;D%eQ_^49xya43`6$7_1|i7`8_;F`S8HVz?a5 z#Bd{;i9sobiGeGYiNPk8i9tq~fdSP2P;g>mIL*z#@WmHmMu8s_1L)MZDe+7UJq!#C z56YMrKnslTR5CGuhFpV!U4lzD&hc)&vBYIgP~y3hv9a19H#=L!gche36~|;J=A{(H z_~)g%6lIpB#)Rf&g2($xDr54KQxo&za}twcz`bzrpebamGN!`JBqk^|CpED+6+=?5 zAO+l;VgUOU<X=!<S(Sl-!QDB;2edrhfSG|ouOzjiL?s1uw-kecFatw_FB4QO7d(!* zA%Tejl)fP9a`RLS3>ZEnFfo8mPlJe6Ff^1iF@TaUgkK3-mdC)*z{GHXg@HjY6Es+_ zVhW0v11*rS(lanfPD^KC_|d`y&SQGcK_My;&X8rmtteuk<-QCYtxOD{!zZBXLP2KD zKvfq75?g>G<_R`$1*#Zm41!?;su)=B4iqsTu-*fxVqkSAP{abj>Mo#)fz{nW5eosU zd(g@R3U&sFKSIFjK7jnD$-tmj1PUhxhKBV_44_^lgs%dc&IR`yr*Om6sDP$(8C-TV zF@V-1L)De#=al4v0v^<7<^Y8|*gTc0s;ZQvbOr{76Z@gzT2zv(;^_!>&jl2*D6o5O zAd7`S)IC5EgQ$D4p9x&P=#}Jv2bA6*@j)w}Kfv^q<P@t!LG=9C&%_X6&cL8o0r6|V zcP54jOfbF*=pYw{2S1q@L|7RZ^im;ezWifi0G)daO-G=s*BE#hn8A4vDrO9ddj$q& z<n#vGI>7LNg_$8t0G<ZTK<XG2m>EFpWAq@#Gl2S7pmTD;d{EFTF*7Ux<qMF!N)gy^ z3sjjI7RWI$=p_|{`3wQf3?9-940@o+n?wc%h5}{=&_SnqMa4zQDh7ridlCwm89;}+ zK*hlB28k1iL1Rr|rHpJ$3~WYB28>)R3|uB`3|vNR1&l0=3@l9y3}D)cfdQ;02&RUE zfh&luKvEK<o{NF2h^=5oJQIV*0VW2}{Fz4J0Vals156A|TnVBK3;`@hn84v8iDbS) zJQG970ValoN|3rV21!vS2DV8|1_=>N450P=f&v^20wz2R0!BO^xE^p6uqUtufb^_5 z02)&`z{GI;022cTA44J&gU$md28IP@nu$yddX|Yy3~X);b693@K;3M_6u>CN!5|dE z&md&N#~@V1_kgE>J3*0;g@Nx2F9Yil9)<-{3=B`C7#MCGU}6BxoFMZVxmX#voY)?) z6fg%c889#?vNAESrm!#^kY-@umtkNKISA2%%4cF=KvToW&BnlO#QuP_fF%KB5+gS& z1Gf|V1J(n~31D+w*%(|)cp3P<urRQO@GyLkWnfT{V_?Vuo6p9;@P&nep@f%#0Yi=f zMJ=NcD}zuHUjc6dPXM<80|TQJGlNu;Sb->rEy=+knZeA!W5UP4Qv?Z9K{;*)xfERn zITI}gIYt!*p$`HN_zv(Ca0f6jfWlki5EFxj;vpu6fJ00Sd|V48K}o_2L?tqTsRSbs zX91W@WCja;0COHP2^27>FsZOyWn$~%NZ>NyiQ!{lkd$R*;ARwJU@3t38<cJu4lyxw zF)%P_bRJ@2SbT_yfrAHRCL@y#h=Q1wkOE>a;F`r^!nT1$fny;P1B0LjKZ8bvEQ3mh z9D{<18-oI)9mM??cn)wCa3*j-{cs25ho^^_7%m-VVsPVokjTWK1u`v>4eZ>95RX9p zQvi1S1~8e(3RVDd!9x}>2kOT}2=5{DQWlU=51E}n6jTz~jEBf(Ky^W_f|>}kpLHoG z$c%@qV51&F!V>C6WD}v5KwO32#I$ovCM+gwCLFTNT(fuz`0NDoglt4g#B3yd1wb-V zW-`3Ya<df5l<ZXU)NC|Lv}|;i=o#`s<*qV8<>J)zG*Yzmbf)O3@-e9y=oo33>|`?Q zvPiQsu!*zNbBJ@&bD82MDbLEl%P7XcR=}FTV!*%virbhYObm-aahrOCiJ{>LEN&Aa zaq9>PdWRg4#~ZkIAtIMigo8mOg_A)fgo8oEgq=aeNT2{xK5>G}Cq*6>2A&iS2G$UE z22lS02`U4QK=L9gpM`-Tg@b_sO&!E64zO8_ylf1-CR_}>Mw}1W3)m9CWzi-`Sp+&W z9h~P&_!%a+GB6x<Wnkbq3bKcZfdNB|0YwcXKN|yo3I_wf2|EM75jVvBDV*T46Ktjl z2g3$;28PS-3=9ciGZ|3$;4&hK{R6y=Q08Dze!{{ac7>IJuY`?(HH44hfCmG^I}Zki z2~hp0d=3VNCoBvMS6CSsO4t|}(9|=Ea50FO@Pfkj1K$Il3tR^vWdg+A><s)SY+!dw zDzP(&m`F2-Fp4lhR6yd^;usUdBv9Ns9%EwgJI2Jo0?xM%;JovID~%z9$$-U-Nfy+e z7X+96d<<NZ*a|@9O2IKE293&NObiXjK=lMD{u5Yo7|cLza&VpVh=GBzgqfivgBel} z>2NXVbTBihRj@F~WUw;un(#C5Zej~yEM;RTHQ{04O5p|9LxR#=4ALP24ALh24AMp7 zA4DGr9}p}MNC4US1Z3yiV@wR6L3Z*jNMT}N+RMzuz{tVEz_AHZA}K0!F(`lGV32;o z$sl%xi$U-RHv>nA5JN#M1H+wI28JKUKylB2#^+*S_yP)RP6mc6Tnr3HxEUDG^nmNn zA|?YcZNyZd2nvrBb_P}xHiicY3=FJ^3=Ap9A!Z}<8F|<kcuaU0c!D4yFUZc!z<!9i z090py{IugZ6NARV<4g=Uj)U^n17T2AcqfI4LGMip6N8q5Bm+YNn;U~3lOq#{pa>g- zND3&<IT=KP1PVa<e}MEeo?v1SI>E%i#skvdU?!8w#Gt2>%EZ8t!l1__#j=ErK~e`) zPe?P!nMg6nF$zJ-S!g{0%I7X8m>57e1#0-7U}A^|nZ@Uj3N2?3fD=Rmmn#!f8cPS8 zCksm?c&{)d53+;vpdddBJfDEvHQ@vkgT~AgObn|)W`W(6VAcb2*PK))2DWufGAuHn z{p^CA%nY22G7PZrI04cJN>>+8FoAX=yMXEmUQl{bVBlqxV_++Q)N3C=>VBSJVqiE4 zOMeY4e&B7Q43KsWKRB&|+9RO8i6A&0gcx`>LE-`AMw63F3>vm4nHc;}g2E0I)(&Q8 zK)wbs8`$(1wy;RBF)%>VJ}=ljkiHy{zS5IS42>t57+APKiWAJ#;+YuOJ~5awF|7gR z7jXGd!p2}wz`$T%z`y`%*Miz6$b4`)1#L5d+z4?u57-`<yCn^{8RShG7~~nt7z9vq zIV2DNImyJZh?#*wgY^^>gU%@?1|G0`7P8p!q%kpMfvkJTya+;Bfn2J{Y!{iv#2|E) zlR<-J8B-?<TQ4(*4o?ABB{RoLW(G+`HU^;-Q3fFs5eA`8+~9U$!YL*OP=`Vz^Ar<9 z!6{I9AIJx#%MJ!lW+pWTNkd)+<qSRs`4UwI`4klfc@t#@c}6(~kq<%-1Og!LTylzu z;S#8<S$m3!;n*oqS_hRG3&2eTNCHck1rkY+I>8{x#N@_M!*Yl%lbJ)6nW2isi=l?4 zjNuH67lWiSs9xb^5DDR75HaCq5GfJ>yOHHIwC&1!nu$T=G{}t%{}>n?SQas*g5pC` zjG2M`5hUM%!WPsPSL9$~;0O_6Flb_6@N8mWkU7l+Z6ET1`4gKM7z{vS3=nx_KC&K0 zZWada6afbAP3#XK@y^eX(89pL)Xu<A0n!g@bDHph`Mm863@sor28cW|A6bv&G)0Ei zACDPpUOZtezVVbX>%=q0#2wEWBUZd%^q=vP(XHbZqiw}&M$?QpjJhR{nRQbhG3%N< zWY%T8#Vqkb?19Jyp#!k6S2)AOpe4t^prLt&i6QL*6N4?2*oQPG25{InfHSwF<|0tw zJ8IqnrICZ$;H2WH4Q??V)B;nE5bB^NSWdBM6-cFGktq{|R%M3JqAU>Fl?_6>wWc#M z=&eg<VweOHIH(8K?x+Vg^Pn!6a)eL^bs%!mVCtZhDT~7;1_s7r7m(8+?mTF)3dA{R z0CBF7DHDk62&E4in=*s=Fxt`76x_Ol(Fe^;S;6v9+R?(44aA4jR^X=FLCdA=U||^d zB)DEI0K4^|+EQMS<UzGfAj(l?Dj$TF<Ok6W5Jfg$!MuYu5Jh%R1wfLHcA;SR9<+Zd z2;v{K4+Xo|(ebGei0|ka3U=>7r>DXo{z0cuuzMX{o{E6@jxM2K_a1b8DhlEsbPa_# z)cvU#i0|kg$^oJedOQ_}(4pWa=|L~BzZ|_nCBecluB%kQdj<x_La^+@LP&a815yI% z6*vZ|g5B#Fv=U51Lm;>n?COKT5YL5{f*tJ`3iVuADcI2m!@jZ#{AXZTSOktgNDJ68 z9}+%!k3hD-c~EPjRKW&2Lg|Cis$i30v}3F)*kl-eFisT`98lUZK@}1lQ2Jn^DkM0d zv}3X=I5=SR!4y?+hX_VHrm1p+odu&=RKXGN2&E6Et3sk4MrWvk<NhFwmR5ztI+S*l zQH4Z1ls+h<3W;_o?I^1XiFPP`P*xQZ?NHiLP8AaEQ2L;pDkR!rG`}i1+7I%Jg8M^` z%%SFB_cM!XgXn|Ip%xHYR0l*qaJ2+eU%@;_CR1=+I5K_J1qmNyGPQ=#KOI4IL8=od z!#c`Wfq0I&q0SIGk;RMQClgZ?gDDe>9zzO?0h=C&3xfie0*?uwnt+1PEIB6yBP9=o zNpcD*3Th@AYFY|93VIp_m*i@hj6%6hl+5%j42=9tl&th@z_gv71Bf<q(sKdRZh9VI z+Dp#|M9cZ<1?YuD82OoK7~N%-%VkdRNzzL(kn>A0NYl#z(Rx{WIUw31Pp<$>7wMIN z=`y_vFkPir1E%Zr8o+duUQ3poUxGrLUWZ;!gq&Z3hFnqKRHg~7Oq1*;+?ixEAp%U> zO*qyk$vj12n%<0Drar$}7IXCG8Gz^odW*pH61`=oRw#<E(pYhmX_dx`lvNg6^tKtS z@LOfELvI(D-lMngAkzxJRZ0i+4uJ%ej_4f&(<k&!foP*Mdgs9O1-(mP`ikB)UG5c4 ztL$!^WWHs!!f#c`9ld)7D}q)9JXp*8XerZ*hE-}$8kwK1TG6md<wYa&D-c8NO(XL= zFylib^Cu8P<;z^=Zy<)+k4ENSn#?O2R+;^2Wc~*dGGk<FWM*Z`WL}Z6N@K;6RT?W? zndG{{;^dZvZIBaW4vUkU5?0H^$+VD}muZGvLs%h`Ak$iAQKorv4Pj1_OdFYHnHI=3 zgiVlJ2gbQficE8vRhgE_b%j}IGHqnmWy)ldYY2;zi)CW)Gi1_WFf(P6V<<CZ(z9gJ zvt<H#N@0!OI=xMepg`5=vy$@*(~!#x(~HrIGXS$w!sH_KqT)b<TaY#pKLgh$$Qad| zOH2$wpmxO9OH2%cmzfy2cnYEz7#hrM@|YO(d_Y7@9utFBf;J<=1fB^@b}VijhD;1* z912_vk}8}GLX1KT+#fg}upfYp<UradE|-}gV;H`dnHUl;gW7|j<PICdFadEcaLr-K zV)J1UWM#?)^>ZY(xEW+jOc`VtwXn9$W?W`s@B*DBwD2+$!@0{$41D0?WFZT<plyVV zKzsoAohN{6;RUBa)-3n~A|FVsU}<3MVoBn7!sW}%vyhp=fhC1+28$^(lMEkpY^;bW z0o>kr!p1P+HUq<<+YAhEE<@WeCfs2DgWC)YUqE7@{z?fucx(zJ_VhLb1IHC;f8{m< z12P|E4oD4H9|Hrb*`N{KCu|H1Cfq3El4iUNsu`9HiYYY=iYC<zii{-;!XE@5@E_nU z;DNRQS6pFYXacoWH(p_4P`b**pa2e!25@jp$O8GAkr&K?RQ8UXkXjx>HS$7giAG*% zrOyPewj7zKLMjayR}@@lJOGz%2bogAH3p357RbyX$;{%$V8fQm%FqaEW~Q*^aqN=H zWtPcNn8?J|z_CRrmRTf6VkU?k$F_k3gm-XN@u)JfP2q@Ro5YdFx0YF8A`?RcQyfDZ z2YUMKxe866Q?D{Hthowm=R(rwoqSNAE*~Xn>al^6CYu5W1B0Y0Cxftw6oW9M5CdYw z6p}U{T!r?{US4Hl_;wZ6PyYZ(lpGyQ87y8*8<`lu{jn72_zJkq$-&U@j)6h!Jp%*7 zHAq||^TBQ6CdfD*s7(x-=K`mv5)Ouf4-5=@KQJ&DK=mQ>CB<17ID#PkZIC|DxgwHM zYz*8%i1AUFIHMgGgWVHu2D21S2Ez~z22LZ^51>{!qaz!GqX{bmXAtWH<^-kyh`lTf z245H$dcQC*tby8#%$L;QV2~;iWsph{VURKrW{~<M5CH1CGF)e3r~;J<oY$Ec1g?YH z{-Ct9fn_BNQzHv>%oo%b`@z7F`~%h(1C9T%F&H3;Ny@M=@S2D+@P1+|0J*<{fq_90 z)JI4WVQBct!0_NF1B1hLXgDJAC86W*puS<pbtZ;{UXUABVe}i9TxVj?SbLp`Vc&Ho z1~xv20wxB%yaFZ$9UVU=h6aut1`DPX77I2=AH;-%q2MnA!`Z)xxI^Yc#&|dx_)Rz% zz++RKETFIjg{6U_7#oAw7cK_D5>5uz5Dtb942%qxjEoF_z-|YPMRPGQlyEXIV8}6` zs+D13kV#=<U@c*1c)-ZW@R^Yj+K&Z=9l96;iW>B}f(1927&2DgU}9K*gNcEO57b*` z0xc_&lm?BD2r}?Yg7nKl@p<6}6N48hK5yP&Vt4>j&$S?sfx&^The45<DT0Afn1ew$ zgqK0sgoi;mi2noc1MUKF`bpttC}3q|*v!hv@Zts}o>2LqaeY)Z_{N(;ZZa`w#NK3L zNWKYj^MV2<2BxLVOwhcVz#z;Rfst2xZZa`|{G~DVCKJP&n@kKGTnsXd3<+j;KoJe< zHV2ro7D7j6&N6e%Wny3ek6#vXegMxV1TYyW3b8Q=U14M3En#QiND*WZ;9_Km<6>mk zaTDSvR6ZL6!xc6Lh7xuL1~j#hG{VimZ^FsIAH-dNWX}cA90u5)BS`k}Ffyd`Ffu6I zg4%<^XJcSEf@BYp9K;?027VKM2L4Ul1-Sa?D{evi=o@b_G3>hq8asLI%ft|1Q~(Mg zjy|SmELIE&Obp<0Qz!Nh;F19}XCu$SAb*90LHGzS178Ub18WF3g8@GyLjpe|!wINc zQTZGU3|Ckf7>@8VFqH5xFrcXio1et~fb{}%0aF44gQ7GCgY*{`2C*Zo47?$146G)6 z3=aet8TbSl88mJ~!UC1g0h!M^!pgu90;&s9)iZ+fBBWe1P!wik5dOl#z*oWwu6s8K zF*4i~Vr1xmnv2Q@<xS8$5y)H~24p$tJk|%u>=Oe6IFCPJVc<H#!@yd?&A=eS$e=I6 z$Z!X0E-If5GLC$Nhk*f2EhBi`4pN3d@(?>if+!<Hz9=Ju$sLH_QTd=egsKJ_o{0Do zXJZgQ!onZ~_A?v92T?`_aWO`Q3b1*gbOiGwx*P+FT1FmL2A(924{Q%u4lorkFet*( zK?*Aa7c`y{#2Fd-#TgkcfX!xLK;=WzK?*25A@PJFF9dQUWWLTol93@?5|*Ao?qdPZ z)uD<rFd*~6agxM#0bCOXFfb@ea4<-GVPW8Z!pgvP1d@&lq!=0IN-;7N+=YZCDj%AT zp0GmlmI)sNvOHuCRfIuc6VC(K*gmL^d2^SELF4OPCWha4LFJM|Ark}BN$@y0GXqBw z%L8y&X>%}We*u->u(0A`V322I(2!?jV7Lcz3)F6S*r3ZZps0t&F=)QCfC=PR(EJX_ zuUA+ZxIlG;2|vRH1x5yEMMj1gWb;9D7b&2yN0(<nQO^h(7k6TYm<=lbp0F_Rrf@T` zns6})C^Iq`C^Itb0h<d=%PHIp3>b0@C~6rwm>D>nSRR1$xFH*ZVF?QZZwSQ90u@Gv zi7Jc?0{1~-0V>x(@eMH(RgQrHna{`%&MPQA2ynR?#QA~!0(hn;KoK-=1j?JB^l!q) zprFpkFjbwAp#o+XXileum4N|6jsZn2JpEsQrhibFKVf0uM@s(znv4ubG#ME#fXxQY zVSwh#5a}INo`C_G&&bQpz}p0_cM9O;3aH(f!OZYMhmm2QE+d1%15o%dpz)a)7|_%p zw}E;dFfk-de89xOBmt@0Ot|55bBsl73`Hg!3|ydgY7koiqd6Occ?L5B=Ooq-pq41O z460ya2ry%0xNOGAumxnl0tbV_6;1}pBLWP3CH&xdGmspEIU~ankUYrEPdFGre0Ot3 zh8rL;Q0LK{kpaO6wORPVW`fj#^)WDD@R98W&np>$bGLz_I17XL7cK_YC!7ok7K{ve z7K{u5521an5DqYZg#{x+3`mTD0fUdM2Rw&V!~|)xm~b%!STZtfvSegf0o9AlXH;Ni zP{?3o;CKYh*P3h$nk$$X1ZOZauywF7e6VC>khEfCxB}9v%fp~s!OEcVg^xkuh$w?Z ziU@;1h%f_(i4a)LMk_{!Cm?kU3>bVAb3ox~!p>k|!^q%d!w8?(Lgq6D2{8n9FfsU4 zFf*8CfXW#m2AL2+1{o6p2AN6l5$FO&15O5m3{H&sM@1DD29+;T3>;4+84Bze8F=j( z8Kyjfq%~x|ASlhJppN&0%D@kgm>4vEK4M~EdCbJX!dFws#GqGD$i%=R%fu21YNHwP zGN_a&GN_~|FsPWwGpI01Fu+{}?T=bKW@6X`YG*n=W@1Qq%*4RO_n;6u=k);GA%_lw zLT0%a@O3abuv}of#o@rk$;M#_I+m0Hecr3%F%yHv#K%kw`yVqg2=NINF)`>VfCvK+ z;S3_eKtv{pr~wiEAYxGw69Y>ELoACBC~iRIM+%}n1@i9$kQ1LiW@2DcVF3427{wXb z9<YGd+kh@(Qj}w3kjvm;;65V4z>*@y@W7vu;g3Hf!;8mE42tR;4C-Hm7$mL;GYFK3 zGH`^*g5@#;7#aS6<QW(+_{jRf?Yj{8JUC>`p@fZLLntEyOBf?V#1lxoA@iYi;{$lP z0;;<~Z7fiI0je8Ico`bP7#Y@uF*5W(^`r8k^%JQ60Jl3))r03%jW`~#9e~)ND9FMf z2wD$R!oyGy$;hxhl9AyJ*jyF{hA)tIAgVY6iaJI<HU>T;t`8g!*g&N%qz_fX%fOWa zYHxBeEQn%cP>5z^uz3pcD>5HE-_69ppvc0+z+%F{kPyqra3z+Jp#rKFnJ)-hm*oVR z!`$+ei9uuUQznKJPeEz;04O0`03`$=hCQG;D{xt8!p`s^j*-DX9+3}``N-z6JY!<e z;C%)&?*YiX4@FE2lG31lEiVJ_B(?xhzZN{#2p+qVV~}AK!8&#o@{EaL7ASATK4W6& zd<Gl4f-d-&Pz35=PgnvXA<G3O@G{vHGcn{cMHVwLD5WvPF}bibupMDY;0WQ$VGCqt zNZ@c|aN{v!IKvmm;KBhuvI4v=0kkIJ0^0#_DI37R0CHaksNXHh!XWwtRCdWQY)EHh z$jxG8*zk-A(jWgK1m-toF*2M1iGj{e$zo(c<|FH2Y~W^S_#(tmm?8sN0|81k1<VHE zb_@p-1IHC%28A3(2HreI28riP43alE8E!mrV-RDsV_?4k9w!8=1-b13BXmsQh$}-v zAtS@NB1Q&}=P-A<gZcc$j0_ndF$M+<KC&LhSPq8R6afYS6CnnHP2jaF0pRh5FM<pY zY8e@N>lqm~K+QqsOX_hl$fnpb$eP$N$TFHSfLFvp!)^l1eHl^=2@Q-49~&4MUO>%2 z=0nCVwHRa=6|l$u3nqq7;P`*R#L)8s7XQ$dPYb~DzW^Nn&?K=y5<Eq;5Hbw6z-J3X z4ATh~OJ=rX3<(^yOkAGKY!^YPK$D5fl$mW7Ljp%66PGG8TQ3vCN+ymK3<(@|Jc~FE zGI2d%NZ{$=gQ(%@;Zp=F=9vZ(xyF#dGlzje(p`|j@`gBr;Ry)_%^i{qiYufTWK7%{ zWEkxj_&)GFfUO+^#a99-JdAi4jAlqPXm-djC{)NYNMy({2wZVv;5g#KpfHV*VZjVW zh8Hg&`5Kka!@w{@nt=gyxqF2y14D)!1H%<J1_m^Jl5%Ve{2{yy{3bjM{6*XeAbSyG zY1|A3ix?RWFJfe<cnPrsna{|_%D{IB+SdiOt3h>d2@k`EC5#MFOBorqfc1ddE@)z) zbZa8Yz_yH$L2MZ#!ws-H1`Ix`IiP+G4+DdVD2n;u@;!y0f!~A=(tlTDWe_#-Vi0BY zU|@sRl_{^77>t-07&LNUF)>uVf{j5IfQM@nxaKfCWMcAT@MU6&V_=XhQ)Ec}p}`RQ zLX#o%h8BbG32g?~9XbrQD|8twX6P{(cjz<dRTwa6Wf(H3mE<z0rQ|TEnPfAlF{WVD z(RW@kF%*I9efo-tLHIQ+9Ug>K$%)M1$*Dx<EufO95hBRQ<O)uTj7$falom2E#4xR5 z31w#EWM%ls!V$sH#W9b|lbOemi9t|=V+q4UZjKXNvdlaeKno)o8Ca4S7{F_LK<l$W zV{rQz8S3{jGB~`3#9aXrUl3{Bui-TlgGT3TCWa}mL1p=e5+(*chEgU57BPl($YnXh zeny7){fM$0nU8GV1(10+Uo$b>e+}y636wH1u&rfcC}WCZV35?~W>6@RU{FXAXHYN^ zV^CleLRo7e@CG`UA^C=hLG2A_oCUNN;sJQP*nwjL(?eDkH>L&#NpKs<kU=FypFzb$ zk3oe|110=H=@@js0k}-c5N1d?&dA_@hLOSG4J0g(`I5%G45~+D8B|MT7*tcF8B|TA z7*rX>7$iT4KM;kcp%rhSYY8{LVPZJ)1~$h6S$moQ9{*3^Dq=`uvSnhCWoBCjYQjU@ zsKcO=qRpUUqQ#)XsDk1~(0C!kTP6l6&^!z0TPB9|w@eH&;CY1y;3ga+WF01?B?qx8 zkx3MiK$yWZ2&hsg!LtbuA;lP0%?g$53_F-qSQfC&W#-7@QW5&f!mvn0Lu`QrFN;)` zjEc}+7KRkiUN*@@X@=k*{0!bN1Q?ue2r^io5MnUfA<SU7LWDtQhA4x2hZuuWg*by; zh6ICDi7A7Wi3x)gqY(pWz62EZ4?t}}OMV8e6I={RJGdESSMV@M%;04Z4$))~W>kWV zJtjcvOz?UZ0|5quAM6ZTFE|*KZg4V4b?`BWR`4?jWC$>DmuN7sn5Z)xc*@9N@{Ez; z%3DYrBJ(A!1Q~Q@@G+=&@G~e?2r$TH2r@{eXfa5cXfQ}Isxa_BfXwB9+y=VvT2h0J zL28EpgAk)W1KR}_aN7cO`?;c_7=z&okXb?u>K(!iN);juvKgWb5?^!}M4sp}2prL4 z;3+X-;7BoMU@<XbD0s!laOf2yL%}<Un~?dEiYyGmjP4992bjR-gYNK9j1XdoI3dm8 zxkHA*VTK%oL4^W?MusAT!V^~pi7Rdl0wul-94S5w2_G35R(xb+xB@a4TwZ#E`I(;> z8D4<IOnDege@HOsypUv2z9GdRwL+FbutT1K<BJOeNX_q0j0`gGA#OtFgUkhqfz4rH zK(&iOfq~(N1OvkhNd|@+QVa|yq!}1?$S^RhkY!+)A;-YbA<w{2p}@e9p~%4S#f5?4 zi7TXDDe+}sNbzA{F!4q)54@H(1Js5SWZ<2|c>uJQUQvXFLF9`71M3rhhJc@p4C{U} zGTZ>Um6eHswS*7Mzx|Vu;SETPfdPY$tVdFcg@Kz<n1SU36L{VO+@DD0VMsk9#GwB~ zfI<C=AcI7TB!fVR1OtbOI77oPMuvO87#S=+K*9!<&%?m*M1X<eiXa2S5g`VK6iEh# z5D5kbG<}k}0t~rdxEL~?a5E$y;bDj?;bn+S5oYiS5n^yO5oBPy#B>3a&OmKdSUcE( ziHRYei3#2xMd5?|ZNkp5fQgA=Kav_`K6so4F%|)tb4uZ22w-Mn=wfDKQ1}S(4=Nut z-ifM)u~2}a@B|}6&JHGq^cBnuQ8QQ=JUdt!%qrLzq%+tVxEKW)7=y$Zf_{iHc)bu~ zaJnJRV0A)*!E}ctgTV?Z2JIQr3~C)R42l)945Arw3|x%%41zK|3^FPF3^E~n3^FD> z3^GCR-YR&V=Yx+-3>q&#GBJGn2rkcsnHU_b7(gW3OJ)W;rn}5641(bGz<i*!p(rZ_ zLH$RCPf-1upO_ffdO=#wGQ;M^QrH;^gqRrWg_z)DzNmaq7@(?Q>=I+>`oY1_^n#P2 z>;@M@;t6hsupK-M?kjj1OlR;h=yvckC_~E-E=E-bMk^KuD-$-*J{8EgM+yhS1t}(m z2x%sUIiDcmj=~4UX9@>HgA5Y`hb%%3GG7w3$7B+CwiMQbFaY_L=Q9(7h2&=@2AR)H z4BDTW7+5$2m>3wCR6a8?Ffld=lrb@|?PO+n#AM6Dz{te}TE7|q9<v9{O@ihkCD|Ax zpKvqqm2fezns6`#C^9k3R%BwZ`3!O=X#A0zfuV$pfdNB~0Yxn&y>TGMzT`k_a8()P zOjH=;7-dk_;DYPeE6NNBDohNlYD^3Zz;-d9@Fl_ZwJw87iVlN{i8j`{kmn1uE)@O3 z#9;abv_1mVH2Po#UW&yGZmvNp#s%QzmJ7sQFvKy<V#sA?>0>*<v6Y$2k(uQq6T>Ga z9!UEjgO@?ZM1?_yQ3h*2q2>z{!zoZdq4f(B!<H{h418RmwuU2Qf4~Cp;s(g_&V@{u zKrUIx1fJASC<Rx+339wlOi3(xOkHd$9FELf2bi+hPVqQ0^QAH|Ww9Lrv3`QLi-X6X zA^UA0W5l310?n(W@G`KP@GwkpU}CuDz{GIp3p9>E`)yKq85l6+7*N!L=gdtYd!X>G zkp`7Tpbb}$wlZ|yHHf<a(ie+mkTr>6kYx-*>5DA@&Fz85uLKxGLiia(CV^M*7BEV3 zF-Vs1Gf1ZJF-V5+GDw>6Fi1`keIO|b+K(jwUh4v~543jy)CL0W0p$dZ8z?a_=)^OD z&o0ppWMbGF$OPU)3ZfaA7#TqQS#VvE!oeUC0$TIW2HG1?ASlYgAX>u7AezF?AZo(K zAZjG|0Avmm0|P@xC=<i?P$q^SWgs2{LsS?OLuwd;4_W&R*)Imt18U384`X837skZE zUk=eTC5(yTS{M_929$q4jEUhDl01n28cCj0ij6_agr7mGNbG?~fp7xIT#z3X!<iV^ zBbXR$${{p(oHU3j0PHu={wGdG2F@e~$a?=G@Q8r{BtF;}_)S<D_=UI&7)3#Smt72^ zj5`=WeHTVvP`$~?z-z=70I~xXo{%`;WROhZV2})9XOJ{uV~{iw1vR-Kd*(m`aiBfA z!XO<C3<cjIeueNLBuM1KcP54(XmX$gyW%?&12#E`P6h_hSt%ekY@ah|-*EtF(=bR7 zia~A26$&8J5a(im)J;HB2T~3@BL~?$&|Y1T95M!N5CHKz(A*3X17Vmv$4`*&Kq9CZ zv~L<D0<#A+R>P155<y^)&WN9w;Q~?tI^P0B!}NpJjs$=<?Sll7@CEQqf(#5RaJU2J z&W;}-+mJLeK<-Xj@Pmn=;U^P=0S<S-bb!tZ0kL830fjGvFGvIxgU&+$i6E;B2n30s zV$hinAQ6~4kpDKI`44pNLc$Lw24dX^G7pAf=2rcNlmno>+91sFi-}>*FD3?q-%Q~4 zbi+MHh6h&}85j~784?(oz++XQF)>h^7}VxxU}R$W@SKrh!&63v2MZa&V-yz_GBR9P z%m^ME0F8ry#+*Q7Mh})VGJIIU$e{3(5j;)?YVRc^GJ@NkApHVAA?ASCFdXoYk-@=% z3EXFVaDb7a|2GrEqTfsmdww%9od3<l@ccIu!~fq*45ELS7_|N{G5G&sVkrK@#L)4F ziDA<pCWcdgm>AytVPfF?%fw*#mx&?lFB3z>UnYi$f0-Co{AFS|`j?5}>R%>?=YN?P zc>ggmX#Znku=>Zu;Q5b<A^IN^L+(E&hTeZn3^V>QF|7W_#IWlh6T|U;ObqA#F)>{J z$Heg9A1K{0GB7cK&Ol&gU}Ios;9%fn;9}rr;9=lp;A7xt5MU5w5MmH!5MdBy5MvN$ zkYJExkYbQ#kYSKzkYkW%P+(AGP-0MKP=VYWfwbu!d@d;Jfu`~PJ}wOIsU?tOk->)_ zJLaW;?%@F)<&P!<7V<3iNh~e_9nPNYlb@L4mYJ7XoRONsfFuq&nHw(dpBJ2*nwJ_3 zI&~g?q%Z@v!_XO^ClN!BV+9`>;F%W;K7ARX6N{pde6U&!HK5yMFa$k|9ZNvR4wU%k zrGmBLw8F>V1#}`Wh6#`Z^_@T$P(Y5Z#;XE{q)Td2X}WJ>g<pP3stf3r4GeW)$AM$d z5q^Ua9!1bYnK4v^Ku-)uNPwaz1moaz28ghKd7fK-QEp-h=va7!9`MQgkfR$wvCe?R z56uIe2+I%(+EShhPF<P#&{%`rR)#PKb|^i<bMC$f*%a{M=<p+Y(^E_QQp-d0G7C#n zJzW?wGSf41K<9$P6%?nIxD}Namz3r@m*(VT=B0x!;qZVd1G^;^dH^Ko1j({gkUTV6 zq0C_Lt*;2#VDRbC;8Tu4Dne3=OThP>FqGzjJzkoZlFtA+vlDXmF_aSyI;|LTATa~z zzEw#52r3^nK=+zAFfq(vM2OwtVP>dkWMWWYMu^P;-DBO%#BhKKA+~{+nPEW_6N3Sg zIv)XM27zWKh80L+c>>G~9nDM(5lCVa1eh5tnwc0hknV-wAi&JP(Za;A07>kE05d~F z3loC_lHN}O%nS<6ObjQG)JX_3GpuM~V%UKsW+lkXFr$Tup#e#6lpr%hLNgP?1SByr zQD%mMW>DD%3K3NN18N=zD4ZA=7^I+d1oU2eHz=(Er3Iig1C)Lv2nnxSQ2HE{J^-cH zK<Qafx&unrK<N)q`^%u_H9_e`P<jWHJ_n_rLFs=`T1^;Yza5nJg3=LCx&TTyK<Oz^ zdIgj|1f{P*=}%Bv0DAwt3Y4~h(jibf14=hR=^0RZ9h5!+rPHA91f3~?9P%w}5O>dm z(z~GaEhx>$4w2V^(s59_4N9BA;t5KZLFpM#dKFaNE+{>T2V!0cln#T^T2T5OH$;93 zl+J_FYEXIy)ZBYq5Op)4bPSaKzzGrG1*OZNGz-)}92^jNC8+p0D1QQ!4uR4xQ1!5| z`UDNfKT!Gwl)eY0Ye4xHbT1v0j)BrHP}&GeOF?M{7!9@H71aMwF2f--`2&0qcVB?g zFm-y+d+IZwbPZI#0Lq7{3qs?wi9*cdgVHc{FQEEQLGAB@^0z?g8mKvT0ucR1P+9{@ zOF?NSDE$no{uGp60j2w(bQaWHnEeV+z7>>Kf~u2((gIML4N8ka)qR4}5m5RU)cpxi z{s$<(4a)xmrD68ogYs8FX_&YN)E*e$0?K!Q(lBvBX7|*Rkj&(4$Tb!W{jA`d)EQ1N zgDMQ4%%q~kqDn^wh8;}qsU-nL`N@tcDWKz-85p)Ox)r6SLRBz$y9W8W`WPF5TWJja zO!n~+`K2ZC`DyXs8xI|dOHv#hA{`?FT%BATq8J!jne5}kGxNY_q=Sx<hbi#z0Lk`& z^g}K`j|VG(NyGIQGug)nR~CaMk@bVj2N|KxYG0aH47xGR!CoafKP5G}ti-{^B{beQ zskkJuB(=oB0b*vLtCORLqpKsbOn|GSi=m^dBZzj0V))8vAMcr$S>j-?l9X7SnH*nS zQk0sQn^c<S;1X)DlAMuP6kk%5m|0Tn-~ureLVCJ7Iz~i9F&t&FFHS81TMIWLGrt(W z=0K2Uk9a?aD2AmB_V$MHKKaSnnI#aDL6Qy;Q4F~Z_VxytGN1rpC}pyb56LLXFOPRF zC_oEEkb<j>_VMniCFwc&NstTcb5b2ZcU|VBLhNt`c|QzfcxG;agP{?~z7m9)SWG<0 zY@eAzAh?af44{@6IXE(`X0(rY%LE<j4Y4y4WM^o6W<Drv9l&u3aw>x#YrJz_N_<Lw zd{R+<VhZS@()h%Zc*yNs@u?M=B@7H3SV7)RiBCx_NleaQVAu%pUveTS-teV>V8?jx z08nH*g{37Xr<TA%!3gAlFcTvOP>MXjY@eQ5l9Qhdk3k|60VsXhJBGnM9TCN#4~jK1 z(h?{JmND6b?iwh9JA;&j#PEyRJ~NL%41pYsnIW8@8N$g0lqrl6nS;TY#Xi53P#BYF zs27ucd_Z1i9?78%%5oqFMnp02Acr!+Py%TLg|9H0E^tmKoKqbFTph!Rk5WT$n(74Q zYvMJ5i_lP4M@Nu5ud>(|XXKaXCgxR=97w*dj*jtO5m5{b&aCzo#p$Ufpfo{J(FQRB z6w>it4p9tlAae>z$v4Nz1#C_&a)=O&Ggw&kve<)8+(%>yNY*4AYmTmtVTPb=?g+7- zp#jZ)B4Qur2!^>#_K7*=iIv6idHKotd1VgJGABMMu^3vUf^tE;UqlpxA)~#$Q)UXR zqyfh)s7#Od2E|G&lYM+pVqQvqZhT5=S!Oa+cch~yNY<X!9(-E^+`IWCdlwqozQJM6 z0fr_9kUE=zAwJ%@qQb2xF*nsCF)t-2waA2lL5U$gzPKbMKD8n_wE%Q^UVIAV#!v=D z3>nZJK@1GaQ1Oz~qFnH;9t<2HljDmEQj;^&GLz#oAciwAFfxEF1lLinFyleDi07u} zg72VJg_#7pk|Z-PEgxogd`>3lrs^=~pisXMPhVF<6N7j|h%b=EAR++_i6!}&3=EbG zpld2X*UmvM07)%LEsD>}2b-IhUzA!>T9n7YP{NP~zQcimfgfUfW`2Bfer|4lUVK?` zK~ZL2Nm_g{Ll;9DI1U&XcyXx$*$2AC1QI#%kh_u~S4yN76*JT`q!pBwBr}vVq^0G6 zF4AHUVTcFc{sgJiQY#o3q!@})!BsOu1w&eTYDqGK1#Uku^fMHf6y+rsR5GM9Ai`dS zA-*&(CqFqmJ}omRm4QKwAs&g>2ho#T0E*4jqN2Qf28K$oT?P5Y3^PDu2xUp7X$*52 zO7p-DVCY~-D^4u|$u={jfpQ&#K0|yO=o*boGZO|$hFpk)8DtrXixTrv7^Fcr#ilSY z7%;?_Wag%tfer|akB`qujt6Crg2eRH__WfzWCjV4X{n&|pW~Agb8_-h%QG148RCmm zGe8apMHT2;API)}<ovv}%=FTt)cCx_B2eolu_(Qafx#FQGO+8#VN$7iWtm0!d7#^~ z85m4ZROIJ@S`G0fiAkVPv0;cWN=?r!2H69Z0l5m4-a$DawE}!qV?0y}qDhV+KDnqQ zKCuL35GY)e!3+j7h&`YvU@%9p<5L+D3o><ci*?I0^K_GoN_0VmL~2oqZjPa@p)Mp7 zqNyk<%>xA*9u*m>i3P~g=ynvBq-5qJD?qcMxTGjEFCAF{x(T3UQw$zv!l$aVBolNK z4YCq6o6tRiZV#k^glquAHD;gu<is3MH-lk4BV=ID7jmPlBLhP&s7C@;kO~^;bgf|6 z%K*N$Jk=!=bk9qEQDry-!#SuJXh1NWp^nilGcN@^M9a_#X1jqd7lcSMw4jQ(R)jM! zOa+VirB;B46vG*OK(>O^JHl=YDh8_ygo%UP0vdtL%+GVGgp{M8GSRUp6|Acuv)Iuu z*ps1?0qhE>f-I13(8x6SIzR@74Ghlt1(hHT;S50_IS><z$*vU)4Bwc2OLIyxohnOG zL-NBjQ&OEX5{noF*<j3&e7HP=1*0qI8b9Zv%#zIH#GGKz1v{WCxQ{UVq$ZZ7Vu)um zgZe$0i8+~7=#q|kDZvGqd5~_S2qR>;65Rkb*5K3<@VGn!!x@&K)M7aAHEVccW{F#V zQE+BndQPf;66iKh*9wM1(D(vt3TI$w1o_@KKczGWS}BDyFkEE`D#>w9EC5{t@0_0p zI!Tw|4oJ)=KR>&)05s4K%DJwfyYUzp9)o1UGK)$|6LUiI$}{s)7#I$)hUP)4p%i${ z<CY1!35<cE9^_`6(h4B=IF}X`rRIUV!>Pr^4D(n+V09g+hYS*8=wbFOhH~<Y+)}|; z)(3ztfyygkXl3>+29KbprxwA)f>;7eQ;RACQj5|+1K4@Vso;=JEn-l_w9zw#K@~|f z1bk<-X9@$uXOJjlP#AO(oMSO4-GEpO`A9Jt?2}ns;*pw|!eGUao0^-PQN+Mt4QAyQ zFfiDFSp}6047MN^=)Nn4T88A*%$zg^amM1pqLMW9yqlX?l7W(QVWSH}pN7s2Hk^%B zxRiF~|9_)J_jPA#gW4_(&~ws3Cu@WK2_7JZ&4+hPg4|C7I{O(U`=A5Dhm1Z!^n=71 z9Au8cFvPAChafaq7K4D@vjkI93Oei-v{s}YVm?fRp1osOQesLxxH^V(uEA0oSk%GW zb_CRc%_}NOtc=e~Esuu`&%m@`GZ$KYA&(R=U{eRFUQm=_RR^*k)b)qi3Gxs&^AJ@Q z)J%i`Tq`zxpaG?l)Lf`0aHAZnJHS`uf!d7@4p`+OgHp+fC8_E8MU`+XLC(dh9>v~x z67;#J=A{;8CPN&IT_ZMs!n&NGU;z!Z;2p#QyBa~@H4oC(#ozCO8imcA%=}`c&Jsi+ zHgz!fXA;%(!DmjqXMS;#g9lO+;j<6oJ<>u9pLv-O1IZ3Aq;Mc;1~zxZ2c@RPgYSpL z2zE%I;V4&N_L30%1k6KnNq$n6kwa*_OJ-4gYF=q>d}eMzjsqyALP`lpR6$6%p)_O| z2rw|@3NSE;9AILYAi%(|7s@^$z`$TD$iT4VDHDT(AOpi*K?a5|Pnj4l2r@AI5`?H1 z5Mp3Z6@suGgcum!3NbJgyk-KQ_n#~bIWuK~FayJ7(0Zr?ObiAh3=E+4N<0Ucz;v$& zRE-D&!&xZ%f(Qe{BN2$145ADS_M!|7G6$F#8blcwUWzg>s2pHo_#n!_ASedWYaqtJ zuvd(M!QcQB!vQe{24isshJ*u53=ZN93<ty+7-~S`;tUMpk_-$z2bdT@$CEWlLiB=` z7XF8_8Kf8(%%vdW4pIyZby5&FG)OTpOoFnJ&j<&d9iAc0!0_e(69b3_odwQvkO}3C zaL`%d8)X<6R1PvRfavWq3=9?rnHWIyUKs`k50H8p28PG73=A;`nNZI3R*++0h>&Ms zs5!_4rsL!p7-k$~VgS)8@(c`H4l*$`$TKk9kY`{xa*&DPfjk3)wE_dfm4i$S4hjqm zU5X404-PUhOi*NCSgi;N!wrfI42xA67`_~2V%VU{z>uQGz`$^TiJ?G^fq_+nfg$A( z6N7*T0|S!-1H%Ro+kt^$t0M!0!x1Ki1C9&~;!cq8QE*~lxbDQj&~t<d<s4?vdCbe5 z85q_aVPXK$o17UKjvQfP0MR?085pjB)H^dU<hU>}yg9<eP~gJA(CNy+@Z$&*${EU_ z^OjZI7#JjuGBJSYWH$x|ouf<)AiBbhfx+P@6GMX=1B0GB14F=3CI$m{28Pw{5Vs+p ztqeM2S;&KdA?GL)1Bf>8U|?tfsrO)DnB@UUOA9<081{NV!Uy>rWzhM`PF@TQ3yv}| zfM^dd28IJinHWH{pBDqeg`-Ri0bUFYW<CrIA3$s$28Q203=AB{m>587!EAjY?n&@v zVBq&>V30V*#310$z!2;Y3G)Ph1_u5B28I}rcmM-~PXGf$$1x@b(7Lu2ptWBIm>587 z!2Utm27wF=ptWP*yc5X4&>ILbA9Tpg`9Mfoy%5O2Fd+z%=0UVTFoX@F?LrtBCLCj8 za0p>wxE;a3Fy|N(!-EJ0hQufahAqdK7(fS3wM9Y9*$~CR@G=VGo)1wB40bUL3`am} zkj_H}or`=ij)8&YI1>Yi{u0N)pmCgu0YqPmXJD{6&cpzs??BlP;u#oJ6Brm`jx#YB zBrq^shO&{*JqDeJ?4HQLkaL`g0Yt|oGBC6pXJSZ5WMG(>#K17+I1|HyBnE~9$qWoj zjx&Mj#uNsI2O#kj28N<^1_qfEObiX_3=BsyAZY`%Ch$`x149Am*xxJ$hW0E5hME&h z3=^^#7+z*EFl;%&#PA`DfgvKBf#JppCWeG;28JCu3=AA6nHUb_Ffe%KF)+xSWMT-& zV_?{n&%h7?63=H~P=TJ$3pynic2+NlE-heS=sC&60HUi47#J3uWMXJ2U|`@VWMJ5E zl8Hf}kb&WOAp^sKlS~XB3K<xBDj68AoMd8{P|3i+Rn5TQa*ByTpqhapxEd0_3Dpb? zfej1{6{naO5*ip7w3`?ho}6MrIe!*(4lV4QSrDz-%)sDsnu!5K3$!pWM4V<~0MQ{W z3=A2knNZG|1)VnwJ5Lrw=eIL3%s9=&0HRCU85q`_W?}%*&Fu^fdrmVkOlW6du)f5= zaON}<1L&mHg_j`iyl{zuLE;Jn!<9=+3<_5m7|vc}U{JWs#Bkvn14G+w28M#mOekl+ zA)glqIyVk>mK=zlafg9H<_Z%7h`xV^fx+Yo69b5Ta)*Jz<q8u6h<<g4fg$7y69b6; zc!z-@<q8u6!(9f3{MQT&HCLDz3SKiXta-!0P;!-tVZ$2+hP-zS412CJp`2|7I^)dZ zJp%*JH6{iS?f#yDLE#z`1L%O$)9<1F0*Qe(D1qvZ4-5<$A0Xn$XPbe}JoEj?z~FL? zi2+0>e`H{YxW>d#@R5PR`4a;}2FT1$3=CnP85nA=F)<{3W?)eN!oV=)8WRKZS!JLz z%np5FVAykwi2+0xePv*{aE*zf;VT1!{tpI*2O#xGXOAWSU|^{I!N4GKoe4}&{lUPX zbDfD{!4C%T*<+wG7WoV^&{<?$zZn=pt}`)!XpP?t3>nv%7z%zfFx>pjz)*3WiQ&U< z28Kg_7#Jp8XJWYUhk+sdFVw$(5$B45&KLXgmx1BLbtVQ7{r@im!=39)44_5)G5;Xy z6aFzUF#l&@cmq0K?LPxU&VPt_!G8vZ*HHF{{|pSx42<BqU;+ap!!rg(a9xjl_8904 zvVDw<3>-I@7(nzfMn(pe8%zu!`Who6g9GTeFQjwEK<AA)GBGj)++bn=(NRo{3>i0= z7(jF~6C*>-4JL*HCPs#zOpFXYH<%b0m>C&nFf)S7?FGz?49cvG3|l~Ikj?}Hoej2% zjgjHc4JHN<y@8F9LEt761Bl+n#>k*>lZoK~8zTb;2P1>YO(q5b4n_ukE=Gn75F6<n zF3@>gq1=oNCvGw^faqv$MusOhnHWHHA~z$$mzzus1>B4bi@6!W?XeBqj0`M1j0^&| zm>2|*&dvgzw-v|B$Y5}bi2+2X@G>&^++tz?(OJBV3^BKu7z%h98Kn6b87giuF(~jc zGU)O%GIZQxLOBBqbQabr0Y-)!x0o0}^aTM%h99?>7(nzj0Y(On+e|2DT7k~CnlHr2 zU~!v?0YonqVq}Q8&BOqrR|_#RWZY&#Ie!XtX4M;EMusW3nHWIyCt*g04Y!#XK=cn` zMur2onNZH40-Z$_BFf0{<~9=ph>j9vWZ<~N!~mibL>U<*?l7U8GX*+t>aHjwgToyr z1`vHul#wCi4if{2ek#hyka7pqRz#d51v*d4N1TzN;|>!8hz=HKWLR>Ci2+1MiZe1C zxWmK%qT`|B$mc$R&WjS0WMp`7hlv41%SbXZFx+Kg0MSa4j0^&InNZGo0-X!xFU81U zaF>YzM2AT+GI-o&VgS)GQj81<cbOPKbP`k?`3xt}*-x*e85tVxGBJSY57LYb3+^&8 zfaq`1j0_v@GBJP-h|89NoUJ!OhLK^7EF-ubvO$)S;jbJc!v&BUq_dkqXE?1>U}WIA z$HV}lw<<6)=-gvs0MWY@7#V!-F)@JXgHUngbD2QrGksEGWXQS4!~mjyDlszj++$(@ z(f^eg8P?omVgS*s$`Ek@q_dYmXD~&mFfyFD$HV}l<5d_Lp4?+%0MV%`j0_C-nHWHH zHdGw>+$7LhO9xdM8D#D=F@We3s*DU4_n8<#^f^^VhLHPA3?TXnRQ!P|BZIs;BSXr4 zCX_RgK<6mgXfiT%+-G6{(axHT3`_1aF@R`KO-6<T_n8<#v_Dil0O@=r&^bw7+Kdbj z?lUof=s?izY7dwgKy<h^BZI;NCI%243l(3W&B(y31Bn*_9YzKv9Y|g_&|zeVhKeWX zFfu&XVFb6mk<Uy5ot^YwmyyBc0TTm=o~qBt5b=PC0Yu-{XJp8Dz{CKeUqHn_=rc0N z8!$4|JYZr_FkobuZ2+-%fdM0ft1%<Plm|=<A50h-+|3vnmOMZ`9|`#^B+%JLurrT9 zG=~Kv!;c3{3?N#;f{}seArk|LcC}z+ka@_&0HVDt7#R#6GBJSY2n$9AhlflkXB>gf zI)a^T1fn@C85v3*GBJQ?1xrST4v?9aj0~=pj0`g#GNGJj1UlE~u_YtJhKEcHAo`^x zBg2u0Oep6TfzB_2olOLy*=-mZ7#=Y(fM`h@Mh1;XObj4e&4!V|;t>-A@;OAH^NGrA z7#TbsF)@H>c3Vb<m`6+u0=A3{nRbi}Iggl7&KClmGt_O*$gt)S69b5jab{#V@`#Bc z!I_a^i7O++l}Ahr8(bL~_IWZg@H}Q>IN-_1VC~JwQ1Y0G!NHr6;hsMu!->aCDCg^d z&e?&Tr30eBgfKElJYix0(Xye83>HtA7(n#mP(}uiCrk{;=j4FS&xs0SWXO2J!~mkJ z!WbE9o-m=DjRQI(M>v9!Va^jK1`sV7!N{=Z2@?Z|mXBa$IP-*wK_P;XAuke=Uy#qa z0iA<0If{|t&l4sF5Irl3kwN4s69b3_onfQ%lnLc*8_*dyX)%lpK2Mn#Ky*$FBSXeh zCWe9-MurD5kn|6tLt-Ip<g;zA#4<9hieqGGc*+E(U&k>rOnJ(La()fy9Gj|mMurPd znHWIylz2vlCm=V(Gcx>1U<CI8L3>t05~1cNGBP+NGcrg#V`2zMW@K2A&d8wij0xpT z7|_`;u(Mx4^vY~Th9}RM7(n#DY(|D3&zKlMv}6t=1IKeF@E#Uk=vglyI;4=1!Q?q) zj|}WQ7Z43Q#|1<$C}w1+dCtTDqJI@LGE8{R!~ml2)iN?Hc+P}!UJK~l7RLrgh9l3J z7(jGX10%x?koidGv4GBHQD|Xg;CR8r0HR;DFfz!zU}E^t!pI;tjgdhIB#v}83FwTH zf?13V5-*t;K=h?qj0_GhnHWHH$3jMifR{`RAbS5oh&YHo3l#_L?@?a_2~Xs+M?hzi z%vsFHFySQ=1BgDkn2}-0OD6Chpm$3c89@Cz<nu#7=aGQU8#(fl3FVv-v1N=5vCA15 z-n?W2(@D!285mwMF@WfE%NZF2UNJF%=qt+^85CYIF~If{S-fIm5Ln5`z_gZ;!2`rz z%gB(vkCCC{6%zyUIUAt!H@@v-Wbk;+!~mjy?_*?0c+JGXfOM7y=uC~S{frEAUNbR( z=q39Z88*CTV%V^sk>UCQMur2gnHWI(kc<yO{N-?nk>SD-Mur!!nZPvYEDI1DM8nRw z0MVz;Ffv5EVPXK$ZI>Ata^5g8Ot{R*aQ!MHL(Ll|h7VU68H(>QGF$<P-(zH0@syEa z!doVka~447Ei8Y|$iVQ9i2+2vd(OyU@D8&7D)AK~gTp(>o-NoJ2q4<wBO^n{J0=DY z4cfDH<Q)^rnE=S=4}i`gfSpwUqUZf!WH5No!~mj~{a|E>c+bQDqCfs%WXO2W!~mi> zeljvtyk}wn(fmId89LrGf%kL4&Jh67u=4{zwC68I(D?uiAUfq2BZI^TCI%2)^^1`~ z;{y}QnE;@(0d)Q`GWdL8VgS)D{}>rcJ}@zWXs>^a3@sm+7(n~OelajHtoZ=iB+JAQ z&d9_78V>>ORa?c#1ZgufGBKDlF@et<M&9cWIs>4KiHYIH2POs(J%@>j;mrpol)e9; zGXP#OF){r4z{CKinV1*^K7#rPObpJ<5c84u`FAlhF*vd?F&KP=(Ecn;3@#s;7(jFw z3ll@gM<xak-3%26(VbB72`o$ua%@Zt86TM#6xf&;I(V2EdOk8SOyFT+=;mi)*aKqo zGcn`}F)=WFVq!qvTMycE{|2=0{u2`eh<+=?#NhFXi2+1^5n^J9_{7AZAk4&YP>P8m z=Mxjko_WyT`4Sl>h83Tf7(jHr3=_kiPfRF#=0SVsRpgi$&U|8G0MYt#Obib`F)<j( zF)_F+GBJGk#DubE9kkE=l@b$!$7d!65dBe!i6P}P69b6;uEfO9@R^ALME`|~Gbl4L z+)`#@nDChiWv@DD54){86T_a*Obj4;lQ9#+h0jb32aK5*3@n)#9(;z-Mh;920biKF zdj;DZAaRYnmm9RFo7ahn;msE&1`sXc#Kgeym5BjFOF1zysC;E&0MQCiaS*-9iHX7F zD-**WCnknKXC{UNUzr#}oS7I_I5UCAkU{i$XGj{j;LOAz>H<l75-v;(maa?;Q@%1W z*tjw=u)8ratoX{rz~RQk(Cfj(;P91+VS)z}1BWNXd=RbS2{8vmdqCMB`hzDEL&{es z1`wU?#RP62=6EqNO!8%7DEZ37FvXXN0d)8=$ep13fpz>Keh=_tV#xDjVz}{@i2-z9 z@EWN27C$D2`%v}+KPCoAe~7&@{!9!3P&SB8g|ajJnHVNO*&uo;l)b{AiGd@4iGk%C zgtiEPm;<7HpllF5H2~tC839ZT%7GBJN+1)%o<JssJD{)y?LCKzKL})E;0%JO;R#}5 zaD%cvf|wZMgCOQ-1TisK1Vh3BL?;A8#6k3gV2EB2{Q=4b(cvKw@rV#6hM6G{^>ad) z82&@W8A6#D0zx6;AUZ9Ki9zBU6GKKA6T_P@CWer25Lz~ZiDAVzP#cMfAvS^uJU#&0 zUtb#m(c2Kg#Be);iQ&dKCWbo^Obh~%5PL!Nqev!(2j7?&o<uS+ghnwjy!gh%P!Yw% zFe3_*W)?&-G5EwVF?{*P#E=lf#IQP+iGk%i6T_NVCWeSOCI*r3Obj(~ObpXO>;p^; z3*wj<?!-aD0Ypp0L)f5mjKmX|7<9ga##EUY>Jpe3JiaqA97tedIF!J|pzxiE;Xwiu z!?Oe?1`W{O?L;O9*+eFW3kR4OKo??iCPCPsOYx4SK-i!Q+|p7ZY|w3BrfCp1=>D&I zC>wMSlw>+YyfvMP0d!Fl$V?D@9V!kws2+4qJxCmM2>P)Ch<ebG=0Blqhe9TXv_gnD z=rGPjP&Vj5O|~M4IOu>t(D8sEb3k-iF+?16xRq`xlwHQe;8@1QVDcGqwgKo|f<Ip& z=MjL;8vyAA(V(*iKx_~VIxhgk2GK?3Obi#kF)<t{XJSyPfW&V=1rx&-DEmMK6N5@6 zMBJc~iD4R)4Z4Hdyb2QUG@PQNqtT2EpuOx83=E)SE0F93?Rf^Ral{noWMKf`-3z*x zcp{Px7}LhSA~#0?eC2q4o~^o}o`JeTYF=`FN@iZVt$JvPo34erLUBoAUP@w4eqO4r zdSz;{y1gAQmrY`EacXW-PNhOcZcbjYt$Jxuo>g&jMrv+iv2Jc=a#4P9ei~?zVXjqT zajssOp}InDVqRuiYH>+eYEf|}%r=lw`Y^NXc)4H>8>Jy3(7?n1zTbPvi6s}7+*tBp z$%iEjOF5PbER|TQuvBBI!BUH*4of|j1}u$Ony@ruX~EKpr436vmQGl@VyVJ%jpZMf z|5(njf@6ii3W*g8D>PO(tngS7u;Rvw2P<Bz_^{%~3Wk*&D?yiWgY0Nn)Ujy7q8W=8 zELyQ>!y<z<7Hb^Vc&rIn6R{>?O~#snH5F?b)^x0yux7@Z1#4EU*|28EngeT2thun} z#+nCfUaa}B=EoX_wH#{&)=I3^SZlD>Vy(kkkF^17Bi1IYWnf@fz{CK$AN<E!fprq= z7OdN`?!dYe>n^Ojv94i#$NCBDXRHTp{AFgaVPIgeSm3c>#exe9ek{;f7_hKn;ev%X r7BVbSSQN0RW6^;{0*fOSH!MD}_`_m{B^^snEMZt0uoMzh!;u64c+HCB literal 0 HcmV?d00001 diff --git a/Assets/Plugins/PointCloudPlugin/PointCloudPlugin.dll.meta b/Assets/Plugins/PointCloudPlugin/PointCloudPlugin.dll.meta new file mode 100644 index 0000000..ecf0282 --- /dev/null +++ b/Assets/Plugins/PointCloudPlugin/PointCloudPlugin.dll.meta @@ -0,0 +1,27 @@ +fileFormatVersion: 2 +guid: 366a742e4abb3a0478a67b52bda4c605 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs.meta b/Assets/Prefabs.meta new file mode 100644 index 0000000..118f1c4 --- /dev/null +++ b/Assets/Prefabs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5a9a56a77c47ca5449c4ddf930c65a40 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/Block.prefab b/Assets/Prefabs/Block.prefab new file mode 100644 index 0000000..13d8ed4 --- /dev/null +++ b/Assets/Prefabs/Block.prefab @@ -0,0 +1,123 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &8126816444565180231 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8768384242894696311} + - component: {fileID: 2389052723770592223} + - component: {fileID: 7193593906906610129} + - component: {fileID: 1779685088826987312} + - component: {fileID: 3268846158774871891} + m_Layer: 0 + m_Name: Block + m_TagString: surface + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8768384242894696311 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8126816444565180231} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 3.3200932, y: 1.0005007, z: -13.08} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 1 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &2389052723770592223 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8126816444565180231} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &7193593906906610129 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8126816444565180231} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + 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: 2100000, guid: f7d23c7a57a992c4282494782cba5215, 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 &1779685088826987312 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8126816444565180231} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a289fa24a88c315418a98f5ed959ddf6, type: 3} + m_Name: + m_EditorClassIdentifier: + deformAnchorPrefab: {fileID: 2720765159515821108, guid: 46377d8bcd3914149bbb7c475d721f56, type: 3} + wrapDistance: 0.01 +--- !u!64 &3268846158774871891 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8126816444565180231} + 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: 0 + m_CookingOptions: 30 + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} diff --git a/Assets/Prefabs/Block.prefab.meta b/Assets/Prefabs/Block.prefab.meta new file mode 100644 index 0000000..f23519d --- /dev/null +++ b/Assets/Prefabs/Block.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: f24fe5caf4a57c148bd86d63b19a1248 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/DeformAnchor.prefab b/Assets/Prefabs/DeformAnchor.prefab new file mode 100644 index 0000000..e793243 --- /dev/null +++ b/Assets/Prefabs/DeformAnchor.prefab @@ -0,0 +1,326 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &2720765159515821108 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6932357064353144026} + - component: {fileID: 7011188564143932531} + - component: {fileID: 7968349410991391766} + - component: {fileID: 4353599475975138122} + - component: {fileID: 8583429270821239024} + - component: {fileID: 4264957023403141933} + - component: {fileID: 890135004471644407} + - component: {fileID: 8293414992007484189} + m_Layer: 0 + m_Name: DeformAnchor + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6932357064353144026 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2720765159515821108} + 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: 1 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &7011188564143932531 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2720765159515821108} + m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &7968349410991391766 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2720765159515821108} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + 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: 2100000, guid: 7a7e0214bd11cb24aaeff6edf52a139a, 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!64 &4353599475975138122 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2720765159515821108} + 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: 0 + m_CookingOptions: 30 + m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} +--- !u!54 &8583429270821239024 +Rigidbody: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2720765159515821108} + serializedVersion: 4 + m_Mass: 1 + m_Drag: 0 + m_AngularDrag: 0.05 + m_CenterOfMass: {x: 0, y: 0, z: 0} + m_InertiaTensor: {x: 1, y: 1, z: 1} + m_InertiaRotation: {x: 0, y: 0, z: 0, w: 1} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ImplicitCom: 1 + m_ImplicitTensor: 1 + m_UseGravity: 0 + m_IsKinematic: 1 + m_Interpolate: 0 + m_Constraints: 112 + m_CollisionDetection: 0 +--- !u!114 &4264957023403141933 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2720765159515821108} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0ad34abafad169848a38072baa96cdb2, type: 3} + m_Name: + m_EditorClassIdentifier: + m_InteractionManager: {fileID: 0} + m_Colliders: [] + m_InteractionLayerMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_InteractionLayers: + m_Bits: 1 + m_DistanceCalculationMode: 1 + m_SelectMode: 0 + m_FocusMode: 1 + m_CustomReticle: {fileID: 0} + m_AllowGazeInteraction: 0 + m_AllowGazeSelect: 0 + m_OverrideGazeTimeToSelect: 0 + m_GazeTimeToSelect: 0.5 + m_OverrideTimeToAutoDeselectGaze: 0 + m_TimeToAutoDeselectGaze: 3 + m_AllowGazeAssistance: 0 + m_FirstHoverEntered: + m_PersistentCalls: + m_Calls: [] + m_LastHoverExited: + m_PersistentCalls: + m_Calls: [] + m_HoverEntered: + m_PersistentCalls: + m_Calls: [] + m_HoverExited: + m_PersistentCalls: + m_Calls: [] + m_FirstSelectEntered: + m_PersistentCalls: + m_Calls: [] + m_LastSelectExited: + m_PersistentCalls: + m_Calls: [] + m_SelectEntered: + m_PersistentCalls: + m_Calls: [] + m_SelectExited: + m_PersistentCalls: + m_Calls: [] + m_FirstFocusEntered: + m_PersistentCalls: + m_Calls: [] + m_LastFocusExited: + m_PersistentCalls: + m_Calls: [] + m_FocusEntered: + m_PersistentCalls: + m_Calls: [] + m_FocusExited: + m_PersistentCalls: + m_Calls: [] + m_Activated: + m_PersistentCalls: + m_Calls: [] + m_Deactivated: + m_PersistentCalls: + m_Calls: [] + m_StartingHoverFilters: [] + m_StartingSelectFilters: [] + m_StartingInteractionStrengthFilters: [] + m_OnFirstHoverEntered: + m_PersistentCalls: + m_Calls: [] + m_OnLastHoverExited: + m_PersistentCalls: + m_Calls: [] + m_OnHoverEntered: + m_PersistentCalls: + m_Calls: [] + m_OnHoverExited: + m_PersistentCalls: + m_Calls: [] + m_OnSelectEntered: + m_PersistentCalls: + m_Calls: [] + m_OnSelectExited: + m_PersistentCalls: + m_Calls: [] + m_OnSelectCanceled: + m_PersistentCalls: + m_Calls: [] + m_OnActivate: + m_PersistentCalls: + m_Calls: [] + m_OnDeactivate: + m_PersistentCalls: + m_Calls: [] + m_AttachTransform: {fileID: 0} + m_SecondaryAttachTransform: {fileID: 0} + m_UseDynamicAttach: 0 + m_MatchAttachPosition: 1 + m_MatchAttachRotation: 1 + m_SnapToColliderVolume: 1 + m_ReinitializeDynamicAttachEverySingleGrab: 1 + m_AttachEaseInTime: 0.15 + m_MovementType: 2 + m_VelocityDamping: 1 + m_VelocityScale: 1 + m_AngularVelocityDamping: 1 + m_AngularVelocityScale: 1 + m_TrackPosition: 1 + m_SmoothPosition: 1 + m_SmoothPositionAmount: 8 + m_TightenPosition: 0.1 + m_TrackRotation: 0 + m_SmoothRotation: 0 + m_SmoothRotationAmount: 8 + m_TightenRotation: 0.1 + m_TrackScale: 0 + m_SmoothScale: 0 + m_SmoothScaleAmount: 8 + m_TightenScale: 0.1 + m_ThrowOnDetach: 0 + m_ThrowSmoothingDuration: 0.25 + m_ThrowSmoothingCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_ThrowVelocityScale: 1.5 + m_ThrowAngularVelocityScale: 1 + m_ForceGravityOnDetach: 0 + m_RetainTransformParent: 1 + m_AttachPointCompatibilityMode: 0 + m_StartingSingleGrabTransformers: [] + m_StartingMultipleGrabTransformers: [] + m_AddDefaultGrabTransformers: 0 +--- !u!114 &890135004471644407 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2720765159515821108} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0a1302d0d134fa8a2a5b3bf4aec3c20, type: 3} + m_Name: + m_EditorClassIdentifier: + m_PermittedDisplacementAxes: 4 + m_ConstrainedAxisDisplacementMode: 0 + m_TwoHandedRotationMode: 1 + m_AllowOneHandedScaling: 1 + m_AllowTwoHandedScaling: 0 + m_OneHandedScaleSpeed: 0.5 + m_ThresholdMoveRatioForScale: 0.05 + m_ClampScaling: 1 + m_MinimumScaleRatio: 0.25 + m_MaximumScaleRatio: 2 + m_ScaleMultiplier: 0.25 +--- !u!114 &8293414992007484189 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2720765159515821108} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 77958f13f57fde04498144f077cc5f6c, type: 3} + m_Name: + m_EditorClassIdentifier: diff --git a/Assets/Prefabs/DeformAnchor.prefab.meta b/Assets/Prefabs/DeformAnchor.prefab.meta new file mode 100644 index 0000000..26c46f2 --- /dev/null +++ b/Assets/Prefabs/DeformAnchor.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 46377d8bcd3914149bbb7c475d721f56 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/Quad.prefab b/Assets/Prefabs/Quad.prefab new file mode 100644 index 0000000..8994326 --- /dev/null +++ b/Assets/Prefabs/Quad.prefab @@ -0,0 +1,328 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &2720765159515821108 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6932357064353144026} + - component: {fileID: 7011188564143932531} + - component: {fileID: 7968349410991391766} + - component: {fileID: 4353599475975138122} + - component: {fileID: 8583429270821239024} + - component: {fileID: 418805287641421752} + - component: {fileID: 3156276543328460730} + - component: {fileID: 6584571414324418003} + m_Layer: 0 + m_Name: Quad + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6932357064353144026 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2720765159515821108} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0.61, y: 0.2525534, z: 3.7599} + m_LocalScale: {x: 0.5, y: 0.5, z: 0.5} + m_ConstrainProportionsScale: 1 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &7011188564143932531 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2720765159515821108} + m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &7968349410991391766 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2720765159515821108} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + 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: 2100000, guid: 7a7e0214bd11cb24aaeff6edf52a139a, 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!64 &4353599475975138122 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2720765159515821108} + 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: 0 + m_CookingOptions: 30 + m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} +--- !u!54 &8583429270821239024 +Rigidbody: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2720765159515821108} + serializedVersion: 4 + m_Mass: 1 + m_Drag: 0 + m_AngularDrag: 0.05 + m_CenterOfMass: {x: 0, y: 0, z: 0} + m_InertiaTensor: {x: 1, y: 1, z: 1} + m_InertiaRotation: {x: 0, y: 0, z: 0, w: 1} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ImplicitCom: 1 + m_ImplicitTensor: 1 + m_UseGravity: 0 + m_IsKinematic: 1 + m_Interpolate: 0 + m_Constraints: 112 + m_CollisionDetection: 0 +--- !u!114 &418805287641421752 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2720765159515821108} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0ad34abafad169848a38072baa96cdb2, type: 3} + m_Name: + m_EditorClassIdentifier: + m_InteractionManager: {fileID: 0} + m_Colliders: [] + m_InteractionLayerMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_InteractionLayers: + m_Bits: 1 + m_DistanceCalculationMode: 1 + m_SelectMode: 0 + m_FocusMode: 1 + m_CustomReticle: {fileID: 0} + m_AllowGazeInteraction: 0 + m_AllowGazeSelect: 0 + m_OverrideGazeTimeToSelect: 0 + m_GazeTimeToSelect: 0.5 + m_OverrideTimeToAutoDeselectGaze: 0 + m_TimeToAutoDeselectGaze: 3 + m_AllowGazeAssistance: 0 + m_FirstHoverEntered: + m_PersistentCalls: + m_Calls: [] + m_LastHoverExited: + m_PersistentCalls: + m_Calls: [] + m_HoverEntered: + m_PersistentCalls: + m_Calls: [] + m_HoverExited: + m_PersistentCalls: + m_Calls: [] + m_FirstSelectEntered: + m_PersistentCalls: + m_Calls: [] + m_LastSelectExited: + m_PersistentCalls: + m_Calls: [] + m_SelectEntered: + m_PersistentCalls: + m_Calls: [] + m_SelectExited: + m_PersistentCalls: + m_Calls: [] + m_FirstFocusEntered: + m_PersistentCalls: + m_Calls: [] + m_LastFocusExited: + m_PersistentCalls: + m_Calls: [] + m_FocusEntered: + m_PersistentCalls: + m_Calls: [] + m_FocusExited: + m_PersistentCalls: + m_Calls: [] + m_Activated: + m_PersistentCalls: + m_Calls: [] + m_Deactivated: + m_PersistentCalls: + m_Calls: [] + m_StartingHoverFilters: [] + m_StartingSelectFilters: [] + m_StartingInteractionStrengthFilters: [] + m_OnFirstHoverEntered: + m_PersistentCalls: + m_Calls: [] + m_OnLastHoverExited: + m_PersistentCalls: + m_Calls: [] + m_OnHoverEntered: + m_PersistentCalls: + m_Calls: [] + m_OnHoverExited: + m_PersistentCalls: + m_Calls: [] + m_OnSelectEntered: + m_PersistentCalls: + m_Calls: [] + m_OnSelectExited: + m_PersistentCalls: + m_Calls: [] + m_OnSelectCanceled: + m_PersistentCalls: + m_Calls: [] + m_OnActivate: + m_PersistentCalls: + m_Calls: [] + m_OnDeactivate: + m_PersistentCalls: + m_Calls: [] + m_AttachTransform: {fileID: 0} + m_SecondaryAttachTransform: {fileID: 0} + m_UseDynamicAttach: 0 + m_MatchAttachPosition: 1 + m_MatchAttachRotation: 1 + m_SnapToColliderVolume: 1 + m_ReinitializeDynamicAttachEverySingleGrab: 1 + m_AttachEaseInTime: 0.15 + m_MovementType: 1 + m_VelocityDamping: 1 + m_VelocityScale: 1 + m_AngularVelocityDamping: 1 + m_AngularVelocityScale: 1 + m_TrackPosition: 1 + m_SmoothPosition: 1 + m_SmoothPositionAmount: 8 + m_TightenPosition: 0.1 + m_TrackRotation: 0 + m_SmoothRotation: 0 + m_SmoothRotationAmount: 8 + m_TightenRotation: 0.1 + m_TrackScale: 0 + m_SmoothScale: 0 + m_SmoothScaleAmount: 8 + m_TightenScale: 0.1 + m_ThrowOnDetach: 0 + m_ThrowSmoothingDuration: 0.25 + m_ThrowSmoothingCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_ThrowVelocityScale: 1.5 + m_ThrowAngularVelocityScale: 1 + m_ForceGravityOnDetach: 0 + m_RetainTransformParent: 1 + m_AttachPointCompatibilityMode: 0 + m_StartingSingleGrabTransformers: [] + m_StartingMultipleGrabTransformers: [] + m_AddDefaultGrabTransformers: 1 +--- !u!114 &3156276543328460730 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2720765159515821108} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0a1302d0d134fa8a2a5b3bf4aec3c20, type: 3} + m_Name: + m_EditorClassIdentifier: + m_PermittedDisplacementAxes: -1 + m_ConstrainedAxisDisplacementMode: 1 + m_TwoHandedRotationMode: 1 + m_AllowOneHandedScaling: 1 + m_AllowTwoHandedScaling: 0 + m_OneHandedScaleSpeed: 0.5 + m_ThresholdMoveRatioForScale: 0.05 + m_ClampScaling: 1 + m_MinimumScaleRatio: 0.25 + m_MaximumScaleRatio: 2 + m_ScaleMultiplier: 0.25 +--- !u!114 &6584571414324418003 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2720765159515821108} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 98b85445213936746822c3b05e91cac9, type: 3} + m_Name: + m_EditorClassIdentifier: + parentBlockDeform: {fileID: 0} + normal: {x: 0, y: 0, z: 0} diff --git a/Assets/Prefabs/Quad.prefab.meta b/Assets/Prefabs/Quad.prefab.meta new file mode 100644 index 0000000..9ecfa5f --- /dev/null +++ b/Assets/Prefabs/Quad.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 6039eb6aec463c148a50da59f2274aa7 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Prefabs/VertexPoint.prefab b/Assets/Prefabs/VertexPoint.prefab new file mode 100644 index 0000000..ac93c22 --- /dev/null +++ b/Assets/Prefabs/VertexPoint.prefab @@ -0,0 +1,326 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &8138111287210361984 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6774443668057088772} + - component: {fileID: 5937053386327132433} + - component: {fileID: 1948675243738575465} + - component: {fileID: 3640461190030869738} + - component: {fileID: 492798701434058740} + - component: {fileID: 4136171038367357647} + - component: {fileID: 1183694293685742046} + - component: {fileID: -2749897353397705518} + m_Layer: 0 + m_Name: VertexPoint + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6774443668057088772 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8138111287210361984} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 1.016, z: 3.35} + m_LocalScale: {x: 0.02, y: 0.02, z: 0.02} + m_ConstrainProportionsScale: 1 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &5937053386327132433 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8138111287210361984} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &1948675243738575465 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8138111287210361984} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + 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: 2100000, guid: c07dd69158c788946aa2d944960f264d, 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!135 &3640461190030869738 +SphereCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8138111287210361984} + 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!54 &492798701434058740 +Rigidbody: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8138111287210361984} + serializedVersion: 4 + m_Mass: 1 + m_Drag: 0 + m_AngularDrag: 0.05 + m_CenterOfMass: {x: 0, y: 0, z: 0} + m_InertiaTensor: {x: 1, y: 1, z: 1} + m_InertiaRotation: {x: 0, y: 0, z: 0, w: 1} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ImplicitCom: 1 + m_ImplicitTensor: 1 + m_UseGravity: 0 + m_IsKinematic: 1 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!114 &4136171038367357647 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8138111287210361984} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0ad34abafad169848a38072baa96cdb2, type: 3} + m_Name: + m_EditorClassIdentifier: + m_InteractionManager: {fileID: 0} + m_Colliders: [] + m_InteractionLayerMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_InteractionLayers: + m_Bits: 1 + m_DistanceCalculationMode: 1 + m_SelectMode: 0 + m_FocusMode: 1 + m_CustomReticle: {fileID: 0} + m_AllowGazeInteraction: 0 + m_AllowGazeSelect: 0 + m_OverrideGazeTimeToSelect: 0 + m_GazeTimeToSelect: 0.5 + m_OverrideTimeToAutoDeselectGaze: 0 + m_TimeToAutoDeselectGaze: 3 + m_AllowGazeAssistance: 0 + m_FirstHoverEntered: + m_PersistentCalls: + m_Calls: [] + m_LastHoverExited: + m_PersistentCalls: + m_Calls: [] + m_HoverEntered: + m_PersistentCalls: + m_Calls: [] + m_HoverExited: + m_PersistentCalls: + m_Calls: [] + m_FirstSelectEntered: + m_PersistentCalls: + m_Calls: [] + m_LastSelectExited: + m_PersistentCalls: + m_Calls: [] + m_SelectEntered: + m_PersistentCalls: + m_Calls: [] + m_SelectExited: + m_PersistentCalls: + m_Calls: [] + m_FirstFocusEntered: + m_PersistentCalls: + m_Calls: [] + m_LastFocusExited: + m_PersistentCalls: + m_Calls: [] + m_FocusEntered: + m_PersistentCalls: + m_Calls: [] + m_FocusExited: + m_PersistentCalls: + m_Calls: [] + m_Activated: + m_PersistentCalls: + m_Calls: [] + m_Deactivated: + m_PersistentCalls: + m_Calls: [] + m_StartingHoverFilters: [] + m_StartingSelectFilters: [] + m_StartingInteractionStrengthFilters: [] + m_OnFirstHoverEntered: + m_PersistentCalls: + m_Calls: [] + m_OnLastHoverExited: + m_PersistentCalls: + m_Calls: [] + m_OnHoverEntered: + m_PersistentCalls: + m_Calls: [] + m_OnHoverExited: + m_PersistentCalls: + m_Calls: [] + m_OnSelectEntered: + m_PersistentCalls: + m_Calls: [] + m_OnSelectExited: + m_PersistentCalls: + m_Calls: [] + m_OnSelectCanceled: + m_PersistentCalls: + m_Calls: [] + m_OnActivate: + m_PersistentCalls: + m_Calls: [] + m_OnDeactivate: + m_PersistentCalls: + m_Calls: [] + m_AttachTransform: {fileID: 0} + m_SecondaryAttachTransform: {fileID: 0} + m_UseDynamicAttach: 0 + m_MatchAttachPosition: 1 + m_MatchAttachRotation: 1 + m_SnapToColliderVolume: 1 + m_ReinitializeDynamicAttachEverySingleGrab: 1 + m_AttachEaseInTime: 0.15 + m_MovementType: 2 + m_VelocityDamping: 1 + m_VelocityScale: 1 + m_AngularVelocityDamping: 1 + m_AngularVelocityScale: 1 + m_TrackPosition: 1 + m_SmoothPosition: 0 + m_SmoothPositionAmount: 8 + m_TightenPosition: 0.1 + m_TrackRotation: 1 + m_SmoothRotation: 0 + m_SmoothRotationAmount: 8 + m_TightenRotation: 0.1 + m_TrackScale: 1 + m_SmoothScale: 0 + m_SmoothScaleAmount: 8 + m_TightenScale: 0.1 + m_ThrowOnDetach: 1 + m_ThrowSmoothingDuration: 0.25 + m_ThrowSmoothingCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_ThrowVelocityScale: 1.5 + m_ThrowAngularVelocityScale: 1 + m_ForceGravityOnDetach: 0 + m_RetainTransformParent: 1 + m_AttachPointCompatibilityMode: 0 + m_StartingSingleGrabTransformers: [] + m_StartingMultipleGrabTransformers: [] + m_AddDefaultGrabTransformers: 1 +--- !u!114 &1183694293685742046 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8138111287210361984} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0a1302d0d134fa8a2a5b3bf4aec3c20, type: 3} + m_Name: + m_EditorClassIdentifier: + m_PermittedDisplacementAxes: -1 + m_ConstrainedAxisDisplacementMode: 1 + m_TwoHandedRotationMode: 1 + m_AllowOneHandedScaling: 1 + m_AllowTwoHandedScaling: 0 + m_OneHandedScaleSpeed: 0.5 + m_ThresholdMoveRatioForScale: 0.05 + m_ClampScaling: 1 + m_MinimumScaleRatio: 0.25 + m_MaximumScaleRatio: 2 + m_ScaleMultiplier: 0.25 +--- !u!114 &-2749897353397705518 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8138111287210361984} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 98b85445213936746822c3b05e91cac9, type: 3} + m_Name: + m_EditorClassIdentifier: + parentBlockDeform: {fileID: 0} diff --git a/Assets/Prefabs/VertexPoint.prefab.meta b/Assets/Prefabs/VertexPoint.prefab.meta new file mode 100644 index 0000000..841630d --- /dev/null +++ b/Assets/Prefabs/VertexPoint.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 5d21b49507ba4104f983122e372d6595 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources.meta b/Assets/Resources.meta new file mode 100644 index 0000000..7e50215 --- /dev/null +++ b/Assets/Resources.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 2211a40d2c98fb940aed9a2bffc241ad +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/CCOM.meta b/Assets/Resources/CCOM.meta new file mode 100644 index 0000000..1eed3df --- /dev/null +++ b/Assets/Resources/CCOM.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 16ad19145c85f3942bffcf644a24e16d +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/CCOM/Common.meta b/Assets/Resources/CCOM/Common.meta new file mode 100644 index 0000000..706abba --- /dev/null +++ b/Assets/Resources/CCOM/Common.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1fbb283e1c8a0f24bacaf921a0f5672e +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/CCOM/Common/Scripts.meta b/Assets/Resources/CCOM/Common/Scripts.meta new file mode 100644 index 0000000..de92e99 --- /dev/null +++ b/Assets/Resources/CCOM/Common/Scripts.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 4aa0c4d69519c2041a520f09bd5aac9a +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/CCOM/Common/Scripts/GEOReference.cs b/Assets/Resources/CCOM/Common/Scripts/GEOReference.cs new file mode 100644 index 0000000..4dd1bdf --- /dev/null +++ b/Assets/Resources/CCOM/Common/Scripts/GEOReference.cs @@ -0,0 +1,37 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class GEOReference : MonoBehaviour +{ + public double realWorldX = 0.0; + public double realWorldZ = 0.0; + + public int UTMZone = 0; + + public float scale = 1.0f; + public float maxDepth = 0.0f; + + public void setRealWorldX(double newValue) + { + realWorldX = newValue; + } + + public void setRealWorldZ(double newValue) + { + realWorldZ = newValue; + } + + void Start() + { + } + + void Update() + { + } + + void OnValidate() + { + + } +} diff --git a/Assets/Resources/CCOM/Common/Scripts/GEOReference.cs.meta b/Assets/Resources/CCOM/Common/Scripts/GEOReference.cs.meta new file mode 100644 index 0000000..e0f082b --- /dev/null +++ b/Assets/Resources/CCOM/Common/Scripts/GEOReference.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b3372dc4984a8034989b3c006f93debb +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/CCOM/PointCloud.meta b/Assets/Resources/CCOM/PointCloud.meta new file mode 100644 index 0000000..2b57eeb --- /dev/null +++ b/Assets/Resources/CCOM/PointCloud.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f03bce9156ee142498cc2154bfe969cb +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/CCOM/PointCloud/Data.meta b/Assets/Resources/CCOM/PointCloud/Data.meta new file mode 100644 index 0000000..1a76996 --- /dev/null +++ b/Assets/Resources/CCOM/PointCloud/Data.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5785e5141bb6df64993bdb87e1e7b978 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/CCOM/PointCloud/Data/0.las b/Assets/Resources/CCOM/PointCloud/Data/0.las new file mode 100644 index 0000000000000000000000000000000000000000..e6a7e2f9b1086235c61da9263e0642a7ecf88b0a GIT binary patch